This commit is contained in:
2025-04-24 14:01:46 +08:00
parent 37b23a2eaa
commit 3076efb620
4 changed files with 163 additions and 504 deletions

View File

@@ -466,6 +466,7 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire
Dictionary<string, double> shouKuanDetail = new Dictionary<string, double>();
//先挑1张收款单对应一张销售订单
//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();
@@ -546,6 +547,94 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire
});
}
//2、收款单的待核销金额与订单的待最近30天发货通知单金额(除了医院客户)
var SaleBILLLIS2Sa222 = 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();
var oneToOneTemp2 = (from q in SaleBILLLIS2Sa222
join u in ReceiveBILLLIST on new { q.FClient, FDAMOUNT= q.FaHuoAmount30Days } equals new { u.FClient, u.FDAMOUNT }
select new { q.FClient, q.FBIllNO, q.FCONTRACTNUMBER, u.FDAMOUNT, UFbillNo = u.FBIllNO }).ToList();
//var dasdsas = oneToOneTemp.Where(h => h.FBIllNO == "PL-XSDD20250400471").FirstOrDefault();
var saleList22 = oneToOneTemp2.Select(t => t.FBIllNO).Distinct().ToList();
var ReceiveList22 = oneToOneTemp2.Select(t => t.UFbillNo).Distinct().ToList();
if (saleList22.Count > ReceiveList22.Count)
{
List<string> deleteFBIllNOList = new List<string>();
ReceiveList22.ForEach(t =>
{
var temp111 = oneToOneTemp2.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>();
saleList22.ForEach(t =>
{
var temp111 = oneToOneTemp2.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);
}
});
}
//3、收款单的待核销金额与订单的待最近30天开票金额(只有医院客户)
//先挑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();
@@ -702,16 +791,11 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire
#endregion
////删除数据
//this.View.Model.DeleteEntryData("FEntity");
#endregion
//获取已配对的数据
List<CombinaClass> SaleBILLLISNew2 = SaleBILLLISNew.Where(a => a.FSKBIllNO != "" && a.FSKBIllNO != null).ToList();
INDEXNumber = 1;
INDEXNumber = 1;
//绑定收款单数据
foreach (var item in ReceiveBILLLIST2)
@@ -774,20 +858,28 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire
}
this.View.UpdateView("FEntity2");
TreeEntryGrid entryGrid = this.View.GetControl("FEntity2") as TreeEntryGrid;
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();
foreach (var item in list)
{
entryGrid.ExpandedRow(int.Parse(item["SEQ"].ToString()) - 1);
}
//for (int i = 0; i < entryGrid2.Count; i++)
//{
// entryGrid.ExpandedRow(i);
//}
}
//处理树形表单的样式
//TreeEntryGrid entryGrid = this.View.GetControl("FEntity2") as TreeEntryGrid;
//DynamicObjectCollection entryGrid2 = this.View.Model.DataObject["FEntity2"] as DynamicObjectCollection;
//if (entryGrid != null)
//{
// var entityKey = "FEntity2";
// var grid = this.View.GetControl<EntryGrid>(entityKey);
// 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);
// var backColor = "#ead1dc";
// // 常规操作是直接使用grid.SetRowBackcolor函数如果不生效可以尝试用自定义封装的GridSetRowBackcolor函数
// GridSetRowBackcolor(this.View, entityKey, backColor, int.Parse(item["SEQ"].ToString()) - 1);
// //grid.SetRowBackcolor(backColor, int.Parse(item["SEQ"].ToString()) - 1);
// }
//}
var FEndTime = DateTime.Now;
TimeSpan timeSpan = FEndTime - FStartTime;
@@ -1385,6 +1477,8 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire
F_Ordercategory2 = Convert.ToString(item["F_Ordercategory2"]),
F_Ordercategory = Convert.ToString(item["F_Ordercategory"]),
FInvoiceAmount = Convert.ToDecimal(item["FInvoiceAmount"]),
FaHuoAmount30Days = Convert.ToDouble(item["FaHuoAmount30Days"]),
FInvoiceAmount30Days = Convert.ToDouble(item["FInvoiceAmount30Days"]),
}).ToList();
@@ -1399,7 +1493,7 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire
FClient = Convert.ToInt32(item["FCONTACTUNIT"]),
FCreated = Convert.ToInt32(item["FCREATORID"]),
FRemark = Convert.ToString(item["FREMARK"]),
FSalesman = Convert.ToInt32(item["FSALEERID"]),
FSalesman = Convert.ToInt32(item["FSALEERID"]),
F_RowNew = 1,
BenCi = 0,
}).ToList();
@@ -1491,38 +1585,38 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire
///// <summary>
/// <summary>
///// 设置表格背景色
/// 设置表格背景色
///// </summary>
/// </summary>
///// <param name="view">当前动态表单的View层接口</param>
/// <param name="view">当前动态表单的View层接口</param>
///// <param name="entityKey">单据体的标识</param>
/// <param name="entityKey">单据体的标识</param>
///// <param name="color">颜色代码</param>
/// <param name="color">颜色代码</param>
///// <param name="rowIndex">要设置颜色的数据行的行索引</param>
/// <param name="rowIndex">要设置颜色的数据行的行索引</param>
//private static void GridSetRowBackcolor(IDynamicFormView view, string entityKey, string color, int rowIndex)
private static void GridSetRowBackcolor(IDynamicFormView view, string entityKey, string color, int rowIndex)
//{
{
// var value = new JSONObject();
var value = new JSONObject();
// value[rowIndex.ToString()] = color;
value[rowIndex.ToString()] = color;
// var jo = new JSONObject();
var jo = new JSONObject();
// jo["backcolor"] = value;
jo["backcolor"] = value;
// var grid = view.GetControl<EntryGrid>(entityKey);
var grid = view.GetControl<EntryGrid>(entityKey);
// var formState = view.GetService<IDynamicFormState>();
var formState = view.GetService<IDynamicFormState>();
// formState.AftInvokeControlMethod(grid.ControlAppearance, "UpdateFieldStates", jo);
formState.AftInvokeControlMethod(grid.ControlAppearance, "UpdateFieldStates", jo);
//}
}
}
}