Project

General

Profile

pay_auto_search.txt

Luc Tran Van, 06/13/2023 10:25 PM

 
1
ALTER PROCEDURE [dbo].[TR_REQ_PAYMENT_AUTO_Search]
2
@p_REQ_PAY_AUTO_ID	VARCHAR(20)= NULL,
3
@p_REQ_PAY_AUTO_CODE	VARCHAR(20)= NULL,
4
@p_REQ_PAY_AUTO_NAME	VARCHAR(20)= NULL,
5
@p_REQ_PAY_AUTO_DT	VARCHAR(20)= NULL,
6
@p_REQ_PAY_AUTO_TYPE	VARCHAR(20)= NULL,
7
@p_REQ_PAY_AUTO_SERVICE_TYPE	VARCHAR(20)= NULL,
8
@p_REQ_PAY_AUTO_STATUS	VARCHAR(20)= NULL,
9
@p_REQ_PAY_AUTO_EFFECTIVE_DT	VARCHAR(20)= NULL,
10
@p_BRANCH_ID	VARCHAR(20)= NULL,
11
@p_BRANCH_CODE	VARCHAR(20)= NULL,
12
@p_BRANCH_NAME	VARCHAR(20)= NULL,
13
@p_DEP_ID	VARCHAR(20)= NULL,
14
@p_DEP_CODE	VARCHAR(20)= NULL,
15
@p_DEP_NAME	VARCHAR(20)= NULL,
16
@p_BRANCH_CREATE	VARCHAR(20)= NULL,
17
@p_BRANCH_CREATE_CODE	VARCHAR(20)= NULL,
18
@p_BRANCH_CREATE_NAME	VARCHAR(20)= NULL,
19
@p_TRANSFER_USER_RECEIVE	VARCHAR(20)= NULL,
20
@p_TRANSFER_USER_RECEIVE_NAME	VARCHAR(20)= NULL,
21
@p_CONFIRM_NOTE	VARCHAR(20)= NULL,
22
@p_CONTRACT_ID	VARCHAR(20)= NULL,
23
@p_CONTRACT_CODE	VARCHAR(20)= NULL,
24
@p_CONTRACT_NAME	VARCHAR(20)= NULL,
25
@p_PROCESS	VARCHAR(20)= NULL,
26
@p_TRANSFER_MAKER	VARCHAR(20)= NULL,
27
@p_TRANSFER_DT	VARCHAR(20)= NULL,
28
@p_MAKER_ID	VARCHAR(20)= NULL,
29
@p_MAKER_NAME	VARCHAR(20)= NULL,
30
@p_CREATE_DT	VARCHAR(20)= NULL,
31
@p_EDITOR_ID	VARCHAR(20)= NULL,
32
@p_EDITOR_NAME	VARCHAR(20)= NULL,
33
@p_EDIT_DT	VARCHAR(20)= NULL,
34
@p_CHECKER_ID	VARCHAR(20)= NULL,
35
@p_CHECKER_NAME	VARCHAR(20)= NULL,
36
@p_APPROVE_DT	VARCHAR(20)= NULL,
37
@p_AUTH_STATUS	VARCHAR(20)= NULL,
38
@p_MAKER_ID_KT	VARCHAR(20)= NULL,
39
@p_MAKER_KT_NAME	VARCHAR(20)= NULL,
40
@p_CREATE_DT_KT	VARCHAR(20)= NULL,
41
@p_CHECKER_ID_KT	VARCHAR(20)= NULL,
42
@p_CHECKER_KT_NAME	VARCHAR(20)= NULL,
43
@p_APPROVE_DT_KT	VARCHAR(20)= NULL,
44
@p_AUTH_STATUS_KT	VARCHAR(20)= NULL,
45
@p_AUTH_STATUS_KT_DESC	VARCHAR(20)= NULL,
46
@p_RECORD_STATUS	VARCHAR(20)= NULL,
47
@p_FRMDATE	VARCHAR(20)= NULL,
48
@p_TODATE	VARCHAR(20)= NULL,
49
@p_LEVEL	VARCHAR(20)= NULL,
50
@p_USER_LOGIN	VARCHAR(20)= NULL,
51
@p_IS_SEND_APPR	VARCHAR(20)= NULL,
52
@p_TYPE_SEARCH	VARCHAR(20)= NULL,
53
@p_BRANCH_LOGIN	VARCHAR(20)= NULL,
54
@p_EXEC_USER_KT	nvarchar(20)	= NULL,
55
@p_IS_UPDATE_KT VARCHAR(15) = NULL,
56
@p_BRANCH_MANAGE_ID	VARCHAR(20)= NULL,
57
@p_TOP INT = NULL
58
AS
59
/*
60
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
61
	- Do người này gửi duyệt(U-0)
62
	- Do người này đề nghị tạm dừng(A-6)
63
	- Do người này đề nghị khôi phục(A-9)
64
	- Do người này đề nghị hủy phiếu(A-15)
65

    
66
*/
67
BEGIN -- PAGING
68
-- BEGIN KHAI BÁO
69
	IF(@p_TYPE_SEARCH = 'HC')
70
	BEGIN
71
		SET @p_LEVEL = 'UNIT'
72
	END
73
	IF(ISNULL(@p_BRANCH_ID, '') = '')
74
	BEGIN
75
		SET @p_BRANCH_ID = @p_BRANCH_CREATE
76
	END
77
	IF(@p_BRANCH_LOGIN <> 'DV0001')
78
	BEGIN
79
		SET @p_DEP_ID = NULL
80
	END
81
-- ĐƠN VỊ YÊU CẦU
82
	DECLARE @tmp_branch TABLE(BRANCH_ID VARCHAR(15))
83
	DECLARE @tmp_dep TABLE(DEP_ID VARCHAR(15))
84
	DECLARE @DEP_ID VARCHAR(15) = NULL
85
	INSERT INTO @tmp_branch  SELECT BRANCH_ID  FROM [dbo].[CM_BRANCH_GETCHILDID](@p_BRANCH_ID)
86
	DECLARE @BRANCH_TYPE VARCHAR(15)
87
	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))
88

    
89
-- ĐƠN VỊ ĐĂNG NHẬP
90
	DECLARE @tmp_branch_login TABLE(BRANCH_ID VARCHAR(15))
91
	DECLARE @tmp_dep_login TABLE(DEP_ID VARCHAR(15))
92
	INSERT INTO @tmp_branch_login  SELECT BRANCH_ID  FROM [dbo].[CM_BRANCH_GETCHILDID](@p_BRANCH_LOGIN)
93
	INSERT INTO @tmp_branch_login VALUES (@p_BRANCH_LOGIN)
94
	INSERT INTO @tmp_branch_login	SELECT BRANCH_ID 
95
									FROM TL_SYS_ROLE_MAPPING 
96
									WHERE TLNAME =@P_USER_LOGIN 
97
									AND (CONVERT(DATE,GETDATE(),103) >= CONVERT(DATE,EFF_DATE, 103) OR EFF_DATE IS NULL OR EFF_DATE ='')
98
									AND (CONVERT(DATE, GETDATE(),103) <=CONVERT(DATE,EXP_DATE, 103) OR EXP_DATE IS NULL OR EXP_DATE ='') 
99
									AND RECORD_STATUS = '1'
100
	DECLARE @BRANCH_TYPE_LG VARCHAR(15)
101
	SET @BRANCH_TYPE_LG = (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID=@p_BRANCH_LOGIN)
102
-- PHÒNG BAN ĐĂNG NHẬP
103
	DECLARE @DEP_ID_LG VARCHAR(15) = NULL
104
	SET @DEP_ID_LG =(SELECT SECUR_CODE FROM TL_USER WHERE TLNANME=@p_USER_LOGIN)
105
	INSERT INTO @tmp_dep_login VALUES (@DEP_ID_LG)
106
	INSERT INTO @tmp_dep_login SELECT DEP_ID FROM CM_DEPARTMENT WHERE FATHER_ID =@DEP_ID_LG
107
	INSERT INTO @tmp_dep_login	SELECT DEP_ID 
108
								FROM TL_SYS_ROLE_MAPPING 
109
								WHERE TLNAME =@P_USER_LOGIN 
110
								AND (CONVERT(DATE,GETDATE(),103) >= CONVERT(DATE,EFF_DATE, 103) OR EFF_DATE IS NULL OR EFF_DATE ='')
111
								AND (CONVERT(DATE, GETDATE(),103) <=CONVERT(DATE,EXP_DATE, 103) OR EXP_DATE IS NULL OR EXP_DATE ='') 
112
								AND RECORD_STATUS = '1'
113
-- ĐƠN VỊ ỦY QUYỀN KIÊM NHIỆM
114
DECLARE @tmp_branch_auth TABLE (BRANCH_ID VARCHAR(15))
115
INSERT INTO @tmp_branch_auth VALUES (@p_BRANCH_LOGIN)
116
INSERT INTO @tmp_branch_auth	SELECT BRANCH_ID 
117
								FROM TL_SYS_ROLE_MAPPING 
118
								WHERE TLNAME =@P_USER_LOGIN 
119
								AND (CONVERT(DATE,GETDATE(),103) >= CONVERT(DATE,EFF_DATE, 103) OR EFF_DATE IS NULL OR EFF_DATE ='')
120
								AND (CONVERT(DATE, GETDATE(),103) <=CONVERT(DATE,EXP_DATE, 103) OR EXP_DATE IS NULL OR EXP_DATE ='') 
121
								AND RECORD_STATUS = '1'
122
-- PHÒNG BAN ỦY QUYỀN KIÊM NHIỆM
123
DECLARE @tmp_dep_auth TABLE (DEP_ID VARCHAR(15))
124
INSERT INTO @tmp_dep_auth VALUES (@DEP_ID_LG)
125
INSERT INTO @tmp_dep_auth	SELECT DEP_ID 
126
							FROM TL_SYS_ROLE_MAPPING 
127
							WHERE TLNAME =@P_USER_LOGIN 
128
							AND (CONVERT(DATE,GETDATE(),103) >= CONVERT(DATE,EFF_DATE, 103) OR EFF_DATE IS NULL OR EFF_DATE ='')
129
							AND (CONVERT(DATE, GETDATE(),103) <=CONVERT(DATE,EXP_DATE, 103) OR EXP_DATE IS NULL OR EXP_DATE ='') 
130
							AND RECORD_STATUS = '1'
131
INSERT INTO @tmp_dep_auth SELECT DEP_ID FROM CM_DEPARTMENT WHERE FATHER_ID =@DEP_ID_LG
132

    
133
-- ROLE
134
	DECLARE @ROLE_ID VARCHAR(20)
135
	SET @ROLE_ID = (SELECT TOP 1 RoleName FROM TL_USER WHERE TLNANME=@p_USER_LOGIN)
136
	DECLARE @TABLE_ROLE TABLE (ROLE_AUTH VARCHAR(50))  
137
	INSERT INTO @TABLE_ROLE VALUES (@ROLE_ID)
138
	INSERT INTO @TABLE_ROLE SELECT ROLE_NEW 
139
							FROM TL_SYS_ROLE_MAPPING 
140
							WHERE ROLE_OLD =@ROLE_ID AND TLNAME =@P_USER_LOGIN  
141
							AND (CONVERT(DATE,GETDATE(),103) >= CONVERT(DATE,EFF_DATE, 103) OR EFF_DATE IS NULL OR EFF_DATE ='')
142
							AND (CONVERT(DATE, GETDATE(),103) <=CONVERT(DATE,EXP_DATE, 103) OR EXP_DATE IS NULL OR EXP_DATE ='') 
143
							AND RECORD_STATUS = '1'
144
	
145
-- NEU USER KHONG CHON TU NGAY THI TU NGAY BANG NGAY 1 1 HANG THANG 20211116
146
	DECLARE @DATE DATE
147
	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
148
	BEGIN
149
		SET @DATE = CONVERT(DATE,GETDATE(),103)
150
		SET @DATE = DATEADD(MONTH,-2,@DATE)
151
	END
152
	ELSE
153
	BEGIN
154
		SET @DATE = CONVERT(DATE,@p_FRMDATE,103)
155
	END
156
-- CHECK NGUOI DUYET
157
	DECLARE @IS_TDV VARCHAR(1) = 'N'
158
	IF	(		
159
				(	SELECT COUNT(*) 
160
					FROM @TABLE_ROLE A 
161
					WHERE A.ROLE_AUTH IN ('TPGD','GDDV','PGD','PTGD','TGD','HDQT','TP','PP','KTT','GDK','KSV','TC','NVTC','TPTC','PPGD')
162
				) = 0
163
		)
164
	BEGIN
165
		SET @IS_TDV = 'N'
166
	END
167
	ELSE
168
	BEGIN
169
		SET @IS_TDV = 'Y'
170
	END
171
-- END KHAI BÁO
172
	IF(@p_TYPE_SEARCH = 'HC')
173
	BEGIN
174
		IF(@p_TOP IS NULL OR @p_TOP=0)
175
		BEGIN
176
			IF(@DEP_ID_LG = 'DEP000000000022')
177
			BEGIN
178
	-- PAGING BEGIN
179
				SELECT A.*,
180
				--B.BRANCH_CODE, B.BRANCH_NAME,
181
				CASE	WHEN	(	SELECT TOP 1 BRANCH_ID 
182
									FROM TR_CONTRACT 
183
									WHERE CONTRACT_ID = A.CONTRACT_ID
184
								) <> 'DV0001'
185
								THEN  B.BRANCH_NAME + ISNULL	(	' - ' + (	SELECT TOP 1 BRANCH_NAME 
186
																						FROM CM_BRANCH 
187
																						WHERE BRANCH_ID =	(	SELECT TOP 1 BRANCH_ID 
188
																												FROM TR_CONTRACT 
189
																												WHERE CONTRACT_ID = A.CONTRACT_ID
190
																											)
191
																			),''
192
																)
193
						ELSE B.BRANCH_NAME 
194
				END BRANCH_NAME,
195
				C.DEP_CODE, C.DEP_NAME, 
196
				D.CONTRACT_CODE, D.[CONTRACT_NAME], 
197
				E.TLFullName AS MAKER_NAME, 
198
				F.TLFullName AS MAKER_NAME_KT, 
199
				G.TLFullName AS CHECKER_NAME_KT,
200
				H.CONTENT AS REQ_PAY_AUTO_STATUS_NAME,
201
				I.CONTENT AS REQ_PAY_AUTO_TYPE_NAME,
202
				J.CONTENT AS AUTH_STATUS_NAME,
203
				K.CONTENT AS AUTH_STATUS_KT_NAME,
204
				L.TLFullName AS TRANSFER_USER_RECEIVE_NAME,
205
				M.BRANCH_CODE AS BRANCH_MANAGE_CODE, M.BRANCH_NAME AS BRANCH_MANAGE_NAME
206
		-- SELECT END
207
				FROM TR_REQ_PAYMENT_AUTO A
208
				LEFT JOIN CM_BRANCH B ON A.BRANCH_ID = B.BRANCH_ID
209
				LEFT JOIN CM_DEPARTMENT C ON A.DEP_ID = C.DEP_ID
210
				LEFT JOIN TR_CONTRACT D ON A.CONTRACT_ID = D.CONTRACT_ID
211
				LEFT JOIN TL_USER E ON A.MAKER_ID = E.TLNANME
212
				LEFT JOIN TL_USER F ON A.MAKER_ID_KT = F.TLNANME
213
				LEFT JOIN TL_USER G ON A.CHECKER_ID_KT = G.TLNANME
214
				LEFT JOIN CM_ALLCODE H ON A.REQ_PAY_AUTO_STATUS = H.CDVAL AND H.CDNAME = 'PAY_AUTO_STATUS' AND H.CDTYPE = 'REQ_AUTO'
215
				LEFT JOIN CM_ALLCODE I ON A.REQ_PAY_AUTO_TYPE = I.CDVAL AND I.CDNAME = 'PAY_TYPE_AUTO' AND I.CDTYPE = 'REQ_AUTO'
216
				LEFT JOIN CM_ALLCODE J ON A.AUTH_STATUS = J.CDVAL AND J.CDNAME = 'AUTH_STATUS' AND J.CDTYPE = 'TR_REQ_PAYMENT'
217
				LEFT JOIN CM_ALLCODE K ON A.AUTH_STATUS_KT = K.CDVAL AND K.CDNAME = 'AUTH_STATUS_KT' AND K.CDTYPE = 'TR_REQ_PAYMENT'
218
				LEFT JOIN TL_USER L ON A.TRANSFER_USER_RECEIVE = L.TLNANME
219
				LEFT JOIN CM_BRANCH M ON A.BRANCH_MANAGE_ID = M.BRANCH_ID
220
				WHERE 1=1 
221
				-- BEGIN FILTER
222
				AND	(	A.REQ_PAY_AUTO_ID = @p_REQ_PAY_AUTO_ID OR ISNULL(@p_REQ_PAY_AUTO_ID, '') = '')
223
				AND	(	A.REQ_PAY_AUTO_CODE = @p_REQ_PAY_AUTO_CODE OR ISNULL(@p_REQ_PAY_AUTO_CODE, '') = '')
224
				--AND	(	A.AUTH_STATUS = @p_AUTH_STATUS OR ISNULL(@p_AUTH_STATUS, '') = '')
225
				AND (	(@p_AUTH_STATUS = A.AUTH_STATUS)	-- dùng cho: lưu nháp, phiếu bị hủy
226
					OR	(@p_AUTH_STATUS = 'W' AND A.PROCESS IN ('0', '6', '9', '15')) -- chờ cấp trung gian xác nhận
227
					OR	(@p_AUTH_STATUS = 'G' AND A.PROCESS IN ('1', '7', '10', '16')) -- cấp trung gian xác nhận
228
					OR	(@p_AUTH_STATUS = 'U' AND A.PROCESS IN ('0', '6', '9', '15')) -- chờ duyệt CTG
229
					OR	(@p_AUTH_STATUS = 'U' AND A.PROCESS IN ('0', '1', '6', '7', '9', '10', '15', '16')) -- chờ duyệt TDV
230
					OR	(@p_AUTH_STATUS = 'A' AND A.PROCESS IN ('1', '2', '7', '8', '10', '11', '16', '17')) -- đã duyệt
231
					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
232
					OR (ISNULL(@p_AUTH_STATUS, '') = '')
233
					)
234
				AND	(	A.REQ_PAY_AUTO_TYPE = @p_REQ_PAY_AUTO_TYPE OR ISNULL(@p_REQ_PAY_AUTO_TYPE, '') = '')
235
				AND	(	A.AUTH_STATUS_KT = @p_AUTH_STATUS_KT OR ISNULL(@p_AUTH_STATUS_KT, '') = '')
236
				AND	(	M.BRANCH_ID = @p_BRANCH_MANAGE_ID OR ISNULL(@p_BRANCH_MANAGE_ID, '') = '')
237
				AND	(	A.CONTRACT_ID = @p_CONTRACT_ID OR ISNULL(@p_CONTRACT_ID, '') = '')
238
				AND	(	A.REQ_PAY_AUTO_STATUS = @p_REQ_PAY_AUTO_STATUS OR ISNULL(@p_REQ_PAY_AUTO_STATUS, '') = '')
239
				AND	(	CONVERT(DATE, A.CREATE_DT) >= CONVERT(DATE, @p_FRMDATE, 103) OR ISNULL(@p_FRMDATE, '')= '' OR A.CREATE_DT IS NULL)
240
				AND	(	CONVERT(DATE, A.CREATE_DT) <= CONVERT(DATE, @p_TODATE, 103) OR ISNULL(@p_TODATE, '')= '' OR A.CREATE_DT IS NULL)
241
				AND	(	A.BRANCH_ID = @p_BRANCH_ID 
242
						OR ISNULL(@p_BRANCH_ID, '') = ''
243
						OR A.BRANCH_ID IN	(	SELECT BRANCH_ID 
244
												FROM @tmp_branch
245
											)
246
					)
247
				AND	(	A.DEP_ID = @p_DEP_ID 
248
						OR ISNULL(@p_DEP_ID, '') = ''
249
					)
250
				AND	(	A.MAKER_ID = @p_MAKER_ID OR ISNULL(@p_MAKER_ID, '') = '')
251
				AND	(	A.MAKER_ID_KT = @p_MAKER_ID_KT OR ISNULL(@p_MAKER_ID_KT, '') = '')
252
				-- END FILTER
253
			ORDER BY A.CREATE_DT DESC
254
	-- PAGING END
255
			END
256
			ELSE
257
			BEGIN-- DVKD Search
258
	-- PAGING BEGIN
259
				SELECT A.*,
260
				--B.BRANCH_CODE, B.BRANCH_NAME,
261
				CASE	WHEN	(	SELECT TOP 1 BRANCH_ID 
262
									FROM TR_CONTRACT 
263
									WHERE CONTRACT_ID = A.CONTRACT_ID
264
								) <> 'DV0001'
265
								THEN  B.BRANCH_NAME + ISNULL	(	' - ' + (	SELECT TOP 1 BRANCH_NAME 
266
																						FROM CM_BRANCH 
267
																						WHERE BRANCH_ID =	(	SELECT TOP 1 BRANCH_ID 
268
																												FROM TR_CONTRACT 
269
																												WHERE CONTRACT_ID = A.CONTRACT_ID
270
																											)
271
																			),''
272
																)
273
						ELSE B.BRANCH_NAME 
274
				END BRANCH_NAME,
275
				C.DEP_CODE, C.DEP_NAME, 
276
				D.CONTRACT_CODE, D.[CONTRACT_NAME], 
277
				E.TLFullName AS MAKER_NAME, 
278
				F.TLFullName AS MAKER_NAME_KT, 
279
				G.TLFullName AS CHECKER_NAME_KT,
280
				H.CONTENT AS REQ_PAY_AUTO_STATUS_NAME,
281
				I.CONTENT AS REQ_PAY_AUTO_TYPE_NAME,
282
				J.CONTENT AS AUTH_STATUS_NAME,
283
				K.CONTENT AS AUTH_STATUS_KT_NAME,
284
				L.TLFullName AS TRANSFER_USER_RECEIVE_NAME,
285
				M.BRANCH_CODE AS BRANCH_MANAGE_CODE, M.BRANCH_NAME AS BRANCH_MANAGE_NAME
286
		-- SELECT END
287
				FROM TR_REQ_PAYMENT_AUTO A
288
				LEFT JOIN CM_BRANCH B ON A.BRANCH_ID = B.BRANCH_ID
289
				LEFT JOIN CM_DEPARTMENT C ON A.DEP_ID = C.DEP_ID
290
				LEFT JOIN TR_CONTRACT D ON A.CONTRACT_ID = D.CONTRACT_ID
291
				LEFT JOIN TL_USER E ON A.MAKER_ID = E.TLNANME
292
				LEFT JOIN TL_USER F ON A.MAKER_ID_KT = F.TLNANME
293
				LEFT JOIN TL_USER G ON A.CHECKER_ID_KT = G.TLNANME
294
				LEFT JOIN CM_ALLCODE H ON A.REQ_PAY_AUTO_STATUS = H.CDVAL AND H.CDNAME = 'PAY_AUTO_STATUS' AND H.CDTYPE = 'REQ_AUTO'
295
				LEFT JOIN CM_ALLCODE I ON A.REQ_PAY_AUTO_TYPE = I.CDVAL AND I.CDNAME = 'PAY_TYPE_AUTO' AND I.CDTYPE = 'REQ_AUTO'
296
				LEFT JOIN CM_ALLCODE J ON A.AUTH_STATUS = J.CDVAL AND J.CDNAME = 'AUTH_STATUS' AND J.CDTYPE = 'TR_REQ_PAYMENT'
297
				LEFT JOIN CM_ALLCODE K ON A.AUTH_STATUS_KT = K.CDVAL AND K.CDNAME = 'AUTH_STATUS_KT' AND K.CDTYPE = 'TR_REQ_PAYMENT'
298
				LEFT JOIN TL_USER L ON A.TRANSFER_USER_RECEIVE = L.TLNANME
299
				LEFT JOIN CM_BRANCH M ON A.BRANCH_MANAGE_ID = M.BRANCH_ID
300
				WHERE 1=1 
301
				-- BEGIN FILTER
302
				AND	(	A.REQ_PAY_AUTO_ID = @p_REQ_PAY_AUTO_ID OR ISNULL(@p_REQ_PAY_AUTO_ID, '') = '')
303
				AND	(	A.REQ_PAY_AUTO_CODE = @p_REQ_PAY_AUTO_CODE OR ISNULL(@p_REQ_PAY_AUTO_CODE, '') = '')
304
				--AND	(	A.AUTH_STATUS = @p_AUTH_STATUS OR ISNULL(@p_AUTH_STATUS, '') = '')
305
				AND (	(@p_AUTH_STATUS = A.AUTH_STATUS)	-- dùng cho: lưu nháp, phiếu bị hủy
306
					OR	(@p_AUTH_STATUS = 'W' AND A.PROCESS IN ('0', '6', '9', '15')) -- chờ cấp trung gian xác nhận
307
					OR	(@p_AUTH_STATUS = 'G' AND A.PROCESS IN ('1', '7', '10', '16')) -- cấp trung gian xác nhận
308
					OR	(@p_AUTH_STATUS = 'U' AND @IS_TDV = 'N' AND A.PROCESS IN ('0', '6', '9', '15')) -- chờ duyệt CTG
309
					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
310
					OR	(@p_AUTH_STATUS = 'A' AND A.PROCESS IN ('1', '2', '7', '8', '10', '11', '16', '17')) -- đã duyệt
311
					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
312
					OR (ISNULL(@p_AUTH_STATUS, '') = '')
313
					)
314
				AND	(	A.REQ_PAY_AUTO_TYPE = @p_REQ_PAY_AUTO_TYPE OR ISNULL(@p_REQ_PAY_AUTO_TYPE, '') = '')
315
				AND	(	A.AUTH_STATUS_KT = @p_AUTH_STATUS_KT OR ISNULL(@p_AUTH_STATUS_KT, '') = '')
316
				AND	(	M.BRANCH_ID = @p_BRANCH_MANAGE_ID OR ISNULL(@p_BRANCH_MANAGE_ID, '') = '')
317
				AND	(	A.CONTRACT_ID = @p_CONTRACT_ID OR ISNULL(@p_CONTRACT_ID, '') = '')
318
				AND	(	A.REQ_PAY_AUTO_STATUS = @p_REQ_PAY_AUTO_STATUS OR ISNULL(@p_REQ_PAY_AUTO_STATUS, '') = '')
319
				AND(	CONVERT(DATE, A.CREATE_DT) >= CONVERT(DATE, @p_FRMDATE, 103) OR ISNULL(@p_FRMDATE, '')= '' OR A.CREATE_DT IS NULL)
320
				AND(	CONVERT(DATE, A.CREATE_DT) <= CONVERT(DATE, @p_TODATE, 103) OR ISNULL(@p_TODATE, '')= '' OR A.CREATE_DT IS NULL)
321
				AND	(	A.MAKER_ID = @p_MAKER_ID OR ISNULL(@p_MAKER_ID, '') = '')
322
				AND	(	A.MAKER_ID_KT = @p_MAKER_ID_KT OR ISNULL(@p_MAKER_ID_KT, '') = '')
323
				-- END FILTER
324
				-- BEGIN VALIDATE FLOW
325
				AND	(
326
						(
327
								(	A.MAKER_ID = @p_USER_LOGIN)
328
						)-- NGUOI TAO
329
					OR	(
330
							(	A.TRANSFER_USER_RECEIVE = @p_USER_LOGIN AND A.AUTH_STATUS IN ('U', 'R', 'A', 'N') AND PROCESS IN ('0', '6', '9', '15') )
331
						)-- NGUOI DUYET TRUNG GIAN
332
					OR	(
333
							(	A.AUTH_STATUS IN ('R', 'A', 'N') AND @IS_TDV = 'Y')
334
						OR	(	A.AUTH_STATUS = 'U' AND ISNULL(A.TRANSFER_USER_RECEIVE, '') = '' AND @IS_TDV = 'Y')
335
						OR	(	A.AUTH_STATUS = 'U' AND ISNULL(A.TRANSFER_USER_RECEIVE, '') <> '' AND ISNULL(A.PROCESS, '') = '1' AND @IS_TDV = 'Y')
336
						)-- TRUONG DON VI
337
					OR	(
338
							A.AUTH_STATUS = 'A'
339
							
340
						)-- VA NHUNG PHIEU DA DUYET
341
					)
342
				AND	(	(	@p_LEVEL='ALL' 
343
							AND	(	A.BRANCH_ID IN	(	SELECT BRANCH_ID 
344
														FROM @tmp_branch
345
													) -- PYC cua don vi minh va cac don vi con
346
									OR A.BRANCH_ID IN (SELECT * FROM @tmp_branch_auth) -- PYC cua don vi kiem nhiem
347
								)
348
						)
349
						OR	(	@p_LEVEL='UNIT' 
350
								AND	(	A.BRANCH_ID = @p_BRANCH_ID	-- PYC cua don vi minh
351
										OR A.BRANCH_ID IN (SELECT * FROM @tmp_branch_auth) -- PYC cua don vi kiem nhiem
352
									)
353
							)
354
					)
355
				AND	(	A.DEP_ID = @p_DEP_ID 
356
						OR ISNULL(@p_DEP_ID, '') = ''
357
					)
358
							
359
				AND	(
360
						A.DEP_ID IN	(
361
										SELECT * 
362
										FROM @tmp_dep_auth
363
									)
364
						OR A.BRANCH_ID <> 'DV0001'
365
					)
366
				-- END VALIDATE FLOW
367
			ORDER BY A.CREATE_DT DESC
368
	-- PAGING END
369
			END
370
		END;
371
		ELSE -- TOP IS NOT NULL
372
		BEGIN
373
			IF(@DEP_ID_LG = 'DEP000000000022')
374
			BEGIN
375
	-- PAGING BEGIN
376
				SELECT A.*,
377
				--B.BRANCH_CODE, B.BRANCH_NAME,
378
				CASE	WHEN	(	SELECT TOP 1 BRANCH_ID 
379
									FROM TR_CONTRACT 
380
									WHERE CONTRACT_ID = A.CONTRACT_ID
381
								) <> 'DV0001'
382
								THEN  B.BRANCH_NAME + ISNULL	(	' - ' + (	SELECT TOP 1 BRANCH_NAME 
383
																						FROM CM_BRANCH 
384
																						WHERE BRANCH_ID =	(	SELECT TOP 1 BRANCH_ID 
385
																												FROM TR_CONTRACT 
386
																												WHERE CONTRACT_ID = A.CONTRACT_ID
387
																											)
388
																			),''
389
																)
390
						ELSE B.BRANCH_NAME 
391
				END BRANCH_NAME,
392
				C.DEP_CODE, C.DEP_NAME, 
393
				D.CONTRACT_CODE, D.[CONTRACT_NAME], 
394
				E.TLFullName AS MAKER_NAME, 
395
				F.TLFullName AS MAKER_NAME_KT, 
396
				G.TLFullName AS CHECKER_NAME_KT,
397
				H.CONTENT AS REQ_PAY_AUTO_STATUS_NAME,
398
				I.CONTENT AS REQ_PAY_AUTO_TYPE_NAME,
399
				J.CONTENT AS AUTH_STATUS_NAME,
400
				K.CONTENT AS AUTH_STATUS_KT_NAME,
401
				L.TLFullName AS TRANSFER_USER_RECEIVE_NAME,
402
				M.BRANCH_CODE AS BRANCH_MANAGE_CODE, M.BRANCH_NAME AS BRANCH_MANAGE_NAME
403
		-- SELECT END
404
				FROM TR_REQ_PAYMENT_AUTO A
405
				LEFT JOIN CM_BRANCH B ON A.BRANCH_ID = B.BRANCH_ID
406
				LEFT JOIN CM_DEPARTMENT C ON A.DEP_ID = C.DEP_ID
407
				LEFT JOIN TR_CONTRACT D ON A.CONTRACT_ID = D.CONTRACT_ID
408
				LEFT JOIN TL_USER E ON A.MAKER_ID = E.TLNANME
409
				LEFT JOIN TL_USER F ON A.MAKER_ID_KT = F.TLNANME
410
				LEFT JOIN TL_USER G ON A.CHECKER_ID_KT = G.TLNANME
411
				LEFT JOIN CM_ALLCODE H ON A.REQ_PAY_AUTO_STATUS = H.CDVAL AND H.CDNAME = 'PAY_AUTO_STATUS' AND H.CDTYPE = 'REQ_AUTO'
412
				LEFT JOIN CM_ALLCODE I ON A.REQ_PAY_AUTO_TYPE = I.CDVAL AND I.CDNAME = 'PAY_TYPE_AUTO' AND I.CDTYPE = 'REQ_AUTO'
413
				LEFT JOIN CM_ALLCODE J ON A.AUTH_STATUS = J.CDVAL AND J.CDNAME = 'AUTH_STATUS' AND J.CDTYPE = 'TR_REQ_PAYMENT'
414
				LEFT JOIN CM_ALLCODE K ON A.AUTH_STATUS_KT = K.CDVAL AND K.CDNAME = 'AUTH_STATUS_KT' AND K.CDTYPE = 'TR_REQ_PAYMENT'
415
				LEFT JOIN TL_USER L ON A.TRANSFER_USER_RECEIVE = L.TLNANME
416
				LEFT JOIN CM_BRANCH M ON A.BRANCH_MANAGE_ID = M.BRANCH_ID
417
				WHERE 1=1 
418
				-- BEGIN FILTER
419
				AND	(	A.REQ_PAY_AUTO_ID = @p_REQ_PAY_AUTO_ID OR ISNULL(@p_REQ_PAY_AUTO_ID, '') = '')
420
				AND	(	A.REQ_PAY_AUTO_CODE = @p_REQ_PAY_AUTO_CODE OR ISNULL(@p_REQ_PAY_AUTO_CODE, '') = '')
421
				--AND	(	A.AUTH_STATUS = @p_AUTH_STATUS OR ISNULL(@p_AUTH_STATUS, '') = '')
422
				AND (	(@p_AUTH_STATUS = A.AUTH_STATUS)	-- dùng cho: lưu nháp, phiếu bị hủy
423
					OR	(@p_AUTH_STATUS = 'W' AND A.PROCESS IN ('0', '6', '9', '15')) -- chờ cấp trung gian xác nhận
424
					OR	(@p_AUTH_STATUS = 'G' AND A.PROCESS IN ('1', '7', '10', '16')) -- cấp trung gian xác nhận
425
					OR	(@p_AUTH_STATUS = 'U' AND A.PROCESS IN ('0', '6', '9', '15')) -- chờ duyệt CTG
426
					OR	(@p_AUTH_STATUS = 'U' AND A.PROCESS IN ('0', '1', '6', '7', '9', '10', '15', '16')) -- chờ duyệt TDV
427
					OR	(@p_AUTH_STATUS = 'A' AND A.PROCESS IN ('1', '2', '7', '8', '10', '11', '16', '17')) -- đã duyệt
428
					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
429
					OR (ISNULL(@p_AUTH_STATUS, '') = '')
430
					)
431
				AND	(	A.REQ_PAY_AUTO_TYPE = @p_REQ_PAY_AUTO_TYPE OR ISNULL(@p_REQ_PAY_AUTO_TYPE, '') = '')
432
				AND	(	A.AUTH_STATUS_KT = @p_AUTH_STATUS_KT OR ISNULL(@p_AUTH_STATUS_KT, '') = '')
433
				AND	(	M.BRANCH_ID = @p_BRANCH_MANAGE_ID OR ISNULL(@p_BRANCH_MANAGE_ID, '') = '')
434
				AND	(	A.CONTRACT_ID = @p_CONTRACT_ID OR ISNULL(@p_CONTRACT_ID, '') = '')
435
				AND	(	A.REQ_PAY_AUTO_STATUS = @p_REQ_PAY_AUTO_STATUS OR ISNULL(@p_REQ_PAY_AUTO_STATUS, '') = '')
436
				AND	(	CONVERT(DATE, A.CREATE_DT) >= CONVERT(DATE, @p_FRMDATE, 103) OR ISNULL(@p_FRMDATE, '')= '' OR A.CREATE_DT IS NULL)
437
				AND	(	CONVERT(DATE, A.CREATE_DT) <= CONVERT(DATE, @p_TODATE, 103) OR ISNULL(@p_TODATE, '')= '' OR A.CREATE_DT IS NULL)
438
				AND	(	A.BRANCH_ID = @p_BRANCH_ID 
439
						OR ISNULL(@p_BRANCH_ID, '') = ''
440
						OR A.BRANCH_ID IN	(	SELECT BRANCH_ID 
441
												FROM @tmp_branch
442
											)
443
					)
444
				AND	(	A.DEP_ID = @p_DEP_ID 
445
						OR ISNULL(@p_DEP_ID, '') = ''
446
					)
447
				AND	(	A.MAKER_ID = @p_MAKER_ID OR ISNULL(@p_MAKER_ID, '') = '')
448
				AND	(	A.MAKER_ID_KT = @p_MAKER_ID_KT OR ISNULL(@p_MAKER_ID_KT, '') = '')
449
				-- END FILTER
450
			ORDER BY A.CREATE_DT DESC
451
	-- PAGING END
452
			END--END @DEP_ID_LG = 'DEP000000000022'
453
			ELSE
454
			BEGIN
455
	-- PAGING BEGIN
456
				SELECT A.*,
457
				--B.BRANCH_CODE, B.BRANCH_NAME,
458
				CASE	WHEN	(	SELECT TOP 1 BRANCH_ID 
459
									FROM TR_CONTRACT 
460
									WHERE CONTRACT_ID = A.CONTRACT_ID
461
								) <> 'DV0001'
462
								THEN  B.BRANCH_NAME + ISNULL	(	' - ' + (	SELECT TOP 1 BRANCH_NAME 
463
																						FROM CM_BRANCH 
464
																						WHERE BRANCH_ID =	(	SELECT TOP 1 BRANCH_ID 
465
																												FROM TR_CONTRACT 
466
																												WHERE CONTRACT_ID = A.CONTRACT_ID
467
																											)
468
																			),''
469
																)
470
						ELSE B.BRANCH_NAME 
471
				END BRANCH_NAME,
472
				C.DEP_CODE, C.DEP_NAME, 
473
				D.CONTRACT_CODE, D.[CONTRACT_NAME], 
474
				E.TLFullName AS MAKER_NAME, 
475
				F.TLFullName AS MAKER_NAME_KT, 
476
				G.TLFullName AS CHECKER_NAME_KT,
477
				H.CONTENT AS REQ_PAY_AUTO_STATUS_NAME,
478
				I.CONTENT AS REQ_PAY_AUTO_TYPE_NAME,
479
				J.CONTENT AS AUTH_STATUS_NAME,
480
				K.CONTENT AS AUTH_STATUS_KT_NAME,
481
				L.TLFullName AS TRANSFER_USER_RECEIVE_NAME,
482
				M.BRANCH_CODE AS BRANCH_MANAGE_CODE, M.BRANCH_NAME AS BRANCH_MANAGE_NAME
483
		-- SELECT END
484
				FROM TR_REQ_PAYMENT_AUTO A
485
				LEFT JOIN CM_BRANCH B ON A.BRANCH_ID = B.BRANCH_ID
486
				LEFT JOIN CM_DEPARTMENT C ON A.DEP_ID = C.DEP_ID
487
				LEFT JOIN TR_CONTRACT D ON A.CONTRACT_ID = D.CONTRACT_ID
488
				LEFT JOIN TL_USER E ON A.MAKER_ID = E.TLNANME
489
				LEFT JOIN TL_USER F ON A.MAKER_ID_KT = F.TLNANME
490
				LEFT JOIN TL_USER G ON A.CHECKER_ID_KT = G.TLNANME
491
				LEFT JOIN CM_ALLCODE H ON A.REQ_PAY_AUTO_STATUS = H.CDVAL AND H.CDNAME = 'PAY_AUTO_STATUS' AND H.CDTYPE = 'REQ_AUTO'
492
				LEFT JOIN CM_ALLCODE I ON A.REQ_PAY_AUTO_TYPE = I.CDVAL AND I.CDNAME = 'PAY_TYPE_AUTO' AND I.CDTYPE = 'REQ_AUTO'
493
				LEFT JOIN CM_ALLCODE J ON A.AUTH_STATUS = J.CDVAL AND J.CDNAME = 'AUTH_STATUS' AND J.CDTYPE = 'TR_REQ_PAYMENT'
494
				LEFT JOIN CM_ALLCODE K ON A.AUTH_STATUS_KT = K.CDVAL AND K.CDNAME = 'AUTH_STATUS_KT' AND K.CDTYPE = 'TR_REQ_PAYMENT'
495
				LEFT JOIN TL_USER L ON A.TRANSFER_USER_RECEIVE = L.TLNANME
496
				LEFT JOIN CM_BRANCH M ON A.BRANCH_MANAGE_ID = M.BRANCH_ID
497
				WHERE 1=1 
498
				-- BEGIN FILTER
499
				AND	(	A.REQ_PAY_AUTO_ID = @p_REQ_PAY_AUTO_ID OR ISNULL(@p_REQ_PAY_AUTO_ID, '') = '')
500
				AND	(	A.REQ_PAY_AUTO_CODE = @p_REQ_PAY_AUTO_CODE OR ISNULL(@p_REQ_PAY_AUTO_CODE, '') = '')
501
				--AND	(	A.AUTH_STATUS = @p_AUTH_STATUS OR ISNULL(@p_AUTH_STATUS, '') = '')
502
				AND (	(@p_AUTH_STATUS = A.AUTH_STATUS)	-- dùng cho: lưu nháp, phiếu bị hủy
503
					OR	(@p_AUTH_STATUS = 'W' AND A.PROCESS IN ('0', '6', '9', '15')) -- chờ cấp trung gian xác nhận
504
					OR	(@p_AUTH_STATUS = 'G' AND A.PROCESS IN ('1', '7', '10', '16')) -- cấp trung gian xác nhận
505
					OR	(@p_AUTH_STATUS = 'U' AND @IS_TDV = 'N' AND A.PROCESS IN ('0', '6', '9', '15')) -- chờ duyệt CTG
506
					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
507
					OR	(@p_AUTH_STATUS = 'A' AND A.PROCESS IN ('1', '2', '7', '8', '10', '11', '16', '17')) -- đã duyệt
508
					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
509
					OR (ISNULL(@p_AUTH_STATUS, '') = '')
510
					)
511
				AND	(	A.REQ_PAY_AUTO_TYPE = @p_REQ_PAY_AUTO_TYPE OR ISNULL(@p_REQ_PAY_AUTO_TYPE, '') = '')
512
				AND	(	A.AUTH_STATUS_KT = @p_AUTH_STATUS_KT OR ISNULL(@p_AUTH_STATUS_KT, '') = '')
513
				AND	(	M.BRANCH_ID = @p_BRANCH_MANAGE_ID OR ISNULL(@p_BRANCH_MANAGE_ID, '') = '')
514
				AND	(	A.CONTRACT_ID = @p_CONTRACT_ID OR ISNULL(@p_CONTRACT_ID, '') = '')
515
				AND	(	A.REQ_PAY_AUTO_STATUS = @p_REQ_PAY_AUTO_STATUS OR ISNULL(@p_REQ_PAY_AUTO_STATUS, '') = '')
516
				AND(	CONVERT(DATE, A.CREATE_DT) >= CONVERT(DATE, @p_FRMDATE, 103) OR ISNULL(@p_FRMDATE, '')= '' OR A.CREATE_DT IS NULL)
517
				AND(	CONVERT(DATE, A.CREATE_DT) <= CONVERT(DATE, @p_TODATE, 103) OR ISNULL(@p_TODATE, '')= '' OR A.CREATE_DT IS NULL)
518
				AND	(	A.MAKER_ID = @p_MAKER_ID OR ISNULL(@p_MAKER_ID, '') = '')
519
				AND	(	A.MAKER_ID_KT = @p_MAKER_ID_KT OR ISNULL(@p_MAKER_ID_KT, '') = '')
520
				-- END FILTER
521
				-- BEGIN VALIDATE FLOW
522
				AND	(
523
						(
524
								(	A.MAKER_ID = @p_USER_LOGIN)
525
						)-- NGUOI TAO
526
					OR	(
527
							(	A.TRANSFER_USER_RECEIVE = @p_USER_LOGIN AND A.AUTH_STATUS IN ('U', 'R', 'A', 'N') AND PROCESS IN ('0', '6', '9', '15') )
528
						)-- NGUOI DUYET TRUNG GIAN
529
					OR	(
530
							(	A.AUTH_STATUS IN ('R', 'A', 'N') AND @IS_TDV = 'Y')
531
						OR	(	A.AUTH_STATUS = 'U' AND ISNULL(A.TRANSFER_USER_RECEIVE, '') = '' AND @IS_TDV = 'Y')
532
						OR	(	A.AUTH_STATUS = 'U' AND ISNULL(A.TRANSFER_USER_RECEIVE, '') <> '' AND ISNULL(A.PROCESS, '') = '1' AND @IS_TDV = 'Y')
533
						)-- TRUONG DON VI
534
					OR	(
535
							A.AUTH_STATUS = 'A'
536
							
537
						)-- VA NHUNG PHIEU DA DUYET
538
					)
539
				AND	(	(	@p_LEVEL='ALL' 
540
							AND	(	A.BRANCH_ID IN	(	SELECT BRANCH_ID 
541
														FROM @tmp_branch
542
													) -- PYC cua don vi minh va cac don vi con
543
									OR A.BRANCH_ID IN (SELECT * FROM @tmp_branch_auth) -- PYC cua don vi kiem nhiem
544
								)
545
						)
546
						OR	(	@p_LEVEL='UNIT' 
547
								AND	(	A.BRANCH_ID = @p_BRANCH_ID	-- PYC cua don vi minh
548
										OR A.BRANCH_ID IN (SELECT * FROM @tmp_branch_auth) -- PYC cua don vi kiem nhiem
549
									)
550
							)
551
					)
552
				AND	(	A.DEP_ID = @p_DEP_ID 
553
						OR ISNULL(@p_DEP_ID, '') = ''
554
					)
555
							
556
				AND	(
557
						A.DEP_ID IN	(
558
										SELECT * 
559
										FROM @tmp_dep_auth
560
									)
561
						OR A.BRANCH_ID <> 'DV0001'
562
					)
563
				-- END VALIDATE FLOW
564
			ORDER BY A.CREATE_DT DESC
565
	-- PAGING END
566
			END
567
		END;
568
	END
569
	ELSE IF(@p_TYPE_SEARCH = 'KT')
570
	BEGIN
571
		IF(@p_TOP IS NULL OR @p_TOP = 0)
572
		BEGIN
573
	-- PAGING BEGIN
574
				SELECT A.*,
575
				--B.BRANCH_CODE, B.BRANCH_NAME,
576
				CASE	WHEN	(	SELECT TOP 1 BRANCH_ID 
577
									FROM TR_CONTRACT 
578
									WHERE CONTRACT_ID = A.CONTRACT_ID
579
								) <> 'DV0001'
580
								THEN  B.BRANCH_NAME + ISNULL	(	' - ' + (	SELECT TOP 1 BRANCH_NAME 
581
																						FROM CM_BRANCH 
582
																						WHERE BRANCH_ID =	(	SELECT TOP 1 BRANCH_ID 
583
																												FROM TR_CONTRACT 
584
																												WHERE CONTRACT_ID = A.CONTRACT_ID
585
																											)
586
																			),''
587
																)
588
						ELSE B.BRANCH_NAME 
589
				END BRANCH_NAME,
590
				C.DEP_CODE, C.DEP_NAME, 
591
				D.CONTRACT_CODE, D.[CONTRACT_NAME], 
592
				E.TLFullName AS MAKER_NAME, 
593
				F.TLFullName AS MAKER_NAME_KT, 
594
				G.TLFullName AS CHECKER_NAME_KT,
595
				H.CONTENT AS REQ_PAY_AUTO_STATUS_NAME,
596
				I.CONTENT AS REQ_PAY_AUTO_TYPE_NAME,
597
				J.CONTENT AS AUTH_STATUS_NAME,
598
				K.CONTENT AS AUTH_STATUS_KT_NAME,
599
				L.TLFullName AS TRANSFER_USER_RECEIVE_NAME,
600
				M.BRANCH_CODE AS BRANCH_MANAGE_CODE, M.BRANCH_NAME AS BRANCH_MANAGE_NAME
601
		-- SELECT END
602
				FROM TR_REQ_PAYMENT_AUTO A
603
				LEFT JOIN CM_BRANCH B ON A.BRANCH_ID = B.BRANCH_ID
604
				LEFT JOIN CM_DEPARTMENT C ON A.DEP_ID = C.DEP_ID
605
				LEFT JOIN TR_CONTRACT D ON A.CONTRACT_ID = D.CONTRACT_ID
606
				LEFT JOIN TL_USER E ON A.MAKER_ID = E.TLNANME
607
				LEFT JOIN TL_USER F ON A.MAKER_ID_KT = F.TLNANME
608
				LEFT JOIN TL_USER G ON A.CHECKER_ID_KT = G.TLNANME
609
				LEFT JOIN CM_ALLCODE H ON A.REQ_PAY_AUTO_STATUS = H.CDVAL AND H.CDNAME = 'PAY_AUTO_STATUS' AND H.CDTYPE = 'REQ_AUTO'
610
				LEFT JOIN CM_ALLCODE I ON A.REQ_PAY_AUTO_TYPE = I.CDVAL AND I.CDNAME = 'PAY_TYPE_AUTO' AND I.CDTYPE = 'REQ_AUTO'
611
				LEFT JOIN CM_ALLCODE J ON A.AUTH_STATUS = J.CDVAL AND J.CDNAME = 'AUTH_STATUS' AND J.CDTYPE = 'TR_REQ_PAYMENT'
612
				LEFT JOIN CM_ALLCODE K ON A.AUTH_STATUS_KT = K.CDVAL AND K.CDNAME = 'AUTH_STATUS_KT' AND K.CDTYPE = 'TR_REQ_PAYMENT'
613
				LEFT JOIN TL_USER L ON A.TRANSFER_USER_RECEIVE = L.TLNANME
614
				LEFT JOIN CM_BRANCH M ON A.BRANCH_MANAGE_ID = M.BRANCH_ID
615
				LEFT JOIN PL_REQUEST_PROCESS_CHILD PC3 ON PC3.REQ_ID = A.REQ_PAY_AUTO_ID AND PC3.STATUS_JOB ='C' 
616
				WHERE 1=1 
617
				-- BEGIN FILTER
618
				AND A.AUTH_STATUS IN ('A', 'N', 'D')
619
				AND	(	A.REQ_PAY_AUTO_ID = @p_REQ_PAY_AUTO_ID OR ISNULL(@p_REQ_PAY_AUTO_ID, '') = '')
620
				AND	(	A.REQ_PAY_AUTO_CODE = @p_REQ_PAY_AUTO_CODE OR ISNULL(@p_REQ_PAY_AUTO_CODE, '') = '')
621
				--AND	(	A.AUTH_STATUS = @p_AUTH_STATUS OR ISNULL(@p_AUTH_STATUS, '') = '')
622
				AND (	(@p_AUTH_STATUS_KT = A.AUTH_STATUS_KT) -- dùng cho từ chối
623
					OR	(@p_AUTH_STATUS_KT = 'U' AND A.PROCESS IN ('3', '12', '18')) -- chờ duyệt
624
					OR	(@p_AUTH_STATUS_KT = 'P' AND A.PROCESS IN ('4', '13', '13.1', '19', '19.1')) -- đang xử lý
625
					OR	(@p_AUTH_STATUS_KT = 'S' AND A.PROCESS IN ('4', '13.1', '19.1')) -- đề xuất từ chối
626
					OR	(@p_AUTH_STATUS_KT = 'A' AND A.PROCESS IN ('5', '14', '20')) -- đã duyệt
627
					OR	(@p_AUTH_STATUS_KT = 'R' AND A.PROCESS IN ('20.2', '14.2')) -- từ chối
628
					OR (ISNULL(@p_AUTH_STATUS_KT, '') = '' AND A.PROCESS  IN ('2', '11', '17')) -- khi KSV chưa điều phối
629
					OR (ISNULL(@p_AUTH_STATUS_KT, '') = '')
630
					)
631
				AND	(	A.REQ_PAY_AUTO_TYPE = @p_REQ_PAY_AUTO_TYPE OR ISNULL(@p_REQ_PAY_AUTO_TYPE, '') = '')
632
				--AND	(	A.AUTH_STATUS_KT = @p_AUTH_STATUS_KT OR ISNULL(@p_AUTH_STATUS_KT, '') = '')
633
				AND	(	M.BRANCH_ID = @p_BRANCH_MANAGE_ID OR ISNULL(@p_BRANCH_MANAGE_ID, '') = '')
634
				AND	(	A.CONTRACT_ID = @p_CONTRACT_ID OR ISNULL(@p_CONTRACT_ID, '') = '')
635
				AND	(	A.REQ_PAY_AUTO_STATUS = @p_REQ_PAY_AUTO_STATUS OR ISNULL(@p_REQ_PAY_AUTO_STATUS, '') = '')
636
				AND(	CONVERT(DATE, A.CREATE_DT) >= CONVERT(DATE, @p_FRMDATE, 103) OR ISNULL(@p_FRMDATE, '')= '' OR A.CREATE_DT IS NULL)
637
				AND(	CONVERT(DATE, A.CREATE_DT) <= CONVERT(DATE, @p_TODATE, 103) OR ISNULL(@p_TODATE, '')= '' OR A.CREATE_DT IS NULL)
638
				AND	(	(	@p_LEVEL='ALL' 
639
							AND	(	A.BRANCH_ID IN	(	SELECT BRANCH_ID 
640
														FROM @tmp_branch
641
													) -- PYC cua don vi minh
642
									OR A.BRANCH_ID IN (SELECT * FROM @tmp_branch_auth) -- PYC cua don vi kiem nhiem
643
								)
644
						)
645
						OR	(	
646
									@p_LEVEL='UNIT' 
647
								AND A.BRANCH_ID = @p_BRANCH_ID
648
							)
649
					)
650
				AND	(	A.DEP_ID = @p_DEP_ID 
651
						OR ISNULL(@p_DEP_ID, '') = ''
652
					)
653
				AND	(	A.MAKER_ID = @p_MAKER_ID OR ISNULL(@p_MAKER_ID, '') = '')
654
				AND	(	A.MAKER_ID_KT = @p_MAKER_ID_KT OR ISNULL(@p_MAKER_ID_KT, '') = '')
655
				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)
656
				AND	(
657
						(
658
							EXISTS	(	SELECT TOP 1 * FROM PL_REQUEST_PROCESS_CHILD X WHERE	REQ_ID = A.REQ_PAY_AUTO_ID 
659
																								AND (
660
																										X.TLNAME= @p_USER_LOGIN 
661
																										OR X.TLNAME =@p_EXEC_USER_KT
662
																									)
663
									)
664
						) 
665
						OR	(A.MAKER_ID_KT = @p_MAKER_ID_KT OR PC3.TLNAME = @p_MAKER_ID_KT)
666
						OR (SELECT COUNT(*) FROM @TABLE_ROLE WHERE ROLE_AUTH = 'KSV') > 0
667
					)	
668
				AND	(	(	A.MAKER_ID_KT IS NOT NULL 
669
							AND @p_IS_UPDATE_KT='Y'
670
						)
671
						OR	(	(	A.MAKER_ID_KT IS NULL 
672
									AND @p_IS_UPDATE_KT='N'
673
								)
674
							)
675
						OR @p_IS_UPDATE_KT IS NULL 
676
						OR @p_IS_UPDATE_KT=''
677
					)
678
				
679
				-- END FILTER
680
			ORDER BY A.CREATE_DT DESC
681
	-- PAGING END
682
		END;
683
		ELSE 
684
		BEGIN
685
	-- PAGING BEGIN
686
				SELECT A.*,
687
				--B.BRANCH_CODE, B.BRANCH_NAME,
688
				CASE	WHEN	(	SELECT TOP 1 BRANCH_ID 
689
									FROM TR_CONTRACT 
690
									WHERE CONTRACT_ID = A.CONTRACT_ID
691
								) <> 'DV0001'
692
								THEN  B.BRANCH_NAME + ISNULL	(	' - ' + (	SELECT TOP 1 BRANCH_NAME 
693
																						FROM CM_BRANCH 
694
																						WHERE BRANCH_ID =	(	SELECT TOP 1 BRANCH_ID 
695
																												FROM TR_CONTRACT 
696
																												WHERE CONTRACT_ID = A.CONTRACT_ID
697
																											)
698
																			),''
699
																)
700
						ELSE B.BRANCH_NAME 
701
				END BRANCH_NAME,
702
				C.DEP_CODE, C.DEP_NAME, 
703
				D.CONTRACT_CODE, D.[CONTRACT_NAME], 
704
				E.TLFullName AS MAKER_NAME, 
705
				F.TLFullName AS MAKER_NAME_KT, 
706
				G.TLFullName AS CHECKER_NAME_KT,
707
				H.CONTENT AS REQ_PAY_AUTO_STATUS_NAME,
708
				I.CONTENT AS REQ_PAY_AUTO_TYPE_NAME,
709
				J.CONTENT AS AUTH_STATUS_NAME,
710
				K.CONTENT AS AUTH_STATUS_KT_NAME,
711
				L.TLFullName AS TRANSFER_USER_RECEIVE_NAME,
712
				M.BRANCH_CODE AS BRANCH_MANAGE_CODE, M.BRANCH_NAME AS BRANCH_MANAGE_NAME
713
	-- SELECT END
714
				FROM TR_REQ_PAYMENT_AUTO A
715
				LEFT JOIN CM_BRANCH B ON A.BRANCH_ID = B.BRANCH_ID
716
				LEFT JOIN CM_DEPARTMENT C ON A.DEP_ID = C.DEP_ID
717
				LEFT JOIN TR_CONTRACT D ON A.CONTRACT_ID = D.CONTRACT_ID
718
				LEFT JOIN TL_USER E ON A.MAKER_ID = E.TLNANME
719
				LEFT JOIN TL_USER F ON A.MAKER_ID_KT = F.TLNANME
720
				LEFT JOIN TL_USER G ON A.CHECKER_ID_KT = G.TLNANME
721
				LEFT JOIN CM_ALLCODE H ON A.REQ_PAY_AUTO_STATUS = H.CDVAL AND H.CDNAME = 'PAY_AUTO_STATUS' AND H.CDTYPE = 'REQ_AUTO'
722
				LEFT JOIN CM_ALLCODE I ON A.REQ_PAY_AUTO_TYPE = I.CDVAL AND I.CDNAME = 'PAY_TYPE_AUTO' AND I.CDTYPE = 'REQ_AUTO'
723
				LEFT JOIN CM_ALLCODE J ON A.AUTH_STATUS = J.CDVAL AND J.CDNAME = 'AUTH_STATUS' AND J.CDTYPE = 'TR_REQ_PAYMENT'
724
				LEFT JOIN CM_ALLCODE K ON A.AUTH_STATUS_KT = K.CDVAL AND K.CDNAME = 'AUTH_STATUS_KT' AND K.CDTYPE = 'TR_REQ_PAYMENT'
725
				LEFT JOIN TL_USER L ON A.TRANSFER_USER_RECEIVE = L.TLNANME
726
				LEFT JOIN CM_BRANCH M ON A.BRANCH_MANAGE_ID = M.BRANCH_ID
727
				LEFT JOIN PL_REQUEST_PROCESS_CHILD PC3 ON PC3.REQ_ID = A.REQ_PAY_AUTO_ID AND PC3.STATUS_JOB ='C' 
728
				WHERE 1=1 
729
				-- BEGIN FILTER
730
				AND A.AUTH_STATUS IN ('A', 'N', 'D')
731
				AND	(	A.REQ_PAY_AUTO_ID = @p_REQ_PAY_AUTO_ID OR ISNULL(@p_REQ_PAY_AUTO_ID, '') = '')
732
				AND	(	A.REQ_PAY_AUTO_CODE = @p_REQ_PAY_AUTO_CODE OR ISNULL(@p_REQ_PAY_AUTO_CODE, '') = '')
733
				--AND	(	A.AUTH_STATUS = @p_AUTH_STATUS OR ISNULL(@p_AUTH_STATUS, '') = '')
734
				AND (	(@p_AUTH_STATUS_KT = A.AUTH_STATUS_KT) -- dùng cho từ chối
735
					OR	(@p_AUTH_STATUS_KT = 'U' AND A.PROCESS IN ('3', '12', '18')) -- chờ duyệt
736
					OR	(@p_AUTH_STATUS_KT = 'P' AND A.PROCESS IN ('4', '13', '13.1', '19', '19.1')) -- đang xử lý
737
					OR	(@p_AUTH_STATUS_KT = 'S' AND A.PROCESS IN ('4', '13.1', '19.1')) -- đề xuất từ chối
738
					OR	(@p_AUTH_STATUS_KT = 'A' AND A.PROCESS IN ('5', '14', '20')) -- đã duyệt
739
					OR	(@p_AUTH_STATUS_KT = 'R' AND A.PROCESS IN ('20.2', '14.2')) -- từ chối
740
					OR (ISNULL(@p_AUTH_STATUS_KT, '') = '' AND A.PROCESS  IN ('2', '11', '17')) -- khi KSV chưa điều phối
741
					OR (ISNULL(@p_AUTH_STATUS_KT, '') = '')
742
					)
743
				AND	(	A.REQ_PAY_AUTO_TYPE = @p_REQ_PAY_AUTO_TYPE OR ISNULL(@p_REQ_PAY_AUTO_TYPE, '') = '')
744
				--AND	(	A.AUTH_STATUS_KT = @p_AUTH_STATUS_KT OR ISNULL(@p_AUTH_STATUS_KT, '') = '')
745
				AND	(	M.BRANCH_ID = @p_BRANCH_MANAGE_ID OR ISNULL(@p_BRANCH_MANAGE_ID, '') = '')
746
				AND	(	A.CONTRACT_ID = @p_CONTRACT_ID OR ISNULL(@p_CONTRACT_ID, '') = '')
747
				AND	(	A.REQ_PAY_AUTO_STATUS = @p_REQ_PAY_AUTO_STATUS OR ISNULL(@p_REQ_PAY_AUTO_STATUS, '') = '')
748
				AND(	CONVERT(DATE, A.CREATE_DT) >= CONVERT(DATE, @p_FRMDATE, 103) OR ISNULL(@p_FRMDATE, '')= '' OR A.CREATE_DT IS NULL)
749
				AND(	CONVERT(DATE, A.CREATE_DT) <= CONVERT(DATE, @p_TODATE, 103) OR ISNULL(@p_TODATE, '')= '' OR A.CREATE_DT IS NULL)
750
				AND	(	(	@p_LEVEL='ALL' 
751
							AND	(	A.BRANCH_ID IN	(	SELECT BRANCH_ID 
752
														FROM @tmp_branch
753
													) -- PYC cua don vi minh
754
									OR A.BRANCH_ID IN (SELECT * FROM @tmp_branch_auth) -- PYC cua don vi kiem nhiem
755
								)
756
						)
757
						OR	(	
758
									@p_LEVEL='UNIT' 
759
								AND A.BRANCH_ID = @p_BRANCH_ID
760
							)
761
					)
762
				AND	(	A.DEP_ID = @p_DEP_ID 
763
						OR ISNULL(@p_DEP_ID, '') = ''
764
					)
765
				AND	(	A.MAKER_ID = @p_MAKER_ID OR ISNULL(@p_MAKER_ID, '') = '')
766
				AND	(	A.MAKER_ID_KT = @p_MAKER_ID_KT OR ISNULL(@p_MAKER_ID_KT, '') = '')
767
				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)
768
				AND	(
769
						(
770
							EXISTS	(	SELECT TOP 1 * FROM PL_REQUEST_PROCESS_CHILD X WHERE	REQ_ID = A.REQ_PAY_AUTO_ID 
771
																								AND (
772
																										X.TLNAME= @p_USER_LOGIN 
773
																										OR X.TLNAME =@p_EXEC_USER_KT
774
																									)
775
									)
776
						) 
777
						OR	(A.MAKER_ID_KT = @p_MAKER_ID_KT OR PC3.TLNAME = @p_MAKER_ID_KT)
778
						OR (SELECT COUNT(*) FROM @TABLE_ROLE WHERE ROLE_AUTH = 'KSV') > 0
779
					)	
780
				AND	(	(	A.MAKER_ID_KT IS NOT NULL 
781
							AND @p_IS_UPDATE_KT='Y'
782
						)
783
						OR	(	(	A.MAKER_ID_KT IS NULL 
784
									AND @p_IS_UPDATE_KT='N'
785
								)
786
							)
787
						OR @p_IS_UPDATE_KT IS NULL 
788
						OR @p_IS_UPDATE_KT=''
789
					)
790
				
791
				-- END FILTER
792
			ORDER BY A.CREATE_DT DESC
793
	-- PAGING END
794
	   END;
795
	END
796

    
797
END -- PAGING