This commit is contained in:
余宇波 2025-04-24 14:19:19 +08:00
parent 3076efb620
commit f50f9c9675

View File

@ -548,8 +548,8 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire
} }
//2、收款单的待核销金额与订单的待最近30天发货通知单金额(除了医院客户) //2、收款单的待核销金额与订单的待最近30天发货通知单金额(除了医院客户)
var SaleBILLLIS2Sa222 = SaleBILLLISNew.Where(t => t.FISHX != "已核销配对" && t.FDAMOUNT > 0).OrderBy(t => t.FClient).ThenByDescending(t => t.FBIllNO).ToList(); var SaleBILLLIS2Sa222 = 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.FBIllNO).ToList(); ReceiveBILLLIST = ReceiveBILLLIST2.Where(a => a.F_RowNew == 1 && a.FISHX != "已核销配对" && a.FDAMOUNT > 0).OrderBy(t => t.FClient).ThenByDescending(t => t.FDate).ToList();
var oneToOneTemp2 = (from q in SaleBILLLIS2Sa222 var oneToOneTemp2 = (from q in SaleBILLLIS2Sa222
join u in ReceiveBILLLIST on new { q.FClient, FDAMOUNT= q.FaHuoAmount30Days } equals new { u.FClient, u.FDAMOUNT } join u in ReceiveBILLLIST on new { q.FClient, FDAMOUNT= q.FaHuoAmount30Days } equals new { u.FClient, u.FDAMOUNT }
@ -633,15 +633,96 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire
//3、收款单的待核销金额与订单的待最近30天开票金额(只有医院客户) //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 SaleBILLLIS2Sa222
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 =>
{
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张收款单对应多张张销售订单 //先挑1张收款单对应多张张销售订单
var SaleBILLLIS2Sa2 = SaleBILLLISNew.Where(t => t.FISHX != "已核销配对" && t.FDAMOUNT > 0).OrderBy(t => t.FClient).ThenByDescending(t => t.FBIllNO).ToList(); 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.FBIllNO).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 => ReceiveBILLLIST.ForEach(t =>
{ {
var tempList = SaleBILLLIS2Sa2.Where(h => h.FClient == t.FClient && h.FISHX != "已核销配对" && t.FDAMOUNT > 0).OrderByDescending(h => h.FBIllNO).ToList(); var tempList = SaleBILLLIS2Sa2.Where(h => h.FClient == t.FClient && h.FISHX != "已核销配对" && t.FDAMOUNT > 0).OrderByDescending(h => h.FDate).ToList();
var FDAMOUNT = t.FDAMOUNT; var FDAMOUNT = t.FDAMOUNT;
List<string> heTongList = new List<string>(); List<string> heTongList = new List<string>();