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);
// 销售订单累计开票金额(本币)