1
|
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
|
2
|
AS
|
3
|
|
4
|
-- LẤY MỖI SỐ REF NO RA
|
5
|
--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))
|
6
|
--SELECT * FROM PAY_ENTRIES_POST WHERE TRN_ID='TRPTF0000000018' AND REF_NO ='069CCfffyutmyiiii09'
|
7
|
--1 LẤY DANH SÁCH HẠCH TOÁN THEO TỪNG REF NO
|
8
|
--
|
9
|
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),
|
10
|
@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
|
11
|
DECLARE @TABLE_REF_NO TABLE (ID INT IDENTITY(1,1),REF_NO VARCHAR(25), TRN_ID VARCHAR(15))
|
12
|
INSERT INTO @TABLE_REF_NO SELECT DISTINCT A.REF_NO, TRN_ID FROM PAY_ENTRIES_POST A
|
13
|
WHERE (A.REF_NO IS NOT NULL AND A.REF_NO <> '' )
|
14
|
AND (CONVERT(DATE, A.TRN_DATE, 103) = CONVERT(DATE, @p_DATE, 103) OR @p_DATE IS NULL OR @p_DATE ='')
|
15
|
AND A.DO_BRN=@p_BRANCH_ID
|
16
|
AND(A.MAKER_ID=@p_MAKER_ID OR @p_MAKER_ID IS NULL OR @p_MAKER_ID='')
|
17
|
AND (A.EXP_TO_CORE='Y' OR A.EXP_TO_CORE ='1')
|
18
|
|
19
|
-- KHAI BAO TABLE CHUA THÔNG TIN HẠCH TOÁN THEO CẤU TRÚC NỢ - CÓ CHUNG 1 HÀNG
|
20
|
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),
|
21
|
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)
|
22
|
--TABLE CHUA DANH SACH HACH TOAN CÓ
|
23
|
DECLARE @ET_CR_DR TABLE (ID INT IDENTITY(1,1),TK VARCHAR(15), DV VARCHAR(15), AMT DECIMAL(18,0),ET_ID VARCHAR(15))
|
24
|
WHILE((SELECT COUNT(*) FROM @TABLE_REF_NO) >0)
|
25
|
BEGIN
|
26
|
SET @REF_NO =(SELECT TOP 1 REF_NO FROM @TABLE_REF_NO)
|
27
|
PRINT @REF_NO
|
28
|
IF(NOT EXISTS(SELECT * FROM @MW_ENTRIES_POST WHERE TRN_ID =(SELECT TOP 1 TRN_ID WHERE REF_NO =@REF_NO)))
|
29
|
BEGIN
|
30
|
SET @INDEX_STT = @INDEX_STT +1
|
31
|
END
|
32
|
SET @TRN_DATE =(SELECT TOP 1 FORMAT(TRN_DATE,'dd/MM/yyyy') FROM PAY_ENTRIES_POST WHERE REF_NO =@REF_NO)
|
33
|
PRINT @TRN_DATE
|
34
|
SET @TRN_ID =(SELECT TOP 1 TRN_ID FROM PAY_ENTRIES_POST WHERE REF_NO =@REF_NO)
|
35
|
SET @TRN_DESC =(SELECT TOP 1 TRN_DESC FROM PAY_ENTRIES_POST WHERE REF_NO =@REF_NO)
|
36
|
SET @MAKER_ID =(SELECT TOP 1 MAKER_ID FROM PAY_ENTRIES_POST WHERE REF_NO =@REF_NO)
|
37
|
SET @CHECKER_ID =(SELECT TOP 1 CHECKER_ID FROM PAY_ENTRIES_POST WHERE REF_NO =@REF_NO)
|
38
|
--SET @AMT =(SELECT TOP 1 AMT FROM PAY_ENTRIES_POST WHERE REF_NO =@REF_NO)
|
39
|
IF((SELECT COUNT(*) FROM PAY_ENTRIES_POST WHERE REF_NO =@REF_NO AND DRCR ='D')=1)
|
40
|
BEGIN
|
41
|
-- TAI KHOAN NO
|
42
|
SET @DR_ACCT =(SELECT TOP 1 ACCT FROM PAY_ENTRIES_POST WHERE REF_NO =@REF_NO AND DRCR ='D')
|
43
|
SET @DR_BRN =(SELECT TOP 1 BRN_ID FROM PAY_ENTRIES_POST WHERE REF_NO =@REF_NO AND DRCR ='D')
|
44
|
--SET @DR_BRN =(SELECT TOP 1 DEPT_ID FROM PAY_ENTRIES_POST WHERE REF_NO =@REF_NO AND DRCR ='D')
|
45
|
SET @ET_ID = (SELECT TOP 1 ET_ID FROM PAY_ENTRIES_POST WHERE REF_NO =@REF_NO AND DRCR ='D')
|
46
|
SET @AMT_DRCR =(SELECT TOP 1 AMT FROM PAY_ENTRIES_POST WHERE REF_NO =@REF_NO AND DRCR='D')
|
47
|
-- ĐỔ DỮ LIỆU VÀO BẢNG CHƯA HẠCH TOÁN CÓ
|
48
|
INSERT INTO @ET_CR_DR SELECT ACCT,BRN_ID,AMT ,ET_ID FROM PAY_ENTRIES_POST WHERE REF_NO =@REF_NO AND DRCR ='C'
|
49
|
--SELECT * FROM @ET_CO
|
50
|
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,
|
51
|
@TRN_DESC,UPPER(@MAKER_ID),UPPER(@CHECKER_ID),'DV0001','Y',@REF_NO,'D',@INDEX_STT)
|
52
|
WHILE ((SELECT COUNT(*) FROM @ET_CR_DR)>0)
|
53
|
BEGIN
|
54
|
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),
|
55
|
@TRN_DESC,UPPER(@MAKER_ID),UPPER(@CHECKER_ID),'DV0001','Y',@REF_NO,'C',@INDEX_STT)
|
56
|
DELETE FROM @ET_CR_DR WHERE ID =(SELECT TOP 1 ID FROM @ET_CR_DR)
|
57
|
END
|
58
|
END
|
59
|
ELSE
|
60
|
BEGIN -- XỬ LÝ NẾU 1 CÓ NHIỀU NỢ
|
61
|
-- TAI KHOAN NO
|
62
|
SET @CR_ACCT =(SELECT TOP 1 ACCT FROM PAY_ENTRIES_POST WHERE REF_NO =@REF_NO AND DRCR ='C')
|
63
|
SET @CR_BRN =(SELECT TOP 1 BRN_ID FROM PAY_ENTRIES_POST WHERE REF_NO =@REF_NO AND DRCR ='C')
|
64
|
SET @CR_DEP =(SELECT TOP 1 DEPT_ID FROM PAY_ENTRIES_POST WHERE REF_NO =@REF_NO AND DRCR ='C')
|
65
|
SET @AMT_DRCR =(SELECT TOP 1 AMT FROM PAY_ENTRIES_POST WHERE REF_NO =@REF_NO AND DRCR='C')
|
66
|
-- ĐỔ DỮ LIỆU VÀO BẢNG CHƯA HẠCH TOÁN CÓ
|
67
|
INSERT INTO @ET_CR_DR SELECT ACCT,BRN_ID,AMT,ET_ID FROM PAY_ENTRIES_POST WHERE REF_NO =@REF_NO AND DRCR ='D'
|
68
|
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,
|
69
|
@TRN_DESC,UPPER(@MAKER_ID),UPPER(@CHECKER_ID),'DV0001','Y',@REF_NO,'C',@INDEX_STT)
|
70
|
WHILE ((SELECT COUNT(*) FROM @ET_CR_DR)>0)
|
71
|
BEGIN
|
72
|
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),
|
73
|
@TRN_DESC,UPPER(@MAKER_ID),UPPER(@CHECKER_ID),'DV0001','Y',@REF_NO,'D',@INDEX_STT)
|
74
|
DELETE FROM @ET_CR_DR WHERE ID =(SELECT TOP 1 ID FROM @ET_CR_DR)
|
75
|
END
|
76
|
END
|
77
|
DELETE FROM @TABLE_REF_NO WHERE ID =(SELECT TOP 1 ID FROM @TABLE_REF_NO)
|
78
|
END -- KET THU WHILE
|
79
|
--LAY MA DON VI CUA HS NEU TIM THEO HS
|
80
|
IF @p_BRANCH_ID='HS' BEGIN
|
81
|
SELECT @p_BRANCH_ID=BRANCH_ID FROM CM_BRANCH WHERE BRANCH_TYPE='HS';
|
82
|
END;
|
83
|
|
84
|
--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,
|
85
|
-- CC.MAKER_ID, CC.CHECKER_ID, CC.CR_BRANCH_CODE, CC.DR_BRANCH_CODE, CC.MAPHONGBAN, CC.CCY, CC.REF_NO, CC.TRN_DATE
|
86
|
--FROM(
|
87
|
-- 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,
|
88
|
-- 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,
|
89
|
-- 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,
|
90
|
-- '' AS MAPHONGBAN, 'VND' AS CCY, A.REF_NO as REF_NO
|
91
|
-- FROM @MW_ENTRIES_POST A
|
92
|
-- --LEFT JOIN dbo.MW_MAST_BAL B ON A.MAST_PRICE_ID=B.PRICE_ID
|
93
|
-- LEFT JOIN CM_BRANCH C ON C.BRANCH_ID=A.CR_BRN
|
94
|
-- LEFT JOIN CM_BRANCH D ON D.BRANCH_ID=A.DR_BRN
|
95
|
-- WHERE 1=1
|
96
|
-- AND CONVERT(DATE, A.TRN_DATE, 103)= CONVERT(DATE, @p_DATE, 103) AND A.DO_BRN=@p_BRANCH_ID
|
97
|
-- AND(A.MAKER_ID=@p_MAKER_ID OR @p_MAKER_ID IS NULL OR @p_MAKER_ID='')
|
98
|
-- AND (A.EXP_TO_CORE='Y' OR A.EXP_TO_CORE ='1')
|
99
|
-- 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
|
100
|
-- UNION ALL
|
101
|
-- SELECT ROW_NUMBER() OVER (ORDER BY MIN(A.TRN_DATE)) AS STT,
|
102
|
-- MIN(A.TRN_DATE) AS TRN_DATE,
|
103
|
-- A.TRN_ID,
|
104
|
-- MAX(A.ET_ID) AS ET_ID,
|
105
|
-- D.BRANCH_CODE AS DBRANCH_CODE,C.BRANCH_CODE AS CBRANCH_CODE,
|
106
|
-- --A.ASSET_ID,
|
107
|
-- --A.TRN_TYPE,
|
108
|
-- A.CR_ACCT, A.CR_BRN, A.DR_ACCT, A.DR_BRN, SUM(A.AMT) AS AMT, UPPER(A.TRN_DESC) AS TRN_DESC,
|
109
|
-- --A.REF_NO,
|
110
|
-- UPPER(A.MAKER_ID) AS MAKER_ID, UPPER(A.CHECKER_ID) AS CHECKER_ID,
|
111
|
-- --B.ASSET_CODE,
|
112
|
-- --B.ASSET_NAME,
|
113
|
-- A.CR_ACCT+' '+C.BRANCH_CODE AS CR_BRANCH_CODE,
|
114
|
-- '' AS CR_BRANCH_CODE,
|
115
|
-- '' AS MAPHONGBAN, 'VND' AS CCY,
|
116
|
-- A.REF_NO as REF_NO
|
117
|
-- FROM @MW_ENTRIES_POST A
|
118
|
-- --LEFT JOIN dbo.MW_MAST_BAL B ON A.MAST_PRICE_ID=B.PRICE_ID
|
119
|
-- LEFT JOIN CM_BRANCH C ON C.BRANCH_ID=A.CR_BRN
|
120
|
-- LEFT JOIN CM_BRANCH D ON D.BRANCH_ID=A.DR_BRN
|
121
|
-- --LEFT JOIN CM_DEPARTMENT CD ON CD.DEP_ID=A.CR_BRN
|
122
|
-- --LEFT JOIN CM_DEPARTMENT DD ON DD.DEP_ID=A.DR_BRN
|
123
|
-- WHERE 1=1
|
124
|
-- AND CONVERT(DATE, A.TRN_DATE, 103)= CONVERT(DATE, @p_DATE, 103) AND A.DO_BRN=@p_BRANCH_ID
|
125
|
-- AND(A.MAKER_ID=@p_MAKER_ID OR @p_MAKER_ID IS NULL OR @p_MAKER_ID='')
|
126
|
-- AND (A.EXP_TO_CORE='Y' OR A.EXP_TO_CORE ='1')
|
127
|
-- 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
|
128
|
-- ) AS CC
|
129
|
--ORDER BY cc.STT,CC.ET_ID, CC.CR_BRANCH_CODE, CC.TRN_DATE DESC;
|
130
|
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 ,
|
131
|
CHAR(10) + REPLACE (FORMAT ((A.AMT),'#,###'),',','.') +',00' + CHAR(10) AS QUY_DOI,
|
132
|
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
|
133
|
FROM @MW_ENTRIES_POST A
|
134
|
LEFT JOIN CM_BRANCH BR ON A.DR_BRN = BR.BRANCH_ID
|
135
|
ORDER BY A.REF_NO, A.CRDR DESC
|
136
|
|
137
|
|
138
|
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,
|
139
|
N'Ngày: '+ FORMAT (GETDATE(),'dd/MM/yyyy') AS NGAY_LAP_PHIEU
|
140
|
|
141
|
SELECT CHAR(10) +'STT'+ CHAR(10) AS STT,
|
142
|
CHAR(10) +N'SỐ CHỨNG TỪ'+ CHAR(10) AS SO_CT,
|
143
|
CHAR(10) +N'SỐ GIAO DỊCH / REF NO'+ CHAR(10) AS SO_GD,
|
144
|
CHAR(10) +N'DIỄN GIẢI TRANSACTION'+ CHAR(10) AS CORE_NOTE,
|
145
|
CHAR(10) +N'THỜI GIAN '+ CHAR(10) AS NGAY_GD,
|
146
|
CHAR(10) +N'NỢ '+ CHAR(10) AS [NO],
|
147
|
CHAR(10) +N'CÓ '+ CHAR(10) AS [CO],
|
148
|
CHAR(10) +N'CCY '+ CHAR(10) AS CCY,
|
149
|
CHAR(10) +N'NGUYÊN TỆ '+ CHAR(10) AS NT,
|
150
|
CHAR(10) +N'QUY ĐỔI '+ CHAR(10) AS QD,
|
151
|
CHAR(10) +N'GDV '+ CHAR(10) AS GDV,
|
152
|
CHAR(10) +N'KSV '+ CHAR(10) AS KSV
|
153
|
¿
|
154
|
ALTER PROCEDURE [dbo].[rpt_LIET_KE_CHUNG_TU_BanViet] @p_DATE VARCHAR(10), @p_BRANCH_ID VARCHAR(15) ='', @p_MAKER_ID VARCHAR(15) =NULL
|
155
|
AS
|
156
|
|
157
|
--LAY MA DON VI CUA HS NEU TIM THEO HS
|
158
|
IF @p_BRANCH_ID='HS' BEGIN
|
159
|
SELECT @p_BRANCH_ID=BRANCH_ID FROM CM_BRANCH WHERE BRANCH_TYPE='HS';
|
160
|
END;
|
161
|
SELECT CHAR(10)+ CONVERT(VARCHAR,CC.STT,10) + CHAR(10) AS STT, CHAR(10) + CC.TRN_ID + CHAR(10) AS TRN_ID, CHAR(10)+ CC.ET_ID + CHAR(10) AS ET_ID, CC.DBRANCH_CODE, CC.CBRANCH_CODE,
|
162
|
CHAR(10) + CC.CR_ACCT + CHAR(10) AS CR_ACCT , CC.CR_BRN, CHAR(10) + CC.DR_ACCT + CHAR(10) AS DR_ACCT, CC.DR_BRN, CHAR(10) + REPLACE (FORMAT ((CC.AMT),'#,###'),',','.') +',00 ' + CHAR(10) AS AMT, CHAR(10)+ CC.TRN_DESC + CHAR(10) AS TRN_DESC,
|
163
|
CHAR(10)+ CC.MAKER_ID + CHAR(10) AS MAKER_ID , CHAR(10) + CC.CHECKER_ID + CHAR(10) AS CHECKER_ID , CHAR(10)+ CC.CR_BRANCH_CODE + CHAR(10) AS CR_BRANCH_CODE , CHAR(10)+ CC.DR_BRANCH_CODE + CHAR(10) AS DR_BRANCH_CODE , CC.MAPHONGBAN, CHAR(10)+ CC.CCY+ CHAR(10) AS CCY, CHAR(10) + CC.REF_NO + CHAR(10) AS REF_NO ,
|
164
|
CHAR(10) + FORMAT(CC.TRN_DATE,'dd/MM/yyyy') + CHAR(10) AS TRN_DATE
|
165
|
FROM(
|
166
|
SELECT ROW_NUMBER() OVER (ORDER BY MIN(A.TRN_DATE)) AS STT,
|
167
|
MIN(A.TRN_DATE) AS TRN_DATE,
|
168
|
A.TRN_ID,
|
169
|
MAX(A.ET_ID) AS ET_ID,
|
170
|
D.BRANCH_CODE AS DBRANCH_CODE,C.BRANCH_CODE AS CBRANCH_CODE,
|
171
|
--A.ASSET_ID,
|
172
|
--A.TRN_TYPE,
|
173
|
A.CR_ACCT, A.CR_BRN, A.DR_ACCT, A.DR_BRN, SUM(A.AMT) AS AMT, UPPER(A.TRN_DESC) AS TRN_DESC,
|
174
|
--A.REF_NO,
|
175
|
UPPER(A.MAKER_ID) AS MAKER_ID, UPPER(A.CHECKER_ID) AS CHECKER_ID,
|
176
|
--B.ASSET_CODE,
|
177
|
--B.ASSET_NAME,
|
178
|
'' AS CR_BRANCH_CODE,
|
179
|
--(ISNULL(REPLACE(C.BRANCH_CODE, 'VN001', ''), '00'+CD.DAO_CODE)+'-'+ISNULL(C.BRANCH_NAME, CD.DEP_NAME)) AS CR_BRANCH_NAME,
|
180
|
A.DR_ACCT+' '+D.BRANCH_CODE AS DR_BRANCH_CODE,
|
181
|
--(ISNULL(REPLACE(D.BRANCH_CODE, 'VN001', ''), '00'+DD.DAO_CODE)+'-'+ISNULL(D.BRANCH_NAME, DD.DEP_NAME)) AS DR_BRANCH_NAME,
|
182
|
--CD.DEP_CODE + ' - '+ CD.DEP_NAME AS CD_DEP_CODE,
|
183
|
--DD.DEP_CODE + ' - '+ CD.DEP_NAME AS DD_DEP_CODE
|
184
|
'' AS MAPHONGBAN, 'VND' AS CCY,
|
185
|
--A.REF_ID,
|
186
|
-- STUFF(
|
187
|
-- (
|
188
|
-- SELECT ', '+C1.REF_NO
|
189
|
-- FROM ASS_ENTRIES_POST C1
|
190
|
-- WHERE A.TRN_ID=C1.TRN_ID AND A.CR_ACCT=C1.CR_ACCT AND A.CR_BRN=C1.CR_BRN AND A.DR_ACCT=C1.DR_ACCT AND A.DR_BRN=C1.DR_BRN AND A.TRN_DESC=C1.TRN_DESC
|
191
|
-- AND CONVERT(DATE, A.TRN_DATE, 103)=CONVERT(DATE, C1.TRN_DATE, 103)
|
192
|
|
193
|
--AND A.MAKER_ID=A.MAKER_ID AND A.CHECKER_ID=A.CHECKER_ID AND D.BRANCH_CODE=D.BRANCH_CODE
|
194
|
-- FOR XML PATH('')
|
195
|
-- ), 1, 1, ''
|
196
|
-- ) AS REF_NO
|
197
|
|
198
|
A.REF_NO as REF_NO
|
199
|
FROM ASS_ENTRIES_POST A
|
200
|
LEFT JOIN ASS_MASTER B ON A.ASSET_ID=B.ASSET_ID
|
201
|
LEFT JOIN CM_BRANCH C ON C.BRANCH_ID=A.CR_BRN
|
202
|
LEFT JOIN CM_BRANCH D ON D.BRANCH_ID=A.DR_BRN
|
203
|
--LEFT JOIN CM_DEPARTMENT CD ON CD.DEP_ID=A.CR_BRN
|
204
|
--LEFT JOIN CM_DEPARTMENT DD ON DD.DEP_ID=A.DR_BRN
|
205
|
WHERE DATEDIFF(DAYOFYEAR, A.TRN_DATE, CONVERT(DATETIME, @p_DATE, 103))=0 AND A.DO_BRN=@p_BRANCH_ID
|
206
|
AND(A.MAKER_ID=@p_MAKER_ID OR @p_MAKER_ID IS NULL OR @p_MAKER_ID='')AND A.EXP_TO_CORE='Y'
|
207
|
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
|
208
|
|
209
|
|
210
|
|
211
|
|
212
|
|
213
|
|
214
|
|
215
|
|
216
|
|
217
|
UNION ALL
|
218
|
SELECT ROW_NUMBER() OVER (ORDER BY MIN(A.TRN_DATE)) AS STT,
|
219
|
MIN(A.TRN_DATE) AS TRN_DATE,
|
220
|
A.TRN_ID,
|
221
|
MAX(A.ET_ID) AS ET_ID,
|
222
|
D.BRANCH_CODE AS DBRANCH_CODE,C.BRANCH_CODE AS CBRANCH_CODE,
|
223
|
--A.ASSET_ID,
|
224
|
--A.TRN_TYPE,
|
225
|
A.CR_ACCT, A.CR_BRN, A.DR_ACCT, A.DR_BRN, SUM(A.AMT) AS AMT, UPPER(A.TRN_DESC) AS TRN_DESC,
|
226
|
--A.REF_NO,
|
227
|
UPPER(A.MAKER_ID) AS MAKER_ID, UPPER(A.CHECKER_ID) AS CHECKER_ID,
|
228
|
--B.ASSET_CODE,
|
229
|
--B.ASSET_NAME,
|
230
|
A.CR_ACCT+' '+C.BRANCH_CODE AS CR_BRANCH_CODE,
|
231
|
--(ISNULL(REPLACE(C.BRANCH_CODE, 'VN001', ''), '00'+CD.DAO_CODE)+'-'+ISNULL(C.BRANCH_NAME, CD.DEP_NAME)) AS CR_BRANCH_NAME,
|
232
|
'' AS CR_BRANCH_CODE,
|
233
|
--(ISNULL(REPLACE(D.BRANCH_CODE, 'VN001', ''), '00'+DD.DAO_CODE)+'-'+ISNULL(D.BRANCH_NAME, DD.DEP_NAME)) AS DR_BRANCH_NAME,
|
234
|
--CD.DEP_CODE + ' - '+ CD.DEP_NAME AS CD_DEP_CODE,
|
235
|
--DD.DEP_CODE + ' - '+ CD.DEP_NAME AS DD_DEP_CODE
|
236
|
'' AS MAPHONGBAN, 'VND' AS CCY,
|
237
|
--A.REF_ID,
|
238
|
-- STUFF(
|
239
|
-- (
|
240
|
-- SELECT ', '+C1.REF_NO
|
241
|
-- FROM ASS_ENTRIES_POST C1
|
242
|
-- WHERE A.TRN_ID=C1.TRN_ID AND A.CR_ACCT=C1.CR_ACCT AND A.CR_BRN=C1.CR_BRN AND A.DR_ACCT=C1.DR_ACCT AND A.DR_BRN=C1.DR_BRN AND A.TRN_DESC=C1.TRN_DESC
|
243
|
-- AND CONVERT(DATE, A.TRN_DATE, 103)=CONVERT(DATE, C1.TRN_DATE, 103)
|
244
|
|
245
|
--AND A.MAKER_ID=A.MAKER_ID AND A.CHECKER_ID=A.CHECKER_ID AND D.BRANCH_CODE=D.BRANCH_CODE
|
246
|
-- FOR XML PATH('')
|
247
|
-- ), 1, 1, ''
|
248
|
-- ) AS REF_NO
|
249
|
A.REF_NO as REF_NO
|
250
|
FROM ASS_ENTRIES_POST A
|
251
|
LEFT JOIN ASS_MASTER B ON A.ASSET_ID=B.ASSET_ID
|
252
|
LEFT JOIN CM_BRANCH C ON C.BRANCH_ID=A.CR_BRN
|
253
|
LEFT JOIN CM_BRANCH D ON D.BRANCH_ID=A.DR_BRN
|
254
|
--LEFT JOIN CM_DEPARTMENT CD ON CD.DEP_ID=A.CR_BRN
|
255
|
--LEFT JOIN CM_DEPARTMENT DD ON DD.DEP_ID=A.DR_BRN
|
256
|
WHERE DATEDIFF(DAYOFYEAR, A.TRN_DATE, CONVERT(DATETIME, @p_DATE, 103))=0 AND A.DO_BRN=@p_BRANCH_ID
|
257
|
AND(A.MAKER_ID=@p_MAKER_ID OR @p_MAKER_ID IS NULL OR @p_MAKER_ID='')AND A.EXP_TO_CORE='Y'
|
258
|
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
|
259
|
|
260
|
|
261
|
) AS CC
|
262
|
ORDER BY cc.STT,CC.ET_ID, CC.CR_BRANCH_CODE, CC.TRN_DATE DESC;
|
263
|
|
264
|
SELECT N' Ngày lập phiếu: '+ FORMAT (GETDATE(),'dd/MM/yyyy H:mm:ss') AS NGAY_TAO, 'CN /PGD : '+ (SELECT TOP 1 BRANCH_NAME FROM CM_BRANCH WHERE BRANCH_ID =@p_BRANCH_ID) AS DVKD,
|
265
|
FORMAT (GETDATE(),'dd/MM/yyyy') AS NGAY_LAP_PHIEU
|
266
|
|
267
|
SELECT CHAR(10) +'STT'+ CHAR(10) AS STT,
|
268
|
CHAR(10) +N'SỐ CHỨNG TỪ'+ CHAR(10) AS SO_CT,
|
269
|
CHAR(10) +N'SỐ GIAO DỊCH / REF NO'+ CHAR(10) AS SO_GD,
|
270
|
CHAR(10) +N'DIỄN GIẢI TRANSACTION'+ CHAR(10) AS CORE_NOTE,
|
271
|
CHAR(10) +N'THỜI GIAN '+ CHAR(10) AS NGAY_GD,
|
272
|
CHAR(10) +N'NỢ '+ CHAR(10) AS [NO],
|
273
|
CHAR(10) +N'CÓ '+ CHAR(10) AS [CO],
|
274
|
CHAR(10) +N'CCY '+ CHAR(10) AS CCY,
|
275
|
CHAR(10) +N'NGUYÊN TỆ '+ CHAR(10) AS NT,
|
276
|
CHAR(10) +N'QUY ĐỔI '+ CHAR(10) AS QD,
|
277
|
CHAR(10) +N'GDV '+ CHAR(10) AS GDV,
|
278
|
CHAR(10) +N'KSV '+ CHAR(10) AS KSV,
|
279
|
CHAR(10) +N'PHÒNG BAN '+ CHAR(10) AS PB
|
280
|
¿
|
281
|
|
282
|
ALTER PROCEDURE [dbo].[rpt_MW_LIET_KE_CHUNG_TU_BanViet] @p_DATE VARCHAR(10), @p_BRANCH_ID VARCHAR(15) ='', @p_MAKER_ID VARCHAR(15) =NULL
|
283
|
AS
|
284
|
|
285
|
--LAY MA DON VI CUA HS NEU TIM THEO HS
|
286
|
IF @p_BRANCH_ID='HS' BEGIN
|
287
|
SELECT @p_BRANCH_ID=BRANCH_ID FROM CM_BRANCH WHERE BRANCH_TYPE='HS';
|
288
|
END;
|
289
|
SELECT CC.STT, CHAR(10) + CC.TRN_ID + CHAR(10) AS TRN_ID, CHAR(10) + CC.ET_ID + CHAR(10) AS ET_ID, CC.DBRANCH_CODE, CC.CBRANCH_CODE, CC.CR_ACCT, CC.CR_BRN, CC.DR_ACCT, CC.DR_BRN, CHAR(10) + REPLACE (FORMAT ((CC.AMT),'#,###'),',','.') +',00' + CHAR(10) AS AMT,
|
290
|
CHAR(10) + CC.TRN_DESC + CHAR(10) AS TRN_DESC ,
|
291
|
CHAR(10) + CC.MAKER_ID + CHAR(10) AS MAKER_ID , CHAR(10) + CC.CHECKER_ID + CHAR(10) AS CHECKER_ID ,CHAR(10) + CC.CR_BRANCH_CODE + CHAR(10) AS CR_BRANCH_CODE , CHAR(10)+ CC.DR_BRANCH_CODE + CHAR(10) AS DR_BRANCH_CODE , CC.MAPHONGBAN,
|
292
|
CHAR(10) + CC.CCY + CHAR(10) AS CCY, CHAR(10) + CC.REF_NO + CHAR(10) AS REF_NO , CHAR(10) + FORMAT(CC.TRN_DATE,'dd/MM/yyyy') + CHAR(10) AS TRN_DATE
|
293
|
FROM(
|
294
|
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,
|
295
|
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,
|
296
|
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,
|
297
|
'' AS MAPHONGBAN, 'VND' AS CCY,A.REF_NO as REF_NO
|
298
|
FROM dbo.MW_ENTRIES_POST A
|
299
|
--LEFT JOIN dbo.MW_MAST_BAL B ON A.MAST_PRICE_ID=B.PRICE_ID
|
300
|
LEFT JOIN CM_BRANCH C ON C.BRANCH_ID=A.CR_BRN
|
301
|
LEFT JOIN CM_BRANCH D ON D.BRANCH_ID=A.DR_BRN
|
302
|
WHERE
|
303
|
DATEDIFF(DAYOFYEAR, A.TRN_DATE, CONVERT(DATETIME, @p_DATE, 103))=0 AND A.DO_BRN=@p_BRANCH_ID
|
304
|
AND(A.MAKER_ID=@p_MAKER_ID OR @p_MAKER_ID IS NULL OR @p_MAKER_ID='')AND A.EXP_TO_CORE='Y'
|
305
|
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
|
306
|
UNION ALL
|
307
|
SELECT ROW_NUMBER() OVER (ORDER BY MIN(A.TRN_DATE)) AS STT,
|
308
|
MIN(A.TRN_DATE) AS TRN_DATE,
|
309
|
A.TRN_ID,
|
310
|
MAX(A.ET_ID) AS ET_ID,
|
311
|
D.BRANCH_CODE AS DBRANCH_CODE,C.BRANCH_CODE AS CBRANCH_CODE,
|
312
|
--A.ASSET_ID,
|
313
|
--A.TRN_TYPE,
|
314
|
A.CR_ACCT, A.CR_BRN, A.DR_ACCT, A.DR_BRN, SUM(A.AMT) AS AMT, UPPER(A.TRN_DESC) AS TRN_DESC,
|
315
|
--A.REF_NO,
|
316
|
UPPER(A.MAKER_ID) AS MAKER_ID, UPPER(A.CHECKER_ID) AS CHECKER_ID,
|
317
|
--B.ASSET_CODE,
|
318
|
--B.ASSET_NAME,
|
319
|
A.CR_ACCT+' '+C.BRANCH_CODE AS CR_BRANCH_CODE,
|
320
|
'' AS CR_BRANCH_CODE,
|
321
|
'' AS MAPHONGBAN, 'VND' AS CCY,
|
322
|
A.REF_NO as REF_NO
|
323
|
FROM dbo.MW_ENTRIES_POST A
|
324
|
--LEFT JOIN dbo.MW_MAST_BAL B ON A.MAST_PRICE_ID=B.PRICE_ID
|
325
|
LEFT JOIN CM_BRANCH C ON C.BRANCH_ID=A.CR_BRN
|
326
|
LEFT JOIN CM_BRANCH D ON D.BRANCH_ID=A.DR_BRN
|
327
|
--LEFT JOIN CM_DEPARTMENT CD ON CD.DEP_ID=A.CR_BRN
|
328
|
--LEFT JOIN CM_DEPARTMENT DD ON DD.DEP_ID=A.DR_BRN
|
329
|
WHERE DATEDIFF(DAYOFYEAR, A.TRN_DATE, CONVERT(DATETIME, @p_DATE, 103))=0 AND A.DO_BRN=@p_BRANCH_ID
|
330
|
AND(A.MAKER_ID=@p_MAKER_ID OR @p_MAKER_ID IS NULL OR @p_MAKER_ID='')AND A.EXP_TO_CORE='Y'
|
331
|
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
|
332
|
) AS CC
|
333
|
ORDER BY cc.STT,CC.ET_ID, CC.CR_BRANCH_CODE, CC.TRN_DATE DESC;
|
334
|
|
335
|
SELECT N' Ngày lập phiếu: '+ FORMAT (GETDATE(),'dd/MM/yyyy H:mm:ss') AS NGAY_TAO, 'CN /PGD : '+ (SELECT TOP 1 BRANCH_NAME FROM CM_BRANCH WHERE BRANCH_ID =@p_BRANCH_ID) AS DVKD,
|
336
|
FORMAT (GETDATE(),'dd/MM/yyyy') AS NGAY_LAP_PHIEU
|
337
|
|
338
|
SELECT CHAR(10) +'STT'+ CHAR(10) AS STT,
|
339
|
CHAR(10) +N'SỐ CHỨNG TỪ'+ CHAR(10) AS SO_CT,
|
340
|
CHAR(10) +N'SỐ GIAO DỊCH / REF NO'+ CHAR(10) AS SO_GD,
|
341
|
CHAR(10) +N'DIỄN GIẢI TRANSACTION'+ CHAR(10) AS CORE_NOTE,
|
342
|
CHAR(10) +N'THỜI GIAN '+ CHAR(10) AS NGAY_GD,
|
343
|
CHAR(10) +N'NỢ '+ CHAR(10) AS [NO],
|
344
|
CHAR(10) +N'CÓ '+ CHAR(10) AS [CO],
|
345
|
CHAR(10) +N'CCY '+ CHAR(10) AS CCY,
|
346
|
CHAR(10) +N'NGUYÊN TỆ '+ CHAR(10) AS NT,
|
347
|
CHAR(10) +N'QUY ĐỔI '+ CHAR(10) AS QD,
|
348
|
CHAR(10) +N'GDV '+ CHAR(10) AS GDV,
|
349
|
CHAR(10) +N'KSV '+ CHAR(10) AS KSV,
|
350
|
CHAR(10) +N'PHÒNG BAN '+ CHAR(10) AS PB
|
351
|
|
352
|
¿
|
353
|
|
354
|
|
355
|
ALTER PROCEDURE [dbo].[PAY_ENTRIES_POST_CASA_ByRefId]
|
356
|
@p_REF_ID VARCHAR(200) = NULL,
|
357
|
@p_BRANCH_ID VARCHAR(50) = NULL,
|
358
|
@RefNo VARCHAR(500) = NULL
|
359
|
AS
|
360
|
DECLARE @l_SUM_AMT DECIMAL,
|
361
|
@l_REF_NO VARCHAR(20),
|
362
|
@l_ASSET_ID VARCHAR(20);
|
363
|
DECLARE @l_TRN_TYPE VARCHAR(50) = '';
|
364
|
DECLARE @l_CASA_CR_ACCT VARCHAR(20) = '';
|
365
|
DECLARE @l_CASA_DR_ACCT VARCHAR(20) = '';
|
366
|
DECLARE @l_CASA_CR_ACCT_NAME NVARCHAR(500) = '';
|
367
|
DECLARE @l_CASA_DR_ACCT_NAME NVARCHAR(500) = '';
|
368
|
|
369
|
DECLARE @MW_ENTRI TABLE (ET_ID varchar(15), REF_NO varchar(20), TRN_ID varchar(15), REF_ID varchar(15), TRN_TYPE nvarchar(40), ENTRY_PAIR varchar(15), DO_BRN varchar(15), DRCR varchar(2), ACCT varchar(100), BRN_ID varchar(20), DEPT_ID varchar(15), AMT decimal(18, 2), CURRENCY varchar(20), EXC_RATE numeric(18, 2), EXP_TO_CORE varchar(1), TRN_DATE datetime, TRN_DESC nvarchar(1000), MAKER_ID varchar(15), CHECKER_ID varchar(15))
|
370
|
|
371
|
INSERT INTO @MW_ENTRI
|
372
|
SELECT * FROM PAY_ENTRIES_POST
|
373
|
WHERE TRN_ID = @p_REF_ID AND (DO_BRN = @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '' ) AND (REF_NO = @RefNo OR @RefNo IS NULL OR @RefNo = '')
|
374
|
|
375
|
--SELECT * FROM @MW_ENTRI
|
376
|
DECLARE @ENTRY_PAIR VARCHAR(100)
|
377
|
SET @ENTRY_PAIR = (SELECT TOP 1 ENTRY_PAIR FROM @MW_ENTRI WHERE LEN(ACCT)>9)--------------*********
|
378
|
DECLARE @GDV VARCHAR(50), @KSV VARCHAR(50)
|
379
|
SET @GDV = (SELECT TOP 1 MAKER_ID FROM PAY_ENTRIES_POST WHERE TRN_ID =@p_REF_ID)
|
380
|
SET @KSV =(SELECT TOP 1 CHECKER_ID FROM PAY_ENTRIES_POST WHERE TRN_ID =@p_REF_ID)
|
381
|
--SELECT @ENTRY_PAIR
|
382
|
DECLARE @TABLE_REF TABLE (REF_NO VARCHAR(50))
|
383
|
INSERT INTO @TABLE_REF SELECT DISTINCT REF_NO FROM PAY_ENTRIES_POST WHERE TRN_ID =@p_REF_ID
|
384
|
DECLARE @TABLE_RETURN TABLE (TRN_ID VARCHAR(15), PrintDate VARCHAR(25),SUM_AMT DECIMAL(18,0),SUM_stringMoney VARCHAR(100),CASA_CR_ACCT VARCHAR(20),
|
385
|
CASA_CR_ACCT_NAME VARCHAR(250), CASA_DR_ACCT VARCHAR(20),CASA_DR_ACCT_NAME NVARCHAR(250),REF_NO VARCHAR(50),TRN_DESC VARCHAR(250), G_D_V NVARCHAR(50), K_S_V NVARCHAR(50), RATE VARCHAR(15), G_DV VARCHAR(35), DV_KD VARCHAR(50))
|
386
|
DECLARE @COUNT_SL INT, @REF_REFENCE VARCHAR(50)
|
387
|
SET @COUNT_SL =1
|
388
|
WHILE ((SELECT COUNT (*) FROM @TABLE_REF)>0)
|
389
|
BEGIN
|
390
|
SET @REF_REFENCE=(SELECT TOP 1 REF_NO FROM @TABLE_REF)
|
391
|
SET @COUNT_SL = @COUNT_SL+1
|
392
|
INSERT INTO @TABLE_RETURN SELECT TOP 1 TRN_ID,ISNULL(FORMAT(TRN_DATE,'dd/MM/yyyy'),'') ,
|
393
|
(SELECT SUM (AMT)/2 FROM PAY_ENTRIES_POST WHERE REF_NO =@REF_REFENCE AND TRN_ID =@p_REF_ID),
|
394
|
REPLACE(dbo.ReadMoney((SELECT SUM (AMT) /2 FROM PAY_ENTRIES_POST WHERE REF_NO =@REF_REFENCE AND TRN_ID =@p_REF_ID)),' ',' '),
|
395
|
(SELECT TOP 1 ACCT FROM PAY_ENTRIES_POST WHERE REF_NO =@REF_REFENCE AND LEN(ACCT) >9 AND DRCR ='C' AND TRN_ID =@p_REF_ID),
|
396
|
[dbo].[FN_GET_ACC_NAME_PAY]((SELECT TOP 1 ACCT FROM PAY_ENTRIES_POST WHERE REF_NO =@REF_REFENCE AND LEN(ACCT) >9 AND DRCR ='C' AND TRN_ID =@p_REF_ID)),
|
397
|
(SELECT TOP 1 ACCT FROM PAY_ENTRIES_POST WHERE REF_NO =@REF_REFENCE AND LEN(ACCT) >9 AND DRCR ='D' AND TRN_ID =@p_REF_ID),
|
398
|
[dbo].[FN_GET_ACC_NAME_PAY]((SELECT TOP 1 ACCT FROM PAY_ENTRIES_POST WHERE REF_NO =@REF_REFENCE AND LEN(ACCT) >9 AND DRCR ='D' AND TRN_ID =@p_REF_ID)),@REF_REFENCE, TRN_DESC ,
|
399
|
CHAR(10) + dbo.fChuyenCoDauThanhKhongDau((SELECT TOP 1 TLFullName FROM TL_USER WHERE TLNANME =@GDV)),CHAR(10) + dbo.fChuyenCoDauThanhKhongDau((SELECT TOP 1 TLFullName FROM TL_USER WHERE TLNANME =@KSV)),
|
400
|
'1', UPPER(@GDV),'HOI SO'
|
401
|
FROM PAY_ENTRIES_POST WHERE TRN_ID =@p_REF_ID AND REF_NO =@REF_REFENCE
|
402
|
DELETE FROM @TABLE_REF WHERE REF_NO =@REF_REFENCE
|
403
|
END
|
404
|
SELECT * FROM @TABLE_RETURN
|
405
|
--SELECT MAX(KQ.TRN_ID) AS TRN_ID , MAX(KQ.PrintDate) AS PrintDate, SUM(KQ.SUM_AMT) AS SUM_AMT, MAX(KQ.SUM_stringMoney) AS SUM_stringMoney, MAX(KQ.CASA_CR_ACCT) AS CASA_CR_ACCT,
|
406
|
--MAX(KQ.CASA_CR_ACCT_NAME) AS CASA_CR_ACCT_NAME,MAX(KQ.CASA_DR_ACCT) AS CASA_DR_ACCT,MAX(KQ.CASA_DR_ACCT_NAME) AS CASA_DR_ACCT_NAME, KQ.REF_NO, MAX(KQ.TRN_DESC) AS TRN_DESC, MAX(KQ.MAKER_ID) AS [USER_NAME]
|
407
|
--FROM
|
408
|
--(
|
409
|
--SELECT A.TRN_ID,
|
410
|
-- convert(varchar(10),DAY(A.TRN_DATE))+N'/'+convert(varchar(10),MONTH(A.TRN_DATE)) +N'/'+convert(varchar(10),YEAR(A.TRN_DATE)) AS PrintDate,
|
411
|
-- A.SUM_AMT,
|
412
|
-- A.SUM_stringMoney,
|
413
|
-- C.CR_ACCT AS CASA_CR_ACCT, C.CASA_CR_ACCT_NAME,
|
414
|
-- B.DR_ACCT AS CASA_DR_ACCT, B.CASA_DR_ACCT_NAME,
|
415
|
-- D.TRN_DESC,
|
416
|
-- D.REF_NO,
|
417
|
-- '' AS REF_NO_SUM,
|
418
|
-- A.MAKER_ID
|
419
|
--FROM
|
420
|
--(
|
421
|
-- SELECT A.TRN_ID,
|
422
|
-- CONVERT(DATE,A.TRN_DATE,103) TRN_DATE,
|
423
|
-- SUM(A.AMT) AS SUM_AMT,
|
424
|
-- dbo.ReadMoney(SUM(A.AMT)) AS SUM_stringMoney,
|
425
|
-- A.MAKER_ID
|
426
|
-- FROM @MW_ENTRI A
|
427
|
-- WHERE DRCR = 'D'
|
428
|
-- GROUP BY A.TRN_ID, CONVERT(DATE,A.TRN_DATE,103), A.REF_NO,A.MAKER_ID
|
429
|
--) AS A
|
430
|
--LEFT JOIN
|
431
|
--(
|
432
|
-- SELECT TOP 1 A.REF_NO, A.TRN_ID, A.ACCT DR_ACCT, [dbo].[FN_GET_ACC_NAME_PAY](A.ACCT) AS CASA_DR_ACCT_NAME
|
433
|
-- FROM @MW_ENTRI A
|
434
|
-- WHERE LEN(A.ACCT) > 9 AND A.DRCR = 'D' AND ENTRY_PAIR = @ENTRY_PAIR
|
435
|
-- GROUP BY A.REF_NO
|
436
|
-- ) AS B ON B.TRN_ID = A.TRN_ID
|
437
|
--LEFT JOIN
|
438
|
--(
|
439
|
-- SELECT TOP 1 A.REF_NO, A.TRN_ID, A.ACCT CR_ACCT, [dbo].[FN_GET_ACC_NAME_PAY](A.ACCT) CASA_CR_ACCT_NAME
|
440
|
-- FROM @MW_ENTRI A
|
441
|
-- WHERE LEN(A.ACCT) > 9 AND A.DRCR = 'C' AND ENTRY_PAIR = @ENTRY_PAIR
|
442
|
-- GROUP BY A.REF_NO
|
443
|
-- ) AS C ON C.TRN_ID = A.TRN_ID
|
444
|
--LEFT JOIN
|
445
|
--(
|
446
|
-- SELECT TOP 100 A.TRN_DESC, A.TRN_ID, A.REF_NO
|
447
|
-- FROM @MW_ENTRI A
|
448
|
-- ) AS D ON D.TRN_ID = A.TRN_ID
|
449
|
----LEFT JOIN
|
450
|
----(
|
451
|
---- SELECT STUFF((SELECT ', ' + C1.REF_NO
|
452
|
---- FROM @MW_ENTRI C1
|
453
|
---- WHERE C2.TRN_ID = C1.TRN_ID
|
454
|
---- GROUP BY C1.TRN_ID,C1.REF_NO
|
455
|
---- FOR XML PATH('')
|
456
|
---- ),1,1,'') AS REF_NO_SUM, C2.TRN_ID
|
457
|
---- FROM @MW_ENTRI C2
|
458
|
---- GROUP BY C2.TRN_ID, C2.REF_NO
|
459
|
----) AS E ON E.TRN_ID = A.TRN_ID
|
460
|
--) AS KQ
|
461
|
--GROUP BY KQ.REF_NO
|
462
|
|
463
|
|
464
|
¿
|
465
|
|
466
|
|
467
|
|
468
|
ALTER PROCEDURE [dbo].[PAY_ENTRIES_POST_ByRefId]
|
469
|
@p_REF_ID VARCHAR(200) = NULL,
|
470
|
@p_BRANCH_ID VARCHAR(50) = NULL,
|
471
|
@RefNo VARCHAR(500) = NULL
|
472
|
AS
|
473
|
-- LUCTV 03062020 BO SUNG BANG MAP GL
|
474
|
DECLARE @TABLE_MAP_GL TABLE (ACCT VARCHAR(100), TL_GL VARCHAR(100), GL_NAME VARCHAR(1000))
|
475
|
INSERT INTO @TABLE_MAP_GL SELECT ACC_NO, TK_GL, TK_GL_NAME FROM CM_ACCOUNT
|
476
|
--INSERT INTO @TABLE_MAP_GL SELECT ACC_NUM, TK_GL, TK_GL_NAME FROM CM_ACCOUNT_PAY
|
477
|
--INSERT INTO @TABLE_MAP_GL SELECT ACC_NUM, (SELECT ParaValue FROM SYS_PARAMETERS WHERE ParaKey ='NCC_GL'), (SELECT Description FROM SYS_PARAMETERS WHERE ParaKey ='NCC_GL') FROM CM_SUPPLIER
|
478
|
--INSERT INTO @TABLE_MAP_GL SELECT ACC_NUM_OUT, (SELECT ParaValue FROM SYS_PARAMETERS WHERE ParaKey ='NCC_GL_O'), (SELECT Description FROM SYS_PARAMETERS WHERE ParaKey ='NCC_GL_O') FROM CM_SUPPLIER
|
479
|
---
|
480
|
SELECT A.REF_NO, MAX(A.DR_ACCT) AS DR_ACCT, MAX(A.DR_ACCT_NAME) AS DR_ACCT_NAME,
|
481
|
MAX(A.DR_BRN) AS DR_BRN,MAX(A.DR_D) AS DR_D, MAX(A.ACCT) AS ACCT, MAX(A.REF_ID) AS REF_ID, MAX(A.DR_D) AS DR_D, MAX(A.ENTRY_PAIR) AS ENTRY_PAIR,
|
482
|
MAX(A.DRCR) AS DRCR, REPLACE (FORMAT (SUM(A.AMT),'#,###'),',','.') +',00 VND' AS AMT
|
483
|
FROM
|
484
|
(
|
485
|
SELECT A.AMT, A.ACCT +' '+ BR.BRANCH_CODE AS DR_ACCT, [dbo].[FN_GET_ACC_NAME_PAY](A.ACCT) AS DR_ACCT_NAME, '' DR_BRN,
|
486
|
(CASE WHEN A.DRCR = 'D' THEN N'Nợ/Debit' ELSE N'Có/Credit' END) AS ACCT, '' AS REF_ID, ISNULL(DP.DEP_CODE,'') AS DR_D, A.ENTRY_PAIR,A.DRCR,A.REF_NO
|
487
|
FROM PAY_ENTRIES_POST A
|
488
|
LEFT JOIN CM_BRANCH BR ON A.BRN_ID = BR.BRANCH_ID
|
489
|
LEFT JOIN CM_DEPARTMENT DP ON A.DEPT_ID = DP.DEP_ID
|
490
|
WHERE A.TRN_ID = @p_REF_ID AND (A.REF_NO = @RefNo OR @RefNo IS NULL OR @RefNo = '')
|
491
|
AND LEN(A.ACCT) <= 9
|
492
|
--ORDER BY A.ENTRY_PAIR, A.DRCR DESC
|
493
|
|
494
|
UNION
|
495
|
|
496
|
SELECT A.AMT, GL.TL_GL +' '+ BR.BRANCH_CODE AS DR_ACCT, GL.GL_NAME AS DR_ACCT_NAME, '' DR_BRN,
|
497
|
(CASE WHEN A.DRCR = 'D' THEN N'Nợ/Debit' ELSE N'Có/Credit' END) AS ACCT, '' AS REF_ID, ISNULL(DP.DEP_CODE,'') AS DR_D,A.ENTRY_PAIR,A.DRCR,A.REF_NO
|
498
|
FROM PAY_ENTRIES_POST A
|
499
|
INNER JOIN @TABLE_MAP_GL GL ON A.ACCT = GL.ACCT
|
500
|
LEFT JOIN CM_BRANCH BR ON A.BRN_ID = BR.BRANCH_ID
|
501
|
LEFT JOIN CM_DEPARTMENT DP ON A.DEPT_ID = DP.DEP_ID
|
502
|
WHERE A.TRN_ID = @p_REF_ID AND (A.REF_NO = @RefNo OR @RefNo IS NULL OR @RefNo = '')
|
503
|
AND LEN(A.ACCT) > 9
|
504
|
) A
|
505
|
--ORDER BY A.ENTRY_PAIR, A.DRCR,A.REF_NO
|
506
|
GROUP BY A.REF_NO, A.DR_ACCT, A.DRCR
|
507
|
ORDER BY A.DRCR DESC
|
508
|
|
509
|
--DECLARE @ENT_TEMP TABLE (ID INT,REF_ID VARCHAR(15), CR_ACCT VARCHAR(50), CR_BRN VARCHAR(15), DR_ACCT VARCHAR(50), DR_BRN VARCHAR(15), AMT DECIMAL(18,0), TRN_DESC NVARCHAR(500), ASSET_ID VARCHAR(15))
|
510
|
--DECLARE @ENT_TEMP_ROOT TABLE (ID INT,REF_ID VARCHAR(15), CR_ACCT VARCHAR(50), CR_BRN VARCHAR(15), DR_ACCT VARCHAR(50), DR_BRN VARCHAR(15), AMT DECIMAL(18,0), TRN_DESC NVARCHAR(500), ASSET_ID VARCHAR(15),DR_NAME NVARCHAR(500), CR_NAME NVARCHAR(500))
|
511
|
--DECLARE @TRN_DESC NVARCHAR(500) = '', @TRN_TYPE VARCHAR(50)
|
512
|
|
513
|
----------------------------LAY DANH SACH BUT TOAN -- LU VAO BANG DU LIEU GOC--------------------------
|
514
|
--INSERT INTO @ENT_TEMP_ROOT SELECT Row_number() over(order by A.CR_ACCT),'',A.CR_ACCT, B.BRANCH_CODE CR_BRN, A.DR_ACCT, C.BRANCH_CODE DR_BRN, SUM(A.AMT) AS AMT,@TRN_DESC, A.MAST_PRICE_ID AS ASSET_ID,NULL, NULL
|
515
|
--FROM MW_ENTRIES_POST A
|
516
|
--LEFT JOIN CM_BRANCH B ON A.CR_BRN = B.BRANCH_ID
|
517
|
--LEFT JOIN CM_BRANCH C ON A.DR_BRN = C.BRANCH_ID
|
518
|
--WHERE TRN_ID = @p_REF_ID AND (A.DO_BRN = @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '') AND (REF_NO = @RefNo OR @RefNo IS NULL OR @RefNo = '')
|
519
|
--GROUP BY A.CR_ACCT, B.BRANCH_CODE, A.DR_ACCT, C.BRANCH_CODE,A.MAST_PRICE_ID
|
520
|
----ORDER BY LEN(CR_ACCT)
|
521
|
|
522
|
----select * from @ENT_TEMP_ROOT
|
523
|
----DECLARE @COUNT INT = (SELECT COUNT(*) - COUNT(DISTINCT ASSET_ID) FROM ASS_ENTRIES_POST WHERE TRN_ID = @p_REF_ID)
|
524
|
|
525
|
----IF (SELECT COUNT(DISTINCT TRN_TYPE) FROM MW_ENTRIES_POST WHERE TRN_ID = @p_REF_ID) > 1
|
526
|
----SET @TRN_TYPE = 'ADD_NEW'
|
527
|
----ELSE
|
528
|
----SET @TRN_TYPE = (SELECT TOP 1 TRN_TYPE FROM ASS_ENTRIES_POST WHERE TRN_ID = @p_REF_ID )
|
529
|
------------------------------TACH 1 DONG DU LIEU THANH 2 DONG NAM LIEN KE NHAU DE BINDING WORD--------------------------
|
530
|
---------LAY TAI KHOAN GL TUONG UNG CASA TRONG CM_BRANCH
|
531
|
--UPDATE @ENT_TEMP_ROOT SET CR_ACCT = B.TEL, CR_NAME = B.PROVICE
|
532
|
--FROM CM_BRANCH B
|
533
|
--INNER JOIN @ENT_TEMP_ROOT C ON C.CR_ACCT = B.DAO_CODE AND LEN(C.CR_ACCT)>9
|
534
|
|
535
|
--UPDATE @ENT_TEMP_ROOT SET DR_ACCT = B.TEL, DR_NAME = B.PROVICE
|
536
|
--FROM CM_BRANCH B
|
537
|
--INNER JOIN @ENT_TEMP_ROOT C ON C.DR_ACCT = B.DAO_CODE AND LEN(C.DR_ACCT)>9
|
538
|
|
539
|
----IF @TRN_TYPE = 'ADD_NEW' OR @TRN_TYPE = 'ASS_USE' OR @TRN_TYPE='ASS_TRANSFER'
|
540
|
----BEGIN
|
541
|
-- SELECT SUM(AG.AMT) AMT, AG.DR_ACCT, AG.DR_ACCT_NAME, AG.DR_BRN, AG.ACCT,SUM(REF_ID) REF_ID, AG.DR_D DR_D
|
542
|
-- FROM
|
543
|
-- (
|
544
|
-- SELECT A.AMT, A.DR_ACCT AS DR_ACCT, ISNULL(A.DR_NAME,[dbo].[FN_GET_ACC_NAME](A.DR_ACCT)) AS DR_ACCT_NAME, '' AS DR_BRN, N'Nợ/Debit' AS ACCT,ID AS REF_ID, A.DR_BRN AS DR_D
|
545
|
-- FROM @ENT_TEMP_ROOT A
|
546
|
-- --WHERE LEN(A.DR_ACCT) <= 9
|
547
|
-- UNION
|
548
|
-- SELECT A.AMT, A.CR_ACCT AS DR_ACCT, ISNULL(A.CR_NAME,[dbo].[FN_GET_ACC_NAME](A.CR_ACCT)) AS DR_ACCT_NAME, '' AS DR_BRN, N'Có/Credit' AS ACCT,ID AS REF_ID, A.CR_BRN AS DR_D
|
549
|
-- FROM @ENT_TEMP_ROOT A
|
550
|
-- --WHERE LEN(A.CR_ACCT) <= 9
|
551
|
-- --ORDER BY ID, ACCT DESC
|
552
|
-- ) AG
|
553
|
-- GROUP BY AG.DR_ACCT, AG.DR_ACCT_NAME,AG.DR_BRN,AG.DR_ACCT,AG.ACCT, AG.DR_D
|
554
|
-- ORDER BY SUM(REF_ID), AG.ACCT DESC
|
555
|
----END
|
556
|
----ELSE
|
557
|
----BEGIN
|
558
|
---- --IF LEFT(@p_REF_ID,4) = 'ASSL'--THANH LY TAI SAN
|
559
|
---- SELECT SUM(AG.AMT) AMT, AG.DR_ACCT, AG.DR_ACCT_NAME, AG.DR_BRN, AG.ACCT,SUM(REF_ID) REF_ID, AG.DR_D DR_D
|
560
|
---- FROM
|
561
|
---- (
|
562
|
---- SELECT A.AMT, A.DR_ACCT AS DR_ACCT, [dbo].[FN_GET_ACC_NAME](A.DR_ACCT) AS DR_ACCT_NAME, A.ASSET_ID AS DR_BRN, N'Nợ/Debit' AS ACCT,ID AS REF_ID, A.DR_BRN AS DR_D
|
563
|
---- FROM @ENT_TEMP_ROOT A
|
564
|
---- UNION
|
565
|
---- SELECT A.AMT, A.CR_ACCT AS DR_ACCT, [dbo].[FN_GET_ACC_NAME](A.CR_ACCT) AS DR_ACCT_NAME, A.ASSET_ID AS DR_BRN, N'Có/Credit' AS ACCT,ID AS REF_ID, A.CR_BRN AS DR_D
|
566
|
---- FROM @ENT_TEMP_ROOT A
|
567
|
---- --ORDER BY ID, ACCT DESC
|
568
|
---- ) AG
|
569
|
---- GROUP BY AG.DR_ACCT, AG.DR_ACCT_NAME,AG.DR_BRN,AG.DR_ACCT,AG.ACCT, AG.DR_D
|
570
|
---- ORDER BY AG.DR_BRN, AG.ACCT DESC
|
571
|
----END
|
572
|
|
573
|
--DELETE @ENT_TEMP
|
574
|
--DELETE @ENT_TEMP_ROOT
|
575
|
--------------------------DONE--------------------------
|
576
|
|
577
|
|
578
|
¿
|
579
|
|
580
|
ALTER PROC [dbo].[CM_ACCOUNT_PAY_Upd]
|
581
|
@p_USER_ID VARCHAR(15) = NULL,
|
582
|
@p_ACC_TYPE VARCHAR(150) = NULL,
|
583
|
@p_ACC_NO VARCHAR(150) = NULL,
|
584
|
@p_ACC_NAME VARCHAR(150) = NULL,
|
585
|
@p_MAKER_ID VARCHAR(15)= NULL,
|
586
|
@p_TK_GL VARCHAR(100)= NULL,
|
587
|
@p_TK_GL_NAME VARCHAR(1000)= NULL,
|
588
|
@p_EDITOR_ID VARCHAR(15)= NULL
|
589
|
AS
|
590
|
BEGIN TRANSACTION
|
591
|
IF(@p_TK_GL ='' OR @p_TK_GL IS NULL)
|
592
|
BEGIN
|
593
|
ROLLBACK TRANSACTION
|
594
|
SELECT '-1' as Result, '' ACC_ID, N'Tài khoản GL không được phép để trống' ErrorDesc
|
595
|
RETURN '-1'
|
596
|
END
|
597
|
IF(@p_TK_GL_NAME ='' OR @p_TK_GL_NAME IS NULL)
|
598
|
BEGIN
|
599
|
ROLLBACK TRANSACTION
|
600
|
SELECT '-1' as Result, '' ACC_ID, N'Tên tài khoản GL không được phép để trống' ErrorDesc
|
601
|
RETURN '-1'
|
602
|
END
|
603
|
IF(@p_ACC_NO ='' OR @p_ACC_NO IS NULL)
|
604
|
BEGIN
|
605
|
ROLLBACK TRANSACTION
|
606
|
SELECT '-1' as Result, '' ACC_ID, N'Số tài khoản không được phép để trống' ErrorDesc
|
607
|
RETURN '-1'
|
608
|
END
|
609
|
IF(@p_ACC_NAME ='' OR @p_ACC_NAME IS NULL)
|
610
|
BEGIN
|
611
|
ROLLBACK TRANSACTION
|
612
|
SELECT '-1' as Result, '' ACC_ID, N'Tên tài khoản không được phép để trống' ErrorDesc
|
613
|
RETURN '-1'
|
614
|
END
|
615
|
IF(@p_ACC_TYPE ='ADV_PAY')
|
616
|
BEGIN
|
617
|
IF(EXISTS(SELECT * FROM CM_ACCOUNT_PAY WHERE REF_ID <> @p_USER_ID AND ACC_NUM =@p_ACC_NO))
|
618
|
BEGIN
|
619
|
ROLLBACK TRANSACTION
|
620
|
SELECT '-1' as Result, '' ACC_ID, N'Tài khoản tạm ứng ' + @p_ACC_NO + N' đã tồn tại trong hệ thống' ErrorDesc
|
621
|
RETURN '-1'
|
622
|
END
|
623
|
IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE AUTH_STATUS_KT ='A' AND REQ_TYPE='I' AND RECEIVER_DEBIT =@p_ACC_NO))
|
624
|
BEGIN
|
625
|
ROLLBACK TRANSACTION
|
626
|
SELECT '-1' as Result, '' ACC_ID, N'Tài khoản tạm ứng ' + @p_ACC_NO + N' đã được sử dụng để tạm ứng (đã bắn bút toán tạm ứng vào core)' ErrorDesc
|
627
|
RETURN '-1'
|
628
|
END
|
629
|
UPDATE CM_ACCOUNT_PAY SET ACC_NAME =@p_ACC_NAME, ACC_NUM =@p_ACC_NO,EDITOR_DT = GETDATE(), EDITOR_ID =@p_EDITOR_ID,AUTH_STATUS ='U' WHERE REF_ID =@p_USER_ID
|
630
|
--- UPDATE TOAN BO CAC HACH TOAN CO SU DUNG TAI KHOAN TAM UNG
|
631
|
--UPDATE TR_REQ_ADVANCE_PAYMENT SET RECEIVER_DEBIT =@p_ACC_NO WHERE REF_ID =@p_USER_ID AND REQ_TYPE ='I'
|
632
|
--UPDATE TR_REQ_PAY_ENTRIES SET ACCT= @p_ACC_NO WHERE REQ_PAY_ID IN (SELECT REQ_PAY_ID FROM TR_REQ_ADVANCE_PAYMENT WHERE REF_ID =@p_USER_ID AND REQ_TYPE ='I')
|
633
|
END
|
634
|
ELSE
|
635
|
BEGIN
|
636
|
--KIEM TRA XEM DA TON TAI TAM UNG NOI BO NAO SU DUNG SO TAI KHOAN TAM UNG CUA NHAN VIEN NAY HAY KHONG
|
637
|
IF(EXISTS(SELECT * FROM TR_REQ_PAY_ENTRIES WHERE AUTH_STATUS_KT ='A'))
|
638
|
BEGIN
|
639
|
ROLLBACK TRANSACTION
|
640
|
SELECT '-1' as Result, '' ACC_ID, N'Tài khoản ' + @p_ACC_NO + N' đã được sử dụng để hạch toán (đã bắn bút toán tạm ứng vào core)' ErrorDesc
|
641
|
RETURN '-1'
|
642
|
END
|
643
|
ELSE
|
644
|
BEGIN
|
645
|
UPDATE CM_ACCOUNT SET ACC_NAME =@p_ACC_NAME,AUTH_STATUS='U', TK_GL =@p_TK_GL,TK_GL_NAME =@p_TK_GL_NAME WHERE ACC_NO =@p_ACC_NO
|
646
|
END
|
647
|
END
|
648
|
-- UPDATE CHUNG
|
649
|
UPDATE CM_ACCOUNT SET TK_GL =@p_TK_GL, TK_GL_NAME = @p_TK_GL_NAME WHERE ACC_NO =@p_ACC_NO
|
650
|
COMMIT TRANSACTION
|
651
|
SELECT '0' as Result, '' ACC_ID, '' ErrorDesc
|
652
|
RETURN '0'
|
653
|
ABORT:
|
654
|
BEGIN
|
655
|
ROLLBACK TRANSACTION
|
656
|
SELECT '-1' as Result, '' ACC_ID, '' ErrorDesc
|
657
|
RETURN '-1'
|
658
|
END
|
659
|
|
660
|
|
661
|
¿
|
662
|
|
663
|
ALTER PROC [dbo].[CM_ACCOUNT_PAY_Ins]
|
664
|
@p_USER_ID VARCHAR(15) = NULL,
|
665
|
@p_ACC_TYPE VARCHAR(150) = NULL,
|
666
|
@p_ACC_NO VARCHAR(150) = NULL,
|
667
|
@p_ACC_NAME VARCHAR(150) = NULL,
|
668
|
@p_TK_GL VARCHAR(100) = NULL,
|
669
|
@p_TK_GL_NAME VARCHAR(1000) = NULL,
|
670
|
@p_MAKER_ID VARCHAR(15)= NULL
|
671
|
AS
|
672
|
BEGIN TRANSACTION
|
673
|
IF(EXISTS(SELECT * FROM CM_ACCOUNT_PAY WHERE ACC_NUM =@p_ACC_NO) AND @p_ACC_TYPE <> 'ENTRIES' )
|
674
|
BEGIN
|
675
|
ROLLBACK TRANSACTION
|
676
|
SELECT '-1' as Result, '' ACC_ID, N'Tài khoản tạm ứng của đã tồn tại trong hệ thống' ErrorDesc
|
677
|
RETURN '-1'
|
678
|
END
|
679
|
IF(EXISTS(SELECT * FROM CM_ACCOUNT_PAY WHERE ACC_TYPE =@p_ACC_TYPE AND REF_ID =@p_USER_ID) AND @p_ACC_TYPE <> 'ENTRIES' )
|
680
|
BEGIN
|
681
|
ROLLBACK TRANSACTION
|
682
|
SELECT '-1' as Result, '' ACC_ID, N'Tài khoản tạm ứng của nhân viên ' +@p_USER_ID + N' đã tồn tại trong hệ thống' ErrorDesc
|
683
|
RETURN '-1'
|
684
|
END
|
685
|
IF(EXISTS(SELECT * FROM CM_ACCOUNT_PAY WHERE ACC_TYPE =@p_ACC_TYPE AND REF_ID =@p_USER_ID) AND @p_ACC_TYPE = 'ENTRIES' )
|
686
|
BEGIN
|
687
|
ROLLBACK TRANSACTION
|
688
|
SELECT '-1' as Result, '' ACC_ID, N'Tài khoản hạch toán ' + @p_ACC_NO + N' đã tồn tại trong hệ thống' ErrorDesc
|
689
|
RETURN '-1'
|
690
|
END
|
691
|
IF(@p_TK_GL ='' OR @p_TK_GL IS NULL)
|
692
|
BEGIN
|
693
|
ROLLBACK TRANSACTION
|
694
|
SELECT '-1' as Result, '' ACC_ID, N'Tài khoản GL không được phép để trống' ErrorDesc
|
695
|
RETURN '-1'
|
696
|
END
|
697
|
IF(@p_TK_GL_NAME ='' OR @p_TK_GL_NAME IS NULL)
|
698
|
BEGIN
|
699
|
ROLLBACK TRANSACTION
|
700
|
SELECT '-1' as Result, '' ACC_ID, N'Tên tài khoản GL không được phép để trống' ErrorDesc
|
701
|
RETURN '-1'
|
702
|
END
|
703
|
IF(@p_ACC_NO ='' OR @p_ACC_NO IS NULL)
|
704
|
BEGIN
|
705
|
ROLLBACK TRANSACTION
|
706
|
SELECT '-1' as Result, '' ACC_ID, N'Số tài khoản không được phép để trống' ErrorDesc
|
707
|
RETURN '-1'
|
708
|
END
|
709
|
IF(@p_ACC_NAME ='' OR @p_ACC_NAME IS NULL)
|
710
|
BEGIN
|
711
|
ROLLBACK TRANSACTION
|
712
|
SELECT '-1' as Result, '' ACC_ID, N'Tên tài khoản không được phép để trống' ErrorDesc
|
713
|
RETURN '-1'
|
714
|
END
|
715
|
IF(@p_ACC_TYPE ='ADV_PAY')
|
716
|
BEGIN
|
717
|
INSERT INTO CM_ACCOUNT_PAY (REF_ID,ACC_TYPE,ACC_NUM,ACC_NAME,FUNTION,TK_GL,CREATE_DT,MAKER_ID,EDITOR_ID,EDITOR_DT,AUTH_STATUS,CHECKER_ID,APPROVE_DT,TK_GL_NAME)
|
718
|
VALUES (@p_USER_ID,@p_ACC_TYPE,@p_ACC_NO,@p_ACC_NAME,'I',@p_TK_GL,GETDATE(),@p_MAKER_ID,NULL,NULL,'U',NULL,NULL,@p_TK_GL_NAME)
|
719
|
-- THEM VAO BANG TAI KHOAN DUNG DE HACH TOAN
|
720
|
IF(NOT EXISTS(SELECT * FROM CM_ACCOUNT WHERE ACC_NO =@p_ACC_NO))
|
721
|
BEGIN
|
722
|
INSERT INTO CM_ACCOUNT(ACC_NO,ACC_NAME,TK_GL,TK_GL_NAME,MAKER_ID,CREATE_DT,AUTH_STATUS,EDITOR_ID,EDITOR_DT,CHECKER_ID,APPROVE_DT)
|
723
|
VALUES (@p_ACC_NO,@p_ACC_NAME,@p_TK_GL,@p_TK_GL_NAME,@p_MAKER_ID,GETDATE(),'U',NULL,NULL,NULL,NULL)
|
724
|
END
|
725
|
ELSE
|
726
|
BEGIN
|
727
|
UPDATE CM_ACCOUNT SET TK_GL =@p_TK_GL, TK_GL_NAME = @p_TK_GL_NAME WHERE ACC_NO =@p_ACC_NO
|
728
|
END
|
729
|
END
|
730
|
ELSE
|
731
|
BEGIN
|
732
|
IF(EXISTS(SELECT * FROM CM_ACCOUNT WHERE ACC_NO =@p_ACC_NO))
|
733
|
BEGIN
|
734
|
ROLLBACK TRANSACTION
|
735
|
SELECT '-1' as Result, '' ACC_ID, N'Tài khoản hạch toán đã tồn tại trong hệ thống' ErrorDesc
|
736
|
RETURN '-1'
|
737
|
END
|
738
|
ELSE
|
739
|
BEGIN
|
740
|
INSERT INTO CM_ACCOUNT(ACC_NO,ACC_NAME,TK_GL,TK_GL_NAME,MAKER_ID,CREATE_DT,AUTH_STATUS,EDITOR_ID,EDITOR_DT,CHECKER_ID,APPROVE_DT)
|
741
|
VALUES (@p_ACC_NO,@p_ACC_NAME,@p_TK_GL,@p_TK_GL_NAME,@p_MAKER_ID,GETDATE(),'U',NULL,NULL,NULL,NULL)
|
742
|
END
|
743
|
END
|
744
|
COMMIT TRANSACTION
|
745
|
SELECT '0' as Result, '' ACC_ID, '' ErrorDesc
|
746
|
RETURN '0'
|
747
|
ABORT:
|
748
|
BEGIN
|
749
|
ROLLBACK TRANSACTION
|
750
|
SELECT '-1' as Result, '' ACC_ID, '' ErrorDesc
|
751
|
RETURN '-1'
|
752
|
END
|
753
|
¿
|
754
|
|
755
|
|
756
|
|
757
|
ALTER PROCEDURE [dbo].[TR_REQ_PAYMENT_KT_Upd]
|
758
|
@p_REQ_PAY_ID varchar(15)= NULL,
|
759
|
@p_REQ_PAY_CODE varchar(50) = NULL,
|
760
|
@p_REQ_DT VARCHAR(20)= NULL,
|
761
|
@p_BRANCH_ID varchar(15) = NULL,
|
762
|
@p_DEP_ID varchar(15) = NULL,
|
763
|
@p_REQ_REASON nvarchar(MAX) = NULL,
|
764
|
@p_REQ_TYPE varchar(15) = NULL,
|
765
|
@P_REQ_ENTRIES nvarchar(MAX) = NULL,
|
766
|
@p_REQ_DESCRIPTION nvarchar(MAX) = NULL,
|
767
|
@p_REF_ID varchar(15) = NULL,
|
768
|
@p_RECEIVER_PO nvarchar(250) = NULL,
|
769
|
@p_REQ_PAY_TYPE varchar(15) = NULL,
|
770
|
@p_REQ_TYPE_CURRENCY nvarchar(50) = NULL,
|
771
|
@p_REQ_AMT decimal(18, 0) = NULL,
|
772
|
@p_REQ_TEMP_AMT decimal(18, 0) = NULL,
|
773
|
@p_MAKER_ID varchar(15) = NULL,
|
774
|
@p_CREATE_DT varchar(25) = NULL,
|
775
|
@p_EDITOR_ID varchar(15) = NULL,
|
776
|
@p_AUTH_STATUS varchar(1) = NULL,
|
777
|
@p_CHECKER_ID varchar(15) = NULL,
|
778
|
@p_APPROVE_DT varchar(25) = NULL,
|
779
|
@p_CREATE_DT_KT varchar(25) = NULL,
|
780
|
@p_MAKER_ID_KT varchar(15) = NULL,
|
781
|
@p_AUTH_STATUS_KT varchar(1) = NULL,
|
782
|
@p_CHECKER_ID_KT varchar(1) = NULL,
|
783
|
@p_APPROVE_DT_KT varchar(25)= null,
|
784
|
@p_CONFIRM_NOTE nvarchar(500) = NULL,
|
785
|
@p_BRANCH_CREATE varchar(15) = NULL,
|
786
|
@p_NOTES varchar(15) = NULL,
|
787
|
@p_RECORD_STATUS varchar(1) = NULL,
|
788
|
@p_TRANSFER_MAKER nvarchar(50) = NULL,
|
789
|
@p_TRANSFER_DT varchar(25) = NULL,
|
790
|
@p_TRASFER_USER_RECIVE varchar(15) = NULL,
|
791
|
@p_PROCESS varchar(15) = NULL,
|
792
|
@p_PAY_PHASE VARCHAR(15) = NULL,
|
793
|
@p_XMP_TEMP XML = NULL,
|
794
|
@p_XMP_TEMP_2 XML = NULL
|
795
|
AS
|
796
|
|
797
|
--Validation is here
|
798
|
IF ((SELECT AUTH_STATUS FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID = @p_REQ_PAY_ID) ='R')
|
799
|
BEGIN
|
800
|
SELECT '-1' Result,'' REQ_PAY_ID,N'Phiếu đề nghị thanh toán đang được trả về đơn vị. Vui lòng chờ đơn vị cập nhật thông tin và duyệt lại!' ErrorDesc
|
801
|
RETURN '-1'
|
802
|
END
|
803
|
DECLARE @ENTRY_PAIR varchar(20),@DR_CR varchar(20),@ACCT VARCHAR(50), @ACCT_NAME VARCHAR(500), @AMT decimal(18,2),@CURRENCY VARCHAR(15), @EXC_RATE DECIMAL(18,0),
|
804
|
@BRANCH_ID VARCHAR(15), @DEP_ID VARCHAR(15),@TRN_DESC nvarchar(1000),@GL_CODE VARCHAR(100)
|
805
|
DECLARE @VAT decimal(18, 0) =NULL, @TRANS_NO nvarchar(50)=NULL, @TRANS_DT VARCHAR(20)=NULL,@INVOICE_SIGN nvarchar(50) = NULL,@INVOICE_NO_SIGN nvarchar(50)=null,
|
806
|
@INVOICE_NO nvarchar(50) = NULL,@INVOICE_DT VARCHAR(20) = NULL,@SELLER nvarchar(250) = NULL,@TAX_NO nvarchar(15) = NULL,@GOODS_NAME nvarchar(250) = NULL,
|
807
|
@PRICE decimal(18, 0) = NULL,@TAX decimal(18, 0) = NULL,@NOTES NVARCHAR(MAX) = NULL,@VAT_RATE decimal(18,2),
|
808
|
@ACC_NO VARCHAR(25),@ACC_NAME NVARCHAR(250),@ISSUED_BY NVARCHAR(250),@ISSUED_DT VARCHAR(20),@RATE DECIMAL(18,2),@PRICE_KT DECIMAL(18,2) =0,@TOTAL_AMT_KT DECIMAL(18,2) =0,@VAT_KT DECIMAL(18,2) =0,
|
809
|
@TYPE_VAT VARCHAR(15),@TYPE_FUNC VARCHAR(15)
|
810
|
DECLARE @hdoc INT;
|
811
|
EXEC sp_xml_preparedocument @hdoc OUTPUT, @p_XMP_TEMP;
|
812
|
DECLARE XmlData CURSOR FOR
|
813
|
SELECT *
|
814
|
FROM
|
815
|
OPENXML(@hdoc, '/Root/XmlData', 2)
|
816
|
WITH(ENTRY_PAIR varchar(20),DR_CR varchar(20),ACCT VARCHAR(50), ACCT_NAME VARCHAR(500), AMT decimal(18,2),CURRENCY VARCHAR(15), EXC_RATE DECIMAL(18,0),
|
817
|
BRANCH_ID VARCHAR(15), DEP_ID VARCHAR(15),TRN_DESC nvarchar(1000),GL_CODE VARCHAR(100))
|
818
|
OPEN XmlData;
|
819
|
---
|
820
|
DECLARE XmlInvoice CURSOR FOR
|
821
|
SELECT *
|
822
|
FROM
|
823
|
OPENXML(@hdoc, '/Root/XmlInvoice', 2)
|
824
|
WITH(TRANS_NO nvarchar(50),TRANS_DT VARCHAR(20),INVOICE_SIGN nvarchar(50),INVOICE_NO_SIGN nvarchar(50),
|
825
|
INVOICE_NO nvarchar(50),INVOICE_DT VARCHAR(20) ,SELLER nvarchar(250),TAX_NO nvarchar(15),GOODS_NAME nvarchar(250) ,
|
826
|
PRICE decimal(18,2),TAX decimal(18, 2),VAT decimal(18,2),NOTE NVARCHAR(MAX),VAT_RATE decimal(18,2),CURRENCY VARCHAR(15), RATE DECIMAL(18,2),PRICE_KT DECIMAL(18,2),VAT_KT DECIMAL(18,2),TOTAL_AMT_KT DECIMAL(18,2),TYPE_VAT VARCHAR(15), TYPE_FUNC VARCHAR(15))
|
827
|
OPEN XmlInvoice;
|
828
|
DECLARE @INDEX INT =0, @INDEX_IV INT =0
|
829
|
BEGIN TRANSACTION
|
830
|
-- KHAI BAO CAC BUOC DUYET- XAC NHAN
|
831
|
DECLARE @LEVEL_JOB VARCHAR(5), @LEVEL_JOB_PREV INT
|
832
|
SET @LEVEL_JOB =(SELECT LEVEL_JOB FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@p_REQ_PAY_ID AND TLNAME=@p_MAKER_ID_KT AND STATUS_JOB='C')
|
833
|
SET @LEVEL_JOB_PREV = CONVERT(INT,@LEVEL_JOB) -1
|
834
|
----
|
835
|
--IF(EXISTS (SELECT * FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID = @p_REQ_PAY_ID AND MAKER_ID_KT IS NULL))
|
836
|
|
837
|
IF(@p_XMP_TEMP IS NOT NULL)
|
838
|
BEGIN
|
839
|
UPDATE TR_REQ_PAYMENT SET
|
840
|
AUTH_STATUS_KT ='U', CREATE_DT_KT = GETDATE(),MAKER_ID_KT =@p_MAKER_ID_KT,CHECKER_ID_KT=NULL,APPROVE_DT_KT = NULL, CONFIRM_NOTE=@p_CONFIRM_NOTE
|
841
|
WHERE REQ_PAY_ID =@p_REQ_PAY_ID
|
842
|
DELETE FROM TR_REQ_PAY_ENTRIES WHERE REQ_PAY_ID = @p_REQ_PAY_ID
|
843
|
DELETE FROM TR_REQ_PAY_INVOICE WHERE REQ_PAY_ID= @p_REQ_PAY_ID
|
844
|
IF @@Error <> 0 GOTO ABORT
|
845
|
DECLARE @DR_CR_NAME NVARCHAR(50),@ACC_NAME_FN NVARCHAR(500)
|
846
|
FETCH NEXT FROM XmlData INTO @ENTRY_PAIR ,@DR_CR,@ACCT, @ACCT_NAME, @AMT ,@CURRENCY, @EXC_RATE,@BRANCH_ID, @DEP_ID,@TRN_DESC,@GL_CODE
|
847
|
WHILE @@fetch_status=0 BEGIN
|
848
|
SET @INDEX = @INDEX +1
|
849
|
SET @GL_CODE = RIGHT(@GL_CODE,9)
|
850
|
IF(@DR_CR='D')
|
851
|
BEGIN
|
852
|
SET @DR_CR_NAME =N'Nợ'
|
853
|
END
|
854
|
ELSE
|
855
|
BEGIN
|
856
|
SET @DR_CR_NAME =N'Có'
|
857
|
END
|
858
|
SET @ACC_NAME_FN =(SELECT TOP 1 ACC_NAME FROM CM_ACCOUNT WHERE ACC_NO =@ACCT)
|
859
|
IF((@ACCT_NAME IS NULL OR @ACCT_NAME ='' OR @ACC_NAME_FN IS NULL OR @ACC_NAME_FN ='' ) OR (ISNULL(@ACCT_NAME,'') <> ISNULL(@ACC_NAME_FN,'')))
|
860
|
BEGIN
|
861
|
ROLLBACK TRANSACTION
|
862
|
CLOSE XmlData;
|
863
|
DEALLOCATE XmlData;
|
864
|
SELECT '-1' as Result, '' REQ_PAY_ID, N'Dòng: '+ CONVERT(VARCHAR(5),@INDEX) + N' Tên tài khoản hạch toán chưa đúng. Vui lòng bấm vào nút Check GL & Check CASA để đồng bộ tài khoản từ Core' ErrorDesc
|
865
|
RETURN '-1'
|
866
|
END
|
867
|
IF(@DR_CR IS NULL OR @DR_CR ='')
|
868
|
BEGIN
|
869
|
ROLLBACK TRANSACTION
|
870
|
CLOSE XmlData;
|
871
|
DEALLOCATE XmlData;
|
872
|
SELECT '-1' as Result, '' REQ_PAY_ID, N'Dòng: '+ CONVERT(VARCHAR(5),@INDEX) + N' Tài khoản nợ không được phép để trống' ErrorDesc
|
873
|
RETURN '-1'
|
874
|
END
|
875
|
IF(@BRANCH_ID IS NULL OR @BRANCH_ID ='')
|
876
|
BEGIN
|
877
|
ROLLBACK TRANSACTION
|
878
|
CLOSE XmlData;
|
879
|
DEALLOCATE XmlData;
|
880
|
SELECT '-1' as Result, '' REQ_PAY_ID, N'Dòng: '+ CONVERT(VARCHAR(5),@INDEX) + N' Đơn vị nhận không được phép để trống' ErrorDesc
|
881
|
RETURN '-1'
|
882
|
END
|
883
|
IF(@ACCT IS NULL OR @ACCT ='')
|
884
|
BEGIN
|
885
|
ROLLBACK TRANSACTION
|
886
|
CLOSE XmlData;
|
887
|
DEALLOCATE XmlData;
|
888
|
SELECT '-1' as Result, '' REQ_PAY_ID, N'Dòng: '+ CONVERT(VARCHAR(5),@INDEX) + N' Tài khoản có không được phép để trống' ErrorDesc
|
889
|
RETURN '-1'
|
890
|
END
|
891
|
IF(@TRN_DESC IS NULL OR @TRN_DESC ='')
|
892
|
BEGIN
|
893
|
ROLLBACK TRANSACTION
|
894
|
CLOSE XmlData;
|
895
|
DEALLOCATE XmlData;
|
896
|
SELECT '-1' as Result, '' REQ_PAY_ID, N'Dòng: '+ CONVERT(VARCHAR(5),@INDEX) + N' Diễn giải hạch toán không được phép để trống' ErrorDesc
|
897
|
RETURN '-1'
|
898
|
END
|
899
|
IF(EXISTS(SELECT * FROM TR_REQ_PAY_METHOD WHERE ACC_NO =@ACCT AND REQ_PAY_ID =@p_REQ_PAY_ID))
|
900
|
BEGIN
|
901
|
IF(@DR_CR ='C' AND ISNULL(@AMT,0) <> (SELECT ISNULL(SUM(TOTAL_AMT),0) FROM TR_REQ_PAY_METHOD WHERE ACC_NO =@ACCT AND REQ_PAY_ID =@p_REQ_PAY_ID))
|
902
|
BEGIN
|
903
|
ROLLBACK TRANSACTION
|
904
|
CLOSE XmlData;
|
905
|
DEALLOCATE XmlData;
|
906
|
SELECT '-1' as Result, '' REQ_PAY_ID, N'Dòng: '+ CONVERT(VARCHAR(5),@INDEX) + N' Số tiền hạch toán có của tài khoản: '+@ACCT + N' phải bằng với số tiền trên phương thức thanh toán của tài khoản đó là: '+FORMAT((SELECT ISNULL(SUM(TOTAL_AMT),0) FROM TR_REQ_PAY_METHOD WHERE ACC_NO =@ACCT AND REQ_PAY_ID =@p_REQ_PAY_ID),'#,###') ErrorDesc
|
907
|
RETURN '-1'
|
908
|
END
|
909
|
END
|
910
|
DECLARE @p_ET_ID VARCHAR(15);
|
911
|
EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_ENTRIES', @p_ET_ID OUT;
|
912
|
IF @p_ET_ID='' OR @p_ET_ID IS NULL GOTO ABORT;
|
913
|
INSERT INTO TR_REQ_PAY_ENTRIES (REQ_PAY_DT_ID,REQ_PAY_ID,ENTRY_PAIR,DR_CR,DR_CR_NAME,ACCT,ACCT_NAME,AMT,CURRENCY,EXC_RATE,BRANCH_ID,DEP_ID,TRN_DESC,TRN_DATE,MAKER_ID_KT)
|
914
|
VALUES (@p_ET_ID,@p_REQ_PAY_ID,@ENTRY_PAIR,@DR_CR,@DR_CR_NAME,@ACCT,@ACCT_NAME, @AMT ,@CURRENCY, @EXC_RATE, @BRANCH_ID, @DEP_ID,@TRN_DESC,GETDATE(),@p_MAKER_ID_KT)
|
915
|
-- NEU CHUA CO TAI KHOAN THI THEM VO CM_ACCOUNT
|
916
|
IF(NOT EXISTS(SELECT * FROM CM_ACCOUNT WHERE ACC_NO =@ACCT))
|
917
|
BEGIN
|
918
|
INSERT INTO CM_ACCOUNT (ACC_NO, ACC_NAME, TK_GL, TK_GL_NAME, MAKER_ID, CHECKER_ID,CREATE_DT) VALUES
|
919
|
(@ACCT,@ACCT_NAME,@GL_CODE,(SELECT TOP 1 ACC_NAME FROM CM_ACCOUNT WHERE ACC_NO =@GL_CODE),'admin','admin',GETDATE())
|
920
|
END
|
921
|
ELSE
|
922
|
BEGIN
|
923
|
IF(@GL_CODE IS NOT NULL AND @GL_CODE <> '')
|
924
|
BEGIN
|
925
|
UPDATE CM_ACCOUNT SET ACC_NAME =@ACCT_NAME, TK_GL =@GL_CODE, TK_GL_NAME =(SELECT TOP 1 ACC_NAME FROM CM_ACCOUNT WHERE ACC_NO =@GL_CODE)
|
926
|
WHERE ACC_NO=@ACCT
|
927
|
END
|
928
|
--UPDATE CM_ACCOUNT SET ACC_NAME =@ACCT_NAME, TK_GL =@GL_CODE, TK_GL_NAME =(SELECT TOP 1 ACC_NAME FROM CM_ACCOUNT WHERE ACC_NO =@GL_CODE), CREATE_DT = GETDATE()
|
929
|
--WHERE ACC_NO=@ACCT
|
930
|
END
|
931
|
---
|
932
|
IF @@error<>0 GOTO ABORT;
|
933
|
FETCH NEXT FROM XmlData INTO @ENTRY_PAIR ,@DR_CR,@ACCT, @ACCT_NAME, @AMT ,@CURRENCY, @EXC_RATE,@BRANCH_ID, @DEP_ID,@TRN_DESC,@GL_CODE
|
934
|
END;
|
935
|
CLOSE XmlData;
|
936
|
DEALLOCATE XmlData;
|
937
|
-- UPDATE INVOICE
|
938
|
--Insert XmlData
|
939
|
|
940
|
FETCH NEXT FROM XmlInvoice INTO @TRANS_NO , @TRANS_DT ,@INVOICE_SIGN ,@INVOICE_NO_SIGN,@INVOICE_NO ,@INVOICE_DT ,@SELLER ,
|
941
|
@TAX_NO ,@GOODS_NAME ,@PRICE ,@TAX,@VAT,@NOTES,@VAT_RATE,@CURRENCY,@RATE,@PRICE_KT ,@VAT_KT,@TOTAL_AMT_KT,@TYPE_VAT,@TYPE_FUNC
|
942
|
WHILE @@fetch_status=0 BEGIN
|
943
|
SET @INDEX_IV = @INDEX_IV+1
|
944
|
IF(LEN(@INVOICE_NO) >7)
|
945
|
BEGIN
|
946
|
ROLLBACK TRANSACTION
|
947
|
SELECT '-1' as Result, '' REQ_PAY_ID, N'Dòng ' + CONVERT(VARCHAR(5),@INDEX_IV)+N': Số hóa đơn '+ @INVOICE_NO +N' không được lớn hơn 7 kí tự' ErrorDesc
|
948
|
RETURN '-1'
|
949
|
END
|
950
|
IF(LEN(@INVOICE_NO) <7)
|
951
|
BEGIN
|
952
|
ROLLBACK TRANSACTION
|
953
|
SELECT '-1' as Result, '' REQ_PAY_ID, N'Dòng ' + CONVERT(VARCHAR(5),@INDEX_IV)+N': Số hóa đơn '+ @INVOICE_NO +N' phải đủ 7 kí tự' ErrorDesc
|
954
|
RETURN '-1'
|
955
|
END
|
956
|
IF(@TYPE_FUNC ='HC')
|
957
|
BEGIN
|
958
|
IF(EXISTS(SELECT * FROM TR_REQ_PAY_INVOICE WHERE INVOICE_NO =@INVOICE_NO AND INVOICE_NO_SIGN = @INVOICE_NO_SIGN AND INVOICE_SIGN =@INVOICE_SIGN AND
|
959
|
TAX_NO =@TAX_NO AND TAX =@TAX AND TYPE_FUNC ='HC' AND AUTH_STATUS <>'D' AND REQ_PAY_ID IN (SELECT REQ_PAY_ID FROM TR_REQ_PAYMENT WHERE AUTH_STATUS <> 'E')))
|
960
|
BEGIN
|
961
|
ROLLBACK TRANSACTION
|
962
|
SELECT '-1' as Result, '' REQ_PAY_ID,N'Dòng ' + CONVERT(VARCHAR(5),@INDEX_IV)+N': Số hóa đơn '+ @INVOICE_NO +N' đã tồn tại trong hệ thống' ErrorDesc
|
963
|
RETURN '-1'
|
964
|
END
|
965
|
END
|
966
|
IF(@TYPE_FUNC ='KT')
|
967
|
BEGIN
|
968
|
IF(EXISTS(SELECT * FROM TR_REQ_PAY_INVOICE WHERE INVOICE_NO =@INVOICE_NO AND INVOICE_NO_SIGN = @INVOICE_NO_SIGN
|
969
|
AND INVOICE_SIGN =@INVOICE_SIGN AND TAX_NO =@TAX_NO AND TAX =@TAX AND TYPE_FUNC ='KT' AND AUTH_STATUS <>'D' AND REQ_PAY_ID IN (SELECT REQ_PAY_ID FROM TR_REQ_PAYMENT WHERE AUTH_STATUS <> 'E')))
|
970
|
BEGIN
|
971
|
ROLLBACK TRANSACTION
|
972
|
SELECT '-1' as Result, '' REQ_PAY_ID,N'Dòng ' + CONVERT(VARCHAR(5),@INDEX_IV)+N': Số hóa đơn '+ @INVOICE_NO +N' đã tồn tại trong hệ thống' ErrorDesc
|
973
|
RETURN '-1'
|
974
|
END
|
975
|
END
|
976
|
DECLARE @p_REQ_INV_ID VARCHAR(15);
|
977
|
EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_INVOICE', @p_REQ_INV_ID OUT;
|
978
|
IF @p_REQ_INV_ID='' OR @p_REQ_INV_ID IS NULL GOTO ABORT;
|
979
|
INSERT INTO TR_REQ_PAY_INVOICE(REQ_PAYDT_ID,REQ_PAY_ID,TRANS_NO,TRANS_DT,INVOICE_SIGN,INVOICE_NO,INVOICE_DT,SELLER,TAX_NO,GOODS_NAME,PRICE,TAX,VAT,NOTE,
|
980
|
MAKER_ID,CREATE_DT,EDITOR_ID,AUTH_STATUS,CHECKER_ID,APPROVE_DT,
|
981
|
CREATE_DT_KT,MAKER_ID_KT,AUTH_STATUS_KT,CHECKER_ID_KT,APPROVE_DT_KT,RECORD_STATUS,INVOICE_NO_SIGN,VAT_RATE,CURRENCY,RATE,PRICE_KT ,VAT_KT,TOTAL_AMT_KT,TYPE_VAT,TYPE_FUNC)
|
982
|
VALUES (@p_REQ_INV_ID,@p_REQ_PAY_ID , @TRANS_NO , CONVERT(DATE,@TRANS_DT,103) ,@INVOICE_SIGN ,@INVOICE_NO ,CONVERT(DATE,@INVOICE_DT,103) ,@SELLER ,@TAX_NO ,@GOODS_NAME ,@PRICE ,@TAX,@VAT,@NOTES,
|
983
|
@p_MAKER_ID,GETDATE(),NULL,'U',NULL,NULL,GETDATE(),@p_MAKER_ID_KT,'U',NULL,NULL,'1',@INVOICE_NO_SIGN,@VAT_RATE,@CURRENCY,@RATE,@PRICE_KT ,@VAT_KT,@TOTAL_AMT_KT,@TYPE_VAT,@TYPE_FUNC)
|
984
|
IF @@error<>0 GOTO ABORT;
|
985
|
FETCH NEXT FROM XmlInvoice
|
986
|
INTO @TRANS_NO , @TRANS_DT,@INVOICE_SIGN,@INVOICE_NO_SIGN,@INVOICE_NO ,@INVOICE_DT ,@SELLER ,@TAX_NO ,@GOODS_NAME ,@PRICE ,
|
987
|
@TAX,@VAT,@NOTES,@VAT_RATE,@CURRENCY,@RATE,@PRICE_KT ,@VAT_KT,@TOTAL_AMT_KT,@TYPE_VAT,@TYPE_FUNC
|
988
|
END;
|
989
|
CLOSE XmlInvoice;
|
990
|
DEALLOCATE XmlInvoice;
|
991
|
--- Luu log chinh sua
|
992
|
INSERT INTO TR_REQ_PAY_INVOICE_LOG SELECT * FROM TR_REQ_PAY_INVOICE WHERE REQ_PAY_ID =@p_REQ_PAY_ID
|
993
|
-----
|
994
|
--- BAT DAU CAP NHAT XAC DINH CAC BUOC DUYET SAU KHI KE TOAN CAP NHAT THONG TIN
|
995
|
END
|
996
|
COMMIT TRANSACTION
|
997
|
IF(@p_XMP_TEMP IS NULL)
|
998
|
BEGIN
|
999
|
IF(EXISTS(SELECT * FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID AND AUTH_STATUS_KT = 'S'))
|
1000
|
BEGIN
|
1001
|
SELECT '-1' as Result, '' REQ_PAY_ID, N'Phiếu đề nghị thanh toán đang được được đề xuất từ chối! Vui lòng đợi KSV xử lý phiếu' ErrorDesc
|
1002
|
RETURN '-1'
|
1003
|
END
|
1004
|
IF(EXISTS(SELECT * FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID AND AUTH_STATUS_KT = 'P'))
|
1005
|
BEGIN
|
1006
|
SELECT '-1' as Result, '' REQ_PAY_ID, N'Phiếu đề nghị thanh toán đã được gửi phê duyệt thành công trước đó! Vui lòng đợi KSV xử lý phiếu' ErrorDesc
|
1007
|
RETURN '-1'
|
1008
|
END
|
1009
|
-- CHAN NEU CHI CO 1 BUT NO 1 BUT CO THI KHONG DUOC DI TIEP
|
1010
|
IF(EXISTS(SELECT * FROM TR_REQ_PAY_ENTRIES WHERE REQ_PAY_ID =@p_REQ_PAY_ID))
|
1011
|
BEGIN
|
1012
|
DECLARE @SUM_CR DECIMAL(18,2), @SUM_DR DECIMAL(18,2)
|
1013
|
SET @SUM_CR =ISNULL((SELECT SUM(AMT*ISNULL(EXC_RATE,1)) FROM TR_REQ_PAY_ENTRIES WHERE REQ_PAY_ID =@p_REQ_PAY_ID AND DR_CR ='C'),0)
|
1014
|
SET @SUM_DR =ISNULL((SELECT SUM(AMT*ISNULL(EXC_RATE,1)) FROM TR_REQ_PAY_ENTRIES WHERE REQ_PAY_ID =@p_REQ_PAY_ID AND DR_CR ='D'),0)
|
1015
|
IF(@SUM_CR <> @SUM_DR)
|
1016
|
BEGIN
|
1017
|
--ROLLBACK TRANSACTION
|
1018
|
--CLOSE XmlData;
|
1019
|
--DEALLOCATE XmlData;
|
1020
|
SELECT '-1' as Result, '' REQ_PAY_ID, N'Tổng hạch toán nợ phải bằng tổng hạch toán có' ErrorDesc
|
1021
|
RETURN '-1'
|
1022
|
END
|
1023
|
END
|
1024
|
UPDATE PL_REQUEST_PROCESS_CHILD SET STATUS_JOB ='P' WHERE REQ_ID=@p_REQ_PAY_ID AND TLNAME=@p_MAKER_ID_KT
|
1025
|
UPDATE PL_REQUEST_PROCESS_CHILD SET STATUS_JOB ='C' WHERE REQ_ID=@p_REQ_PAY_ID AND LEVEL_JOB = CONVERT(VARCHAR(5),@LEVEL_JOB_PREV)
|
1026
|
-- CAP NHAT TINH TRANG DUYET KE TOAN LA DANG XU LY
|
1027
|
UPDATE TR_REQ_PAYMENT SET AUTH_STATUS_KT='P',CREATE_DT_KT = GETDATE() WHERE REQ_PAY_ID=@p_REQ_PAY_ID
|
1028
|
INSERT INTO dbo.PL_PROCESS(REQ_ID,PROCESS_ID,CHECKER_ID,APPROVE_DT,PROCESS_DESC,NOTES)
|
1029
|
VALUES(@p_REQ_PAY_ID,'SEND',@p_MAKER_ID_KT,GETDATE(), N'Giao dịch viên gửi phê duyệt',N'Giao dịch viên cập nhật thông tin')
|
1030
|
SELECT '4' as Result, '' REQ_PAY_ID, N'Phiếu đề nghị thanh toán số: '+(SELECT REQ_PAY_CODE FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID)+N' đã được gửi phê duyệt thành công! Vui lòng đợi kiểm soát viên phê duyệt phiếu' ErrorDesc
|
1031
|
RETURN '4'
|
1032
|
END
|
1033
|
SELECT '0' as Result, @p_REQ_PAY_ID REQ_PAY_ID, '' ErrorDesc
|
1034
|
RETURN '0'
|
1035
|
ABORT:
|
1036
|
BEGIN
|
1037
|
ROLLBACK TRANSACTION
|
1038
|
CLOSE XmlData;
|
1039
|
DEALLOCATE XmlData;
|
1040
|
SELECT '-1' as Result, '' REQ_PAY_ID, '' ErrorDesc
|
1041
|
RETURN '-1'
|
1042
|
End
|
1043
|
|
1044
|
¿
|
1045
|
|
1046
|
|
1047
|
ALTER PROCEDURE [dbo].[TR_REQ_ADVANCE_PAYMENT_KT_Upd]
|
1048
|
@p_REQ_PAY_ID varchar(15)= NULL,
|
1049
|
@p_REQ_PAY_CODE varchar(50) = NULL,
|
1050
|
@p_REQ_DT VARCHAR(20)= NULL,
|
1051
|
@p_BRANCH_ID varchar(15) = NULL,
|
1052
|
@p_DEP_ID varchar(15) = NULL,
|
1053
|
@p_REQ_REASON nvarchar(MAX) = NULL,
|
1054
|
@p_REQ_TYPE varchar(15) = NULL,
|
1055
|
@P_REQ_ENTRIES nvarchar(MAX) = NULL,
|
1056
|
@p_REQ_DESCRIPTION nvarchar(MAX) = NULL,
|
1057
|
@p_REF_ID varchar(15) = NULL,
|
1058
|
@p_RECEIVER_PO nvarchar(250) = NULL,
|
1059
|
@p_RECEIVER_DEBIT nvarchar(250) = NULL,
|
1060
|
@p_REQ_PAY_TYPE varchar(15) = NULL,
|
1061
|
@p_REQ_TYPE_CURRENCY nvarchar(50) = NULL,
|
1062
|
@p_REQ_AMT decimal(18, 0) = NULL,
|
1063
|
@p_REQ_TEMP_AMT decimal(18, 0) = NULL,
|
1064
|
@p_MAKER_ID varchar(15) = NULL,
|
1065
|
@p_CREATE_DT varchar(25) = NULL,
|
1066
|
@p_EDITOR_ID varchar(15) = NULL,
|
1067
|
@p_AUTH_STATUS varchar(1) = NULL,
|
1068
|
@p_CHECKER_ID varchar(15) = NULL,
|
1069
|
@p_APPROVE_DT varchar(25) = NULL,
|
1070
|
@p_CREATE_DT_KT varchar(25) = NULL,
|
1071
|
@p_MAKER_ID_KT varchar(15) = NULL,
|
1072
|
@p_AUTH_STATUS_KT varchar(1) = NULL,
|
1073
|
@p_CHECKER_ID_KT varchar(1) = NULL,
|
1074
|
@p_APPROVE_DT_KT varchar(25)= null,
|
1075
|
@p_CONFIRM_NOTE nvarchar(500) = NULL,
|
1076
|
@p_BRANCH_CREATE varchar(15) = NULL,
|
1077
|
@p_NOTES varchar(15) = NULL,
|
1078
|
@p_RECORD_STATUS varchar(1) = NULL,
|
1079
|
@p_TRANSFER_MAKER nvarchar(50) = NULL,
|
1080
|
@p_TRANSFER_DT varchar(25) = NULL,
|
1081
|
@p_TRASFER_USER_RECIVE varchar(15) = NULL,
|
1082
|
@p_PROCESS varchar(15) = NULL,
|
1083
|
@p_PAY_PHASE VARCHAR(15)= NULL,
|
1084
|
@p_DVDM_ID VARCHAR(15) = NULL,
|
1085
|
@p_RATE DECIMAL(18,0)= 0,
|
1086
|
@p_XMP_TEMP XML = NULL
|
1087
|
AS
|
1088
|
--Validation is here
|
1089
|
/*
|
1090
|
END
|
1091
|
*/
|
1092
|
DECLARE @ENTRY_PAIR varchar(20),@DR_CR varchar(20),@ACCT VARCHAR(50), @ACCT_NAME VARCHAR(500), @AMT decimal(18,2),@CURRENCY VARCHAR(15), @EXC_RATE DECIMAL(18,0),
|
1093
|
@BRANCH_ID VARCHAR(15), @DEP_ID VARCHAR(15),@TRN_DESC nvarchar(1000),@GL_CODE VARCHAR(10)
|
1094
|
DECLARE @hdoc INT;
|
1095
|
EXEC sp_xml_preparedocument @hdoc OUTPUT, @p_XMP_TEMP;
|
1096
|
DECLARE XmlData CURSOR FOR
|
1097
|
SELECT *
|
1098
|
FROM
|
1099
|
OPENXML(@hdoc, '/Root/XmlData', 2)
|
1100
|
WITH(ENTRY_PAIR varchar(20),DR_CR varchar(20),ACCT VARCHAR(50), ACCT_NAME VARCHAR(500), AMT decimal(18,2),CURRENCY VARCHAR(15), EXC_RATE DECIMAL(18,0),
|
1101
|
BRANCH_ID VARCHAR(15), DEP_ID VARCHAR(15),TRN_DESC nvarchar(1000), GL_CODE VARCHAR(10))
|
1102
|
OPEN XmlData;
|
1103
|
DECLARE @INDEX INT =0
|
1104
|
BEGIN TRANSACTION
|
1105
|
-- KHAI BAO CAC BUOC DUYET- XAC NHAN
|
1106
|
DECLARE @LEVEL_JOB VARCHAR(5), @LEVEL_JOB_PREV INT
|
1107
|
SET @LEVEL_JOB =(SELECT LEVEL_JOB FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@p_REQ_PAY_ID AND TLNAME=@p_MAKER_ID_KT AND TYPE_JOB ='XL')
|
1108
|
SET @LEVEL_JOB_PREV = CONVERT(INT,@LEVEL_JOB) -1
|
1109
|
----
|
1110
|
--IF(EXISTS (SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID = @p_REQ_PAY_ID AND MAKER_ID_KT IS NULL))
|
1111
|
IF(@p_XMP_TEMP IS NOT NULL)
|
1112
|
BEGIN
|
1113
|
UPDATE TR_REQ_ADVANCE_PAYMENT SET
|
1114
|
AUTH_STATUS_KT ='U', CREATE_DT_KT = GETDATE(),MAKER_ID_KT =@p_MAKER_ID_KT,CHECKER_ID_KT=NULL,APPROVE_DT_KT = NULL, CONFIRM_NOTES=@p_CONFIRM_NOTE
|
1115
|
WHERE REQ_PAY_ID =@p_REQ_PAY_ID
|
1116
|
DELETE FROM TR_REQ_PAY_ENTRIES WHERE REQ_PAY_ID = @p_REQ_PAY_ID
|
1117
|
IF @@Error <> 0 GOTO ABORT
|
1118
|
DECLARE @DR_CR_NAME NVARCHAR(50)
|
1119
|
FETCH NEXT FROM XmlData INTO @ENTRY_PAIR ,@DR_CR,@ACCT, @ACCT_NAME, @AMT ,@CURRENCY, @EXC_RATE,@BRANCH_ID, @DEP_ID,@TRN_DESC,@GL_CODE
|
1120
|
WHILE @@fetch_status=0 BEGIN
|
1121
|
|
1122
|
SET @INDEX = @INDEX +1
|
1123
|
IF(@DR_CR='D')
|
1124
|
BEGIN
|
1125
|
SET @DR_CR_NAME =N'Nợ'
|
1126
|
END
|
1127
|
ELSE
|
1128
|
BEGIN
|
1129
|
SET @DR_CR_NAME =N'Có'
|
1130
|
END
|
1131
|
SET @ACCT_NAME =(SELECT TOP 1 ACC_NAME FROM CM_ACCOUNT WHERE ACC_NO =@ACCT)
|
1132
|
IF(@ACCT_NAME IS NULL OR @ACCT_NAME ='')
|
1133
|
BEGIN
|
1134
|
ROLLBACK TRANSACTION
|
1135
|
CLOSE XmlData;
|
1136
|
DEALLOCATE XmlData;
|
1137
|
SELECT '-1' as Result, '' REQ_PAY_ID, N'Dòng: '+ CONVERT(VARCHAR(5),@INDEX) + N' Tên tài khoản hạch toán chưa đúng. Vui lòng bấm vào nút Check GL & Check CASA để đồng bộ tài khoản từ Core' ErrorDesc
|
1138
|
RETURN '-1'
|
1139
|
END
|
1140
|
IF(EXISTS(SELECT * FROM TR_REQ_PAY_METHOD WHERE ACC_NO =@ACCT AND REQ_PAY_ID =@p_REQ_PAY_ID))
|
1141
|
BEGIN
|
1142
|
IF(@DR_CR ='C' AND ISNULL(@AMT,0) <> (SELECT ISNULL(SUM(TOTAL_AMT),0) FROM TR_REQ_PAY_METHOD WHERE ACC_NO =@ACCT AND REQ_PAY_ID =@p_REQ_PAY_ID))
|
1143
|
BEGIN
|
1144
|
ROLLBACK TRANSACTION
|
1145
|
CLOSE XmlData;
|
1146
|
DEALLOCATE XmlData;
|
1147
|
SELECT '-1' as Result, '' REQ_PAY_ID, N'Dòng: '+ CONVERT(VARCHAR(5),@INDEX) + N' Số tiền hạch toán có của tài khoản: '+@ACCT + N' phải bằng với số tiền trên phương thức thanh toán của tài khoản đó là: '+FORMAT((SELECT ISNULL(SUM(TOTAL_AMT),0) FROM TR_REQ_PAY_METHOD WHERE ACC_NO =@ACCT AND REQ_PAY_ID =@p_REQ_PAY_ID),'#,###') ErrorDesc
|
1148
|
RETURN '-1'
|
1149
|
END
|
1150
|
END
|
1151
|
--IF(@DR_ACCT IS NULL OR @DR_ACCT ='')
|
1152
|
--BEGIN
|
1153
|
-- ROLLBACK TRANSACTION
|
1154
|
-- CLOSE XmlData;
|
1155
|
-- DEALLOCATE XmlData;
|
1156
|
-- SELECT '-1' as Result, '' REQ_PAY_ID, N'Dòng: '+ CONVERT(VARCHAR(5),@INDEX) + N' Tài khoản có không được phép để trống' ErrorDesc
|
1157
|
-- RETURN '-1'
|
1158
|
--END
|
1159
|
--IF(@TRN_DESC IS NULL OR @TRN_DESC ='')
|
1160
|
--BEGIN
|
1161
|
-- ROLLBACK TRANSACTION
|
1162
|
-- CLOSE XmlData;
|
1163
|
-- DEALLOCATE XmlData;
|
1164
|
-- SELECT '-1' as Result, '' REQ_PAY_ID, N'Dòng: '+ CONVERT(VARCHAR(5),@INDEX) + N' Diễn giải hạch toán không được phép để trống' ErrorDesc
|
1165
|
-- RETURN '-1'
|
1166
|
--END
|
1167
|
DECLARE @p_ET_ID VARCHAR(15);
|
1168
|
EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_ENTRIES', @p_ET_ID OUT;
|
1169
|
IF @p_ET_ID='' OR @p_ET_ID IS NULL GOTO ABORT;
|
1170
|
INSERT INTO TR_REQ_PAY_ENTRIES (REQ_PAY_DT_ID,REQ_PAY_ID,ENTRY_PAIR,DR_CR, DR_CR_NAME,ACCT,ACCT_NAME,AMT,CURRENCY,EXC_RATE,BRANCH_ID,DEP_ID,TRN_DESC,TRN_DATE,MAKER_ID_KT)
|
1171
|
VALUES (@p_ET_ID,@p_REQ_PAY_ID,@ENTRY_PAIR,@DR_CR,@DR_CR_NAME,@ACCT,@ACCT_NAME, @AMT ,@CURRENCY, @EXC_RATE, @BRANCH_ID, @DEP_ID,@TRN_DESC,GETDATE(),@p_MAKER_ID_KT)
|
1172
|
|
1173
|
-- NEU CHUA CO TAI KHOAN THI THEM VO CM_ACCOUNT
|
1174
|
IF(NOT EXISTS(SELECT * FROM CM_ACCOUNT WHERE ACC_NO =@ACCT))
|
1175
|
BEGIN
|
1176
|
INSERT INTO CM_ACCOUNT (ACC_NO, ACC_NAME, TK_GL, TK_GL_NAME, MAKER_ID, CHECKER_ID) VALUES
|
1177
|
(@ACCT,@ACCT_NAME,@GL_CODE,(SELECT TOP 1 ACC_NAME FROM CM_ACCOUNT WHERE ACC_NO =@GL_CODE),'admin','admin')
|
1178
|
END
|
1179
|
ELSE
|
1180
|
BEGIN
|
1181
|
IF(@GL_CODE IS NOT NULL AND @GL_CODE <> '')
|
1182
|
BEGIN
|
1183
|
UPDATE CM_ACCOUNT SET ACC_NAME =@ACCT_NAME, TK_GL =@GL_CODE, TK_GL_NAME =(SELECT TOP 1 ACC_NAME FROM CM_ACCOUNT WHERE ACC_NO =@GL_CODE)
|
1184
|
WHERE ACC_NO=@ACCT
|
1185
|
END
|
1186
|
END
|
1187
|
IF @@error<>0 GOTO ABORT;
|
1188
|
FETCH NEXT FROM XmlData INTO @ENTRY_PAIR ,@DR_CR,@ACCT, @ACCT_NAME, @AMT ,@CURRENCY, @EXC_RATE,@BRANCH_ID, @DEP_ID,@TRN_DESC,@GL_CODE
|
1189
|
END;
|
1190
|
CLOSE XmlData;
|
1191
|
DEALLOCATE XmlData;
|
1192
|
END
|
1193
|
COMMIT TRANSACTION
|
1194
|
--- BAT DAU CAP NHAT XAC DINH CAC BUOC DUYET SAU KHI KE TOAN CAP NHAT THONG TIN
|
1195
|
IF(@p_XMP_TEMP IS NULL)
|
1196
|
BEGIN
|
1197
|
-- CHAN NEU CHI CO 1 BUT NO 1 BUT CO THI KHONG DUOC DI TIEP
|
1198
|
IF(EXISTS(SELECT * FROM TR_REQ_PAY_ENTRIES WHERE REQ_PAY_ID =@p_REQ_PAY_ID))
|
1199
|
BEGIN
|
1200
|
DECLARE @SUM_CR DECIMAL(18,2), @SUM_DR DECIMAL(18,2)
|
1201
|
SET @SUM_CR =ISNULL((SELECT SUM(AMT*ISNULL(EXC_RATE,1)) FROM TR_REQ_PAY_ENTRIES WHERE REQ_PAY_ID =@p_REQ_PAY_ID AND DR_CR ='C'),0)
|
1202
|
SET @SUM_DR =ISNULL((SELECT SUM(AMT*ISNULL(EXC_RATE,1)) FROM TR_REQ_PAY_ENTRIES WHERE REQ_PAY_ID =@p_REQ_PAY_ID AND DR_CR ='D'),0)
|
1203
|
IF(@SUM_CR<>@SUM_DR)
|
1204
|
BEGIN
|
1205
|
--ROLLBACK TRANSACTION
|
1206
|
--CLOSE XmlData;
|
1207
|
--DEALLOCATE XmlData;
|
1208
|
SELECT '-1' as Result, '' REQ_PAY_ID, N'Tổng hạch toán nợ phải bằng tổng hạch toán có' ErrorDesc
|
1209
|
RETURN '-1'
|
1210
|
END
|
1211
|
END
|
1212
|
UPDATE PL_REQUEST_PROCESS_CHILD SET STATUS_JOB ='P' WHERE REQ_ID=@p_REQ_PAY_ID AND TLNAME=@p_MAKER_ID_KT
|
1213
|
UPDATE PL_REQUEST_PROCESS_CHILD SET STATUS_JOB ='C' WHERE REQ_ID=@p_REQ_PAY_ID AND LEVEL_JOB = CONVERT(VARCHAR(5),@LEVEL_JOB_PREV)
|
1214
|
-- CAP NHAT TINH TRANG VE DANG XU LY
|
1215
|
UPDATE TR_REQ_ADVANCE_PAYMENT SET AUTH_STATUS_KT='P',CREATE_DT_KT =GETDATE() WHERE REQ_PAY_ID=@p_REQ_PAY_ID
|
1216
|
INSERT INTO dbo.PL_PROCESS(REQ_ID,PROCESS_ID,CHECKER_ID,APPROVE_DT,PROCESS_DESC,NOTES)
|
1217
|
VALUES(@p_REQ_PAY_ID,'SEND',@p_MAKER_ID_KT,GETDATE(), N'Giao dịch viên gửi phê duyệt phiếu',N'Giao dịch viên cập nhật thông tin')
|
1218
|
SELECT '4' as Result, '' REQ_PAY_ID, N'Phiếu đề nghị tạm ứng số: '+(SELECT REQ_PAY_CODE FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID)+N'đã được gửi phê duyệt thành công! Vui lòng đợi kiểm soát viên phê duyệt phiếu' ErrorDesc
|
1219
|
RETURN '4'
|
1220
|
END
|
1221
|
SELECT '0' as Result, @p_REQ_PAY_ID REQ_PAY_ID, '' ErrorDesc
|
1222
|
RETURN '0'
|
1223
|
ABORT:
|
1224
|
BEGIN
|
1225
|
ROLLBACK TRANSACTION
|
1226
|
CLOSE XmlData;
|
1227
|
DEALLOCATE XmlData;
|
1228
|
SELECT '-1' as Result, '' REQ_PAY_ID, '' ErrorDesc
|
1229
|
RETURN '-1'
|
1230
|
End
|
1231
|
|
1232
|
¿
|
1233
|
|
1234
|
|
1235
|
|
1236
|
|
1237
|
ALTER PROCEDURE [dbo].[TR_REQ_PAY_TRANSFER_V1_Upd]
|
1238
|
@p_TRANSFER_ID varchar(15),
|
1239
|
@p_TRANSFER_CODE varchar(15),
|
1240
|
@p_REQ_PAY_ID varchar(15) ,
|
1241
|
@p_MAKER_ID varchar(15) ,
|
1242
|
@p_CREATE_DT VARCHAR(25) ,
|
1243
|
@p_AUTH_STATUS varchar(15) ,
|
1244
|
@p_CHECKER_ID varchar(15) ,
|
1245
|
@p_APPROVE_DT datetime,
|
1246
|
@p_FR_USER varchar(15) ,
|
1247
|
@p_TO_USER varchar(15) ,
|
1248
|
@p_REASON nvarchar(4000),
|
1249
|
@p_NOTES nvarchar(4000) ,
|
1250
|
@p_DESCRIPTION nvarchar(4000),
|
1251
|
@p_CONFIRM_NOTES nvarchar(4000) ,
|
1252
|
@p_FR_ACC VARCHAR(50),
|
1253
|
@p_TO_ACC VARCHAR(50),
|
1254
|
@p_MAKER_ID_KT varchar(15),
|
1255
|
@P_LISTASSET XML,
|
1256
|
@P_LISTASSET_v1 XML
|
1257
|
AS
|
1258
|
IF(@p_FR_USER ='' or @p_FR_USER IS NULL)
|
1259
|
BEGIN
|
1260
|
--ROLLBACK TRANSACTION
|
1261
|
SELECT '-1' Result, @p_TRANSFER_ID AS TRANSFER_ID, N'Người cho phiếu không được để trống' AS ErrorDesc
|
1262
|
RETURN '-1'
|
1263
|
END
|
1264
|
IF(@p_TO_USER ='' or @p_TO_USER IS NULL)
|
1265
|
BEGIN
|
1266
|
--ROLLBACK TRANSACTION
|
1267
|
SELECT '-1' Result, @p_TRANSFER_ID AS TRANSFER_ID, N'Người nhận phiếu không được để trống' AS ErrorDesc
|
1268
|
RETURN '-1'
|
1269
|
END
|
1270
|
IF(@p_CONFIRM_NOTES ='' or @p_CONFIRM_NOTES IS NULL)
|
1271
|
BEGIN
|
1272
|
--ROLLBACK TRANSACTION
|
1273
|
SELECT '-1' Result, @p_TRANSFER_ID AS TRANSFER_ID, N'Lý do điều chuyển không được để trống' AS ErrorDesc
|
1274
|
RETURN '-1'
|
1275
|
END
|
1276
|
Declare @hdoc INT
|
1277
|
Exec sp_xml_preparedocument @hdoc Output,@P_LISTASSET
|
1278
|
DECLARE TransferDetail CURSOR LOCAL FOR
|
1279
|
SELECT *
|
1280
|
FROM OPENXML(@hDoc,'/Root/TransferDetail',2)
|
1281
|
WITH
|
1282
|
(
|
1283
|
TRAN_DT_ID varchar(15) ,
|
1284
|
TRANSFER_ID varchar(15) ,
|
1285
|
REQ_PAY_ID varchar(15) ,
|
1286
|
TOTAL_AMT decimal(18, 0) ,
|
1287
|
TOAL_AMT_DO decimal(18, 0) ,
|
1288
|
TOTAL_AMT_REMAIN decimal(18, 0) ,
|
1289
|
TOTAL_AMT_REAL decimal(18, 0) ,
|
1290
|
TOTAL_AMT_REMAIN_FN decimal(18, 0) ,
|
1291
|
NOTES nvarchar(4000) ,
|
1292
|
REASON nvarchar(4000)
|
1293
|
)
|
1294
|
OPEN TransferDetail
|
1295
|
PRINT 'PASS KHOI TAO'
|
1296
|
BEGIN TRANSACTION
|
1297
|
--insert master
|
1298
|
--DECLARE @l_CONTRACT_ID VARCHAR(15)
|
1299
|
UPDATE TR_REQ_PAY_TRANSFER SET REASON =@p_REASON, CONFIRM_NOTES =@p_CONFIRM_NOTES WHERE TRANSFER_ID =@p_TRANSFER_ID
|
1300
|
IF @@Error <> 0 GOTO ABORT
|
1301
|
PRINT 'INSERT MASTER SUCCESS'
|
1302
|
|
1303
|
Declare
|
1304
|
@l_TRAN_DT_ID varchar(15) ,
|
1305
|
@l_TRANSFER_ID varchar(15) ,
|
1306
|
@l_REQ_PAY_ID varchar(15) ,
|
1307
|
@l_TOTAL_AMT decimal(18, 0) ,
|
1308
|
@l_TOAL_AMT_DO decimal(18, 0) ,
|
1309
|
@l_TOTAL_AMT_REMAIN decimal(18, 0) ,
|
1310
|
@l_TOTAL_AMT_REAL decimal(18, 0) ,
|
1311
|
@l_TOTAL_AMT_REMAIN_FN decimal(18, 0) ,
|
1312
|
@l_NOTES nvarchar(4000) ,
|
1313
|
@l_REASON nvarchar(4000)
|
1314
|
--Insert detail
|
1315
|
DELETE FROM TR_REQ_PAY_TRANSFER_DT WHERE TRANSFER_ID =@p_TRANSFER_ID OR TRANSFER_ID IS NULL OR TRANSFER_ID =''
|
1316
|
FETCH NEXT FROM TransferDetail INTO @l_TRAN_DT_ID,@l_TRANSFER_ID,@l_REQ_PAY_ID,@l_TOTAL_AMT,@l_TOAL_AMT_DO,@l_TOTAL_AMT_REMAIN,@l_TOTAL_AMT_REAL,@l_TOTAL_AMT_REMAIN_FN,@l_NOTES,@l_REASON
|
1317
|
-- Validate lưới chi tiết rỗng hay không
|
1318
|
IF (@@FETCH_STATUS < 0)
|
1319
|
BEGIN
|
1320
|
ROLLBACK TRANSACTION
|
1321
|
CLOSE TransferDetail;
|
1322
|
DEALLOCATE TransferDetail;
|
1323
|
SELECT '-1' as Result, '' AS TRANSFER_ID, N'Thông tin phiếu đề nghị tạm ứng không được để trống' ErrorDesc
|
1324
|
RETURN '-1'
|
1325
|
END
|
1326
|
DECLARE @IDX INT = 0
|
1327
|
WHILE @@FETCH_STATUS = 0
|
1328
|
BEGIN
|
1329
|
SET @IDX = @IDX + 1
|
1330
|
-- Kiểm tra nếu PĐN tạm ứng đang được điều chuyển ở một giao dịch khác thì không cho tạo
|
1331
|
IF EXISTS (SELECT A.REQ_PAY_ID FROM TR_REQ_PAY_TRANSFER_DT A
|
1332
|
LEFT JOIN TR_REQ_PAY_TRANSFER B ON A.TRANSFER_ID = B.TRANSFER_ID AND A.REQ_PAY_ID =@l_REQ_PAY_ID
|
1333
|
WHERE B.TRANSFER_ID <> @p_TRANSFER_ID AND B.AUTH_STATUS = 'U')
|
1334
|
BEGIN
|
1335
|
ROLLBACK TRANSACTION
|
1336
|
CLOSE TransferDetail;
|
1337
|
DEALLOCATE TransferDetail;
|
1338
|
SELECT '-1' as Result, '' AS TRANSFER_ID, N'Dòng: '+ CONVERT(VARCHAR(5),@IDX) + N' Phiếu đề nghị tạm ứng đang được điều chuyển ở một giao dịch khác' ErrorDesc
|
1339
|
RETURN '-1'
|
1340
|
END
|
1341
|
EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_TRANSFER_DT', @l_TRAN_DT_ID out
|
1342
|
IF @l_TRAN_DT_ID='' OR @l_TRAN_DT_ID IS NULL GOTO ABORT
|
1343
|
INSERT INTO TR_REQ_PAY_TRANSFER_DT(TRAN_DT_ID, TRANSFER_ID,REQ_PAY_ID,TOTAL_AMT, TOAL_AMT_DO, TOTAL_AMT_REMAIN, TOTAL_AMT_REAL, TOTAL_AMT_REMAIN_FN, NOTES, REASON)
|
1344
|
VALUES ( @l_TRAN_DT_ID,@p_TRANSFER_ID,@l_REQ_PAY_ID,@l_TOTAL_AMT,@l_TOAL_AMT_DO,@l_TOTAL_AMT_REMAIN,@l_TOTAL_AMT_REAL,@l_TOTAL_AMT_REMAIN_FN,@l_NOTES,@l_REASON)
|
1345
|
IF @@Error <> 0 GOTO ABORT
|
1346
|
-- next Group_Id
|
1347
|
FETCH NEXT FROM TransferDetail INTO @l_TRAN_DT_ID,@l_TRANSFER_ID,@l_REQ_PAY_ID,@l_TOTAL_AMT,@l_TOAL_AMT_DO,@l_TOTAL_AMT_REMAIN,@l_TOTAL_AMT_REAL,@l_TOTAL_AMT_REMAIN_FN,@l_NOTES,@l_REASON
|
1348
|
END
|
1349
|
DECLARE @ENTRY_PAIR varchar(20),@DR_CR varchar(20),@ACCT VARCHAR(50), @ACCT_NAME VARCHAR(500), @AMT decimal(18,2),@CURRENCY VARCHAR(15), @EXC_RATE DECIMAL(18,0),
|
1350
|
@BRANCH_ID VARCHAR(15), @DEP_ID VARCHAR(15),@TRN_DESC nvarchar(1000), @GL_CODE VARCHAR(10)
|
1351
|
DECLARE @hdoc2 INT;
|
1352
|
EXEC sp_xml_preparedocument @hdoc2 OUTPUT, @P_LISTASSET_v1;
|
1353
|
DECLARE XmlData CURSOR LOCAL FOR
|
1354
|
SELECT *
|
1355
|
FROM
|
1356
|
OPENXML(@hdoc2, '/Root/XmlData', 2)
|
1357
|
WITH(ENTRY_PAIR varchar(20),DR_CR varchar(20),ACCT VARCHAR(50), ACCT_NAME VARCHAR(500), AMT decimal(18,2),CURRENCY VARCHAR(15), EXC_RATE DECIMAL(18,0),
|
1358
|
BRANCH_ID VARCHAR(15), DEP_ID VARCHAR(15),TRN_DESC nvarchar(1000),GL_CODE VARCHAR(10))
|
1359
|
OPEN XmlData;
|
1360
|
DECLARE @DR_CR_NAME NVARCHAR(50), @INDEX INT =0, @ACC_NAME_FN VARCHAR(500)
|
1361
|
--
|
1362
|
DELETE FROM TR_REQ_PAY_ENTRIES WHERE REQ_PAY_ID =@p_TRANSFER_ID
|
1363
|
FETCH NEXT FROM XmlData INTO @ENTRY_PAIR ,@DR_CR,@ACCT, @ACCT_NAME, @AMT ,@CURRENCY, @EXC_RATE,@BRANCH_ID, @DEP_ID,@TRN_DESC,@GL_CODE
|
1364
|
WHILE @@fetch_status=0 BEGIN
|
1365
|
SET @INDEX= @INDEX+1
|
1366
|
IF(@DR_CR='D')
|
1367
|
BEGIN
|
1368
|
SET @DR_CR_NAME =N'Nợ'
|
1369
|
END
|
1370
|
ELSE
|
1371
|
BEGIN
|
1372
|
SET @DR_CR_NAME =N'Có'
|
1373
|
END
|
1374
|
IF(@DR_CR IS NULL OR @DR_CR ='')
|
1375
|
BEGIN
|
1376
|
ROLLBACK TRANSACTION
|
1377
|
CLOSE XmlData;
|
1378
|
DEALLOCATE XmlData;
|
1379
|
SELECT '-1' as Result, '' REQ_PAY_ID, N'Dòng: '+ CONVERT(VARCHAR(5),@INDEX) + N' Tài khoản nợ không được phép để trống' ErrorDesc
|
1380
|
RETURN '-1'
|
1381
|
END
|
1382
|
IF(@ACCT IS NULL OR @ACCT ='')
|
1383
|
BEGIN
|
1384
|
ROLLBACK TRANSACTION
|
1385
|
--CLOSE XmlData;
|
1386
|
--DEALLOCATE XmlData;
|
1387
|
SELECT '-1' as Result, '' REQ_PAY_ID, N'Dòng: '+ CONVERT(VARCHAR(5),@INDEX) + N' Tài khoản có không được phép để trống' ErrorDesc
|
1388
|
RETURN '-1'
|
1389
|
END
|
1390
|
IF(@TRN_DESC IS NULL OR @TRN_DESC ='')
|
1391
|
BEGIN
|
1392
|
ROLLBACK TRANSACTION
|
1393
|
--CLOSE XmlData;
|
1394
|
--DEALLOCATE XmlData;
|
1395
|
SELECT '-1' as Result, '' REQ_PAY_ID, N'Dòng: '+ CONVERT(VARCHAR(5),@INDEX) + N' Diễn giải hạch toán không được phép để trống' ErrorDesc
|
1396
|
RETURN '-1'
|
1397
|
END
|
1398
|
IF(@BRANCH_ID IS NULL OR @BRANCH_ID ='')
|
1399
|
BEGIN
|
1400
|
ROLLBACK TRANSACTION
|
1401
|
--CLOSE XmlData;
|
1402
|
--DEALLOCATE XmlData;
|
1403
|
SELECT '-1' as Result, '' REQ_PAY_ID, N'Dòng: '+ CONVERT(VARCHAR(5),@INDEX) + N' Đơn vị không được phép để trống' ErrorDesc
|
1404
|
RETURN '-1'
|
1405
|
END
|
1406
|
SET @ACC_NAME_FN =(SELECT TOP 1 ACC_NAME FROM CM_ACCOUNT WHERE ACC_NO =@ACCT)
|
1407
|
IF(@ACC_NAME_FN IS NULL OR @ACC_NAME_FN ='')
|
1408
|
BEGIN
|
1409
|
SET @ACC_NAME_FN =(SELECT TOP 1 ACC_NAME FROM CM_ACCOUNT_PAY WHERE ACC_NUM =@ACCT)
|
1410
|
END
|
1411
|
IF((@ACCT_NAME IS NULL OR @ACCT_NAME ='' OR @ACC_NAME_FN IS NULL OR @ACC_NAME_FN ='' ) OR (ISNULL(@ACCT_NAME,'') <> ISNULL(@ACC_NAME_FN,'')))
|
1412
|
BEGIN
|
1413
|
ROLLBACK TRANSACTION
|
1414
|
--CLOSE XmlData;
|
1415
|
--DEALLOCATE XmlData;
|
1416
|
SELECT '-1' as Result, '' REQ_PAY_ID, N'Dòng: '+ CONVERT(VARCHAR(5),@INDEX) + N' Tên tài khoản hạch toán chưa đúng. Vui lòng bấm vào nút Check GL & Check CASA để đồng bộ tài khoản từ Core' ErrorDesc
|
1417
|
RETURN '-1'
|
1418
|
END
|
1419
|
DECLARE @p_ET_ID VARCHAR(15);
|
1420
|
EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_ENTRIES', @p_ET_ID OUT;
|
1421
|
IF @p_ET_ID='' OR @p_ET_ID IS NULL GOTO ABORT;
|
1422
|
INSERT INTO TR_REQ_PAY_ENTRIES (REQ_PAY_DT_ID,REQ_PAY_ID,ENTRY_PAIR,DR_CR,DR_CR_NAME,ACCT,ACCT_NAME,AMT,CURRENCY,EXC_RATE,BRANCH_ID,DEP_ID,TRN_DESC,TRN_DATE,MAKER_ID_KT)
|
1423
|
VALUES (@p_ET_ID,@p_TRANSFER_ID,@ENTRY_PAIR,@DR_CR,@DR_CR_NAME,@ACCT,@ACCT_NAME, @AMT ,@CURRENCY, @EXC_RATE, @BRANCH_ID, @DEP_ID,UPPER(@TRN_DESC),GETDATE(),@p_MAKER_ID_KT)
|
1424
|
-- NEU CHUA CO TAI KHOAN THI THEM VO CM_ACCOUNT
|
1425
|
IF(NOT EXISTS(SELECT * FROM CM_ACCOUNT WHERE ACC_NO =@ACCT))
|
1426
|
BEGIN
|
1427
|
INSERT INTO CM_ACCOUNT (ACC_NO, ACC_NAME, TK_GL, TK_GL_NAME, MAKER_ID, CHECKER_ID) VALUES
|
1428
|
(@ACCT,@ACCT_NAME,@GL_CODE,(SELECT TOP 1 ACC_NAME FROM CM_ACCOUNT WHERE ACC_NO =@GL_CODE),'admin','admin')
|
1429
|
END
|
1430
|
ELSE
|
1431
|
BEGIN
|
1432
|
IF(@GL_CODE IS NOT NULL AND @GL_CODE <> '')
|
1433
|
BEGIN
|
1434
|
UPDATE CM_ACCOUNT SET ACC_NAME =@ACCT_NAME, TK_GL =@GL_CODE, TK_GL_NAME =(SELECT TOP 1 ACC_NAME FROM CM_ACCOUNT WHERE ACC_NO =@GL_CODE)
|
1435
|
WHERE ACC_NO=@ACCT
|
1436
|
END
|
1437
|
END
|
1438
|
IF @@error<>0 GOTO ABORT;
|
1439
|
FETCH NEXT FROM XmlData INTO @ENTRY_PAIR ,@DR_CR,@ACCT, @ACCT_NAME, @AMT ,@CURRENCY, @EXC_RATE,@BRANCH_ID, @DEP_ID,@TRN_DESC,@GL_CODE
|
1440
|
END;
|
1441
|
CLOSE XmlData;
|
1442
|
DEALLOCATE XmlData;
|
1443
|
IF(EXISTS(SELECT * FROM TR_REQ_PAY_ENTRIES WHERE REQ_PAY_ID =@p_TRANSFER_ID))
|
1444
|
BEGIN
|
1445
|
DECLARE @SUM_CR DECIMAL(18,2), @SUM_DR DECIMAL(18,2)
|
1446
|
SET @SUM_CR =ISNULL((SELECT SUM(AMT*ISNULL(EXC_RATE,1)) FROM TR_REQ_PAY_ENTRIES WHERE REQ_PAY_ID =@p_TRANSFER_ID AND DR_CR ='C'),0)
|
1447
|
SET @SUM_DR =ISNULL((SELECT SUM(AMT*ISNULL(EXC_RATE,1)) FROM TR_REQ_PAY_ENTRIES WHERE REQ_PAY_ID =@p_TRANSFER_ID AND DR_CR ='D'),0)
|
1448
|
IF(@SUM_CR <> @SUM_DR)
|
1449
|
BEGIN
|
1450
|
ROLLBACK TRANSACTION
|
1451
|
SELECT '-1' as Result, '' REQ_PAY_ID, N'Tổng hạch toán nợ phải bằng tổng hạch toán có: ' + FORMAT(@SUM_DR,'#,###') ErrorDesc
|
1452
|
RETURN '-1'
|
1453
|
END
|
1454
|
END
|
1455
|
COMMIT TRANSACTION
|
1456
|
SELECT '0' as Result, @p_TRANSFER_ID TRANSFER_ID, N'Giao dịch điều chuyển tạm ứng có ID: '+ @p_TRANSFER_ID +N' đã được tạo bản nháp thành công. Bạn có thể bấm gửi phê duyệt' ErrorDesc
|
1457
|
RETURN '0'
|
1458
|
ABORT:
|
1459
|
BEGIN
|
1460
|
CLOSE AssetDetail
|
1461
|
DEALLOCATE AssetDetail
|
1462
|
CLOSE PaymentDetail
|
1463
|
DEALLOCATE PaymentDetail
|
1464
|
ROLLBACK TRANSACTION
|
1465
|
SELECT '-1' as Result, '' TRANSFER_ID, '' ErrorDesc
|
1466
|
RETURN '-1'
|
1467
|
End
|
1468
|
|
1469
|
¿
|
1470
|
|
1471
|
|
1472
|
ALTER PROCEDURE [dbo].[TR_REQ_PAY_TRANSFER_Ins]
|
1473
|
@p_TRANSFER_ID varchar(15) = NULL,
|
1474
|
@p_TRANSFER_CODE varchar(15),
|
1475
|
@p_REQ_PAY_ID varchar(15) ,
|
1476
|
@p_MAKER_ID varchar(15) ,
|
1477
|
@p_CREATE_DT VARCHAR(25) ,
|
1478
|
@p_AUTH_STATUS varchar(15) ,
|
1479
|
@p_CHECKER_ID varchar(15) ,
|
1480
|
@p_APPROVE_DT datetime,
|
1481
|
@p_FR_USER varchar(15) ,
|
1482
|
@p_TO_USER varchar(15) ,
|
1483
|
@p_REASON nvarchar(4000),
|
1484
|
@p_NOTES nvarchar(4000) ,
|
1485
|
@p_DESCRIPTION nvarchar(4000),
|
1486
|
@p_CONFIRM_NOTES nvarchar(4000),
|
1487
|
@p_FR_ACC VARCHAR(50),
|
1488
|
@p_TO_ACC VARCHAR(50),
|
1489
|
@p_MAKER_ID_KT varchar(15),
|
1490
|
@P_LISTASSET XML,
|
1491
|
@P_LISTASSET_v1 XML
|
1492
|
AS
|
1493
|
|
1494
|
DECLARE @l_TRANSFER_ID_MASTER VARCHAR(15)
|
1495
|
IF(@p_FR_USER ='' or @p_FR_USER IS NULL)
|
1496
|
BEGIN
|
1497
|
--ROLLBACK TRANSACTION
|
1498
|
SELECT '-1' Result, @p_TRANSFER_ID AS TRANSFER_ID, N'Người cho phiếu không được để trống' AS ErrorDesc
|
1499
|
RETURN '-1'
|
1500
|
END
|
1501
|
IF(@p_TO_USER ='' or @p_TO_USER IS NULL)
|
1502
|
BEGIN
|
1503
|
--ROLLBACK TRANSACTION
|
1504
|
SELECT '-1' Result, @p_TRANSFER_ID AS TRANSFER_ID, N'Người nhận phiếu không được để trống' AS ErrorDesc
|
1505
|
RETURN '-1'
|
1506
|
END
|
1507
|
IF(@p_CONFIRM_NOTES ='' or @p_CONFIRM_NOTES IS NULL)
|
1508
|
BEGIN
|
1509
|
--ROLLBACK TRANSACTION
|
1510
|
SELECT '-1' Result, @p_TRANSFER_ID AS TRANSFER_ID, N'Lý do điều chuyển không được để trống' AS ErrorDesc
|
1511
|
RETURN '-1'
|
1512
|
END
|
1513
|
Declare @hdoc INT
|
1514
|
Exec sp_xml_preparedocument @hdoc Output,@P_LISTASSET
|
1515
|
DECLARE TransferDetail CURSOR LOCAL FOR
|
1516
|
SELECT *
|
1517
|
FROM OPENXML(@hDoc,'/Root/TransferDetail',2)
|
1518
|
WITH
|
1519
|
(
|
1520
|
TRAN_DT_ID varchar(15) ,
|
1521
|
TRANSFER_ID varchar(15) ,
|
1522
|
REQ_PAY_ID varchar(15) ,
|
1523
|
TOTAL_AMT decimal(18, 0) ,
|
1524
|
TOAL_AMT_DO decimal(18, 0) ,
|
1525
|
TOTAL_AMT_REMAIN decimal(18, 0) ,
|
1526
|
TOTAL_AMT_REAL decimal(18, 0) ,
|
1527
|
TOTAL_AMT_REMAIN_FN decimal(18, 0) ,
|
1528
|
NOTES nvarchar(4000) ,
|
1529
|
REASON nvarchar(4000)
|
1530
|
)
|
1531
|
OPEN TransferDetail
|
1532
|
PRINT 'PASS KHOI TAO'
|
1533
|
BEGIN TRANSACTION
|
1534
|
--insert master
|
1535
|
EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_TRANSFER', @l_TRANSFER_ID_MASTER out
|
1536
|
IF @l_TRANSFER_ID_MASTER='' OR @l_TRANSFER_ID_MASTER IS NULL GOTO ABORT
|
1537
|
INSERT INTO TR_REQ_PAY_TRANSFER (TRANSFER_ID, TRANSFER_CODE,REQ_PAY_ID, MAKER_ID,CREATE_DT, AUTH_STATUS, CHECKER_ID, APPROVE_DT, FR_USER, TO_USER, REASON, NOTES,[DESCRIPTION],CONFIRM_NOTES)
|
1538
|
VALUES (@l_TRANSFER_ID_MASTER, @p_TRANSFER_CODE,@p_REQ_PAY_ID, @p_MAKER_ID,GETDATE(), @p_AUTH_STATUS, @p_CHECKER_ID, NULL, @p_FR_USER, @p_TO_USER, @p_REASON, @p_NOTES,@p_DESCRIPTION,@p_CONFIRM_NOTES)
|
1539
|
IF @@Error <> 0 GOTO ABORT
|
1540
|
PRINT 'INSERT MASTER SUCCESS'
|
1541
|
|
1542
|
Declare
|
1543
|
@l_TRAN_DT_ID varchar(15) ,
|
1544
|
@l_TRANSFER_ID varchar(15) ,
|
1545
|
@l_REQ_PAY_ID varchar(15) ,
|
1546
|
@l_TOTAL_AMT decimal(18, 0) ,
|
1547
|
@l_TOAL_AMT_DO decimal(18, 0) ,
|
1548
|
@l_TOTAL_AMT_REMAIN decimal(18, 0) ,
|
1549
|
@l_TOTAL_AMT_REAL decimal(18, 0) ,
|
1550
|
@l_TOTAL_AMT_REMAIN_FN decimal(18, 0) ,
|
1551
|
@l_NOTES nvarchar(4000) ,
|
1552
|
@l_REASON nvarchar(4000)
|
1553
|
-- insert detail
|
1554
|
DECLARE @l_CD_ID VARCHAR(15)
|
1555
|
FETCH NEXT FROM TransferDetail INTO @l_TRAN_DT_ID,@p_TRANSFER_ID,@l_REQ_PAY_ID,@l_TOTAL_AMT,@l_TOAL_AMT_DO,@l_TOTAL_AMT_REMAIN,@l_TOTAL_AMT_REAL,@l_TOTAL_AMT_REMAIN_FN,@l_NOTES,@l_REASON
|
1556
|
-- Validate lưới chi tiết rỗng hay không
|
1557
|
IF (@@FETCH_STATUS < 0)
|
1558
|
BEGIN
|
1559
|
ROLLBACK TRANSACTION
|
1560
|
CLOSE TransferDetail;
|
1561
|
DEALLOCATE TransferDetail;
|
1562
|
SELECT '-1' as Result, '' AS TRANSFER_ID, N'Thông tin phiếu đề nghị tạm ứng không được để trống' ErrorDesc
|
1563
|
RETURN '-1'
|
1564
|
END
|
1565
|
DECLARE @IDX INT = 0
|
1566
|
WHILE @@FETCH_STATUS = 0
|
1567
|
BEGIN
|
1568
|
SET @IDX = @IDX + 1
|
1569
|
-- Kiểm tra nếu PĐN tạm ứng đang được điều chuyển ở một giao dịch khác thì không cho tạo
|
1570
|
IF EXISTS (SELECT A.REQ_PAY_ID FROM TR_REQ_PAY_TRANSFER_DT A
|
1571
|
LEFT JOIN TR_REQ_PAY_TRANSFER B ON A.TRANSFER_ID = B.TRANSFER_ID AND A.REQ_PAY_ID =@l_REQ_PAY_ID
|
1572
|
WHERE B.AUTH_STATUS = 'U')
|
1573
|
BEGIN
|
1574
|
ROLLBACK TRANSACTION
|
1575
|
CLOSE TransferDetail;
|
1576
|
DEALLOCATE TransferDetail;
|
1577
|
SELECT '-1' as Result, '' AS TRANSFER_ID, N'Dòng: '+ CONVERT(VARCHAR(5),@IDX) + N' Phiếu đề nghị tạm ứng đang được điều chuyển ở một giao dịch khác' ErrorDesc
|
1578
|
RETURN '-1'
|
1579
|
END
|
1580
|
EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_TRANSFER_DT', @l_TRAN_DT_ID out
|
1581
|
IF @l_TRAN_DT_ID='' OR @l_TRAN_DT_ID IS NULL GOTO ABORT
|
1582
|
INSERT INTO TR_REQ_PAY_TRANSFER_DT(TRAN_DT_ID, TRANSFER_ID,REQ_PAY_ID,TOTAL_AMT, TOAL_AMT_DO, TOTAL_AMT_REMAIN, TOTAL_AMT_REAL, TOTAL_AMT_REMAIN_FN, NOTES, REASON)
|
1583
|
VALUES ( @l_TRAN_DT_ID,@l_TRANSFER_ID_MASTER,@l_REQ_PAY_ID,@l_TOTAL_AMT,@l_TOAL_AMT_DO,@l_TOTAL_AMT_REMAIN,@l_TOTAL_AMT_REAL,@l_TOTAL_AMT_REMAIN_FN,@l_NOTES,@l_REASON)
|
1584
|
IF @@Error <> 0 GOTO ABORT
|
1585
|
-- next Group_Id
|
1586
|
FETCH NEXT FROM TransferDetail INTO @l_TRAN_DT_ID,@l_TRANSFER_ID,@l_REQ_PAY_ID,@l_TOTAL_AMT,@l_TOAL_AMT_DO,@l_TOTAL_AMT_REMAIN,@l_TOTAL_AMT_REAL,@l_TOTAL_AMT_REMAIN_FN,@l_NOTES,@l_REASON
|
1587
|
END
|
1588
|
|
1589
|
DECLARE @ENTRY_PAIR varchar(20),@DR_CR varchar(20),@ACCT VARCHAR(50), @ACCT_NAME VARCHAR(500), @AMT decimal(18,2),@CURRENCY VARCHAR(15), @EXC_RATE DECIMAL(18,0),
|
1590
|
@BRANCH_ID VARCHAR(15), @DEP_ID VARCHAR(15),@TRN_DESC nvarchar(1000), @GL_CODE VARCHAR(10)
|
1591
|
DECLARE @hdoc2 INT;
|
1592
|
EXEC sp_xml_preparedocument @hdoc2 OUTPUT, @P_LISTASSET_v1;
|
1593
|
DECLARE XmlData CURSOR LOCAL FOR
|
1594
|
SELECT *
|
1595
|
FROM
|
1596
|
OPENXML(@hdoc2, '/Root/XmlData', 2)
|
1597
|
WITH(ENTRY_PAIR varchar(20),DR_CR varchar(20),ACCT VARCHAR(50), ACCT_NAME VARCHAR(500), AMT decimal(18,2),CURRENCY VARCHAR(15), EXC_RATE DECIMAL(18,0),
|
1598
|
BRANCH_ID VARCHAR(15), DEP_ID VARCHAR(15),TRN_DESC nvarchar(1000),GL_CODE VARCHAR(10))
|
1599
|
OPEN XmlData;
|
1600
|
---
|
1601
|
DECLARE @INDEX INT =0, @INDEX_IV INT =0,@ACC_NAME_FN VARCHAR(500)
|
1602
|
-- KHAI BAO CAC BUOC DUYET- XAC NHAN
|
1603
|
IF @@Error <> 0 GOTO ABORT
|
1604
|
DECLARE @DR_CR_NAME NVARCHAR(50)
|
1605
|
FETCH NEXT FROM XmlData INTO @ENTRY_PAIR ,@DR_CR,@ACCT, @ACCT_NAME, @AMT ,@CURRENCY, @EXC_RATE,@BRANCH_ID, @DEP_ID,@TRN_DESC,@GL_CODE
|
1606
|
WHILE @@fetch_status=0 BEGIN
|
1607
|
SET @INDEX = @INDEX +1
|
1608
|
|
1609
|
IF(@DR_CR='D')
|
1610
|
BEGIN
|
1611
|
SET @DR_CR_NAME =N'Nợ'
|
1612
|
END
|
1613
|
ELSE
|
1614
|
BEGIN
|
1615
|
SET @DR_CR_NAME =N'Có'
|
1616
|
END
|
1617
|
IF(@DR_CR IS NULL OR @DR_CR ='')
|
1618
|
BEGIN
|
1619
|
ROLLBACK TRANSACTION
|
1620
|
--CLOSE XmlData;
|
1621
|
--DEALLOCATE XmlData;
|
1622
|
SELECT '-1' as Result, '' REQ_PAY_ID, N'Dòng: '+ CONVERT(VARCHAR(5),@INDEX) + N' Tài khoản nợ không được phép để trống' ErrorDesc
|
1623
|
RETURN '-1'
|
1624
|
END
|
1625
|
IF(@ACCT IS NULL OR @ACCT ='')
|
1626
|
BEGIN
|
1627
|
ROLLBACK TRANSACTION
|
1628
|
--CLOSE XmlData;
|
1629
|
--DEALLOCATE XmlData;
|
1630
|
SELECT '-1' as Result, '' REQ_PAY_ID, N'Dòng: '+ CONVERT(VARCHAR(5),@INDEX) + N' Tài khoản có không được phép để trống' ErrorDesc
|
1631
|
RETURN '-1'
|
1632
|
END
|
1633
|
IF(@TRN_DESC IS NULL OR @TRN_DESC ='')
|
1634
|
BEGIN
|
1635
|
ROLLBACK TRANSACTION
|
1636
|
--CLOSE XmlData;
|
1637
|
--DEALLOCATE XmlData;
|
1638
|
SELECT '-1' as Result, '' REQ_PAY_ID, N'Dòng: '+ CONVERT(VARCHAR(5),@INDEX) + N' Diễn giải hạch toán không được phép để trống' ErrorDesc
|
1639
|
RETURN '-1'
|
1640
|
END
|
1641
|
IF(@BRANCH_ID IS NULL OR @BRANCH_ID ='')
|
1642
|
BEGIN
|
1643
|
ROLLBACK TRANSACTION
|
1644
|
--CLOSE XmlData;
|
1645
|
--DEALLOCATE XmlData;
|
1646
|
SELECT '-1' as Result, '' REQ_PAY_ID, N'Dòng: '+ CONVERT(VARCHAR(5),@INDEX) + N' Đơn vị không được phép để trống' ErrorDesc
|
1647
|
RETURN '-1'
|
1648
|
END
|
1649
|
SET @ACC_NAME_FN =(SELECT TOP 1 ACC_NAME FROM CM_ACCOUNT WHERE ACC_NO =@ACCT)
|
1650
|
IF(@ACC_NAME_FN IS NULL OR @ACC_NAME_FN ='')
|
1651
|
BEGIN
|
1652
|
SET @ACC_NAME_FN =(SELECT TOP 1 ACC_NAME FROM CM_ACCOUNT_PAY WHERE ACC_NUM =@ACCT)
|
1653
|
END
|
1654
|
IF((@ACCT_NAME IS NULL OR @ACCT_NAME ='' OR @ACC_NAME_FN IS NULL OR @ACC_NAME_FN ='' ) OR (ISNULL(@ACCT_NAME,'') <> ISNULL(@ACC_NAME_FN,'')))
|
1655
|
BEGIN
|
1656
|
ROLLBACK TRANSACTION
|
1657
|
--CLOSE XmlData;
|
1658
|
DEALLOCATE XmlData;
|
1659
|
SELECT '-1' as Result, '' REQ_PAY_ID, N'Dòng: '+ CONVERT(VARCHAR(5),@INDEX) + N' Tên tài khoản hạch toán chưa đúng. Vui lòng bấm vào nút Check GL & Check CASA để đồng bộ tài khoản từ Core' ErrorDesc
|
1660
|
RETURN '-1'
|
1661
|
END
|
1662
|
DECLARE @p_ET_ID VARCHAR(15);
|
1663
|
EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_ENTRIES', @p_ET_ID OUT;
|
1664
|
IF @p_ET_ID='' OR @p_ET_ID IS NULL GOTO ABORT;
|
1665
|
INSERT INTO TR_REQ_PAY_ENTRIES (REQ_PAY_DT_ID,REQ_PAY_ID,ENTRY_PAIR,DR_CR,DR_CR_NAME,ACCT,ACCT_NAME,AMT,CURRENCY,EXC_RATE,BRANCH_ID,DEP_ID,TRN_DESC,TRN_DATE,MAKER_ID_KT)
|
1666
|
VALUES (@p_ET_ID,@l_TRANSFER_ID_MASTER,@ENTRY_PAIR,@DR_CR,@DR_CR_NAME,@ACCT,@ACCT_NAME, @AMT ,@CURRENCY, @EXC_RATE, @BRANCH_ID, @DEP_ID,@TRN_DESC,GETDATE(),@p_MAKER_ID_KT)
|
1667
|
IF(NOT EXISTS(SELECT * FROM CM_ACCOUNT WHERE ACC_NO =@ACCT))
|
1668
|
BEGIN
|
1669
|
INSERT INTO CM_ACCOUNT (ACC_NO, ACC_NAME, TK_GL, TK_GL_NAME, MAKER_ID, CHECKER_ID) VALUES
|
1670
|
(@ACCT,@ACCT_NAME,@GL_CODE,(SELECT TOP 1 ACC_NAME FROM CM_ACCOUNT WHERE ACC_NO =@GL_CODE),'admin','admin')
|
1671
|
END
|
1672
|
ELSE
|
1673
|
BEGIN
|
1674
|
IF(@GL_CODE IS NOT NULL AND @GL_CODE <> '')
|
1675
|
BEGIN
|
1676
|
UPDATE CM_ACCOUNT SET ACC_NAME =@ACCT_NAME, TK_GL =@GL_CODE, TK_GL_NAME =(SELECT TOP 1 ACC_NAME FROM CM_ACCOUNT WHERE ACC_NO =@GL_CODE)
|
1677
|
WHERE ACC_NO=@ACCT
|
1678
|
END
|
1679
|
END
|
1680
|
IF @@error<>0 GOTO ABORT;
|
1681
|
FETCH NEXT FROM XmlData INTO @ENTRY_PAIR ,@DR_CR,@ACCT, @ACCT_NAME, @AMT ,@CURRENCY, @EXC_RATE,@BRANCH_ID, @DEP_ID,@TRN_DESC,@GL_CODE
|
1682
|
END;
|
1683
|
CLOSE XmlData;
|
1684
|
DEALLOCATE XmlData;
|
1685
|
-- CHAN NEU CHI CO 1 BUT NO 1 BUT CO THI KHONG DUOC DI TIEP
|
1686
|
IF(EXISTS(SELECT * FROM TR_REQ_PAY_ENTRIES WHERE REQ_PAY_ID =@p_TRANSFER_ID))
|
1687
|
BEGIN
|
1688
|
|
1689
|
--CLOSE XmlData;
|
1690
|
--DEALLOCATE XmlData;
|
1691
|
DECLARE @SUM_CR DECIMAL(18,2), @SUM_DR DECIMAL(18,2)
|
1692
|
SET @SUM_CR =ISNULL((SELECT SUM(AMT*ISNULL(EXC_RATE,1)) FROM TR_REQ_PAY_ENTRIES WHERE REQ_PAY_ID =@p_TRANSFER_ID AND DR_CR ='C'),0)
|
1693
|
SET @SUM_DR =ISNULL((SELECT SUM(AMT*ISNULL(EXC_RATE,1)) FROM TR_REQ_PAY_ENTRIES WHERE REQ_PAY_ID =@p_TRANSFER_ID AND DR_CR ='D'),0)
|
1694
|
IF(@SUM_CR <> @SUM_DR)
|
1695
|
BEGIN
|
1696
|
PRINT 'TONG NO TONG CO'
|
1697
|
ROLLBACK TRANSACTION
|
1698
|
SELECT '-1' as Result, '' REQ_PAY_ID, N'Tổng hạch toán nợ phải bằng tổng hạch toán có: ' + FORMAT(@SUM_DR,'#,###') ErrorDesc
|
1699
|
RETURN '-1'
|
1700
|
END
|
1701
|
END
|
1702
|
COMMIT TRANSACTION
|
1703
|
SELECT '0' as Result, @p_TRANSFER_ID TRANSFER_ID, N'Giao dịch điều chuyển tạm ứng có ID: '+ @p_TRANSFER_ID +N' đã được tạo bản nháp thành công. Bạn có thể bấm gửi phê duyệt' ErrorDesc
|
1704
|
RETURN '0'
|
1705
|
ABORT:
|
1706
|
BEGIN
|
1707
|
CLOSE AssetDetail
|
1708
|
DEALLOCATE AssetDetail
|
1709
|
CLOSE PaymentDetail
|
1710
|
DEALLOCATE PaymentDetail
|
1711
|
ROLLBACK TRANSACTION
|
1712
|
SELECT '-1' as Result, '' TRANSFER_ID, '' ErrorDesc
|
1713
|
RETURN '-1'
|
1714
|
END
|
1715
|
|
1716
|
|
1717
|
|
1718
|
|
1719
|
|
1720
|
|
1721
|
|
1722
|
|
1723
|
|
1724
|
|
1725
|
|