diff --git a/非C#代码文件/收款单核销流水存储过程.sql b/非C#代码文件/收款单核销流水存储过程.sql index 9af6abd..5ec777f 100644 --- a/非C#代码文件/收款单核销流水存储过程.sql +++ b/非C#代码文件/收款单核销流水存储过程.sql @@ -12,6 +12,8 @@ GO CREATE PROCEDURE dbo.PR_YingShouSBU_yuyubo @BeginDATE DATETIME='2000-01-01' AS BEGIN +--UPDATE STATISTICS T_SAL_ORDERENTRY_F; +--UPDATE STATISTICS T_SAL_ORDER; DELETE [ZZZ_HeXiaoBook] WHERE [ShouKuanFDate]>=@BeginDATE OR ShouKuanType>0 @@ -484,6 +486,270 @@ ORDER BY a.FVERIFYSEQ; WHERE a.FSALEORGID=100302) bb 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 --FROM T_AR_RECMacthLog a --LEFT JOIN dbo.T_AR_RECMACTHLOGENTRY b ON a.FID=b.FID diff --git a/非C#代码文件/销售订单可核销金额视图.sql b/非C#代码文件/销售订单可核销金额视图.sql index 0b01669..11dbfe8 100644 --- a/非C#代码文件/销售订单可核销金额视图.sql +++ b/非C#代码文件/销售订单可核销金额视图.sql @@ -6,7 +6,18 @@ GO CREATE VIEW ZZV_SalOrder AS -SELECT * -,(SELECT SUM(f.FAllAmount) FROM T_SAL_ORDERENTRY_F f WHERE f.fid=a.fid AND f.FAllAmount>0) ZhengShuHeJi -FROM dbo.T_SAL_ORDER a -WHERE a.FDOCUMENTSTATUS='C' \ No newline at end of file +--SELECT * +--,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 WITH(NOLOCK) +--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'