This commit is contained in:
liangjunyu
2025-07-29 16:21:49 +08:00
parent cddce3f0b6
commit 21e7f3f45e

View File

@@ -44,7 +44,7 @@ def BeforeDoSaveExecute(e):
if entity["SaleOrgId_Id"] != 100303:
continue;
if entity["DocumentStatus"] != "Z" and entity["DocumentStatus"] != "C":
if entity["DocumentStatus"] != "Z" and entity["DocumentStatus"] != "C" and entity["DocumentStatus"] != "D":
continue;
billId = entity["Id"]
@@ -62,10 +62,10 @@ def BeforeDoSaveExecute(e):
continue;
sql = """/*dialect*/
SELECT SUM(t0.F_Amount) '累计核销金额',SUM(t0p.FRECADVANCEAMOUNT) '款到发货应收金额',SUM(t0p.CountTotal) '收款计划条数',SUM(ISNULL(t1.FALLAMOUNT,0)) '累计已发货金额'
SELECT SUM(t0.F_Amount) '累计核销金额',SUM(ISNULL(t0p.FRECADVANCEAMOUNT,0)) '款到发货应收金额',SUM(ISNULL(t0p.收款计划条数,0)) '收款计划条数',SUM(ISNULL(t1.FALLAMOUNT,0)) '累计已发货金额'
FROM T_SAL_ORDER t0
CROSS APPLY (
SELECT SUM(t0p.FRECADVANCEAMOUNT) 'FRECADVANCEAMOUNT',COUNT(1) 'CountTotal'
OUTER APPLY (
SELECT SUM(t0p.FRECADVANCEAMOUNT) 'FRECADVANCEAMOUNT',COUNT(1) '收款计划条数'
FROM T_SAL_ORDERPLAN t0p
INNER JOIN T_BD_RECCONDITION_L t1_l on t1_l.FID = t0p.F_RECCONDITIONID
AND t1_l.FLOCALEID = 2052 AND CHARINDEX('款到发货',t1_l.FNAME) = 1
@@ -85,11 +85,19 @@ WHERE t0.FID IN ({0})
item = res[0]
if entity["SAL_DELIVERYNOTICEFIN"] != None and entity["SAL_DELIVERYNOTICEFIN"].Count > 0:
# 本次发货价税合计
currAmount = entity["SAL_DELIVERYNOTICEFIN"][0]["BillAllAmount"]
# raise Exception(str(currAmount))
isYFHFlag = item["累计核销金额"] < item["款到发货应收金额"]
isYFHFlag1 = isYFHFlag == True and (item["收款计划条数"] == 1)
isYFHFlag2 = isYFHFlag == True and (True if isYFHFlag1 else ((item["累计核销金额"] - item["累计已发货金额"]) < currAmount))
entity["F_SFYFH"] = '' if isYFHFlag2 == True else ''
# 累计核销金额
sumAmount = item["累计核销金额"]
# 款到发货应收金额
sumArAmount = item["款到发货应收金额"]
# 累计已发货金额
sumOutAmount = item["累计已发货金额"]
countPlan = item["收款计划条数"]
flag01 = sumAmount >= sumArAmount
flag02 = ((sumOutAmount + currAmount) <= sumAmount and (sumOutAmount + currAmount) <= sumArAmount)
flag03 = countPlan > 0 and (sumOutAmount + currAmount) > sumAmount and sumAmount < sumArAmount
entity["F_SFYFH"] = '' if flag01 == False and flag02 == False and flag03 == True else ''
return;