11
This commit is contained in:
parent
7d73c70907
commit
2448f50417
10
应收明细SQL.sql
10
应收明细SQL.sql
@ -157,7 +157,7 @@ SELECT A.FID [
|
|||||||
,fin.FSettleCurrId [结算币别ID]
|
,fin.FSettleCurrId [结算币别ID]
|
||||||
, fin.FExchangeRate [汇率]
|
, fin.FExchangeRate [汇率]
|
||||||
, (SELECT TOP 1 FCreditAmount FROM T_CRE_CUSTARCHIVESENTRY aa LEFT JOIN T_BD_CUSTOMER bb ON aa.FObjectId=bb.FCUSTID
|
, (SELECT TOP 1 FCreditAmount FROM T_CRE_CUSTARCHIVESENTRY aa LEFT JOIN T_BD_CUSTOMER bb ON aa.FObjectId=bb.FCUSTID
|
||||||
WHERE aa.FCreditStatus='A' AND aa.FRowAuditStatus='A' AND bb.FNUMBER=Cccc.FNUMBER ORDER BY aa.FExpiryDate desc) [客户信用额度]
|
WHERE aa.FCreditStatus='A' AND aa.FRowAuditStatus='A' AND bb.FNUMBER=Cccc.FNUMBER ORDER BY aa.FExpiryDate DESC) [客户信用额度]
|
||||||
,Cccc.FNUMBER AS [客户编码]
|
,Cccc.FNUMBER AS [客户编码]
|
||||||
,0 [累计到款金额(原币)],0 [应收款合计(原币)]
|
,0 [累计到款金额(原币)],0 [应收款合计(原币)]
|
||||||
,ISNULL(a.F_expenses,0) [运杂费]
|
,ISNULL(a.F_expenses,0) [运杂费]
|
||||||
@ -226,7 +226,7 @@ GROUP BY F_PaperNumber, FSALEORGID
|
|||||||
) AD ON AD.F_PaperNumber = A.F_contractnumber AND ad.FSALEORGID=a.FSALEORGID
|
) AD ON AD.F_PaperNumber = A.F_contractnumber AND ad.FSALEORGID=a.FSALEORGID
|
||||||
|
|
||||||
LEFT JOIN
|
LEFT JOIN
|
||||||
(SELECT distinct F_Papercontract,FSALEORGID FROM T_SAL_DELIVERYNOTICE WITH(NOLOCK) WHERE F_SFYFH ='是') AB
|
(SELECT DISTINCT F_Papercontract,FSALEORGID FROM T_SAL_DELIVERYNOTICE WITH(NOLOCK) WHERE F_SFYFH ='是') AB
|
||||||
ON AB.F_PAPERCONTRACT = A.F_contractnumber AND AB.FSALEORGID=a.FSaleOrgId
|
ON AB.F_PAPERCONTRACT = A.F_contractnumber AND AB.FSALEORGID=a.FSaleOrgId
|
||||||
|
|
||||||
WHERE ( ( A.FSALEORGID = 100302
|
WHERE ( ( A.FSALEORGID = 100302
|
||||||
@ -279,7 +279,7 @@ update [ZRP_YingShouMingXi_yuyubo] set
|
|||||||
,[累计开票金额]=[整单累计开票金额]*[分摊比例]*0.01
|
,[累计开票金额]=[整单累计开票金额]*[分摊比例]*0.01
|
||||||
,[累计到款金额]=[整单累计到款金额]*[分摊比例]*0.01
|
,[累计到款金额]=[整单累计到款金额]*[分摊比例]*0.01
|
||||||
,[收款条件分摊比例]=ISNULL([收款条件分摊比例],100)
|
,[收款条件分摊比例]=ISNULL([收款条件分摊比例],100)
|
||||||
,[运杂费]=[运杂费]*[分摊比例]*0.01*ISNULL([收款条件分摊比例],100)*0.01
|
,[运杂费]=[运杂费]*[分摊比例]*0.01
|
||||||
--UPDATE [ZRP_YingShouMingXi_yuyubo] set [分摊金额]=[订单总额];
|
--UPDATE [ZRP_YingShouMingXi_yuyubo] set [分摊金额]=[订单总额];
|
||||||
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
|
||||||
@ -295,7 +295,9 @@ UPDATE [ZRP_YingShouMingXi_yuyubo] set
|
|||||||
,[项目阶段]= CASE WHEN [项目验收时间]>='1990-01-01' AND [项目验收时间] IS NOT NULL THEN '验收完成'
|
,[项目阶段]= CASE WHEN [项目验收时间]>='1990-01-01' AND [项目验收时间] IS NOT NULL THEN '验收完成'
|
||||||
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([项目进度],'') <> '' 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
|
||||||
|
,[运杂费]=[运杂费]*ISNULL([收款条件分摊比例],100)*0.01
|
||||||
|
;
|
||||||
|
|
||||||
|
|
||||||
SELECT sum(a.实际已出货应收款合计) [实际已出货应收款合计] ,客户编码 INTO #temp2 FROM (
|
SELECT sum(a.实际已出货应收款合计) [实际已出货应收款合计] ,客户编码 INTO #temp2 FROM (
|
||||||
|
@ -3,72 +3,129 @@ IF OBJECT_ID('dbo.[PR_ResetSALORDERPLAN_MBBA_yuyubo]', 'P') IS NOT NULL
|
|||||||
BEGIN
|
BEGIN
|
||||||
DROP PROCEDURE dbo.PR_ResetSALORDERPLAN_MBBA_yuyubo;
|
DROP PROCEDURE dbo.PR_ResetSALORDERPLAN_MBBA_yuyubo;
|
||||||
PRINT '存储过程 dbo.[PR_ResetSALORDERPLAN_MBBA_yuyubo] 已删除';
|
PRINT '存储过程 dbo.[PR_ResetSALORDERPLAN_MBBA_yuyubo] 已删除';
|
||||||
END
|
END;
|
||||||
GO
|
GO
|
||||||
|
|
||||||
-- 创建新的存储过程
|
-- 创建新的存储过程
|
||||||
CREATE PROCEDURE dbo.PR_ResetSALORDERPLAN_MBBA_yuyubo
|
CREATE PROCEDURE dbo.PR_ResetSALORDERPLAN_MBBA_yuyubo @saleOrderId INT = 0
|
||||||
@saleOrderId INT=0
|
|
||||||
AS
|
AS
|
||||||
BEGIN
|
BEGIN
|
||||||
-- 1. 声明游标
|
-- 1. 声明游标
|
||||||
DECLARE cursor_name CURSOR
|
DECLARE cursor_name CURSOR FOR
|
||||||
FOR
|
SELECT a.F_AMOUNT,
|
||||||
SELECT a.F_Amount,b.F_MBBA_Decimal_uky,a.FBILLNO,a.FSALEORGID,a.F_contractnumber,a.fid,b.FENTRYID AS wfid ,b.FRECADVANCEAMOUNT,a.F_EXPENSES
|
b.F_MBBA_DECIMAL_UKY,
|
||||||
FROM dbo.T_SAL_ORDER a WITH(NOLOCK) LEFT JOIN dbo.T_SAL_ORDERPLAN b WITH(NOLOCK) ON a.FID=b.FID
|
a.FBILLNO,
|
||||||
INNER JOIN (SELECT DISTINCT [销售单主键ID],[整单累计退货金额],[整单正数订单总额] from [ZRP_YingShouMingXi_yuyubo] WHERE [整单正数订单总额]>0) cc ON [销售单主键ID]=a.FID
|
a.FSALEORGID,
|
||||||
WHERE (ISNULL(a.F_Amount,0) > 0 AND [整单正数订单总额]-ISNULL(a.F_Amount,0) -[整单累计退货金额]>0) AND (a.FID=@saleOrderId OR @saleOrderId=0)
|
a.F_CONTRACTNUMBER,
|
||||||
AND b.F_MBBA_DECIMAL_UKY<a.F_Amount
|
a.FID,
|
||||||
ORDER BY a.fid,wfid
|
b.FENTRYID AS wfid,
|
||||||
|
b.FRECADVANCEAMOUNT,
|
||||||
|
a.F_EXPENSES
|
||||||
|
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
|
||||||
|
OR a.FID = @saleOrderId
|
||||||
|
ORDER BY a.FID,
|
||||||
|
wfid;
|
||||||
|
|
||||||
-- 2. 打开游标
|
-- 2. 打开游标
|
||||||
OPEN cursor_name;
|
OPEN cursor_name;
|
||||||
DECLARE @rowId INT=0,@amount DECIMAL(18,4)=0
|
DECLARE @rowId INT = 0,
|
||||||
-- 3. 循环获取数据
|
@amount DECIMAL(18, 4) = 0;
|
||||||
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),@F_EXPENSES DECIMAL(18,6) ;
|
-- 3. 循环获取数据
|
||||||
FETCH NEXT FROM cursor_name INTO @F_AMOUNT, @F_MBBA_Decimal_uky,@FBILLNO,@FSALEORGID,@F_contractnumber,@fid,@wfid,@FRecAdvanceAmount,@F_EXPENSES;
|
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),
|
||||||
|
@F_EXPENSES DECIMAL(18, 6);
|
||||||
|
FETCH NEXT FROM cursor_name
|
||||||
|
INTO @F_AMOUNT,
|
||||||
|
@F_MBBA_Decimal_uky,
|
||||||
|
@FBILLNO,
|
||||||
|
@FSALEORGID,
|
||||||
|
@F_contractnumber,
|
||||||
|
@fid,
|
||||||
|
@wfid,
|
||||||
|
@FRecAdvanceAmount,
|
||||||
|
@F_EXPENSES;
|
||||||
|
|
||||||
WHILE @@FETCH_STATUS = 0
|
WHILE @@FETCH_STATUS = 0
|
||||||
BEGIN
|
BEGIN
|
||||||
-- 数据处理逻辑(示例输出)
|
-- 数据处理逻辑(示例输出)
|
||||||
--PRINT 'Column1: ' + CAST(@var1 AS VARCHAR) + ', Column2: ' + @var2;
|
--PRINT 'Column1: ' + CAST(@var1 AS VARCHAR) + ', Column2: ' + @var2;
|
||||||
-- 处理收款核销金额
|
-- 处理收款核销金额
|
||||||
IF(@rowId !=@fid)
|
IF (@rowId != @fid)
|
||||||
BEGIN
|
BEGIN
|
||||||
SELECT @rowId=@fid,@amount=@F_AMOUNT-@F_EXPENSES;
|
SELECT @rowId = @fid,
|
||||||
END
|
@amount = @F_AMOUNT - @F_EXPENSES;
|
||||||
|
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,
|
||||||
|
@F_EXPENSES;
|
||||||
|
END;
|
||||||
|
|
||||||
|
-- 4. 关闭游标
|
||||||
|
CLOSE cursor_name;
|
||||||
|
|
||||||
|
-- 5. 释放游标资源
|
||||||
|
DEALLOCATE cursor_name;
|
||||||
|
|
||||||
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,@F_EXPENSES;
|
|
||||||
END;
|
END;
|
||||||
|
|
||||||
-- 4. 关闭游标
|
|
||||||
CLOSE cursor_name;
|
|
||||||
|
|
||||||
-- 5. 释放游标资源
|
|
||||||
DEALLOCATE cursor_name;
|
|
||||||
|
|
||||||
|
|
||||||
END
|
|
||||||
|
|
||||||
|
|
||||||
--EXEC dbo.PR_ResetSALORDERPLAN_MBBA_yuyubo @saleOrderId = 0 -- int
|
--EXEC dbo.PR_ResetSALORDERPLAN_MBBA_yuyubo @saleOrderId = 0 -- int
|
||||||
|
|
||||||
|
|
||||||
--UPDATE T_SAL_ORDERPLAN SET F_MBBA_Decimal_uky=0
|
--UPDATE T_SAL_ORDERPLAN SET F_MBBA_Decimal_uky=0
|
Loading…
x
Reference in New Issue
Block a user