2025-05-12 09:24:39 +08:00
|
|
|
|
-- <20><><EFBFBD><EFBFBD><EFBFBD>洢<EFBFBD><E6B4A2><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>ڣ<EFBFBD><DAA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE> P202502080013
|
|
|
|
|
|
IF OBJECT_ID('dbo.[PR_ResetSALORDERPLAN_MBBA_yuyubo]', 'P') IS NOT NULL
|
|
|
|
|
|
BEGIN
|
|
|
|
|
|
DROP PROCEDURE dbo.PR_ResetSALORDERPLAN_MBBA_yuyubo;
|
|
|
|
|
|
PRINT '<EFBFBD>洢<EFBFBD><EFBFBD><EFBFBD><EFBFBD> dbo.[PR_ResetSALORDERPLAN_MBBA_yuyubo] <20><>ɾ<EFBFBD><C9BE>';
|
2025-06-09 18:49:39 +08:00
|
|
|
|
END;
|
2025-05-12 09:24:39 +08:00
|
|
|
|
GO
|
|
|
|
|
|
|
|
|
|
|
|
-- <20><><EFBFBD><EFBFBD><EFBFBD>µĴ洢<C4B4><E6B4A2><EFBFBD><EFBFBD>
|
2025-06-09 18:49:39 +08:00
|
|
|
|
CREATE PROCEDURE dbo.PR_ResetSALORDERPLAN_MBBA_yuyubo @saleOrderId INT = 0
|
|
|
|
|
|
AS
|
|
|
|
|
|
BEGIN
|
|
|
|
|
|
-- 1. <20><><EFBFBD><EFBFBD><EFBFBD>α<EFBFBD>
|
|
|
|
|
|
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,
|
2025-11-03 13:52:00 +08:00
|
|
|
|
a.F_EXPENSES,b.FRecAdvanceRate,a.F_TotalPositiveAmount,fin.FExchangeRate
|
2025-06-09 18:49:39 +08:00
|
|
|
|
FROM dbo.T_SAL_ORDER a WITH (NOLOCK)
|
|
|
|
|
|
LEFT JOIN dbo.T_SAL_ORDERPLAN b WITH (NOLOCK)
|
|
|
|
|
|
ON a.FID = b.FID
|
2025-11-03 13:52:00 +08:00
|
|
|
|
LEFT JOIN T_SAL_RETURNNOTICEFIN fin WITH (NOLOCK)
|
|
|
|
|
|
ON a.fid=fin.FID
|
2025-06-21 11:07:26 +08:00
|
|
|
|
--INNER JOIN
|
|
|
|
|
|
--(
|
|
|
|
|
|
-- SELECT DISTINCT
|
|
|
|
|
|
-- [<5B><><EFBFBD>۵<EFBFBD><DBB5><EFBFBD><EFBFBD><EFBFBD>ID],
|
|
|
|
|
|
-- [<5B><><EFBFBD><EFBFBD><EFBFBD>ۼ<EFBFBD><DBBC>˻<EFBFBD><CBBB><EFBFBD><EFBFBD><EFBFBD>],
|
|
|
|
|
|
-- [<5B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܶ<EFBFBD>]
|
|
|
|
|
|
-- FROM [ZRP_YingShouMingXi_yuyubo]
|
|
|
|
|
|
-- WHERE [<5B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܶ<EFBFBD>] > 0
|
|
|
|
|
|
--) cc
|
|
|
|
|
|
-- ON [<5B><><EFBFBD>۵<EFBFBD><DBB5><EFBFBD><EFBFBD><EFBFBD>ID] = a.FID
|
|
|
|
|
|
WHERE
|
|
|
|
|
|
--(
|
|
|
|
|
|
-- ISNULL(a.F_AMOUNT, 0) > 0
|
|
|
|
|
|
-- AND [<5B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܶ<EFBFBD>] - ISNULL(a.F_AMOUNT, 0) - [<5B><><EFBFBD><EFBFBD><EFBFBD>ۼ<EFBFBD><DBBC>˻<EFBFBD><CBBB><EFBFBD><EFBFBD><EFBFBD>] > 0
|
|
|
|
|
|
-- )
|
|
|
|
|
|
-- AND
|
2025-06-09 18:49:39 +08:00
|
|
|
|
(
|
|
|
|
|
|
a.FID = @saleOrderId
|
|
|
|
|
|
OR @saleOrderId = 0
|
|
|
|
|
|
)
|
2025-06-21 11:07:26 +08:00
|
|
|
|
--AND b.F_MBBA_DECIMAL_UKY < a.F_AMOUNT
|
2025-06-09 18:49:39 +08:00
|
|
|
|
OR a.FID = @saleOrderId
|
|
|
|
|
|
ORDER BY a.FID,
|
|
|
|
|
|
wfid;
|
2025-05-12 09:24:39 +08:00
|
|
|
|
|
2025-06-09 18:49:39 +08:00
|
|
|
|
-- 2. <20><><EFBFBD><EFBFBD><EFBFBD>α<EFBFBD>
|
|
|
|
|
|
OPEN cursor_name;
|
|
|
|
|
|
DECLARE @rowId INT = 0,
|
|
|
|
|
|
@amount DECIMAL(18, 4) = 0;
|
|
|
|
|
|
-- 3. ѭ<><D1AD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
|
|
|
|
|
|
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),
|
2025-11-03 13:52:00 +08:00
|
|
|
|
@F_EXPENSES DECIMAL(18, 6),
|
|
|
|
|
|
@FRecAdvanceRate DECIMAL(18, 6) ,
|
|
|
|
|
|
@F_TotalPositiveAmount DECIMAL(18, 6),
|
|
|
|
|
|
@FExchangeRate DECIMAL(18, 4);
|
2025-06-09 18:49:39 +08:00
|
|
|
|
FETCH NEXT FROM cursor_name
|
|
|
|
|
|
INTO @F_AMOUNT,
|
|
|
|
|
|
@F_MBBA_Decimal_uky,
|
|
|
|
|
|
@FBILLNO,
|
|
|
|
|
|
@FSALEORGID,
|
|
|
|
|
|
@F_contractnumber,
|
|
|
|
|
|
@fid,
|
|
|
|
|
|
@wfid,
|
|
|
|
|
|
@FRecAdvanceAmount,
|
2025-11-03 13:52:00 +08:00
|
|
|
|
@F_EXPENSES,
|
|
|
|
|
|
@FRecAdvanceRate,
|
|
|
|
|
|
@F_TotalPositiveAmount ,
|
|
|
|
|
|
@FExchangeRate ;
|
2025-06-09 18:49:39 +08:00
|
|
|
|
WHILE @@FETCH_STATUS = 0
|
|
|
|
|
|
BEGIN
|
|
|
|
|
|
-- <20><><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD><EFBFBD><EFBFBD><DFBC><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
--PRINT 'Column1: ' + CAST(@var1 AS VARCHAR) + ', Column2: ' + @var2;
|
|
|
|
|
|
-- <20><><EFBFBD><EFBFBD><EFBFBD>տ<EFBFBD><D5BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
IF (@rowId != @fid)
|
|
|
|
|
|
BEGIN
|
2025-08-28 13:26:51 +08:00
|
|
|
|
SELECT @rowId = @fid,@amount = @F_AMOUNT;
|
|
|
|
|
|
--@amount = @F_AMOUNT - @F_EXPENSES;
|
2025-11-03 13:52:00 +08:00
|
|
|
|
SELECT @FRecAdvanceAmount=@F_TotalPositiveAmount/@FExchangeRate*@FRecAdvanceRate*0.01;
|
2025-06-09 18:49:39 +08:00
|
|
|
|
END;
|
2025-06-09 18:50:43 +08:00
|
|
|
|
PRINT @amount;
|
2025-07-05 14:29:43 +08:00
|
|
|
|
IF (@amount >= @FRecAdvanceAmount and @FRecAdvanceAmount>0)
|
2025-06-09 18:49:39 +08:00
|
|
|
|
BEGIN
|
2025-08-28 13:26:51 +08:00
|
|
|
|
DECLARE @tempF_EXPENSES DECIMAL(18,2)=0;---<EFBFBD><EFBFBD>ʱ<EFBFBD>˷ѱ<EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
2025-06-09 18:49:39 +08:00
|
|
|
|
UPDATE T_SAL_ORDERPLAN
|
2025-11-03 13:52:00 +08:00
|
|
|
|
SET F_MBBA_DECIMAL_UKY = @FRecAdvanceAmount+@F_EXPENSES*FRECADVANCERATE*0.01,@tempF_EXPENSES=@F_EXPENSES*FRECADVANCERATE*0.01
|
2025-06-09 18:49:39 +08:00
|
|
|
|
WHERE FENTRYID = @wfid;
|
2025-08-28 13:26:51 +08:00
|
|
|
|
SELECT @amount = @amount - @FRecAdvanceAmount-@tempF_EXPENSES;
|
2025-06-09 18:49:39 +08:00
|
|
|
|
END;
|
|
|
|
|
|
ELSE
|
|
|
|
|
|
BEGIN
|
|
|
|
|
|
IF (@amount >= 0)
|
|
|
|
|
|
BEGIN
|
|
|
|
|
|
UPDATE T_SAL_ORDERPLAN
|
|
|
|
|
|
SET F_MBBA_DECIMAL_UKY = @amount
|
|
|
|
|
|
WHERE FENTRYID = @wfid;
|
|
|
|
|
|
SELECT @amount = 0;
|
|
|
|
|
|
END;
|
2025-06-09 18:50:43 +08:00
|
|
|
|
ELSE
|
|
|
|
|
|
BEGIN
|
|
|
|
|
|
UPDATE T_SAL_ORDERPLAN
|
|
|
|
|
|
SET F_MBBA_DECIMAL_UKY = 0
|
|
|
|
|
|
WHERE FENTRYID = @wfid;
|
|
|
|
|
|
SELECT @amount = 0;
|
|
|
|
|
|
END;
|
|
|
|
|
|
|
2025-06-09 18:49:39 +08:00
|
|
|
|
END;
|
2025-05-12 09:24:39 +08:00
|
|
|
|
|
2025-06-09 18:49:39 +08:00
|
|
|
|
-- <20><>ȡ<EFBFBD><C8A1>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>¼
|
|
|
|
|
|
FETCH NEXT FROM cursor_name
|
|
|
|
|
|
INTO @F_AMOUNT,
|
|
|
|
|
|
@F_MBBA_Decimal_uky,
|
|
|
|
|
|
@FBILLNO,
|
|
|
|
|
|
@FSALEORGID,
|
|
|
|
|
|
@F_contractnumber,
|
|
|
|
|
|
@fid,
|
|
|
|
|
|
@wfid,
|
|
|
|
|
|
@FRecAdvanceAmount,
|
2025-11-03 13:52:00 +08:00
|
|
|
|
@F_EXPENSES,
|
|
|
|
|
|
@FRecAdvanceRate,
|
|
|
|
|
|
@F_TotalPositiveAmount ,
|
|
|
|
|
|
@FExchangeRate ;
|
2025-06-09 18:49:39 +08:00
|
|
|
|
END;
|
2025-05-12 09:24:39 +08:00
|
|
|
|
|
2025-06-09 18:49:39 +08:00
|
|
|
|
-- 4. <20>ر<EFBFBD><D8B1>α<EFBFBD>
|
|
|
|
|
|
CLOSE cursor_name;
|
2025-05-12 09:24:39 +08:00
|
|
|
|
|
2025-06-09 18:49:39 +08:00
|
|
|
|
-- 5. <20>ͷ<EFBFBD><CDB7>α<EFBFBD><CEB1><EFBFBD>Դ
|
|
|
|
|
|
DEALLOCATE cursor_name;
|
2025-05-12 09:24:39 +08:00
|
|
|
|
|
|
|
|
|
|
|
2025-06-09 18:49:39 +08:00
|
|
|
|
END;
|
2025-05-12 09:24:39 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
--EXEC dbo.PR_ResetSALORDERPLAN_MBBA_yuyubo @saleOrderId = 0 -- int
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-06-09 18:49:39 +08:00
|
|
|
|
--UPDATE T_SAL_ORDERPLAN SET F_MBBA_Decimal_uky=0
|