This commit is contained in:
余宇波 2025-04-08 20:13:20 +08:00
parent 461d514177
commit e661f5d8aa
4 changed files with 303 additions and 187 deletions

View File

@ -74,6 +74,8 @@ namespace Pilot_KD_Parino.Common
/// 行号 /// 行号
/// </summary> /// </summary>
public int FRow { get; set; } public int FRow { get; set; }
public int Fid { get; set; }
/// <summary> /// <summary>
/// 行级 /// 行级
/// </summary> /// </summary>
@ -167,5 +169,11 @@ namespace Pilot_KD_Parino.Common
/// 销售员 /// 销售员
/// </summary> /// </summary>
public int FSalesman { get; set; } public int FSalesman { get; set; }
/// <summary>
/// 本次核销金额
/// </summary>
public double BenCi { get; set; }
} }
} }

View File

@ -211,7 +211,7 @@ namespace Pilot_KD_Parino.Common
result.Add(new List<double>(current)); result.Add(new List<double>(current));
return; return;
} }
payments = payments.Where(t => t <= target).ToList();
for (int i = start; i < payments.Count(); i++) for (int i = start; i < payments.Count(); i++)
{ {
if (payments[i] > target) if (payments[i] > target)

View File

@ -65,6 +65,7 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire
var WriteReceiveDate = SQL.SqlManage_yuyubo.GetWriteReceiveDate3(this.Context, Convert.ToString(FOrgId)); var WriteReceiveDate = SQL.SqlManage_yuyubo.GetWriteReceiveDate3(this.Context, Convert.ToString(FOrgId));
SaleBILLLIS = WriteOrderDate.Select(item => new CombinaClass SaleBILLLIS = WriteOrderDate.Select(item => new CombinaClass
{ {
Fid= Convert.ToInt32(item["FID"]),
FBIllNO = Convert.ToString(item["FBIllNO"]), FBIllNO = Convert.ToString(item["FBIllNO"]),
FCONTRACTNUMBER = Convert.ToString(item["F_CONTRACTNUMBER"]), FCONTRACTNUMBER = Convert.ToString(item["F_CONTRACTNUMBER"]),
FClient = Convert.ToInt32(item["FCUSTID"]), FClient = Convert.ToInt32(item["FCUSTID"]),
@ -76,28 +77,13 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire
FSalesman = Convert.ToInt32(item["FSALERID"]), FSalesman = Convert.ToInt32(item["FSALERID"]),
FIs30 = Convert.ToBoolean(item["FIs30"]), FIs30 = Convert.ToBoolean(item["FIs30"]),
FType = Convert.ToString(item["FType"]), FType = Convert.ToString(item["FType"]),
BenCi = Convert.ToDouble(item["BenCi"]),
}).ToList(); }).ToList();
//foreach (var item in WriteReceiveDate)
//{
// ReceiveBILLLIST.Add(new CombinaClass()
// {
// FBIllNO = Convert.ToString(item["FBIllNO"]),
// FDate = Convert.ToString(item["FDate"]),
// FALLAMOUNT = Convert.ToDouble(item["FALLAMOUNT"]),
// FYAMOUNT = Convert.ToDouble(item["FYAMOUNT"]),
// FDAMOUNT = Convert.ToDouble(item["FDAMOUNT"]),
// FClient = Convert.ToInt32(item["FCONTACTUNIT"]),
// FCreated = Convert.ToInt32(item["FCREATORID"]),
// FRemark = Convert.ToString(item["FREMARK"]),
// FSalesman = Convert.ToInt32(item["FSALEERID"]),
// F_RowNew = 1
// //FALLAMOUNTY = Convert.ToDouble(item["FALLAMOUNTY"]),
// //FCurr = Convert.ToInt32(item["FCurr"])
// });
//}
ReceiveBILLLIST = WriteReceiveDate.Select(item => new CombinaClass ReceiveBILLLIST = WriteReceiveDate.Select(item => new CombinaClass
{ {
Fid = Convert.ToInt32(item["FID"]),
FBIllNO = Convert.ToString(item["FBIllNO"]), FBIllNO = Convert.ToString(item["FBIllNO"]),
FDate = Convert.ToString(item["FDate"]), FDate = Convert.ToString(item["FDate"]),
FALLAMOUNT = Convert.ToDouble(item["FALLAMOUNT"]), FALLAMOUNT = Convert.ToDouble(item["FALLAMOUNT"]),
@ -107,7 +93,8 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire
FCreated = Convert.ToInt32(item["FCREATORID"]), FCreated = Convert.ToInt32(item["FCREATORID"]),
FRemark = Convert.ToString(item["FREMARK"]), FRemark = Convert.ToString(item["FREMARK"]),
FSalesman = Convert.ToInt32(item["FSALEERID"]), FSalesman = Convert.ToInt32(item["FSALEERID"]),
F_RowNew = 1 F_RowNew = 1,
BenCi=0,
}).ToList(); }).ToList();
SaleBILLLIS2 = SaleBILLLIS.ToList(); SaleBILLLIS2 = SaleBILLLIS.ToList();
@ -149,6 +136,8 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire
this.View.Model.SetValue("FROWID", FROWID, RowindexNew); this.View.Model.SetValue("FROWID", FROWID, RowindexNew);
this.View.Model.SetValue("FPARENTROWID", FROWID, RowindexNew); this.View.Model.SetValue("FPARENTROWID", FROWID, RowindexNew);
this.View.Model.SetValue("FBILLNO2", ReceiveBILLLIST[i].FBIllNO, RowindexNew); this.View.Model.SetValue("FBILLNO2", ReceiveBILLLIST[i].FBIllNO, RowindexNew);
this.View.Model.SetValue("F_BenCi", ReceiveBILLLIST[i].BenCi, RowindexNew);
this.View.Model.SetValue("F_PendingAmount", ReceiveBILLLIST[i].FDAMOUNT, RowindexNew);
this.View.Model.SetValue("FDATE2", DateTime.Now.AddDays(-1 * Convert.ToInt32(ReceiveBILLLIST[i].FDate)).ToString("yyyy-MM-dd"), RowindexNew); this.View.Model.SetValue("FDATE2", DateTime.Now.AddDays(-1 * Convert.ToInt32(ReceiveBILLLIST[i].FDate)).ToString("yyyy-MM-dd"), RowindexNew);
this.View.Model.SetValue("F_MBBA_Decimal_imu", ReceiveBILLLIST[i].FALLAMOUNT, RowindexNew); this.View.Model.SetValue("F_MBBA_Decimal_imu", ReceiveBILLLIST[i].FALLAMOUNT, RowindexNew);
this.View.Model.SetValue("FClient2", ReceiveBILLLIST[i].FClient, RowindexNew); this.View.Model.SetValue("FClient2", ReceiveBILLLIST[i].FClient, RowindexNew);
@ -157,7 +146,8 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire
this.View.Model.SetValue("F_MBBA_Decimal_lsn", ReceiveBILLLIST[i].FDAMOUNT, RowindexNew); this.View.Model.SetValue("F_MBBA_Decimal_lsn", ReceiveBILLLIST[i].FDAMOUNT, RowindexNew);
this.View.Model.SetValue("FCreated2", ReceiveBILLLIST[i].FCreated, RowindexNew); this.View.Model.SetValue("FCreated2", ReceiveBILLLIST[i].FCreated, RowindexNew);
this.View.Model.SetValue("FSalesman2", ReceiveBILLLIST[i].FSalesman, RowindexNew); this.View.Model.SetValue("FSalesman2", ReceiveBILLLIST[i].FSalesman, RowindexNew);
this.View.Model.SetValue("F_RowNew", ReceiveBILLLIST[i].F_RowNew, RowindexNew); this.View.Model.SetValue("F_RowNew", ReceiveBILLLIST[i].F_RowNew, RowindexNew);
} }
this.View.UpdateView("FEntity2"); this.View.UpdateView("FEntity2");
} }
@ -589,6 +579,8 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire
//var FClientList2 = SaleBILLLIS2Sal.GroupBy(t => t.FClient).ToList(); //var FClientList2 = SaleBILLLIS2Sal.GroupBy(t => t.FClient).ToList();
//var FClientReceiveBillList= ReceiveBILLLIST //var FClientReceiveBillList= ReceiveBILLLIST
Dictionary<string, double> shouKuanDetail = new Dictionary<string, double>();
//先挑1张收款单对应一张销售订单 //先挑1张收款单对应一张销售订单
var oneToOneTemp = (from q in SaleBILLLIS2Sal var oneToOneTemp = (from q in SaleBILLLIS2Sal
join u in ReceiveBILLLIST on new { q.FClient, q.FDAMOUNT } equals new { u.FClient, u.FDAMOUNT } join u in ReceiveBILLLIST on new { q.FClient, q.FDAMOUNT } equals new { u.FClient, u.FDAMOUNT }
@ -601,12 +593,21 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire
ReceiveList1.ForEach(t => ReceiveList1.ForEach(t =>
{ {
var temp11 = oneToOneTemp.FirstOrDefault(h => h.UFbillNo == t && !deleteFBIllNOList.Contains(h.FBIllNO)).FBIllNO; var temp111 = oneToOneTemp.FirstOrDefault(h => h.UFbillNo == t && !deleteFBIllNOList.Contains(h.FBIllNO));
if (temp111 == null)
return;
var temp11 = temp111.FBIllNO;
deleteFBIllNOList.Add(temp11); deleteFBIllNOList.Add(temp11);
var item = SaleBILLLISNew.Where(h => h.FBIllNO == temp11).OrderBy(h=>h.FDate).FirstOrDefault(); var item = SaleBILLLISNew.Where(h => h.FBIllNO == temp11).OrderBy(h=>h.FDate).FirstOrDefault();
//更新销售订单数据 //更新销售订单数据
item.FSKBIllNO = t; item.FSKBIllNO = t;
item.FISHX = "已核销配对"; 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>(); List<string> fString = new List<string>();
fString.Add(item.FCONTRACTNUMBER); fString.Add(item.FCONTRACTNUMBER);
string fCONTRACTNUMBER = string.Join(",", fString); string fCONTRACTNUMBER = string.Join(",", fString);
@ -616,6 +617,9 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire
{ {
receiveItemTemp.FCONTRACTNUMBER = fCONTRACTNUMBER; receiveItemTemp.FCONTRACTNUMBER = fCONTRACTNUMBER;
receiveItemTemp.FISHX = "已核销配对"; receiveItemTemp.FISHX = "已核销配对";
receiveItemTemp.BenCi = temp111.FDAMOUNT;
receiveItemTemp.FDAMOUNT = receiveItemTemp.FDAMOUNT - receiveItemTemp.BenCi;
//receiveItemTemp.FYAMOUNT = receiveItemTemp.FYAMOUNT + receiveItemTemp.BenCi;
} }
}); });
@ -625,12 +629,18 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire
List<string> deleteFBIllNOList = new List<string>(); List<string> deleteFBIllNOList = new List<string>();
saleList1.ForEach(t => saleList1.ForEach(t =>
{ {
var temp11 = oneToOneTemp.Where(h => h.FBIllNO == t && !deleteFBIllNOList.Contains(h.UFbillNo)).OrderBy(h=>h.UFbillNo).FirstOrDefault().UFbillNo; var temp111 = oneToOneTemp.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); deleteFBIllNOList.Add(temp11);
var item = SaleBILLLISNew.FirstOrDefault(h => h.FBIllNO == t); var item = SaleBILLLISNew.FirstOrDefault(h => h.FBIllNO == t);
//更新销售订单数据 //更新销售订单数据
item.FSKBIllNO = t; item.FSKBIllNO = t;
item.FISHX = "已核销配对"; item.FISHX = "已核销配对";
item.BenCi = temp111.FDAMOUNT;
item.FDAMOUNT = item.FDAMOUNT - item.BenCi;
//item.FYAMOUNT = item.FYAMOUNT + item.BenCi;
List<string> fString = new List<string>(); List<string> fString = new List<string>();
fString.Add(item.FCONTRACTNUMBER); fString.Add(item.FCONTRACTNUMBER);
string fCONTRACTNUMBER = string.Join(",", fString); string fCONTRACTNUMBER = string.Join(",", fString);
@ -640,202 +650,298 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire
{ {
receiveItemTemp.FCONTRACTNUMBER = fCONTRACTNUMBER; receiveItemTemp.FCONTRACTNUMBER = fCONTRACTNUMBER;
receiveItemTemp.FISHX = "已核销配对"; 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 != "已核销配对").OrderBy(t => t.FClient).ThenBy(t => t.FCONTRACTNUMBER).ThenBy(t => t.FDate).ToList(); var SaleBILLLIS2Sa2 = SaleBILLLISNew.Where(t => t.FISHX != "已核销配对" && t.FDAMOUNT > 0).OrderBy(t => t.FClient).ThenByDescending(t => t.FBIllNO).ToList();
ReceiveBILLLIST = ReceiveBILLLIST2.Where(a => a.F_RowNew == 1 && a.FISHX != "已核销配对").OrderBy(t => t.FClient).ThenBy(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.ForEach(t => ReceiveBILLLIST.ForEach(t =>
{ {
var tempList = SaleBILLLIS2Sa2.Where(h => h.FClient == t.FClient && t.FDAMOUNT >= h.FDAMOUNT).OrderBy(h => h.FBIllNO).ToList(); var tempList = SaleBILLLIS2Sa2.Where(h => h.FClient == t.FClient && h.FISHX != "已核销配对" && t.FDAMOUNT > 0).OrderByDescending(h=>h.FBIllNO).ToList();
List<double> sales1 = new List<double> { t.FDAMOUNT };
var payments2 = tempList.Select(k => k.FDAMOUNT).ToList(); var FDAMOUNT = t.FDAMOUNT;
List<string> heTongList = new List<string>();
var matches = CombinationGenerator_yuyubo.MatchSalesAndPayments(sales1, payments2); if (t.FCONTRACTNUMBER!=null)
heTongList = t.FCONTRACTNUMBER.Split(',').ToList().Distinct().ToList();
if (matches.Count > 0) if(heTongList==null)
heTongList = new List<string>();
tempList.ForEach(sale =>
{ {
var FDAMOUNTList = matches[0].FirstOrDefault(); if (FDAMOUNT == 0)
tempList = tempList.Where(h => FDAMOUNTList.Contains(h.FDAMOUNT)).OrderBy(h => h.FDate).ToList();
var fbillNoList = tempList.Select(h => h.FBIllNO).ToList();
var SaleTempList = SaleBILLLISNew.Where(h => fbillNoList.Contains(h.FBIllNO)).ToList();
List<string> fString = new List<string>();
SaleTempList.ForEach(item =>
{ {
//更新销售订单数据 return;
item.FSKBIllNO = t.FBIllNO; }
item.FISHX = "已核销配对"; double benCi = 0;
fString.Add(item.FCONTRACTNUMBER); List<string> str = new List<string>();
}); if (sale.FSKBIllNO != null)
str = sale.FSKBIllNO.Split(',').ToList();
string fCONTRACTNUMBER = string.Join(",", fString); if (str == null)
//更新收款单数据 str = new List<string>();
t.FCONTRACTNUMBER = fCONTRACTNUMBER; str.Add(t.FBIllNO);
t.FISHX = "已核销配对"; sale.FSKBIllNO = string.Join(",", str);
}
}); if (FDAMOUNT >= sale.FDAMOUNT)
//1个销售订单对应多张收款单 {
SaleBILLLIS2Sa2 = SaleBILLLISNew.Where(t => t.FISHX != "已核销配对").OrderBy(t => t.FClient).ThenBy(t => t.FCONTRACTNUMBER).ThenBy(t => t.FDate).ToList(); benCi= sale.FDAMOUNT;
ReceiveBILLLIST = ReceiveBILLLIST2.Where(a => a.F_RowNew == 1 && a.FISHX != "已核销配对").OrderBy(t => t.FClient).ThenBy(t => t.FDate).ToList(); sale.BenCi = sale.FDAMOUNT;
SaleBILLLIS2Sa2.ForEach(t => sale.FDAMOUNT = 0;
{ sale.FISHX = "已核销配对";
var tempList = ReceiveBILLLIST.Where(h => h.FClient == t.FClient && t.FDAMOUNT >= h.FDAMOUNT).OrderBy(h => h.FBIllNO).ToList(); }
List<double> sales1 = new List<double> { t.FDAMOUNT }; else
var payments2 = tempList.Select(k => k.FDAMOUNT).ToList(); {
benCi = FDAMOUNT;
var matches = CombinationGenerator_yuyubo.MatchSalesAndPayments(sales1, payments2); sale.BenCi = FDAMOUNT;
sale.FDAMOUNT = sale.FDAMOUNT - benCi;
if (matches.Count > 0) }
{
var FDAMOUNTList = matches[0].FirstOrDefault();
tempList = tempList.Where(h => FDAMOUNTList.Contains(h.FDAMOUNT)).OrderBy(h => h.FDate).ToList();
var fbillNoList = tempList.Select(h => h.FBIllNO).ToList();
var ReceiveBILLLTempList = ReceiveBILLLIST.Where(h => fbillNoList.Contains(h.FBIllNO)).ToList();
ReceiveBILLLTempList.ForEach(item => //sale.FYAMOUNT = sale.FYAMOUNT + sale.BenCi;
{ heTongList.Add(sale.FCONTRACTNUMBER);
//更新收款单数据 heTongList = heTongList.Distinct().ToList();
str = new List<string>();
item.FSKBIllNO = t.FBIllNO; if (t.FSKBIllNO != null)
item.FISHX = "已核销配对"; str = t.FSKBIllNO.Split(',').ToList();
item.FCONTRACTNUMBER = t.FCONTRACTNUMBER; if (str == null)
str = new List<string>();
str.Add(sale.FBIllNO);
t.FSKBIllNO = item.FBIllNO; shouKuanDetail.Add(t.FBIllNO + "," + sale.FBIllNO, benCi);
});
//更新销售订单数据 FDAMOUNT = FDAMOUNT - sale.BenCi;
t.FISHX = "已核销配对"; 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();
//ReceiveBILLLIST = ReceiveBILLLIST2.Where(a => a.F_RowNew == 1 && a.FISHX != "已核销配对").OrderBy(t => t.FClient).ThenBy(t => t.FDate).ToList();
//SaleBILLLIS2Sa2.ForEach(t =>
//{
// var tempList = ReceiveBILLLIST.Where(h => h.FClient == t.FClient && t.FDAMOUNT >= h.FDAMOUNT && h.FISHX != "已核销配对").OrderBy(h => h.FBIllNO).ToList();
// List<double> sales1 = new List<double> { t.FDAMOUNT };
// var payments2 = tempList.Select(k => k.FDAMOUNT).ToList();
// var matches = CombinationGenerator_yuyubo.MatchSalesAndPayments(sales1, payments2);
// var FDAMOUNT = t.FDAMOUNT;
// if (matches.Count > 0)
// {
// var FDAMOUNTList = matches[0].FirstOrDefault();
// tempList = tempList.Where(h => FDAMOUNTList.Contains(h.FDAMOUNT)).OrderBy(h => h.FDate).ToList();
// var fbillNoList = tempList.Select(h => h.FBIllNO).ToList();
// var ReceiveBILLLTempList = ReceiveBILLLIST.Where(h => fbillNoList.Contains(h.FBIllNO)).ToList();
// List<string> fString = new List<string>();
// ReceiveBILLLTempList.ForEach(item =>
// {
// //更新收款单数据
// if (FDAMOUNT > 0)
// {
// //item.FSKBIllNO = t.FBIllNO;
// item.FISHX = "已核销配对";
// item.FCONTRACTNUMBER = t.FCONTRACTNUMBER;
// fString.Add(item.FBIllNO);
// }
// });
// //更新销售订单数据
// t.FISHX = "已核销配对";
// string fCONTRACTNUMBER = string.Join(",", fString);
// //更新收款单数据
// t.FSKBIllNO = fCONTRACTNUMBER;
// }
//});
#endregion #endregion
//删除数据 #endregion
this.View.Model.DeleteEntryData("FEntity"); ////删除数据
//this.View.Model.DeleteEntryData("FEntity");
//绑定销售订单数据
for (int i = 0; i < SaleBILLLISNew.Count; i++)
{
int rowindex = this.View.Model.GetEntryRowCount("FEntity");
this.View.Model.CreateNewEntryRow("FEntity");
//单据编号
this.View.Model.SetValue("FBILLNO", SaleBILLLISNew[i]?.FBIllNO, i);
if (DateTime.TryParseExact(SaleBILLLISNew[i]?.FDate, dateFormat, CultureInfo.InvariantCulture, DateTimeStyles.None, out DateTime parsedDate))
{
this.View.Model.SetValue("FDate", SaleBILLLISNew[i]?.FDate, i);
}
else
{
this.View.Model.SetValue("FDate", DateTime.Now.AddDays(-1 * Convert.ToInt32(SaleBILLLISNew[i]?.FDate)).ToString("yyyy-MM-dd"), i);
}
//金额
this.View.Model.SetValue("F_MBBA_Decimal_c1c", SaleBILLLISNew[i]?.FALLAMOUNT, i);
//类型
this.View.Model.SetValue("FType", SaleBILLLISNew[i]?.FType, i);
//纸质合同号
this.View.Model.SetValue("FCONTRACTNUMBER", SaleBILLLISNew[i]?.FCONTRACTNUMBER, i);
//客户名称
this.View.Model.SetValue("FClient", SaleBILLLISNew[i]?.FClient, i);
//已核销金额
this.View.Model.SetValue("F_MBBA_Decimal_vb1", SaleBILLLISNew[i]?.FYAMOUNT, i);
//待核销金额
this.View.Model.SetValue("F_MBBA_Decimal_emq", SaleBILLLISNew[i]?.FDAMOUNT, i);
//单据编号(收款单)
this.View.Model.SetValue("FSKBILLNO", SaleBILLLISNew[i]?.FSKBIllNO, i);
//是否核销匹对
this.View.Model.SetValue("FISHX", SaleBILLLISNew[i]?.FISHX, i);
//是否唯一
this.View.Model.SetValue("FWeiYi", SaleBILLLISNew[i]?.FWeiYi, i);
//商务人员
this.View.Model.SetValue("FCreated", SaleBILLLISNew[i]?.FCreated, i);
//销售员
this.View.Model.SetValue("FSalesman", SaleBILLLISNew[i]?.FSalesman, i);
}
this.View.UpdateView("FEntity"); #region
////绑定销售订单数据
//for (int i = 0; i < SaleBILLLISNew.Count; i++)
//{
// int rowindex = this.View.Model.GetEntryRowCount("FEntity");
// this.View.Model.CreateNewEntryRow("FEntity");
// //单据编号
// this.View.Model.SetValue("FBILLNO", SaleBILLLISNew[i]?.FBIllNO, i);
// if (DateTime.TryParseExact(SaleBILLLISNew[i]?.FDate, dateFormat, CultureInfo.InvariantCulture, DateTimeStyles.None, out DateTime parsedDate))
// {
// this.View.Model.SetValue("FDate", SaleBILLLISNew[i]?.FDate, i);
// }
// else
// {
// this.View.Model.SetValue("FDate", DateTime.Now.AddDays(-1 * Convert.ToInt32(SaleBILLLISNew[i]?.FDate)).ToString("yyyy-MM-dd"), i);
// }
// //金额
// this.View.Model.SetValue("F_MBBA_Decimal_c1c", SaleBILLLISNew[i]?.FALLAMOUNT, i);
// //类型
// this.View.Model.SetValue("FType", SaleBILLLISNew[i]?.FType, i);
// //纸质合同号
// this.View.Model.SetValue("FCONTRACTNUMBER", SaleBILLLISNew[i]?.FCONTRACTNUMBER, i);
// //客户名称
// this.View.Model.SetValue("FClient", SaleBILLLISNew[i]?.FClient, i);
// //已核销金额
// this.View.Model.SetValue("F_MBBA_Decimal_vb1", SaleBILLLISNew[i]?.FYAMOUNT, i);
// //待核销金额
// this.View.Model.SetValue("F_MBBA_Decimal_emq", SaleBILLLISNew[i]?.FDAMOUNT, i);
// //单据编号(收款单)
// this.View.Model.SetValue("FSKBILLNO", SaleBILLLISNew[i]?.FSKBIllNO, i);
// //是否核销匹对
// this.View.Model.SetValue("FISHX", SaleBILLLISNew[i]?.FISHX, i);
// //是否唯一
// this.View.Model.SetValue("FWeiYi", SaleBILLLISNew[i]?.FWeiYi, i);
// //商务人员
// this.View.Model.SetValue("FCreated", SaleBILLLISNew[i]?.FCreated, i);
// //销售员
// this.View.Model.SetValue("FSalesman", SaleBILLLISNew[i]?.FSalesman, i);
//}
//this.View.UpdateView("FEntity");
#endregion
#endregion #endregion
//获取已配对的数据 //获取已配对的数据
List<CombinaClass> SaleBILLLISNew2 = SaleBILLLISNew.Where(a => a.FISHX == "已核销配对").ToList(); List<CombinaClass> SaleBILLLISNew2 = SaleBILLLISNew.Where(a => a.FSKBIllNO !="" && a.FSKBIllNO != null).ToList();
INDEXNumber = 1; INDEXNumber = 1;
//绑定收款单数据 //绑定收款单数据
foreach (var item in ReceiveBILLLIST) foreach (var item in ReceiveBILLLIST)
{ {
if (!string.IsNullOrWhiteSpace(item.FCONTRACTNUMBER)) if (!string.IsNullOrWhiteSpace(item.FCONTRACTNUMBER))
{ {
this.Model.SetValue("FISHX2", item.FISHX, item.FRow); this.View.Model.SetValue("FISHX2", item.FISHX, item.FRow);
this.Model.SetValue("FCONTRACTNUMBER2", item.FCONTRACTNUMBER, item.FRow); this.View.Model.SetValue("FCONTRACTNUMBER2", item.FCONTRACTNUMBER, item.FRow);
this.Model.SetValue("FWeiYi2", item.FWeiYi, item.FRow); this.View.Model.SetValue("FWeiYi2", item.FWeiYi, item.FRow);
var FROWID = Convert.ToString(this.View.Model.GetValue("FROWID", item.FRow)); var FROWID = Convert.ToString(this.View.Model.GetValue("FROWID", item.FRow));
var sumAmount = this.Model.GetValue("F_MBBA_Decimal_imu", item.FRow); var sumAmount = this.Model.GetValue("F_MBBA_Decimal_imu", item.FRow);
this.Model.SetValue("F_MBBA_Decimal_qtr", sumAmount, item.FRow); this.View.Model.SetValue("F_MBBA_Decimal_qtr", sumAmount, item.FRow);
string[] strings = item.FCONTRACTNUMBER.Split(','); this.View.Model.SetValue("F_PendingAmount", item.FDAMOUNT, item.FRow);
if (strings.Count() == 1 && item.FWeiYi == "否") this.View.Model.SetValue("F_BenCi", item.BenCi, item.FRow);
this.View.Model.SetValue("F_MBBA_Decimal_3iy", item.FYAMOUNT, item.FRow);
List<string> strings = new List<string>();
if (item.FCONTRACTNUMBER != null)
strings = item.FCONTRACTNUMBER.Split(',').ToList();
var tempList2 = SaleBILLLISNew2.Where(h => strings.Contains(h.FCONTRACTNUMBER)).ToList();
var Rowindex = this.View.Model.GetEntryRowCount("FEntity2");
for (int i = 0; i < tempList2.Count; i++)
{ {
for (int i = 0; i < SaleBILLLISNew2.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))
{ {
if (strings.Contains(SaleBILLLISNew2[i].FCONTRACTNUMBER)) this.View.Model.SetValue("FDate2", item?.FDate, Rowindex + i);
{
var Rowindex = this.View.Model.GetEntryRowCount("FEntity2");
this.View.Model.SetValue("FPARENTROWID", FROWID, item.FRow);
this.View.Model.CreateNewEntryRow("FEntity2");
this.View.Model.SetValue("FROWID", SequentialGuid.NewGuid().ToString(), Rowindex);
this.View.Model.SetValue("FPARENTROWID", FROWID, Rowindex);
this.View.Model.SetValue("FBILLNO2", SaleBILLLISNew2[i].FBIllNO, Rowindex);
if (DateTime.TryParseExact(item?.FDate, dateFormat, CultureInfo.InvariantCulture, DateTimeStyles.None, out DateTime parsedDate))
{
this.View.Model.SetValue("FDate2", item?.FDate, Rowindex);
}
else
{
this.View.Model.SetValue("FDate2", DateTime.Now.AddDays(-1 * Convert.ToInt32(item?.FDate)).ToString("yyyy-MM-dd"), Rowindex);
}
this.View.Model.SetValue("F_MBBA_Decimal_imu", item.FDAMOUNT, Rowindex);
this.View.Model.SetValue("FClient2", SaleBILLLISNew2[i].FClient, Rowindex);
this.View.Model.SetValue("FCreated2", SaleBILLLISNew2[i].FCreated, Rowindex);
this.View.Model.SetValue("FCONTRACTNUMBER2", SaleBILLLISNew2[i].FCONTRACTNUMBER, Rowindex);
this.View.Model.SetValue("FSalesman2", SaleBILLLISNew2[i].FSalesman, Rowindex);
this.View.Model.SetValue("F_MBBA_Decimal_qtr", SaleBILLLISNew2[i].FALLAMOUNT, Rowindex);
this.View.UpdateView("FEntity2");
}
} }
} else
else
{
for (int i = 0; i < SaleBILLLISNew2.Count; i++)
{ {
if (strings.Contains(SaleBILLLISNew2[i].FCONTRACTNUMBER)) this.View.Model.SetValue("FDate2", DateTime.Now.AddDays(-1 * Convert.ToInt32(item?.FDate)).ToString("yyyy-MM-dd"), Rowindex + i);
{ }
var Rowindex = this.View.Model.GetEntryRowCount("FEntity2"); this.View.Model.SetValue("F_MBBA_Decimal_imu", tempList2[i].FALLAMOUNT, Rowindex + i);
this.View.Model.SetValue("FPARENTROWID", FROWID, item.FRow); this.View.Model.SetValue("FClient2", tempList2[i].FClient, Rowindex + i);
this.View.Model.CreateNewEntryRow("FEntity2"); this.View.Model.SetValue("FCreated2", tempList2[i].FCreated, Rowindex + i);
this.View.Model.SetValue("FROWID", SequentialGuid.NewGuid().ToString(), Rowindex); this.View.Model.SetValue("FCONTRACTNUMBER2", tempList2[i].FCONTRACTNUMBER, Rowindex + i);
this.View.Model.SetValue("FPARENTROWID", FROWID, Rowindex); this.View.Model.SetValue("FSalesman2", tempList2[i].FSalesman, Rowindex + i);
this.View.Model.SetValue("FBILLNO2", SaleBILLLISNew2[i].FBIllNO, Rowindex); this.View.Model.SetValue("F_MBBA_Decimal_qtr", tempList2[i].FDAMOUNT, Rowindex + i);
if (DateTime.TryParseExact(item?.FDate, dateFormat, CultureInfo.InvariantCulture, DateTimeStyles.None, out DateTime parsedDate))
{ this.View.Model.SetValue("F_PendingAmount", tempList2[i].FDAMOUNT, Rowindex + i);
this.View.Model.SetValue("FDate2", item?.FDate, Rowindex); double benci = shouKuanDetail[item.FBIllNO+","+ tempList2[i].FBIllNO];
}
else 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("FDate2", DateTime.Now.AddDays(-1 * Convert.ToInt32(item?.FDate)).ToString("yyyy-MM-dd"), Rowindex);
}
this.View.Model.SetValue("F_MBBA_Decimal_imu", SaleBILLLISNew2[i].FALLAMOUNT, Rowindex);
this.View.Model.SetValue("FClient2", SaleBILLLISNew2[i].FClient, Rowindex);
this.View.Model.SetValue("FCreated2", SaleBILLLISNew2[i].FCreated, Rowindex);
this.View.Model.SetValue("FCONTRACTNUMBER2", SaleBILLLISNew2[i].FCONTRACTNUMBER, Rowindex);
this.View.Model.SetValue("FSalesman2", SaleBILLLISNew2[i].FSalesman, Rowindex);
this.View.Model.SetValue("F_MBBA_Decimal_qtr", SaleBILLLISNew2[i].FALLAMOUNT, Rowindex);
this.View.UpdateView("FEntity2");
}
}
} }
this.View.UpdateView("FEntity2");
//if (strings.Count() == 1 && item.FWeiYi == "否")
//{
// for (int i = 0; i < SaleBILLLISNew2.Count; i++)
// {
// if (strings.Contains(SaleBILLLISNew2[i].FCONTRACTNUMBER))
// {
// var Rowindex = this.View.Model.GetEntryRowCount("FEntity2");
// this.View.Model.SetValue("FPARENTROWID", FROWID, item.FRow);
// this.View.Model.CreateNewEntryRow("FEntity2");
// this.View.Model.SetValue("FROWID", SequentialGuid.NewGuid().ToString(), Rowindex);
// this.View.Model.SetValue("FPARENTROWID", FROWID, Rowindex);
// this.View.Model.SetValue("FBILLNO2", SaleBILLLISNew2[i].FBIllNO, Rowindex);
// if (DateTime.TryParseExact(item?.FDate, dateFormat, CultureInfo.InvariantCulture, DateTimeStyles.None, out DateTime parsedDate))
// {
// this.View.Model.SetValue("FDate2", item?.FDate, Rowindex);
// }
// else
// {
// this.View.Model.SetValue("FDate2", DateTime.Now.AddDays(-1 * Convert.ToInt32(item?.FDate)).ToString("yyyy-MM-dd"), Rowindex);
// }
// this.View.Model.SetValue("F_MBBA_Decimal_imu", item.FDAMOUNT, Rowindex);
// this.View.Model.SetValue("FClient2", SaleBILLLISNew2[i].FClient, Rowindex);
// this.View.Model.SetValue("FCreated2", SaleBILLLISNew2[i].FCreated, Rowindex);
// this.View.Model.SetValue("FCONTRACTNUMBER2", SaleBILLLISNew2[i].FCONTRACTNUMBER, Rowindex);
// this.View.Model.SetValue("FSalesman2", SaleBILLLISNew2[i].FSalesman, Rowindex);
// this.View.Model.SetValue("F_MBBA_Decimal_qtr", SaleBILLLISNew2[i].FALLAMOUNT, Rowindex);
// this.View.UpdateView("FEntity2");
// }
// }
//}
//else
//{
// for (int i = 0; i < SaleBILLLISNew2.Count; i++)
// {
// if (strings.Contains(SaleBILLLISNew2[i].FCONTRACTNUMBER))
// {
// var Rowindex = this.View.Model.GetEntryRowCount("FEntity2");
// this.View.Model.SetValue("FPARENTROWID", FROWID, item.FRow);
// this.View.Model.CreateNewEntryRow("FEntity2");
// this.View.Model.SetValue("FROWID", SequentialGuid.NewGuid().ToString(), Rowindex);
// this.View.Model.SetValue("FPARENTROWID", FROWID, Rowindex);
// this.View.Model.SetValue("FBILLNO2", SaleBILLLISNew2[i].FBIllNO, Rowindex);
// if (DateTime.TryParseExact(item?.FDate, dateFormat, CultureInfo.InvariantCulture, DateTimeStyles.None, out DateTime parsedDate))
// {
// this.View.Model.SetValue("FDate2", item?.FDate, Rowindex);
// }
// else
// {
// this.View.Model.SetValue("FDate2", DateTime.Now.AddDays(-1 * Convert.ToInt32(item?.FDate)).ToString("yyyy-MM-dd"), Rowindex);
// }
// this.View.Model.SetValue("F_MBBA_Decimal_imu", SaleBILLLISNew2[i].FALLAMOUNT, Rowindex);
// this.View.Model.SetValue("FClient2", SaleBILLLISNew2[i].FClient, Rowindex);
// this.View.Model.SetValue("FCreated2", SaleBILLLISNew2[i].FCreated, Rowindex);
// this.View.Model.SetValue("FCONTRACTNUMBER2", SaleBILLLISNew2[i].FCONTRACTNUMBER, Rowindex);
// this.View.Model.SetValue("FSalesman2", SaleBILLLISNew2[i].FSalesman, Rowindex);
// this.View.Model.SetValue("F_MBBA_Decimal_qtr", SaleBILLLISNew2[i].FALLAMOUNT, Rowindex);
// this.View.UpdateView("FEntity2");
// }
// }
//}
this.Model.SetValue("FROWEXPANDTYPE", (int)ENUM_ROWTYPE.Expand, item.FRow); this.Model.SetValue("FROWEXPANDTYPE", (int)ENUM_ROWTYPE.Expand, item.FRow);
} }
} }

View File

@ -115,7 +115,7 @@ namespace Pilot_KD_Parino.SQL
{ {
//定义SQL,调用物料视图 //定义SQL,调用物料视图
string sql = string.Format(@"/*dialect*/ string sql = string.Format(@"/*dialect*/
SELECT SELECT A.FID,
A.FSALEERID, A.FSALEERID,
A.FCONTACTUNIT, A.FCONTACTUNIT,
A.FREMARK, A.FREMARK,
@ -132,7 +132,8 @@ namespace Pilot_KD_Parino.SQL
AND A.FISINIT != '1' AND A.FISINIT != '1'
AND A.FSALEORGID = {0} AND A.FSALEORGID = {0}
AND A.FRECAMOUNT != A.F_AMOUNT AND A.FRECAMOUNT != A.F_AMOUNT
AND A.FRECAMOUNT >= A.F_AMOUNT", FORGID); AND A.FRECAMOUNT >= A.F_AMOUNT
order by FCONTACTUNIT,A.FID desc ", FORGID);
return DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); return DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null);
} }
@ -235,7 +236,8 @@ namespace Pilot_KD_Parino.SQL
C.FBILLALLAMOUNT_LC-A.F_AMOUNT as 'FDAMOUNT', C.FBILLALLAMOUNT_LC-A.F_AMOUNT as 'FDAMOUNT',
C.FSETTLECURRID as 'FCurr', C.FSETTLECURRID as 'FCurr',
case when DATEDIFF(MONTH, A.FDATE, GETDATE())<3 then 'True' else 'False' end as 'FIs30' , case when DATEDIFF(MONTH, A.FDATE, GETDATE())<3 then 'True' else 'False' end as 'FIs30' ,
'' as 'FTYPE' '' as 'FTYPE',
0.00 AS BenCi
FROM T_SAL_ORDER A FROM T_SAL_ORDER A
INNER JOIN T_SAL_ORDERFIN C ON C.FID =A.FID INNER JOIN T_SAL_ORDERFIN C ON C.FID =A.FID
WHERE WHERE
@ -244,7 +246,7 @@ namespace Pilot_KD_Parino.SQL
AND A.FDOCUMENTSTATUS = 'C' AND ISNULL(A.F_CONTRACTNUMBER,'')!='' AND A.FDOCUMENTSTATUS = 'C' AND ISNULL(A.F_CONTRACTNUMBER,'')!=''
AND (A.F_AMOUNT < C.FBILLALLAMOUNT_LC AND (A.F_AMOUNT < C.FBILLALLAMOUNT_LC
or A.F_AMOUNT IS NULL) AND A.FBusinessType='NORMAL' or A.F_AMOUNT IS NULL) AND A.FBusinessType='NORMAL'
) A ORDER BY A.FCUSTID,a.FDATE "); ) A ORDER BY A.FCUSTID,a.FID desc ");
return DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); return DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null);
} }