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
|