diff --git a/Pilot_KD_Parino/Common/CommonHelper.cs b/Pilot_KD_Parino/Common/CommonHelper.cs index c8132e2..af6328b 100644 --- a/Pilot_KD_Parino/Common/CommonHelper.cs +++ b/Pilot_KD_Parino/Common/CommonHelper.cs @@ -1017,6 +1017,7 @@ namespace Pilot_KD_Parino.Common { FBILLNO = ""; Id = ""; + // 调用保存操作 IOperationResult saveResult = BusinessDataServiceHelper.Save( ctx, diff --git a/Pilot_KD_Parino/Pilot_KD_Parino.csproj b/Pilot_KD_Parino/Pilot_KD_Parino.csproj index 5e9fe34..d62c0bb 100644 --- a/Pilot_KD_Parino/Pilot_KD_Parino.csproj +++ b/Pilot_KD_Parino/Pilot_KD_Parino.csproj @@ -330,6 +330,7 @@ + diff --git a/Pilot_KD_Parino/QPHY_AutoWrire/Bill5.cs b/Pilot_KD_Parino/QPHY_AutoWrire/Bill5.cs index 31ed49b..2cc5bb4 100644 --- a/Pilot_KD_Parino/QPHY_AutoWrire/Bill5.cs +++ b/Pilot_KD_Parino/QPHY_AutoWrire/Bill5.cs @@ -2,6 +2,7 @@ using DocumentFormat.OpenXml.Drawing.Spreadsheet; using Kingdee.BOS.App.Core.Utils; using Kingdee.BOS.BusinessEntity.BusinessFlow; +using Kingdee.BOS.Core.CommonFilter; using Kingdee.BOS.Core.DynamicForm; using Kingdee.BOS.Core.DynamicForm.PlugIn; using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; @@ -51,6 +52,16 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire public override void OnLoad(EventArgs e) { base.OnLoad(e); + + + var showParameter = new DynamicFormShowParameter(); + showParameter.FormId = "NAAD_ZiDongHeXiao"; + showParameter.ParentPageId = this.View.PageId; + showParameter.PageId = this.View.PageId + "_Filter"; + showParameter.OpenStyle.CacheId = this.View.PageId; + this.View.ShowForm(showParameter, action => FilterCallBack(action)); + return; + /* SaleBILLLIS = new List(); ReceiveBILLLIST = new List(); List SaleBILLLISnew = new List(); @@ -58,16 +69,16 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire //删除四个单据体 this.View.Model.DeleteEntryData("FEntity"); this.View.Model.DeleteEntryData("FEntity2"); - var FOrgId = this.Context.CurrentOrganizationInfo.ID; var FShuaXin = this.View.Model.GetValue("FShuaXin"); + //调用SQL获取数据 var WriteOrderDate = SQL.SqlManage_yuyubo.GetWriteOrderDate3(this.Context, Convert.ToString(FOrgId)); - 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 { - Fid= Convert.ToInt32(item["FID"]), + Fid = Convert.ToInt32(item["FID"]), FBIllNO = Convert.ToString(item["FBIllNO"]), FCONTRACTNUMBER = Convert.ToString(item["F_CONTRACTNUMBER"]), FClient = Convert.ToInt32(item["FCUSTID"]), @@ -85,7 +96,7 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire FInvoiceAmount = Convert.ToDecimal(item["FInvoiceAmount"]), }).ToList(); - + ReceiveBILLLIST = WriteReceiveDate.Select(item => new CombinaClass { Fid = Convert.ToInt32(item["FID"]), @@ -99,7 +110,7 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire FRemark = Convert.ToString(item["FREMARK"]), FSalesman = Convert.ToInt32(item["FSALEERID"]), F_RowNew = 1, - BenCi=0, + BenCi = 0, }).ToList(); var kehu = ReceiveBILLLIST.Select(t => t.FClient).Distinct().ToList(); @@ -109,7 +120,7 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire //绑定销售订单数据 for (int i = 0; i < SaleBILLLIS2.Count; i++) { - + int rowindex = this.View.Model.GetEntryRowCount("FEntity"); this.View.Model.CreateNewEntryRow("FEntity"); //单据编号 @@ -165,6 +176,7 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire } this.View.UpdateView("FEntity2"); + */ } /// @@ -267,7 +279,7 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire FISHX = item["FISHX2"]?.ToString(), FWeiYi = item["FWeiYi2"]?.ToString(), }).ToList(); - + //获取纸质合同号 List fString = new List(); @@ -275,8 +287,8 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire //修改销售订单/应收单 foreach (var item in stringFBILLNOANDList[0].FBILLNOList) { - - var item2 = SaleBILLLIS.FirstOrDefault(h=>h.FBIllNO==item.FBILLNO); + + var item2 = SaleBILLLIS.FirstOrDefault(h => h.FBIllNO == item.FBILLNO); if (item2 != null) { SaleBILLLIS2.Add(item2); @@ -368,6 +380,16 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire { base.AfterBarItemClick(e); + //点击过滤按钮,弹出过滤窗体 + if (e.BarItemKey.Equals("MBBA_tbButton", StringComparison.OrdinalIgnoreCase)) + { + var showParameter = new DynamicFormShowParameter(); + showParameter.FormId = "NAAD_ZiDongHeXiao"; + showParameter.ParentPageId = this.View.PageId; + showParameter.PageId = this.View.PageId + "_Filter"; + showParameter.OpenStyle.CacheId = this.View.PageId; + this.View.ShowForm(showParameter, action => FilterCallBack(action)); + } //自动匹配 if (e.BarItemKey.ToString().Equals("MBBA_tbButton_2")) { @@ -375,7 +397,7 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire //销售订单绑定数据 SaleBILLLIS = new List(); DynamicObjectCollection FEntity = this.View.Model.DataObject["FEntity"] as DynamicObjectCollection; - + SaleBILLLIS = FEntity.Select(item => new CombinaClass { FBIllNO = Convert.ToString(item["FBILLNO"]), @@ -396,7 +418,7 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire var ReceiveBILLLIST2 = new List(); //获取收款单单据体数据 DynamicObjectCollection FEntity2 = this.View.Model.DataObject["FEntity2"] as DynamicObjectCollection; - + ReceiveBILLLIST2 = FEntity2.Select(item => new CombinaClass { FBIllNO = item["FBILLNO2"]?.ToString(), @@ -414,11 +436,11 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire }).ToList(); //重置并只取父级树形数据 ReceiveBILLLIST = new List(); - ReceiveBILLLIST = ReceiveBILLLIST2.Where(a => a.F_RowNew == 1 && a.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.FCONTRACTNUMBER).ThenBy(t => t.FDate).ToList(); List FBILLNOLIST = new List(); List FClient = new List(); List result = new List(); - var FStartTime = DateTime.Now; + var FStartTime = DateTime.Now; #region 新版 2025-04-07 #region 匹配销售订单 @@ -446,7 +468,7 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire return; var temp11 = temp111.FBIllNO; 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.FISHX = "已核销配对"; @@ -477,7 +499,7 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire List deleteFBIllNOList = new List(); saleList1.ForEach(t => { - var temp111 = oneToOneTemp.Where(h => h.FBIllNO == t && !deleteFBIllNOList.Contains(h.UFbillNo)).OrderBy(h=>h.UFbillNo).FirstOrDefault(); + 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; @@ -511,17 +533,17 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire //先挑1张收款单对应多张张销售订单 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 = 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 && 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.FBIllNO).ToList(); + var FDAMOUNT = t.FDAMOUNT; List heTongList = new List(); - if (t.FCONTRACTNUMBER!=null) + if (t.FCONTRACTNUMBER != null) heTongList = t.FCONTRACTNUMBER.Split(',').ToList().Distinct().ToList(); - if(heTongList==null) + if (heTongList == null) heTongList = new List(); tempList.ForEach(sale => { @@ -536,11 +558,11 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire if (str == null) str = new List(); str.Add(t.FBIllNO); - sale.FSKBIllNO = string.Join(",", str); + sale.FSKBIllNO = string.Join(",", str); if (FDAMOUNT >= sale.FDAMOUNT) { - benCi= sale.FDAMOUNT; + benCi = sale.FDAMOUNT; sale.BenCi = sale.FDAMOUNT; sale.FDAMOUNT = 0; sale.FISHX = "已核销配对"; @@ -551,7 +573,7 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire sale.BenCi = FDAMOUNT; sale.FDAMOUNT = sale.FDAMOUNT - benCi; } - + //sale.FYAMOUNT = sale.FYAMOUNT + sale.BenCi; heTongList.Add(sale.FCONTRACTNUMBER); heTongList = heTongList.Distinct().ToList(); @@ -567,17 +589,17 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire FDAMOUNT = FDAMOUNT - sale.BenCi; t.FDAMOUNT = t.FDAMOUNT - benCi; //t.FYAMOUNT = t.FYAMOUNT + sale.BenCi; - t.BenCi = t.BenCi+benCi; + t.BenCi = t.BenCi + benCi; t.FCONTRACTNUMBER = string.Join(",", heTongList); - if(heTongList.Count==1) + if (heTongList.Count == 1) t.FWeiYi = "是"; else t.FWeiYi = "否"; if (t.FDAMOUNT == 0) { t.FISHX = "已核销配对"; - } - + } + }); }); @@ -628,12 +650,12 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire //this.View.Model.DeleteEntryData("FEntity"); - - + + #endregion //获取已配对的数据 - List SaleBILLLISNew2 = SaleBILLLISNew.Where(a => a.FSKBIllNO !="" && a.FSKBIllNO != null).ToList(); + List SaleBILLLISNew2 = SaleBILLLISNew.Where(a => a.FSKBIllNO != "" && a.FSKBIllNO != null).ToList(); INDEXNumber = 1; //绑定收款单数据 foreach (var item in ReceiveBILLLIST) @@ -649,19 +671,19 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire 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); - this.View.Model.SetValue("F_ISHX",true, item.FRow); + this.View.Model.SetValue("F_ISHX", false, item.FRow); List strings = new List(); if (item.FCONTRACTNUMBER != null) - strings = item.FCONTRACTNUMBER.Split(',').ToList(); + 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++) { - + 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("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)) @@ -671,7 +693,7 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire else { 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("F_RowNew", 2, Rowindex + i); @@ -679,16 +701,16 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire 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]; - + 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", true, Rowindex + i); + this.View.Model.SetValue("F_ISHX", false, Rowindex + i); } - + //if (strings.Count() == 1 && item.FWeiYi == "否") //{ @@ -759,10 +781,10 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire DynamicObjectCollection entryGrid2 = this.View.Model.DataObject["FEntity2"] as DynamicObjectCollection; if (entryGrid != null) { - var list = entryGrid2.Where(t => t["FCONTRACTNUMBER2"] != null && t["FCONTRACTNUMBER2"].ToString() != "" && t["F_RowNew"].ToString() =="1").ToList(); + var list = entryGrid2.Where(t => t["FCONTRACTNUMBER2"] != null && t["FCONTRACTNUMBER2"].ToString() != "" && t["F_RowNew"].ToString() == "1").ToList(); foreach (var item in list) { - entryGrid.ExpandedRow( int.Parse(item["SEQ"].ToString())-1); + entryGrid.ExpandedRow(int.Parse(item["SEQ"].ToString()) - 1); } //for (int i = 0; i < entryGrid2.Count; i++) //{ @@ -783,7 +805,7 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire View.ShowMessage("确定要生成核销记录单吗?", MessageBoxOptions.YesNo, result => { if (result == MessageBoxResult.Yes) - { + { #region 隐藏代码 //存储销售订单/应收单 @@ -800,7 +822,7 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire DynamicObjectCollection FEntity = this.View.Model.DataObject["FEntity"] as DynamicObjectCollection; //获取收款单单据体数据 DynamicObjectCollection FEntity2 = this.View.Model.DataObject["FEntity2"] as DynamicObjectCollection; - + var selectList = FEntity2.Where(t => t["F_ISHX"] != null && t["F_ISHX"].ToString().ToLower() == "true").ToList(); if (selectList.Count == 0 && selectList.Count == 0) { @@ -817,7 +839,7 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire //return; //this.View.Model.SetValue("FROWID", FROWID, RowindexNew); //this.View.Model.SetValue("FPARENTROWID", FROWID, item.FRow); - var ReceiveBILLLIST2= selectList.Select(item=>new CombinaClass() + var ReceiveBILLLIST2 = selectList.Select(item => new CombinaClass() { FBIllNO = Convert.ToString(item["FBILLNO2"]), FDate = Convert.ToString(item["FDate2"]), @@ -833,23 +855,31 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire FWeiYi = item["FWeiYi2"]?.ToString(), FRow = Convert.ToInt32(item["Seq"]), F_RowNew = Convert.ToInt32(item["F_RowNew"]), - BenCi= Convert.ToDouble(item["BenCi"]), - FROWID= Convert.ToString(item["ROWID"]), + BenCi = Convert.ToDouble(item["BenCi"]), + FROWID = Convert.ToString(item["ROWID"]), FPARENTROWID = Convert.ToString(item["PARENTROWID"]), - + }); - var shouKuanList = ReceiveBILLLIST2.Where(t => t.F_RowNew == 1).ToList(); List errorList = new List(); - shouKuanList.ForEach(item=> + var eee = ReceiveBILLLIST2.Where(t => t.FDAMOUNT < t.BenCi).ToList(); + if (eee.Count > 0) { - var sales = ReceiveBILLLIST2.Where(t => t.FPARENTROWID == item.FROWID && t.FROWID!= item.FROWID).ToList(); + string kk =string.Join(",", eee.Select(t => t.FBIllNO).ToList()); + errorList.Add("这些订单的本次核销金额大于待核销金额"+ kk); + } + + var shouKuanList = ReceiveBILLLIST2.Where(t => t.F_RowNew == 1).ToList(); + + shouKuanList.ForEach(item => + { + var sales = ReceiveBILLLIST2.Where(t => t.FPARENTROWID == item.FROWID && t.FROWID != item.FROWID).ToList(); var heji = sales.Sum(t => t.BenCi); - if (heji != item.BenCi || heji==0 || sales.Count==0) - errorList.Add(item.FBIllNO+ $@" 明细={heji} 收款单={item.BenCi} "); + if (heji != item.BenCi || heji == 0 || sales.Count == 0) + errorList.Add(item.FBIllNO + $@" 明细={heji} 收款单={item.BenCi} "); else { if (errorList.Count == 0) - { + { //创建对象存储 var SKList = new CombinaAddSK(); @@ -857,7 +887,7 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire var stringSplit = sales.Select(t => t.FCONTRACTNUMBER).Distinct().ToList(); //找到对应销售订单 - var nTestList = sales.Select(item2 => new CombinaAddClass1 + var nTestList = sales.Select(item2 => new CombinaAddClass1 { FBIllNO = item2.FBIllNO, FClient = Convert.ToInt32(item2.FClient), @@ -870,7 +900,7 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire }); SKList.XSAPList.AddRange(nTestList); SKList.FBIllNO = item.FBIllNO; - SKList.FCONTRACTNUMBER =string.Join(",", sales.Select(t=>t.FCONTRACTNUMBER).Distinct().ToList()); + SKList.FCONTRACTNUMBER = string.Join(",", sales.Select(t => t.FCONTRACTNUMBER).Distinct().ToList()); SKList.FClient = item.FClient; SKList.FDate = item.FDate; SKList.FALLAMOUNT = Convert.ToDecimal(item.BenCi); @@ -879,7 +909,7 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire SKList.FSalesman = item.FSalesman; fCombinaAddSK.Add(SKList); } - + } }); @@ -888,25 +918,20 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire { ErrMessage = true; hetong = string.Join(",", errorList); - Message =string.Format($"收款单号:'{hetong}'的本次核销金额不等于勾选的销售订单的合计本次核销金额,不允许核销\r\n"); + Message = string.Format($"收款单号:'{hetong}'的本次核销金额不等于勾选的销售订单的合计本次核销金额,不允许核销\r\n"); if (ErrMessage) { this.View.ShowErrMessage(Message); - } + } return; - } - + } #endregion - - //用于存储生成成功的收款单 List strings1 = new List(); List successFbillNo = new List(); - - int ISXSNUM = 0; errorList = new List(); //循环收款单/新增核销记录 @@ -930,7 +955,7 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire } } if (errorList.Count > 0) - Message = Message + " 有部分单失败,原因是:"+string.Join(",", errorList); + Message = Message + " 有部分单失败,原因是:" + string.Join(",", errorList); this.View.ShowMessage(Message); if (successFbillNo.Count > 0) { @@ -939,7 +964,7 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire var allRows = FEntity2.Where(t => pId.Contains(t["PARENTROWID"].ToString())).ToList(); allRows.ForEach(t => { - this.Model.DeleteEntryRow("FEntity2", Convert.ToInt32(t["Seq"])-1); + this.Model.DeleteEntryRow("FEntity2", Convert.ToInt32(t["Seq"]) - 1); }); //tempRow.ForEach(item => //{ @@ -974,8 +999,8 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire // } // } // } - - + + //} //else //{ @@ -989,6 +1014,8 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire }); } } + + #region DataChanged(单据体值更新事件) /// /// 单据体值更新事件 @@ -1185,21 +1212,21 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire { //获取销售订单/应收单单据体数据 DynamicObjectCollection FEntity2 = this.View.Model.DataObject["FEntity2"] as DynamicObjectCollection; - + //获取当前复选框的值 var IsHX = this.Model.GetValue("F_ISHX", e.Row)?.ToString(); var F_RowNew = this.Model.GetValue("F_RowNew", e.Row)?.ToString(); if (F_RowNew != "1") return; - string PARENTROWID= this.Model.GetValue("FPARENTROWID", e.Row)?.ToString(); + 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(); if (IsHX.ToLower() == "true" && dataRow.Where(t => t["F_ISHX"].ToString().ToLower() == "true").Count() > 0) { return; } - dataRow.ForEach(item=> + dataRow.ForEach(item => { - this.Model.SetValue("F_ISHX", IsHX, int.Parse(item["SEQ"].ToString())-1); + this.Model.SetValue("F_ISHX", IsHX, int.Parse(item["SEQ"].ToString()) - 1); //this.Model.SetValue("F_ISGX", "False", i); }); //查询对应的销售订单/应收单-》勾选复选框 @@ -1222,7 +1249,7 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire //} //if (IsHX == "False") //{ - + // int n = 0; // //判断其他收款单是否勾选 // foreach (var item in FEntity2) @@ -1262,5 +1289,183 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire ExpandWaiting = 64,///0000 0100 0000,包含展开等待数据请求行 Summary = 128///0001 0000 000,汇总类型数据行  } + + public void FilterCallBack(FormResult action) + { + if (action.ReturnData != null) + { + FilterParameter returnData = action.ReturnData as FilterParameter;//过滤框返回的数据 + DynamicObject dyObj = returnData.CustomFilter as DynamicObject; + //获取组织FID + DynamicObject FSaleOrg = dyObj["F_ZhuZhi2"] as DynamicObject; + string FSaleOrgId = ""; + string where1 = " and 1=1"; + string where2 = " and 1=1"; + if (FSaleOrg != null) + { + FSaleOrgId = Convert.ToString(FSaleOrg["ID"]); + where1 += $@" AND A.FSALEORGID = {FSaleOrgId}"; + where2 += $@" AND A.FSALEORGID = {FSaleOrgId}"; + } + ////获取客户单位 + //DynamicObject CUST = dyObj["FClient"] as DynamicObject; + //string CustFid = ""; + //if (CUST != null) + //{ + // CustFid = Convert.ToString(CUST["ID"]); + // where1 += $@" and A.FCUSTID = '{CustFid}'"; + // where2 += $@" and A.FCONTACTUNIT = '{CustFid}'"; + //} + + + //获取多选客户单位 + var ZZS = returnData.CustomFilter["FClientList"] as DynamicObjectCollection; + string CustFid = ""; + if (ZZS.Count > 0) + { + List zzList = new List(); + //循环获取多选组织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}')"; + where2 += $@" and A.FCONTACTUNIT in ('{CustFid}')"; + } + + + //获取收款日期 + var FSDate = Convert.ToString(dyObj["F_ShouKuan1"]); + if (!string.IsNullOrWhiteSpace(FSDate)) + { + where2 += $@" and A.FDATE >='{FSDate}'"; + } + //获取收款结束日期 + var FEDate = Convert.ToString(dyObj["F_ShouKuan2"]); + + if (!string.IsNullOrWhiteSpace(FEDate)) + { + DateTime end = DateTime.Parse(FEDate).Date.AddDays(1); + where2 += $@" and A.FDATE < '{end}'"; + } + + + SaleBILLLIS = new List(); + ReceiveBILLLIST = new List(); + List SaleBILLLISnew = new List(); + List ReceiveBILLLISTNew = new List(); + //删除四个单据体 + this.View.Model.DeleteEntryData("FEntity"); + this.View.Model.DeleteEntryData("FEntity2"); + + //var FShuaXin = this.View.Model.GetValue("FShuaXin"); + + //调用SQL获取数据 + var WriteOrderDate = SQL.SqlManage_yuyubo.GetWriteOrderDate3(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"]), + FBIllNO = Convert.ToString(item["FBIllNO"]), + FCONTRACTNUMBER = Convert.ToString(item["F_CONTRACTNUMBER"]), + FClient = Convert.ToInt32(item["FCUSTID"]), + FDate = Convert.ToString(item["FDate"]), + FALLAMOUNT = Convert.ToDouble(item["FALLAMOUNT"]), + FYAMOUNT = Convert.ToDouble(item["FYAMOUNT"]), + FDAMOUNT = Convert.ToDouble(item["FDAMOUNT"]), + FCreated = Convert.ToInt32(item["FCREATORID"]), + FSalesman = Convert.ToInt32(item["FSALERID"]), + FIs30 = Convert.ToBoolean(item["FIs30"]), + FType = Convert.ToString(item["FType"]), + BenCi = Convert.ToDouble(item["BenCi"]), + F_Ordercategory2 = Convert.ToString(item["F_Ordercategory2"]), + F_Ordercategory = Convert.ToString(item["F_Ordercategory"]), + FInvoiceAmount = Convert.ToDecimal(item["FInvoiceAmount"]), + }).ToList(); + + + 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"]), + 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, + BenCi = 0, + }).ToList(); + + var kehu = ReceiveBILLLIST.Select(t => t.FClient).Distinct().ToList(); + SaleBILLLIS = SaleBILLLIS.Where(t => kehu.Contains(t.FClient)).ToList(); + SaleBILLLIS2 = SaleBILLLIS.ToList(); + + //绑定销售订单数据 + for (int i = 0; i < SaleBILLLIS2.Count; i++) + { + int rowindex = this.View.Model.GetEntryRowCount("FEntity"); + this.View.Model.CreateNewEntryRow("FEntity"); + //单据编号 + this.View.Model.SetValue("FBILLNO", SaleBILLLIS2[i].FBIllNO, i); + //日期 + this.View.Model.SetValue("FDate", DateTime.Now.AddDays(-1 * Convert.ToInt32(SaleBILLLIS2[i].FDate)).ToString("yyyy-MM-dd"), i); + //金额 + this.View.Model.SetValue("F_MBBA_Decimal_c1c", SaleBILLLIS2[i].FALLAMOUNT, i); + //类型 + this.View.Model.SetValue("FType", SaleBILLLIS2[i].FType, i); + //纸质合同号 + this.View.Model.SetValue("FCONTRACTNUMBER", SaleBILLLIS2[i].FCONTRACTNUMBER, i); + //客户名称 + this.View.Model.SetValue("FClient", SaleBILLLIS2[i].FClient, i); + //已核销金额 + this.View.Model.SetValue("F_MBBA_Decimal_vb1", SaleBILLLIS2[i].FYAMOUNT, i); + //待核销金额 + this.View.Model.SetValue("F_MBBA_Decimal_emq", SaleBILLLIS2[i].FDAMOUNT, i); + //商务人员 + this.View.Model.SetValue("FCreated", SaleBILLLIS2[i].FCreated, i); + //销售员 + this.View.Model.SetValue("FSalesman", SaleBILLLIS2[i].FSalesman, i); + //合同类型、累计开票金额 + this.View.Model.SetValue("F_Ordercategory2", SaleBILLLIS2[i].F_Ordercategory2, i); + this.View.Model.SetValue("F_Ordercategory", SaleBILLLIS2[i].F_Ordercategory, i); + this.View.Model.SetValue("FInvoiceAmount", SaleBILLLIS2[i].FInvoiceAmount, i); + + + } + + this.View.UpdateView("FEntity"); + for (int i = 0; i < ReceiveBILLLIST.Count; i++) + { + int Rowindex = this.View.Model.GetEntryRowCount("FEntity2"); + int RowindexNew = Rowindex; + this.View.Model.CreateNewEntryRow("FEntity2"); + string FROWID = SequentialGuid.NewGuid().ToString(); + 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); + this.View.Model.SetValue("FRemark", ReceiveBILLLIST[i].FRemark, RowindexNew); + this.View.Model.SetValue("F_MBBA_Decimal_3iy", ReceiveBILLLIST[i].FYAMOUNT, 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("FSalesman2", ReceiveBILLLIST[i].FSalesman, RowindexNew); + this.View.Model.SetValue("F_RowNew", ReceiveBILLLIST[i].F_RowNew, RowindexNew); + this.View.Model.SetValue("F_ISHX", false, RowindexNew); + + } + this.View.UpdateView("FEntity2"); + } + } } } diff --git a/Pilot_KD_Parino/SQL/SqlManage_yuyubo.cs b/Pilot_KD_Parino/SQL/SqlManage_yuyubo.cs index 67038b4..72445de 100644 --- a/Pilot_KD_Parino/SQL/SqlManage_yuyubo.cs +++ b/Pilot_KD_Parino/SQL/SqlManage_yuyubo.cs @@ -111,10 +111,10 @@ namespace Pilot_KD_Parino.SQL /// 获取核销收款单信息 /// /// - public static DynamicObjectCollection GetWriteReceiveDate3(Context ctx, string FORGID) + public static DynamicObjectCollection GetWriteReceiveDate3(Context ctx, string FORGID,string where ) { //定义SQL,调用物料视图 - string sql = string.Format(@"/*dialect*/ + string sql = string.Format($@"/*dialect*/ SELECT A.FID, A.FSALEERID, A.FCONTACTUNIT, @@ -130,9 +130,9 @@ namespace Pilot_KD_Parino.SQL FROM T_AR_RECEIVEBILL A WHERE A.FDOCUMENTSTATUS = 'C' AND A.FISINIT != '1' - AND A.FSALEORGID = {0} + AND A.FRECAMOUNT != A.F_AMOUNT - AND A.FRECAMOUNT >= A.F_AMOUNT + AND A.FRECAMOUNT >= A.F_AMOUNT {where} order by FCONTACTUNIT,A.FID desc ", FORGID); return DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); } @@ -216,7 +216,7 @@ namespace Pilot_KD_Parino.SQL /// 获取核销销售订单信息 /// /// - public static DynamicObjectCollection GetWriteOrderDate3(Context ctx, string FORGID) + public static DynamicObjectCollection GetWriteOrderDate3(Context ctx, string FORGID,string where ) { //定义SQL,调用物料视图 string sql = string.Format($@"/*dialect*/ @@ -240,15 +240,25 @@ namespace Pilot_KD_Parino.SQL 0.00 AS BenCi, CASE WHEN A.F_Ordercategory ='670cca03263357' THEN 'P类合同' else '非P类合同' end as F_Ordercategory2, A.F_Ordercategory AS F_Ordercategory, - 0.00 as FInvoiceAmount + ( + 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_contractnumber AND ad.FSALEORGID=a.FSALEORGID +GROUP BY F_PaperNumber, FSALEORGID + ) as FInvoiceAmount FROM T_SAL_ORDER A INNER JOIN T_SAL_ORDERFIN C ON C.FID =A.FID WHERE - C.FBILLALLAMOUNT_LC <>0 - AND A.FSALEORGID = {FORGID} + C.FBILLALLAMOUNT_LC <>0 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' + or A.F_AMOUNT IS NULL) AND A.FBusinessType='NORMAL' {where} ) A ORDER BY A.FCUSTID,a.FID desc "); return DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); } diff --git a/组织间单据自动生成流程图.vsdx b/组织间单据自动生成流程图.vsdx new file mode 100644 index 0000000..dad696b Binary files /dev/null and b/组织间单据自动生成流程图.vsdx differ