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
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;
|
|
}
|
|
}
|
|
}
|