This commit is contained in:
余宇波 2025-05-07 20:08:40 +08:00
parent f8fa1681df
commit a4976430a8
9 changed files with 549 additions and 215 deletions

View File

@ -1492,5 +1492,30 @@ namespace Pilot_KD_Parino.Common
throw new ArgumentException("数字超出范围");
}
}
public static string CreateAutoWrireRecord3(Context ctx, string FOrgId, List<CombinaAddClass1> DATA1, CombinaAddSK DATA2)
{
string FBILLNO;
string FID;
// 构建一个IBillView实例通过此实例可以方便的填写
IBillView billView = CommonHelper.CreateBillView(ctx, "VRYF_FHTZDHXJL");
// billView.CreateNewModelData();
((IBillViewService)billView).LoadData();
// 触发插件的OnLoad事件
// 组织控制基类插件在OnLoad事件中对主业务组织改变是否提示选项进行初始化。
// 如果不触发OnLoad事件会导致主业务组织赋值不成功
DynamicFormViewPlugInProxy eventProxy = billView.GetService<DynamicFormViewPlugInProxy>();
eventProxy.FireOnLoad();
CreateAutoWrireRecordData2(billView, ctx, FOrgId, DATA1, DATA2);
OperateOption saveOption = OperateOption.Create();
Form form = billView.BillBusinessInfo.GetForm();
if (form.FormIdDynamicProperty != null)
{
form.FormIdDynamicProperty.SetValue(billView.Model.DataObject, form.Id);
}
//保存工程项目
CommonHelper.SaveBill(ctx, billView, saveOption, true, out FID, out FBILLNO);
return FBILLNO;
}
}
}

View File

@ -340,6 +340,7 @@
<Compile Include="Sal_Order\YJAuditPlugIn.cs" />
<Compile Include="SQL\SqlManage_yuyubo.cs" />
<Compile Include="SQL\SqlManage.cs" />
<Compile Include="VRYF_FHTZDHXJL\UpdateAmount.cs" />
</ItemGroup>
<ItemGroup>
<None Include="packages.config" />

View File

@ -51,7 +51,7 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire
private string parentRowId = "";//父项ID
string dateFormat = "yyyy-MM-dd HH:mm:ss"; // 指定的日期格式
int status11=1;
int SourceType = 0;
/// <summary>
/// 开始
/// </summary>
@ -459,7 +459,7 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire
#region 2025-04-07
#region
var SaleBILLLIS2Sal = SaleBILLLIS2.Where(t => t.FType == "销售订单" && t.FISHX != "已核销配对").ToList();
var SaleBILLLIS2Sal = SaleBILLLIS2.Where(t => t.FISHX != "已核销配对").ToList();
//将销售订单根据客户分组
//var FClientList2 = SaleBILLLIS2Sal.GroupBy(t => t.FClient).ToList();
//var FClientReceiveBillList= ReceiveBILLLIST
@ -633,163 +633,167 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire
}
//3、收款单的待核销金额与订单的待最近30天开票金额(只有医院客户)
var SaleBILLLIS2Sa333 = SaleBILLLISNew.Where(t => t.FISHX != "已核销配对" && t.FDAMOUNT > 0 ).OrderBy(t => t.FClient).ThenByDescending(t => t.FDate).ToList();
ReceiveBILLLIST = ReceiveBILLLIST2.Where(a => a.F_RowNew == 1 && a.FISHX != "已核销配对" && a.FDAMOUNT > 0).OrderBy(t => t.FClient).ThenByDescending(t => t.FDate).ToList();
var oneToOneTemp3 = (from q in SaleBILLLIS2Sa333
join u in ReceiveBILLLIST on new { q.FClient, FDAMOUNT = q.FInvoiceAmount30Days } equals new { u.FClient, u.FDAMOUNT }
select new { q.FClient, q.FBIllNO, q.FCONTRACTNUMBER, u.FDAMOUNT, UFbillNo = u.FBIllNO }).ToList();
//var dasdsas = oneToOneTemp.Where(h => h.FBIllNO == "PL-XSDD20250400471").FirstOrDefault();
var saleList33 = oneToOneTemp3.Select(t => t.FBIllNO).Distinct().ToList();
var ReceiveList33 = oneToOneTemp3.Select(t => t.UFbillNo).Distinct().ToList();
if (SaleBILLLIS2Sa333.Count() > ReceiveList33.Count())
if (SourceType == 0) //只有销售单有这两种匹配逻辑
{
List<string> deleteFBIllNOList = new List<string>();
ReceiveList33.ForEach(t =>
{
var temp111 = oneToOneTemp3.FirstOrDefault(h => h.UFbillNo == t && !deleteFBIllNOList.Contains(h.FBIllNO));
if (temp111 == null)
return;
var temp11 = temp111.FBIllNO;
deleteFBIllNOList.Add(temp11);
var item = SaleBILLLISNew.Where(h => h.FBIllNO == temp11).OrderBy(h => h.FDate).FirstOrDefault();
//更新销售订单数据
item.FSKBIllNO = t;
item.FISHX = "已核销配对";
item.BenCi = temp111.FDAMOUNT;
item.FDAMOUNT = item.FDAMOUNT - item.BenCi;
//3、收款单的待核销金额与订单的待最近30天开票金额(只有医院客户)
var SaleBILLLIS2Sa333 = SaleBILLLISNew.Where(t => t.FISHX != "已核销配对" && t.FDAMOUNT > 0).OrderBy(t => t.FClient).ThenByDescending(t => t.FDate).ToList();
ReceiveBILLLIST = ReceiveBILLLIST2.Where(a => a.F_RowNew == 1 && a.FISHX != "已核销配对" && a.FDAMOUNT > 0).OrderBy(t => t.FClient).ThenByDescending(t => t.FDate).ToList();
shouKuanDetail.Add(t + "," + item.FBIllNO, item.BenCi);
//item.FYAMOUNT = item.FYAMOUNT + item.BenCi;
//item.=
List<string> fString = new List<string>();
fString.Add(item.FCONTRACTNUMBER);
string fCONTRACTNUMBER = string.Join(",", fString);
//更新收款单数据
var receiveItemTemp = ReceiveBILLLIST.FirstOrDefault(h => h.FBIllNO == t);
if (receiveItemTemp != null)
var oneToOneTemp3 = (from q in SaleBILLLIS2Sa333
join u in ReceiveBILLLIST on new { q.FClient, FDAMOUNT = q.FInvoiceAmount30Days } equals new { u.FClient, u.FDAMOUNT }
select new { q.FClient, q.FBIllNO, q.FCONTRACTNUMBER, u.FDAMOUNT, UFbillNo = u.FBIllNO }).ToList();
//var dasdsas = oneToOneTemp.Where(h => h.FBIllNO == "PL-XSDD20250400471").FirstOrDefault();
var saleList33 = oneToOneTemp3.Select(t => t.FBIllNO).Distinct().ToList();
var ReceiveList33 = oneToOneTemp3.Select(t => t.UFbillNo).Distinct().ToList();
if (SaleBILLLIS2Sa333.Count() > ReceiveList33.Count())
{
List<string> deleteFBIllNOList = new List<string>();
ReceiveList33.ForEach(t =>
{
receiveItemTemp.FCONTRACTNUMBER = fCONTRACTNUMBER;
receiveItemTemp.FISHX = "已核销配对";
receiveItemTemp.BenCi = temp111.FDAMOUNT;
receiveItemTemp.FDAMOUNT = receiveItemTemp.FDAMOUNT - receiveItemTemp.BenCi;
//receiveItemTemp.FYAMOUNT = receiveItemTemp.FYAMOUNT + receiveItemTemp.BenCi;
}
var temp111 = oneToOneTemp3.FirstOrDefault(h => h.UFbillNo == t && !deleteFBIllNOList.Contains(h.FBIllNO));
if (temp111 == null)
return;
var temp11 = temp111.FBIllNO;
deleteFBIllNOList.Add(temp11);
var item = SaleBILLLISNew.Where(h => h.FBIllNO == temp11).OrderBy(h => h.FDate).FirstOrDefault();
//更新销售订单数据
item.FSKBIllNO = t;
item.FISHX = "已核销配对";
item.BenCi = temp111.FDAMOUNT;
item.FDAMOUNT = item.FDAMOUNT - item.BenCi;
shouKuanDetail.Add(t + "," + item.FBIllNO, item.BenCi);
//item.FYAMOUNT = item.FYAMOUNT + item.BenCi;
//item.=
List<string> fString = new List<string>();
fString.Add(item.FCONTRACTNUMBER);
string fCONTRACTNUMBER = string.Join(",", fString);
//更新收款单数据
var receiveItemTemp = ReceiveBILLLIST.FirstOrDefault(h => h.FBIllNO == t);
if (receiveItemTemp != null)
{
receiveItemTemp.FCONTRACTNUMBER = fCONTRACTNUMBER;
receiveItemTemp.FISHX = "已核销配对";
receiveItemTemp.BenCi = temp111.FDAMOUNT;
receiveItemTemp.FDAMOUNT = receiveItemTemp.FDAMOUNT - receiveItemTemp.BenCi;
//receiveItemTemp.FYAMOUNT = receiveItemTemp.FYAMOUNT + receiveItemTemp.BenCi;
}
});
}
else
{
List<string> deleteFBIllNOList = new List<string>();
saleList33.ForEach(t =>
{
var temp111 = oneToOneTemp3.Where(h => h.FBIllNO == t && !deleteFBIllNOList.Contains(h.UFbillNo)).OrderBy(h => h.UFbillNo).FirstOrDefault();
if (temp111 == null)
return;
var temp11 = temp111.UFbillNo;
deleteFBIllNOList.Add(temp11);
var item = SaleBILLLISNew.FirstOrDefault(h => h.FBIllNO == t);
//更新销售订单数据
item.FSKBIllNO = t;
item.FISHX = "已核销配对";
item.BenCi = temp111.FDAMOUNT;
item.FDAMOUNT = item.FDAMOUNT - item.BenCi;
//item.FYAMOUNT = item.FYAMOUNT + item.BenCi;
List<string> fString = new List<string>();
fString.Add(item.FCONTRACTNUMBER);
string fCONTRACTNUMBER = string.Join(",", fString);
//更新收款单数据
var receiveItemTemp = ReceiveBILLLIST.FirstOrDefault(h => h.FBIllNO == temp11);
if (receiveItemTemp != null)
{
receiveItemTemp.FCONTRACTNUMBER = fCONTRACTNUMBER;
receiveItemTemp.FISHX = "已核销配对";
receiveItemTemp.BenCi = temp111.FDAMOUNT;
receiveItemTemp.FDAMOUNT = receiveItemTemp.FDAMOUNT - receiveItemTemp.BenCi;
//receiveItemTemp.FYAMOUNT = receiveItemTemp.FYAMOUNT + receiveItemTemp.BenCi;
receiveItemTemp.FWeiYi = "是";
shouKuanDetail.Add(receiveItemTemp.FBIllNO + "," + item.FBIllNO, item.BenCi);
}
});
}
//先挑1张收款单对应多张张销售订单
var SaleBILLLIS2Sa2 = SaleBILLLISNew.Where(t => t.FISHX != "已核销配对" && t.FDAMOUNT > 0).OrderBy(t => t.FClient).ThenByDescending(t => t.FDate).ToList();
ReceiveBILLLIST = ReceiveBILLLIST2.Where(a => a.F_RowNew == 1 && a.FISHX != "已核销配对" && a.FDAMOUNT > 0).OrderBy(t => t.FClient).ThenByDescending(t => t.FDate).ToList();
//打包式匹配法,按时间倒序逐一核销掉.
ReceiveBILLLIST.ForEach(t =>
{
var tempList = SaleBILLLIS2Sa2.Where(h => h.FClient == t.FClient && h.FISHX != "已核销配对" && t.FDAMOUNT > 0).OrderByDescending(h => h.FDate).ToList();
var FDAMOUNT = t.FDAMOUNT;
List<string> heTongList = new List<string>();
if (t.FCONTRACTNUMBER != null)
heTongList = t.FCONTRACTNUMBER.Split(',').ToList().Distinct().ToList();
if (heTongList == null)
heTongList = new List<string>();
tempList.ForEach(sale =>
{
if (FDAMOUNT == 0)
{
return;
}
double benCi = 0;
List<string> str = new List<string>();
if (sale.FSKBIllNO != null)
str = sale.FSKBIllNO.Split(',').ToList();
if (str == null)
str = new List<string>();
str.Add(t.FBIllNO);
sale.FSKBIllNO = string.Join(",", str);
if (FDAMOUNT >= sale.FDAMOUNT)
{
benCi = sale.FDAMOUNT;
sale.BenCi = sale.FDAMOUNT;
sale.FDAMOUNT = 0;
sale.FISHX = "已核销配对";
}
else
{
benCi = FDAMOUNT;
sale.BenCi = FDAMOUNT;
sale.FDAMOUNT = sale.FDAMOUNT - benCi;
}
//sale.FYAMOUNT = sale.FYAMOUNT + sale.BenCi;
heTongList.Add(sale.FCONTRACTNUMBER);
heTongList = heTongList.Distinct().ToList();
str = new List<string>();
if (t.FSKBIllNO != null)
str = t.FSKBIllNO.Split(',').ToList();
if (str == null)
str = new List<string>();
str.Add(sale.FBIllNO);
shouKuanDetail.Add(t.FBIllNO + "," + sale.FBIllNO, benCi);
FDAMOUNT = FDAMOUNT - sale.BenCi;
t.FDAMOUNT = t.FDAMOUNT - benCi;
//t.FYAMOUNT = t.FYAMOUNT + sale.BenCi;
t.BenCi = t.BenCi + benCi;
t.FCONTRACTNUMBER = string.Join(",", heTongList);
if (heTongList.Count == 1)
t.FWeiYi = "是";
else
t.FWeiYi = "否";
if (t.FDAMOUNT == 0)
{
t.FISHX = "已核销配对";
}
});
});
}
else
{
List<string> deleteFBIllNOList = new List<string>();
saleList33.ForEach(t =>
{
var temp111 = oneToOneTemp3.Where(h => h.FBIllNO == t && !deleteFBIllNOList.Contains(h.UFbillNo)).OrderBy(h => h.UFbillNo).FirstOrDefault();
if (temp111 == null)
return;
var temp11 = temp111.UFbillNo;
deleteFBIllNOList.Add(temp11);
var item = SaleBILLLISNew.FirstOrDefault(h => h.FBIllNO == t);
//更新销售订单数据
item.FSKBIllNO = t;
item.FISHX = "已核销配对";
item.BenCi = temp111.FDAMOUNT;
item.FDAMOUNT = item.FDAMOUNT - item.BenCi;
//item.FYAMOUNT = item.FYAMOUNT + item.BenCi;
List<string> fString = new List<string>();
fString.Add(item.FCONTRACTNUMBER);
string fCONTRACTNUMBER = string.Join(",", fString);
//更新收款单数据
var receiveItemTemp = ReceiveBILLLIST.FirstOrDefault(h => h.FBIllNO == temp11);
if (receiveItemTemp != null)
{
receiveItemTemp.FCONTRACTNUMBER = fCONTRACTNUMBER;
receiveItemTemp.FISHX = "已核销配对";
receiveItemTemp.BenCi = temp111.FDAMOUNT;
receiveItemTemp.FDAMOUNT = receiveItemTemp.FDAMOUNT - receiveItemTemp.BenCi;
//receiveItemTemp.FYAMOUNT = receiveItemTemp.FYAMOUNT + receiveItemTemp.BenCi;
receiveItemTemp.FWeiYi = "是";
shouKuanDetail.Add(receiveItemTemp.FBIllNO + "," + item.FBIllNO, item.BenCi);
}
});
}
//先挑1张收款单对应多张张销售订单
var SaleBILLLIS2Sa2 = SaleBILLLISNew.Where(t => t.FISHX != "已核销配对" && t.FDAMOUNT > 0).OrderBy(t => t.FClient).ThenByDescending(t => t.FDate).ToList();
ReceiveBILLLIST = ReceiveBILLLIST2.Where(a => a.F_RowNew == 1 && a.FISHX != "已核销配对" && a.FDAMOUNT > 0).OrderBy(t => t.FClient).ThenByDescending(t => t.FDate).ToList();
//打包式匹配法,按时间倒序逐一核销掉.
ReceiveBILLLIST.ForEach(t =>
{
var tempList = SaleBILLLIS2Sa2.Where(h => h.FClient == t.FClient && h.FISHX != "已核销配对" && t.FDAMOUNT > 0).OrderByDescending(h => h.FDate).ToList();
var FDAMOUNT = t.FDAMOUNT;
List<string> heTongList = new List<string>();
if (t.FCONTRACTNUMBER != null)
heTongList = t.FCONTRACTNUMBER.Split(',').ToList().Distinct().ToList();
if (heTongList == null)
heTongList = new List<string>();
tempList.ForEach(sale =>
{
if (FDAMOUNT == 0)
{
return;
}
double benCi = 0;
List<string> str = new List<string>();
if (sale.FSKBIllNO != null)
str = sale.FSKBIllNO.Split(',').ToList();
if (str == null)
str = new List<string>();
str.Add(t.FBIllNO);
sale.FSKBIllNO = string.Join(",", str);
if (FDAMOUNT >= sale.FDAMOUNT)
{
benCi = sale.FDAMOUNT;
sale.BenCi = sale.FDAMOUNT;
sale.FDAMOUNT = 0;
sale.FISHX = "已核销配对";
}
else
{
benCi = FDAMOUNT;
sale.BenCi = FDAMOUNT;
sale.FDAMOUNT = sale.FDAMOUNT - benCi;
}
//sale.FYAMOUNT = sale.FYAMOUNT + sale.BenCi;
heTongList.Add(sale.FCONTRACTNUMBER);
heTongList = heTongList.Distinct().ToList();
str = new List<string>();
if (t.FSKBIllNO != null)
str = t.FSKBIllNO.Split(',').ToList();
if (str == null)
str = new List<string>();
str.Add(sale.FBIllNO);
shouKuanDetail.Add(t.FBIllNO + "," + sale.FBIllNO, benCi);
FDAMOUNT = FDAMOUNT - sale.BenCi;
t.FDAMOUNT = t.FDAMOUNT - benCi;
//t.FYAMOUNT = t.FYAMOUNT + sale.BenCi;
t.BenCi = t.BenCi + benCi;
t.FCONTRACTNUMBER = string.Join(",", heTongList);
if (heTongList.Count == 1)
t.FWeiYi = "是";
else
t.FWeiYi = "否";
if (t.FDAMOUNT == 0)
{
t.FISHX = "已核销配对";
}
});
});
#region
////1个销售订单对应多张收款单
//SaleBILLLIS2Sa2 = SaleBILLLISNew.Where(t => t.FISHX != "已核销配对").OrderBy(t => t.FClient).ThenBy(t => t.FCONTRACTNUMBER).ThenBy(t => t.FDate).ToList();
@ -903,34 +907,37 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire
var Rowindex = this.View.Model.GetEntryRowCount("FEntity2");
for (int i = 0; i < tempList2.Count; i++)
{
this.View.Model.SetValue("FPARENTROWID", FROWID, item.FRow);
this.View.Model.CreateNewEntryRow("FEntity2");
this.View.Model.SetValue("FROWID", Guid.NewGuid().ToString(), Rowindex + i);
this.View.Model.SetValue("FPARENTROWID", FROWID, Rowindex + i);
this.View.Model.SetValue("FBILLNO2", tempList2[i].FBIllNO, Rowindex + i);
if (DateTime.TryParseExact(item?.FDate, dateFormat, CultureInfo.InvariantCulture, DateTimeStyles.None, out DateTime parsedDate))
double benci = 0;
if (shouKuanDetail.ContainsKey(item.FBIllNO + "," + tempList2[i].FBIllNO))
{
this.View.Model.SetValue("FDate2", item?.FDate, Rowindex + i);
benci = shouKuanDetail[item.FBIllNO + "," + tempList2[i].FBIllNO];
}
this.View.Model.SetValue("FPARENTROWID", FROWID, item.FRow);
if(benci==0)
continue;
this.View.Model.CreateNewEntryRow("FEntity2");
this.View.Model.SetValue("FROWID", Guid.NewGuid().ToString(), Rowindex + 1);
this.View.Model.SetValue("FPARENTROWID", FROWID, Rowindex + 1);
this.View.Model.SetValue("FBILLNO2", tempList2[i].FBIllNO, Rowindex + 1);
if (DateTime.TryParseExact(tempList2[i].FDate, dateFormat, CultureInfo.InvariantCulture, DateTimeStyles.None, out DateTime parsedDate))
{
this.View.Model.SetValue("FDate2", tempList2[i].FDate, Rowindex + 1);
}
else
{
this.View.Model.SetValue("FDate2", DateTime.Now.AddDays(-1 * Convert.ToInt32(item?.FDate)).ToString("yyyy-MM-dd"), Rowindex + i);
this.View.Model.SetValue("FDate2", DateTime.Now.AddDays(-1 * Convert.ToInt32(tempList2[i].FDate)).ToString("yyyy-MM-dd"), Rowindex + 1);
}
this.View.Model.SetValue("F_MBBA_Decimal_imu", tempList2[i].FALLAMOUNT, Rowindex + i);
this.View.Model.SetValue("FClient2", tempList2[i].FClient, Rowindex + i);
this.View.Model.SetValue("F_RowNew", 2, Rowindex + i);
this.View.Model.SetValue("FCreated2", tempList2[i].FCreated, Rowindex + i);
this.View.Model.SetValue("FCONTRACTNUMBER2", tempList2[i].FCONTRACTNUMBER, Rowindex + i);
this.View.Model.SetValue("FSalesman2", tempList2[i].FSalesman, Rowindex + i);
this.View.Model.SetValue("F_MBBA_Decimal_qtr", tempList2[i].FDAMOUNT, Rowindex + i);
this.View.Model.SetValue("F_PendingAmount", tempList2[i].FDAMOUNT, Rowindex + i);
double benci = shouKuanDetail[item.FBIllNO + "," + tempList2[i].FBIllNO];
this.View.Model.SetValue("F_BenCi", benci, Rowindex + i);
this.View.Model.SetValue("F_MBBA_Decimal_3iy", tempList2[i].FYAMOUNT, Rowindex + i);
this.View.Model.SetValue("F_ISHX", false, Rowindex + i);
this.View.Model.SetValue("F_MBBA_Decimal_imu", tempList2[i].FALLAMOUNT, Rowindex + 1);
this.View.Model.SetValue("FClient2", tempList2[i].FClient, Rowindex + 1);
this.View.Model.SetValue("F_RowNew", 2, Rowindex + 1);
this.View.Model.SetValue("FCreated2", tempList2[i].FCreated, Rowindex + 1);
this.View.Model.SetValue("FCONTRACTNUMBER2", tempList2[i].FCONTRACTNUMBER, Rowindex + 1);
this.View.Model.SetValue("FSalesman2", tempList2[i].FSalesman, Rowindex + 1);
this.View.Model.SetValue("F_MBBA_Decimal_qtr", tempList2[i].FDAMOUNT, Rowindex + 1);
this.View.Model.SetValue("F_PendingAmount", tempList2[i].FDAMOUNT, Rowindex + 1);
this.View.Model.SetValue("F_BenCi", benci, Rowindex + 1);
this.View.Model.SetValue("F_MBBA_Decimal_3iy", tempList2[i].FYAMOUNT, Rowindex + 1);
this.View.Model.SetValue("F_ISHX", false, Rowindex + 1);
}
@ -1111,7 +1118,11 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire
try
{
//创建核销记录单
string FBILLNO = CommonHelper.CreateAutoWrireRecord2(this.Context, Convert.ToString(FOrgId), item.XSAPList, item);
string FBILLNO = "";
if(SourceType==0)
FBILLNO = CommonHelper.CreateAutoWrireRecord2(this.Context, Convert.ToString(FOrgId), item.XSAPList, item);
else
FBILLNO = CommonHelper.CreateAutoWrireRecord3(this.Context, Convert.ToString(FOrgId), item.XSAPList, item);
if (FBILLNO != "")
{
Message = Message + string.Format("生成核销记录单成功,单号为:'{0}'\r\n", FBILLNO);
@ -1135,7 +1146,7 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire
{
var tempRow = ReceiveBILLLIST2.Where(t => successFbillNo.Contains(t.FBIllNO)).ToList();
var pId = tempRow.Select(t => t.FROWID).ToList();
var allRows = FEntity2.Where(t => pId.Contains(t["PARENTROWID"].ToString())).ToList();
var allRows = FEntity2.Where(t => t["PARENTROWID"] !=null && pId.Contains(t["PARENTROWID"].ToString())).ToList();
allRows.ForEach(t =>
{
this.Model.DeleteEntryRow("FEntity2", Convert.ToInt32(t["Seq"]) - 1);
@ -1393,7 +1404,7 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire
if (F_RowNew != "1")
return;
string PARENTROWID = this.Model.GetValue("FPARENTROWID", e.Row)?.ToString();
var dataRow = FEntity2.Where(item => item["PARENTROWID"].ToString() == PARENTROWID && int.Parse(item["F_RowNew"].ToString()) != 1).ToList();
var dataRow = FEntity2.Where(item => item["PARENTROWID"] !=null && item["PARENTROWID"].ToString() == PARENTROWID && int.Parse(item["F_RowNew"].ToString()) != 1).ToList();
if (IsHX.ToLower() == "true" && dataRow.Where(t => t["F_ISHX"].ToString().ToLower() == "true").Count() > 0)
{
return;
@ -1471,6 +1482,9 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire
{
FilterParameter returnData = action.ReturnData as FilterParameter;//过滤框返回的数据
DynamicObject dyObj = returnData.CustomFilter as DynamicObject;
//获取应收款数据来源 0=销售订单 1=发货通知单
SourceType = Convert.ToInt32(dyObj["F_Source_Type2"]);
//获取组织FID
DynamicObject FSaleOrg = dyObj["F_ZhuZhi2"] as DynamicObject;
string FSaleOrgId = "";
@ -1499,15 +1513,17 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire
if (ZZS.Count > 0)
{
List<string> zzList = new List<string>();
//循环获取多选组织FID
//循环获取多选客户FID
foreach (DynamicObject dobj in ZZS)
{
DynamicObject dynamic = dobj["FClientList"] as DynamicObject;
zzList.Add(dynamic["ID"].ToString());
}
CustFid = string.Join("','", zzList);
where1 += $@" and A.FCUSTID in ('{CustFid}')";
if(SourceType==0)
where1 += $@" and A.FCUSTID in ('{CustFid}')";
else
where1 += $@" and A.FCustomerID in ('{CustFid}')";
where2 += $@" and A.FCONTACTUNIT in ('{CustFid}')";
}
//this.View.ShowMessage(string.Format("选中的客户是:{0}s", CustFid));
@ -1535,12 +1551,19 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire
//删除四个单据体
this.View.Model.DeleteEntryData("FEntity");
this.View.Model.DeleteEntryData("FEntity2");
//var FShuaXin = this.View.Model.GetValue("FShuaXin");
DynamicObjectCollection WriteOrderDate;
//调用SQL获取数据
var WriteOrderDate = SQL.SqlManage_yuyubo.GetWriteOrderDate3(this.Context, FSaleOrgId, where1);
if (SourceType == 0)
WriteOrderDate = SQL.SqlManage_yuyubo.GetWriteOrderDate3(this.Context, FSaleOrgId, where1);
else
WriteOrderDate = SQL.SqlManage_yuyubo.GetFaHuoTongZhiDan(this.Context, FSaleOrgId, where1);
var WriteReceiveDate = SQL.SqlManage_yuyubo.GetWriteReceiveDate3(this.Context, FSaleOrgId, where2);
SaleBILLLIS = WriteOrderDate.Select(item => new CombinaClass
{
Fid = Convert.ToInt32(item["FID"]),

View File

@ -1,13 +1,11 @@
using Kingdee.BOS.Core.DynamicForm.PlugIn;
using Kingdee.BOS.App.Data;
using Kingdee.BOS.Core.DynamicForm.PlugIn;
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
using Kingdee.BOS.Util;
using Pilot_KD_Parino.SQL;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Pilot_KD_Parino.QPHY_AutoWrireRecord
{
@ -17,12 +15,80 @@ namespace Pilot_KD_Parino.QPHY_AutoWrireRecord
[Description("核销记录单--反审核更新销售订单/应收单/收款单->核销金额"),HotUpdate]
public class FUpdateAmount: AbstractOperationServicePlugIn
{
public override void EndOperationTransaction(EndOperationTransactionArgs e)
//public override void EndOperationTransaction(EndOperationTransactionArgs e)
//{
// base.EndOperationTransaction(e);
// var fId = e.DataEntitys[0][0]?.ToString();
// //获取销售订单核销金额数据
// SqlManage.FUpdateSalOrderAmount(this.Context, fId);
//}
public override void AfterExecuteOperationTransaction(AfterExecuteOperationTransaction e)
{
base.EndOperationTransaction(e);
var fId = e.DataEntitys[0][0]?.ToString();
//获取销售订单核销金额数据
SqlManage.FUpdateSalOrderAmount(this.Context, fId);
base.AfterExecuteOperationTransaction(e);
foreach (var rows in e.SelectedRows)
{
var Billobj = rows.DataEntity;
//获取销售订单核销金额数据
SqlManage.FUpdateSalOrderAmount(this.Context, Convert.ToString(Billobj["Id"]));
string sql1 = string.Format(@"/*dialect*/Select B.FBILLNO2,B.FALLAMOUNT2 From T_AutoWrireRecord A
JOIN T_AutoWrireRecordEntry B
on A.FID = B.FID Where A.FID = '{0}'", Billobj["Id"]);
var sql1List = DBUtils.ExecuteDynamicObject(Context, sql1);
foreach (var item in sql1List.ToList())
{
decimal FALLAMOUNT = 0;
FALLAMOUNT = Convert.ToDecimal(item["FALLAMOUNT2"]);
string sql2 = string.Format(@"/*dialect*/Select B.FENTRYID,B.FRECADVANCEAMOUNT,ISNULL(B.F_ORDER,'') as 'F_ORDER' From
T_SAL_ORDER A
JOIN
T_SAL_ORDERPLAN B
on A.FID = B.FID
Where A.FBILLNO = '{0}'
Order by F_ORDER", item["FBILLNO2"]);
var sql2List = DBUtils.ExecuteDynamicObject(Context, sql2);
//如果只有一个直接赋值
if (sql2List.Count == 1)
{
string sql3 = string.Format(@"Update T_SAL_ORDERPLAN Set F_MBBA_Decimal_uky =ISNULL(F_MBBA_Decimal_uky,0)- {0} Where FENTRYID = {1};", FALLAMOUNT, sql2List[0]["FENTRYID"]);
DBUtils.ExecuteDynamicObject(Context, sql3);
}
if (sql2List.Count > 1)
{
for (int i = 0; i < sql2List.Count; i++)
{
//判断核销顺序是否为空
//if (!string.IsNullOrWhiteSpace(sql2List[i]["F_ORDER"]?.ToString()))
//{
//判断核销金额是否大于按照排序对冲金额
decimal FRECADVANCEAMOUNT = Convert.ToDecimal(sql2List[i]["FRECADVANCEAMOUNT"]);
if (FALLAMOUNT > 0)
{
decimal fAmount = 0;
//判断是否整条对冲
if (FALLAMOUNT - FRECADVANCEAMOUNT >= 0)
{
fAmount = FRECADVANCEAMOUNT;
}
else
{
fAmount = FALLAMOUNT;
}
string sql3 = string.Format(@"Update T_SAL_ORDERPLAN Set F_MBBA_Decimal_uky = ISNULL(F_MBBA_Decimal_uky,0)-{0} Where FENTRYID = {1};", fAmount, sql2List[i]["FENTRYID"]);
DBUtils.ExecuteDynamicObject(Context, sql3);
}
FALLAMOUNT -= FRECADVANCEAMOUNT;
//}
}
}
}
}
}
}
}

View File

@ -1,14 +1,11 @@
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
using Kingdee.BOS.App.Data;
using Kingdee.BOS.Core.DynamicForm.PlugIn;
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
using Kingdee.BOS.Util;
using Pilot_KD_Parino.SQL;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Kingdee.BOS.App.Data;
namespace Pilot_KD_Parino.QPHY_AutoWrireRecord
{
@ -49,7 +46,7 @@ namespace Pilot_KD_Parino.QPHY_AutoWrireRecord
//如果只有一个直接赋值
if (sql2List.Count == 1)
{
string sql3 = string.Format(@"Update T_SAL_ORDERPLAN Set F_MBBA_Decimal_uky = '{0}' Where FENTRYID = '{1}';", FALLAMOUNT, sql2List[0]["FENTRYID"]);
string sql3 = string.Format(@"Update T_SAL_ORDERPLAN Set F_MBBA_Decimal_uky =ISNULL(F_MBBA_Decimal_uky,0)+ {0} Where FENTRYID = '{1}';", FALLAMOUNT, sql2List[0]["FENTRYID"]);
DBUtils.ExecuteDynamicObject(Context, sql3);
}
if (sql2List.Count > 1)
@ -57,8 +54,8 @@ namespace Pilot_KD_Parino.QPHY_AutoWrireRecord
for (int i = 0; i < sql2List.Count; i++)
{
//判断核销顺序是否为空
if (!string.IsNullOrWhiteSpace(sql2List[i]["F_ORDER"]?.ToString()))
{
//if (!string.IsNullOrWhiteSpace(sql2List[i]["F_ORDER"]?.ToString()))
//{
//判断核销金额是否大于按照排序对冲金额
decimal FRECADVANCEAMOUNT = Convert.ToDecimal(sql2List[i]["FRECADVANCEAMOUNT"]);
if (FALLAMOUNT > 0)
@ -73,11 +70,11 @@ namespace Pilot_KD_Parino.QPHY_AutoWrireRecord
{
fAmount = FALLAMOUNT;
}
string sql3 = string.Format(@"Update T_SAL_ORDERPLAN Set F_MBBA_Decimal_uky = '{0}' Where FENTRYID = '{1}';", fAmount, sql2List[i]["FENTRYID"]);
string sql3 = string.Format(@"Update T_SAL_ORDERPLAN Set F_MBBA_Decimal_uky = ISNULL(F_MBBA_Decimal_uky,0)+{0} Where FENTRYID = '{1}';", fAmount, sql2List[i]["FENTRYID"]);
DBUtils.ExecuteDynamicObject(Context, sql3);
}
FALLAMOUNT -= FRECADVANCEAMOUNT;
}
//}
}
}
}

View File

@ -120,6 +120,64 @@ GROUP BY F_PaperNumber, FSALEORGID
return DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null);
}
/// <summary>
/// 获取未核销的发货通知单信息
/// </summary>
/// <returns></returns>
public static DynamicObjectCollection GetFaHuoTongZhiDan(Context ctx, string FORGID, string where)
{
//定义SQL,调用物料视图 AND A.FBusinessType='NORMAL'
/*
* SELECT case when FBusinessType='NORMAL' then (FDAMOUNT2+[退]) else 0 end AS FDAMOUNT, * FROM
*
*/
string sql = string.Format($@"/*dialect*/
SELECT FDAMOUNT2 as FDAMOUNT, * FROM
(
SELECT A.FID, A.FBusinessType,
A.FSalesManID as FSALERID,
A.F_Papercontract as F_CONTRACTNUMBER,
A.FCustomerID as FCUSTID,
A.F_PROJECTNAME,
A.FCREATORID,
A.FBILLNO AS 'FBILLNO',
DATEDIFF(D, A.FDATE, GETDATE()) AS 'FDATE',
C.FBILLALLAMOUNT_LC AS 'FALLAMOUNT' ,
C.FBILLALLAMOUNT as 'FALLAMOUNTY',
ISNULL(A.F_AMOUNT,0) as 'FYAMOUNT',
C.FBILLALLAMOUNT_LC-A.F_AMOUNT as 'FDAMOUNT2',
C.FSETTLECURRID as 'FCurr',
case when DATEDIFF(MONTH, A.FDATE, GETDATE())<3 then 'True' else 'False' end as 'FIs30' ,
'' as 'FTYPE',
0.00 AS BenCi,
'' as F_Ordercategory2,
'' AS F_Ordercategory,
(
SELECT SUM(F_GeneralInvoice) AS '' FROM (
SELECT F_PaperNumber, t0.FSALEORGID,
CASE WHEN F_ORDERCATEGORY ='67283ced82f38d' THEN FAFTERTOTALTAX
WHEN F_ORDERCATEGORY !='67283ced82f38d' AND F_GENERALINVOICE='Y' THEN 0 ELSE FAFTERTOTALTAX END AS F_GeneralInvoice
--FAFTERTOTALTAX
FROM T_IV_SALESIC t0 WITH(NOLOCK)
INNER JOIN T_SAL_ORDER aa1 WITH(NOLOCK) ON t0.F_PAPERNUMBER=aa1.F_contractnumber AND t0.FSETTLEORGID=aa1.FSALEORGID
--WHERE F_PaperNumber='P202502070004'
) AD WHERE AD.F_PaperNumber = A.F_Papercontract AND ad.FSALEORGID=a.FSALEORGID
GROUP BY F_PaperNumber, FSALEORGID
) as FInvoiceAmount,
0 as FaHuoAmount30Days,
0 as FInvoiceAmount30Days
,[退]=0
FROM T_SAL_DELIVERYNOTICE A
INNER JOIN T_SAL_DELIVERYNOTICEFIN C ON C.FID =A.FID
WHERE
C.FBILLALLAMOUNT_LC > 0
AND A.FDOCUMENTSTATUS = 'C' AND ISNULL(A.F_Papercontract,'')!=''
AND (A.F_AMOUNT < C.FBILLALLAMOUNT_LC
or A.F_AMOUNT IS NULL) {where}
) A ORDER BY A.FCUSTID,a.FID desc ");
return DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null);
}
}
}

View File

@ -71,6 +71,55 @@ namespace Pilot_KD_Parino.Sal_Order
this.View.ShowMessage("跨组织下推订单完成");
}
if (e.BarItemKey.Equals("tbSaleBill666", StringComparison.OrdinalIgnoreCase))
{
this.View.ShowMessage("该功能开发中");
return;
var FEntity = this.View.Model.DataObject;
var json = JsonUtil.Serialize(FEntity);
//Logger.Error("FEntity", json, new Exception());
var id = FEntity["id"];
string formid = FEntity["FFormId"].ToString();
//发货通知单或者发货出库单
string getSourceSql = $@"/*dialect*/SELECT FSTABLENAME,FSBILLID,FENTRYID FROM dbo.T_{formid}ENTRY_LK
WHERE FENTRYID IN ( SELECT FENTRYID FROM dbo.T_{formid}ENTRY WHERE FID = {id})";
var dt = DBServiceHelper.ExecuteDynamicObject(this.Context, getSourceSql);
if (dt == null || dt.Count == 0)
{
this.View.ShowMessage("没有上查关联的销售订单");
}
var entryIdList = dt.Select(t => t["FENTRYID"]).ToList() ;
int tempFid = int.Parse(dt.Select(t => t["FSBILLID"]).FirstOrDefault().ToString());
string tablename = dt.Select(t => t["FSTABLENAME"]).FirstOrDefault().ToString();
int stockId = 0;
getSourceSql = $@"/*dialect*/SELECT FSTABLENAME,FSBILLID,FENTRYID FROM dbo.T_SAL_ORDERENTRY_LK
WHERE FSBILLID={tempFid}";
dt = DBServiceHelper.ExecuteDynamicObject(this.Context, getSourceSql);
if (dt == null || dt.Count == 0)
{
this.View.ShowMessage("没有下查关联的跨组织销售订单");
}
var FENTRYIDList = dt.Select(t =>int.Parse( t["FENTRYID"].ToString())).ToList();
string ids = string.Join(",", FENTRYIDList);
getSourceSql = $@"/*dialect*/ SELECT* FROM T_SAL_ORDERENTRY WHERE FENTRYID IN({ids})";
//IOperationResult result = Invoke("SAL_SaleOrder", "PUR_PurchaseOrder", id.ToString(), "83d822ca3e374b4ab01e5dd46a0062bd", ref stockId, FEntity, null);
////var sheet = result.SuccessDataEnity.FirstOrDefault();
//result = Invoke("SAL_SaleOrder", "SAL_SaleOrder", id.ToString(), "eacb50844fc84a10b03d7b841f3a6278", ref stockId, null, FEntity);
//sheet = result.SuccessDataEnity.FirstOrDefault();
//result = Invoke("SAL_DELIVERYNOTICE", "SAL_OUTSTOCK", sheet["id"].ToString(), "ad0779a4685a43a08f08d2e42d7bf3e9", ref stockId);
this.View.ShowMessage("跨组织下推订单完成");
}
}
@ -254,7 +303,7 @@ namespace Pilot_KD_Parino.Sal_Order
orderSheet["F_SFHW"] = "2";
this.View.ShowMessage("更新了1");
//this.View.ShowMessage("更新了1");
string sqltemp1 = $@"/*dialect*/ SELECT FUseOrgId,a.FNUMBER,b.FNAME,a.FCUSTID FROM T_BD_CUSTOMER a
LEFT JOIN T_BD_CUSTOMER_L b ON a.FCUSTID=b.FCUSTID
@ -476,7 +525,7 @@ namespace Pilot_KD_Parino.Sal_Order
orderSheet["F_Amountstar"] = FEntity2["F_Amountstar"];
}
sdsas = JsonHelper.ToJson(destObjs);
Logger.Error("目标单据数据集合4", sdsas, new Exception());
//Logger.Error("目标单据数据集合4", sdsas, new Exception());
IOperationResult saveResult2 = BusinessDataServiceHelper.Draft(this.Context, destFormMetadata.BusinessInfo, destObjs, OperateOption.Create());
//var ddd = (from p in destObjs select p[0]).ToArray();

View File

@ -56,6 +56,7 @@ namespace Pilot_KD_Parino.Sal_Order
}
int tempFid = int.Parse(dt.Select(t => t["FSBILLID"]).FirstOrDefault().ToString());
string tablename = dt.Select(t => t["FSTABLENAME"]).FirstOrDefault().ToString();
int xiaoFid = 0;
//找到采购订单
for (int kk = 0; kk < 6 && tablename.ToUpper() != "T_PUR_POORDERENTRY"; kk++)
{
@ -79,20 +80,46 @@ namespace Pilot_KD_Parino.Sal_Order
if (dt == null || dt.Count == 0)
{
this.View.ShowMessage("没有上查关联的跨组织的采购订单");
//this.View.ShowMessage("没有上查关联的跨组织的采购订单");
return;
}
else
{
tablename = dt.Select(t => t["FSTABLENAME"]).FirstOrDefault().ToString();
//if (tablename.ToUpper() != "T_PUR_POORDERENTRY")
// this.View.ShowMessage("没有上查关联的跨组织的采购订单 " + tablename);
tempFid = int.Parse(dt.Select(t => t["FSBILLID"]).FirstOrDefault().ToString());
}
tempFid = int.Parse(dt.Select(t => t["FSBILLID"]).FirstOrDefault().ToString());
}
if (tablename.ToUpper() != "T_PUR_POORDERENTRY")
{
throw new KDBusinessException("", "没有上查关联的跨组织的采购订单:" + tablename);
{
getSourceSql = $@"/*dialect*/SELECT FSTABLENAME,FSBILLID,FENTRYID FROM dbo.T_PUR_POORDERENTRY_LK
WHERE FSBILLID= {tempFid}";
dt = DBServiceHelper.ExecuteDynamicObject(this.Context, getSourceSql);
if (dt == null || dt.Count == 0)
{
throw new KDBusinessException("", "没有上查关联的跨组织的采购订单:" + tablename);
}
else
{
xiaoFid = tempFid;
//tablename = dt.Select(t => t["FSTABLENAME"]).FirstOrDefault().ToString();
//tempFid = int.Parse(dt.Select(t => t["FSBILLID"]).FirstOrDefault().ToString());
var FENTRYIDList = dt.Select(t => int.Parse(t["FENTRYID"].ToString())).ToList();
string ids = string.Join(",", FENTRYIDList);
getSourceSql = $@"/*dialect*/ SELECT FID FROM T_PUR_POORDERENTRY WHERE FENTRYID IN({ids})";
dt = DBServiceHelper.ExecuteDynamicObject(this.Context, getSourceSql);
if (dt == null || dt.Count == 0)
{
throw new KDBusinessException("", "没有上查关联的跨组织的采购订单:" + tablename);
}
else
{
tempFid =int.Parse( dt.FirstOrDefault()["FID"].ToString());
}
}
}
int stockId = 0;
@ -111,7 +138,7 @@ namespace Pilot_KD_Parino.Sal_Order
}
//找到最开始的销售订单
for (int kk = 0; kk < 6 && tablename.ToUpper() != "T_SAL_ORDERENTRY"; kk++)
for (int kk = 0; kk < 6 && tablename.ToUpper() != "T_SAL_ORDERENTRY" && xiaoFid==0; kk++)
{
////发货通知单
tempFid = int.Parse(dt.Select(t => t["FSBILLID"]).FirstOrDefault().ToString());
@ -133,13 +160,14 @@ namespace Pilot_KD_Parino.Sal_Order
}
tempFid = int.Parse(dt.Select(t => t["FSBILLID"]).FirstOrDefault().ToString());
}
if (tablename.ToUpper() != "T_SAL_ORDERENTRY")
if (tablename.ToUpper() != "T_SAL_ORDERENTRY" && xiaoFid == 0)
{
throw new KDBusinessException("", "推送销售发货通知单失败,没有上查关联的跨组织的销售订单:" + tablename);
}
if (xiaoFid > 0)
tempFid = xiaoFid;
result = Invoke("SAL_SaleOrder", "SAL_DELIVERYNOTICE", tempFid.ToString(), "193822715afc48aa9fa6d6beca7700ab", ref stockId);
sheet = result.SuccessDataEnity.FirstOrDefault();
result = Invoke("SAL_DELIVERYNOTICE", "SAL_OUTSTOCK", sheet["id"].ToString(), "ad0779a4685a43a08f08d2e42d7bf3e9", ref stockId);

View File

@ -0,0 +1,87 @@
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
using Kingdee.BOS.Core.DynamicForm.PlugIn;
using Kingdee.BOS.Util;
using Pilot_KD_Parino.SQL;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Kingdee.BOS.App.Data;
namespace Pilot_KD_Parino.VRYF_FHTZDHXJL
{
[HotUpdate]
[Description("核销记录单--更新销售订单金额")]
public class UpdateAmount : AbstractOperationServicePlugIn
{
public override void AfterExecuteOperationTransaction(AfterExecuteOperationTransaction e)
{
base.AfterExecuteOperationTransaction(e);
foreach (var rows in e.SelectedRows)
{
var Billobj = rows.DataEntity;
//获取销售订单核销金额数据
SqlManage.UpdateSalOrderAmount(this.Context, Convert.ToString(Billobj["Id"]));
string sql1 = string.Format(@"/*dialect*/Select B.FBILLNO2,B.FALLAMOUNT2 From VRYF_t_Cust100015 A
JOIN VRYF_t_Cust_Entry100024 B
on A.FID = B.FID Where A.FID = '{0}'", Billobj["Id"]);
var sql1List = DBUtils.ExecuteDynamicObject(Context, sql1);
foreach (var item in sql1List.ToList())
{
decimal FALLAMOUNT = 0;
FALLAMOUNT = Convert.ToDecimal(item["FALLAMOUNT2"]);
string sql2 = string.Format($@"/*dialect*/Select B.FENTRYID,B.FRECADVANCEAMOUNT,ISNULL(B.F_ORDER,'') as 'F_ORDER' From
T_SAL_ORDER A
JOIN
T_SAL_ORDERPLAN B
on A.FID = B.FID
Where A.FDOCUMENTSTATUS = '{item["FDOCUMENTSTATUS"]}' and A.FSaleOrgId={item["FORGID"]}
Order by F_ORDER ,FENTRYID");
var sql2List = DBUtils.ExecuteDynamicObject(Context, sql2);
//如果只有一个直接赋值
if (sql2List.Count == 1)
{
string sql3 = string.Format(@"Update T_SAL_ORDERPLAN Set F_MBBA_Decimal_uky = {0} Where FENTRYID = {1};", FALLAMOUNT, sql2List[0]["FENTRYID"]);
DBUtils.ExecuteDynamicObject(Context, sql3);
}
if (sql2List.Count > 1)
{
for (int i = 0; i < sql2List.Count; i++)
{
//判断核销顺序是否为空
//if (!string.IsNullOrWhiteSpace(sql2List[i]["F_ORDER"]?.ToString()))
//{
//判断核销金额是否大于按照排序对冲金额
decimal FRECADVANCEAMOUNT = Convert.ToDecimal(sql2List[i]["FRECADVANCEAMOUNT"]);
if (FALLAMOUNT > 0)
{
decimal fAmount = 0;
//判断是否整条对冲
if (FALLAMOUNT - FRECADVANCEAMOUNT >= 0)
{
fAmount = FRECADVANCEAMOUNT;
}
else
{
fAmount = FALLAMOUNT;
}
string sql3 = string.Format(@"Update T_SAL_ORDERPLAN Set F_MBBA_Decimal_uky = '{0}' Where FENTRYID = '{1}';", fAmount, sql2List[i]["FENTRYID"]);
DBUtils.ExecuteDynamicObject(Context, sql3);
}
FALLAMOUNT -= FRECADVANCEAMOUNT;
//}
}
}
}
}
}
}
}