Project

General

Profile

UPD_GET_BILL.txt

Luc Tran Van, 03/24/2023 11:15 AM

 
1

    
2
ALTER PROCEDURE [dbo].[TR_REQ_PAY_AUTO_CREATE_REQ_PAYMENT_FROM_SYSTEM_INVOICE]
3
@p_XMP_RECURRING XML
4
AS
5
BEGIN TRANSACTION
6

    
7
	DECLARE @list_req_payment NVARCHAR(MAX) = ''
8
-- DS CAC KY DA THANH TOAN
9
	DECLARE @billRef VARCHAR(20), @billCode VARCHAR(20), @customerName NVARCHAR(MAX), @amount VARCHAR(20), @accountNo VARCHAR(20), @accountType VARCHAR(20), 
10
	@createdTime VARCHAR(21), @partner VARCHAR(20), @resultCode VARCHAR(20), @resultDesc NVARCHAR(MAX), @transDesc NVARCHAR(MAX), @coreXref VARCHAR(20), @partnerAccount VARCHAR(20), 
11
	@billCodeAlias VARCHAR(20), @prvCode VARCHAR(20), @sevCode VARCHAR(20), @year VARCHAR(20), @customerAddress VARCHAR(20), @month VARCHAR(20), 
12
	@accountName VARCHAR(20), @accountNoRec VARCHAR(20), @accountNameRec VARCHAR(20), @billDate VARCHAR(20)
13

    
14
	DECLARE @hDocRecurring INT EXEC sp_xml_preparedocument @hDocRecurring OUTPUT, @p_XMP_RECURRING;
15
	DECLARE XmlAutoRecurring CURSOR LOCAL FOR
16
	SELECT * FROM OPENXML(@hDocRecurring, 'Root/XmlAutoRecurring',2) 
17
	WITH(billRef VARCHAR(20), billCode VARCHAR(20), customerName NVARCHAR(MAX), amount VARCHAR(20), accountNo VARCHAR(20), accountType VARCHAR(20), createdTime VARCHAR(30),
18
	[partner] VARCHAR(20), resultCode VARCHAR(20), resultDesc NVARCHAR(MAX), transDesc NVARCHAR(MAX), coreXref VARCHAR(20), partnerAccount VARCHAR(20), [month] VARCHAR(20))
19
	OPEN XmlAutoRecurring
20

    
21
--- DUYET QUA TUNG KY THANH TOAN
22
	FETCH NEXT FROM XmlAutoRecurring INTO @billRef, @billCode, @customerName, @amount, @accountNo, @accountType, @createdTime,
23
	@partner, @resultCode, @resultDesc, @transDesc, @coreXref, @partnerAccount, @month
24
	WHILE @@fetch_status=0 
25
	BEGIN
26
		print '@billRef: ' + @billRef
27
		print '@billcode: ' + @billCode
28
		IF(@resultCode <> '00')
29
		BEGIN
30
			PRINT 'KY THANH TOAN KHONG HOP LE' + @billRef
31
		END
32
		ELSE IF(@accountType <> 'A')
33
		BEGIN
34
			PRINT 'KHONG PHAI THANH TOAN BANG THE' + @billRef
35
		END
36
		/*
37
		ELSE IF(@partner <> 'AMS')
38
		BEGIN
39
			PRINT 'KHONG PHAI KY THANH TOAN DUOC THANH TOAN BOI AMS' + @billRef
40
		END
41
		*/
42
		ELSE IF(EXISTS(SELECT * FROM TR_REQ_PAY_AUTO_RECURRING_HISTORY WHERE billRef = @billRef AND @billCode = billCode AND @coreXref = coreXref))
43
		BEGIN
44
			PRINT 'KY THANH TOAN DA TON TAI TRONG HE THONG - DA THUC HIEN THANH TOAN TREN AMS: ' + @billRef
45
		END
46
		ELSE IF(NOT EXISTS(SELECT * FROM TR_REQ_PAY_AUTO_RECURRING WHERE BILLCODE = @billCode))
47
		BEGIN
48
			PRINT 'KHONG CO BILLCODE TRONG HE THONG AMS: ' + @billCode
49
		END
50
		ELSE IF(NOT EXISTS	(SELECT *	FROM TR_REQ_PAY_AUTO_RECURRING A
51
										LEFT JOIN TR_REQ_PAYMENT_AUTO B ON A.REQ_PAY_AUTO_ID = B.REQ_PAY_AUTO_ID 
52
										WHERE A.BILLCODE = @billCode
53
							)
54
				)
55
		BEGIN
56
			PRINT 'KHONG CO PHIEU YEU CAU THANH TOAN TU DONG TRONG HE THONG AMS: ' + @billCode
57
		END
58
		ELSE
59
		BEGIN
60
			DECLARE @REQ_PAY_ID VARCHAR(20), @REQ_PAY_CODE VARCHAR(20), @CONTRACT_ID VARCHAR(20), @CONTRACT_CODE VARCHAR(20), @CONTRACT_NAME NVARCHAR(500),
61
			@BRANCH_ID NVARCHAR(20), @REQ_PAY_AUTO_SERVICE_TYPE_NAME NVARCHAR(200), @DEP_ID VARCHAR(20), @BRANCH_CREATE VARCHAR(20), 
62
			@REQ_PAY_AUTO_ID VARCHAR(20), @TRANSFER_USER_RECEIVE VARCHAR(20), @TRANS_GLCODE VARCHAR(20), @TRANS_GLNAME NVARCHAR(500)
63
			PRINT 'GET DATA BILLCODE'
64
			-- LAY DATA CUA BILLCODE DANG KY TRONG AMS
65
			SELECT TOP 1 @CONTRACT_ID = B.CONTRACT_ID, @CONTRACT_CODE = E.CONTRACT_CODE, @CONTRACT_NAME = E.[CONTRACT_NAME], 
66
			@BRANCH_ID = B.BRANCH_ID, @REQ_PAY_AUTO_SERVICE_TYPE_NAME = D.CONTENT, @DEP_ID = B.DEP_ID, @BRANCH_CREATE = B.BRANCH_CREATE,
67
			@REQ_PAY_AUTO_ID = B.REQ_PAY_AUTO_ID, @TRANSFER_USER_RECEIVE = B.TRANSFER_USER_RECEIVE, 
68
			@TRANS_GLCODE = A.TRANS_GLCODE, @TRANS_GLNAME = A.TRANS_GLNAME
69
			FROM TR_REQ_PAY_AUTO_RECURRING A
70
			LEFT JOIN TR_REQ_PAYMENT_AUTO B ON A.REQ_PAY_AUTO_ID = B.REQ_PAY_AUTO_ID
71
			LEFT JOIN CM_BRANCH C ON B.BRANCH_ID = C.BRANCH_ID
72
			LEFT JOIN CM_ALLCODE D ON B.REQ_PAY_AUTO_SERVICE_TYPE = D.CDVAL AND D.CDNAME = 'PAY_SER_AUTO' AND CDTYPE = 'REQ_AUTO'
73
			LEFT JOIN TR_CONTRACT E ON B.CONTRACT_ID = E.CONTRACT_ID
74
			WHERE BILLCODE = @billCode
75
			PRINT 'LUU LOG KY THANH TOAN'
76
			print @createdTime
77
			-- LUU LOG KY THANH TOAN
78
			INSERT INTO TR_REQ_PAY_AUTO_RECURRING_HISTORY(billRef, billCode, customerName, amount, accountNo, accountType, createdTime,
79
			[partner], resultCode, resultDesc, transDesc, coreXref, partnerAccount, MAKER_ID, CREATE_DT)
80
			VALUES (@billRef, @billCode, @customerName, @amount, @accountNo, @accountType, CONVERT(DATE, @createdTime, 103),
81
			@partner, @resultCode, @resultDesc, @transDesc, @coreXref, @partnerAccount, 'admin', GETDATE())
82

    
83
			-------------------- BEGIN TAO PHIEU DE NGHI THANH TOAN TU DONG ----------------------------------
84

    
85
			-- BEGIN KHOI TAO GIA TRI
86
			-- ID PDN THANH TOAN
87
			PRINT 'GEN ID PDN THANH TOAN'
88
			EXEC [dbo].[PAY_CODE_GenKey] 'TR_REQ_PAYMENT', '','', @REQ_PAY_CODE out
89
			IF EXISTS(SELECT * FROM TR_REQ_PAYMENT WHERE REQ_PAY_CODE  = @REQ_PAY_CODE )
90
			BEGIN
91
				ROLLBACK TRANSACTION
92
				SELECT '-1' as Result, @list_req_payment LIST_REQ_PAYMENT, N'Số phiếu đề nghị thanh toán đã tồn tại trong hệ thống' ErrorDesc
93
				RETURN '-1'
94
			END
95
			PRINT 'GEN MA CODE PDN THANH TOAN'
96
			-- MA CODE PDN THANH TOAN
97
			EXEC SYS_CodeMasters_Gen 'TR_REQ_PAYMENT', @REQ_PAY_ID out
98
			IF @REQ_PAY_ID='' OR @REQ_PAY_ID IS NULL GOTO ABORT
99
			PRINT 'GET DON VI QUAN LY HOP DONG'
100
			DECLARE @BRANCH_MANAGE_ID NVARCHAR(250) =	(	SELECT TOP 1 BRANCH_ID 
101
															FROM CM_BRANCH 
102
															WHERE BRANCH_ID = (	SELECT TOP 1 BRANCH_ID FROM TR_CONTRACT WHERE CONTRACT_ID = @CONTRACT_ID)
103
														)
104
			SET @BRANCH_CREATE = @BRANCH_MANAGE_ID;
105
			SET @BRANCH_ID = @BRANCH_MANAGE_ID;
106
			IF(ISNULL(@BRANCH_MANAGE_ID, '') <> 'DV0001')
107
			BEGIN
108
				SET @DEP_ID = NULL
109
			END
110
			DECLARE @BRANCH_MANAGE_NAME NVARCHAR(250) = (	SELECT TOP 1 BRANCH_NAME 
111
															FROM CM_BRANCH 
112
															WHERE BRANCH_ID = (	SELECT TOP 1 BRANCH_ID FROM TR_CONTRACT WHERE CONTRACT_ID = @CONTRACT_ID)
113
														)
114
			IF((SELECT TOP 1 BRANCH_ID FROM TR_CONTRACT WHERE CONTRACT_ID = @CONTRACT_ID) <> 'DV0001' AND @BRANCH_ID = 'DV0001')
115
			BEGIN
116
				SET @BRANCH_MANAGE_NAME =	(SELECT TOP 1 BRANCH_NAME FROM CM_BRANCH WHERE BRANCH_ID = @BRANCH_ID)
117
											+	ISNULL	( ' - ' +	(	SELECT TOP 1 BRANCH_NAME 
118
																		FROM CM_BRANCH 
119
																		WHERE BRANCH_ID = (	SELECT TOP 1 BRANCH_ID FROM TR_CONTRACT WHERE CONTRACT_ID = @CONTRACT_ID)
120
																	), ''
121
														)
122
			END
123

    
124
			-- NOI DUNG THANH TOAN, DUNG CHO NHIEU TABLE
125
			DECLARE @PAY_AUTO_DESC_DETAIL NVARCHAR(1000) = ''
126
			DECLARE @PAY_AUTO_TRN_DESC_DETAIL VARCHAR(1000) = ''
127
			IF(ISNULL(@month, '') = '')
128
			BEGIN
129
				PRINT 'HOP DONG KHONG CO MA CODE: ' + @PAY_AUTO_DESC_DETAIL
130
				SET @PAY_AUTO_DESC_DETAIL = @BRANCH_MANAGE_NAME + N' thanh toán chi phí ' + @REQ_PAY_AUTO_SERVICE_TYPE_NAME  + N' theo GDNTT số ' + @REQ_PAY_CODE
131
				SET @PAY_AUTO_TRN_DESC_DETAIL = UPPER(dbo.fChuyenCoDauThanhKhongDau(@BRANCH_MANAGE_NAME + N' thanh toán chi phí ' + @REQ_PAY_AUTO_SERVICE_TYPE_NAME  + N' theo GDNTT số ' + @REQ_PAY_CODE))
132
			END
133
			ELSE
134
			BEGIN
135
				PRINT 'HOP DONG CO MA CODE: ' + @PAY_AUTO_DESC_DETAIL
136
				SET @PAY_AUTO_DESC_DETAIL = @BRANCH_MANAGE_NAME + N' thanh toán chi phí ' + @REQ_PAY_AUTO_SERVICE_TYPE_NAME + N', ' + @month + N' theo GDNTT số ' + @REQ_PAY_CODE
137
				SET @PAY_AUTO_TRN_DESC_DETAIL = UPPER(dbo.fChuyenCoDauThanhKhongDau(@BRANCH_MANAGE_NAME + N' thanh toán chi phí ' + @REQ_PAY_AUTO_SERVICE_TYPE_NAME + N', ' + @month + N' theo GDNTT số ' + @REQ_PAY_CODE))
138
			END
139

    
140
			-- END KHOI TAO GIA TRI
141
			PRINT 'TAO PHIEU DE NGHI THANH TOAN'
142
			INSERT INTO [dbo].[TR_REQ_PAYMENT]
143
			(REQ_PAY_ID, REQ_PAY_CODE, BRANCH_ID, DEP_ID, REQ_REASON, REQ_TYPE, 
144
			REQ_ENTRIES, REQ_DESCRIPTION, REF_ID, PAY_PHASE, RECEIVER_PO, --NULL
145
			REQ_PAY_TYPE, REQ_DT, REQ_TYPE_CURRENCY, REQ_AMT, REQ_TEMP_AMT, 
146
			MAKER_ID, CREATE_DT, EDITOR_ID, AUTH_STATUS, CHECKER_ID, APPROVE_DT, --HC
147
			CREATE_DT_KT, MAKER_ID_KT, AUTH_STATUS_KT, CHECKER_ID_KT, APPROVE_DT_KT, CONFIRM_NOTE, --KT
148
			BRANCH_CREATE, NOTES, RECORD_STATUS, TRANSFER_MAKER, TRANSFER_DT, TRASFER_USER_RECIVE, PROCESS, RATE, IS_PERIOD, AMT_PAY, IS_CREATE_AUTO, TYPE_AUTO, SYSTEM_INVOICE_ID, IS_CREATE_AUTO_DONE)
149
			VALUES
150
			(@REQ_PAY_ID, @REQ_PAY_CODE, @BRANCH_ID, @DEP_ID, @PAY_AUTO_DESC_DETAIL, 'P', 
151
			NULL, NULL,  NULL, NULL, NULL,  --NULL
152
			'1', GETDATE(), 'VND', @amount, NULL, 
153
			'admin', GETDATE(), NULL, 'A', 'admin', GETDATE(),  --HC
154
			GETDATE(), 'admin', 'A', 'admin', GETDATE(), NULL, --KT
155
			@BRANCH_CREATE, NULL, '1', 'admin', GETDATE(), NULL, '0', 1, 'Y', NULL, 'Y', 'B', @billRef, 'N')
156
			PRINT 'TAO LUOI PDN THANH TOAN CHO PYC TTTD'
157
			-- TẠO LƯỚI PHIEU DE NGHI THANH TOAN CHO PYC
158
			INSERT INTO [dbo].[TR_REQ_PAY_AUTO_PAYMENTS]
159
			(REQ_PAY_AUTO_ID, REQ_PAY_ID, REQ_PAY_CODE, BRANCH_ID, DEP_ID, REQ_REASON, REQ_TYPE, 
160
			REQ_ENTRIES, REQ_DESCRIPTION, REF_ID, PAY_PHASE, RECEIVER_PO, --NULL
161
			REQ_PAY_TYPE, REQ_DT, REQ_TYPE_CURRENCY, REQ_AMT, REQ_TEMP_AMT, 
162
			MAKER_ID, CREATE_DT, EDITOR_ID, AUTH_STATUS, CHECKER_ID, APPROVE_DT, --HC
163
			CREATE_DT_KT, MAKER_ID_KT, AUTH_STATUS_KT, CHECKER_ID_KT, APPROVE_DT_KT, CONFIRM_NOTE, --KT
164
			BRANCH_CREATE, NOTES, RECORD_STATUS, TRANSFER_MAKER, TRANSFER_DT, TRASFER_USER_RECIVE, PROCESS, RATE, IS_PERIOD, AMT_PAY)
165
			VALUES
166
			(@REQ_PAY_AUTO_ID ,@REQ_PAY_ID, @REQ_PAY_CODE, @BRANCH_ID, @DEP_ID, @PAY_AUTO_DESC_DETAIL, 'P', 
167
			NULL, NULL,  NULL, NULL, NULL,  --NULL
168
			'1', GETDATE(), 'VND', @amount, NULL, 
169
			'admin', GETDATE(), NULL, 'A', 'admin', GETDATE(),  --HC
170
			GETDATE(), 'admin', 'A', 'admin', GETDATE(), NULL, --KT
171
			@BRANCH_CREATE, NULL, '1', 'admin', GETDATE(), NULL, '0', 1, 'Y', NULL)
172
			PRINT 'THEM LICH SU XU LY'
173
			INSERT INTO dbo.PL_PROCESS(REQ_ID,PROCESS_ID,CHECKER_ID,APPROVE_DT,PROCESS_DESC,NOTES)
174
			VALUES(@REQ_PAY_ID,'AUTO_APPR','admin',GETDATE(), N'Hệ thống tạo phiếu thanh toán tự động',N'Hệ thống tạo phiếu thanh toán tự động')
175

    
176
			
177
			-------------------- END TAO PHIEU DE NGHI THANH TOAN TU DONG ----------------------------------
178

    
179
			-- TẠO LƯỚI THÔNG TIN HỢP ĐỒNG ĐỊNH KỲ
180
			PRINT 'TAO LUOI THONG TIN HDDK'
181
			DECLARE @REQ_PAYDTID_PERIOD VARCHAR(15);
182
			EXEC SYS_CodeMasters_Gen 'TR_REQ_ADVANCE_DT', @REQ_PAYDTID_PERIOD OUT;
183
			IF @REQ_PAYDTID_PERIOD='' OR @REQ_PAYDTID_PERIOD IS NULL GOTO ABORT;
184
			INSERT INTO TR_REQ_ADVANCE_DT (REQ_PAYDTID, REQ_PAY_ID,REF_ID, [TYPE], MAKER_ID, CREATE_DT, IS_CLOSED, REF_TYPE, DELIVERY_DT) 
185
			VALUES(@REQ_PAYDTID_PERIOD, @REQ_PAY_ID, @CONTRACT_ID, 'PAY', 'admin', GETDATE(), 'N', 'C', CONVERT(DATE,NULL,103))
186
			
187
			-- TẠO LƯỚI THÔNG TIN THANH TOÁN HỢP ĐỒNG ĐỊNH KỲ
188
			PRINT 'TAO LUOI THONG TIN THANH TOAN HDDK'
189
			DECLARE @PERIOD_ID VARCHAR(15);
190
			EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_PERIOD', @PERIOD_ID OUT;
191
			IF @PERIOD_ID='' OR @PERIOD_ID IS NULL GOTO ABORT;
192
			INSERT INTO TR_REQ_PAY_PERIOD(PERIOD_ID, REQ_PAY_ID, PAY_TYPE, CONTRACT_ID, PAY_DT_REAL ,OLD_INDEX, NEW_INDEX, AMT_PAY, 
193
			AUTH_STATUS_KT, CURRENCY, RATE, FROM_DATE, TO_DATE,AD_PAY_ID, PROCESS, PARENT_ID, PAY_PHASE, REASON, TYPE_COST,FR_LEVEL , TO_LEVEL)
194
			VALUES (@PERIOD_ID, @REQ_PAY_ID,'PAY', @CONTRACT_ID, NULL, NULL , NULL , @amount, 
195
			'A', 'VND', '1', NULL, NULL, NULL, '1', NULL, @month, @PAY_AUTO_DESC_DETAIL, NULL, NULL, NULL )
196

    
197
			-- TẠO LƯỚI THÔNG TIN HẠCH TOÁN
198

    
199
			-- BUT TOAN CHI PHI
200
				PRINT 'BUT TOAN CHI PHI'
201
				DECLARE @FUNCTION_TYPE VARCHAR(15), @TRN_TYPE NVARCHAR(40), @REF_ID VARCHAR(15), @ENTRY_PAIR varchar(50), @DR_CR varchar(2), @DR_CR_NAME nvarchar(50), 
202
				@ACCT varchar(100), @ACCT_NAME varchar(500), @AMT DECIMAL(18,2), @EXC_RATE DECIMAL(18,2), @TRN_DATE VARCHAR(20), @TRN_DESC nvarchar(1000), @AUTH_STATUS varchar(2), @APPROVE_DT varchar(20),
203
				@CREATE_DT_KT varchar(20), @APPROVE_DT_KT varchar(20), @IS_TRANSFER_EXTERNAL varchar(20), @DEP_ID_ENTRY varchar(20), 
204
				@CURRENCY varchar(20), @MAKER_ID varchar(20), @CREATE_DT varchar(20), @CHECKER_ID varchar(20), @MAKER_ID_KT varchar(20), @AUTH_STATUS_KT varchar(2), @CHECKER_ID_KT varchar(20), 
205
				@RECORD_STATUS varchar(20)
206
				DECLARE cursorEntries CURSOR LOCAL FOR 
207
				SELECT REQ_PAY_AUTO_ID, FUNCTION_TYPE, TRN_TYPE, REF_ID, ENTRY_PAIR, DR_CR, DR_CR_NAME, ACCT, ACCT_NAME, BRANCH_ID, DEP_ID, AMT, CURRENCY, EXC_RATE,
208
				TRN_DATE, TRN_DESC, MAKER_ID, CREATE_DT, AUTH_STATUS, CHECKER_ID, APPROVE_DT, MAKER_ID_KT, CREATE_DT_KT, AUTH_STATUS_KT, CHECKER_ID_KT, APPROVE_DT_KT, RECORD_STATUS, IS_TRANSFER_EXTERNAL
209
				FROM TR_REQ_PAY_AUTO_ENTRIES
210
				WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID
211
				Open cursorEntries
212
				
213
				FETCH NEXT FROM cursorEntries INTO @REQ_PAY_AUTO_ID, @FUNCTION_TYPE, @TRN_TYPE, @REF_ID, @ENTRY_PAIR, @DR_CR, @DR_CR_NAME, @ACCT, @ACCT_NAME, @BRANCH_ID, @DEP_ID_ENTRY, @AMT, @CURRENCY, @EXC_RATE,
214
				@TRN_DATE, @TRN_DESC, @MAKER_ID, @CREATE_DT, @AUTH_STATUS, @CHECKER_ID, @APPROVE_DT, @MAKER_ID_KT, @CREATE_DT_KT, @AUTH_STATUS_KT, @CHECKER_ID_KT, @APPROVE_DT_KT, @RECORD_STATUS, @IS_TRANSFER_EXTERNAL
215
				WHILE @@FETCH_STATUS = 0
216
				BEGIN
217
					DECLARE @l_TR_REQ_PAY_ENTRIES VARCHAR(15);
218
					EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_ENTRIES', @l_TR_REQ_PAY_ENTRIES OUT;
219
					IF @l_TR_REQ_PAY_ENTRIES='' OR @l_TR_REQ_PAY_ENTRIES IS NULL GOTO ABORT;
220

    
221
					INSERT INTO [TR_REQ_PAY_ENTRIES] ([REQ_PAY_DT_ID],[REQ_PAY_ID],[FUNCTION_TYPE],[TRN_TYPE],[REF_ID],[ENTRY_PAIR],[DR_CR],[DR_CR_NAME],[ACCT],[ACCT_NAME],[BRANCH_ID],[DEP_ID], [AMT],[CURRENCY],[EXC_RATE],
222
					[TRN_DATE],[TRN_DESC],[MAKER_ID],[CREATE_DT],[AUTH_STATUS],[CHECKER_ID],[APPROVE_DT],[MAKER_ID_KT],[CREATE_DT_KT],[AUTH_STATUS_KT],[CHECKER_ID_KT],[APPROVE_DT_KT],[RECORD_STATUS],[IS_TRANSFER_EXTERNAL])
223
					VALUES (@l_TR_REQ_PAY_ENTRIES, @REQ_PAY_ID, @FUNCTION_TYPE, @TRN_TYPE, @REF_ID, @ENTRY_PAIR, @DR_CR, @DR_CR_NAME, @ACCT, @ACCT_NAME, @BRANCH_ID, @DEP_ID_ENTRY, CONVERT(DECIMAL(18,2), @amount), 'VND', @EXC_RATE,
224
					@TRN_DATE, @PAY_AUTO_TRN_DESC_DETAIL, 'admin', GETDATE(), @AUTH_STATUS, 'admin', @APPROVE_DT, 'admin', GETDATE(), 'A', 'admin', @APPROVE_DT_KT, '1', @IS_TRANSFER_EXTERNAL)
225

    
226
				IF @@error<>0 GOTO ABORT;
227
				FETCH NEXT FROM cursorEntries INTO @REQ_PAY_AUTO_ID, @FUNCTION_TYPE, @TRN_TYPE, @REF_ID, @ENTRY_PAIR, @DR_CR, @DR_CR_NAME, @ACCT, @ACCT_NAME, @BRANCH_ID, @DEP_ID_ENTRY, @AMT, @CURRENCY, @EXC_RATE,
228
				@TRN_DATE, @TRN_DESC, @MAKER_ID, @CREATE_DT, @AUTH_STATUS, @CHECKER_ID, @APPROVE_DT, @MAKER_ID_KT, @CREATE_DT_KT, @AUTH_STATUS_KT, @CHECKER_ID_KT, @APPROVE_DT_KT, @RECORD_STATUS, @IS_TRANSFER_EXTERNAL
229
				END
230
				CLOSE cursorEntries
231
				DEALLOCATE cursorEntries
232
				PRINT '9'
233
				--- BAN BUT TOAN VAO CORE
234
				DECLARE @RES VARCHAR(10)
235
				EXEC [dbo].[PAY_ENTRIES_POST_SetApp] @REQ_PAY_ID,'admin','admin', @RES OUT 
236

    
237
			-- BUT TOAN HE THONG
238
			-- NỢ
239
				DECLARE @l_TR_REQ_PAY_ENTRIES_D VARCHAR(15);
240
				EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_ENTRIES', @l_TR_REQ_PAY_ENTRIES_D OUT;
241
				INSERT INTO [TR_REQ_PAY_ENTRIES] ([REQ_PAY_DT_ID],[REQ_PAY_ID],[FUNCTION_TYPE],[TRN_TYPE],[REF_ID],
242
				[ENTRY_PAIR],[DR_CR],[DR_CR_NAME],
243
				[ACCT],[ACCT_NAME],[BRANCH_ID],[DEP_ID],
244
				[AMT],[CURRENCY],[EXC_RATE],[TRN_DATE],[TRN_DESC],
245
				[MAKER_ID],[CREATE_DT],[AUTH_STATUS],[CHECKER_ID],[APPROVE_DT],[MAKER_ID_KT],[CREATE_DT_KT],[AUTH_STATUS_KT],[CHECKER_ID_KT],[APPROVE_DT_KT],[RECORD_STATUS],[IS_TRANSFER_EXTERNAL])
246
				VALUES(@l_TR_REQ_PAY_ENTRIES_D, @REQ_PAY_ID,NULL,'PAYMENT',NULL,
247
				'2', N'D', N'Nợ',
248
				@accountNo, @customerName, N'DV0001', N'',
249
				CONVERT(DECIMAL(18,2), @amount), N'VND', 1.00, GETDATE(), @PAY_AUTO_TRN_DESC_DETAIL,
250
				'admin',GETDATE(),'A','admin', GETDATE(),'admin',GETDATE(),'A','admin',GETDATE(),'1',NULL)
251

    
252
				DECLARE @l_PAY_ENTRIES_POST_D VARCHAR(15);
253
				EXEC SYS_CodeMasters_Gen 'PAY_ENTRIES_POST', @l_PAY_ENTRIES_POST_D OUT;
254
				INSERT INTO [PAY_ENTRIES_POST] ([ET_ID],[REF_NO],[TRN_ID],[REF_ID],[TRN_TYPE],
255
							[ENTRY_PAIR],[DO_BRN],[DRCR],[ACCT],[BRN_ID],[DEPT_ID],
256
							[AMT],[CURRENCY],[EXC_RATE],[EXP_TO_CORE],[TRN_DATE],[TRN_DESC],[MAKER_ID],[CHECKER_ID])
257
				VALUES	(@l_PAY_ENTRIES_POST_D, @coreXref, @REQ_PAY_ID, @l_TR_REQ_PAY_ENTRIES_D,'PAYMENT',
258
						'2',N'DV0001',N'D',
259
						@accountNo,N'DV0001',N'',
260
						CONVERT(DECIMAL(18,2), @amount),N'VND',1.00,N'1',GETDATE(),
261
						@PAY_AUTO_TRN_DESC_DETAIL,'admin','admin')
262

    
263
			-- CÓ
264
				DECLARE @l_TR_REQ_PAY_ENTRIES_C VARCHAR(15);
265
				EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_ENTRIES', @l_TR_REQ_PAY_ENTRIES_C OUT;
266
				INSERT INTO [TR_REQ_PAY_ENTRIES] ([REQ_PAY_DT_ID],[REQ_PAY_ID],[FUNCTION_TYPE],[TRN_TYPE],[REF_ID],
267
				[ENTRY_PAIR],[DR_CR],[DR_CR_NAME],
268
				[ACCT],[ACCT_NAME],[BRANCH_ID],[DEP_ID],
269
				[AMT],[CURRENCY],[EXC_RATE],[TRN_DATE],[TRN_DESC],
270
				[MAKER_ID],[CREATE_DT],[AUTH_STATUS],[CHECKER_ID],[APPROVE_DT],[MAKER_ID_KT],[CREATE_DT_KT],[AUTH_STATUS_KT],[CHECKER_ID_KT],[APPROVE_DT_KT],[RECORD_STATUS],[IS_TRANSFER_EXTERNAL])
271
				VALUES(@l_TR_REQ_PAY_ENTRIES_C, @REQ_PAY_ID,NULL,'PAYMENT',NULL,
272
				'2',N'C',N'Có',
273
				@partnerAccount, @partner,N'DV0001',N'',
274
				CONVERT(DECIMAL(18,2), @amount),N'VND',1.00,GETDATE(),@PAY_AUTO_TRN_DESC_DETAIL,
275
				'admin',GETDATE(),'A','admin', GETDATE(),'admin',GETDATE(),'A','admin',GETDATE(),'1',NULL)
276

    
277
				DECLARE @l_PAY_ENTRIES_POST_C VARCHAR(15);
278
				EXEC SYS_CodeMasters_Gen 'PAY_ENTRIES_POST', @l_PAY_ENTRIES_POST_C OUT;
279
				INSERT INTO [PAY_ENTRIES_POST] ([ET_ID],[REF_NO],[TRN_ID],[REF_ID],[TRN_TYPE],
280
							[ENTRY_PAIR],[DO_BRN],[DRCR],[ACCT],[BRN_ID],[DEPT_ID],
281
							[AMT],[CURRENCY],[EXC_RATE],[EXP_TO_CORE],[TRN_DATE],[TRN_DESC],[MAKER_ID],[CHECKER_ID])
282
				VALUES	(@l_PAY_ENTRIES_POST_C, @coreXref, @REQ_PAY_ID,@l_TR_REQ_PAY_ENTRIES_C,'PAYMENT',
283
						'2',N'DV0001',N'C',
284
						@partnerAccount,N'DV0001',N'',
285
						CONVERT(DECIMAL(18,2), @amount),N'VND',1.00,N'1',GETDATE(),
286
						@PAY_AUTO_TRN_DESC_DETAIL, 'admin', 'admin')
287

    
288
			-- Mỗi lần chỉ quét 1 bill hợp lệ
289
			CLOSE XmlAutoRecurring;
290
			DEALLOCATE XmlAutoRecurring;
291
			COMMIT TRANSACTION
292
			SELECT '0' as Result, @list_req_payment LIST_REQ_PAYMENT, N'Quét bill thành công!' ErrorDesc
293
			RETURN '0'
294

    
295
		END
296
		
297
	IF @@error<>0 GOTO ABORT;
298
	FETCH NEXT FROM XmlAutoRecurring INTO @billRef, @billCode, @customerName, @amount, @accountNo, @accountType, @createdTime,
299
	@partner, @resultCode, @resultDesc, @transDesc, @coreXref, @partnerAccount, @month
300
	END;
301
	CLOSE XmlAutoRecurring;
302
	DEALLOCATE XmlAutoRecurring;
303
	
304
COMMIT TRANSACTION
305

    
306
SELECT '0' as Result, @list_req_payment LIST_REQ_PAYMENT, N'Quét bill thành công!' ErrorDesc
307
RETURN '0'
308

    
309
ABORT:
310
BEGIN
311
	ROLLBACK TRANSACTION
312
	SELECT '-1' as Result, @list_req_payment LIST_REQ_PAYMENT, N'Lỗi không xác định' ErrorDesc
313
	RETURN '-1'
314
End
315

    
316
GO
317

    
318

    
319
ALTER PROC [dbo].[TR_REQ_PAY_AUTO_GET_BILL_EFFECTIVE_TYPE_B]
320
@p_REQ_PAY_AUTO_TYPE varchar(20) = NULL
321
AS
322
BEGIN	
323
	SELECT --B.CUSTOMER_CODE AS customerNo, 
324
	B.BILLCODE AS billCode, 
325
	B.PRVCODE AS prvCode, 
326
	B.SEVCODE AS sevCode, 
327
	--'01' +'/' + '01' +'/'+ CONVERT(VARCHAR,YEAR(GETDATE()),4) AS fromDate, 
328
	'20/02/2020' AS fromDate, 
329
	'00025464' AS customerNo
330
	FROM TR_REQ_PAYMENT_AUTO A
331
	LEFT JOIN TR_REQ_PAY_AUTO_RECURRING B ON A.REQ_PAY_AUTO_ID = B.REQ_PAY_AUTO_ID
332
	WHERE A.REQ_PAY_AUTO_TYPE = 'B' 
333
	AND A.AUTH_STATUS_KT = 'A' 
334
	AND A.RECORD_STATUS = '1' 
335
	AND A.REQ_PAY_AUTO_STATUS = 'EFFECTIVE'
336
	AND A.CONTRACT_ID IS NOT NULL
337
	AND B.IS_REGISTER = '1'
338
	AND ISNULL(B.BILLID, '') <> ''
339
END