This commit is contained in:
余宇波 2025-09-15 17:08:28 +08:00
parent b9661bbe9c
commit a9a35d3925
2 changed files with 281 additions and 4 deletions

View File

@ -12,6 +12,8 @@ GO
CREATE PROCEDURE dbo.PR_YingShouSBU_yuyubo @BeginDATE DATETIME='2000-01-01' CREATE PROCEDURE dbo.PR_YingShouSBU_yuyubo @BeginDATE DATETIME='2000-01-01'
AS AS
BEGIN BEGIN
--UPDATE STATISTICS T_SAL_ORDERENTRY_F;
--UPDATE STATISTICS T_SAL_ORDER;
DELETE [ZZZ_HeXiaoBook] WHERE [ShouKuanFDate]>=@BeginDATE DELETE [ZZZ_HeXiaoBook] WHERE [ShouKuanFDate]>=@BeginDATE
OR ShouKuanType>0 OR ShouKuanType>0
@ -484,6 +486,270 @@ ORDER BY a.FVERIFYSEQ;
WHERE a.FSALEORGID=100302) bb WHERE a.FSALEORGID=100302) bb
WHERE FSALEORGID=100302 AND T_AR_RECEIVEBILL.fid=bb.fid AND bb.hetong IS NOT NULL; WHERE FSALEORGID=100302 AND T_AR_RECEIVEBILL.fid=bb.fid AND bb.hetong IS NOT NULL;
PRINT '退款核销流水';
----------------退----------- F_refundAmount F_TuiKuan_Amount
--SELECT a.fid,a.FBILLNO,b.FBILLNO2,b.FTYPE ,b.FALLAMOUNT22,c.FID,b.fid,c.FEntryID,b.FEntryID,b.FCONTRACTNUMBER
-- ,c.FBILLNO3,c.FCONTRACTNUMBER2 FROM T_RefundWrireRecord a
--LEFT JOIN T_RefundWrireRecordEntry b ON a.FID=b.FID
--LEFT JOIN T_RefundWrireRecordEntry2 c ON a.FID=c.FID
--WHERE a.FDOCUMENTSTATUS='C'
DECLARE @type1 NVARCHAR(50),
@tuiKuanBill NVARCHAR(50);
-- 1. 声明游标
DECLARE TuiKuanRecord CURSOR FOR
SELECT F_YEWUDATE,
FID,
F_NOTE
FROM T_RefundWrireRecord
WHERE FDOCUMENTSTATUS = 'C'
--AND F_YEWUDATE >= @BeginDATE
ORDER BY F_YEWUDATE;
OPEN TuiKuanRecord;
FETCH NEXT FROM TuiKuanRecord
INTO @FDATE,
@ShouKuanFID,
@remark;
WHILE @@FETCH_STATUS = 0
BEGIN
SELECT @hexiao = 0;
---退--
SELECT @fid2 = 0,
@fid3 = 0;
DECLARE cursor_TuiKuanRecord1 CURSOR FOR
SELECT FTYPE,
FCONTRACTNUMBER,
FALLAMOUNT22
FROM dbo.T_RefundWrireRecordEntry
WHERE FID = @ShouKuanFID;
OPEN cursor_TuiKuanRecord1;
FETCH NEXT FROM cursor_TuiKuanRecord1
INTO @type1,
@FBILLNO,
@hexiao;
WHILE @@FETCH_STATUS = 0
BEGIN
SELECT @tuiKuanBill = FBILLNO3,
@fid2 = FID
FROM T_RefundWrireRecordEntry2
WHERE FID = @ShouKuanFID;
IF (@type1 = '销售订单')
BEGIN
IF (
(
SELECT COUNT(1)FROM T_RefundWrireRecordEntry2 WHERE FID = @ShouKuanFID
) < 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,
@fid2,
@tuiKuanBill,
@FDATE,
@hexiao,
a.FSALEORGID,
'销售退款记录单多V1',
@ShouKuanFID,
dd.FEXCHANGERATE,
FSETTLECURRID,
FLOCALCURRID,
3,
@remark
FROM T_SAL_ORDER a
LEFT JOIN T_SAL_ORDERFIN dd
ON a.FID = dd.FID
WHERE a.FBILLNO = @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,
e.FID,
e.FBILLNO,
@FDATE,
c.FALLAMOUNT33,
a.FSALEORGID,
'销售退款记录单1V多',
@ShouKuanFID,
dd.FEXCHANGERATE,
FSETTLECURRID,
FLOCALCURRID,
3,
head.F_NOTE
FROM T_SAL_ORDER a
LEFT JOIN T_RefundWrireRecordEntry b
ON a.FBILLNO = b.FCONTRACTNUMBER
LEFT JOIN T_RefundWrireRecordEntry2 c
ON b.FID = c.FID
LEFT JOIN T_SAL_ORDERFIN dd
ON a.FID = dd.FID
LEFT JOIN T_RefundWrireRecord head
ON b.FID = head.FID
LEFT JOIN T_AR_REFUNDBILL e
ON c.FBILLNO3 = e.FBILLNO
WHERE b.FID = @ShouKuanFID);
END;
END;
ELSE IF (@type1 = '收款单')
BEGIN
IF (
(
SELECT COUNT(1)FROM T_RefundWrireRecordEntry2 WHERE FID = @ShouKuanFID
) < 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,
@tuiKuanBill,
@FDATE,
@hexiao,
a.FSALEORGID,
'收款退款记录单多V1',
@ShouKuanFID,
a.FEXCHANGERATE,
FCURRENCYID,
FMAINBOOKCURID,
3,
@remark
FROM T_AR_RECEIVEBILL a
WHERE a.FBILLNO = @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,
e.FID,
e.FBILLNO,
@FDATE,
c.FALLAMOUNT33,
a.FSALEORGID,
'收款退款记录单1V多',
@ShouKuanFID,
a.FEXCHANGERATE,
a.FCURRENCYID,
a.FMAINBOOKCURID,
4,
head.F_NOTE
FROM T_AR_RECEIVEBILL a
LEFT JOIN T_RefundWrireRecordEntry b
ON a.FBILLNO = b.FCONTRACTNUMBER
LEFT JOIN T_RefundWrireRecordEntry2 c
ON b.FID = c.FID
LEFT JOIN T_RefundWrireRecord head
ON b.FID = head.FID
LEFT JOIN T_AR_REFUNDBILL e
ON c.FBILLNO3 = e.FBILLNO
WHERE b.FID = @ShouKuanFID);
END;
END;
-- 获取下一条记录
FETCH NEXT FROM cursor_TuiKuanRecord1
INTO @type1,
@FBILLNO,
@hexiao;
END;
-- 4. 关闭游标
CLOSE cursor_TuiKuanRecord1;
-- 5. 释放游标资源
DEALLOCATE cursor_TuiKuanRecord1;
-- 获取下一条记录
FETCH NEXT FROM TuiKuanRecord
INTO @FDATE,
@ShouKuanFID,
@remark;
END;
-- 4. 关闭游标
CLOSE TuiKuanRecord;
-- 5. 释放游标资源
DEALLOCATE TuiKuanRecord;
--SELECT FVERIFYDATE,FBILLFORMID, FVERIFYSEQ,FSOURCETYPE,FCURWRITTENOFFAMOUNTFOR,FCURWRITTENOFFAMOUNT,FSRCBILLNO,b.FEXCHANGERATE,FCURTAXMATCHAMOUNT,FCURNOTAXMATCHAMOUNT ,FSRCBILLID,a.FMATCHMETHODID --SELECT FVERIFYDATE,FBILLFORMID, FVERIFYSEQ,FSOURCETYPE,FCURWRITTENOFFAMOUNTFOR,FCURWRITTENOFFAMOUNT,FSRCBILLNO,b.FEXCHANGERATE,FCURTAXMATCHAMOUNT,FCURNOTAXMATCHAMOUNT ,FSRCBILLID,a.FMATCHMETHODID
--FROM T_AR_RECMacthLog a --FROM T_AR_RECMacthLog a
--LEFT JOIN dbo.T_AR_RECMACTHLOGENTRY b ON a.FID=b.FID --LEFT JOIN dbo.T_AR_RECMACTHLOGENTRY b ON a.FID=b.FID

View File

@ -6,7 +6,18 @@ GO
CREATE VIEW ZZV_SalOrder CREATE VIEW ZZV_SalOrder
AS AS
SELECT * --SELECT *
,(SELECT SUM(f.FAllAmount) FROM T_SAL_ORDERENTRY_F f WHERE f.fid=a.fid AND f.FAllAmount>0) ZhengShuHeJi --,CONVERT(DECIMAL(23,2),ISNULL((SELECT SUM(f.FAllAmount) FROM T_SAL_ORDERENTRY_F f WITH(NOLOCK) WHERE f.fid=a.fid AND f.FAllAmount>0),0.00)) ZhengShuHeJi
FROM dbo.T_SAL_ORDER a --FROM dbo.T_SAL_ORDER a WITH(NOLOCK)
WHERE a.FDOCUMENTSTATUS='C' --WHERE a.FDOCUMENTSTATUS='C'
SELECT *,
CASE WHEN EXISTS (
SELECT 1 FROM T_SAL_ORDERENTRY_F f WITH(NOLOCK)
WHERE f.fid = a.fid AND f.FAllAmount > 0
) THEN CONVERT(DECIMAL(23,2),
(SELECT SUM(f.FAllAmount) FROM T_SAL_ORDERENTRY_F f WITH(NOLOCK)
WHERE f.fid = a.fid AND f.FAllAmount > 0)
) ELSE 0.00 END AS ZhengShuHeJi
FROM dbo.T_SAL_ORDER a WITH(NOLOCK)
WHERE a.FDOCUMENTSTATUS = 'C'