Project

General

Profile

6.0 LIET KE CHUNG TU.txt

Luc Tran Van, 03/09/2021 04:31 PM

 
1

    
2
ALTER PROCEDURE [dbo].[rpt_PAY_LIET_KE_CHUNG_TU_BanViet] @p_DATE VARCHAR(10), @p_BRANCH_ID VARCHAR(15) ='', @p_MAKER_ID VARCHAR(15) =NULL
3
AS
4

    
5
-- LẤY MỖI SỐ REF NO RA
6
--DECLARE @ET TABLE (REF_NO VARCHAR(25), TK_NO VARCHAR(15), TK_CO VARCHAR(15), BRN_NO VARCHAR(15), BRANCH_CO VARCHAR(15), DEP_NO VARCHAR(15), DEP_CO VARCHAR(15))
7
--SELECT * FROM PAY_ENTRIES_POST WHERE TRN_ID='TRPTF0000000018' AND REF_NO ='069CCfffyutmyiiii09'
8
--1 LẤY DANH SÁCH HẠCH TOÁN THEO TỪNG REF NO 
9
--
10
DECLARE @REF_NO VARCHAR(45), @DR_ACCT VARCHAR(15), @CR_ACCT VARCHAR(15), @TRN_DATE VARCHAR(15), @TRN_ID VARCHAR(15), @DR_BRN VARCHAR(15), @CR_BRN VARCHAR(15), @DR_DEP VARCHAR(15), @CR_DEP VARCHAR(15),
11
@TRN_DESC VARCHAR(250),@MAKER_ID VARCHAR(15), @CHECKER_ID VARCHAR(15),@ET_ID VARCHAR(15), @AMT_DRCR DECIMAL(18,0), @INDEX_STT INT =0
12
DECLARE @TABLE_REF_NO TABLE (ID INT IDENTITY(1,1),REF_NO VARCHAR(25), TRN_ID VARCHAR(15))
13
INSERT INTO @TABLE_REF_NO SELECT DISTINCT A.REF_NO, TRN_ID FROM PAY_ENTRIES_POST A
14
WHERE (A.REF_NO IS NOT NULL AND A.REF_NO <> '' )
15
AND (CONVERT(DATE, A.TRN_DATE, 103) = CONVERT(DATE, @p_DATE, 103))
16
AND A.DO_BRN=@p_BRANCH_ID
17
AND(A.MAKER_ID=@p_MAKER_ID OR @p_MAKER_ID IS NULL OR @p_MAKER_ID='')
18
AND (A.EXP_TO_CORE='Y' OR A.EXP_TO_CORE ='1')
19

    
20
-- KHAI BAO TABLE CHUA THÔNG TIN HẠCH TOÁN THEO CẤU TRÚC NỢ - CÓ CHUNG 1 HÀNG
21
DECLARE @MW_ENTRIES_POST TABLE (ID INT IDENTITY(1,1),TRN_DATE VARCHAR(15), TRN_ID VARCHAR(15),ET_ID VARCHAR(15), DR_BRANCH_CODE VARCHAR(15),DR_BRN VARCHAR(15), CR_BRANCH_CODE VARCHAR(15),
22
		CR_BRN VARCHAR(15),AMT DECIMAL(18,0),TRN_DESC NVARCHAR(1000),MAKER_ID VARCHAR(15),CHECKER_ID VARCHAR(15), DO_BRN VARCHAR(15),EXP_TO_CORE VARCHAR(1),REF_NO VARCHAR(50), CRDR VARCHAR(15), STT INT)
23
--TABLE CHUA DANH SACH HACH TOAN CÓ
24
DECLARE @ET_CR_DR TABLE (ID INT IDENTITY(1,1),TK VARCHAR(15), DV VARCHAR(15), AMT DECIMAL(18,0),ET_ID VARCHAR(15))
25
WHILE((SELECT COUNT(*) FROM @TABLE_REF_NO) >0)
26
BEGIN
27
	SET @REF_NO =(SELECT TOP 1 REF_NO FROM @TABLE_REF_NO)
28
	PRINT @REF_NO
29
	IF(NOT EXISTS(SELECT * FROM @MW_ENTRIES_POST WHERE TRN_ID =(SELECT TOP 1 TRN_ID WHERE REF_NO =@REF_NO)))
30
	BEGIN
31
		SET @INDEX_STT = @INDEX_STT +1
32
	END
33
	SET @TRN_DATE =(SELECT TOP 1 FORMAT(TRN_DATE,'dd/MM/yyyy') FROM PAY_ENTRIES_POST WHERE REF_NO =@REF_NO)
34
	PRINT @TRN_DATE
35
	SET @TRN_ID =(SELECT TOP 1 TRN_ID FROM PAY_ENTRIES_POST WHERE REF_NO =@REF_NO)
36
	SET @TRN_DESC =(SELECT TOP 1 TRN_DESC FROM PAY_ENTRIES_POST WHERE REF_NO =@REF_NO)
37
	SET @MAKER_ID =(SELECT TOP 1 MAKER_ID FROM PAY_ENTRIES_POST WHERE REF_NO =@REF_NO)
38
	SET @CHECKER_ID =(SELECT TOP 1 CHECKER_ID FROM PAY_ENTRIES_POST WHERE REF_NO =@REF_NO)
39
	--SET @AMT =(SELECT TOP 1 AMT FROM PAY_ENTRIES_POST WHERE REF_NO =@REF_NO)
40
	IF((SELECT COUNT(*)  FROM PAY_ENTRIES_POST WHERE REF_NO =@REF_NO AND DRCR ='D')=1)
41
	BEGIN
42
		-- TAI KHOAN NO
43
		SET @DR_ACCT =(SELECT TOP 1 ACCT FROM PAY_ENTRIES_POST WHERE REF_NO =@REF_NO AND DRCR ='D')
44
		SET @DR_BRN =(SELECT TOP 1 BRN_ID FROM PAY_ENTRIES_POST WHERE REF_NO =@REF_NO AND DRCR ='D')
45
		--SET @DR_BRN =(SELECT TOP 1 DEPT_ID FROM PAY_ENTRIES_POST WHERE REF_NO =@REF_NO AND DRCR ='D')
46
		SET @ET_ID = (SELECT TOP 1 ET_ID FROM PAY_ENTRIES_POST WHERE REF_NO =@REF_NO AND DRCR ='D')
47
		SET @AMT_DRCR =(SELECT TOP 1 AMT FROM PAY_ENTRIES_POST WHERE REF_NO =@REF_NO AND DRCR='D')
48
		-- ĐỔ DỮ LIỆU VÀO BẢNG CHƯA HẠCH TOÁN CÓ
49
		INSERT INTO @ET_CR_DR SELECT ACCT,BRN_ID,AMT ,ET_ID FROM PAY_ENTRIES_POST WHERE REF_NO =@REF_NO AND DRCR ='C'
50
		--SELECT * FROM @ET_CO
51
		INSERT INTO @MW_ENTRIES_POST VALUES (@TRN_DATE,@TRN_ID,(SELECT TOP 1 ET_ID FROM @ET_CR_DR) ,@DR_ACCT ,@DR_BRN,'','',@AMT_DRCR,
52
			@TRN_DESC,UPPER(@MAKER_ID),UPPER(@CHECKER_ID),'DV0001','Y',@REF_NO,'D',@INDEX_STT)
53
		WHILE ((SELECT COUNT(*) FROM @ET_CR_DR)>0)
54
		BEGIN
55
			INSERT INTO @MW_ENTRIES_POST VALUES (@TRN_DATE,@TRN_ID,(SELECT TOP 1 ET_ID FROM @ET_CR_DR) ,'' ,'',(SELECT TOP 1 TK FROM @ET_CR_DR),(SELECT TOP 1 DV FROM @ET_CR_DR),(SELECT TOP 1 AMT FROM @ET_CR_DR),
56
			@TRN_DESC,UPPER(@MAKER_ID),UPPER(@CHECKER_ID),'DV0001','Y',@REF_NO,'C',@INDEX_STT)
57
			DELETE FROM @ET_CR_DR WHERE ID =(SELECT TOP 1 ID FROM @ET_CR_DR)
58
		END
59
	END
60
	ELSE
61
	BEGIN -- XỬ LÝ NẾU 1 CÓ NHIỀU NỢ
62
		-- TAI KHOAN NO
63
		SET @CR_ACCT =(SELECT TOP 1 ACCT FROM PAY_ENTRIES_POST WHERE REF_NO =@REF_NO AND DRCR ='C')
64
		SET @CR_BRN =(SELECT TOP 1 BRN_ID FROM PAY_ENTRIES_POST WHERE REF_NO =@REF_NO AND DRCR ='C')
65
		SET @CR_DEP =(SELECT TOP 1 DEPT_ID FROM PAY_ENTRIES_POST WHERE REF_NO =@REF_NO AND DRCR ='C')
66
		SET @AMT_DRCR =(SELECT TOP 1 AMT FROM PAY_ENTRIES_POST WHERE REF_NO =@REF_NO AND DRCR='C')
67
		-- ĐỔ DỮ LIỆU VÀO BẢNG CHƯA HẠCH TOÁN CÓ
68
		INSERT INTO @ET_CR_DR SELECT ACCT,BRN_ID,AMT,ET_ID  FROM PAY_ENTRIES_POST WHERE REF_NO =@REF_NO AND DRCR ='D'
69
		INSERT INTO @MW_ENTRIES_POST VALUES (@TRN_DATE,@TRN_ID,(SELECT TOP 1 ET_ID FROM @ET_CR_DR),'','',@CR_ACCT,@CR_BRN,@AMT_DRCR,
70
			@TRN_DESC,UPPER(@MAKER_ID),UPPER(@CHECKER_ID),'DV0001','Y',@REF_NO,'C',@INDEX_STT)
71
		WHILE ((SELECT COUNT(*) FROM @ET_CR_DR)>0)
72
		BEGIN
73
			INSERT INTO @MW_ENTRIES_POST VALUES (@TRN_DATE,@TRN_ID,(SELECT TOP 1 ET_ID FROM @ET_CR_DR) ,(SELECT TOP 1 TK FROM @ET_CR_DR) ,(SELECT TOP 1 DV FROM @ET_CR_DR),'','',(SELECT TOP 1 AMT FROM @ET_CR_DR),
74
			@TRN_DESC,UPPER(@MAKER_ID),UPPER(@CHECKER_ID),'DV0001','Y',@REF_NO,'D',@INDEX_STT)
75
			DELETE FROM @ET_CR_DR WHERE ID =(SELECT TOP 1 ID FROM @ET_CR_DR)
76
		END
77
	END
78
DELETE FROM @TABLE_REF_NO WHERE ID =(SELECT TOP 1 ID FROM @TABLE_REF_NO)
79
END -- KET THU WHILE
80
--LAY MA DON VI CUA HS NEU TIM THEO HS
81
IF @p_BRANCH_ID='HS' BEGIN
82
    SELECT @p_BRANCH_ID=BRANCH_ID FROM CM_BRANCH WHERE BRANCH_TYPE='HS';
83
END;
84

    
85
--SELECT CC.STT, CC.TRN_ID, CC.ET_ID, CC.DBRANCH_CODE, CC.CBRANCH_CODE, CC.CR_ACCT, CC.CR_BRN, CC.DR_ACCT, CC.DR_BRN, CC.AMT, CC.TRN_DESC,
86
--       CC.MAKER_ID, CC.CHECKER_ID, CC.CR_BRANCH_CODE, CC.DR_BRANCH_CODE, CC.MAPHONGBAN, CC.CCY, CC.REF_NO, CC.TRN_DATE
87
--FROM(
88
--    SELECT ROW_NUMBER() OVER (ORDER BY MIN(A.TRN_DATE)) AS STT, MIN(A.TRN_DATE) AS TRN_DATE,A.TRN_ID,MAX(A.ET_ID) AS ET_ID,
89
--	D.BRANCH_CODE AS DBRANCH_CODE,C.BRANCH_CODE AS CBRANCH_CODE,A.CR_ACCT, A.CR_BRN, A.DR_ACCT, A.DR_BRN, SUM(A.AMT) AS AMT, UPPER(A.TRN_DESC) AS TRN_DESC,
90
--    UPPER(A.MAKER_ID) AS MAKER_ID, UPPER(A.CHECKER_ID) AS CHECKER_ID,'' AS CR_BRANCH_CODE,A.DR_ACCT+' '+D.BRANCH_CODE AS DR_BRANCH_CODE,
91
--	'' AS MAPHONGBAN, 'VND' AS CCY, A.REF_NO as REF_NO
92
--    FROM @MW_ENTRIES_POST A
93
--	     --LEFT JOIN dbo.MW_MAST_BAL B ON A.MAST_PRICE_ID=B.PRICE_ID
94
--         LEFT JOIN CM_BRANCH C ON C.BRANCH_ID=A.CR_BRN
95
--         LEFT JOIN CM_BRANCH D ON D.BRANCH_ID=A.DR_BRN
96
--	WHERE 1=1
97
--	AND CONVERT(DATE, A.TRN_DATE, 103)= CONVERT(DATE, @p_DATE, 103) AND A.DO_BRN=@p_BRANCH_ID
98
--    AND(A.MAKER_ID=@p_MAKER_ID OR @p_MAKER_ID IS NULL OR @p_MAKER_ID='')
99
--	AND (A.EXP_TO_CORE='Y' OR A.EXP_TO_CORE ='1')
100
--	GROUP BY A.TRN_ID, A.CR_ACCT, A.CR_BRN, A.DR_ACCT, A.DR_BRN, A.TRN_DESC,  CONVERT(DATE, A.TRN_DATE, 103), A.MAKER_ID, A.CHECKER_ID, D.BRANCH_CODE,C.BRANCH_CODE,A.REF_NO
101
--    UNION ALL
102
--    SELECT ROW_NUMBER() OVER (ORDER BY MIN(A.TRN_DATE)) AS STT, 
103
--	MIN(A.TRN_DATE) AS TRN_DATE,
104
--	A.TRN_ID,
105
--	MAX(A.ET_ID) AS ET_ID,
106
--	D.BRANCH_CODE AS DBRANCH_CODE,C.BRANCH_CODE AS CBRANCH_CODE,
107
--        --A.ASSET_ID,
108
--        --A.TRN_TYPE,
109
--        A.CR_ACCT, A.CR_BRN, A.DR_ACCT, A.DR_BRN, SUM(A.AMT) AS AMT, UPPER(A.TRN_DESC) AS TRN_DESC,
110
--        --A.REF_NO,
111
--        UPPER(A.MAKER_ID) AS MAKER_ID, UPPER(A.CHECKER_ID) AS CHECKER_ID,
112
--        --B.ASSET_CODE,
113
--        --B.ASSET_NAME,
114
--        A.CR_ACCT+' '+C.BRANCH_CODE AS CR_BRANCH_CODE,
115
--        '' AS CR_BRANCH_CODE,
116
--        '' AS MAPHONGBAN, 'VND' AS CCY,
117
--		A.REF_NO as REF_NO
118
--       FROM @MW_ENTRIES_POST A
119
--        --LEFT JOIN dbo.MW_MAST_BAL B ON A.MAST_PRICE_ID=B.PRICE_ID
120
--         LEFT JOIN CM_BRANCH C ON C.BRANCH_ID=A.CR_BRN
121
--         LEFT JOIN CM_BRANCH D ON D.BRANCH_ID=A.DR_BRN
122
--    --LEFT JOIN CM_DEPARTMENT CD ON CD.DEP_ID=A.CR_BRN
123
--    --LEFT JOIN CM_DEPARTMENT DD ON DD.DEP_ID=A.DR_BRN
124
--	WHERE 1=1
125
--	AND CONVERT(DATE, A.TRN_DATE, 103)= CONVERT(DATE, @p_DATE, 103) AND A.DO_BRN=@p_BRANCH_ID
126
--	 AND(A.MAKER_ID=@p_MAKER_ID OR @p_MAKER_ID IS NULL OR @p_MAKER_ID='')
127
--	AND (A.EXP_TO_CORE='Y' OR A.EXP_TO_CORE ='1')
128
--	  GROUP BY A.TRN_ID, A.CR_ACCT, A.CR_BRN, A.DR_ACCT, A.DR_BRN, A.TRN_DESC,  CONVERT(DATE, A.TRN_DATE, 103), A.MAKER_ID, A.CHECKER_ID, D.BRANCH_CODE,C.BRANCH_CODE,A.REF_NO
129
--    ) AS CC
130
--ORDER BY cc.STT,CC.ET_ID, CC.CR_BRANCH_CODE, CC.TRN_DATE DESC;
131
SELECT CHAR(10) + A.TRN_DATE + CHAR(10) AS TRN_DATE, CHAR(10) + A.TRN_DESC + CHAR(10) AS TRN_DESC, CHAR(10) + A.TRN_ID + CHAR(10) AS TRN_ID, CHAR(10) + A.REF_NO + CHAR(10) AS REF_NO ,CHAR(10) + REPLACE (FORMAT ((A.AMT),'#,###'),',','.') +',00' + CHAR(10) AS AMT, CHAR(10) + 'VND' + CHAR(10)  AS CCY , 
132
CHAR(10) + REPLACE (FORMAT ((A.AMT),'#,###'),',','.') +',00' + CHAR(10) AS QUY_DOI, 
133
CHAR(10) + A.MAKER_ID + CHAR(10) AS MAKER_ID,CHAR(10)+ A.CHECKER_ID + CHAR(10) AS CHECKER_ID, CHAR(10)+  A.DR_BRANCH_CODE + ' ' + BR.BRANCH_CODE +  CHAR(10) AS DR_BRANCH_CODE  , CHAR(10)+ A.CR_BRANCH_CODE + CHAR(10) AS CR_BRANCH_CODE, CHAR(10) + CONVERT(VARCHAR,A.STT,5) + CHAR(10) AS STT
134
FROM @MW_ENTRIES_POST A
135
LEFT JOIN CM_BRANCH BR ON A.DR_BRN = BR.BRANCH_ID
136
ORDER BY A.REF_NO, A.CRDR DESC
137

    
138

    
139
SELECT N' Ngày lập phiếu: '+ FORMAT (GETDATE(),'dd/MM/yyyy H:mm:ss') AS NGAY_TAO, N'CHI NHÁNH /PGD : '+ (SELECT TOP 1 BRANCH_NAME FROM CM_BRANCH WHERE BRANCH_ID =@p_BRANCH_ID) AS DVKD,
140
N'Ngày: '+ FORMAT (GETDATE(),'dd/MM/yyyy') AS NGAY_LAP_PHIEU 
141

    
142
SELECT CHAR(10) +'STT'+ CHAR(10) AS STT,
143
CHAR(10) +N'SỐ CHỨNG TỪ'+ CHAR(10) AS SO_CT,
144
CHAR(10) +N'SỐ GIAO DỊCH / REF NO'+ CHAR(10) AS SO_GD,
145
CHAR(10) +N'DIỄN GIẢI TRANSACTION'+ CHAR(10) AS CORE_NOTE,
146
CHAR(10) +N'THỜI GIAN '+ CHAR(10) AS NGAY_GD,
147
CHAR(10) +N'NỢ '+ CHAR(10) AS [NO],
148
CHAR(10) +N'CÓ '+ CHAR(10) AS [CO],
149
CHAR(10) +N'CCY '+ CHAR(10) AS CCY,
150
CHAR(10) +N'NGUYÊN TỆ '+ CHAR(10) AS NT,
151
CHAR(10) +N'QUY ĐỔI '+ CHAR(10) AS QD,
152
CHAR(10) +N'GDV '+ CHAR(10) AS GDV,
153
CHAR(10) +N'KSV '+ CHAR(10) AS KSV