This commit is contained in:
余宇波 2025-08-14 11:22:33 +08:00
parent 04bbc82014
commit 4679f5bc57
3 changed files with 223 additions and 64 deletions

View File

@ -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),

View File

@ -35,60 +35,131 @@ ORDER BY FDATE
SELECT @hexiao=0;
-----
SELECT @fid2=0,@fid3=0;
SELECT @fid2=FID FROM dbo.T_AutoWrireRecordEntry2 WHERE FBILLNO3=@FBILLNO
IF(@fid2>0)
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
SELECT @FDATE=ISNULL(F_YeWuDate,FCREATEDATE),@fid3=FID FROM T_AutoWrireRecord
WHERE FID=@fid2 AND FDOCUMENTSTATUS='C'
IF(@fid3>0)
IF (@fid2 > 0)
BEGIN
SELECT @hexiao=1;
IF((SELECT COUNT(1) FROM T_AutoWrireRecordEntry2 WHERE fid=@fid2)<2)
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
(
[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
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
(
[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
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
-- 获取下一条记录

View File

@ -252,6 +252,22 @@ FROM #PLChongDianZhuangHeTong ;
NULL
END AS 'CurrentSettledUpset1', --
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 ('#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
@ -560,6 +576,9 @@ FROM #PLChongDianZhuangHeTong ;
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