Project

General

Profile

script_update_180723.txt

Luc Tran Van, 07/18/2023 12:10 AM

 
1

    
2
ALTER PROCEDURE [dbo].[TR_REQ_PAY_INVOICE_DRAFT_Ins]
3
@p_REQ_PAY_ID	VARCHAR(15) = NULL,
4
@p_REQ_PAY_CODE	VARCHAR(50)	= NULL,
5
@p_MAKER_ID VARCHAR(15) = NULL,
6
@p_BRANCH_LOGIN VARCHAR(15) = NULL,
7
@p_DEP_LOGIN VARCHAR(15) = NULL,
8
@p_XMP_TEMP XML = NULL
9
AS
10
	IF(ISNULL((SELECT TOP 1 REQ_PAY_ID FROM TR_REQ_PAYMENT WHERE REQ_PAY_CODE = @p_REQ_PAY_CODE), '') <> @p_REQ_PAY_ID)
11
	BEGIN
12
		SELECT '-1' as Result, '' REQ_PAY_ID, N'Thêm mới PYC xóa hóa đơn đính kèm lưu nháp/ từ chối thất bại! Mã số phiếu đề nghị thanh toán không hợp lệ. Vui lòng kiểm tra lại mã số phiếu đề nghị thanh toán và bấm tra cứu hóa đơn trước khi tạo PYC' ErrorDesc
13
		RETURN '-1'
14
	END
15

    
16
	/* Bỏ điều kiện này vì đã bỏ quy trình gửi duyệt và duyệt
17
	IF(EXISTS (SELECT * FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID = @p_REQ_PAY_ID AND AUTH_STATUS <> '' AND AUTH_STATUS IS NOT NULL AND AUTH_STATUS <> 'E' AND AUTH_STATUS <> 'R'))
18
	BEGIN
19
		SELECT '-1' as Result, '' REQ_PAY_ID, N'Thêm mới PYC xóa hóa đơn đính kèm lưu nháp/ từ chối thất bại! Phiếu đề nghị thanh toán có mã ' + @p_REQ_PAY_CODE + N' đang không ở trạng thái lưu nháp hoặc từ chối' ErrorDesc
20
		RETURN '-1'
21
	END
22
	*/
23

    
24
BEGIN TRANSACTION
25
--VALIDATION
26
	/* Bỏ điều kiện này vì đã bỏ quy trình gửi duyệt và duyệt
27
	IF(EXISTS (SELECT * FROM TR_REQ_PAY_INVOICE_DRAFT WHERE REQ_PAY_ID = @p_REQ_PAY_ID AND AUTH_STATUS <> 'A'))
28
	BEGIN
29
		ROLLBACK TRANSACTION
30
		SELECT '-1' as Result, '' REQ_PAY_ID, N'Đang tồn tại PYC xóa hóa đơn đính kèm lưu nháp/ từ chối của phiếu đề nghị thanh toán có mã ' + @p_REQ_PAY_CODE + N' đang chờ duyệt' ErrorDesc
31
		RETURN '-1'
32
	END
33
	*/
34
-- INSERT MASTER
35
	DECLARE @l_UPD_ID VARCHAR(15);
36
	EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_INVOICE_DRAFT', @l_UPD_ID OUT;
37
	IF @l_UPD_ID='' OR @l_UPD_ID IS NULL GOTO ABORT;
38
	INSERT INTO TR_REQ_PAY_INVOICE_DRAFT (UP_ID, REQ_PAY_ID, MAKER_ID, CREATE_DT, CHECKER_ID, APPROVE_DT, AUTH_STATUS, BRANCH_LOGIN, DEP_LOGIN) 
39
	VALUES (@l_UPD_ID, @p_REQ_PAY_ID, @p_MAKER_ID, GETDATE(), NULL, NULL, 'E', @p_BRANCH_LOGIN, @p_DEP_LOGIN)
40

    
41
-- INSERT LUOI HOA DON
42
	DECLARE @UP_ID VARCHAR(15), @REQ_PAY_ID VARCHAR(15), @REQ_PAYDT_ID VARCHAR(15)
43
	DECLARE @hdoc INT
44

    
45
	EXEC sp_xml_preparedocument @hdoc OUTPUT, @p_XMP_TEMP;
46
	DECLARE XmlInvoice CURSOR FOR SELECT * FROM OPENXML(@hdoc, '/Root/XmlData', 2)
47
	WITH(UP_ID VARCHAR(15), REQ_PAY_ID VARCHAR(15), REQ_PAYDT_ID VARCHAR(15))
48
	OPEN XmlInvoice;
49

    
50

    
51
	FETCH NEXT FROM XmlInvoice INTO @UP_ID, @REQ_PAY_ID, @REQ_PAYDT_ID
52
	WHILE @@fetch_status=0 
53
	BEGIN
54
		
55
		--INSERT INTO TR_REQ_PAY_INVOICE_DRAFT_DT(UP_ID, REQ_PAY_ID, REQ_PAYDT_ID) 
56
		--VALUES (@l_UPD_ID, @p_REQ_PAY_ID, @REQ_PAYDT_ID)
57

    
58
		INSERT INTO TR_REQ_PAY_INVOICE_DRAFT_DT
59
		(	UP_ID, REQ_PAY_ID, REQ_PAYDT_ID, TRANS_NO , TRANS_DT , INVOICE_SIGN , INVOICE_NO , INVOICE_DT , 
60
			SELLER , TAX_NO , GOODS_NAME , PRICE , TAX , VAT , MAKER_ID , CREATE_DT , 
61
			EDITOR_ID , EDITTOR_DT , AUTH_STATUS , CHECKER_ID , APPROVE_DT , CREATE_DT_KT , 
62
			MAKER_ID_KT , AUTH_STATUS_KT , CHECKER_ID_KT , APPROVE_DT_KT , CORE_NOTE , 
63
			BRANCH_CREATE , NOTE , RECORD_STATUS , INVOICE_NO_SIGN , VAT_RATE , CURRENCY , 
64
			RATE , PRICE_KT , VAT_KT , TOTAL_AMT_KT , TYPE_VAT, TYPE_FUNC
65
		)
66
		SELECT @l_UPD_ID, @p_REQ_PAY_ID, @REQ_PAYDT_ID, TRANS_NO , TRANS_DT , INVOICE_SIGN , INVOICE_NO , INVOICE_DT , 
67
		SELLER , TAX_NO , GOODS_NAME , PRICE , TAX , VAT , MAKER_ID , CREATE_DT , 
68
		EDITOR_ID , EDITTOR_DT , AUTH_STATUS , CHECKER_ID , APPROVE_DT , CREATE_DT_KT , 
69
		MAKER_ID_KT , AUTH_STATUS_KT , CHECKER_ID_KT , APPROVE_DT_KT , CORE_NOTE , 
70
		BRANCH_CREATE , NOTE , RECORD_STATUS , INVOICE_NO_SIGN , VAT_RATE , CURRENCY , 
71
		RATE , PRICE_KT , VAT_KT , TOTAL_AMT_KT , TYPE_VAT, TYPE_FUNC
72
		FROM TR_REQ_PAY_INVOICE
73
		WHERE REQ_PAYDT_ID = @REQ_PAYDT_ID
74
	IF @@error<>0 GOTO ABORT;
75
	FETCH NEXT FROM XmlInvoice INTO @UP_ID, @REQ_PAY_ID, @REQ_PAYDT_ID
76
	END;
77
	CLOSE XmlInvoice;
78
	DEALLOCATE XmlInvoice;
79

    
80
-- Duyệt ngay sau khi thêm mới: Bỏ qua quy trình gửi duyệt và duyệt được áp dụng trước đó
81
	UPDATE TR_REQ_PAY_INVOICE_DRAFT SET AUTH_STATUS ='A', APPROVE_DT= GETDATE(), CHECKER_ID= @p_MAKER_ID WHERE UP_ID = @l_UPD_ID
82
	-- ĐIỀU KIỆN NÀY ĐỂ CHẮC CHẮN SẼ KHÔNG XÓA HẾT HÓA ĐƠN CÓ TRONG DATABASE
83
	IF	(
84
			(	SELECT COUNT(*) 
85
				FROM TR_REQ_PAY_INVOICE 
86
				WHERE 1 = 1
87
				AND REQ_PAY_ID = (SELECT TOP 1 REQ_PAY_ID FROM TR_REQ_PAY_INVOICE_DRAFT WHERE UP_ID = @l_UPD_ID)
88
				AND REQ_PAYDT_ID NOT IN (SELECT REQ_PAYDT_ID FROM TR_REQ_PAY_INVOICE_DRAFT_DT)
89
			) > 10
90
		)
91
	BEGIN
92
		ROLLBACK TRANSACTION
93
		SELECT '-1' as Result, N'Duyệt PYC xóa hóa đơn đính kèm lưu nháp/ từ chối thất bại! Mỗi lần bạn chỉ được phép xóa tối đa 10 hóa đơn' ErrorDesc
94
		RETURN '-1'
95
	END
96

    
97
	DELETE FROM TR_REQ_PAY_INVOICE 
98
	WHERE 1 = 1
99
	AND REQ_PAY_ID = (SELECT TOP 1 REQ_PAY_ID FROM TR_REQ_PAY_INVOICE_DRAFT WHERE UP_ID = @l_UPD_ID)
100
	AND REQ_PAYDT_ID NOT IN (SELECT REQ_PAYDT_ID FROM TR_REQ_PAY_INVOICE_DRAFT_DT WHERE UP_ID = @l_UPD_ID)
101

    
102
COMMIT TRANSACTION
103

    
104
	SELECT '0' as Result, @p_REQ_PAY_ID  REQ_PAY_ID, @l_UPD_ID UP_ID, 'Thêm mới PYC xóa hóa đơn đính kèm lưu nháp/ từ chối thành công' ErrorDesc
105
	RETURN '0'
106

    
107
ABORT:
108
BEGIN
109
	ROLLBACK TRANSACTION
110
	CLOSE XmlInvoice;
111
	DEALLOCATE XmlInvoice;
112
	SELECT '-1' as Result, '' REQ_PAY_ID, '' UP_ID, '' ErrorDesc
113
	RETURN '-1'
114
END
115

    
116
GO
117

    
118
ALTER PROC [dbo].[CM_ACCOUNT_Edit]
119
@p_REF_ID VARCHAR(15) = NULL
120
AS
121
BEGIN TRANSACTION
122
-- VALIDATE
123
	DECLARE @TOTAL_AMT DECIMAL(18,0) =	(	SELECT SUM(ISNULL(REQ_AMT, 0) - ISNULL(PAY_AMT, 0)) 
124
											FROM TR_REQ_ADVANCE_PAYMENT 
125
											WHERE 1=1
126
											AND REQ_TYPE = 'I' 
127
											AND AUTH_STATUS IN ('U', 'A')
128
											AND REF_ID = @p_REF_ID
129
										)
130
	IF(@TOTAL_AMT > 0)
131
	BEGIN
132
		DECLARE @REQ_PAYMENT_LIST_STRING NVARCHAR(MAX)
133
		SELECT @REQ_PAYMENT_LIST_STRING =	STUFF	(
134
														(   SELECT ', ' + REQ_PAY_CODE 
135
															FROM TR_REQ_ADVANCE_PAYMENT 
136
															WHERE 1=1
137
															AND REQ_TYPE = 'I' 
138
															AND AUTH_STATUS IN ('U', 'A')
139
															AND REF_ID = @p_REF_ID
140
															AND ISNULL(REQ_AMT, 0) - ISNULL(PAY_AMT, 0) > 0
141
															FOR XML PATH(''), TYPE
142
														).value('.[1]', 'nvarchar(max)'), 1, 1, ''
143
													)
144
		ROLLBACK TRANSACTION
145
		SELECT '-1' as Result, '' REF_ID, N'Chỉnh sửa tài khoản tạm ứng thất bại! user ' + @p_REF_ID + N' vẫn chưa hoàn tất hoàn ứng nội bộ.'
146
		+ CHAR(10) +
147
		N'</br>* Số tiền còn lại cần hoàn ứng: ' + FORMAT(ISNULL(@TOTAL_AMT,0),'#,#', 'vi-VN') +' VND' +
148
		+ CHAR(10) +
149
		N'</br>* Danh sách số phiếu tạm ứng nội bộ chưa hoàn tất hoàn ứng: ' + @REQ_PAYMENT_LIST_STRING 
150
		ErrorDesc
151
		RETURN '-1'
152
	END
153

    
154
	-- LUU LOG
155
	INSERT INTO CM_ACCOUNT_PAY_LOG
156
	SELECT * FROM CM_ACCOUNT_PAY WHERE REF_ID = @p_REF_ID
157

    
158
	UPDATE CM_ACCOUNT_PAY SET AUTH_STATUS = 'U', CHECKER_ID = NULL, APPROVE_DT = NULL WHERE REF_ID = @p_REF_ID
159

    
160
COMMIT TRANSACTION
161

    
162
SELECT '0' as Result, @p_REF_ID  REF_ID, N'Cập nhật thành công. Bây giờ bạn có thể chỉnh sửa tài khoản tạm ứng này' ErrorDesc
163
RETURN '0'
164

    
165
ABORT:
166
BEGIN
167
		ROLLBACK TRANSACTION
168
		SELECT '-1' as Result, '' REF_ID, 'ERROR ABORT!' ErrorDesc
169
		RETURN '-1'
170
END
171

    
172
GO
173

    
174
ALTER PROCEDURE [dbo].[TR_REQ_PAYMENT_AUTO_EDIT_ENTRIES_Ins]
175
@p_REQ_PAY_AUTO_ID	VARCHAR(15) = NULL,
176
@p_REQ_PAY_AUTO_CODE	VARCHAR(50)	= NULL,
177
@p_MAKER_ID VARCHAR(15) = NULL,
178
@p_XMP_ENTRIES XML = NULL
179
AS
180
	IF(ISNULL((SELECT TOP 1 REQ_PAY_AUTO_ID FROM TR_REQ_PAYMENT_AUTO WHERE REQ_PAY_AUTO_CODE = @p_REQ_PAY_AUTO_CODE), '') <> @p_REQ_PAY_AUTO_ID)
181
	BEGIN
182
		SELECT '-1' as Result, '' REQ_PAY_ID, N'Thêm mới chỉnh sửa hạch toán PYC TTTĐ thất bại! Mã PYC TTTĐ không hợp lệ. Vui lòng kiểm tra lại mã PYC TTTĐ và bấm tra cứu' ErrorDesc
183
		RETURN '-1'
184
	END
185

    
186
BEGIN TRANSACTION
187
--VALIDATION
188
	IF(EXISTS (SELECT * FROM TR_REQ_PAYMENT_AUTO_EDIT_ENTRIES WHERE REQ_PAY_AUTO_ID = @p_REQ_PAY_AUTO_ID AND AUTH_STATUS <> 'A'))
189
	BEGIN
190
		ROLLBACK TRANSACTION
191
		SELECT '-1' as Result, '' REQ_PAY_ID, N'Đang tồn tại PYC chỉnh sửa hạch toán PYC TTTĐ của PYC TTTĐ có mã ' + @p_REQ_PAY_AUTO_CODE + N' đang chờ duyệt' ErrorDesc
192
		RETURN '-1'
193
	END
194
-- INSERT MASTER
195
	DECLARE @l_ENTRY_AUTO_ID VARCHAR(15);
196
	EXEC SYS_CodeMasters_Gen 'TR_REQ_PAYMENT_AUTO_EDIT_ENTRIES', @l_ENTRY_AUTO_ID OUT;
197
	IF @l_ENTRY_AUTO_ID='' OR @l_ENTRY_AUTO_ID IS NULL GOTO ABORT;
198
	INSERT INTO TR_REQ_PAYMENT_AUTO_EDIT_ENTRIES (ENTRY_AUTO_ID, REQ_PAY_AUTO_ID, MAKER_ID, CREATE_DT, CHECKER_ID, APPROVE_DT, AUTH_STATUS) 
199
	VALUES (@l_ENTRY_AUTO_ID, @p_REQ_PAY_AUTO_ID, @p_MAKER_ID, GETDATE(), NULL, NULL, 'E')
200

    
201
-- BBEGIN INSERT LUOI HACH TOAN
202
	DECLARE @ENTRY_PAIR VARCHAR(20),@DR_CR VARCHAR(20),@ACCT VARCHAR(50), @ACCT_NAME VARCHAR(500), @AMT DECIMAL(18,2),@CURRENCY VARCHAR(15), @EXC_RATE DECIMAL(18,0),
203
		@BRANCH_ID VARCHAR(15), @DEP_ID VARCHAR(15),@TRN_DESC NVARCHAR(255),@GL_CODE VARCHAR(100),@GL_CODE_ACCNO VARCHAR(20), @REQ_PAY_AUTO_DT_ID VARCHAR(15)
204
	DECLARE @VAT DECIMAL(18, 0) =NULL, @TRANS_NO nvarchar(50)=NULL, @TRANS_DT VARCHAR(20)=NULL,@INVOICE_SIGN NVARCHAR(50) = NULL,@INVOICE_NO_SIGN NVARCHAR(50) = NULL,
205
		@INVOICE_NO NVARCHAR(50) = NULL,@INVOICE_DT VARCHAR(20) = NULL,@SELLER nvarchar(250) = NULL,@TAX_NO NVARCHAR(15) = NULL,@GOODS_NAME NVARCHAR(250) = NULL,
206
		@PRICE DECIMAL(18, 0) = NULL,@TAX DECIMAL(18, 0) = NULL,@NOTES NVARCHAR(MAX) = NULL,@VAT_RATE DECIMAL(18,2),
207
		@ACC_NO VARCHAR(25),@ACC_NAME NVARCHAR(250),@ISSUED_BY NVARCHAR(250),@ISSUED_DT VARCHAR(20),@RATE DECIMAL(18,2),@PRICE_KT DECIMAL(18,2) = 0,@TOTAL_AMT_KT DECIMAL(18,2) =0,@VAT_KT DECIMAL(18,2) = 0,
208
		@TYPE_VAT VARCHAR(15),@TYPE_FUNC VARCHAR(15), @IS_TRANSFER_EXTERNAL VARCHAR(15)
209
	DECLARE @TYPE_BUDGET_ALLOCAITON_ENTRIES VARCHAR(20), @PERCENT_BUDGET_ALLOCAITON_ENTRIES DECIMAL(18,2), @AMT_BUDGET_ALLOCAITON_ENTRIES DECIMAL(18,2)
210
	DECLARE @DR_CR_NAME NVARCHAR(50),@ACC_NAME_FN NVARCHAR(500)
211

    
212
	DECLARE @hdocEntries INT;
213
	EXEC sp_xml_preparedocument @hdocEntries OUTPUT, @p_XMP_ENTRIES;
214
	DECLARE XmlDataEntries CURSOR FOR SELECT * FROM OPENXML(@hdocEntries, '/Root/XmlDataEntries', 2)
215
	WITH(REQ_PAY_AUTO_DT_ID VARCHAR(20), ENTRY_PAIR VARCHAR(20),DR_CR VARCHAR(20),ACCT VARCHAR(50), ACCT_NAME VARCHAR(500), AMT DECIMAL(18,2),CURRENCY VARCHAR(15), EXC_RATE DECIMAL(18,0),
216
	BRANCH_ID VARCHAR(15), DEP_ID VARCHAR(15),TRN_DESC NVARCHAR(1000),GL_CODE VARCHAR(100),GL_CODE_ACCNO VARCHAR(20), IS_TRANSFER_EXTERNAL VARCHAR(15),
217
	TYPE_BUDGET_ALLOCAITON VARCHAR(20), PERCENT_BUDGET_ALLOCAITON DECIMAL(18,2), AMT_BUDGET_ALLOCAITON DECIMAL(18,2))
218
	OPEN XmlDataEntries;
219

    
220
	IF @@Error <> 0 GOTO ABORT
221
	FETCH NEXT FROM XmlDataEntries INTO @REQ_PAY_AUTO_DT_ID, @ENTRY_PAIR ,@DR_CR,@ACCT, @ACCT_NAME, @AMT ,@CURRENCY, @EXC_RATE,@BRANCH_ID, @DEP_ID,@TRN_DESC,@GL_CODE, @GL_CODE_ACCNO, 
222
	@IS_TRANSFER_EXTERNAL, @TYPE_BUDGET_ALLOCAITON_ENTRIES, @PERCENT_BUDGET_ALLOCAITON_ENTRIES, @AMT_BUDGET_ALLOCAITON_ENTRIES
223
	WHILE @@fetch_status=0 
224
	BEGIN
225
		IF(@EXC_RATE IS NULL)
226
		BEGIN
227
			SET @EXC_RATE = 1
228
		END
229

    
230
		SET @ACC_NAME =UPPER(dbo.fChuyenCoDauThanhKhongDau(@ACCT_NAME))
231

    
232
		-- NEU TEN TAI KHOAN RONG, THI LAY TEN TU CHECK CASA
233
		IF(ISNULL(@GL_CODE, '') <> '')
234
		BEGIN
235
			SET @ACC_NAME = STUFF(@GL_CODE, LEN(@GL_CODE)-8, 9, '')
236
			SET @ACCT_NAME = STUFF(@GL_CODE, LEN(@GL_CODE)-8, 9, '')
237
		END
238
		-- NEU SO TAI KHOAN RONG, THI LAY SO TAI KHOAN TU CHECK CASA
239
		SET @GL_CODE = RIGHT(@GL_CODE,9)
240
		IF(ISNULL(@ACCT, '') = '' AND ISNULL(@GL_CODE_ACCNO, '') <> '')
241
		BEGIN
242
			SET @ACCT = @GL_CODE_ACCNO
243
		END
244

    
245
		IF(@DR_CR='D')
246
		BEGIN
247
			SET @DR_CR_NAME =N'Nợ'
248
		END
249
		ELSE
250
		BEGIN
251
			SET @DR_CR_NAME =N'Có'
252
		END
253

    
254
		DECLARE @p_ET_ID VARCHAR(15);
255
		EXEC SYS_CodeMasters_Gen 'TR_REQ_PAYMENT_AUTO_EDIT_ENTRIES_ENTRIEs', @p_ET_ID OUT;
256
		IF @p_ET_ID='' OR @p_ET_ID IS NULL GOTO ABORT;
257

    
258
		INSERT INTO TR_REQ_PAYMENT_AUTO_EDIT_ENTRIES_ENTRIEs (REQ_PAY_AUTO_DT_ID, ENTRY_AUTO_ID, REQ_PAY_AUTO_ID,ENTRY_PAIR,DR_CR,DR_CR_NAME,ACCT,ACCT_NAME,AMT,BRANCH_ID,DEP_ID,TRN_DESC,TRN_DATE,MAKER_ID_KT, TRN_TYPE, CURRENCY, EXC_RATE, IS_TRANSFER_EXTERNAL, TYPE_BUDGET_ALLOCAITON, PERCENT_BUDGET_ALLOCAITON, AMT_BUDGET_ALLOCAITON)
259
		VALUES (@p_ET_ID, @l_ENTRY_AUTO_ID, @p_REQ_PAY_AUTO_ID,@ENTRY_PAIR,@DR_CR,@DR_CR_NAME,@ACCT,@ACCT_NAME, @AMT, @BRANCH_ID, @DEP_ID,@TRN_DESC,GETDATE(), @p_MAKER_ID, 'PAYMENT', 'VND', 1, @IS_TRANSFER_EXTERNAL, @TYPE_BUDGET_ALLOCAITON_ENTRIES, @PERCENT_BUDGET_ALLOCAITON_ENTRIES, @AMT_BUDGET_ALLOCAITON_ENTRIES)
260

    
261
		-- NEU CHUA CO TAI KHOAN THI THEM VO CM_ACCOUNT
262
		IF(NOT EXISTS(SELECT * FROM CM_ACCOUNT WHERE ACC_NO =@ACCT))
263
		BEGIN
264
			INSERT INTO CM_ACCOUNT (ACC_NO, ACC_NAME, TK_GL, TK_GL_NAME, MAKER_ID, CHECKER_ID,CREATE_DT) VALUES
265
			(@ACCT,@ACCT_NAME,@GL_CODE,(SELECT TOP 1 ACC_NAME FROM CM_ACCOUNT WHERE ACC_NO =@GL_CODE),'admin','admin',GETDATE())
266
		END
267
		ELSE
268
		BEGIN
269
			IF(@GL_CODE IS NOT NULL AND @GL_CODE <> '' AND @GL_CODE <> '0')
270
			BEGIN
271
				UPDATE CM_ACCOUNT SET ACC_NAME =@ACCT_NAME, TK_GL =@GL_CODE, TK_GL_NAME =(SELECT TOP 1 ACC_NAME FROM CM_ACCOUNT WHERE ACC_NO =@GL_CODE), EDITOR_DT = GETDATE()
272
				WHERE ACC_NO=@ACCT
273
			END
274
		END
275
	IF @@error<>0 GOTO ABORT;
276
	FETCH NEXT FROM XmlDataEntries INTO @REQ_PAY_AUTO_DT_ID, @ENTRY_PAIR ,@DR_CR,@ACCT, @ACCT_NAME, @AMT ,@CURRENCY, @EXC_RATE,@BRANCH_ID, @DEP_ID,@TRN_DESC,@GL_CODE, @GL_CODE_ACCNO, 
277
	@IS_TRANSFER_EXTERNAL, @TYPE_BUDGET_ALLOCAITON_ENTRIES, @PERCENT_BUDGET_ALLOCAITON_ENTRIES, @AMT_BUDGET_ALLOCAITON_ENTRIES
278
	END;--END WHILE
279
	CLOSE XmlDataEntries;
280
	DEALLOCATE XmlDataEntries;
281
-- END INSERT LUOI HACH TOAN
282
	/*
283
	IF(1=1)
284
	BEGIN
285
		ROLLBACK TRANSACTION
286
		SELECT '-1' as Result, '' ENTRY_AUTO_ID, '' ID, 'Check data' ErrorDesc
287
		RETURN '-1'
288
	END
289
	*/
290

    
291
COMMIT TRANSACTION
292

    
293
	SELECT '0' as Result, @p_REQ_PAY_AUTO_ID  REQ_PAY_ID, @l_ENTRY_AUTO_ID ID, N'Thêm mới chỉnh sửa hạch toán PYC TTTĐ thành công' ErrorDesc
294
	RETURN '0'
295

    
296
	ABORT:
297
	BEGIN
298
		ROLLBACK TRANSACTION
299
		CLOSE XmlDataEntries;
300
		DEALLOCATE XmlDataEntries;
301
		SELECT '-1' as Result, '' ENTRY_AUTO_ID, '' ID, 'ERROR ABORT' ErrorDesc
302
		RETURN '-1'
303
	END
304

    
305
--INSERT INTO [dbo].[SYS_PREFIX](ID,Prefix,Description) VALUES('TR_REQ_PAYMENT_AUTO_EDIT_ENTRIES','PAEE',N'Chỉnh sửa hạch toán PYC TTTĐ')
306
--INSERT INTO [dbo].[SYS_PREFIX](ID,Prefix,Description) VALUES('TR_REQ_PAYMENT_AUTO_EDIT_ENTRIES_ENTRIEs','PAEEE',N'Chi tiết chỉnh sửa hạch toán PYC TTTĐ')
307

    
308
GO
309

    
310
ALTER PROCEDURE [dbo].[TR_REQ_PAYMENT_AUTO_EDIT_ENTRIES_App]
311
@p_ENTRY_AUTO_ID VARCHAR(15) = NULL,
312
@p_CHECKER_ID VARCHAR(15) = NULL
313
AS
314
-- VALIDATION
315
	IF(ISNULL((SELECT TOP 1 ENTRY_AUTO_ID FROM TR_REQ_PAYMENT_AUTO_EDIT_ENTRIES WHERE ENTRY_AUTO_ID = @p_ENTRY_AUTO_ID), '') <> @p_ENTRY_AUTO_ID)
316
	BEGIN
317
		SELECT '-1' as Result, '' REQ_PAY_ID, N'Chỉnh sửa PYC chỉnh sửa hạch toán PYC TTTĐ thất bại! Mã PYC TTTĐ không hợp lệ. Vui lòng kiểm tra lại mã PYC TTTĐ và bấm tra cứu trước khi tạo PYC' ErrorDesc
318
		RETURN '-1'
319
	END
320

    
321
BEGIN TRANSACTION
322
-- UPDATE MASTER
323
	UPDATE TR_REQ_PAYMENT_AUTO_EDIT_ENTRIES SET CHECKER_ID = @p_CHECKER_ID, APPROVE_DT= GETDATE(), AUTH_STATUS = 'A' WHERE ENTRY_AUTO_ID = @p_ENTRY_AUTO_ID
324

    
325
-- CHINH SUA LUOI HACH TOAN
326
	DELETE FROM TR_REQ_PAY_AUTO_ENTRIES WHERE REQ_PAY_AUTO_ID = (SELECT TOP 1 ISNULL(REQ_PAY_AUTO_ID, '') FROM TR_REQ_PAYMENT_AUTO_EDIT_ENTRIES WHERE ENTRY_AUTO_ID = @p_ENTRY_AUTO_ID )
327
	
328
	INSERT INTO TR_REQ_PAY_AUTO_ENTRIES(REQ_PAY_AUTO_DT_ID, REQ_PAY_AUTO_ID, FUNCTION_TYPE, REF_ID, ENTRY_PAIR, DR_CR, DR_CR_NAME, ACCT, ACCT_NAME, BRANCH_ID, DEP_ID, AMT, CURRENCY, EXC_RATE, TRN_DATE, TRN_DESC,
329
	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, TYPE_BUDGET_ALLOCAITON, PERCENT_BUDGET_ALLOCAITON, AMT_BUDGET_ALLOCAITON)
330
	SELECT REQ_PAY_AUTO_DT_ID, REQ_PAY_AUTO_ID, FUNCTION_TYPE, REF_ID, ENTRY_PAIR, DR_CR, DR_CR_NAME, ACCT, ACCT_NAME, BRANCH_ID, DEP_ID, AMT, CURRENCY, EXC_RATE, TRN_DATE, TRN_DESC,
331
	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, TYPE_BUDGET_ALLOCAITON, PERCENT_BUDGET_ALLOCAITON, AMT_BUDGET_ALLOCAITON
332
	FROM TR_REQ_PAYMENT_AUTO_EDIT_ENTRIES_ENTRIES
333
	WHERE ENTRY_AUTO_ID = @p_ENTRY_AUTO_ID
334

    
335
	-- INSERT LICH SU XU LY
336
	INSERT INTO dbo.PL_PROCESS(REQ_ID,PROCESS_ID,CHECKER_ID,APPROVE_DT,PROCESS_DESC,NOTES)
337
	VALUES(@p_ENTRY_AUTO_ID,'APPR',@p_CHECKER_ID,GETDATE(), N'Kiểm sát viên phê duyệt phiếu',N'Kiểm sát viên phê duyệt chỉnh sửa PYC chỉnh sửa hạch toán PYC TTTĐ')
338

    
339
COMMIT TRANSACTION
340
		
341
	SELECT '0' as Result, @p_ENTRY_AUTO_ID  REQ_PAY_AUTO_ID, @p_ENTRY_AUTO_ID ID, N'Duyệt chỉnh sửa hạch toán PYC TTTĐ thành công' ErrorDesc
342
	RETURN '0'
343
	
344
ABORT:
345
BEGIN
346
	ROLLBACK TRANSACTION
347
	SELECT '-1' as Result, '' ENTRY_AUTO_ID, '' ID, 'ERROR ABORT. Vui lòng liên hệ IT ' ErrorDesc
348
	RETURN '-1'
349
END
350

    
351
GO
352

    
353
ALTER PROCEDURE [dbo].[TR_REQ_PAYMENT_AUTO_Search]
354
@p_REQ_PAY_AUTO_ID	VARCHAR(20)= NULL,
355
@p_REQ_PAY_AUTO_CODE	VARCHAR(20)= NULL,
356
@p_REQ_PAY_AUTO_NAME	VARCHAR(20)= NULL,
357
@p_REQ_PAY_AUTO_DT	VARCHAR(20)= NULL,
358
@p_REQ_PAY_AUTO_TYPE	VARCHAR(20)= NULL,
359
@p_REQ_PAY_AUTO_SERVICE_TYPE	VARCHAR(20)= NULL,
360
@p_REQ_PAY_AUTO_STATUS	VARCHAR(20)= NULL,
361
@p_REQ_PAY_AUTO_EFFECTIVE_DT	VARCHAR(20)= NULL,
362
@p_BRANCH_ID	VARCHAR(20)= NULL,
363
@p_BRANCH_CODE	VARCHAR(20)= NULL,
364
@p_BRANCH_NAME	VARCHAR(20)= NULL,
365
@p_DEP_ID	VARCHAR(20)= NULL,
366
@p_DEP_CODE	VARCHAR(20)= NULL,
367
@p_DEP_NAME	VARCHAR(20)= NULL,
368
@p_BRANCH_CREATE	VARCHAR(20)= NULL,
369
@p_BRANCH_CREATE_CODE	VARCHAR(20)= NULL,
370
@p_BRANCH_CREATE_NAME	VARCHAR(20)= NULL,
371
@p_TRANSFER_USER_RECEIVE	VARCHAR(20)= NULL,
372
@p_TRANSFER_USER_RECEIVE_NAME	VARCHAR(20)= NULL,
373
@p_CONFIRM_NOTE	VARCHAR(20)= NULL,
374
@p_CONTRACT_ID	VARCHAR(20)= NULL,
375
@p_CONTRACT_CODE	VARCHAR(20)= NULL,
376
@p_CONTRACT_NAME	VARCHAR(20)= NULL,
377
@p_PROCESS	VARCHAR(20)= NULL,
378
@p_TRANSFER_MAKER	VARCHAR(20)= NULL,
379
@p_TRANSFER_DT	VARCHAR(20)= NULL,
380
@p_MAKER_ID	VARCHAR(20)= NULL,
381
@p_MAKER_NAME	VARCHAR(20)= NULL,
382
@p_CREATE_DT	VARCHAR(20)= NULL,
383
@p_EDITOR_ID	VARCHAR(20)= NULL,
384
@p_EDITOR_NAME	VARCHAR(20)= NULL,
385
@p_EDIT_DT	VARCHAR(20)= NULL,
386
@p_CHECKER_ID	VARCHAR(20)= NULL,
387
@p_CHECKER_NAME	VARCHAR(20)= NULL,
388
@p_APPROVE_DT	VARCHAR(20)= NULL,
389
@p_AUTH_STATUS	VARCHAR(20)= NULL,
390
@p_MAKER_ID_KT	VARCHAR(20)= NULL,
391
@p_MAKER_KT_NAME	VARCHAR(20)= NULL,
392
@p_CREATE_DT_KT	VARCHAR(20)= NULL,
393
@p_CHECKER_ID_KT	VARCHAR(20)= NULL,
394
@p_CHECKER_KT_NAME	VARCHAR(20)= NULL,
395
@p_APPROVE_DT_KT	VARCHAR(20)= NULL,
396
@p_AUTH_STATUS_KT	VARCHAR(20)= NULL,
397
@p_AUTH_STATUS_KT_DESC	VARCHAR(20)= NULL,
398
@p_RECORD_STATUS	VARCHAR(20)= NULL,
399
@p_FRMDATE	VARCHAR(20)= NULL,
400
@p_TODATE	VARCHAR(20)= NULL,
401
@p_LEVEL	VARCHAR(20)= NULL,
402
@p_USER_LOGIN	VARCHAR(20)= NULL,
403
@p_IS_SEND_APPR	VARCHAR(20)= NULL,
404
@p_TYPE_SEARCH	VARCHAR(20)= NULL,
405
@p_BRANCH_LOGIN	VARCHAR(20)= NULL,
406
@p_EXEC_USER_KT	nvarchar(20)	= NULL,
407
@p_IS_UPDATE_KT VARCHAR(15) = NULL,
408
@p_BRANCH_MANAGE_ID	VARCHAR(20)= NULL,
409
@p_TOP INT = NULL
410
AS
411
/*
412
1. Trạng thái chờ duyệt ở DVKD: Sẽ kiếm thấy các phiếu chờ người đó xử lý, hoặc do người đó gửi phê duyệt
413
	- Do người này gửi duyệt(U-0)
414
	- Do người này đề nghị tạm dừng(A-6)
415
	- Do người này đề nghị khôi phục(A-9)
416
	- Do người này đề nghị hủy phiếu(A-15)
417

    
418
*/
419
BEGIN -- PAGING
420
-- BEGIN KHAI BÁO
421
	IF(@p_TYPE_SEARCH = 'HC')
422
	BEGIN
423
		SET @p_LEVEL = 'UNIT'
424
	END
425
	IF(ISNULL(@p_BRANCH_ID, '') = '')
426
	BEGIN
427
		SET @p_BRANCH_ID = @p_BRANCH_CREATE
428
	END
429
	IF(@p_BRANCH_LOGIN <> 'DV0001')
430
	BEGIN
431
		SET @p_DEP_ID = NULL
432
	END
433
-- ĐƠN VỊ YÊU CẦU
434
	DECLARE @tmp_branch TABLE(BRANCH_ID VARCHAR(15))
435
	DECLARE @tmp_dep TABLE(DEP_ID VARCHAR(15))
436
	DECLARE @DEP_ID VARCHAR(15) = NULL
437
	INSERT INTO @tmp_branch  SELECT BRANCH_ID  FROM [dbo].[CM_BRANCH_GETCHILDID](@p_BRANCH_ID)
438
	DECLARE @BRANCH_TYPE VARCHAR(15)
439
	SET @BRANCH_TYPE =(SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID=(SELECT BRANCH_ID FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_AUTO_ID))
440

    
441
-- ĐƠN VỊ ĐĂNG NHẬP
442
	DECLARE @tmp_branch_login TABLE(BRANCH_ID VARCHAR(15))
443
	DECLARE @tmp_dep_login TABLE(DEP_ID VARCHAR(15))
444
	INSERT INTO @tmp_branch_login  SELECT BRANCH_ID  FROM [dbo].[CM_BRANCH_GETCHILDID](@p_BRANCH_LOGIN)
445
	INSERT INTO @tmp_branch_login VALUES (@p_BRANCH_LOGIN)
446
	INSERT INTO @tmp_branch_login	SELECT BRANCH_ID 
447
									FROM TL_SYS_ROLE_MAPPING 
448
									WHERE TLNAME =@P_USER_LOGIN 
449
									AND (CONVERT(DATE,GETDATE(),103) >= CONVERT(DATE,EFF_DATE, 103) OR EFF_DATE IS NULL OR EFF_DATE ='')
450
									AND (CONVERT(DATE, GETDATE(),103) <=CONVERT(DATE,EXP_DATE, 103) OR EXP_DATE IS NULL OR EXP_DATE ='') 
451
									AND RECORD_STATUS = '1'
452
	DECLARE @BRANCH_TYPE_LG VARCHAR(15)
453
	SET @BRANCH_TYPE_LG = (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID=@p_BRANCH_LOGIN)
454
-- PHÒNG BAN ĐĂNG NHẬP
455
	DECLARE @DEP_ID_LG VARCHAR(15) = NULL
456
	SET @DEP_ID_LG =(SELECT SECUR_CODE FROM TL_USER WHERE TLNANME=@p_USER_LOGIN)
457
	INSERT INTO @tmp_dep_login VALUES (@DEP_ID_LG)
458
	INSERT INTO @tmp_dep_login SELECT DEP_ID FROM CM_DEPARTMENT WHERE FATHER_ID =@DEP_ID_LG
459
	INSERT INTO @tmp_dep_login	SELECT DEP_ID 
460
								FROM TL_SYS_ROLE_MAPPING 
461
								WHERE TLNAME =@P_USER_LOGIN 
462
								AND (CONVERT(DATE,GETDATE(),103) >= CONVERT(DATE,EFF_DATE, 103) OR EFF_DATE IS NULL OR EFF_DATE ='')
463
								AND (CONVERT(DATE, GETDATE(),103) <=CONVERT(DATE,EXP_DATE, 103) OR EXP_DATE IS NULL OR EXP_DATE ='') 
464
								AND RECORD_STATUS = '1'
465
-- ĐƠN VỊ ỦY QUYỀN KIÊM NHIỆM
466
DECLARE @tmp_branch_auth TABLE (BRANCH_ID VARCHAR(15))
467
INSERT INTO @tmp_branch_auth VALUES (@p_BRANCH_LOGIN)
468
INSERT INTO @tmp_branch_auth	SELECT BRANCH_ID 
469
								FROM TL_SYS_ROLE_MAPPING 
470
								WHERE TLNAME =@P_USER_LOGIN 
471
								AND (CONVERT(DATE,GETDATE(),103) >= CONVERT(DATE,EFF_DATE, 103) OR EFF_DATE IS NULL OR EFF_DATE ='')
472
								AND (CONVERT(DATE, GETDATE(),103) <=CONVERT(DATE,EXP_DATE, 103) OR EXP_DATE IS NULL OR EXP_DATE ='') 
473
								AND RECORD_STATUS = '1'
474
-- PHÒNG BAN ỦY QUYỀN KIÊM NHIỆM
475
DECLARE @tmp_dep_auth TABLE (DEP_ID VARCHAR(15))
476
INSERT INTO @tmp_dep_auth VALUES (@DEP_ID_LG)
477
INSERT INTO @tmp_dep_auth	SELECT DEP_ID 
478
							FROM TL_SYS_ROLE_MAPPING 
479
							WHERE TLNAME =@P_USER_LOGIN 
480
							AND (CONVERT(DATE,GETDATE(),103) >= CONVERT(DATE,EFF_DATE, 103) OR EFF_DATE IS NULL OR EFF_DATE ='')
481
							AND (CONVERT(DATE, GETDATE(),103) <=CONVERT(DATE,EXP_DATE, 103) OR EXP_DATE IS NULL OR EXP_DATE ='') 
482
							AND RECORD_STATUS = '1'
483
INSERT INTO @tmp_dep_auth SELECT DEP_ID FROM CM_DEPARTMENT WHERE FATHER_ID =@DEP_ID_LG
484

    
485
-- ROLE
486
	DECLARE @ROLE_ID VARCHAR(20)
487
	SET @ROLE_ID = (SELECT TOP 1 RoleName FROM TL_USER WHERE TLNANME=@p_USER_LOGIN)
488
	DECLARE @TABLE_ROLE TABLE (ROLE_AUTH VARCHAR(50))  
489
	INSERT INTO @TABLE_ROLE VALUES (@ROLE_ID)
490
	INSERT INTO @TABLE_ROLE SELECT ROLE_NEW 
491
							FROM TL_SYS_ROLE_MAPPING 
492
							WHERE ROLE_OLD =@ROLE_ID AND TLNAME =@P_USER_LOGIN  
493
							AND (CONVERT(DATE,GETDATE(),103) >= CONVERT(DATE,EFF_DATE, 103) OR EFF_DATE IS NULL OR EFF_DATE ='')
494
							AND (CONVERT(DATE, GETDATE(),103) <=CONVERT(DATE,EXP_DATE, 103) OR EXP_DATE IS NULL OR EXP_DATE ='') 
495
							AND RECORD_STATUS = '1'
496
	
497
-- NEU USER KHONG CHON TU NGAY THI TU NGAY BANG NGAY 1 1 HANG THANG 20211116
498
	DECLARE @DATE DATE
499
	IF ((@p_FRMDATE IS NULL OR @p_FRMDATE ='') AND ISNULL(@p_REQ_PAY_AUTO_ID,'')='' AND @p_AUTH_STATUS ='') -- MỤC ĐÍCH NẾU NHƯ XEM CHI TIẾT 1 PĐN THANH TOÁN DẠNG POPUP THÌ BỎ QUA ĐIỀU KIỆN NÀY, TỪ NGÀY VẪN LÀ NULL
500
	BEGIN
501
		SET @DATE = CONVERT(DATE,GETDATE(),103)
502
		SET @DATE = DATEADD(MONTH,-2,@DATE)
503
	END
504
	ELSE
505
	BEGIN
506
		SET @DATE = CONVERT(DATE,@p_FRMDATE,103)
507
	END
508
-- CHECK NGUOI DUYET
509
	DECLARE @IS_TDV VARCHAR(1) = 'N'
510
	IF	(		
511
				(	SELECT COUNT(*) 
512
					FROM @TABLE_ROLE A 
513
					WHERE A.ROLE_AUTH IN ('TPGD','GDDV','PGD','PTGD','TGD','HDQT','TP','PP','KTT','GDK','KSV','TC','NVTC','TPTC','PPGD')
514
				) = 0
515
		)
516
	BEGIN
517
		SET @IS_TDV = 'N'
518
	END
519
	ELSE
520
	BEGIN
521
		SET @IS_TDV = 'Y'
522
	END
523
-- END KHAI BÁO
524
	IF(@p_TYPE_SEARCH = 'HC')
525
	BEGIN
526
		IF(@p_TOP IS NULL OR @p_TOP=0)
527
		BEGIN
528
			IF(@DEP_ID_LG = 'DEP000000000022')
529
			BEGIN
530
	-- PAGING BEGIN
531
				SELECT A.*,
532
				--B.BRANCH_CODE, B.BRANCH_NAME,
533
				CASE	WHEN	(	SELECT TOP 1 BRANCH_ID 
534
									FROM TR_CONTRACT 
535
									WHERE CONTRACT_ID = A.CONTRACT_ID
536
								) <> 'DV0001'
537
								THEN  B.BRANCH_NAME + ISNULL	(	' - ' + (	SELECT TOP 1 BRANCH_NAME 
538
																						FROM CM_BRANCH 
539
																						WHERE BRANCH_ID =	(	SELECT TOP 1 BRANCH_ID 
540
																												FROM TR_CONTRACT 
541
																												WHERE CONTRACT_ID = A.CONTRACT_ID
542
																											)
543
																			),''
544
																)
545
						ELSE B.BRANCH_NAME 
546
				END BRANCH_NAME,
547
				C.DEP_CODE, C.DEP_NAME, 
548
				D.CONTRACT_CODE, D.[CONTRACT_NAME], 
549
				E.TLFullName AS MAKER_NAME, 
550
				F.TLFullName AS MAKER_NAME_KT, 
551
				G.TLFullName AS CHECKER_NAME_KT,
552
				H.CONTENT AS REQ_PAY_AUTO_STATUS_NAME,
553
				--I.CONTENT AS REQ_PAY_AUTO_TYPE_NAME,
554
				CASE 
555
					WHEN A.REQ_PAY_AUTO_TYPE = 'A' THEN N.CONTENT
556
					ELSE O.CONTENT
557
				END REQ_PAY_AUTO_TYPE_NAME,
558
				J.CONTENT AS AUTH_STATUS_NAME,
559
				K.CONTENT AS AUTH_STATUS_KT_NAME,
560
				L.TLFullName AS TRANSFER_USER_RECEIVE_NAME,
561
				M.BRANCH_CODE AS BRANCH_MANAGE_CODE, M.BRANCH_NAME AS BRANCH_MANAGE_NAME
562
		-- SELECT END
563
				FROM TR_REQ_PAYMENT_AUTO A
564
				LEFT JOIN CM_BRANCH B ON A.BRANCH_ID = B.BRANCH_ID
565
				LEFT JOIN CM_DEPARTMENT C ON A.DEP_ID = C.DEP_ID
566
				LEFT JOIN TR_CONTRACT D ON A.CONTRACT_ID = D.CONTRACT_ID
567
				LEFT JOIN TL_USER E ON A.MAKER_ID = E.TLNANME
568
				LEFT JOIN TL_USER F ON A.MAKER_ID_KT = F.TLNANME
569
				LEFT JOIN TL_USER G ON A.CHECKER_ID_KT = G.TLNANME
570
				LEFT JOIN CM_ALLCODE H ON A.REQ_PAY_AUTO_STATUS = H.CDVAL AND H.CDNAME = 'PAY_AUTO_STATUS' AND H.CDTYPE = 'REQ_AUTO'
571
				LEFT JOIN CM_ALLCODE I ON A.REQ_PAY_AUTO_TYPE = I.CDVAL AND I.CDNAME = 'PAY_TYPE_AUTO' AND I.CDTYPE = 'REQ_AUTO'
572
				LEFT JOIN CM_ALLCODE J ON A.AUTH_STATUS = J.CDVAL AND J.CDNAME = 'AUTH_STATUS' AND J.CDTYPE = 'TR_REQ_PAYMENT'
573
				LEFT JOIN CM_ALLCODE K ON A.AUTH_STATUS_KT = K.CDVAL AND K.CDNAME = 'AUTH_STATUS_KT' AND K.CDTYPE = 'TR_REQ_PAYMENT'
574
				LEFT JOIN TL_USER L ON A.TRANSFER_USER_RECEIVE = L.TLNANME
575
				LEFT JOIN CM_BRANCH M ON A.BRANCH_MANAGE_ID = M.BRANCH_ID
576
				LEFT JOIN CM_ALLCODE N ON A.REQ_PAY_AUTO_SERVICE_TYPE = N.CDVAL AND N.CDNAME = 'PAY_SER_AUTO_TS' AND N.CDTYPE = 'REQ_AUTO'
577
				LEFT JOIN CM_ALLCODE O ON A.REQ_PAY_AUTO_SERVICE_TYPE = O.CDVAL AND O.CDNAME = 'PAY_SER_AUTO' AND O.CDTYPE = 'REQ_AUTO'
578
				WHERE 1=1 
579
				-- BEGIN FILTER
580
				AND	(	A.REQ_PAY_AUTO_ID = @p_REQ_PAY_AUTO_ID OR ISNULL(@p_REQ_PAY_AUTO_ID, '') = '')
581
				AND	(	A.REQ_PAY_AUTO_CODE = @p_REQ_PAY_AUTO_CODE OR ISNULL(@p_REQ_PAY_AUTO_CODE, '') = '')
582
				--AND	(	A.AUTH_STATUS = @p_AUTH_STATUS OR ISNULL(@p_AUTH_STATUS, '') = '')
583
				AND (	(@p_AUTH_STATUS = A.AUTH_STATUS)	-- dùng cho: lưu nháp, phiếu bị hủy
584
					OR	(@p_AUTH_STATUS = 'W' AND A.PROCESS IN ('0', '6', '9', '15')) -- chờ cấp trung gian xác nhận
585
					OR	(@p_AUTH_STATUS = 'G' AND A.PROCESS IN ('1', '7', '10', '16')) -- cấp trung gian xác nhận
586
					OR	(@p_AUTH_STATUS = 'U' AND A.PROCESS IN ('0', '6', '9', '15')) -- chờ duyệt CTG
587
					OR	(@p_AUTH_STATUS = 'U' AND A.PROCESS IN ('0', '1', '6', '7', '9', '10', '15', '16')) -- chờ duyệt TDV
588
					OR	(@p_AUTH_STATUS = 'A' AND A.PROCESS IN ('1', '2', '7', '8', '10', '11', '16', '17')) -- đã duyệt
589
					OR	(@p_AUTH_STATUS = 'R' AND ISNULL(A.PROCESS, '') IN ('', '7.1', '8.1', '10.1', '11.1', '14.1', '16.1', '17.1', '20.1') AND ISNULL(A.AUTH_STATUS, '') <> 'E') -- từ chối
590
					OR (ISNULL(@p_AUTH_STATUS, '') = '')
591
					)
592
				AND	(	A.REQ_PAY_AUTO_TYPE = @p_REQ_PAY_AUTO_TYPE OR ISNULL(@p_REQ_PAY_AUTO_TYPE, '') = '')
593
				AND	(	A.AUTH_STATUS_KT = @p_AUTH_STATUS_KT OR ISNULL(@p_AUTH_STATUS_KT, '') = '')
594
				AND	(	M.BRANCH_ID = @p_BRANCH_MANAGE_ID OR ISNULL(@p_BRANCH_MANAGE_ID, '') = '')
595
				AND	(	A.CONTRACT_ID = @p_CONTRACT_ID OR ISNULL(@p_CONTRACT_ID, '') = '')
596
				AND	(	A.REQ_PAY_AUTO_STATUS = @p_REQ_PAY_AUTO_STATUS OR ISNULL(@p_REQ_PAY_AUTO_STATUS, '') = '')
597
				AND	(	CONVERT(DATE, A.CREATE_DT) >= CONVERT(DATE, @p_FRMDATE, 103) OR ISNULL(@p_FRMDATE, '')= '' OR A.CREATE_DT IS NULL)
598
				AND	(	CONVERT(DATE, A.CREATE_DT) <= CONVERT(DATE, @p_TODATE, 103) OR ISNULL(@p_TODATE, '')= '' OR A.CREATE_DT IS NULL)
599
				AND	(	A.BRANCH_ID = @p_BRANCH_ID 
600
						OR ISNULL(@p_BRANCH_ID, '') = ''
601
						OR A.BRANCH_ID IN	(	SELECT BRANCH_ID 
602
												FROM @tmp_branch
603
											)
604
					)
605
				AND	(	A.DEP_ID = @p_DEP_ID 
606
						OR ISNULL(@p_DEP_ID, '') = ''
607
					)
608
				AND	(	A.MAKER_ID = @p_MAKER_ID OR ISNULL(@p_MAKER_ID, '') = '')
609
				AND	(	A.MAKER_ID_KT = @p_MAKER_ID_KT OR ISNULL(@p_MAKER_ID_KT, '') = '')
610
				-- END FILTER
611
			ORDER BY A.CREATE_DT DESC
612
	-- PAGING END
613
			END
614
			ELSE
615
			BEGIN-- DVKD Search
616
	-- PAGING BEGIN
617
				SELECT A.*,
618
				--B.BRANCH_CODE, B.BRANCH_NAME,
619
				CASE	WHEN	(	SELECT TOP 1 BRANCH_ID 
620
									FROM TR_CONTRACT 
621
									WHERE CONTRACT_ID = A.CONTRACT_ID
622
								) <> 'DV0001'
623
								THEN  B.BRANCH_NAME + ISNULL	(	' - ' + (	SELECT TOP 1 BRANCH_NAME 
624
																						FROM CM_BRANCH 
625
																						WHERE BRANCH_ID =	(	SELECT TOP 1 BRANCH_ID 
626
																												FROM TR_CONTRACT 
627
																												WHERE CONTRACT_ID = A.CONTRACT_ID
628
																											)
629
																			),''
630
																)
631
						ELSE B.BRANCH_NAME 
632
				END BRANCH_NAME,
633
				C.DEP_CODE, C.DEP_NAME, 
634
				D.CONTRACT_CODE, D.[CONTRACT_NAME], 
635
				E.TLFullName AS MAKER_NAME, 
636
				F.TLFullName AS MAKER_NAME_KT, 
637
				G.TLFullName AS CHECKER_NAME_KT,
638
				H.CONTENT AS REQ_PAY_AUTO_STATUS_NAME,
639
				--I.CONTENT AS REQ_PAY_AUTO_TYPE_NAME,
640
				CASE 
641
					WHEN A.REQ_PAY_AUTO_TYPE = 'A' THEN N.CONTENT
642
					ELSE O.CONTENT
643
				END REQ_PAY_AUTO_TYPE_NAME,
644
				J.CONTENT AS AUTH_STATUS_NAME,
645
				K.CONTENT AS AUTH_STATUS_KT_NAME,
646
				L.TLFullName AS TRANSFER_USER_RECEIVE_NAME,
647
				M.BRANCH_CODE AS BRANCH_MANAGE_CODE, M.BRANCH_NAME AS BRANCH_MANAGE_NAME
648
		-- SELECT END
649
				FROM TR_REQ_PAYMENT_AUTO A
650
				LEFT JOIN CM_BRANCH B ON A.BRANCH_ID = B.BRANCH_ID
651
				LEFT JOIN CM_DEPARTMENT C ON A.DEP_ID = C.DEP_ID
652
				LEFT JOIN TR_CONTRACT D ON A.CONTRACT_ID = D.CONTRACT_ID
653
				LEFT JOIN TL_USER E ON A.MAKER_ID = E.TLNANME
654
				LEFT JOIN TL_USER F ON A.MAKER_ID_KT = F.TLNANME
655
				LEFT JOIN TL_USER G ON A.CHECKER_ID_KT = G.TLNANME
656
				LEFT JOIN CM_ALLCODE H ON A.REQ_PAY_AUTO_STATUS = H.CDVAL AND H.CDNAME = 'PAY_AUTO_STATUS' AND H.CDTYPE = 'REQ_AUTO'
657
				LEFT JOIN CM_ALLCODE I ON A.REQ_PAY_AUTO_TYPE = I.CDVAL AND I.CDNAME = 'PAY_TYPE_AUTO' AND I.CDTYPE = 'REQ_AUTO'
658
				LEFT JOIN CM_ALLCODE J ON A.AUTH_STATUS = J.CDVAL AND J.CDNAME = 'AUTH_STATUS' AND J.CDTYPE = 'TR_REQ_PAYMENT'
659
				LEFT JOIN CM_ALLCODE K ON A.AUTH_STATUS_KT = K.CDVAL AND K.CDNAME = 'AUTH_STATUS_KT' AND K.CDTYPE = 'TR_REQ_PAYMENT'
660
				LEFT JOIN TL_USER L ON A.TRANSFER_USER_RECEIVE = L.TLNANME
661
				LEFT JOIN CM_BRANCH M ON A.BRANCH_MANAGE_ID = M.BRANCH_ID
662
				LEFT JOIN CM_ALLCODE N ON A.REQ_PAY_AUTO_SERVICE_TYPE = N.CDVAL AND N.CDNAME = 'PAY_SER_AUTO_TS' AND N.CDTYPE = 'REQ_AUTO'
663
				LEFT JOIN CM_ALLCODE O ON A.REQ_PAY_AUTO_SERVICE_TYPE = O.CDVAL AND O.CDNAME = 'PAY_SER_AUTO' AND O.CDTYPE = 'REQ_AUTO'
664
				WHERE 1=1 
665
				-- BEGIN FILTER
666
				AND	(	A.REQ_PAY_AUTO_ID = @p_REQ_PAY_AUTO_ID OR ISNULL(@p_REQ_PAY_AUTO_ID, '') = '')
667
				AND	(	A.REQ_PAY_AUTO_CODE = @p_REQ_PAY_AUTO_CODE OR ISNULL(@p_REQ_PAY_AUTO_CODE, '') = '')
668
				--AND	(	A.AUTH_STATUS = @p_AUTH_STATUS OR ISNULL(@p_AUTH_STATUS, '') = '')
669
				AND (	(@p_AUTH_STATUS = A.AUTH_STATUS)	-- dùng cho: lưu nháp, phiếu bị hủy
670
					OR	(@p_AUTH_STATUS = 'W' AND A.PROCESS IN ('0', '6', '9', '15')) -- chờ cấp trung gian xác nhận
671
					OR	(@p_AUTH_STATUS = 'G' AND A.PROCESS IN ('1', '7', '10', '16')) -- cấp trung gian xác nhận
672
					OR	(@p_AUTH_STATUS = 'U' AND @IS_TDV = 'N' AND A.PROCESS IN ('0', '6', '9', '15')) -- chờ duyệt CTG
673
					OR	(@p_AUTH_STATUS = 'U' AND @IS_TDV = 'Y' AND A.PROCESS IN ('0', '1', '6', '7', '9', '10', '15', '16')) -- chờ duyệt TDV
674
					OR	(@p_AUTH_STATUS = 'A' AND A.PROCESS IN ('1', '2', '7', '8', '10', '11', '16', '17')) -- đã duyệt
675
					OR	(@p_AUTH_STATUS = 'R' AND ISNULL(A.PROCESS, '') IN ('', '7.1', '8.1', '10.1', '11.1', '14.1', '16.1', '17.1', '20.1') AND ISNULL(A.AUTH_STATUS, '') <> 'E') -- từ chối
676
					OR (ISNULL(@p_AUTH_STATUS, '') = '')
677
					)
678
				AND	(	A.REQ_PAY_AUTO_TYPE = @p_REQ_PAY_AUTO_TYPE OR ISNULL(@p_REQ_PAY_AUTO_TYPE, '') = '')
679
				AND	(	A.AUTH_STATUS_KT = @p_AUTH_STATUS_KT OR ISNULL(@p_AUTH_STATUS_KT, '') = '')
680
				AND	(	M.BRANCH_ID = @p_BRANCH_MANAGE_ID OR ISNULL(@p_BRANCH_MANAGE_ID, '') = '')
681
				AND	(	A.CONTRACT_ID = @p_CONTRACT_ID OR ISNULL(@p_CONTRACT_ID, '') = '')
682
				AND	(	A.REQ_PAY_AUTO_STATUS = @p_REQ_PAY_AUTO_STATUS OR ISNULL(@p_REQ_PAY_AUTO_STATUS, '') = '')
683
				AND(	CONVERT(DATE, A.CREATE_DT) >= CONVERT(DATE, @p_FRMDATE, 103) OR ISNULL(@p_FRMDATE, '')= '' OR A.CREATE_DT IS NULL)
684
				AND(	CONVERT(DATE, A.CREATE_DT) <= CONVERT(DATE, @p_TODATE, 103) OR ISNULL(@p_TODATE, '')= '' OR A.CREATE_DT IS NULL)
685
				AND	(	A.MAKER_ID = @p_MAKER_ID OR ISNULL(@p_MAKER_ID, '') = '')
686
				AND	(	A.MAKER_ID_KT = @p_MAKER_ID_KT OR ISNULL(@p_MAKER_ID_KT, '') = '')
687
				-- END FILTER
688
				-- BEGIN VALIDATE FLOW
689
				AND	(
690
						(
691
								(	A.MAKER_ID = @p_USER_LOGIN)
692
						)-- NGUOI TAO
693
					OR	(
694
							(	A.TRANSFER_USER_RECEIVE = @p_USER_LOGIN AND A.AUTH_STATUS IN ('U', 'R', 'A', 'N') AND PROCESS IN ('0', '6', '9', '15') )
695
						)-- NGUOI DUYET TRUNG GIAN
696
					OR	(
697
							(	A.AUTH_STATUS IN ('R', 'A', 'N') AND @IS_TDV = 'Y')
698
						OR	(	A.AUTH_STATUS = 'U' AND ISNULL(A.TRANSFER_USER_RECEIVE, '') = '' AND @IS_TDV = 'Y')
699
						OR	(	A.AUTH_STATUS = 'U' AND ISNULL(A.TRANSFER_USER_RECEIVE, '') <> '' AND ISNULL(A.PROCESS, '') = '1' AND @IS_TDV = 'Y')
700
						)-- TRUONG DON VI
701
					OR	(
702
							A.AUTH_STATUS = 'A'
703
							
704
						)-- VA NHUNG PHIEU DA DUYET
705
					)
706
				AND	(	(	@p_LEVEL='ALL' 
707
							AND	(	A.BRANCH_ID IN	(	SELECT BRANCH_ID 
708
														FROM @tmp_branch
709
													) -- PYC cua don vi minh va cac don vi con
710
									OR A.BRANCH_ID IN (SELECT * FROM @tmp_branch_auth) -- PYC cua don vi kiem nhiem
711
								)
712
						)
713
						OR	(	@p_LEVEL='UNIT' 
714
								AND	(	A.BRANCH_ID = @p_BRANCH_ID	-- PYC cua don vi minh
715
										OR A.BRANCH_ID IN (SELECT * FROM @tmp_branch_auth) -- PYC cua don vi kiem nhiem
716
									)
717
							)
718
					)
719
				AND	(	A.DEP_ID = @p_DEP_ID 
720
						OR ISNULL(@p_DEP_ID, '') = ''
721
					)
722
							
723
				AND	(
724
						A.DEP_ID IN	(
725
										SELECT * 
726
										FROM @tmp_dep_auth
727
									)
728
						OR A.BRANCH_ID <> 'DV0001'
729
					)
730
				-- END VALIDATE FLOW
731
			ORDER BY A.CREATE_DT DESC
732
	-- PAGING END
733
			END
734
		END;
735
		ELSE -- TOP IS NOT NULL
736
		BEGIN
737
			IF(@DEP_ID_LG = 'DEP000000000022')
738
			BEGIN
739
	-- PAGING BEGIN
740
				SELECT A.*,
741
				--B.BRANCH_CODE, B.BRANCH_NAME,
742
				CASE	WHEN	(	SELECT TOP 1 BRANCH_ID 
743
									FROM TR_CONTRACT 
744
									WHERE CONTRACT_ID = A.CONTRACT_ID
745
								) <> 'DV0001'
746
								THEN  B.BRANCH_NAME + ISNULL	(	' - ' + (	SELECT TOP 1 BRANCH_NAME 
747
																						FROM CM_BRANCH 
748
																						WHERE BRANCH_ID =	(	SELECT TOP 1 BRANCH_ID 
749
																												FROM TR_CONTRACT 
750
																												WHERE CONTRACT_ID = A.CONTRACT_ID
751
																											)
752
																			),''
753
																)
754
						ELSE B.BRANCH_NAME 
755
				END BRANCH_NAME,
756
				C.DEP_CODE, C.DEP_NAME, 
757
				D.CONTRACT_CODE, D.[CONTRACT_NAME], 
758
				E.TLFullName AS MAKER_NAME, 
759
				F.TLFullName AS MAKER_NAME_KT, 
760
				G.TLFullName AS CHECKER_NAME_KT,
761
				H.CONTENT AS REQ_PAY_AUTO_STATUS_NAME,
762
				--I.CONTENT AS REQ_PAY_AUTO_TYPE_NAME,
763
				CASE 
764
					WHEN A.REQ_PAY_AUTO_TYPE = 'A' THEN N.CONTENT
765
					ELSE O.CONTENT
766
				END REQ_PAY_AUTO_TYPE_NAME,
767
				J.CONTENT AS AUTH_STATUS_NAME,
768
				K.CONTENT AS AUTH_STATUS_KT_NAME,
769
				L.TLFullName AS TRANSFER_USER_RECEIVE_NAME,
770
				M.BRANCH_CODE AS BRANCH_MANAGE_CODE, M.BRANCH_NAME AS BRANCH_MANAGE_NAME
771
		-- SELECT END
772
				FROM TR_REQ_PAYMENT_AUTO A
773
				LEFT JOIN CM_BRANCH B ON A.BRANCH_ID = B.BRANCH_ID
774
				LEFT JOIN CM_DEPARTMENT C ON A.DEP_ID = C.DEP_ID
775
				LEFT JOIN TR_CONTRACT D ON A.CONTRACT_ID = D.CONTRACT_ID
776
				LEFT JOIN TL_USER E ON A.MAKER_ID = E.TLNANME
777
				LEFT JOIN TL_USER F ON A.MAKER_ID_KT = F.TLNANME
778
				LEFT JOIN TL_USER G ON A.CHECKER_ID_KT = G.TLNANME
779
				LEFT JOIN CM_ALLCODE H ON A.REQ_PAY_AUTO_STATUS = H.CDVAL AND H.CDNAME = 'PAY_AUTO_STATUS' AND H.CDTYPE = 'REQ_AUTO'
780
				LEFT JOIN CM_ALLCODE I ON A.REQ_PAY_AUTO_TYPE = I.CDVAL AND I.CDNAME = 'PAY_TYPE_AUTO' AND I.CDTYPE = 'REQ_AUTO'
781
				LEFT JOIN CM_ALLCODE J ON A.AUTH_STATUS = J.CDVAL AND J.CDNAME = 'AUTH_STATUS' AND J.CDTYPE = 'TR_REQ_PAYMENT'
782
				LEFT JOIN CM_ALLCODE K ON A.AUTH_STATUS_KT = K.CDVAL AND K.CDNAME = 'AUTH_STATUS_KT' AND K.CDTYPE = 'TR_REQ_PAYMENT'
783
				LEFT JOIN TL_USER L ON A.TRANSFER_USER_RECEIVE = L.TLNANME
784
				LEFT JOIN CM_BRANCH M ON A.BRANCH_MANAGE_ID = M.BRANCH_ID
785
				LEFT JOIN CM_ALLCODE N ON A.REQ_PAY_AUTO_SERVICE_TYPE = N.CDVAL AND N.CDNAME = 'PAY_SER_AUTO_TS' AND N.CDTYPE = 'REQ_AUTO'
786
				LEFT JOIN CM_ALLCODE O ON A.REQ_PAY_AUTO_SERVICE_TYPE = O.CDVAL AND O.CDNAME = 'PAY_SER_AUTO' AND O.CDTYPE = 'REQ_AUTO'
787
				WHERE 1=1 
788
				-- BEGIN FILTER
789
				AND	(	A.REQ_PAY_AUTO_ID = @p_REQ_PAY_AUTO_ID OR ISNULL(@p_REQ_PAY_AUTO_ID, '') = '')
790
				AND	(	A.REQ_PAY_AUTO_CODE = @p_REQ_PAY_AUTO_CODE OR ISNULL(@p_REQ_PAY_AUTO_CODE, '') = '')
791
				--AND	(	A.AUTH_STATUS = @p_AUTH_STATUS OR ISNULL(@p_AUTH_STATUS, '') = '')
792
				AND (	(@p_AUTH_STATUS = A.AUTH_STATUS)	-- dùng cho: lưu nháp, phiếu bị hủy
793
					OR	(@p_AUTH_STATUS = 'W' AND A.PROCESS IN ('0', '6', '9', '15')) -- chờ cấp trung gian xác nhận
794
					OR	(@p_AUTH_STATUS = 'G' AND A.PROCESS IN ('1', '7', '10', '16')) -- cấp trung gian xác nhận
795
					OR	(@p_AUTH_STATUS = 'U' AND A.PROCESS IN ('0', '6', '9', '15')) -- chờ duyệt CTG
796
					OR	(@p_AUTH_STATUS = 'U' AND A.PROCESS IN ('0', '1', '6', '7', '9', '10', '15', '16')) -- chờ duyệt TDV
797
					OR	(@p_AUTH_STATUS = 'A' AND A.PROCESS IN ('1', '2', '7', '8', '10', '11', '16', '17')) -- đã duyệt
798
					OR	(@p_AUTH_STATUS = 'R' AND ISNULL(A.PROCESS, '') IN ('', '7.1', '8.1', '10.1', '11.1', '14.1', '16.1', '17.1', '20.1') AND ISNULL(A.AUTH_STATUS, '') <> 'E') -- từ chối
799
					OR (ISNULL(@p_AUTH_STATUS, '') = '')
800
					)
801
				AND	(	A.REQ_PAY_AUTO_TYPE = @p_REQ_PAY_AUTO_TYPE OR ISNULL(@p_REQ_PAY_AUTO_TYPE, '') = '')
802
				AND	(	A.AUTH_STATUS_KT = @p_AUTH_STATUS_KT OR ISNULL(@p_AUTH_STATUS_KT, '') = '')
803
				AND	(	M.BRANCH_ID = @p_BRANCH_MANAGE_ID OR ISNULL(@p_BRANCH_MANAGE_ID, '') = '')
804
				AND	(	A.CONTRACT_ID = @p_CONTRACT_ID OR ISNULL(@p_CONTRACT_ID, '') = '')
805
				AND	(	A.REQ_PAY_AUTO_STATUS = @p_REQ_PAY_AUTO_STATUS OR ISNULL(@p_REQ_PAY_AUTO_STATUS, '') = '')
806
				AND	(	CONVERT(DATE, A.CREATE_DT) >= CONVERT(DATE, @p_FRMDATE, 103) OR ISNULL(@p_FRMDATE, '')= '' OR A.CREATE_DT IS NULL)
807
				AND	(	CONVERT(DATE, A.CREATE_DT) <= CONVERT(DATE, @p_TODATE, 103) OR ISNULL(@p_TODATE, '')= '' OR A.CREATE_DT IS NULL)
808
				AND	(	A.BRANCH_ID = @p_BRANCH_ID 
809
						OR ISNULL(@p_BRANCH_ID, '') = ''
810
						OR A.BRANCH_ID IN	(	SELECT BRANCH_ID 
811
												FROM @tmp_branch
812
											)
813
					)
814
				AND	(	A.DEP_ID = @p_DEP_ID 
815
						OR ISNULL(@p_DEP_ID, '') = ''
816
					)
817
				AND	(	A.MAKER_ID = @p_MAKER_ID OR ISNULL(@p_MAKER_ID, '') = '')
818
				AND	(	A.MAKER_ID_KT = @p_MAKER_ID_KT OR ISNULL(@p_MAKER_ID_KT, '') = '')
819
				-- END FILTER
820
			ORDER BY A.CREATE_DT DESC
821
	-- PAGING END
822
			END--END @DEP_ID_LG = 'DEP000000000022'
823
			ELSE
824
			BEGIN
825
	-- PAGING BEGIN
826
				SELECT A.*,
827
				--B.BRANCH_CODE, B.BRANCH_NAME,
828
				CASE	WHEN	(	SELECT TOP 1 BRANCH_ID 
829
									FROM TR_CONTRACT 
830
									WHERE CONTRACT_ID = A.CONTRACT_ID
831
								) <> 'DV0001'
832
								THEN  B.BRANCH_NAME + ISNULL	(	' - ' + (	SELECT TOP 1 BRANCH_NAME 
833
																						FROM CM_BRANCH 
834
																						WHERE BRANCH_ID =	(	SELECT TOP 1 BRANCH_ID 
835
																												FROM TR_CONTRACT 
836
																												WHERE CONTRACT_ID = A.CONTRACT_ID
837
																											)
838
																			),''
839
																)
840
						ELSE B.BRANCH_NAME 
841
				END BRANCH_NAME,
842
				C.DEP_CODE, C.DEP_NAME, 
843
				D.CONTRACT_CODE, D.[CONTRACT_NAME], 
844
				E.TLFullName AS MAKER_NAME, 
845
				F.TLFullName AS MAKER_NAME_KT, 
846
				G.TLFullName AS CHECKER_NAME_KT,
847
				H.CONTENT AS REQ_PAY_AUTO_STATUS_NAME,
848
				--I.CONTENT AS REQ_PAY_AUTO_TYPE_NAME,
849
				CASE 
850
					WHEN A.REQ_PAY_AUTO_TYPE = 'A' THEN N.CONTENT
851
					ELSE O.CONTENT
852
				END REQ_PAY_AUTO_TYPE_NAME,
853
				J.CONTENT AS AUTH_STATUS_NAME,
854
				K.CONTENT AS AUTH_STATUS_KT_NAME,
855
				L.TLFullName AS TRANSFER_USER_RECEIVE_NAME,
856
				M.BRANCH_CODE AS BRANCH_MANAGE_CODE, M.BRANCH_NAME AS BRANCH_MANAGE_NAME
857
		-- SELECT END
858
				FROM TR_REQ_PAYMENT_AUTO A
859
				LEFT JOIN CM_BRANCH B ON A.BRANCH_ID = B.BRANCH_ID
860
				LEFT JOIN CM_DEPARTMENT C ON A.DEP_ID = C.DEP_ID
861
				LEFT JOIN TR_CONTRACT D ON A.CONTRACT_ID = D.CONTRACT_ID
862
				LEFT JOIN TL_USER E ON A.MAKER_ID = E.TLNANME
863
				LEFT JOIN TL_USER F ON A.MAKER_ID_KT = F.TLNANME
864
				LEFT JOIN TL_USER G ON A.CHECKER_ID_KT = G.TLNANME
865
				LEFT JOIN CM_ALLCODE H ON A.REQ_PAY_AUTO_STATUS = H.CDVAL AND H.CDNAME = 'PAY_AUTO_STATUS' AND H.CDTYPE = 'REQ_AUTO'
866
				LEFT JOIN CM_ALLCODE I ON A.REQ_PAY_AUTO_TYPE = I.CDVAL AND I.CDNAME = 'PAY_TYPE_AUTO' AND I.CDTYPE = 'REQ_AUTO'
867
				LEFT JOIN CM_ALLCODE J ON A.AUTH_STATUS = J.CDVAL AND J.CDNAME = 'AUTH_STATUS' AND J.CDTYPE = 'TR_REQ_PAYMENT'
868
				LEFT JOIN CM_ALLCODE K ON A.AUTH_STATUS_KT = K.CDVAL AND K.CDNAME = 'AUTH_STATUS_KT' AND K.CDTYPE = 'TR_REQ_PAYMENT'
869
				LEFT JOIN TL_USER L ON A.TRANSFER_USER_RECEIVE = L.TLNANME
870
				LEFT JOIN CM_BRANCH M ON A.BRANCH_MANAGE_ID = M.BRANCH_ID
871
				LEFT JOIN CM_ALLCODE N ON A.REQ_PAY_AUTO_SERVICE_TYPE = N.CDVAL AND N.CDNAME = 'PAY_SER_AUTO_TS' AND N.CDTYPE = 'REQ_AUTO'
872
				LEFT JOIN CM_ALLCODE O ON A.REQ_PAY_AUTO_SERVICE_TYPE = O.CDVAL AND O.CDNAME = 'PAY_SER_AUTO' AND O.CDTYPE = 'REQ_AUTO'
873
				WHERE 1=1 
874
				-- BEGIN FILTER
875
				AND	(	A.REQ_PAY_AUTO_ID = @p_REQ_PAY_AUTO_ID OR ISNULL(@p_REQ_PAY_AUTO_ID, '') = '')
876
				AND	(	A.REQ_PAY_AUTO_CODE = @p_REQ_PAY_AUTO_CODE OR ISNULL(@p_REQ_PAY_AUTO_CODE, '') = '')
877
				--AND	(	A.AUTH_STATUS = @p_AUTH_STATUS OR ISNULL(@p_AUTH_STATUS, '') = '')
878
				AND (	(@p_AUTH_STATUS = A.AUTH_STATUS)	-- dùng cho: lưu nháp, phiếu bị hủy
879
					OR	(@p_AUTH_STATUS = 'W' AND A.PROCESS IN ('0', '6', '9', '15')) -- chờ cấp trung gian xác nhận
880
					OR	(@p_AUTH_STATUS = 'G' AND A.PROCESS IN ('1', '7', '10', '16')) -- cấp trung gian xác nhận
881
					OR	(@p_AUTH_STATUS = 'U' AND @IS_TDV = 'N' AND A.PROCESS IN ('0', '6', '9', '15')) -- chờ duyệt CTG
882
					OR	(@p_AUTH_STATUS = 'U' AND @IS_TDV = 'Y' AND A.PROCESS IN ('0', '1', '6', '7', '9', '10', '15', '16')) -- chờ duyệt TDV
883
					OR	(@p_AUTH_STATUS = 'A' AND A.PROCESS IN ('1', '2', '7', '8', '10', '11', '16', '17')) -- đã duyệt
884
					OR	(@p_AUTH_STATUS = 'R' AND ISNULL(A.PROCESS, '') IN ('', '7.1', '8.1', '10.1', '11.1', '14.1', '16.1', '17.1', '20.1') AND ISNULL(A.AUTH_STATUS, '') <> 'E') -- từ chối
885
					OR (ISNULL(@p_AUTH_STATUS, '') = '')
886
					)
887
				AND	(	A.REQ_PAY_AUTO_TYPE = @p_REQ_PAY_AUTO_TYPE OR ISNULL(@p_REQ_PAY_AUTO_TYPE, '') = '')
888
				AND	(	A.AUTH_STATUS_KT = @p_AUTH_STATUS_KT OR ISNULL(@p_AUTH_STATUS_KT, '') = '')
889
				AND	(	M.BRANCH_ID = @p_BRANCH_MANAGE_ID OR ISNULL(@p_BRANCH_MANAGE_ID, '') = '')
890
				AND	(	A.CONTRACT_ID = @p_CONTRACT_ID OR ISNULL(@p_CONTRACT_ID, '') = '')
891
				AND	(	A.REQ_PAY_AUTO_STATUS = @p_REQ_PAY_AUTO_STATUS OR ISNULL(@p_REQ_PAY_AUTO_STATUS, '') = '')
892
				AND(	CONVERT(DATE, A.CREATE_DT) >= CONVERT(DATE, @p_FRMDATE, 103) OR ISNULL(@p_FRMDATE, '')= '' OR A.CREATE_DT IS NULL)
893
				AND(	CONVERT(DATE, A.CREATE_DT) <= CONVERT(DATE, @p_TODATE, 103) OR ISNULL(@p_TODATE, '')= '' OR A.CREATE_DT IS NULL)
894
				AND	(	A.MAKER_ID = @p_MAKER_ID OR ISNULL(@p_MAKER_ID, '') = '')
895
				AND	(	A.MAKER_ID_KT = @p_MAKER_ID_KT OR ISNULL(@p_MAKER_ID_KT, '') = '')
896
				-- END FILTER
897
				-- BEGIN VALIDATE FLOW
898
				AND	(
899
						(
900
								(	A.MAKER_ID = @p_USER_LOGIN)
901
						)-- NGUOI TAO
902
					OR	(
903
							(	A.TRANSFER_USER_RECEIVE = @p_USER_LOGIN AND A.AUTH_STATUS IN ('U', 'R', 'A', 'N') AND PROCESS IN ('0', '6', '9', '15') )
904
						)-- NGUOI DUYET TRUNG GIAN
905
					OR	(
906
							(	A.AUTH_STATUS IN ('R', 'A', 'N') AND @IS_TDV = 'Y')
907
						OR	(	A.AUTH_STATUS = 'U' AND ISNULL(A.TRANSFER_USER_RECEIVE, '') = '' AND @IS_TDV = 'Y')
908
						OR	(	A.AUTH_STATUS = 'U' AND ISNULL(A.TRANSFER_USER_RECEIVE, '') <> '' AND ISNULL(A.PROCESS, '') = '1' AND @IS_TDV = 'Y')
909
						)-- TRUONG DON VI
910
					OR	(
911
							A.AUTH_STATUS = 'A'
912
							
913
						)-- VA NHUNG PHIEU DA DUYET
914
					)
915
				AND	(	(	@p_LEVEL='ALL' 
916
							AND	(	A.BRANCH_ID IN	(	SELECT BRANCH_ID 
917
														FROM @tmp_branch
918
													) -- PYC cua don vi minh va cac don vi con
919
									OR A.BRANCH_ID IN (SELECT * FROM @tmp_branch_auth) -- PYC cua don vi kiem nhiem
920
								)
921
						)
922
						OR	(	@p_LEVEL='UNIT' 
923
								AND	(	A.BRANCH_ID = @p_BRANCH_ID	-- PYC cua don vi minh
924
										OR A.BRANCH_ID IN (SELECT * FROM @tmp_branch_auth) -- PYC cua don vi kiem nhiem
925
									)
926
							)
927
					)
928
				AND	(	A.DEP_ID = @p_DEP_ID 
929
						OR ISNULL(@p_DEP_ID, '') = ''
930
					)
931
							
932
				AND	(
933
						A.DEP_ID IN	(
934
										SELECT * 
935
										FROM @tmp_dep_auth
936
									)
937
						OR A.BRANCH_ID <> 'DV0001'
938
					)
939
				-- END VALIDATE FLOW
940
			ORDER BY A.CREATE_DT DESC
941
	-- PAGING END
942
			END
943
		END;
944
	END
945
	ELSE IF(@p_TYPE_SEARCH = 'KT')
946
	BEGIN
947
		IF(@p_TOP IS NULL OR @p_TOP = 0)
948
		BEGIN
949
	-- PAGING BEGIN
950
				SELECT A.*,
951
				--B.BRANCH_CODE, B.BRANCH_NAME,
952
				CASE	WHEN	(	SELECT TOP 1 BRANCH_ID 
953
									FROM TR_CONTRACT 
954
									WHERE CONTRACT_ID = A.CONTRACT_ID
955
								) <> 'DV0001'
956
								THEN  B.BRANCH_NAME + ISNULL	(	' - ' + (	SELECT TOP 1 BRANCH_NAME 
957
																						FROM CM_BRANCH 
958
																						WHERE BRANCH_ID =	(	SELECT TOP 1 BRANCH_ID 
959
																												FROM TR_CONTRACT 
960
																												WHERE CONTRACT_ID = A.CONTRACT_ID
961
																											)
962
																			),''
963
																)
964
						ELSE B.BRANCH_NAME 
965
				END BRANCH_NAME,
966
				C.DEP_CODE, C.DEP_NAME, 
967
				D.CONTRACT_CODE, D.[CONTRACT_NAME], 
968
				E.TLFullName AS MAKER_NAME, 
969
				F.TLFullName AS MAKER_NAME_KT, 
970
				G.TLFullName AS CHECKER_NAME_KT,
971
				H.CONTENT AS REQ_PAY_AUTO_STATUS_NAME,
972
				--I.CONTENT AS REQ_PAY_AUTO_TYPE_NAME,
973
				CASE 
974
					WHEN A.REQ_PAY_AUTO_TYPE = 'A' THEN N.CONTENT
975
					ELSE O.CONTENT
976
				END REQ_PAY_AUTO_TYPE_NAME,
977
				J.CONTENT AS AUTH_STATUS_NAME,
978
				K.CONTENT AS AUTH_STATUS_KT_NAME,
979
				L.TLFullName AS TRANSFER_USER_RECEIVE_NAME,
980
				M.BRANCH_CODE AS BRANCH_MANAGE_CODE, M.BRANCH_NAME AS BRANCH_MANAGE_NAME
981
		-- SELECT END
982
				FROM TR_REQ_PAYMENT_AUTO A
983
				LEFT JOIN CM_BRANCH B ON A.BRANCH_ID = B.BRANCH_ID
984
				LEFT JOIN CM_DEPARTMENT C ON A.DEP_ID = C.DEP_ID
985
				LEFT JOIN TR_CONTRACT D ON A.CONTRACT_ID = D.CONTRACT_ID
986
				LEFT JOIN TL_USER E ON A.MAKER_ID = E.TLNANME
987
				LEFT JOIN TL_USER F ON A.MAKER_ID_KT = F.TLNANME
988
				LEFT JOIN TL_USER G ON A.CHECKER_ID_KT = G.TLNANME
989
				LEFT JOIN CM_ALLCODE H ON A.REQ_PAY_AUTO_STATUS = H.CDVAL AND H.CDNAME = 'PAY_AUTO_STATUS' AND H.CDTYPE = 'REQ_AUTO'
990
				LEFT JOIN CM_ALLCODE I ON A.REQ_PAY_AUTO_TYPE = I.CDVAL AND I.CDNAME = 'PAY_TYPE_AUTO' AND I.CDTYPE = 'REQ_AUTO'
991
				LEFT JOIN CM_ALLCODE J ON A.AUTH_STATUS = J.CDVAL AND J.CDNAME = 'AUTH_STATUS' AND J.CDTYPE = 'TR_REQ_PAYMENT'
992
				LEFT JOIN CM_ALLCODE K ON A.AUTH_STATUS_KT = K.CDVAL AND K.CDNAME = 'AUTH_STATUS_KT' AND K.CDTYPE = 'TR_REQ_PAYMENT'
993
				LEFT JOIN TL_USER L ON A.TRANSFER_USER_RECEIVE = L.TLNANME
994
				LEFT JOIN CM_BRANCH M ON A.BRANCH_MANAGE_ID = M.BRANCH_ID
995
				LEFT JOIN PL_REQUEST_PROCESS_CHILD PC3 ON PC3.REQ_ID = A.REQ_PAY_AUTO_ID AND PC3.STATUS_JOB ='C' 
996
				LEFT JOIN CM_ALLCODE N ON A.REQ_PAY_AUTO_SERVICE_TYPE = N.CDVAL AND N.CDNAME = 'PAY_SER_AUTO_TS' AND N.CDTYPE = 'REQ_AUTO'
997
				LEFT JOIN CM_ALLCODE O ON A.REQ_PAY_AUTO_SERVICE_TYPE = O.CDVAL AND O.CDNAME = 'PAY_SER_AUTO' AND O.CDTYPE = 'REQ_AUTO'
998
				WHERE 1=1 
999
				-- BEGIN FILTER
1000
				AND A.AUTH_STATUS IN ('A', 'N', 'D')
1001
				AND	(	A.REQ_PAY_AUTO_ID = @p_REQ_PAY_AUTO_ID OR ISNULL(@p_REQ_PAY_AUTO_ID, '') = '')
1002
				AND	(	A.REQ_PAY_AUTO_CODE = @p_REQ_PAY_AUTO_CODE OR ISNULL(@p_REQ_PAY_AUTO_CODE, '') = '')
1003
				--AND	(	A.AUTH_STATUS = @p_AUTH_STATUS OR ISNULL(@p_AUTH_STATUS, '') = '')
1004
				AND (	(@p_AUTH_STATUS_KT = A.AUTH_STATUS_KT) -- dùng cho từ chối
1005
					OR	(@p_AUTH_STATUS_KT = 'U' AND A.PROCESS IN ('3', '12', '18')) -- chờ duyệt
1006
					OR	(@p_AUTH_STATUS_KT = 'P' AND A.PROCESS IN ('4', '13', '13.1', '19', '19.1')) -- đang xử lý
1007
					OR	(@p_AUTH_STATUS_KT = 'S' AND A.PROCESS IN ('4', '13.1', '19.1')) -- đề xuất từ chối
1008
					OR	(@p_AUTH_STATUS_KT = 'A' AND A.PROCESS IN ('5', '14', '20')) -- đã duyệt
1009
					OR	(@p_AUTH_STATUS_KT = 'R' AND A.PROCESS IN ('20.2', '14.2')) -- từ chối
1010
					OR (ISNULL(@p_AUTH_STATUS_KT, '') = '' AND A.PROCESS  IN ('2', '11', '17')) -- khi KSV chưa điều phối
1011
					OR (ISNULL(@p_AUTH_STATUS_KT, '') = '')
1012
					)
1013
				AND	(	A.REQ_PAY_AUTO_TYPE = @p_REQ_PAY_AUTO_TYPE OR ISNULL(@p_REQ_PAY_AUTO_TYPE, '') = '')
1014
				--AND	(	A.AUTH_STATUS_KT = @p_AUTH_STATUS_KT OR ISNULL(@p_AUTH_STATUS_KT, '') = '')
1015
				AND	(	M.BRANCH_ID = @p_BRANCH_MANAGE_ID OR ISNULL(@p_BRANCH_MANAGE_ID, '') = '')
1016
				AND	(	A.CONTRACT_ID = @p_CONTRACT_ID OR ISNULL(@p_CONTRACT_ID, '') = '')
1017
				AND	(	A.REQ_PAY_AUTO_STATUS = @p_REQ_PAY_AUTO_STATUS OR ISNULL(@p_REQ_PAY_AUTO_STATUS, '') = '')
1018
				AND(	CONVERT(DATE, A.CREATE_DT) >= CONVERT(DATE, @p_FRMDATE, 103) OR ISNULL(@p_FRMDATE, '')= '' OR A.CREATE_DT IS NULL)
1019
				AND(	CONVERT(DATE, A.CREATE_DT) <= CONVERT(DATE, @p_TODATE, 103) OR ISNULL(@p_TODATE, '')= '' OR A.CREATE_DT IS NULL)
1020
				AND	(	(	@p_LEVEL='ALL' 
1021
							AND	(	A.BRANCH_ID IN	(	SELECT BRANCH_ID 
1022
														FROM @tmp_branch
1023
													) -- PYC cua don vi minh
1024
									OR A.BRANCH_ID IN (SELECT * FROM @tmp_branch_auth) -- PYC cua don vi kiem nhiem
1025
								)
1026
						)
1027
						OR	(	
1028
									@p_LEVEL='UNIT' 
1029
								AND A.BRANCH_ID = @p_BRANCH_ID
1030
							)
1031
					)
1032
				AND	(	A.DEP_ID = @p_DEP_ID 
1033
						OR ISNULL(@p_DEP_ID, '') = ''
1034
					)
1035
				AND	(	A.MAKER_ID = @p_MAKER_ID OR ISNULL(@p_MAKER_ID, '') = '')
1036
				AND	(	A.MAKER_ID_KT = @p_MAKER_ID_KT OR ISNULL(@p_MAKER_ID_KT, '') = '')
1037
				AND(	PC3.TLNAME = @p_EXEC_USER_KT OR @p_EXEC_USER_KT = '' OR @p_EXEC_USER_KT IS NULL OR PC3.TLNAME = '' OR PC3.TLNAME IS NULL)
1038
				AND	(
1039
						(
1040
							EXISTS	(	SELECT TOP 1 * FROM PL_REQUEST_PROCESS_CHILD X WHERE	REQ_ID = A.REQ_PAY_AUTO_ID 
1041
																								AND (
1042
																										X.TLNAME= @p_USER_LOGIN 
1043
																										OR X.TLNAME =@p_EXEC_USER_KT
1044
																									)
1045
									)
1046
						) 
1047
						OR	(A.MAKER_ID_KT = @p_MAKER_ID_KT OR PC3.TLNAME = @p_MAKER_ID_KT)
1048
						OR (SELECT COUNT(*) FROM @TABLE_ROLE WHERE ROLE_AUTH = 'KSV') > 0
1049
						OR ISNULL(@p_EXEC_USER_KT, '') = ''
1050
					)	
1051
				AND	(	(	A.MAKER_ID_KT IS NOT NULL 
1052
							AND @p_IS_UPDATE_KT='Y'
1053
						)
1054
						OR	(	(	A.MAKER_ID_KT IS NULL 
1055
									AND @p_IS_UPDATE_KT='N'
1056
								)
1057
							)
1058
						OR @p_IS_UPDATE_KT IS NULL 
1059
						OR @p_IS_UPDATE_KT=''
1060
					)
1061
				-- END FILTER
1062
			ORDER BY A.CREATE_DT DESC
1063
	-- PAGING END
1064
		END;
1065
		ELSE 
1066
		BEGIN
1067
	-- PAGING BEGIN
1068
				SELECT A.*,
1069
				--B.BRANCH_CODE, B.BRANCH_NAME,
1070
				CASE	WHEN	(	SELECT TOP 1 BRANCH_ID 
1071
									FROM TR_CONTRACT 
1072
									WHERE CONTRACT_ID = A.CONTRACT_ID
1073
								) <> 'DV0001'
1074
								THEN  B.BRANCH_NAME + ISNULL	(	' - ' + (	SELECT TOP 1 BRANCH_NAME 
1075
																						FROM CM_BRANCH 
1076
																						WHERE BRANCH_ID =	(	SELECT TOP 1 BRANCH_ID 
1077
																												FROM TR_CONTRACT 
1078
																												WHERE CONTRACT_ID = A.CONTRACT_ID
1079
																											)
1080
																			),''
1081
																)
1082
						ELSE B.BRANCH_NAME 
1083
				END BRANCH_NAME,
1084
				C.DEP_CODE, C.DEP_NAME, 
1085
				D.CONTRACT_CODE, D.[CONTRACT_NAME], 
1086
				E.TLFullName AS MAKER_NAME, 
1087
				F.TLFullName AS MAKER_NAME_KT, 
1088
				G.TLFullName AS CHECKER_NAME_KT,
1089
				H.CONTENT AS REQ_PAY_AUTO_STATUS_NAME,
1090
				--I.CONTENT AS REQ_PAY_AUTO_TYPE_NAME,
1091
				CASE 
1092
					WHEN A.REQ_PAY_AUTO_TYPE = 'A' THEN N.CONTENT
1093
					ELSE O.CONTENT
1094
				END REQ_PAY_AUTO_TYPE_NAME,
1095
				J.CONTENT AS AUTH_STATUS_NAME,
1096
				K.CONTENT AS AUTH_STATUS_KT_NAME,
1097
				L.TLFullName AS TRANSFER_USER_RECEIVE_NAME,
1098
				M.BRANCH_CODE AS BRANCH_MANAGE_CODE, M.BRANCH_NAME AS BRANCH_MANAGE_NAME
1099
	-- SELECT END
1100
				FROM TR_REQ_PAYMENT_AUTO A
1101
				LEFT JOIN CM_BRANCH B ON A.BRANCH_ID = B.BRANCH_ID
1102
				LEFT JOIN CM_DEPARTMENT C ON A.DEP_ID = C.DEP_ID
1103
				LEFT JOIN TR_CONTRACT D ON A.CONTRACT_ID = D.CONTRACT_ID
1104
				LEFT JOIN TL_USER E ON A.MAKER_ID = E.TLNANME
1105
				LEFT JOIN TL_USER F ON A.MAKER_ID_KT = F.TLNANME
1106
				LEFT JOIN TL_USER G ON A.CHECKER_ID_KT = G.TLNANME
1107
				LEFT JOIN CM_ALLCODE H ON A.REQ_PAY_AUTO_STATUS = H.CDVAL AND H.CDNAME = 'PAY_AUTO_STATUS' AND H.CDTYPE = 'REQ_AUTO'
1108
				LEFT JOIN CM_ALLCODE I ON A.REQ_PAY_AUTO_TYPE = I.CDVAL AND I.CDNAME = 'PAY_TYPE_AUTO' AND I.CDTYPE = 'REQ_AUTO'
1109
				LEFT JOIN CM_ALLCODE J ON A.AUTH_STATUS = J.CDVAL AND J.CDNAME = 'AUTH_STATUS' AND J.CDTYPE = 'TR_REQ_PAYMENT'
1110
				LEFT JOIN CM_ALLCODE K ON A.AUTH_STATUS_KT = K.CDVAL AND K.CDNAME = 'AUTH_STATUS_KT' AND K.CDTYPE = 'TR_REQ_PAYMENT'
1111
				LEFT JOIN TL_USER L ON A.TRANSFER_USER_RECEIVE = L.TLNANME
1112
				LEFT JOIN CM_BRANCH M ON A.BRANCH_MANAGE_ID = M.BRANCH_ID
1113
				LEFT JOIN PL_REQUEST_PROCESS_CHILD PC3 ON PC3.REQ_ID = A.REQ_PAY_AUTO_ID AND PC3.STATUS_JOB ='C' 
1114
				LEFT JOIN CM_ALLCODE N ON A.REQ_PAY_AUTO_SERVICE_TYPE = N.CDVAL AND N.CDNAME = 'PAY_SER_AUTO_TS' AND N.CDTYPE = 'REQ_AUTO'
1115
				LEFT JOIN CM_ALLCODE O ON A.REQ_PAY_AUTO_SERVICE_TYPE = O.CDVAL AND O.CDNAME = 'PAY_SER_AUTO' AND O.CDTYPE = 'REQ_AUTO'
1116
				WHERE 1=1 
1117
				-- BEGIN FILTER
1118
				AND A.AUTH_STATUS IN ('A', 'N', 'D')
1119
				AND	(	A.REQ_PAY_AUTO_ID = @p_REQ_PAY_AUTO_ID OR ISNULL(@p_REQ_PAY_AUTO_ID, '') = '')
1120
				AND	(	A.REQ_PAY_AUTO_CODE = @p_REQ_PAY_AUTO_CODE OR ISNULL(@p_REQ_PAY_AUTO_CODE, '') = '')
1121
				--AND	(	A.AUTH_STATUS = @p_AUTH_STATUS OR ISNULL(@p_AUTH_STATUS, '') = '')
1122
				AND (	(@p_AUTH_STATUS_KT = A.AUTH_STATUS_KT) -- dùng cho từ chối
1123
					OR	(@p_AUTH_STATUS_KT = 'U' AND A.PROCESS IN ('3', '12', '18')) -- chờ duyệt
1124
					OR	(@p_AUTH_STATUS_KT = 'P' AND A.PROCESS IN ('4', '13', '13.1', '19', '19.1')) -- đang xử lý
1125
					OR	(@p_AUTH_STATUS_KT = 'S' AND A.PROCESS IN ('4', '13.1', '19.1')) -- đề xuất từ chối
1126
					OR	(@p_AUTH_STATUS_KT = 'A' AND A.PROCESS IN ('5', '14', '20')) -- đã duyệt
1127
					OR	(@p_AUTH_STATUS_KT = 'R' AND A.PROCESS IN ('20.2', '14.2')) -- từ chối
1128
					OR (ISNULL(@p_AUTH_STATUS_KT, '') = '' AND A.PROCESS  IN ('2', '11', '17')) -- khi KSV chưa điều phối
1129
					OR (ISNULL(@p_AUTH_STATUS_KT, '') = '')
1130
					)
1131
				AND	(	A.REQ_PAY_AUTO_TYPE = @p_REQ_PAY_AUTO_TYPE OR ISNULL(@p_REQ_PAY_AUTO_TYPE, '') = '')
1132
				--AND	(	A.AUTH_STATUS_KT = @p_AUTH_STATUS_KT OR ISNULL(@p_AUTH_STATUS_KT, '') = '')
1133
				AND	(	M.BRANCH_ID = @p_BRANCH_MANAGE_ID OR ISNULL(@p_BRANCH_MANAGE_ID, '') = '')
1134
				AND	(	A.CONTRACT_ID = @p_CONTRACT_ID OR ISNULL(@p_CONTRACT_ID, '') = '')
1135
				AND	(	A.REQ_PAY_AUTO_STATUS = @p_REQ_PAY_AUTO_STATUS OR ISNULL(@p_REQ_PAY_AUTO_STATUS, '') = '')
1136
				AND(	CONVERT(DATE, A.CREATE_DT) >= CONVERT(DATE, @p_FRMDATE, 103) OR ISNULL(@p_FRMDATE, '')= '' OR A.CREATE_DT IS NULL)
1137
				AND(	CONVERT(DATE, A.CREATE_DT) <= CONVERT(DATE, @p_TODATE, 103) OR ISNULL(@p_TODATE, '')= '' OR A.CREATE_DT IS NULL)
1138
				AND	(	(	@p_LEVEL='ALL' 
1139
							AND	(	A.BRANCH_ID IN	(	SELECT BRANCH_ID 
1140
														FROM @tmp_branch
1141
													) -- PYC cua don vi minh
1142
									OR A.BRANCH_ID IN (SELECT * FROM @tmp_branch_auth) -- PYC cua don vi kiem nhiem
1143
								)
1144
						)
1145
						OR	(	
1146
									@p_LEVEL='UNIT' 
1147
								AND A.BRANCH_ID = @p_BRANCH_ID
1148
							)
1149
					)
1150
				AND	(	A.DEP_ID = @p_DEP_ID 
1151
						OR ISNULL(@p_DEP_ID, '') = ''
1152
					)
1153
				AND	(	A.MAKER_ID = @p_MAKER_ID OR ISNULL(@p_MAKER_ID, '') = '')
1154
				AND	(	A.MAKER_ID_KT = @p_MAKER_ID_KT OR ISNULL(@p_MAKER_ID_KT, '') = '')
1155
				AND(	PC3.TLNAME = @p_EXEC_USER_KT OR @p_EXEC_USER_KT = '' OR @p_EXEC_USER_KT IS NULL OR PC3.TLNAME = '' OR PC3.TLNAME IS NULL)
1156
				AND	(
1157
						(
1158
							EXISTS	(	SELECT TOP 1 * FROM PL_REQUEST_PROCESS_CHILD X WHERE	REQ_ID = A.REQ_PAY_AUTO_ID 
1159
																								AND (
1160
																										X.TLNAME= @p_USER_LOGIN 
1161
																										OR X.TLNAME =@p_EXEC_USER_KT
1162
																									)
1163
									)
1164
						) 
1165
						OR	(A.MAKER_ID_KT = @p_MAKER_ID_KT OR PC3.TLNAME = @p_MAKER_ID_KT)
1166
						OR (SELECT COUNT(*) FROM @TABLE_ROLE WHERE ROLE_AUTH = 'KSV') > 0
1167
					)	
1168
				AND	(	(	A.MAKER_ID_KT IS NOT NULL 
1169
							AND @p_IS_UPDATE_KT='Y'
1170
						)
1171
						OR	(	(	A.MAKER_ID_KT IS NULL 
1172
									AND @p_IS_UPDATE_KT='N'
1173
								)
1174
							)
1175
						OR @p_IS_UPDATE_KT IS NULL 
1176
						OR @p_IS_UPDATE_KT=''
1177
					)
1178
				
1179
				-- END FILTER
1180
			ORDER BY A.CREATE_DT DESC
1181
	-- PAGING END
1182
	   END;
1183
	END
1184

    
1185
END -- PAGING
1186

    
1187
GO
1188

    
1189
ALTER PROCEDURE [dbo].[TR_REQ_PAY_AUTO_CREATE_REQ_PAYMENT_FROM_SYSTEM_INVOICE]
1190
@p_XMP_RECURRING XML
1191
AS
1192
BEGIN TRANSACTION
1193

    
1194
	DECLARE @list_req_payment NVARCHAR(MAX) = ''
1195
-- DS CAC KY DA THANH TOAN
1196
	DECLARE @billRef VARCHAR(20), @billCode VARCHAR(20), @customerName NVARCHAR(MAX), @amount VARCHAR(20), @accountNo VARCHAR(20), @accountType VARCHAR(20), 
1197
	@createdTime VARCHAR(21), @partner VARCHAR(20), @resultCode VARCHAR(20), @resultDesc NVARCHAR(MAX), @transDesc NVARCHAR(MAX), @coreXref VARCHAR(20), @partnerAccount VARCHAR(20), 
1198
	@billCodeAlias VARCHAR(20), @prvCode VARCHAR(20), @sevCode VARCHAR(20), @year VARCHAR(20), @customerAddress VARCHAR(20), @month VARCHAR(20), 
1199
	@accountName VARCHAR(20), @accountNoRec VARCHAR(20), @accountNameRec VARCHAR(20), @billDate VARCHAR(20)
1200

    
1201
	DECLARE @hDocRecurring INT EXEC sp_xml_preparedocument @hDocRecurring OUTPUT, @p_XMP_RECURRING;
1202
	DECLARE XmlAutoRecurring CURSOR LOCAL FOR
1203
	SELECT * FROM OPENXML(@hDocRecurring, 'Root/XmlAutoRecurring',2) 
1204
	WITH(billRef VARCHAR(20), billCode VARCHAR(20), customerName NVARCHAR(MAX), amount VARCHAR(20), accountNo VARCHAR(20), accountType VARCHAR(20), createdTime VARCHAR(30),
1205
	[partner] VARCHAR(20), resultCode VARCHAR(20), resultDesc NVARCHAR(MAX), transDesc NVARCHAR(MAX), coreXref VARCHAR(20), partnerAccount VARCHAR(20), [month] VARCHAR(20))
1206
	OPEN XmlAutoRecurring
1207

    
1208
--- DUYET QUA TUNG KY THANH TOAN
1209
	FETCH NEXT FROM XmlAutoRecurring INTO @billRef, @billCode, @customerName, @amount, @accountNo, @accountType, @createdTime,
1210
	@partner, @resultCode, @resultDesc, @transDesc, @coreXref, @partnerAccount, @month
1211
	WHILE @@fetch_status=0 
1212
	BEGIN
1213
		-- LUU LOG KY THANH TOAN
1214
		INSERT INTO TR_REQ_PAY_AUTO_RECURRING_LOG(billRef, billCode, customerName, amount, accountNo, accountType, createdTime,
1215
		[partner], resultCode, resultDesc, transDesc, coreXref, partnerAccount, MAKER_ID, CREATE_DT)
1216
		VALUES (@billRef, @billCode, @customerName, @amount, @accountNo, @accountType, CONVERT(DATE, @createdTime, 103),
1217
		@partner, @resultCode, @resultDesc, @transDesc, @coreXref, @partnerAccount, 'admin', GETDATE())
1218

    
1219
		IF(@resultCode NOT IN  ('00', '100'))
1220
		BEGIN
1221
			PRINT 'KY THANH TOAN KHONG HOP LE' + @billRef
1222
			-- THEM VAO LOG CAC KY THANH TOAN LOI
1223
		END
1224
		ELSE IF(@accountType <> 'A')
1225
		BEGIN
1226
			PRINT 'KHONG PHAI THANH TOAN BANG THE' + @billRef
1227
		END
1228
		ELSE IF(EXISTS(SELECT * FROM TR_REQ_PAY_AUTO_RECURRING_HISTORY WHERE billRef = @billRef AND @billCode = billCode AND @coreXref = coreXref))
1229
		BEGIN
1230
			PRINT 'KY THANH TOAN DA TON TAI TRONG HE THONG - DA THUC HIEN THANH TOAN TREN AMS: ' + @billRef
1231
		END
1232
		ELSE IF(NOT EXISTS(SELECT * FROM TR_REQ_PAY_AUTO_RECURRING WHERE BILLCODE = @billCode))
1233
		BEGIN
1234
			PRINT 'KHONG CO BILLCODE TRONG HE THONG AMS: ' + @billCode
1235
		END
1236
		ELSE IF(NOT EXISTS	(SELECT *	FROM TR_REQ_PAY_AUTO_RECURRING A
1237
										LEFT JOIN TR_REQ_PAYMENT_AUTO B ON A.REQ_PAY_AUTO_ID = B.REQ_PAY_AUTO_ID 
1238
										WHERE A.BILLCODE = @billCode
1239
							)
1240
				)
1241
		BEGIN
1242
			PRINT 'KHONG CO PHIEU YEU CAU THANH TOAN TU DONG TRONG HE THONG AMS: ' + @billCode
1243
		END
1244
		ELSE
1245
		BEGIN
1246
			DECLARE @REQ_PAY_ID VARCHAR(20), @REQ_PAY_CODE VARCHAR(20), @CONTRACT_ID VARCHAR(20), @CONTRACT_CODE VARCHAR(20), @CONTRACT_NAME NVARCHAR(500),
1247
			@BRANCH_ID NVARCHAR(20), @REQ_PAY_AUTO_SERVICE_TYPE_NAME NVARCHAR(200), @DEP_ID VARCHAR(20), @BRANCH_CREATE VARCHAR(20), 
1248
			@REQ_PAY_AUTO_ID VARCHAR(20), @TRANSFER_USER_RECEIVE VARCHAR(20), @TRANS_GLCODE VARCHAR(20), @TRANS_GLNAME NVARCHAR(500)
1249
			PRINT 'GET DATA BILLCODE'
1250
			-- LAY DATA CUA BILLCODE DANG KY TRONG AMS
1251
			SELECT TOP 1 @CONTRACT_ID = B.CONTRACT_ID, @CONTRACT_CODE = E.CONTRACT_CODE, @CONTRACT_NAME = E.[CONTRACT_NAME], 
1252
			@BRANCH_ID = B.BRANCH_ID, @REQ_PAY_AUTO_SERVICE_TYPE_NAME = D.CONTENT, @DEP_ID = B.DEP_ID, @BRANCH_CREATE = B.BRANCH_CREATE,
1253
			@REQ_PAY_AUTO_ID = B.REQ_PAY_AUTO_ID, @TRANSFER_USER_RECEIVE = B.TRANSFER_USER_RECEIVE, 
1254
			@TRANS_GLCODE = A.TRANS_GLCODE, @TRANS_GLNAME = A.TRANS_GLNAME
1255
			FROM TR_REQ_PAY_AUTO_RECURRING A
1256
			LEFT JOIN TR_REQ_PAYMENT_AUTO B ON A.REQ_PAY_AUTO_ID = B.REQ_PAY_AUTO_ID
1257
			LEFT JOIN CM_BRANCH C ON B.BRANCH_ID = C.BRANCH_ID
1258
			LEFT JOIN CM_ALLCODE D ON B.REQ_PAY_AUTO_SERVICE_TYPE = D.CDVAL AND D.CDNAME = 'PAY_SER_AUTO' AND CDTYPE = 'REQ_AUTO'
1259
			LEFT JOIN TR_CONTRACT E ON B.CONTRACT_ID = E.CONTRACT_ID
1260
			WHERE BILLCODE = @billCode
1261
			PRINT 'LUU LOG KY THANH TOAN'
1262
			print @createdTime
1263
			-- LUU LOG KY THANH TOAN
1264
			INSERT INTO TR_REQ_PAY_AUTO_RECURRING_HISTORY(billRef, billCode, customerName, amount, accountNo, accountType, createdTime,
1265
			[partner], resultCode, resultDesc, transDesc, coreXref, partnerAccount, MAKER_ID, CREATE_DT)
1266
			VALUES (@billRef, @billCode, @customerName, @amount, @accountNo, @accountType, CONVERT(DATE, @createdTime, 103),
1267
			@partner, @resultCode, @resultDesc, @transDesc, @coreXref, @partnerAccount, 'admin', GETDATE())
1268

    
1269
			-------------------- BEGIN TAO PHIEU DE NGHI THANH TOAN TU DONG ----------------------------------
1270

    
1271
			-- BEGIN KHOI TAO GIA TRI
1272
			-- ID PDN THANH TOAN
1273
			PRINT 'GEN ID PDN THANH TOAN'
1274
			EXEC [dbo].[PAY_CODE_GenKey] 'TR_REQ_PAYMENT', '','', @REQ_PAY_CODE out
1275
			IF EXISTS(SELECT * FROM TR_REQ_PAYMENT WHERE REQ_PAY_CODE  = @REQ_PAY_CODE )
1276
			BEGIN
1277
				ROLLBACK TRANSACTION
1278
				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
1279
				RETURN '-1'
1280
			END
1281
			PRINT 'GEN MA CODE PDN THANH TOAN'
1282
			-- MA CODE PDN THANH TOAN
1283
			EXEC SYS_CodeMasters_Gen 'TR_REQ_PAYMENT', @REQ_PAY_ID out
1284
			IF @REQ_PAY_ID='' OR @REQ_PAY_ID IS NULL GOTO ABORT
1285
			PRINT 'GET DON VI QUAN LY HOP DONG'
1286
			DECLARE @BRANCH_MANAGE_ID NVARCHAR(250) =	(	SELECT TOP 1 BRANCH_ID 
1287
															FROM CM_BRANCH 
1288
															WHERE BRANCH_ID = (	SELECT TOP 1 BRANCH_ID FROM TR_CONTRACT WHERE CONTRACT_ID = @CONTRACT_ID)
1289
														)
1290
			
1291
			DECLARE @BRANCH_MANAGE_NAME NVARCHAR(250) = (	SELECT TOP 1 BRANCH_NAME 
1292
															FROM CM_BRANCH 
1293
															WHERE BRANCH_ID = (	SELECT TOP 1 BRANCH_ID FROM TR_CONTRACT WHERE CONTRACT_ID = @CONTRACT_ID)
1294
														)
1295

    
1296
			-- NOI DUNG THANH TOAN, DUNG CHO NHIEU TABLE
1297
			DECLARE @PAY_AUTO_DESC_DETAIL NVARCHAR(1000) = ''
1298
			DECLARE @PAY_AUTO_TRN_DESC_DETAIL VARCHAR(1000) = ''
1299

    
1300
			DECLARE @l_Month VARCHAR(2), @l_Year VARCHAR(4)
1301
			SET @l_Month =  RIGHT('0' + CAST(DATEPART(MM, DATEADD(MONTH, -1, GETDATE())) AS VARCHAR(2)), 2);
1302
			SET @l_Year =  RIGHT(YEAR(GETDATE()), 4);
1303

    
1304
			IF(ISNULL(@month, '') = '')
1305
			BEGIN
1306
				PRINT 'HOP DONG KHONG CO MA CODE: ' + @PAY_AUTO_DESC_DETAIL
1307
				SET @month = @l_Month + '/' + @l_Year
1308
				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
1309
				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))
1310
			END
1311
			ELSE
1312
			BEGIN
1313
				PRINT 'HOP DONG CO MA CODE: ' + @PAY_AUTO_DESC_DETAIL
1314
				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
1315
				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))
1316
			END
1317

    
1318
			-- END KHOI TAO GIA TRI
1319
			PRINT 'TAO PHIEU DE NGHI THANH TOAN'
1320
			INSERT INTO [dbo].[TR_REQ_PAYMENT]
1321
			(REQ_PAY_ID, REQ_PAY_CODE, BRANCH_ID, DEP_ID, REQ_REASON, REQ_TYPE, 
1322
			REQ_ENTRIES, REQ_DESCRIPTION, REF_ID, PAY_PHASE, RECEIVER_PO, --NULL
1323
			REQ_PAY_TYPE, REQ_DT, REQ_TYPE_CURRENCY, REQ_AMT, REQ_TEMP_AMT, 
1324
			MAKER_ID, CREATE_DT, EDITOR_ID, AUTH_STATUS, CHECKER_ID, APPROVE_DT, --HC
1325
			CREATE_DT_KT, MAKER_ID_KT, AUTH_STATUS_KT, CHECKER_ID_KT, APPROVE_DT_KT, CONFIRM_NOTE, --KT
1326
			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)
1327
			VALUES
1328
			(@REQ_PAY_ID, @REQ_PAY_CODE, @BRANCH_ID, @DEP_ID, @PAY_AUTO_DESC_DETAIL, 'P', 
1329
			NULL, NULL,  NULL, NULL, NULL,  --NULL
1330
			'1', GETDATE(), 'VND', @amount, NULL, 
1331
			'admin', GETDATE(), NULL, 'A', 'admin', GETDATE(),  --HC
1332
			GETDATE(), 'admin', 'A', 'admin', GETDATE(), NULL, --KT
1333
			@BRANCH_CREATE, NULL, '1', 'admin', GETDATE(), NULL, '0', 1, 'Y', NULL, 'Y', 'B', @billRef, 'N')
1334
			PRINT 'TAO LUOI PDN THANH TOAN CHO PYC TTTD'
1335
			-- TẠO LƯỚI PHIEU DE NGHI THANH TOAN CHO PYC
1336
			INSERT INTO [dbo].[TR_REQ_PAY_AUTO_PAYMENTS]
1337
			(REQ_PAY_AUTO_ID, REQ_PAY_ID, REQ_PAY_CODE, BRANCH_ID, DEP_ID, REQ_REASON, REQ_TYPE, 
1338
			REQ_ENTRIES, REQ_DESCRIPTION, REF_ID, PAY_PHASE, RECEIVER_PO, --NULL
1339
			REQ_PAY_TYPE, REQ_DT, REQ_TYPE_CURRENCY, REQ_AMT, REQ_TEMP_AMT, 
1340
			MAKER_ID, CREATE_DT, EDITOR_ID, AUTH_STATUS, CHECKER_ID, APPROVE_DT, --HC
1341
			CREATE_DT_KT, MAKER_ID_KT, AUTH_STATUS_KT, CHECKER_ID_KT, APPROVE_DT_KT, CONFIRM_NOTE, --KT
1342
			BRANCH_CREATE, NOTES, RECORD_STATUS, TRANSFER_MAKER, TRANSFER_DT, TRASFER_USER_RECIVE, PROCESS, RATE, IS_PERIOD, AMT_PAY)
1343
			VALUES
1344
			(@REQ_PAY_AUTO_ID ,@REQ_PAY_ID, @REQ_PAY_CODE, @BRANCH_ID, @DEP_ID, @PAY_AUTO_DESC_DETAIL, 'P', 
1345
			NULL, NULL,  NULL, NULL, NULL,  --NULL
1346
			'1', GETDATE(), 'VND', @amount, NULL, 
1347
			'admin', GETDATE(), NULL, 'A', 'admin', GETDATE(),  --HC
1348
			GETDATE(), 'admin', 'A', 'admin', GETDATE(), NULL, --KT
1349
			@BRANCH_CREATE, NULL, '1', 'admin', GETDATE(), NULL, '0', 1, 'Y', NULL)
1350
			PRINT 'THEM LICH SU XU LY'
1351
			INSERT INTO dbo.PL_PROCESS(REQ_ID,PROCESS_ID,CHECKER_ID,APPROVE_DT,PROCESS_DESC,NOTES)
1352
			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')
1353

    
1354
			
1355
			-------------------- END TAO PHIEU DE NGHI THANH TOAN TU DONG ----------------------------------
1356

    
1357
			-- TẠO LƯỚI THÔNG TIN HỢP ĐỒNG ĐỊNH KỲ
1358
			PRINT 'TAO LUOI THONG TIN HDDK'
1359
			DECLARE @REQ_PAYDTID_PERIOD VARCHAR(15);
1360
			EXEC SYS_CodeMasters_Gen 'TR_REQ_ADVANCE_DT', @REQ_PAYDTID_PERIOD OUT;
1361
			IF @REQ_PAYDTID_PERIOD='' OR @REQ_PAYDTID_PERIOD IS NULL GOTO ABORT;
1362
			INSERT INTO TR_REQ_ADVANCE_DT (REQ_PAYDTID, REQ_PAY_ID,REF_ID, [TYPE], MAKER_ID, CREATE_DT, IS_CLOSED, REF_TYPE, DELIVERY_DT) 
1363
			VALUES(@REQ_PAYDTID_PERIOD, @REQ_PAY_ID, @CONTRACT_ID, 'PAY', 'admin', GETDATE(), 'N', 'C', CONVERT(DATE,NULL,103))
1364
			
1365
			-- TẠO LƯỚI THÔNG TIN THANH TOÁN HỢP ĐỒNG ĐỊNH KỲ
1366
			PRINT 'TAO LUOI THONG TIN THANH TOAN HDDK'
1367
			DECLARE @PERIOD_ID VARCHAR(15);
1368
			EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_PERIOD', @PERIOD_ID OUT;
1369
			IF @PERIOD_ID='' OR @PERIOD_ID IS NULL GOTO ABORT;
1370
			INSERT INTO TR_REQ_PAY_PERIOD(PERIOD_ID, REQ_PAY_ID, PAY_TYPE, CONTRACT_ID, PAY_DT_REAL ,OLD_INDEX, NEW_INDEX, AMT_PAY, 
1371
			AUTH_STATUS_KT, CURRENCY, RATE, FROM_DATE, TO_DATE,AD_PAY_ID, PROCESS, PARENT_ID, PAY_PHASE, REASON, TYPE_COST,FR_LEVEL , TO_LEVEL)
1372
			VALUES (@PERIOD_ID, @REQ_PAY_ID,'PAY', @CONTRACT_ID, NULL, NULL , NULL , @amount, 
1373
			'A', 'VND', '1', NULL, NULL, NULL, '1', NULL, @month, @PAY_AUTO_DESC_DETAIL, NULL, NULL, NULL )
1374

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

    
1377
	-- BEGIN BUT TOAN CHI PHI
1378
				PRINT 'BUT TOAN CHI PHI'
1379
				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), 
1380
				@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),
1381
				@CREATE_DT_KT varchar(20), @APPROVE_DT_KT varchar(20), @IS_TRANSFER_EXTERNAL varchar(20), @DEP_ID_ENTRY varchar(20), 
1382
				@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), 
1383
				@RECORD_STATUS varchar(20)
1384
				DECLARE @l_TR_REQ_PAY_ENTRIES_D VARCHAR(15);
1385

    
1386
				DECLARE @TYPE_BUDGET_ALLOCAITON_ENTRIES VARCHAR(20), @PERCENT_BUDGET_ALLOCAITON_ENTRIES DECIMAL(18,2), @AMT_BUDGET_ALLOCAITON_ENTRIES DECIMAL(18,2)
1387

    
1388
				DECLARE @RES VARCHAR(10)
1389
				DECLARE @TOTAL_CREDIT_AMT DECIMAL(18,0) = @amount;
1390
				DECLARE @TAX DECIMAL(18,1) = 0.1
1391
				DECLARE @TOTAL_PERCENT DECIMAL(18,2) = 0, @TOTAL_PERCENT_AMT DECIMAL(18,0) = 0;
1392
				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);
1393
				
1394
				-- KHAI BAO CONST
1395
				DECLARE @PERCENT_VAT DECIMAL(18,2) = 1.1;
1396
				-- NEU LA HOA DON DIEN THI THUE SE LA 8%. VIEC NAY CO HIEU LUC DEN HET NAM 2023
1397
				IF	(	(	SELECT TOP 1 ISNULL(B.REQ_PAY_AUTO_SERVICE_TYPE, '')
1398
							FROM TR_REQ_PAY_AUTO_RECURRING A
1399
							INNER JOIN TR_REQ_PAYMENT_AUTO B ON A.REQ_PAY_AUTO_ID = B.REQ_PAY_AUTO_ID
1400
							WHERE A.BILLCODE = @billCode
1401
						) = 'ELECTRIC'
1402
					)
1403
				BEGIN
1404
					SET @PERCENT_VAT = 1.08;
1405
				END
1406

    
1407
				-- CO THUE
1408
				IF(EXISTS(SELECT * FROM TR_REQ_PAY_AUTO_ENTRIES WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID AND ACCT = '353200002'))
1409
				BEGIN
1410
					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
1411
					BEGIN
1412
						PRINT 'CO THUE, CO PHAN CHIA'
1413
					-- CREATE CURSOR CÁC ĐẦU CÓ --> LẤY ĐƯỢC CÁC CẶP BÚT TOÁN
1414
						DECLARE cursorEntries_C CURSOR LOCAL FOR 
1415
						SELECT REQ_PAY_AUTO_ID, ENTRY_PAIR
1416
						FROM TR_REQ_PAY_AUTO_ENTRIES
1417
						WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID AND DR_CR = 'C'
1418

    
1419
						Open cursorEntries_C
1420
						FETCH NEXT FROM cursorEntries_C INTO @REQ_PAY_AUTO_ID, @ENTRY_PAIR
1421
						WHILE @@FETCH_STATUS = 0
1422
						BEGIN
1423
						-- BEGIN CHẠY TỪNG CẶP BÚT TOÁN
1424
							DECLARE cursorEntries CURSOR LOCAL FOR 
1425
							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,
1426
							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,
1427
							IS_TRANSFER_EXTERNAL, TYPE_BUDGET_ALLOCAITON, PERCENT_BUDGET_ALLOCAITON, AMT_BUDGET_ALLOCAITON
1428
							FROM TR_REQ_PAY_AUTO_ENTRIES
1429
							WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID AND ENTRY_PAIR = @ENTRY_PAIR
1430

    
1431
							Open cursorEntries
1432
							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,
1433
							@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, 
1434
							@IS_TRANSFER_EXTERNAL, @TYPE_BUDGET_ALLOCAITON_ENTRIES, @PERCENT_BUDGET_ALLOCAITON_ENTRIES, @AMT_BUDGET_ALLOCAITON_ENTRIES
1435
							WHILE @@FETCH_STATUS = 0
1436
							BEGIN
1437

    
1438
								EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_ENTRIES', @l_TR_REQ_PAY_ENTRIES_D OUT;
1439
								IF @l_TR_REQ_PAY_ENTRIES_D='' OR @l_TR_REQ_PAY_ENTRIES_D IS NULL GOTO ABORT;
1440
								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')
1441

    
1442
								IF(@DR_CR = 'D')
1443
								BEGIN
1444
									IF(ISNULL(@TOTAL_PERCENT, 0) + ISNULL(@PERCENT_BUDGET_ALLOCAITON_ENTRIES, 0) = 100)
1445
									BEGIN
1446
										PRINT 'DONG NO CUOI'
1447
										DECLARE @A_CREDIT_AMT DECIMAL(18,0) = @amount - @TOTAL_PERCENT_AMT
1448
										DECLARE @A_DEBIT_AMT DECIMAL(18,0) = @A_CREDIT_AMT/@PERCENT_VAT
1449
										DECLARE @A_3532_AMT DECIMAL(18,0) = @A_CREDIT_AMT - @A_DEBIT_AMT
1450
										print '@A_CREDIT_AMT: ' + CONVERT(VARCHAR(15),@A_CREDIT_AMT) 
1451
										print '@A_DEBIT_AMT: ' + CONVERT(VARCHAR(15),@A_DEBIT_AMT) 
1452
										print '@A_3532_AMT: ' + CONVERT(VARCHAR(15),@A_3532_AMT) 
1453

    
1454
										IF(ISNULL(@ACCT, '') = '353200002')
1455
										BEGIN
1456
											print '@ACCT 3532: ' + @ACCT
1457
											print '@A_3532_AMT 3532: ' + CONVERT(VARCHAR(15),@A_3532_AMT) 
1458
											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],
1459
											[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])
1460
											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,
1461
											@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)
1462
										END
1463
										ELSE
1464
										BEGIN
1465
											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],
1466
											[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])
1467
											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,
1468
											@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)
1469
										END
1470
									END
1471
									ELSE
1472
									BEGIN
1473
										PRINT 'CHUA PHAI DONG NO CUOI'
1474
										DECLARE @B_CREDIT_AMT DECIMAL(18,0) = CONVERT(DECIMAL, @amount*@PERCENT_BUDGET_ALLOCAITON_ENTRIES/100)
1475
										DECLARE @B_DEBIT_AMT DECIMAL(18,0) = @B_CREDIT_AMT/@PERCENT_VAT
1476
										DECLARE @B_3532_AMT DECIMAL(18,0) = @B_CREDIT_AMT - @B_DEBIT_AMT
1477
										print '@B_CREDIT_AMT: ' + CONVERT(VARCHAR(15),@B_CREDIT_AMT)
1478
										print '@B_DEBIT_AMT: ' + CONVERT(VARCHAR(15),@B_DEBIT_AMT)
1479
										print '@B_3532_AMT: ' +CONVERT(VARCHAR(15),@B_3532_AMT) 
1480

    
1481
										IF(ISNULL(@ACCT, '') = '353200002')
1482
										BEGIN
1483
											print '@ACCT 3532: ' + @ACCT
1484
											print '@B_3532_AMT hach toan: ' +CONVERT(VARCHAR(15),@B_3532_AMT) 
1485
											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],
1486
											[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])
1487
											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,
1488
											@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)
1489
										END
1490
										ELSE
1491
										BEGIN
1492
											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],
1493
											[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])
1494
											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,
1495
											@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)
1496
										END
1497
									END
1498
								END
1499
								ELSE
1500
								BEGIN
1501
									IF(ISNULL(@TOTAL_PERCENT, 0) + ISNULL(@PERCENT_BUDGET_ALLOCAITON_ENTRIES, 0) = 100)
1502
									BEGIN
1503
										PRINT 'DONG CO CUOI'
1504
										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],
1505
										[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])
1506
										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,
1507
										@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)
1508
									END
1509
									ELSE
1510
									BEGIN
1511
										PRINT 'CHUA PHAI DONG CO CUOI'
1512
										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],
1513
										[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])
1514
										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,
1515
										@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)
1516
									END
1517
										
1518
								END
1519

    
1520
							IF @@error<>0 GOTO ABORT;
1521
							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,
1522
							@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,
1523
							@IS_TRANSFER_EXTERNAL, @TYPE_BUDGET_ALLOCAITON_ENTRIES, @PERCENT_BUDGET_ALLOCAITON_ENTRIES, @AMT_BUDGET_ALLOCAITON_ENTRIES
1524
							END
1525
							CLOSE cursorEntries
1526
							DEALLOCATE cursorEntries
1527
						-- END CHẠY TỪNG CẶP BÚT TOÁN
1528
								
1529
							SET @TOTAL_PERCENT = @TOTAL_PERCENT + @PERCENT_BUDGET_ALLOCAITON_ENTRIES;
1530
							SET @TOTAL_PERCENT_AMT = @TOTAL_PERCENT_AMT + @amount*@PERCENT_BUDGET_ALLOCAITON_ENTRIES/100
1531

    
1532
						IF @@error<>0 GOTO ABORT;
1533
						FETCH NEXT FROM cursorEntries_C INTO @REQ_PAY_AUTO_ID, @ENTRY_PAIR
1534
						END
1535
						CLOSE cursorEntries_C
1536
						DEALLOCATE cursorEntries_C
1537

    
1538
							
1539
						--- BAN BUT TOAN VAO CORE
1540
						EXEC [dbo].[PAY_ENTRIES_POST_SetApp] @REQ_PAY_ID,'admin','admin', @RES OUT
1541
					END
1542
					ELSE
1543
					BEGIN
1544
						PRINT 'CO THUE, KHONG PHAN CHIA 2 NO - 1 CO'
1545
						DECLARE @DEBIT_AMT_1 DECIMAL(18,0) = @TOTAL_CREDIT_AMT/@PERCENT_VAT
1546
						DECLARE @3532_AMT DECIMAL(18,0) = @TOTAL_CREDIT_AMT - @DEBIT_AMT_1
1547

    
1548
						DECLARE cursorEntries CURSOR LOCAL FOR 
1549
						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,
1550
						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
1551
						FROM TR_REQ_PAY_AUTO_ENTRIES
1552
						WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID
1553
						Open cursorEntries
1554
						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,
1555
						@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
1556
						WHILE @@FETCH_STATUS = 0
1557
						BEGIN
1558

    
1559
							EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_ENTRIES', @l_TR_REQ_PAY_ENTRIES_D OUT;
1560
							IF @l_TR_REQ_PAY_ENTRIES_D='' OR @l_TR_REQ_PAY_ENTRIES_D IS NULL GOTO ABORT;
1561

    
1562
							IF(@DR_CR = 'D')	-- Nợ
1563
							BEGIN
1564
								IF(@ACCT = '353200002')
1565
								BEGIN
1566
									print '3532'
1567
									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],
1568
									[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])
1569
									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,
1570
									@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)
1571
								END
1572
								ELSE
1573
								BEGIN
1574
									print 'No TKCP'
1575
									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],
1576
									[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])
1577
									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,
1578
									@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)
1579
								END
1580
							END
1581
							ELSE
1582
							BEGIN
1583
								print 'Co TKTT'
1584
								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],
1585
								[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])
1586
								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,
1587
								@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)
1588
							END
1589

    
1590
							
1591
						IF @@error<>0 GOTO ABORT;
1592
						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,
1593
						@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
1594
						END
1595
						CLOSE cursorEntries
1596
						DEALLOCATE cursorEntries
1597
						--- BAN BUT TOAN VAO CORE
1598
						EXEC [dbo].[PAY_ENTRIES_POST_SetApp] @REQ_PAY_ID,'admin','admin', @RES OUT
1599
					END
1600
				END
1601
				-- KHONG THUE
1602
				ELSE	
1603
				BEGIN
1604
					IF(EXISTS(SELECT * FROM TR_REQ_PAY_AUTO_BUDGET_ALLOCATION WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID))
1605
					BEGIN
1606
						PRINT 'KHONG THUE, CO PHAN CHIA'
1607
						IF(EXISTS(SELECT * FROM TR_REQ_PAY_AUTO_BUDGET_ALLOCATION WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID AND TYPE_BUDGET_ALLOCAITON = 'PERCENT'))
1608
						BEGIN
1609
							PRINT 'KHONG THUE, CO PHAN CHIA, PHAN CHIA THEO TY LE'
1610
						-- CREATE CURSOR CÁC ĐẦU CÓ
1611
							DECLARE cursorEntries_C CURSOR LOCAL FOR 
1612
							SELECT REQ_PAY_AUTO_ID, ENTRY_PAIR
1613
							FROM TR_REQ_PAY_AUTO_ENTRIES
1614
							WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID AND DR_CR = 'C'
1615

    
1616
							Open cursorEntries_C
1617
							FETCH NEXT FROM cursorEntries_C INTO @REQ_PAY_AUTO_ID, @ENTRY_PAIR
1618
							WHILE @@FETCH_STATUS = 0
1619
							BEGIN
1620
							-- BEGIN CHẠY TỪNG CẶP BÚT TOÁN
1621
								DECLARE cursorEntries CURSOR LOCAL FOR 
1622
								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,
1623
								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,
1624
								IS_TRANSFER_EXTERNAL, TYPE_BUDGET_ALLOCAITON, PERCENT_BUDGET_ALLOCAITON, AMT_BUDGET_ALLOCAITON
1625
								FROM TR_REQ_PAY_AUTO_ENTRIES
1626
								WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID AND ENTRY_PAIR = @ENTRY_PAIR
1627

    
1628
								Open cursorEntries
1629
								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,
1630
								@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, 
1631
								@IS_TRANSFER_EXTERNAL, @TYPE_BUDGET_ALLOCAITON_ENTRIES, @PERCENT_BUDGET_ALLOCAITON_ENTRIES, @AMT_BUDGET_ALLOCAITON_ENTRIES
1632
								WHILE @@FETCH_STATUS = 0
1633
								BEGIN
1634

    
1635
									EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_ENTRIES', @l_TR_REQ_PAY_ENTRIES_D OUT;
1636
									IF @l_TR_REQ_PAY_ENTRIES_D='' OR @l_TR_REQ_PAY_ENTRIES_D IS NULL GOTO ABORT;
1637

    
1638
									IF(@DR_CR = 'D')
1639
									BEGIN
1640
										IF(ISNULL(@TOTAL_PERCENT, 0) + ISNULL(@PERCENT_BUDGET_ALLOCAITON_ENTRIES, 0) = 100)
1641
										BEGIN
1642
											PRINT 'DONG NO CUOI'
1643
											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],
1644
											[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])
1645
											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,
1646
											@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)
1647
										END
1648
										ELSE
1649
										BEGIN
1650
											PRINT 'CHUA PHAI DONG NO CUOI'
1651

    
1652
											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],
1653
											[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])
1654
											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,
1655
											@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)
1656
										END
1657
									END
1658
									ELSE
1659
									BEGIN
1660
										IF(ISNULL(@TOTAL_PERCENT, 0) + ISNULL(@PERCENT_BUDGET_ALLOCAITON_ENTRIES, 0) = 100)
1661
										BEGIN
1662
											PRINT 'DONG CO CUOI'
1663
											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],
1664
											[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])
1665
											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,
1666
											@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)
1667
										END
1668
										ELSE
1669
										BEGIN
1670
											PRINT 'CHUA PHAI DONG CO CUOI'
1671
											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],
1672
											[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])
1673
											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,
1674
											@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)
1675
										END
1676
										
1677
									END
1678

    
1679
								IF @@error<>0 GOTO ABORT;
1680
								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,
1681
								@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,
1682
								@IS_TRANSFER_EXTERNAL, @TYPE_BUDGET_ALLOCAITON_ENTRIES, @PERCENT_BUDGET_ALLOCAITON_ENTRIES, @AMT_BUDGET_ALLOCAITON_ENTRIES
1683
								END
1684
								CLOSE cursorEntries
1685
								DEALLOCATE cursorEntries
1686
							-- END CHẠY TỪNG CẶP BÚT TOÁN
1687
								
1688
								SET @TOTAL_PERCENT = @TOTAL_PERCENT + @PERCENT_BUDGET_ALLOCAITON_ENTRIES;
1689
								SET @TOTAL_PERCENT_AMT = @TOTAL_PERCENT_AMT + @amount*@PERCENT_BUDGET_ALLOCAITON_ENTRIES/100
1690

    
1691
							IF @@error<>0 GOTO ABORT;
1692
							FETCH NEXT FROM cursorEntries_C INTO @REQ_PAY_AUTO_ID, @ENTRY_PAIR
1693
							END
1694
							CLOSE cursorEntries_C
1695
							DEALLOCATE cursorEntries_C
1696

    
1697
							
1698
							--- BAN BUT TOAN VAO CORE
1699
							EXEC [dbo].[PAY_ENTRIES_POST_SetApp] @REQ_PAY_ID,'admin','admin', @RES OUT
1700
						END
1701
						ELSE
1702
						BEGIN
1703
							PRINT 'KHONG THUE, CO PHAN CHIA, PHAN CHIA THEO SO TIEN'
1704
						END
1705
					END
1706
					ELSE
1707
					BEGIN
1708
						PRINT 'KHONG THUE, KHONG PHAN CHIA 1 NO - 1 CO'
1709

    
1710
						DECLARE cursorEntries CURSOR LOCAL FOR 
1711
						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,
1712
						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
1713
						FROM TR_REQ_PAY_AUTO_ENTRIES
1714
						WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID
1715
						Open cursorEntries
1716
				
1717
						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,
1718
						@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
1719
						WHILE @@FETCH_STATUS = 0
1720
						BEGIN
1721
							DECLARE @l_TR_REQ_PAY_ENTRIES VARCHAR(15);
1722
							EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_ENTRIES', @l_TR_REQ_PAY_ENTRIES OUT;
1723
							IF @l_TR_REQ_PAY_ENTRIES='' OR @l_TR_REQ_PAY_ENTRIES IS NULL GOTO ABORT;
1724

    
1725
							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],
1726
							[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])
1727
							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,
1728
							@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)
1729

    
1730
						IF @@error<>0 GOTO ABORT;
1731
						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,
1732
						@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
1733
						END
1734
						CLOSE cursorEntries
1735
						DEALLOCATE cursorEntries
1736

    
1737
						--- BAN BUT TOAN VAO CORE
1738
						EXEC [dbo].[PAY_ENTRIES_POST_SetApp] @REQ_PAY_ID,'admin','admin', @RES OUT 
1739
					END
1740
				END
1741
				
1742
	-- END BUT TOAN CHI PHI
1743

    
1744

    
1745

    
1746
	-- BEGIN BUT TOAN HE THONG: BUT TOAN SO 0
1747
			-- NỢ
1748
				EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_ENTRIES', @l_TR_REQ_PAY_ENTRIES_D OUT;
1749
				INSERT INTO [TR_REQ_PAY_ENTRIES] ([REQ_PAY_DT_ID],[REQ_PAY_ID],[FUNCTION_TYPE],[TRN_TYPE],[REF_ID],
1750
				[ENTRY_PAIR],[DR_CR],[DR_CR_NAME],
1751
				[ACCT],[ACCT_NAME],[BRANCH_ID],[DEP_ID],
1752
				[AMT],[CURRENCY],[EXC_RATE],[TRN_DATE],[TRN_DESC],
1753
				[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])
1754
				VALUES(@l_TR_REQ_PAY_ENTRIES_D, @REQ_PAY_ID,NULL,'PAYMENT',NULL,
1755
				'0', N'D', N'Nợ',
1756
				@accountNo, @customerName, N'DV0001', N'',
1757
				CONVERT(DECIMAL(18,2), @amount), N'VND', 1.00, GETDATE(), @PAY_AUTO_TRN_DESC_DETAIL,
1758
				'admin',GETDATE(),'A','admin', GETDATE(),'admin',GETDATE(),'A','admin',GETDATE(),'1',NULL)
1759

    
1760
				DECLARE @l_PAY_ENTRIES_POST_D VARCHAR(15);
1761
				EXEC SYS_CodeMasters_Gen 'PAY_ENTRIES_POST', @l_PAY_ENTRIES_POST_D OUT;
1762
				INSERT INTO [PAY_ENTRIES_POST] ([ET_ID],[REF_NO],[TRN_ID],[REF_ID],[TRN_TYPE],
1763
							[ENTRY_PAIR],[DO_BRN],[DRCR],[ACCT],[BRN_ID],[DEPT_ID],
1764
							[AMT],[CURRENCY],[EXC_RATE],[EXP_TO_CORE],[TRN_DATE],[TRN_DESC],[MAKER_ID],[CHECKER_ID])
1765
				VALUES	(@l_PAY_ENTRIES_POST_D, @coreXref, @REQ_PAY_ID, @l_TR_REQ_PAY_ENTRIES_D,'PAYMENT',
1766
						'0',N'DV0001',N'D',
1767
						@accountNo,N'DV0001',N'',
1768
						CONVERT(DECIMAL(18,2), @amount),N'VND',1.00,N'1',GETDATE(),
1769
						@PAY_AUTO_TRN_DESC_DETAIL,'admin','admin')
1770

    
1771
			-- CÓ
1772
				DECLARE @l_TR_REQ_PAY_ENTRIES_C VARCHAR(15);
1773
				EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_ENTRIES', @l_TR_REQ_PAY_ENTRIES_C OUT;
1774
				INSERT INTO [TR_REQ_PAY_ENTRIES] ([REQ_PAY_DT_ID],[REQ_PAY_ID],[FUNCTION_TYPE],[TRN_TYPE],[REF_ID],
1775
				[ENTRY_PAIR],[DR_CR],[DR_CR_NAME],
1776
				[ACCT],[ACCT_NAME],[BRANCH_ID],[DEP_ID],
1777
				[AMT],[CURRENCY],[EXC_RATE],[TRN_DATE],[TRN_DESC],
1778
				[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])
1779
				VALUES(@l_TR_REQ_PAY_ENTRIES_C, @REQ_PAY_ID,NULL,'PAYMENT',NULL,
1780
				'0',N'C',N'Có',
1781
				@partnerAccount, @partner,N'DV0001',N'',
1782
				CONVERT(DECIMAL(18,2), @amount),N'VND',1.00,GETDATE(),@PAY_AUTO_TRN_DESC_DETAIL,
1783
				'admin',GETDATE(),'A','admin', GETDATE(),'admin',GETDATE(),'A','admin',GETDATE(),'1',NULL)
1784

    
1785
				DECLARE @l_PAY_ENTRIES_POST_C VARCHAR(15);
1786
				EXEC SYS_CodeMasters_Gen 'PAY_ENTRIES_POST', @l_PAY_ENTRIES_POST_C OUT;
1787
				INSERT INTO [PAY_ENTRIES_POST] ([ET_ID],[REF_NO],[TRN_ID],[REF_ID],[TRN_TYPE],
1788
							[ENTRY_PAIR],[DO_BRN],[DRCR],[ACCT],[BRN_ID],[DEPT_ID],
1789
							[AMT],[CURRENCY],[EXC_RATE],[EXP_TO_CORE],[TRN_DATE],[TRN_DESC],[MAKER_ID],[CHECKER_ID])
1790
				VALUES	(@l_PAY_ENTRIES_POST_C, @coreXref, @REQ_PAY_ID,@l_TR_REQ_PAY_ENTRIES_C,'PAYMENT',
1791
						'0',N'DV0001',N'C',
1792
						@partnerAccount,N'DV0001',N'',
1793
						CONVERT(DECIMAL(18,2), @amount),N'VND',1.00,N'1',GETDATE(),
1794
						@PAY_AUTO_TRN_DESC_DETAIL, 'admin', 'admin')
1795
	-- END BUT TOAN HE THONG: BUT TOAN SO 0
1796

    
1797
			-- Mỗi lần chỉ quét 1 bill hợp lệ
1798
			CLOSE XmlAutoRecurring;
1799
			DEALLOCATE XmlAutoRecurring;
1800
			COMMIT TRANSACTION
1801
			SELECT '0' as Result, @list_req_payment LIST_REQ_PAYMENT, N'Quét bill thành công!' ErrorDesc
1802
			RETURN '0'
1803

    
1804
		END
1805
		
1806
	IF @@error<>0 GOTO ABORT;
1807
	FETCH NEXT FROM XmlAutoRecurring INTO @billRef, @billCode, @customerName, @amount, @accountNo, @accountType, @createdTime,
1808
	@partner, @resultCode, @resultDesc, @transDesc, @coreXref, @partnerAccount, @month
1809
	END;
1810
	CLOSE XmlAutoRecurring;
1811
	DEALLOCATE XmlAutoRecurring;
1812
	
1813
COMMIT TRANSACTION
1814

    
1815
SELECT '0' as Result, @list_req_payment LIST_REQ_PAYMENT, N'Quét bill thành công!' ErrorDesc
1816
RETURN '0'
1817

    
1818
ABORT:
1819
BEGIN
1820
	ROLLBACK TRANSACTION
1821
	SELECT '-1' as Result, @list_req_payment LIST_REQ_PAYMENT, N'Lỗi không xác định' ErrorDesc
1822
	RETURN '-1'
1823
End
1824

    
1825
GO
1826

    
1827
INSERT INTO [dbo].[SYS_PREFIX](ID,Prefix,Description) VALUES('TR_REQ_PAYMENT_AUTO_EDIT_ENTRIES','PAEE',N'Chỉnh sửa hạch toán PYC TTTĐ')
1828
INSERT INTO [dbo].[SYS_PREFIX](ID,Prefix,Description) VALUES('TR_REQ_PAYMENT_AUTO_EDIT_ENTRIES_ENTRIEs','PAEEE',N'Chi tiết chỉnh sửa hạch toán PYC TTTĐ')
1829

    
1830
GO
1831

    
1832
--18072023_secretkey