2025-04-08 20:13:20 +08:00

1558 lines
87 KiB
C#
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using DocumentFormat.OpenXml.Drawing.Spreadsheet;
using Kingdee.BOS.App.Core.Utils;
using Kingdee.BOS.BusinessEntity.BusinessFlow;
using Kingdee.BOS.Core.DynamicForm;
using Kingdee.BOS.Core.DynamicForm.PlugIn;
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
using Kingdee.BOS.Core.DynamicForm.PlugIn.ControlModel;
using Kingdee.BOS.Core.Enums;
using Kingdee.BOS.Core.Msg;
using Kingdee.BOS.Orm;
using Kingdee.BOS.Orm.DataEntity;
using Kingdee.BOS.Orm.Exceptions;
using Kingdee.BOS.Util;
using Newtonsoft.Json;
using NPOI.SS.Formula.Functions;
using Pilot_KD_Parino.Common;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Web.UI.WebControls;
using static Pilot_KD_Parino.QPHY_AutoWrire.Bill2;
using static Pilot_KD_Parino.QPHY_AutoWrire.Bill3;
namespace Pilot_KD_Parino.QPHY_AutoWrire
{
[HotUpdate]
[Description("收款核销5_2025-04-07")]
//交互事件,在用
public class Bill5 : AbstractDynamicFormPlugIn
{
//全局存储单据体数据
public List<CombinaClass> SaleBILLLIS = new List<CombinaClass>();
public List<CombinaClass> ReceiveBILLLIST = new List<CombinaClass>();
//拿来匹配的集合
public List<CombinaClass> SaleBILLLIS2 = new List<CombinaClass>();
int INDEXNumber = 0;
private int level = 0;//层级
private string parentRowId = "";//父项ID
string dateFormat = "yyyy-MM-dd HH:mm:ss"; // 指定的日期格式
/// <summary>
/// 开始
/// </summary>
/// <param name="e"></param>
public override void OnLoad(EventArgs e)
{
base.OnLoad(e);
SaleBILLLIS = new List<CombinaClass>();
ReceiveBILLLIST = new List<CombinaClass>();
List<CombinaClass> SaleBILLLISnew = new List<CombinaClass>();
List<CombinaClass> ReceiveBILLLISTNew = new List<CombinaClass>();
//删除四个单据体
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));
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"]),
}).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();
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.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.UpdateView("FEntity2");
}
/// <summary>
/// 编辑按钮点击事件
/// </summary>
/// <param name="e"></param>
public override void BeforeF7Select(BeforeF7SelectEventArgs e)
{
base.BeforeF7Select(e);
if (e.FieldKey.EqualsIgnoreCase("FCONTRACTNUMBER2"))
{
//获取收款单号/行号
var fBillNo = this.View.Model.GetValue("FBILLNO2", e.Row).ToString();
var fRow = e.Row;
//获取收款单单据体数据
DynamicObjectCollection FEntity = this.View.Model.DataObject["FEntity"] as DynamicObjectCollection;
//新建存储类
List<StringFBILLNO> stringFBILLNO = new List<StringFBILLNO>();
foreach (var item in FEntity)
{
if (!string.IsNullOrWhiteSpace(item["FISHX"]?.ToString()))
{
StringFBILLNO stringFBILLNO1 = new StringFBILLNO();
stringFBILLNO1.FBILLNO = item["FBILLNO"]?.ToString();
stringFBILLNO.Add(stringFBILLNO1);
}
}
ShowDynamicForm(stringFBILLNO, fBillNo, fRow);
}
}
/// <summary>
/// 弹出动态表单窗口
/// </summary>
private void ShowDynamicForm(List<StringFBILLNO> stringFBILLNO, string fBillNo, int fRow)
{
// 将列表序列化为JSON字符串
string jsonFBILLNO = JsonConvert.SerializeObject(stringFBILLNO);
// 创建动态表单显示参数
DynamicFormShowParameter dynamicFormShowParameter = new DynamicFormShowParameter();
//dynamicFormShowParameter.FormId = "VRYF_WriteoffWindow"; // 表单ID
dynamicFormShowParameter.FormId = "MBBA_WriteoffWindow"; // 替换为实际动态表单ID
dynamicFormShowParameter.OpenStyle.ShowType = ShowType.Modal; // 以模态窗口形式显示
// 添加自定义参数,用于传递数据
dynamicFormShowParameter.CustomParams.Add("fBillNo", fBillNo); // 根据需要设置参数
dynamicFormShowParameter.CustomParams.Add("stringFBILLNO", jsonFBILLNO); // 根据需要设置参数
dynamicFormShowParameter.CustomParams.Add("IsEditable", "true"); // 确保表单是可编辑的
var stringFBILLNOANDList = new List<StringFBILLNOANDList>();
// 显示动态表单
this.View.ShowForm(dynamicFormShowParameter, result =>
{
if (result != null && result.ReturnData != null)
{
stringFBILLNOANDList.Add((StringFBILLNOANDList)result.ReturnData);
}
//判断是否获取到数据
if (stringFBILLNOANDList[0].FBILLNOList.Count > 0)
{
//获取销售订单/应收单单据体数据
DynamicObjectCollection FEntity = this.View.Model.DataObject["FEntity"] as DynamicObjectCollection;
//获取收款单单据体数据
DynamicObjectCollection FEntity2 = this.View.Model.DataObject["FEntity2"] as DynamicObjectCollection;
SaleBILLLIS = new List<CombinaClass>();
ReceiveBILLLIST = new List<CombinaClass>();
//用于存储子树形的数据
var SaleBILLLIS2 = new List<CombinaClass>();
SaleBILLLIS = FEntity.Select(item => new CombinaClass
{
FBIllNO = Convert.ToString(item["FBILLNO"]),
FCONTRACTNUMBER = Convert.ToString(item["FCONTRACTNUMBER"]),
FClient = Convert.ToInt32(item["FClient_Id"]),
FDate = Convert.ToString(item["FDate"]),
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 = Convert.ToString(item["FSKBILLNO"]),
FCreated = Convert.ToInt32(item["FCreated_Id"]),
FSalesman = Convert.ToInt32(item["FSalesman_Id"]),
FType = Convert.ToString(item["FType"]),
FISHX = item["FISHX"]?.ToString(),
FWeiYi = item["FWeiYi"]?.ToString(),
}).ToList();
ReceiveBILLLIST = FEntity2.Select(item => new CombinaClass
{
FBIllNO = Convert.ToString(item["FBILLNO2"]),
FDate = Convert.ToString(item["FDate2"]),
FALLAMOUNT = Convert.ToDouble(item["F_MBBA_Decimal_imu"]),
FYAMOUNT = Convert.ToDouble(item["F_MBBA_Decimal_3iy"]),
FDAMOUNT = Convert.ToDouble(item["F_MBBA_Decimal_lsn"]),
FClient = Convert.ToInt32(item["FClient2_Id"]),
FCONTRACTNUMBER = item["FCONTRACTNUMBER2"]?.ToString(),
FRemark = Convert.ToString(item["FRemark"]),
FCreated = Convert.ToInt32(item["FCreated2_Id"]),
FSalesman = Convert.ToInt32(item["FSalesman2_Id"]),
FISHX = item["FISHX2"]?.ToString(),
FWeiYi = item["FWeiYi2"]?.ToString(),
}).ToList();
//获取纸质合同号
List<string> fString = new List<string>();
//修改销售订单/应收单
foreach (var item in stringFBILLNOANDList[0].FBILLNOList)
{
var item2 = SaleBILLLIS.FirstOrDefault(h=>h.FBIllNO==item.FBILLNO);
if (item2 != null)
{
SaleBILLLIS2.Add(item2);
item2.FSKBIllNO = stringFBILLNOANDList[0].FBILLNO;
fString.Add(item2.FCONTRACTNUMBER);
item2.FISHX = "已核销配对";
}
}
//获取纸质合同号
string fCONTRACTNUMBER = string.Join(",", fString);
//修改收款单
INDEXNumber = 1;
this.Model.SetValue("FCONTRACTNUMBER2", fCONTRACTNUMBER, fRow);
this.Model.SetValue("FISHX2", "已核销配对", fRow);
double sumAmount = 0;
int CurrentIndex2 = this.View.Model.GetEntryCurrentRowIndex("FEntity2");
var FROWID = Convert.ToString(this.View.Model.GetValue("FROWID", CurrentIndex2));
for (int i = 0; i < SaleBILLLIS2.Count; i++)
{
var Rowindex = this.View.Model.GetEntryRowCount("FEntity2");
this.View.Model.SetValue("FPARENTROWID", FROWID, CurrentIndex2);
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", SaleBILLLIS2[i].FBIllNO, Rowindex);
this.View.Model.SetValue("FDATE2", SaleBILLLIS2[i].FDate, Rowindex);
this.View.Model.SetValue("F_MBBA_Decimal_imu", SaleBILLLIS2[i].FALLAMOUNT, Rowindex);
this.View.Model.SetValue("FClient2", SaleBILLLIS2[i].FClient, Rowindex);
this.View.Model.SetValue("FCreated2", SaleBILLLIS2[i].FCreated, Rowindex);
this.View.Model.SetValue("FCONTRACTNUMBER2", SaleBILLLIS2[i].FCONTRACTNUMBER, Rowindex);
this.View.Model.SetValue("FSalesman2", SaleBILLLIS2[i].FSalesman, Rowindex);
this.View.UpdateView("FEntity2");
sumAmount += SaleBILLLIS2[i].FALLAMOUNT;
}
this.Model.SetValue("F_MBBA_Decimal_qtr", sumAmount, fRow);
//删除数据
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");
INDEXNumber = 0;
}
});
}
/// <summary>
/// 点击按钮操作
/// </summary>
/// <param name="e"></param>
public override void AfterBarItemClick(AfterBarItemClickEventArgs e)
{
base.AfterBarItemClick(e);
//自动匹配
if (e.BarItemKey.ToString().Equals("MBBA_tbButton_2"))
{
//#region 全部
//销售订单绑定数据
SaleBILLLIS = new List<CombinaClass>();
DynamicObjectCollection FEntity = this.View.Model.DataObject["FEntity"] as DynamicObjectCollection;
SaleBILLLIS = FEntity.Select(item => new CombinaClass
{
FBIllNO = Convert.ToString(item["FBILLNO"]),
FCONTRACTNUMBER = Convert.ToString(item["FCONTRACTNUMBER"]),
FClient = Convert.ToInt32(item["FClient_Id"]),
FDate = Convert.ToString(item["FDate"]),
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 = Convert.ToString(item["FSKBILLNO"]),
FCreated = Convert.ToInt32(item["FCreated_Id"]),
FSalesman = Convert.ToInt32(item["FSalesman_Id"]),
FType = Convert.ToString(item["FType"]),
FISHX = item["FISHX"]?.ToString(),
FWeiYi = item["FWeiYi"]?.ToString(),
}).ToList();
var SaleBILLLISNew = SaleBILLLIS.Where(a => a.FISHX != "已核销配对").ToList();
var ReceiveBILLLIST2 = new List<CombinaClass>();
//获取收款单单据体数据
DynamicObjectCollection FEntity2 = this.View.Model.DataObject["FEntity2"] as DynamicObjectCollection;
ReceiveBILLLIST2 = FEntity2.Select(item => new CombinaClass
{
FBIllNO = item["FBILLNO2"]?.ToString(),
FDate = item["FDate2"]?.ToString(),
FALLAMOUNT = Convert.ToDouble(item["F_MBBA_Decimal_imu"]),
FYAMOUNT = Convert.ToDouble(item["F_MBBA_Decimal_3iy"]),
FDAMOUNT = Convert.ToDouble(item["F_MBBA_Decimal_lsn"]),
FClient = Convert.ToInt32(item["FClient2_Id"]),
FCreated = Convert.ToInt32(item["FCreated2_Id"]),
FRemark = item["FRemark"]?.ToString(),
FSalesman = Convert.ToInt32(item["FSalesman2_Id"]),
FCONTRACTNUMBER = item["FCONTRACTNUMBER2"]?.ToString(),
FRow = Convert.ToInt32(item["Seq"]) - 1,
F_RowNew = Convert.ToInt32(item["F_RowNew"])
}).ToList();
//重置并只取父级树形数据
ReceiveBILLLIST = new List<CombinaClass>();
ReceiveBILLLIST = ReceiveBILLLIST2.Where(a => a.F_RowNew == 1 && a.FISHX != "已核销配对").OrderBy(t=>t.FClient).ThenBy(t=>t.FCONTRACTNUMBER).ThenBy(t=>t.FDate).ToList();
List<string> FBILLNOLIST = new List<string>();
List<int> FClient = new List<int>();
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();
//将销售订单根据客户分组
//var FClientList2 = SaleBILLLIS2Sal.GroupBy(t => t.FClient).ToList();
//var FClientReceiveBillList= ReceiveBILLLIST
Dictionary<string, double> shouKuanDetail = new Dictionary<string, double>();
//先挑1张收款单对应一张销售订单
var oneToOneTemp = (from q in SaleBILLLIS2Sal
join u in ReceiveBILLLIST on new { q.FClient, q.FDAMOUNT } equals new { u.FClient, u.FDAMOUNT }
select new { q.FClient, q.FBIllNO, q.FCONTRACTNUMBER, u.FDAMOUNT, UFbillNo = u.FBIllNO }).ToList();
var saleList1 = oneToOneTemp.Select(t => t.FBIllNO).Distinct().ToList();
var ReceiveList1 = oneToOneTemp.Select(t => t.UFbillNo).Distinct().ToList();
if (saleList1.Count > ReceiveList1.Count)
{
List<string> deleteFBIllNOList = new List<string>();
ReceiveList1.ForEach(t =>
{
var temp111 = oneToOneTemp.FirstOrDefault(h => h.UFbillNo == t && !deleteFBIllNOList.Contains(h.FBIllNO));
if (temp111 == null)
return;
var temp11 = temp111.FBIllNO;
deleteFBIllNOList.Add(temp11);
var item = SaleBILLLISNew.Where(h => h.FBIllNO == temp11).OrderBy(h=>h.FDate).FirstOrDefault();
//更新销售订单数据
item.FSKBIllNO = t;
item.FISHX = "已核销配对";
item.BenCi = temp111.FDAMOUNT;
item.FDAMOUNT = item.FDAMOUNT - item.BenCi;
shouKuanDetail.Add(t + "," + item.FBIllNO, item.BenCi);
//item.FYAMOUNT = item.FYAMOUNT + item.BenCi;
//item.=
List<string> fString = new List<string>();
fString.Add(item.FCONTRACTNUMBER);
string fCONTRACTNUMBER = string.Join(",", fString);
//更新收款单数据
var receiveItemTemp = ReceiveBILLLIST.FirstOrDefault(h => h.FBIllNO == t);
if (receiveItemTemp != null)
{
receiveItemTemp.FCONTRACTNUMBER = fCONTRACTNUMBER;
receiveItemTemp.FISHX = "已核销配对";
receiveItemTemp.BenCi = temp111.FDAMOUNT;
receiveItemTemp.FDAMOUNT = receiveItemTemp.FDAMOUNT - receiveItemTemp.BenCi;
//receiveItemTemp.FYAMOUNT = receiveItemTemp.FYAMOUNT + receiveItemTemp.BenCi;
}
});
}
else
{
List<string> deleteFBIllNOList = new List<string>();
saleList1.ForEach(t =>
{
var temp111 = oneToOneTemp.Where(h => h.FBIllNO == t && !deleteFBIllNOList.Contains(h.UFbillNo)).OrderBy(h=>h.UFbillNo).FirstOrDefault();
if (temp111 == null)
return;
var temp11 = temp111.UFbillNo;
deleteFBIllNOList.Add(temp11);
var item = SaleBILLLISNew.FirstOrDefault(h => h.FBIllNO == t);
//更新销售订单数据
item.FSKBIllNO = t;
item.FISHX = "已核销配对";
item.BenCi = temp111.FDAMOUNT;
item.FDAMOUNT = item.FDAMOUNT - item.BenCi;
//item.FYAMOUNT = item.FYAMOUNT + item.BenCi;
List<string> fString = new List<string>();
fString.Add(item.FCONTRACTNUMBER);
string fCONTRACTNUMBER = string.Join(",", fString);
//更新收款单数据
var receiveItemTemp = ReceiveBILLLIST.FirstOrDefault(h => h.FBIllNO == temp11);
if (receiveItemTemp != null)
{
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 != "已核销配对" && 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 && h.FISHX != "已核销配对" && t.FDAMOUNT > 0).OrderByDescending(h=>h.FBIllNO).ToList();
var FDAMOUNT = t.FDAMOUNT;
List<string> heTongList = new List<string>();
if (t.FCONTRACTNUMBER!=null)
heTongList = t.FCONTRACTNUMBER.Split(',').ToList().Distinct().ToList();
if(heTongList==null)
heTongList = new List<string>();
tempList.ForEach(sale =>
{
if (FDAMOUNT == 0)
{
return;
}
double benCi = 0;
List<string> str = new List<string>();
if (sale.FSKBIllNO != null)
str = sale.FSKBIllNO.Split(',').ToList();
if (str == null)
str = new List<string>();
str.Add(t.FBIllNO);
sale.FSKBIllNO = string.Join(",", str);
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;
}
//sale.FYAMOUNT = sale.FYAMOUNT + sale.BenCi;
heTongList.Add(sale.FCONTRACTNUMBER);
heTongList = heTongList.Distinct().ToList();
str = new List<string>();
if (t.FSKBIllNO != null)
str = t.FSKBIllNO.Split(',').ToList();
if (str == null)
str = new List<string>();
str.Add(sale.FBIllNO);
shouKuanDetail.Add(t.FBIllNO + "," + sale.FBIllNO, benCi);
FDAMOUNT = FDAMOUNT - sale.BenCi;
t.FDAMOUNT = t.FDAMOUNT - benCi;
//t.FYAMOUNT = t.FYAMOUNT + sale.BenCi;
t.BenCi = t.BenCi+benCi;
t.FCONTRACTNUMBER = string.Join(",", heTongList);
if(heTongList.Count==1)
t.FWeiYi = "是";
else
t.FWeiYi = "否";
if (t.FDAMOUNT == 0)
{
t.FISHX = "已核销配对";
}
});
});
#region
////1个销售订单对应多张收款单
//SaleBILLLIS2Sa2 = SaleBILLLISNew.Where(t => t.FISHX != "已核销配对").OrderBy(t => t.FClient).ThenBy(t => t.FCONTRACTNUMBER).ThenBy(t => t.FDate).ToList();
//ReceiveBILLLIST = ReceiveBILLLIST2.Where(a => a.F_RowNew == 1 && a.FISHX != "已核销配对").OrderBy(t => t.FClient).ThenBy(t => t.FDate).ToList();
//SaleBILLLIS2Sa2.ForEach(t =>
//{
// var tempList = ReceiveBILLLIST.Where(h => h.FClient == t.FClient && t.FDAMOUNT >= h.FDAMOUNT && h.FISHX != "已核销配对").OrderBy(h => h.FBIllNO).ToList();
// List<double> sales1 = new List<double> { t.FDAMOUNT };
// var payments2 = tempList.Select(k => k.FDAMOUNT).ToList();
// var matches = CombinationGenerator_yuyubo.MatchSalesAndPayments(sales1, payments2);
// var FDAMOUNT = t.FDAMOUNT;
// if (matches.Count > 0)
// {
// var FDAMOUNTList = matches[0].FirstOrDefault();
// tempList = tempList.Where(h => FDAMOUNTList.Contains(h.FDAMOUNT)).OrderBy(h => h.FDate).ToList();
// var fbillNoList = tempList.Select(h => h.FBIllNO).ToList();
// var ReceiveBILLLTempList = ReceiveBILLLIST.Where(h => fbillNoList.Contains(h.FBIllNO)).ToList();
// List<string> fString = new List<string>();
// ReceiveBILLLTempList.ForEach(item =>
// {
// //更新收款单数据
// if (FDAMOUNT > 0)
// {
// //item.FSKBIllNO = t.FBIllNO;
// item.FISHX = "已核销配对";
// item.FCONTRACTNUMBER = t.FCONTRACTNUMBER;
// fString.Add(item.FBIllNO);
// }
// });
// //更新销售订单数据
// t.FISHX = "已核销配对";
// string fCONTRACTNUMBER = string.Join(",", fString);
// //更新收款单数据
// t.FSKBIllNO = fCONTRACTNUMBER;
// }
//});
#endregion
#endregion
////删除数据
//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
//获取已配对的数据
List<CombinaClass> SaleBILLLISNew2 = SaleBILLLISNew.Where(a => a.FSKBIllNO !="" && a.FSKBIllNO != null).ToList();
INDEXNumber = 1;
//绑定收款单数据
foreach (var item in ReceiveBILLLIST)
{
if (!string.IsNullOrWhiteSpace(item.FCONTRACTNUMBER))
{
this.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.View.Model.SetValue("F_MBBA_Decimal_qtr", sumAmount, item.FRow);
this.View.Model.SetValue("F_PendingAmount", item.FDAMOUNT, item.FRow);
this.View.Model.SetValue("F_BenCi", item.BenCi, item.FRow);
this.View.Model.SetValue("F_MBBA_Decimal_3iy", item.FYAMOUNT, item.FRow);
List<string> strings = new List<string>();
if (item.FCONTRACTNUMBER != null)
strings = item.FCONTRACTNUMBER.Split(',').ToList();
var tempList2 = SaleBILLLISNew2.Where(h => strings.Contains(h.FCONTRACTNUMBER)).ToList();
var Rowindex = this.View.Model.GetEntryRowCount("FEntity2");
for (int i = 0; i < tempList2.Count; i++)
{
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))
{
this.View.Model.SetValue("FDate2", item?.FDate, Rowindex + i);
}
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("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);
}
}
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++)
{
entryGrid.ExpandedRow(i);
}
}
var FEndTime = DateTime.Now;
TimeSpan timeSpan = FEndTime - FStartTime;
this.View.ShowMessage(string.Format("匹配成功,匹配耗费时长为:{0}s", Math.Round(timeSpan.TotalMilliseconds / 1000)));
INDEXNumber = 0;
}
//生成核销记录单
if (e.BarItemKey.ToString().Equals("MBBA_tbButton_5"))
{
// 弹出确认框
View.ShowMessage("确定要生成核销记录单吗?", MessageBoxOptions.YesNo, result =>
{
if (result == MessageBoxResult.Yes)
{
#region
//存储销售订单/应收单
var fCombinaAddClass1 = new List<CombinaAddClass1>();
//存储收款单
var fCombinaAddSK = new List<CombinaAddSK>();
var FOrgId = this.Context.CurrentOrganizationInfo.ID;
string Message = string.Empty;
bool ErrMessage = false;
//获取销售订单/应收单单据体数据
DynamicObjectCollection FEntity = this.View.Model.DataObject["FEntity"] as DynamicObjectCollection;
//获取收款单单据体数据
DynamicObjectCollection FEntity2 = this.View.Model.DataObject["FEntity2"] as DynamicObjectCollection;
SaleBILLLIS = new List<CombinaClass>();
var ReceiveBILLLIST2 = new List<CombinaClass>();
ReceiveBILLLIST = new List<CombinaClass>();
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 FEntity2)
{
ReceiveBILLLIST2.Add(new CombinaClass()
{
FBIllNO = Convert.ToString(item["FBILLNO2"]),
FDate = Convert.ToString(item["FDate2"]),
FALLAMOUNT = Convert.ToDouble(item["F_MBBA_Decimal_imu"]),
FYAMOUNT = Convert.ToDouble(item["F_MBBA_Decimal_3iy"]),
FDAMOUNT = Convert.ToDouble(item["F_MBBA_Decimal_lsn"]),
FClient = Convert.ToInt32(item["FClient2_Id"]),
FCONTRACTNUMBER = item["FCONTRACTNUMBER2"]?.ToString(),
FRemark = Convert.ToString(item["FRemark"]),
FCreated = Convert.ToInt32(item["FCreated2_Id"]),
FSalesman = Convert.ToInt32(item["FSalesman2_Id"]),
FISHX = item["FISHX2"]?.ToString(),
FWeiYi = item["FWeiYi2"]?.ToString(),
FRow = Convert.ToInt32(item["Seq"]) - 1,
F_RowNew = Convert.ToInt32(item["F_RowNew"])
});
}
ReceiveBILLLIST = ReceiveBILLLIST2.Where(a => a.F_RowNew == 1 && a.FISHX == "已核销配对").ToList();
//循环收款单
foreach (var item in FEntity2)
{
var s1 = Convert.ToInt32(item["F_RowNew"]);
var s2 = item["F_ISHX"]?.ToString();
var s3 = string.IsNullOrWhiteSpace(item["FISHX2"]?.ToString());
var s4 = string.IsNullOrWhiteSpace(item["FWeiYi2"]?.ToString());
//创建对象存储
var SKList = new CombinaAddSK();
//过滤未匹对上的数据/过滤除了收款单1对1、1对多的数据
if (Convert.ToInt32(item["F_RowNew"]) == 1 && item["F_ISHX"]?.ToString() == "True" && !string.IsNullOrWhiteSpace(item["FISHX2"]?.ToString()) && string.IsNullOrWhiteSpace(item["FWeiYi2"]?.ToString()))
{
//获取纸质合同号
var stringSplit = (item["FCONTRACTNUMBER2"])?.ToString()?.Split(',');
//找到对应销售订单
foreach (var item2 in FEntity.Where(a => stringSplit.Contains(a["FCONTRACTNUMBER"])))
{
var nTestList = new CombinaAddClass1();
nTestList.FBIllNO = item2["FBILLNO"]?.ToString();
nTestList.FClient = Convert.ToInt32(item2["FClient_Id"]);
nTestList.FDate = item2["FDate"]?.ToString();
nTestList.FALLAMOUNT = Convert.ToDecimal(item2["F_MBBA_Decimal_emq"]);
nTestList.FCONTRACTNUMBER = item2["FCONTRACTNUMBER"]?.ToString();
nTestList.FType = item2["FTYPE"]?.ToString();
nTestList.FCreated = Convert.ToInt32(item2["FCreated_Id"]);
nTestList.FSalesman = Convert.ToInt32(item2["FSalesman_Id"]);
SKList.XSAPList.Add(nTestList);
}
SKList.FBIllNO = item["FBILLNO2"]?.ToString();
SKList.FCONTRACTNUMBER = item["FCONTRACTNUMBER2"]?.ToString();
SKList.FClient = Convert.ToInt32(item["FClient2_Id"]);
SKList.FDate = item["FDate2"]?.ToString();
SKList.FALLAMOUNT = Convert.ToDecimal(item["F_MBBA_Decimal_lsn"]);
SKList.FRemark = item["FRemark"]?.ToString();
SKList.FCreated = Convert.ToInt32(item["FCreated2_Id"]);
SKList.FSalesman = Convert.ToInt32(item["FSalesman2_Id"]);
fCombinaAddSK.Add(SKList);
}
}
//循环销售订单/应收单
foreach (var item in FEntity)
{
//创建对象存储
var SKList = new CombinaAddClass1();
//过滤未匹对上的数据/过滤不是唯一的数据
if (item["F_ISGX"]?.ToString() == "True" && !string.IsNullOrWhiteSpace(item["FISHX"]?.ToString()) && !string.IsNullOrWhiteSpace(item["FWeiYi"]?.ToString()))
{
//获取纸质合同号
var stringSplit = (item["FSKBILLNO"])?.ToString()?.Split(',');
//找到对应销售订单
foreach (var item2 in FEntity2.Where(a => stringSplit.Contains(a["FBILLNO2"])))
{
var nTestList = new CombinaAddSK();
nTestList.FBIllNO = item2["FBILLNO2"]?.ToString();
nTestList.FCONTRACTNUMBER = item2["FCONTRACTNUMBER2"]?.ToString();
nTestList.FClient = Convert.ToInt32(item2["FClient2_Id"]);
nTestList.FDate = item2["FDate2"]?.ToString();
nTestList.FALLAMOUNT = Convert.ToDecimal(item2["F_MBBA_Decimal_lsn"]);
nTestList.FRemark = item2["FRemark"]?.ToString();
nTestList.FSalesman = Convert.ToInt32(item2["FSalesman2_Id"]);
nTestList.FCreated = Convert.ToInt32(item2["FCreated2_Id"]);
SKList.SKList.Add(nTestList);
}
SKList.FBIllNO = item["FBILLNO"]?.ToString();
SKList.FClient = Convert.ToInt32(item["FClient_Id"]);
SKList.FDate = item["FDate"]?.ToString();
SKList.FALLAMOUNT = Convert.ToDecimal(item["F_MBBA_Decimal_emq"]);
SKList.FCONTRACTNUMBER = item["FCONTRACTNUMBER"]?.ToString();
SKList.FType = item["FType"]?.ToString();
SKList.FCreated = Convert.ToInt32(item["FCreated_Id"]);
SKList.FSalesman = Convert.ToInt32(item["FSalesman_Id"]);
fCombinaAddClass1.Add(SKList);
}
}
#endregion
if (fCombinaAddClass1.Count == 0 && fCombinaAddSK.Count == 0)
{
this.View.ShowWarnningMessage("未选择核销数据!");
return;
}
//用于存储生成成功的收款单
List<string> strings1 = new List<string>();
//用于存储生成成功的销售订单
List<string> strings2 = new List<string>();
int ISXSNUM = 0;
//循环收款单/新增核销记录
foreach (var item in fCombinaAddSK)
{
//获取销售订单/应收单
var list = item.XSAPList;
//汇总金额
var Amount = list.Sum(a => a.FALLAMOUNT);
//应收单/销售订单判断字段
int isTrue1 = list.GroupBy(t => t.FType).Count();
//收款单/销售订单-应收单判断客户字段
int isTrue2 = list.GroupBy(t => t.FClient).Count();
//判断是否存在应收单跟销售订单汇总核销
if (isTrue1 > 1)
{
ErrMessage = true;
Message = Message + string.Format("收款单号:'{0}'存在销售订单与应收单合并核销的记录,不允许核销\r\n", item.FBIllNO);
continue;
}
//判断是否是同一个客户
else if (isTrue2 > 1 || item.FClient != list[0].FClient)
{
ErrMessage = true;
Message = Message + string.Format("收款单号:'{0}'配对的(销售订单/应收单)的客户不一致,不允许核销\r\n", item.FBIllNO);
continue;
}
//判断是否存在两个销售订单/应收单汇总核销(不能小于汇总数)
else if (list.Count > 1 && item.FALLAMOUNT < Amount)
{
ErrMessage = true;
Message = Message + string.Format("收款单号:'{0}'的核销金额小于多个(销售订单/应收单)的核销金额,不允许核销\r\n", item.FBIllNO);
continue;
}
else
{
//创建核销记录单
string FBILLNO = CommonHelper.CreateAutoWrireRecord2(this.Context, Convert.ToString(FOrgId), item.XSAPList, item);
Message = Message + string.Format("生成核销记录单成功,单号为:'{0}'\r\n", FBILLNO);
strings1.Add(item.FCONTRACTNUMBER);
ISXSNUM++;
}
}
//循环(销售订单/应收单)/新增核销记录
foreach (var item in fCombinaAddClass1)
{
//获取收款单
var list = item.SKList;
//汇总金额
var Amount = list.Sum(a => a.FALLAMOUNT);
//收款单/销售订单-应收单判断客户字段
int isTrue2 = list.GroupBy(t => t.FClient).Count();
//判断是否是同一个客户
if (isTrue2 > 1 || item.FClient != list[0].FClient)
{
ErrMessage = true;
Message = Message + string.Format("(销售订单/应收单)号:'{0}'配对的收款打那的客户不一致,不允许核销\r\n", item.FBIllNO);
continue;
}
//判断是否存在两个销售订单/应收单汇总核销(不能小于汇总数)
else if (list.Count > 1 && item.FALLAMOUNT < Amount)
{
ErrMessage = true;
Message = Message + string.Format("(销售订单/应收单)号:'{0}'的核销金额小于多个收款单的核销金额,不允许核销\r\n", item.FBIllNO);
continue;
}
else
{
//创建核销记录单
strings2.Add(item.FBIllNO);
strings1.Add(item.FCONTRACTNUMBER);
//创建核销记录单
string FBILLNO = CommonHelper.CreateAutoWrireRecord3(this.Context, Convert.ToString(FOrgId), item, item.SKList);
Message = Message + string.Format("生成核销记录单成功,单号为:'{0}'\r\n", FBILLNO);
ISXSNUM++;
}
}
if (!ErrMessage)
{
this.View.ShowMessage(Message);
}
else
{
this.View.ShowErrMessage(Message);
}
//如果存在生成成功的、也有生成失败的不走刷新功能直接将成功的单据体数据删除!
List<CombinaClass> SaleBILLLIStext = new List<CombinaClass>();
foreach (var item in SaleBILLLIS)
{
if (strings2.Contains(item?.FBIllNO) || strings1.Contains(item?.FCONTRACTNUMBER))
{
SaleBILLLIStext.Add(item);
}
}
foreach (var item in SaleBILLLIStext)
{
SaleBILLLIS.Remove(item);
}
if (ISXSNUM == 1)
{
//删除只有一条数据的收款单
foreach (var item in strings1)
{
for (int i = 0; i < ReceiveBILLLIST.Count; i++)
{
if (ReceiveBILLLIST[i]?.FCONTRACTNUMBER == item?.ToString())
{
this.Model.DeleteEntryRow("FEntity2", ReceiveBILLLIST[i].FRow);
}
}
}
//删除数据
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");
}
else
{
this.Model.SetValue("FShuaXin", "需要更新");
}
}
else
{
return;
}
});
}
}
/// <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"))
{
if (INDEXNumber == 0)
{
//获取销售订单/应收单单据体数据
DynamicObjectCollection FEntity = this.View.Model.DataObject["FEntity"] as DynamicObjectCollection;
SaleBILLLIS = new List<CombinaClass>();
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);
//判断是否为空
if (string.IsNullOrWhiteSpace(fCONTRACTNUMBER?.ToString()))
{
this.Model.SetValue("FISHX2", "", e.Row);
this.Model.SetValue("F_MBBA_Decimal_qtr", 0, e.Row);
//获取当前的父id
var fPARENTROWID = this.Model.GetValue("FPARENTROWID", e.Row)?.ToString();
DynamicObjectCollection FEntity2 = this.View.Model.DataObject["FEntity2"] as DynamicObjectCollection;
//获取行数
List<int> ints = new List<int>();
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]);
}
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<string> strings1 = new List<string>(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");
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)
{
//查看是否为唯一
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);
}
}
}
}
}
}
}
public enum ENUM_ROWTYPE : int
{
Default = 0,
Header = 1,/// 0000 0000 0001表头类型数据行 
Normal = 16,///0000 0001 0000普通数据行
Expand = 32,///0000 0010 0000包含展开控件数据行
ExpandWaiting = 64,///0000 0100 0000包含展开等待数据请求行
Summary = 128///0001 0000 000汇总类型数据行 
}
}
}