diff --git a/Pilot_KD_Parino/QPHY_AutoWrire/Bill5.cs b/Pilot_KD_Parino/QPHY_AutoWrire/Bill5.cs index f8a907b..76135e4 100644 --- a/Pilot_KD_Parino/QPHY_AutoWrire/Bill5.cs +++ b/Pilot_KD_Parino/QPHY_AutoWrire/Bill5.cs @@ -1,4 +1,5 @@ -using DocumentFormat.OpenXml.Drawing.Spreadsheet; +using DevExpress.Data.PLinq.Helpers; +using DocumentFormat.OpenXml.Drawing.Spreadsheet; using Kingdee.BOS.App.Core.Utils; using Kingdee.BOS.BusinessEntity.BusinessFlow; using Kingdee.BOS.Core.DynamicForm; @@ -405,174 +406,7 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire List FBILLNOLIST = new List(); List FClient = new List(); List result = new List(); - var FStartTime = DateTime.Now; - - #region 旧版 - - //#region 匹配销售订单 - //var SaleBILLLIS2Sal = SaleBILLLIS2.Where(t => t.FType == "销售订单" && t.FISHX != "已核销配对").ToList(); - - ////-----------20250117--------------------↓ - ////将销售订单根据客户分组 - //var FClientList = SaleBILLLIS2Sal.GroupBy(t => t.FClient).ToList(); - ////计算分组汇总合计金额用于配对收款单 - //for (int i = 0; i < FClientList.Count; i++) - //{ - // List result2 = new List(); - // var SaleSumAmount = SaleBILLLIS2Sal.Where(a => a.FClient == FClientList[i].Key).ToList(); - // CombinationGenerator_yuyubo.GetCombinations2(SaleSumAmount, 0, FBILLNOLIST, FClient, ref result2, 0); - // result.AddRange(result2); - //} - ////------------20250117-------------------↑ - ////存储收款单用于核销 - //List ReceiveBILLLISTNew = new List(ReceiveBILLLIST); - ////存储对应销售订单/应收单以及收款单的 - //List resultNew = new List(); - ////先挑1张收款单对应一张销售订单 - //for (int i = 0; i < ReceiveBILLLIST.Count; i++) - //{ - // var aaa = CombinationGenerator_yuyubo.GetCombinationsDataByList2(result, ReceiveBILLLIST[i].FDAMOUNT, ReceiveBILLLIST[i].FClient); - // if (aaa.Count > 0) - // { - // //FBIllNO存放对应的销售订单编号、FBIllNO2存放对应收款单编号 - // result = CombinationGenerator_yuyubo.DeleteCombinationsDataByList(result, aaa[0].FBIllNO); - // foreach (var item in SaleBILLLIS.Where(t => aaa[0].FBIllNO.Contains(t.FBIllNO))) - // { - // SaleBILLLIS2Sal.Remove(item); - // } - // //获取纸质合同号 - // List fString = new List(); - // foreach (var item in SaleBILLLISNew) - // { - // if (item.FBIllNO.Equals(aaa[0].FBIllNO[0].ToString())) - // { - // //更新销售订单数据 - // item.FSKBIllNO = ReceiveBILLLIST[i].FBIllNO; - // item.FISHX = "已核销配对"; - // fString.Add(item.FCONTRACTNUMBER); - // } - // } - // string fCONTRACTNUMBER = string.Join(",", fString); - // //更新收款单数据 - // ReceiveBILLLIST[i].FCONTRACTNUMBER = fCONTRACTNUMBER; - // ReceiveBILLLIST[i].FISHX = "已核销配对"; - // //删除已核销匹对的收款单 - // ReceiveBILLLISTNew.Remove(ReceiveBILLLIST[i]); - // } - //} - - //#region 隐藏代码 - - ////先挑1张收款单对应多张张销售订单 - //for (int i = 0; i < ReceiveBILLLISTNew.Count; i++) - //{ - // var resultNew2 = CombinationGenerator_yuyubo.GetCombinationsDataByList(result, ReceiveBILLLISTNew[i].FDAMOUNT, ReceiveBILLLISTNew[i].FClient); - // if (resultNew2.Count > 0) - // { - // result = CombinationGenerator_yuyubo.DeleteCombinationsDataByList(result, resultNew2[0].FBIllNO); - // foreach (var item in SaleBILLLIS.Where(t => resultNew2[0].FBIllNO.Contains(t.FBIllNO))) - // { - // SaleBILLLIS2Sal.Remove(item); - // } - // //获取纸质合同号 - // List fString = new List(); - // //循环销售订单 - // foreach (var item in resultNew2[0].FBIllNO) - // { - // foreach (var item2 in SaleBILLLISNew) - // { - // if (item2.FBIllNO.Equals(item)) - // { - // item2.FSKBIllNO = ReceiveBILLLISTNew[i].FBIllNO; - // //if (item2.FDAMOUNT != 0) - // //{ - // // item2.FYAMOUNT = item2.FDAMOUNT; - // //} - // //item2.FDAMOUNT = 0; - // item2.FISHX = "已核销配对"; - // fString.Add(item2.FCONTRACTNUMBER); - // } - // } - // } - // string fCONTRACTNUMBER = string.Join(",", fString); - // //循环收款单 - // foreach (var item in ReceiveBILLLIST.Where(t => t.FBIllNO == ReceiveBILLLISTNew[i].FBIllNO)) - // { - // item.FCONTRACTNUMBER = fCONTRACTNUMBER; - // //if (item.FDAMOUNT != 0) - // //{ - // // item.FYAMOUNT = item.FDAMOUNT; - // //} - // //item.FDAMOUNT = 0; - // item.FISHX = "已核销配对"; - // } - // //删除已核销匹对的收款单 - // ReceiveBILLLISTNew.Remove(ReceiveBILLLISTNew[i]); - // } - //} - - ////-----------20250118--------------------↓ - ////将收款单根据客户分组 - //var SKFClientList = ReceiveBILLLISTNew.GroupBy(t => t.FClient).ToList(); - //result = new List(); - //for (int i = 0; i < SKFClientList.Count; i++) - //{ - // List result2 = new List(); - // var SaleSumAmount = ReceiveBILLLISTNew.Where(a => a.FClient == SKFClientList[i].Key).ToList(); - // CombinationGenerator_yuyubo.GetCombinations2(SaleSumAmount, 0, FBILLNOLIST, FClient, ref result2, 0); - // result.AddRange(result2); - //} - ////1个销售订单对应多张收款单 - //for (int i = 0; i < SaleBILLLIS2Sal.Count; i++) - //{ - // var resultNew2 = CombinationGenerator_yuyubo.GetCombinationsDataByListTK(result, SaleBILLLIS2Sal[i].FDAMOUNT, SaleBILLLIS2Sal[i].FClient); - // if (resultNew2.Count > 0) - // { - // result = CombinationGenerator_yuyubo.DeleteCombinationsDataByList(result, resultNew2[0].FBIllNO2); - // foreach (var item in ReceiveBILLLIST.Where(t => resultNew2[0].FBIllNO2.Contains(t.FBIllNO))) - // { - // ReceiveBILLLISTNew.Remove(item); - // } - // foreach (var item in SaleBILLLISNew.Where(a => a.FBIllNO == SaleBILLLIS2Sal[i].FBIllNO)) - // { - // string fCONTRACTNUMBER = string.Join(",", resultNew2[0].FBIllNO2); - // item.FSKBIllNO = fCONTRACTNUMBER; - // item.FWeiYi = "是"; - // //if (item.FDAMOUNT != 0) - // //{ - // // item.FYAMOUNT = item.FDAMOUNT; - // //} - // //item.FDAMOUNT = 0; - // item.FISHX = "已核销配对"; - // } - // foreach (var item in resultNew2[0].FBIllNO2) - // { - // foreach (var item2 in ReceiveBILLLIST) - // { - // if (item2.FBIllNO.Equals(item)) - // { - // item2.FCONTRACTNUMBER = SaleBILLLIS2Sal[i].FCONTRACTNUMBER; - // item2.FWeiYi = "否"; - // //if (item2.FDAMOUNT != 0) - // //{ - // // item2.FYAMOUNT = item2.FDAMOUNT; - // //} - // //item2.FDAMOUNT = 0; - // item2.FISHX = "已核销配对"; - // } - // } - // } - // SaleBILLLIS2Sal.Remove(SaleBILLLIS2Sal[i]); - // } - //} - ////-----------20250118--------------------↑ - - //#endregion - - //#endregion - - #endregion - + var FStartTime = DateTime.Now; #region 新版 2025-04-07 #region 匹配销售订单 @@ -782,49 +616,7 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire //this.View.Model.DeleteEntryData("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 @@ -845,7 +637,7 @@ 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",false, item.FRow); + this.View.Model.SetValue("F_ISHX",true, item.FRow); List strings = new List(); if (item.FCONTRACTNUMBER != null) strings = item.FCONTRACTNUMBER.Split(',').ToList(); @@ -880,10 +672,11 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire 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_MBBA_Decimal_3iy", tempList2[i].FYAMOUNT, Rowindex + i); + this.View.Model.SetValue("F_ISHX", true, Rowindex + i); } - this.View.UpdateView("FEntity2"); + //if (strings.Count() == 1 && item.FWeiYi == "否") //{ @@ -948,15 +741,21 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire this.Model.SetValue("FROWEXPANDTYPE", (int)ENUM_ROWTYPE.Expand, item.FRow); } } + this.View.UpdateView("FEntity2"); TreeEntryGrid entryGrid = this.View.GetControl("FEntity2") as TreeEntryGrid; DynamicObjectCollection entryGrid2 = this.View.Model.DataObject["FEntity2"] as DynamicObjectCollection; if (entryGrid != null) { - for (int i = 0; i < entryGrid2.Count; i++) + var list = entryGrid2.Where(t => t["FCONTRACTNUMBER2"] != null && t["FCONTRACTNUMBER2"].ToString() != "" && t["F_RowNew"].ToString() =="1").ToList(); + foreach (var item in list) { - entryGrid.ExpandedRow(i); + entryGrid.ExpandedRow( int.Parse(item["SEQ"].ToString())-1); } + //for (int i = 0; i < entryGrid2.Count; i++) + //{ + // entryGrid.ExpandedRow(i); + //} } var FEndTime = DateTime.Now; @@ -1171,251 +970,268 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire } } #region DataChanged(单据体值更新事件) - ///// - ///// 单据体值更新事件 - ///// - ///// - //public override void DataChanged(DataChangedEventArgs e) - //{ - // base.DataChanged(e); - // if (e.Field.Key.Equals("FShuaXin")) - // { - // //文本字段触发值更新时,模拟用户点击菜单,此处模拟点击“选项”菜单: - // ((IDynamicFormViewService)this.View).MainBarItemClick("MBBA_tbButton_1"); - // } - // if (e.Field.Key.Equals("FCONTRACTNUMBER2")) - // { - // if (INDEXNumber == 0) - // { - // //获取销售订单/应收单单据体数据 - // DynamicObjectCollection FEntity = this.View.Model.DataObject["FEntity"] as DynamicObjectCollection; + /// + /// 单据体值更新事件 + /// + /// + public override void DataChanged(DataChangedEventArgs e) + { + base.DataChanged(e); + if (e.Field.Key.Equals("FShuaXin")) + { + //文本字段触发值更新时,模拟用户点击菜单,此处模拟点击“选项”菜单: + ((IDynamicFormViewService)this.View).MainBarItemClick("MBBA_tbButton_1"); + } + { + //if (e.Field.Key.Equals("FCONTRACTNUMBER2")) + //{ + // if (INDEXNumber == 0) + // { + // //获取销售订单/应收单单据体数据 + // DynamicObjectCollection FEntity = this.View.Model.DataObject["FEntity"] as DynamicObjectCollection; - // SaleBILLLIS = new List(); + // SaleBILLLIS = new List(); - // foreach (var item in FEntity) - // { - // SaleBILLLIS.Add(new CombinaClass() - // { - // FBIllNO = item["FBILLNO"]?.ToString(), - // FCONTRACTNUMBER = item["FCONTRACTNUMBER"]?.ToString(), - // FClient = Convert.ToInt32(item["FClient_Id"]), - // FDate = item["FDate"]?.ToString(), - // FALLAMOUNT = Convert.ToDouble(item["F_MBBA_Decimal_c1c"]), - // FYAMOUNT = Convert.ToDouble(item["F_MBBA_Decimal_vb1"]), - // FDAMOUNT = Convert.ToDouble(item["F_MBBA_Decimal_emq"]), - // FSKBIllNO = item["FSKBILLNO"]?.ToString(), - // FCreated = Convert.ToInt32(item["FCreated_Id"]), - // FSalesman = Convert.ToInt32(item["FSalesman_Id"]), - // FType = item["FType"]?.ToString(), - // FISHX = item["FISHX"]?.ToString(), - // FWeiYi = item["FWeiYi"]?.ToString(), - // }); - // } + // foreach (var item in FEntity) + // { + // SaleBILLLIS.Add(new CombinaClass() + // { + // FBIllNO = item["FBILLNO"]?.ToString(), + // FCONTRACTNUMBER = item["FCONTRACTNUMBER"]?.ToString(), + // FClient = Convert.ToInt32(item["FClient_Id"]), + // FDate = item["FDate"]?.ToString(), + // FALLAMOUNT = Convert.ToDouble(item["F_MBBA_Decimal_c1c"]), + // FYAMOUNT = Convert.ToDouble(item["F_MBBA_Decimal_vb1"]), + // FDAMOUNT = Convert.ToDouble(item["F_MBBA_Decimal_emq"]), + // FSKBIllNO = item["FSKBILLNO"]?.ToString(), + // FCreated = Convert.ToInt32(item["FCreated_Id"]), + // FSalesman = Convert.ToInt32(item["FSalesman_Id"]), + // FType = item["FType"]?.ToString(), + // FISHX = item["FISHX"]?.ToString(), + // FWeiYi = item["FWeiYi"]?.ToString(), + // }); + // } - // var fBILLNO = this.Model.GetValue("FBILLNO2", e.Row); - // var fCONTRACTNUMBER = this.Model.GetValue("FCONTRACTNUMBER2", e.Row); + // var fBILLNO = this.Model.GetValue("FBILLNO2", e.Row); + // var fCONTRACTNUMBER = this.Model.GetValue("FCONTRACTNUMBER2", e.Row); - // //判断是否为空 - // if (string.IsNullOrWhiteSpace(fCONTRACTNUMBER?.ToString())) - // { - // this.Model.SetValue("FISHX2", "", e.Row); + // //判断是否为空 + // if (string.IsNullOrWhiteSpace(fCONTRACTNUMBER?.ToString())) + // { + // this.Model.SetValue("FISHX2", "", e.Row); - // this.Model.SetValue("F_MBBA_Decimal_qtr", 0, e.Row); + // this.Model.SetValue("F_MBBA_Decimal_qtr", 0, e.Row); - // //获取当前的父id - // var fPARENTROWID = this.Model.GetValue("FPARENTROWID", e.Row)?.ToString(); + // //获取当前的父id + // var fPARENTROWID = this.Model.GetValue("FPARENTROWID", e.Row)?.ToString(); - // DynamicObjectCollection FEntity2 = this.View.Model.DataObject["FEntity2"] as DynamicObjectCollection; + // DynamicObjectCollection FEntity2 = this.View.Model.DataObject["FEntity2"] as DynamicObjectCollection; - // //获取行数 - // List ints = new List(); + // //获取行数 + // List ints = new List(); - // foreach (var fEntity in FEntity2) - // { - // if (fEntity["PARENTROWID"]?.ToString() == fPARENTROWID && fEntity["F_RowNew"]?.ToString() == "0") - // { - // ints.Add(Convert.ToInt32(fEntity["seq"]) - 1); - // } - // } + // foreach (var fEntity in FEntity2) + // { + // if (fEntity["PARENTROWID"]?.ToString() == fPARENTROWID && fEntity["F_RowNew"]?.ToString() == "0") + // { + // ints.Add(Convert.ToInt32(fEntity["seq"]) - 1); + // } + // } - // //循环删除子项 - // for (int i = 0; i < ints.Count; i++) - // { - // this.View.Model.DeleteEntryRow("FEntity2", ints[0]); - // } + // //循环删除子项 + // for (int i = 0; i < ints.Count; i++) + // { + // this.View.Model.DeleteEntryRow("FEntity2", ints[0]); + // } - // foreach (var item in SaleBILLLIS) - // { - // if (!string.IsNullOrEmpty(item.FSKBIllNO)) - // { - // string[] strings = item.FSKBIllNO?.ToString()?.Split(','); - // //判断假如是一个收款单对应多个销售订单 - // if (strings.Contains(fBILLNO?.ToString()) && strings.Count() == 1) - // { - // item.FSKBIllNO = ""; - // item.FISHX = ""; - // item.FWeiYi = ""; - // } - // //判断多个收款单对应一个销售订单 - // else if (strings.Contains(fBILLNO?.ToString()) && strings.Count() > 1) - // { - // List strings1 = new List(strings); - // strings1.Remove(fBILLNO?.ToString()); - // string strings2 = string.Join(",", strings1); - // item.FSKBIllNO = strings2; - // } - // } - // } - // } - // int n = 1; - // //判断多个销售订单对应1个收款单(只删除一个或多个但不是空的情况) - // if (!string.IsNullOrWhiteSpace(fCONTRACTNUMBER?.ToString())) - // { - // double sumAmount = 0; - // string[] strings = fCONTRACTNUMBER?.ToString()?.Split(','); - // var FROWID = Convert.ToString(this.View.Model.GetValue("FROWID", e.Row)); - // var Rowindex = this.View.Model.GetEntryRowCount("FEntity2"); - // foreach (var item in SaleBILLLIS) - // { - // if (!string.IsNullOrEmpty(item.FSKBIllNO) && item.FSKBIllNO == fBILLNO?.ToString()) - // { - // if (!strings.Contains(item.FCONTRACTNUMBER)) - // { - // item.FSKBIllNO = ""; - // item.FISHX = ""; - // item.FWeiYi = ""; - // } - // } - // if (strings.Contains(item.FCONTRACTNUMBER)) - // { - // item.FSKBIllNO = fBILLNO?.ToString(); - // item.FISHX = "已核销配对"; - // this.Model.SetValue("FISHX2", "已核销配对", e.Row); + // foreach (var item in SaleBILLLIS) + // { + // if (!string.IsNullOrEmpty(item.FSKBIllNO)) + // { + // string[] strings = item.FSKBIllNO?.ToString()?.Split(','); + // //判断假如是一个收款单对应多个销售订单 + // if (strings.Contains(fBILLNO?.ToString()) && strings.Count() == 1) + // { + // item.FSKBIllNO = ""; + // item.FISHX = ""; + // item.FWeiYi = ""; + // } + // //判断多个收款单对应一个销售订单 + // else if (strings.Contains(fBILLNO?.ToString()) && strings.Count() > 1) + // { + // List strings1 = new List(strings); + // strings1.Remove(fBILLNO?.ToString()); + // string strings2 = string.Join(",", strings1); + // item.FSKBIllNO = strings2; + // } + // } + // } + // } + // int n = 1; + // //判断多个销售订单对应1个收款单(只删除一个或多个但不是空的情况) + // if (!string.IsNullOrWhiteSpace(fCONTRACTNUMBER?.ToString())) + // { + // double sumAmount = 0; + // string[] strings = fCONTRACTNUMBER?.ToString()?.Split(','); + // var FROWID = Convert.ToString(this.View.Model.GetValue("FROWID", e.Row)); + // var Rowindex = this.View.Model.GetEntryRowCount("FEntity2"); + // foreach (var item in SaleBILLLIS) + // { + // if (!string.IsNullOrEmpty(item.FSKBIllNO) && item.FSKBIllNO == fBILLNO?.ToString()) + // { + // if (!strings.Contains(item.FCONTRACTNUMBER)) + // { + // item.FSKBIllNO = ""; + // item.FISHX = ""; + // item.FWeiYi = ""; + // } + // } + // if (strings.Contains(item.FCONTRACTNUMBER)) + // { + // item.FSKBIllNO = fBILLNO?.ToString(); + // item.FISHX = "已核销配对"; + // this.Model.SetValue("FISHX2", "已核销配对", e.Row); - // //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", item.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.FALLAMOUNT, Rowindex); - // //this.View.Model.SetValue("FClient2", item.FClient, Rowindex); - // //this.View.Model.SetValue("FCreated2", item.FCreated, Rowindex); - // //this.View.Model.SetValue("FCONTRACTNUMBER2", item.FCONTRACTNUMBER, Rowindex); - // //this.View.Model.SetValue("FSalesman2", item.FSalesman, Rowindex); - // //this.View.UpdateView("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", item.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.FALLAMOUNT, Rowindex); + // //this.View.Model.SetValue("FClient2", item.FClient, Rowindex); + // //this.View.Model.SetValue("FCreated2", item.FCreated, Rowindex); + // //this.View.Model.SetValue("FCONTRACTNUMBER2", item.FCONTRACTNUMBER, Rowindex); + // //this.View.Model.SetValue("FSalesman2", item.FSalesman, Rowindex); + // //this.View.UpdateView("FEntity2"); - // sumAmount += item.FALLAMOUNT; - // } - // } - // this.Model.SetValue("F_MBBA_Decimal_qtr", sumAmount, e.Row); - // n = SaleBILLLIS.Count(a => strings.Contains(a.FCONTRACTNUMBER)); - // } + // sumAmount += item.FALLAMOUNT; + // } + // } + // this.Model.SetValue("F_MBBA_Decimal_qtr", sumAmount, e.Row); + // n = SaleBILLLIS.Count(a => strings.Contains(a.FCONTRACTNUMBER)); + // } - // if (n == 0) - // { - // this.Model.SetValue("FISHX2", "", e.Row); - // } - // //删除数据 - // this.View.Model.DeleteEntryData("FEntity"); - // //绑定销售订单数据 - // for (int i = 0; i < SaleBILLLIS.Count; i++) - // { - // int rowindex = this.View.Model.GetEntryRowCount("FEntity"); - // this.View.Model.CreateNewEntryRow("FEntity"); - // //单据编号 - // this.View.Model.SetValue("FBILLNO", SaleBILLLIS[i].FBIllNO, i); - // //日期 - // this.View.Model.SetValue("FDate", SaleBILLLIS[i].FDate, i); - // //金额 - // this.View.Model.SetValue("F_MBBA_Decimal_c1c", SaleBILLLIS[i].FALLAMOUNT, i); - // //类型 - // this.View.Model.SetValue("FType", SaleBILLLIS[i].FType, i); - // //纸质合同号 - // this.View.Model.SetValue("FCONTRACTNUMBER", SaleBILLLIS[i].FCONTRACTNUMBER, i); - // //客户名称 - // this.View.Model.SetValue("FClient", SaleBILLLIS[i].FClient, i); - // //已核销金额 - // this.View.Model.SetValue("F_MBBA_Decimal_vb1", SaleBILLLIS[i].FYAMOUNT, i); - // //待核销金额 - // this.View.Model.SetValue("F_MBBA_Decimal_emq", SaleBILLLIS[i].FDAMOUNT, i); - // //单据编号(收款单) - // this.View.Model.SetValue("FSKBILLNO", SaleBILLLIS[i].FSKBIllNO, i); - // //是否核销匹对 - // this.View.Model.SetValue("FISHX", SaleBILLLIS[i].FISHX, i); - // //是否唯一 - // this.View.Model.SetValue("FWeiYi", SaleBILLLIS[i]?.FWeiYi, i); - // //商务人员 - // this.View.Model.SetValue("FCreated", SaleBILLLIS[i]?.FCreated, i); - // //销售员 - // this.View.Model.SetValue("FSalesman", SaleBILLLIS[i]?.FSalesman, i); - // } - // this.View.UpdateView("FEntity"); - // } - // } - // if (e.Field.Key.Equals("F_ISHX")) - // { - // //获取当前复选框的值 - // var IsHX = this.Model.GetValue("F_ISHX", e.Row)?.ToString(); - // var ISWeiYi = this.Model.GetValue("FWeiYi2", e.Row)?.ToString(); - // //查询对应的销售订单/应收单-》勾选复选框 - // var fc = this.Model.GetValue("FCONTRACTNUMBER2", e.Row)?.ToString(); - // if (IsHX == "True") - // { - // //查看是否为唯一 - // if (!string.IsNullOrEmpty(ISWeiYi) && ISWeiYi == "否") - // { - // //获取销售订单/应收单单据体数据 - // DynamicObjectCollection FEntity = this.View.Model.DataObject["FEntity"] as DynamicObjectCollection; - // for (int i = 0; i < FEntity.Count; i++) - // { - // if (FEntity[i]["FCONTRACTNUMBER"]?.ToString() == fc) - // { - // this.Model.SetValue("F_ISGX", "True", i); - // } - // } - // } - // } - // if (IsHX == "False") - // { - // //获取销售订单/应收单单据体数据 - // DynamicObjectCollection FEntity2 = this.View.Model.DataObject["FEntity2"] as DynamicObjectCollection; - // int n = 0; - // //判断其他收款单是否勾选 - // foreach (var item in FEntity2) - // { - // if (item["F_ISHX"]?.ToString() == "True" && item["FCONTRACTNUMBER2"]?.ToString() == fc) - // { - // n++; - // } - // } + // if (n == 0) + // { + // this.Model.SetValue("FISHX2", "", e.Row); + // } + // //删除数据 + // this.View.Model.DeleteEntryData("FEntity"); + // //绑定销售订单数据 + // for (int i = 0; i < SaleBILLLIS.Count; i++) + // { + // int rowindex = this.View.Model.GetEntryRowCount("FEntity"); + // this.View.Model.CreateNewEntryRow("FEntity"); + // //单据编号 + // this.View.Model.SetValue("FBILLNO", SaleBILLLIS[i].FBIllNO, i); + // //日期 + // this.View.Model.SetValue("FDate", SaleBILLLIS[i].FDate, i); + // //金额 + // this.View.Model.SetValue("F_MBBA_Decimal_c1c", SaleBILLLIS[i].FALLAMOUNT, i); + // //类型 + // this.View.Model.SetValue("FType", SaleBILLLIS[i].FType, i); + // //纸质合同号 + // this.View.Model.SetValue("FCONTRACTNUMBER", SaleBILLLIS[i].FCONTRACTNUMBER, i); + // //客户名称 + // this.View.Model.SetValue("FClient", SaleBILLLIS[i].FClient, i); + // //已核销金额 + // this.View.Model.SetValue("F_MBBA_Decimal_vb1", SaleBILLLIS[i].FYAMOUNT, i); + // //待核销金额 + // this.View.Model.SetValue("F_MBBA_Decimal_emq", SaleBILLLIS[i].FDAMOUNT, i); + // //单据编号(收款单) + // this.View.Model.SetValue("FSKBILLNO", SaleBILLLIS[i].FSKBIllNO, i); + // //是否核销匹对 + // this.View.Model.SetValue("FISHX", SaleBILLLIS[i].FISHX, i); + // //是否唯一 + // this.View.Model.SetValue("FWeiYi", SaleBILLLIS[i]?.FWeiYi, i); + // //商务人员 + // this.View.Model.SetValue("FCreated", SaleBILLLIS[i]?.FCreated, i); + // //销售员 + // this.View.Model.SetValue("FSalesman", SaleBILLLIS[i]?.FSalesman, i); + // } + // this.View.UpdateView("FEntity"); + // } + //} + } + if (e.Field.Key.Equals("F_ISHX")) + { + //获取销售订单/应收单单据体数据 + 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(); + 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=> + { + this.Model.SetValue("F_ISHX", IsHX, int.Parse(item["SEQ"].ToString())-1); + //this.Model.SetValue("F_ISGX", "False", i); + }); + //查询对应的销售订单/应收单-》勾选复选框 + //var fc = this.Model.GetValue("FCONTRACTNUMBER2", e.Row)?.ToString(); + //if (IsHX == "True") + //{ + // //查看是否为唯一 + // if (!string.IsNullOrEmpty(ISWeiYi) && ISWeiYi == "否") + // { + // //获取销售订单/应收单单据体数据 + // DynamicObjectCollection FEntity = this.View.Model.DataObject["FEntity"] as DynamicObjectCollection; + // for (int i = 0; i < FEntity.Count; i++) + // { + // if (FEntity[i]["FCONTRACTNUMBER"]?.ToString() == fc) + // { + // this.Model.SetValue("F_ISGX", "True", i); + // } + // } + // } + //} + //if (IsHX == "False") + //{ + + // int n = 0; + // //判断其他收款单是否勾选 + // foreach (var item in FEntity2) + // { + // if (item["F_ISHX"]?.ToString() == "True" && item["FCONTRACTNUMBER2"]?.ToString() == fc) + // { + // n++; + // } + // } - // if (n == 0) - // { - // //查看是否为唯一 - // if (!string.IsNullOrEmpty(ISWeiYi) && ISWeiYi == "否") - // { - // //获取销售订单/应收单单据体数据 - // DynamicObjectCollection FEntity = this.View.Model.DataObject["FEntity"] as DynamicObjectCollection; - // for (int i = 0; i < FEntity.Count; i++) - // { - // if (FEntity[i]["FCONTRACTNUMBER"]?.ToString() == fc) - // { - // this.Model.SetValue("F_ISGX", "False", i); - // } - // } - // } - // } - // } - // } - //} + // if (n == 0) + // { + // //查看是否为唯一 + // if (!string.IsNullOrEmpty(ISWeiYi) && ISWeiYi == "否") + // { + // //获取销售订单/应收单单据体数据 + // DynamicObjectCollection FEntity = this.View.Model.DataObject["FEntity"] as DynamicObjectCollection; + // for (int i = 0; i < FEntity.Count; i++) + // { + // if (FEntity[i]["FCONTRACTNUMBER"]?.ToString() == fc) + // { + // this.Model.SetValue("F_ISGX", "False", i); + // } + // } + // } + // } + //} + } + } #endregion public enum ENUM_ROWTYPE : int {