Compare commits

..

2 Commits

Author SHA1 Message Date
7687338815 22 2025-05-12 09:24:39 +08:00
8f1af89dd6 222 2025-05-12 09:24:13 +08:00
2 changed files with 104 additions and 20 deletions

View File

@ -23,7 +23,7 @@ BEGIN
[],[],[],[],[],[],[],[],[],
[],[],[],[],[],[],[],[],[],[],[]
,[退],[],[],[],[],[],[],[],[],[],[],
[1-6],[7-12],[13-18],[19],[1],[-],[],[ID],[],[],[],[])
[1-6],[7-12],[13-18],[19],[1],[-],[],[ID],[],[],[],[],[],[])
SELECT
[ID],[ID],[ID],[],[F_RecConditionId],[],[],[],[],[SBU]
,[],[],[],[],[],[],[],[],[],[],[],
@ -31,7 +31,8 @@ SELECT
[],[],[],[],[],[],[],[],[],
[],[],[],[],[],[],[],[],0 [],[], 0 []
,0 [退],0 [],0 [],0 [],0 [],NULL [],0 [],0 [],NULL [],NULL [],0 [],
NULL [1-6],NULL [7-12],NULL [13-18],NULL [19],NULL [1],NULL [-],NULL [],[ID],[],[],[],[]
NULL [1-6],NULL [7-12],NULL [13-18],NULL [19],NULL [1],NULL [-],NULL [],[ID],[],[],[],[],[]
,[]
FROM (
SELECT A.FID [ID]
,ISNULL(O.fid,l.fid) [ID]
@ -62,7 +63,8 @@ SELECT A.FID [
SELECT SUM(B.FBillAllAmount_LC) AS '累计退货金额'
FROM T_SAL_RETURNSTOCK AA WITH(NOLOCK)
INNER JOIN T_SAL_RETURNSTOCKFIN B WITH(NOLOCK) ON AA.FID =B.FID
WHERE AA.FDOCUMENTSTATUS= 'C' AND AA.F_contractnumber LIKE A.F_contractnumber+'%' ),0)
WHERE AA.FDOCUMENTSTATUS= 'C' AND aa.FSALEORGID = a.FSALEORGID
AND AA.F_contractnumber LIKE CONCAT(A.F_contractnumber, '-%') AND AA.F_contractnumber NOT LIKE CONCAT(A.F_contractnumber, '-%-%') ),0)
,[] =AD.
,[]=ISNULL(a.F_Amount,0)
@ -145,13 +147,15 @@ SELECT A.FID [
,A.FSALEORGID AS '组织ID'
,W.F_DAY AS '天数'
,a.FBILLNO []
,[]=ISNULL((SELECT SUM(FAllAmount_LC) FROM T_SAL_ORDERENTRY_F aa WHERE aa.FID=a.FID AND aa.FAllAmount_LC>0),0)
,[]=w.F_MBBA_DECIMAL_UKY
-----------------from --------
FROM T_SAL_ORDER A WITH(NOLOCK)
LEFT JOIN (
SELECT DISTINCT x.FNAME +'--'+CONVERT(NVARCHAR(50), CONVERT(INT, w.F_DAY))+'天--'+CONVERT(NVARCHAR(50),CONVERT(DECIMAL(18,2), w.FRECADVANCERATE))+'%' AS FNAME
,w.FID,w.F_PMSDate
,W.FRECADVANCEAMOUNT,w.F_DAY
,W.FRECADVANCEAMOUNT,w.F_DAY ,w.F_MBBA_DECIMAL_UKY
,w.FENTRYID, W.F_RecConditionId ,w.FRECADVANCERATE ,x.FNAME AS fname2
FROM T_SAL_ORDERPLAN w WITH(NOLOCK)
LEFT JOIN T_BD_RecCondition_L X ON X.FID = W.F_RecConditionId
@ -226,7 +230,7 @@ GROUP BY F_PaperNumber, FSALEORGID
--where []< 100
--where [] !=''
WHERE []<>0 AND SUBSTRING([],1,1) != 'Z'
ORDER BY A.[ID],[ID];
ORDER BY A.[ID],[ID],[ID];
UPDATE [ZRP_YingShouMingXi_yuyubo] SET [2]=ISNULL((SELECT STRING_AGG(CONVERT(NVARCHAR(10),SAL.FDATE,23)
@ -256,31 +260,35 @@ GROUP BY F_PaperNumber, FSALEORGID
update [ZRP_YingShouMingXi_yuyubo] set
[]=[]*[]*0.01,[]=[]*[]*0.01
[]=[]*[]*0.01,[]=[]*[]*0.01
,[]=[]*[]*0.01
,[退]=[退]*[]*0.01
,[]=[]*[]*0.01
,[]=[]*[]*0.01
,[]=CASE WHEN []>0 then ABS([])-ABS(([退]+[])*[]*0.01) ELSE 0 end
,[]=CASE WHEN []>0 then ABS([])-ABS([]*[]*0.01)ELSE 0 end
UPDATE [ZRP_YingShouMingXi_yuyubo] set []=[];
UPDATE [ZRP_YingShouMingXi_yuyubo] set
[]=CASE WHEN []>0 then ABS([])-ABS(([退]+[])*[]*0.01) ELSE 0 end
,[]=CASE WHEN []>0 then ABS([])-ABS([]*[]*0.01)ELSE 0 end
--,[]='2022-01-01'
--,[]=CASE WHEN [] IS NOT NULL AND [] <= GETDATE() AND [] >'1990-01-01' AND []>0 THEN [] ELSE NULL END
--,[]=CASE WHEN [] IS NOT NULL AND [] <= GETDATE() AND [] >'1990-01-01' AND []>0 THEN([]-[退]-[])*[]*0.01*ISNULL([],100)*0.01 ELSE 0 END
,[]=CASE WHEN []>0 THEN ([]-[退]- [] )*[]*0.01 ELSE 0 end
,[]=CASE WHEN [] >0 THEN ([]-[退]- [] )*[]*0.01 ELSE 0 end
,[]=CASE WHEN []>12 THEN '转应收专责小组' ELSE [] END
,[]= CASE WHEN []>='1990-01-01' AND [] IS NOT NULL THEN '验收完成'
WHEN []>='1990-01-01' AND [] IS NOT NULL THEN '调试完成'
WHEN ISNULL([],'') <> '' THEN [] WHEN ISNULL([],0) = 0 THEN '未启动'
WHEN ISNULL( [],0) = ISNULL([],0) THEN '发货完成' WHEN ISNULL([],0) > ISNULL( [],0) THEN '发货中' END ;
WHEN ISNULL( [],0) = ISNULL([],0) THEN '发货完成' WHEN ISNULL([],0) > ISNULL( [],0) THEN '发货中' END ;
update [ZRP_YingShouMingXi_yuyubo] set
[]=CASE WHEN [] IS NOT NULL AND [] <= GETDATE() AND [] >'1990-01-01' AND []>0 THEN [] ELSE NULL END
,[]=CASE WHEN [] IS NOT NULL AND [] <= GETDATE() AND [] >'1990-01-01' AND []>0
THEN([]-[退]-[])*[]*0.01*ISNULL([],100)*0.01 ELSE 0 END;
THEN([]-[退])*[]*0.01-[] ELSE 0 END;
--WHERE [ID]=110181;
@ -300,15 +308,16 @@ UPDATE [ZRP_YingShouMingXi_yuyubo] SET
THEN '1-2年' WHEN []>=25 AND []<=36 THEN '2-3年' WHEN []>=37 AND []<=48 THEN '3-4年' WHEN []>=49 THEN '5年以上' ELSE '' END
--,[]=CASE WHEN []>=1 AND []<=6 THEN '正常' WHEN []>=7 AND []<=12 THEN '催款函' WHEN []>=13 AND []<=18
--THEN '律师' WHEN []>=19 THEN '诉讼' ELSE '' END
,[1-6]=CASE WHEN []>=1 AND []<=6 THEN []-([退]+[])*[]*0.01 ELSE 0 END
,[7-12]=CASE WHEN []>=7 AND []<=12 THEN []-([退]+[])*[]*0.01 ELSE 0 END
,[1-2]=CASE WHEN []>=13 AND []<=24 THEN []-([退]+[])*[]*0.01 ELSE 0 END
,[2-3]=CASE WHEN []>=25 AND []<=36 THEN []-([退]+[])*[]*0.01 ELSE 0 END
,[4-5]=CASE WHEN []>=37 AND []<=60 THEN []-([退]+[])*[]*0.01 ELSE 0 END
,[1-6]=CASE WHEN []>=1 AND []<=6 THEN []-([退])*[]*0.01-[] ELSE 0 END
,[7-12]=CASE WHEN []>=7 AND []<=12 THEN []-([退])*[]*0.01-[] ELSE 0 END
,[1-2]=CASE WHEN []>=13 AND []<=24 THEN []-([退])*[]*0.01-[] ELSE 0 END
,[2-3]=CASE WHEN []>=25 AND []<=36 THEN []-([退])*[]*0.01-[] ELSE 0 END
,[4-5]=CASE WHEN []>=37 AND []<=60 THEN []-([退])*[]*0.01-[] ELSE 0 END
,[5]=CASE WHEN []> 60 THEN []-([退]+[])*[]*0.01 ELSE 0 END
update [ZRP_YingShouMingXi_yuyubo] SET []=CASE WHEN [] > '1990-01-01' AND [] >GETDATE() THEN [] ELSE NULL END
,[]=CASE WHEN (([] <'1990-01-01'OR ([] IS NULL AND [] IS null)) OR [] > GETDATE()) AND []>0 THEN ([]-[退]-[])*[]*0.01*ISNULL([],100)*0.01 ELSE 0 END
,[]=CASE WHEN (([] <'1990-01-01'OR ([] IS NULL AND [] IS null)) OR [] > GETDATE()) AND []>0
THEN ([]-[退])*[]*0.01*ISNULL([],100)*0.01-[] ELSE 0 END
,[]=CASE WHEN [] > 12 THEN '' ELSE '' END ;
@ -376,8 +385,9 @@ UPDATE [ZRP_YingShouMingXi_yuyubo] SET
,[1],[],[],[],CONVERT(NVARCHAR(20),[],23),[],[],[],[],[],[],[]
,[] ,[ID],[],[]
,[ID],[ID],[ID],GETDATE(),0,[1-2],[2-3],[3-4],[4-5],[5]
FROM [ZRP_YingShouMingXi_yuyubo]
WHERE ISNULL([],0)=0
FROM [ZRP_YingShouMingXi_yuyubo] A
WHERE ([]-[退])>[]
ORDER BY A.[ID],[ID],[ID];
update ReceivablesDetailsTable set F_061=B.F_061, F_054=B.F_054 ,F_055=B.F_055,F_056=B.F_056
,F_060=B.F_060,F_057=B.F_057,F_058=B.F_058
@ -395,7 +405,7 @@ GO
--TRUNCATE TABLE dbo.ReceivablesDetailsTable;
EXEC PR_YingShouMingXi_yuyubo
--EXEC PR_YingShouMingXi_yuyubo
--SELECT TOP 10 * FROM ReceivablesDetailsTable

View File

@ -0,0 +1,74 @@
-- 检查存储过程是否存在,存在则删除 P202502080013
IF OBJECT_ID('dbo.[PR_ResetSALORDERPLAN_MBBA_yuyubo]', 'P') IS NOT NULL
BEGIN
DROP PROCEDURE dbo.PR_ResetSALORDERPLAN_MBBA_yuyubo;
PRINT '存储过程 dbo.[PR_ResetSALORDERPLAN_MBBA_yuyubo] 已删除';
END
GO
-- 创建新的存储过程
CREATE PROCEDURE dbo.PR_ResetSALORDERPLAN_MBBA_yuyubo
@saleOrderId INT=0
AS
BEGIN
-- 1. 声明游标
DECLARE cursor_name CURSOR
FOR
SELECT a.F_Amount,b.F_MBBA_Decimal_uky,a.FBILLNO,a.FSALEORGID,a.F_contractnumber,a.fid,b.FENTRYID AS wfid ,b.FRECADVANCEAMOUNT
FROM dbo.T_SAL_ORDER a WITH(NOLOCK) LEFT JOIN dbo.T_SAL_ORDERPLAN b WITH(NOLOCK) ON a.FID=b.FID
INNER JOIN (SELECT DISTINCT [ID],[退],[] from [ZRP_YingShouMingXi_yuyubo] WHERE []>0) cc ON [ID]=a.FID
WHERE (ISNULL(a.F_Amount,0) > 0 AND []-ISNULL(a.F_Amount,0) -[退]>0) AND (a.FID=@saleOrderId OR @saleOrderId=0)
AND b.F_MBBA_DECIMAL_UKY<a.F_Amount
ORDER BY a.fid,wfid
-- 2. 打开游标
OPEN cursor_name;
DECLARE @rowId INT=0,@amount DECIMAL(18,4)=0
-- 3. 循环获取数据
DECLARE @F_AMOUNT DECIMAL(18,2), @F_MBBA_Decimal_uky DECIMAL(18,2),@FBILLNO NVARCHAR(200),@FSALEORGID INT ,@F_contractnumber NVARCHAR(500) ,@fid INT ,@wfid INT,@FRecAdvanceAmount DECIMAL(18,2);
FETCH NEXT FROM cursor_name INTO @F_AMOUNT, @F_MBBA_Decimal_uky,@FBILLNO,@FSALEORGID,@F_contractnumber,@fid,@wfid,@FRecAdvanceAmount;
WHILE @@FETCH_STATUS = 0
BEGIN
-- 数据处理逻辑(示例输出)
--PRINT 'Column1: ' + CAST(@var1 AS VARCHAR) + ', Column2: ' + @var2;
-- 处理收款核销金额
IF(@rowId !=@fid)
BEGIN
SELECT @rowId=@fid,@amount=@F_AMOUNT;
END
IF(@amount>=@FRecAdvanceAmount)
BEGIN
UPDATE T_SAL_ORDERPLAN SET F_MBBA_Decimal_uky=@FRecAdvanceAmount
WHERE FENTRYID=@wfid;
SELECT @amount=@amount-@FRecAdvanceAmount;
END
ELSE
BEGIN
IF(@amount>0)
BEGIN
UPDATE T_SAL_ORDERPLAN SET F_MBBA_Decimal_uky=@amount
WHERE FENTRYID=@wfid;
SELECT @amount=0;
END
END
-- 获取下一条记录
FETCH NEXT FROM cursor_name INTO @F_AMOUNT, @F_MBBA_Decimal_uky,@FBILLNO,@FSALEORGID,@F_contractnumber,@fid,@wfid,@FRecAdvanceAmount;
END;
-- 4. 关闭游标
CLOSE cursor_name;
-- 5. 释放游标资源
DEALLOCATE cursor_name;
END
--EXEC dbo.PR_ResetSALORDERPLAN_MBBA_yuyubo @saleOrderId = 0 -- int
--UPDATE T_SAL_ORDERPLAN SET F_MBBA_Decimal_uky=0