--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'