Project

General

Profile

script_upd_LIVE_080823.txt

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

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

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

    
81
GO
82

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

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

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

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

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

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

    
166
			-- BEGIN KHOI TAO GIA TRI
167
			-- ID PDN THANH TOAN
168
			PRINT 'GEN ID PDN THANH TOAN'
169
			EXEC [dbo].[PAY_CODE_GenKey] 'TR_REQ_PAYMENT', '','', @REQ_PAY_CODE out
170
			IF EXISTS(SELECT * FROM TR_REQ_PAYMENT WHERE REQ_PAY_CODE  = @REQ_PAY_CODE )
171
			BEGIN
172
				ROLLBACK TRANSACTION
173
				SELECT '-1' as Result, @list_req_payment LIST_REQ_PAYMENT, N'Số phiếu đề nghị thanh toán đã tồn tại trong hệ thống' ErrorDesc
174
				RETURN '-1'
175
			END
176
			PRINT 'GEN MA CODE PDN THANH TOAN'
177
			-- MA CODE PDN THANH TOAN
178
			EXEC SYS_CodeMasters_Gen 'TR_REQ_PAYMENT', @REQ_PAY_ID out
179
			IF @REQ_PAY_ID='' OR @REQ_PAY_ID IS NULL GOTO ABORT
180
			PRINT 'GET DON VI QUAN LY HOP DONG'
181
			DECLARE @BRANCH_MANAGE_ID NVARCHAR(250) =	(	SELECT TOP 1 BRANCH_ID 
182
															FROM CM_BRANCH 
183
															WHERE BRANCH_ID = (	SELECT TOP 1 BRANCH_ID FROM TR_CONTRACT WHERE CONTRACT_ID = @CONTRACT_ID)
184
														)
185
			
186
			DECLARE @BRANCH_MANAGE_NAME NVARCHAR(250) = (	SELECT TOP 1 BRANCH_NAME 
187
															FROM CM_BRANCH 
188
															WHERE BRANCH_ID = (	SELECT TOP 1 BRANCH_ID FROM TR_CONTRACT WHERE CONTRACT_ID = @CONTRACT_ID)
189
														)
190

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

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

    
208
			IF(ISNULL(@month, '') = '')
209
			BEGIN
210
				PRINT 'HOP DONG KHONG CO MA CODE: ' + @PAY_AUTO_DESC_DETAIL
211
				SET @month = @l_Month + '/' + @l_Year
212
				SET @PAY_AUTO_DESC_DETAIL = @BRANCH_MANAGE_NAME + N' thanh toán chi phí ' + @REQ_PAY_AUTO_SERVICE_TYPE_NAME + ' ' + @l_Month + '/' + @l_Year + N' theo GDNTT số ' + @REQ_PAY_CODE
213
				SET @PAY_AUTO_TRN_DESC_DETAIL = UPPER(dbo.fChuyenCoDauThanhKhongDau(@BRANCH_MANAGE_NAME + N' thanh toán chi phí ' + @REQ_PAY_AUTO_SERVICE_TYPE_NAME + ' ' + @l_Month + '/' + @l_Year + N' theo GDNTT số ' + @REQ_PAY_CODE))
214
			END
215
			ELSE
216
			BEGIN
217
				PRINT 'HOP DONG CO MA CODE: ' + @PAY_AUTO_DESC_DETAIL
218
				SET @PAY_AUTO_DESC_DETAIL = @BRANCH_MANAGE_NAME + N' thanh toán chi phí ' + @REQ_PAY_AUTO_SERVICE_TYPE_NAME + N', ' + @month + N' theo GDNTT số ' + @REQ_PAY_CODE
219
				SET @PAY_AUTO_TRN_DESC_DETAIL = UPPER(dbo.fChuyenCoDauThanhKhongDau(@BRANCH_MANAGE_NAME + N' thanh toán chi phí ' + @REQ_PAY_AUTO_SERVICE_TYPE_NAME + N', ' + @month + N' theo GDNTT số ' + @REQ_PAY_CODE))
220
			END
221

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

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

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

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

    
281
	-- BEGIN BUT TOAN CHI PHI
282
				PRINT 'BUT TOAN CHI PHI'
283
				DECLARE @FUNCTION_TYPE VARCHAR(15), @TRN_TYPE NVARCHAR(40), @REF_ID VARCHAR(15), @ENTRY_PAIR varchar(50), @DR_CR varchar(2), @DR_CR_NAME nvarchar(50), 
284
				@ACCT varchar(100), @ACCT_NAME varchar(500), @AMT DECIMAL(18,2), @EXC_RATE DECIMAL(18,2), @TRN_DATE VARCHAR(20), @TRN_DESC nvarchar(1000), @AUTH_STATUS varchar(2), @APPROVE_DT varchar(20),
285
				@CREATE_DT_KT varchar(20), @APPROVE_DT_KT varchar(20), @IS_TRANSFER_EXTERNAL varchar(20), @DEP_ID_ENTRY varchar(20), 
286
				@CURRENCY varchar(20), @MAKER_ID varchar(20), @CREATE_DT varchar(20), @CHECKER_ID varchar(20), @MAKER_ID_KT varchar(20), @AUTH_STATUS_KT varchar(2), @CHECKER_ID_KT varchar(20), 
287
				@RECORD_STATUS varchar(20)
288
				DECLARE @l_TR_REQ_PAY_ENTRIES_D VARCHAR(15);
289

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

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

    
313
				-- CO THUE
314
				IF(EXISTS(SELECT * FROM TR_REQ_PAY_AUTO_ENTRIES WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID AND ACCT = '353200002'))
315
				BEGIN
316
				-- SET THUE DUA VAO VAT TREN LUOI HACH TOAN
317
					SET @PERCENT_VAT = 1 + (SELECT TOP 1 VAT FROM TR_REQ_PAY_AUTO_ENTRIES WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID AND ACCT = '353200002')/100
318

    
319
					IF(EXISTS(SELECT * FROM TR_REQ_PAY_AUTO_BUDGET_ALLOCATION WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID AND TYPE_BUDGET_ALLOCAITON = 'PERCENT' AND 1=2))-- THEM DIEU KIEN 1=2 VI CHUC NANG NAY CHUA HOAT DONG
320
					BEGIN
321
						PRINT 'CO THUE, CO PHAN CHIA'
322
					-- CREATE CURSOR CÁC ĐẦU CÓ --> LẤY ĐƯỢC CÁC CẶP BÚT TOÁN
323
						DECLARE cursorEntries_C CURSOR LOCAL FOR 
324
						SELECT REQ_PAY_AUTO_ID, ENTRY_PAIR
325
						FROM TR_REQ_PAY_AUTO_ENTRIES
326
						WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID AND DR_CR = 'C'
327

    
328
						Open cursorEntries_C
329
						FETCH NEXT FROM cursorEntries_C INTO @REQ_PAY_AUTO_ID, @ENTRY_PAIR
330
						WHILE @@FETCH_STATUS = 0
331
						BEGIN
332
						-- BEGIN CHẠY TỪNG CẶP BÚT TOÁN
333
							DECLARE cursorEntries CURSOR LOCAL FOR 
334
							SELECT REQ_PAY_AUTO_ID, FUNCTION_TYPE, TRN_TYPE, REF_ID, ENTRY_PAIR, DR_CR, DR_CR_NAME, ACCT, ACCT_NAME, BRANCH_ID, DEP_ID, AMT, CURRENCY, EXC_RATE,
335
							TRN_DATE, TRN_DESC, MAKER_ID, CREATE_DT, AUTH_STATUS, CHECKER_ID, APPROVE_DT, MAKER_ID_KT, CREATE_DT_KT, AUTH_STATUS_KT, CHECKER_ID_KT, APPROVE_DT_KT, RECORD_STATUS,
336
							IS_TRANSFER_EXTERNAL, TYPE_BUDGET_ALLOCAITON, PERCENT_BUDGET_ALLOCAITON, AMT_BUDGET_ALLOCAITON
337
							FROM TR_REQ_PAY_AUTO_ENTRIES
338
							WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID AND ENTRY_PAIR = @ENTRY_PAIR
339

    
340
							Open cursorEntries
341
							FETCH NEXT FROM cursorEntries INTO @REQ_PAY_AUTO_ID, @FUNCTION_TYPE, @TRN_TYPE, @REF_ID, @ENTRY_PAIR, @DR_CR, @DR_CR_NAME, @ACCT, @ACCT_NAME, @BRANCH_ID, @DEP_ID_ENTRY, @AMT, @CURRENCY, @EXC_RATE,
342
							@TRN_DATE, @TRN_DESC, @MAKER_ID, @CREATE_DT, @AUTH_STATUS, @CHECKER_ID, @APPROVE_DT, @MAKER_ID_KT, @CREATE_DT_KT, @AUTH_STATUS_KT, @CHECKER_ID_KT, @APPROVE_DT_KT, @RECORD_STATUS, 
343
							@IS_TRANSFER_EXTERNAL, @TYPE_BUDGET_ALLOCAITON_ENTRIES, @PERCENT_BUDGET_ALLOCAITON_ENTRIES, @AMT_BUDGET_ALLOCAITON_ENTRIES
344
							WHILE @@FETCH_STATUS = 0
345
							BEGIN
346

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

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

    
363
										IF(ISNULL(@ACCT, '') = '353200002')
364
										BEGIN
365
											print '@ACCT 3532: ' + @ACCT
366
											print '@A_3532_AMT 3532: ' + CONVERT(VARCHAR(15),@A_3532_AMT) 
367
											INSERT INTO [TR_REQ_PAY_ENTRIES] ([REQ_PAY_DT_ID],[REQ_PAY_ID],[FUNCTION_TYPE],[TRN_TYPE],[REF_ID],[ENTRY_PAIR],[DR_CR],[DR_CR_NAME],[ACCT],[ACCT_NAME],[BRANCH_ID],[DEP_ID], [AMT],[CURRENCY],[EXC_RATE],
368
											[TRN_DATE],[TRN_DESC],[MAKER_ID],[CREATE_DT],[AUTH_STATUS],[CHECKER_ID],[APPROVE_DT],[MAKER_ID_KT],[CREATE_DT_KT],[AUTH_STATUS_KT],[CHECKER_ID_KT],[APPROVE_DT_KT],[RECORD_STATUS],[IS_TRANSFER_EXTERNAL])
369
											VALUES (@l_TR_REQ_PAY_ENTRIES_D, @REQ_PAY_ID, @FUNCTION_TYPE, @TRN_TYPE, @REF_ID, @ENTRY_PAIR, @DR_CR, @DR_CR_NAME, @ACCT, @ACCT_NAME, @BRANCH_ID, @DEP_ID_ENTRY, @A_3532_AMT, @CURRENCY, @EXC_RATE,
370
											@TRN_DATE, @PAY_AUTO_TRN_DESC_DETAIL, 'admin', @CREATE_DT, @AUTH_STATUS, 'admin', @APPROVE_DT, 'admin', @CREATE_DT_KT, @AUTH_STATUS_KT, 'admin', @APPROVE_DT_KT, @RECORD_STATUS, @IS_TRANSFER_EXTERNAL)
371
										END
372
										ELSE
373
										BEGIN
374
											INSERT INTO [TR_REQ_PAY_ENTRIES] ([REQ_PAY_DT_ID],[REQ_PAY_ID],[FUNCTION_TYPE],[TRN_TYPE],[REF_ID],[ENTRY_PAIR],[DR_CR],[DR_CR_NAME],[ACCT],[ACCT_NAME],[BRANCH_ID],[DEP_ID], [AMT],[CURRENCY],[EXC_RATE],
375
											[TRN_DATE],[TRN_DESC],[MAKER_ID],[CREATE_DT],[AUTH_STATUS],[CHECKER_ID],[APPROVE_DT],[MAKER_ID_KT],[CREATE_DT_KT],[AUTH_STATUS_KT],[CHECKER_ID_KT],[APPROVE_DT_KT],[RECORD_STATUS],[IS_TRANSFER_EXTERNAL])
376
											VALUES (@l_TR_REQ_PAY_ENTRIES_D, @REQ_PAY_ID, @FUNCTION_TYPE, @TRN_TYPE, @REF_ID, @ENTRY_PAIR, @DR_CR, @DR_CR_NAME, @ACCT, @ACCT_NAME, @BRANCH_ID, @DEP_ID_ENTRY, @A_DEBIT_AMT, @CURRENCY, @EXC_RATE,
377
											@TRN_DATE, @PAY_AUTO_TRN_DESC_DETAIL, 'admin', @CREATE_DT, @AUTH_STATUS, 'admin', @APPROVE_DT, 'admin', @CREATE_DT_KT, @AUTH_STATUS_KT, 'admin', @APPROVE_DT_KT, @RECORD_STATUS, @IS_TRANSFER_EXTERNAL)
378
										END
379
									END
380
									ELSE
381
									BEGIN
382
										PRINT 'CHUA PHAI DONG NO CUOI'
383
										DECLARE @B_CREDIT_AMT DECIMAL(18,0) = CONVERT(DECIMAL, @amount*@PERCENT_BUDGET_ALLOCAITON_ENTRIES/100)
384
										DECLARE @B_DEBIT_AMT DECIMAL(18,0) = @B_CREDIT_AMT/@PERCENT_VAT
385
										DECLARE @B_3532_AMT DECIMAL(18,0) = @B_CREDIT_AMT - @B_DEBIT_AMT
386
										print '@B_CREDIT_AMT: ' + CONVERT(VARCHAR(15),@B_CREDIT_AMT)
387
										print '@B_DEBIT_AMT: ' + CONVERT(VARCHAR(15),@B_DEBIT_AMT)
388
										print '@B_3532_AMT: ' +CONVERT(VARCHAR(15),@B_3532_AMT) 
389

    
390
										IF(ISNULL(@ACCT, '') = '353200002')
391
										BEGIN
392
											print '@ACCT 3532: ' + @ACCT
393
											print '@B_3532_AMT hach toan: ' +CONVERT(VARCHAR(15),@B_3532_AMT) 
394
											INSERT INTO [TR_REQ_PAY_ENTRIES] ([REQ_PAY_DT_ID],[REQ_PAY_ID],[FUNCTION_TYPE],[TRN_TYPE],[REF_ID],[ENTRY_PAIR],[DR_CR],[DR_CR_NAME],[ACCT],[ACCT_NAME],[BRANCH_ID],[DEP_ID], [AMT],[CURRENCY],[EXC_RATE],
395
											[TRN_DATE],[TRN_DESC],[MAKER_ID],[CREATE_DT],[AUTH_STATUS],[CHECKER_ID],[APPROVE_DT],[MAKER_ID_KT],[CREATE_DT_KT],[AUTH_STATUS_KT],[CHECKER_ID_KT],[APPROVE_DT_KT],[RECORD_STATUS],[IS_TRANSFER_EXTERNAL])
396
											VALUES (@l_TR_REQ_PAY_ENTRIES_D, @REQ_PAY_ID, @FUNCTION_TYPE, @TRN_TYPE, @REF_ID, @ENTRY_PAIR, @DR_CR, @DR_CR_NAME, @ACCT, @ACCT_NAME, @BRANCH_ID, @DEP_ID_ENTRY, @B_3532_AMT, @CURRENCY, @EXC_RATE,
397
											@TRN_DATE, @PAY_AUTO_TRN_DESC_DETAIL, 'admin', @CREATE_DT, @AUTH_STATUS, 'admin', @APPROVE_DT, 'admin', @CREATE_DT_KT, @AUTH_STATUS_KT, 'admin', @APPROVE_DT_KT, @RECORD_STATUS, @IS_TRANSFER_EXTERNAL)
398
										END
399
										ELSE
400
										BEGIN
401
											INSERT INTO [TR_REQ_PAY_ENTRIES] ([REQ_PAY_DT_ID],[REQ_PAY_ID],[FUNCTION_TYPE],[TRN_TYPE],[REF_ID],[ENTRY_PAIR],[DR_CR],[DR_CR_NAME],[ACCT],[ACCT_NAME],[BRANCH_ID],[DEP_ID], [AMT],[CURRENCY],[EXC_RATE],
402
											[TRN_DATE],[TRN_DESC],[MAKER_ID],[CREATE_DT],[AUTH_STATUS],[CHECKER_ID],[APPROVE_DT],[MAKER_ID_KT],[CREATE_DT_KT],[AUTH_STATUS_KT],[CHECKER_ID_KT],[APPROVE_DT_KT],[RECORD_STATUS],[IS_TRANSFER_EXTERNAL])
403
											VALUES (@l_TR_REQ_PAY_ENTRIES_D, @REQ_PAY_ID, @FUNCTION_TYPE, @TRN_TYPE, @REF_ID, @ENTRY_PAIR, @DR_CR, @DR_CR_NAME, @ACCT, @ACCT_NAME, @BRANCH_ID, @DEP_ID_ENTRY, @B_DEBIT_AMT, @CURRENCY, @EXC_RATE,
404
											@TRN_DATE, @PAY_AUTO_TRN_DESC_DETAIL, 'admin', @CREATE_DT, @AUTH_STATUS, 'admin', @APPROVE_DT, 'admin', @CREATE_DT_KT, @AUTH_STATUS_KT, 'admin', @APPROVE_DT_KT, @RECORD_STATUS, @IS_TRANSFER_EXTERNAL)
405
										END
406
									END
407
								END
408
								ELSE
409
								BEGIN
410
									IF(ISNULL(@TOTAL_PERCENT, 0) + ISNULL(@PERCENT_BUDGET_ALLOCAITON_ENTRIES, 0) = 100)
411
									BEGIN
412
										PRINT 'DONG CO CUOI'
413
										INSERT INTO [TR_REQ_PAY_ENTRIES] ([REQ_PAY_DT_ID],[REQ_PAY_ID],[FUNCTION_TYPE],[TRN_TYPE],[REF_ID],[ENTRY_PAIR],[DR_CR],[DR_CR_NAME],[ACCT],[ACCT_NAME],[BRANCH_ID],[DEP_ID], [AMT],[CURRENCY],[EXC_RATE],
414
										[TRN_DATE],[TRN_DESC],[MAKER_ID],[CREATE_DT],[AUTH_STATUS],[CHECKER_ID],[APPROVE_DT],[MAKER_ID_KT],[CREATE_DT_KT],[AUTH_STATUS_KT],[CHECKER_ID_KT],[APPROVE_DT_KT],[RECORD_STATUS],[IS_TRANSFER_EXTERNAL])
415
										VALUES (@l_TR_REQ_PAY_ENTRIES_D, @REQ_PAY_ID, @FUNCTION_TYPE, @TRN_TYPE, @REF_ID, @ENTRY_PAIR, @DR_CR, @DR_CR_NAME, @ACCT, @ACCT_NAME, @BRANCH_ID, @DEP_ID_ENTRY, @amount - @TOTAL_PERCENT_AMT, @CURRENCY, @EXC_RATE,
416
										@TRN_DATE, @PAY_AUTO_TRN_DESC_DETAIL, 'admin', @CREATE_DT, @AUTH_STATUS, 'admin', @APPROVE_DT, 'admin', @CREATE_DT_KT, @AUTH_STATUS_KT, 'admin', @APPROVE_DT_KT, @RECORD_STATUS, @IS_TRANSFER_EXTERNAL)
417
									END
418
									ELSE
419
									BEGIN
420
										PRINT 'CHUA PHAI DONG CO CUOI'
421
										INSERT INTO [TR_REQ_PAY_ENTRIES] ([REQ_PAY_DT_ID],[REQ_PAY_ID],[FUNCTION_TYPE],[TRN_TYPE],[REF_ID],[ENTRY_PAIR],[DR_CR],[DR_CR_NAME],[ACCT],[ACCT_NAME],[BRANCH_ID],[DEP_ID], [AMT],[CURRENCY],[EXC_RATE],
422
										[TRN_DATE],[TRN_DESC],[MAKER_ID],[CREATE_DT],[AUTH_STATUS],[CHECKER_ID],[APPROVE_DT],[MAKER_ID_KT],[CREATE_DT_KT],[AUTH_STATUS_KT],[CHECKER_ID_KT],[APPROVE_DT_KT],[RECORD_STATUS],[IS_TRANSFER_EXTERNAL])
423
										VALUES (@l_TR_REQ_PAY_ENTRIES_D, @REQ_PAY_ID, @FUNCTION_TYPE, @TRN_TYPE, @REF_ID, @ENTRY_PAIR, @DR_CR, @DR_CR_NAME, @ACCT, @ACCT_NAME, @BRANCH_ID, @DEP_ID_ENTRY, CONVERT(DECIMAL, @amount*@PERCENT_BUDGET_ALLOCAITON_ENTRIES/100), @CURRENCY, @EXC_RATE,
424
										@TRN_DATE, @PAY_AUTO_TRN_DESC_DETAIL, 'admin', @CREATE_DT, @AUTH_STATUS, 'admin', @APPROVE_DT, 'admin', @CREATE_DT_KT, @AUTH_STATUS_KT, 'admin', @APPROVE_DT_KT, @RECORD_STATUS, @IS_TRANSFER_EXTERNAL)
425
									END
426
										
427
								END
428

    
429
							IF @@error<>0 GOTO ABORT;
430
							FETCH NEXT FROM cursorEntries INTO @REQ_PAY_AUTO_ID, @FUNCTION_TYPE, @TRN_TYPE, @REF_ID, @ENTRY_PAIR, @DR_CR, @DR_CR_NAME, @ACCT, @ACCT_NAME, @BRANCH_ID, @DEP_ID_ENTRY, @AMT, @CURRENCY, @EXC_RATE,
431
							@TRN_DATE, @TRN_DESC, @MAKER_ID, @CREATE_DT, @AUTH_STATUS, @CHECKER_ID, @APPROVE_DT, @MAKER_ID_KT, @CREATE_DT_KT, @AUTH_STATUS_KT, @CHECKER_ID_KT, @APPROVE_DT_KT, @RECORD_STATUS,
432
							@IS_TRANSFER_EXTERNAL, @TYPE_BUDGET_ALLOCAITON_ENTRIES, @PERCENT_BUDGET_ALLOCAITON_ENTRIES, @AMT_BUDGET_ALLOCAITON_ENTRIES
433
							END
434
							CLOSE cursorEntries
435
							DEALLOCATE cursorEntries
436
						-- END CHẠY TỪNG CẶP BÚT TOÁN
437
								
438
							SET @TOTAL_PERCENT = @TOTAL_PERCENT + @PERCENT_BUDGET_ALLOCAITON_ENTRIES;
439
							SET @TOTAL_PERCENT_AMT = @TOTAL_PERCENT_AMT + @amount*@PERCENT_BUDGET_ALLOCAITON_ENTRIES/100
440

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

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

    
457
						DECLARE cursorEntries CURSOR LOCAL FOR 
458
						SELECT REQ_PAY_AUTO_ID, FUNCTION_TYPE, TRN_TYPE, REF_ID, ENTRY_PAIR, DR_CR, DR_CR_NAME, ACCT, ACCT_NAME, BRANCH_ID, DEP_ID, AMT, CURRENCY, EXC_RATE,
459
						TRN_DATE, TRN_DESC, MAKER_ID, CREATE_DT, AUTH_STATUS, CHECKER_ID, APPROVE_DT, MAKER_ID_KT, CREATE_DT_KT, AUTH_STATUS_KT, CHECKER_ID_KT, APPROVE_DT_KT, RECORD_STATUS, IS_TRANSFER_EXTERNAL
460
						FROM TR_REQ_PAY_AUTO_ENTRIES
461
						WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID
462
						Open cursorEntries
463
						FETCH NEXT FROM cursorEntries INTO @REQ_PAY_AUTO_ID, @FUNCTION_TYPE, @TRN_TYPE, @REF_ID, @ENTRY_PAIR, @DR_CR, @DR_CR_NAME, @ACCT, @ACCT_NAME, @BRANCH_ID, @DEP_ID_ENTRY, @AMT, @CURRENCY, @EXC_RATE,
464
						@TRN_DATE, @TRN_DESC, @MAKER_ID, @CREATE_DT, @AUTH_STATUS, @CHECKER_ID, @APPROVE_DT, @MAKER_ID_KT, @CREATE_DT_KT, @AUTH_STATUS_KT, @CHECKER_ID_KT, @APPROVE_DT_KT, @RECORD_STATUS, @IS_TRANSFER_EXTERNAL
465
						WHILE @@FETCH_STATUS = 0
466
						BEGIN
467

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

    
471
							IF(@DR_CR = 'D')	-- Nợ
472
							BEGIN
473
								IF(@ACCT = '353200002')
474
								BEGIN
475
									print '3532'
476
									INSERT INTO [TR_REQ_PAY_ENTRIES] ([REQ_PAY_DT_ID],[REQ_PAY_ID],[FUNCTION_TYPE],[TRN_TYPE],[REF_ID],[ENTRY_PAIR],[DR_CR],[DR_CR_NAME],[ACCT],[ACCT_NAME],[BRANCH_ID],[DEP_ID], [AMT],[CURRENCY],[EXC_RATE],
477
									[TRN_DATE],[TRN_DESC],[MAKER_ID],[CREATE_DT],[AUTH_STATUS],[CHECKER_ID],[APPROVE_DT],[MAKER_ID_KT],[CREATE_DT_KT],[AUTH_STATUS_KT],[CHECKER_ID_KT],[APPROVE_DT_KT],[RECORD_STATUS],[IS_TRANSFER_EXTERNAL])
478
									VALUES (@l_TR_REQ_PAY_ENTRIES_D, @REQ_PAY_ID, @FUNCTION_TYPE, @TRN_TYPE, @REF_ID, '1', @DR_CR, @DR_CR_NAME, @ACCT, @ACCT_NAME, @BRANCH_ID, @DEP_ID_ENTRY, @3532_AMT, @CURRENCY, @EXC_RATE,
479
									@TRN_DATE, @PAY_AUTO_TRN_DESC_DETAIL, 'admin', @CREATE_DT, @AUTH_STATUS, 'admin', @APPROVE_DT, 'admin', @CREATE_DT_KT, @AUTH_STATUS_KT, 'admin', @APPROVE_DT_KT, @RECORD_STATUS, @IS_TRANSFER_EXTERNAL)
480
								END
481
								ELSE
482
								BEGIN
483
									print 'No TKCP'
484
									INSERT INTO [TR_REQ_PAY_ENTRIES] ([REQ_PAY_DT_ID],[REQ_PAY_ID],[FUNCTION_TYPE],[TRN_TYPE],[REF_ID],[ENTRY_PAIR],[DR_CR],[DR_CR_NAME],[ACCT],[ACCT_NAME],[BRANCH_ID],[DEP_ID], [AMT],[CURRENCY],[EXC_RATE],
485
									[TRN_DATE],[TRN_DESC],[MAKER_ID],[CREATE_DT],[AUTH_STATUS],[CHECKER_ID],[APPROVE_DT],[MAKER_ID_KT],[CREATE_DT_KT],[AUTH_STATUS_KT],[CHECKER_ID_KT],[APPROVE_DT_KT],[RECORD_STATUS],[IS_TRANSFER_EXTERNAL])
486
									VALUES (@l_TR_REQ_PAY_ENTRIES_D, @REQ_PAY_ID, @FUNCTION_TYPE, @TRN_TYPE, @REF_ID, '1', @DR_CR, @DR_CR_NAME, @ACCT, @ACCT_NAME, @BRANCH_ID, @DEP_ID_ENTRY, @DEBIT_AMT_1, @CURRENCY, @EXC_RATE,
487
									@TRN_DATE, @PAY_AUTO_TRN_DESC_DETAIL, 'admin', @CREATE_DT, @AUTH_STATUS, 'admin', @APPROVE_DT, 'admin', @CREATE_DT_KT, @AUTH_STATUS_KT, 'admin', @APPROVE_DT_KT, @RECORD_STATUS, @IS_TRANSFER_EXTERNAL)
488
								END
489
							END
490
							ELSE
491
							BEGIN
492
								print 'Co TKTT'
493
								INSERT INTO [TR_REQ_PAY_ENTRIES] ([REQ_PAY_DT_ID],[REQ_PAY_ID],[FUNCTION_TYPE],[TRN_TYPE],[REF_ID],[ENTRY_PAIR],[DR_CR],[DR_CR_NAME],[ACCT],[ACCT_NAME],[BRANCH_ID],[DEP_ID], [AMT],[CURRENCY],[EXC_RATE],
494
								[TRN_DATE],[TRN_DESC],[MAKER_ID],[CREATE_DT],[AUTH_STATUS],[CHECKER_ID],[APPROVE_DT],[MAKER_ID_KT],[CREATE_DT_KT],[AUTH_STATUS_KT],[CHECKER_ID_KT],[APPROVE_DT_KT],[RECORD_STATUS],[IS_TRANSFER_EXTERNAL])
495
								VALUES (@l_TR_REQ_PAY_ENTRIES_D, @REQ_PAY_ID, @FUNCTION_TYPE, @TRN_TYPE, @REF_ID, '1', @DR_CR, @DR_CR_NAME, @ACCT, @ACCT_NAME, @BRANCH_ID, @DEP_ID_ENTRY, @amount, @CURRENCY, @EXC_RATE,
496
								@TRN_DATE, @PAY_AUTO_TRN_DESC_DETAIL, 'admin', @CREATE_DT, @AUTH_STATUS, 'admin', @APPROVE_DT, 'admin', @CREATE_DT_KT, @AUTH_STATUS_KT, 'admin', @APPROVE_DT_KT, @RECORD_STATUS, @IS_TRANSFER_EXTERNAL)
497
							END
498

    
499
							
500
						IF @@error<>0 GOTO ABORT;
501
						FETCH NEXT FROM cursorEntries INTO @REQ_PAY_AUTO_ID, @FUNCTION_TYPE, @TRN_TYPE, @REF_ID, @ENTRY_PAIR, @DR_CR, @DR_CR_NAME, @ACCT, @ACCT_NAME, @BRANCH_ID, @DEP_ID_ENTRY, @AMT, @CURRENCY, @EXC_RATE,
502
						@TRN_DATE, @TRN_DESC, @MAKER_ID, @CREATE_DT, @AUTH_STATUS, @CHECKER_ID, @APPROVE_DT, @MAKER_ID_KT, @CREATE_DT_KT, @AUTH_STATUS_KT, @CHECKER_ID_KT, @APPROVE_DT_KT, @RECORD_STATUS, @IS_TRANSFER_EXTERNAL
503
						END
504
						CLOSE cursorEntries
505
						DEALLOCATE cursorEntries
506
						--- BAN BUT TOAN VAO CORE
507
						EXEC [dbo].[PAY_ENTRIES_POST_SetApp] @REQ_PAY_ID,'admin','admin', @RES OUT
508
					END
509
				END
510
				-- KHONG THUE
511
				ELSE	
512
				BEGIN
513
					IF(EXISTS(SELECT * FROM TR_REQ_PAY_AUTO_BUDGET_ALLOCATION WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID))
514
					BEGIN
515
						PRINT 'KHONG THUE, CO PHAN CHIA'
516
						IF(EXISTS(SELECT * FROM TR_REQ_PAY_AUTO_BUDGET_ALLOCATION WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID AND TYPE_BUDGET_ALLOCAITON = 'PERCENT'))
517
						BEGIN
518
							PRINT 'KHONG THUE, CO PHAN CHIA, PHAN CHIA THEO TY LE'
519
						-- CREATE CURSOR CÁC ĐẦU CÓ
520
							DECLARE cursorEntries_C CURSOR LOCAL FOR 
521
							SELECT REQ_PAY_AUTO_ID, ENTRY_PAIR
522
							FROM TR_REQ_PAY_AUTO_ENTRIES
523
							WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID AND DR_CR = 'C'
524

    
525
							Open cursorEntries_C
526
							FETCH NEXT FROM cursorEntries_C INTO @REQ_PAY_AUTO_ID, @ENTRY_PAIR
527
							WHILE @@FETCH_STATUS = 0
528
							BEGIN
529
							-- BEGIN CHẠY TỪNG CẶP BÚT TOÁN
530
								DECLARE cursorEntries CURSOR LOCAL FOR 
531
								SELECT REQ_PAY_AUTO_ID, FUNCTION_TYPE, TRN_TYPE, REF_ID, ENTRY_PAIR, DR_CR, DR_CR_NAME, ACCT, ACCT_NAME, BRANCH_ID, DEP_ID, AMT, CURRENCY, EXC_RATE,
532
								TRN_DATE, TRN_DESC, MAKER_ID, CREATE_DT, AUTH_STATUS, CHECKER_ID, APPROVE_DT, MAKER_ID_KT, CREATE_DT_KT, AUTH_STATUS_KT, CHECKER_ID_KT, APPROVE_DT_KT, RECORD_STATUS,
533
								IS_TRANSFER_EXTERNAL, TYPE_BUDGET_ALLOCAITON, PERCENT_BUDGET_ALLOCAITON, AMT_BUDGET_ALLOCAITON
534
								FROM TR_REQ_PAY_AUTO_ENTRIES
535
								WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID AND ENTRY_PAIR = @ENTRY_PAIR
536

    
537
								Open cursorEntries
538
								FETCH NEXT FROM cursorEntries INTO @REQ_PAY_AUTO_ID, @FUNCTION_TYPE, @TRN_TYPE, @REF_ID, @ENTRY_PAIR, @DR_CR, @DR_CR_NAME, @ACCT, @ACCT_NAME, @BRANCH_ID, @DEP_ID_ENTRY, @AMT, @CURRENCY, @EXC_RATE,
539
								@TRN_DATE, @TRN_DESC, @MAKER_ID, @CREATE_DT, @AUTH_STATUS, @CHECKER_ID, @APPROVE_DT, @MAKER_ID_KT, @CREATE_DT_KT, @AUTH_STATUS_KT, @CHECKER_ID_KT, @APPROVE_DT_KT, @RECORD_STATUS, 
540
								@IS_TRANSFER_EXTERNAL, @TYPE_BUDGET_ALLOCAITON_ENTRIES, @PERCENT_BUDGET_ALLOCAITON_ENTRIES, @AMT_BUDGET_ALLOCAITON_ENTRIES
541
								WHILE @@FETCH_STATUS = 0
542
								BEGIN
543

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

    
547
									IF(@DR_CR = 'D')
548
									BEGIN
549
										IF(ISNULL(@TOTAL_PERCENT, 0) + ISNULL(@PERCENT_BUDGET_ALLOCAITON_ENTRIES, 0) = 100)
550
										BEGIN
551
											PRINT 'DONG NO CUOI'
552
											INSERT INTO [TR_REQ_PAY_ENTRIES] ([REQ_PAY_DT_ID],[REQ_PAY_ID],[FUNCTION_TYPE],[TRN_TYPE],[REF_ID],[ENTRY_PAIR],[DR_CR],[DR_CR_NAME],[ACCT],[ACCT_NAME],[BRANCH_ID],[DEP_ID], [AMT],[CURRENCY],[EXC_RATE],
553
											[TRN_DATE],[TRN_DESC],[MAKER_ID],[CREATE_DT],[AUTH_STATUS],[CHECKER_ID],[APPROVE_DT],[MAKER_ID_KT],[CREATE_DT_KT],[AUTH_STATUS_KT],[CHECKER_ID_KT],[APPROVE_DT_KT],[RECORD_STATUS],[IS_TRANSFER_EXTERNAL])
554
											VALUES (@l_TR_REQ_PAY_ENTRIES_D, @REQ_PAY_ID, @FUNCTION_TYPE, @TRN_TYPE, @REF_ID, @ENTRY_PAIR, @DR_CR, @DR_CR_NAME, @ACCT, @ACCT_NAME, @BRANCH_ID, @DEP_ID_ENTRY, @amount - @TOTAL_PERCENT_AMT, @CURRENCY, @EXC_RATE,
555
											@TRN_DATE, @PAY_AUTO_TRN_DESC_DETAIL, 'admin', @CREATE_DT, @AUTH_STATUS, 'admin', @APPROVE_DT, 'admin', @CREATE_DT_KT, @AUTH_STATUS_KT, 'admin', @APPROVE_DT_KT, @RECORD_STATUS, @IS_TRANSFER_EXTERNAL)
556
										END
557
										ELSE
558
										BEGIN
559
											PRINT 'CHUA PHAI DONG NO CUOI'
560

    
561
											INSERT INTO [TR_REQ_PAY_ENTRIES] ([REQ_PAY_DT_ID],[REQ_PAY_ID],[FUNCTION_TYPE],[TRN_TYPE],[REF_ID],[ENTRY_PAIR],[DR_CR],[DR_CR_NAME],[ACCT],[ACCT_NAME],[BRANCH_ID],[DEP_ID], [AMT],[CURRENCY],[EXC_RATE],
562
											[TRN_DATE],[TRN_DESC],[MAKER_ID],[CREATE_DT],[AUTH_STATUS],[CHECKER_ID],[APPROVE_DT],[MAKER_ID_KT],[CREATE_DT_KT],[AUTH_STATUS_KT],[CHECKER_ID_KT],[APPROVE_DT_KT],[RECORD_STATUS],[IS_TRANSFER_EXTERNAL])
563
											VALUES (@l_TR_REQ_PAY_ENTRIES_D, @REQ_PAY_ID, @FUNCTION_TYPE, @TRN_TYPE, @REF_ID, @ENTRY_PAIR, @DR_CR, @DR_CR_NAME, @ACCT, @ACCT_NAME, @BRANCH_ID, @DEP_ID_ENTRY, CONVERT(DECIMAL, @amount*@PERCENT_BUDGET_ALLOCAITON_ENTRIES/100), @CURRENCY, @EXC_RATE,
564
											@TRN_DATE, @PAY_AUTO_TRN_DESC_DETAIL, 'admin', @CREATE_DT, @AUTH_STATUS, 'admin', @APPROVE_DT, 'admin', @CREATE_DT_KT, @AUTH_STATUS_KT, 'admin', @APPROVE_DT_KT, @RECORD_STATUS, @IS_TRANSFER_EXTERNAL)
565
										END
566
									END
567
									ELSE
568
									BEGIN
569
										IF(ISNULL(@TOTAL_PERCENT, 0) + ISNULL(@PERCENT_BUDGET_ALLOCAITON_ENTRIES, 0) = 100)
570
										BEGIN
571
											PRINT 'DONG CO CUOI'
572
											INSERT INTO [TR_REQ_PAY_ENTRIES] ([REQ_PAY_DT_ID],[REQ_PAY_ID],[FUNCTION_TYPE],[TRN_TYPE],[REF_ID],[ENTRY_PAIR],[DR_CR],[DR_CR_NAME],[ACCT],[ACCT_NAME],[BRANCH_ID],[DEP_ID], [AMT],[CURRENCY],[EXC_RATE],
573
											[TRN_DATE],[TRN_DESC],[MAKER_ID],[CREATE_DT],[AUTH_STATUS],[CHECKER_ID],[APPROVE_DT],[MAKER_ID_KT],[CREATE_DT_KT],[AUTH_STATUS_KT],[CHECKER_ID_KT],[APPROVE_DT_KT],[RECORD_STATUS],[IS_TRANSFER_EXTERNAL])
574
											VALUES (@l_TR_REQ_PAY_ENTRIES_D, @REQ_PAY_ID, @FUNCTION_TYPE, @TRN_TYPE, @REF_ID, @ENTRY_PAIR, @DR_CR, @DR_CR_NAME, @ACCT, @ACCT_NAME, @BRANCH_ID, @DEP_ID_ENTRY, @amount - @TOTAL_PERCENT_AMT, @CURRENCY, @EXC_RATE,
575
											@TRN_DATE, @PAY_AUTO_TRN_DESC_DETAIL, 'admin', @CREATE_DT, @AUTH_STATUS, 'admin', @APPROVE_DT, 'admin', @CREATE_DT_KT, @AUTH_STATUS_KT, 'admin', @APPROVE_DT_KT, @RECORD_STATUS, @IS_TRANSFER_EXTERNAL)
576
										END
577
										ELSE
578
										BEGIN
579
											PRINT 'CHUA PHAI DONG CO CUOI'
580
											INSERT INTO [TR_REQ_PAY_ENTRIES] ([REQ_PAY_DT_ID],[REQ_PAY_ID],[FUNCTION_TYPE],[TRN_TYPE],[REF_ID],[ENTRY_PAIR],[DR_CR],[DR_CR_NAME],[ACCT],[ACCT_NAME],[BRANCH_ID],[DEP_ID], [AMT],[CURRENCY],[EXC_RATE],
581
											[TRN_DATE],[TRN_DESC],[MAKER_ID],[CREATE_DT],[AUTH_STATUS],[CHECKER_ID],[APPROVE_DT],[MAKER_ID_KT],[CREATE_DT_KT],[AUTH_STATUS_KT],[CHECKER_ID_KT],[APPROVE_DT_KT],[RECORD_STATUS],[IS_TRANSFER_EXTERNAL])
582
											VALUES (@l_TR_REQ_PAY_ENTRIES_D, @REQ_PAY_ID, @FUNCTION_TYPE, @TRN_TYPE, @REF_ID, @ENTRY_PAIR, @DR_CR, @DR_CR_NAME, @ACCT, @ACCT_NAME, @BRANCH_ID, @DEP_ID_ENTRY, CONVERT(DECIMAL, @amount*@PERCENT_BUDGET_ALLOCAITON_ENTRIES/100), @CURRENCY, @EXC_RATE,
583
											@TRN_DATE, @PAY_AUTO_TRN_DESC_DETAIL, 'admin', @CREATE_DT, @AUTH_STATUS, 'admin', @APPROVE_DT, 'admin', @CREATE_DT_KT, @AUTH_STATUS_KT, 'admin', @APPROVE_DT_KT, @RECORD_STATUS, @IS_TRANSFER_EXTERNAL)
584
										END
585
										
586
									END
587

    
588
								IF @@error<>0 GOTO ABORT;
589
								FETCH NEXT FROM cursorEntries INTO @REQ_PAY_AUTO_ID, @FUNCTION_TYPE, @TRN_TYPE, @REF_ID, @ENTRY_PAIR, @DR_CR, @DR_CR_NAME, @ACCT, @ACCT_NAME, @BRANCH_ID, @DEP_ID_ENTRY, @AMT, @CURRENCY, @EXC_RATE,
590
								@TRN_DATE, @TRN_DESC, @MAKER_ID, @CREATE_DT, @AUTH_STATUS, @CHECKER_ID, @APPROVE_DT, @MAKER_ID_KT, @CREATE_DT_KT, @AUTH_STATUS_KT, @CHECKER_ID_KT, @APPROVE_DT_KT, @RECORD_STATUS,
591
								@IS_TRANSFER_EXTERNAL, @TYPE_BUDGET_ALLOCAITON_ENTRIES, @PERCENT_BUDGET_ALLOCAITON_ENTRIES, @AMT_BUDGET_ALLOCAITON_ENTRIES
592
								END
593
								CLOSE cursorEntries
594
								DEALLOCATE cursorEntries
595
							-- END CHẠY TỪNG CẶP BÚT TOÁN
596
								
597
								SET @TOTAL_PERCENT = @TOTAL_PERCENT + @PERCENT_BUDGET_ALLOCAITON_ENTRIES;
598
								SET @TOTAL_PERCENT_AMT = @TOTAL_PERCENT_AMT + @amount*@PERCENT_BUDGET_ALLOCAITON_ENTRIES/100
599

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

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

    
619
						DECLARE cursorEntries CURSOR LOCAL FOR 
620
						SELECT REQ_PAY_AUTO_ID, FUNCTION_TYPE, TRN_TYPE, REF_ID, ENTRY_PAIR, DR_CR, DR_CR_NAME, ACCT, ACCT_NAME, BRANCH_ID, DEP_ID, AMT, CURRENCY, EXC_RATE,
621
						TRN_DATE, TRN_DESC, MAKER_ID, CREATE_DT, AUTH_STATUS, CHECKER_ID, APPROVE_DT, MAKER_ID_KT, CREATE_DT_KT, AUTH_STATUS_KT, CHECKER_ID_KT, APPROVE_DT_KT, RECORD_STATUS, IS_TRANSFER_EXTERNAL
622
						FROM TR_REQ_PAY_AUTO_ENTRIES
623
						WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID
624
						Open cursorEntries
625
				
626
						FETCH NEXT FROM cursorEntries INTO @REQ_PAY_AUTO_ID, @FUNCTION_TYPE, @TRN_TYPE, @REF_ID, @ENTRY_PAIR, @DR_CR, @DR_CR_NAME, @ACCT, @ACCT_NAME, @BRANCH_ID, @DEP_ID_ENTRY, @AMT, @CURRENCY, @EXC_RATE,
627
						@TRN_DATE, @TRN_DESC, @MAKER_ID, @CREATE_DT, @AUTH_STATUS, @CHECKER_ID, @APPROVE_DT, @MAKER_ID_KT, @CREATE_DT_KT, @AUTH_STATUS_KT, @CHECKER_ID_KT, @APPROVE_DT_KT, @RECORD_STATUS, @IS_TRANSFER_EXTERNAL
628
						WHILE @@FETCH_STATUS = 0
629
						BEGIN
630
							DECLARE @l_TR_REQ_PAY_ENTRIES VARCHAR(15);
631
							EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_ENTRIES', @l_TR_REQ_PAY_ENTRIES OUT;
632
							IF @l_TR_REQ_PAY_ENTRIES='' OR @l_TR_REQ_PAY_ENTRIES IS NULL GOTO ABORT;
633

    
634
							INSERT INTO [TR_REQ_PAY_ENTRIES] ([REQ_PAY_DT_ID],[REQ_PAY_ID],[FUNCTION_TYPE],[TRN_TYPE],[REF_ID],[ENTRY_PAIR],[DR_CR],[DR_CR_NAME],[ACCT],[ACCT_NAME],[BRANCH_ID],[DEP_ID], [AMT],[CURRENCY],[EXC_RATE],
635
							[TRN_DATE],[TRN_DESC],[MAKER_ID],[CREATE_DT],[AUTH_STATUS],[CHECKER_ID],[APPROVE_DT],[MAKER_ID_KT],[CREATE_DT_KT],[AUTH_STATUS_KT],[CHECKER_ID_KT],[APPROVE_DT_KT],[RECORD_STATUS],[IS_TRANSFER_EXTERNAL])
636
							VALUES (@l_TR_REQ_PAY_ENTRIES, @REQ_PAY_ID, @FUNCTION_TYPE, @TRN_TYPE, @REF_ID, @ENTRY_PAIR, @DR_CR, @DR_CR_NAME, @ACCT, @ACCT_NAME, @BRANCH_ID, @DEP_ID_ENTRY, CONVERT(DECIMAL(18,2), @amount), 'VND', @EXC_RATE,
637
							@TRN_DATE, @PAY_AUTO_TRN_DESC_DETAIL, 'admin', GETDATE(), @AUTH_STATUS, 'admin', @APPROVE_DT, 'admin', GETDATE(), 'A', 'admin', @APPROVE_DT_KT, '1', @IS_TRANSFER_EXTERNAL)
638

    
639
						IF @@error<>0 GOTO ABORT;
640
						FETCH NEXT FROM cursorEntries INTO @REQ_PAY_AUTO_ID, @FUNCTION_TYPE, @TRN_TYPE, @REF_ID, @ENTRY_PAIR, @DR_CR, @DR_CR_NAME, @ACCT, @ACCT_NAME, @BRANCH_ID, @DEP_ID_ENTRY, @AMT, @CURRENCY, @EXC_RATE,
641
						@TRN_DATE, @TRN_DESC, @MAKER_ID, @CREATE_DT, @AUTH_STATUS, @CHECKER_ID, @APPROVE_DT, @MAKER_ID_KT, @CREATE_DT_KT, @AUTH_STATUS_KT, @CHECKER_ID_KT, @APPROVE_DT_KT, @RECORD_STATUS, @IS_TRANSFER_EXTERNAL
642
						END
643
						CLOSE cursorEntries
644
						DEALLOCATE cursorEntries
645

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

    
653

    
654

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

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

    
680
			-- CÓ
681
				DECLARE @l_TR_REQ_PAY_ENTRIES_C VARCHAR(15);
682
				EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_ENTRIES', @l_TR_REQ_PAY_ENTRIES_C OUT;
683
				INSERT INTO [TR_REQ_PAY_ENTRIES] ([REQ_PAY_DT_ID],[REQ_PAY_ID],[FUNCTION_TYPE],[TRN_TYPE],[REF_ID],
684
				[ENTRY_PAIR],[DR_CR],[DR_CR_NAME],
685
				[ACCT],[ACCT_NAME],[BRANCH_ID],[DEP_ID],
686
				[AMT],[CURRENCY],[EXC_RATE],[TRN_DATE],[TRN_DESC],
687
				[MAKER_ID],[CREATE_DT],[AUTH_STATUS],[CHECKER_ID],[APPROVE_DT],[MAKER_ID_KT],[CREATE_DT_KT],[AUTH_STATUS_KT],[CHECKER_ID_KT],[APPROVE_DT_KT],[RECORD_STATUS],[IS_TRANSFER_EXTERNAL])
688
				VALUES(@l_TR_REQ_PAY_ENTRIES_C, @REQ_PAY_ID,NULL,'PAYMENT',NULL,
689
				'0',N'C',N'Có',
690
				@partnerAccount, @partner,N'DV0001',N'',
691
				CONVERT(DECIMAL(18,2), @amount),N'VND',1.00,GETDATE(),@transDesc,
692
				'admin',GETDATE(),'A','admin', GETDATE(),'admin',GETDATE(),'A','admin',GETDATE(),'1',NULL)
693

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

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

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

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

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

    
734
GO
735

    
736
ALTER PROCEDURE [dbo].[TR_REQ_PAYMENT_AUTO_Search]
737
@p_REQ_PAY_AUTO_ID	VARCHAR(20)= NULL,
738
@p_REQ_PAY_AUTO_CODE	VARCHAR(20)= NULL,
739
@p_REQ_PAY_AUTO_NAME	VARCHAR(20)= NULL,
740
@p_REQ_PAY_AUTO_DT	VARCHAR(20)= NULL,
741
@p_REQ_PAY_AUTO_TYPE	VARCHAR(20)= NULL,
742
@p_REQ_PAY_AUTO_SERVICE_TYPE	VARCHAR(20)= NULL,
743
@p_REQ_PAY_AUTO_STATUS	VARCHAR(20)= NULL,
744
@p_REQ_PAY_AUTO_EFFECTIVE_DT	VARCHAR(20)= NULL,
745
@p_BRANCH_ID	VARCHAR(20)= NULL,
746
@p_BRANCH_CODE	VARCHAR(20)= NULL,
747
@p_BRANCH_NAME	VARCHAR(20)= NULL,
748
@p_DEP_ID	VARCHAR(20)= NULL,
749
@p_DEP_CODE	VARCHAR(20)= NULL,
750
@p_DEP_NAME	VARCHAR(20)= NULL,
751
@p_BRANCH_CREATE	VARCHAR(20)= NULL,
752
@p_BRANCH_CREATE_CODE	VARCHAR(20)= NULL,
753
@p_BRANCH_CREATE_NAME	VARCHAR(20)= NULL,
754
@p_TRANSFER_USER_RECEIVE	VARCHAR(20)= NULL,
755
@p_TRANSFER_USER_RECEIVE_NAME	VARCHAR(20)= NULL,
756
@p_CONFIRM_NOTE	VARCHAR(20)= NULL,
757
@p_CONTRACT_ID	VARCHAR(20)= NULL,
758
@p_CONTRACT_CODE	VARCHAR(20)= NULL,
759
@p_CONTRACT_NAME	VARCHAR(20)= NULL,
760
@p_PROCESS	VARCHAR(20)= NULL,
761
@p_TRANSFER_MAKER	VARCHAR(20)= NULL,
762
@p_TRANSFER_DT	VARCHAR(20)= NULL,
763
@p_MAKER_ID	VARCHAR(20)= NULL,
764
@p_MAKER_NAME	VARCHAR(20)= NULL,
765
@p_CREATE_DT	VARCHAR(20)= NULL,
766
@p_EDITOR_ID	VARCHAR(20)= NULL,
767
@p_EDITOR_NAME	VARCHAR(20)= NULL,
768
@p_EDIT_DT	VARCHAR(20)= NULL,
769
@p_CHECKER_ID	VARCHAR(20)= NULL,
770
@p_CHECKER_NAME	VARCHAR(20)= NULL,
771
@p_APPROVE_DT	VARCHAR(20)= NULL,
772
@p_AUTH_STATUS	VARCHAR(20)= NULL,
773
@p_MAKER_ID_KT	VARCHAR(20)= NULL,
774
@p_MAKER_KT_NAME	VARCHAR(20)= NULL,
775
@p_CREATE_DT_KT	VARCHAR(20)= NULL,
776
@p_CHECKER_ID_KT	VARCHAR(20)= NULL,
777
@p_CHECKER_KT_NAME	VARCHAR(20)= NULL,
778
@p_APPROVE_DT_KT	VARCHAR(20)= NULL,
779
@p_AUTH_STATUS_KT	VARCHAR(20)= NULL,
780
@p_AUTH_STATUS_KT_DESC	VARCHAR(20)= NULL,
781
@p_RECORD_STATUS	VARCHAR(20)= NULL,
782
@p_FRMDATE	VARCHAR(20)= NULL,
783
@p_TODATE	VARCHAR(20)= NULL,
784
@p_LEVEL	VARCHAR(20)= NULL,
785
@p_USER_LOGIN	VARCHAR(20)= NULL,
786
@p_IS_SEND_APPR	VARCHAR(20)= NULL,
787
@p_TYPE_SEARCH	VARCHAR(20)= NULL,
788
@p_BRANCH_LOGIN	VARCHAR(20)= NULL,
789
@p_EXEC_USER_KT	nvarchar(20)	= NULL,
790
@p_IS_UPDATE_KT VARCHAR(15) = NULL,
791
@p_BRANCH_MANAGE_ID	VARCHAR(20)= NULL,
792
@p_TOP INT = NULL
793
AS
794
/*
795
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
796
	- Do người này gửi duyệt(U-0)
797
	- Do người này đề nghị tạm dừng(A-6)
798
	- Do người này đề nghị khôi phục(A-9)
799
	- Do người này đề nghị hủy phiếu(A-15)
800

    
801
*/
802
BEGIN -- PAGING
803
-- BEGIN KHAI BÁO
804
	IF(@p_TYPE_SEARCH = 'HC')
805
	BEGIN
806
		SET @p_LEVEL = 'UNIT'
807
	END
808
	IF(ISNULL(@p_BRANCH_ID, '') = '')
809
	BEGIN
810
		SET @p_BRANCH_ID = @p_BRANCH_CREATE
811
	END
812
	IF(@p_BRANCH_LOGIN <> 'DV0001')
813
	BEGIN
814
		SET @p_DEP_ID = NULL
815
	END
816
-- ĐƠN VỊ YÊU CẦU
817
	DECLARE @tmp_branch TABLE(BRANCH_ID VARCHAR(15))
818
	DECLARE @tmp_dep TABLE(DEP_ID VARCHAR(15))
819
	DECLARE @DEP_ID VARCHAR(15) = NULL
820
	INSERT INTO @tmp_branch  SELECT BRANCH_ID  FROM [dbo].[CM_BRANCH_GETCHILDID](@p_BRANCH_ID)
821
	DECLARE @BRANCH_TYPE VARCHAR(15)
822
	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))
823

    
824
-- ĐƠN VỊ ĐĂNG NHẬP
825
	DECLARE @tmp_branch_login TABLE(BRANCH_ID VARCHAR(15))
826
	DECLARE @tmp_dep_login TABLE(DEP_ID VARCHAR(15))
827
	INSERT INTO @tmp_branch_login  SELECT BRANCH_ID  FROM [dbo].[CM_BRANCH_GETCHILDID](@p_BRANCH_LOGIN)
828
	INSERT INTO @tmp_branch_login VALUES (@p_BRANCH_LOGIN)
829
	INSERT INTO @tmp_branch_login	SELECT BRANCH_ID 
830
									FROM TL_SYS_ROLE_MAPPING 
831
									WHERE TLNAME =@P_USER_LOGIN 
832
									AND (CONVERT(DATE,GETDATE(),103) >= CONVERT(DATE,EFF_DATE, 103) OR EFF_DATE IS NULL OR EFF_DATE ='')
833
									AND (CONVERT(DATE, GETDATE(),103) <=CONVERT(DATE,EXP_DATE, 103) OR EXP_DATE IS NULL OR EXP_DATE ='') 
834
									AND RECORD_STATUS = '1'
835
	DECLARE @BRANCH_TYPE_LG VARCHAR(15)
836
	SET @BRANCH_TYPE_LG = (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID=@p_BRANCH_LOGIN)
837
-- PHÒNG BAN ĐĂNG NHẬP
838
	DECLARE @DEP_ID_LG VARCHAR(15) = NULL
839
	SET @DEP_ID_LG =(SELECT SECUR_CODE FROM TL_USER WHERE TLNANME=@p_USER_LOGIN)
840
	INSERT INTO @tmp_dep_login VALUES (@DEP_ID_LG)
841
	INSERT INTO @tmp_dep_login SELECT DEP_ID FROM CM_DEPARTMENT WHERE FATHER_ID =@DEP_ID_LG
842
	INSERT INTO @tmp_dep_login	SELECT DEP_ID 
843
								FROM TL_SYS_ROLE_MAPPING 
844
								WHERE TLNAME =@P_USER_LOGIN 
845
								AND (CONVERT(DATE,GETDATE(),103) >= CONVERT(DATE,EFF_DATE, 103) OR EFF_DATE IS NULL OR EFF_DATE ='')
846
								AND (CONVERT(DATE, GETDATE(),103) <=CONVERT(DATE,EXP_DATE, 103) OR EXP_DATE IS NULL OR EXP_DATE ='') 
847
								AND RECORD_STATUS = '1'
848
-- ĐƠN VỊ ỦY QUYỀN KIÊM NHIỆM
849
DECLARE @tmp_branch_auth TABLE (BRANCH_ID VARCHAR(15))
850
INSERT INTO @tmp_branch_auth VALUES (@p_BRANCH_LOGIN)
851
INSERT INTO @tmp_branch_auth	SELECT BRANCH_ID 
852
								FROM TL_SYS_ROLE_MAPPING 
853
								WHERE TLNAME =@P_USER_LOGIN 
854
								AND (CONVERT(DATE,GETDATE(),103) >= CONVERT(DATE,EFF_DATE, 103) OR EFF_DATE IS NULL OR EFF_DATE ='')
855
								AND (CONVERT(DATE, GETDATE(),103) <=CONVERT(DATE,EXP_DATE, 103) OR EXP_DATE IS NULL OR EXP_DATE ='') 
856
								AND RECORD_STATUS = '1'
857
-- PHÒNG BAN ỦY QUYỀN KIÊM NHIỆM
858
DECLARE @tmp_dep_auth TABLE (DEP_ID VARCHAR(15))
859
INSERT INTO @tmp_dep_auth VALUES (@DEP_ID_LG)
860
INSERT INTO @tmp_dep_auth	SELECT DEP_ID 
861
							FROM TL_SYS_ROLE_MAPPING 
862
							WHERE TLNAME =@P_USER_LOGIN 
863
							AND (CONVERT(DATE,GETDATE(),103) >= CONVERT(DATE,EFF_DATE, 103) OR EFF_DATE IS NULL OR EFF_DATE ='')
864
							AND (CONVERT(DATE, GETDATE(),103) <=CONVERT(DATE,EXP_DATE, 103) OR EXP_DATE IS NULL OR EXP_DATE ='') 
865
							AND RECORD_STATUS = '1'
866
INSERT INTO @tmp_dep_auth SELECT DEP_ID FROM CM_DEPARTMENT WHERE FATHER_ID =@DEP_ID_LG
867

    
868
-- ROLE
869
	DECLARE @ROLE_ID VARCHAR(20)
870
	SET @ROLE_ID = (SELECT TOP 1 RoleName FROM TL_USER WHERE TLNANME=@p_USER_LOGIN)
871
	DECLARE @TABLE_ROLE TABLE (ROLE_AUTH VARCHAR(50))  
872
	INSERT INTO @TABLE_ROLE VALUES (@ROLE_ID)
873
	INSERT INTO @TABLE_ROLE SELECT ROLE_NEW 
874
							FROM TL_SYS_ROLE_MAPPING 
875
							WHERE ROLE_OLD =@ROLE_ID AND TLNAME =@P_USER_LOGIN  
876
							AND (CONVERT(DATE,GETDATE(),103) >= CONVERT(DATE,EFF_DATE, 103) OR EFF_DATE IS NULL OR EFF_DATE ='')
877
							AND (CONVERT(DATE, GETDATE(),103) <=CONVERT(DATE,EXP_DATE, 103) OR EXP_DATE IS NULL OR EXP_DATE ='') 
878
							AND RECORD_STATUS = '1'
879
	
880
-- NEU USER KHONG CHON TU NGAY THI TU NGAY BANG NGAY 1 1 HANG THANG 20211116
881
	DECLARE @DATE DATE
882
	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
883
	BEGIN
884
		SET @DATE = CONVERT(DATE,GETDATE(),103)
885
		SET @DATE = DATEADD(MONTH,-2,@DATE)
886
	END
887
	ELSE
888
	BEGIN
889
		SET @DATE = CONVERT(DATE,@p_FRMDATE,103)
890
	END
891
-- CHECK NGUOI DUYET
892
	DECLARE @IS_TDV VARCHAR(1) = 'N'
893
	IF	(		
894
				(	SELECT COUNT(*) 
895
					FROM @TABLE_ROLE A 
896
					WHERE A.ROLE_AUTH IN ('TPGD','GDDV','PGD','PTGD','TGD','HDQT','TP','PP','KTT','GDK','KSV','TC','NVTC','TPTC','PPGD')
897
				) = 0
898
		)
899
	BEGIN
900
		SET @IS_TDV = 'N'
901
	END
902
	ELSE
903
	BEGIN
904
		SET @IS_TDV = 'Y'
905
	END
906
-- END KHAI BÁO
907
	IF(@p_TYPE_SEARCH = 'HC')
908
	BEGIN
909
		IF(@p_TOP IS NULL OR @p_TOP=0)
910
		BEGIN
911
			IF(@DEP_ID_LG = 'DEP000000000022')
912
			BEGIN
913
	-- PAGING BEGIN
914
				SELECT A.*,
915
				--B.BRANCH_CODE, B.BRANCH_NAME,
916
				CASE	WHEN	(	SELECT TOP 1 BRANCH_ID 
917
									FROM TR_CONTRACT 
918
									WHERE CONTRACT_ID = A.CONTRACT_ID
919
								) <> 'DV0001'
920
								THEN  B.BRANCH_NAME + ISNULL	(	' - ' + (	SELECT TOP 1 BRANCH_NAME 
921
																						FROM CM_BRANCH 
922
																						WHERE BRANCH_ID =	(	SELECT TOP 1 BRANCH_ID 
923
																												FROM TR_CONTRACT 
924
																												WHERE CONTRACT_ID = A.CONTRACT_ID
925
																											)
926
																			),''
927
																)
928
						ELSE B.BRANCH_NAME 
929
				END BRANCH_NAME,
930
				C.DEP_CODE, C.DEP_NAME, 
931
				D.CONTRACT_CODE, D.[CONTRACT_NAME], 
932
				E.TLFullName AS MAKER_NAME, 
933
				F.TLFullName AS MAKER_NAME_KT, 
934
				G.TLFullName AS CHECKER_NAME_KT,
935
				H.CONTENT AS REQ_PAY_AUTO_STATUS_NAME,
936
				--I.CONTENT AS REQ_PAY_AUTO_TYPE_NAME,
937
				CASE 
938
					WHEN A.REQ_PAY_AUTO_TYPE = 'A' THEN N.CONTENT
939
					ELSE O.CONTENT
940
				END REQ_PAY_AUTO_TYPE_NAME,
941
				J.CONTENT AS AUTH_STATUS_NAME,
942
				K.CONTENT AS AUTH_STATUS_KT_NAME,
943
				L.TLFullName AS TRANSFER_USER_RECEIVE_NAME,
944
				M.BRANCH_CODE AS BRANCH_MANAGE_CODE, M.BRANCH_NAME AS BRANCH_MANAGE_NAME
945
		-- SELECT END
946
				FROM TR_REQ_PAYMENT_AUTO A
947
				LEFT JOIN CM_BRANCH B ON A.BRANCH_ID = B.BRANCH_ID
948
				LEFT JOIN CM_DEPARTMENT C ON A.DEP_ID = C.DEP_ID
949
				LEFT JOIN TR_CONTRACT D ON A.CONTRACT_ID = D.CONTRACT_ID
950
				LEFT JOIN TL_USER E ON A.MAKER_ID = E.TLNANME
951
				LEFT JOIN TL_USER F ON A.MAKER_ID_KT = F.TLNANME
952
				LEFT JOIN TL_USER G ON A.CHECKER_ID_KT = G.TLNANME
953
				LEFT JOIN CM_ALLCODE H ON A.REQ_PAY_AUTO_STATUS = H.CDVAL AND H.CDNAME = 'PAY_AUTO_STATUS' AND H.CDTYPE = 'REQ_AUTO'
954
				LEFT JOIN CM_ALLCODE I ON A.REQ_PAY_AUTO_TYPE = I.CDVAL AND I.CDNAME = 'PAY_TYPE_AUTO' AND I.CDTYPE = 'REQ_AUTO'
955
				LEFT JOIN CM_ALLCODE J ON A.AUTH_STATUS = J.CDVAL AND J.CDNAME = 'AUTH_STATUS' AND J.CDTYPE = 'TR_REQ_PAYMENT'
956
				LEFT JOIN CM_ALLCODE K ON A.AUTH_STATUS_KT = K.CDVAL AND K.CDNAME = 'AUTH_STATUS_KT' AND K.CDTYPE = 'TR_REQ_PAYMENT'
957
				LEFT JOIN TL_USER L ON A.TRANSFER_USER_RECEIVE = L.TLNANME
958
				LEFT JOIN CM_BRANCH M ON A.BRANCH_MANAGE_ID = M.BRANCH_ID
959
				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'
960
				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'
961
				WHERE 1=1 
962
				-- BEGIN FILTER
963
				AND	(	A.REQ_PAY_AUTO_ID = @p_REQ_PAY_AUTO_ID OR ISNULL(@p_REQ_PAY_AUTO_ID, '') = '')
964
				AND	(	A.REQ_PAY_AUTO_CODE LIKE '%' + @p_REQ_PAY_AUTO_CODE +'%' OR ISNULL(@p_REQ_PAY_AUTO_CODE, '') = '')
965
				--AND	(	A.AUTH_STATUS = @p_AUTH_STATUS OR ISNULL(@p_AUTH_STATUS, '') = '')
966
				AND (	(@p_AUTH_STATUS = A.AUTH_STATUS)	-- dùng cho: lưu nháp, phiếu bị hủy
967
					OR	(@p_AUTH_STATUS = 'W' AND A.PROCESS IN ('0', '6', '9', '15')) -- chờ cấp trung gian xác nhận
968
					OR	(@p_AUTH_STATUS = 'G' AND A.PROCESS IN ('1', '7', '10', '16')) -- cấp trung gian xác nhận
969
					OR	(@p_AUTH_STATUS = 'U' AND A.PROCESS IN ('0', '6', '9', '15')) -- chờ duyệt CTG
970
					OR	(@p_AUTH_STATUS = 'U' AND A.PROCESS IN ('0', '1', '6', '7', '9', '10', '15', '16')) -- chờ duyệt TDV
971
					OR	(@p_AUTH_STATUS = 'A' AND A.PROCESS IN ('1', '2', '7', '8', '10', '11', '16', '17')) -- đã duyệt
972
					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
973
					OR (ISNULL(@p_AUTH_STATUS, '') = '')
974
					)
975
				AND	(	A.REQ_PAY_AUTO_TYPE = @p_REQ_PAY_AUTO_TYPE OR ISNULL(@p_REQ_PAY_AUTO_TYPE, '') = '')
976
				AND	(	A.AUTH_STATUS_KT = @p_AUTH_STATUS_KT OR ISNULL(@p_AUTH_STATUS_KT, '') = '')
977
				AND	(	M.BRANCH_ID = @p_BRANCH_MANAGE_ID OR ISNULL(@p_BRANCH_MANAGE_ID, '') = '')
978
				AND	(	A.CONTRACT_ID = @p_CONTRACT_ID OR ISNULL(@p_CONTRACT_ID, '') = '')
979
				AND	(	A.REQ_PAY_AUTO_STATUS = @p_REQ_PAY_AUTO_STATUS OR ISNULL(@p_REQ_PAY_AUTO_STATUS, '') = '')
980
				AND	(	CONVERT(DATE, A.CREATE_DT) >= CONVERT(DATE, @p_FRMDATE, 103) OR ISNULL(@p_FRMDATE, '')= '' OR A.CREATE_DT IS NULL)
981
				AND	(	CONVERT(DATE, A.CREATE_DT) <= CONVERT(DATE, @p_TODATE, 103) OR ISNULL(@p_TODATE, '')= '' OR A.CREATE_DT IS NULL)
982
				AND	(	A.BRANCH_ID = @p_BRANCH_ID 
983
						OR ISNULL(@p_BRANCH_ID, '') = ''
984
						OR A.BRANCH_ID IN	(	SELECT BRANCH_ID 
985
												FROM @tmp_branch
986
											)
987
					)
988
				AND	(	A.DEP_ID = @p_DEP_ID 
989
						OR ISNULL(@p_DEP_ID, '') = ''
990
					)
991
				AND	(	A.MAKER_ID = @p_MAKER_ID OR ISNULL(@p_MAKER_ID, '') = '')
992
				AND	(	A.MAKER_ID_KT = @p_MAKER_ID_KT OR ISNULL(@p_MAKER_ID_KT, '') = '')
993
				-- END FILTER
994
			ORDER BY A.CREATE_DT DESC
995
	-- PAGING END
996
			END
997
			ELSE
998
			BEGIN-- DVKD Search
999
	-- PAGING BEGIN
1000
				SELECT A.*,
1001
				--B.BRANCH_CODE, B.BRANCH_NAME,
1002
				CASE	WHEN	(	SELECT TOP 1 BRANCH_ID 
1003
									FROM TR_CONTRACT 
1004
									WHERE CONTRACT_ID = A.CONTRACT_ID
1005
								) <> 'DV0001'
1006
								THEN  B.BRANCH_NAME + ISNULL	(	' - ' + (	SELECT TOP 1 BRANCH_NAME 
1007
																						FROM CM_BRANCH 
1008
																						WHERE BRANCH_ID =	(	SELECT TOP 1 BRANCH_ID 
1009
																												FROM TR_CONTRACT 
1010
																												WHERE CONTRACT_ID = A.CONTRACT_ID
1011
																											)
1012
																			),''
1013
																)
1014
						ELSE B.BRANCH_NAME 
1015
				END BRANCH_NAME,
1016
				C.DEP_CODE, C.DEP_NAME, 
1017
				D.CONTRACT_CODE, D.[CONTRACT_NAME], 
1018
				E.TLFullName AS MAKER_NAME, 
1019
				F.TLFullName AS MAKER_NAME_KT, 
1020
				G.TLFullName AS CHECKER_NAME_KT,
1021
				H.CONTENT AS REQ_PAY_AUTO_STATUS_NAME,
1022
				--I.CONTENT AS REQ_PAY_AUTO_TYPE_NAME,
1023
				CASE 
1024
					WHEN A.REQ_PAY_AUTO_TYPE = 'A' THEN N.CONTENT
1025
					ELSE O.CONTENT
1026
				END REQ_PAY_AUTO_TYPE_NAME,
1027
				J.CONTENT AS AUTH_STATUS_NAME,
1028
				K.CONTENT AS AUTH_STATUS_KT_NAME,
1029
				L.TLFullName AS TRANSFER_USER_RECEIVE_NAME,
1030
				M.BRANCH_CODE AS BRANCH_MANAGE_CODE, M.BRANCH_NAME AS BRANCH_MANAGE_NAME
1031
		-- SELECT END
1032
				FROM TR_REQ_PAYMENT_AUTO A
1033
				LEFT JOIN CM_BRANCH B ON A.BRANCH_ID = B.BRANCH_ID
1034
				LEFT JOIN CM_DEPARTMENT C ON A.DEP_ID = C.DEP_ID
1035
				LEFT JOIN TR_CONTRACT D ON A.CONTRACT_ID = D.CONTRACT_ID
1036
				LEFT JOIN TL_USER E ON A.MAKER_ID = E.TLNANME
1037
				LEFT JOIN TL_USER F ON A.MAKER_ID_KT = F.TLNANME
1038
				LEFT JOIN TL_USER G ON A.CHECKER_ID_KT = G.TLNANME
1039
				LEFT JOIN CM_ALLCODE H ON A.REQ_PAY_AUTO_STATUS = H.CDVAL AND H.CDNAME = 'PAY_AUTO_STATUS' AND H.CDTYPE = 'REQ_AUTO'
1040
				LEFT JOIN CM_ALLCODE I ON A.REQ_PAY_AUTO_TYPE = I.CDVAL AND I.CDNAME = 'PAY_TYPE_AUTO' AND I.CDTYPE = 'REQ_AUTO'
1041
				LEFT JOIN CM_ALLCODE J ON A.AUTH_STATUS = J.CDVAL AND J.CDNAME = 'AUTH_STATUS' AND J.CDTYPE = 'TR_REQ_PAYMENT'
1042
				LEFT JOIN CM_ALLCODE K ON A.AUTH_STATUS_KT = K.CDVAL AND K.CDNAME = 'AUTH_STATUS_KT' AND K.CDTYPE = 'TR_REQ_PAYMENT'
1043
				LEFT JOIN TL_USER L ON A.TRANSFER_USER_RECEIVE = L.TLNANME
1044
				LEFT JOIN CM_BRANCH M ON A.BRANCH_MANAGE_ID = M.BRANCH_ID
1045
				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'
1046
				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'
1047
				WHERE 1=1 
1048
				-- BEGIN FILTER
1049
				AND	(	A.REQ_PAY_AUTO_ID = @p_REQ_PAY_AUTO_ID OR ISNULL(@p_REQ_PAY_AUTO_ID, '') = '')
1050
				AND	(	A.REQ_PAY_AUTO_CODE LIKE '%' + @p_REQ_PAY_AUTO_CODE +'%' OR ISNULL(@p_REQ_PAY_AUTO_CODE, '') = '')
1051
				--AND	(	A.AUTH_STATUS = @p_AUTH_STATUS OR ISNULL(@p_AUTH_STATUS, '') = '')
1052
				AND (	(@p_AUTH_STATUS = A.AUTH_STATUS)	-- dùng cho: lưu nháp, phiếu bị hủy
1053
					OR	(@p_AUTH_STATUS = 'W' AND A.PROCESS IN ('0', '6', '9', '15')) -- chờ cấp trung gian xác nhận
1054
					OR	(@p_AUTH_STATUS = 'G' AND A.PROCESS IN ('1', '7', '10', '16')) -- cấp trung gian xác nhận
1055
					OR	(@p_AUTH_STATUS = 'U' AND @IS_TDV = 'N' AND A.PROCESS IN ('0', '6', '9', '15')) -- chờ duyệt CTG
1056
					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
1057
					OR	(@p_AUTH_STATUS = 'A' AND A.PROCESS IN ('1', '2', '7', '8', '10', '11', '16', '17')) -- đã duyệt
1058
					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
1059
					OR (ISNULL(@p_AUTH_STATUS, '') = '')
1060
					)
1061
				AND	(	A.REQ_PAY_AUTO_TYPE = @p_REQ_PAY_AUTO_TYPE OR ISNULL(@p_REQ_PAY_AUTO_TYPE, '') = '')
1062
				AND	(	A.AUTH_STATUS_KT = @p_AUTH_STATUS_KT OR ISNULL(@p_AUTH_STATUS_KT, '') = '')
1063
				AND	(	M.BRANCH_ID = @p_BRANCH_MANAGE_ID OR ISNULL(@p_BRANCH_MANAGE_ID, '') = '')
1064
				AND	(	A.CONTRACT_ID = @p_CONTRACT_ID OR ISNULL(@p_CONTRACT_ID, '') = '')
1065
				AND	(	A.REQ_PAY_AUTO_STATUS = @p_REQ_PAY_AUTO_STATUS OR ISNULL(@p_REQ_PAY_AUTO_STATUS, '') = '')
1066
				AND(	CONVERT(DATE, A.CREATE_DT) >= CONVERT(DATE, @p_FRMDATE, 103) OR ISNULL(@p_FRMDATE, '')= '' OR A.CREATE_DT IS NULL)
1067
				AND(	CONVERT(DATE, A.CREATE_DT) <= CONVERT(DATE, @p_TODATE, 103) OR ISNULL(@p_TODATE, '')= '' OR A.CREATE_DT IS NULL)
1068
				AND	(	A.MAKER_ID = @p_MAKER_ID OR ISNULL(@p_MAKER_ID, '') = '')
1069
				AND	(	A.MAKER_ID_KT = @p_MAKER_ID_KT OR ISNULL(@p_MAKER_ID_KT, '') = '')
1070
				-- END FILTER
1071
				-- BEGIN VALIDATE FLOW
1072
				AND	(
1073
						(
1074
								(	A.MAKER_ID = @p_USER_LOGIN)
1075
						)-- NGUOI TAO
1076
					OR	(
1077
							(	A.TRANSFER_USER_RECEIVE = @p_USER_LOGIN AND A.AUTH_STATUS IN ('U', 'R', 'A', 'N') AND PROCESS IN ('0', '6', '9', '15') )
1078
						)-- NGUOI DUYET TRUNG GIAN
1079
					OR	(
1080
							(	A.AUTH_STATUS IN ('R', 'A', 'N') AND @IS_TDV = 'Y')
1081
						OR	(	A.AUTH_STATUS = 'U' AND ISNULL(A.TRANSFER_USER_RECEIVE, '') = '' AND @IS_TDV = 'Y')
1082
						OR	(	A.AUTH_STATUS = 'U' AND ISNULL(A.TRANSFER_USER_RECEIVE, '') <> '' AND ISNULL(A.PROCESS, '') = '1' AND @IS_TDV = 'Y')
1083
						)-- TRUONG DON VI
1084
					OR	(
1085
							A.AUTH_STATUS = 'A'
1086
							
1087
						)-- VA NHUNG PHIEU DA DUYET
1088
					)
1089
				AND	(	(	@p_LEVEL='ALL' 
1090
							AND	(	A.BRANCH_ID IN	(	SELECT BRANCH_ID 
1091
														FROM @tmp_branch
1092
													) -- PYC cua don vi minh va cac don vi con
1093
									OR A.BRANCH_ID IN (SELECT * FROM @tmp_branch_auth) -- PYC cua don vi kiem nhiem
1094
								)
1095
						)
1096
						OR	(	@p_LEVEL='UNIT' 
1097
								AND	(	A.BRANCH_ID = @p_BRANCH_ID	-- PYC cua don vi minh
1098
										OR A.BRANCH_ID IN (SELECT * FROM @tmp_branch_auth) -- PYC cua don vi kiem nhiem
1099
									)
1100
							)
1101
					)
1102
				AND	(	A.DEP_ID = @p_DEP_ID 
1103
						OR ISNULL(@p_DEP_ID, '') = ''
1104
					)
1105
							
1106
				AND	(
1107
						A.DEP_ID IN	(
1108
										SELECT * 
1109
										FROM @tmp_dep_auth
1110
									)
1111
						OR A.BRANCH_ID <> 'DV0001'
1112
					)
1113
				-- END VALIDATE FLOW
1114
			ORDER BY A.CREATE_DT DESC
1115
	-- PAGING END
1116
			END
1117
		END;
1118
		ELSE -- TOP IS NOT NULL
1119
		BEGIN
1120
			IF(@DEP_ID_LG = 'DEP000000000022')
1121
			BEGIN
1122
	-- PAGING BEGIN
1123
				SELECT A.*,
1124
				--B.BRANCH_CODE, B.BRANCH_NAME,
1125
				CASE	WHEN	(	SELECT TOP 1 BRANCH_ID 
1126
									FROM TR_CONTRACT 
1127
									WHERE CONTRACT_ID = A.CONTRACT_ID
1128
								) <> 'DV0001'
1129
								THEN  B.BRANCH_NAME + ISNULL	(	' - ' + (	SELECT TOP 1 BRANCH_NAME 
1130
																						FROM CM_BRANCH 
1131
																						WHERE BRANCH_ID =	(	SELECT TOP 1 BRANCH_ID 
1132
																												FROM TR_CONTRACT 
1133
																												WHERE CONTRACT_ID = A.CONTRACT_ID
1134
																											)
1135
																			),''
1136
																)
1137
						ELSE B.BRANCH_NAME 
1138
				END BRANCH_NAME,
1139
				C.DEP_CODE, C.DEP_NAME, 
1140
				D.CONTRACT_CODE, D.[CONTRACT_NAME], 
1141
				E.TLFullName AS MAKER_NAME, 
1142
				F.TLFullName AS MAKER_NAME_KT, 
1143
				G.TLFullName AS CHECKER_NAME_KT,
1144
				H.CONTENT AS REQ_PAY_AUTO_STATUS_NAME,
1145
				--I.CONTENT AS REQ_PAY_AUTO_TYPE_NAME,
1146
				CASE 
1147
					WHEN A.REQ_PAY_AUTO_TYPE = 'A' THEN N.CONTENT
1148
					ELSE O.CONTENT
1149
				END REQ_PAY_AUTO_TYPE_NAME,
1150
				J.CONTENT AS AUTH_STATUS_NAME,
1151
				K.CONTENT AS AUTH_STATUS_KT_NAME,
1152
				L.TLFullName AS TRANSFER_USER_RECEIVE_NAME,
1153
				M.BRANCH_CODE AS BRANCH_MANAGE_CODE, M.BRANCH_NAME AS BRANCH_MANAGE_NAME
1154
		-- SELECT END
1155
				FROM TR_REQ_PAYMENT_AUTO A
1156
				LEFT JOIN CM_BRANCH B ON A.BRANCH_ID = B.BRANCH_ID
1157
				LEFT JOIN CM_DEPARTMENT C ON A.DEP_ID = C.DEP_ID
1158
				LEFT JOIN TR_CONTRACT D ON A.CONTRACT_ID = D.CONTRACT_ID
1159
				LEFT JOIN TL_USER E ON A.MAKER_ID = E.TLNANME
1160
				LEFT JOIN TL_USER F ON A.MAKER_ID_KT = F.TLNANME
1161
				LEFT JOIN TL_USER G ON A.CHECKER_ID_KT = G.TLNANME
1162
				LEFT JOIN CM_ALLCODE H ON A.REQ_PAY_AUTO_STATUS = H.CDVAL AND H.CDNAME = 'PAY_AUTO_STATUS' AND H.CDTYPE = 'REQ_AUTO'
1163
				LEFT JOIN CM_ALLCODE I ON A.REQ_PAY_AUTO_TYPE = I.CDVAL AND I.CDNAME = 'PAY_TYPE_AUTO' AND I.CDTYPE = 'REQ_AUTO'
1164
				LEFT JOIN CM_ALLCODE J ON A.AUTH_STATUS = J.CDVAL AND J.CDNAME = 'AUTH_STATUS' AND J.CDTYPE = 'TR_REQ_PAYMENT'
1165
				LEFT JOIN CM_ALLCODE K ON A.AUTH_STATUS_KT = K.CDVAL AND K.CDNAME = 'AUTH_STATUS_KT' AND K.CDTYPE = 'TR_REQ_PAYMENT'
1166
				LEFT JOIN TL_USER L ON A.TRANSFER_USER_RECEIVE = L.TLNANME
1167
				LEFT JOIN CM_BRANCH M ON A.BRANCH_MANAGE_ID = M.BRANCH_ID
1168
				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'
1169
				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'
1170
				WHERE 1=1 
1171
				-- BEGIN FILTER
1172
				AND	(	A.REQ_PAY_AUTO_ID = @p_REQ_PAY_AUTO_ID OR ISNULL(@p_REQ_PAY_AUTO_ID, '') = '')
1173
				AND	(	A.REQ_PAY_AUTO_CODE LIKE '%' + @p_REQ_PAY_AUTO_CODE +'%' OR ISNULL(@p_REQ_PAY_AUTO_CODE, '') = '')
1174
				--AND	(	A.AUTH_STATUS = @p_AUTH_STATUS OR ISNULL(@p_AUTH_STATUS, '') = '')
1175
				AND (	(@p_AUTH_STATUS = A.AUTH_STATUS)	-- dùng cho: lưu nháp, phiếu bị hủy
1176
					OR	(@p_AUTH_STATUS = 'W' AND A.PROCESS IN ('0', '6', '9', '15')) -- chờ cấp trung gian xác nhận
1177
					OR	(@p_AUTH_STATUS = 'G' AND A.PROCESS IN ('1', '7', '10', '16')) -- cấp trung gian xác nhận
1178
					OR	(@p_AUTH_STATUS = 'U' AND A.PROCESS IN ('0', '6', '9', '15')) -- chờ duyệt CTG
1179
					OR	(@p_AUTH_STATUS = 'U' AND A.PROCESS IN ('0', '1', '6', '7', '9', '10', '15', '16')) -- chờ duyệt TDV
1180
					OR	(@p_AUTH_STATUS = 'A' AND A.PROCESS IN ('1', '2', '7', '8', '10', '11', '16', '17')) -- đã duyệt
1181
					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
1182
					OR (ISNULL(@p_AUTH_STATUS, '') = '')
1183
					)
1184
				AND	(	A.REQ_PAY_AUTO_TYPE = @p_REQ_PAY_AUTO_TYPE OR ISNULL(@p_REQ_PAY_AUTO_TYPE, '') = '')
1185
				AND	(	A.AUTH_STATUS_KT = @p_AUTH_STATUS_KT OR ISNULL(@p_AUTH_STATUS_KT, '') = '')
1186
				AND	(	M.BRANCH_ID = @p_BRANCH_MANAGE_ID OR ISNULL(@p_BRANCH_MANAGE_ID, '') = '')
1187
				AND	(	A.CONTRACT_ID = @p_CONTRACT_ID OR ISNULL(@p_CONTRACT_ID, '') = '')
1188
				AND	(	A.REQ_PAY_AUTO_STATUS = @p_REQ_PAY_AUTO_STATUS OR ISNULL(@p_REQ_PAY_AUTO_STATUS, '') = '')
1189
				AND	(	CONVERT(DATE, A.CREATE_DT) >= CONVERT(DATE, @p_FRMDATE, 103) OR ISNULL(@p_FRMDATE, '')= '' OR A.CREATE_DT IS NULL)
1190
				AND	(	CONVERT(DATE, A.CREATE_DT) <= CONVERT(DATE, @p_TODATE, 103) OR ISNULL(@p_TODATE, '')= '' OR A.CREATE_DT IS NULL)
1191
				AND	(	A.BRANCH_ID = @p_BRANCH_ID 
1192
						OR ISNULL(@p_BRANCH_ID, '') = ''
1193
						OR A.BRANCH_ID IN	(	SELECT BRANCH_ID 
1194
												FROM @tmp_branch
1195
											)
1196
					)
1197
				AND	(	A.DEP_ID = @p_DEP_ID 
1198
						OR ISNULL(@p_DEP_ID, '') = ''
1199
					)
1200
				AND	(	A.MAKER_ID = @p_MAKER_ID OR ISNULL(@p_MAKER_ID, '') = '')
1201
				AND	(	A.MAKER_ID_KT = @p_MAKER_ID_KT OR ISNULL(@p_MAKER_ID_KT, '') = '')
1202
				-- END FILTER
1203
			ORDER BY A.CREATE_DT DESC
1204
	-- PAGING END
1205
			END--END @DEP_ID_LG = 'DEP000000000022'
1206
			ELSE
1207
			BEGIN
1208
	-- PAGING BEGIN
1209
				SELECT A.*,
1210
				--B.BRANCH_CODE, B.BRANCH_NAME,
1211
				CASE	WHEN	(	SELECT TOP 1 BRANCH_ID 
1212
									FROM TR_CONTRACT 
1213
									WHERE CONTRACT_ID = A.CONTRACT_ID
1214
								) <> 'DV0001'
1215
								THEN  B.BRANCH_NAME + ISNULL	(	' - ' + (	SELECT TOP 1 BRANCH_NAME 
1216
																						FROM CM_BRANCH 
1217
																						WHERE BRANCH_ID =	(	SELECT TOP 1 BRANCH_ID 
1218
																												FROM TR_CONTRACT 
1219
																												WHERE CONTRACT_ID = A.CONTRACT_ID
1220
																											)
1221
																			),''
1222
																)
1223
						ELSE B.BRANCH_NAME 
1224
				END BRANCH_NAME,
1225
				C.DEP_CODE, C.DEP_NAME, 
1226
				D.CONTRACT_CODE, D.[CONTRACT_NAME], 
1227
				E.TLFullName AS MAKER_NAME, 
1228
				F.TLFullName AS MAKER_NAME_KT, 
1229
				G.TLFullName AS CHECKER_NAME_KT,
1230
				H.CONTENT AS REQ_PAY_AUTO_STATUS_NAME,
1231
				--I.CONTENT AS REQ_PAY_AUTO_TYPE_NAME,
1232
				CASE 
1233
					WHEN A.REQ_PAY_AUTO_TYPE = 'A' THEN N.CONTENT
1234
					ELSE O.CONTENT
1235
				END REQ_PAY_AUTO_TYPE_NAME,
1236
				J.CONTENT AS AUTH_STATUS_NAME,
1237
				K.CONTENT AS AUTH_STATUS_KT_NAME,
1238
				L.TLFullName AS TRANSFER_USER_RECEIVE_NAME,
1239
				M.BRANCH_CODE AS BRANCH_MANAGE_CODE, M.BRANCH_NAME AS BRANCH_MANAGE_NAME
1240
		-- SELECT END
1241
				FROM TR_REQ_PAYMENT_AUTO A
1242
				LEFT JOIN CM_BRANCH B ON A.BRANCH_ID = B.BRANCH_ID
1243
				LEFT JOIN CM_DEPARTMENT C ON A.DEP_ID = C.DEP_ID
1244
				LEFT JOIN TR_CONTRACT D ON A.CONTRACT_ID = D.CONTRACT_ID
1245
				LEFT JOIN TL_USER E ON A.MAKER_ID = E.TLNANME
1246
				LEFT JOIN TL_USER F ON A.MAKER_ID_KT = F.TLNANME
1247
				LEFT JOIN TL_USER G ON A.CHECKER_ID_KT = G.TLNANME
1248
				LEFT JOIN CM_ALLCODE H ON A.REQ_PAY_AUTO_STATUS = H.CDVAL AND H.CDNAME = 'PAY_AUTO_STATUS' AND H.CDTYPE = 'REQ_AUTO'
1249
				LEFT JOIN CM_ALLCODE I ON A.REQ_PAY_AUTO_TYPE = I.CDVAL AND I.CDNAME = 'PAY_TYPE_AUTO' AND I.CDTYPE = 'REQ_AUTO'
1250
				LEFT JOIN CM_ALLCODE J ON A.AUTH_STATUS = J.CDVAL AND J.CDNAME = 'AUTH_STATUS' AND J.CDTYPE = 'TR_REQ_PAYMENT'
1251
				LEFT JOIN CM_ALLCODE K ON A.AUTH_STATUS_KT = K.CDVAL AND K.CDNAME = 'AUTH_STATUS_KT' AND K.CDTYPE = 'TR_REQ_PAYMENT'
1252
				LEFT JOIN TL_USER L ON A.TRANSFER_USER_RECEIVE = L.TLNANME
1253
				LEFT JOIN CM_BRANCH M ON A.BRANCH_MANAGE_ID = M.BRANCH_ID
1254
				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'
1255
				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'
1256
				WHERE 1=1 
1257
				-- BEGIN FILTER
1258
				AND	(	A.REQ_PAY_AUTO_ID = @p_REQ_PAY_AUTO_ID OR ISNULL(@p_REQ_PAY_AUTO_ID, '') = '')
1259
				AND	(	A.REQ_PAY_AUTO_CODE LIKE '%' + @p_REQ_PAY_AUTO_CODE +'%' OR ISNULL(@p_REQ_PAY_AUTO_CODE, '') = '')
1260
				--AND	(	A.AUTH_STATUS = @p_AUTH_STATUS OR ISNULL(@p_AUTH_STATUS, '') = '')
1261
				AND (	(@p_AUTH_STATUS = A.AUTH_STATUS)	-- dùng cho: lưu nháp, phiếu bị hủy
1262
					OR	(@p_AUTH_STATUS = 'W' AND A.PROCESS IN ('0', '6', '9', '15')) -- chờ cấp trung gian xác nhận
1263
					OR	(@p_AUTH_STATUS = 'G' AND A.PROCESS IN ('1', '7', '10', '16')) -- cấp trung gian xác nhận
1264
					OR	(@p_AUTH_STATUS = 'U' AND @IS_TDV = 'N' AND A.PROCESS IN ('0', '6', '9', '15')) -- chờ duyệt CTG
1265
					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
1266
					OR	(@p_AUTH_STATUS = 'A' AND A.PROCESS IN ('1', '2', '7', '8', '10', '11', '16', '17')) -- đã duyệt
1267
					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
1268
					OR (ISNULL(@p_AUTH_STATUS, '') = '')
1269
					)
1270
				AND	(	A.REQ_PAY_AUTO_TYPE = @p_REQ_PAY_AUTO_TYPE OR ISNULL(@p_REQ_PAY_AUTO_TYPE, '') = '')
1271
				AND	(	A.AUTH_STATUS_KT = @p_AUTH_STATUS_KT OR ISNULL(@p_AUTH_STATUS_KT, '') = '')
1272
				AND	(	M.BRANCH_ID = @p_BRANCH_MANAGE_ID OR ISNULL(@p_BRANCH_MANAGE_ID, '') = '')
1273
				AND	(	A.CONTRACT_ID = @p_CONTRACT_ID OR ISNULL(@p_CONTRACT_ID, '') = '')
1274
				AND	(	A.REQ_PAY_AUTO_STATUS = @p_REQ_PAY_AUTO_STATUS OR ISNULL(@p_REQ_PAY_AUTO_STATUS, '') = '')
1275
				AND(	CONVERT(DATE, A.CREATE_DT) >= CONVERT(DATE, @p_FRMDATE, 103) OR ISNULL(@p_FRMDATE, '')= '' OR A.CREATE_DT IS NULL)
1276
				AND(	CONVERT(DATE, A.CREATE_DT) <= CONVERT(DATE, @p_TODATE, 103) OR ISNULL(@p_TODATE, '')= '' OR A.CREATE_DT IS NULL)
1277
				AND	(	A.MAKER_ID = @p_MAKER_ID OR ISNULL(@p_MAKER_ID, '') = '')
1278
				AND	(	A.MAKER_ID_KT = @p_MAKER_ID_KT OR ISNULL(@p_MAKER_ID_KT, '') = '')
1279
				-- END FILTER
1280
				-- BEGIN VALIDATE FLOW
1281
				AND	(
1282
						(
1283
								(	A.MAKER_ID = @p_USER_LOGIN)
1284
						)-- NGUOI TAO
1285
					OR	(
1286
							(	A.TRANSFER_USER_RECEIVE = @p_USER_LOGIN AND A.AUTH_STATUS IN ('U', 'R', 'A', 'N') AND PROCESS IN ('0', '6', '9', '15') )
1287
						)-- NGUOI DUYET TRUNG GIAN
1288
					OR	(
1289
							(	A.AUTH_STATUS IN ('R', 'A', 'N') AND @IS_TDV = 'Y')
1290
						OR	(	A.AUTH_STATUS = 'U' AND ISNULL(A.TRANSFER_USER_RECEIVE, '') = '' AND @IS_TDV = 'Y')
1291
						OR	(	A.AUTH_STATUS = 'U' AND ISNULL(A.TRANSFER_USER_RECEIVE, '') <> '' AND ISNULL(A.PROCESS, '') = '1' AND @IS_TDV = 'Y')
1292
						)-- TRUONG DON VI
1293
					OR	(
1294
							A.AUTH_STATUS = 'A'
1295
							
1296
						)-- VA NHUNG PHIEU DA DUYET
1297
					)
1298
				AND	(	(	@p_LEVEL='ALL' 
1299
							AND	(	A.BRANCH_ID IN	(	SELECT BRANCH_ID 
1300
														FROM @tmp_branch
1301
													) -- PYC cua don vi minh va cac don vi con
1302
									OR A.BRANCH_ID IN (SELECT * FROM @tmp_branch_auth) -- PYC cua don vi kiem nhiem
1303
								)
1304
						)
1305
						OR	(	@p_LEVEL='UNIT' 
1306
								AND	(	A.BRANCH_ID = @p_BRANCH_ID	-- PYC cua don vi minh
1307
										OR A.BRANCH_ID IN (SELECT * FROM @tmp_branch_auth) -- PYC cua don vi kiem nhiem
1308
									)
1309
							)
1310
					)
1311
				AND	(	A.DEP_ID = @p_DEP_ID 
1312
						OR ISNULL(@p_DEP_ID, '') = ''
1313
					)
1314
							
1315
				AND	(
1316
						A.DEP_ID IN	(
1317
										SELECT * 
1318
										FROM @tmp_dep_auth
1319
									)
1320
						OR A.BRANCH_ID <> 'DV0001'
1321
					)
1322
				-- END VALIDATE FLOW
1323
			ORDER BY A.CREATE_DT DESC
1324
	-- PAGING END
1325
			END
1326
		END;
1327
	END
1328
	ELSE IF(@p_TYPE_SEARCH = 'KT')
1329
	BEGIN
1330
		IF(@p_TOP IS NULL OR @p_TOP = 0)
1331
		BEGIN
1332
	-- PAGING BEGIN
1333
				SELECT A.*,
1334
				--B.BRANCH_CODE, B.BRANCH_NAME,
1335
				CASE	WHEN	(	SELECT TOP 1 BRANCH_ID 
1336
									FROM TR_CONTRACT 
1337
									WHERE CONTRACT_ID = A.CONTRACT_ID
1338
								) <> 'DV0001'
1339
								THEN  B.BRANCH_NAME + ISNULL	(	' - ' + (	SELECT TOP 1 BRANCH_NAME 
1340
																						FROM CM_BRANCH 
1341
																						WHERE BRANCH_ID =	(	SELECT TOP 1 BRANCH_ID 
1342
																												FROM TR_CONTRACT 
1343
																												WHERE CONTRACT_ID = A.CONTRACT_ID
1344
																											)
1345
																			),''
1346
																)
1347
						ELSE B.BRANCH_NAME 
1348
				END BRANCH_NAME,
1349
				C.DEP_CODE, C.DEP_NAME, 
1350
				D.CONTRACT_CODE, D.[CONTRACT_NAME], 
1351
				E.TLFullName AS MAKER_NAME, 
1352
				F.TLFullName AS MAKER_NAME_KT, 
1353
				G.TLFullName AS CHECKER_NAME_KT,
1354
				H.CONTENT AS REQ_PAY_AUTO_STATUS_NAME,
1355
				--I.CONTENT AS REQ_PAY_AUTO_TYPE_NAME,
1356
				CASE 
1357
					WHEN A.REQ_PAY_AUTO_TYPE = 'A' THEN N.CONTENT
1358
					ELSE O.CONTENT
1359
				END REQ_PAY_AUTO_TYPE_NAME,
1360
				J.CONTENT AS AUTH_STATUS_NAME,
1361
				K.CONTENT AS AUTH_STATUS_KT_NAME,
1362
				L.TLFullName AS TRANSFER_USER_RECEIVE_NAME,
1363
				M.BRANCH_CODE AS BRANCH_MANAGE_CODE, M.BRANCH_NAME AS BRANCH_MANAGE_NAME
1364
		-- SELECT END
1365
				FROM TR_REQ_PAYMENT_AUTO A
1366
				LEFT JOIN CM_BRANCH B ON A.BRANCH_ID = B.BRANCH_ID
1367
				LEFT JOIN CM_DEPARTMENT C ON A.DEP_ID = C.DEP_ID
1368
				LEFT JOIN TR_CONTRACT D ON A.CONTRACT_ID = D.CONTRACT_ID
1369
				LEFT JOIN TL_USER E ON A.MAKER_ID = E.TLNANME
1370
				LEFT JOIN TL_USER F ON A.MAKER_ID_KT = F.TLNANME
1371
				LEFT JOIN TL_USER G ON A.CHECKER_ID_KT = G.TLNANME
1372
				LEFT JOIN CM_ALLCODE H ON A.REQ_PAY_AUTO_STATUS = H.CDVAL AND H.CDNAME = 'PAY_AUTO_STATUS' AND H.CDTYPE = 'REQ_AUTO'
1373
				LEFT JOIN CM_ALLCODE I ON A.REQ_PAY_AUTO_TYPE = I.CDVAL AND I.CDNAME = 'PAY_TYPE_AUTO' AND I.CDTYPE = 'REQ_AUTO'
1374
				LEFT JOIN CM_ALLCODE J ON A.AUTH_STATUS = J.CDVAL AND J.CDNAME = 'AUTH_STATUS' AND J.CDTYPE = 'TR_REQ_PAYMENT'
1375
				LEFT JOIN CM_ALLCODE K ON A.AUTH_STATUS_KT = K.CDVAL AND K.CDNAME = 'AUTH_STATUS_KT' AND K.CDTYPE = 'TR_REQ_PAYMENT'
1376
				LEFT JOIN TL_USER L ON A.TRANSFER_USER_RECEIVE = L.TLNANME
1377
				LEFT JOIN CM_BRANCH M ON A.BRANCH_MANAGE_ID = M.BRANCH_ID
1378
				LEFT JOIN PL_REQUEST_PROCESS_CHILD PC3 ON PC3.REQ_ID = A.REQ_PAY_AUTO_ID AND PC3.STATUS_JOB ='C' 
1379
				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'
1380
				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'
1381
				WHERE 1=1 
1382
				-- BEGIN FILTER
1383
				AND A.AUTH_STATUS IN ('A', 'N', 'D')
1384
				AND	(	A.REQ_PAY_AUTO_ID = @p_REQ_PAY_AUTO_ID OR ISNULL(@p_REQ_PAY_AUTO_ID, '') = '')
1385
				AND	(	A.REQ_PAY_AUTO_CODE LIKE '%' + @p_REQ_PAY_AUTO_CODE +'%' OR ISNULL(@p_REQ_PAY_AUTO_CODE, '') = '')
1386
				--AND	(	A.AUTH_STATUS = @p_AUTH_STATUS OR ISNULL(@p_AUTH_STATUS, '') = '')
1387
				AND (	(@p_AUTH_STATUS_KT = A.AUTH_STATUS_KT) -- dùng cho từ chối
1388
					OR	(@p_AUTH_STATUS_KT = 'U' AND A.PROCESS IN ('3', '12', '18')) -- chờ duyệt
1389
					OR	(@p_AUTH_STATUS_KT = 'P' AND A.PROCESS IN ('4', '13', '13.1', '19', '19.1')) -- đang xử lý
1390
					OR	(@p_AUTH_STATUS_KT = 'S' AND A.PROCESS IN ('4', '13.1', '19.1')) -- đề xuất từ chối
1391
					OR	(@p_AUTH_STATUS_KT = 'A' AND A.PROCESS IN ('5', '14', '20')) -- đã duyệt
1392
					OR	(@p_AUTH_STATUS_KT = 'R' AND A.PROCESS IN ('20.2', '14.2')) -- từ chối
1393
					OR (ISNULL(@p_AUTH_STATUS_KT, '') = '' AND A.PROCESS  IN ('2', '11', '17')) -- khi KSV chưa điều phối
1394
					OR (ISNULL(@p_AUTH_STATUS_KT, '') = '')
1395
					)
1396
				AND	(	A.REQ_PAY_AUTO_TYPE = @p_REQ_PAY_AUTO_TYPE OR ISNULL(@p_REQ_PAY_AUTO_TYPE, '') = '')
1397
				--AND	(	A.AUTH_STATUS_KT = @p_AUTH_STATUS_KT OR ISNULL(@p_AUTH_STATUS_KT, '') = '')
1398
				AND	(	M.BRANCH_ID = @p_BRANCH_MANAGE_ID OR ISNULL(@p_BRANCH_MANAGE_ID, '') = '')
1399
				AND	(	A.CONTRACT_ID = @p_CONTRACT_ID OR ISNULL(@p_CONTRACT_ID, '') = '')
1400
				AND	(	A.REQ_PAY_AUTO_STATUS = @p_REQ_PAY_AUTO_STATUS OR ISNULL(@p_REQ_PAY_AUTO_STATUS, '') = '')
1401
				AND(	CONVERT(DATE, A.CREATE_DT) >= CONVERT(DATE, @p_FRMDATE, 103) OR ISNULL(@p_FRMDATE, '')= '' OR A.CREATE_DT IS NULL)
1402
				AND(	CONVERT(DATE, A.CREATE_DT) <= CONVERT(DATE, @p_TODATE, 103) OR ISNULL(@p_TODATE, '')= '' OR A.CREATE_DT IS NULL)
1403
				AND	(	(	@p_LEVEL='ALL' 
1404
							AND	(	A.BRANCH_ID IN	(	SELECT BRANCH_ID 
1405
														FROM @tmp_branch
1406
													) -- PYC cua don vi minh
1407
									OR A.BRANCH_ID IN (SELECT * FROM @tmp_branch_auth) -- PYC cua don vi kiem nhiem
1408
								)
1409
						)
1410
						OR	(	
1411
									@p_LEVEL='UNIT' 
1412
								AND A.BRANCH_ID = @p_BRANCH_ID
1413
							)
1414
					)
1415
				AND	(	A.DEP_ID = @p_DEP_ID 
1416
						OR ISNULL(@p_DEP_ID, '') = ''
1417
					)
1418
				AND	(	A.MAKER_ID = @p_MAKER_ID OR ISNULL(@p_MAKER_ID, '') = '')
1419
				AND	(	A.MAKER_ID_KT = @p_MAKER_ID_KT OR ISNULL(@p_MAKER_ID_KT, '') = '')
1420
				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)
1421
				AND	(
1422
						(
1423
							EXISTS	(	SELECT TOP 1 * FROM PL_REQUEST_PROCESS_CHILD X WHERE	REQ_ID = A.REQ_PAY_AUTO_ID 
1424
																								AND (
1425
																										X.TLNAME= @p_USER_LOGIN 
1426
																										OR X.TLNAME =@p_EXEC_USER_KT
1427
																									)
1428
									)
1429
						) 
1430
						OR	(A.MAKER_ID_KT = @p_MAKER_ID_KT OR PC3.TLNAME = @p_MAKER_ID_KT)
1431
						OR (SELECT COUNT(*) FROM @TABLE_ROLE WHERE ROLE_AUTH = 'KSV') > 0
1432
						OR ISNULL(@p_EXEC_USER_KT, '') = ''
1433
					)	
1434
				AND	(	(	A.MAKER_ID_KT IS NOT NULL 
1435
							AND @p_IS_UPDATE_KT='Y'
1436
						)
1437
						OR	(	(	A.MAKER_ID_KT IS NULL 
1438
									AND @p_IS_UPDATE_KT='N'
1439
								)
1440
							)
1441
						OR @p_IS_UPDATE_KT IS NULL 
1442
						OR @p_IS_UPDATE_KT=''
1443
					)
1444
				-- END FILTER
1445
			ORDER BY A.CREATE_DT DESC
1446
	-- PAGING END
1447
		END;
1448
		ELSE 
1449
		BEGIN
1450
	-- PAGING BEGIN
1451
				SELECT A.*,
1452
				--B.BRANCH_CODE, B.BRANCH_NAME,
1453
				CASE	WHEN	(	SELECT TOP 1 BRANCH_ID 
1454
									FROM TR_CONTRACT 
1455
									WHERE CONTRACT_ID = A.CONTRACT_ID
1456
								) <> 'DV0001'
1457
								THEN  B.BRANCH_NAME + ISNULL	(	' - ' + (	SELECT TOP 1 BRANCH_NAME 
1458
																						FROM CM_BRANCH 
1459
																						WHERE BRANCH_ID =	(	SELECT TOP 1 BRANCH_ID 
1460
																												FROM TR_CONTRACT 
1461
																												WHERE CONTRACT_ID = A.CONTRACT_ID
1462
																											)
1463
																			),''
1464
																)
1465
						ELSE B.BRANCH_NAME 
1466
				END BRANCH_NAME,
1467
				C.DEP_CODE, C.DEP_NAME, 
1468
				D.CONTRACT_CODE, D.[CONTRACT_NAME], 
1469
				E.TLFullName AS MAKER_NAME, 
1470
				F.TLFullName AS MAKER_NAME_KT, 
1471
				G.TLFullName AS CHECKER_NAME_KT,
1472
				H.CONTENT AS REQ_PAY_AUTO_STATUS_NAME,
1473
				--I.CONTENT AS REQ_PAY_AUTO_TYPE_NAME,
1474
				CASE 
1475
					WHEN A.REQ_PAY_AUTO_TYPE = 'A' THEN N.CONTENT
1476
					ELSE O.CONTENT
1477
				END REQ_PAY_AUTO_TYPE_NAME,
1478
				J.CONTENT AS AUTH_STATUS_NAME,
1479
				K.CONTENT AS AUTH_STATUS_KT_NAME,
1480
				L.TLFullName AS TRANSFER_USER_RECEIVE_NAME,
1481
				M.BRANCH_CODE AS BRANCH_MANAGE_CODE, M.BRANCH_NAME AS BRANCH_MANAGE_NAME
1482
	-- SELECT END
1483
				FROM TR_REQ_PAYMENT_AUTO A
1484
				LEFT JOIN CM_BRANCH B ON A.BRANCH_ID = B.BRANCH_ID
1485
				LEFT JOIN CM_DEPARTMENT C ON A.DEP_ID = C.DEP_ID
1486
				LEFT JOIN TR_CONTRACT D ON A.CONTRACT_ID = D.CONTRACT_ID
1487
				LEFT JOIN TL_USER E ON A.MAKER_ID = E.TLNANME
1488
				LEFT JOIN TL_USER F ON A.MAKER_ID_KT = F.TLNANME
1489
				LEFT JOIN TL_USER G ON A.CHECKER_ID_KT = G.TLNANME
1490
				LEFT JOIN CM_ALLCODE H ON A.REQ_PAY_AUTO_STATUS = H.CDVAL AND H.CDNAME = 'PAY_AUTO_STATUS' AND H.CDTYPE = 'REQ_AUTO'
1491
				LEFT JOIN CM_ALLCODE I ON A.REQ_PAY_AUTO_TYPE = I.CDVAL AND I.CDNAME = 'PAY_TYPE_AUTO' AND I.CDTYPE = 'REQ_AUTO'
1492
				LEFT JOIN CM_ALLCODE J ON A.AUTH_STATUS = J.CDVAL AND J.CDNAME = 'AUTH_STATUS' AND J.CDTYPE = 'TR_REQ_PAYMENT'
1493
				LEFT JOIN CM_ALLCODE K ON A.AUTH_STATUS_KT = K.CDVAL AND K.CDNAME = 'AUTH_STATUS_KT' AND K.CDTYPE = 'TR_REQ_PAYMENT'
1494
				LEFT JOIN TL_USER L ON A.TRANSFER_USER_RECEIVE = L.TLNANME
1495
				LEFT JOIN CM_BRANCH M ON A.BRANCH_MANAGE_ID = M.BRANCH_ID
1496
				LEFT JOIN PL_REQUEST_PROCESS_CHILD PC3 ON PC3.REQ_ID = A.REQ_PAY_AUTO_ID AND PC3.STATUS_JOB ='C' 
1497
				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'
1498
				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'
1499
				WHERE 1=1 
1500
				-- BEGIN FILTER
1501
				AND A.AUTH_STATUS IN ('A', 'N', 'D')
1502
				AND	(	A.REQ_PAY_AUTO_ID = @p_REQ_PAY_AUTO_ID OR ISNULL(@p_REQ_PAY_AUTO_ID, '') = '')
1503
				AND	(	A.REQ_PAY_AUTO_CODE LIKE '%' + @p_REQ_PAY_AUTO_CODE +'%' OR ISNULL(@p_REQ_PAY_AUTO_CODE, '') = '')
1504
				--AND	(	A.AUTH_STATUS = @p_AUTH_STATUS OR ISNULL(@p_AUTH_STATUS, '') = '')
1505
				AND (	(@p_AUTH_STATUS_KT = A.AUTH_STATUS_KT) -- dùng cho từ chối
1506
					OR	(@p_AUTH_STATUS_KT = 'U' AND A.PROCESS IN ('3', '12', '18')) -- chờ duyệt
1507
					OR	(@p_AUTH_STATUS_KT = 'P' AND A.PROCESS IN ('4', '13', '13.1', '19', '19.1')) -- đang xử lý
1508
					OR	(@p_AUTH_STATUS_KT = 'S' AND A.PROCESS IN ('4', '13.1', '19.1')) -- đề xuất từ chối
1509
					OR	(@p_AUTH_STATUS_KT = 'A' AND A.PROCESS IN ('5', '14', '20')) -- đã duyệt
1510
					OR	(@p_AUTH_STATUS_KT = 'R' AND A.PROCESS IN ('20.2', '14.2')) -- từ chối
1511
					OR (ISNULL(@p_AUTH_STATUS_KT, '') = '' AND A.PROCESS  IN ('2', '11', '17')) -- khi KSV chưa điều phối
1512
					OR (ISNULL(@p_AUTH_STATUS_KT, '') = '')
1513
					)
1514
				AND	(	A.REQ_PAY_AUTO_TYPE = @p_REQ_PAY_AUTO_TYPE OR ISNULL(@p_REQ_PAY_AUTO_TYPE, '') = '')
1515
				--AND	(	A.AUTH_STATUS_KT = @p_AUTH_STATUS_KT OR ISNULL(@p_AUTH_STATUS_KT, '') = '')
1516
				AND	(	M.BRANCH_ID = @p_BRANCH_MANAGE_ID OR ISNULL(@p_BRANCH_MANAGE_ID, '') = '')
1517
				AND	(	A.CONTRACT_ID = @p_CONTRACT_ID OR ISNULL(@p_CONTRACT_ID, '') = '')
1518
				AND	(	A.REQ_PAY_AUTO_STATUS = @p_REQ_PAY_AUTO_STATUS OR ISNULL(@p_REQ_PAY_AUTO_STATUS, '') = '')
1519
				AND(	CONVERT(DATE, A.CREATE_DT) >= CONVERT(DATE, @p_FRMDATE, 103) OR ISNULL(@p_FRMDATE, '')= '' OR A.CREATE_DT IS NULL)
1520
				AND(	CONVERT(DATE, A.CREATE_DT) <= CONVERT(DATE, @p_TODATE, 103) OR ISNULL(@p_TODATE, '')= '' OR A.CREATE_DT IS NULL)
1521
				AND	(	(	@p_LEVEL='ALL' 
1522
							AND	(	A.BRANCH_ID IN	(	SELECT BRANCH_ID 
1523
														FROM @tmp_branch
1524
													) -- PYC cua don vi minh
1525
									OR A.BRANCH_ID IN (SELECT * FROM @tmp_branch_auth) -- PYC cua don vi kiem nhiem
1526
								)
1527
						)
1528
						OR	(	
1529
									@p_LEVEL='UNIT' 
1530
								AND A.BRANCH_ID = @p_BRANCH_ID
1531
							)
1532
					)
1533
				AND	(	A.DEP_ID = @p_DEP_ID 
1534
						OR ISNULL(@p_DEP_ID, '') = ''
1535
					)
1536
				AND	(	A.MAKER_ID = @p_MAKER_ID OR ISNULL(@p_MAKER_ID, '') = '')
1537
				AND	(	A.MAKER_ID_KT = @p_MAKER_ID_KT OR ISNULL(@p_MAKER_ID_KT, '') = '')
1538
				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)
1539
				AND	(
1540
						(
1541
							EXISTS	(	SELECT TOP 1 * FROM PL_REQUEST_PROCESS_CHILD X WHERE	REQ_ID = A.REQ_PAY_AUTO_ID 
1542
																								AND (
1543
																										X.TLNAME= @p_USER_LOGIN 
1544
																										OR X.TLNAME =@p_EXEC_USER_KT
1545
																									)
1546
									)
1547
						) 
1548
						OR	(A.MAKER_ID_KT = @p_MAKER_ID_KT OR PC3.TLNAME = @p_MAKER_ID_KT)
1549
						OR (SELECT COUNT(*) FROM @TABLE_ROLE WHERE ROLE_AUTH = 'KSV') > 0
1550
					)	
1551
				AND	(	(	A.MAKER_ID_KT IS NOT NULL 
1552
							AND @p_IS_UPDATE_KT='Y'
1553
						)
1554
						OR	(	(	A.MAKER_ID_KT IS NULL 
1555
									AND @p_IS_UPDATE_KT='N'
1556
								)
1557
							)
1558
						OR @p_IS_UPDATE_KT IS NULL 
1559
						OR @p_IS_UPDATE_KT=''
1560
					)
1561
				
1562
				-- END FILTER
1563
			ORDER BY A.CREATE_DT DESC
1564
	-- PAGING END
1565
	   END;
1566
	END
1567

    
1568
END -- PAGING
1569

    
1570
GO
1571

    
1572
--08082023_secretkey