This commit is contained in:
余宇波 2025-04-10 11:06:06 +08:00
parent b68dfe67b8
commit 875da8f2bf

View File

@ -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;
@ -407,173 +408,6 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire
List<DataItem> result = new List<DataItem>();
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<DataItem> result2 = new List<DataItem>();
// 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<CombinaClass> ReceiveBILLLISTNew = new List<CombinaClass>(ReceiveBILLLIST);
////存储对应销售订单/应收单以及收款单的
//List<DataItem> resultNew = new List<DataItem>();
////先挑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<string> fString = new List<string>();
// 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<string> fString = new List<string>();
// //循环销售订单
// 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<DataItem>();
//for (int i = 0; i < SKFClientList.Count; i++)
//{
// List<DataItem> result2 = new List<DataItem>();
// 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
#region 2025-04-07
#region
var SaleBILLLIS2Sal = SaleBILLLIS2.Where(t => t.FType == "销售订单" && t.FISHX != "已核销配对").ToList();
@ -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<string> strings = new List<string>();
if (item.FCONTRACTNUMBER != null)
strings = item.FCONTRACTNUMBER.Split(',').ToList();
@ -881,9 +673,10 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire
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.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,20 +970,21 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire
}
}
#region DataChanged()
///// <summary>
///// 单据体值更新事件
///// </summary>
///// <param name="e"></param>
//public override void DataChanged(DataChangedEventArgs e)
/// <summary>
/// 单据体值更新事件
/// </summary>
/// <param name="e"></param>
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"))
//{
// 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)
// {
// //获取销售订单/应收单单据体数据
@ -1359,16 +1159,33 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire
// }
// 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 (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 == "否")
// {
@ -1382,11 +1199,10 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire
// }
// }
// }
// }
// if (IsHX == "False")
// {
// //获取销售订单/应收单单据体数据
// DynamicObjectCollection FEntity2 = this.View.Model.DataObject["FEntity2"] as DynamicObjectCollection;
//}
//if (IsHX == "False")
//{
// int n = 0;
// //判断其他收款单是否勾选
// foreach (var item in FEntity2)
@ -1413,9 +1229,9 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire
// }
// }
// }
// }
// }
//}
}
}
#endregion
public enum ENUM_ROWTYPE : int
{