Project

General

Profile

script_upd_LIVE_080823.txt

Luc Tran Van, 08/08/2023 12:05 AM

 
1
ALTER PROCEDURE [dbo].[TR_REQ_PAYMENT_AUTO_EDIT_ENTRIES_Search]
2
@p_ENTRY_AUTO_ID		VARCHAR(15)= NULL,
3
@p_REQ_PAY_AUTO_ID		VARCHAR(20)	= NULL,
4
@p_REQ_PAY_AUTO_CODE	VARCHAR(20)	= NULL,
5
@p_MAKER_ID				VARCHAR(15)	= NULL,
6
@p_CREATE_DT			VARCHAR(25)	= NULL,
7
@p_AUTH_STATUS			VARCHAR(1)	= NULL,
8
@p_CHECKER_ID			VARCHAR(15)	= NULL,
9
@p_APPROVE_DT			VARCHAR(25)	= NULL,
10
@p_RECORD_STATUS		VARCHAR(1)	= NULL,
11
@p_TOP					INT = 300,
12
@p_LEVEL				VARCHAR(10) = NULL,
13
@p_FROM_DATE			VARCHAR(20)= NULL,
14
@p_TO_DATE				VARCHAR(20) = NULL,
15
@p_USER_LOGIN			VARCHAR(15)= NULL
16
AS
17
BEGIN -- PAGING
18

    
19
	IF(@p_TOP IS NULL OR @p_TOP=0)
20
	BEGIN
21
	-- PAGING BEGIN
22
		SELECT A.*, B.REQ_PAY_AUTO_CODE, ALLCODE.CONTENT AS AUTH_STATUS_NAME, TL1.TLFullName AS CREATE_FULL_NAME, TL2.TLFullName AS APPROVE_FULL_NAME,
23
		B.REQ_PAY_AUTO_TYPE, B.REQ_PAY_AUTO_STATUS, B.REQ_PAY_AUTO_EFFECTIVE_DT, B.CREATE_DT AS CREATE_DT_PAYMENT_AUTO, B.TRANSFER_USER_RECEIVE, B.CONFIRM_NOTE, B.CONTRACT_ID, B.REQ_PAY_AUTO_SERVICE_TYPE, B.NOTIFI_EXPIRED_DT,
24
		-- Thong tin PYC
25
		TL3.TLFullName AS MAKER_NAME, B.CREATE_DT AS CREATE_PAYMENT_AUTO_DT, BR.BRANCH_NAME AS BRANCH_NAME, DEP.DEP_NAME AS DEP_NAME, TL4.TLFullName AS TRANSFER_USER_RECEIVE_NAME, C.CONTRACT_CODE, C.[CONTRACT_NAME]
26
		-- SELECT END
27
		FROM TR_REQ_PAYMENT_AUTO_EDIT_ENTRIES A
28
		INNER JOIN TR_REQ_PAYMENT_AUTO B ON A.REQ_PAY_AUTO_ID = B.REQ_PAY_AUTO_ID
29
		LEFT JOIN CM_ALLCODE ALLCODE ON A.AUTH_STATUS = ALLCODE.CDVAL AND ALLCODE.CDNAME = 'AUTH_STATUS' AND ALLCODE.CDTYPE = 'TR_PO'
30
		LEFT JOIN TL_USER TL1 ON A.MAKER_ID = TL1.TLNANME
31
		LEFT JOIN TL_USER TL2 ON A.CHECKER_ID = TL2.TLNANME
32
		-- Thong tin PYC
33
		LEFT JOIN TL_USER TL3 ON B.MAKER_ID = TL3.TLNANME
34
		LEFT JOIN CM_BRANCH BR ON B.BRANCH_ID = BR.BRANCH_ID
35
		LEFT JOIN CM_DEPARTMENT DEP ON B.DEP_ID = DEP.DEP_ID
36
		LEFT JOIN TL_USER TL4 ON B.TRANSFER_USER_RECEIVE = TL4.TLNANME
37
		LEFT JOIN TR_CONTRACT C ON B.CONTRACT_ID = C.CONTRACT_ID
38
			
39
		WHERE 1=1 
40
		AND (A.ENTRY_AUTO_ID = @p_ENTRY_AUTO_ID OR ISNULL(@p_ENTRY_AUTO_ID, '') = '')
41
		AND (A.AUTH_STATUS = @p_AUTH_STATUS OR ISNULL(@p_AUTH_STATUS, '') = '')
42
		AND (B.REQ_PAY_AUTO_CODE LIKE '%' + @p_REQ_PAY_AUTO_CODE +'%' OR ISNULL(@p_REQ_PAY_AUTO_CODE, '') = '')
43
		AND(CONVERT(DATE, A.CREATE_DT) >= CONVERT(DATE, @p_FROM_DATE, 103) OR ISNULL(@p_FROM_DATE, '') = '')
44
		AND(CONVERT(DATE, A.CREATE_DT) <= CONVERT(DATE, @p_TO_DATE, 103) OR ISNULL(@p_TO_DATE, '') = '')
45
				  
46
		ORDER BY A.CREATE_DT DESC
47
	-- PAGING END
48
	END;
49
    ELSE 
50
	BEGIN
51
	-- PAGING BEGIN
52
        SELECT TOP(CONVERT(INT,@p_TOP)) A.*, B.REQ_PAY_AUTO_CODE, ALLCODE.CONTENT AS AUTH_STATUS_NAME, TL1.TLFullName AS CREATE_FULL_NAME, TL2.TLFullName AS APPROVE_FULL_NAME,
53
		B.REQ_PAY_AUTO_TYPE, B.REQ_PAY_AUTO_STATUS, B.REQ_PAY_AUTO_EFFECTIVE_DT, B.CREATE_DT AS CREATE_DT_PAYMENT_AUTO, B.TRANSFER_USER_RECEIVE, B.CONFIRM_NOTE, B.CONTRACT_ID, B.REQ_PAY_AUTO_SERVICE_TYPE, B.NOTIFI_EXPIRED_DT,
54
		-- Thong tin PYC
55
		TL3.TLFullName AS MAKER_NAME, B.CREATE_DT AS CREATE_PAYMENT_AUTO_DT, BR.BRANCH_NAME AS BRANCH_NAME, DEP.DEP_NAME AS DEP_NAME, TL4.TLFullName AS TRANSFER_USER_RECEIVE_NAME, C.CONTRACT_CODE, C.[CONTRACT_NAME]
56
		-- SELECT END
57
		FROM TR_REQ_PAYMENT_AUTO_EDIT_ENTRIES A
58
		INNER JOIN TR_REQ_PAYMENT_AUTO B ON A.REQ_PAY_AUTO_ID = B.REQ_PAY_AUTO_ID
59
		LEFT JOIN CM_ALLCODE ALLCODE ON A.AUTH_STATUS = ALLCODE.CDVAL AND ALLCODE.CDNAME = 'AUTH_STATUS' AND ALLCODE.CDTYPE = 'TR_PO'
60
		LEFT JOIN TL_USER TL1 ON A.MAKER_ID = TL1.TLNANME
61
		LEFT JOIN TL_USER TL2 ON A.CHECKER_ID = TL2.TLNANME
62
		-- Thong tin PYC
63
		LEFT JOIN TL_USER TL3 ON B.MAKER_ID = TL3.TLNANME
64
		LEFT JOIN CM_BRANCH BR ON B.BRANCH_ID = BR.BRANCH_ID
65
		LEFT JOIN CM_DEPARTMENT DEP ON B.DEP_ID = DEP.DEP_ID
66
		LEFT JOIN TL_USER TL4 ON B.TRANSFER_USER_RECEIVE = TL4.TLNANME
67
		LEFT JOIN TR_CONTRACT C ON B.CONTRACT_ID = C.CONTRACT_ID
68
			
69
		WHERE 1=1 
70
		AND (A.ENTRY_AUTO_ID = @p_ENTRY_AUTO_ID OR ISNULL(@p_ENTRY_AUTO_ID, '') = '')
71
		AND (A.AUTH_STATUS = @p_AUTH_STATUS OR ISNULL(@p_AUTH_STATUS, '') = '')
72
		AND (B.REQ_PAY_AUTO_CODE LIKE '%' + @p_REQ_PAY_AUTO_CODE +'%' OR ISNULL(@p_REQ_PAY_AUTO_CODE, '') = '')
73
		AND(CONVERT(DATE, A.CREATE_DT) >= CONVERT(DATE, @p_FROM_DATE, 103) OR ISNULL(@p_FROM_DATE, '') = '')
74
		AND(CONVERT(DATE, A.CREATE_DT) <= CONVERT(DATE, @p_TO_DATE, 103) OR ISNULL(@p_TO_DATE, '') = '')
75
				  
76
		ORDER BY A.CREATE_DT DESC
77
	-- PAGING END
78
    END;
79
END -- PAGING
80

    
81
GO
82

    
83
ALTER PROCEDURE [dbo].[TR_REQ_PAY_AUTO_CREATE_REQ_PAYMENT_FROM_SYSTEM_INVOICE]
84
@p_XMP_RECURRING XML
85
AS
86
BEGIN TRANSACTION
87

    
88
	DECLARE @list_req_payment NVARCHAR(MAX) = ''
89
-- DS CAC KY DA THANH TOAN
90
	DECLARE @billRef VARCHAR(20), @billCode VARCHAR(20), @customerName NVARCHAR(MAX), @amount VARCHAR(20), @accountNo VARCHAR(20), @accountType VARCHAR(20), 
91
	@createdTime VARCHAR(21), @partner VARCHAR(20), @resultCode VARCHAR(20), @resultDesc NVARCHAR(MAX), @transDesc NVARCHAR(MAX), @coreXref VARCHAR(20), @partnerAccount VARCHAR(20), 
92
	@billCodeAlias VARCHAR(20), @prvCode VARCHAR(20), @sevCode VARCHAR(20), @year VARCHAR(20), @customerAddress VARCHAR(20), @month VARCHAR(20), 
93
	@accountName VARCHAR(20), @accountNoRec VARCHAR(20), @accountNameRec VARCHAR(20), @billDate VARCHAR(20)
94

    
95
	DECLARE @hDocRecurring INT EXEC sp_xml_preparedocument @hDocRecurring OUTPUT, @p_XMP_RECURRING;
96
	DECLARE XmlAutoRecurring CURSOR LOCAL FOR
97
	SELECT * FROM OPENXML(@hDocRecurring, 'Root/XmlAutoRecurring',2) 
98
	WITH(billRef VARCHAR(20), billCode VARCHAR(20), customerName NVARCHAR(MAX), amount VARCHAR(20), accountNo VARCHAR(20), accountType VARCHAR(20), createdTime VARCHAR(30),
99
	[partner] VARCHAR(20), resultCode VARCHAR(20), resultDesc NVARCHAR(MAX), transDesc NVARCHAR(MAX), coreXref VARCHAR(20), partnerAccount VARCHAR(20), [month] VARCHAR(20))
100
	OPEN XmlAutoRecurring
101

    
102
--- DUYET QUA TUNG KY THANH TOAN
103
	FETCH NEXT FROM XmlAutoRecurring INTO @billRef, @billCode, @customerName, @amount, @accountNo, @accountType, @createdTime,
104
	@partner, @resultCode, @resultDesc, @transDesc, @coreXref, @partnerAccount, @month
105
	WHILE @@fetch_status=0 
106
	BEGIN
107
		-- LUU LOG KY THANH TOAN
108
		INSERT INTO TR_REQ_PAY_AUTO_RECURRING_LOG(billRef, billCode, customerName, amount, accountNo, accountType, createdTime,
109
		[partner], resultCode, resultDesc, transDesc, coreXref, partnerAccount, MAKER_ID, CREATE_DT)
110
		VALUES (@billRef, @billCode, @customerName, @amount, @accountNo, @accountType, CONVERT(DATE, @createdTime, 103),
111
		@partner, @resultCode, @resultDesc, @transDesc, @coreXref, @partnerAccount, 'admin', GETDATE())
112

    
113
		IF(@resultCode NOT IN  ('00', '100'))
114
		BEGIN
115
			PRINT 'KY THANH TOAN KHONG HOP LE' + @billRef
116
			-- THEM VAO LOG CAC KY THANH TOAN LOI
117
		END
118
		ELSE IF(@accountType <> 'A')
119
		BEGIN
120
			PRINT 'KHONG PHAI THANH TOAN BANG THE' + @billRef
121
		END
122
		ELSE IF(EXISTS(SELECT * FROM TR_REQ_PAY_AUTO_RECURRING_HISTORY WHERE billRef = @billRef AND @billCode = billCode AND @coreXref = coreXref))
123
		BEGIN
124
			PRINT 'KY THANH TOAN DA TON TAI TRONG HE THONG - DA THUC HIEN THANH TOAN TREN AMS: ' + @billRef
125
		END
126
		ELSE IF(NOT EXISTS(SELECT * FROM TR_REQ_PAY_AUTO_RECURRING WHERE BILLCODE = @billCode))
127
		BEGIN
128
			PRINT 'KHONG CO BILLCODE TRONG HE THONG AMS: ' + @billCode
129
		END
130
		ELSE IF(NOT EXISTS	(SELECT *	FROM TR_REQ_PAY_AUTO_RECURRING A
131
										LEFT JOIN TR_REQ_PAYMENT_AUTO B ON A.REQ_PAY_AUTO_ID = B.REQ_PAY_AUTO_ID 
132
										WHERE A.BILLCODE = @billCode
133
							)
134
				)
135
		BEGIN
136
			PRINT 'KHONG CO PHIEU YEU CAU THANH TOAN TU DONG TRONG HE THONG AMS: ' + @billCode
137
		END
138
		ELSE
139
		BEGIN
140
			DECLARE @REQ_PAY_ID VARCHAR(20), @REQ_PAY_CODE VARCHAR(20), @CONTRACT_ID VARCHAR(20), @CONTRACT_CODE VARCHAR(20), @CONTRACT_NAME NVARCHAR(500),
141
			@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), 
142
			@REQ_PAY_AUTO_ID VARCHAR(20), @TRANSFER_USER_RECEIVE VARCHAR(20), @TRANS_GLCODE VARCHAR(20), @TRANS_GLNAME NVARCHAR(500)
143
			
144
			PRINT 'GET DATA BILLCODE'
145
			-- LAY DATA CUA BILLCODE DANG KY TRONG AMS
146
			SELECT TOP 1 @CONTRACT_ID = B.CONTRACT_ID, @CONTRACT_CODE = E.CONTRACT_CODE, @CONTRACT_NAME = E.[CONTRACT_NAME], 
147
			@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, 
148
			@BRANCH_CREATE = B.BRANCH_CREATE, @REQ_PAY_AUTO_ID = B.REQ_PAY_AUTO_ID, @TRANSFER_USER_RECEIVE = B.TRANSFER_USER_RECEIVE, 
149
			@TRANS_GLCODE = A.TRANS_GLCODE, @TRANS_GLNAME = A.TRANS_GLNAME
150
			FROM TR_REQ_PAY_AUTO_RECURRING A
151
			LEFT JOIN TR_REQ_PAYMENT_AUTO B ON A.REQ_PAY_AUTO_ID = B.REQ_PAY_AUTO_ID
152
			LEFT JOIN CM_BRANCH C ON B.BRANCH_ID = C.BRANCH_ID
153
			LEFT JOIN CM_ALLCODE D ON B.REQ_PAY_AUTO_SERVICE_TYPE = D.CDVAL AND D.CDNAME = 'PAY_SER_AUTO' AND CDTYPE = 'REQ_AUTO'
154
			LEFT JOIN TR_CONTRACT E ON B.CONTRACT_ID = E.CONTRACT_ID
155
			WHERE BILLCODE = @billCode
156
			PRINT 'LUU LOG KY THANH TOAN'
157
			print @createdTime
158
			-- LUU LOG KY THANH TOAN
159
			INSERT INTO TR_REQ_PAY_AUTO_RECURRING_HISTORY(billRef, billCode, customerName, amount, accountNo, accountType, createdTime,
160
			[partner], resultCode, resultDesc, transDesc, coreXref, partnerAccount, MAKER_ID, CREATE_DT)
161
			VALUES (@billRef, @billCode, @customerName, @amount, @accountNo, @accountType, CONVERT(DATE, @createdTime, 103),
162
			@partner, @resultCode, @resultDesc, @transDesc, @coreXref, @partnerAccount, 'admin', GETDATE())
163

    
164
			-------------------- BEGIN TAO PHIEU DE NGHI THANH TOAN TU DONG ----------------------------------
165

    
166
			-- BEGIN KHOI TAO GIA TRI
167
			-- ID PDN THANH TOAN
168
			PRINT 'GEN ID PDN THANH TOAN'
169
			EXEC [dbo].[PAY_CODE_GenKey] 'TR_REQ_PAYMENT', '','', @REQ_PAY_CODE out
170
			IF EXISTS(SELECT * FROM TR_REQ_PAYMENT WHERE REQ_PAY_CODE  = @REQ_PAY_CODE )
171
			BEGIN
172
				ROLLBACK TRANSACTION
173
				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
174
				RETURN '-1'
175
			END
176
			PRINT 'GEN MA CODE PDN THANH TOAN'
177
			-- MA CODE PDN THANH TOAN
178
			EXEC SYS_CodeMasters_Gen 'TR_REQ_PAYMENT', @REQ_PAY_ID out
179
			IF @REQ_PAY_ID='' OR @REQ_PAY_ID IS NULL GOTO ABORT
180
			PRINT 'GET DON VI QUAN LY HOP DONG'
181
			DECLARE @BRANCH_MANAGE_ID NVARCHAR(250) =	(	SELECT TOP 1 BRANCH_ID 
182
															FROM CM_BRANCH 
183
															WHERE BRANCH_ID = (	SELECT TOP 1 BRANCH_ID FROM TR_CONTRACT WHERE CONTRACT_ID = @CONTRACT_ID)
184
														)
185
			
186
			DECLARE @BRANCH_MANAGE_NAME NVARCHAR(250) = (	SELECT TOP 1 BRANCH_NAME 
187
															FROM CM_BRANCH 
188
															WHERE BRANCH_ID = (	SELECT TOP 1 BRANCH_ID FROM TR_CONTRACT WHERE CONTRACT_ID = @CONTRACT_ID)
189
														)
190

    
191
			-- NOI DUNG THANH TOAN, DUNG CHO NHIEU TABLE
192
			DECLARE @PAY_AUTO_DESC_DETAIL NVARCHAR(1000) = ''
193
			DECLARE @PAY_AUTO_TRN_DESC_DETAIL VARCHAR(1000) = ''
194

    
195
			DECLARE @l_Month VARCHAR(2), @l_Year VARCHAR(4)
196
			-- NEU LA DIEN HOAC NUOC: t; DIEN THOAI HOAC INTERNET: t-1
197
			IF(ISNULL(@REQ_PAY_AUTO_SERVICE_TYPE, '') = 'ELECTRIC' OR ISNULL(@REQ_PAY_AUTO_SERVICE_TYPE, '') = 'WATER')
198
			BEGIN
199
				SET @l_Month =  RIGHT('0' + CAST(DATEPART(MM, GETDATE()) AS VARCHAR(2)), 2);
200
				SET @l_Year =  RIGHT(YEAR(GETDATE()), 4);
201
			END
202
			ELSE
203
			BEGIN
204
				SET @l_Month =  RIGHT('0' + CAST(DATEPART(MM, DATEADD(MONTH, -1, GETDATE())) AS VARCHAR(2)), 2);
205
				SET @l_Year =  RIGHT(YEAR(DATEADD(MONTH, -1, GETDATE())), 4);
206
			END
207

    
208
			IF(ISNULL(@month, '') = '')
209
			BEGIN
210
				PRINT 'HOP DONG KHONG CO MA CODE: ' + @PAY_AUTO_DESC_DETAIL
211
				SET @month = @l_Month + '/' + @l_Year
212
				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
213
				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))
214
			END
215
			ELSE
216
			BEGIN
217
				PRINT 'HOP DONG CO MA CODE: ' + @PAY_AUTO_DESC_DETAIL
218
				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
219
				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))
220
			END
221

    
222
			-- END KHOI TAO GIA TRI
223
			PRINT 'TAO PHIEU DE NGHI THANH TOAN'
224
			INSERT INTO [dbo].[TR_REQ_PAYMENT]
225
			(REQ_PAY_ID, REQ_PAY_CODE, BRANCH_ID, DEP_ID, REQ_REASON, REQ_TYPE, 
226
			REQ_ENTRIES, REQ_DESCRIPTION, REF_ID, PAY_PHASE, RECEIVER_PO, --NULL
227
			REQ_PAY_TYPE, REQ_DT, REQ_TYPE_CURRENCY, REQ_AMT, REQ_TEMP_AMT, 
228
			MAKER_ID, CREATE_DT, EDITOR_ID, AUTH_STATUS, CHECKER_ID, APPROVE_DT, --HC
229
			CREATE_DT_KT, MAKER_ID_KT, AUTH_STATUS_KT, CHECKER_ID_KT, APPROVE_DT_KT, CONFIRM_NOTE, --KT
230
			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)
231
			VALUES
232
			(@REQ_PAY_ID, @REQ_PAY_CODE, @BRANCH_ID, @DEP_ID, @PAY_AUTO_DESC_DETAIL, 'P', 
233
			NULL, NULL,  NULL, NULL, NULL,  --NULL
234
			'1', GETDATE(), 'VND', @amount, NULL, 
235
			'admin', GETDATE(), NULL, 'A', 'admin', GETDATE(),  --HC
236
			GETDATE(), 'admin', 'A', 'admin', GETDATE(), NULL, --KT
237
			@BRANCH_CREATE, NULL, '1', 'admin', GETDATE(), NULL, '0', 1, 'Y', NULL, 'Y', 'B', @billRef, 'N')
238
			PRINT 'TAO LUOI PDN THANH TOAN CHO PYC TTTD'
239
			-- TẠO LƯỚI PHIEU DE NGHI THANH TOAN CHO PYC
240
			INSERT INTO [dbo].[TR_REQ_PAY_AUTO_PAYMENTS]
241
			(REQ_PAY_AUTO_ID, REQ_PAY_ID, REQ_PAY_CODE, BRANCH_ID, DEP_ID, REQ_REASON, REQ_TYPE, 
242
			REQ_ENTRIES, REQ_DESCRIPTION, REF_ID, PAY_PHASE, RECEIVER_PO, --NULL
243
			REQ_PAY_TYPE, REQ_DT, REQ_TYPE_CURRENCY, REQ_AMT, REQ_TEMP_AMT, 
244
			MAKER_ID, CREATE_DT, EDITOR_ID, AUTH_STATUS, CHECKER_ID, APPROVE_DT, --HC
245
			CREATE_DT_KT, MAKER_ID_KT, AUTH_STATUS_KT, CHECKER_ID_KT, APPROVE_DT_KT, CONFIRM_NOTE, --KT
246
			BRANCH_CREATE, NOTES, RECORD_STATUS, TRANSFER_MAKER, TRANSFER_DT, TRASFER_USER_RECIVE, PROCESS, RATE, IS_PERIOD, AMT_PAY)
247
			VALUES
248
			(@REQ_PAY_AUTO_ID ,@REQ_PAY_ID, @REQ_PAY_CODE, @BRANCH_ID, @DEP_ID, @PAY_AUTO_DESC_DETAIL, 'P', 
249
			NULL, NULL,  NULL, NULL, NULL,  --NULL
250
			'1', GETDATE(), 'VND', @amount, NULL, 
251
			'admin', GETDATE(), NULL, 'A', 'admin', GETDATE(),  --HC
252
			GETDATE(), 'admin', 'A', 'admin', GETDATE(), NULL, --KT
253
			@BRANCH_CREATE, NULL, '1', 'admin', GETDATE(), NULL, '0', 1, 'Y', NULL)
254
			PRINT 'THEM LICH SU XU LY'
255
			INSERT INTO dbo.PL_PROCESS(REQ_ID,PROCESS_ID,CHECKER_ID,APPROVE_DT,PROCESS_DESC,NOTES)
256
			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')
257

    
258
			
259
			-------------------- END TAO PHIEU DE NGHI THANH TOAN TU DONG ----------------------------------
260

    
261
			-- TẠO LƯỚI THÔNG TIN HỢP ĐỒNG ĐỊNH KỲ
262
			PRINT 'TAO LUOI THONG TIN HDDK'
263
			DECLARE @REQ_PAYDTID_PERIOD VARCHAR(15);
264
			EXEC SYS_CodeMasters_Gen 'TR_REQ_ADVANCE_DT', @REQ_PAYDTID_PERIOD OUT;
265
			IF @REQ_PAYDTID_PERIOD='' OR @REQ_PAYDTID_PERIOD IS NULL GOTO ABORT;
266
			INSERT INTO TR_REQ_ADVANCE_DT (REQ_PAYDTID, REQ_PAY_ID,REF_ID, [TYPE], MAKER_ID, CREATE_DT, IS_CLOSED, REF_TYPE, DELIVERY_DT) 
267
			VALUES(@REQ_PAYDTID_PERIOD, @REQ_PAY_ID, @CONTRACT_ID, 'PAY', 'admin', GETDATE(), 'N', 'C', CONVERT(DATE,NULL,103))
268
			
269
			-- TẠO LƯỚI THÔNG TIN THANH TOÁN HỢP ĐỒNG ĐỊNH KỲ
270
			PRINT 'TAO LUOI THONG TIN THANH TOAN HDDK'
271
			DECLARE @PERIOD_ID VARCHAR(15);
272
			EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_PERIOD', @PERIOD_ID OUT;
273
			IF @PERIOD_ID='' OR @PERIOD_ID IS NULL GOTO ABORT;
274
			INSERT INTO TR_REQ_PAY_PERIOD(PERIOD_ID, REQ_PAY_ID, PAY_TYPE, CONTRACT_ID, PAY_DT_REAL ,OLD_INDEX, NEW_INDEX, AMT_PAY, 
275
			AUTH_STATUS_KT, CURRENCY, RATE, FROM_DATE, TO_DATE,AD_PAY_ID, PROCESS, PARENT_ID, PAY_PHASE, REASON, TYPE_COST,FR_LEVEL , TO_LEVEL)
276
			VALUES (@PERIOD_ID, @REQ_PAY_ID,'PAY', @CONTRACT_ID, NULL, NULL , NULL , @amount, 
277
			'A', 'VND', '1', NULL, NULL, NULL, '1', NULL, @month, @PAY_AUTO_DESC_DETAIL, NULL, NULL, NULL )
278

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

    
281
	-- BEGIN BUT TOAN CHI PHI
282
				PRINT 'BUT TOAN CHI PHI'
283
				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), 
284
				@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),
285
				@CREATE_DT_KT varchar(20), @APPROVE_DT_KT varchar(20), @IS_TRANSFER_EXTERNAL varchar(20), @DEP_ID_ENTRY varchar(20), 
286
				@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), 
287
				@RECORD_STATUS varchar(20)
288
				DECLARE @l_TR_REQ_PAY_ENTRIES_D VARCHAR(15);
289

    
290
				DECLARE @TYPE_BUDGET_ALLOCAITON_ENTRIES VARCHAR(20), @PERCENT_BUDGET_ALLOCAITON_ENTRIES DECIMAL(18,2), @AMT_BUDGET_ALLOCAITON_ENTRIES DECIMAL(18,2)
291

    
292
				DECLARE @RES VARCHAR(10)
293
				DECLARE @TOTAL_CREDIT_AMT DECIMAL(18,0) = @amount;
294
				DECLARE @TAX DECIMAL(18,1) = 0.1
295
				DECLARE @TOTAL_PERCENT DECIMAL(18,2) = 0, @TOTAL_PERCENT_AMT DECIMAL(18,0) = 0;
296
				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);
297
				
298
				-- KHAI BAO CONST
299
				DECLARE @PERCENT_VAT DECIMAL(18,2) = 1.1;
300
				/*
301
				-- NEU LA HOA DON DIEN THI THUE SE LA 8%. VIEC NAY CO HIEU LUC DEN HET NAM 2023
302
				IF	(	(	SELECT TOP 1 ISNULL(B.REQ_PAY_AUTO_SERVICE_TYPE, '')
303
							FROM TR_REQ_PAY_AUTO_RECURRING A
304
							INNER JOIN TR_REQ_PAYMENT_AUTO B ON A.REQ_PAY_AUTO_ID = B.REQ_PAY_AUTO_ID
305
							WHERE A.BILLCODE = @billCode
306
						) = 'ELECTRIC'
307
					)
308
				BEGIN
309
					SET @PERCENT_VAT = 1.08;
310
				END
311
				*/
312

    
313
				-- CO THUE
314
				IF(EXISTS(SELECT * FROM TR_REQ_PAY_AUTO_ENTRIES WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID AND ACCT = '353200002'))
315
				BEGIN
316
				-- SET THUE DUA VAO VAT TREN LUOI HACH TOAN
317
					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
318

    
319
					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
320
					BEGIN
321
						PRINT 'CO THUE, CO PHAN CHIA'
322
					-- CREATE CURSOR CÁC ĐẦU CÓ --> LẤY ĐƯỢC CÁC CẶP BÚT TOÁN
323
						DECLARE cursorEntries_C CURSOR LOCAL FOR 
324
						SELECT REQ_PAY_AUTO_ID, ENTRY_PAIR
325
						FROM TR_REQ_PAY_AUTO_ENTRIES
326
						WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID AND DR_CR = 'C'
327

    
328
						Open cursorEntries_C
329
						FETCH NEXT FROM cursorEntries_C INTO @REQ_PAY_AUTO_ID, @ENTRY_PAIR
330
						WHILE @@FETCH_STATUS = 0
331
						BEGIN
332
						-- BEGIN CHẠY TỪNG CẶP BÚT TOÁN
333
							DECLARE cursorEntries CURSOR LOCAL FOR 
334
							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,
335
							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,
336
							IS_TRANSFER_EXTERNAL, TYPE_BUDGET_ALLOCAITON, PERCENT_BUDGET_ALLOCAITON, AMT_BUDGET_ALLOCAITON
337
							FROM TR_REQ_PAY_AUTO_ENTRIES
338
							WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID AND ENTRY_PAIR = @ENTRY_PAIR
339

    
340
							Open cursorEntries
341
							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,
342
							@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, 
343
							@IS_TRANSFER_EXTERNAL, @TYPE_BUDGET_ALLOCAITON_ENTRIES, @PERCENT_BUDGET_ALLOCAITON_ENTRIES, @AMT_BUDGET_ALLOCAITON_ENTRIES
344
							WHILE @@FETCH_STATUS = 0
345
							BEGIN
346

    
347
								EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_ENTRIES', @l_TR_REQ_PAY_ENTRIES_D OUT;
348
								IF @l_TR_REQ_PAY_ENTRIES_D='' OR @l_TR_REQ_PAY_ENTRIES_D IS NULL GOTO ABORT;
349
								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')
350

    
351
								IF(@DR_CR = 'D')
352
								BEGIN
353
									IF(ISNULL(@TOTAL_PERCENT, 0) + ISNULL(@PERCENT_BUDGET_ALLOCAITON_ENTRIES, 0) = 100)
354
									BEGIN
355
										PRINT 'DONG NO CUOI'
356
										DECLARE @A_CREDIT_AMT DECIMAL(18,0) = @amount - @TOTAL_PERCENT_AMT
357
										DECLARE @A_DEBIT_AMT DECIMAL(18,0) = @A_CREDIT_AMT/@PERCENT_VAT
358
										DECLARE @A_3532_AMT DECIMAL(18,0) = @A_CREDIT_AMT - @A_DEBIT_AMT
359
										print '@A_CREDIT_AMT: ' + CONVERT(VARCHAR(15),@A_CREDIT_AMT) 
360
										print '@A_DEBIT_AMT: ' + CONVERT(VARCHAR(15),@A_DEBIT_AMT) 
361
										print '@A_3532_AMT: ' + CONVERT(VARCHAR(15),@A_3532_AMT) 
362

    
363
										IF(ISNULL(@ACCT, '') = '353200002')
364
										BEGIN
365
											print '@ACCT 3532: ' + @ACCT
366
											print '@A_3532_AMT 3532: ' + CONVERT(VARCHAR(15),@A_3532_AMT) 
367
											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],
368
											[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])
369
											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,
370
											@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)
371
										END
372
										ELSE
373
										BEGIN
374
											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],
375
											[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])
376
											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,
377
											@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)
378
										END
379
									END
380
									ELSE
381
									BEGIN
382
										PRINT 'CHUA PHAI DONG NO CUOI'
383
										DECLARE @B_CREDIT_AMT DECIMAL(18,0) = CONVERT(DECIMAL, @amount*@PERCENT_BUDGET_ALLOCAITON_ENTRIES/100)
384
										DECLARE @B_DEBIT_AMT DECIMAL(18,0) = @B_CREDIT_AMT/@PERCENT_VAT
385
										DECLARE @B_3532_AMT DECIMAL(18,0) = @B_CREDIT_AMT - @B_DEBIT_AMT
386
										print '@B_CREDIT_AMT: ' + CONVERT(VARCHAR(15),@B_CREDIT_AMT)
387
										print '@B_DEBIT_AMT: ' + CONVERT(VARCHAR(15),@B_DEBIT_AMT)
388
										print '@B_3532_AMT: ' +CONVERT(VARCHAR(15),@B_3532_AMT) 
389

    
390
										IF(ISNULL(@ACCT, '') = '353200002')
391
										BEGIN
392
											print '@ACCT 3532: ' + @ACCT
393
											print '@B_3532_AMT hach toan: ' +CONVERT(VARCHAR(15),@B_3532_AMT) 
394
											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],
395
											[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])
396
											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,
397
											@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)
398
										END
399
										ELSE
400
										BEGIN
401
											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],
402
											[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])
403
											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,
404
											@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)
405
										END
406
									END
407
								END
408
								ELSE
409
								BEGIN
410
									IF(ISNULL(@TOTAL_PERCENT, 0) + ISNULL(@PERCENT_BUDGET_ALLOCAITON_ENTRIES, 0) = 100)
411
									BEGIN
412
										PRINT 'DONG CO CUOI'
413
										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],
414
										[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])
415
										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,
416
										@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)
417
									END
418
									ELSE
419
									BEGIN
420
										PRINT 'CHUA PHAI DONG CO CUOI'
421
										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],
422
										[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])
423
										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,
424
										@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)
425
									END
426
										
427
								END
428

    
429
							IF @@error<>0 GOTO ABORT;
430
							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,
431
							@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,
432
							@IS_TRANSFER_EXTERNAL, @TYPE_BUDGET_ALLOCAITON_ENTRIES, @PERCENT_BUDGET_ALLOCAITON_ENTRIES, @AMT_BUDGET_ALLOCAITON_ENTRIES
433
							END
434
							CLOSE cursorEntries
435
							DEALLOCATE cursorEntries
436
						-- END CHẠY TỪNG CẶP BÚT TOÁN
437
								
438
							SET @TOTAL_PERCENT = @TOTAL_PERCENT + @PERCENT_BUDGET_ALLOCAITON_ENTRIES;
439
							SET @TOTAL_PERCENT_AMT = @TOTAL_PERCENT_AMT + @amount*@PERCENT_BUDGET_ALLOCAITON_ENTRIES/100
440

    
441
						IF @@error<>0 GOTO ABORT;
442
						FETCH NEXT FROM cursorEntries_C INTO @REQ_PAY_AUTO_ID, @ENTRY_PAIR
443
						END
444
						CLOSE cursorEntries_C
445
						DEALLOCATE cursorEntries_C
446

    
447
							
448
						--- BAN BUT TOAN VAO CORE
449
						EXEC [dbo].[PAY_ENTRIES_POST_SetApp] @REQ_PAY_ID,'admin','admin', @RES OUT
450
					END
451
					ELSE
452
					BEGIN
453
						PRINT 'CO THUE, KHONG PHAN CHIA 2 NO - 1 CO'
454
						DECLARE @DEBIT_AMT_1 DECIMAL(18,0) = @TOTAL_CREDIT_AMT/@PERCENT_VAT
455
						DECLARE @3532_AMT DECIMAL(18,0) = @TOTAL_CREDIT_AMT - @DEBIT_AMT_1
456

    
457
						DECLARE cursorEntries CURSOR LOCAL FOR 
458
						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,
459
						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
460
						FROM TR_REQ_PAY_AUTO_ENTRIES
461
						WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID
462
						Open cursorEntries
463
						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,
464
						@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
465
						WHILE @@FETCH_STATUS = 0
466
						BEGIN
467

    
468
							EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_ENTRIES', @l_TR_REQ_PAY_ENTRIES_D OUT;
469
							IF @l_TR_REQ_PAY_ENTRIES_D='' OR @l_TR_REQ_PAY_ENTRIES_D IS NULL GOTO ABORT;
470

    
471
							IF(@DR_CR = 'D')	-- Nợ
472
							BEGIN
473
								IF(@ACCT = '353200002')
474
								BEGIN
475
									print '3532'
476
									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],
477
									[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])
478
									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,
479
									@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)
480
								END
481
								ELSE
482
								BEGIN
483
									print 'No TKCP'
484
									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],
485
									[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])
486
									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,
487
									@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)
488
								END
489
							END
490
							ELSE
491
							BEGIN
492
								print 'Co TKTT'
493
								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],
494
								[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])
495
								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,
496
								@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)
497
							END
498

    
499
							
500
						IF @@error<>0 GOTO ABORT;
501
						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,
502
						@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
503
						END
504
						CLOSE cursorEntries
505
						DEALLOCATE cursorEntries
506
						--- BAN BUT TOAN VAO CORE
507
						EXEC [dbo].[PAY_ENTRIES_POST_SetApp] @REQ_PAY_ID,'admin','admin', @RES OUT
508
					END
509
				END
510
				-- KHONG THUE
511
				ELSE	
512
				BEGIN
513
					IF(EXISTS(SELECT * FROM TR_REQ_PAY_AUTO_BUDGET_ALLOCATION WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID))
514
					BEGIN
515
						PRINT 'KHONG THUE, CO PHAN CHIA'
516
						IF(EXISTS(SELECT * FROM TR_REQ_PAY_AUTO_BUDGET_ALLOCATION WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID AND TYPE_BUDGET_ALLOCAITON = 'PERCENT'))
517
						BEGIN
518
							PRINT 'KHONG THUE, CO PHAN CHIA, PHAN CHIA THEO TY LE'
519
						-- CREATE CURSOR CÁC ĐẦU CÓ
520
							DECLARE cursorEntries_C CURSOR LOCAL FOR 
521
							SELECT REQ_PAY_AUTO_ID, ENTRY_PAIR
522
							FROM TR_REQ_PAY_AUTO_ENTRIES
523
							WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID AND DR_CR = 'C'
524

    
525
							Open cursorEntries_C
526
							FETCH NEXT FROM cursorEntries_C INTO @REQ_PAY_AUTO_ID, @ENTRY_PAIR
527
							WHILE @@FETCH_STATUS = 0
528
							BEGIN
529
							-- BEGIN CHẠY TỪNG CẶP BÚT TOÁN
530
								DECLARE cursorEntries CURSOR LOCAL FOR 
531
								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,
532
								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,
533
								IS_TRANSFER_EXTERNAL, TYPE_BUDGET_ALLOCAITON, PERCENT_BUDGET_ALLOCAITON, AMT_BUDGET_ALLOCAITON
534
								FROM TR_REQ_PAY_AUTO_ENTRIES
535
								WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID AND ENTRY_PAIR = @ENTRY_PAIR
536

    
537
								Open cursorEntries
538
								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,
539
								@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, 
540
								@IS_TRANSFER_EXTERNAL, @TYPE_BUDGET_ALLOCAITON_ENTRIES, @PERCENT_BUDGET_ALLOCAITON_ENTRIES, @AMT_BUDGET_ALLOCAITON_ENTRIES
541
								WHILE @@FETCH_STATUS = 0
542
								BEGIN
543

    
544
									EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_ENTRIES', @l_TR_REQ_PAY_ENTRIES_D OUT;
545
									IF @l_TR_REQ_PAY_ENTRIES_D='' OR @l_TR_REQ_PAY_ENTRIES_D IS NULL GOTO ABORT;
546

    
547
									IF(@DR_CR = 'D')
548
									BEGIN
549
										IF(ISNULL(@TOTAL_PERCENT, 0) + ISNULL(@PERCENT_BUDGET_ALLOCAITON_ENTRIES, 0) = 100)
550
										BEGIN
551
											PRINT 'DONG NO CUOI'
552
											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],
553
											[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])
554
											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,
555
											@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)
556
										END
557
										ELSE
558
										BEGIN
559
											PRINT 'CHUA PHAI DONG NO CUOI'
560

    
561
											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],
562
											[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])
563
											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,
564
											@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)
565
										END
566
									END
567
									ELSE
568
									BEGIN
569
										IF(ISNULL(@TOTAL_PERCENT, 0) + ISNULL(@PERCENT_BUDGET_ALLOCAITON_ENTRIES, 0) = 100)
570
										BEGIN
571
											PRINT 'DONG CO CUOI'
572
											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],
573
											[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])
574
											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,
575
											@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)
576
										END
577
										ELSE
578
										BEGIN
579
											PRINT 'CHUA PHAI DONG CO CUOI'
580
											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],
581
											[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])
582
											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,
583
											@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)
584
										END
585
										
586
									END
587

    
588
								IF @@error<>0 GOTO ABORT;
589
								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,
590
								@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,
591
								@IS_TRANSFER_EXTERNAL, @TYPE_BUDGET_ALLOCAITON_ENTRIES, @PERCENT_BUDGET_ALLOCAITON_ENTRIES, @AMT_BUDGET_ALLOCAITON_ENTRIES
592
								END
593
								CLOSE cursorEntries
594
								DEALLOCATE cursorEntries
595
							-- END CHẠY TỪNG CẶP BÚT TOÁN
596
								
597
								SET @TOTAL_PERCENT = @TOTAL_PERCENT + @PERCENT_BUDGET_ALLOCAITON_ENTRIES;
598
								SET @TOTAL_PERCENT_AMT = @TOTAL_PERCENT_AMT + @amount*@PERCENT_BUDGET_ALLOCAITON_ENTRIES/100
599

    
600
							IF @@error<>0 GOTO ABORT;
601
							FETCH NEXT FROM cursorEntries_C INTO @REQ_PAY_AUTO_ID, @ENTRY_PAIR
602
							END
603
							CLOSE cursorEntries_C
604
							DEALLOCATE cursorEntries_C
605

    
606
							
607
							--- BAN BUT TOAN VAO CORE
608
							EXEC [dbo].[PAY_ENTRIES_POST_SetApp] @REQ_PAY_ID,'admin','admin', @RES OUT
609
						END
610
						ELSE
611
						BEGIN
612
							PRINT 'KHONG THUE, CO PHAN CHIA, PHAN CHIA THEO SO TIEN'
613
						END
614
					END
615
					ELSE
616
					BEGIN
617
						PRINT 'KHONG THUE, KHONG PHAN CHIA 1 NO - 1 CO'
618

    
619
						DECLARE cursorEntries CURSOR LOCAL FOR 
620
						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,
621
						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
622
						FROM TR_REQ_PAY_AUTO_ENTRIES
623
						WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID
624
						Open cursorEntries
625
				
626
						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,
627
						@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
628
						WHILE @@FETCH_STATUS = 0
629
						BEGIN
630
							DECLARE @l_TR_REQ_PAY_ENTRIES VARCHAR(15);
631
							EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_ENTRIES', @l_TR_REQ_PAY_ENTRIES OUT;
632
							IF @l_TR_REQ_PAY_ENTRIES='' OR @l_TR_REQ_PAY_ENTRIES IS NULL GOTO ABORT;
633

    
634
							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],
635
							[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])
636
							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,
637
							@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)
638

    
639
						IF @@error<>0 GOTO ABORT;
640
						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,
641
						@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
642
						END
643
						CLOSE cursorEntries
644
						DEALLOCATE cursorEntries
645

    
646
						--- BAN BUT TOAN VAO CORE
647
						EXEC [dbo].[PAY_ENTRIES_POST_SetApp] @REQ_PAY_ID,'admin','admin', @RES OUT 
648
					END
649
				END
650
				
651
	-- END BUT TOAN CHI PHI
652

    
653

    
654

    
655
	-- BEGIN BUT TOAN HE THONG: BUT TOAN SO 0
656
			-- NỢ
657
				EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_ENTRIES', @l_TR_REQ_PAY_ENTRIES_D OUT;
658
				INSERT INTO [TR_REQ_PAY_ENTRIES] ([REQ_PAY_DT_ID],[REQ_PAY_ID],[FUNCTION_TYPE],[TRN_TYPE],[REF_ID],
659
				[ENTRY_PAIR],[DR_CR],[DR_CR_NAME],
660
				[ACCT],[ACCT_NAME],[BRANCH_ID],[DEP_ID],
661
				[AMT],[CURRENCY],[EXC_RATE],[TRN_DATE],[TRN_DESC],
662
				[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])
663
				VALUES(@l_TR_REQ_PAY_ENTRIES_D, @REQ_PAY_ID,NULL,'PAYMENT',NULL,
664
				'0', N'D', N'Nợ',
665
				@accountNo, @customerName, N'DV0001', N'',
666
				CONVERT(DECIMAL(18,2), @amount), N'VND', 1.00, GETDATE(), @transDesc,
667
				'admin',GETDATE(),'A','admin', GETDATE(),'admin',GETDATE(),'A','admin',GETDATE(),'1',NULL)
668

    
669
				DECLARE @l_PAY_ENTRIES_POST_D VARCHAR(15);
670
				EXEC SYS_CodeMasters_Gen 'PAY_ENTRIES_POST', @l_PAY_ENTRIES_POST_D OUT;
671
				INSERT INTO [PAY_ENTRIES_POST] ([ET_ID],[REF_NO],[TRN_ID],[REF_ID],[TRN_TYPE],
672
							[ENTRY_PAIR],[DO_BRN],[DRCR],[ACCT],[BRN_ID],[DEPT_ID],
673
							[AMT],[CURRENCY],[EXC_RATE],[EXP_TO_CORE],[TRN_DATE],[TRN_DESC],[MAKER_ID],[CHECKER_ID])
674
				VALUES	(@l_PAY_ENTRIES_POST_D, @coreXref, @REQ_PAY_ID, @l_TR_REQ_PAY_ENTRIES_D,'PAYMENT',
675
						'0',N'DV0001',N'D',
676
						@accountNo,N'DV0001',N'',
677
						CONVERT(DECIMAL(18,2), @amount),N'VND',1.00,N'1',GETDATE(),
678
						@transDesc,'admin','admin')
679

    
680
			-- CÓ
681
				DECLARE @l_TR_REQ_PAY_ENTRIES_C VARCHAR(15);
682
				EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_ENTRIES', @l_TR_REQ_PAY_ENTRIES_C OUT;
683
				INSERT INTO [TR_REQ_PAY_ENTRIES] ([REQ_PAY_DT_ID],[REQ_PAY_ID],[FUNCTION_TYPE],[TRN_TYPE],[REF_ID],
684
				[ENTRY_PAIR],[DR_CR],[DR_CR_NAME],
685
				[ACCT],[ACCT_NAME],[BRANCH_ID],[DEP_ID],
686
				[AMT],[CURRENCY],[EXC_RATE],[TRN_DATE],[TRN_DESC],
687
				[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])
688
				VALUES(@l_TR_REQ_PAY_ENTRIES_C, @REQ_PAY_ID,NULL,'PAYMENT',NULL,
689
				'0',N'C',N'Có',
690
				@partnerAccount, @partner,N'DV0001',N'',
691
				CONVERT(DECIMAL(18,2), @amount),N'VND',1.00,GETDATE(),@transDesc,
692
				'admin',GETDATE(),'A','admin', GETDATE(),'admin',GETDATE(),'A','admin',GETDATE(),'1',NULL)
693

    
694
				DECLARE @l_PAY_ENTRIES_POST_C VARCHAR(15);
695
				EXEC SYS_CodeMasters_Gen 'PAY_ENTRIES_POST', @l_PAY_ENTRIES_POST_C OUT;
696
				INSERT INTO [PAY_ENTRIES_POST] ([ET_ID],[REF_NO],[TRN_ID],[REF_ID],[TRN_TYPE],
697
							[ENTRY_PAIR],[DO_BRN],[DRCR],[ACCT],[BRN_ID],[DEPT_ID],
698
							[AMT],[CURRENCY],[EXC_RATE],[EXP_TO_CORE],[TRN_DATE],[TRN_DESC],[MAKER_ID],[CHECKER_ID])
699
				VALUES	(@l_PAY_ENTRIES_POST_C, @coreXref, @REQ_PAY_ID,@l_TR_REQ_PAY_ENTRIES_C,'PAYMENT',
700
						'0',N'DV0001',N'C',
701
						@partnerAccount,N'DV0001',N'',
702
						CONVERT(DECIMAL(18,2), @amount),N'VND',1.00,N'1',GETDATE(),
703
						@transDesc, 'admin', 'admin')
704
	-- END BUT TOAN HE THONG: BUT TOAN SO 0
705

    
706
			-- Mỗi lần chỉ quét 1 bill hợp lệ
707
			CLOSE XmlAutoRecurring;
708
			DEALLOCATE XmlAutoRecurring;
709
			COMMIT TRANSACTION
710
			SELECT '0' as Result, @list_req_payment LIST_REQ_PAYMENT, N'Quét bill thành công!' ErrorDesc
711
			RETURN '0'
712

    
713
		END
714
		
715
	IF @@error<>0 GOTO ABORT;
716
	FETCH NEXT FROM XmlAutoRecurring INTO @billRef, @billCode, @customerName, @amount, @accountNo, @accountType, @createdTime,
717
	@partner, @resultCode, @resultDesc, @transDesc, @coreXref, @partnerAccount, @month
718
	END;
719
	CLOSE XmlAutoRecurring;
720
	DEALLOCATE XmlAutoRecurring;
721
	
722
COMMIT TRANSACTION
723

    
724
SELECT '0' as Result, @list_req_payment LIST_REQ_PAYMENT, N'Quét bill thành công!' ErrorDesc
725
RETURN '0'
726

    
727
ABORT:
728
BEGIN
729
	ROLLBACK TRANSACTION
730
	SELECT '-1' as Result, @list_req_payment LIST_REQ_PAYMENT, N'Lỗi không xác định' ErrorDesc
731
	RETURN '-1'
732
End
733

    
734
GO
735

    
736
--08082023_secretkey