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>
public int FRow { get; set; }
public int Fid { get; set; }
/// <summary>
/// 行级
/// </summary>
@ -167,5 +169,11 @@ namespace Pilot_KD_Parino.Common
/// 销售员
/// </summary>
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));
return;
}
payments = payments.Where(t => t <= target).ToList();
for (int i = start; i < payments.Count(); i++)
{
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));
SaleBILLLIS = WriteOrderDate.Select(item => new CombinaClass
{
Fid= Convert.ToInt32(item["FID"]),
FBIllNO = Convert.ToString(item["FBIllNO"]),
FCONTRACTNUMBER = Convert.ToString(item["F_CONTRACTNUMBER"]),
FClient = Convert.ToInt32(item["FCUSTID"]),
@ -76,28 +77,13 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire
FSalesman = Convert.ToInt32(item["FSALERID"]),
FIs30 = Convert.ToBoolean(item["FIs30"]),
FType = Convert.ToString(item["FType"]),
BenCi = Convert.ToDouble(item["BenCi"]),
}).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
{
Fid = Convert.ToInt32(item["FID"]),
FBIllNO = Convert.ToString(item["FBIllNO"]),
FDate = Convert.ToString(item["FDate"]),
FALLAMOUNT = Convert.ToDouble(item["FALLAMOUNT"]),
@ -107,7 +93,8 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire
FCreated = Convert.ToInt32(item["FCREATORID"]),
FRemark = Convert.ToString(item["FREMARK"]),
FSalesman = Convert.ToInt32(item["FSALEERID"]),
F_RowNew = 1
F_RowNew = 1,
BenCi=0,
}).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("FPARENTROWID", FROWID, 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("F_MBBA_Decimal_imu", ReceiveBILLLIST[i].FALLAMOUNT, 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("FCreated2", ReceiveBILLLIST[i].FCreated, 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");
}
@ -589,6 +579,8 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire
//var FClientList2 = SaleBILLLIS2Sal.GroupBy(t => t.FClient).ToList();
//var FClientReceiveBillList= ReceiveBILLLIST
Dictionary<string, double> shouKuanDetail = new Dictionary<string, double>();
//先挑1张收款单对应一张销售订单
var oneToOneTemp = (from q in SaleBILLLIS2Sal
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 =>
{
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);
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);
@ -616,6 +617,9 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire
{
receiveItemTemp.FCONTRACTNUMBER = fCONTRACTNUMBER;
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>();
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);
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);
@ -640,202 +650,298 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire
{
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 != "已核销配对").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();
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 != "已核销配对" && a.FDAMOUNT > 0 ).OrderBy(t => t.FClient).ThenByDescending(t => t.FBIllNO).ToList();
//打包式匹配法,按时间倒序逐一核销掉.
ReceiveBILLLIST.ForEach(t =>
{
var tempList = SaleBILLLIS2Sa2.Where(h => h.FClient == t.FClient && t.FDAMOUNT >= h.FDAMOUNT).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);
if (matches.Count > 0)
var tempList = SaleBILLLIS2Sa2.Where(h => h.FClient == t.FClient && h.FISHX != "已核销配对" && t.FDAMOUNT > 0).OrderByDescending(h=>h.FBIllNO).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 =>
{
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 SaleTempList = SaleBILLLISNew.Where(h => fbillNoList.Contains(h.FBIllNO)).ToList();
List<string> fString = new List<string>();
SaleTempList.ForEach(item =>
if (FDAMOUNT == 0)
{
//更新销售订单数据
item.FSKBIllNO = t.FBIllNO;
item.FISHX = "已核销配对";
fString.Add(item.FCONTRACTNUMBER);
});
string fCONTRACTNUMBER = string.Join(",", fString);
//更新收款单数据
t.FCONTRACTNUMBER = fCONTRACTNUMBER;
t.FISHX = "已核销配对";
}
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);
});
//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).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);
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();
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;
}
ReceiveBILLLTempList.ForEach(item =>
{
//更新收款单数据
item.FSKBIllNO = t.FBIllNO;
item.FISHX = "已核销配对";
item.FCONTRACTNUMBER = t.FCONTRACTNUMBER;
//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);
t.FSKBIllNO = item.FBIllNO;
});
//更新销售订单数据
t.FISHX = "已核销配对";
}
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();
//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
//删除数据
this.View.Model.DeleteEntryData("FEntity");
#endregion
////删除数据
//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
//获取已配对的数据
List<CombinaClass> SaleBILLLISNew2 = SaleBILLLISNew.Where(a => a.FISHX == "已核销配对").ToList();
List<CombinaClass> SaleBILLLISNew2 = SaleBILLLISNew.Where(a => a.FSKBIllNO !="" && a.FSKBIllNO != null).ToList();
INDEXNumber = 1;
//绑定收款单数据
foreach (var item in ReceiveBILLLIST)
{
if (!string.IsNullOrWhiteSpace(item.FCONTRACTNUMBER))
{
this.Model.SetValue("FISHX2", item.FISHX, item.FRow);
this.Model.SetValue("FCONTRACTNUMBER2", item.FCONTRACTNUMBER, item.FRow);
this.Model.SetValue("FWeiYi2", item.FWeiYi, item.FRow);
this.View.Model.SetValue("FISHX2", item.FISHX, item.FRow);
this.View.Model.SetValue("FCONTRACTNUMBER2", item.FCONTRACTNUMBER, item.FRow);
this.View.Model.SetValue("FWeiYi2", item.FWeiYi, item.FRow);
var FROWID = Convert.ToString(this.View.Model.GetValue("FROWID", item.FRow));
var sumAmount = this.Model.GetValue("F_MBBA_Decimal_imu", item.FRow);
this.Model.SetValue("F_MBBA_Decimal_qtr", sumAmount, item.FRow);
string[] strings = item.FCONTRACTNUMBER.Split(',');
if (strings.Count() == 1 && item.FWeiYi == "否")
this.View.Model.SetValue("F_MBBA_Decimal_qtr", sumAmount, item.FRow);
this.View.Model.SetValue("F_PendingAmount", item.FDAMOUNT, item.FRow);
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))
{
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");
}
this.View.Model.SetValue("FDate2", item?.FDate, Rowindex + i);
}
}
else
{
for (int i = 0; i < SaleBILLLISNew2.Count; i++)
else
{
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.View.Model.SetValue("FDate2", DateTime.Now.AddDays(-1 * Convert.ToInt32(item?.FDate)).ToString("yyyy-MM-dd"), Rowindex + i);
}
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("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.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);
}
}

View File

@ -115,7 +115,7 @@ namespace Pilot_KD_Parino.SQL
{
//定义SQL,调用物料视图
string sql = string.Format(@"/*dialect*/
SELECT
SELECT A.FID,
A.FSALEERID,
A.FCONTACTUNIT,
A.FREMARK,
@ -132,7 +132,8 @@ namespace Pilot_KD_Parino.SQL
AND A.FISINIT != '1'
AND A.FSALEORGID = {0}
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);
}
@ -235,7 +236,8 @@ namespace Pilot_KD_Parino.SQL
C.FBILLALLAMOUNT_LC-A.F_AMOUNT as 'FDAMOUNT',
C.FSETTLECURRID as 'FCurr',
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
INNER JOIN T_SAL_ORDERFIN C ON C.FID =A.FID
WHERE
@ -244,7 +246,7 @@ namespace Pilot_KD_Parino.SQL
AND A.FDOCUMENTSTATUS = 'C' AND ISNULL(A.F_CONTRACTNUMBER,'')!=''
AND (A.F_AMOUNT < C.FBILLALLAMOUNT_LC
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);
}