|
@@ -45,8 +45,16 @@ namespace HH.YiDaSyncNC.DataSync
|
|
|
|
|
|
|
|
DingTalkService _dingTalkService = new DingTalkService(_AppType, _SystemToken, _UserId, _FormId);
|
|
DingTalkService _dingTalkService = new DingTalkService(_AppType, _SystemToken, _UserId, _FormId);
|
|
|
|
|
|
|
|
-
|
|
|
|
|
- var idList = _dingTalkService.GetFormIdList("{\"radioField_lycrvvtk\":\"Y\",\"selectField_lrnh633d\":\"预付\",\"selectField_lwiuvaws\":\"日常费用付款\"}");
|
|
|
|
|
|
|
+ var searchKey = new
|
|
|
|
|
+ {
|
|
|
|
|
+
|
|
|
|
|
+ radioField_lycrvvtk = "Y",
|
|
|
|
|
+ selectField_lrnh633d = "预付",
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ };
|
|
|
|
|
+
|
|
|
|
|
+ var idList = _dingTalkService.GetFormCodeList(JsonConvert.SerializeObject(searchKey));
|
|
|
//LogHelper.WriteLog(JsonConvert.SerializeObject(idList.Count), "idList");
|
|
//LogHelper.WriteLog(JsonConvert.SerializeObject(idList.Count), "idList");
|
|
|
|
|
|
|
|
LogHelper.WriteLog(JsonConvert.SerializeObject(idList), "发票入账数据");
|
|
LogHelper.WriteLog(JsonConvert.SerializeObject(idList), "发票入账数据");
|
|
@@ -66,37 +74,75 @@ namespace HH.YiDaSyncNC.DataSync
|
|
|
|
|
|
|
|
foreach (var item in idList)
|
|
foreach (var item in idList)
|
|
|
{
|
|
{
|
|
|
- string createTime = "";
|
|
|
|
|
- string modifyTime = "";
|
|
|
|
|
|
|
+ //string createTime = "";
|
|
|
|
|
+ //string modifyTime = "";
|
|
|
|
|
|
|
|
- var ydDataSource = _dingTalkService.GetFormDataById(item, out createTime, out modifyTime);
|
|
|
|
|
|
|
+ var ydDataSource = _dingTalkService.GetFormDataByCode(item);
|
|
|
|
|
|
|
|
- // 如果NC单据号不为空,说明付款单已经生成,此时才会进行发票入账,否则先等付款单生成后再执行
|
|
|
|
|
- if (ydDataSource.FirstOrDefault(f => f.Key == "textField_ltxyt75m").Value != null && !string.IsNullOrWhiteSpace(ydDataSource["textField_ltxyt75m"].ToString()))
|
|
|
|
|
|
|
+ LogHelper.WriteLog(JsonConvert.SerializeObject(ydDataSource), "发票入账数据执行");
|
|
|
|
|
+
|
|
|
|
|
+ string jsonData = JsonConvert.SerializeObject(ydDataSource);
|
|
|
|
|
+ YiDa_FPRZD thisYiDaData = JsonConvert.DeserializeObject<YiDa_FPRZD>(jsonData);
|
|
|
|
|
+
|
|
|
|
|
+ if (string.IsNullOrWhiteSpace(thisYiDaData.textField_lzh0m1lg))
|
|
|
{
|
|
{
|
|
|
|
|
|
|
|
|
|
+ LogHelper.WriteLog("供应商为空", "发票入账数据执行");
|
|
|
|
|
+ continue;
|
|
|
|
|
+
|
|
|
}
|
|
}
|
|
|
- else
|
|
|
|
|
|
|
+ if (string.IsNullOrWhiteSpace(thisYiDaData.textField_lzh0m1lh))
|
|
|
{
|
|
{
|
|
|
|
|
+
|
|
|
|
|
+ LogHelper.WriteLog("成本组织为空", "发票入账数据执行");
|
|
|
continue;
|
|
continue;
|
|
|
|
|
+
|
|
|
}
|
|
}
|
|
|
|
|
+ if (thisYiDaData.associationFormField_lzh0m1le_id is null)
|
|
|
|
|
+ {
|
|
|
|
|
|
|
|
- LogHelper.WriteLog(JsonConvert.SerializeObject(ydDataSource), "发票入账数据执行");
|
|
|
|
|
|
|
+ LogHelper.WriteLog("供应商为空", "发票入账数据执行");
|
|
|
|
|
+ continue;
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ var 供应商编码 = thisYiDaData.textField_lzhtchrg;
|
|
|
|
|
+ if (string.IsNullOrWhiteSpace(供应商编码))
|
|
|
|
|
+ {
|
|
|
|
|
+
|
|
|
|
|
+ LogHelper.WriteLog("供应商编码为空", "发票入账数据执行");
|
|
|
|
|
+ continue;
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ if (thisYiDaData.tableField_lsx02qv5 is null || thisYiDaData.tableField_lsx02qv5.Count == 0)
|
|
|
|
|
+ {
|
|
|
|
|
+
|
|
|
|
|
+ LogHelper.WriteLog("发票明细为空", "发票入账数据执行");
|
|
|
|
|
+ continue;
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ if (thisYiDaData.tableField_lrngrtgu is null || thisYiDaData.tableField_lrngrtgu.Count == 0)
|
|
|
|
|
+ {
|
|
|
|
|
+
|
|
|
|
|
+ LogHelper.WriteLog("入账明细为空", "发票入账数据执行");
|
|
|
|
|
+ continue;
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ if (thisYiDaData.tableField_lsx02qv5.Any(s => string.IsNullOrWhiteSpace(s.textField_lsx02qv8)))
|
|
|
|
|
+ {
|
|
|
|
|
+ LogHelper.WriteLog("发票明细-发票号为空", "发票入账数据执行");
|
|
|
|
|
+ continue;
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- string jsonData = JsonConvert.SerializeObject(ydDataSource);
|
|
|
|
|
- YiDa_SKDNC thisYiDaData = JsonConvert.DeserializeObject<YiDa_SKDNC>(jsonData);
|
|
|
|
|
|
|
|
|
|
- //if (!thisYiDaData.textField_lw7f953v.Contains("晨莲物业")) continue;//测试
|
|
|
|
|
- if (string.IsNullOrWhiteSpace(thisYiDaData.selectField_lvywoqmb)) continue;
|
|
|
|
|
//取值 宜搭表单的某个字段当作凭证日期 如果 支付完成时间 为null,就用 提交时间
|
|
//取值 宜搭表单的某个字段当作凭证日期 如果 支付完成时间 为null,就用 提交时间
|
|
|
DateTime 凭证日期 = DateTime.Now;
|
|
DateTime 凭证日期 = DateTime.Now;
|
|
|
//thisYiDaData.dateField_lwitiobz is null
|
|
//thisYiDaData.dateField_lwitiobz is null
|
|
|
// ? UnixTimeHelper.ConvertMillisecondsToDateTime(thisYiDaData.dateField_lviv4sfy)
|
|
// ? UnixTimeHelper.ConvertMillisecondsToDateTime(thisYiDaData.dateField_lviv4sfy)
|
|
|
// : UnixTimeHelper.ConvertMillisecondsToDateTime((long)thisYiDaData.dateField_lwitiobz);
|
|
// : UnixTimeHelper.ConvertMillisecondsToDateTime((long)thisYiDaData.dateField_lwitiobz);
|
|
|
string 组织 = "";
|
|
string 组织 = "";
|
|
|
- if (!string.IsNullOrWhiteSpace(thisYiDaData.selectField_lvywoqmb))
|
|
|
|
|
|
|
+ if (!string.IsNullOrWhiteSpace(thisYiDaData.textField_lzh0m1lh))
|
|
|
{
|
|
{
|
|
|
- var tempData = org_orgsDic.FirstOrDefault(f => f.name == thisYiDaData.selectField_lvywoqmb);
|
|
|
|
|
|
|
+ var tempData = org_orgsDic.FirstOrDefault(f => f.name == thisYiDaData.textField_lzh0m1lh);
|
|
|
if (tempData != null)
|
|
if (tempData != null)
|
|
|
{
|
|
{
|
|
|
组织 = tempData.code; // 组织
|
|
组织 = tempData.code; // 组织
|
|
@@ -105,9 +151,9 @@ namespace HH.YiDaSyncNC.DataSync
|
|
|
|
|
|
|
|
|
|
|
|
|
string 账簿 = "";
|
|
string 账簿 = "";
|
|
|
- if (!string.IsNullOrWhiteSpace(thisYiDaData.selectField_lvywoqmb))
|
|
|
|
|
|
|
+ if (!string.IsNullOrWhiteSpace(thisYiDaData.textField_lzh0m1lh))
|
|
|
{
|
|
{
|
|
|
- var tempData = org_accountingbookDic.FirstOrDefault(f => f.name == thisYiDaData.selectField_lvywoqmb + "-蓝云账簿");
|
|
|
|
|
|
|
+ var tempData = org_accountingbookDic.FirstOrDefault(f => f.name == thisYiDaData.textField_lzh0m1lh + "-蓝云账簿");
|
|
|
if (tempData != null)
|
|
if (tempData != null)
|
|
|
{
|
|
{
|
|
|
账簿 = tempData.code; // 账簿
|
|
账簿 = tempData.code; // 账簿
|
|
@@ -118,9 +164,8 @@ namespace HH.YiDaSyncNC.DataSync
|
|
|
string 制单人 = "OA-NC";
|
|
string 制单人 = "OA-NC";
|
|
|
|
|
|
|
|
|
|
|
|
|
- if (string.IsNullOrWhiteSpace(thisYiDaData.textField_lw7erc7d)) continue;
|
|
|
|
|
|
|
|
|
|
- string 发票拼接 = string.IsNullOrWhiteSpace(thisYiDaData.textField_lw7erc7d) ? "" : thisYiDaData.textField_lw7erc7d;
|
|
|
|
|
|
|
+ string 发票拼接 = string.Join("/", thisYiDaData.tableField_lsx02qv5.Select(s => s.textField_lsx02qv8).ToList());
|
|
|
|
|
|
|
|
// 表头
|
|
// 表头
|
|
|
var headModel = new FKGL_SyncServiceModel.DataModel.voucher_header()
|
|
var headModel = new FKGL_SyncServiceModel.DataModel.voucher_header()
|
|
@@ -139,8 +184,8 @@ namespace HH.YiDaSyncNC.DataSync
|
|
|
int index = 1;
|
|
int index = 1;
|
|
|
foreach (var dataObj in thisYiDaData.tableField_lrngrtgu)
|
|
foreach (var dataObj in thisYiDaData.tableField_lrngrtgu)
|
|
|
{
|
|
{
|
|
|
- var 项目编码 = dataObj.radioField_lypfw8rv == "项目" ? dataObj.textField_lypfw8rw : "";
|
|
|
|
|
- var 部门编码 = dataObj.radioField_lypfw8rv == "机关" ? dataObj.textField_lypfw8rw : "";
|
|
|
|
|
|
|
+ var 项目编码 = dataObj.radioField_ly71lpio == "项目" ? dataObj.textField_ly7257rx : "";
|
|
|
|
|
+ var 部门编码 = dataObj.radioField_ly71lpio == "机关" ? dataObj.textField_ly7257rx : "";
|
|
|
|
|
|
|
|
var assList = new List<FKGL_SyncServiceModel.DataModel.ass>();
|
|
var assList = new List<FKGL_SyncServiceModel.DataModel.ass>();
|
|
|
if (!string.IsNullOrWhiteSpace(项目编码))
|
|
if (!string.IsNullOrWhiteSpace(项目编码))
|
|
@@ -165,8 +210,8 @@ namespace HH.YiDaSyncNC.DataSync
|
|
|
detailList.Add(new FKGL_SyncServiceModel.DataModel.voucher_body()
|
|
detailList.Add(new FKGL_SyncServiceModel.DataModel.voucher_body()
|
|
|
{
|
|
{
|
|
|
detailindex = index,
|
|
detailindex = index,
|
|
|
- accsubjcode = dataObj.textField_lwitioce,//科目编码 预付账款
|
|
|
|
|
- pk_accasoa = dataObj.textField_lwitioce,//科目编码
|
|
|
|
|
|
|
+ accsubjcode = dataObj.textField_lrnh633r,//科目编码 预付账款
|
|
|
|
|
+ pk_accasoa = dataObj.textField_lrnh633r,//科目编码
|
|
|
explanation = dataObj.textField_lvxa4v05,//摘要
|
|
explanation = dataObj.textField_lvxa4v05,//摘要
|
|
|
verifydate = 凭证日期.ToString("yyyy-MM-dd"),
|
|
verifydate = 凭证日期.ToString("yyyy-MM-dd"),
|
|
|
price = "0.00000000",
|
|
price = "0.00000000",
|
|
@@ -246,8 +291,8 @@ namespace HH.YiDaSyncNC.DataSync
|
|
|
verifydate = 凭证日期.ToString("yyyy-MM-dd"),
|
|
verifydate = 凭证日期.ToString("yyyy-MM-dd"),
|
|
|
price = "0.00000000",
|
|
price = "0.00000000",
|
|
|
excrate2 = "1",
|
|
excrate2 = "1",
|
|
|
- creditamount = thisYiDaData.numberField_lvua3j18.ToString(),//贷方金额
|
|
|
|
|
- localcreditamount = thisYiDaData.numberField_lvua3j18.ToString(),//贷方金额
|
|
|
|
|
|
|
+ creditamount = thisYiDaData.numberField_lu2habj9.ToString(),//贷方金额
|
|
|
|
|
+ localcreditamount = thisYiDaData.numberField_lu2habj9.ToString(),//贷方金额
|
|
|
debitquantity = "0.00000000",
|
|
debitquantity = "0.00000000",
|
|
|
debitamount = "0.00000000",
|
|
debitamount = "0.00000000",
|
|
|
groupdebitamount = "0.00000000",
|
|
groupdebitamount = "0.00000000",
|
|
@@ -270,7 +315,7 @@ namespace HH.YiDaSyncNC.DataSync
|
|
|
new FKGL_SyncServiceModel.DataModel.ass()
|
|
new FKGL_SyncServiceModel.DataModel.ass()
|
|
|
{
|
|
{
|
|
|
pk_Checktype ="0019",//0019-供应商辅助核算
|
|
pk_Checktype ="0019",//0019-供应商辅助核算
|
|
|
- pk_Checkvalue = thisYiDaData.textField_lwitiobt,//供应商编码
|
|
|
|
|
|
|
+ pk_Checkvalue = 供应商编码,//供应商编码
|
|
|
}
|
|
}
|
|
|
},
|
|
},
|
|
|
});
|
|
});
|