Compare commits

...

2 Commits

Author SHA1 Message Date
d1024d1c21 11 2025-07-08 16:54:10 +08:00
e8a5e50519 1 2025-07-08 14:33:02 +08:00
3 changed files with 81 additions and 19 deletions

View File

@@ -119,7 +119,7 @@ namespace Pilot.Report.Exploitation.SBUYingShouBiao
header.AddChild("预发货到期应收账款", new LocaleValue("预发货到期应收账款", this.Context.UserLocale.LCID), SqlStorageType.SqlMoney);
header.AddChild("预发货回款额", new LocaleValue("预发货回款额", this.Context.UserLocale.LCID), SqlStorageType.SqlMoney);
header.AddChild("预发货回款率", new LocaleValue("预发货回款率", this.Context.UserLocale.LCID), SqlStorageType.SqlMoney);
header.AddChild("回款目标", new LocaleValue("回款目标", this.Context.UserLocale.LCID), SqlStorageType.SqlMoney);
header.AddChild("回款目标", new LocaleValue("回款目标(万元)", this.Context.UserLocale.LCID), SqlStorageType.SqlMoney);
//header.AddChild("应收款上限", new LocaleValue("应收款上限", this.Context.UserLocale.LCID), SqlStorageType.SqlMoney);
//header.AddChild("回款达标率", new LocaleValue("回款达标率", this.Context.UserLocale.LCID), SqlStorageType.SqlMoney);
return header;
@@ -138,11 +138,10 @@ namespace Pilot.Report.Exploitation.SBUYingShouBiao
SQL查询字符串提取所需数据并将结果存入临时表
*/
string sql = string.Format($@"/*dialect*/
SELECT ROW_NUMBER() OVER(ORDER BY SBU) AS FIDENTITYID,a.*,[上年度应收额]=[上年度应收额2]-[本年回款额]
,[回款率]=CASE WHEN ([本年实际业绩额]+[上年度应收额2]-[本年回款额]-[本年专责小组应收额]) <>0 THEN ([本年回款额]-[本年专责小组回款额])/([本年实际业绩额]+[上年度应收额2]-[本年回款额]-[本年专责小组应收额])
SELECT ROW_NUMBER() OVER(ORDER BY SBU) AS FIDENTITYID,a.*,[上年度应收额]=[当前业绩总和]-[本年实际业绩额]
,[回款率]=CASE WHEN ([当前应收]-[本年专责小组应收额]) <>0 THEN ([本年回款额]-[本年专责小组回款额])/([当前应收]-[本年专责小组应收额])
ELSE 0 END
,[预发货回款率]=CASE WHEN [预发货到期应收账款] >0 THEN [预发货回款额]/[预发货到期应收账款] ELSE 0 end
,[回款目标]=0.0
into {tableName}
FROM (
SELECT ISNULL(SBU,'其他') AS SBU
@@ -168,14 +167,32 @@ WHERE b.FDocumentStatus='C' AND aa.FID IN
FROM ZRP_YingShouMingXi_yuyubo akk
WHERE akk.SBU = a.SBU
)
AND (( B.FCHANGEDATE >= '{begin}' AND B.FCHANGEDATE < '2026-01-01 00:00:00') OR (b.FDate >= '{begin}' AND B.FDate < '2026-01-01 00:00:00' ) )
AND (( B.FCHANGEDATE >= '{begin}' AND B.FCHANGEDATE < '{end}') OR (b.FDate >= '{begin}' AND B.FDate < '{end}' ) )
)
,0))
,[本年专责小组应收额]=ISNULL((SELECT SUM(aa.实际已出货应收款合计) FROM ZRP_YingShouMingXi_yuyubo aa where aa.账龄月>12 AND aa.SBU=A.SBU),0)
,[上年度应收额2]=ISNULL((SELECT SUM(aa.应收款合计) FROM ZRP_YingShouMingXi_yuyubo aa where aa.SBU=A.SBU),0)
,[当前业绩总和]= (ISNULL((
SELECT SUM(aa.FBILLALLAMOUNT_LC)
FROM T_SAL_ORDERFIN aa
LEFT JOIN T_SAL_ORDER B
ON aa.FID = B.FID
WHERE b.FDocumentStatus='C' AND aa.FID IN
(
SELECT DISTINCT akk.销售单主键ID
FROM ZRP_YingShouMingXi_yuyubo akk
WHERE akk.SBU = a.SBU
) )
,0))
,[当前应收]= (SUM(a.应收款合计*ISNULL(a.[收款条件分摊比例],100)*0.01 ))
,[预发货到期应收账款]=ISNULL((SELECT SUM(aa.到期金额*aa.汇率) FROM ZRP_YingShouMingXi_yuyubo aa where aa.收款条件 LIKE '款到发货%'AND aa.SBU=A.SBU),0)
,[预发货回款额]=ISNULL((SELECT SUM(aa.累计到款金额*aa.[收款条件分摊比例]*0.01) FROM ZRP_YingShouMingXi_yuyubo aa where aa.收款条件 LIKE '款到发货%'AND aa.SBU=A.SBU AND aa.到期金额 >0),0)
,[已到期应收账款]=SUM(a.到期金额*a.汇率)
,[回款目标]=ISNULL(( SELECT SUM(FPAYMENTSUM) FROM (SELECT DISTINCT bb.FEntryID,FPAYMENTSUM FROM MBBA_t_Cust_Entry100003 bb
LEFT JOIN V_BD_SALESMAN_L L WITH(NOLOCK) ON bb.FNAME=L.fid
LEFT JOIN (SELECT DISTINCT ACL22.名称,ACL22.明细区域 ,ACL22.区域 FROM ERPTOHR.HYHRV3.dbo.v_erp_empinfo ACL22 ) ACL
ON ACL.名称=L.FNAME AND ISNULL(ACL.明细区域,'') != ''
WHERE ACL.区域=a.SBU
AND bb.fid = (SELECT MAX(fid) FROM MBBA_t_Cust100002 aaa WHERE aaa.FDOCUMENTSTATUS='C' AND YEAR(aaa.F_VRYF_DATE_83G)=YEAR( '{begin}' ) )) ccc),0)
FROM ZRP_YingShouMingXi_yuyubo a
{Filter}
GROUP BY a.SBU) a

View File

@@ -1,6 +1,6 @@
SELECT a.*,[<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD>ն<EFBFBD>]=[<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD>ն<EFBFBD>2]-[<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ؿ<EFBFBD><EFBFBD><EFBFBD>]
,[<EFBFBD>ؿ<EFBFBD><EFBFBD><EFBFBD>]=CASE WHEN ([<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD><EFBFBD>ҵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>]+[<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD>ն<EFBFBD>2]-[<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ؿ<EFBFBD><EFBFBD><EFBFBD>]-[<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ר<EFBFBD><EFBFBD>С<EFBFBD><EFBFBD>Ӧ<EFBFBD>ն<EFBFBD>]) <>0 THEN ([<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ؿ<EFBFBD><EFBFBD><EFBFBD>]-[<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ר<EFBFBD><EFBFBD>С<EFBFBD><EFBFBD><EFBFBD>ؿ<EFBFBD><EFBFBD><EFBFBD>])/([<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD><EFBFBD>ҵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>]+[<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD>ն<EFBFBD>2]-[<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ؿ<EFBFBD><EFBFBD><EFBFBD>]-[<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ר<EFBFBD><EFBFBD>С<EFBFBD><EFBFBD>Ӧ<EFBFBD>ն<EFBFBD>])
SELECT a.*,[<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD>ն<EFBFBD>]=[<EFBFBD><EFBFBD>ǰҵ<EFBFBD><EFBFBD><EFBFBD>ܺ<EFBFBD>]-[<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD><EFBFBD>ҵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>],[<EFBFBD><EFBFBD>ǰҵ<EFBFBD><EFBFBD><EFBFBD>ܺ<EFBFBD>],[<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ؿ<EFBFBD><EFBFBD><EFBFBD>],[<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD><EFBFBD>ҵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>]
,[<EFBFBD>ؿ<EFBFBD><EFBFBD><EFBFBD>]=CASE WHEN ([<EFBFBD><EFBFBD>ǰӦ<EFBFBD><EFBFBD>]-[<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ר<EFBFBD><EFBFBD>С<EFBFBD><EFBFBD>Ӧ<EFBFBD>ն<EFBFBD>]) <>0 THEN ([<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ؿ<EFBFBD><EFBFBD><EFBFBD>]-[<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ר<EFBFBD><EFBFBD>С<EFBFBD><EFBFBD><EFBFBD>ؿ<EFBFBD><EFBFBD><EFBFBD>])/([<EFBFBD><EFBFBD>ǰӦ<EFBFBD><EFBFBD>]-[<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ר<EFBFBD><EFBFBD>С<EFBFBD><EFBFBD>Ӧ<EFBFBD>ն<EFBFBD>])
ELSE 0 END
,[Ԥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ؿ<EFBFBD><EFBFBD><EFBFBD>]=CASE WHEN [Ԥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD>] >0 THEN [Ԥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ؿ<EFBFBD><EFBFBD><EFBFBD>]/[Ԥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD>] ELSE 0 END
@@ -33,11 +33,29 @@ WHERE b.FDocumentStatus='C' AND aa.FID IN
)
,0))
,[<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ר<EFBFBD><EFBFBD>С<EFBFBD><EFBFBD>Ӧ<EFBFBD>ն<EFBFBD>]=ISNULL((SELECT SUM(aa.ʵ<EFBFBD><EFBFBD><EFBFBD>ѳ<EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD>տ<EFBFBD><EFBFBD>ϼ<EFBFBD>) FROM ZRP_YingShouMingXi_yuyubo aa where aa.<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>>12 AND aa.SBU=A.SBU),0)
,[<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD>ն<EFBFBD>2]=ISNULL((SELECT SUM(aa.Ӧ<EFBFBD>տ<EFBFBD><EFBFBD>ϼ<EFBFBD>) FROM ZRP_YingShouMingXi_yuyubo aa where aa.SBU=A.SBU),0)
,[<EFBFBD><EFBFBD>ǰҵ<EFBFBD><EFBFBD><EFBFBD>ܺ<EFBFBD>]= (ISNULL((
SELECT SUM(aa.FBILLALLAMOUNT_LC)
FROM T_SAL_ORDERFIN aa
LEFT JOIN T_SAL_ORDER B
ON aa.FID = B.FID
WHERE b.FDocumentStatus='C' AND aa.FID IN
(
SELECT DISTINCT akk.<EFBFBD><EFBFBD><EFBFBD>۵<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ID
FROM ZRP_YingShouMingXi_yuyubo akk
WHERE akk.SBU = a.SBU
) )
,0))
,[<EFBFBD><EFBFBD>ǰӦ<EFBFBD><EFBFBD>]= (SUM(a.Ӧ<EFBFBD>տ<EFBFBD><EFBFBD>ϼ<EFBFBD>*ISNULL(a.[<EFBFBD>տ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̯<EFBFBD><EFBFBD><EFBFBD><EFBFBD>],100)*0.01 ))
,[Ԥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD>]=ISNULL((SELECT SUM(aa.<EFBFBD><EFBFBD><EFBFBD>ڽ<EFBFBD><EFBFBD><EFBFBD>*aa.<EFBFBD><EFBFBD><EFBFBD><EFBFBD>) FROM ZRP_YingShouMingXi_yuyubo aa WHERE aa.<EFBFBD>տ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> LIKE '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>%'AND aa.SBU=A.SBU),0)
,[Ԥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ؿ<EFBFBD><EFBFBD><EFBFBD>]=ISNULL((SELECT SUM(aa.<EFBFBD>ۼƵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*aa.[<EFBFBD>տ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̯<EFBFBD><EFBFBD><EFBFBD><EFBFBD>]*0.01) FROM ZRP_YingShouMingXi_yuyubo aa where aa.<EFBFBD>տ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> LIKE '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>%'AND aa.SBU=A.SBU AND aa.<EFBFBD><EFBFBD><EFBFBD>ڽ<EFBFBD><EFBFBD><EFBFBD> >0),0)
,[Ԥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ؿ<EFBFBD><EFBFBD><EFBFBD>]=ISNULL((SELECT SUM(aa.<EFBFBD>ۼƵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*ISNULL(aa.[<EFBFBD>տ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̯<EFBFBD><EFBFBD><EFBFBD><EFBFBD>],100)*0.01) FROM ZRP_YingShouMingXi_yuyubo aa where aa.<EFBFBD>տ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> LIKE '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>%'AND aa.SBU=A.SBU AND aa.<EFBFBD><EFBFBD><EFBFBD>ڽ<EFBFBD><EFBFBD><EFBFBD> >0),0)
,[<EFBFBD>ؿ<EFBFBD>Ŀ<EFBFBD><EFBFBD>]=ISNULL(( SELECT SUM(FPAYMENTSUM) FROM (SELECT DISTINCT bb.FEntryID,FPAYMENTSUM FROM MBBA_t_Cust_Entry100003 bb
LEFT JOIN V_BD_SALESMAN_L L WITH(NOLOCK) ON bb.FNAME=L.fid
LEFT JOIN (SELECT DISTINCT ACL22.<EFBFBD><EFBFBD><EFBFBD><EFBFBD>,ACL22.<EFBFBD><EFBFBD>ϸ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> ,ACL22.<EFBFBD><EFBFBD><EFBFBD><EFBFBD> FROM ERPTOHR.HYHRV3.dbo.v_erp_empinfo ACL22 ) ACL
ON ACL.<EFBFBD><EFBFBD><EFBFBD><EFBFBD>=L.FNAME AND ISNULL(ACL.<EFBFBD><EFBFBD>ϸ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>,'') != ''
WHERE ACL.<EFBFBD><EFBFBD><EFBFBD><EFBFBD>=a.SBU
AND bb.fid = (SELECT MAX(fid) FROM MBBA_t_Cust100002 aaa WHERE aaa.FDOCUMENTSTATUS='C' AND YEAR(aaa.F_VRYF_DATE_83G)=YEAR( '2025-01-01' ) )) ccc),0)
FROM ZRP_YingShouMingXi_yuyubo a
WHERE a.<EFBFBD><EFBFBD>֯ID=100302
--WHERE a.<EFBFBD><EFBFBD>֯ID=100302
GROUP BY a.SBU) a

View File

@@ -15,7 +15,7 @@ BEGIN
DELETE [ZZZ_HeXiaoBook] WHERE [ShouKuanFDate]>=@BeginDATE
DECLARE @FDATE DATETIME,@FBILLNO NVARCHAR(200),@ShouKuanFID INT,@FSALEORGID INT ,@F_contractnumber NVARCHAR(2000),@fid2 INT,@fid3 INT,@amount DECIMAL(18,2);
DECLARE @FDATE DATETIME,@FBILLNO NVARCHAR(200),@ShouKuanFID INT,@FSALEORGID INT ,@F_contractnumber NVARCHAR(2000),@fid2 INT,@fid3 INT,@amount DECIMAL(18,2),@hexiao DECIMAL(18,2);
-- 1. <20><><EFBFBD><EFBFBD><EFBFBD>α<EFBFBD>
DECLARE cursor_name2 CURSOR FOR
SELECT FDATE,FBILLNO,FID,FSALEORGID,F_contractnumber FROM T_AR_RECEIVEBILL
@@ -31,6 +31,7 @@ ORDER BY FDATE
@F_contractnumber
WHILE @@FETCH_STATUS = 0
BEGIN
SELECT @hexiao=0;
---<EFBFBD><EFBFBD><EFBFBD>۵<EFBFBD><EFBFBD>Զ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><EFBFBD>--
SELECT @fid2=0,@fid3=0;
SELECT @fid2=FID FROM dbo.T_AutoWrireRecordEntry2 WHERE FBILLNO3=@FBILLNO
@@ -40,6 +41,7 @@ ORDER BY FDATE
WHERE FID=@fid2 AND FDOCUMENTSTATUS='C'
IF(@fid3>0)
BEGIN
SELECT @hexiao=1;
INSERT INTO [dbo].[ZZZ_HeXiaoBook]
([XiaoShouFid]
,[XiaoShouBillNo]
@@ -67,7 +69,7 @@ ORDER BY FDATE
IF(@fid3>0)
BEGIN
SELECT @F_contractnumber=FCONTRACTNUMBER,@amount=FALLAMOUNT22 FROM VRYF_t_Cust_Entry100024 a WHERE a.FID=@fid2
SELECT @hexiao=@amount;
INSERT INTO [dbo].[ZZZ_HeXiaoBook]
([XiaoShouFid]
,[XiaoShouBillNo]
@@ -98,6 +100,7 @@ LEFT JOIN dbo.T_AR_RECMACTHLOGENTRY b ON a.FID=b.FID WHERE b.FSRCBILLNO=@FBILLN
--PRINT '<EFBFBD><EFBFBD>ͬ<EFBFBD>ţ<EFBFBD>'+@F_contractnumber;
IF(@fid2>0)
BEGIN
SELECT @hexiao=1;
INSERT INTO [dbo].[ZZZ_HeXiaoBook]
([XiaoShouFid]
,[XiaoShouBillNo]
@@ -116,11 +119,35 @@ LEFT JOIN dbo.T_AR_RECMACTHLOGENTRY b ON a.FID=b.FID WHERE b.FSRCBILLNO=@FBILLN
WHERE a.FSALEORGID=@FSALEORGID AND d.FBILLFORMID='AR_receivable')
end
DROP TABLE #temp2
--------------<EFBFBD>տ<EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD>ϸ--------
IF(@hexiao=0)
begin
SELECT @fid2=a.FID FROM T_AR_RECEIVEBILL a LEFT JOIN T_AR_RECEIVEBILLSRCENTRY b ON a.FID=b.FID
WHERE a.fid=@ShouKuanFID
IF(@fid2>0)
BEGIN
SELECT @hexiao=1;
INSERT INTO [dbo].[ZZZ_HeXiaoBook]
([XiaoShouFid]
,[XiaoShouBillNo]
,[XiaoShouHeTong]
,[ShouKuanFid]
,[ShouKuanBillNo]
,[ShouKuanFDate]
,[BenCiHeXiao]
,[FSaleOrgId],Note,NoteFid,FExchangeRate,FSettleCurrId,FLOCALCURRID)
( SELECT aa.fid,aa.FBILLNO,aa.F_CONTRACTNUMBER,@ShouKuanFID,@FBILLNO,@FDATE,b.FREALRECAMOUNT,@FSALEORGID,'<EFBFBD>տ<EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD>ϸ',@fid2
,dd.FEXCHANGERATE,FSettleCurrId,FLOCALCURRID
FROM T_AR_RECEIVEBILL a LEFT JOIN T_AR_RECEIVEBILLSRCENTRY b ON a.FID=b.FID
LEFT JOIN dbo.T_SAL_ORDER aa ON b.FSRCBILLID=aa.FID
LEFT JOIN T_SAL_ORDERFIN dd ON aa.FID=dd.FID
WHERE a.fid=@ShouKuanFID AND b.FREALRECAMOUNT <>0 )
END
end
--------<EFBFBD><EFBFBD>ʷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><EFBFBD>--------------
IF(@FSALEORGID=100302)
begin
SELECT @hexiao=1;
INSERT INTO [dbo].[ZZZ_HeXiaoBook]
([XiaoShouFid]
,[XiaoShouBillNo]