Project

General

Profile

02_Add_Field_PDNTT_TTĐ_210923.txt

Luc Tran Van, 09/21/2023 11:18 AM

 
1
ALTER PROCEDURE [dbo].[PAY_AUTO_SCAN]
2
@p_APP_DT VARCHAR(20)
3
AS
4
BEGIN TRANSACTION
5
	SET @p_APP_DT = GETDATE()
6
	--SET @p_APP_DT = '2023-10-31T11:22:00'
7
	DECLARE @LIST_REQ_PAYMENT VARCHAR(MAX) = '';
8
	DECLARE  @REQ_PAY_AUTO_ID VARCHAR(20), @REQ_PAY_AUTO_CODE VARCHAR(50), @REQ_PAY_AUTO_TYPE VARCHAR(15), @REQ_PAY_AUTO_SERVICE_TYPE VARCHAR(15), @REQ_PAY_AUTO_STATUS VARCHAR(15), 
9
	@REQ_PAY_AUTO_EFFECTIVE_DT VARCHAR(20), @BRANCH_ID VARCHAR(20), @DEP_ID VARCHAR(20), @BRANCH_CREATE VARCHAR(20), @TRANSFER_USER_RECEIVE VARCHAR(15), @CONFIRM_NOTE NVARCHAR(MAX), 
10
	@CONTRACT_ID VARCHAR(20), @TRANSFER_MAKER VARCHAR(20), @TRANSFER_DT VARCHAR(20), @PROCESS VARCHAR(15), @AUTH_STATUS_KT VARCHAR(1), @RECORD_STATUS VARCHAR(1),
11
	@MAKER_ID VARCHAR(20), @CHECKER_ID VARCHAR(20), @MAKER_ID_KT VARCHAR(20), @CHECKER_ID_KT VARCHAR(20), @BRANCH_NAME NVARCHAR(250), @REQ_PAY_AUTO_SERVICE_TYPE_NAME NVARCHAR(250), @CONTRACT_CODE NVARCHAR(250)
12
	DECLARE cursorPaymentAuto CURSOR LOCAL FOR 
13
	-- LAY CAC PHIEU YEU CAU THANH TOAN TU DONG CON HIEU LUC
14
	SELECT A.REQ_PAY_AUTO_ID, A.REQ_PAY_AUTO_CODE, A.REQ_PAY_AUTO_TYPE, A.REQ_PAY_AUTO_SERVICE_TYPE, A.REQ_PAY_AUTO_STATUS, 
15
	A.REQ_PAY_AUTO_EFFECTIVE_DT, A.BRANCH_ID, A.DEP_ID, A.BRANCH_CREATE, A.TRANSFER_USER_RECEIVE, A.CONFIRM_NOTE, 
16
	A.CONTRACT_ID, A.TRANSFER_MAKER, A.TRANSFER_DT, A.PROCESS, A.AUTH_STATUS_KT, A.RECORD_STATUS, A.MAKER_ID, A.CHECKER_ID, 
17
	A.MAKER_ID_KT, A.CHECKER_ID_KT, B.BRANCH_NAME, C.CONTENT AS REQ_PAY_AUTO_SERVICE_TYPE_NAME, D.CONTRACT_CODE
18
	FROM TR_REQ_PAYMENT_AUTO A
19
	LEFT JOIN CM_BRANCH B ON A.BRANCH_ID = B.BRANCH_ID
20
	LEFT JOIN CM_ALLCODE C ON A.REQ_PAY_AUTO_SERVICE_TYPE = C.CDVAL AND CDNAME = 'PAY_SER_AUTO_TS' AND CDTYPE = 'REQ_AUTO'
21
	LEFT JOIN TR_CONTRACT D ON A.CONTRACT_ID = D.CONTRACT_ID
22
	WHERE 1=1
23
	AND A.REQ_PAY_AUTO_TYPE = 'A'
24
	AND A.AUTH_STATUS_KT = 'A' 
25
	AND REQ_PAY_AUTO_STATUS = 'EFFECTIVE' 
26
	AND A.RECORD_STATUS = '1' 
27
	AND A.CONTRACT_ID IS NOT NULL
28
	AND	(
29
			A.IS_MAKER_CONFIRM_CHECKBOX IS NULL
30
		OR	A.IS_MAKER_CONFIRM_CHECKBOX = '0' -- THANH TOAN TU DONG KHONG CAN XAC NHAN TRUOC
31
		OR	(A.IS_MAKER_CONFIRM_CHECKBOX = '1' AND A.IS_MAKER_CONFIRM = '1') -- THANH TOAN TU DONG CAN XAC NHAN VA DA DUOC XAC NHAN
32
		)
33
	Open cursorPaymentAuto
34
	-- QUET TUNG PHIEU YEU CAU THANH TOAN TU DONG CON HIEU LUC
35
	FETCH NEXT FROM cursorPaymentAuto INTO @REQ_PAY_AUTO_ID, @REQ_PAY_AUTO_CODE, @REQ_PAY_AUTO_TYPE, @REQ_PAY_AUTO_SERVICE_TYPE, @REQ_PAY_AUTO_STATUS, 
36
	@REQ_PAY_AUTO_EFFECTIVE_DT, @BRANCH_ID, @DEP_ID, @BRANCH_CREATE, @TRANSFER_USER_RECEIVE, @CONFIRM_NOTE, 
37
	@CONTRACT_ID, @TRANSFER_MAKER, @TRANSFER_DT, @PROCESS, @AUTH_STATUS_KT, @RECORD_STATUS, @MAKER_ID, @CHECKER_ID, @MAKER_ID_KT, @CHECKER_ID_KT, @BRANCH_NAME, @REQ_PAY_AUTO_SERVICE_TYPE_NAME, @CONTRACT_CODE
38
	WHILE @@FETCH_STATUS = 0
39
	BEGIN
40
		IF(@REQ_PAY_AUTO_STATUS <> 'EFFECTIVE')
41
		BEGIN
42
			PRINT N'Phiếu yêu cầu thanh toán tự động chưa có hiệu lực'
43
		END
44
		ELSE
45
		BEGIN
46
			PRINT '0'
47
			-- LAY CAC DONG THANH TOAN CHUA THANH TOAN - CHI LAY 1 LAN 1 KY THANH TOAN
48
			DECLARE  @REQ_PAY_AUTO_SCHEDULE_DETAIL_ID VARCHAR(20), @EXPECTED_DT VARCHAR(50), @PAY_AUTO_AMT DECIMAL(18,2), @PAY_AUTO_DESC NVARCHAR(1000), 
49
			@PAY_AUTO_STATUS VARCHAR(15), @START_DT VARCHAR(20), @END_DT VARCHAR(20), @TYPE_PERIOD VARCHAR(20), @PAY_PHASE NVARCHAR(500)
50
			DECLARE cursorScheduleDetail CURSOR LOCAL FOR 
51
			SELECT TOP 1 REQ_PAY_AUTO_SCHEDULE_DETAIL_ID, EXPECTED_DT, PAY_AUTO_AMT, PAY_AUTO_DESC, PAY_AUTO_STATUS, START_DT, END_DT, TYPE_PERIOD, PAY_PHASE
52
			FROM TR_REQ_PAY_AUTO_SCHEDULE_DETAIL
53
			WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID 
54
			AND PAY_AUTO_STATUS = 'N' 
55
			AND EXPECTED_DT <= CONVERT(DATE, @p_APP_DT, 103)
56
			Open cursorScheduleDetail
57
			-- TAO CAC PHIEU THANH TOAN TU DONG
58
			FETCH NEXT FROM cursorScheduleDetail INTO @REQ_PAY_AUTO_SCHEDULE_DETAIL_ID, @EXPECTED_DT, @PAY_AUTO_AMT, @PAY_AUTO_DESC, @PAY_AUTO_STATUS, @START_DT, @END_DT, @TYPE_PERIOD, @PAY_PHASE
59
			WHILE @@FETCH_STATUS = 0
60
			BEGIN
61
				-- NEU PHIEU LA THANH TOAN BAN TU DONG THI SET LAI GIA TRI DE NGUOI TAO XAC NHAN TRUOC KHI THANH TOAN KY KE TIEP
62
				UPDATE TR_REQ_PAYMENT_AUTO SET IS_MAKER_CONFIRM = '0' WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID
63
				
64
				DECLARE @REQ_PAY_ID VARCHAR(20), @REQ_PAY_CODE VARCHAR(20)
65

    
66
				DECLARE @BRANCH_MANAGE_NAME NVARCHAR(250) = (	SELECT TOP 1 BRANCH_NAME 
67
																FROM CM_BRANCH 
68
																WHERE BRANCH_ID = (	SELECT TOP 1 BRANCH_ID FROM TR_CONTRACT WHERE CONTRACT_ID = @CONTRACT_ID)
69
															)
70
				-- TAO PHIEU THANH TOAN PHAN MASTER
71
				-- BEGIN KHOI TAO GIA TRI
72
				EXEC [dbo].[PAY_CODE_GenKey] 'TR_REQ_PAYMENT', '','', @REQ_PAY_CODE out
73
				IF EXISTS(SELECT * FROM TR_REQ_PAYMENT WHERE REQ_PAY_CODE  = @REQ_PAY_CODE )
74
				BEGIN
75
					ROLLBACK TRANSACTION
76
					SELECT '-1' as Result, '' REQ_PAY_ID,''  AS REQ_PAY_CODE, N'Số phiếu đề nghị thanh toán đã tồn tại trong hệ thống' ErrorDesc
77
					RETURN '-1'
78
				END
79
				EXEC SYS_CodeMasters_Gen 'TR_REQ_PAYMENT', @REQ_PAY_ID out
80
				IF @REQ_PAY_ID='' OR @REQ_PAY_ID IS NULL GOTO ABORT
81
				-- GET DON VI QUAN LY HOP DONG
82
				DECLARE @BRANCH_MANAGE_ID NVARCHAR(250) =	(	SELECT TOP 1 BRANCH_ID 
83
																FROM CM_BRANCH 
84
																WHERE BRANCH_ID = (	SELECT TOP 1 BRANCH_ID FROM TR_CONTRACT WHERE CONTRACT_ID = @CONTRACT_ID)
85
															)
86
				-- NOI DUNG THANH TOAN, DUNG CHO NHIEU TABLE
87
				DECLARE @PAY_AUTO_DESC_DETAIL NVARCHAR(2000) = ''
88
				DECLARE @PAY_AUTO_TRN_DESC_DETAIL VARCHAR(2000) = ''
89
				DECLARE @PAY_AUTO_TRANSFER_OUTSIDE_DESC_DETAIL VARCHAR(2000) = ''
90
				IF(ISNULL(@CONTRACT_CODE, '') = '')
91
				BEGIN
92
					PRINT '1: ' + @PAY_AUTO_DESC_DETAIL
93
					SET @PAY_AUTO_DESC_DETAIL = @BRANCH_MANAGE_NAME + N' thanh toán chi phí ' + @REQ_PAY_AUTO_SERVICE_TYPE_NAME + N' ' + @PAY_PHASE + N' theo GDNTT số ' + @REQ_PAY_CODE
94
					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' ' + @PAY_PHASE + N' theo GDNTT số ' + @REQ_PAY_CODE))
95
					SET @PAY_AUTO_TRANSFER_OUTSIDE_DESC_DETAIL = UPPER(dbo.fChuyenCoDauThanhKhongDau('NH TMCP BAN VIET' + N' TTCP ' + @REQ_PAY_AUTO_SERVICE_TYPE_NAME + N' ' + @PAY_PHASE + N' theo GDNTT số ' + @REQ_PAY_CODE))
96
				END
97
				ELSE
98
				BEGIN
99
					PRINT '2: ' + @PAY_AUTO_DESC_DETAIL
100
					SET @PAY_AUTO_DESC_DETAIL = @BRANCH_MANAGE_NAME + N' thanh toán chi phí ' + @REQ_PAY_AUTO_SERVICE_TYPE_NAME + N' ' + @PAY_PHASE + N' theo hợp đồng số ' + @CONTRACT_CODE + N' theo GDNTT số ' + @REQ_PAY_CODE
101
					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' ' + @PAY_PHASE + N' theo hợp đồng số ' + @CONTRACT_CODE + N' theo GDNTT số ' + @REQ_PAY_CODE))
102
					SET @PAY_AUTO_TRANSFER_OUTSIDE_DESC_DETAIL = UPPER(dbo.fChuyenCoDauThanhKhongDau('NH TMCP BAN VIET' + N' TTCP ' + @REQ_PAY_AUTO_SERVICE_TYPE_NAME + N' ' + @PAY_PHASE + N' theo HD số ' + @CONTRACT_CODE + N' theo GDNTT số ' + @REQ_PAY_CODE))
103
				END
104
				-- END KHOI TAO GIA TRI select * from [TR_REQ_PAYMENT]
105
				PRINT '3'
106
				INSERT INTO [dbo].[TR_REQ_PAYMENT]
107
				(REQ_PAY_ID, REQ_PAY_CODE, BRANCH_ID, DEP_ID, REQ_REASON, REQ_TYPE, 
108
				REQ_ENTRIES, REQ_DESCRIPTION, REF_ID, PAY_PHASE, RECEIVER_PO, --NULL
109
				REQ_PAY_TYPE, REQ_DT, REQ_TYPE_CURRENCY, REQ_AMT, REQ_TEMP_AMT, 
110
				MAKER_ID, CREATE_DT, EDITOR_ID, AUTH_STATUS, CHECKER_ID, APPROVE_DT, --HC
111
				CREATE_DT_KT, MAKER_ID_KT, AUTH_STATUS_KT, CHECKER_ID_KT, APPROVE_DT_KT, CONFIRM_NOTE, --KT
112
				BRANCH_CREATE, NOTES, RECORD_STATUS, TRANSFER_MAKER, TRANSFER_DT, TRASFER_USER_RECIVE, PROCESS, RATE, IS_PERIOD, AMT_PAY, IS_CREATE_AUTO, TYPE_AUTO, IS_CREATE_AUTO_DONE, TR_REQ_PAY_AUTO_CHECK_STATUS)
113
				VALUES
114
				(@REQ_PAY_ID, @REQ_PAY_CODE, @BRANCH_ID, @DEP_ID, @PAY_AUTO_DESC_DETAIL, 'P', 
115
				NULL, NULL,  NULL, NULL, NULL,  --NULL
116
				'1', CONVERT(DATE, @EXPECTED_DT, 103), 'VND', @PAY_AUTO_AMT, NULL, 
117
				'admin', GETDATE(), NULL, 'A', 'admin', GETDATE(),  --HC
118
				GETDATE(), 'admin', 'A', 'admin', GETDATE(), NULL, --KT
119
				@BRANCH_CREATE, NULL, '1', 'admin', GETDATE(), 'admin', '0', 1, 'Y', NULL, 'Y', 'A', 'N', 'U')
120
				IF(ISNULL(@LIST_REQ_PAYMENT, '') = '')
121
				BEGIN
122
					SET @LIST_REQ_PAYMENT = @REQ_PAY_ID;
123
				END
124
				ELSE
125
				BEGIN
126
					SET @LIST_REQ_PAYMENT = @LIST_REQ_PAYMENT + ',' + @REQ_PAY_ID;
127
				END
128
				PRINT '4'
129
				-- TẠO LƯỚI PHIEU DE NGHI THANH TOAN CHO PYC
130
				INSERT INTO [dbo].[TR_REQ_PAY_AUTO_PAYMENTS]
131
				(REQ_PAY_AUTO_ID, REQ_PAY_ID, REQ_PAY_CODE, BRANCH_ID, DEP_ID, REQ_REASON, REQ_TYPE, 
132
				REQ_ENTRIES, REQ_DESCRIPTION, REF_ID, PAY_PHASE, RECEIVER_PO, --NULL
133
				REQ_PAY_TYPE, REQ_DT, REQ_TYPE_CURRENCY, REQ_AMT, REQ_TEMP_AMT, 
134
				MAKER_ID, CREATE_DT, EDITOR_ID, AUTH_STATUS, CHECKER_ID, APPROVE_DT, --HC
135
				CREATE_DT_KT, MAKER_ID_KT, AUTH_STATUS_KT, CHECKER_ID_KT, APPROVE_DT_KT, CONFIRM_NOTE, --KT
136
				BRANCH_CREATE, NOTES, RECORD_STATUS, TRANSFER_MAKER, TRANSFER_DT, TRASFER_USER_RECIVE, PROCESS, RATE, IS_PERIOD, AMT_PAY, REQ_PAY_AUTO_SCHEDULE_DETAIL_ID)
137
				VALUES
138
				(@REQ_PAY_AUTO_ID ,@REQ_PAY_ID, @REQ_PAY_CODE, @BRANCH_ID, @DEP_ID, @PAY_AUTO_DESC, 'P', 
139
				NULL, NULL,  NULL, NULL, NULL,  --NULL
140
				'1', CONVERT(DATE, @EXPECTED_DT, 103), 'VND', @PAY_AUTO_AMT, NULL, 
141
				'admin', GETDATE(), NULL, 'A', 'admin', GETDATE(),  --HC
142
				GETDATE(), 'admin', 'A', 'admin', GETDATE(), @CONFIRM_NOTE, --KT
143
				@BRANCH_CREATE, NULL, '1', 'admin', GETDATE(), @TRANSFER_USER_RECEIVE, '0', 1, 'Y', NULL, @REQ_PAY_AUTO_SCHEDULE_DETAIL_ID)
144
				-- INSERT VAO PL_PROCESS
145
				INSERT INTO dbo.PL_PROCESS(REQ_ID,PROCESS_ID,CHECKER_ID,APPROVE_DT,PROCESS_DESC,NOTES)
146
				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')
147
				-- TẠO LƯỚI THÔNG TIN THANH TOÁN HỢP ĐỒNG ĐỊNH KỲ
148
				DECLARE @REQ_PAYDTID_PERIOD VARCHAR(15);
149
				EXEC SYS_CodeMasters_Gen 'TR_REQ_ADVANCE_DT', @REQ_PAYDTID_PERIOD OUT;
150
				IF @REQ_PAYDTID_PERIOD='' OR @REQ_PAYDTID_PERIOD IS NULL GOTO ABORT;
151
				INSERT INTO TR_REQ_ADVANCE_DT (REQ_PAYDTID, REQ_PAY_ID,REF_ID, [TYPE], MAKER_ID, CREATE_DT, IS_CLOSED, REF_TYPE, DELIVERY_DT) 
152
				VALUES(@REQ_PAYDTID_PERIOD, @REQ_PAY_ID, @CONTRACT_ID, 'PAY', 'admin', GETDATE(), 'N', 'C', CONVERT(DATE,NULL,103))
153
				PRINT '5'
154
				-- TẠO LƯỚI THÔNG TIN THANH TOÁN HỢP ĐỒNG ĐỊNH KỲ
155
				DECLARE @PERIOD_ID VARCHAR(15);
156
				EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_PERIOD', @PERIOD_ID OUT;
157
				IF @PERIOD_ID='' OR @PERIOD_ID IS NULL GOTO ABORT;
158
				INSERT INTO TR_REQ_PAY_PERIOD(PERIOD_ID, REQ_PAY_ID, PAY_TYPE, CONTRACT_ID, PAY_DT_REAL ,OLD_INDEX, NEW_INDEX, AMT_PAY, 
159
				AUTH_STATUS_KT, CURRENCY, RATE, FROM_DATE, TO_DATE,AD_PAY_ID, PROCESS, PARENT_ID, PAY_PHASE, REASON, TYPE_COST,FR_LEVEL , TO_LEVEL)
160
				VALUES (@PERIOD_ID, @REQ_PAY_ID,'PAY', @CONTRACT_ID, NULL, NULL , NULL , @PAY_AUTO_AMT, 
161
				'A', 'VND', '1', NULL, NULL, NULL, '1', NULL, @PAY_PHASE, @PAY_AUTO_DESC_DETAIL, NULL, NULL, NULL )
162
				PRINT '6'
163
				-- TẠO LƯỚI THÔNG TIN HẠNG MỤC NGÂN SÁCH VÀ CHI PHÍ/
164
				/*
165
				DECLARE @p_BUDGET_ID VARCHAR(15);
166
				EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_BUDGET', @p_BUDGET_ID OUT;
167
				IF @p_BUDGET_ID='' OR @p_BUDGET_ID IS NULL GOTO ABORT;
168
				INSERT INTO TR_REQ_PAY_BUDGET(BUDG_ID, GD_ID, REQ_PAY_ID, TRADE_ID, AMT_APP, AMT_DO, AMT_EXE, AMT_REMAIN, MAKER_ID, CREATE_DT, CURRENCY, RATE, REASON, TYPE_COST, 
169
				FR_LEVEL, TO_LEVEL, MONTH_RATE, YEAR_RATE, BUDGET_TYPE, BRANCH_ID, DEP_ID, TLNAME, ROLENAME, BRANCH_TAKE_COST_ID, DEP_TAKE_COST_ID, KHOI_TAKE_COST_ID, BRANCH_KIND) 
170
				VALUES (@p_BUDGET_ID, @GD_ID, @p_REQ_PAY_AUTO_ID, @TRADE_ID, @AMT_APP, @AMT_DO, @AMT_EXE, @AMT_REMAIN_GD, @p_MAKER_ID, GETDATE(), @p_REQ_TYPE_CURRENCY, @p_RATE, @REASON, @TYPE_COST , 
171
				@FR_LEVEL, @TO_LEVEL, @MONTH_RATE, @YEAR_RATE, @BUDGET_TYPE, @BRANCH_ID, @DEP_ID, @TLNAME, @RoleName, @BRANCH_TAKE_COST_ID, @DEP_TAKE_COST_ID, @KHOI_TAKE_COST_ID, @BRANCH_KIND)
172
				*/
173
				-- TẠO LƯỚI THÔNG TIN PHƯƠNG THỨC THANH TOÁN
174
				DECLARE  @RECEIVE_ID VARCHAR(20), @RECEIVE_NAME VARCHAR(20), @REQ_PAY_REASON NVARCHAR(1000),@TOTAL_AMT DECIMAL(18, 2),@REQ_PAY_TYPE VARCHAR(20), @REQ_PAY_DESC NVARCHAR(1000),@REQ_PAY_ENTRIES VARCHAR(20),
175
				@ACC_NO VARCHAR(20), @ACC_NAME NVARCHAR(250), @ISSUED_BY NVARCHAR(250), @ISSUED_DT VARCHAR(20),@CURRENCY VARCHAR(20),@RATE DECIMAL(18,2),@CHECK_IN VARCHAR(20), @TYPE_TRANSFER VARCHAR(20), 
176
				@BANKCODE_NAPAS VARCHAR(20), @BANKCODE VARCHAR(20), @BANKNAME NVARCHAR(250), @SUB_ISSUED_BY NVARCHAR(250), @RECEIVER_DEBIT VARCHAR(20), @EMP_ID VARCHAR(20), @TEMP VARCHAR(20), @CREATE_DT VARCHAR(20)
177
				DECLARE cursorMethod CURSOR LOCAL FOR 
178
				SELECT EMP_ID, REQ_PAY_REASON, TOTAL_AMT, REQ_PAY_TYPE, REQ_PAY_DESC, REQ_PAY_ENTRIES, TEMP, MAKER_ID, CREATE_DT, 
179
				ACC_NO, ACC_NAME, ISSUED_BY, ISSUED_DT, CURRENCY, RATE, CHECK_IN, TYPE_TRANSFER, BANKCODE_NAPAS, BANKCODE, BANKNAME, SUB_ISSUED_BY, RECEIVER_DEBIT
180
				FROM TR_REQ_PAY_AUTO_METHOD
181
				WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID
182
				Open cursorMethod
183
				FETCH NEXT FROM cursorMethod INTO @EMP_ID, @REQ_PAY_REASON, @TOTAL_AMT, @REQ_PAY_TYPE, @REQ_PAY_DESC, @REQ_PAY_ENTRIES, @TEMP, @MAKER_ID, @CREATE_DT, 
184
				@ACC_NO, @ACC_NAME, @ISSUED_BY, @ISSUED_DT, @CURRENCY, @RATE, @CHECK_IN, @TYPE_TRANSFER, @BANKCODE_NAPAS, @BANKCODE, @BANKNAME, @SUB_ISSUED_BY, @RECEIVER_DEBIT
185
				WHILE @@FETCH_STATUS = 0
186
				BEGIN
187
					DECLARE @p_REQ_PAY_METHOD_ID VARCHAR(15);
188
					EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_METHOD', @p_REQ_PAY_METHOD_ID OUT;
189
					IF @p_REQ_PAY_METHOD_ID='' OR @p_REQ_PAY_METHOD_ID IS NULL GOTO ABORT;
190
					INSERT INTO TR_REQ_PAY_METHOD(METHOD_ID, REQ_PAY_ID, EMP_ID, REQ_PAY_REASON, TOTAL_AMT, REQ_PAY_TYPE, REQ_PAY_DESC, REQ_PAY_ENTRIES, TEMP, MAKER_ID, CREATE_DT, 
191
					ACC_NO, ACC_NAME, ISSUED_BY, ISSUED_DT, CURRENCY, RATE, CHECK_IN, TYPE_TRANSFER, BANKCODE_NAPAS, BANKCODE, BANKNAME, SUB_ISSUED_BY, RECEIVER_DEBIT)
192
					VALUES (@p_REQ_PAY_METHOD_ID, @REQ_PAY_ID, @RECEIVE_ID, @PAY_AUTO_DESC_DETAIL, @PAY_AUTO_AMT, @REQ_PAY_TYPE, @REQ_PAY_DESC, @REQ_PAY_ENTRIES, '', 'admin', GETDATE(),
193
					@ACC_NO, @ACC_NAME, @ISSUED_BY, CONVERT(DATE,@ISSUED_DT,103), @CURRENCY , @RATE, @CHECK_IN, @TYPE_TRANSFER, @BANKCODE_NAPAS, @BANKCODE, @BANKNAME, @SUB_ISSUED_BY, @RECEIVER_DEBIT )
194
				IF @@error<>0 GOTO ABORT;
195
				FETCH NEXT FROM cursorMethod INTO @EMP_ID, @REQ_PAY_REASON, @TOTAL_AMT, @REQ_PAY_TYPE, @REQ_PAY_DESC, @REQ_PAY_ENTRIES, @TEMP, @MAKER_ID, @CREATE_DT, 
196
				@ACC_NO, @ACC_NAME, @ISSUED_BY, @ISSUED_DT, @CURRENCY, @RATE, @CHECK_IN, @TYPE_TRANSFER, @BANKCODE_NAPAS, @BANKCODE, @BANKNAME, @SUB_ISSUED_BY, @RECEIVER_DEBIT
197
				END
198
				CLOSE cursorMethod
199
				DEALLOCATE cursorMethod
200
				PRINT '7'
201
		--BEGIN HACH TOAN
202
				-- TẠO LƯỚI THÔNG TIN HẠCH TOÁN
203
				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), 
204
				@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),
205
				@CREATE_DT_KT varchar(20), @APPROVE_DT_KT varchar(20), @IS_TRANSFER_EXTERNAL varchar(20), @DEP_ID_ENTRY varchar(20)
206
				DECLARE @TYPE_BUDGET_ALLOCAITON_ENTRIES VARCHAR(20), @PERCENT_BUDGET_ALLOCAITON_ENTRIES DECIMAL(18,2), @AMT_BUDGET_ALLOCAITON_ENTRIES DECIMAL(18,2)
207

    
208
				DECLARE @RES VARCHAR(10)
209
				DECLARE @TOTAL_CREDIT_AMT DECIMAL(18,0) = @PAY_AUTO_AMT;
210
				DECLARE @TAX DECIMAL(18,1) = 0.1
211
				DECLARE @l_TR_REQ_PAY_ENTRIES_D VARCHAR(15);
212
				DECLARE @TOTAL_PERCENT DECIMAL(18,2) = 0, @TOTAL_PERCENT_AMT DECIMAL(18,0) = 0;
213
				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);
214
						-- CO THUE
215
				IF(EXISTS(SELECT * FROM TR_REQ_PAY_AUTO_ENTRIES WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID AND ACCT = '353200002'))
216
				BEGIN
217
					IF(EXISTS(SELECT * FROM TR_REQ_PAY_AUTO_BUDGET_ALLOCATION WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID AND TYPE_BUDGET_ALLOCAITON = 'PERCENT'))-- THEM DIEU KIEN 1=2 VI CHUC NANG NAY CHUA HOAT DONG
218
					BEGIN
219
						PRINT 'CO THUE, CO PHAN CHIA'
220
					-- CREATE CURSOR CÁC ĐẦU CÓ --> LẤY ĐƯỢC CÁC CẶP BÚT TOÁN
221
						DECLARE cursorEntries_C CURSOR LOCAL FOR 
222
						SELECT REQ_PAY_AUTO_ID, ENTRY_PAIR
223
						FROM TR_REQ_PAY_AUTO_ENTRIES
224
						WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID AND DR_CR = 'C'
225

    
226
						Open cursorEntries_C
227
						FETCH NEXT FROM cursorEntries_C INTO @REQ_PAY_AUTO_ID, @ENTRY_PAIR
228
						WHILE @@FETCH_STATUS = 0
229
						BEGIN
230
						-- BEGIN CHẠY TỪNG CẶP BÚT TOÁN
231
							DECLARE cursorEntries CURSOR LOCAL FOR 
232
							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,
233
							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,
234
							IS_TRANSFER_EXTERNAL, TYPE_BUDGET_ALLOCAITON, PERCENT_BUDGET_ALLOCAITON, AMT_BUDGET_ALLOCAITON
235
							FROM TR_REQ_PAY_AUTO_ENTRIES
236
							WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID AND ENTRY_PAIR = @ENTRY_PAIR
237

    
238
							Open cursorEntries
239
							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,
240
							@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, 
241
							@IS_TRANSFER_EXTERNAL, @TYPE_BUDGET_ALLOCAITON_ENTRIES, @PERCENT_BUDGET_ALLOCAITON_ENTRIES, @AMT_BUDGET_ALLOCAITON_ENTRIES
242
							WHILE @@FETCH_STATUS = 0
243
							BEGIN
244

    
245
								EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_ENTRIES', @l_TR_REQ_PAY_ENTRIES_D OUT;
246
								IF @l_TR_REQ_PAY_ENTRIES_D='' OR @l_TR_REQ_PAY_ENTRIES_D IS NULL GOTO ABORT;
247
								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')
248

    
249
								IF(@DR_CR = 'D')
250
								BEGIN
251
									IF(ISNULL(@TOTAL_PERCENT, 0) + ISNULL(@PERCENT_BUDGET_ALLOCAITON_ENTRIES, 0) = 100)
252
									BEGIN
253
										PRINT 'DONG NO CUOI'
254
										DECLARE @A_CREDIT_AMT DECIMAL(18,0) = @PAY_AUTO_AMT - @TOTAL_PERCENT_AMT
255
										DECLARE @A_DEBIT_AMT DECIMAL(18,0) = @A_CREDIT_AMT/1.1
256
										DECLARE @A_3532_AMT DECIMAL(18,0) = @A_CREDIT_AMT - @A_DEBIT_AMT
257
										print '@A_CREDIT_AMT: ' + CONVERT(VARCHAR(15),@A_CREDIT_AMT) 
258
										print '@A_DEBIT_AMT: ' + CONVERT(VARCHAR(15),@A_DEBIT_AMT) 
259
										print '@A_3532_AMT: ' + CONVERT(VARCHAR(15),@A_3532_AMT) 
260

    
261
										IF(ISNULL(@ACCT, '') = '353200002')
262
										BEGIN
263
											print '@ACCT 3532: ' + @ACCT
264
											print '@A_3532_AMT 3532: ' + CONVERT(VARCHAR(15),@A_3532_AMT) 
265
											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],
266
											[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])
267
											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,
268
											@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)
269
										END
270
										ELSE
271
										BEGIN
272
											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],
273
											[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])
274
											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,
275
											@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)
276
										END
277
									END
278
									ELSE
279
									BEGIN
280
										PRINT 'CHUA PHAI DONG NO CUOI'
281
										DECLARE @B_CREDIT_AMT DECIMAL(18,0) = CONVERT(DECIMAL, @PAY_AUTO_AMT*@PERCENT_BUDGET_ALLOCAITON_ENTRIES/100)
282
										DECLARE @B_DEBIT_AMT DECIMAL(18,0) = @B_CREDIT_AMT/1.1
283
										DECLARE @B_3532_AMT DECIMAL(18,0) = @B_CREDIT_AMT - @B_DEBIT_AMT
284
										print '@B_CREDIT_AMT: ' + CONVERT(VARCHAR(15),@B_CREDIT_AMT)
285
										print '@B_DEBIT_AMT: ' + CONVERT(VARCHAR(15),@B_DEBIT_AMT)
286
										print '@B_3532_AMT: ' +CONVERT(VARCHAR(15),@B_3532_AMT) 
287

    
288
										IF(ISNULL(@ACCT, '') = '353200002')
289
										BEGIN
290
											print '@ACCT 3532: ' + @ACCT
291
											print '@B_3532_AMT hach toan: ' +CONVERT(VARCHAR(15),@B_3532_AMT) 
292
											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],
293
											[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])
294
											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,
295
											@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)
296
										END
297
										ELSE
298
										BEGIN
299
											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],
300
											[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])
301
											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,
302
											@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)
303
										END
304
									END
305
								END
306
								ELSE
307
								BEGIN
308
									IF(ISNULL(@TOTAL_PERCENT, 0) + ISNULL(@PERCENT_BUDGET_ALLOCAITON_ENTRIES, 0) = 100)
309
									BEGIN
310
										PRINT 'DONG CO CUOI'
311
										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],
312
										[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])
313
										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, @PAY_AUTO_AMT - @TOTAL_PERCENT_AMT, @CURRENCY, @EXC_RATE,
314
										@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)
315
									END
316
									ELSE
317
									BEGIN
318
										PRINT 'CHUA PHAI DONG CO CUOI'
319
										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],
320
										[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])
321
										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, @PAY_AUTO_AMT*@PERCENT_BUDGET_ALLOCAITON_ENTRIES/100), @CURRENCY, @EXC_RATE,
322
										@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)
323
									END
324
										
325
								END
326

    
327
							IF @@error<>0 GOTO ABORT;
328
							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,
329
							@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,
330
							@IS_TRANSFER_EXTERNAL, @TYPE_BUDGET_ALLOCAITON_ENTRIES, @PERCENT_BUDGET_ALLOCAITON_ENTRIES, @AMT_BUDGET_ALLOCAITON_ENTRIES
331
							END
332
							CLOSE cursorEntries
333
							DEALLOCATE cursorEntries
334
						-- END CHẠY TỪNG CẶP BÚT TOÁN
335
								
336
							SET @TOTAL_PERCENT = @TOTAL_PERCENT + @PERCENT_BUDGET_ALLOCAITON_ENTRIES;
337
							SET @TOTAL_PERCENT_AMT = @TOTAL_PERCENT_AMT + @PAY_AUTO_AMT*@PERCENT_BUDGET_ALLOCAITON_ENTRIES/100
338

    
339
						IF @@error<>0 GOTO ABORT;
340
						FETCH NEXT FROM cursorEntries_C INTO @REQ_PAY_AUTO_ID, @ENTRY_PAIR
341
						END
342
						CLOSE cursorEntries_C
343
						DEALLOCATE cursorEntries_C
344

    
345
							
346
						--- BAN BUT TOAN VAO CORE
347
						EXEC [dbo].[PAY_ENTRIES_POST_SetApp] @REQ_PAY_ID,'admin','admin', @RES OUT
348
					END
349
					ELSE
350
					BEGIN
351
						PRINT 'CO THUE, KHONG PHAN CHIA 2 NO - 1 CO'
352
						DECLARE @DEBIT_AMT_1 DECIMAL(18,0) = @TOTAL_CREDIT_AMT/1.1
353
						DECLARE @3532_AMT DECIMAL(18,0) = @TOTAL_CREDIT_AMT - @DEBIT_AMT_1
354

    
355
						DECLARE cursorEntries CURSOR LOCAL FOR 
356
						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,
357
						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
358
						FROM TR_REQ_PAY_AUTO_ENTRIES
359
						WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID
360
						Open cursorEntries
361
						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,
362
						@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
363
						WHILE @@FETCH_STATUS = 0
364
						BEGIN
365

    
366
							EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_ENTRIES', @l_TR_REQ_PAY_ENTRIES_D OUT;
367
							IF @l_TR_REQ_PAY_ENTRIES_D='' OR @l_TR_REQ_PAY_ENTRIES_D IS NULL GOTO ABORT;
368

    
369
							IF(@DR_CR = 'D')	-- Nợ
370
							BEGIN
371
								IF(@ACCT = '353200002')
372
								BEGIN
373
									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],
374
									[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])
375
									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, @3532_AMT, @CURRENCY, @EXC_RATE,
376
									@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)
377
								END
378
								ELSE
379
								BEGIN
380
									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],
381
									[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])
382
									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, @DEBIT_AMT_1, @CURRENCY, @EXC_RATE,
383
									@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)
384
								END
385
							END
386
							ELSE
387
							BEGIN
388
								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],
389
								[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])
390
								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, @PAY_AUTO_AMT, @CURRENCY, @EXC_RATE,
391
								@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)
392
							END
393

    
394
							
395
						IF @@error<>0 GOTO ABORT;
396
						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,
397
						@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
398
						END
399
						CLOSE cursorEntries
400
						DEALLOCATE cursorEntries
401
						--- BAN BUT TOAN VAO CORE
402
						EXEC [dbo].[PAY_ENTRIES_POST_SetApp] @REQ_PAY_ID,'admin','admin', @RES OUT 
403
					END
404
				END
405
				ELSE	-- KHONG THUE
406
				BEGIN
407
					IF(EXISTS(SELECT * FROM TR_REQ_PAY_AUTO_BUDGET_ALLOCATION WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID))
408
					BEGIN
409
						PRINT 'KHONG THUE, CO PHAN CHIA'
410
						IF(EXISTS(SELECT * FROM TR_REQ_PAY_AUTO_BUDGET_ALLOCATION WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID AND TYPE_BUDGET_ALLOCAITON = 'PERCENT'))
411
						BEGIN
412
							PRINT 'KHONG THUE, CO PHAN CHIA, PHAN CHIA THEO TY LE'
413
						-- CREATE CURSOR CÁC ĐẦU CÓ
414
							DECLARE cursorEntries_C CURSOR LOCAL FOR 
415
							SELECT REQ_PAY_AUTO_ID, ENTRY_PAIR
416
							FROM TR_REQ_PAY_AUTO_ENTRIES
417
							WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID AND DR_CR = 'C'
418

    
419
							Open cursorEntries_C
420
							FETCH NEXT FROM cursorEntries_C INTO @REQ_PAY_AUTO_ID, @ENTRY_PAIR
421
							WHILE @@FETCH_STATUS = 0
422
							BEGIN
423
							-- BEGIN CHẠY TỪNG CẶP BÚT TOÁN
424
								DECLARE cursorEntries CURSOR LOCAL FOR 
425
								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,
426
								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,
427
								IS_TRANSFER_EXTERNAL, TYPE_BUDGET_ALLOCAITON, PERCENT_BUDGET_ALLOCAITON, AMT_BUDGET_ALLOCAITON
428
								FROM TR_REQ_PAY_AUTO_ENTRIES
429
								WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID AND ENTRY_PAIR = @ENTRY_PAIR
430

    
431
								Open cursorEntries
432
								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,
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, 
434
								@IS_TRANSFER_EXTERNAL, @TYPE_BUDGET_ALLOCAITON_ENTRIES, @PERCENT_BUDGET_ALLOCAITON_ENTRIES, @AMT_BUDGET_ALLOCAITON_ENTRIES
435
								WHILE @@FETCH_STATUS = 0
436
								BEGIN
437

    
438
									EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_ENTRIES', @l_TR_REQ_PAY_ENTRIES_D OUT;
439
									IF @l_TR_REQ_PAY_ENTRIES_D='' OR @l_TR_REQ_PAY_ENTRIES_D IS NULL GOTO ABORT;
440

    
441
									IF(@DR_CR = 'D')
442
									BEGIN
443
										IF(ISNULL(@TOTAL_PERCENT, 0) + ISNULL(@PERCENT_BUDGET_ALLOCAITON_ENTRIES, 0) = 100)
444
										BEGIN
445
											PRINT 'DONG NO CUOI'
446
											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],
447
											[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])
448
											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, @PAY_AUTO_AMT - @TOTAL_PERCENT_AMT, @CURRENCY, @EXC_RATE,
449
											@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)
450
										END
451
										ELSE
452
										BEGIN
453
											PRINT 'CHUA PHAI DONG NO CUOI'
454

    
455
											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],
456
											[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])
457
											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, @PAY_AUTO_AMT*@PERCENT_BUDGET_ALLOCAITON_ENTRIES/100), @CURRENCY, @EXC_RATE,
458
											@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)
459
										END
460
									END
461
									ELSE
462
									BEGIN
463
										IF(ISNULL(@TOTAL_PERCENT, 0) + ISNULL(@PERCENT_BUDGET_ALLOCAITON_ENTRIES, 0) = 100)
464
										BEGIN
465
											PRINT 'DONG CO CUOI'
466
											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],
467
											[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])
468
											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, @PAY_AUTO_AMT - @TOTAL_PERCENT_AMT, @CURRENCY, @EXC_RATE,
469
											@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)
470
										END
471
										ELSE
472
										BEGIN
473
											PRINT 'CHUA PHAI DONG CO CUOI'
474
											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],
475
											[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])
476
											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, @PAY_AUTO_AMT*@PERCENT_BUDGET_ALLOCAITON_ENTRIES/100), @CURRENCY, @EXC_RATE,
477
											@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)
478
										END
479
										
480
									END
481

    
482
								IF @@error<>0 GOTO ABORT;
483
								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,
484
								@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,
485
								@IS_TRANSFER_EXTERNAL, @TYPE_BUDGET_ALLOCAITON_ENTRIES, @PERCENT_BUDGET_ALLOCAITON_ENTRIES, @AMT_BUDGET_ALLOCAITON_ENTRIES
486
								END
487
								CLOSE cursorEntries
488
								DEALLOCATE cursorEntries
489
							-- END CHẠY TỪNG CẶP BÚT TOÁN
490
								
491
								SET @TOTAL_PERCENT = @TOTAL_PERCENT + @PERCENT_BUDGET_ALLOCAITON_ENTRIES;
492
								SET @TOTAL_PERCENT_AMT = @TOTAL_PERCENT_AMT + @PAY_AUTO_AMT*@PERCENT_BUDGET_ALLOCAITON_ENTRIES/100
493

    
494
							IF @@error<>0 GOTO ABORT;
495
							FETCH NEXT FROM cursorEntries_C INTO @REQ_PAY_AUTO_ID, @ENTRY_PAIR
496
							END
497
							CLOSE cursorEntries_C
498
							DEALLOCATE cursorEntries_C
499

    
500
							
501
							--- BAN BUT TOAN VAO CORE
502
							EXEC [dbo].[PAY_ENTRIES_POST_SetApp] @REQ_PAY_ID,'admin','admin', @RES OUT
503
						END
504
						ELSE
505
						BEGIN
506
							PRINT 'KHONG THUE, CO PHAN CHIA, PHAN CHIA THEO SO TIEN'
507
							DECLARE cursorEntries CURSOR LOCAL FOR 
508
							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,
509
							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, 
510
							IS_TRANSFER_EXTERNAL, TYPE_BUDGET_ALLOCAITON, PERCENT_BUDGET_ALLOCAITON, AMT_BUDGET_ALLOCAITON
511
							FROM TR_REQ_PAY_AUTO_ENTRIES
512
							WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID
513
							Open cursorEntries
514
							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,
515
							@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,
516
							@IS_TRANSFER_EXTERNAL, @TYPE_BUDGET_ALLOCAITON_ENTRIES, @PERCENT_BUDGET_ALLOCAITON_ENTRIES, @AMT_BUDGET_ALLOCAITON_ENTRIES
517
							WHILE @@FETCH_STATUS = 0
518
							BEGIN
519
								EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_ENTRIES', @l_TR_REQ_PAY_ENTRIES_D OUT;
520
								IF @l_TR_REQ_PAY_ENTRIES_D='' OR @l_TR_REQ_PAY_ENTRIES_D IS NULL GOTO ABORT;
521

    
522
								IF(@DR_CR = 'D')
523
								BEGIN
524
									IF(ISNULL(@TOTAL_MONEY, 0) + ISNULL(@AMT_BUDGET_ALLOCAITON_ENTRIES, 0 ) = ISNULL(@TOTAL_MONEY_AMT, 0) )
525
									BEGIN
526
										PRINT 'DONG NO CUOI'
527
										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],
528
										[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])
529
										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, @PAY_AUTO_AMT - @TOTAL_MONEY, @CURRENCY, @EXC_RATE,
530
										@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)
531
									END
532
									ELSE
533
									BEGIN
534
										PRINT 'CHUA PHAI DONG NO CUOI'
535
										SET @TOTAL_MONEY = @TOTAL_MONEY + @AMT_BUDGET_ALLOCAITON_ENTRIES
536

    
537
										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],
538
										[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])
539
										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, @AMT_BUDGET_ALLOCAITON_ENTRIES, @CURRENCY, @EXC_RATE,
540
										@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)
541
									END
542
								END
543
								ELSE
544
								BEGIN
545
									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],
546
									[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])
547
									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, @PAY_AUTO_AMT, @CURRENCY, @EXC_RATE,
548
									@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)
549
								END
550

    
551
							IF @@error<>0 GOTO ABORT;
552
							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,
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,
554
							@IS_TRANSFER_EXTERNAL, @TYPE_BUDGET_ALLOCAITON_ENTRIES, @PERCENT_BUDGET_ALLOCAITON_ENTRIES, @AMT_BUDGET_ALLOCAITON_ENTRIES
555
							END
556
							CLOSE cursorEntries
557
							DEALLOCATE cursorEntries
558
							--- BAN BUT TOAN VAO CORE
559
							EXEC [dbo].[PAY_ENTRIES_POST_SetApp] @REQ_PAY_ID,'admin','admin', @RES OUT
560
						END
561
					END
562
					ELSE
563
					BEGIN
564
						PRINT 'KHONG THUE, KHONG PHAN CHIA 1 NO - 1 CO'
565
						DECLARE cursorEntries CURSOR LOCAL FOR 
566
						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,
567
						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
568
						FROM TR_REQ_PAY_AUTO_ENTRIES
569
						WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID
570
						Open cursorEntries
571
						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,
572
						@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
573
						WHILE @@FETCH_STATUS = 0
574
						BEGIN
575

    
576
							EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_ENTRIES', @l_TR_REQ_PAY_ENTRIES_D OUT;
577
							IF @l_TR_REQ_PAY_ENTRIES_D='' OR @l_TR_REQ_PAY_ENTRIES_D IS NULL GOTO ABORT;
578

    
579
							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],
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
							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, @PAY_AUTO_AMT, @CURRENCY, @EXC_RATE,
582
							@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)
583
						
584
						IF @@error<>0 GOTO ABORT;
585
						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,
586
						@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
587
						END
588
						CLOSE cursorEntries
589
						DEALLOCATE cursorEntries
590
						--- BAN BUT TOAN VAO CORE
591
						EXEC [dbo].[PAY_ENTRIES_POST_SetApp] @REQ_PAY_ID,'admin','admin', @RES OUT 
592
					END
593
				END
594
				
595
		--END HACH TOAN
596
				-- TẠO LƯỚI CHUYỂN TIỀN NGOÀI HỆ THỐNG
597
				-- LUOI DON VI CHUYEN
598
				DECLARE @BRANCH_TRANFSER_NAME NVARCHAR(255), @TYPE_TRANSFER_ID VARCHAR(15), @PRODUCT_ID VARCHAR(15), @OBJECT_TRANSFER_ID VARCHAR(15), @ACC_NO_TRANSFER VARCHAR(255), @BRANCH_TRANSFER_ID VARCHAR(15)
599
				DECLARE cursorTrans CURSOR LOCAL FOR 
600
				SELECT MAKER_ID, BRANCH_TRANFSER_NAME, TYPE_TRANSFER_ID, PRODUCT_ID, OBJECT_TRANSFER_ID, BRANCH_ID, ACC_NO_TRANSFER, BRANCH_TRANSFER_ID
601
				FROM TR_REQ_PAY_AUTO_TRANS_OUTSIDE_TRANS
602
				WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID
603
				Open cursorTrans
604
				PRINT '10'
605
				FETCH NEXT FROM cursorTrans INTO @MAKER_ID_KT, @BRANCH_TRANFSER_NAME, @TYPE_TRANSFER_ID , @PRODUCT_ID , @OBJECT_TRANSFER_ID , @BRANCH_ID, @ACC_NO_TRANSFER , @BRANCH_TRANSFER_ID
606
				WHILE @@FETCH_STATUS = 0
607
				BEGIN
608
					DECLARE @p_TR_REQ_TRANS_OUTSIDE_ID VARCHAR(15)
609
					EXEC SYS_CodeMasters_Gen 'TR_REQ_OUTSIDE_TRANS', @p_TR_REQ_TRANS_OUTSIDE_ID OUT;
610
					IF @p_TR_REQ_TRANS_OUTSIDE_ID='' OR @p_TR_REQ_TRANS_OUTSIDE_ID IS NULL GOTO ABORT;
611
					INSERT INTO TR_REQ_PAY_TRANS_OUTSIDE_TRANS(TR_REQ_TRANS_OUTSIDE_ID ,REQ_PAY_ID ,MAKER_ID , CREATE_DT , AUTH_STATUS, AUTH_STATUS_KT , 
612
					BRANCH_TRANFSER_NAME,TYPE_TRANSFER_ID , PRODUCT_ID , OBJECT_TRANSFER_ID , BRANCH_ID, ACC_NO_TRANSFER , BRANCH_TRANSFER_ID)
613
					VALUES (@p_TR_REQ_TRANS_OUTSIDE_ID ,@REQ_PAY_ID ,'admin' , GETDATE(), NULL , NULL, 
614
					@BRANCH_TRANFSER_NAME, @TYPE_TRANSFER_ID , @PRODUCT_ID , @OBJECT_TRANSFER_ID , @BRANCH_ID, @ACC_NO_TRANSFER , @BRANCH_TRANSFER_ID)
615
				IF @@error<>0 GOTO ABORT;
616
				FETCH NEXT FROM cursorTrans INTO @MAKER_ID_KT, @BRANCH_TRANFSER_NAME, @TYPE_TRANSFER_ID , @PRODUCT_ID , @OBJECT_TRANSFER_ID , @BRANCH_ID, @ACC_NO_TRANSFER , @BRANCH_TRANSFER_ID
617
				END
618
				CLOSE cursorTrans
619
				DEALLOCATE cursorTrans
620
				PRINT '11'
621
				-- LUOI DON VI NHAN
622
				DECLARE @CHANEL_PAYMENT_ID VARCHAR(15), @CITAD1_ID VARCHAR(15), @BANK_RECEIVE_ID VARCHAR(250), @OBJECT_RECEIVE_ID VARCHAR(15), 
623
				@BRANCH_RECEIVE_ID VARCHAR(15), @BRANCH_RECEIVE_NAME NVARCHAR(255), @ACC_NO_RECEIVE VARCHAR(255), @TRADE_AMT DECIMAL(18, 0), @TRADE_DESC NVARCHAR(120), @SUB_BANK_RECEIVE_NAME nvarchar(MAX), @REF_NO VARCHAR(50)
624
				DECLARE cursorRec CURSOR LOCAL FOR 
625
				SELECT MAKER_ID, CHANEL_PAYMENT_ID, CITAD1_ID, BANK_RECEIVE_ID, OBJECT_RECEIVE_ID, BRANCH_RECEIVE_ID, BRANCH_RECEIVE_NAME, ACC_NO_RECEIVE, TRADE_AMT, TRADE_DESC, SUB_BANK_RECEIVE_NAME, ENTRY_PAIR, REF_NO
626
				FROM TR_REQ_PAY_AUTO_TRANS_OUTSIDE_REC
627
				WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID
628
				Open cursorRec
629
				PRINT '12'
630
				FETCH NEXT FROM cursorRec INTO @MAKER_ID_KT, @CHANEL_PAYMENT_ID, @CITAD1_ID, @BANK_RECEIVE_ID, @OBJECT_RECEIVE_ID, @BRANCH_RECEIVE_ID, @BRANCH_RECEIVE_NAME, @ACC_NO_RECEIVE, @TRADE_AMT, @TRADE_DESC, @SUB_BANK_RECEIVE_NAME, @ENTRY_PAIR, @REF_NO
631
				WHILE @@FETCH_STATUS = 0
632
				BEGIN
633
					DECLARE @p_REQ_TRANS_OUTSIDE_REC_ID VARCHAR(15);
634
					EXEC SYS_CodeMasters_Gen 'TR_REQ_OUTSIDE_REC', @p_REQ_TRANS_OUTSIDE_REC_ID OUT;
635
					IF @p_REQ_TRANS_OUTSIDE_REC_ID='' OR @p_REQ_TRANS_OUTSIDE_REC_ID IS NULL GOTO ABORT;
636
					INSERT INTO TR_REQ_PAY_TRANS_OUTSIDE_REC(REQ_TRANS_OUTSIDE_REC_ID, REQ_PAY_ID, MAKER_ID, CREATE_DT, AUTH_STATUS, AUTH_STATUS_KT,
637
					CHANEL_PAYMENT_ID, CITAD1_ID, BANK_RECEIVE_ID, OBJECT_RECEIVE_ID, BRANCH_RECEIVE_ID, BRANCH_RECEIVE_NAME, ACC_NO_RECEIVE, TRADE_AMT, TRADE_DESC, SUB_BANK_RECEIVE_NAME, ENTRY_PAIR, REF_NO)
638
					VALUES (@p_REQ_TRANS_OUTSIDE_REC_ID, @REQ_PAY_ID, 'admin', GETDATE(), NULL, NULL,
639
					@CHANEL_PAYMENT_ID, @CITAD1_ID, @BANK_RECEIVE_ID, @OBJECT_RECEIVE_ID, @BRANCH_RECEIVE_ID, @BRANCH_RECEIVE_NAME, @ACC_NO_RECEIVE, @PAY_AUTO_AMT, @PAY_AUTO_TRANSFER_OUTSIDE_DESC_DETAIL, @SUB_BANK_RECEIVE_NAME, @ENTRY_PAIR, @REF_NO)
640
				IF @@error<>0 GOTO ABORT;
641
				FETCH NEXT FROM cursorRec INTO @MAKER_ID_KT, @CHANEL_PAYMENT_ID, @CITAD1_ID, @BANK_RECEIVE_ID, @OBJECT_RECEIVE_ID, @BRANCH_RECEIVE_ID, @BRANCH_RECEIVE_NAME, @ACC_NO_RECEIVE, @TRADE_AMT, @TRADE_DESC, @SUB_BANK_RECEIVE_NAME, @ENTRY_PAIR, @REF_NO
642
				END
643
				CLOSE cursorRec
644
				DEALLOCATE cursorRec
645
				PRINT '13'
646
				
647
				UPDATE TR_REQ_PAY_AUTO_SCHEDULE_DETAIL 
648
				SET PAY_AUTO_DESC = @PAY_AUTO_DESC_DETAIL, PAY_AUTO_STATUS = 'Y', EXACT_DT = GETDATE() 
649
				WHERE REQ_PAY_AUTO_SCHEDULE_DETAIL_ID = @REQ_PAY_AUTO_SCHEDULE_DETAIL_ID
650
			FETCH NEXT FROM cursorScheduleDetail INTO @REQ_PAY_AUTO_SCHEDULE_DETAIL_ID, @EXPECTED_DT, @PAY_AUTO_AMT, @PAY_AUTO_DESC, @PAY_AUTO_STATUS, @START_DT, @END_DT, @TYPE_PERIOD, @PAY_PHASE
651
			END
652
			CLOSE cursorScheduleDetail
653
			DEALLOCATE cursorScheduleDetail
654

    
655
		-- BEGIN VALIDATE LUOI HACH TOAN SAU KHI TAO
656
			DECLARE  @l_REQ_PAY_ID varchar(15), @ET_ID varchar(15), @AMT_ET DECIMAL(18,0), @ACC_ET varchar(25), @DRCR_ET varchar(25), @SUM_ET DECIMAL(18,0) = 0
657
			DECLARE cursorProduct CURSOR LOCAL FOR SELECT REQ_PAY_ID, ENTRY_PAIR, AMT, ACCT, DR_CR FROM TR_REQ_PAY_ENTRIES A WHERE A.REQ_PAY_ID = @REQ_PAY_ID
658
			Open cursorProduct
659

    
660
			FETCH NEXT FROM cursorProduct INTO @l_REQ_PAY_ID , @ET_ID, @AMT_ET, @ACC_ET , @DRCR_ET
661
			WHILE @@FETCH_STATUS = 0
662
			BEGIN
663
				IF	(		(SELECT COUNT (*) FROM TR_REQ_PAY_ENTRIES WHERE REQ_PAY_ID = @REQ_PAY_ID AND ENTRY_PAIR =@ET_ID AND DR_CR ='D') > 1 
664
						AND (SELECT COUNT (*) FROM TR_REQ_PAY_ENTRIES WHERE REQ_PAY_ID = @REQ_PAY_ID AND ENTRY_PAIR =@ET_ID AND DR_CR ='C') > 1
665
					)
666
				BEGIN
667
					-- Sai cấu trúc Nợ - Có
668
					DELETE FROM PAY_ENTRIES_POST WHERE TRN_ID = @REQ_PAY_ID AND MAKER_ID = 'admin'
669
				END
670

    
671
				-- KIEM TRA SO TIEN NO CO
672
				IF (ISNULL((SELECT SUM(AMT) FROM TR_REQ_PAY_ENTRIES WHERE REQ_PAY_ID = @REQ_PAY_ID AND DR_CR ='C' AND ENTRY_PAIR =@ET_ID),0) <> ISNULL((SELECT SUM(AMT) FROM TR_REQ_PAY_ENTRIES WHERE REQ_PAY_ID = @REQ_PAY_ID AND DR_CR ='D' AND ENTRY_PAIR =@ET_ID),0))
673
				BEGIN
674
					-- Số tiền bút toán Nợ phải bằng với số tiền bút toán Có
675
					DELETE FROM PAY_ENTRIES_POST WHERE TRN_ID = @REQ_PAY_ID AND MAKER_ID = 'admin'
676
				END
677

    
678
				FETCH NEXT FROM cursorProduct INTO  @l_REQ_PAY_ID , @ET_ID, @AMT_ET, @ACC_ET , @DRCR_ET
679
			END
680
			CLOSE cursorProduct;
681
			DEALLOCATE cursorProduct;
682

    
683
			IF(EXISTS(SELECT * FROM TR_REQ_PAY_ENTRIES WHERE REQ_PAY_ID = @REQ_PAY_ID))
684
			BEGIN
685
				DECLARE  @SUM_CR DECIMAL(18,2), @SUM_DR DECIMAL(18,2)
686
				SET @SUM_CR =ISNULL((SELECT SUM(AMT*ISNULL(EXC_RATE,1)) FROM TR_REQ_PAY_ENTRIES WHERE REQ_PAY_ID = @REQ_PAY_ID AND DR_CR ='C'),0)
687
				SET @SUM_DR =ISNULL((SELECT SUM(AMT*ISNULL(EXC_RATE,1)) FROM TR_REQ_PAY_ENTRIES WHERE REQ_PAY_ID = @REQ_PAY_ID AND DR_CR ='D'),0)
688
				IF(@SUM_CR <> @SUM_DR)
689
				BEGIN
690
					-- Tổng hạch toán nợ phải bằng tổng hạch toán có
691
					DELETE FROM PAY_ENTRIES_POST WHERE TRN_ID = @REQ_PAY_ID AND MAKER_ID = 'admin'
692
				END
693
			END
694
		-- END VALIDATE LUOI HACH TOAN SAU KHI TAO
695
		END
696
	FETCH NEXT FROM cursorPaymentAuto INTO @REQ_PAY_AUTO_ID, @REQ_PAY_AUTO_CODE, @REQ_PAY_AUTO_TYPE, @REQ_PAY_AUTO_SERVICE_TYPE, @REQ_PAY_AUTO_STATUS, 
697
	@REQ_PAY_AUTO_EFFECTIVE_DT, @BRANCH_ID, @DEP_ID, @BRANCH_CREATE, @TRANSFER_USER_RECEIVE, @CONFIRM_NOTE, 
698
	@CONTRACT_ID, @TRANSFER_MAKER, @TRANSFER_DT, @PROCESS, @AUTH_STATUS_KT, @RECORD_STATUS, @MAKER_ID, @CHECKER_ID, @MAKER_ID_KT, @CHECKER_ID_KT, @BRANCH_NAME, @REQ_PAY_AUTO_SERVICE_TYPE_NAME, @CONTRACT_CODE
699
	END
700
	CLOSE cursorPaymentAuto
701
	DEALLOCATE cursorPaymentAuto
702
	
703
COMMIT TRANSACTION
704
SELECT '0' as Result, @LIST_REQ_PAYMENT list_req_payment, N'Thêm mới thành công' ErrorDesc
705
RETURN '0'
706
ABORT:
707
BEGIN
708
	ROLLBACK TRANSACTION
709
	SELECT '-1' as Result, @LIST_REQ_PAYMENT list_req_payment, N'Lỗi không xác định' ErrorDesc
710
	RETURN '-1'
711
End
712

    
713
GO
714

    
715
ALTER PROCEDURE [dbo].[TR_REQ_PAY_AUTO_CREATE_REQ_PAYMENT_FROM_SYSTEM_INVOICE]
716
@p_XMP_RECURRING XML
717
AS
718
BEGIN TRANSACTION
719

    
720
	DECLARE @list_req_payment NVARCHAR(MAX) = ''
721
-- DS CAC KY DA THANH TOAN
722
	DECLARE @billRef VARCHAR(20), @billCode VARCHAR(20), @customerName NVARCHAR(MAX), @amount VARCHAR(20), @accountNo VARCHAR(20), @accountType VARCHAR(20), 
723
	@createdTime VARCHAR(21), @partner VARCHAR(20), @resultCode VARCHAR(20), @resultDesc NVARCHAR(MAX), @transDesc NVARCHAR(MAX), @coreXref VARCHAR(20), @partnerAccount VARCHAR(20), 
724
	@billCodeAlias VARCHAR(20), @prvCode VARCHAR(20), @sevCode VARCHAR(20), @year VARCHAR(20), @customerAddress VARCHAR(20), @month VARCHAR(20), 
725
	@accountName VARCHAR(20), @accountNoRec VARCHAR(20), @accountNameRec VARCHAR(20), @billDate VARCHAR(20)
726

    
727
	DECLARE @hDocRecurring INT EXEC sp_xml_preparedocument @hDocRecurring OUTPUT, @p_XMP_RECURRING;
728
	DECLARE XmlAutoRecurring CURSOR LOCAL FOR
729
	SELECT * FROM OPENXML(@hDocRecurring, 'Root/XmlAutoRecurring',2) 
730
	WITH(billRef VARCHAR(20), billCode VARCHAR(20), customerName NVARCHAR(MAX), amount VARCHAR(20), accountNo VARCHAR(20), accountType VARCHAR(20), createdTime VARCHAR(30),
731
	[partner] VARCHAR(20), resultCode VARCHAR(20), resultDesc NVARCHAR(MAX), transDesc NVARCHAR(MAX), coreXref VARCHAR(20), partnerAccount VARCHAR(20), [month] VARCHAR(20))
732
	OPEN XmlAutoRecurring
733

    
734
--- DUYET QUA TUNG KY THANH TOAN
735
	FETCH NEXT FROM XmlAutoRecurring INTO @billRef, @billCode, @customerName, @amount, @accountNo, @accountType, @createdTime,
736
	@partner, @resultCode, @resultDesc, @transDesc, @coreXref, @partnerAccount, @month
737
	WHILE @@fetch_status=0 
738
	BEGIN
739
		-- LUU LOG KY THANH TOAN
740
		INSERT INTO TR_REQ_PAY_AUTO_RECURRING_LOG(billRef, billCode, customerName, amount, accountNo, accountType, createdTime,
741
		[partner], resultCode, resultDesc, transDesc, coreXref, partnerAccount, MAKER_ID, CREATE_DT)
742
		VALUES (@billRef, @billCode, @customerName, @amount, @accountNo, @accountType, CONVERT(DATE, @createdTime, 103),
743
		@partner, @resultCode, @resultDesc, @transDesc, @coreXref, @partnerAccount, 'admin', GETDATE())
744

    
745
		IF(@resultCode NOT IN  ('00', '100'))
746
		BEGIN
747
			PRINT 'KY THANH TOAN KHONG HOP LE' + @billRef
748
			-- THEM VAO LOG CAC KY THANH TOAN LOI
749
		END
750
		ELSE IF(@accountType <> 'A')
751
		BEGIN
752
			PRINT 'KHONG PHAI THANH TOAN BANG THE' + @billRef
753
		END
754
		ELSE IF(EXISTS(SELECT * FROM TR_REQ_PAY_AUTO_RECURRING_HISTORY WHERE billRef = @billRef AND @billCode = billCode AND @coreXref = coreXref))
755
		BEGIN
756
			PRINT 'KY THANH TOAN DA TON TAI TRONG HE THONG - DA THUC HIEN THANH TOAN TREN AMS: ' + @billRef
757
		END
758
		ELSE IF(NOT EXISTS(SELECT * FROM TR_REQ_PAY_AUTO_RECURRING WHERE BILLCODE = @billCode))
759
		BEGIN
760
			PRINT 'KHONG CO BILLCODE TRONG HE THONG AMS: ' + @billCode
761
		END
762
		ELSE IF(NOT EXISTS	(SELECT *	FROM TR_REQ_PAY_AUTO_RECURRING A
763
										LEFT JOIN TR_REQ_PAYMENT_AUTO B ON A.REQ_PAY_AUTO_ID = B.REQ_PAY_AUTO_ID 
764
										WHERE 1=1 
765
										AND A.BILLCODE = @billCode
766
										AND B.AUTH_STATUS_KT = 'A'
767
										AND B.REQ_PAY_AUTO_STATUS = 'EFFECTIVE'
768
										AND B.RECORD_STATUS = '1' 
769
										AND B.CONTRACT_ID IS NOT NULL
770
										AND ISNULL(A.BILLID, '') <> ''
771
							)
772
				)
773
		BEGIN
774
			PRINT 'KHONG CO PHIEU YEU CAU THANH TOAN TU DONG TRONG HE THONG AMS: ' + @billCode
775
		END
776
		ELSE
777
		BEGIN
778
			DECLARE @REQ_PAY_ID VARCHAR(20), @REQ_PAY_CODE VARCHAR(20), @CONTRACT_ID VARCHAR(20), @CONTRACT_CODE VARCHAR(20), @CONTRACT_NAME NVARCHAR(500),
779
			@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), 
780
			@REQ_PAY_AUTO_ID VARCHAR(20), @TRANSFER_USER_RECEIVE VARCHAR(20), @TRANS_GLCODE VARCHAR(20), @TRANS_GLNAME NVARCHAR(500)
781
			
782
			PRINT 'GET DATA BILLCODE'
783
			-- LAY DATA CUA BILLCODE DANG KY TRONG AMS
784
			SELECT TOP 1 @CONTRACT_ID = B.CONTRACT_ID, @CONTRACT_CODE = E.CONTRACT_CODE, @CONTRACT_NAME = E.[CONTRACT_NAME], 
785
			@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, 
786
			@BRANCH_CREATE = B.BRANCH_CREATE, @REQ_PAY_AUTO_ID = B.REQ_PAY_AUTO_ID, @TRANSFER_USER_RECEIVE = B.TRANSFER_USER_RECEIVE, 
787
			@TRANS_GLCODE = A.TRANS_GLCODE, @TRANS_GLNAME = A.TRANS_GLNAME
788
			FROM TR_REQ_PAY_AUTO_RECURRING A
789
			LEFT JOIN TR_REQ_PAYMENT_AUTO B ON A.REQ_PAY_AUTO_ID = B.REQ_PAY_AUTO_ID
790
			LEFT JOIN CM_BRANCH C ON B.BRANCH_ID = C.BRANCH_ID
791
			LEFT JOIN CM_ALLCODE D ON B.REQ_PAY_AUTO_SERVICE_TYPE = D.CDVAL AND D.CDNAME = 'PAY_SER_AUTO' AND CDTYPE = 'REQ_AUTO'
792
			LEFT JOIN TR_CONTRACT E ON B.CONTRACT_ID = E.CONTRACT_ID
793
			WHERE 1=1 
794
			AND A.BILLCODE = @billCode
795
			AND B.AUTH_STATUS_KT = 'A'
796
			AND B.REQ_PAY_AUTO_STATUS = 'EFFECTIVE'
797
			AND B.RECORD_STATUS = '1' 
798
			AND B.CONTRACT_ID IS NOT NULL
799
			AND ISNULL(A.BILLID, '') <> ''
800

    
801
			PRINT 'LUU LOG KY THANH TOAN'
802
			print @createdTime
803
			-- LUU LOG KY THANH TOAN
804
			INSERT INTO TR_REQ_PAY_AUTO_RECURRING_HISTORY(billRef, billCode, customerName, amount, accountNo, accountType, createdTime,
805
			[partner], resultCode, resultDesc, transDesc, coreXref, partnerAccount, MAKER_ID, CREATE_DT)
806
			VALUES (@billRef, @billCode, @customerName, @amount, @accountNo, @accountType, CONVERT(DATE, @createdTime, 103),
807
			@partner, @resultCode, @resultDesc, @transDesc, @coreXref, @partnerAccount, 'admin', GETDATE())
808

    
809
			-------------------- BEGIN TAO PHIEU DE NGHI THANH TOAN TU DONG ----------------------------------
810

    
811
			-- BEGIN KHOI TAO GIA TRI
812
			-- ID PDN THANH TOAN
813
			PRINT 'GEN ID PDN THANH TOAN'
814
			EXEC [dbo].[PAY_CODE_GenKey] 'TR_REQ_PAYMENT', '','', @REQ_PAY_CODE out
815
			IF EXISTS(SELECT * FROM TR_REQ_PAYMENT WHERE REQ_PAY_CODE  = @REQ_PAY_CODE )
816
			BEGIN
817
				ROLLBACK TRANSACTION
818
				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
819
				RETURN '-1'
820
			END
821
			PRINT 'GEN MA CODE PDN THANH TOAN'
822
			-- MA CODE PDN THANH TOAN
823
			EXEC SYS_CodeMasters_Gen 'TR_REQ_PAYMENT', @REQ_PAY_ID out
824
			IF @REQ_PAY_ID='' OR @REQ_PAY_ID IS NULL GOTO ABORT
825
			PRINT 'GET DON VI QUAN LY HOP DONG'
826
			DECLARE @BRANCH_MANAGE_ID NVARCHAR(250) =	(	SELECT TOP 1 BRANCH_ID 
827
															FROM CM_BRANCH 
828
															WHERE BRANCH_ID = (	SELECT TOP 1 BRANCH_ID FROM TR_CONTRACT WHERE CONTRACT_ID = @CONTRACT_ID)
829
														)
830
			
831
			DECLARE @BRANCH_MANAGE_NAME NVARCHAR(250) = (	SELECT TOP 1 BRANCH_NAME 
832
															FROM CM_BRANCH 
833
															WHERE BRANCH_ID = (	SELECT TOP 1 BRANCH_ID FROM TR_CONTRACT WHERE CONTRACT_ID = @CONTRACT_ID)
834
														)
835

    
836
			-- NOI DUNG THANH TOAN, DUNG CHO NHIEU TABLE
837
			DECLARE @PAY_AUTO_DESC_DETAIL NVARCHAR(1000) = ''
838
			DECLARE @PAY_AUTO_TRN_DESC_DETAIL VARCHAR(1000) = ''
839

    
840
			DECLARE @l_Month VARCHAR(2), @l_Year VARCHAR(4)
841
			-- NEU LA DIEN HOAC NUOC: t; DIEN THOAI HOAC INTERNET: t-1
842
			IF(ISNULL(@REQ_PAY_AUTO_SERVICE_TYPE, '') = 'WATER')
843
			BEGIN
844
				SET @l_Month =  RIGHT('0' + CAST(DATEPART(MM, GETDATE()) AS VARCHAR(2)), 2);
845
				SET @l_Year =  RIGHT(YEAR(GETDATE()), 4);
846
			END
847
			ELSE
848
			BEGIN
849
				SET @l_Month =  RIGHT('0' + CAST(DATEPART(MM, DATEADD(MONTH, -1, GETDATE())) AS VARCHAR(2)), 2);
850
				SET @l_Year =  RIGHT(YEAR(DATEADD(MONTH, -1, GETDATE())), 4);
851
			END
852

    
853
			IF(ISNULL(@month, '') = '')
854
			BEGIN
855
				PRINT 'HOP DONG KHONG CO MA CODE: ' + @PAY_AUTO_DESC_DETAIL
856
				SET @month = @l_Month + '/' + @l_Year
857
				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
858
				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))
859
			END
860
			ELSE
861
			BEGIN
862
				PRINT 'HOP DONG CO MA CODE: ' + @PAY_AUTO_DESC_DETAIL
863
				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
864
				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))
865
			END
866

    
867
			-- END KHOI TAO GIA TRI
868
			PRINT 'TAO PHIEU DE NGHI THANH TOAN'
869
			INSERT INTO [dbo].[TR_REQ_PAYMENT]
870
			(REQ_PAY_ID, REQ_PAY_CODE, BRANCH_ID, DEP_ID, REQ_REASON, REQ_TYPE, 
871
			REQ_ENTRIES, REQ_DESCRIPTION, REF_ID, PAY_PHASE, RECEIVER_PO, --NULL
872
			REQ_PAY_TYPE, REQ_DT, REQ_TYPE_CURRENCY, REQ_AMT, REQ_TEMP_AMT, 
873
			MAKER_ID, CREATE_DT, EDITOR_ID, AUTH_STATUS, CHECKER_ID, APPROVE_DT, --HC
874
			CREATE_DT_KT, MAKER_ID_KT, AUTH_STATUS_KT, CHECKER_ID_KT, APPROVE_DT_KT, CONFIRM_NOTE, --KT
875
			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)
876
			VALUES
877
			(@REQ_PAY_ID, @REQ_PAY_CODE, @BRANCH_ID, @DEP_ID, @PAY_AUTO_DESC_DETAIL, 'P', 
878
			NULL, NULL,  NULL, NULL, NULL,  --NULL
879
			'1', GETDATE(), 'VND', @amount, NULL, 
880
			'admin', GETDATE(), NULL, 'A', 'admin', GETDATE(),  --HC
881
			GETDATE(), 'admin', 'A', 'admin', GETDATE(), NULL, --KT
882
			@BRANCH_CREATE, NULL, '1', 'admin', GETDATE(), NULL, '0', 1, 'Y', NULL, 'Y', 'B', @billRef, 'N', 'U')
883
			PRINT 'TAO LUOI PDN THANH TOAN CHO PYC TTTD'
884
			-- TẠO LƯỚI PHIEU DE NGHI THANH TOAN CHO PYC
885
			INSERT INTO [dbo].[TR_REQ_PAY_AUTO_PAYMENTS]
886
			(REQ_PAY_AUTO_ID, REQ_PAY_ID, REQ_PAY_CODE, BRANCH_ID, DEP_ID, REQ_REASON, REQ_TYPE, 
887
			REQ_ENTRIES, REQ_DESCRIPTION, REF_ID, PAY_PHASE, RECEIVER_PO, --NULL
888
			REQ_PAY_TYPE, REQ_DT, REQ_TYPE_CURRENCY, REQ_AMT, REQ_TEMP_AMT, 
889
			MAKER_ID, CREATE_DT, EDITOR_ID, AUTH_STATUS, CHECKER_ID, APPROVE_DT, --HC
890
			CREATE_DT_KT, MAKER_ID_KT, AUTH_STATUS_KT, CHECKER_ID_KT, APPROVE_DT_KT, CONFIRM_NOTE, --KT
891
			BRANCH_CREATE, NOTES, RECORD_STATUS, TRANSFER_MAKER, TRANSFER_DT, TRASFER_USER_RECIVE, PROCESS, RATE, IS_PERIOD, AMT_PAY)
892
			VALUES
893
			(@REQ_PAY_AUTO_ID ,@REQ_PAY_ID, @REQ_PAY_CODE, @BRANCH_ID, @DEP_ID, @PAY_AUTO_DESC_DETAIL, 'P', 
894
			NULL, NULL,  NULL, NULL, NULL,  --NULL
895
			'1', GETDATE(), 'VND', @amount, NULL, 
896
			'admin', GETDATE(), NULL, 'A', 'admin', GETDATE(),  --HC
897
			GETDATE(), 'admin', 'A', 'admin', GETDATE(), NULL, --KT
898
			@BRANCH_CREATE, NULL, '1', 'admin', GETDATE(), NULL, '0', 1, 'Y', NULL)
899
			PRINT 'THEM LICH SU XU LY'
900
			INSERT INTO dbo.PL_PROCESS(REQ_ID,PROCESS_ID,CHECKER_ID,APPROVE_DT,PROCESS_DESC,NOTES)
901
			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')
902

    
903
			
904
			-------------------- END TAO PHIEU DE NGHI THANH TOAN TU DONG ----------------------------------
905

    
906
			-- TẠO LƯỚI THÔNG TIN HỢP ĐỒNG ĐỊNH KỲ
907
			PRINT 'TAO LUOI THONG TIN HDDK'
908
			DECLARE @REQ_PAYDTID_PERIOD VARCHAR(15);
909
			EXEC SYS_CodeMasters_Gen 'TR_REQ_ADVANCE_DT', @REQ_PAYDTID_PERIOD OUT;
910
			IF @REQ_PAYDTID_PERIOD='' OR @REQ_PAYDTID_PERIOD IS NULL GOTO ABORT;
911
			INSERT INTO TR_REQ_ADVANCE_DT (REQ_PAYDTID, REQ_PAY_ID,REF_ID, [TYPE], MAKER_ID, CREATE_DT, IS_CLOSED, REF_TYPE, DELIVERY_DT) 
912
			VALUES(@REQ_PAYDTID_PERIOD, @REQ_PAY_ID, @CONTRACT_ID, 'PAY', 'admin', GETDATE(), 'N', 'C', CONVERT(DATE,NULL,103))
913
			
914
			-- TẠO LƯỚI THÔNG TIN THANH TOÁN HỢP ĐỒNG ĐỊNH KỲ
915
			PRINT 'TAO LUOI THONG TIN THANH TOAN HDDK'
916
			DECLARE @PERIOD_ID VARCHAR(15);
917
			EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_PERIOD', @PERIOD_ID OUT;
918
			IF @PERIOD_ID='' OR @PERIOD_ID IS NULL GOTO ABORT;
919
			INSERT INTO TR_REQ_PAY_PERIOD(PERIOD_ID, REQ_PAY_ID, PAY_TYPE, CONTRACT_ID, PAY_DT_REAL ,OLD_INDEX, NEW_INDEX, AMT_PAY, 
920
			AUTH_STATUS_KT, CURRENCY, RATE, FROM_DATE, TO_DATE,AD_PAY_ID, PROCESS, PARENT_ID, PAY_PHASE, REASON, TYPE_COST,FR_LEVEL , TO_LEVEL)
921
			VALUES (@PERIOD_ID, @REQ_PAY_ID,'PAY', @CONTRACT_ID, NULL, NULL , NULL , @amount, 
922
			'A', 'VND', '1', NULL, NULL, NULL, '1', NULL, @month, @PAY_AUTO_DESC_DETAIL, NULL, NULL, NULL )
923

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

    
926
	-- BEGIN BUT TOAN CHI PHI
927
				PRINT 'BUT TOAN CHI PHI'
928
				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), 
929
				@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),
930
				@CREATE_DT_KT varchar(20), @APPROVE_DT_KT varchar(20), @IS_TRANSFER_EXTERNAL varchar(20), @DEP_ID_ENTRY varchar(20), 
931
				@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), 
932
				@RECORD_STATUS varchar(20)
933
				DECLARE @l_TR_REQ_PAY_ENTRIES_D VARCHAR(15);
934

    
935
				DECLARE @TYPE_BUDGET_ALLOCAITON_ENTRIES VARCHAR(20), @PERCENT_BUDGET_ALLOCAITON_ENTRIES DECIMAL(18,2), @AMT_BUDGET_ALLOCAITON_ENTRIES DECIMAL(18,2)
936

    
937
				DECLARE @RES VARCHAR(10)
938
				DECLARE @TOTAL_CREDIT_AMT DECIMAL(18,0) = @amount;
939
				DECLARE @TAX DECIMAL(18,1) = 0.1
940
				DECLARE @TOTAL_PERCENT DECIMAL(18,2) = 0, @TOTAL_PERCENT_AMT DECIMAL(18,0) = 0;
941
				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);
942
				
943
				-- KHAI BAO CONST
944
				DECLARE @PERCENT_VAT DECIMAL(18,2) = 1.1;
945
				/*
946
				-- NEU LA HOA DON DIEN THI THUE SE LA 8%. VIEC NAY CO HIEU LUC DEN HET NAM 2023
947
				IF	(	(	SELECT TOP 1 ISNULL(B.REQ_PAY_AUTO_SERVICE_TYPE, '')
948
							FROM TR_REQ_PAY_AUTO_RECURRING A
949
							INNER JOIN TR_REQ_PAYMENT_AUTO B ON A.REQ_PAY_AUTO_ID = B.REQ_PAY_AUTO_ID
950
							WHERE A.BILLCODE = @billCode
951
						) = 'ELECTRIC'
952
					)
953
				BEGIN
954
					SET @PERCENT_VAT = 1.08;
955
				END
956
				*/
957

    
958
				-- CO THUE
959
				IF(EXISTS(SELECT * FROM TR_REQ_PAY_AUTO_ENTRIES WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID AND ACCT = '353200002'))
960
				BEGIN
961
				-- SET THUE DUA VAO VAT TREN LUOI HACH TOAN
962
					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
963

    
964
					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
965
					BEGIN
966
						PRINT 'CO THUE, CO PHAN CHIA'
967
					-- CREATE CURSOR CÁC ĐẦU CÓ --> LẤY ĐƯỢC CÁC CẶP BÚT TOÁN
968
						DECLARE cursorEntries_C CURSOR LOCAL FOR 
969
						SELECT REQ_PAY_AUTO_ID, ENTRY_PAIR
970
						FROM TR_REQ_PAY_AUTO_ENTRIES
971
						WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID AND DR_CR = 'C'
972

    
973
						Open cursorEntries_C
974
						FETCH NEXT FROM cursorEntries_C INTO @REQ_PAY_AUTO_ID, @ENTRY_PAIR
975
						WHILE @@FETCH_STATUS = 0
976
						BEGIN
977
						-- BEGIN CHẠY TỪNG CẶP BÚT TOÁN
978
							DECLARE cursorEntries CURSOR LOCAL FOR 
979
							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,
980
							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,
981
							IS_TRANSFER_EXTERNAL, TYPE_BUDGET_ALLOCAITON, PERCENT_BUDGET_ALLOCAITON, AMT_BUDGET_ALLOCAITON
982
							FROM TR_REQ_PAY_AUTO_ENTRIES
983
							WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID AND ENTRY_PAIR = @ENTRY_PAIR
984

    
985
							Open cursorEntries
986
							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,
987
							@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, 
988
							@IS_TRANSFER_EXTERNAL, @TYPE_BUDGET_ALLOCAITON_ENTRIES, @PERCENT_BUDGET_ALLOCAITON_ENTRIES, @AMT_BUDGET_ALLOCAITON_ENTRIES
989
							WHILE @@FETCH_STATUS = 0
990
							BEGIN
991

    
992
								EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_ENTRIES', @l_TR_REQ_PAY_ENTRIES_D OUT;
993
								IF @l_TR_REQ_PAY_ENTRIES_D='' OR @l_TR_REQ_PAY_ENTRIES_D IS NULL GOTO ABORT;
994
								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')
995

    
996
								IF(@DR_CR = 'D')
997
								BEGIN
998
									IF(ISNULL(@TOTAL_PERCENT, 0) + ISNULL(@PERCENT_BUDGET_ALLOCAITON_ENTRIES, 0) = 100)
999
									BEGIN
1000
										PRINT 'DONG NO CUOI'
1001
										DECLARE @A_CREDIT_AMT DECIMAL(18,0) = @amount - @TOTAL_PERCENT_AMT
1002
										DECLARE @A_DEBIT_AMT DECIMAL(18,0) = @A_CREDIT_AMT/@PERCENT_VAT
1003
										DECLARE @A_3532_AMT DECIMAL(18,0) = @A_CREDIT_AMT - @A_DEBIT_AMT
1004
										print '@A_CREDIT_AMT: ' + CONVERT(VARCHAR(15),@A_CREDIT_AMT) 
1005
										print '@A_DEBIT_AMT: ' + CONVERT(VARCHAR(15),@A_DEBIT_AMT) 
1006
										print '@A_3532_AMT: ' + CONVERT(VARCHAR(15),@A_3532_AMT) 
1007

    
1008
										IF(ISNULL(@ACCT, '') = '353200002')
1009
										BEGIN
1010
											print '@ACCT 3532: ' + @ACCT
1011
											print '@A_3532_AMT 3532: ' + CONVERT(VARCHAR(15),@A_3532_AMT) 
1012
											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],
1013
											[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])
1014
											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,
1015
											@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)
1016
										END
1017
										ELSE
1018
										BEGIN
1019
											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],
1020
											[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])
1021
											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,
1022
											@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)
1023
										END
1024
									END
1025
									ELSE
1026
									BEGIN
1027
										PRINT 'CHUA PHAI DONG NO CUOI'
1028
										DECLARE @B_CREDIT_AMT DECIMAL(18,0) = CONVERT(DECIMAL, @amount*@PERCENT_BUDGET_ALLOCAITON_ENTRIES/100)
1029
										DECLARE @B_DEBIT_AMT DECIMAL(18,0) = @B_CREDIT_AMT/@PERCENT_VAT
1030
										DECLARE @B_3532_AMT DECIMAL(18,0) = @B_CREDIT_AMT - @B_DEBIT_AMT
1031
										print '@B_CREDIT_AMT: ' + CONVERT(VARCHAR(15),@B_CREDIT_AMT)
1032
										print '@B_DEBIT_AMT: ' + CONVERT(VARCHAR(15),@B_DEBIT_AMT)
1033
										print '@B_3532_AMT: ' +CONVERT(VARCHAR(15),@B_3532_AMT) 
1034

    
1035
										IF(ISNULL(@ACCT, '') = '353200002')
1036
										BEGIN
1037
											print '@ACCT 3532: ' + @ACCT
1038
											print '@B_3532_AMT hach toan: ' +CONVERT(VARCHAR(15),@B_3532_AMT) 
1039
											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],
1040
											[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])
1041
											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,
1042
											@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)
1043
										END
1044
										ELSE
1045
										BEGIN
1046
											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],
1047
											[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])
1048
											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,
1049
											@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)
1050
										END
1051
									END
1052
								END
1053
								ELSE
1054
								BEGIN
1055
									IF(ISNULL(@TOTAL_PERCENT, 0) + ISNULL(@PERCENT_BUDGET_ALLOCAITON_ENTRIES, 0) = 100)
1056
									BEGIN
1057
										PRINT 'DONG CO CUOI'
1058
										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],
1059
										[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])
1060
										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,
1061
										@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)
1062
									END
1063
									ELSE
1064
									BEGIN
1065
										PRINT 'CHUA PHAI DONG CO CUOI'
1066
										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],
1067
										[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])
1068
										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,
1069
										@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)
1070
									END
1071
										
1072
								END
1073

    
1074
							IF @@error<>0 GOTO ABORT;
1075
							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,
1076
							@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,
1077
							@IS_TRANSFER_EXTERNAL, @TYPE_BUDGET_ALLOCAITON_ENTRIES, @PERCENT_BUDGET_ALLOCAITON_ENTRIES, @AMT_BUDGET_ALLOCAITON_ENTRIES
1078
							END
1079
							CLOSE cursorEntries
1080
							DEALLOCATE cursorEntries
1081
						-- END CHẠY TỪNG CẶP BÚT TOÁN
1082
								
1083
							SET @TOTAL_PERCENT = @TOTAL_PERCENT + @PERCENT_BUDGET_ALLOCAITON_ENTRIES;
1084
							SET @TOTAL_PERCENT_AMT = @TOTAL_PERCENT_AMT + @amount*@PERCENT_BUDGET_ALLOCAITON_ENTRIES/100
1085

    
1086
						IF @@error<>0 GOTO ABORT;
1087
						FETCH NEXT FROM cursorEntries_C INTO @REQ_PAY_AUTO_ID, @ENTRY_PAIR
1088
						END
1089
						CLOSE cursorEntries_C
1090
						DEALLOCATE cursorEntries_C
1091

    
1092
							
1093
						--- BAN BUT TOAN VAO CORE
1094
						EXEC [dbo].[PAY_ENTRIES_POST_SetApp] @REQ_PAY_ID,'admin','admin', @RES OUT
1095
					END
1096
					ELSE
1097
					BEGIN
1098
						PRINT 'CO THUE, KHONG PHAN CHIA 2 NO - 1 CO'
1099
						DECLARE @DEBIT_AMT_1 DECIMAL(18,0) = @TOTAL_CREDIT_AMT/@PERCENT_VAT
1100
						DECLARE @3532_AMT DECIMAL(18,0) = @TOTAL_CREDIT_AMT - @DEBIT_AMT_1
1101

    
1102
						DECLARE cursorEntries CURSOR LOCAL FOR 
1103
						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,
1104
						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
1105
						FROM TR_REQ_PAY_AUTO_ENTRIES
1106
						WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID
1107
						Open cursorEntries
1108
						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,
1109
						@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
1110
						WHILE @@FETCH_STATUS = 0
1111
						BEGIN
1112

    
1113
							EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_ENTRIES', @l_TR_REQ_PAY_ENTRIES_D OUT;
1114
							IF @l_TR_REQ_PAY_ENTRIES_D='' OR @l_TR_REQ_PAY_ENTRIES_D IS NULL GOTO ABORT;
1115

    
1116
							IF(@DR_CR = 'D')	-- Nợ
1117
							BEGIN
1118
								IF(@ACCT = '353200002')
1119
								BEGIN
1120
									print '3532'
1121
									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],
1122
									[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])
1123
									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,
1124
									@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)
1125
								END
1126
								ELSE
1127
								BEGIN
1128
									print 'No TKCP'
1129
									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],
1130
									[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])
1131
									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,
1132
									@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)
1133
								END
1134
							END
1135
							ELSE
1136
							BEGIN
1137
								print 'Co TKTT'
1138
								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],
1139
								[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])
1140
								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,
1141
								@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)
1142
							END
1143

    
1144
							
1145
						IF @@error<>0 GOTO ABORT;
1146
						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,
1147
						@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
1148
						END
1149
						CLOSE cursorEntries
1150
						DEALLOCATE cursorEntries
1151
						--- BAN BUT TOAN VAO CORE
1152
						EXEC [dbo].[PAY_ENTRIES_POST_SetApp] @REQ_PAY_ID,'admin','admin', @RES OUT
1153
					END
1154
				END
1155
				-- KHONG THUE
1156
				ELSE	
1157
				BEGIN
1158
					IF(EXISTS(SELECT * FROM TR_REQ_PAY_AUTO_BUDGET_ALLOCATION WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID))
1159
					BEGIN
1160
						PRINT 'KHONG THUE, CO PHAN CHIA'
1161
						IF(EXISTS(SELECT * FROM TR_REQ_PAY_AUTO_BUDGET_ALLOCATION WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID AND TYPE_BUDGET_ALLOCAITON = 'PERCENT'))
1162
						BEGIN
1163
							PRINT 'KHONG THUE, CO PHAN CHIA, PHAN CHIA THEO TY LE'
1164
						-- CREATE CURSOR CÁC ĐẦU CÓ
1165
							DECLARE cursorEntries_C CURSOR LOCAL FOR 
1166
							SELECT REQ_PAY_AUTO_ID, ENTRY_PAIR
1167
							FROM TR_REQ_PAY_AUTO_ENTRIES
1168
							WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID AND DR_CR = 'C'
1169

    
1170
							Open cursorEntries_C
1171
							FETCH NEXT FROM cursorEntries_C INTO @REQ_PAY_AUTO_ID, @ENTRY_PAIR
1172
							WHILE @@FETCH_STATUS = 0
1173
							BEGIN
1174
							-- BEGIN CHẠY TỪNG CẶP BÚT TOÁN
1175
								DECLARE cursorEntries CURSOR LOCAL FOR 
1176
								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,
1177
								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,
1178
								IS_TRANSFER_EXTERNAL, TYPE_BUDGET_ALLOCAITON, PERCENT_BUDGET_ALLOCAITON, AMT_BUDGET_ALLOCAITON
1179
								FROM TR_REQ_PAY_AUTO_ENTRIES
1180
								WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID AND ENTRY_PAIR = @ENTRY_PAIR
1181

    
1182
								Open cursorEntries
1183
								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,
1184
								@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, 
1185
								@IS_TRANSFER_EXTERNAL, @TYPE_BUDGET_ALLOCAITON_ENTRIES, @PERCENT_BUDGET_ALLOCAITON_ENTRIES, @AMT_BUDGET_ALLOCAITON_ENTRIES
1186
								WHILE @@FETCH_STATUS = 0
1187
								BEGIN
1188

    
1189
									EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_ENTRIES', @l_TR_REQ_PAY_ENTRIES_D OUT;
1190
									IF @l_TR_REQ_PAY_ENTRIES_D='' OR @l_TR_REQ_PAY_ENTRIES_D IS NULL GOTO ABORT;
1191

    
1192
									IF(@DR_CR = 'D')
1193
									BEGIN
1194
										IF(ISNULL(@TOTAL_PERCENT, 0) + ISNULL(@PERCENT_BUDGET_ALLOCAITON_ENTRIES, 0) = 100)
1195
										BEGIN
1196
											PRINT 'DONG NO CUOI'
1197
											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],
1198
											[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])
1199
											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,
1200
											@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)
1201
										END
1202
										ELSE
1203
										BEGIN
1204
											PRINT 'CHUA PHAI DONG NO CUOI'
1205

    
1206
											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],
1207
											[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])
1208
											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,
1209
											@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)
1210
										END
1211
									END
1212
									ELSE
1213
									BEGIN
1214
										IF(ISNULL(@TOTAL_PERCENT, 0) + ISNULL(@PERCENT_BUDGET_ALLOCAITON_ENTRIES, 0) = 100)
1215
										BEGIN
1216
											PRINT 'DONG CO CUOI'
1217
											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],
1218
											[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])
1219
											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,
1220
											@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)
1221
										END
1222
										ELSE
1223
										BEGIN
1224
											PRINT 'CHUA PHAI DONG CO CUOI'
1225
											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],
1226
											[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])
1227
											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,
1228
											@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)
1229
										END
1230
										
1231
									END
1232

    
1233
								IF @@error<>0 GOTO ABORT;
1234
								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,
1235
								@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,
1236
								@IS_TRANSFER_EXTERNAL, @TYPE_BUDGET_ALLOCAITON_ENTRIES, @PERCENT_BUDGET_ALLOCAITON_ENTRIES, @AMT_BUDGET_ALLOCAITON_ENTRIES
1237
								END
1238
								CLOSE cursorEntries
1239
								DEALLOCATE cursorEntries
1240
							-- END CHẠY TỪNG CẶP BÚT TOÁN
1241
								
1242
								SET @TOTAL_PERCENT = @TOTAL_PERCENT + @PERCENT_BUDGET_ALLOCAITON_ENTRIES;
1243
								SET @TOTAL_PERCENT_AMT = @TOTAL_PERCENT_AMT + @amount*@PERCENT_BUDGET_ALLOCAITON_ENTRIES/100
1244

    
1245
							IF @@error<>0 GOTO ABORT;
1246
							FETCH NEXT FROM cursorEntries_C INTO @REQ_PAY_AUTO_ID, @ENTRY_PAIR
1247
							END
1248
							CLOSE cursorEntries_C
1249
							DEALLOCATE cursorEntries_C
1250

    
1251
							
1252
							--- BAN BUT TOAN VAO CORE
1253
							EXEC [dbo].[PAY_ENTRIES_POST_SetApp] @REQ_PAY_ID,'admin','admin', @RES OUT
1254
						END
1255
						ELSE
1256
						BEGIN
1257
							PRINT 'KHONG THUE, CO PHAN CHIA, PHAN CHIA THEO SO TIEN'
1258
						END
1259
					END
1260
					ELSE
1261
					BEGIN
1262
						PRINT 'KHONG THUE, KHONG PHAN CHIA 1 NO - 1 CO'
1263

    
1264
						DECLARE cursorEntries CURSOR LOCAL FOR 
1265
						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,
1266
						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
1267
						FROM TR_REQ_PAY_AUTO_ENTRIES
1268
						WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID
1269
						Open cursorEntries
1270
				
1271
						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,
1272
						@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
1273
						WHILE @@FETCH_STATUS = 0
1274
						BEGIN
1275
							DECLARE @l_TR_REQ_PAY_ENTRIES VARCHAR(15);
1276
							EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_ENTRIES', @l_TR_REQ_PAY_ENTRIES OUT;
1277
							IF @l_TR_REQ_PAY_ENTRIES='' OR @l_TR_REQ_PAY_ENTRIES IS NULL GOTO ABORT;
1278

    
1279
							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],
1280
							[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])
1281
							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,
1282
							@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)
1283

    
1284
						IF @@error<>0 GOTO ABORT;
1285
						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,
1286
						@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
1287
						END
1288
						CLOSE cursorEntries
1289
						DEALLOCATE cursorEntries
1290

    
1291
						--- BAN BUT TOAN VAO CORE
1292
						EXEC [dbo].[PAY_ENTRIES_POST_SetApp] @REQ_PAY_ID,'admin','admin', @RES OUT 
1293
					END
1294
				END
1295
				
1296
	-- END BUT TOAN CHI PHI
1297

    
1298

    
1299

    
1300
	-- BEGIN BUT TOAN HE THONG: BUT TOAN SO 0
1301
			-- NỢ
1302
				EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_ENTRIES', @l_TR_REQ_PAY_ENTRIES_D OUT;
1303
				INSERT INTO [TR_REQ_PAY_ENTRIES] ([REQ_PAY_DT_ID],[REQ_PAY_ID],[FUNCTION_TYPE],[TRN_TYPE],[REF_ID],
1304
				[ENTRY_PAIR],[DR_CR],[DR_CR_NAME],
1305
				[ACCT],[ACCT_NAME],[BRANCH_ID],[DEP_ID],
1306
				[AMT],[CURRENCY],[EXC_RATE],[TRN_DATE],[TRN_DESC],
1307
				[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])
1308
				VALUES(@l_TR_REQ_PAY_ENTRIES_D, @REQ_PAY_ID,NULL,'PAYMENT',NULL,
1309
				'0', N'D', N'Nợ',
1310
				@accountNo, @customerName, N'DV0001', N'',
1311
				CONVERT(DECIMAL(18,2), @amount), N'VND', 1.00, GETDATE(), @transDesc,
1312
				'admin',GETDATE(),'A','admin', GETDATE(),'admin',GETDATE(),'A','admin',GETDATE(),'1',NULL)
1313

    
1314
				DECLARE @l_PAY_ENTRIES_POST_D VARCHAR(15);
1315
				EXEC SYS_CodeMasters_Gen 'PAY_ENTRIES_POST', @l_PAY_ENTRIES_POST_D OUT;
1316
				INSERT INTO [PAY_ENTRIES_POST] ([ET_ID],[REF_NO],[TRN_ID],[REF_ID],[TRN_TYPE],
1317
							[ENTRY_PAIR],[DO_BRN],[DRCR],[ACCT],[BRN_ID],[DEPT_ID],
1318
							[AMT],[CURRENCY],[EXC_RATE],[EXP_TO_CORE],[TRN_DATE],[TRN_DESC],[MAKER_ID],[CHECKER_ID])
1319
				VALUES	(@l_PAY_ENTRIES_POST_D, @coreXref, @REQ_PAY_ID, @l_TR_REQ_PAY_ENTRIES_D,'PAYMENT',
1320
						'0',N'DV0001',N'D',
1321
						@accountNo,N'DV0001',N'',
1322
						CONVERT(DECIMAL(18,2), @amount),N'VND',1.00,N'1',GETDATE(),
1323
						@transDesc,'admin','admin')
1324

    
1325
			-- CÓ
1326
				DECLARE @l_TR_REQ_PAY_ENTRIES_C VARCHAR(15);
1327
				EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_ENTRIES', @l_TR_REQ_PAY_ENTRIES_C OUT;
1328
				INSERT INTO [TR_REQ_PAY_ENTRIES] ([REQ_PAY_DT_ID],[REQ_PAY_ID],[FUNCTION_TYPE],[TRN_TYPE],[REF_ID],
1329
				[ENTRY_PAIR],[DR_CR],[DR_CR_NAME],
1330
				[ACCT],[ACCT_NAME],[BRANCH_ID],[DEP_ID],
1331
				[AMT],[CURRENCY],[EXC_RATE],[TRN_DATE],[TRN_DESC],
1332
				[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])
1333
				VALUES(@l_TR_REQ_PAY_ENTRIES_C, @REQ_PAY_ID,NULL,'PAYMENT',NULL,
1334
				'0',N'C',N'Có',
1335
				@partnerAccount, @partner,N'DV0001',N'',
1336
				CONVERT(DECIMAL(18,2), @amount),N'VND',1.00,GETDATE(),@transDesc,
1337
				'admin',GETDATE(),'A','admin', GETDATE(),'admin',GETDATE(),'A','admin',GETDATE(),'1',NULL)
1338

    
1339
				DECLARE @l_PAY_ENTRIES_POST_C VARCHAR(15);
1340
				EXEC SYS_CodeMasters_Gen 'PAY_ENTRIES_POST', @l_PAY_ENTRIES_POST_C OUT;
1341
				INSERT INTO [PAY_ENTRIES_POST] ([ET_ID],[REF_NO],[TRN_ID],[REF_ID],[TRN_TYPE],
1342
							[ENTRY_PAIR],[DO_BRN],[DRCR],[ACCT],[BRN_ID],[DEPT_ID],
1343
							[AMT],[CURRENCY],[EXC_RATE],[EXP_TO_CORE],[TRN_DATE],[TRN_DESC],[MAKER_ID],[CHECKER_ID])
1344
				VALUES	(@l_PAY_ENTRIES_POST_C, @coreXref, @REQ_PAY_ID,@l_TR_REQ_PAY_ENTRIES_C,'PAYMENT',
1345
						'0',N'DV0001',N'C',
1346
						@partnerAccount,N'DV0001',N'',
1347
						CONVERT(DECIMAL(18,2), @amount),N'VND',1.00,N'1',GETDATE(),
1348
						@transDesc, 'admin', 'admin')
1349
	-- END BUT TOAN HE THONG: BUT TOAN SO 0
1350

    
1351
			-- Mỗi lần chỉ quét 1 bill hợp lệ
1352
			CLOSE XmlAutoRecurring;
1353
			DEALLOCATE XmlAutoRecurring;
1354
			COMMIT TRANSACTION
1355
			SELECT '0' as Result, @list_req_payment LIST_REQ_PAYMENT, N'Quét bill thành công!' ErrorDesc
1356
			RETURN '0'
1357

    
1358
		END
1359
		
1360
	IF @@error<>0 GOTO ABORT;
1361
	FETCH NEXT FROM XmlAutoRecurring INTO @billRef, @billCode, @customerName, @amount, @accountNo, @accountType, @createdTime,
1362
	@partner, @resultCode, @resultDesc, @transDesc, @coreXref, @partnerAccount, @month
1363
	END;
1364
	CLOSE XmlAutoRecurring;
1365
	DEALLOCATE XmlAutoRecurring;
1366
	
1367
COMMIT TRANSACTION
1368

    
1369
SELECT '0' as Result, @list_req_payment LIST_REQ_PAYMENT, N'Quét bill thành công!' ErrorDesc
1370
RETURN '0'
1371

    
1372
ABORT:
1373
BEGIN
1374
	ROLLBACK TRANSACTION
1375
	SELECT '-1' as Result, @list_req_payment LIST_REQ_PAYMENT, N'Lỗi không xác định' ErrorDesc
1376
	RETURN '-1'
1377
End
1378
GO
1379
--21092023_secretkey