Pilot_KD_Parino_yuyubo/更新核销金额.sql
2025-08-27 11:56:27 +08:00

103 lines
3.7 KiB
Transact-SQL
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

--UpdateSalOrderAmount
--Select * From T_TempModelPath
--Insert into T_TempModelPath Values('SX-1','D:\模板\SX系统模板含调试.docx'),('SX-2','D:\模板\SX系统模板不含调试.docx')
--Update T_TempModelPath Set FTempPath = 'D:\模板\SX系统模板不含调试.docx' Where FKeyId = 'SX-2';
go
--sp_helptext UpdateSalOrderAmount
Alter proc UpdateSalOrderAmount
(
@fid BIGINT
)
AS
BEGIN
--修改销售订单累计核销金额
UPDATE T_AutoWrireRecordEntry SET FALLAMOUNT2=FALLAMOUNT22
WHERE fid=@fid
UPDATE T_AutoWrireRecordEntry2 SET FALLAMOUNT3=FALLAMOUNT33,FCONTRACTNUMBER2=(SELECT STRING_AGG(FCONTRACTNUMBER,',') FROM T_AutoWrireRecordEntry WHERE fid= T_AutoWrireRecordEntry2.FID)
WHERE fid=@fid
DECLARE @custID1 INT=0,@cusId2 INT=0,@custIDcount INT =0;
SELECT @custID1=a.FCustId FROM dbo.T_SAL_ORDER a
LEFT JOIN T_AutoWrireRecordEntry b ON a.FBILLNO=b.FBILLNO2
WHERE b.fid=@fid
SELECT @custIDcount=COUNT(DISTINCT a.FCustId ) FROM dbo.T_SAL_ORDER a
LEFT JOIN T_AutoWrireRecordEntry b ON a.FBILLNO=b.FBILLNO2
WHERE b.fid=@fid
SELECT @cusId2=a.FCONTACTUNIT FROM dbo.T_AR_RECEIVEBILL a
LEFT JOIN T_AutoWrireRecordEntry2 b ON a.FBILLNO=b.FBILLNO3
WHERE b.fid=@fid
IF(@custID1 >0 AND @cusId2 >0 and @custID1 !=@cusId2 OR @custIDcount >1)
begin
UPDATE T_AutoWrireRecord SET F_KUAKEHU='' WHERE FID=@fid
update T_AutoWrireRecord SET F_YeWuDate=FCreateDate
WHERE T_AutoWrireRecord.FID=@fid AND F_YeWuDate IS NULL
end
ELSE
begin
UPDATE T_AutoWrireRecord SET F_KUAKEHU='' WHERE FID=@fid
UPDATE T_AutoWrireRecord SET F_YeWuDate=b.FDATE3
FROM T_AutoWrireRecordEntry2 b
WHERE T_AutoWrireRecord.FID=@fid AND F_YeWuDate IS NULL AND b.FID=T_AutoWrireRecord.FID
END
UPDATE C SET F_Amount =c.F_Amount+ISNULL( d.核销金额,0)
FROM T_AutoWrireRecord A
INNER JOIN T_AutoWrireRecordEntry B ON A.FID = B.FID
INNER JOIN T_SAL_ORDER C ON C.FBILLNO = B.FBILLNO2
LEFT JOIN
(
SELECT FBILLNO2,SUM(CONVERT(DECIMAL(18,2), FALLAMOUNT2)) AS '核销金额' FROM T_AutoWrireRecord Aa
INNER JOIN T_AutoWrireRecordEntry B ON Aa.FID = B.FID
WHERE Aa.FID =@FID
GROUP BY B.FBILLNO2
) d ON d.FBILLNO2 =b.FBILLNO2
WHERE a.FID =@FID ;
--修改应收单累计核销金额
UPDATE C SET F_Amount =c.F_Amount+ISNULL( d.核销金额,0)
FROM T_AutoWrireRecord A
INNER JOIN T_AutoWrireRecordEntry B ON A.FID = B.FID
INNER JOIN T_AR_RECEIVABLE C ON C.FBILLNO = B.FBILLNO2
LEFT JOIN
(
SELECT FBILLNO2,SUM(CONVERT(DECIMAL(18,2), FALLAMOUNT2)) AS '核销金额' FROM T_AutoWrireRecord Aa
INNER JOIN T_AutoWrireRecordEntry B ON Aa.FID = B.FID
WHERE Aa.FID =@FID
GROUP BY B.FBILLNO2
) d ON d.FBILLNO2 =b.FBILLNO2
WHERE a.FID =@FID ;
--修改收款单累计核销金额
UPDATE C SET F_Amount =c.F_Amount+ISNULL( d.核销金额,0) ,C.F_CONTRACTNUMBER=CASE WHEN C.F_CONTRACTNUMBER ='' THEN b.FCONTRACTNUMBER2 ELSE C.F_CONTRACTNUMBER +';'+ b.FCONTRACTNUMBER2 END
FROM T_AutoWrireRecord A
INNER JOIN T_AutoWrireRecordEntry2 B ON A.FID = B.FID
INNER JOIN T_AR_RECEIVEBILL C ON C.FBILLNO = B.FBILLNO3
LEFT JOIN
(
SELECT FBILLNO3,SUM(CONVERT(DECIMAL(18,2), FALLAMOUNT3)) AS '核销金额' FROM T_AutoWrireRecord Aa
INNER JOIN T_AutoWrireRecordEntry2 B ON Aa.FID = B.FID
WHERE Aa.FID =@FID
GROUP BY B.FBILLNO3
) d ON d.FBILLNO3 =b.FBILLNO3
WHERE a.FID =@FID ;
end
--SKD00000003
--SELECT FBILLNO3,SUM(CONVERT(decimal(18,2), FALLAMOUNT3)) AS '核销金额' FROM T_AutoWrireRecord A
-- INNER JOIN T_AutoWrireRecordEntry2 B ON A.FID = B.FID
-- WHERE A.FDOCUMENTSTATUS = 'C'
-- GROUP BY B.FBILLNO3
go
--Select * From T_SAL_ORDER Where FBILLNO = 'PL-XSDD20250200007'
--Update T_SAL_ORDER Set FDOCUMENTSTATUS = 'D' Where FBILLNO = 'PL-XSDD20250200007'