Project

General

Profile

1.0.12.03.2025 BVBANK CAP NHAT QUET HOA DON.txt

Luc Tran Van, 03/12/2025 11:48 AM

 
1
SET QUOTED_IDENTIFIER ON
2
SET ANSI_NULLS ON
3
GO
4
ALTER PROCEDURE [dbo].[TR_REQ_PAY_AUTO_CREATE_REQ_PAYMENT_FROM_SYSTEM_INVOICE]
5
@p_XMP_RECURRING XML
6
AS
7
BEGIN TRANSACTION
8

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

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

    
23
--- DUYET QUA TUNG KY THANH TOAN
24
	FETCH NEXT FROM XmlAutoRecurring INTO @billRef, @billCode, @customerName, @amount, @accountNo, @accountType, @createdTime,
25
	@partner, @resultCode, @resultDesc, @transDesc, @coreXref, @partnerAccount, @month
26
	WHILE @@fetch_status=0 
27
	BEGIN
28
		-- LUU LOG KY THANH TOAN
29
		INSERT INTO TR_REQ_PAY_AUTO_RECURRING_LOG(billRef, billCode, customerName, amount, accountNo, accountType, createdTime,
30
		[partner], resultCode, resultDesc, transDesc, coreXref, partnerAccount, MAKER_ID, CREATE_DT)
31
		VALUES (@billRef, @billCode, @customerName, @amount, @accountNo, @accountType, CONVERT(DATE, @createdTime, 103),
32
		@partner, @resultCode, @resultDesc, @transDesc, @coreXref, @partnerAccount, 'admin', GETDATE())
33

    
34
		IF(@resultCode NOT IN ('00', '100', '1'))
35
		BEGIN
36
			PRINT 'KY THANH TOAN KHONG HOP LE' + @billRef
37
			-- THEM VAO LOG CAC KY THANH TOAN LOI
38
		END
39
		ELSE IF(@resultCode = '1' AND @billRef NOT IN ('P24289176423','P25063895850')) -- Cac @billRef nằm trong NOT IN da doi soat xong --> cho qua
40
		--NGUYENTD ANH ĐOANPTT THÊM P25063895850 12.03.2025 
41
		BEGIN
42
			PRINT 'CAC TRUONG HOP DAC BIET NHUNG KHONG DU DIEU KIEN' + @billRef
43
		END
44
		ELSE IF(@accountType <> 'A')
45
		BEGIN
46
			PRINT 'KHONG PHAI THANH TOAN BANG THE' + @billRef
47
		END
48
		ELSE IF(EXISTS(SELECT * FROM TR_REQ_PAY_AUTO_RECURRING_HISTORY WHERE billRef = @billRef AND @billCode = billCode AND @coreXref = coreXref))
49
		BEGIN
50
			PRINT 'KY THANH TOAN DA TON TAI TRONG HE THONG - DA THUC HIEN THANH TOAN TREN AMS: ' + @billRef
51
		END
52
		ELSE IF(NOT EXISTS(SELECT * FROM TR_REQ_PAY_AUTO_RECURRING WHERE BILLCODE = @billCode))
53
		BEGIN
54
			PRINT 'KHONG CO BILLCODE TRONG HE THONG AMS: ' + @billCode
55
		END
56
		ELSE IF(NOT EXISTS	(SELECT *	FROM TR_REQ_PAY_AUTO_RECURRING A
57
										LEFT JOIN TR_REQ_PAYMENT_AUTO B ON A.REQ_PAY_AUTO_ID = B.REQ_PAY_AUTO_ID 
58
										WHERE 1=1 
59
										AND A.BILLCODE = @billCode
60
										AND B.AUTH_STATUS_KT = 'A'
61
										AND B.REQ_PAY_AUTO_STATUS = 'EFFECTIVE'
62
										AND B.RECORD_STATUS = '1' 
63
										AND B.CONTRACT_ID IS NOT NULL
64
										AND ISNULL(A.BILLID, '') <> ''
65
							)
66
				)
67
		BEGIN
68
			PRINT 'KHONG CO PHIEU YEU CAU THANH TOAN TU DONG TRONG HE THONG AMS: ' + @billCode
69
		END
70
		ELSE
71
		BEGIN
72
			DECLARE @REQ_PAY_ID VARCHAR(20), @REQ_PAY_CODE VARCHAR(20), @CONTRACT_ID VARCHAR(20), @CONTRACT_CODE VARCHAR(20), @CONTRACT_NAME NVARCHAR(500),
73
			@BRANCH_ID NVARCHAR(20), @REQ_PAY_AUTO_SERVICE_TYPE VARCHAR(50), @REQ_PAY_AUTO_SERVICE_TYPE_NAME NVARCHAR(200), @DEP_ID VARCHAR(20), @BRANCH_CREATE VARCHAR(20), 
74
			@REQ_PAY_AUTO_ID VARCHAR(20), @TRANSFER_USER_RECEIVE VARCHAR(20), @TRANS_GLCODE VARCHAR(20), @TRANS_GLNAME NVARCHAR(500)
75
			
76
			PRINT 'GET DATA BILLCODE'
77
			-- LAY DATA CUA BILLCODE DANG KY TRONG AMS
78
			SELECT TOP 1 @CONTRACT_ID = B.CONTRACT_ID, @CONTRACT_CODE = E.CONTRACT_CODE, @CONTRACT_NAME = E.[CONTRACT_NAME], 
79
			@BRANCH_ID = B.BRANCH_ID, @REQ_PAY_AUTO_SERVICE_TYPE = B.REQ_PAY_AUTO_SERVICE_TYPE, @REQ_PAY_AUTO_SERVICE_TYPE_NAME = D.CONTENT, @DEP_ID = B.DEP_ID, 
80
			@BRANCH_CREATE = B.BRANCH_CREATE, @REQ_PAY_AUTO_ID = B.REQ_PAY_AUTO_ID, @TRANSFER_USER_RECEIVE = B.TRANSFER_USER_RECEIVE, 
81
			@TRANS_GLCODE = A.TRANS_GLCODE, @TRANS_GLNAME = A.TRANS_GLNAME
82
			FROM TR_REQ_PAY_AUTO_RECURRING A
83
			LEFT JOIN TR_REQ_PAYMENT_AUTO B ON A.REQ_PAY_AUTO_ID = B.REQ_PAY_AUTO_ID
84
			LEFT JOIN CM_BRANCH C ON B.BRANCH_ID = C.BRANCH_ID
85
			LEFT JOIN CM_ALLCODE D ON B.REQ_PAY_AUTO_SERVICE_TYPE = D.CDVAL AND D.CDNAME = 'PAY_SER_AUTO' AND CDTYPE = 'REQ_AUTO'
86
			LEFT JOIN TR_CONTRACT E ON B.CONTRACT_ID = E.CONTRACT_ID
87
			WHERE 1=1 
88
			AND A.BILLCODE = @billCode
89
			AND B.AUTH_STATUS_KT = 'A'
90
			AND B.REQ_PAY_AUTO_STATUS = 'EFFECTIVE'
91
			AND B.RECORD_STATUS = '1' 
92
			AND B.CONTRACT_ID IS NOT NULL
93
			AND ISNULL(A.BILLID, '') <> ''
94

    
95
			PRINT 'LUU LOG KY THANH TOAN'
96
			print @createdTime
97
			-- LUU LOG KY THANH TOAN
98
			INSERT INTO TR_REQ_PAY_AUTO_RECURRING_HISTORY(billRef, billCode, customerName, amount, accountNo, accountType, createdTime,
99
			[partner], resultCode, resultDesc, transDesc, coreXref, partnerAccount, MAKER_ID, CREATE_DT)
100
			VALUES (@billRef, @billCode, @customerName, @amount, @accountNo, @accountType, CONVERT(DATE, @createdTime, 103),
101
			@partner, @resultCode, @resultDesc, @transDesc, @coreXref, @partnerAccount, 'admin', GETDATE())
102

    
103
			-------------------- BEGIN TAO PHIEU DE NGHI THANH TOAN TU DONG ----------------------------------
104

    
105
			-- BEGIN KHOI TAO GIA TRI
106
			-- ID PDN THANH TOAN
107
			PRINT 'GEN ID PDN THANH TOAN'
108
			EXEC [dbo].[PAY_CODE_GenKey] 'TR_REQ_PAYMENT', '','', @REQ_PAY_CODE out
109
			IF EXISTS(SELECT * FROM TR_REQ_PAYMENT WHERE REQ_PAY_CODE  = @REQ_PAY_CODE )
110
			BEGIN
111
				ROLLBACK TRANSACTION
112
				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
113
				RETURN '-1'
114
			END
115
			PRINT 'GEN MA CODE PDN THANH TOAN'
116
			-- MA CODE PDN THANH TOAN
117
			EXEC SYS_CodeMasters_Gen 'TR_REQ_PAYMENT', @REQ_PAY_ID out
118
			IF @REQ_PAY_ID='' OR @REQ_PAY_ID IS NULL GOTO ABORT
119
			PRINT 'GET DON VI QUAN LY HOP DONG'
120
			DECLARE @BRANCH_MANAGE_ID NVARCHAR(250) =	(	SELECT TOP 1 BRANCH_ID 
121
															FROM CM_BRANCH 
122
															WHERE BRANCH_ID = (	SELECT TOP 1 BRANCH_ID FROM TR_CONTRACT WHERE CONTRACT_ID = @CONTRACT_ID)
123
														)
124
			
125
			DECLARE @BRANCH_MANAGE_NAME NVARCHAR(250) = (	SELECT TOP 1 BRANCH_NAME 
126
															FROM CM_BRANCH 
127
															WHERE BRANCH_ID = (	SELECT TOP 1 BRANCH_ID FROM TR_CONTRACT WHERE CONTRACT_ID = @CONTRACT_ID)
128
														)
129

    
130
			-- NOI DUNG THANH TOAN, DUNG CHO NHIEU TABLE
131
			DECLARE @PAY_AUTO_DESC_DETAIL NVARCHAR(1000) = ''
132
			DECLARE @PAY_AUTO_TRN_DESC_DETAIL VARCHAR(1000) = ''
133

    
134
			DECLARE @l_Month VARCHAR(2), @l_Year VARCHAR(4)
135
			-- NEU LA DIEN HOAC NUOC: t; DIEN THOAI HOAC INTERNET: t-1
136
			IF(ISNULL(@REQ_PAY_AUTO_SERVICE_TYPE, '') = 'WATER')
137
			BEGIN
138
				SET @l_Month =  RIGHT('0' + CAST(DATEPART(MM, GETDATE()) AS VARCHAR(2)), 2);
139
				SET @l_Year =  RIGHT(YEAR(GETDATE()), 4);
140
			END
141
			ELSE
142
			BEGIN
143
				SET @l_Month =  RIGHT('0' + CAST(DATEPART(MM, DATEADD(MONTH, -1, GETDATE())) AS VARCHAR(2)), 2);
144
				SET @l_Year =  RIGHT(YEAR(DATEADD(MONTH, -1, GETDATE())), 4);
145
			END
146

    
147
			IF(ISNULL(@month, '') = '')
148
			BEGIN
149
				PRINT 'HOP DONG KHONG CO MA CODE: ' + @PAY_AUTO_DESC_DETAIL
150
				SET @month = @l_Month + '/' + @l_Year
151
				SET @PAY_AUTO_DESC_DETAIL = @BRANCH_MANAGE_NAME + N' thanh toán chi phí ' + @REQ_PAY_AUTO_SERVICE_TYPE_NAME + ' ' + @l_Month + '/' + @l_Year + N' theo GDNTT số ' + @REQ_PAY_CODE
152
				SET @PAY_AUTO_TRN_DESC_DETAIL = UPPER(dbo.fChuyenCoDauThanhKhongDau(@BRANCH_MANAGE_NAME + N' thanh toán chi phí ' + @REQ_PAY_AUTO_SERVICE_TYPE_NAME + ' ' + @l_Month + '/' + @l_Year + N' theo GDNTT số ' + @REQ_PAY_CODE))
153
			END
154
			ELSE
155
			BEGIN
156
				PRINT 'HOP DONG CO MA CODE: ' + @PAY_AUTO_DESC_DETAIL
157
				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
158
				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))
159
			END
160

    
161
			-- END KHOI TAO GIA TRI
162
			PRINT 'TAO PHIEU DE NGHI THANH TOAN'
163
			INSERT INTO [dbo].[TR_REQ_PAYMENT]
164
			(REQ_PAY_ID, REQ_PAY_CODE, BRANCH_ID, DEP_ID, REQ_REASON, REQ_TYPE, 
165
			REQ_ENTRIES, REQ_DESCRIPTION, REF_ID, PAY_PHASE, RECEIVER_PO, --NULL
166
			REQ_PAY_TYPE, REQ_DT, REQ_TYPE_CURRENCY, REQ_AMT, REQ_TEMP_AMT, 
167
			MAKER_ID, CREATE_DT, EDITOR_ID, AUTH_STATUS, CHECKER_ID, APPROVE_DT, --HC
168
			CREATE_DT_KT, MAKER_ID_KT, AUTH_STATUS_KT, CHECKER_ID_KT, APPROVE_DT_KT, CONFIRM_NOTE, --KT
169
			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, TR_REQ_PAY_AUTO_CHECK_STATUS)
170
			VALUES
171
			(@REQ_PAY_ID, @REQ_PAY_CODE, @BRANCH_ID, @DEP_ID, @PAY_AUTO_DESC_DETAIL, 'P', 
172
			NULL, NULL,  NULL, NULL, NULL,  --NULL
173
			'1', GETDATE(), 'VND', @amount, NULL, 
174
			'admin', GETDATE(), NULL, 'A', 'admin', GETDATE(),  --HC
175
			GETDATE(), 'admin', 'A', 'admin', GETDATE(), NULL, --KT
176
			@BRANCH_CREATE, NULL, '1', 'admin', GETDATE(), NULL, '0', 1, 'Y', NULL, 'Y', 'B', @billRef, 'N', 'U')
177
			PRINT 'TAO LUOI PDN THANH TOAN CHO PYC TTTD'
178
			-- TẠO LƯỚI PHIEU DE NGHI THANH TOAN CHO PYC
179
			INSERT INTO [dbo].[TR_REQ_PAY_AUTO_PAYMENTS]
180
			(REQ_PAY_AUTO_ID, REQ_PAY_ID, REQ_PAY_CODE, BRANCH_ID, DEP_ID, REQ_REASON, REQ_TYPE, 
181
			REQ_ENTRIES, REQ_DESCRIPTION, REF_ID, PAY_PHASE, RECEIVER_PO, --NULL
182
			REQ_PAY_TYPE, REQ_DT, REQ_TYPE_CURRENCY, REQ_AMT, REQ_TEMP_AMT, 
183
			MAKER_ID, CREATE_DT, EDITOR_ID, AUTH_STATUS, CHECKER_ID, APPROVE_DT, --HC
184
			CREATE_DT_KT, MAKER_ID_KT, AUTH_STATUS_KT, CHECKER_ID_KT, APPROVE_DT_KT, CONFIRM_NOTE, --KT
185
			BRANCH_CREATE, NOTES, RECORD_STATUS, TRANSFER_MAKER, TRANSFER_DT, TRASFER_USER_RECIVE, PROCESS, RATE, IS_PERIOD, AMT_PAY)
186
			VALUES
187
			(@REQ_PAY_AUTO_ID ,@REQ_PAY_ID, @REQ_PAY_CODE, @BRANCH_ID, @DEP_ID, @PAY_AUTO_DESC_DETAIL, 'P', 
188
			NULL, NULL,  NULL, NULL, NULL,  --NULL
189
			'1', GETDATE(), 'VND', @amount, NULL, 
190
			'admin', GETDATE(), NULL, 'A', 'admin', GETDATE(),  --HC
191
			GETDATE(), 'admin', 'A', 'admin', GETDATE(), NULL, --KT
192
			@BRANCH_CREATE, NULL, '1', 'admin', GETDATE(), NULL, '0', 1, 'Y', NULL)
193
			PRINT 'THEM LICH SU XU LY'
194
			INSERT INTO dbo.PL_PROCESS(REQ_ID,PROCESS_ID,CHECKER_ID,APPROVE_DT,PROCESS_DESC,NOTES)
195
			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')
196

    
197
			
198
			-------------------- END TAO PHIEU DE NGHI THANH TOAN TU DONG ----------------------------------
199

    
200
			-- TẠO LƯỚI THÔNG TIN HỢP ĐỒNG ĐỊNH KỲ
201
			PRINT 'TAO LUOI THONG TIN HDDK'
202
			DECLARE @REQ_PAYDTID_PERIOD VARCHAR(15);
203
			EXEC SYS_CodeMasters_Gen 'TR_REQ_ADVANCE_DT', @REQ_PAYDTID_PERIOD OUT;
204
			IF @REQ_PAYDTID_PERIOD='' OR @REQ_PAYDTID_PERIOD IS NULL GOTO ABORT;
205
			INSERT INTO TR_REQ_ADVANCE_DT (REQ_PAYDTID, REQ_PAY_ID,REF_ID, [TYPE], MAKER_ID, CREATE_DT, IS_CLOSED, REF_TYPE, DELIVERY_DT) 
206
			VALUES(@REQ_PAYDTID_PERIOD, @REQ_PAY_ID, @CONTRACT_ID, 'PAY', 'admin', GETDATE(), 'N', 'C', CONVERT(DATE,NULL,103))
207
			
208
			-- TẠO LƯỚI THÔNG TIN THANH TOÁN HỢP ĐỒNG ĐỊNH KỲ
209
			PRINT 'TAO LUOI THONG TIN THANH TOAN HDDK'
210
			DECLARE @PERIOD_ID VARCHAR(15);
211
			EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_PERIOD', @PERIOD_ID OUT;
212
			IF @PERIOD_ID='' OR @PERIOD_ID IS NULL GOTO ABORT;
213
			INSERT INTO TR_REQ_PAY_PERIOD(PERIOD_ID, REQ_PAY_ID, PAY_TYPE, CONTRACT_ID, PAY_DT_REAL ,OLD_INDEX, NEW_INDEX, AMT_PAY, 
214
			AUTH_STATUS_KT, CURRENCY, RATE, FROM_DATE, TO_DATE,AD_PAY_ID, PROCESS, PARENT_ID, PAY_PHASE, REASON, TYPE_COST,FR_LEVEL , TO_LEVEL)
215
			VALUES (@PERIOD_ID, @REQ_PAY_ID,'PAY', @CONTRACT_ID, NULL, NULL , NULL , @amount, 
216
			'A', 'VND', '1', NULL, NULL, NULL, '1', NULL, @month, @PAY_AUTO_DESC_DETAIL, NULL, NULL, NULL )
217

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

    
220
	-- BEGIN BUT TOAN CHI PHI
221
				PRINT 'BUT TOAN CHI PHI'
222
				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), 
223
				@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),
224
				@CREATE_DT_KT varchar(20), @APPROVE_DT_KT varchar(20), @IS_TRANSFER_EXTERNAL varchar(20), @DEP_ID_ENTRY varchar(20), 
225
				@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), 
226
				@RECORD_STATUS varchar(20)
227
				DECLARE @l_TR_REQ_PAY_ENTRIES_D VARCHAR(15);
228

    
229
				DECLARE @TYPE_BUDGET_ALLOCAITON_ENTRIES VARCHAR(20), @PERCENT_BUDGET_ALLOCAITON_ENTRIES DECIMAL(18,2), @AMT_BUDGET_ALLOCAITON_ENTRIES DECIMAL(18,2)
230

    
231
				DECLARE @RES VARCHAR(10)
232
				DECLARE @TOTAL_CREDIT_AMT DECIMAL(18,0) = @amount;
233
				DECLARE @TAX DECIMAL(18,1) = 0.1
234
				DECLARE @TOTAL_PERCENT DECIMAL(18,2) = 0, @TOTAL_PERCENT_AMT DECIMAL(18,0) = 0;
235
				DECLARE @TOTAL_MONEY DECIMAL(18,2) = 0, @TOTAL_MONEY_AMT DECIMAL(18,0) = (SELECT SUM(ISNULL(AMT_BUDGET_ALLOCAITON, 0)) FROM TR_REQ_PAY_AUTO_ENTRIES);
236
				
237
				-- KHAI BAO CONST
238
				DECLARE @PERCENT_VAT DECIMAL(18,2) = 1.1;
239
				/*
240
				-- NEU LA HOA DON DIEN THI THUE SE LA 8%. VIEC NAY CO HIEU LUC DEN HET NAM 2023
241
				IF	(	(	SELECT TOP 1 ISNULL(B.REQ_PAY_AUTO_SERVICE_TYPE, '')
242
							FROM TR_REQ_PAY_AUTO_RECURRING A
243
							INNER JOIN TR_REQ_PAYMENT_AUTO B ON A.REQ_PAY_AUTO_ID = B.REQ_PAY_AUTO_ID
244
							WHERE A.BILLCODE = @billCode
245
						) = 'ELECTRIC'
246
					)
247
				BEGIN
248
					SET @PERCENT_VAT = 1.08;
249
				END
250
				*/
251

    
252
				-- CO THUE
253
				IF(EXISTS(SELECT * FROM TR_REQ_PAY_AUTO_ENTRIES WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID AND ACCT = '353200002'))
254
				BEGIN
255
				-- SET THUE DUA VAO VAT TREN LUOI HACH TOAN
256
					SET @PERCENT_VAT = 1 + (SELECT TOP 1 VAT FROM TR_REQ_PAY_AUTO_ENTRIES WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID AND ACCT = '353200002')/100
257

    
258
					IF(EXISTS(SELECT * FROM TR_REQ_PAY_AUTO_BUDGET_ALLOCATION WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID AND TYPE_BUDGET_ALLOCAITON = 'PERCENT' AND 1=2))-- THEM DIEU KIEN 1=2 VI CHUC NANG NAY CHUA HOAT DONG
259
					BEGIN
260
						PRINT 'CO THUE, CO PHAN CHIA'
261
					-- CREATE CURSOR CÁC ĐẦU CÓ --> LẤY ĐƯỢC CÁC CẶP BÚT TOÁN
262
						DECLARE cursorEntries_C CURSOR LOCAL FOR 
263
						SELECT REQ_PAY_AUTO_ID, ENTRY_PAIR
264
						FROM TR_REQ_PAY_AUTO_ENTRIES
265
						WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID AND DR_CR = 'C'
266

    
267
						Open cursorEntries_C
268
						FETCH NEXT FROM cursorEntries_C INTO @REQ_PAY_AUTO_ID, @ENTRY_PAIR
269
						WHILE @@FETCH_STATUS = 0
270
						BEGIN
271
						-- BEGIN CHẠY TỪNG CẶP BÚT TOÁN
272
							DECLARE cursorEntries CURSOR LOCAL FOR 
273
							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,
274
							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,
275
							IS_TRANSFER_EXTERNAL, TYPE_BUDGET_ALLOCAITON, PERCENT_BUDGET_ALLOCAITON, AMT_BUDGET_ALLOCAITON
276
							FROM TR_REQ_PAY_AUTO_ENTRIES
277
							WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID AND ENTRY_PAIR = @ENTRY_PAIR
278

    
279
							Open cursorEntries
280
							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,
281
							@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, 
282
							@IS_TRANSFER_EXTERNAL, @TYPE_BUDGET_ALLOCAITON_ENTRIES, @PERCENT_BUDGET_ALLOCAITON_ENTRIES, @AMT_BUDGET_ALLOCAITON_ENTRIES
283
							WHILE @@FETCH_STATUS = 0
284
							BEGIN
285

    
286
								EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_ENTRIES', @l_TR_REQ_PAY_ENTRIES_D OUT;
287
								IF @l_TR_REQ_PAY_ENTRIES_D='' OR @l_TR_REQ_PAY_ENTRIES_D IS NULL GOTO ABORT;
288
								SET @PERCENT_BUDGET_ALLOCAITON_ENTRIES = (SELECT TOP 1 ISNULL(PERCENT_BUDGET_ALLOCAITON, 0) FROM TR_REQ_PAY_AUTO_ENTRIES WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID AND ENTRY_PAIR = @ENTRY_PAIR AND ACCT <> '353200002')
289

    
290
								IF(@DR_CR = 'D')
291
								BEGIN
292
									IF(ISNULL(@TOTAL_PERCENT, 0) + ISNULL(@PERCENT_BUDGET_ALLOCAITON_ENTRIES, 0) = 100)
293
									BEGIN
294
										PRINT 'DONG NO CUOI'
295
										DECLARE @A_CREDIT_AMT DECIMAL(18,0) = @amount - @TOTAL_PERCENT_AMT
296
										DECLARE @A_DEBIT_AMT DECIMAL(18,0) = @A_CREDIT_AMT/@PERCENT_VAT
297
										DECLARE @A_3532_AMT DECIMAL(18,0) = @A_CREDIT_AMT - @A_DEBIT_AMT
298
										print '@A_CREDIT_AMT: ' + CONVERT(VARCHAR(15),@A_CREDIT_AMT) 
299
										print '@A_DEBIT_AMT: ' + CONVERT(VARCHAR(15),@A_DEBIT_AMT) 
300
										print '@A_3532_AMT: ' + CONVERT(VARCHAR(15),@A_3532_AMT) 
301

    
302
										IF(ISNULL(@ACCT, '') = '353200002')
303
										BEGIN
304
											print '@ACCT 3532: ' + @ACCT
305
											print '@A_3532_AMT 3532: ' + CONVERT(VARCHAR(15),@A_3532_AMT) 
306
											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],
307
											[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])
308
											VALUES (@l_TR_REQ_PAY_ENTRIES_D, @REQ_PAY_ID, @FUNCTION_TYPE, @TRN_TYPE, @REF_ID, @ENTRY_PAIR, @DR_CR, @DR_CR_NAME, @ACCT, @ACCT_NAME, @BRANCH_ID, @DEP_ID_ENTRY, @A_3532_AMT, @CURRENCY, @EXC_RATE,
309
											@TRN_DATE, @PAY_AUTO_TRN_DESC_DETAIL, 'admin', @CREATE_DT, @AUTH_STATUS, 'admin', @APPROVE_DT, 'admin', @CREATE_DT_KT, @AUTH_STATUS_KT, 'admin', @APPROVE_DT_KT, @RECORD_STATUS, @IS_TRANSFER_EXTERNAL)
310
										END
311
										ELSE
312
										BEGIN
313
											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],
314
											[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])
315
											VALUES (@l_TR_REQ_PAY_ENTRIES_D, @REQ_PAY_ID, @FUNCTION_TYPE, @TRN_TYPE, @REF_ID, @ENTRY_PAIR, @DR_CR, @DR_CR_NAME, @ACCT, @ACCT_NAME, @BRANCH_ID, @DEP_ID_ENTRY, @A_DEBIT_AMT, @CURRENCY, @EXC_RATE,
316
											@TRN_DATE, @PAY_AUTO_TRN_DESC_DETAIL, 'admin', @CREATE_DT, @AUTH_STATUS, 'admin', @APPROVE_DT, 'admin', @CREATE_DT_KT, @AUTH_STATUS_KT, 'admin', @APPROVE_DT_KT, @RECORD_STATUS, @IS_TRANSFER_EXTERNAL)
317
										END
318
									END
319
									ELSE
320
									BEGIN
321
										PRINT 'CHUA PHAI DONG NO CUOI'
322
										DECLARE @B_CREDIT_AMT DECIMAL(18,0) = CONVERT(DECIMAL, @amount*@PERCENT_BUDGET_ALLOCAITON_ENTRIES/100)
323
										DECLARE @B_DEBIT_AMT DECIMAL(18,0) = @B_CREDIT_AMT/@PERCENT_VAT
324
										DECLARE @B_3532_AMT DECIMAL(18,0) = @B_CREDIT_AMT - @B_DEBIT_AMT
325
										print '@B_CREDIT_AMT: ' + CONVERT(VARCHAR(15),@B_CREDIT_AMT)
326
										print '@B_DEBIT_AMT: ' + CONVERT(VARCHAR(15),@B_DEBIT_AMT)
327
										print '@B_3532_AMT: ' +CONVERT(VARCHAR(15),@B_3532_AMT) 
328

    
329
										IF(ISNULL(@ACCT, '') = '353200002')
330
										BEGIN
331
											print '@ACCT 3532: ' + @ACCT
332
											print '@B_3532_AMT hach toan: ' +CONVERT(VARCHAR(15),@B_3532_AMT) 
333
											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],
334
											[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])
335
											VALUES (@l_TR_REQ_PAY_ENTRIES_D, @REQ_PAY_ID, @FUNCTION_TYPE, @TRN_TYPE, @REF_ID, @ENTRY_PAIR, @DR_CR, @DR_CR_NAME, @ACCT, @ACCT_NAME, @BRANCH_ID, @DEP_ID_ENTRY, @B_3532_AMT, @CURRENCY, @EXC_RATE,
336
											@TRN_DATE, @PAY_AUTO_TRN_DESC_DETAIL, 'admin', @CREATE_DT, @AUTH_STATUS, 'admin', @APPROVE_DT, 'admin', @CREATE_DT_KT, @AUTH_STATUS_KT, 'admin', @APPROVE_DT_KT, @RECORD_STATUS, @IS_TRANSFER_EXTERNAL)
337
										END
338
										ELSE
339
										BEGIN
340
											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],
341
											[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])
342
											VALUES (@l_TR_REQ_PAY_ENTRIES_D, @REQ_PAY_ID, @FUNCTION_TYPE, @TRN_TYPE, @REF_ID, @ENTRY_PAIR, @DR_CR, @DR_CR_NAME, @ACCT, @ACCT_NAME, @BRANCH_ID, @DEP_ID_ENTRY, @B_DEBIT_AMT, @CURRENCY, @EXC_RATE,
343
											@TRN_DATE, @PAY_AUTO_TRN_DESC_DETAIL, 'admin', @CREATE_DT, @AUTH_STATUS, 'admin', @APPROVE_DT, 'admin', @CREATE_DT_KT, @AUTH_STATUS_KT, 'admin', @APPROVE_DT_KT, @RECORD_STATUS, @IS_TRANSFER_EXTERNAL)
344
										END
345
									END
346
								END
347
								ELSE
348
								BEGIN
349
									IF(ISNULL(@TOTAL_PERCENT, 0) + ISNULL(@PERCENT_BUDGET_ALLOCAITON_ENTRIES, 0) = 100)
350
									BEGIN
351
										PRINT 'DONG CO CUOI'
352
										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],
353
										[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])
354
										VALUES (@l_TR_REQ_PAY_ENTRIES_D, @REQ_PAY_ID, @FUNCTION_TYPE, @TRN_TYPE, @REF_ID, @ENTRY_PAIR, @DR_CR, @DR_CR_NAME, @ACCT, @ACCT_NAME, @BRANCH_ID, @DEP_ID_ENTRY, @amount - @TOTAL_PERCENT_AMT, @CURRENCY, @EXC_RATE,
355
										@TRN_DATE, @PAY_AUTO_TRN_DESC_DETAIL, 'admin', @CREATE_DT, @AUTH_STATUS, 'admin', @APPROVE_DT, 'admin', @CREATE_DT_KT, @AUTH_STATUS_KT, 'admin', @APPROVE_DT_KT, @RECORD_STATUS, @IS_TRANSFER_EXTERNAL)
356
									END
357
									ELSE
358
									BEGIN
359
										PRINT 'CHUA PHAI DONG CO CUOI'
360
										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],
361
										[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])
362
										VALUES (@l_TR_REQ_PAY_ENTRIES_D, @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, @amount*@PERCENT_BUDGET_ALLOCAITON_ENTRIES/100), @CURRENCY, @EXC_RATE,
363
										@TRN_DATE, @PAY_AUTO_TRN_DESC_DETAIL, 'admin', @CREATE_DT, @AUTH_STATUS, 'admin', @APPROVE_DT, 'admin', @CREATE_DT_KT, @AUTH_STATUS_KT, 'admin', @APPROVE_DT_KT, @RECORD_STATUS, @IS_TRANSFER_EXTERNAL)
364
									END
365
										
366
								END
367

    
368
							IF @@error<>0 GOTO ABORT;
369
							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,
370
							@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,
371
							@IS_TRANSFER_EXTERNAL, @TYPE_BUDGET_ALLOCAITON_ENTRIES, @PERCENT_BUDGET_ALLOCAITON_ENTRIES, @AMT_BUDGET_ALLOCAITON_ENTRIES
372
							END
373
							CLOSE cursorEntries
374
							DEALLOCATE cursorEntries
375
						-- END CHẠY TỪNG CẶP BÚT TOÁN
376
								
377
							SET @TOTAL_PERCENT = @TOTAL_PERCENT + @PERCENT_BUDGET_ALLOCAITON_ENTRIES;
378
							SET @TOTAL_PERCENT_AMT = @TOTAL_PERCENT_AMT + @amount*@PERCENT_BUDGET_ALLOCAITON_ENTRIES/100
379

    
380
						IF @@error<>0 GOTO ABORT;
381
						FETCH NEXT FROM cursorEntries_C INTO @REQ_PAY_AUTO_ID, @ENTRY_PAIR
382
						END
383
						CLOSE cursorEntries_C
384
						DEALLOCATE cursorEntries_C
385

    
386
							
387
						--- BAN BUT TOAN VAO CORE
388
						EXEC [dbo].[PAY_ENTRIES_POST_SetApp] @REQ_PAY_ID,'admin','admin', @RES OUT
389
					END
390
					ELSE
391
					BEGIN
392
						PRINT 'CO THUE, KHONG PHAN CHIA 2 NO - 1 CO'
393
						DECLARE @DEBIT_AMT_1 DECIMAL(18,0) = @TOTAL_CREDIT_AMT/@PERCENT_VAT
394
						DECLARE @3532_AMT DECIMAL(18,0) = @TOTAL_CREDIT_AMT - @DEBIT_AMT_1
395

    
396
						DECLARE cursorEntries CURSOR LOCAL FOR 
397
						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,
398
						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
399
						FROM TR_REQ_PAY_AUTO_ENTRIES
400
						WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID
401
						Open cursorEntries
402
						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,
403
						@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
404
						WHILE @@FETCH_STATUS = 0
405
						BEGIN
406

    
407
							EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_ENTRIES', @l_TR_REQ_PAY_ENTRIES_D OUT;
408
							IF @l_TR_REQ_PAY_ENTRIES_D='' OR @l_TR_REQ_PAY_ENTRIES_D IS NULL GOTO ABORT;
409

    
410
							IF(@DR_CR = 'D')	-- Nợ
411
							BEGIN
412
								IF(@ACCT = '353200002')
413
								BEGIN
414
									print '3532'
415
									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],
416
									[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])
417
									VALUES (@l_TR_REQ_PAY_ENTRIES_D, @REQ_PAY_ID, @FUNCTION_TYPE, @TRN_TYPE, @REF_ID, '1', @DR_CR, @DR_CR_NAME, @ACCT, @ACCT_NAME, @BRANCH_ID, @DEP_ID_ENTRY, @3532_AMT, @CURRENCY, @EXC_RATE,
418
									@TRN_DATE, @PAY_AUTO_TRN_DESC_DETAIL, 'admin', @CREATE_DT, @AUTH_STATUS, 'admin', @APPROVE_DT, 'admin', @CREATE_DT_KT, @AUTH_STATUS_KT, 'admin', @APPROVE_DT_KT, @RECORD_STATUS, @IS_TRANSFER_EXTERNAL)
419
								END
420
								ELSE
421
								BEGIN
422
									print 'No TKCP'
423
									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],
424
									[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])
425
									VALUES (@l_TR_REQ_PAY_ENTRIES_D, @REQ_PAY_ID, @FUNCTION_TYPE, @TRN_TYPE, @REF_ID, '1', @DR_CR, @DR_CR_NAME, @ACCT, @ACCT_NAME, @BRANCH_ID, @DEP_ID_ENTRY, @DEBIT_AMT_1, @CURRENCY, @EXC_RATE,
426
									@TRN_DATE, @PAY_AUTO_TRN_DESC_DETAIL, 'admin', @CREATE_DT, @AUTH_STATUS, 'admin', @APPROVE_DT, 'admin', @CREATE_DT_KT, @AUTH_STATUS_KT, 'admin', @APPROVE_DT_KT, @RECORD_STATUS, @IS_TRANSFER_EXTERNAL)
427
								END
428
							END
429
							ELSE
430
							BEGIN
431
								print 'Co TKTT'
432
								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],
433
								[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])
434
								VALUES (@l_TR_REQ_PAY_ENTRIES_D, @REQ_PAY_ID, @FUNCTION_TYPE, @TRN_TYPE, @REF_ID, '1', @DR_CR, @DR_CR_NAME, @ACCT, @ACCT_NAME, @BRANCH_ID, @DEP_ID_ENTRY, @amount, @CURRENCY, @EXC_RATE,
435
								@TRN_DATE, @PAY_AUTO_TRN_DESC_DETAIL, 'admin', @CREATE_DT, @AUTH_STATUS, 'admin', @APPROVE_DT, 'admin', @CREATE_DT_KT, @AUTH_STATUS_KT, 'admin', @APPROVE_DT_KT, @RECORD_STATUS, @IS_TRANSFER_EXTERNAL)
436
							END
437

    
438
							
439
						IF @@error<>0 GOTO ABORT;
440
						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,
441
						@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
442
						END
443
						CLOSE cursorEntries
444
						DEALLOCATE cursorEntries
445
						--- BAN BUT TOAN VAO CORE
446
						EXEC [dbo].[PAY_ENTRIES_POST_SetApp] @REQ_PAY_ID,'admin','admin', @RES OUT
447
					END
448
				END
449
				-- KHONG THUE
450
				ELSE	
451
				BEGIN
452
					IF(EXISTS(SELECT * FROM TR_REQ_PAY_AUTO_BUDGET_ALLOCATION WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID))
453
					BEGIN
454
						PRINT 'KHONG THUE, CO PHAN CHIA'
455
						IF(EXISTS(SELECT * FROM TR_REQ_PAY_AUTO_BUDGET_ALLOCATION WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID AND TYPE_BUDGET_ALLOCAITON = 'PERCENT'))
456
						BEGIN
457
							PRINT 'KHONG THUE, CO PHAN CHIA, PHAN CHIA THEO TY LE'
458
						-- CREATE CURSOR CÁC ĐẦU CÓ
459
							DECLARE cursorEntries_C CURSOR LOCAL FOR 
460
							SELECT REQ_PAY_AUTO_ID, ENTRY_PAIR
461
							FROM TR_REQ_PAY_AUTO_ENTRIES
462
							WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID AND DR_CR = 'C'
463

    
464
							Open cursorEntries_C
465
							FETCH NEXT FROM cursorEntries_C INTO @REQ_PAY_AUTO_ID, @ENTRY_PAIR
466
							WHILE @@FETCH_STATUS = 0
467
							BEGIN
468
							-- BEGIN CHẠY TỪNG CẶP BÚT TOÁN
469
								DECLARE cursorEntries CURSOR LOCAL FOR 
470
								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,
471
								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,
472
								IS_TRANSFER_EXTERNAL, TYPE_BUDGET_ALLOCAITON, PERCENT_BUDGET_ALLOCAITON, AMT_BUDGET_ALLOCAITON
473
								FROM TR_REQ_PAY_AUTO_ENTRIES
474
								WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID AND ENTRY_PAIR = @ENTRY_PAIR
475

    
476
								Open cursorEntries
477
								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,
478
								@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, 
479
								@IS_TRANSFER_EXTERNAL, @TYPE_BUDGET_ALLOCAITON_ENTRIES, @PERCENT_BUDGET_ALLOCAITON_ENTRIES, @AMT_BUDGET_ALLOCAITON_ENTRIES
480
								WHILE @@FETCH_STATUS = 0
481
								BEGIN
482

    
483
									EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_ENTRIES', @l_TR_REQ_PAY_ENTRIES_D OUT;
484
									IF @l_TR_REQ_PAY_ENTRIES_D='' OR @l_TR_REQ_PAY_ENTRIES_D IS NULL GOTO ABORT;
485

    
486
									IF(@DR_CR = 'D')
487
									BEGIN
488
										IF(ISNULL(@TOTAL_PERCENT, 0) + ISNULL(@PERCENT_BUDGET_ALLOCAITON_ENTRIES, 0) = 100)
489
										BEGIN
490
											PRINT 'DONG NO CUOI'
491
											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],
492
											[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])
493
											VALUES (@l_TR_REQ_PAY_ENTRIES_D, @REQ_PAY_ID, @FUNCTION_TYPE, @TRN_TYPE, @REF_ID, @ENTRY_PAIR, @DR_CR, @DR_CR_NAME, @ACCT, @ACCT_NAME, @BRANCH_ID, @DEP_ID_ENTRY, @amount - @TOTAL_PERCENT_AMT, @CURRENCY, @EXC_RATE,
494
											@TRN_DATE, @PAY_AUTO_TRN_DESC_DETAIL, 'admin', @CREATE_DT, @AUTH_STATUS, 'admin', @APPROVE_DT, 'admin', @CREATE_DT_KT, @AUTH_STATUS_KT, 'admin', @APPROVE_DT_KT, @RECORD_STATUS, @IS_TRANSFER_EXTERNAL)
495
										END
496
										ELSE
497
										BEGIN
498
											PRINT 'CHUA PHAI DONG NO CUOI'
499

    
500
											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],
501
											[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])
502
											VALUES (@l_TR_REQ_PAY_ENTRIES_D, @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, @amount*@PERCENT_BUDGET_ALLOCAITON_ENTRIES/100), @CURRENCY, @EXC_RATE,
503
											@TRN_DATE, @PAY_AUTO_TRN_DESC_DETAIL, 'admin', @CREATE_DT, @AUTH_STATUS, 'admin', @APPROVE_DT, 'admin', @CREATE_DT_KT, @AUTH_STATUS_KT, 'admin', @APPROVE_DT_KT, @RECORD_STATUS, @IS_TRANSFER_EXTERNAL)
504
										END
505
									END
506
									ELSE
507
									BEGIN
508
										IF(ISNULL(@TOTAL_PERCENT, 0) + ISNULL(@PERCENT_BUDGET_ALLOCAITON_ENTRIES, 0) = 100)
509
										BEGIN
510
											PRINT 'DONG CO CUOI'
511
											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],
512
											[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])
513
											VALUES (@l_TR_REQ_PAY_ENTRIES_D, @REQ_PAY_ID, @FUNCTION_TYPE, @TRN_TYPE, @REF_ID, @ENTRY_PAIR, @DR_CR, @DR_CR_NAME, @ACCT, @ACCT_NAME, @BRANCH_ID, @DEP_ID_ENTRY, @amount - @TOTAL_PERCENT_AMT, @CURRENCY, @EXC_RATE,
514
											@TRN_DATE, @PAY_AUTO_TRN_DESC_DETAIL, 'admin', @CREATE_DT, @AUTH_STATUS, 'admin', @APPROVE_DT, 'admin', @CREATE_DT_KT, @AUTH_STATUS_KT, 'admin', @APPROVE_DT_KT, @RECORD_STATUS, @IS_TRANSFER_EXTERNAL)
515
										END
516
										ELSE
517
										BEGIN
518
											PRINT 'CHUA PHAI DONG CO CUOI'
519
											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],
520
											[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])
521
											VALUES (@l_TR_REQ_PAY_ENTRIES_D, @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, @amount*@PERCENT_BUDGET_ALLOCAITON_ENTRIES/100), @CURRENCY, @EXC_RATE,
522
											@TRN_DATE, @PAY_AUTO_TRN_DESC_DETAIL, 'admin', @CREATE_DT, @AUTH_STATUS, 'admin', @APPROVE_DT, 'admin', @CREATE_DT_KT, @AUTH_STATUS_KT, 'admin', @APPROVE_DT_KT, @RECORD_STATUS, @IS_TRANSFER_EXTERNAL)
523
										END
524
										
525
									END
526

    
527
								IF @@error<>0 GOTO ABORT;
528
								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,
529
								@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,
530
								@IS_TRANSFER_EXTERNAL, @TYPE_BUDGET_ALLOCAITON_ENTRIES, @PERCENT_BUDGET_ALLOCAITON_ENTRIES, @AMT_BUDGET_ALLOCAITON_ENTRIES
531
								END
532
								CLOSE cursorEntries
533
								DEALLOCATE cursorEntries
534
							-- END CHẠY TỪNG CẶP BÚT TOÁN
535
								
536
								SET @TOTAL_PERCENT = @TOTAL_PERCENT + @PERCENT_BUDGET_ALLOCAITON_ENTRIES;
537
								SET @TOTAL_PERCENT_AMT = @TOTAL_PERCENT_AMT + @amount*@PERCENT_BUDGET_ALLOCAITON_ENTRIES/100
538

    
539
							IF @@error<>0 GOTO ABORT;
540
							FETCH NEXT FROM cursorEntries_C INTO @REQ_PAY_AUTO_ID, @ENTRY_PAIR
541
							END
542
							CLOSE cursorEntries_C
543
							DEALLOCATE cursorEntries_C
544

    
545
							
546
							--- BAN BUT TOAN VAO CORE
547
							EXEC [dbo].[PAY_ENTRIES_POST_SetApp] @REQ_PAY_ID,'admin','admin', @RES OUT
548
						END
549
						ELSE
550
						BEGIN
551
							PRINT 'KHONG THUE, CO PHAN CHIA, PHAN CHIA THEO SO TIEN'
552
						END
553
					END
554
					ELSE
555
					BEGIN
556
						PRINT 'KHONG THUE, KHONG PHAN CHIA 1 NO - 1 CO'
557

    
558
						DECLARE cursorEntries CURSOR LOCAL FOR 
559
						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,
560
						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
561
						FROM TR_REQ_PAY_AUTO_ENTRIES
562
						WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID
563
						Open cursorEntries
564
				
565
						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,
566
						@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
567
						WHILE @@FETCH_STATUS = 0
568
						BEGIN
569
							DECLARE @l_TR_REQ_PAY_ENTRIES VARCHAR(15);
570
							EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_ENTRIES', @l_TR_REQ_PAY_ENTRIES OUT;
571
							IF @l_TR_REQ_PAY_ENTRIES='' OR @l_TR_REQ_PAY_ENTRIES IS NULL GOTO ABORT;
572

    
573
							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],
574
							[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])
575
							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,
576
							@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)
577

    
578
						IF @@error<>0 GOTO ABORT;
579
						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,
580
						@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
581
						END
582
						CLOSE cursorEntries
583
						DEALLOCATE cursorEntries
584

    
585
						--- BAN BUT TOAN VAO CORE
586
						EXEC [dbo].[PAY_ENTRIES_POST_SetApp] @REQ_PAY_ID,'admin','admin', @RES OUT 
587
					END
588
				END
589
				
590
	-- END BUT TOAN CHI PHI
591

    
592

    
593

    
594
	-- BEGIN BUT TOAN HE THONG: BUT TOAN SO 0
595
			-- NỢ
596
				EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_ENTRIES', @l_TR_REQ_PAY_ENTRIES_D OUT;
597
				INSERT INTO [TR_REQ_PAY_ENTRIES] ([REQ_PAY_DT_ID],[REQ_PAY_ID],[FUNCTION_TYPE],[TRN_TYPE],[REF_ID],
598
				[ENTRY_PAIR],[DR_CR],[DR_CR_NAME],
599
				[ACCT],[ACCT_NAME],[BRANCH_ID],[DEP_ID],
600
				[AMT],[CURRENCY],[EXC_RATE],[TRN_DATE],[TRN_DESC],
601
				[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])
602
				VALUES(@l_TR_REQ_PAY_ENTRIES_D, @REQ_PAY_ID,NULL,'PAYMENT',NULL,
603
				'0', N'D', N'Nợ',
604
				@accountNo, @customerName, N'DV0001', N'',
605
				CONVERT(DECIMAL(18,2), @amount), N'VND', 1.00, GETDATE(), @transDesc,
606
				'admin',GETDATE(),'A','admin', GETDATE(),'admin',GETDATE(),'A','admin',GETDATE(),'1',NULL)
607

    
608
				DECLARE @l_PAY_ENTRIES_POST_D VARCHAR(15);
609
				EXEC SYS_CodeMasters_Gen 'PAY_ENTRIES_POST', @l_PAY_ENTRIES_POST_D OUT;
610
				INSERT INTO [PAY_ENTRIES_POST] ([ET_ID],[REF_NO],[TRN_ID],[REF_ID],[TRN_TYPE],
611
							[ENTRY_PAIR],[DO_BRN],[DRCR],[ACCT],[BRN_ID],[DEPT_ID],
612
							[AMT],[CURRENCY],[EXC_RATE],[EXP_TO_CORE],[TRN_DATE],[TRN_DESC],[MAKER_ID],[CHECKER_ID])
613
				VALUES	(@l_PAY_ENTRIES_POST_D, @coreXref, @REQ_PAY_ID, @l_TR_REQ_PAY_ENTRIES_D,'PAYMENT',
614
						'0',N'DV0001',N'D',
615
						@accountNo,N'DV0001',N'',
616
						CONVERT(DECIMAL(18,2), @amount),N'VND',1.00,N'1',GETDATE(),
617
						@transDesc,'admin','admin')
618

    
619
			-- CÓ
620
				DECLARE @l_TR_REQ_PAY_ENTRIES_C VARCHAR(15);
621
				EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_ENTRIES', @l_TR_REQ_PAY_ENTRIES_C OUT;
622
				INSERT INTO [TR_REQ_PAY_ENTRIES] ([REQ_PAY_DT_ID],[REQ_PAY_ID],[FUNCTION_TYPE],[TRN_TYPE],[REF_ID],
623
				[ENTRY_PAIR],[DR_CR],[DR_CR_NAME],
624
				[ACCT],[ACCT_NAME],[BRANCH_ID],[DEP_ID],
625
				[AMT],[CURRENCY],[EXC_RATE],[TRN_DATE],[TRN_DESC],
626
				[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])
627
				VALUES(@l_TR_REQ_PAY_ENTRIES_C, @REQ_PAY_ID,NULL,'PAYMENT',NULL,
628
				'0',N'C',N'Có',
629
				@partnerAccount, @partner,N'DV0001',N'',
630
				CONVERT(DECIMAL(18,2), @amount),N'VND',1.00,GETDATE(),@transDesc,
631
				'admin',GETDATE(),'A','admin', GETDATE(),'admin',GETDATE(),'A','admin',GETDATE(),'1',NULL)
632

    
633
				DECLARE @l_PAY_ENTRIES_POST_C VARCHAR(15);
634
				EXEC SYS_CodeMasters_Gen 'PAY_ENTRIES_POST', @l_PAY_ENTRIES_POST_C OUT;
635
				INSERT INTO [PAY_ENTRIES_POST] ([ET_ID],[REF_NO],[TRN_ID],[REF_ID],[TRN_TYPE],
636
							[ENTRY_PAIR],[DO_BRN],[DRCR],[ACCT],[BRN_ID],[DEPT_ID],
637
							[AMT],[CURRENCY],[EXC_RATE],[EXP_TO_CORE],[TRN_DATE],[TRN_DESC],[MAKER_ID],[CHECKER_ID])
638
				VALUES	(@l_PAY_ENTRIES_POST_C, @coreXref, @REQ_PAY_ID,@l_TR_REQ_PAY_ENTRIES_C,'PAYMENT',
639
						'0',N'DV0001',N'C',
640
						@partnerAccount,N'DV0001',N'',
641
						CONVERT(DECIMAL(18,2), @amount),N'VND',1.00,N'1',GETDATE(),
642
						@transDesc, 'admin', 'admin')
643
	-- END BUT TOAN HE THONG: BUT TOAN SO 0
644

    
645
			-- Mỗi lần chỉ quét 1 bill hợp lệ
646
			CLOSE XmlAutoRecurring;
647
			DEALLOCATE XmlAutoRecurring;
648
			COMMIT TRANSACTION
649
			SELECT '0' as Result, @list_req_payment LIST_REQ_PAYMENT, N'Quét bill thành công!' ErrorDesc
650
			RETURN '0'
651

    
652
		END
653
		
654
	IF @@error<>0 GOTO ABORT;
655
	FETCH NEXT FROM XmlAutoRecurring INTO @billRef, @billCode, @customerName, @amount, @accountNo, @accountType, @createdTime,
656
	@partner, @resultCode, @resultDesc, @transDesc, @coreXref, @partnerAccount, @month
657
	END;
658
	CLOSE XmlAutoRecurring;
659
	DEALLOCATE XmlAutoRecurring;
660
	
661
COMMIT TRANSACTION
662

    
663
SELECT '0' as Result, @list_req_payment LIST_REQ_PAYMENT, N'Quét bill thành công!' ErrorDesc
664
RETURN '0'
665

    
666
ABORT:
667
BEGIN
668
	ROLLBACK TRANSACTION
669
	SELECT '-1' as Result, @list_req_payment LIST_REQ_PAYMENT, N'Lỗi không xác định' ErrorDesc
670
	RETURN '-1'
671
End
672
GO
673