From 4679f5bc579499588aeaf112c68c1d4a01214240 Mon Sep 17 00:00:00 2001 From: yuyubo <1870149533@qq.com> Date: Thu, 14 Aug 2025 11:22:33 +0800 Subject: [PATCH] 1 --- .../SpecialDetails/SpecialDetailsReport.cs | 31 ++- 非C#代码文件/收款单核销流水存储过程.sql | 227 +++++++++++++----- 非C#代码文件/特价明细表SQL22.sql | 29 ++- 3 files changed, 223 insertions(+), 64 deletions(-) diff --git a/Pilot.Report.Exploitation/SpecialDetails/SpecialDetailsReport.cs b/Pilot.Report.Exploitation/SpecialDetails/SpecialDetailsReport.cs index 6cb587c..28bf759 100644 --- a/Pilot.Report.Exploitation/SpecialDetails/SpecialDetailsReport.cs +++ b/Pilot.Report.Exploitation/SpecialDetails/SpecialDetailsReport.cs @@ -82,6 +82,8 @@ namespace Pilot.Report.Exploitation.SpecialDetails header.AddChild("Supervisor", new LocaleValue("审批人"), SqlStorageType.Sqlvarchar); header.AddChild("SpecialCauseType", new LocaleValue("特价原因分类"), SqlStorageType.Sqlvarchar); header.AddChild("CRMSpecialCause", new LocaleValue("CRM特价原因"), SqlStorageType.Sqlvarchar); + header.AddChild("CurrentSettledUpsetJinE", new LocaleValue("当期结算价*数量(仪表)"), SqlStorageType.SqlDecimal); + header.AddChild("F_VRYF_Amount_yrr", new LocaleValue("整单结算总价"), SqlStorageType.SqlDecimal); header.AddChild("CurrentSettledUpset1", new LocaleValue("当期结算价(仪表)"), SqlStorageType.SqlDecimal); header.AddChild("CurrentSettledUpset2", new LocaleValue("当期结算价(系统)"), SqlStorageType.SqlDecimal); header.AddChild("Difference", new LocaleValue("差额(单价-结算价)"), SqlStorageType.SqlDecimal); @@ -432,6 +434,22 @@ FROM #PLChongDianZhuangHeTong ;"); ISNULL(H4.FNAME, '') AS 'Supervisor', --审批人 H5.FDATAVALUE AS 'SpecialCauseType', --特价原因分类 A.FCRMSPECIALPRICINGREASON AS 'CRMSpecialCause', --CRM特价原因 + + CASE + WHEN (AAA.TableName IN ( '#YiBiaoHeTong','#XNChongDianZhuangHeTong')) THEN + B.F_SETTLEMENTP*B.FQTY + ELSE + NULL + END AS 'CurrentSettledUpsetJinE', --当期结算价*数量(仪表) + + CASE + WHEN ROW_NUMBER() OVER (PARTITION BY A.FID,AAA.TableName ORDER BY a.FID,AAA.TableName,b.FENTRYID) = 1 THEN + CAST(ISNULL(A.F_VRYF_Amount_yrr, 0) AS FLOAT) + ELSE + NULL + END AS 'F_VRYF_Amount_yrr', -- 整单结算总价# + + CASE WHEN (AAA.TableName IN ( '#YiBiaoHeTong','#XNChongDianZhuangHeTong')) THEN B.F_SETTLEMENTP @@ -504,7 +522,7 @@ FROM #PLChongDianZhuangHeTong ;"); END AS 'ExpireUnpaidAmount', --到期未付金额 G.FNUMBER AS 'ProductsCode' --产品长代码 - ,aaa.FSALEORGID,AAA.FENTRYID,aaa.FID + ,aaa.FSALEORGID,AAA.FENTRYID,aaa.FID,B.F_K3SEQ INTO #tempDaBiao FROM #TempTable3 AAA INNER JOIN T_SAL_ORDERENTRY B ON AAA.FENTRYID=B.FENTRYID @@ -746,6 +764,13 @@ FROM #PLChongDianZhuangHeTong ;"); WHERE W2.FSTABLENAME = 'T_SAL_ORDERENTRY' ) H7 ON B.FENTRYID = H7.FSID {wheresql} ; + + + +UPDATE #tempDaBiao SET NotShipmentsAmount=NotShipmentsAmount-ISNULL(k3.含税单价*K3.销售出库数量*1.000,0) +FROM dbo.oldk3seorder0701 k3 +WHERE F_K3SEQ=k3.行号 AND #tempDaBiao.ContractNumber=k3.合同号; + UPDATE #tempDaBiao SET TotalSpread=TotalSpread+b.TotalSpreadYiBiao,CurrentSettledUpset2=CurrentSettledUpset2-b.TotalSpreadYiBiao FROM (SELECT SUM(a.CurrentSettledUpset1*a.Quantity) AS TotalSpreadYiBiao,a.AFBILLNO FROM #tempDaBiao a WHERE TableName='#XNChongDianZhuangHeTong' @@ -788,6 +813,8 @@ where TableName IN ('#PLChongDianZhuangHeTong') AND #tempDaBiao.AFBILLNO=B.AFBIL ,[SpecialCauseType] ,[CRMSpecialCause] ,[CurrentSettledUpset1] + ,CurrentSettledUpsetJinE + ,F_VRYF_Amount_yrr ,[CurrentSettledUpset2] ,[Difference] ,[TotalSpreadYiBiao] @@ -823,6 +850,8 @@ where TableName IN ('#PLChongDianZhuangHeTong') AND #tempDaBiao.AFBILLNO=B.AFBIL '', '', SUM(t1.CurrentSettledUpset1), + SUM(CurrentSettledUpsetJinE) + ,SUM(F_VRYF_Amount_yrr), SUM(t1.CurrentSettledUpset2), SUM(t1.Difference), SUM(t1.TotalSpreadYiBiao), diff --git a/非C#代码文件/收款单核销流水存储过程.sql b/非C#代码文件/收款单核销流水存储过程.sql index 162df5d..e5569fa 100644 --- a/非C#代码文件/收款单核销流水存储过程.sql +++ b/非C#代码文件/收款单核销流水存储过程.sql @@ -35,61 +35,132 @@ ORDER BY FDATE SELECT @hexiao=0; ---۵Զ¼-- SELECT @fid2=0,@fid3=0; - SELECT @fid2=FID FROM dbo.T_AutoWrireRecordEntry2 WHERE FBILLNO3=@FBILLNO - IF(@fid2>0) - BEGIN - SELECT @FDATE=ISNULL(F_YeWuDate,FCREATEDATE),@fid3=FID FROM T_AutoWrireRecord - WHERE FID=@fid2 AND FDOCUMENTSTATUS='C' - IF(@fid3>0) - BEGIN - SELECT @hexiao=1; - IF((SELECT COUNT(1) FROM T_AutoWrireRecordEntry2 WHERE fid=@fid2)<2) - BEGIN - INSERT INTO [dbo].[ZZZ_HeXiaoBook] - ([XiaoShouFid] - ,[XiaoShouBillNo] - ,[XiaoShouHeTong] - ,[ShouKuanFid] - ,[ShouKuanBillNo] - ,[ShouKuanFDate] - ,[BenCiHeXiao] - ,[FSaleOrgId],Note,NoteFid,FExchangeRate,FSettleCurrId,FLOCALCURRID,[ShouKuanType],Remark) - ( SELECT a.fid,a.FBILLNO,a.F_CONTRACTNUMBER,@ShouKuanFID,@FBILLNO,@FDATE - ,b.FALLAMOUNT22 - ,@FSALEORGID,'۵Զ¼',@fid2,dd.FExchangeRate,FSettleCurrId,FLocalCurrId,0 - ,head.F_NOTE - FROM T_SAL_ORDER a - LEFT JOIN T_AutoWrireRecordEntry b ON a.FBILLNO=b.FBILLNO2 - LEFT JOIN T_AutoWrireRecordEntry2 c ON b.FID=c.FID - LEFT JOIN T_SAL_ORDERFIN dd ON a.FID=dd.FID - LEFT JOIN T_AutoWrireRecord head ON b.FID=head.FID - WHERE b.FID=@fid2 AND c.FBILLNO3=@FBILLNO ) - END - ELSE - BEGIN - INSERT INTO [dbo].[ZZZ_HeXiaoBook] - ([XiaoShouFid] - ,[XiaoShouBillNo] - ,[XiaoShouHeTong] - ,[ShouKuanFid] - ,[ShouKuanBillNo] - ,[ShouKuanFDate] - ,[BenCiHeXiao] - ,[FSaleOrgId],Note,NoteFid,FExchangeRate,FSettleCurrId,FLOCALCURRID,[ShouKuanType],Remark) - ( SELECT a.fid,a.FBILLNO,a.F_CONTRACTNUMBER,@ShouKuanFID,@FBILLNO,@FDATE - ,c.FALLAMOUNT33 - ,@FSALEORGID,'۵Զ¼',@fid2,dd.FExchangeRate,FSettleCurrId,FLocalCurrId,0 - ,head.F_NOTE - FROM T_SAL_ORDER a - LEFT JOIN T_AutoWrireRecordEntry b ON a.FBILLNO=b.FBILLNO2 - LEFT JOIN T_AutoWrireRecordEntry2 c ON b.FID=c.FID - LEFT JOIN T_SAL_ORDERFIN dd ON a.FID=dd.FID - LEFT JOIN T_AutoWrireRecord head ON b.FID=head.FID - WHERE b.FID=@fid2 AND c.FBILLNO3=@FBILLNO ) - END - END - end - ------֪ͨĺ¼-------------- + + DECLARE cursor_name33 CURSOR FOR + SELECT FID FROM dbo.T_AutoWrireRecordEntry2 WHERE FBILLNO3=@FBILLNO + + OPEN cursor_name33; + FETCH NEXT FROM cursor_name33 + INTO @fid2 + WHILE @@FETCH_STATUS = 0 + BEGIN + IF (@fid2 > 0) + BEGIN + SELECT @FDATE = ISNULL(F_YEWUDATE, FCREATEDATE), + @fid3 = FID + FROM T_AutoWrireRecord + WHERE FID = @fid2 AND FDOCUMENTSTATUS = 'C'; + IF (@fid3 > 0) + BEGIN + SELECT @hexiao = 1; + IF ((SELECT COUNT(1)FROM T_AutoWrireRecordEntry2 WHERE FID = @fid2) < 2) + BEGIN + INSERT INTO [dbo].[ZZZ_HeXiaoBook] + ( + [XiaoShouFid], + [XiaoShouBillNo], + [XiaoShouHeTong], + [ShouKuanFid], + [ShouKuanBillNo], + [ShouKuanFDate], + [BenCiHeXiao], + [FSaleOrgId], + Note, + NoteFid, + FExchangeRate, + FSettleCurrId, + FLOCALCURRID, + [ShouKuanType], + Remark + ) + (SELECT a.FID, + a.FBILLNO, + a.F_CONTRACTNUMBER, + @ShouKuanFID, + @FBILLNO, + @FDATE, + b.FALLAMOUNT22, + @FSALEORGID, + '۵Զ¼', + @fid2, + dd.FEXCHANGERATE, + FSETTLECURRID, + FLOCALCURRID, + 0, + head.F_NOTE + FROM T_SAL_ORDER a + LEFT JOIN T_AutoWrireRecordEntry b + ON a.FBILLNO = b.FBILLNO2 + LEFT JOIN T_AutoWrireRecordEntry2 c + ON b.FID = c.FID + LEFT JOIN T_SAL_ORDERFIN dd + ON a.FID = dd.FID + LEFT JOIN T_AutoWrireRecord head + ON b.FID = head.FID + WHERE b.FID = @fid2 + AND c.FBILLNO3 = @FBILLNO); + END; + ELSE + BEGIN + INSERT INTO [dbo].[ZZZ_HeXiaoBook] + ( + [XiaoShouFid], + [XiaoShouBillNo], + [XiaoShouHeTong], + [ShouKuanFid], + [ShouKuanBillNo], + [ShouKuanFDate], + [BenCiHeXiao], + [FSaleOrgId], + Note, + NoteFid, + FExchangeRate, + FSettleCurrId, + FLOCALCURRID, + [ShouKuanType], + Remark + ) + (SELECT a.FID, + a.FBILLNO, + a.F_CONTRACTNUMBER, + @ShouKuanFID, + @FBILLNO, + @FDATE, + c.FALLAMOUNT33, + @FSALEORGID, + '۵Զ¼', + @fid2, + dd.FEXCHANGERATE, + FSETTLECURRID, + FLOCALCURRID, + 0, + head.F_NOTE + FROM T_SAL_ORDER a + LEFT JOIN T_AutoWrireRecordEntry b + ON a.FBILLNO = b.FBILLNO2 + LEFT JOIN T_AutoWrireRecordEntry2 c + ON b.FID = c.FID + LEFT JOIN T_SAL_ORDERFIN dd + ON a.FID = dd.FID + LEFT JOIN T_AutoWrireRecord head + ON b.FID = head.FID + WHERE b.FID = @fid2 + AND c.FBILLNO3 = @FBILLNO); + END; + END; + END; + -- ȡһ¼ + FETCH NEXT FROM cursor_name33 + INTO @fid2; + END; + -- 4. رα + CLOSE cursor_name33; + -- 5. ͷαԴ + DEALLOCATE cursor_name33; + + + + ------֪ͨĺ¼-------------- SELECT @fid2=0,@fid3=0,@F_contractnumber='',@amount=0; SELECT @fid2=FID FROM dbo.VRYF_t_Cust_Entry100025 WHERE FBILLNO3=@FBILLNO @@ -115,7 +186,8 @@ ORDER BY FDATE END -----Ӧպ¼--------- SELECT @fid2=0,@fid3=0,@F_contractnumber='',@amount=0; - SELECT d.FDATE,FBILLFORMID, FVERIFYSEQ,FSOURCETYPE,FCURWRITTENOFFAMOUNTFOR,FCURWRITTENOFFAMOUNT,FSRCBILLNO,b.FEXCHANGERATE,FCURTAXMATCHAMOUNT,FCURNOTAXMATCHAMOUNT ,FSRCBILLID + SELECT d.FDATE,FBILLFORMID, FVERIFYSEQ,FSOURCETYPE,FCURWRITTENOFFAMOUNTFOR,FCURWRITTENOFFAMOUNT,FSRCBILLNO,b.FEXCHANGERATE,FCURTAXMATCHAMOUNT,FCURNOTAXMATCHAMOUNT + ,FSRCBILLID ,b.FCURRENCYID,b.FLOCALCURRID INTO #temp2 FROM T_AR_RECMacthLog a LEFT JOIN dbo.T_AR_RECMACTHLOGENTRY b ON a.FID=b.FID @@ -131,6 +203,22 @@ LEFT JOIN dbo.T_AR_RECMACTHLOGENTRY b ON a.FID=b.FID WHERE b.FSRCBILLNO=@FBILLN IF(@fid2>0) BEGIN SELECT @hexiao=1; + + IF((SELECT COUNT(1) + FROM T_SAL_ORDER a + LEFT JOIN T_SAL_ORDERFIN dd ON a.FID=dd.FID + LEFT JOIN + (SELECT c.FSALEORGID,ak.FORDERNUMBER ,c.FID,SUM(ak.FALLAMOUNTFOR)/(SELECT SUM(FALLAMOUNTFOR) FROM T_AR_RECEIVABLEENTRY akk + where akk.FID=ak.FID) FALLAMOUNTFOR_D + FROM T_AR_receivable c + LEFT JOIN T_AR_RECEIVABLEENTRY ak ON c.FID=ak.FID + GROUP BY c.FSALEORGID,ak.FORDERNUMBER ,c.FID,ak.FID + ) c + ON c.FORDERNUMBER=a.FBILLNO AND c.FSALEORGID=a.FSALEORGID AND a.FBILLNO !='' + LEFT JOIN #temp2 d ON d.FSRCBILLID=c.fid AND d.FBILLFORMID ='AR_receivable' + WHERE a.FSALEORGID=@FSALEORGID AND d.FBILLFORMID='AR_receivable' + )>0) + begin INSERT INTO [dbo].[ZZZ_HeXiaoBook] ([XiaoShouFid] ,[XiaoShouBillNo] @@ -141,7 +229,7 @@ LEFT JOIN dbo.T_AR_RECMACTHLOGENTRY b ON a.FID=b.FID WHERE b.FSRCBILLNO=@FBILLN ,[BenCiHeXiao] ,[FSaleOrgId],Note,NoteFid,FExchangeRate,FSettleCurrId,FLOCALCURRID,[ShouKuanType],Remark) ( SELECT a.fid,a.FBILLNO,a.F_CONTRACTNUMBER,@ShouKuanFID,@FBILLNO,@FDATE,FCURWRITTENOFFAMOUNTFOR*FALLAMOUNTFOR_D,@FSALEORGID,'Ӧպ¼',@fid3 - ,dd.FEXCHANGERATE,FSettleCurrId,FLOCALCURRID,0 ,@remark + ,dd.FEXCHANGERATE,dd.FSettleCurrId,dd.FLOCALCURRID,0 ,@remark FROM T_SAL_ORDER a LEFT JOIN T_SAL_ORDERFIN dd ON a.FID=dd.FID LEFT JOIN @@ -153,9 +241,28 @@ LEFT JOIN dbo.T_AR_RECMACTHLOGENTRY b ON a.FID=b.FID WHERE b.FSRCBILLNO=@FBILLN LEFT JOIN T_AR_RECEIVABLEENTRY ak ON c.FID=ak.FID GROUP BY c.FSALEORGID,ak.FORDERNUMBER ,c.FID,ak.FID ) c - ON c.FORDERNUMBER=a.FBILLNO AND c.FSALEORGID=a.FSALEORGID + ON c.FORDERNUMBER=a.FBILLNO AND c.FSALEORGID=a.FSALEORGID AND a.FBILLNO !='' LEFT JOIN #temp2 d ON d.FSRCBILLID=c.fid AND d.FBILLFORMID ='AR_receivable' - WHERE a.FSALEORGID=@FSALEORGID AND d.FBILLFORMID='AR_receivable') + WHERE a.FSALEORGID=@FSALEORGID AND d.FBILLFORMID='AR_receivable' ) + end + ELSE + begin + INSERT INTO [dbo].[ZZZ_HeXiaoBook] + ([XiaoShouFid] + ,[XiaoShouBillNo] + ,[XiaoShouHeTong] + ,[ShouKuanFid] + ,[ShouKuanBillNo] + ,[ShouKuanFDate] + ,[BenCiHeXiao] + ,[FSaleOrgId],Note,NoteFid,FExchangeRate,FSettleCurrId,FLOCALCURRID,[ShouKuanType],Remark) + ( SELECT 0,'','',@ShouKuanFID,@FBILLNO,@FDATE,FCURWRITTENOFFAMOUNTFOR,@FSALEORGID,'Ӧպ¼ڳӦյ',@fid3 + ,FEXCHANGERATE,FCURRENCYID,FLOCALCURRID,0 ,@remark + FROM #temp2 d + WHERE d.FBILLFORMID='AR_RECEIVEBILL' ) + END + + END ELSE BEGIN @@ -221,7 +328,7 @@ LEFT JOIN dbo.T_AR_RECMACTHLOGENTRY b ON a.FID=b.FID WHERE b.FSRCBILLNO=@FBILLN FROM T_SAL_ORDER a RIGHT JOIN VRYF_t_Cust_Entry100021 c ON a.F_CONTRACTNUMBER=c.F_ORDERNO LEFT JOIN T_SAL_ORDERFIN dd ON a.FID=dd.FID - WHERE (a.FSALEORGID=100302 OR a.fid IS NULL ) AND c.F_Receiptnumber=@FBILLNO ) + WHERE (a.FSALEORGID=100302 OR a.fid IS NULL ) AND c.F_Receiptnumber=@FBILLNO AND c.F_ORDERNO NOT LIKE '%%' ) END -- ȡһ¼ diff --git a/非C#代码文件/特价明细表SQL22.sql b/非C#代码文件/特价明细表SQL22.sql index c58b2f6..5a21d7d 100644 --- a/非C#代码文件/特价明细表SQL22.sql +++ b/非C#代码文件/特价明细表SQL22.sql @@ -252,6 +252,22 @@ FROM #PLChongDianZhuangHeTong ; NULL END AS 'CurrentSettledUpset1', --ڽۣDZ + CASE + WHEN (AAA.TableName IN ( '#YiBiaoHeTong','#XNChongDianZhuangHeTong')) THEN + B.F_SETTLEMENTP*B.FQTY + ELSE + NULL + END AS 'CurrentSettledUpsetJinE', --ڽ*DZ + + + CASE + WHEN ROW_NUMBER() OVER (PARTITION BY A.FID,AAA.TableName ORDER BY a.FID,AAA.TableName,b.FENTRYID) = 1 THEN + CAST(ISNULL(A.F_VRYF_Amount_yrr, 0) AS FLOAT) + ELSE + NULL + END AS 'F_VRYF_Amount_yrr', -- ܼ# + + CASE WHEN (AAA.TableName IN ('#XiTongHeTong','#PLChongDianZhuangHeTong')) AND ROW_NUMBER() OVER (PARTITION BY A.FID,AAA.TableName ORDER BY a.FID,AAA.TableName,b.FENTRYID) = 1 THEN @@ -316,7 +332,7 @@ FROM #PLChongDianZhuangHeTong ; END AS 'ExpireUnpaidAmount', --δ G.FNUMBER AS 'ProductsCode' --Ʒ - ,aaa.FSALEORGID,AAA.FENTRYID,aaa.FID + ,aaa.FSALEORGID,AAA.FENTRYID,aaa.FID,b.F_K3SEQ INTO #tempDaBiao FROM #TempTable3 AAA INNER JOIN T_SAL_ORDERENTRY B ON AAA.FENTRYID=B.FENTRYID @@ -559,7 +575,10 @@ FROM #PLChongDianZhuangHeTong ; ) H7 ON B.FENTRYID = H7.FSID AND 1=1 ; - + +UPDATE #tempDaBiao SET NotShipmentsAmount=NotShipmentsAmount-ISNULL(k3.˰*K3.۳*1.000,0) +FROM dbo.oldk3seorder0701 k3 +WHERE F_K3SEQ=k3.к AND #tempDaBiao.ContractNumber=k3.ͬ UPDATE #tempDaBiao SET TotalSpread=TotalSpread-b.TotalSpreadYiBiao,CurrentSettledUpset2=CurrentSettledUpset2-b.TotalSpreadYiBiao @@ -595,6 +614,8 @@ where TableName IN ('#PLChongDianZhuangHeTong') AND #tempDaBiao.AFBILLNO=B.AFBIL ,[SpecialCauseType] ,[CRMSpecialCause] ,[CurrentSettledUpset1] + ,CurrentSettledUpsetJinE + ,F_VRYF_Amount_yrr ,[CurrentSettledUpset2] ,[Difference] ,[TotalSpreadYiBiao] @@ -630,6 +651,8 @@ where TableName IN ('#PLChongDianZhuangHeTong') AND #tempDaBiao.AFBILLNO=B.AFBIL '', '', SUM(t1.CurrentSettledUpset1), + SUM(CurrentSettledUpsetJinE) + ,SUM(F_VRYF_Amount_yrr), SUM(t1.CurrentSettledUpset2), SUM(t1.Difference), SUM(t1.TotalSpreadYiBiao), @@ -650,7 +673,7 @@ where TableName IN ('#PLChongDianZhuangHeTong') AND #tempDaBiao.AFBILLNO=B.AFBIL SELECT fid,AllAmount,TaxPrice,CurrentSettledUpset1,CurrentSettledUpset1*aaa.Quantity,CurrentSettledUpset1,CurrentSettledUpset2,[Difference],TotalSpread,TotalSpreadYiBiao, * FROM #tempDaBiao aaa --WHERE TableName IN ('#PLChongDianZhuangHeTong','XNChongDianZhuangHeTong') - WHERE AAA.ContractNumber LIKE 'W%' + WHERE AAA.ContractNumber ='C202501090025' AND aaa.Date>='2025-01-01' --AND AAA.FSALEORGID=100302 --WHERE aaa.fid=208563