|
@@ -55,7 +55,8 @@ namespace HH.YiDaSyncNC.DataSync
|
|
|
DingTalkService _dingTalkService = new DingTalkService(_AppType, _SystemToken, _UserId, _FormId);
|
|
DingTalkService _dingTalkService = new DingTalkService(_AppType, _SystemToken, _UserId, _FormId);
|
|
|
|
|
|
|
|
// 宜搭全量数据Id
|
|
// 宜搭全量数据Id
|
|
|
- var idList = _dingTalkService.GetFormIdList("{\"radioField_lycrvvtk\":\"Y\"}");
|
|
|
|
|
|
|
+ //var idList = _dingTalkService.GetFormIdList("{\"radioField_lycrvvtk\":\"Y\"}");
|
|
|
|
|
+ var idList = _dingTalkService.GetFormIdList("{\"textField_lvdosccc\":\"KP_2024071800267\"}");
|
|
|
|
|
|
|
|
LogHelper.WriteLog(JsonConvert.SerializeObject(idList.Count), "idList");
|
|
LogHelper.WriteLog(JsonConvert.SerializeObject(idList.Count), "idList");
|
|
|
|
|
|
|
@@ -73,7 +74,6 @@ namespace HH.YiDaSyncNC.DataSync
|
|
|
var bd_defdoc_htywlx = _db_nc.Queryable<bd_defdoc>().Where(w => w.pk_defdoclist == "1001G1100000000010PV").ToList(); // 合同业务类型
|
|
var bd_defdoc_htywlx = _db_nc.Queryable<bd_defdoc>().Where(w => w.pk_defdoclist == "1001G1100000000010PV").ToList(); // 合同业务类型
|
|
|
#endregion
|
|
#endregion
|
|
|
|
|
|
|
|
-
|
|
|
|
|
#region 接口方式
|
|
#region 接口方式
|
|
|
// 向NC插入数据
|
|
// 向NC插入数据
|
|
|
foreach (var item in idList)
|
|
foreach (var item in idList)
|
|
@@ -83,6 +83,11 @@ namespace HH.YiDaSyncNC.DataSync
|
|
|
|
|
|
|
|
var ydDataSource = _dingTalkService.GetFormDataById(item, out createTime, out modifyTime);
|
|
var ydDataSource = _dingTalkService.GetFormDataById(item, out createTime, out modifyTime);
|
|
|
|
|
|
|
|
|
|
+ if (ydDataSource["textField_ltxyt75i"].ToString() != "")
|
|
|
|
|
+ {
|
|
|
|
|
+ continue;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
var ncResData = new List<YiDaResDto>();
|
|
var ncResData = new List<YiDaResDto>();
|
|
|
|
|
|
|
|
|
|
|
|
@@ -104,6 +109,12 @@ namespace HH.YiDaSyncNC.DataSync
|
|
|
|
|
|
|
|
dataSource.单据日期 = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
|
|
dataSource.单据日期 = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
|
|
|
|
|
|
|
|
|
|
+ if (!string.IsNullOrWhiteSpace(ydDataSource["dateField_lw5ud9bk"].ToString()))
|
|
|
|
|
+ {
|
|
|
|
|
+ dataSource.单据日期 = UnixTimeHelper.ConvertMillisecondsToDateTime(Convert.ToInt64(ydDataSource["dateField_lw5ud9bk"].ToString())).ToString("yyyy-MM-dd HH:mm:ss");
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
if (ydDataSource.FirstOrDefault(f => f.Key == "textField_lvdojfuj").Value != null)
|
|
if (ydDataSource.FirstOrDefault(f => f.Key == "textField_lvdojfuj").Value != null)
|
|
|
{
|
|
{
|
|
|
if (!string.IsNullOrWhiteSpace(ydDataSource["textField_lvdojfuj"].ToString()))
|
|
if (!string.IsNullOrWhiteSpace(ydDataSource["textField_lvdojfuj"].ToString()))
|
|
@@ -193,10 +204,17 @@ namespace HH.YiDaSyncNC.DataSync
|
|
|
{
|
|
{
|
|
|
if (!string.IsNullOrWhiteSpace(ydDataSource["selectField_lvc9x4vn"].ToString()))
|
|
if (!string.IsNullOrWhiteSpace(ydDataSource["selectField_lvc9x4vn"].ToString()))
|
|
|
{
|
|
{
|
|
|
- var tempData = bd_defdoc_htywlx.FirstOrDefault(f => f.name == ydDataSource["selectField_lvc9x4vn"].ToString());
|
|
|
|
|
- if (tempData != null)
|
|
|
|
|
|
|
+ if (ydDataSource["selectField_lvc9x4vn"].ToString().Contains("一次性") || ydDataSource["selectField_lvc9x4vn"].ToString().Contains("工程订单"))
|
|
|
{
|
|
{
|
|
|
- dataSource.合同业务类型 = tempData.pk_defdoc; // 合同业务类型
|
|
|
|
|
|
|
+ dataSource.合同业务类型 = "1001G11000000000113F";
|
|
|
|
|
+ }
|
|
|
|
|
+ else
|
|
|
|
|
+ {
|
|
|
|
|
+ var tempData = bd_defdoc_htywlx.FirstOrDefault(f => f.name == ydDataSource["selectField_lvc9x4vn"].ToString());
|
|
|
|
|
+ if (tempData != null)
|
|
|
|
|
+ {
|
|
|
|
|
+ dataSource.合同业务类型 = tempData.pk_defdoc; // 合同业务类型
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -209,213 +227,225 @@ namespace HH.YiDaSyncNC.DataSync
|
|
|
var detailList = new List<KP_SyncServiceModel.DataModel.OrderB>();
|
|
var detailList = new List<KP_SyncServiceModel.DataModel.OrderB>();
|
|
|
|
|
|
|
|
#region 大业主开票明细
|
|
#region 大业主开票明细
|
|
|
- if (ydDataSource.FirstOrDefault(f => f.Key == "tableField_lvc9x4vt").Value != null && dataSource.合同业务类型 == "1001G11000000000113D")
|
|
|
|
|
|
|
+ if (ydDataSource.FirstOrDefault(f => f.Key == "tableField_lvc9x4vt").Value != null)
|
|
|
{
|
|
{
|
|
|
- var detailObjList1 = (List<object>)ydDataSource["tableField_lvc9x4vt"]; // 大业主开票明细
|
|
|
|
|
if (ydDataSource.FirstOrDefault(f => f.Key == "tableField_lvc9x4vt").Value != null)
|
|
if (ydDataSource.FirstOrDefault(f => f.Key == "tableField_lvc9x4vt").Value != null)
|
|
|
{
|
|
{
|
|
|
- foreach (var objItem in detailObjList1)
|
|
|
|
|
|
|
+ var detailObjList1 = (List<object>)ydDataSource["tableField_lvc9x4vt"]; // 大业主开票明细
|
|
|
|
|
+
|
|
|
|
|
+ if (detailObjList1.Count() > 0 && !string.IsNullOrWhiteSpace(((Dictionary<string, object>)detailObjList1.FirstOrDefault())["textField_lvdojfup"].ToString()))
|
|
|
{
|
|
{
|
|
|
- var detailItem = new KP_SyncServiceModel.DataModel.OrderB();
|
|
|
|
|
|
|
|
|
|
- if (!string.IsNullOrWhiteSpace(((Dictionary<string, object>)objItem)["associationFormField_lvynhq7p_id"].ToString()))
|
|
|
|
|
|
|
+ foreach (var objItem in detailObjList1)
|
|
|
{
|
|
{
|
|
|
- var sourceStr = ((Dictionary<string, object>)objItem)["associationFormField_lvynhq7p_id"].ToString().Replace("\\", "");
|
|
|
|
|
- var a = sourceStr = sourceStr.Substring(1, sourceStr.Length - 2);
|
|
|
|
|
- var b = JsonConvert.DeserializeObject<List<FormItem>>(a);
|
|
|
|
|
|
|
+ var detailItem = new KP_SyncServiceModel.DataModel.OrderB();
|
|
|
|
|
|
|
|
- var materialData = bd_materialDic.FirstOrDefault(f => f.name == b[0].title);
|
|
|
|
|
|
|
+ if (!string.IsNullOrWhiteSpace(((Dictionary<string, object>)objItem)["associationFormField_lvynhq7p_id"].ToString()))
|
|
|
|
|
+ {
|
|
|
|
|
+ var sourceStr = ((Dictionary<string, object>)objItem)["associationFormField_lvynhq7p_id"].ToString().Replace("\\", "");
|
|
|
|
|
+ var a = sourceStr = sourceStr.Substring(1, sourceStr.Length - 2);
|
|
|
|
|
+ var b = JsonConvert.DeserializeObject<List<FormItem>>(a);
|
|
|
|
|
|
|
|
- detailItem.物料 = materialData.code; // 物料
|
|
|
|
|
|
|
+ var materialData = bd_materialDic.FirstOrDefault(f => f.name == b[0].title);
|
|
|
|
|
|
|
|
- var unitCode = bd_measdocDic.FirstOrDefault(f => f.pk_measdoc == materialData.pk_measdoc);
|
|
|
|
|
|
|
+ detailItem.物料 = materialData.code; // 物料
|
|
|
|
|
|
|
|
- detailItem.计量单位 = unitCode.code; // 计量单位
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ var unitCode = bd_measdocDic.FirstOrDefault(f => f.pk_measdoc == materialData.pk_measdoc);
|
|
|
|
|
|
|
|
- var hsdj = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvd8pp2v"].ToString());
|
|
|
|
|
- var se = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvd8pp2z"].ToString());
|
|
|
|
|
- var wsdj = hsdj - se;
|
|
|
|
|
- var sl = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvd8pp2w"].ToString());
|
|
|
|
|
- var wsje = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvd8pp30"].ToString());
|
|
|
|
|
- var jshj = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvd8pp2y"].ToString());
|
|
|
|
|
|
|
+ detailItem.计量单位 = unitCode.code; // 计量单位
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- // 含税单价
|
|
|
|
|
- detailItem.含税单价 = hsdj.ToString();
|
|
|
|
|
|
|
+ var hsdj = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvd8pp2v"].ToString());
|
|
|
|
|
+ var se = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvd8pp2z"].ToString());
|
|
|
|
|
+ var wsdj = hsdj - se;
|
|
|
|
|
+ var sl = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvd8pp2w"].ToString());
|
|
|
|
|
+ var wsje = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvd8pp30"].ToString());
|
|
|
|
|
+ var jshj = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvd8pp2y"].ToString());
|
|
|
|
|
|
|
|
- // 无税单价
|
|
|
|
|
- detailItem.无税单价 = wsdj.ToString();
|
|
|
|
|
|
|
+ // 含税单价
|
|
|
|
|
+ detailItem.含税单价 = hsdj.ToString();
|
|
|
|
|
|
|
|
- // 含税净价
|
|
|
|
|
- detailItem.含税净价 = hsdj.ToString();
|
|
|
|
|
|
|
+ // 无税单价
|
|
|
|
|
+ detailItem.无税单价 = wsdj.ToString();
|
|
|
|
|
|
|
|
- // 无税净价
|
|
|
|
|
- detailItem.无税净价 = wsdj.ToString();
|
|
|
|
|
|
|
+ // 含税净价
|
|
|
|
|
+ detailItem.含税净价 = hsdj.ToString();
|
|
|
|
|
|
|
|
- // 税额
|
|
|
|
|
- detailItem.税额 = se.ToString();
|
|
|
|
|
|
|
+ // 无税净价
|
|
|
|
|
+ detailItem.无税净价 = wsdj.ToString();
|
|
|
|
|
|
|
|
- // 无税金额
|
|
|
|
|
- detailItem.无税金额 = wsje.ToString();
|
|
|
|
|
|
|
+ // 税额
|
|
|
|
|
+ detailItem.税额 = se.ToString();
|
|
|
|
|
|
|
|
- // 数量
|
|
|
|
|
- detailItem.数量 = sl.ToString();
|
|
|
|
|
|
|
+ // 无税金额
|
|
|
|
|
+ detailItem.无税金额 = wsje.ToString();
|
|
|
|
|
|
|
|
- // 价税合计
|
|
|
|
|
- detailItem.价税合计 = jshj.ToString();
|
|
|
|
|
|
|
+ // 数量
|
|
|
|
|
+ detailItem.数量 = sl.ToString();
|
|
|
|
|
|
|
|
- detailItem.换算率 = "1.00/1.00";
|
|
|
|
|
- detailItem.税码 = "CN04"; // 税率码
|
|
|
|
|
- detailItem.税率 = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvd8pp2x"].ToString()).ToString(); // 税率
|
|
|
|
|
|
|
+ // 价税合计
|
|
|
|
|
+ detailItem.价税合计 = jshj.ToString();
|
|
|
|
|
|
|
|
- detailItem.开票内容 = ((Dictionary<string, object>)objItem)["textField_lvd8pp2t"].ToString();
|
|
|
|
|
|
|
+ detailItem.换算率 = "1.00/1.00";
|
|
|
|
|
+ detailItem.税码 = "CN04"; // 税率码
|
|
|
|
|
+ detailItem.税率 = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvd8pp2x"].ToString()).ToString(); // 税率
|
|
|
|
|
|
|
|
- detailItem.行id = ((Dictionary<string, object>)objItem)["textField_lvdojfup"].ToString();
|
|
|
|
|
|
|
+ detailItem.开票内容 = ((Dictionary<string, object>)objItem)["textField_lvd8pp2t"].ToString();
|
|
|
|
|
|
|
|
- detailList.Add(detailItem);
|
|
|
|
|
|
|
+ detailItem.行id = ((Dictionary<string, object>)objItem)["textField_lvdojfup"].ToString();
|
|
|
|
|
+
|
|
|
|
|
+ detailList.Add(detailItem);
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
#endregion
|
|
#endregion
|
|
|
|
|
|
|
|
#region 工程订单开票明细
|
|
#region 工程订单开票明细
|
|
|
- if (ydDataSource.FirstOrDefault(f => f.Key == "tableField_lvd8pp44").Value != null && dataSource.合同业务类型 == null)
|
|
|
|
|
|
|
+ if (ydDataSource.FirstOrDefault(f => f.Key == "tableField_lvd8pp44").Value != null)
|
|
|
{
|
|
{
|
|
|
dataSource.项目 = "PM99001";
|
|
dataSource.项目 = "PM99001";
|
|
|
- dataSource.合同业务类型 = "1001G11000000000113F";
|
|
|
|
|
|
|
|
|
|
var detailObjList2 = (List<object>)ydDataSource["tableField_lvd8pp44"]; // 工程订单开票明细
|
|
var detailObjList2 = (List<object>)ydDataSource["tableField_lvd8pp44"]; // 工程订单开票明细
|
|
|
if (ydDataSource.FirstOrDefault(f => f.Key == "tableField_lvd8pp44").Value != null)
|
|
if (ydDataSource.FirstOrDefault(f => f.Key == "tableField_lvd8pp44").Value != null)
|
|
|
{
|
|
{
|
|
|
- foreach (var objItem in detailObjList2)
|
|
|
|
|
|
|
+ if (detailObjList2.Count() > 0 && !string.IsNullOrWhiteSpace(((Dictionary<string, object>)detailObjList2.FirstOrDefault())["textField_lvdojfur"].ToString()))
|
|
|
{
|
|
{
|
|
|
- var detailItem = new KP_SyncServiceModel.DataModel.OrderB();
|
|
|
|
|
|
|
|
|
|
- if (!string.IsNullOrWhiteSpace(((Dictionary<string, object>)objItem)["associationFormField_lvynrr6a_id"].ToString()))
|
|
|
|
|
|
|
+ foreach (var objItem in detailObjList2)
|
|
|
{
|
|
{
|
|
|
- var sourceStr = ((Dictionary<string, object>)objItem)["associationFormField_lvynrr6a_id"].ToString().Replace("\\", "");
|
|
|
|
|
- var a = sourceStr = sourceStr.Substring(1, sourceStr.Length - 2);
|
|
|
|
|
- var b = JsonConvert.DeserializeObject<List<FormItem>>(a);
|
|
|
|
|
|
|
+ var detailItem = new KP_SyncServiceModel.DataModel.OrderB();
|
|
|
|
|
|
|
|
- var materialData = bd_materialDic.FirstOrDefault(f => f.name == b[0].title);
|
|
|
|
|
|
|
+ if (!string.IsNullOrWhiteSpace(((Dictionary<string, object>)objItem)["associationFormField_lvynrr6a_id"].ToString()))
|
|
|
|
|
+ {
|
|
|
|
|
+ var sourceStr = ((Dictionary<string, object>)objItem)["associationFormField_lvynrr6a_id"].ToString().Replace("\\", "");
|
|
|
|
|
+ var a = sourceStr = sourceStr.Substring(1, sourceStr.Length - 2);
|
|
|
|
|
+ var b = JsonConvert.DeserializeObject<List<FormItem>>(a);
|
|
|
|
|
|
|
|
- detailItem.物料 = materialData.code; // 物料
|
|
|
|
|
|
|
+ var materialData = bd_materialDic.FirstOrDefault(f => f.name == b[0].title);
|
|
|
|
|
|
|
|
- var unitCode = bd_measdocDic.FirstOrDefault(f => f.pk_measdoc == materialData.pk_measdoc);
|
|
|
|
|
|
|
+ detailItem.物料 = materialData.code; // 物料
|
|
|
|
|
|
|
|
- detailItem.计量单位 = unitCode.code; // 计量单位
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ var unitCode = bd_measdocDic.FirstOrDefault(f => f.pk_measdoc == materialData.pk_measdoc);
|
|
|
|
|
+
|
|
|
|
|
+ detailItem.计量单位 = unitCode.code; // 计量单位
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- var hsdj = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvd8pp3y"].ToString());
|
|
|
|
|
- var se = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvd8pp42"].ToString());
|
|
|
|
|
- var wsdj = hsdj - se;
|
|
|
|
|
- var sl = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvd8pp3z"].ToString());
|
|
|
|
|
- var wsje = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvd8pp43"].ToString());
|
|
|
|
|
- var jshj = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvd8pp41"].ToString());
|
|
|
|
|
|
|
+ var hsdj = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvd8pp3y"].ToString());
|
|
|
|
|
+ var se = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvd8pp42"].ToString());
|
|
|
|
|
+ var wsdj = hsdj - se;
|
|
|
|
|
+ var sl = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvd8pp3z"].ToString());
|
|
|
|
|
+ var wsje = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvd8pp43"].ToString());
|
|
|
|
|
+ var jshj = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvd8pp41"].ToString());
|
|
|
|
|
|
|
|
- // 含税单价
|
|
|
|
|
- detailItem.含税单价 = hsdj.ToString();
|
|
|
|
|
|
|
+ // 含税单价
|
|
|
|
|
+ detailItem.含税单价 = hsdj.ToString();
|
|
|
|
|
|
|
|
- // 无税单价
|
|
|
|
|
- detailItem.无税单价 = wsdj.ToString();
|
|
|
|
|
|
|
+ // 无税单价
|
|
|
|
|
+ detailItem.无税单价 = wsdj.ToString();
|
|
|
|
|
|
|
|
- // 含税净价
|
|
|
|
|
- detailItem.含税净价 = hsdj.ToString();
|
|
|
|
|
|
|
+ // 含税净价
|
|
|
|
|
+ detailItem.含税净价 = hsdj.ToString();
|
|
|
|
|
|
|
|
- // 无税净价
|
|
|
|
|
- detailItem.无税净价 = wsdj.ToString();
|
|
|
|
|
|
|
+ // 无税净价
|
|
|
|
|
+ detailItem.无税净价 = wsdj.ToString();
|
|
|
|
|
|
|
|
- // 税额
|
|
|
|
|
- detailItem.税额 = se.ToString();
|
|
|
|
|
|
|
+ // 税额
|
|
|
|
|
+ detailItem.税额 = se.ToString();
|
|
|
|
|
|
|
|
- // 无税金额
|
|
|
|
|
- detailItem.无税金额 = wsje.ToString();
|
|
|
|
|
|
|
+ // 无税金额
|
|
|
|
|
+ detailItem.无税金额 = wsje.ToString();
|
|
|
|
|
|
|
|
- // 数量
|
|
|
|
|
- detailItem.数量 = sl.ToString();
|
|
|
|
|
|
|
+ // 数量
|
|
|
|
|
+ detailItem.数量 = sl.ToString();
|
|
|
|
|
|
|
|
- // 价税合计
|
|
|
|
|
- detailItem.价税合计 = jshj.ToString();
|
|
|
|
|
|
|
+ // 价税合计
|
|
|
|
|
+ detailItem.价税合计 = jshj.ToString();
|
|
|
|
|
|
|
|
- detailItem.换算率 = "1.00/1.00";
|
|
|
|
|
- detailItem.税码 = "CN04"; // 税率码
|
|
|
|
|
- detailItem.税率 = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvd8pp40"].ToString()).ToString(); // 税率
|
|
|
|
|
|
|
+ detailItem.换算率 = "1.00/1.00";
|
|
|
|
|
+ detailItem.税码 = "CN04"; // 税率码
|
|
|
|
|
+ detailItem.税率 = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvd8pp40"].ToString()).ToString(); // 税率
|
|
|
|
|
|
|
|
- detailItem.开票内容 = ((Dictionary<string, object>)objItem)["textField_lvd8pp3w"].ToString();
|
|
|
|
|
|
|
+ detailItem.开票内容 = ((Dictionary<string, object>)objItem)["textField_lvd8pp3w"].ToString();
|
|
|
|
|
|
|
|
- detailItem.行id = ((Dictionary<string, object>)objItem)["textField_lvdojfur"].ToString();
|
|
|
|
|
|
|
+ detailItem.行id = ((Dictionary<string, object>)objItem)["textField_lvdojfur"].ToString();
|
|
|
|
|
|
|
|
- detailList.Add(detailItem);
|
|
|
|
|
|
|
+ detailList.Add(detailItem);
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
#endregion
|
|
#endregion
|
|
|
|
|
|
|
|
#region 小业主开票明细
|
|
#region 小业主开票明细
|
|
|
- if (ydDataSource.FirstOrDefault(f => f.Key == "tableField_lvdnme13").Value != null && dataSource.合同业务类型 == "1001G11000000000113E")
|
|
|
|
|
|
|
+ if (ydDataSource.FirstOrDefault(f => f.Key == "tableField_lvdnme13").Value != null)
|
|
|
{
|
|
{
|
|
|
var detailObjList3 = (List<object>)ydDataSource["tableField_lvdnme13"]; // 小业主
|
|
var detailObjList3 = (List<object>)ydDataSource["tableField_lvdnme13"]; // 小业主
|
|
|
if (ydDataSource.FirstOrDefault(f => f.Key == "tableField_lvdnme13").Value != null)
|
|
if (ydDataSource.FirstOrDefault(f => f.Key == "tableField_lvdnme13").Value != null)
|
|
|
{
|
|
{
|
|
|
- foreach (var objItem in detailObjList3)
|
|
|
|
|
|
|
+ if (detailObjList3.Count() > 0 && !string.IsNullOrWhiteSpace(((Dictionary<string, object>)detailObjList3.FirstOrDefault())["textField_lvdojfus"].ToString()))
|
|
|
{
|
|
{
|
|
|
- var detailItem = new KP_SyncServiceModel.DataModel.OrderB();
|
|
|
|
|
|
|
|
|
|
- if (!string.IsNullOrWhiteSpace(((Dictionary<string, object>)objItem)["associationFormField_lvynrr6c_id"].ToString()))
|
|
|
|
|
|
|
+ foreach (var objItem in detailObjList3)
|
|
|
{
|
|
{
|
|
|
- var sourceStr = ((Dictionary<string, object>)objItem)["associationFormField_lvynrr6c_id"].ToString().Replace("\\", "");
|
|
|
|
|
- var a = sourceStr = sourceStr.Substring(1, sourceStr.Length - 2);
|
|
|
|
|
- var b = JsonConvert.DeserializeObject<List<FormItem>>(a);
|
|
|
|
|
|
|
+ var detailItem = new KP_SyncServiceModel.DataModel.OrderB();
|
|
|
|
|
|
|
|
- var materialData = bd_materialDic.FirstOrDefault(f => f.name == b[0].title);
|
|
|
|
|
|
|
+ if (!string.IsNullOrWhiteSpace(((Dictionary<string, object>)objItem)["associationFormField_lvynrr6c_id"].ToString()))
|
|
|
|
|
+ {
|
|
|
|
|
+ var sourceStr = ((Dictionary<string, object>)objItem)["associationFormField_lvynrr6c_id"].ToString().Replace("\\", "");
|
|
|
|
|
+ var a = sourceStr = sourceStr.Substring(1, sourceStr.Length - 2);
|
|
|
|
|
+ var b = JsonConvert.DeserializeObject<List<FormItem>>(a);
|
|
|
|
|
|
|
|
- detailItem.物料 = materialData.code; // 物料
|
|
|
|
|
|
|
+ var materialData = bd_materialDic.FirstOrDefault(f => f.name == b[0].title);
|
|
|
|
|
|
|
|
- var unitCode = bd_measdocDic.FirstOrDefault(f => f.pk_measdoc == materialData.pk_measdoc);
|
|
|
|
|
|
|
+ detailItem.物料 = materialData.code; // 物料
|
|
|
|
|
|
|
|
- detailItem.计量单位 = unitCode.code; // 计量单位
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ var unitCode = bd_measdocDic.FirstOrDefault(f => f.pk_measdoc == materialData.pk_measdoc);
|
|
|
|
|
|
|
|
- var hsdj = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvdnme0w"].ToString());
|
|
|
|
|
- var se = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvdnme10"].ToString());
|
|
|
|
|
- var wsdj = hsdj - se;
|
|
|
|
|
- var sl = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvdnme0x"].ToString());
|
|
|
|
|
- var wsje = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvdnme11"].ToString());
|
|
|
|
|
- var jshj = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvdnme0z"].ToString());
|
|
|
|
|
|
|
+ detailItem.计量单位 = unitCode.code; // 计量单位
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- // 含税单价
|
|
|
|
|
- detailItem.含税单价 = hsdj.ToString();
|
|
|
|
|
|
|
+ var hsdj = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvdnme0w"].ToString());
|
|
|
|
|
+ var se = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvdnme10"].ToString());
|
|
|
|
|
+ var wsdj = hsdj - se;
|
|
|
|
|
+ var sl = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvdnme0x"].ToString());
|
|
|
|
|
+ var wsje = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvdnme11"].ToString());
|
|
|
|
|
+ var jshj = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvdnme0z"].ToString());
|
|
|
|
|
|
|
|
- // 无税单价
|
|
|
|
|
- detailItem.无税单价 = wsdj.ToString();
|
|
|
|
|
|
|
+ // 含税单价
|
|
|
|
|
+ detailItem.含税单价 = hsdj.ToString();
|
|
|
|
|
|
|
|
- // 含税净价
|
|
|
|
|
- detailItem.含税净价 = hsdj.ToString();
|
|
|
|
|
|
|
+ // 无税单价
|
|
|
|
|
+ detailItem.无税单价 = wsdj.ToString();
|
|
|
|
|
|
|
|
- // 无税净价
|
|
|
|
|
- detailItem.无税净价 = wsdj.ToString();
|
|
|
|
|
|
|
+ // 含税净价
|
|
|
|
|
+ detailItem.含税净价 = hsdj.ToString();
|
|
|
|
|
|
|
|
- // 税额
|
|
|
|
|
- detailItem.税额 = se.ToString();
|
|
|
|
|
|
|
+ // 无税净价
|
|
|
|
|
+ detailItem.无税净价 = wsdj.ToString();
|
|
|
|
|
|
|
|
- // 无税金额
|
|
|
|
|
- detailItem.无税金额 = wsje.ToString();
|
|
|
|
|
|
|
+ // 税额
|
|
|
|
|
+ detailItem.税额 = se.ToString();
|
|
|
|
|
|
|
|
- // 数量
|
|
|
|
|
- detailItem.数量 = sl.ToString();
|
|
|
|
|
|
|
+ // 无税金额
|
|
|
|
|
+ detailItem.无税金额 = wsje.ToString();
|
|
|
|
|
|
|
|
- // 价税合计
|
|
|
|
|
- detailItem.价税合计 = jshj.ToString();
|
|
|
|
|
|
|
+ // 数量
|
|
|
|
|
+ detailItem.数量 = sl.ToString();
|
|
|
|
|
|
|
|
- detailItem.换算率 = "1.00/1.00";
|
|
|
|
|
- detailItem.税码 = "CN04"; // 税率码
|
|
|
|
|
- detailItem.税率 = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvdnme0y"].ToString()).ToString(); // 税率
|
|
|
|
|
|
|
+ // 价税合计
|
|
|
|
|
+ detailItem.价税合计 = jshj.ToString();
|
|
|
|
|
|
|
|
- detailItem.开票内容 = ((Dictionary<string, object>)objItem)["textField_lvdnme0u"].ToString();
|
|
|
|
|
|
|
+ detailItem.换算率 = "1.00/1.00";
|
|
|
|
|
+ detailItem.税码 = "CN04"; // 税率码
|
|
|
|
|
+ detailItem.税率 = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvdnme0y"].ToString()).ToString(); // 税率
|
|
|
|
|
|
|
|
- detailItem.行id = ((Dictionary<string, object>)objItem)["textField_lvdojfus"].ToString();
|
|
|
|
|
|
|
+ detailItem.开票内容 = ((Dictionary<string, object>)objItem)["textField_lvdnme0u"].ToString();
|
|
|
|
|
|
|
|
- detailList.Add(detailItem);
|
|
|
|
|
|
|
+ detailItem.行id = ((Dictionary<string, object>)objItem)["textField_lvdojfus"].ToString();
|
|
|
|
|
+
|
|
|
|
|
+ detailList.Add(detailItem);
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -427,7 +457,7 @@ namespace HH.YiDaSyncNC.DataSync
|
|
|
dataSource.价税合计 = dataSource.明细.Sum(s => Convert.ToDecimal(s.价税合计)).ToString();
|
|
dataSource.价税合计 = dataSource.明细.Sum(s => Convert.ToDecimal(s.价税合计)).ToString();
|
|
|
|
|
|
|
|
|
|
|
|
|
- var results_销售订单 = NCImportFunc.NCImport(KP_SyncServiceModel.ImportXml_销售订单.TemplateHeade(), KP_SyncServiceModel.ImportXml_销售订单.Header(dataSource, item), _NCApiUrl + "?account=LY01&groupcode=0");
|
|
|
|
|
|
|
+ var results_销售订单 = NCImportFunc.NCImport(KP_SyncServiceModel.ImportXml_销售订单.TemplateHeade(), KP_SyncServiceModel.ImportXml_销售订单.Header(dataSource, item + "02"), _NCApiUrl + "?account=01&groupcode=0");
|
|
|
|
|
|
|
|
LogHelper.WriteLog(JsonConvert.SerializeObject(results_销售订单), "results_销售订单");
|
|
LogHelper.WriteLog(JsonConvert.SerializeObject(results_销售订单), "results_销售订单");
|
|
|
|
|
|
|
@@ -452,6 +482,8 @@ namespace HH.YiDaSyncNC.DataSync
|
|
|
ncNo = "",
|
|
ncNo = "",
|
|
|
log = "同步失败!原因为【" + resultdescription_销售订单 + "】!"
|
|
log = "同步失败!原因为【" + resultdescription_销售订单 + "】!"
|
|
|
});
|
|
});
|
|
|
|
|
+
|
|
|
|
|
+ continue;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// -------------------------------销售订单同步完,开始同步销售发票
|
|
// -------------------------------销售订单同步完,开始同步销售发票
|
|
@@ -467,7 +499,7 @@ namespace HH.YiDaSyncNC.DataSync
|
|
|
detailItem.销售订单子表id = saleorderbData.FirstOrDefault(f => f.vbdef10 == detailItem.行id).csaleorderbid;
|
|
detailItem.销售订单子表id = saleorderbData.FirstOrDefault(f => f.vbdef10 == detailItem.行id).csaleorderbid;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- var results_销售发票 = NCImportFunc.NCImport(KP_SyncServiceModel.ImportXml_销售发票.TemplateHeade(), KP_SyncServiceModel.ImportXml_销售发票.Header(dataSource, item), _NCApiUrl + "?account=LY01&groupcode=0");
|
|
|
|
|
|
|
+ var results_销售发票 = NCImportFunc.NCImport(KP_SyncServiceModel.ImportXml_销售发票.TemplateHeade(), KP_SyncServiceModel.ImportXml_销售发票.Header(dataSource, item + "02"), _NCApiUrl + "?account=01&groupcode=0");
|
|
|
|
|
|
|
|
|
|
|
|
|
LogHelper.WriteLog(JsonConvert.SerializeObject(results_销售发票), "results_销售发票");
|
|
LogHelper.WriteLog(JsonConvert.SerializeObject(results_销售发票), "results_销售发票");
|
|
@@ -495,7 +527,7 @@ namespace HH.YiDaSyncNC.DataSync
|
|
|
});
|
|
});
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- // -------------------------------销售订单同步完,开始同步应收
|
|
|
|
|
|
|
+ // -------------------------------销售发票同步完,开始同步应收
|
|
|
|
|
|
|
|
var saleinvoicebData = _db_nc.Queryable<so_saleinvoice_b>().Where(f => f.csaleinvoiceid == xE_销售发票.Element("sendresult").Element("content").Value).ToList();
|
|
var saleinvoicebData = _db_nc.Queryable<so_saleinvoice_b>().Where(f => f.csaleinvoiceid == xE_销售发票.Element("sendresult").Element("content").Value).ToList();
|
|
|
var squareinvbData = _db_nc.Queryable<so_squareinv_d>().Where(f => f.csquarebillid == xE_销售发票.Element("sendresult").Element("content").Value).ToList();
|
|
var squareinvbData = _db_nc.Queryable<so_squareinv_d>().Where(f => f.csquarebillid == xE_销售发票.Element("sendresult").Element("content").Value).ToList();
|
|
@@ -509,7 +541,7 @@ namespace HH.YiDaSyncNC.DataSync
|
|
|
// detailItem.销售发票子表id = b.csalesquaredid;
|
|
// detailItem.销售发票子表id = b.csalesquaredid;
|
|
|
//}
|
|
//}
|
|
|
|
|
|
|
|
- var results_应收单 = NCImportFunc.NCImport(KP_SyncServiceModel.ImportXml_应收单.TemplateHeade(), KP_SyncServiceModel.ImportXml_应收单.Header(dataSource, item), _NCApiUrl + "?account=LY01&groupcode=0");
|
|
|
|
|
|
|
+ var results_应收单 = NCImportFunc.NCImport(KP_SyncServiceModel.ImportXml_应收单.TemplateHeade(), KP_SyncServiceModel.ImportXml_应收单.Header(dataSource, item + "02"), _NCApiUrl + "?account=01&groupcode=0");
|
|
|
|
|
|
|
|
LogHelper.WriteLog(JsonConvert.SerializeObject(results_应收单), "results_应收单");
|
|
LogHelper.WriteLog(JsonConvert.SerializeObject(results_应收单), "results_应收单");
|
|
|
|
|
|
|
@@ -517,6 +549,16 @@ namespace HH.YiDaSyncNC.DataSync
|
|
|
string resultcode_应收单 = xE_应收单.Element("sendresult").Element("resultcode").Value;
|
|
string resultcode_应收单 = xE_应收单.Element("sendresult").Element("resultcode").Value;
|
|
|
string resultdescription_应收单 = xE_应收单.Element("sendresult").Element("resultdescription")?.Value;
|
|
string resultdescription_应收单 = xE_应收单.Element("sendresult").Element("resultdescription")?.Value;
|
|
|
|
|
|
|
|
|
|
+ var recitemData = _db_nc.Queryable<ar_recitem>().Where(w => w.pk_recbill == xE_应收单.Element("sendresult").Element("content").Value).ToList();
|
|
|
|
|
+
|
|
|
|
|
+ foreach (var recitem in recitemData)
|
|
|
|
|
+ {
|
|
|
|
|
+ recitem.scomment = recitem.def1;
|
|
|
|
|
+
|
|
|
|
|
+ _db_nc.Updateable(recitem).ExecuteCommand();
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
if (resultcode_应收单 == "1")
|
|
if (resultcode_应收单 == "1")
|
|
|
{
|
|
{
|
|
|
ncResData.Add(new YiDaResDto()
|
|
ncResData.Add(new YiDaResDto()
|