You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

2133 lines
150 KiB

using System;
using System.Collections.Generic;
using System.Linq;
using EasyBL.WebApi.Message;
using Entity.Sugar;
using SqlSugar;
using SqlSugar.Base;
using Newtonsoft.Json.Linq;
using EasyBL;
using System.Text.RegularExpressions;
namespace TestAP.Helper
{
public class ConvertData
{
public Dictionary<string, int> dicSucceccCount = new Dictionary<string, int>();
public string StartDate { get; set; } = string.Empty;
public string EndDate { get; set; } = string.Empty;
//出口帳款
public bool ExcExport { get; set; } = false;
//退運出口帳款
public bool ExcExportReturn { get; set; } = false;
//進口帳款
public bool ExcImport { get; set; } = false;
//退運進口帳款
public bool ExcImportReturn { get; set; } = false;
//其他帳款
public bool ExcOther { get; set; } = false;
//退運其他帳款
//其他(駒驛)帳款
public bool ExcOtherTG { get; set; } = false;
//退運其他(駒驛)帳款
//展覽
public bool ExcExhibtion { get; set; } = false;
//客戶
public bool ExcCustomer { get; set; } = false;
//特定帳款號碼
public List<string> BillsNo { get; set; } = new List<string>();
//特定專案號碼
public List<string> ExhibtionsNo { get; set; } = new List<string>();
//特定客戶號碼
public List<string> CustomersNo { get; set; } = new List<string>();
public Dictionary<string, int> StartConvert(out string o_sMsg)
{
string sMsg = null;
o_sMsg = null;
ResponseMessage rm = null;
try
{
rm = SugarBase.ExecTran(db =>
{
do
{
if (string.IsNullOrEmpty(StartDate))
{
sMsg = "請設定StartDate";
break;
}
if (string.IsNullOrEmpty(EndDate))
{
sMsg = "請設定EndDate";
break;
}
Console.WriteLine("轉換進口資料開始...");
sMsg = Import(StartDate, EndDate, db);
if (sMsg != null)
{
break;
}
Console.WriteLine("轉換進口資料結束...");
Console.WriteLine("轉換出口資料開始...");
sMsg = Export(StartDate, EndDate, db);
if (sMsg != null)
{
break;
}
Console.WriteLine("轉換出口資料結束...");
Console.WriteLine("轉換其他資料開始...");
sMsg = Other(StartDate, EndDate, db);
if (sMsg != null)
{
break;
}
Console.WriteLine("轉換其他資料結束...");
Console.WriteLine("轉換其他(駒驛)資料開始...");
sMsg = OtherTG(StartDate, EndDate, db);
if (sMsg != null)
{
break;
}
Console.WriteLine("轉換其他(駒驛)資料結束...");
Console.WriteLine("轉換專案(展覽)資料開始...");
sMsg = Exhibition(StartDate, EndDate, db);
if (sMsg != null)
{
break;
}
Console.WriteLine("轉換專案(展覽)資料結束...");
Console.WriteLine("轉換客戶資料開始...");
sMsg = Customer(StartDate, EndDate, db);
if (sMsg != null)
{
break;
}
Console.WriteLine("轉換客戶資料結束...");
} while (false);
if (sMsg != null)
{
db.Ado.RollbackTran();
}
return rm;
}
);
}
catch (Exception ex)
{
sMsg = ex.Message;
}
if (sMsg != null)
{
o_sMsg = sMsg;
}
return dicSucceccCount;
}
public string Import(string sStartDate, string sEndDate, SqlSugarClient db)
{
string sMsg = null;
DateTime dtSettingStartDate = Convert.ToDateTime(sStartDate);
DateTime dtSettingEnd = Convert.ToDateTime(sEndDate);
#region 進口
var data1 = db.Queryable<OTB_OPM_ImportExhibition>()
.Where(x => x.ModifyDate <= SqlFunc.ToDate(sEndDate) && x.ModifyDate >= SqlFunc.ToDate(sStartDate))
.ToList();
foreach (OTB_OPM_ImportExhibition import in data1)
{
if (ExcImport || BillsNo.Any())
{
//解析bill
if (!string.IsNullOrEmpty(import.Bills))
{
JArray ja = JArray.Parse(import.Bills);
if (ja.Count > 0)
{
var sdb = new SimpleClient<OTB_OPM_ImportExhibition>(db);
var oOpm = sdb.GetById(import.ImportBillNO);
if (oOpm == null)
{
sMsg = $"進口單號:{ import.ImportBillNO } => 系統找不到對應的基本資料,請核查!";
break;
}
foreach (JObject jo in ja.OfType<JObject>())
{
string sBillNo = GetObjectValue(jo, "BillNO");
string sAuditVal = GetObjectValue(jo, "AuditVal");
string sBillCheckDate = GetObjectValue(jo, "BillCheckDate");
string sPayer = GetObjectValue(jo, "Payer");
string sUrl = @"ExhibitionImport_Upd|?Action=Upd&GoTab=3&ImportBillNO=" + oOpm.ImportBillNO + @"&BillNO=" + sBillNo;
if (BillsNo.Any() && !BillsNo.Contains(sBillNo))
{
continue;
}
DateTime dtCreateDate;
if (DateTime.TryParse(sBillCheckDate, out dtCreateDate))
{
if (dtCreateDate <= dtSettingEnd && dtCreateDate >= dtSettingStartDate)
{
var oPayer = new OTB_CRM_Customers();
if (!string.IsNullOrEmpty(sPayer))
{
oPayer = db.Queryable<OTB_CRM_Customers>().Single(it => it.guid == sPayer);
if (oPayer == null)
{
sMsg = $"進口單號:{ import.ImportBillNO } => 系統找不到付款人資訊";
break;
}
}
//狀態4(已銷帳)/6(已作廢)當成已審核拋轉
if (sAuditVal == "2" || sAuditVal == "4" || sAuditVal == "6")
{
#region 審核
var oBillsAdd = new OTB_OPM_Bills
{
OrgID = import.OrgID,
BillNO = sBillNo, //帳款號碼(1)
CheckDate = Common.FnToTWDate(GetObjectValue(jo, "BillFirstCheckDate")),//對帳日期(2)
BillType = @"20",//帳別(收付)(3)
CustomerCode = oPayer.CustomerNO //客戶供應商代號(4)
};
var sResponsiblePerson = oOpm.ResponsiblePerson.Split('.')[0];
oBillsAdd.ResponsiblePersonCode = Common.CutByteString(sResponsiblePerson, 11); //業務員代號(5)
oBillsAdd.ResponsiblePersonFullCode = oOpm.ResponsiblePerson; //業務員全代號
oBillsAdd.LastGetBillDate = @""; //最近收付日(6)
oBillsAdd.LastGetBillNO = @""; //最近收付單號(7)
oBillsAdd.TaxType = decimal.Parse(GetObjectValue(jo, "TaxSum").Replace(@",", @"")) > 0 ? @"5" : @"6";//稅別(8)
oBillsAdd.NOTaxAmount = GetObjectValue(jo, "AmountSum"); //未稅金額(9)
oBillsAdd.BillAmount = GetObjectValue(jo, "AmountTaxSum"); //帳款金額(10)
oBillsAdd.PaymentAmount = @"0"; //收付金額(11)
oBillsAdd.Allowance = @"0"; //折讓金額(12)
oBillsAdd.DebtAmount = @"0"; //呆帳金額(13)
oBillsAdd.ExchangeAmount = @"0"; //匯兌損益金額(14)
oBillsAdd.Settle = @"N"; //結清否(15)
oBillsAdd.InvoiceStartNumber = @""; //發票號碼(起)(16)
oBillsAdd.InvoiceEndNumber = @"";//發票號碼(迄)(17)
oBillsAdd.Category = @"";//傳票類別(18)
oBillsAdd.OrderNo = @"";//訂單單號(19)
oBillsAdd.ClosingNote = @"N"; //結帳註記(20)
oBillsAdd.GeneralInvoiceNumber = @""; //立帳總帳傳票號碼(21)
oBillsAdd.GeneralSerialNumber = @""; //立帳總帳傳票序號(22)
oBillsAdd.Remark1 = @""; //備註一(30C)(23)
oBillsAdd.AccountSource = @"0"; //帳款來源(24)
oBillsAdd.UpdateDate = @""; //更新日期(25)
oBillsAdd.UpdatePersonnel = @""; //更新人員(26)
oBillsAdd.DepartmentSiteNumber = oOpm.DepartmentID; //部門\ 工地編號(27)
if (!string.IsNullOrWhiteSpace(oOpm.ExhibitionNO))
{
var oExhibition = db.Queryable<OTB_OPM_Exhibition>().Single(it => it.SN == oOpm.ExhibitionNO.ObjToInt());
oBillsAdd.ProjectNumber = oExhibition == null ? @"" : oExhibition.ExhibitionCode; //專案\ 項目編號(28)
}
else
{
oBillsAdd.ProjectNumber = @""; //專案\ 項目編號(28)
}
oBillsAdd.TransferBNotes = @""; //轉B 帳註記(29)
oBillsAdd.ABNumber = @""; //A|B 帳唯一流水號(30)
oBillsAdd.EnterNumber = @""; //進銷單號(31)
var sCurrency = GetObjectValue(jo, "Currency");
if (import.OrgID == "SG")
{
if (sCurrency == "RMB")
{
sCurrency = "";
}
}
else
{
if (sCurrency == "NTD")
{
sCurrency = "";
}
}
oBillsAdd.ForeignCurrencyCode = sCurrency; //外幣代號(32)
var sExchangeRate = GetObjectValue(jo, "ExchangeRate");
oBillsAdd.ExchangeRate = sExchangeRate; //匯率(33)
oBillsAdd.ForeignAmount = (decimal.Parse(GetObjectValue(jo, "AmountTaxSum")) * decimal.Parse(sExchangeRate == @"" ? @"1" : sExchangeRate)).ToString(); //外幣金額(34)
oBillsAdd.PayAmount = @"0"; //收付沖抵金額(35)
oBillsAdd.RefundAmount = @"0"; //退款金額(36)
oBillsAdd.PaymentTerms = @""; //收付條件(37)
oBillsAdd.AccountDate = Common.FnToTWDate(GetObjectValue(jo, "BillFirstCheckDate")); //帳款日期(38)
oBillsAdd.DCreditCardNumber = @""; //預設信用卡號(39)
oBillsAdd.ClosingDate = @""; //結帳日期(40)
oBillsAdd.CusField1 = @""; //自定義欄位一(41)
oBillsAdd.CusField2 = @""; //自定義欄位二(42)
oBillsAdd.CusField3 = @""; //自定義欄位三(43)
oBillsAdd.CusField4 = @""; //自定義欄位四(44)
oBillsAdd.CusField5 = @""; //自定義欄位五(45)
oBillsAdd.CusField6 = @"0"; //自定義欄位六(46)
oBillsAdd.CusField7 = @"0"; //自定義欄位七(47)
oBillsAdd.CusField8 = @"0"; //自定義欄位八(48)
oBillsAdd.CusField9 = @"0"; //自定義欄位九(49)
oBillsAdd.CusField10 = @"0"; //自定義欄位十(50)
oBillsAdd.CusField11 = @""; //自定義欄位十一(51)
oBillsAdd.CusField12 = @""; //自定義欄位十二(52)
oBillsAdd.Remark2 = @""; //備註二(M)(53)
oBillsAdd.TWNOTaxAmount = GetObjectValue(jo, "AmountSum"); //台幣未稅金額(54)
oBillsAdd.TWAmount = GetObjectValue(jo, "AmountTaxSum"); //台幣帳款金額(55)
oBillsAdd.CreateUser = import.ModifyUser;
oBillsAdd.CreateDate = ((DateTime)import.ModifyDate).ToString(@"yyyy/MM/dd HH:mm:ss");
oBillsAdd.BillFirstCheckDate = string.IsNullOrEmpty(GetObjectValue(jo, "BillFirstCheckDate")) ? DateTime.Now.ToString(@"yyyy/MM/dd HH:mm:ss") : GetObjectValue(jo, "BillFirstCheckDate");
oBillsAdd.Advance = GetObjectValue(jo, "Advance"); //預收
oBillsAdd.TaxSum = GetObjectValue(jo, "TaxSum"); //稅額
oBillsAdd.TotalReceivable = GetObjectValue(jo, "TotalReceivable"); //總應收
oBillsAdd.IsRetn = string.IsNullOrEmpty(GetObjectValue(jo, "IsRetn")) ? @"N" : GetObjectValue(jo, "IsRetn"); //是否為退運
oBillsAdd.Url = sUrl; //Url
db.Insertable(oBillsAdd).ExecuteCommand();
if (dicSucceccCount.Keys.Contains("進口審核"))
{
dicSucceccCount["進口審核"] = dicSucceccCount["進口審核"] + 1;
}
else
{
dicSucceccCount.Add("進口審核", 1);
}
#endregion
}
else if (sAuditVal == "5")
{
#region 過帳
var oBillsAdd = new OTB_OPM_Bills
{
OrgID = import.OrgID,
BillNO = sBillNo, //帳款號碼(1)
CheckDate = Common.FnToTWDate(GetObjectValue(jo, "BillFirstCheckDate")),//對帳日期(2)
BillType = @"20",//帳別(收付)(3)
CustomerCode = oPayer.CustomerNO //客戶供應商代號(4)
};
var sResponsiblePerson = oOpm.ResponsiblePerson.Split('.')[0];
oBillsAdd.ResponsiblePersonCode = Common.CutByteString(sResponsiblePerson, 11); //業務員代號(5)
oBillsAdd.ResponsiblePersonFullCode = oOpm.ResponsiblePerson; //業務員全代號
oBillsAdd.LastGetBillDate = @""; //最近收付日(6)
oBillsAdd.LastGetBillNO = @""; //最近收付單號(7)
oBillsAdd.TaxType = decimal.Parse(GetObjectValue(jo, "TaxSum").Replace(@",", @"")) > 0 ? @"5" : @"6";//稅別(8)
oBillsAdd.NOTaxAmount = GetObjectValue(jo, "AmountSum"); //未稅金額(9)
oBillsAdd.BillAmount = GetObjectValue(jo, "AmountTaxSum"); //帳款金額(10)
oBillsAdd.PaymentAmount = @"0"; //收付金額(11)
oBillsAdd.Allowance = @"0"; //折讓金額(12)
oBillsAdd.DebtAmount = @"0"; //呆帳金額(13)
oBillsAdd.ExchangeAmount = @"0"; //匯兌損益金額(14)
oBillsAdd.Settle = @"N"; //結清否(15)
oBillsAdd.InvoiceStartNumber = GetObjectValue(jo, "InvoiceNumber"); //發票號碼(起)(16)
oBillsAdd.InvoiceEndNumber = GetObjectValue(jo, "InvoiceNumber");//發票號碼(迄)(17)
oBillsAdd.Category = @"";//傳票類別(18)
oBillsAdd.OrderNo = @"";//訂單單號(19)
oBillsAdd.ClosingNote = @"N"; //結帳註記(20)
oBillsAdd.GeneralInvoiceNumber = @""; //立帳總帳傳票號碼(21)
oBillsAdd.GeneralSerialNumber = @""; //立帳總帳傳票序號(22)
oBillsAdd.Remark1 = @""; //備註一(30C)(23)
oBillsAdd.AccountSource = @"0"; //帳款來源(24)
oBillsAdd.UpdateDate = @""; //更新日期(25)
oBillsAdd.UpdatePersonnel = @""; //更新人員(26)
oBillsAdd.DepartmentSiteNumber = oOpm.DepartmentID; //部門\ 工地編號(27)
if (!string.IsNullOrWhiteSpace(oOpm.ExhibitionNO))
{
var oExhibition = db.Queryable<OTB_OPM_Exhibition>().Single(it => it.SN == oOpm.ExhibitionNO.ObjToInt());
oBillsAdd.ProjectNumber = oExhibition == null ? @"" : oExhibition.ExhibitionCode; //專案\ 項目編號(28)
}
else
{
oBillsAdd.ProjectNumber = @""; //專案\ 項目編號(28)
}
oBillsAdd.TransferBNotes = @""; //轉B 帳註記(29)
oBillsAdd.ABNumber = @""; //A|B 帳唯一流水號(30)
oBillsAdd.EnterNumber = @""; //進銷單號(31)
var sCurrency = GetObjectValue(jo, "Currency");
if (import.OrgID == "SG")
{
if (sCurrency == "RMB")
{
sCurrency = "";
}
}
else
{
if (sCurrency == "NTD")
{
sCurrency = "";
}
}
oBillsAdd.ForeignCurrencyCode = sCurrency; //外幣代號(32)
var sExchangeRate = GetObjectValue(jo, "ExchangeRate");
oBillsAdd.ExchangeRate = sExchangeRate; //匯率(33)
oBillsAdd.ForeignAmount = (decimal.Parse(GetObjectValue(jo, "AmountTaxSum")) * decimal.Parse(sExchangeRate == @"" ? @"1" : sExchangeRate)).ToString(); //外幣金額(34)
oBillsAdd.PayAmount = @"0"; //收付沖抵金額(35)
oBillsAdd.RefundAmount = @"0"; //退款金額(36)
oBillsAdd.PaymentTerms = @""; //收付條件(37)
oBillsAdd.AccountDate = Common.FnToTWDate(GetObjectValue(jo, "BillFirstCheckDate")); //帳款日期(38)
oBillsAdd.DCreditCardNumber = @""; //預設信用卡號(39)
oBillsAdd.ClosingDate = @""; //結帳日期(40)
oBillsAdd.CusField1 = @""; //自定義欄位一(41)
oBillsAdd.CusField2 = @""; //自定義欄位二(42)
oBillsAdd.CusField3 = @""; //自定義欄位三(43)
oBillsAdd.CusField4 = @""; //自定義欄位四(44)
oBillsAdd.CusField5 = @""; //自定義欄位五(45)
oBillsAdd.CusField6 = @"0"; //自定義欄位六(46)
oBillsAdd.CusField7 = @"0"; //自定義欄位七(47)
oBillsAdd.CusField8 = @"0"; //自定義欄位八(48)
oBillsAdd.CusField9 = @"0"; //自定義欄位九(49)
oBillsAdd.CusField10 = @"0"; //自定義欄位十(50)
oBillsAdd.CusField11 = @""; //自定義欄位十一(51)
oBillsAdd.CusField12 = @""; //自定義欄位十二(52)
oBillsAdd.Remark2 = @""; //備註二(M)(53)
oBillsAdd.TWNOTaxAmount = GetObjectValue(jo, "AmountSum"); //台幣未稅金額(54)
oBillsAdd.TWAmount = GetObjectValue(jo, "AmountTaxSum"); //台幣帳款金額(55)
oBillsAdd.CreateUser = import.ModifyUser;
oBillsAdd.CreateDate = ((DateTime)import.ModifyDate).ToString(@"yyyy/MM/dd HH:mm:ss");
oBillsAdd.BillFirstCheckDate = string.IsNullOrEmpty(GetObjectValue(jo, "BillFirstCheckDate")) ? DateTime.Now.ToString(@"yyyy/MM/dd HH:mm:ss") : GetObjectValue(jo, "BillFirstCheckDate");
oBillsAdd.Advance = GetObjectValue(jo, "Advance"); //預收
oBillsAdd.TaxSum = GetObjectValue(jo, "TaxSum"); //稅額
oBillsAdd.TotalReceivable = GetObjectValue(jo, "TotalReceivable"); //總應收
oBillsAdd.IsRetn = string.IsNullOrEmpty(GetObjectValue(jo, "IsRetn")) ? @"N" : GetObjectValue(jo, "IsRetn"); //是否為退運
oBillsAdd.Url = sUrl; //Url
db.Insertable(oBillsAdd).ExecuteCommand();
if (dicSucceccCount.Keys.Contains("進口過帳"))
{
dicSucceccCount["進口過帳"] = dicSucceccCount["進口過帳"] + 1;
}
else
{
dicSucceccCount.Add("進口過帳", 1);
}
#endregion
}
}
}
}
}
}
}
if (ExcImportReturn || BillsNo.Any())
{
//解析ReturnBill
JArray ja = JArray.Parse(import.ReturnBills);
if (ja.Count > 0)
{
var sdb = new SimpleClient<OTB_OPM_ImportExhibition>(db);
var oOpm = sdb.GetById(import.ImportBillNO);
if (oOpm == null)
{
sMsg = $"退運進口單號:{ import.ImportBillNO } => 系統找不到對應的基本資料,請核查!";
break;
}
foreach (JObject joH in ja.OfType<JObject>())
{
JArray ja1 = JArray.Parse(GetObjectValue(joH, "Bills"));
if (ja1.Count > 0)
{
foreach (JObject jo in ja1.OfType<JObject>())
{
string sBillNo = GetObjectValue(jo, "BillNO");
string sAuditVal = GetObjectValue(jo, "AuditVal");
string sBillCheckDate = GetObjectValue(jo, "BillCheckDate");
string sPayer = GetObjectValue(jo, "Payer");
string sUrl = @"ExhibitionImport_Upd|?Action=Upd&GoTab=5&ImportBillNO=" + oOpm.ImportBillNO + @"&BillNO=" + sBillNo;
if (BillsNo.Any() && !BillsNo.Contains(sBillNo))
{
continue;
}
DateTime dtCreateDate;
if (DateTime.TryParse(sBillCheckDate, out dtCreateDate))
{
if (dtCreateDate <= dtSettingEnd && dtCreateDate >= dtSettingStartDate)
{
var oPayer = new OTB_CRM_Customers();
if (!string.IsNullOrEmpty(sPayer))
{
oPayer = db.Queryable<OTB_CRM_Customers>().Single(it => it.guid == sPayer);
if (oPayer == null)
{
sMsg = $"退運進口單號:{ import.ImportBillNO } => 系統找不到付款人資訊";
break;
}
}
//狀態4(已銷帳)/6(已作廢)當成已審核拋轉
if (sAuditVal == "2" || sAuditVal == "4" || sAuditVal == "6")
{
#region 審核
var oBillsAdd = new OTB_OPM_Bills
{
OrgID = import.OrgID,
BillNO = sBillNo, //帳款號碼(1)
CheckDate = Common.FnToTWDate(GetObjectValue(jo, "BillFirstCheckDate")),//對帳日期(2)
BillType = @"20",//帳別(收付)(3)
CustomerCode = oPayer.CustomerNO //客戶供應商代號(4)
};
var sResponsiblePerson = oOpm.ResponsiblePerson.Split('.')[0];
oBillsAdd.ResponsiblePersonCode = Common.CutByteString(sResponsiblePerson, 11); //業務員代號(5)
oBillsAdd.ResponsiblePersonFullCode = oOpm.ResponsiblePerson; //業務員全代號
oBillsAdd.LastGetBillDate = @""; //最近收付日(6)
oBillsAdd.LastGetBillNO = @""; //最近收付單號(7)
oBillsAdd.TaxType = decimal.Parse(GetObjectValue(jo, "TaxSum").Replace(@",", @"")) > 0 ? @"5" : @"6";//稅別(8)
oBillsAdd.NOTaxAmount = GetObjectValue(jo, "AmountSum"); //未稅金額(9)
oBillsAdd.BillAmount = GetObjectValue(jo, "AmountTaxSum"); //帳款金額(10)
oBillsAdd.PaymentAmount = @"0"; //收付金額(11)
oBillsAdd.Allowance = @"0"; //折讓金額(12)
oBillsAdd.DebtAmount = @"0"; //呆帳金額(13)
oBillsAdd.ExchangeAmount = @"0"; //匯兌損益金額(14)
oBillsAdd.Settle = @"N"; //結清否(15)
oBillsAdd.InvoiceStartNumber = @""; //發票號碼(起)(16)
oBillsAdd.InvoiceEndNumber = @"";//發票號碼(迄)(17)
oBillsAdd.Category = @"";//傳票類別(18)
oBillsAdd.OrderNo = @"";//訂單單號(19)
oBillsAdd.ClosingNote = @"N"; //結帳註記(20)
oBillsAdd.GeneralInvoiceNumber = @""; //立帳總帳傳票號碼(21)
oBillsAdd.GeneralSerialNumber = @""; //立帳總帳傳票序號(22)
oBillsAdd.Remark1 = @""; //備註一(30C)(23)
oBillsAdd.AccountSource = @"0"; //帳款來源(24)
oBillsAdd.UpdateDate = @""; //更新日期(25)
oBillsAdd.UpdatePersonnel = @""; //更新人員(26)
oBillsAdd.DepartmentSiteNumber = oOpm.DepartmentID; //部門\ 工地編號(27)
if (!string.IsNullOrWhiteSpace(oOpm.ExhibitionNO))
{
var oExhibition = db.Queryable<OTB_OPM_Exhibition>().Single(it => it.SN == oOpm.ExhibitionNO.ObjToInt());
oBillsAdd.ProjectNumber = oExhibition == null ? @"" : oExhibition.ExhibitionCode; //專案\ 項目編號(28)
}
else
{
oBillsAdd.ProjectNumber = @""; //專案\ 項目編號(28)
}
oBillsAdd.TransferBNotes = @""; //轉B 帳註記(29)
oBillsAdd.ABNumber = @""; //A|B 帳唯一流水號(30)
oBillsAdd.EnterNumber = @""; //進銷單號(31)
var sCurrency = GetObjectValue(jo, "Currency");
if (import.OrgID == "SG")
{
if (sCurrency == "RMB")
{
sCurrency = "";
}
}
else
{
if (sCurrency == "NTD")
{
sCurrency = "";
}
}
oBillsAdd.ForeignCurrencyCode = sCurrency; //外幣代號(32)
var sExchangeRate = GetObjectValue(jo, "ExchangeRate");
oBillsAdd.ExchangeRate = sExchangeRate; //匯率(33)
oBillsAdd.ForeignAmount = (decimal.Parse(GetObjectValue(jo, "AmountTaxSum")) * decimal.Parse(sExchangeRate == @"" ? @"1" : sExchangeRate)).ToString(); //外幣金額(34)
oBillsAdd.PayAmount = @"0"; //收付沖抵金額(35)
oBillsAdd.RefundAmount = @"0"; //退款金額(36)
oBillsAdd.PaymentTerms = @""; //收付條件(37)
oBillsAdd.AccountDate = Common.FnToTWDate(GetObjectValue(jo, "BillFirstCheckDate")); //帳款日期(38)
oBillsAdd.DCreditCardNumber = @""; //預設信用卡號(39)
oBillsAdd.ClosingDate = @""; //結帳日期(40)
oBillsAdd.CusField1 = @""; //自定義欄位一(41)
oBillsAdd.CusField2 = @""; //自定義欄位二(42)
oBillsAdd.CusField3 = @""; //自定義欄位三(43)
oBillsAdd.CusField4 = @""; //自定義欄位四(44)
oBillsAdd.CusField5 = @""; //自定義欄位五(45)
oBillsAdd.CusField6 = @"0"; //自定義欄位六(46)
oBillsAdd.CusField7 = @"0"; //自定義欄位七(47)
oBillsAdd.CusField8 = @"0"; //自定義欄位八(48)
oBillsAdd.CusField9 = @"0"; //自定義欄位九(49)
oBillsAdd.CusField10 = @"0"; //自定義欄位十(50)
oBillsAdd.CusField11 = @""; //自定義欄位十一(51)
oBillsAdd.CusField12 = @""; //自定義欄位十二(52)
oBillsAdd.Remark2 = @""; //備註二(M)(53)
oBillsAdd.TWNOTaxAmount = GetObjectValue(jo, "AmountSum"); //台幣未稅金額(54)
oBillsAdd.TWAmount = GetObjectValue(jo, "AmountTaxSum"); //台幣帳款金額(55)
oBillsAdd.CreateUser = import.ModifyUser;
oBillsAdd.CreateDate = ((DateTime)import.ModifyDate).ToString(@"yyyy/MM/dd HH:mm:ss");
oBillsAdd.BillFirstCheckDate = string.IsNullOrEmpty(GetObjectValue(jo, "BillFirstCheckDate")) ? DateTime.Now.ToString(@"yyyy/MM/dd HH:mm:ss") : GetObjectValue(jo, "BillFirstCheckDate");
oBillsAdd.Advance = GetObjectValue(jo, "Advance"); //預收
oBillsAdd.TaxSum = GetObjectValue(jo, "TaxSum"); //稅額
oBillsAdd.TotalReceivable = GetObjectValue(jo, "TotalReceivable"); //總應收
oBillsAdd.IsRetn = string.IsNullOrEmpty(GetObjectValue(jo, "IsRetn")) ? @"N" : GetObjectValue(jo, "IsRetn"); //是否為退運
oBillsAdd.Url = sUrl; //Url
db.Insertable(oBillsAdd).ExecuteCommand();
if (dicSucceccCount.Keys.Contains("退運進口審核"))
{
dicSucceccCount["退運進口審核"] = dicSucceccCount["退運進口審核"] + 1;
}
else
{
dicSucceccCount.Add("退運進口審核", 1);
}
#endregion
}
else if (sAuditVal == "5")
{
#region 過帳
var oBillsAdd = new OTB_OPM_Bills
{
OrgID = import.OrgID,
BillNO = sBillNo, //帳款號碼(1)
CheckDate = Common.FnToTWDate(GetObjectValue(jo, "BillFirstCheckDate")),//對帳日期(2)
BillType = @"20",//帳別(收付)(3)
CustomerCode = oPayer.CustomerNO //客戶供應商代號(4)
};
var sResponsiblePerson = oOpm.ResponsiblePerson.Split('.')[0];
oBillsAdd.ResponsiblePersonCode = Common.CutByteString(sResponsiblePerson, 11); //業務員代號(5)
oBillsAdd.ResponsiblePersonFullCode = oOpm.ResponsiblePerson; //業務員全代號
oBillsAdd.LastGetBillDate = @""; //最近收付日(6)
oBillsAdd.LastGetBillNO = @""; //最近收付單號(7)
oBillsAdd.TaxType = decimal.Parse(GetObjectValue(jo, "TaxSum").Replace(@",", @"")) > 0 ? @"5" : @"6";//稅別(8)
oBillsAdd.NOTaxAmount = GetObjectValue(jo, "AmountSum"); //未稅金額(9)
oBillsAdd.BillAmount = GetObjectValue(jo, "AmountTaxSum"); //帳款金額(10)
oBillsAdd.PaymentAmount = @"0"; //收付金額(11)
oBillsAdd.Allowance = @"0"; //折讓金額(12)
oBillsAdd.DebtAmount = @"0"; //呆帳金額(13)
oBillsAdd.ExchangeAmount = @"0"; //匯兌損益金額(14)
oBillsAdd.Settle = @"N"; //結清否(15)
oBillsAdd.InvoiceStartNumber = GetObjectValue(jo, "InvoiceNumber"); //發票號碼(起)(16)
oBillsAdd.InvoiceEndNumber = GetObjectValue(jo, "InvoiceNumber");//發票號碼(迄)(17)
oBillsAdd.Category = @"";//傳票類別(18)
oBillsAdd.OrderNo = @"";//訂單單號(19)
oBillsAdd.ClosingNote = @"N"; //結帳註記(20)
oBillsAdd.GeneralInvoiceNumber = @""; //立帳總帳傳票號碼(21)
oBillsAdd.GeneralSerialNumber = @""; //立帳總帳傳票序號(22)
oBillsAdd.Remark1 = @""; //備註一(30C)(23)
oBillsAdd.AccountSource = @"0"; //帳款來源(24)
oBillsAdd.UpdateDate = @""; //更新日期(25)
oBillsAdd.UpdatePersonnel = @""; //更新人員(26)
oBillsAdd.DepartmentSiteNumber = oOpm.DepartmentID; //部門\ 工地編號(27)
if (!string.IsNullOrWhiteSpace(oOpm.ExhibitionNO))
{
var oExhibition = db.Queryable<OTB_OPM_Exhibition>().Single(it => it.SN == oOpm.ExhibitionNO.ObjToInt());
oBillsAdd.ProjectNumber = oExhibition == null ? @"" : oExhibition.ExhibitionCode; //專案\ 項目編號(28)
}
else
{
oBillsAdd.ProjectNumber = @""; //專案\ 項目編號(28)
}
oBillsAdd.TransferBNotes = @""; //轉B 帳註記(29)
oBillsAdd.ABNumber = @""; //A|B 帳唯一流水號(30)
oBillsAdd.EnterNumber = @""; //進銷單號(31)
var sCurrency = GetObjectValue(jo, "Currency");
if (import.OrgID == "SG")
{
if (sCurrency == "RMB")
{
sCurrency = "";
}
}
else
{
if (sCurrency == "NTD")
{
sCurrency = "";
}
}
oBillsAdd.ForeignCurrencyCode = sCurrency; //外幣代號(32)
var sExchangeRate = GetObjectValue(jo, "ExchangeRate");
oBillsAdd.ExchangeRate = sExchangeRate; //匯率(33)
oBillsAdd.ForeignAmount = (decimal.Parse(GetObjectValue(jo, "AmountTaxSum")) * decimal.Parse(sExchangeRate == @"" ? @"1" : sExchangeRate)).ToString(); //外幣金額(34)
oBillsAdd.PayAmount = @"0"; //收付沖抵金額(35)
oBillsAdd.RefundAmount = @"0"; //退款金額(36)
oBillsAdd.PaymentTerms = @""; //收付條件(37)
oBillsAdd.AccountDate = Common.FnToTWDate(GetObjectValue(jo, "BillFirstCheckDate")); //帳款日期(38)
oBillsAdd.DCreditCardNumber = @""; //預設信用卡號(39)
oBillsAdd.ClosingDate = @""; //結帳日期(40)
oBillsAdd.CusField1 = @""; //自定義欄位一(41)
oBillsAdd.CusField2 = @""; //自定義欄位二(42)
oBillsAdd.CusField3 = @""; //自定義欄位三(43)
oBillsAdd.CusField4 = @""; //自定義欄位四(44)
oBillsAdd.CusField5 = @""; //自定義欄位五(45)
oBillsAdd.CusField6 = @"0"; //自定義欄位六(46)
oBillsAdd.CusField7 = @"0"; //自定義欄位七(47)
oBillsAdd.CusField8 = @"0"; //自定義欄位八(48)
oBillsAdd.CusField9 = @"0"; //自定義欄位九(49)
oBillsAdd.CusField10 = @"0"; //自定義欄位十(50)
oBillsAdd.CusField11 = @""; //自定義欄位十一(51)
oBillsAdd.CusField12 = @""; //自定義欄位十二(52)
oBillsAdd.Remark2 = @""; //備註二(M)(53)
oBillsAdd.TWNOTaxAmount = GetObjectValue(jo, "AmountSum"); //台幣未稅金額(54)
oBillsAdd.TWAmount = GetObjectValue(jo, "AmountTaxSum"); //台幣帳款金額(55)
oBillsAdd.CreateUser = import.ModifyUser;
oBillsAdd.CreateDate = ((DateTime)import.ModifyDate).ToString(@"yyyy/MM/dd HH:mm:ss");
oBillsAdd.BillFirstCheckDate = string.IsNullOrEmpty(GetObjectValue(jo, "BillFirstCheckDate")) ? DateTime.Now.ToString(@"yyyy/MM/dd HH:mm:ss") : GetObjectValue(jo, "BillFirstCheckDate");
oBillsAdd.Advance = GetObjectValue(jo, "Advance"); //預收
oBillsAdd.TaxSum = GetObjectValue(jo, "TaxSum"); //稅額
oBillsAdd.TotalReceivable = GetObjectValue(jo, "TotalReceivable"); //總應收
oBillsAdd.IsRetn = string.IsNullOrEmpty(GetObjectValue(jo, "IsRetn")) ? @"N" : GetObjectValue(jo, "IsRetn"); //是否為退運
oBillsAdd.Url = sUrl; //Url
db.Insertable(oBillsAdd).ExecuteCommand();
if (dicSucceccCount.Keys.Contains("退運進口過帳"))
{
dicSucceccCount["退運進口過帳"] = dicSucceccCount["退運進口過帳"] + 1;
}
else
{
dicSucceccCount.Add("退運進口過帳", 1);
}
#endregion
}
}
}
}
}
}
}
}
}
#endregion
return sMsg;
}
public string Export(string sStartDate, string sEndDate, SqlSugarClient db)
{
string sMsg = null;
DateTime dtSettingStartDate = Convert.ToDateTime(sStartDate);
DateTime dtSettingEnd = Convert.ToDateTime(sEndDate);
#region 出口
var data2 = db.Queryable<OTB_OPM_ExportExhibition>()
.Where(x => x.ModifyDate <= SqlFunc.ToDate(sEndDate) && x.ModifyDate >= SqlFunc.ToDate(sStartDate))
.ToList();
foreach (OTB_OPM_ExportExhibition export in data2)
{
if (ExcExport || BillsNo.Any())
{
//解析bill
if (!string.IsNullOrEmpty(export.Bills))
{
JArray ja = JArray.Parse(export.Bills);
if (ja.Count > 0)
{
var sdb = new SimpleClient<OTB_OPM_ExportExhibition>(db);
var oOpm = sdb.GetById(export.ExportBillNO);
if (oOpm == null)
{
sMsg = $"出口單號:{ export.ExportBillNO } => 系統找不到對應的基本資料,請核查!";
break;
}
foreach (JObject jo in ja.OfType<JObject>())
{
string sBillNo = GetObjectValue(jo, "BillNO");
string sAuditVal = GetObjectValue(jo, "AuditVal");
string sBillCheckDate = GetObjectValue(jo, "BillCheckDate");
string sPayer = GetObjectValue(jo, "Payer");
string sUrl = @"ExhibitionExport_Upd|?Action=Upd&GoTab=3&ExportBillNO=" + oOpm.ExportBillNO + @"&BillNO=" + sBillNo;
DateTime dtCreateDate;
if (BillsNo.Any() && !BillsNo.Contains(sBillNo))
{
continue;
}
if (DateTime.TryParse(sBillCheckDate, out dtCreateDate))
{
if (dtCreateDate <= dtSettingEnd && dtCreateDate >= dtSettingStartDate)
{
var oPayer = new OTB_CRM_Customers();
if (!string.IsNullOrEmpty(sPayer))
{
oPayer = db.Queryable<OTB_CRM_Customers>().Single(it => it.guid == sPayer);
if (oPayer == null)
{
sMsg = $"出口單號:{ export.ExportBillNO } => 系統找不到付款人資訊";
break;
}
}
//狀態4(已銷帳)/6(已作廢)當成已審核拋轉
if (sAuditVal == "2" || sAuditVal == "4" || sAuditVal == "6")
{
#region 審核
var oBillsAdd = new OTB_OPM_Bills
{
OrgID = export.OrgID,
BillNO = sBillNo, //帳款號碼(1)
CheckDate = Common.FnToTWDate(GetObjectValue(jo, "BillFirstCheckDate")),//對帳日期(2)
BillType = @"20",//帳別(收付)(3)
CustomerCode = oPayer.CustomerNO //客戶供應商代號(4)
};
var sResponsiblePerson = oOpm.ResponsiblePerson.Split('.')[0];
oBillsAdd.ResponsiblePersonCode = Common.CutByteString(sResponsiblePerson, 11); //業務員代號(5)
oBillsAdd.ResponsiblePersonFullCode = oOpm.ResponsiblePerson; //業務員全代號
oBillsAdd.LastGetBillDate = @""; //最近收付日(6)
oBillsAdd.LastGetBillNO = @""; //最近收付單號(7)
oBillsAdd.TaxType = decimal.Parse(GetObjectValue(jo, "TaxSum").Replace(@",", @"")) > 0 ? @"5" : @"6";//稅別(8)
oBillsAdd.NOTaxAmount = GetObjectValue(jo, "AmountSum"); //未稅金額(9)
oBillsAdd.BillAmount = GetObjectValue(jo, "AmountTaxSum"); //帳款金額(10)
oBillsAdd.PaymentAmount = @"0"; //收付金額(11)
oBillsAdd.Allowance = @"0"; //折讓金額(12)
oBillsAdd.DebtAmount = @"0"; //呆帳金額(13)
oBillsAdd.ExchangeAmount = @"0"; //匯兌損益金額(14)
oBillsAdd.Settle = @"N"; //結清否(15)
oBillsAdd.InvoiceStartNumber = @""; //發票號碼(起)(16)
oBillsAdd.InvoiceEndNumber = @"";//發票號碼(迄)(17)
oBillsAdd.Category = @"";//傳票類別(18)
oBillsAdd.OrderNo = @"";//訂單單號(19)
oBillsAdd.ClosingNote = @"N"; //結帳註記(20)
oBillsAdd.GeneralInvoiceNumber = @""; //立帳總帳傳票號碼(21)
oBillsAdd.GeneralSerialNumber = @""; //立帳總帳傳票序號(22)
oBillsAdd.Remark1 = @""; //備註一(30C)(23)
oBillsAdd.AccountSource = @"0"; //帳款來源(24)
oBillsAdd.UpdateDate = @""; //更新日期(25)
oBillsAdd.UpdatePersonnel = @""; //更新人員(26)
oBillsAdd.DepartmentSiteNumber = oOpm.DepartmentID; //部門\ 工地編號(27)
if (!string.IsNullOrWhiteSpace(oOpm.ExhibitionNO))
{
var oExhibition = db.Queryable<OTB_OPM_Exhibition>().Single(it => it.SN == oOpm.ExhibitionNO.ObjToInt());
oBillsAdd.ProjectNumber = oExhibition == null ? @"" : oExhibition.ExhibitionCode; //專案\ 項目編號(28)
}
else
{
oBillsAdd.ProjectNumber = @""; //專案\ 項目編號(28)
}
oBillsAdd.TransferBNotes = @""; //轉B 帳註記(29)
oBillsAdd.ABNumber = @""; //A|B 帳唯一流水號(30)
oBillsAdd.EnterNumber = @""; //進銷單號(31)
var sCurrency = GetObjectValue(jo, "Currency");
if (export.OrgID == "SG")
{
if (sCurrency == "RMB")
{
sCurrency = "";
}
}
else
{
if (sCurrency == "NTD")
{
sCurrency = "";
}
}
oBillsAdd.ForeignCurrencyCode = sCurrency; //外幣代號(32)
var sExchangeRate = GetObjectValue(jo, "ExchangeRate");
oBillsAdd.ExchangeRate = sExchangeRate; //匯率(33)
oBillsAdd.ForeignAmount = (decimal.Parse(GetObjectValue(jo, "AmountTaxSum")) * decimal.Parse(sExchangeRate == @"" ? @"1" : sExchangeRate)).ToString(); //外幣金額(34)
oBillsAdd.PayAmount = @"0"; //收付沖抵金額(35)
oBillsAdd.RefundAmount = @"0"; //退款金額(36)
oBillsAdd.PaymentTerms = @""; //收付條件(37)
oBillsAdd.AccountDate = Common.FnToTWDate(GetObjectValue(jo, "BillFirstCheckDate")); //帳款日期(38)
oBillsAdd.DCreditCardNumber = @""; //預設信用卡號(39)
oBillsAdd.ClosingDate = @""; //結帳日期(40)
oBillsAdd.CusField1 = @""; //自定義欄位一(41)
oBillsAdd.CusField2 = @""; //自定義欄位二(42)
oBillsAdd.CusField3 = @""; //自定義欄位三(43)
oBillsAdd.CusField4 = @""; //自定義欄位四(44)
oBillsAdd.CusField5 = @""; //自定義欄位五(45)
oBillsAdd.CusField6 = @"0"; //自定義欄位六(46)
oBillsAdd.CusField7 = @"0"; //自定義欄位七(47)
oBillsAdd.CusField8 = @"0"; //自定義欄位八(48)
oBillsAdd.CusField9 = @"0"; //自定義欄位九(49)
oBillsAdd.CusField10 = @"0"; //自定義欄位十(50)
oBillsAdd.CusField11 = @""; //自定義欄位十一(51)
oBillsAdd.CusField12 = @""; //自定義欄位十二(52)
oBillsAdd.Remark2 = @""; //備註二(M)(53)
oBillsAdd.TWNOTaxAmount = GetObjectValue(jo, "AmountSum"); //台幣未稅金額(54)
oBillsAdd.TWAmount = GetObjectValue(jo, "AmountTaxSum"); //台幣帳款金額(55)
oBillsAdd.CreateUser = export.ModifyUser;
oBillsAdd.CreateDate = ((DateTime)export.ModifyDate).ToString(@"yyyy/MM/dd HH:mm:ss");
oBillsAdd.BillFirstCheckDate = string.IsNullOrEmpty(GetObjectValue(jo, "BillFirstCheckDate")) ? DateTime.Now.ToString(@"yyyy/MM/dd HH:mm:ss") : GetObjectValue(jo, "BillFirstCheckDate");
oBillsAdd.Advance = GetObjectValue(jo, "Advance"); //預收
oBillsAdd.TaxSum = GetObjectValue(jo, "TaxSum"); //稅額
oBillsAdd.TotalReceivable = GetObjectValue(jo, "TotalReceivable"); //總應收
oBillsAdd.IsRetn = string.IsNullOrEmpty(GetObjectValue(jo, "IsRetn")) ? @"N" : GetObjectValue(jo, "IsRetn"); //是否為退運
oBillsAdd.Url = sUrl; //Url
db.Insertable(oBillsAdd).ExecuteCommand();
if (dicSucceccCount.Keys.Contains("出口審核"))
{
dicSucceccCount["出口審核"] = dicSucceccCount["出口審核"] + 1;
}
else
{
dicSucceccCount.Add("出口審核", 1);
}
#endregion
}
else if (sAuditVal == "5")
{
#region 過帳
var oBillsAdd = new OTB_OPM_Bills
{
OrgID = export.OrgID,
BillNO = sBillNo, //帳款號碼(1)
CheckDate = Common.FnToTWDate(GetObjectValue(jo, "BillFirstCheckDate")),//對帳日期(2)
BillType = @"20",//帳別(收付)(3)
CustomerCode = oPayer.CustomerNO //客戶供應商代號(4)
};
var sResponsiblePerson = oOpm.ResponsiblePerson.Split('.')[0];
oBillsAdd.ResponsiblePersonCode = Common.CutByteString(sResponsiblePerson, 11); //業務員代號(5)
oBillsAdd.ResponsiblePersonFullCode = oOpm.ResponsiblePerson; //業務員全代號
oBillsAdd.LastGetBillDate = @""; //最近收付日(6)
oBillsAdd.LastGetBillNO = @""; //最近收付單號(7)
oBillsAdd.TaxType = decimal.Parse(GetObjectValue(jo, "TaxSum").Replace(@",", @"")) > 0 ? @"5" : @"6";//稅別(8)
oBillsAdd.NOTaxAmount = GetObjectValue(jo, "AmountSum"); //未稅金額(9)
oBillsAdd.BillAmount = GetObjectValue(jo, "AmountTaxSum"); //帳款金額(10)
oBillsAdd.PaymentAmount = @"0"; //收付金額(11)
oBillsAdd.Allowance = @"0"; //折讓金額(12)
oBillsAdd.DebtAmount = @"0"; //呆帳金額(13)
oBillsAdd.ExchangeAmount = @"0"; //匯兌損益金額(14)
oBillsAdd.Settle = @"N"; //結清否(15)
oBillsAdd.InvoiceStartNumber = GetObjectValue(jo, "InvoiceNumber"); //發票號碼(起)(16)
oBillsAdd.InvoiceEndNumber = GetObjectValue(jo, "InvoiceNumber");//發票號碼(迄)(17)
oBillsAdd.Category = @"";//傳票類別(18)
oBillsAdd.OrderNo = @"";//訂單單號(19)
oBillsAdd.ClosingNote = @"N"; //結帳註記(20)
oBillsAdd.GeneralInvoiceNumber = @""; //立帳總帳傳票號碼(21)
oBillsAdd.GeneralSerialNumber = @""; //立帳總帳傳票序號(22)
oBillsAdd.Remark1 = @""; //備註一(30C)(23)
oBillsAdd.AccountSource = @"0"; //帳款來源(24)
oBillsAdd.UpdateDate = @""; //更新日期(25)
oBillsAdd.UpdatePersonnel = @""; //更新人員(26)
oBillsAdd.DepartmentSiteNumber = oOpm.DepartmentID; //部門\ 工地編號(27)
if (!string.IsNullOrWhiteSpace(oOpm.ExhibitionNO))
{
var oExhibition = db.Queryable<OTB_OPM_Exhibition>().Single(it => it.SN == oOpm.ExhibitionNO.ObjToInt());
oBillsAdd.ProjectNumber = oExhibition == null ? @"" : oExhibition.ExhibitionCode; //專案\ 項目編號(28)
}
else
{
oBillsAdd.ProjectNumber = @""; //專案\ 項目編號(28)
}
oBillsAdd.TransferBNotes = @""; //轉B 帳註記(29)
oBillsAdd.ABNumber = @""; //A|B 帳唯一流水號(30)
oBillsAdd.EnterNumber = @""; //進銷單號(31)
var sCurrency = GetObjectValue(jo, "Currency");
if (export.OrgID == "SG")
{
if (sCurrency == "RMB")
{
sCurrency = "";
}
}
else
{
if (sCurrency == "NTD")
{
sCurrency = "";
}
}
oBillsAdd.ForeignCurrencyCode = sCurrency; //外幣代號(32)
var sExchangeRate = GetObjectValue(jo, "ExchangeRate");
oBillsAdd.ExchangeRate = sExchangeRate; //匯率(33)
oBillsAdd.ForeignAmount = (decimal.Parse(GetObjectValue(jo, "AmountTaxSum")) * decimal.Parse(sExchangeRate == @"" ? @"1" : sExchangeRate)).ToString(); //外幣金額(34)
oBillsAdd.PayAmount = @"0"; //收付沖抵金額(35)
oBillsAdd.RefundAmount = @"0"; //退款金額(36)
oBillsAdd.PaymentTerms = @""; //收付條件(37)
oBillsAdd.AccountDate = Common.FnToTWDate(GetObjectValue(jo, "BillFirstCheckDate")); //帳款日期(38)
oBillsAdd.DCreditCardNumber = @""; //預設信用卡號(39)
oBillsAdd.ClosingDate = @""; //結帳日期(40)
oBillsAdd.CusField1 = @""; //自定義欄位一(41)
oBillsAdd.CusField2 = @""; //自定義欄位二(42)
oBillsAdd.CusField3 = @""; //自定義欄位三(43)
oBillsAdd.CusField4 = @""; //自定義欄位四(44)
oBillsAdd.CusField5 = @""; //自定義欄位五(45)
oBillsAdd.CusField6 = @"0"; //自定義欄位六(46)
oBillsAdd.CusField7 = @"0"; //自定義欄位七(47)
oBillsAdd.CusField8 = @"0"; //自定義欄位八(48)
oBillsAdd.CusField9 = @"0"; //自定義欄位九(49)
oBillsAdd.CusField10 = @"0"; //自定義欄位十(50)
oBillsAdd.CusField11 = @""; //自定義欄位十一(51)
oBillsAdd.CusField12 = @""; //自定義欄位十二(52)
oBillsAdd.Remark2 = @""; //備註二(M)(53)
oBillsAdd.TWNOTaxAmount = GetObjectValue(jo, "AmountSum"); //台幣未稅金額(54)
oBillsAdd.TWAmount = GetObjectValue(jo, "AmountTaxSum"); //台幣帳款金額(55)
oBillsAdd.CreateUser = export.ModifyUser;
oBillsAdd.CreateDate = ((DateTime)export.ModifyDate).ToString(@"yyyy/MM/dd HH:mm:ss");
oBillsAdd.BillFirstCheckDate = string.IsNullOrEmpty(GetObjectValue(jo, "BillFirstCheckDate")) ? DateTime.Now.ToString(@"yyyy/MM/dd HH:mm:ss") : GetObjectValue(jo, "BillFirstCheckDate");
oBillsAdd.Advance = GetObjectValue(jo, "Advance"); //預收
oBillsAdd.TaxSum = GetObjectValue(jo, "TaxSum"); //稅額
oBillsAdd.TotalReceivable = GetObjectValue(jo, "TotalReceivable"); //總應收
oBillsAdd.IsRetn = string.IsNullOrEmpty(GetObjectValue(jo, "IsRetn")) ? @"N" : GetObjectValue(jo, "IsRetn"); //是否為退運
oBillsAdd.Url = sUrl; //Url
db.Insertable(oBillsAdd).ExecuteCommand();
if (dicSucceccCount.Keys.Contains("出口過帳"))
{
dicSucceccCount["出口過帳"] = dicSucceccCount["出口過帳"] + 1;
}
else
{
dicSucceccCount.Add("出口過帳", 1);
}
#endregion
}
}
}
}
}
}
}
if (ExcExportReturn || BillsNo.Any())
{
//解析ReturnBill
JArray ja = JArray.Parse(export.ReturnBills);
if (ja.Count > 0)
{
var sdb = new SimpleClient<OTB_OPM_ExportExhibition>(db);
var oOpm = sdb.GetById(export.ExportBillNO);
if (oOpm == null)
{
sMsg = $"退運出口單號:{ export.ExportBillNO } => 系統找不到對應的基本資料,請核查!";
break;
}
foreach (JObject joH in ja.OfType<JObject>())
{
JArray ja1 = JArray.Parse(GetObjectValue(joH, "Bills"));
if (ja1.Count > 0)
{
foreach (JObject jo in ja1.OfType<JObject>())
{
string sBillNo = GetObjectValue(jo, "BillNO");
string sAuditVal = GetObjectValue(jo, "AuditVal");
string sBillCheckDate = GetObjectValue(jo, "BillCheckDate");
string sPayer = GetObjectValue(jo, "Payer");
string sUrl = @"ExhibitionExport_Upd|?Action=Upd&GoTab=5&ExportBillNO=" + oOpm.ExportBillNO + @"&BillNO=" + sBillNo;
DateTime dtCreateDate;
if (BillsNo.Any() && !BillsNo.Contains(sBillNo))
{
continue;
}
if (DateTime.TryParse(sBillCheckDate, out dtCreateDate))
{
if (dtCreateDate <= dtSettingEnd && dtCreateDate >= dtSettingStartDate)
{
var oPayer = new OTB_CRM_Customers();
if (!string.IsNullOrEmpty(sPayer))
{
oPayer = db.Queryable<OTB_CRM_Customers>().Single(it => it.guid == sPayer);
if (oPayer == null)
{
sMsg = $"退運出口單號:{ export.ExportBillNO } => 系統找不到付款人資訊";
break;
}
}
//狀態4(已銷帳)/6(已作廢)當成已審核拋轉
if (sAuditVal == "2" || sAuditVal == "4" || sAuditVal == "6")
{
#region 審核
var oBillsAdd = new OTB_OPM_Bills
{
OrgID = export.OrgID,
BillNO = sBillNo, //帳款號碼(1)
CheckDate = Common.FnToTWDate(GetObjectValue(jo, "BillFirstCheckDate")),//對帳日期(2)
BillType = @"20",//帳別(收付)(3)
CustomerCode = oPayer.CustomerNO //客戶供應商代號(4)
};
var sResponsiblePerson = oOpm.ResponsiblePerson.Split('.')[0];
oBillsAdd.ResponsiblePersonCode = Common.CutByteString(sResponsiblePerson, 11); //業務員代號(5)
oBillsAdd.ResponsiblePersonFullCode = oOpm.ResponsiblePerson; //業務員全代號
oBillsAdd.LastGetBillDate = @""; //最近收付日(6)
oBillsAdd.LastGetBillNO = @""; //最近收付單號(7)
oBillsAdd.TaxType = decimal.Parse(GetObjectValue(jo, "TaxSum").Replace(@",", @"")) > 0 ? @"5" : @"6";//稅別(8)
oBillsAdd.NOTaxAmount = GetObjectValue(jo, "AmountSum"); //未稅金額(9)
oBillsAdd.BillAmount = GetObjectValue(jo, "AmountTaxSum"); //帳款金額(10)
oBillsAdd.PaymentAmount = @"0"; //收付金額(11)
oBillsAdd.Allowance = @"0"; //折讓金額(12)
oBillsAdd.DebtAmount = @"0"; //呆帳金額(13)
oBillsAdd.ExchangeAmount = @"0"; //匯兌損益金額(14)
oBillsAdd.Settle = @"N"; //結清否(15)
oBillsAdd.InvoiceStartNumber = @""; //發票號碼(起)(16)
oBillsAdd.InvoiceEndNumber = @"";//發票號碼(迄)(17)
oBillsAdd.Category = @"";//傳票類別(18)
oBillsAdd.OrderNo = @"";//訂單單號(19)
oBillsAdd.ClosingNote = @"N"; //結帳註記(20)
oBillsAdd.GeneralInvoiceNumber = @""; //立帳總帳傳票號碼(21)
oBillsAdd.GeneralSerialNumber = @""; //立帳總帳傳票序號(22)
oBillsAdd.Remark1 = @""; //備註一(30C)(23)
oBillsAdd.AccountSource = @"0"; //帳款來源(24)
oBillsAdd.UpdateDate = @""; //更新日期(25)
oBillsAdd.UpdatePersonnel = @""; //更新人員(26)
oBillsAdd.DepartmentSiteNumber = oOpm.DepartmentID; //部門\ 工地編號(27)
if (!string.IsNullOrWhiteSpace(oOpm.ExhibitionNO))
{
var oExhibition = db.Queryable<OTB_OPM_Exhibition>().Single(it => it.SN == oOpm.ExhibitionNO.ObjToInt());
oBillsAdd.ProjectNumber = oExhibition == null ? @"" : oExhibition.ExhibitionCode; //專案\ 項目編號(28)
}
else
{
oBillsAdd.ProjectNumber = @""; //專案\ 項目編號(28)
}
oBillsAdd.TransferBNotes = @""; //轉B 帳註記(29)
oBillsAdd.ABNumber = @""; //A|B 帳唯一流水號(30)
oBillsAdd.EnterNumber = @""; //進銷單號(31)
var sCurrency = GetObjectValue(jo, "Currency");
if (export.OrgID == "SG")
{
if (sCurrency == "RMB")
{
sCurrency = "";
}
}
else
{
if (sCurrency == "NTD")
{
sCurrency = "";
}
}
oBillsAdd.ForeignCurrencyCode = sCurrency; //外幣代號(32)
var sExchangeRate = GetObjectValue(jo, "ExchangeRate");
oBillsAdd.ExchangeRate = sExchangeRate; //匯率(33)
oBillsAdd.ForeignAmount = (decimal.Parse(GetObjectValue(jo, "AmountTaxSum")) * decimal.Parse(sExchangeRate == @"" ? @"1" : sExchangeRate)).ToString(); //外幣金額(34)
oBillsAdd.PayAmount = @"0"; //收付沖抵金額(35)
oBillsAdd.RefundAmount = @"0"; //退款金額(36)
oBillsAdd.PaymentTerms = @""; //收付條件(37)
oBillsAdd.AccountDate = Common.FnToTWDate(GetObjectValue(jo, "BillFirstCheckDate")); //帳款日期(38)
oBillsAdd.DCreditCardNumber = @""; //預設信用卡號(39)
oBillsAdd.ClosingDate = @""; //結帳日期(40)
oBillsAdd.CusField1 = @""; //自定義欄位一(41)
oBillsAdd.CusField2 = @""; //自定義欄位二(42)
oBillsAdd.CusField3 = @""; //自定義欄位三(43)
oBillsAdd.CusField4 = @""; //自定義欄位四(44)
oBillsAdd.CusField5 = @""; //自定義欄位五(45)
oBillsAdd.CusField6 = @"0"; //自定義欄位六(46)
oBillsAdd.CusField7 = @"0"; //自定義欄位七(47)
oBillsAdd.CusField8 = @"0"; //自定義欄位八(48)
oBillsAdd.CusField9 = @"0"; //自定義欄位九(49)
oBillsAdd.CusField10 = @"0"; //自定義欄位十(50)
oBillsAdd.CusField11 = @""; //自定義欄位十一(51)
oBillsAdd.CusField12 = @""; //自定義欄位十二(52)
oBillsAdd.Remark2 = @""; //備註二(M)(53)
oBillsAdd.TWNOTaxAmount = GetObjectValue(jo, "AmountSum"); //台幣未稅金額(54)
oBillsAdd.TWAmount = GetObjectValue(jo, "AmountTaxSum"); //台幣帳款金額(55)
oBillsAdd.CreateUser = export.ModifyUser;
oBillsAdd.CreateDate = ((DateTime)export.ModifyDate).ToString(@"yyyy/MM/dd HH:mm:ss");
oBillsAdd.BillFirstCheckDate = string.IsNullOrEmpty(GetObjectValue(jo, "BillFirstCheckDate")) ? DateTime.Now.ToString(@"yyyy/MM/dd HH:mm:ss") : GetObjectValue(jo, "BillFirstCheckDate");
oBillsAdd.Advance = GetObjectValue(jo, "Advance"); //預收
oBillsAdd.TaxSum = GetObjectValue(jo, "TaxSum"); //稅額
oBillsAdd.TotalReceivable = GetObjectValue(jo, "TotalReceivable"); //總應收
oBillsAdd.IsRetn = string.IsNullOrEmpty(GetObjectValue(jo, "IsRetn")) ? @"N" : GetObjectValue(jo, "IsRetn"); //是否為退運
oBillsAdd.Url = sUrl; //Url
db.Insertable(oBillsAdd).ExecuteCommand();
if (dicSucceccCount.Keys.Contains("退運出口審核"))
{
dicSucceccCount["退運出口審核"] = dicSucceccCount["退運出口審核"] + 1;
}
else
{
dicSucceccCount.Add("退運出口審核", 1);
}
#endregion
}
else if (sAuditVal == "5")
{
#region 過帳
var oBillsAdd = new OTB_OPM_Bills
{
OrgID = export.OrgID,
BillNO = sBillNo, //帳款號碼(1)
CheckDate = Common.FnToTWDate(GetObjectValue(jo, "BillFirstCheckDate")),//對帳日期(2)
BillType = @"20",//帳別(收付)(3)
CustomerCode = oPayer.CustomerNO //客戶供應商代號(4)
};
var sResponsiblePerson = oOpm.ResponsiblePerson.Split('.')[0];
oBillsAdd.ResponsiblePersonCode = Common.CutByteString(sResponsiblePerson, 11); //業務員代號(5)
oBillsAdd.ResponsiblePersonFullCode = oOpm.ResponsiblePerson; //業務員全代號
oBillsAdd.LastGetBillDate = @""; //最近收付日(6)
oBillsAdd.LastGetBillNO = @""; //最近收付單號(7)
oBillsAdd.TaxType = decimal.Parse(GetObjectValue(jo, "TaxSum").Replace(@",", @"")) > 0 ? @"5" : @"6";//稅別(8)
oBillsAdd.NOTaxAmount = GetObjectValue(jo, "AmountSum"); //未稅金額(9)
oBillsAdd.BillAmount = GetObjectValue(jo, "AmountTaxSum"); //帳款金額(10)
oBillsAdd.PaymentAmount = @"0"; //收付金額(11)
oBillsAdd.Allowance = @"0"; //折讓金額(12)
oBillsAdd.DebtAmount = @"0"; //呆帳金額(13)
oBillsAdd.ExchangeAmount = @"0"; //匯兌損益金額(14)
oBillsAdd.Settle = @"N"; //結清否(15)
oBillsAdd.InvoiceStartNumber = GetObjectValue(jo, "InvoiceNumber"); //發票號碼(起)(16)
oBillsAdd.InvoiceEndNumber = GetObjectValue(jo, "InvoiceNumber");//發票號碼(迄)(17)
oBillsAdd.Category = @"";//傳票類別(18)
oBillsAdd.OrderNo = @"";//訂單單號(19)
oBillsAdd.ClosingNote = @"N"; //結帳註記(20)
oBillsAdd.GeneralInvoiceNumber = @""; //立帳總帳傳票號碼(21)
oBillsAdd.GeneralSerialNumber = @""; //立帳總帳傳票序號(22)
oBillsAdd.Remark1 = @""; //備註一(30C)(23)
oBillsAdd.AccountSource = @"0"; //帳款來源(24)
oBillsAdd.UpdateDate = @""; //更新日期(25)
oBillsAdd.UpdatePersonnel = @""; //更新人員(26)
oBillsAdd.DepartmentSiteNumber = oOpm.DepartmentID; //部門\ 工地編號(27)
if (!string.IsNullOrWhiteSpace(oOpm.ExhibitionNO))
{
var oExhibition = db.Queryable<OTB_OPM_Exhibition>().Single(it => it.SN == oOpm.ExhibitionNO.ObjToInt());
oBillsAdd.ProjectNumber = oExhibition == null ? @"" : oExhibition.ExhibitionCode; //專案\ 項目編號(28)
}
else
{
oBillsAdd.ProjectNumber = @""; //專案\ 項目編號(28)
}
oBillsAdd.TransferBNotes = @""; //轉B 帳註記(29)
oBillsAdd.ABNumber = @""; //A|B 帳唯一流水號(30)
oBillsAdd.EnterNumber = @""; //進銷單號(31)
var sCurrency = GetObjectValue(jo, "Currency");
if (export.OrgID == "SG")
{
if (sCurrency == "RMB")
{
sCurrency = "";
}
}
else
{
if (sCurrency == "NTD")
{
sCurrency = "";
}
}
oBillsAdd.ForeignCurrencyCode = sCurrency; //外幣代號(32)
var sExchangeRate = GetObjectValue(jo, "ExchangeRate");
oBillsAdd.ExchangeRate = sExchangeRate; //匯率(33)
oBillsAdd.ForeignAmount = (decimal.Parse(GetObjectValue(jo, "AmountTaxSum")) * decimal.Parse(sExchangeRate == @"" ? @"1" : sExchangeRate)).ToString(); //外幣金額(34)
oBillsAdd.PayAmount = @"0"; //收付沖抵金額(35)
oBillsAdd.RefundAmount = @"0"; //退款金額(36)
oBillsAdd.PaymentTerms = @""; //收付條件(37)
oBillsAdd.AccountDate = Common.FnToTWDate(GetObjectValue(jo, "BillFirstCheckDate")); //帳款日期(38)
oBillsAdd.DCreditCardNumber = @""; //預設信用卡號(39)
oBillsAdd.ClosingDate = @""; //結帳日期(40)
oBillsAdd.CusField1 = @""; //自定義欄位一(41)
oBillsAdd.CusField2 = @""; //自定義欄位二(42)
oBillsAdd.CusField3 = @""; //自定義欄位三(43)
oBillsAdd.CusField4 = @""; //自定義欄位四(44)
oBillsAdd.CusField5 = @""; //自定義欄位五(45)
oBillsAdd.CusField6 = @"0"; //自定義欄位六(46)
oBillsAdd.CusField7 = @"0"; //自定義欄位七(47)
oBillsAdd.CusField8 = @"0"; //自定義欄位八(48)
oBillsAdd.CusField9 = @"0"; //自定義欄位九(49)
oBillsAdd.CusField10 = @"0"; //自定義欄位十(50)
oBillsAdd.CusField11 = @""; //自定義欄位十一(51)
oBillsAdd.CusField12 = @""; //自定義欄位十二(52)
oBillsAdd.Remark2 = @""; //備註二(M)(53)
oBillsAdd.TWNOTaxAmount = GetObjectValue(jo, "AmountSum"); //台幣未稅金額(54)
oBillsAdd.TWAmount = GetObjectValue(jo, "AmountTaxSum"); //台幣帳款金額(55)
oBillsAdd.CreateUser = export.ModifyUser;
oBillsAdd.CreateDate = ((DateTime)export.ModifyDate).ToString(@"yyyy/MM/dd HH:mm:ss");
oBillsAdd.BillFirstCheckDate = string.IsNullOrEmpty(GetObjectValue(jo, "BillFirstCheckDate")) ? DateTime.Now.ToString(@"yyyy/MM/dd HH:mm:ss") : GetObjectValue(jo, "BillFirstCheckDate");
oBillsAdd.Advance = GetObjectValue(jo, "Advance"); //預收
oBillsAdd.TaxSum = GetObjectValue(jo, "TaxSum"); //稅額
oBillsAdd.TotalReceivable = GetObjectValue(jo, "TotalReceivable"); //總應收
oBillsAdd.IsRetn = string.IsNullOrEmpty(GetObjectValue(jo, "IsRetn")) ? @"N" : GetObjectValue(jo, "IsRetn"); //是否為退運
oBillsAdd.Url = sUrl; //Url
db.Insertable(oBillsAdd).ExecuteCommand();
if (dicSucceccCount.Keys.Contains("退運出口過帳"))
{
dicSucceccCount["退運出口過帳"] = dicSucceccCount["退運出口過帳"] + 1;
}
else
{
dicSucceccCount.Add("退運出口過帳", 1);
}
#endregion
}
}
}
}
}
}
}
}
}
#endregion
return sMsg;
}
public string Other(string sStartDate, string sEndDate, SqlSugarClient db)
{
string sMsg = null;
DateTime dtSettingStartDate = Convert.ToDateTime(sStartDate);
DateTime dtSettingEnd = Convert.ToDateTime(sEndDate);
if (ExcOther || BillsNo.Any())
{
#region 其他
var data3 = db.Queryable<OTB_OPM_OtherExhibition>()
.Where(x => x.ModifyDate <= SqlFunc.ToDate(sEndDate) && x.ModifyDate >= SqlFunc.ToDate(sStartDate))
.ToList();
foreach (OTB_OPM_OtherExhibition other in data3)
{
//解析bill
if (!string.IsNullOrEmpty(other.Bills))
{
JArray ja = JArray.Parse(other.Bills);
if (ja.Count > 0)
{
var sdb = new SimpleClient<OTB_OPM_OtherExhibition>(db);
var oOpm = sdb.GetById(other.Guid);
if (oOpm == null)
{
sMsg = $"其他GUID:{ other.Guid } => 系統找不到對應的基本資料,請核查!";
break;
}
foreach (JObject jo in ja.OfType<JObject>())
{
string sBillNo = GetObjectValue(jo, "BillNO");
string sAuditVal = GetObjectValue(jo, "AuditVal");
string sBillCheckDate = GetObjectValue(jo, "BillCheckDate");
string sPayer = GetObjectValue(jo, "Payer");
string sUrl = @"OtherBusiness_Upd|?Action=Upd&GoTab=2&ExportBillNO=" + oOpm.Guid + @"&BillNO=" + sBillNo;
DateTime dtCreateDate;
if (BillsNo.Any() && !BillsNo.Contains(sBillNo))
{
continue;
}
if (DateTime.TryParse(sBillCheckDate, out dtCreateDate))
{
if (dtCreateDate <= dtSettingEnd && dtCreateDate >= dtSettingStartDate)
{
var oPayer = new OTB_CRM_Customers();
if (!string.IsNullOrEmpty(sPayer))
{
oPayer = db.Queryable<OTB_CRM_Customers>().Single(it => it.guid == sPayer);
if (oPayer == null)
{
sMsg = $"其他GUID:{ other.Guid } => 系統找不到付款人資訊";
break;
}
}
//狀態4(已銷帳)/6(已作廢)當成已審核拋轉
if (sAuditVal == "2" || sAuditVal == "4" || sAuditVal == "6")
{
#region 審核
var oBillsAdd = new OTB_OPM_Bills
{
OrgID = other.OrgID,
BillNO = sBillNo, //帳款號碼(1)
CheckDate = Common.FnToTWDate(GetObjectValue(jo, "BillFirstCheckDate")),//對帳日期(2)
BillType = @"20",//帳別(收付)(3)
CustomerCode = oPayer.CustomerNO //客戶供應商代號(4)
};
var sResponsiblePerson = oOpm.ResponsiblePerson.Split('.')[0];
oBillsAdd.ResponsiblePersonCode = Common.CutByteString(sResponsiblePerson, 11); //業務員代號(5)
oBillsAdd.ResponsiblePersonFullCode = oOpm.ResponsiblePerson; //業務員全代號
oBillsAdd.LastGetBillDate = @""; //最近收付日(6)
oBillsAdd.LastGetBillNO = @""; //最近收付單號(7)
oBillsAdd.TaxType = decimal.Parse(GetObjectValue(jo, "TaxSum").Replace(@",", @"")) > 0 ? @"5" : @"6";//稅別(8)
oBillsAdd.NOTaxAmount = GetObjectValue(jo, "AmountSum"); //未稅金額(9)
oBillsAdd.BillAmount = GetObjectValue(jo, "AmountTaxSum"); //帳款金額(10)
oBillsAdd.PaymentAmount = @"0"; //收付金額(11)
oBillsAdd.Allowance = @"0"; //折讓金額(12)
oBillsAdd.DebtAmount = @"0"; //呆帳金額(13)
oBillsAdd.ExchangeAmount = @"0"; //匯兌損益金額(14)
oBillsAdd.Settle = @"N"; //結清否(15)
oBillsAdd.InvoiceStartNumber = @""; //發票號碼(起)(16)
oBillsAdd.InvoiceEndNumber = @"";//發票號碼(迄)(17)
oBillsAdd.Category = @"";//傳票類別(18)
oBillsAdd.OrderNo = @"";//訂單單號(19)
oBillsAdd.ClosingNote = @"N"; //結帳註記(20)
oBillsAdd.GeneralInvoiceNumber = @""; //立帳總帳傳票號碼(21)
oBillsAdd.GeneralSerialNumber = @""; //立帳總帳傳票序號(22)
oBillsAdd.Remark1 = @""; //備註一(30C)(23)
oBillsAdd.AccountSource = @"0"; //帳款來源(24)
oBillsAdd.UpdateDate = @""; //更新日期(25)
oBillsAdd.UpdatePersonnel = @""; //更新人員(26)
oBillsAdd.DepartmentSiteNumber = oOpm.DepartmentID; //部門\ 工地編號(27)
if (!string.IsNullOrWhiteSpace(oOpm.ExhibitionNO))
{
var oExhibition = db.Queryable<OTB_OPM_Exhibition>().Single(it => it.SN == oOpm.ExhibitionNO.ObjToInt());
oBillsAdd.ProjectNumber = oExhibition == null ? @"" : oExhibition.ExhibitionCode; //專案\ 項目編號(28)
}
else
{
oBillsAdd.ProjectNumber = @""; //專案\ 項目編號(28)
}
oBillsAdd.TransferBNotes = @""; //轉B 帳註記(29)
oBillsAdd.ABNumber = @""; //A|B 帳唯一流水號(30)
oBillsAdd.EnterNumber = @""; //進銷單號(31)
var sCurrency = GetObjectValue(jo, "Currency");
if (other.OrgID == "SG")
{
if (sCurrency == "RMB")
{
sCurrency = "";
}
}
else
{
if (sCurrency == "NTD")
{
sCurrency = "";
}
}
oBillsAdd.ForeignCurrencyCode = sCurrency; //外幣代號(32)
var sExchangeRate = GetObjectValue(jo, "ExchangeRate");
oBillsAdd.ExchangeRate = sExchangeRate; //匯率(33)
oBillsAdd.ForeignAmount = (decimal.Parse(GetObjectValue(jo, "AmountTaxSum")) * decimal.Parse(sExchangeRate == @"" ? @"1" : sExchangeRate)).ToString(); //外幣金額(34)
oBillsAdd.PayAmount = @"0"; //收付沖抵金額(35)
oBillsAdd.RefundAmount = @"0"; //退款金額(36)
oBillsAdd.PaymentTerms = @""; //收付條件(37)
oBillsAdd.AccountDate = Common.FnToTWDate(GetObjectValue(jo, "BillFirstCheckDate")); //帳款日期(38)
oBillsAdd.DCreditCardNumber = @""; //預設信用卡號(39)
oBillsAdd.ClosingDate = @""; //結帳日期(40)
oBillsAdd.CusField1 = @""; //自定義欄位一(41)
oBillsAdd.CusField2 = @""; //自定義欄位二(42)
oBillsAdd.CusField3 = @""; //自定義欄位三(43)
oBillsAdd.CusField4 = @""; //自定義欄位四(44)
oBillsAdd.CusField5 = @""; //自定義欄位五(45)
oBillsAdd.CusField6 = @"0"; //自定義欄位六(46)
oBillsAdd.CusField7 = @"0"; //自定義欄位七(47)
oBillsAdd.CusField8 = @"0"; //自定義欄位八(48)
oBillsAdd.CusField9 = @"0"; //自定義欄位九(49)
oBillsAdd.CusField10 = @"0"; //自定義欄位十(50)
oBillsAdd.CusField11 = @""; //自定義欄位十一(51)
oBillsAdd.CusField12 = @""; //自定義欄位十二(52)
oBillsAdd.Remark2 = @""; //備註二(M)(53)
oBillsAdd.TWNOTaxAmount = GetObjectValue(jo, "AmountSum"); //台幣未稅金額(54)
oBillsAdd.TWAmount = GetObjectValue(jo, "AmountTaxSum"); //台幣帳款金額(55)
oBillsAdd.CreateUser = other.ModifyUser;
oBillsAdd.CreateDate = ((DateTime)other.ModifyDate).ToString(@"yyyy/MM/dd HH:mm:ss");
oBillsAdd.BillFirstCheckDate = string.IsNullOrEmpty(GetObjectValue(jo, "BillFirstCheckDate")) ? DateTime.Now.ToString(@"yyyy/MM/dd HH:mm:ss") : GetObjectValue(jo, "BillFirstCheckDate");
oBillsAdd.Advance = GetObjectValue(jo, "Advance"); //預收
oBillsAdd.TaxSum = GetObjectValue(jo, "TaxSum"); //稅額
oBillsAdd.TotalReceivable = GetObjectValue(jo, "TotalReceivable"); //總應收
oBillsAdd.IsRetn = string.IsNullOrEmpty(GetObjectValue(jo, "IsRetn")) ? @"N" : GetObjectValue(jo, "IsRetn"); //是否為退運
oBillsAdd.Url = sUrl; //Url
db.Insertable(oBillsAdd).ExecuteCommand();
if (dicSucceccCount.Keys.Contains("其他審核"))
{
dicSucceccCount["其他審核"] = dicSucceccCount["其他審核"] + 1;
}
else
{
dicSucceccCount.Add("其他審核", 1);
}
#endregion
}
else if (sAuditVal == "5")
{
#region 過帳
var oBillsAdd = new OTB_OPM_Bills
{
OrgID = other.OrgID,
BillNO = sBillNo, //帳款號碼(1)
CheckDate = Common.FnToTWDate(GetObjectValue(jo, "BillFirstCheckDate")),//對帳日期(2)
BillType = @"20",//帳別(收付)(3)
CustomerCode = oPayer.CustomerNO //客戶供應商代號(4)
};
var sResponsiblePerson = oOpm.ResponsiblePerson.Split('.')[0];
oBillsAdd.ResponsiblePersonCode = Common.CutByteString(sResponsiblePerson, 11); //業務員代號(5)
oBillsAdd.ResponsiblePersonFullCode = oOpm.ResponsiblePerson; //業務員全代號
oBillsAdd.LastGetBillDate = @""; //最近收付日(6)
oBillsAdd.LastGetBillNO = @""; //最近收付單號(7)
oBillsAdd.TaxType = decimal.Parse(GetObjectValue(jo, "TaxSum").Replace(@",", @"")) > 0 ? @"5" : @"6";//稅別(8)
oBillsAdd.NOTaxAmount = GetObjectValue(jo, "AmountSum"); //未稅金額(9)
oBillsAdd.BillAmount = GetObjectValue(jo, "AmountTaxSum"); //帳款金額(10)
oBillsAdd.PaymentAmount = @"0"; //收付金額(11)
oBillsAdd.Allowance = @"0"; //折讓金額(12)
oBillsAdd.DebtAmount = @"0"; //呆帳金額(13)
oBillsAdd.ExchangeAmount = @"0"; //匯兌損益金額(14)
oBillsAdd.Settle = @"N"; //結清否(15)
oBillsAdd.InvoiceStartNumber = GetObjectValue(jo, "InvoiceNumber"); //發票號碼(起)(16)
oBillsAdd.InvoiceEndNumber = GetObjectValue(jo, "InvoiceNumber");//發票號碼(迄)(17)
oBillsAdd.Category = @"";//傳票類別(18)
oBillsAdd.OrderNo = @"";//訂單單號(19)
oBillsAdd.ClosingNote = @"N"; //結帳註記(20)
oBillsAdd.GeneralInvoiceNumber = @""; //立帳總帳傳票號碼(21)
oBillsAdd.GeneralSerialNumber = @""; //立帳總帳傳票序號(22)
oBillsAdd.Remark1 = @""; //備註一(30C)(23)
oBillsAdd.AccountSource = @"0"; //帳款來源(24)
oBillsAdd.UpdateDate = @""; //更新日期(25)
oBillsAdd.UpdatePersonnel = @""; //更新人員(26)
oBillsAdd.DepartmentSiteNumber = oOpm.DepartmentID; //部門\ 工地編號(27)
if (!string.IsNullOrWhiteSpace(oOpm.ExhibitionNO))
{
var oExhibition = db.Queryable<OTB_OPM_Exhibition>().Single(it => it.SN == oOpm.ExhibitionNO.ObjToInt());
oBillsAdd.ProjectNumber = oExhibition == null ? @"" : oExhibition.ExhibitionCode; //專案\ 項目編號(28)
}
else
{
oBillsAdd.ProjectNumber = @""; //專案\ 項目編號(28)
}
oBillsAdd.TransferBNotes = @""; //轉B 帳註記(29)
oBillsAdd.ABNumber = @""; //A|B 帳唯一流水號(30)
oBillsAdd.EnterNumber = @""; //進銷單號(31)
var sCurrency = GetObjectValue(jo, "Currency");
if (other.OrgID == "SG")
{
if (sCurrency == "RMB")
{
sCurrency = "";
}
}
else
{
if (sCurrency == "NTD")
{
sCurrency = "";
}
}
oBillsAdd.ForeignCurrencyCode = sCurrency; //外幣代號(32)
var sExchangeRate = GetObjectValue(jo, "ExchangeRate");
oBillsAdd.ExchangeRate = sExchangeRate; //匯率(33)
oBillsAdd.ForeignAmount = (decimal.Parse(GetObjectValue(jo, "AmountTaxSum")) * decimal.Parse(sExchangeRate == @"" ? @"1" : sExchangeRate)).ToString(); //外幣金額(34)
oBillsAdd.PayAmount = @"0"; //收付沖抵金額(35)
oBillsAdd.RefundAmount = @"0"; //退款金額(36)
oBillsAdd.PaymentTerms = @""; //收付條件(37)
oBillsAdd.AccountDate = Common.FnToTWDate(GetObjectValue(jo, "BillFirstCheckDate")); //帳款日期(38)
oBillsAdd.DCreditCardNumber = @""; //預設信用卡號(39)
oBillsAdd.ClosingDate = @""; //結帳日期(40)
oBillsAdd.CusField1 = @""; //自定義欄位一(41)
oBillsAdd.CusField2 = @""; //自定義欄位二(42)
oBillsAdd.CusField3 = @""; //自定義欄位三(43)
oBillsAdd.CusField4 = @""; //自定義欄位四(44)
oBillsAdd.CusField5 = @""; //自定義欄位五(45)
oBillsAdd.CusField6 = @"0"; //自定義欄位六(46)
oBillsAdd.CusField7 = @"0"; //自定義欄位七(47)
oBillsAdd.CusField8 = @"0"; //自定義欄位八(48)
oBillsAdd.CusField9 = @"0"; //自定義欄位九(49)
oBillsAdd.CusField10 = @"0"; //自定義欄位十(50)
oBillsAdd.CusField11 = @""; //自定義欄位十一(51)
oBillsAdd.CusField12 = @""; //自定義欄位十二(52)
oBillsAdd.Remark2 = @""; //備註二(M)(53)
oBillsAdd.TWNOTaxAmount = GetObjectValue(jo, "AmountSum"); //台幣未稅金額(54)
oBillsAdd.TWAmount = GetObjectValue(jo, "AmountTaxSum"); //台幣帳款金額(55)
oBillsAdd.CreateUser = other.ModifyUser;
oBillsAdd.CreateDate = ((DateTime)other.ModifyDate).ToString(@"yyyy/MM/dd HH:mm:ss");
oBillsAdd.BillFirstCheckDate = string.IsNullOrEmpty(GetObjectValue(jo, "BillFirstCheckDate")) ? DateTime.Now.ToString(@"yyyy/MM/dd HH:mm:ss") : GetObjectValue(jo, "BillFirstCheckDate");
oBillsAdd.Advance = GetObjectValue(jo, "Advance"); //預收
oBillsAdd.TaxSum = GetObjectValue(jo, "TaxSum"); //稅額
oBillsAdd.TotalReceivable = GetObjectValue(jo, "TotalReceivable"); //總應收
oBillsAdd.IsRetn = string.IsNullOrEmpty(GetObjectValue(jo, "IsRetn")) ? @"N" : GetObjectValue(jo, "IsRetn"); //是否為退運
oBillsAdd.Url = sUrl; //Url
db.Insertable(oBillsAdd).ExecuteCommand();
if (dicSucceccCount.Keys.Contains("其他過帳"))
{
dicSucceccCount["其他過帳"] = dicSucceccCount["其他過帳"] + 1;
}
else
{
dicSucceccCount.Add("其他過帳", 1);
}
#endregion
}
}
}
}
}
}
}
#endregion
}
return sMsg;
}
public string OtherTG(string sStartDate, string sEndDate, SqlSugarClient db)
{
string sMsg = null;
DateTime dtSettingStartDate = Convert.ToDateTime(sStartDate);
DateTime dtSettingEnd = Convert.ToDateTime(sEndDate);
if (ExcOtherTG || BillsNo.Any())
{
#region 其他(駒驛)
var data6 = db.Queryable<OTB_OPM_OtherExhibitionTG>()
.Where(x => x.ModifyDate <= SqlFunc.ToDate(sEndDate) && x.ModifyDate >= SqlFunc.ToDate(sStartDate))
.ToList();
foreach (OTB_OPM_OtherExhibitionTG OtherTG in data6)
{
//解析bill
if (!string.IsNullOrEmpty(OtherTG.Bills))
{
JArray ja = JArray.Parse(OtherTG.Bills);
if (ja.Count > 0)
{
var sdb = new SimpleClient<OTB_OPM_OtherExhibitionTG>(db);
var oOpm = sdb.GetById(OtherTG.Guid);
if (oOpm == null)
{
sMsg = $"其他(駒驛)GUID:{ OtherTG.Guid } => 系統找不到對應的基本資料,請核查!";
break;
}
foreach (JObject jo in ja.OfType<JObject>())
{
string sBillNo = GetObjectValue(jo, "BillNO");
string sAuditVal = GetObjectValue(jo, "AuditVal");
string sBillCheckDate = GetObjectValue(jo, "BillCheckDate");
string sPayer = GetObjectValue(jo, "Payer");
string sUrl = @"OtherExhibitionTG_Upd|?Action=Upd&GoTab=3&Guid=" + oOpm.Guid + @"&BillNO=" + sBillNo;
DateTime dtCreateDate;
if (BillsNo.Any() && !BillsNo.Contains(sBillNo))
{
continue;
}
var oPayer = new OTB_CRM_Customers();
if (!string.IsNullOrEmpty(sPayer))
{
oPayer = db.Queryable<OTB_CRM_Customers>().Single(it => it.guid == sPayer);
if (oPayer == null)
{
sMsg = $"其他(駒驛)GUID:{ OtherTG.Guid } => 系統找不到付款人資訊";
break;
}
}
//狀態4(已銷帳)/6(已作廢)當成已審核拋轉
if (sAuditVal == "2" || sAuditVal == "4" || sAuditVal == "6")
{
#region 審核
var oBillsAdd = new OTB_OPM_Bills
{
OrgID = OtherTG.OrgID,
BillNO = sBillNo, //帳款號碼(1)
CheckDate = Common.FnToTWDate(GetObjectValue(jo, "BillFirstCheckDate")),//對帳日期(2)
BillType = @"20",//帳別(收付)(3)
CustomerCode = oPayer.CustomerNO //客戶供應商代號(4)
};
var sResponsiblePerson = oOpm.ResponsiblePerson.Split('.')[0];
oBillsAdd.ResponsiblePersonCode = Common.CutByteString(sResponsiblePerson, 11); //業務員代號(5)
oBillsAdd.ResponsiblePersonFullCode = oOpm.ResponsiblePerson; //業務員全代號
oBillsAdd.LastGetBillDate = @""; //最近收付日(6)
oBillsAdd.LastGetBillNO = @""; //最近收付單號(7)
oBillsAdd.TaxType = decimal.Parse(GetObjectValue(jo, "TaxSum").Replace(@",", @"")) > 0 ? @"5" : @"6";//稅別(8)
oBillsAdd.NOTaxAmount = GetObjectValue(jo, "AmountSum"); //未稅金額(9)
oBillsAdd.BillAmount = GetObjectValue(jo, "AmountTaxSum"); //帳款金額(10)
oBillsAdd.PaymentAmount = @"0"; //收付金額(11)
oBillsAdd.Allowance = @"0"; //折讓金額(12)
oBillsAdd.DebtAmount = @"0"; //呆帳金額(13)
oBillsAdd.ExchangeAmount = @"0"; //匯兌損益金額(14)
oBillsAdd.Settle = @"N"; //結清否(15)
oBillsAdd.InvoiceStartNumber = @""; //發票號碼(起)(16)
oBillsAdd.InvoiceEndNumber = @"";//發票號碼(迄)(17)
oBillsAdd.Category = @"";//傳票類別(18)
oBillsAdd.OrderNo = @"";//訂單單號(19)
oBillsAdd.ClosingNote = @"N"; //結帳註記(20)
oBillsAdd.GeneralInvoiceNumber = @""; //立帳總帳傳票號碼(21)
oBillsAdd.GeneralSerialNumber = @""; //立帳總帳傳票序號(22)
oBillsAdd.Remark1 = @""; //備註一(30C)(23)
oBillsAdd.AccountSource = @"0"; //帳款來源(24)
oBillsAdd.UpdateDate = @""; //更新日期(25)
oBillsAdd.UpdatePersonnel = @""; //更新人員(26)
oBillsAdd.DepartmentSiteNumber = oOpm.DepartmentID; //部門\ 工地編號(27)
if (!string.IsNullOrWhiteSpace(oOpm.ExhibitionNO))
{
var oExhibition = db.Queryable<OTB_OPM_Exhibition>().Single(it => it.SN == oOpm.ExhibitionNO.ObjToInt());
oBillsAdd.ProjectNumber = oExhibition == null ? @"" : oExhibition.ExhibitionCode; //專案\ 項目編號(28)
}
else
{
oBillsAdd.ProjectNumber = @""; //專案\ 項目編號(28)
}
oBillsAdd.TransferBNotes = @""; //轉B 帳註記(29)
oBillsAdd.ABNumber = @""; //A|B 帳唯一流水號(30)
oBillsAdd.EnterNumber = @""; //進銷單號(31)
var sCurrency = GetObjectValue(jo, "Currency");
if (OtherTG.OrgID == "SG")
{
if (sCurrency == "RMB")
{
sCurrency = "";
}
}
else
{
if (sCurrency == "NTD")
{
sCurrency = "";
}
}
oBillsAdd.ForeignCurrencyCode = sCurrency; //外幣代號(32)
var sExchangeRate = GetObjectValue(jo, "ExchangeRate");
oBillsAdd.ExchangeRate = sExchangeRate; //匯率(33)
oBillsAdd.ForeignAmount = (decimal.Parse(GetObjectValue(jo, "AmountTaxSum")) * decimal.Parse(sExchangeRate == @"" ? @"1" : sExchangeRate)).ToString(); //外幣金額(34)
oBillsAdd.PayAmount = @"0"; //收付沖抵金額(35)
oBillsAdd.RefundAmount = @"0"; //退款金額(36)
oBillsAdd.PaymentTerms = @""; //收付條件(37)
oBillsAdd.AccountDate = Common.FnToTWDate(GetObjectValue(jo, "BillFirstCheckDate")); //帳款日期(38)
oBillsAdd.DCreditCardNumber = @""; //預設信用卡號(39)
oBillsAdd.ClosingDate = @""; //結帳日期(40)
oBillsAdd.CusField1 = @""; //自定義欄位一(41)
oBillsAdd.CusField2 = @""; //自定義欄位二(42)
oBillsAdd.CusField3 = @""; //自定義欄位三(43)
oBillsAdd.CusField4 = @""; //自定義欄位四(44)
oBillsAdd.CusField5 = @""; //自定義欄位五(45)
oBillsAdd.CusField6 = @"0"; //自定義欄位六(46)
oBillsAdd.CusField7 = @"0"; //自定義欄位七(47)
oBillsAdd.CusField8 = @"0"; //自定義欄位八(48)
oBillsAdd.CusField9 = @"0"; //自定義欄位九(49)
oBillsAdd.CusField10 = @"0"; //自定義欄位十(50)
oBillsAdd.CusField11 = @""; //自定義欄位十一(51)
oBillsAdd.CusField12 = @""; //自定義欄位十二(52)
oBillsAdd.Remark2 = @""; //備註二(M)(53)
oBillsAdd.TWNOTaxAmount = GetObjectValue(jo, "AmountSum"); //台幣未稅金額(54)
oBillsAdd.TWAmount = GetObjectValue(jo, "AmountTaxSum"); //台幣帳款金額(55)
oBillsAdd.CreateUser = OtherTG.ModifyUser;
oBillsAdd.CreateDate = ((DateTime)OtherTG.ModifyDate).ToString(@"yyyy/MM/dd HH:mm:ss");
oBillsAdd.BillFirstCheckDate = string.IsNullOrEmpty(GetObjectValue(jo, "BillFirstCheckDate")) ? DateTime.Now.ToString(@"yyyy/MM/dd HH:mm:ss") : GetObjectValue(jo, "BillFirstCheckDate");
oBillsAdd.Advance = GetObjectValue(jo, "Advance"); //預收
oBillsAdd.TaxSum = GetObjectValue(jo, "TaxSum"); //稅額
oBillsAdd.TotalReceivable = GetObjectValue(jo, "TotalReceivable"); //總應收
oBillsAdd.IsRetn = string.IsNullOrEmpty(GetObjectValue(jo, "IsRetn")) ? @"N" : GetObjectValue(jo, "IsRetn"); //是否為退運
oBillsAdd.Url = sUrl; //Url
db.Insertable(oBillsAdd).ExecuteCommand();
if (dicSucceccCount.Keys.Contains("其他(駒驛)審核"))
{
dicSucceccCount["其他(駒驛)審核"] = dicSucceccCount["其他(駒驛)審核"] + 1;
}
else
{
dicSucceccCount.Add("其他(駒驛)審核", 1);
}
#endregion
}
else if (sAuditVal == "5")
{
#region 過帳
var oBillsAdd = new OTB_OPM_Bills
{
OrgID = OtherTG.OrgID,
BillNO = sBillNo, //帳款號碼(1)
CheckDate = Common.FnToTWDate(GetObjectValue(jo, "BillFirstCheckDate")),//對帳日期(2)
BillType = @"20",//帳別(收付)(3)
CustomerCode = oPayer.CustomerNO //客戶供應商代號(4)
};
var sResponsiblePerson = oOpm.ResponsiblePerson.Split('.')[0];
oBillsAdd.ResponsiblePersonCode = Common.CutByteString(sResponsiblePerson, 11); //業務員代號(5)
oBillsAdd.ResponsiblePersonFullCode = oOpm.ResponsiblePerson; //業務員全代號
oBillsAdd.LastGetBillDate = @""; //最近收付日(6)
oBillsAdd.LastGetBillNO = @""; //最近收付單號(7)
oBillsAdd.TaxType = decimal.Parse(GetObjectValue(jo, "TaxSum").Replace(@",", @"")) > 0 ? @"5" : @"6";//稅別(8)
oBillsAdd.NOTaxAmount = GetObjectValue(jo, "AmountSum"); //未稅金額(9)
oBillsAdd.BillAmount = GetObjectValue(jo, "AmountTaxSum"); //帳款金額(10)
oBillsAdd.PaymentAmount = @"0"; //收付金額(11)
oBillsAdd.Allowance = @"0"; //折讓金額(12)
oBillsAdd.DebtAmount = @"0"; //呆帳金額(13)
oBillsAdd.ExchangeAmount = @"0"; //匯兌損益金額(14)
oBillsAdd.Settle = @"N"; //結清否(15)
oBillsAdd.InvoiceStartNumber = GetObjectValue(jo, "InvoiceNumber"); //發票號碼(起)(16)
oBillsAdd.InvoiceEndNumber = GetObjectValue(jo, "InvoiceNumber");//發票號碼(迄)(17)
oBillsAdd.Category = @"";//傳票類別(18)
oBillsAdd.OrderNo = @"";//訂單單號(19)
oBillsAdd.ClosingNote = @"N"; //結帳註記(20)
oBillsAdd.GeneralInvoiceNumber = @""; //立帳總帳傳票號碼(21)
oBillsAdd.GeneralSerialNumber = @""; //立帳總帳傳票序號(22)
oBillsAdd.Remark1 = @""; //備註一(30C)(23)
oBillsAdd.AccountSource = @"0"; //帳款來源(24)
oBillsAdd.UpdateDate = @""; //更新日期(25)
oBillsAdd.UpdatePersonnel = @""; //更新人員(26)
oBillsAdd.DepartmentSiteNumber = oOpm.DepartmentID; //部門\ 工地編號(27)
if (!string.IsNullOrWhiteSpace(oOpm.ExhibitionNO))
{
var oExhibition = db.Queryable<OTB_OPM_Exhibition>().Single(it => it.SN == oOpm.ExhibitionNO.ObjToInt());
oBillsAdd.ProjectNumber = oExhibition == null ? @"" : oExhibition.ExhibitionCode; //專案\ 項目編號(28)
}
else
{
oBillsAdd.ProjectNumber = @""; //專案\ 項目編號(28)
}
oBillsAdd.TransferBNotes = @""; //轉B 帳註記(29)
oBillsAdd.ABNumber = @""; //A|B 帳唯一流水號(30)
oBillsAdd.EnterNumber = @""; //進銷單號(31)
var sCurrency = GetObjectValue(jo, "Currency");
if (OtherTG.OrgID == "SG")
{
if (sCurrency == "RMB")
{
sCurrency = "";
}
}
else
{
if (sCurrency == "NTD")
{
sCurrency = "";
}
}
oBillsAdd.ForeignCurrencyCode = sCurrency; //外幣代號(32)
var sExchangeRate = GetObjectValue(jo, "ExchangeRate");
oBillsAdd.ExchangeRate = sExchangeRate; //匯率(33)
oBillsAdd.ForeignAmount = (decimal.Parse(GetObjectValue(jo, "AmountTaxSum")) * decimal.Parse(sExchangeRate == @"" ? @"1" : sExchangeRate)).ToString(); //外幣金額(34)
oBillsAdd.PayAmount = @"0"; //收付沖抵金額(35)
oBillsAdd.RefundAmount = @"0"; //退款金額(36)
oBillsAdd.PaymentTerms = @""; //收付條件(37)
oBillsAdd.AccountDate = Common.FnToTWDate(GetObjectValue(jo, "BillFirstCheckDate")); //帳款日期(38)
oBillsAdd.DCreditCardNumber = @""; //預設信用卡號(39)
oBillsAdd.ClosingDate = @""; //結帳日期(40)
oBillsAdd.CusField1 = @""; //自定義欄位一(41)
oBillsAdd.CusField2 = @""; //自定義欄位二(42)
oBillsAdd.CusField3 = @""; //自定義欄位三(43)
oBillsAdd.CusField4 = @""; //自定義欄位四(44)
oBillsAdd.CusField5 = @""; //自定義欄位五(45)
oBillsAdd.CusField6 = @"0"; //自定義欄位六(46)
oBillsAdd.CusField7 = @"0"; //自定義欄位七(47)
oBillsAdd.CusField8 = @"0"; //自定義欄位八(48)
oBillsAdd.CusField9 = @"0"; //自定義欄位九(49)
oBillsAdd.CusField10 = @"0"; //自定義欄位十(50)
oBillsAdd.CusField11 = @""; //自定義欄位十一(51)
oBillsAdd.CusField12 = @""; //自定義欄位十二(52)
oBillsAdd.Remark2 = @""; //備註二(M)(53)
oBillsAdd.TWNOTaxAmount = GetObjectValue(jo, "AmountSum"); //台幣未稅金額(54)
oBillsAdd.TWAmount = GetObjectValue(jo, "AmountTaxSum"); //台幣帳款金額(55)
oBillsAdd.CreateUser = OtherTG.ModifyUser;
oBillsAdd.CreateDate = ((DateTime)OtherTG.ModifyDate).ToString(@"yyyy/MM/dd HH:mm:ss");
oBillsAdd.BillFirstCheckDate = string.IsNullOrEmpty(GetObjectValue(jo, "BillFirstCheckDate")) ? DateTime.Now.ToString(@"yyyy/MM/dd HH:mm:ss") : GetObjectValue(jo, "BillFirstCheckDate");
oBillsAdd.Advance = GetObjectValue(jo, "Advance"); //預收
oBillsAdd.TaxSum = GetObjectValue(jo, "TaxSum"); //稅額
oBillsAdd.TotalReceivable = GetObjectValue(jo, "TotalReceivable"); //總應收
oBillsAdd.IsRetn = string.IsNullOrEmpty(GetObjectValue(jo, "IsRetn")) ? @"N" : GetObjectValue(jo, "IsRetn"); //是否為退運
oBillsAdd.Url = sUrl; //Url
db.Insertable(oBillsAdd).ExecuteCommand();
if (dicSucceccCount.Keys.Contains("其他(駒驛)過帳"))
{
dicSucceccCount["其他(駒驛)過帳"] = dicSucceccCount["其他(駒驛)過帳"] + 1;
}
else
{
dicSucceccCount.Add("其他(駒驛)過帳", 1);
}
#endregion
}
}
}
}
}
#endregion
}
return sMsg;
}
public string Exhibition(string sStartDate, string sEndDate, SqlSugarClient db, bool ReturnBills = false)
{
string sMsg = null;
if (ExcExhibtion || ExhibtionsNo.Any())
{
#region 專案(展覽)
var data4 = db.Queryable<OTB_OPM_Exhibition>()
.Where(x => x.CreateDate <= SqlFunc.ToDate(sEndDate) && x.CreateDate >= SqlFunc.ToDate(sStartDate) && x.IsTransfer == "Y")
.ToList();
foreach (OTB_OPM_Exhibition exhibition in data4)
{
if (ExhibtionsNo.Any() && !ExhibtionsNo.Contains(exhibition.ExhibitionCode))
{
continue;
}
var oExhibitionsTransferUpd = new OTB_OPM_ExhibitionsTransfer
{
OrgID = exhibition.OrgID,
PrjNO = exhibition.ExhibitionCode,
PrjName = Common.CutByteString(exhibition.ExhibitioShotName_TW, 60)
};
var sCreateUser = exhibition.CreateUser.Split('.')[0];
oExhibitionsTransferUpd.PrjCharger = Common.CutByteString(sCreateUser, 11);
oExhibitionsTransferUpd.EndDate = @"";
db.Insertable(oExhibitionsTransferUpd).ExecuteCommand();
if (dicSucceccCount.Keys.Contains("專案(展覽)"))
{
dicSucceccCount["專案(展覽)"] = dicSucceccCount["專案(展覽)"] + 1;
}
else
{
dicSucceccCount.Add("專案(展覽)", 1);
}
}
#endregion
}
return sMsg;
}
public string Customer(string sStartDate, string sEndDate, SqlSugarClient db, bool ReturnBills = false)
{
string sMsg = null;
if (ExcCustomer || ExhibtionsNo.Any())
{
#region 客戶
var data5 = db.Queryable<OTB_CRM_Customers>()
.Where(x => x.CreateDate <= SqlFunc.ToDate(sEndDate) && x.CreateDate >= SqlFunc.ToDate(sStartDate) && x.IsAudit == "Y")
.ToList();
foreach (OTB_CRM_Customers cus in data5)
{
var sdb = new SimpleClient<OTB_CRM_Customers>(db);
var customer = sdb.GetById(cus.guid);
if (customer == null)
{
sMsg = $"客戶GUID:{ cus.guid }系統找不到對應的客戶資料,請核查!";
break;
}
if (ExhibtionsNo.Any() && !ExhibtionsNo.Contains(customer.CustomerNO))
{
continue;
}
var oCustomersTransferAdd = new OTB_CRM_CustomersTransfer();
oCustomersTransferAdd.OrgID = customer.OrgID;
oCustomersTransferAdd.Feild01 = customer.CustomerNO;
oCustomersTransferAdd.Feild02 = @"0";
oCustomersTransferAdd.Feild03 = Common.CutByteString(customer.CustomerShotCName, 12);
oCustomersTransferAdd.Feild04 = Common.CutByteString(customer.CustomerCName == @"" ? customer.CustomerEName : customer.CustomerCName, 60);
oCustomersTransferAdd.Feild05 = @"";
oCustomersTransferAdd.Feild06 = @"";
oCustomersTransferAdd.Feild07 = customer.UniCode;
oCustomersTransferAdd.Feild08 = @"";
oCustomersTransferAdd.Feild09 = @"";
oCustomersTransferAdd.Feild10 = Common.CutByteString(customer.InvoiceAddress, 60);
oCustomersTransferAdd.Feild11 = Common.CutByteString(customer.Address, 60);
oCustomersTransferAdd.Feild12 = @"";
oCustomersTransferAdd.Feild13 = @"";
oCustomersTransferAdd.Feild14 = Common.CutByteString(customer.Telephone, 20);
oCustomersTransferAdd.Feild15 = @"";
oCustomersTransferAdd.Feild16 = Common.CutByteString(customer.FAX, 20);
oCustomersTransferAdd.Feild17 = @"";
oCustomersTransferAdd.Feild18 = @"";
oCustomersTransferAdd.Feild19 = @"";
oCustomersTransferAdd.Feild20 = @"";
oCustomersTransferAdd.Feild21 = @"";
oCustomersTransferAdd.Feild22 = @"";
oCustomersTransferAdd.Feild23 = Common.CutByteString(customer.Memo, 30);
oCustomersTransferAdd.Feild24 = @"100";
oCustomersTransferAdd.Feild25 = @"";
oCustomersTransferAdd.Feild26 = @"";
oCustomersTransferAdd.Feild27 = @"100";
oCustomersTransferAdd.Feild28 = @"";
oCustomersTransferAdd.Feild29 = Common.CutByteString(customer.CreateUser.Split('.')[0], 11);
oCustomersTransferAdd.Feild30 = @"";
oCustomersTransferAdd.Feild31 = @"";
oCustomersTransferAdd.Feild32 = @"";
oCustomersTransferAdd.Feild33 = @"";
oCustomersTransferAdd.Feild34 = @"";
oCustomersTransferAdd.Feild35 = @"";
oCustomersTransferAdd.Feild36 = @"";
oCustomersTransferAdd.Feild37 = @"B,C".IndexOf(customer.TransactionType) > -1 ? @"6" : @"5";
oCustomersTransferAdd.Feild38 = @"2";
oCustomersTransferAdd.Feild39 = @"";
oCustomersTransferAdd.Feild40 = @"";
oCustomersTransferAdd.Feild41 = @"1";
oCustomersTransferAdd.Feild42 = @"";
oCustomersTransferAdd.Feild43 = @"";
oCustomersTransferAdd.Feild44 = @"";
oCustomersTransferAdd.Feild45 = @"";
oCustomersTransferAdd.Feild46 = @"";
oCustomersTransferAdd.Feild47 = @"";
oCustomersTransferAdd.Feild48 = @"";
oCustomersTransferAdd.Feild49 = @"";
oCustomersTransferAdd.Feild50 = @"";
oCustomersTransferAdd.Feild51 = @"";
oCustomersTransferAdd.Feild52 = @"";
oCustomersTransferAdd.Feild53 = @"";
oCustomersTransferAdd.Feild54 = @"";
oCustomersTransferAdd.Feild55 = @"";
oCustomersTransferAdd.Feild56 = @"";
oCustomersTransferAdd.Feild57 = @"";
oCustomersTransferAdd.Feild58 = customer.CustomerNO;
oCustomersTransferAdd.Feild59 = @"";
oCustomersTransferAdd.Feild60 = @"";
oCustomersTransferAdd.Feild61 = @"";
oCustomersTransferAdd.Feild62 = @"";
oCustomersTransferAdd.Feild63 = @"";
oCustomersTransferAdd.Feild64 = @"";
oCustomersTransferAdd.Feild65 = @"";
oCustomersTransferAdd.Feild66 = @"";
oCustomersTransferAdd.Feild67 = @"";
oCustomersTransferAdd.Feild68 = @"";
oCustomersTransferAdd.Feild69 = @"";
oCustomersTransferAdd.Feild70 = @"";
oCustomersTransferAdd.Feild71 = @"";
oCustomersTransferAdd.Feild72 = @"";
oCustomersTransferAdd.Feild73 = @"";
oCustomersTransferAdd.Feild74 = @"";
oCustomersTransferAdd.Feild75 = @"";
oCustomersTransferAdd.Feild76 = @"";
oCustomersTransferAdd.Feild77 = @"";
oCustomersTransferAdd.Feild78 = @"";
oCustomersTransferAdd.Feild79 = @"";
oCustomersTransferAdd.Feild80 = @"";
oCustomersTransferAdd.Feild81 = @"";
oCustomersTransferAdd.Feild82 = Common.CutByteString(customer.CustomerEName, 120);
var sAddress = customer.Address;
var cn = new Regex(@"[一-龥]+");//正则表达式 表示汉字范围
if (cn.IsMatch(sAddress))
{
sAddress = @"";
}
oCustomersTransferAdd.Feild83 = Common.CutByteString(sAddress, 240);
oCustomersTransferAdd.Feild84 = @"";
oCustomersTransferAdd.Feild85 = @"";
oCustomersTransferAdd.Feild86 = @"";
oCustomersTransferAdd.Feild87 = @"";
oCustomersTransferAdd.Feild88 = @"";
oCustomersTransferAdd.Feild89 = @"";
oCustomersTransferAdd.Feild90 = @"";
oCustomersTransferAdd.Feild91 = @"0";
oCustomersTransferAdd.Feild92 = @"0";
oCustomersTransferAdd.Feild93 = @"";
oCustomersTransferAdd.Feild94 = @"";
oCustomersTransferAdd.Feild95 = @"";
oCustomersTransferAdd.Feild96 = @"";
oCustomersTransferAdd.Feild97 = @"";
oCustomersTransferAdd.Feild98 = @"";
oCustomersTransferAdd.Feild99 = @"";
db.Insertable(oCustomersTransferAdd).ExecuteCommand();
if (dicSucceccCount.Keys.Contains("客戶"))
{
dicSucceccCount["客戶"] = dicSucceccCount["客戶"] + 1;
}
else
{
dicSucceccCount.Add("客戶", 1);
}
}
#endregion
}
return sMsg;
}
public string GetObjectValue(JObject i_oJObject, string i_sColumn)
{
string sReturnValue = string.Empty;
if (i_oJObject[i_sColumn] != null)
{
sReturnValue = i_oJObject[i_sColumn].ToString();
}
return sReturnValue;
}
public bool StringConvertBool(string i_sValue)
{
bool blReturn = false;
bool.TryParse((i_sValue as string ?? string.Empty), out blReturn);
return blReturn;
}
}
}