From 7315404327ec12738bf4c7a1960bfd9f5ca2eab7 Mon Sep 17 00:00:00 2001 From: yuyubo <1870149533@qq.com> Date: Mon, 4 Aug 2025 20:38:33 +0800 Subject: [PATCH] 11 --- .../QPHY_AutoWrireRecord/HeXiaoJiLuSave.cs | 35 +++++++++++++++++++ .../Sal_Order/PushSaleOutBillPlugIn.cs | 8 ++--- 2 files changed, 39 insertions(+), 4 deletions(-) diff --git a/Pilot_KD_Parino/QPHY_AutoWrireRecord/HeXiaoJiLuSave.cs b/Pilot_KD_Parino/QPHY_AutoWrireRecord/HeXiaoJiLuSave.cs index 2aeb28b..9c9016a 100644 --- a/Pilot_KD_Parino/QPHY_AutoWrireRecord/HeXiaoJiLuSave.cs +++ b/Pilot_KD_Parino/QPHY_AutoWrireRecord/HeXiaoJiLuSave.cs @@ -4,6 +4,7 @@ using Kingdee.BOS.Core.DynamicForm.PlugIn; using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; using Kingdee.BOS.Log; using Kingdee.BOS.Orm.DataEntity; +using Kingdee.BOS.ServiceHelper; using Kingdee.BOS.Util; using Pilot_KD_Parino.Common; using System; @@ -29,10 +30,44 @@ namespace Pilot_KD_Parino.QPHY_AutoWrireRecord var amount1 = list1.Sum(t => decimal.Parse(t["FALLAMOUNT22"]?.ToString())); var amount2 = list2.Sum(t => decimal.Parse(t["FALLAMOUNT33"]?.ToString())); //throw new KDBusinessException("", $@"销售单明细本次核销合计金额{amount1},收款单明细本次核销合计金额{amount2},{amount1}不等于{amount2},不允许保存"); + + + if (amount1 != amount2) { throw new KDBusinessException("", $@"销售单明细本次核销合计金额{amount1.ToString("F2")},收款单明细本次核销合计金额{amount2.ToString("F2")},{amount1.ToString("F2")}不等于{amount2.ToString("F2")},不允许保存"); } + + + var billList = list1.Select(t => t["FBILLNO2"]).ToList(); + string bill = string.Join("','",billList); + string sql = $@"/*dialect*/ SELECT a.FBILLNO,(b.FBillAllAmount- isnull(a.F_AMOUNT,0)) as F_AMOUNT FROM dbo.T_SAL_ORDER a + LEFT JOIN dbo.T_SAL_ORDERFIN b ON a.FID=b.FID + WHERE a.FBILLNO in ('{bill}') "; + var data = DBServiceHelper.ExecuteDynamicObject(this.Context, sql); + var one1 = (from q in data + join b in list1 on q["FBILLNO"].ToString() equals b["FBILLNO2"].ToString() + where decimal.Parse(b["FALLAMOUNT22"]?.ToString()) != decimal.Parse(q["F_AMOUNT"]?.ToString()) + select q["FBILLNO"]).ToList(); + if (one1.Count > 0) + { + throw new KDBusinessException("",$@"销售订单编号{string.Join(",", one1)} 核销金额+已核销金额 大于 订单总金额 "); + } + + billList = list2.Select(t => t["FBILLNO3"]).ToList(); + bill = string.Join("','", billList); + sql = $@"/*dialect*/SELECT a.FBILLNO,(a.FRECAMOUNTFOR-a.F_AMOUNT) as F_AMOUNT FROM dbo.T_AR_RECEIVEBILL a + WHERE a.FBILLNO in ('{bill}') "; + data = DBServiceHelper.ExecuteDynamicObject(this.Context, sql); + + one1 = (from q in data + join b in list2 on q["FBILLNO"].ToString() equals b["FBILLNO3"].ToString() + where decimal.Parse(b["FALLAMOUNT33"]?.ToString()) != decimal.Parse(q["F_AMOUNT"]?.ToString()) + select q["FBILLNO"]).ToList(); + if (one1.Count > 0) + { + throw new KDBusinessException("", $@"收款单编号{string.Join(",", one1)} 核销金额+已核销金额 大于 订单总金额 "); + } //// 保存前,提前填充主键数据 //var seqReader = new SequenceReader(this.Context); //seqReader.AutoSetPrimaryKey(e.DataEntities, e.DataEntities[0].DynamicObjectType); diff --git a/Pilot_KD_Parino/Sal_Order/PushSaleOutBillPlugIn.cs b/Pilot_KD_Parino/Sal_Order/PushSaleOutBillPlugIn.cs index 477e183..36f903e 100644 --- a/Pilot_KD_Parino/Sal_Order/PushSaleOutBillPlugIn.cs +++ b/Pilot_KD_Parino/Sal_Order/PushSaleOutBillPlugIn.cs @@ -205,8 +205,8 @@ namespace Pilot_KD_Parino.Sal_Order { if (nextOrderId > 0) { - nextOrderId = IfNeedPush("STK_InStock", fid); - if (nextOrderId == 0) + var tempNextOrderId = IfNeedPush("STK_InStock", fid); + if (tempNextOrderId == 0) { tuiName += "采购入库单 "; result = Invoke("PUR_ReceiveBill", "STK_InStock", nextOrderId.ToString(), "a1ff32276cd9469dad3bf2494366fa4f", ref stockId, "采购入库单"); @@ -1050,7 +1050,7 @@ namespace Pilot_KD_Parino.Sal_Order if (target == "PUR_ReceiveBill") { Sql = $@"/*dialect*/SELECT fid,[FDOCUMENTSTATUS],[FBILLNO] FROM dbo.T_PUR_RECEIVE - WHERE fid in ({fid}) "; + WHERE fid in ({fid}) order by fid desc "; data = DBServiceHelper.ExecuteDynamicObject(this.Context, Sql, null, null, CommandType.Text, null); if (data != null && data.Count > 0) { @@ -1070,7 +1070,7 @@ namespace Pilot_KD_Parino.Sal_Order else if (target == "STK_InStock") { Sql = $@"/*dialect*/SELECT fid,[FDOCUMENTSTATUS],[FBILLNO] FROM dbo.T_STK_INSTOCK - WHERE fid in ({fid}) "; + WHERE fid in ({fid}) order by fid desc "; data = DBServiceHelper.ExecuteDynamicObject(this.Context, Sql, null, null, CommandType.Text, null); if (data != null && data.Count > 0) {