Project

General

Profile

pay_auto_scan_21062023.txt

Luc Tran Van, 06/21/2023 10:53 AM

 
1

    
2
ALTER PROCEDURE [dbo].[PAY_AUTO_SCAN]
3
@p_APP_DT VARCHAR(20)
4
AS
5
BEGIN TRANSACTION
6
	--SET @p_APP_DT = GETDATE()
7
	SET @p_APP_DT = '2025-10-31T11:22:00'
8
	DECLARE @LIST_REQ_PAYMENT VARCHAR(MAX) = '';
9
	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), 
10
	@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), 
11
	@CONTRACT_ID VARCHAR(20), @TRANSFER_MAKER VARCHAR(20), @TRANSFER_DT VARCHAR(20), @PROCESS VARCHAR(15), @AUTH_STATUS_KT VARCHAR(1), @RECORD_STATUS VARCHAR(1),
12
	@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 VARCHAR(20)
13
	DECLARE cursorPaymentAuto CURSOR LOCAL FOR 
14
	-- LAY CAC PHIEU YEU CAU THANH TOAN TU DONG CON HIEU LUC
15
	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, 
16
	A.REQ_PAY_AUTO_EFFECTIVE_DT, A.BRANCH_ID, A.DEP_ID, A.BRANCH_CREATE, A.TRANSFER_USER_RECEIVE, A.CONFIRM_NOTE, 
17
	A.CONTRACT_ID, A.TRANSFER_MAKER, A.TRANSFER_DT, A.PROCESS, A.AUTH_STATUS_KT, A.RECORD_STATUS, A.MAKER_ID, A.CHECKER_ID, 
18
	A.MAKER_ID_KT, A.CHECKER_ID_KT, B.BRANCH_NAME, C.CONTENT AS REQ_PAY_AUTO_SERVICE_TYPE_NAME, D.CONTRACT_CODE
19
	FROM TR_REQ_PAYMENT_AUTO A
20
	LEFT JOIN CM_BRANCH B ON A.BRANCH_ID = B.BRANCH_ID
21
	LEFT JOIN CM_ALLCODE C ON A.REQ_PAY_AUTO_SERVICE_TYPE = C.CDVAL AND CDNAME = 'PAY_SER_AUTO_TS' AND CDTYPE = 'REQ_AUTO'
22
	LEFT JOIN TR_CONTRACT D ON A.CONTRACT_ID = D.CONTRACT_ID
23
	WHERE 1=1
24
	AND A.REQ_PAY_AUTO_TYPE = 'A'
25
	AND A.AUTH_STATUS_KT = 'A' 
26
	AND REQ_PAY_AUTO_STATUS = 'EFFECTIVE' 
27
	AND A.RECORD_STATUS = '1' 
28
	AND A.CONTRACT_ID IS NOT NULL
29
	AND	(
30
			A.IS_MAKER_CONFIRM_CHECKBOX IS NULL
31
		OR	A.IS_MAKER_CONFIRM_CHECKBOX = '0' -- THANH TOAN TU DONG KHONG CAN XAC NHAN TRUOC
32
		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
33
		)
34
	Open cursorPaymentAuto
35
	-- QUET TUNG PHIEU YEU CAU THANH TOAN TU DONG CON HIEU LUC
36
	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, 
37
	@REQ_PAY_AUTO_EFFECTIVE_DT, @BRANCH_ID, @DEP_ID, @BRANCH_CREATE, @TRANSFER_USER_RECEIVE, @CONFIRM_NOTE, 
38
	@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
39
	WHILE @@FETCH_STATUS = 0
40
	BEGIN
41
		IF(@REQ_PAY_AUTO_STATUS <> 'EFFECTIVE')
42
		BEGIN
43
			PRINT N'Phiếu yêu cầu thanh toán tự động chưa có hiệu lực'
44
		END
45
		ELSE
46
		BEGIN
47
			PRINT '0'
48
			-- LAY CAC DONG THANH TOAN CHUA THANH TOAN - CHI LAY 1 LAN 1 KY THANH TOAN
49
			DECLARE  @REQ_PAY_AUTO_SCHEDULE_DETAIL_ID VARCHAR(20), @EXPECTED_DT VARCHAR(50), @PAY_AUTO_AMT DECIMAL(18,2), @PAY_AUTO_DESC NVARCHAR(1000), 
50
			@PAY_AUTO_STATUS VARCHAR(15), @START_DT VARCHAR(20), @END_DT VARCHAR(20), @TYPE_PERIOD VARCHAR(20), @PAY_PHASE NVARCHAR(500)
51
			DECLARE cursorScheduleDetail CURSOR LOCAL FOR 
52
			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
53
			FROM TR_REQ_PAY_AUTO_SCHEDULE_DETAIL
54
			WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID 
55
			AND PAY_AUTO_STATUS = 'N' 
56
			AND EXPECTED_DT <= CONVERT(DATE, @p_APP_DT, 103)
57
			Open cursorScheduleDetail
58
			-- TAO CAC PHIEU THANH TOAN TU DONG
59
			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
60
			WHILE @@FETCH_STATUS = 0
61
			BEGIN
62
				-- 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
63
				UPDATE TR_REQ_PAYMENT_AUTO SET IS_MAKER_CONFIRM = '0' WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID
64
				
65
				DECLARE @REQ_PAY_ID VARCHAR(20), @REQ_PAY_CODE VARCHAR(20)
66
				/*
67
				DECLARE @DAY VARCHAR(20), @MONTH VARCHAR(20), @YEAR VARCHAR(20)
68
				DECLARE @END_PERIOD_DT DATE, @END_PERIOD_0_DT DATE
69
				DECLARE @DAY_PERIOD_END VARCHAR(20), @MONTH_PERIOD_END VARCHAR(20), @YEAR_PERIOD_END VARCHAR(20)
70
				-- TH Nam trong 1 thang: 01/03/2023-31/12/2023
71
				IF(DAY(CONVERT(DATE, @START_DT, 103)) < DAY(CONVERT(DATE, @END_DT, 103)))
72
				BEGIN
73
					SET @DAY = CONVERT(VARCHAR(20), DAY(CONVERT(DATE, @START_DT, 103)))
74
					SET @MONTH = CONVERT(VARCHAR(20), MONTH(CONVERT(DATE, @EXPECTED_DT, 103)))
75
					SET @YEAR = CONVERT(VARCHAR(20), YEAR(CONVERT(DATE, @EXPECTED_DT, 103)))
76
					SET @END_PERIOD_DT = CONVERT(DATE, @EXPECTED_DT, 103)
77
					SET @END_PERIOD_DT = DATEADD(MONTH, CONVERT(INT, @TYPE_PERIOD) - 1, @END_PERIOD_DT)
78
					SET @DAY_PERIOD_END = CONVERT(VARCHAR(20), DAY(@END_DT))
79
					SET @MONTH_PERIOD_END = CONVERT(VARCHAR(20), MONTH(@END_PERIOD_DT))
80
					SET @YEAR_PERIOD_END = CONVERT(VARCHAR(20), YEAR(@END_PERIOD_DT))
81
				END
82
				-- TH1: 15/03/2023-14/06/2023: Thanh toan ngay 20 --> lớn  hơn start_dt	--> Lay thang expect_dt --> vd 15/03/2023 đến 14/06/2023
83
				-- TH2: 15/03/2023-14/06/2023: Thanh toan ngay 7  --> bé  hơn start_dt	--> Lay thang expect_dt + 1
84
				ELSE
85
				BEGIN
86
					-- TH1
87
					IF(DAY(CONVERT(DATE, @START_DT, 103)) < DAY(CONVERT(DATE, @EXPECTED_DT, 103)))
88
					BEGIN
89
						SET @DAY = CONVERT(VARCHAR(20), DAY(CONVERT(DATE, @START_DT, 103)))
90
						SET @MONTH = CONVERT(VARCHAR(20), MONTH(CONVERT(DATE, @EXPECTED_DT, 103)))
91
						SET @YEAR = CONVERT(VARCHAR(20), YEAR(CONVERT(DATE, @EXPECTED_DT, 103)))
92
						SET @END_PERIOD_DT = CONVERT(DATE, @EXPECTED_DT, 103)
93
						SET @END_PERIOD_DT = DATEADD(MONTH, CONVERT(INT, @TYPE_PERIOD), @END_PERIOD_DT)
94
						SET @DAY_PERIOD_END = CONVERT(VARCHAR(20), DAY(@END_DT))
95
						SET @MONTH_PERIOD_END = CONVERT(VARCHAR(20), MONTH(@END_PERIOD_DT))
96
						SET @YEAR_PERIOD_END = CONVERT(VARCHAR(20), YEAR(@END_PERIOD_DT))
97
					END
98
					--TH2
99
					ELSE
100
					BEGIN
101
						SET @END_PERIOD_0_DT = CONVERT(DATE, @EXPECTED_DT, 103)
102
						SET @END_PERIOD_0_DT = DATEADD(MONTH, 1, @END_PERIOD_DT)
103
						SET @DAY = CONVERT(VARCHAR(20), DAY(CONVERT(DATE, @START_DT, 103)))
104
						SET @MONTH = CONVERT(VARCHAR(20), MONTH(CONVERT(DATE, @END_PERIOD_0_DT, 103)))
105
						SET @YEAR = CONVERT(VARCHAR(20), YEAR(CONVERT(DATE, @END_PERIOD_0_DT, 103)))
106
						SET @END_PERIOD_DT = CONVERT(DATE, @EXPECTED_DT, 103)
107
						SET @END_PERIOD_DT = DATEADD(MONTH, CONVERT(INT, @TYPE_PERIOD), @END_PERIOD_DT)
108
						SET @DAY_PERIOD_END = CONVERT(VARCHAR(20), DAY(@END_DT))
109
						SET @MONTH_PERIOD_END = CONVERT(VARCHAR(20), MONTH(@END_PERIOD_DT))
110
						SET @YEAR_PERIOD_END = CONVERT(VARCHAR(20), YEAR(@END_PERIOD_DT))
111
					END
112
				END
113
				*/
114
				/*
115
				PRINT '@START_DATE: ' + @START_DATE
116
				PRINT '@END_DATE: ' + @END_DATE
117
				PRINT '@BRANCH_NAME: ' + @BRANCH_NAME
118
				PRINT '@BRANCH_MANAGE_NAME: ' + @BRANCH_MANAGE_NAME
119
				PRINT '@REQ_PAY_AUTO_SERVICE_TYPE_NAME: ' + @REQ_PAY_AUTO_SERVICE_TYPE_NAME
120
				PRINT '@CONTRACT_CODE: ' + @CONTRACT_CODE
121
				*/
122
				DECLARE @BRANCH_MANAGE_NAME NVARCHAR(250) = (	SELECT TOP 1 BRANCH_NAME 
123
																FROM CM_BRANCH 
124
																WHERE BRANCH_ID = (	SELECT TOP 1 BRANCH_ID FROM TR_CONTRACT WHERE CONTRACT_ID = @CONTRACT_ID)
125
															)
126
				-- TAO PHIEU THANH TOAN PHAN MASTER
127
				-- BEGIN KHOI TAO GIA TRI
128
				EXEC [dbo].[PAY_CODE_GenKey] 'TR_REQ_PAYMENT', '','', @REQ_PAY_CODE out
129
				IF EXISTS(SELECT * FROM TR_REQ_PAYMENT WHERE REQ_PAY_CODE  = @REQ_PAY_CODE )
130
				BEGIN
131
					ROLLBACK TRANSACTION
132
					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
133
					RETURN '-1'
134
				END
135
				EXEC SYS_CodeMasters_Gen 'TR_REQ_PAYMENT', @REQ_PAY_ID out
136
				IF @REQ_PAY_ID='' OR @REQ_PAY_ID IS NULL GOTO ABORT
137
				-- GET DON VI QUAN LY HOP DONG
138
				DECLARE @BRANCH_MANAGE_ID NVARCHAR(250) =	(	SELECT TOP 1 BRANCH_ID 
139
																FROM CM_BRANCH 
140
																WHERE BRANCH_ID = (	SELECT TOP 1 BRANCH_ID FROM TR_CONTRACT WHERE CONTRACT_ID = @CONTRACT_ID)
141
															)
142
				-- NOI DUNG THANH TOAN, DUNG CHO NHIEU TABLE
143
				DECLARE @PAY_AUTO_DESC_DETAIL NVARCHAR(1000) = ''
144
				DECLARE @PAY_AUTO_TRN_DESC_DETAIL VARCHAR(1000) = ''
145
				DECLARE @PAY_AUTO_TRANSFER_OUTSIDE_DESC_DETAIL VARCHAR(1000) = ''
146
				IF(ISNULL(@CONTRACT_CODE, '') = '')
147
				BEGIN
148
					PRINT '1: ' + @PAY_AUTO_DESC_DETAIL
149
					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
150
					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))
151
					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))
152
				END
153
				ELSE
154
				BEGIN
155
					PRINT '2: ' + @PAY_AUTO_DESC_DETAIL
156
					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
157
					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))
158
					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))
159
				END
160
				-- END KHOI TAO GIA TRI select * from [TR_REQ_PAYMENT]
161
				PRINT '3'
162
				INSERT INTO [dbo].[TR_REQ_PAYMENT]
163
				(REQ_PAY_ID, REQ_PAY_CODE, BRANCH_ID, DEP_ID, REQ_REASON, REQ_TYPE, 
164
				REQ_ENTRIES, REQ_DESCRIPTION, REF_ID, PAY_PHASE, RECEIVER_PO, --NULL
165
				REQ_PAY_TYPE, REQ_DT, REQ_TYPE_CURRENCY, REQ_AMT, REQ_TEMP_AMT, 
166
				MAKER_ID, CREATE_DT, EDITOR_ID, AUTH_STATUS, CHECKER_ID, APPROVE_DT, --HC
167
				CREATE_DT_KT, MAKER_ID_KT, AUTH_STATUS_KT, CHECKER_ID_KT, APPROVE_DT_KT, CONFIRM_NOTE, --KT
168
				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)
169
				VALUES
170
				(@REQ_PAY_ID, @REQ_PAY_CODE, @BRANCH_ID, @DEP_ID, @PAY_AUTO_DESC_DETAIL, 'P', 
171
				NULL, NULL,  NULL, NULL, NULL,  --NULL
172
				'1', CONVERT(DATE, @EXPECTED_DT, 103), 'VND', @PAY_AUTO_AMT, NULL, 
173
				'admin', GETDATE(), NULL, 'A', 'admin', GETDATE(),  --HC
174
				GETDATE(), 'admin', 'A', 'admin', GETDATE(), NULL, --KT
175
				@BRANCH_CREATE, NULL, '1', 'admin', GETDATE(), 'admin', '0', 1, 'Y', NULL, 'Y', 'A', 'N')
176
				IF(ISNULL(@LIST_REQ_PAYMENT, '') = '')
177
				BEGIN
178
					SET @LIST_REQ_PAYMENT = @REQ_PAY_ID;
179
				END
180
				ELSE
181
				BEGIN
182
					SET @LIST_REQ_PAYMENT = @LIST_REQ_PAYMENT + ',' + @REQ_PAY_ID;
183
				END
184
				PRINT '4'
185
				-- TẠO LƯỚI PHIEU DE NGHI THANH TOAN CHO PYC
186
				INSERT INTO [dbo].[TR_REQ_PAY_AUTO_PAYMENTS]
187
				(REQ_PAY_AUTO_ID, REQ_PAY_ID, REQ_PAY_CODE, BRANCH_ID, DEP_ID, REQ_REASON, REQ_TYPE, 
188
				REQ_ENTRIES, REQ_DESCRIPTION, REF_ID, PAY_PHASE, RECEIVER_PO, --NULL
189
				REQ_PAY_TYPE, REQ_DT, REQ_TYPE_CURRENCY, REQ_AMT, REQ_TEMP_AMT, 
190
				MAKER_ID, CREATE_DT, EDITOR_ID, AUTH_STATUS, CHECKER_ID, APPROVE_DT, --HC
191
				CREATE_DT_KT, MAKER_ID_KT, AUTH_STATUS_KT, CHECKER_ID_KT, APPROVE_DT_KT, CONFIRM_NOTE, --KT
192
				BRANCH_CREATE, NOTES, RECORD_STATUS, TRANSFER_MAKER, TRANSFER_DT, TRASFER_USER_RECIVE, PROCESS, RATE, IS_PERIOD, AMT_PAY, REQ_PAY_AUTO_SCHEDULE_DETAIL_ID)
193
				VALUES
194
				(@REQ_PAY_AUTO_ID ,@REQ_PAY_ID, @REQ_PAY_CODE, @BRANCH_ID, @DEP_ID, @PAY_AUTO_DESC, 'P', 
195
				NULL, NULL,  NULL, NULL, NULL,  --NULL
196
				'1', CONVERT(DATE, @EXPECTED_DT, 103), 'VND', @PAY_AUTO_AMT, NULL, 
197
				'admin', GETDATE(), NULL, 'A', 'admin', GETDATE(),  --HC
198
				GETDATE(), 'admin', 'A', 'admin', GETDATE(), @CONFIRM_NOTE, --KT
199
				@BRANCH_CREATE, NULL, '1', 'admin', GETDATE(), @TRANSFER_USER_RECEIVE, '0', 1, 'Y', NULL, @REQ_PAY_AUTO_SCHEDULE_DETAIL_ID)
200
				-- INSERT VAO PL_PROCESS
201
				INSERT INTO dbo.PL_PROCESS(REQ_ID,PROCESS_ID,CHECKER_ID,APPROVE_DT,PROCESS_DESC,NOTES)
202
				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')
203
				-- TẠO LƯỚI THÔNG TIN THANH TOÁN HỢP ĐỒNG ĐỊNH KỲ
204
				DECLARE @REQ_PAYDTID_PERIOD VARCHAR(15);
205
				EXEC SYS_CodeMasters_Gen 'TR_REQ_ADVANCE_DT', @REQ_PAYDTID_PERIOD OUT;
206
				IF @REQ_PAYDTID_PERIOD='' OR @REQ_PAYDTID_PERIOD IS NULL GOTO ABORT;
207
				INSERT INTO TR_REQ_ADVANCE_DT (REQ_PAYDTID, REQ_PAY_ID,REF_ID, [TYPE], MAKER_ID, CREATE_DT, IS_CLOSED, REF_TYPE, DELIVERY_DT) 
208
				VALUES(@REQ_PAYDTID_PERIOD, @REQ_PAY_ID, @CONTRACT_ID, 'PAY', 'admin', GETDATE(), 'N', 'C', CONVERT(DATE,NULL,103))
209
				PRINT '5'
210
				-- TẠO LƯỚI THÔNG TIN THANH TOÁN HỢP ĐỒNG ĐỊNH KỲ
211
				DECLARE @PERIOD_ID VARCHAR(15);
212
				EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_PERIOD', @PERIOD_ID OUT;
213
				IF @PERIOD_ID='' OR @PERIOD_ID IS NULL GOTO ABORT;
214
				INSERT INTO TR_REQ_PAY_PERIOD(PERIOD_ID, REQ_PAY_ID, PAY_TYPE, CONTRACT_ID, PAY_DT_REAL ,OLD_INDEX, NEW_INDEX, AMT_PAY, 
215
				AUTH_STATUS_KT, CURRENCY, RATE, FROM_DATE, TO_DATE,AD_PAY_ID, PROCESS, PARENT_ID, PAY_PHASE, REASON, TYPE_COST,FR_LEVEL , TO_LEVEL)
216
				VALUES (@PERIOD_ID, @REQ_PAY_ID,'PAY', @CONTRACT_ID, NULL, NULL , NULL , @PAY_AUTO_AMT, 
217
				'A', 'VND', '1', NULL, NULL, NULL, '1', NULL, @PAY_PHASE, @PAY_AUTO_DESC_DETAIL, NULL, NULL, NULL )
218
				PRINT '6'
219
				-- TẠO LƯỚI THÔNG TIN HẠNG MỤC NGÂN SÁCH VÀ CHI PHÍ/
220
				/*
221
				DECLARE @p_BUDGET_ID VARCHAR(15);
222
				EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_BUDGET', @p_BUDGET_ID OUT;
223
				IF @p_BUDGET_ID='' OR @p_BUDGET_ID IS NULL GOTO ABORT;
224
				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, 
225
				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) 
226
				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 , 
227
				@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)
228
				*/
229
				-- TẠO LƯỚI THÔNG TIN PHƯƠNG THỨC THANH TOÁN
230
				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),
231
				@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), 
232
				@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)
233
				DECLARE cursorMethod CURSOR LOCAL FOR 
234
				SELECT EMP_ID, REQ_PAY_REASON, TOTAL_AMT, REQ_PAY_TYPE, REQ_PAY_DESC, REQ_PAY_ENTRIES, TEMP, MAKER_ID, CREATE_DT, 
235
				ACC_NO, ACC_NAME, ISSUED_BY, ISSUED_DT, CURRENCY, RATE, CHECK_IN, TYPE_TRANSFER, BANKCODE_NAPAS, BANKCODE, BANKNAME, SUB_ISSUED_BY, RECEIVER_DEBIT
236
				FROM TR_REQ_PAY_AUTO_METHOD
237
				WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID
238
				Open cursorMethod
239
				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, 
240
				@ACC_NO, @ACC_NAME, @ISSUED_BY, @ISSUED_DT, @CURRENCY, @RATE, @CHECK_IN, @TYPE_TRANSFER, @BANKCODE_NAPAS, @BANKCODE, @BANKNAME, @SUB_ISSUED_BY, @RECEIVER_DEBIT
241
				WHILE @@FETCH_STATUS = 0
242
				BEGIN
243
					DECLARE @p_REQ_PAY_METHOD_ID VARCHAR(15);
244
					EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_METHOD', @p_REQ_PAY_METHOD_ID OUT;
245
					IF @p_REQ_PAY_METHOD_ID='' OR @p_REQ_PAY_METHOD_ID IS NULL GOTO ABORT;
246
					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, 
247
					ACC_NO, ACC_NAME, ISSUED_BY, ISSUED_DT, CURRENCY, RATE, CHECK_IN, TYPE_TRANSFER, BANKCODE_NAPAS, BANKCODE, BANKNAME, SUB_ISSUED_BY, RECEIVER_DEBIT)
248
					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(),
249
					@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 )
250
				IF @@error<>0 GOTO ABORT;
251
				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, 
252
				@ACC_NO, @ACC_NAME, @ISSUED_BY, @ISSUED_DT, @CURRENCY, @RATE, @CHECK_IN, @TYPE_TRANSFER, @BANKCODE_NAPAS, @BANKCODE, @BANKNAME, @SUB_ISSUED_BY, @RECEIVER_DEBIT
253
				END
254
				CLOSE cursorMethod
255
				DEALLOCATE cursorMethod
256
				PRINT '7'
257
		--BEGIN HACH TOAN
258
				-- TẠO LƯỚI THÔNG TIN HẠCH TOÁN
259
				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), 
260
				@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),
261
				@CREATE_DT_KT varchar(20), @APPROVE_DT_KT varchar(20), @IS_TRANSFER_EXTERNAL varchar(20), @DEP_ID_ENTRY varchar(20)
262
				DECLARE @TYPE_BUDGET_ALLOCAITON_ENTRIES VARCHAR(20), @PERCENT_BUDGET_ALLOCAITON_ENTRIES DECIMAL(18,2), @AMT_BUDGET_ALLOCAITON_ENTRIES DECIMAL(18,2)
263

    
264
				DECLARE @RES VARCHAR(10)
265
				DECLARE @TOTAL_CREDIT_AMT DECIMAL(18,0) = @PAY_AUTO_AMT;
266
				DECLARE @TAX DECIMAL(18,1) = 0.1
267
				DECLARE @l_TR_REQ_PAY_ENTRIES_D VARCHAR(15);
268
				DECLARE @TOTAL_PERCENT DECIMAL(18,2) = 0, @TOTAL_PERCENT_AMT DECIMAL(18,0) = 0;
269
				DECLARE @TOTAL_MONEY DECIMAL(18,2) = 0, @TOTAL_MONEY_AMT DECIMAL(18,0) = (SELECT ISNULL(SUM(AMT_BUDGET_ALLOCAITON), 0) FROM TR_REQ_PAY_AUTO_ENTRIES);
270
				IF(EXISTS(SELECT * FROM TR_REQ_PAY_AUTO_ENTRIES WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID AND ACCT = '353200002') AND 1=2)-- THEM DIEU KIEN 1=2 VI CHUC NANG NAY CHUA HOAT DONG
271
				BEGIN
272
					IF(EXISTS(SELECT * FROM TR_REQ_PAY_AUTO_BUDGET_ALLOCATION WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID AND TYPE_BUDGET_ALLOCAITON = 'PERCENT'))
273
					BEGIN
274
						PRINT 'CO THUE, CO PHAN CHIA'
275
					END
276
					ELSE
277
					BEGIN
278
						PRINT 'CO THUE, KHONG PHAN CHIA 2 NO - 1 CO'
279
						DECLARE @DEBIT_AMT_1 DECIMAL(18,0) = @TOTAL_CREDIT_AMT/1.1
280
						DECLARE @3532_AMT DECIMAL(18,0) = @TOTAL_CREDIT_AMT - @DEBIT_AMT_1
281

    
282
						DECLARE cursorEntries CURSOR LOCAL FOR 
283
						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,
284
						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
285
						FROM TR_REQ_PAY_AUTO_ENTRIES
286
						WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID
287
						Open cursorEntries
288
						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,
289
						@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
290
						WHILE @@FETCH_STATUS = 0
291
						BEGIN
292

    
293
							EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_ENTRIES', @l_TR_REQ_PAY_ENTRIES_D OUT;
294
							IF @l_TR_REQ_PAY_ENTRIES_D='' OR @l_TR_REQ_PAY_ENTRIES_D IS NULL GOTO ABORT;
295

    
296
							IF(@DR_CR = 'D')	-- Nợ
297
							BEGIN
298
								IF(@ACCT = '353200002')
299
								BEGIN
300
									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],
301
									[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])
302
									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,
303
									@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)
304
								END
305
								ELSE
306
								BEGIN
307
									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],
308
									[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])
309
									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,
310
									@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)
311
								END
312
							END
313
							ELSE
314
							BEGIN
315
								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],
316
								[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])
317
								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,
318
								@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)
319
							END
320

    
321
							
322
						IF @@error<>0 GOTO ABORT;
323
						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,
324
						@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
325
						END
326
						CLOSE cursorEntries
327
						DEALLOCATE cursorEntries
328
						--- BAN BUT TOAN VAO CORE
329
						EXEC [dbo].[PAY_ENTRIES_POST_SetApp] @REQ_PAY_ID,'admin','admin', @RES OUT 
330
					END
331
				END
332
				ELSE
333
				BEGIN
334
					IF(EXISTS(SELECT * FROM TR_REQ_PAY_AUTO_BUDGET_ALLOCATION WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID) AND 1=2)-- THEM DIEU KIEN 1=2 VI CHUC NANG NAY CHUA HOAT DONG
335
					BEGIN
336
						PRINT 'KHONG THUE, CO PHAN CHIA'
337
						IF(EXISTS(SELECT * FROM TR_REQ_PAY_AUTO_BUDGET_ALLOCATION WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID AND TYPE_BUDGET_ALLOCAITON = 'PERCENT'))
338
						BEGIN
339
							PRINT 'KHONG THUE, CO PHAN CHIA, PHAN CHIA THEO TY LE'
340
							DECLARE cursorEntries CURSOR LOCAL FOR 
341
							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,
342
							TRN_DATE, TRN_DESC, MAKER_ID, CREATE_DT, AUTH_STATUS, CHECKER_ID, APPROVE_DT, MAKER_ID_KT, CREATE_DT_KT, AUTH_STATUS_KT, CHECKER_ID_KT, APPROVE_DT_KT, RECORD_STATUS,
343
							IS_TRANSFER_EXTERNAL, TYPE_BUDGET_ALLOCAITON, PERCENT_BUDGET_ALLOCAITON, AMT_BUDGET_ALLOCAITON
344
							FROM TR_REQ_PAY_AUTO_ENTRIES
345
							WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID
346
							Open cursorEntries
347
							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,
348
							@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, 
349
							@IS_TRANSFER_EXTERNAL, @TYPE_BUDGET_ALLOCAITON_ENTRIES, @PERCENT_BUDGET_ALLOCAITON_ENTRIES, @AMT_BUDGET_ALLOCAITON_ENTRIES
350
							WHILE @@FETCH_STATUS = 0
351
							BEGIN
352

    
353
								EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_ENTRIES', @l_TR_REQ_PAY_ENTRIES_D OUT;
354
								IF @l_TR_REQ_PAY_ENTRIES_D='' OR @l_TR_REQ_PAY_ENTRIES_D IS NULL GOTO ABORT;
355

    
356
								IF(@DR_CR = 'D')
357
								BEGIN
358
									IF(ISNULL(@TOTAL_PERCENT, 0) + ISNULL(@PERCENT_BUDGET_ALLOCAITON_ENTRIES, 0) = 100)
359
									BEGIN
360
										PRINT 'DONG NO CUOI'
361
										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],
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
										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,
364
										@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)
365
									END
366
									ELSE
367
									BEGIN
368
										PRINT 'CHUA PHAI DONG NO CUOI'
369
										SET @TOTAL_PERCENT = @TOTAL_PERCENT + @PERCENT_BUDGET_ALLOCAITON_ENTRIES;
370
										SET @TOTAL_PERCENT_AMT = @TOTAL_PERCENT_AMT + @PAY_AUTO_AMT*@PERCENT_BUDGET_ALLOCAITON_ENTRIES/100
371

    
372
										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],
373
										[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])
374
										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,
375
										@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)
376
									END
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, @PAY_AUTO_AMT, @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

    
386
							IF @@error<>0 GOTO ABORT;
387
							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,
388
							@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,
389
							@IS_TRANSFER_EXTERNAL, @TYPE_BUDGET_ALLOCAITON_ENTRIES, @PERCENT_BUDGET_ALLOCAITON_ENTRIES, @AMT_BUDGET_ALLOCAITON_ENTRIES
390
							END
391
							CLOSE cursorEntries
392
							DEALLOCATE cursorEntries
393
							--- BAN BUT TOAN VAO CORE
394
							EXEC [dbo].[PAY_ENTRIES_POST_SetApp] @REQ_PAY_ID,'admin','admin', @RES OUT
395
						END
396
						ELSE
397
						BEGIN
398
							PRINT 'KHONG THUE, CO PHAN CHIA, PHAN CHIA THEO SO TIEN'
399
							DECLARE cursorEntries CURSOR LOCAL FOR 
400
							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,
401
							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, 
402
							IS_TRANSFER_EXTERNAL, TYPE_BUDGET_ALLOCAITON, PERCENT_BUDGET_ALLOCAITON, AMT_BUDGET_ALLOCAITON
403
							FROM TR_REQ_PAY_AUTO_ENTRIES
404
							WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID
405
							Open cursorEntries
406
							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,
407
							@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,
408
							@IS_TRANSFER_EXTERNAL, @TYPE_BUDGET_ALLOCAITON_ENTRIES, @PERCENT_BUDGET_ALLOCAITON_ENTRIES, @AMT_BUDGET_ALLOCAITON_ENTRIES
409
							WHILE @@FETCH_STATUS = 0
410
							BEGIN
411
								EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_ENTRIES', @l_TR_REQ_PAY_ENTRIES_D OUT;
412
								IF @l_TR_REQ_PAY_ENTRIES_D='' OR @l_TR_REQ_PAY_ENTRIES_D IS NULL GOTO ABORT;
413

    
414
								IF(@DR_CR = 'D')
415
								BEGIN
416
									IF(ISNULL(@TOTAL_MONEY, 0) + ISNULL(@AMT_BUDGET_ALLOCAITON_ENTRIES, 0 ) = ISNULL(@TOTAL_MONEY_AMT, 0) )
417
									BEGIN
418
										PRINT 'DONG NO CUOI'
419
										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],
420
										[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])
421
										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,
422
										@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)
423
									END
424
									ELSE
425
									BEGIN
426
										PRINT 'CHUA PHAI DONG NO CUOI'
427
										SET @TOTAL_MONEY = @TOTAL_MONEY + @AMT_BUDGET_ALLOCAITON_ENTRIES
428

    
429
										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],
430
										[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])
431
										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,
432
										@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)
433
									END
434
								END
435
								ELSE
436
								BEGIN
437
									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],
438
									[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])
439
									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,
440
									@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)
441
								END
442

    
443
							IF @@error<>0 GOTO ABORT;
444
							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,
445
							@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,
446
							@IS_TRANSFER_EXTERNAL, @TYPE_BUDGET_ALLOCAITON_ENTRIES, @PERCENT_BUDGET_ALLOCAITON_ENTRIES, @AMT_BUDGET_ALLOCAITON_ENTRIES
447
							END
448
							CLOSE cursorEntries
449
							DEALLOCATE cursorEntries
450
							--- BAN BUT TOAN VAO CORE
451
							EXEC [dbo].[PAY_ENTRIES_POST_SetApp] @REQ_PAY_ID,'admin','admin', @RES OUT
452
						END
453
					END
454
					ELSE
455
					BEGIN
456
						PRINT 'KHONG THUE, KHONG PHAN CHIA 1 NO - 1 CO'
457
						DECLARE cursorEntries CURSOR LOCAL FOR 
458
						SELECT REQ_PAY_AUTO_ID, FUNCTION_TYPE, TRN_TYPE, REF_ID, ENTRY_PAIR, DR_CR, DR_CR_NAME, ACCT, ACCT_NAME, BRANCH_ID, DEP_ID, AMT, CURRENCY, EXC_RATE,
459
						TRN_DATE, TRN_DESC, MAKER_ID, CREATE_DT, AUTH_STATUS, CHECKER_ID, APPROVE_DT, MAKER_ID_KT, CREATE_DT_KT, AUTH_STATUS_KT, CHECKER_ID_KT, APPROVE_DT_KT, RECORD_STATUS, IS_TRANSFER_EXTERNAL
460
						FROM TR_REQ_PAY_AUTO_ENTRIES
461
						WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID
462
						Open cursorEntries
463
						FETCH NEXT FROM cursorEntries INTO @REQ_PAY_AUTO_ID, @FUNCTION_TYPE, @TRN_TYPE, @REF_ID, @ENTRY_PAIR, @DR_CR, @DR_CR_NAME, @ACCT, @ACCT_NAME, @BRANCH_ID, @DEP_ID_ENTRY, @AMT, @CURRENCY, @EXC_RATE,
464
						@TRN_DATE, @TRN_DESC, @MAKER_ID, @CREATE_DT, @AUTH_STATUS, @CHECKER_ID, @APPROVE_DT, @MAKER_ID_KT, @CREATE_DT_KT, @AUTH_STATUS_KT, @CHECKER_ID_KT, @APPROVE_DT_KT, @RECORD_STATUS, @IS_TRANSFER_EXTERNAL
465
						WHILE @@FETCH_STATUS = 0
466
						BEGIN
467

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

    
471
							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],
472
							[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])
473
							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,
474
							@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)
475
						
476
						IF @@error<>0 GOTO ABORT;
477
						FETCH NEXT FROM cursorEntries INTO @REQ_PAY_AUTO_ID, @FUNCTION_TYPE, @TRN_TYPE, @REF_ID, @ENTRY_PAIR, @DR_CR, @DR_CR_NAME, @ACCT, @ACCT_NAME, @BRANCH_ID, @DEP_ID_ENTRY, @AMT, @CURRENCY, @EXC_RATE,
478
						@TRN_DATE, @TRN_DESC, @MAKER_ID, @CREATE_DT, @AUTH_STATUS, @CHECKER_ID, @APPROVE_DT, @MAKER_ID_KT, @CREATE_DT_KT, @AUTH_STATUS_KT, @CHECKER_ID_KT, @APPROVE_DT_KT, @RECORD_STATUS, @IS_TRANSFER_EXTERNAL
479
						END
480
						CLOSE cursorEntries
481
						DEALLOCATE cursorEntries
482
						--- BAN BUT TOAN VAO CORE
483
						EXEC [dbo].[PAY_ENTRIES_POST_SetApp] @REQ_PAY_ID,'admin','admin', @RES OUT 
484
					END
485
				END
486
				
487
		--END HACH TOAN
488
				-- TẠO LƯỚI CHUYỂN TIỀN NGOÀI HỆ THỐNG
489
				-- LUOI DON VI CHUYEN
490
				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)
491
				DECLARE cursorTrans CURSOR LOCAL FOR 
492
				SELECT MAKER_ID, BRANCH_TRANFSER_NAME, TYPE_TRANSFER_ID, PRODUCT_ID, OBJECT_TRANSFER_ID, BRANCH_ID, ACC_NO_TRANSFER, BRANCH_TRANSFER_ID
493
				FROM TR_REQ_PAY_AUTO_TRANS_OUTSIDE_TRANS
494
				WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID
495
				Open cursorTrans
496
				PRINT '10'
497
				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
498
				WHILE @@FETCH_STATUS = 0
499
				BEGIN
500
					DECLARE @p_TR_REQ_TRANS_OUTSIDE_ID VARCHAR(15)
501
					EXEC SYS_CodeMasters_Gen 'TR_REQ_OUTSIDE_TRANS', @p_TR_REQ_TRANS_OUTSIDE_ID OUT;
502
					IF @p_TR_REQ_TRANS_OUTSIDE_ID='' OR @p_TR_REQ_TRANS_OUTSIDE_ID IS NULL GOTO ABORT;
503
					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 , 
504
					BRANCH_TRANFSER_NAME,TYPE_TRANSFER_ID , PRODUCT_ID , OBJECT_TRANSFER_ID , BRANCH_ID, ACC_NO_TRANSFER , BRANCH_TRANSFER_ID)
505
					VALUES (@p_TR_REQ_TRANS_OUTSIDE_ID ,@REQ_PAY_ID ,'admin' , GETDATE(), NULL , NULL, 
506
					@BRANCH_TRANFSER_NAME, @TYPE_TRANSFER_ID , @PRODUCT_ID , @OBJECT_TRANSFER_ID , @BRANCH_ID, @ACC_NO_TRANSFER , @BRANCH_TRANSFER_ID)
507
				IF @@error<>0 GOTO ABORT;
508
				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
509
				END
510
				CLOSE cursorTrans
511
				DEALLOCATE cursorTrans
512
				PRINT '11'
513
				-- LUOI DON VI NHAN
514
				DECLARE @CHANEL_PAYMENT_ID VARCHAR(15), @CITAD1_ID VARCHAR(15), @BANK_RECEIVE_ID VARCHAR(250), @OBJECT_RECEIVE_ID VARCHAR(15), 
515
				@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)
516
				DECLARE cursorRec CURSOR LOCAL FOR 
517
				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
518
				FROM TR_REQ_PAY_AUTO_TRANS_OUTSIDE_REC
519
				WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID
520
				Open cursorRec
521
				PRINT '12'
522
				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
523
				WHILE @@FETCH_STATUS = 0
524
				BEGIN
525
					DECLARE @p_REQ_TRANS_OUTSIDE_REC_ID VARCHAR(15);
526
					EXEC SYS_CodeMasters_Gen 'TR_REQ_OUTSIDE_REC', @p_REQ_TRANS_OUTSIDE_REC_ID OUT;
527
					IF @p_REQ_TRANS_OUTSIDE_REC_ID='' OR @p_REQ_TRANS_OUTSIDE_REC_ID IS NULL GOTO ABORT;
528
					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,
529
					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)
530
					VALUES (@p_REQ_TRANS_OUTSIDE_REC_ID, @REQ_PAY_ID, 'admin', GETDATE(), NULL, NULL,
531
					@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)
532
				IF @@error<>0 GOTO ABORT;
533
				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
534
				END
535
				CLOSE cursorRec
536
				DEALLOCATE cursorRec
537
				PRINT '13'
538
				
539
				UPDATE TR_REQ_PAY_AUTO_SCHEDULE_DETAIL 
540
				SET PAY_AUTO_DESC = @PAY_AUTO_DESC_DETAIL, PAY_AUTO_STATUS = 'Y', EXACT_DT = GETDATE() 
541
				WHERE REQ_PAY_AUTO_SCHEDULE_DETAIL_ID = @REQ_PAY_AUTO_SCHEDULE_DETAIL_ID
542
			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
543
			END
544
			CLOSE cursorScheduleDetail
545
			DEALLOCATE cursorScheduleDetail
546
		END
547
	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, 
548
	@REQ_PAY_AUTO_EFFECTIVE_DT, @BRANCH_ID, @DEP_ID, @BRANCH_CREATE, @TRANSFER_USER_RECEIVE, @CONFIRM_NOTE, 
549
	@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
550
	END
551
	CLOSE cursorPaymentAuto
552
	DEALLOCATE cursorPaymentAuto
553
	
554
COMMIT TRANSACTION
555
SELECT '0' as Result, @LIST_REQ_PAYMENT list_req_payment, N'Thêm mới thành công' ErrorDesc
556
RETURN '0'
557
ABORT:
558
BEGIN
559
	ROLLBACK TRANSACTION
560
	SELECT '-1' as Result, @LIST_REQ_PAYMENT list_req_payment, N'Lỗi không xác định' ErrorDesc
561
	RETURN '-1'
562
End
563

    
564
--update 21062023_secretkey