From 9bb3fb4696b23b1a21097321c8cccd694cfac1e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=96=8C=20=E6=9C=B1?= <1324361213@qq.com> Date: Mon, 27 Oct 2025 23:51:36 +0800 Subject: [PATCH] 0 --- Services/SaleOrderService.cs | 10 +++++++++- T_IV_SALESIC/ServicePlugIn/Submit.cs | 17 +++++++++++++---- 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/Services/SaleOrderService.cs b/Services/SaleOrderService.cs index bad8f96..986ee8b 100644 --- a/Services/SaleOrderService.cs +++ b/Services/SaleOrderService.cs @@ -336,9 +336,16 @@ WHERE /// /// /// + /// /// - internal decimal GetSubmitedAmount(string orgId, string contractNo) + internal decimal GetSubmitedAmount(string orgId, string contractNo, List billIds) { + var billIdFilter = string.Empty; + if (billIds != null && billIds.Count > 0) + { + var billIdString = string.Join(",", billIds.Select(n => "'" + n + "'")); + billIdFilter = $@" AND t1.FID NOT IN ({billIdString}) "; + } var sqlTemp = $@"/*dialect*/SELECT ISNULL (SUM(t1e_O.FALLAMOUNT), 0) AS SubmitAmount FROM @@ -350,6 +357,7 @@ WHERE AND t1.FDOCUMENTSTATUS = 'B' AND t1e.F_CONTRACTNO = '{contractNo}' AND t1.FSALEORGID = '{orgId}' + {billIdFilter} "; var sql = string.Format(sqlTemp, orgId, contractNo); var result = DBServiceHelper.ExecuteDynamicObject(ctx, sql); diff --git a/T_IV_SALESIC/ServicePlugIn/Submit.cs b/T_IV_SALESIC/ServicePlugIn/Submit.cs index e403c26..f2ee726 100644 --- a/T_IV_SALESIC/ServicePlugIn/Submit.cs +++ b/T_IV_SALESIC/ServicePlugIn/Submit.cs @@ -39,6 +39,11 @@ namespace GZ_LTHPilot_ORDER.T_IV_SALESIC.ServicePlugIn /// 价税合计原币 /// public decimal AllAmountFor { get; set; } + + /// + /// 单据Id + /// + public string BillId { get; set; } } @@ -48,6 +53,7 @@ namespace GZ_LTHPilot_ORDER.T_IV_SALESIC.ServicePlugIn var entryListUnion = new List(); foreach (var bill in e.SelectedRows) { + var billId = bill["Id"].ToString(); var org = bill["SALEORGID"] as DynamicObject; var orgId = org["Id"].ToString(); // 销售组织 var entryList = bill["SALESICENTRY"] as DynamicObjectCollection; @@ -56,6 +62,7 @@ namespace GZ_LTHPilot_ORDER.T_IV_SALESIC.ServicePlugIn { entryListUnion.Add(new SALESIC() { + BillId = billId, OrgId = orgId, ContractNo = item["F_contractno"].ToString(), AllAmountFor = Convert.ToDecimal(item["ALLAMOUNTFOR"]) @@ -84,8 +91,9 @@ namespace GZ_LTHPilot_ORDER.T_IV_SALESIC.ServicePlugIn } // 发票单体价税合计原币 var SumALLAMOUNTFOR = item.Sum(n => n.AllAmountFor); + var billIds = item.Select(n => n.BillId).ToList(); // TODO 校验是否超额 - var verifResult = ExcessVerification(orgId, contractNo, SumALLAMOUNTFOR); + var verifResult = ExcessVerification(orgId, contractNo, SumALLAMOUNTFOR, billIds); if (verifResult != null) { //有错误信息 @@ -123,7 +131,7 @@ namespace GZ_LTHPilot_ORDER.T_IV_SALESIC.ServicePlugIn return null; } // 校验源单是否超额 - var srcVerifResult = ExcessVerification(orgId, srcContractNo, 0); + var srcVerifResult = ExcessVerification(orgId, srcContractNo, 0, null); if (srcVerifResult != null) { return srcVerifResult; @@ -139,8 +147,9 @@ namespace GZ_LTHPilot_ORDER.T_IV_SALESIC.ServicePlugIn /// 销售组织 /// 合同号 /// 开票金额 + /// 本次操作单据ID /// - private OperateResult ExcessVerification(string orgId, string contractNo, decimal amount) + private OperateResult ExcessVerification(string orgId, string contractNo, decimal amount, List billIds) { // 销售订单服务 var saleOrderService = new SaleOrderService(this.Context); @@ -154,7 +163,7 @@ namespace GZ_LTHPilot_ORDER.T_IV_SALESIC.ServicePlugIn var saleOrderNoString = string.Join(",\n\r", saleOrderNoList); var saleOrder = saleOrderList[0]; // 已提交发票金额(本币) - var submitedAmount = saleOrderService.GetSubmitedAmount(orgId, contractNo); + var submitedAmount = saleOrderService.GetSubmitedAmount(orgId, contractNo, billIds); // 销售订单价税合计(本币) var saleOrderAmount = saleOrderService.GetSaleOrderAmount(orgId, contractNo); // 销售订单累计开票金额(本币)