diff --git a/Pilot_KD_Parino/Common/CombinaClass.cs b/Pilot_KD_Parino/Common/CombinaClass.cs index e07684d..3c39db0 100644 --- a/Pilot_KD_Parino/Common/CombinaClass.cs +++ b/Pilot_KD_Parino/Common/CombinaClass.cs @@ -74,6 +74,8 @@ namespace Pilot_KD_Parino.Common /// 行号 /// public int FRow { get; set; } + + public int Fid { get; set; } /// /// 行级 /// @@ -167,5 +169,11 @@ namespace Pilot_KD_Parino.Common /// 销售员 /// public int FSalesman { get; set; } + + /// + /// 本次核销金额 + /// + public double BenCi { get; set; } + } } diff --git a/Pilot_KD_Parino/Common/CombinationGenerator_yuyubo.cs b/Pilot_KD_Parino/Common/CombinationGenerator_yuyubo.cs index 43f4106..446ff7d 100644 --- a/Pilot_KD_Parino/Common/CombinationGenerator_yuyubo.cs +++ b/Pilot_KD_Parino/Common/CombinationGenerator_yuyubo.cs @@ -211,7 +211,7 @@ namespace Pilot_KD_Parino.Common result.Add(new List(current)); return; } - + payments = payments.Where(t => t <= target).ToList(); for (int i = start; i < payments.Count(); i++) { if (payments[i] > target) diff --git a/Pilot_KD_Parino/QPHY_AutoWrire/Bill5.cs b/Pilot_KD_Parino/QPHY_AutoWrire/Bill5.cs index cafa8f4..0923309 100644 --- a/Pilot_KD_Parino/QPHY_AutoWrire/Bill5.cs +++ b/Pilot_KD_Parino/QPHY_AutoWrire/Bill5.cs @@ -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 shouKuanDetail = new Dictionary(); + //先挑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 fString = new List(); 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 deleteFBIllNOList = new List(); 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 fString = new List(); 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 sales1 = new List { 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 heTongList = new List(); + if (t.FCONTRACTNUMBER!=null) + heTongList = t.FCONTRACTNUMBER.Split(',').ToList().Distinct().ToList(); + if(heTongList==null) + heTongList = new List(); + 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 fString = new List(); - 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 str = new List(); + if (sale.FSKBIllNO != null) + str = sale.FSKBIllNO.Split(',').ToList(); + if (str == null) + str = new List(); + 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 sales1 = new List { 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(); + if (t.FSKBIllNO != null) + str = t.FSKBIllNO.Split(',').ToList(); + if (str == null) + str = new List(); + 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 sales1 = new List { 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 fString = new List(); + // 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 SaleBILLLISNew2 = SaleBILLLISNew.Where(a => a.FISHX == "已核销配对").ToList(); + List 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 strings = new List(); + 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); } } diff --git a/Pilot_KD_Parino/SQL/SqlManage_yuyubo.cs b/Pilot_KD_Parino/SQL/SqlManage_yuyubo.cs index 162c630..da0a0e9 100644 --- a/Pilot_KD_Parino/SQL/SqlManage_yuyubo.cs +++ b/Pilot_KD_Parino/SQL/SqlManage_yuyubo.cs @@ -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); }