Project

General

Profile

pay_search_2.txt

Luc Tran Van, 07/05/2023 11:18 AM

 
1
-- PROCEDURE NAME: TR_REQ_PAYMENT_Search
2

    
3
DECLARE @p_REQ_PAY_ID varchar(15) = NULL,
4
@p_REQ_PAY_CODE varchar(50) = NULL,
5
@p_REQ_DT varchar(20) = NULL,
6
@p_BRANCH_ID varchar(15) = NULL,
7
@p_DEP_ID varchar(15) = NULL,
8
@p_REQ_REASON nvarchar(MAX) = NULL,
9
@p_REQ_TYPE varchar(15) = NULL,
10
@P_REQ_ENTRIES nvarchar(MAX) = NULL,
11
@p_REQ_DESCRIPTION nvarchar(MAX) = NULL,
12
@p_REF_ID varchar(15) = NULL,
13
@p_RECEIVER_PO nvarchar(250) = NULL,
14
@p_REQ_PAY_TYPE varchar(15) = NULL,
15
@p_REQ_TYPE_CURRENCY nvarchar(50) = NULL,
16
@p_REQ_AMT decimal = NULL,
17
@p_REQ_TEMP_AMT decimal = NULL,
18
@p_MAKER_ID varchar(15) = NULL,
19
@p_CREATE_DT varchar(25) = NULL,
20
@p_EDITOR_ID varchar(15) = NULL,
21
@p_AUTH_STATUS varchar(1) = NULL,
22
@p_CHECKER_ID varchar(15) = NULL,
23
@p_APPROVE_DT varchar(25) = NULL,
24
@p_CREATE_DT_KT varchar(25) = NULL,
25
@p_MAKER_ID_KT varchar(15) = NULL,
26
@p_AUTH_STATUS_KT varchar(1) = NULL,
27
@p_CHECKER_ID_KT nvarchar(20) = NULL,
28
@p_EXEC_USER_KT nvarchar(20) = NULL,
29
@p_APPROVE_DT_KT varchar(25) = NULL,
30
@p_CONFIRM_NOTE nvarchar(500) = NULL,
31
@p_BRANCH_CREATE varchar(15) = N'BRN000000000824',
32
@p_NOTES varchar(15) = NULL,
33
@p_RECORD_STATUS varchar(1) = NULL,
34
@p_TRANSFER_MAKER nvarchar(50) = NULL,
35
@p_TRANSFER_DT varchar(25) = NULL,
36
@p_TRASFER_USER_RECIVE varchar(15) = NULL,
37
@p_PROCESS varchar(15) = NULL,
38
@p_PAY_PHASE varchar(15) = NULL,
39
@p_TOP int = NULL,
40
@p_LEVEL varchar(10) = N'ALL',
41
@p_FRMDATE varchar(20) = NULL,
42
@p_TODATE varchar(20) = N'05/07/2023 00:00:00',
43
@p_BRANCH_LOGIN varchar(15) = N'BRN000000000824',
44
@p_IS_UPDATE_KT varchar(15) = NULL,
45
@P_IS_TRANSFER varchar(15) = NULL,
46
@p_TERM_ID varchar(15) = NULL,
47
@P_USER_LOGIN varchar(15) = N'nhungtt',
48
@p_FUNCTION varchar(15) = NULL,
49
@p_IS_CREATE_AUTO varchar(15) = NULL,
50
@p_TYPE_SEARCH varchar(15) = N'HC'
51

    
52
--SET @p_TOP = NULL
53
	IF(ISNULL(@p_REQ_PAY_ID, '') <> '')
54
	BEGIN
55
		SET @p_DEP_ID = NULL
56
	END
57

    
58
-- BRANCH TRUYEN TU UI
59
	DECLARE @tmp TABLE(BRANCH_ID VARCHAR(15))
60
	INSERT INTO @tmp  SELECT BRANCH_ID  FROM [dbo].[CM_BRANCH_GETCHILDID](@p_BRANCH_ID)
61

    
62
-- BRANCH LOGIN
63
	DECLARE @tmp_login TABLE(BRANCH_ID varchar(15))
64
	INSERT INTO @tmp_login  SELECT BRANCH_ID  FROM [dbo].[CM_BRANCH_GETCHILDID](@p_BRANCH_LOGIN)
65

    
66
-- USER LOGIN
67
	DECLARE @ROLE_ID VARCHAR(20) , @DEP_ID_LG VARCHAR(15) = NULL, @COST_LG VARCHAR(15), @DVDM_ID VARCHAR(15), @BRANCH_TYPE VARCHAR(15), @BRANCH_TYPE_LG VARCHAR(15)
68
	SET @ROLE_ID = (SELECT ROLENAME FROM TL_USER WHERE TLNANME=@p_USER_LOGIN)
69
	SET @BRANCH_TYPE_LG = (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID=@p_BRANCH_LOGIN)
70
	SET @DEP_ID_LG =(SELECT SECUR_CODE FROM TL_USER WHERE TLNANME=@p_USER_LOGIN)
71
	SET @COST_LG =(SELECT TOP 1 COST_ID FROM PL_COSTCENTER_DT WHERE DEP_ID =@DEP_ID_LG)
72
	SET @DVDM_ID =(SELECT TOP 1 DVDM_ID FROM PL_COSTCENTER WHERE COST_ID =@COST_LG)
73

    
74
-- TABLE ROLE USER
75
	DECLARE @TABLE_ROLE TABLE (ROLE_AUTH VARCHAR(50))  
76
	INSERT INTO @TABLE_ROLE VALUES (@ROLE_ID)
77
	INSERT INTO @TABLE_ROLE SELECT ROLE_NEW FROM TL_SYS_ROLE_MAPPING WHERE	TLNAME = @P_USER_LOGIN  
78
																			AND (CONVERT(DATE,GETDATE(),103) >= CONVERT(DATE,EFF_DATE, 103) OR EFF_DATE IS NULL OR EFF_DATE ='')
79
																			AND (CONVERT(DATE, GETDATE(),103) <=CONVERT(DATE,EXP_DATE, 103) OR EXP_DATE IS NULL OR EXP_DATE ='') 
80
																			AND RECORD_STATUS = '1'
81

    
82
-- PHÒNG BAN ỦY QUYỀN KIÊM NHIỆM
83
	DECLARE @DEP_AUTH TABLE (DEP_AUTH VARCHAR(15))
84
	INSERT INTO @DEP_AUTH VALUES (@DEP_ID_LG)
85
	-- LUCTV 19.10.2022 BO SUNG THEM PHONG BAN CHA SE THAY DANH SACH PHONG BAN CON
86
	INSERT INTO @DEP_AUTH SELECT DEP_ID FROM CM_DEPARTMENT WHERE FATHER_ID = @DEP_ID_LG
87
	INSERT INTO @DEP_AUTH	SELECT DEP_ID FROM TL_SYS_ROLE_MAPPING WHERE	TLNAME =@P_USER_LOGIN 
88
																			AND (CONVERT(DATE,GETDATE(),103) >= CONVERT(DATE,EFF_DATE, 103) OR EFF_DATE IS NULL OR EFF_DATE ='')
89
																			AND (CONVERT(DATE, GETDATE(),103) <=CONVERT(DATE,EXP_DATE, 103) OR EXP_DATE IS NULL OR EXP_DATE ='') 
90
																			AND RECORD_STATUS = '1'
91
-- PHÒNG BAN ỦY QUYỀN KIÊM NHIỆM CÓ QUYỀN DUYỆT PHIẾU
92
	DECLARE @DEP_IS_TDV TABLE (DEP_AUTH VARCHAR(15))
93
	INSERT INTO @DEP_IS_TDV	SELECT DEP_ID FROM TL_SYS_ROLE_MAPPING WHERE	TLNAME = @P_USER_LOGIN 
94
																			AND ROLE_NEW IN ('TPGD','GDDV','PGD','PTGD','TGD','HDQT','TP','PP','TBP','KTT','GDK','KSV','TC','NVTC','TPTC','PPGD')
95
																			AND (CONVERT(DATE,GETDATE(),103) >= CONVERT(DATE,EFF_DATE, 103) OR EFF_DATE IS NULL OR EFF_DATE ='')
96
																			AND (CONVERT(DATE, GETDATE(),103) <=CONVERT(DATE,EXP_DATE, 103) OR EXP_DATE IS NULL OR EXP_DATE ='') 
97
																			AND RECORD_STATUS = '1'
98

    
99

    
100

    
101
-- ĐƠN VỊ ỦY QUYỀN KIÊM NHIỆM
102
	DECLARE @BRANCH_AUTH TABLE (BRN_AUTH VARCHAR(15))
103
	INSERT INTO @BRANCH_AUTH VALUES (@p_BRANCH_LOGIN)
104
	INSERT INTO @BRANCH_AUTH SELECT BRANCH_ID FROM TL_SYS_ROLE_MAPPING  WHERE	TLNAME = @P_USER_LOGIN 
105
																				AND (CONVERT(DATE,GETDATE(),103) >= CONVERT(DATE,EFF_DATE, 103) OR EFF_DATE IS NULL OR EFF_DATE ='')
106
																				AND (CONVERT(DATE, GETDATE(),103) <=CONVERT(DATE,EXP_DATE, 103) OR EXP_DATE IS NULL OR EXP_DATE ='') 
107
																				AND RECORD_STATUS = '1'
108
-- ĐƠN VỊ ỦY QUYỀN KIÊM NHIỆM CÓ QUYỀN DUYỆT
109
	DECLARE @BRANCH_IS_TDV TABLE (BRN_AUTH VARCHAR(15))
110
	INSERT INTO @BRANCH_IS_TDV SELECT BRANCH_ID FROM TL_SYS_ROLE_MAPPING WHERE	TLNAME = @P_USER_LOGIN 
111
																				AND ROLE_NEW IN ('TPGD','GDDV','PGD','PTGD','TGD','HDQT','TP','PP','TBP','KTT','GDK','KSV','TC','NVTC','TPTC','PPGD')
112
																				AND (CONVERT(DATE,GETDATE(),103) >= CONVERT(DATE,EFF_DATE, 103) OR EFF_DATE IS NULL OR EFF_DATE ='')
113
																				AND (CONVERT(DATE, GETDATE(),103) <=CONVERT(DATE,EXP_DATE, 103) OR EXP_DATE IS NULL OR EXP_DATE ='') 
114
																				AND RECORD_STATUS = '1'
115

    
116
--- NEU USER KHONG CHON TU NGAY THI TU NGAY BANG NGAY 1 1 HANG THANG 20211116
117
	DECLARE @DATE DATE
118
	IF ((@p_FRMDATE IS NULL OR @p_FRMDATE ='') AND ISNULL(@p_REQ_PAY_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
119
	BEGIN
120
		SET @DATE = CONVERT(DATE,GETDATE(),103)
121
		SET @DATE = DATEADD(MONTH,-2,@DATE)
122
	END
123
	ELSE
124
	BEGIN
125
		SET @DATE = CONVERT(DATE,@p_FRMDATE,103)
126
	END
127

    
128
--DOANPTT: XÁC ĐỊNH USER XEM TOÀN BỘ PHIẾU
129
	DECLARE @IS_VIEW_ALL VARCHAR(1) 
130
	IF((SELECT COUNT(*) FROM @TABLE_ROLE WHERE ROLE_AUTH IN ('KSV', 'GDV', 'NVTC')) > 0)		-- ROLE CHỈ ĐỊNH
131
	BEGIN
132
		SET @IS_VIEW_ALL = 'Y'
133
	END
134
	ELSE IF(@DEP_ID_LG = 'DEP000000000022')														-- PHÒNG CHỈ ĐỊNH
135
	BEGIN
136
		SET @IS_VIEW_ALL = 'Y'
137
	END
138
	ELSE IF(@P_USER_LOGIN = 'baotq')															-- USER CHỈ ĐỊNH
139
	BEGIN
140
		SET @IS_VIEW_ALL = 'Y'
141
	END
142
	ELSE
143
	BEGIN
144
		SET @IS_VIEW_ALL = 'N'
145
	END
146

    
147
--DOANPTT: XÁC ĐỊNH USER CÓ ĐƯỢC XEM HẾT PHIẾU CỦA PHÒNG MÌNH HAY KHÔNG
148
	DECLARE @IS_SEE_ALL_HC VARCHAR(1) 
149
	IF((SELECT COUNT(*) FROM PL_ROLE_DATA_CONFIG WHERE BRANCH_ID = @P_USER_LOGIN AND ROLE_TYPE = 'TR_REQ_PAYMENT') > 0)
150
	BEGIN
151
		SET @IS_SEE_ALL_HC = 'Y'
152
	END
153
	ELSE
154
	BEGIN
155
		SET @IS_SEE_ALL_HC = 'N'
156
	END
157

    
158
-- RoleName Rỗng sẽ cập nhật lại
159
	SET  @ROLE_ID =(SELECT TOP 1 RoleName FROM TL_USER WHERE TLNANME =@p_USER_LOGIN)
160
	IF(@ROLE_ID IS NOT NULL AND @ROLE_ID <>'' AND @ROLE_ID IN ('TPGD','GDDV','PGD','PTGD','TGD','HDQT','TP','PP','TBP','KTT','GDK','KSV','TC','NVTC','TPTC','PPGD'))
161
	BEGIN
162
		PRINT @ROLE_ID
163
	END
164
	ELSE
165
	BEGIN
166
		SET @ROLE_ID =(SELECT TOP 1 RoleName FROM TL_USER_V2 WHERE TLNANME =@p_USER_LOGIN)
167
		IF(@ROLE_ID IS NULL OR @ROLE_ID ='')
168
		BEGIN
169
			SET @ROLE_ID =(SELECT TOP 1 ROLE_NEW FROM TL_SYS_ROLE_MAPPING WHERE ROLE_OLD =(SELECT TOP 1 ROLENAME FROM TL_USER WHERE TLNANME=@p_USER_LOGIN))
170
		END
171
	END
172
	INSERT INTO @TABLE_ROLE VALUES (@ROLE_ID)--2021823
173

    
174

    
175
-- CHECK NGUOI DUYET
176
	DECLARE @IS_TDV VARCHAR(1) = 'N'
177
	IF	(		
178
				(	SELECT COUNT(*) 
179
					FROM @TABLE_ROLE A 
180
					WHERE A.ROLE_AUTH IN ('TPGD','GDDV','PGD','PTGD','TGD','HDQT','TP','PP','TBP','KTT','GDK','KSV','TC','NVTC','TPTC','PPGD')
181
				) = 0
182
		)
183
	BEGIN
184
		SET @IS_TDV = 'N'
185
	END
186
	ELSE
187
	BEGIN
188
		SET @IS_TDV = 'Y'
189
	END
190

    
191
IF('NVTC_KT' IN (SELECT ROLE_AUTH FROM @TABLE_ROLE) AND @p_TYPE_SEARCH = 'KT')
192
BEGIN
193
	IF(@p_TOP IS NULL OR @p_TOP=0)
194
	BEGIN
195
	-- PAGING BEGIN
196
BEGIN
197
SELECT COUNT(*) FROM(
198
		SELECT A.*,B.AUTH_STATUS_NAME, C.AUTH_STATUS_NAME AUTH_STATUS_NAME_KT, TL.TLFullName CREATE_FULLNAME, C.AUTH_STATUS_KT_DESC,
199
		TL1.TLFullName APPROVE_FULLNAME,
200
		CASE WHEN ISNULL(TL2.TLFullName,'') <>'' THEN TL2.TLFullName ELSE TL8.TLFullName END AS CREATE_FULLNAME_KT,
201
		TL3.TLFullName APPROVE_FULLNAME_KT,
202
		CASE WHEN ISNULL(A.IS_PERIOD,'') <> '' AND A.IS_PERIOD ='Y' AND  EXISTS (SELECT TOP 1 X.* FROM TR_REQ_ADVANCE_DT X 
203
										INNER JOIN TR_CONTRACT CT ON X.REF_ID = CT.CONTRACT_ID
204
										WHERE X.REQ_PAY_ID = A.REQ_PAY_ID AND CT.BRANCH_ID <>  @p_BRANCH_LOGIN AND CT.BRANCH_ID IS NOT NULL AND CT.BRANCH_ID <> '') THEN 
205
										BR.BRANCH_NAME + ISNULL(' - '+ (SELECT TOP 1 BRANCH_NAME FROM CM_BRANCH WHERE BRANCH_ID =(SELECT TOP 1 BRANCH_ID FROM TR_CONTRACT WHERE CONTRACT_ID IN (SELECT TOP 1 REF_ID FROM TR_REQ_ADVANCE_DT 
206
										WHERE REQ_PAY_ID = A.REQ_PAY_ID))),'')
207
										ELSE BR.BRANCH_NAME END BRANCH_NAME_REQ,
208
		BR1.BRANCH_NAME BRANCH_NAME_CRE, DP.DEP_NAME, DP.DEP_CODE, BR.BRANCH_CODE BRANCH_CODE_REQ,
209
		BR1.BRANCH_CODE BRANCH_CODE_CRE, AL.CONTENT REQ_TYPE_NAME,AL1.CONTENT REQ_PAY_TYPE_NAME, ISNULL((A.REQ_AMT -H.SOTIEN_TT),0) AS TOTAL_AMT_TEMP, 
210
		ISNULL(H.SOTIEN_TT,0) TOTAL_AMT_PAY_HIS,
211
		TL4.TLFullName AS TRANSFER_FULLNAME,TL5.TLFullName AS TRANSFER_RECIEVER_FULLNAME,'' EMP_FULLNAME,PO.PO_CODE, PO.PO_NAME, S.SUP_NAME,S.TAX_NO SUP_TAX_NO,
212
		PC3.LEVEL_JOB, PC3.STATUS_JOB,PC3.TYPE_JOB,
213
		@p_TYPE_SEARCH AS TYPE_SEARCH,SR.ROLE_ID AS ROLE_ID_CRE,CASE WHEN BR1.BRANCH_TYPE <> 'PGD'THEN BR1.BRANCH_TYPE ELSE 'CN' END AS BRANCH_TYPE_CR,
214
		BR_CORE.BRANCH_CODE AS BRANCH_CODE_CORE, BR_CORE.BRANCH_NAME AS BRANCH_NAME_CORE,'' AS BRANCH_CODE_CONTRACT,
215
		ISNULL((SELECT TOP 1 BRANCH_NAME FROM CM_BRANCH WHERE BRANCH_ID =(SELECT TOP 1 BRANCH_ID FROM TR_CONTRACT WHERE CONTRACT_ID IN (SELECT TOP 1 REF_ID FROM TR_REQ_ADVANCE_DT WHERE REQ_PAY_ID = A.REQ_PAY_ID))),'')
216
		AS BRANCH_NAME_CONTRACT,
217
		--doanptt 300622
218
		CASE WHEN PC3.TLNAME IS NOT NULL THEN PC3.TLNAME 
219
				WHEN PC3.TLNAME <>'' THEN PC3.TLNAME 
220
				ELSE TL2.TLNANME END AS EXEC_USER,
221
		dbo.FN_DATEDIFF_WITHOUT_WEEKEND(A.TRANSFER_DT, GETDATE()) AS NUMBER_OF_TRANSFER,
222
		PC3.TLNAME AS EXEC_USER_KT,
223
		CASE WHEN ISNULL(A.CREATE_DT_KT, '') <> '' AND A.AUTH_STATUS_KT IN('P', 'S')  THEN dbo.FN_DATEDIFF_WITHOUT_WEEKEND(A.CREATE_DT_KT, GETDATE())
224
			ELSE 0 END AS NUMBER_OF_SEND_APPR,
225
		L.REQ_PAY_AUTO_ID, L.REQ_PAY_AUTO_CODE,
226
		dbo.FN_GET_NEXT_USER_PAYMENT(A.REQ_PAY_ID, A.MAKER_ID, A.BRANCH_ID, A.DEP_ID, A.AUTH_STATUS, A.AUTH_STATUS_KT, A.TRASFER_USER_RECIVE, A.PROCESS) AS NEXT_USER
227
	-- SELECT END
228
		FROM TR_REQ_PAYMENT A
229
			LEFT JOIN CM_AUTH_STATUS B ON A.AUTH_STATUS=B.AUTH_STATUS
230
			LEFT JOIN CM_AUTH_STATUS C ON A.AUTH_STATUS_KT=C.AUTH_STATUS
231
			LEFT JOIN TL_USER TL ON A.MAKER_ID=TL.TLNANME
232
			LEFT JOIN TL_USER TL1 ON A.CHECKER_ID=TL1.TLNANME
233
			LEFT JOIN TL_USER TL2 ON A.MAKER_ID_KT=TL2.TLNANME
234
			LEFT JOIN TL_USER TL3 ON A.CHECKER_ID_KT=TL3.TLNANME
235
			LEFT JOIN dbo.CM_BRANCH BR ON A.BRANCH_ID=BR.BRANCH_ID
236
			LEFT JOIN dbo.CM_BRANCH BR1 ON A.BRANCH_CREATE=BR1.BRANCH_ID
237
			LEFT JOIN dbo.CM_DEPARTMENT DP ON DP.DEP_ID=A.DEP_ID
238
			--Luanlt--2019/10/15-Sửa AL,AL1
239
			LEFT JOIN CM_ALLCODE AL ON A.REQ_TYPE = AL.CDVAL AND AL.CDNAME='PAY_TYPE' AND AL.CDTYPE = 'REQ'
240
			LEFT JOIN CM_ALLCODE AL1 ON A.REQ_PAY_TYPE = AL1.CDVAL AND AL1.CDNAME='REQ_PAY_TYPE' AND AL1.CDTYPE ='REQ'
241
			LEFT JOIN TL_USER TL4 ON A.TRANSFER_MAKER = TL4.TLNANME
242
			LEFT JOIN TL_USER TL5 ON A.TRASFER_USER_RECIVE = TL5.TLNANME
243
			LEFT JOIN 
244
			(
245
			SELECT PAY_ADV_ID, SUM(AMT_PAY) SOTIEN_TT FROM TR_REQ_PAYMENT_DT WHERE AUTH_STATUS_KT ='A' GROUP BY PAY_ADV_ID
246
			) H ON A.REQ_PAY_ID =H.PAY_ADV_ID
247
			LEFT JOIN TR_PO_MASTER PO ON A.REF_ID = PO.PO_ID AND A.REQ_TYPE='P'
248
			LEFT JOIN CM_SUPPLIER S ON S.SUP_ID = PO.SUP_ID AND A.REQ_TYPE='P'
249
			LEFT JOIN PL_REQUEST_PROCESS_CHILD PC3 ON PC3.REQ_ID = A.REQ_PAY_ID AND PC3.STATUS_JOB ='C' 
250
			LEFT JOIN PL_REQUEST_PROCESS_CHILD PC4 ON PC4.REQ_ID = A.REQ_PAY_ID AND PC4.STATUS_JOB ='C'
251
			LEFT JOIN PL_REQUEST_PROCESS_CHILD PC5 ON PC5.REQ_ID = A.REQ_PAY_ID AND PC5.TYPE_JOB ='XL'
252
			LEFT JOIN TL_USER TL8 ON PC5.TLNAME = TL8.TLNANME
253
			LEFT JOIN TL_SYSROLE SR ON TL.RoleName = SR.ROLE_ID
254
			LEFT JOIN CM_BRANCH BR_CORE ON TL2.TLSUBBRID = BR_CORE.BRANCH_ID
255
			LEFT JOIN TR_REQ_PAY_AUTO_PAYMENTS K ON A.REQ_PAY_ID = K.REQ_PAY_ID
256
			LEFT JOIN TR_REQ_PAYMENT_AUTO L ON K.REQ_PAY_AUTO_ID = L.REQ_PAY_AUTO_ID
257
		WHERE 1=1 
258
			AND A.AUTH_STATUS = 'A'
259
			AND A.AUTH_STATUS_KT = 'A'
260
			AND (A.IS_CREATE_AUTO = @p_IS_CREATE_AUTO OR ISNULL(@p_IS_CREATE_AUTO, '') = '')
261
			AND(A.AUTH_STATUS_KT = @p_AUTH_STATUS_KT OR ISNULL(@p_AUTH_STATUS_KT, '') = '')
262
			AND(A.REQ_PAY_ID = @p_REQ_PAY_ID OR ISNULL(@p_REQ_PAY_ID, '') = '')
263
			AND(A.REQ_PAY_CODE = @p_REQ_PAY_CODE OR ISNULL(@p_REQ_PAY_CODE, '') = '')
264
			AND(A.REQ_TYPE = @p_REQ_TYPE OR ISNULL(@p_REQ_TYPE, '') = '')
265
			AND(CONVERT(DATE, A.CREATE_DT)>=CONVERT(DATE, @DATE, 103)OR @p_FRMDATE IS NULL OR @p_FRMDATE='' OR A.CREATE_DT IS NULL)
266
			AND(CONVERT(DATE, A.CREATE_DT)<=CONVERT(DATE, @p_TODATE, 103)OR @p_TODATE IS NULL OR @p_TODATE='' OR A.CREATE_DT IS NULL)
267
			AND(A.REQ_REASON LIKE '%' + @p_REQ_TYPE + '%' OR ISNULL(@p_REQ_TYPE, '') = '')
268
			AND(A.MAKER_ID =@p_MAKER_ID OR ISNULL(@p_MAKER_ID, '') = '')
269
			AND(A.MAKER_ID_KT =@p_MAKER_ID_KT OR ISNULL(@p_MAKER_ID_KT, '') = '')
270
			AND(A.DEP_ID=@p_DEP_ID OR @p_DEP_ID='' OR @p_DEP_ID IS NULL)
271
			AND	(	(	@p_LEVEL='ALL' AND	(	A.BRANCH_ID IN(SELECT BRANCH_ID FROM @tmp) 
272
												OR A.BRANCH_CREATE IN (SELECT * FROM @BRANCH_AUTH)
273
											)
274
					)
275
					OR	(	(	@p_LEVEL='UNIT' 
276
								AND A.BRANCH_ID=@p_BRANCH_ID
277
							)
278
							OR(@p_BRANCH_ID='' OR @p_BRANCH_ID IS NULL) 
279
							OR (	@BRANCH_TYPE_LG <> 'HS' AND
280
									EXISTS	(	SELECT * 
281
												FROM TR_REQ_ADVANCE_DT 
282
												WHERE REQ_PAY_ID = A.REQ_PAY_ID
283
												AND REF_ID IN (SELECT CONTRACT_ID FROM TR_CONTRACT WHERE BRANCH_ID =@p_BRANCH_LOGIN) 
284
												AND A.AUTH_STATUS_KT ='A'
285
											)
286
								)
287
						)
288
				)
289
				  
290
			
291
	) COUNTER_TOP;WITH QUERY_DATA AS ( 
292
		SELECT A.*,B.AUTH_STATUS_NAME, C.AUTH_STATUS_NAME AUTH_STATUS_NAME_KT, TL.TLFullName CREATE_FULLNAME, C.AUTH_STATUS_KT_DESC,
293
		TL1.TLFullName APPROVE_FULLNAME,
294
		CASE WHEN ISNULL(TL2.TLFullName,'') <>'' THEN TL2.TLFullName ELSE TL8.TLFullName END AS CREATE_FULLNAME_KT,
295
		TL3.TLFullName APPROVE_FULLNAME_KT,
296
		CASE WHEN ISNULL(A.IS_PERIOD,'') <> '' AND A.IS_PERIOD ='Y' AND  EXISTS (SELECT TOP 1 X.* FROM TR_REQ_ADVANCE_DT X 
297
										INNER JOIN TR_CONTRACT CT ON X.REF_ID = CT.CONTRACT_ID
298
										WHERE X.REQ_PAY_ID = A.REQ_PAY_ID AND CT.BRANCH_ID <>  @p_BRANCH_LOGIN AND CT.BRANCH_ID IS NOT NULL AND CT.BRANCH_ID <> '') THEN 
299
										BR.BRANCH_NAME + ISNULL(' - '+ (SELECT TOP 1 BRANCH_NAME FROM CM_BRANCH WHERE BRANCH_ID =(SELECT TOP 1 BRANCH_ID FROM TR_CONTRACT WHERE CONTRACT_ID IN (SELECT TOP 1 REF_ID FROM TR_REQ_ADVANCE_DT 
300
										WHERE REQ_PAY_ID = A.REQ_PAY_ID))),'')
301
										ELSE BR.BRANCH_NAME END BRANCH_NAME_REQ,
302
		BR1.BRANCH_NAME BRANCH_NAME_CRE, DP.DEP_NAME, DP.DEP_CODE, BR.BRANCH_CODE BRANCH_CODE_REQ,
303
		BR1.BRANCH_CODE BRANCH_CODE_CRE, AL.CONTENT REQ_TYPE_NAME,AL1.CONTENT REQ_PAY_TYPE_NAME, ISNULL((A.REQ_AMT -H.SOTIEN_TT),0) AS TOTAL_AMT_TEMP, 
304
		ISNULL(H.SOTIEN_TT,0) TOTAL_AMT_PAY_HIS,
305
		TL4.TLFullName AS TRANSFER_FULLNAME,TL5.TLFullName AS TRANSFER_RECIEVER_FULLNAME,'' EMP_FULLNAME,PO.PO_CODE, PO.PO_NAME, S.SUP_NAME,S.TAX_NO SUP_TAX_NO,
306
		PC3.LEVEL_JOB, PC3.STATUS_JOB,PC3.TYPE_JOB,
307
		@p_TYPE_SEARCH AS TYPE_SEARCH,SR.ROLE_ID AS ROLE_ID_CRE,CASE WHEN BR1.BRANCH_TYPE <> 'PGD'THEN BR1.BRANCH_TYPE ELSE 'CN' END AS BRANCH_TYPE_CR,
308
		BR_CORE.BRANCH_CODE AS BRANCH_CODE_CORE, BR_CORE.BRANCH_NAME AS BRANCH_NAME_CORE,'' AS BRANCH_CODE_CONTRACT,
309
		ISNULL((SELECT TOP 1 BRANCH_NAME FROM CM_BRANCH WHERE BRANCH_ID =(SELECT TOP 1 BRANCH_ID FROM TR_CONTRACT WHERE CONTRACT_ID IN (SELECT TOP 1 REF_ID FROM TR_REQ_ADVANCE_DT WHERE REQ_PAY_ID = A.REQ_PAY_ID))),'')
310
		AS BRANCH_NAME_CONTRACT,
311
		--doanptt 300622
312
		CASE WHEN PC3.TLNAME IS NOT NULL THEN PC3.TLNAME 
313
				WHEN PC3.TLNAME <>'' THEN PC3.TLNAME 
314
				ELSE TL2.TLNANME END AS EXEC_USER,
315
		dbo.FN_DATEDIFF_WITHOUT_WEEKEND(A.TRANSFER_DT, GETDATE()) AS NUMBER_OF_TRANSFER,
316
		PC3.TLNAME AS EXEC_USER_KT,
317
		CASE WHEN ISNULL(A.CREATE_DT_KT, '') <> '' AND A.AUTH_STATUS_KT IN('P', 'S')  THEN dbo.FN_DATEDIFF_WITHOUT_WEEKEND(A.CREATE_DT_KT, GETDATE())
318
			ELSE 0 END AS NUMBER_OF_SEND_APPR,
319
		L.REQ_PAY_AUTO_ID, L.REQ_PAY_AUTO_CODE,
320
		dbo.FN_GET_NEXT_USER_PAYMENT(A.REQ_PAY_ID, A.MAKER_ID, A.BRANCH_ID, A.DEP_ID, A.AUTH_STATUS, A.AUTH_STATUS_KT, A.TRASFER_USER_RECIVE, A.PROCESS) AS NEXT_USER
321
	, ROW_NUMBER() OVER (ORDER BY  A.CREATE_DT DESC
322
) AS __ROWNUM-- SELECT END
323
		FROM TR_REQ_PAYMENT A
324
			LEFT JOIN CM_AUTH_STATUS B ON A.AUTH_STATUS=B.AUTH_STATUS
325
			LEFT JOIN CM_AUTH_STATUS C ON A.AUTH_STATUS_KT=C.AUTH_STATUS
326
			LEFT JOIN TL_USER TL ON A.MAKER_ID=TL.TLNANME
327
			LEFT JOIN TL_USER TL1 ON A.CHECKER_ID=TL1.TLNANME
328
			LEFT JOIN TL_USER TL2 ON A.MAKER_ID_KT=TL2.TLNANME
329
			LEFT JOIN TL_USER TL3 ON A.CHECKER_ID_KT=TL3.TLNANME
330
			LEFT JOIN dbo.CM_BRANCH BR ON A.BRANCH_ID=BR.BRANCH_ID
331
			LEFT JOIN dbo.CM_BRANCH BR1 ON A.BRANCH_CREATE=BR1.BRANCH_ID
332
			LEFT JOIN dbo.CM_DEPARTMENT DP ON DP.DEP_ID=A.DEP_ID
333
			--Luanlt--2019/10/15-Sửa AL,AL1
334
			LEFT JOIN CM_ALLCODE AL ON A.REQ_TYPE = AL.CDVAL AND AL.CDNAME='PAY_TYPE' AND AL.CDTYPE = 'REQ'
335
			LEFT JOIN CM_ALLCODE AL1 ON A.REQ_PAY_TYPE = AL1.CDVAL AND AL1.CDNAME='REQ_PAY_TYPE' AND AL1.CDTYPE ='REQ'
336
			LEFT JOIN TL_USER TL4 ON A.TRANSFER_MAKER = TL4.TLNANME
337
			LEFT JOIN TL_USER TL5 ON A.TRASFER_USER_RECIVE = TL5.TLNANME
338
			LEFT JOIN 
339
			(
340
			SELECT PAY_ADV_ID, SUM(AMT_PAY) SOTIEN_TT FROM TR_REQ_PAYMENT_DT WHERE AUTH_STATUS_KT ='A' GROUP BY PAY_ADV_ID
341
			) H ON A.REQ_PAY_ID =H.PAY_ADV_ID
342
			LEFT JOIN TR_PO_MASTER PO ON A.REF_ID = PO.PO_ID AND A.REQ_TYPE='P'
343
			LEFT JOIN CM_SUPPLIER S ON S.SUP_ID = PO.SUP_ID AND A.REQ_TYPE='P'
344
			LEFT JOIN PL_REQUEST_PROCESS_CHILD PC3 ON PC3.REQ_ID = A.REQ_PAY_ID AND PC3.STATUS_JOB ='C' 
345
			LEFT JOIN PL_REQUEST_PROCESS_CHILD PC4 ON PC4.REQ_ID = A.REQ_PAY_ID AND PC4.STATUS_JOB ='C'
346
			LEFT JOIN PL_REQUEST_PROCESS_CHILD PC5 ON PC5.REQ_ID = A.REQ_PAY_ID AND PC5.TYPE_JOB ='XL'
347
			LEFT JOIN TL_USER TL8 ON PC5.TLNAME = TL8.TLNANME
348
			LEFT JOIN TL_SYSROLE SR ON TL.RoleName = SR.ROLE_ID
349
			LEFT JOIN CM_BRANCH BR_CORE ON TL2.TLSUBBRID = BR_CORE.BRANCH_ID
350
			LEFT JOIN TR_REQ_PAY_AUTO_PAYMENTS K ON A.REQ_PAY_ID = K.REQ_PAY_ID
351
			LEFT JOIN TR_REQ_PAYMENT_AUTO L ON K.REQ_PAY_AUTO_ID = L.REQ_PAY_AUTO_ID
352
		WHERE 1=1 
353
			AND A.AUTH_STATUS = 'A'
354
			AND A.AUTH_STATUS_KT = 'A'
355
			AND (A.IS_CREATE_AUTO = @p_IS_CREATE_AUTO OR ISNULL(@p_IS_CREATE_AUTO, '') = '')
356
			AND(A.AUTH_STATUS_KT = @p_AUTH_STATUS_KT OR ISNULL(@p_AUTH_STATUS_KT, '') = '')
357
			AND(A.REQ_PAY_ID = @p_REQ_PAY_ID OR ISNULL(@p_REQ_PAY_ID, '') = '')
358
			AND(A.REQ_PAY_CODE = @p_REQ_PAY_CODE OR ISNULL(@p_REQ_PAY_CODE, '') = '')
359
			AND(A.REQ_TYPE = @p_REQ_TYPE OR ISNULL(@p_REQ_TYPE, '') = '')
360
			AND(CONVERT(DATE, A.CREATE_DT)>=CONVERT(DATE, @DATE, 103)OR @p_FRMDATE IS NULL OR @p_FRMDATE='' OR A.CREATE_DT IS NULL)
361
			AND(CONVERT(DATE, A.CREATE_DT)<=CONVERT(DATE, @p_TODATE, 103)OR @p_TODATE IS NULL OR @p_TODATE='' OR A.CREATE_DT IS NULL)
362
			AND(A.REQ_REASON LIKE '%' + @p_REQ_TYPE + '%' OR ISNULL(@p_REQ_TYPE, '') = '')
363
			AND(A.MAKER_ID =@p_MAKER_ID OR ISNULL(@p_MAKER_ID, '') = '')
364
			AND(A.MAKER_ID_KT =@p_MAKER_ID_KT OR ISNULL(@p_MAKER_ID_KT, '') = '')
365
			AND(A.DEP_ID=@p_DEP_ID OR @p_DEP_ID='' OR @p_DEP_ID IS NULL)
366
			AND	(	(	@p_LEVEL='ALL' AND	(	A.BRANCH_ID IN(SELECT BRANCH_ID FROM @tmp) 
367
												OR A.BRANCH_CREATE IN (SELECT * FROM @BRANCH_AUTH)
368
											)
369
					)
370
					OR	(	(	@p_LEVEL='UNIT' 
371
								AND A.BRANCH_ID=@p_BRANCH_ID
372
							)
373
							OR(@p_BRANCH_ID='' OR @p_BRANCH_ID IS NULL) 
374
							OR (	@BRANCH_TYPE_LG <> 'HS' AND
375
									EXISTS	(	SELECT * 
376
												FROM TR_REQ_ADVANCE_DT 
377
												WHERE REQ_PAY_ID = A.REQ_PAY_ID
378
												AND REF_ID IN (SELECT CONTRACT_ID FROM TR_CONTRACT WHERE BRANCH_ID =@p_BRANCH_LOGIN) 
379
												AND A.AUTH_STATUS_KT ='A'
380
											)
381
								)
382
						)
383
				)
384
				  
385
			
386
	) SELECT * FROM QUERY_DATA WHERE __ROWNUM > 0 AND __ROWNUM <= 10
387
END-- PAGING END
388
		END;
389
    ELSE 
390
	BEGIN
391
-- PAGING BEGIN
392
BEGIN
393
SELECT COUNT(*) FROM(
394
        SELECT TOP(CONVERT(INT,@p_TOP)) A.*,B.AUTH_STATUS_NAME, C.AUTH_STATUS_NAME AUTH_STATUS_NAME_KT, TL.TLFullName CREATE_FULLNAME, C.AUTH_STATUS_KT_DESC,
395
		TL1.TLFullName APPROVE_FULLNAME,
396
		CASE WHEN ISNULL(TL2.TLFullName,'') <>'' THEN TL2.TLFullName ELSE TL8.TLFullName END AS CREATE_FULLNAME_KT,
397
		TL3.TLFullName APPROVE_FULLNAME_KT,
398
		CASE WHEN ISNULL(A.IS_PERIOD,'') <> '' AND A.IS_PERIOD ='Y' AND  EXISTS (SELECT TOP 1 X.* FROM TR_REQ_ADVANCE_DT X 
399
										INNER JOIN TR_CONTRACT CT ON X.REF_ID = CT.CONTRACT_ID
400
										WHERE X.REQ_PAY_ID = A.REQ_PAY_ID AND CT.BRANCH_ID <>  @p_BRANCH_LOGIN AND CT.BRANCH_ID IS NOT NULL AND CT.BRANCH_ID <> '') THEN 
401
										BR.BRANCH_NAME + ISNULL(' - '+ (SELECT TOP 1 BRANCH_NAME FROM CM_BRANCH WHERE BRANCH_ID =(SELECT TOP 1 BRANCH_ID FROM TR_CONTRACT WHERE CONTRACT_ID IN (SELECT TOP 1 REF_ID FROM TR_REQ_ADVANCE_DT 
402
										WHERE REQ_PAY_ID = A.REQ_PAY_ID))),'')
403
										ELSE BR.BRANCH_NAME END BRANCH_NAME_REQ,
404
		BR1.BRANCH_NAME BRANCH_NAME_CRE, DP.DEP_NAME, DP.DEP_CODE, BR.BRANCH_CODE BRANCH_CODE_REQ,
405
		BR1.BRANCH_CODE BRANCH_CODE_CRE, AL.CONTENT REQ_TYPE_NAME,AL1.CONTENT REQ_PAY_TYPE_NAME, ISNULL((A.REQ_AMT -H.SOTIEN_TT),0) AS TOTAL_AMT_TEMP, 
406
		ISNULL(H.SOTIEN_TT,0) TOTAL_AMT_PAY_HIS,
407
		TL4.TLFullName AS TRANSFER_FULLNAME,TL5.TLFullName AS TRANSFER_RECIEVER_FULLNAME,'' EMP_FULLNAME,PO.PO_CODE, PO.PO_NAME, S.SUP_NAME,S.TAX_NO SUP_TAX_NO,
408
		PC3.LEVEL_JOB, PC3.STATUS_JOB,PC3.TYPE_JOB,
409
		@p_TYPE_SEARCH AS TYPE_SEARCH,SR.ROLE_ID AS ROLE_ID_CRE,CASE WHEN BR1.BRANCH_TYPE <> 'PGD'THEN BR1.BRANCH_TYPE ELSE 'CN' END AS BRANCH_TYPE_CR,
410
		BR_CORE.BRANCH_CODE AS BRANCH_CODE_CORE, BR_CORE.BRANCH_NAME AS BRANCH_NAME_CORE,'' AS BRANCH_CODE_CONTRACT,
411
		ISNULL((SELECT TOP 1 BRANCH_NAME FROM CM_BRANCH WHERE BRANCH_ID =(SELECT TOP 1 BRANCH_ID FROM TR_CONTRACT WHERE CONTRACT_ID IN (SELECT TOP 1 REF_ID FROM TR_REQ_ADVANCE_DT WHERE REQ_PAY_ID = A.REQ_PAY_ID))),'')
412
		AS BRANCH_NAME_CONTRACT,
413
		--doanptt 300622
414
		CASE WHEN PC3.TLNAME IS NOT NULL THEN PC3.TLNAME 
415
			 WHEN PC3.TLNAME <>'' THEN PC3.TLNAME 
416
			 ELSE TL2.TLNANME END AS EXEC_USER,
417
		dbo.FN_DATEDIFF_WITHOUT_WEEKEND(A.TRANSFER_DT, GETDATE()) AS NUMBER_OF_TRANSFER,
418
		PC3.TLNAME AS EXEC_USER_KT,
419
		CASE WHEN ISNULL(A.CREATE_DT_KT, '') <> '' AND A.AUTH_STATUS_KT IN('P', 'S')  THEN dbo.FN_DATEDIFF_WITHOUT_WEEKEND(A.CREATE_DT_KT, GETDATE())
420
			 ELSE 0 END AS NUMBER_OF_SEND_APPR,
421
		L.REQ_PAY_AUTO_ID, L.REQ_PAY_AUTO_CODE,
422
		dbo.FN_GET_NEXT_USER_PAYMENT(A.REQ_PAY_ID, A.MAKER_ID, A.BRANCH_ID, A.DEP_ID, A.AUTH_STATUS, A.AUTH_STATUS_KT, A.TRASFER_USER_RECIVE, A.PROCESS) AS NEXT_USER
423
-- SELECT END
424
        FROM TR_REQ_PAYMENT A
425
			LEFT JOIN CM_AUTH_STATUS B ON A.AUTH_STATUS=B.AUTH_STATUS
426
			LEFT JOIN CM_AUTH_STATUS C ON A.AUTH_STATUS_KT=C.AUTH_STATUS
427
			LEFT JOIN TL_USER TL ON A.MAKER_ID=TL.TLNANME
428
			LEFT JOIN TL_USER TL1 ON A.CHECKER_ID=TL1.TLNANME
429
			LEFT JOIN TL_USER TL2 ON A.MAKER_ID_KT=TL2.TLNANME
430
			LEFT JOIN TL_USER TL3 ON A.CHECKER_ID_KT=TL3.TLNANME
431
			LEFT JOIN dbo.CM_BRANCH BR ON A.BRANCH_ID=BR.BRANCH_ID
432
			LEFT JOIN dbo.CM_BRANCH BR1 ON A.BRANCH_CREATE=BR1.BRANCH_ID
433
			LEFT JOIN dbo.CM_DEPARTMENT DP ON DP.DEP_ID=A.DEP_ID
434
			--Luanlt--2019/10/15-Sửa AL,AL1
435
			LEFT JOIN CM_ALLCODE AL ON A.REQ_TYPE = AL.CDVAL AND AL.CDNAME='PAY_TYPE' AND AL.CDTYPE = 'REQ'
436
			LEFT JOIN CM_ALLCODE AL1 ON A.REQ_PAY_TYPE = AL1.CDVAL AND AL1.CDNAME='REQ_PAY_TYPE' AND AL1.CDTYPE = 'REQ'
437
			LEFT JOIN TL_USER TL4 ON A.TRANSFER_MAKER = TL4.TLNANME
438
			LEFT JOIN TL_USER TL5 ON A.TRASFER_USER_RECIVE = TL5.TLNANME
439
			LEFT JOIN 
440
			(
441
			SELECT PAY_ADV_ID, SUM(AMT_PAY) SOTIEN_TT FROM TR_REQ_PAYMENT_DT WHERE AUTH_STATUS_KT ='A' GROUP BY PAY_ADV_ID
442
			) H ON A.REQ_PAY_ID =H.PAY_ADV_ID
443
			LEFT JOIN TR_PO_MASTER PO ON A.REF_ID = PO.PO_ID AND A.REQ_TYPE='P'
444
			LEFT JOIN CM_SUPPLIER S ON S.SUP_ID = PO.SUP_ID AND A.REQ_TYPE='P'
445
			LEFT JOIN PL_REQUEST_PROCESS_CHILD PC3 ON PC3.REQ_ID = A.REQ_PAY_ID AND PC3.STATUS_JOB ='C' 
446
			LEFT JOIN PL_REQUEST_PROCESS_CHILD PC4 ON PC4.REQ_ID = A.REQ_PAY_ID AND PC4.STATUS_JOB ='C'
447
			LEFT JOIN PL_REQUEST_PROCESS_CHILD PC5 ON PC5.REQ_ID = A.REQ_PAY_ID AND PC5.TYPE_JOB ='XL'
448
			LEFT JOIN TL_USER TL8 ON PC5.TLNAME = TL8.TLNANME
449
			LEFT JOIN TL_SYSROLE SR ON TL.RoleName = SR.ROLE_ID
450
			LEFT JOIN CM_BRANCH BR_CORE ON TL2.TLSUBBRID = BR_CORE.BRANCH_ID
451
			LEFT JOIN TR_REQ_PAY_AUTO_PAYMENTS K ON A.REQ_PAY_ID = K.REQ_PAY_ID
452
			LEFT JOIN TR_REQ_PAYMENT_AUTO L ON K.REQ_PAY_AUTO_ID = L.REQ_PAY_AUTO_ID
453
        WHERE 1=1  
454
			AND A.AUTH_STATUS = 'A'
455
			AND A.AUTH_STATUS_KT = 'A'
456
			AND (A.IS_CREATE_AUTO = @p_IS_CREATE_AUTO OR ISNULL(@p_IS_CREATE_AUTO, '') = '')
457
			AND(A.AUTH_STATUS_KT = @p_AUTH_STATUS_KT OR ISNULL(@p_AUTH_STATUS_KT, '') = '')
458
			AND(A.REQ_PAY_ID = @p_REQ_PAY_ID OR ISNULL(@p_REQ_PAY_ID, '') = '')
459
			AND(A.REQ_PAY_CODE = @p_REQ_PAY_CODE OR ISNULL(@p_REQ_PAY_CODE, '') = '')
460
			AND(A.REQ_TYPE = @p_REQ_TYPE OR ISNULL(@p_REQ_TYPE, '') = '')
461
			AND(CONVERT(DATE, A.CREATE_DT)>=CONVERT(DATE, @DATE, 103)OR @p_FRMDATE IS NULL OR @p_FRMDATE='' OR A.CREATE_DT IS NULL)
462
			AND(CONVERT(DATE, A.CREATE_DT)<=CONVERT(DATE, @p_TODATE, 103)OR @p_TODATE IS NULL OR @p_TODATE='' OR A.CREATE_DT IS NULL)
463
			AND(A.REQ_REASON LIKE '%' + @p_REQ_TYPE + '%' OR ISNULL(@p_REQ_TYPE, '') = '')
464
			AND(A.MAKER_ID =@p_MAKER_ID OR ISNULL(@p_MAKER_ID, '') = '')
465
			AND(A.MAKER_ID_KT =@p_MAKER_ID_KT OR ISNULL(@p_MAKER_ID_KT, '') = '')
466
			AND(A.DEP_ID=@p_DEP_ID OR @p_DEP_ID='' OR @p_DEP_ID IS NULL)
467
			AND	(	(	@p_LEVEL='ALL' AND	(	A.BRANCH_ID IN(SELECT BRANCH_ID FROM @tmp) 
468
												OR A.BRANCH_CREATE IN (SELECT * FROM @BRANCH_AUTH)
469
											)
470
					)
471
					OR	(	(	@p_LEVEL='UNIT' 
472
								AND A.BRANCH_ID=@p_BRANCH_ID
473
							)
474
							OR(@p_BRANCH_ID='' OR @p_BRANCH_ID IS NULL) 
475
							OR (	@BRANCH_TYPE_LG <> 'HS' AND
476
									EXISTS	(	SELECT * 
477
												FROM TR_REQ_ADVANCE_DT 
478
												WHERE REQ_PAY_ID = A.REQ_PAY_ID
479
												AND REF_ID IN (SELECT CONTRACT_ID FROM TR_CONTRACT WHERE BRANCH_ID =@p_BRANCH_LOGIN) 
480
												AND A.AUTH_STATUS_KT ='A'
481
											)
482
								)
483
						)
484
				)
485
		ORDER BY  A.CREATE_DT DESC
486
) COUNTER_TOP;WITH QUERY_DATA AS ( 
487
        SELECT TOP(CONVERT(INT,@p_TOP)) A.*,B.AUTH_STATUS_NAME, C.AUTH_STATUS_NAME AUTH_STATUS_NAME_KT, TL.TLFullName CREATE_FULLNAME, C.AUTH_STATUS_KT_DESC,
488
		TL1.TLFullName APPROVE_FULLNAME,
489
		CASE WHEN ISNULL(TL2.TLFullName,'') <>'' THEN TL2.TLFullName ELSE TL8.TLFullName END AS CREATE_FULLNAME_KT,
490
		TL3.TLFullName APPROVE_FULLNAME_KT,
491
		CASE WHEN ISNULL(A.IS_PERIOD,'') <> '' AND A.IS_PERIOD ='Y' AND  EXISTS (SELECT TOP 1 X.* FROM TR_REQ_ADVANCE_DT X 
492
										INNER JOIN TR_CONTRACT CT ON X.REF_ID = CT.CONTRACT_ID
493
										WHERE X.REQ_PAY_ID = A.REQ_PAY_ID AND CT.BRANCH_ID <>  @p_BRANCH_LOGIN AND CT.BRANCH_ID IS NOT NULL AND CT.BRANCH_ID <> '') THEN 
494
										BR.BRANCH_NAME + ISNULL(' - '+ (SELECT TOP 1 BRANCH_NAME FROM CM_BRANCH WHERE BRANCH_ID =(SELECT TOP 1 BRANCH_ID FROM TR_CONTRACT WHERE CONTRACT_ID IN (SELECT TOP 1 REF_ID FROM TR_REQ_ADVANCE_DT 
495
										WHERE REQ_PAY_ID = A.REQ_PAY_ID))),'')
496
										ELSE BR.BRANCH_NAME END BRANCH_NAME_REQ,
497
		BR1.BRANCH_NAME BRANCH_NAME_CRE, DP.DEP_NAME, DP.DEP_CODE, BR.BRANCH_CODE BRANCH_CODE_REQ,
498
		BR1.BRANCH_CODE BRANCH_CODE_CRE, AL.CONTENT REQ_TYPE_NAME,AL1.CONTENT REQ_PAY_TYPE_NAME, ISNULL((A.REQ_AMT -H.SOTIEN_TT),0) AS TOTAL_AMT_TEMP, 
499
		ISNULL(H.SOTIEN_TT,0) TOTAL_AMT_PAY_HIS,
500
		TL4.TLFullName AS TRANSFER_FULLNAME,TL5.TLFullName AS TRANSFER_RECIEVER_FULLNAME,'' EMP_FULLNAME,PO.PO_CODE, PO.PO_NAME, S.SUP_NAME,S.TAX_NO SUP_TAX_NO,
501
		PC3.LEVEL_JOB, PC3.STATUS_JOB,PC3.TYPE_JOB,
502
		@p_TYPE_SEARCH AS TYPE_SEARCH,SR.ROLE_ID AS ROLE_ID_CRE,CASE WHEN BR1.BRANCH_TYPE <> 'PGD'THEN BR1.BRANCH_TYPE ELSE 'CN' END AS BRANCH_TYPE_CR,
503
		BR_CORE.BRANCH_CODE AS BRANCH_CODE_CORE, BR_CORE.BRANCH_NAME AS BRANCH_NAME_CORE,'' AS BRANCH_CODE_CONTRACT,
504
		ISNULL((SELECT TOP 1 BRANCH_NAME FROM CM_BRANCH WHERE BRANCH_ID =(SELECT TOP 1 BRANCH_ID FROM TR_CONTRACT WHERE CONTRACT_ID IN (SELECT TOP 1 REF_ID FROM TR_REQ_ADVANCE_DT WHERE REQ_PAY_ID = A.REQ_PAY_ID))),'')
505
		AS BRANCH_NAME_CONTRACT,
506
		--doanptt 300622
507
		CASE WHEN PC3.TLNAME IS NOT NULL THEN PC3.TLNAME 
508
			 WHEN PC3.TLNAME <>'' THEN PC3.TLNAME 
509
			 ELSE TL2.TLNANME END AS EXEC_USER,
510
		dbo.FN_DATEDIFF_WITHOUT_WEEKEND(A.TRANSFER_DT, GETDATE()) AS NUMBER_OF_TRANSFER,
511
		PC3.TLNAME AS EXEC_USER_KT,
512
		CASE WHEN ISNULL(A.CREATE_DT_KT, '') <> '' AND A.AUTH_STATUS_KT IN('P', 'S')  THEN dbo.FN_DATEDIFF_WITHOUT_WEEKEND(A.CREATE_DT_KT, GETDATE())
513
			 ELSE 0 END AS NUMBER_OF_SEND_APPR,
514
		L.REQ_PAY_AUTO_ID, L.REQ_PAY_AUTO_CODE,
515
		dbo.FN_GET_NEXT_USER_PAYMENT(A.REQ_PAY_ID, A.MAKER_ID, A.BRANCH_ID, A.DEP_ID, A.AUTH_STATUS, A.AUTH_STATUS_KT, A.TRASFER_USER_RECIVE, A.PROCESS) AS NEXT_USER
516
, ROW_NUMBER() OVER (ORDER BY  A.CREATE_DT DESC
517
) AS __ROWNUM-- SELECT END
518
        FROM TR_REQ_PAYMENT A
519
			LEFT JOIN CM_AUTH_STATUS B ON A.AUTH_STATUS=B.AUTH_STATUS
520
			LEFT JOIN CM_AUTH_STATUS C ON A.AUTH_STATUS_KT=C.AUTH_STATUS
521
			LEFT JOIN TL_USER TL ON A.MAKER_ID=TL.TLNANME
522
			LEFT JOIN TL_USER TL1 ON A.CHECKER_ID=TL1.TLNANME
523
			LEFT JOIN TL_USER TL2 ON A.MAKER_ID_KT=TL2.TLNANME
524
			LEFT JOIN TL_USER TL3 ON A.CHECKER_ID_KT=TL3.TLNANME
525
			LEFT JOIN dbo.CM_BRANCH BR ON A.BRANCH_ID=BR.BRANCH_ID
526
			LEFT JOIN dbo.CM_BRANCH BR1 ON A.BRANCH_CREATE=BR1.BRANCH_ID
527
			LEFT JOIN dbo.CM_DEPARTMENT DP ON DP.DEP_ID=A.DEP_ID
528
			--Luanlt--2019/10/15-Sửa AL,AL1
529
			LEFT JOIN CM_ALLCODE AL ON A.REQ_TYPE = AL.CDVAL AND AL.CDNAME='PAY_TYPE' AND AL.CDTYPE = 'REQ'
530
			LEFT JOIN CM_ALLCODE AL1 ON A.REQ_PAY_TYPE = AL1.CDVAL AND AL1.CDNAME='REQ_PAY_TYPE' AND AL1.CDTYPE = 'REQ'
531
			LEFT JOIN TL_USER TL4 ON A.TRANSFER_MAKER = TL4.TLNANME
532
			LEFT JOIN TL_USER TL5 ON A.TRASFER_USER_RECIVE = TL5.TLNANME
533
			LEFT JOIN 
534
			(
535
			SELECT PAY_ADV_ID, SUM(AMT_PAY) SOTIEN_TT FROM TR_REQ_PAYMENT_DT WHERE AUTH_STATUS_KT ='A' GROUP BY PAY_ADV_ID
536
			) H ON A.REQ_PAY_ID =H.PAY_ADV_ID
537
			LEFT JOIN TR_PO_MASTER PO ON A.REF_ID = PO.PO_ID AND A.REQ_TYPE='P'
538
			LEFT JOIN CM_SUPPLIER S ON S.SUP_ID = PO.SUP_ID AND A.REQ_TYPE='P'
539
			LEFT JOIN PL_REQUEST_PROCESS_CHILD PC3 ON PC3.REQ_ID = A.REQ_PAY_ID AND PC3.STATUS_JOB ='C' 
540
			LEFT JOIN PL_REQUEST_PROCESS_CHILD PC4 ON PC4.REQ_ID = A.REQ_PAY_ID AND PC4.STATUS_JOB ='C'
541
			LEFT JOIN PL_REQUEST_PROCESS_CHILD PC5 ON PC5.REQ_ID = A.REQ_PAY_ID AND PC5.TYPE_JOB ='XL'
542
			LEFT JOIN TL_USER TL8 ON PC5.TLNAME = TL8.TLNANME
543
			LEFT JOIN TL_SYSROLE SR ON TL.RoleName = SR.ROLE_ID
544
			LEFT JOIN CM_BRANCH BR_CORE ON TL2.TLSUBBRID = BR_CORE.BRANCH_ID
545
			LEFT JOIN TR_REQ_PAY_AUTO_PAYMENTS K ON A.REQ_PAY_ID = K.REQ_PAY_ID
546
			LEFT JOIN TR_REQ_PAYMENT_AUTO L ON K.REQ_PAY_AUTO_ID = L.REQ_PAY_AUTO_ID
547
        WHERE 1=1  
548
			AND A.AUTH_STATUS = 'A'
549
			AND A.AUTH_STATUS_KT = 'A'
550
			AND (A.IS_CREATE_AUTO = @p_IS_CREATE_AUTO OR ISNULL(@p_IS_CREATE_AUTO, '') = '')
551
			AND(A.AUTH_STATUS_KT = @p_AUTH_STATUS_KT OR ISNULL(@p_AUTH_STATUS_KT, '') = '')
552
			AND(A.REQ_PAY_ID = @p_REQ_PAY_ID OR ISNULL(@p_REQ_PAY_ID, '') = '')
553
			AND(A.REQ_PAY_CODE = @p_REQ_PAY_CODE OR ISNULL(@p_REQ_PAY_CODE, '') = '')
554
			AND(A.REQ_TYPE = @p_REQ_TYPE OR ISNULL(@p_REQ_TYPE, '') = '')
555
			AND(CONVERT(DATE, A.CREATE_DT)>=CONVERT(DATE, @DATE, 103)OR @p_FRMDATE IS NULL OR @p_FRMDATE='' OR A.CREATE_DT IS NULL)
556
			AND(CONVERT(DATE, A.CREATE_DT)<=CONVERT(DATE, @p_TODATE, 103)OR @p_TODATE IS NULL OR @p_TODATE='' OR A.CREATE_DT IS NULL)
557
			AND(A.REQ_REASON LIKE '%' + @p_REQ_TYPE + '%' OR ISNULL(@p_REQ_TYPE, '') = '')
558
			AND(A.MAKER_ID =@p_MAKER_ID OR ISNULL(@p_MAKER_ID, '') = '')
559
			AND(A.MAKER_ID_KT =@p_MAKER_ID_KT OR ISNULL(@p_MAKER_ID_KT, '') = '')
560
			AND(A.DEP_ID=@p_DEP_ID OR @p_DEP_ID='' OR @p_DEP_ID IS NULL)
561
			AND	(	(	@p_LEVEL='ALL' AND	(	A.BRANCH_ID IN(SELECT BRANCH_ID FROM @tmp) 
562
												OR A.BRANCH_CREATE IN (SELECT * FROM @BRANCH_AUTH)
563
											)
564
					)
565
					OR	(	(	@p_LEVEL='UNIT' 
566
								AND A.BRANCH_ID=@p_BRANCH_ID
567
							)
568
							OR(@p_BRANCH_ID='' OR @p_BRANCH_ID IS NULL) 
569
							OR (	@BRANCH_TYPE_LG <> 'HS' AND
570
									EXISTS	(	SELECT * 
571
												FROM TR_REQ_ADVANCE_DT 
572
												WHERE REQ_PAY_ID = A.REQ_PAY_ID
573
												AND REF_ID IN (SELECT CONTRACT_ID FROM TR_CONTRACT WHERE BRANCH_ID =@p_BRANCH_LOGIN) 
574
												AND A.AUTH_STATUS_KT ='A'
575
											)
576
								)
577
						)
578
				)
579
		ORDER BY  A.CREATE_DT DESC
580
) SELECT * FROM QUERY_DATA WHERE __ROWNUM > 0 AND __ROWNUM <= 10
581
END-- PAGING END
582
    END;
583
END
584
ELSE
585
BEGIN
586
	IF(@p_TOP IS NULL OR @p_TOP=0)
587
	BEGIN
588
	-- PAGING BEGIN
589
BEGIN
590
SELECT COUNT(*) FROM(
591
			SELECT A.*,B.AUTH_STATUS_NAME, C.AUTH_STATUS_NAME AUTH_STATUS_NAME_KT, TL.TLFullName CREATE_FULLNAME, C.AUTH_STATUS_KT_DESC,
592
			TL1.TLFullName APPROVE_FULLNAME,
593
			CASE WHEN ISNULL(TL2.TLFullName,'') <>'' THEN TL2.TLFullName ELSE TL8.TLFullName END AS CREATE_FULLNAME_KT,
594
			TL3.TLFullName APPROVE_FULLNAME_KT,
595
			CASE WHEN ISNULL(A.IS_PERIOD,'') <> '' AND A.IS_PERIOD ='Y' AND  EXISTS (SELECT TOP 1 X.* FROM TR_REQ_ADVANCE_DT X 
596
											INNER JOIN TR_CONTRACT CT ON X.REF_ID = CT.CONTRACT_ID
597
											WHERE X.REQ_PAY_ID = A.REQ_PAY_ID AND CT.BRANCH_ID <>  @p_BRANCH_LOGIN AND CT.BRANCH_ID IS NOT NULL AND CT.BRANCH_ID <> '') THEN 
598
											BR.BRANCH_NAME + ISNULL(' - '+ (SELECT TOP 1 BRANCH_NAME FROM CM_BRANCH WHERE BRANCH_ID =(SELECT TOP 1 BRANCH_ID FROM TR_CONTRACT WHERE CONTRACT_ID IN (SELECT TOP 1 REF_ID FROM TR_REQ_ADVANCE_DT 
599
											WHERE REQ_PAY_ID = A.REQ_PAY_ID))),'')
600
											ELSE BR.BRANCH_NAME END BRANCH_NAME_REQ,
601
			--BR.BRANCH_NAME AS BRANCH_NAME_REQ,
602
			BR1.BRANCH_NAME BRANCH_NAME_CRE, DP.DEP_NAME, DP.DEP_CODE, BR.BRANCH_CODE BRANCH_CODE_REQ,
603
			--Luanlt--2019/10/15-Sửa AL,AL1
604
			BR1.BRANCH_CODE BRANCH_CODE_CRE, AL.CONTENT REQ_TYPE_NAME,AL1.CONTENT REQ_PAY_TYPE_NAME, ISNULL((A.REQ_AMT -H.SOTIEN_TT),0) AS TOTAL_AMT_TEMP, 
605
			ISNULL(H.SOTIEN_TT,0) TOTAL_AMT_PAY_HIS,
606
			TL4.TLFullName AS TRANSFER_FULLNAME,TL5.TLFullName AS TRANSFER_RECIEVER_FULLNAME,'' EMP_FULLNAME,PO.PO_CODE, PO.PO_NAME, S.SUP_NAME,S.TAX_NO SUP_TAX_NO,
607
			PC3.LEVEL_JOB, PC3.STATUS_JOB,PC3.TYPE_JOB,
608
			--CASE WHEN PC3.TLNAME IS NOT NULL AND PC3.TLNAME <>'' THEN @P_USER_LOGIN ELSE PC3.TLNAME END AS EXEC_USER,
609
			@p_TYPE_SEARCH AS TYPE_SEARCH,SR.ROLE_ID AS ROLE_ID_CRE,CASE WHEN BR1.BRANCH_TYPE <> 'PGD'THEN BR1.BRANCH_TYPE ELSE 'CN' END AS BRANCH_TYPE_CR,
610
			BR_CORE.BRANCH_CODE AS BRANCH_CODE_CORE, BR_CORE.BRANCH_NAME AS BRANCH_NAME_CORE,'' AS BRANCH_CODE_CONTRACT,
611
			ISNULL((SELECT TOP 1 BRANCH_NAME FROM CM_BRANCH WHERE BRANCH_ID =(SELECT TOP 1 BRANCH_ID FROM TR_CONTRACT WHERE CONTRACT_ID IN (SELECT TOP 1 REF_ID FROM TR_REQ_ADVANCE_DT WHERE REQ_PAY_ID = A.REQ_PAY_ID))),'')
612
			AS BRANCH_NAME_CONTRACT,
613
			--doanptt 300622
614
			CASE WHEN PC3.TLNAME IS NOT NULL THEN PC3.TLNAME 
615
				 WHEN PC3.TLNAME <>'' THEN PC3.TLNAME 
616
				 ELSE TL2.TLNANME END AS EXEC_USER,
617
			dbo.FN_DATEDIFF_WITHOUT_WEEKEND(A.TRANSFER_DT, GETDATE()) AS NUMBER_OF_TRANSFER,
618
			PC3.TLNAME AS EXEC_USER_KT,
619
			CASE WHEN ISNULL(A.CREATE_DT_KT, '') <> '' AND A.AUTH_STATUS_KT IN('P', 'S')  THEN dbo.FN_DATEDIFF_WITHOUT_WEEKEND(A.CREATE_DT_KT, GETDATE())
620
				 ELSE 0 END AS NUMBER_OF_SEND_APPR,
621
			L.REQ_PAY_AUTO_ID, L.REQ_PAY_AUTO_CODE,
622
		dbo.FN_GET_NEXT_USER_PAYMENT(A.REQ_PAY_ID, A.MAKER_ID, A.BRANCH_ID, A.DEP_ID, A.AUTH_STATUS, A.AUTH_STATUS_KT, A.TRASFER_USER_RECIVE, A.PROCESS) AS NEXT_USER
623
	-- SELECT END
624
			FROM TR_REQ_PAYMENT A
625
				LEFT JOIN CM_AUTH_STATUS B ON A.AUTH_STATUS=B.AUTH_STATUS
626
				LEFT JOIN CM_AUTH_STATUS C ON A.AUTH_STATUS_KT=C.AUTH_STATUS
627
				LEFT JOIN TL_USER TL ON A.MAKER_ID=TL.TLNANME
628
				LEFT JOIN TL_USER TL1 ON A.CHECKER_ID=TL1.TLNANME
629
				LEFT JOIN TL_USER TL2 ON A.MAKER_ID_KT=TL2.TLNANME
630
				LEFT JOIN TL_USER TL3 ON A.CHECKER_ID_KT=TL3.TLNANME
631
				LEFT JOIN dbo.CM_BRANCH BR ON A.BRANCH_ID=BR.BRANCH_ID
632
				LEFT JOIN dbo.CM_BRANCH BR1 ON A.BRANCH_CREATE=BR1.BRANCH_ID
633
				LEFT JOIN dbo.CM_DEPARTMENT DP ON DP.DEP_ID=A.DEP_ID
634
				--Luanlt--2019/10/15-Sửa AL,AL1
635
				LEFT JOIN CM_ALLCODE AL ON A.REQ_TYPE = AL.CDVAL AND AL.CDNAME='PAY_TYPE' AND AL.CDTYPE = 'REQ'
636
				LEFT JOIN CM_ALLCODE AL1 ON A.REQ_PAY_TYPE = AL1.CDVAL AND AL1.CDNAME='REQ_PAY_TYPE' AND AL1.CDTYPE ='REQ'
637
				LEFT JOIN TL_USER TL4 ON A.TRANSFER_MAKER = TL4.TLNANME
638
				LEFT JOIN TL_USER TL5 ON A.TRASFER_USER_RECIVE = TL5.TLNANME
639
				LEFT JOIN 
640
				(
641
				SELECT PAY_ADV_ID, SUM(AMT_PAY) SOTIEN_TT FROM TR_REQ_PAYMENT_DT WHERE AUTH_STATUS_KT ='A' GROUP BY PAY_ADV_ID
642
				) H ON A.REQ_PAY_ID =H.PAY_ADV_ID
643
				LEFT JOIN TR_PO_MASTER PO ON A.REF_ID = PO.PO_ID AND A.REQ_TYPE='P'
644
				LEFT JOIN CM_SUPPLIER S ON S.SUP_ID = PO.SUP_ID AND A.REQ_TYPE='P'
645
				LEFT JOIN PL_REQUEST_PROCESS_CHILD PC3 ON PC3.REQ_ID = A.REQ_PAY_ID AND PC3.STATUS_JOB ='C' 
646
				LEFT JOIN PL_REQUEST_PROCESS_CHILD PC4 ON PC4.REQ_ID = A.REQ_PAY_ID AND PC4.STATUS_JOB ='C'
647
				LEFT JOIN PL_REQUEST_PROCESS_CHILD PC5 ON PC5.REQ_ID = A.REQ_PAY_ID AND PC5.TYPE_JOB ='XL'
648
				LEFT JOIN TL_USER TL8 ON PC5.TLNAME = TL8.TLNANME
649
				LEFT JOIN TL_SYSROLE SR ON TL.RoleName = SR.ROLE_ID
650
				LEFT JOIN CM_BRANCH BR_CORE ON TL2.TLSUBBRID = BR_CORE.BRANCH_ID
651
				LEFT JOIN TR_REQ_PAY_AUTO_PAYMENTS K ON A.REQ_PAY_ID = K.REQ_PAY_ID
652
				LEFT JOIN TR_REQ_PAYMENT_AUTO L ON K.REQ_PAY_AUTO_ID = L.REQ_PAY_AUTO_ID
653
			WHERE 1=1 
654
			-- BEGIN FILTER
655
				AND	(A.REQ_PAY_ID = @p_REQ_PAY_ID OR ISNULL(@p_REQ_PAY_ID, '') = '')
656
				AND	(A.MAKER_ID =@p_MAKER_ID OR ISNULL(@p_MAKER_ID, '') = '')
657
				AND (A.IS_CREATE_AUTO = @p_IS_CREATE_AUTO OR ISNULL(@p_IS_CREATE_AUTO, '') = '')
658
				AND	(A.REF_ID =@p_REF_ID OR ISNULL(@p_REF_ID, '') = '')
659
				AND	(A.BRANCH_ID = @p_BRANCH_ID  OR ISNULL(@p_BRANCH_ID, '') = '' OR @p_BRANCH_ID = 'DV0001')
660
				AND	(A.DEP_ID = @p_DEP_ID  OR ISNULL(@p_DEP_ID, '') = '')
661
				AND	(ISNULL(@p_MAKER_ID_KT, '') = '' OR A.MAKER_ID_KT = @p_MAKER_ID_KT OR PC3.TLNAME = @p_MAKER_ID_KT)
662
				AND	(ISNULL(@p_EXEC_USER_KT, '') = '' OR ISNULL(PC3.TLNAME, '') = '' OR PC3.TLNAME = @p_EXEC_USER_KT)
663
				AND(PC4.TLNAME = @p_TRASFER_USER_RECIVE OR ISNULL(@p_TRASFER_USER_RECIVE, '') = '' OR A.MAKER_ID_KT =@p_TRASFER_USER_RECIVE)	
664
				AND	(	A.AUTH_STATUS = @p_AUTH_STATUS 
665
						OR @p_AUTH_STATUS = '' 
666
						OR @p_AUTH_STATUS IS NULL 
667
						OR	(	@p_AUTH_STATUS = 'W' 
668
								AND ISNULL(A.PROCESS, '') = '' 
669
								AND A.AUTH_STATUS = 'U'
670
								AND @P_USER_LOGIN = A.TRASFER_USER_RECIVE
671
							)-- CHỜ DUYỆT TRUNG GIAN
672
						OR	(	@p_AUTH_STATUS = 'G' 
673
								AND ISNULL(A.PROCESS, '') = '0' 
674
								AND A.AUTH_STATUS = 'U'
675
								AND @P_USER_LOGIN = A.TRASFER_USER_RECIVE
676
							) -- ĐÃ DUYỆT TRUNG GIAN
677
					)
678
				AND	(A.NOTES LIKE N'%'+@p_NOTES+'%' OR ISNULL(@p_NOTES, '') = '')
679
				AND	(A.REQ_TYPE LIKE N'%'+@p_REQ_TYPE+'%' OR ISNULL(@p_REQ_TYPE, '') = '')
680
				AND	(A.REQ_PAY_CODE LIKE N'%'+@p_REQ_PAY_CODE+'%' OR ISNULL(@p_REQ_PAY_CODE, '') = '')
681
				AND	(A.REQ_REASON LIKE N'%'+@p_REQ_REASON+'%' OR ISNULL(@p_REQ_REASON, '') = '')
682
				AND	(CONVERT(DATE, A.CREATE_DT)>=CONVERT(DATE, @DATE, 103)OR @p_FRMDATE IS NULL OR @p_FRMDATE='' OR A.CREATE_DT IS NULL)
683
				AND	(CONVERT(DATE, A.CREATE_DT)<=CONVERT(DATE, @p_TODATE, 103)OR @p_TODATE IS NULL OR @p_TODATE='' OR A.CREATE_DT IS NULL)
684
				-- KT
685
				AND	(	
686
						(	A.MAKER_ID_KT IS NOT NULL 
687
							AND @p_IS_UPDATE_KT='Y'
688
						) 
689
						OR	(	A.MAKER_ID_KT IS NULL 
690
								AND @p_IS_UPDATE_KT='N'
691
							)
692
						OR  ISNULL(@p_IS_UPDATE_KT, '') = ''
693
					)	-- TINH TRANG CAP NHAT - GDV
694
				AND	(	A.AUTH_STATUS_KT=@p_AUTH_STATUS_KT 
695
						OR (@p_AUTH_STATUS_KT ='P' AND A.AUTH_STATUS_KT IN ('P','S')) 
696
						OR ISNULL(@p_AUTH_STATUS_KT, '') = ''
697
					)	-- TRANG THAI DUYET KT
698
				AND	(	(	@p_IS_TRANSFER='Y' 
699
							AND	(	EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_ID) 
700
									OR A.AUTH_STATUS_KT ='A'
701
								)
702
						)
703
						OR	(	(	@p_IS_TRANSFER='N' 
704
									AND (	NOT EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_ID )) 
705
											AND A.AUTH_STATUS_KT <>'A'
706
								)
707
							)
708
						OR  ISNULL(@p_IS_TRANSFER, '') = ''
709
					)	-- TINH TRANG DIEU CHUYEN KT
710
				AND	(
711
						(
712
							@p_FUNCTION ='KT' 
713
							AND (
714
									EXISTS(SELECT TOP 1 * FROM PL_REQUEST_PROCESS_CHILD X WHERE REQ_ID = A.REQ_PAY_ID 
715
									AND (
716
											X.TLNAME= @p_USER_LOGIN 
717
											OR X.TLNAME =@p_EXEC_USER_KT)
718
										)
719
								) 
720
							OR	(A.MAKER_ID_KT = @p_MAKER_ID_KT OR PC3.TLNAME = @p_MAKER_ID_KT)
721
							OR A.CHECKER_ID_KT ='admin' 
722
							OR A.AUTH_STATUS_KT='A' 
723
						)
724
						OR ISNULL(@p_FUNCTION, '') = '' 
725
						OR @p_FUNCTION ='TF' 
726
					)
727
			-- END FILTER
728
				AND	(	(@p_BRANCH_ID <> @p_BRANCH_LOGIN AND A.BRANCH_ID = @p_BRANCH_ID) 
729
						OR @p_BRANCH_ID = @p_BRANCH_LOGIN 
730
						OR @p_BRANCH_ID='' 
731
						OR @p_BRANCH_ID IS NULL
732
					)
733
			-- VALIDATE BRANCH
734
				AND	(	A.BRANCH_ID = @p_BRANCH_LOGIN	-- PHIEU CUA DON VI MINH
735
						OR A.BRANCH_ID IN (SELECT * FROM @BRANCH_AUTH) -- PHIEU CUA DON VI KIEM NHIEM
736
						OR	(	@BRANCH_TYPE_LG <> 'HS' 
737
								AND EXISTS	(	SELECT * 
738
												FROM TR_REQ_ADVANCE_DT 
739
												WHERE REQ_PAY_ID = A.REQ_PAY_ID 
740
												AND REF_ID IN (SELECT CONTRACT_ID FROM TR_CONTRACT WHERE BRANCH_ID =@p_BRANCH_LOGIN) 
741
												AND A.AUTH_STATUS_KT ='A'
742
											)
743
							)	-- PHIEU CUA HOI SO TAO
744
					-- TRUONG HOP VIEW ALL
745
						OR @IS_VIEW_ALL = 'Y'
746
					)
747
			-- VALIDATE DEP
748
				AND	(
749
						A.DEP_ID IN	(SELECT * FROM @DEP_AUTH)
750
						OR A.BRANCH_ID <> 'DV0001'
751
						OR	(	@BRANCH_TYPE_LG <> 'HS' 
752
								AND EXISTS	(	SELECT * 
753
												FROM TR_REQ_ADVANCE_DT 
754
												WHERE REQ_PAY_ID = A.REQ_PAY_ID 
755
												AND REF_ID IN (SELECT CONTRACT_ID FROM TR_CONTRACT WHERE BRANCH_ID =@p_BRANCH_LOGIN) 
756
												AND A.AUTH_STATUS_KT ='A'
757
											)
758
							)	-- PHIEU CUA HOI SO TAO
759
					-- TRUONG HOP VIEW ALL
760
						OR @IS_VIEW_ALL = 'Y'
761
					)
762
			-- VALIDATE FLOW
763
				AND	(
764
				-- TRUONG HOP VIEW ALL
765
						 @IS_VIEW_ALL = 'Y'	
766
				-- BEGIN TRUONG HOP DAC BIET
767
						OR	(	@IS_SEE_ALL_HC = 'Y'										-- DOANPTT 20/12/22: CHO USER XEM TOAN BO PHIEU THUOC PHONG HANH CHINH
768
								AND A.DEP_ID = @DEP_ID_LG
769
								AND A.BRANCH_ID = 'DV0001'
770
								AND A.AUTH_STATUS IN ('U','R', 'A')
771
								AND @p_TYPE_SEARCH ='HC'
772
							)
773
				-- END TRUONG HOP DAC BIET
774
						OR A.MAKER_ID = @p_USER_LOGIN									-- NGUOI TAO
775
						OR	(	A.AUTH_STATUS ='A')										-- PHIEU DA DUYET
776
						OR	(	A.TRASFER_USER_RECIVE = @P_USER_LOGIN					
777
								AND A.AUTH_STATUS NOT IN ('E','R')
778
							)															-- TRUNG GIAN													
779
						OR	(	@p_TYPE_SEARCH ='HC'									
780
								AND A.BRANCH_ID <> 'DV0001'							
781
								AND A.BRANCH_ID IN (SELECT * FROM @BRANCH_IS_TDV)
782
								AND (A.AUTH_STATUS = 'U' OR A.AUTH_STATUS = 'A')
783
								AND @IS_TDV = 'Y'
784
							)															-- TDV - DVKD
785
						OR	(	@p_TYPE_SEARCH ='HC'									
786
								AND A.BRANCH_ID = 'DV0001'							
787
								AND A.DEP_ID IN (SELECT * FROM @DEP_IS_TDV)
788
								AND (A.AUTH_STATUS = 'U' OR A.AUTH_STATUS = 'A')
789
								AND @IS_TDV = 'Y'
790
							)															-- TDV - HOI SO
791
						OR	(
792
								@p_TYPE_SEARCH ='HC'									
793
								AND @BRANCH_TYPE_LG <> 'HS' 
794
								AND EXISTS (
795
												SELECT * 
796
												FROM TR_REQ_ADVANCE_DT 
797
												WHERE REQ_PAY_ID = A.REQ_PAY_ID 
798
												AND REF_ID IN	(
799
																	SELECT CONTRACT_ID 
800
																	FROM TR_CONTRACT
801
																	WHERE BRANCH_ID =@p_BRANCH_LOGIN
802
																) 
803
												AND A.AUTH_STATUS_KT ='A'
804
											)
805
							)															-- LUCTV 25 05 BO SUNG CAU HINH CHO PHEP DVKD DUOC THAY NHUNG PDN THANH TOAN DO HO TẠO
806

    
807
						-- HOI SO
808
						OR	(	@p_TYPE_SEARCH ='HC'
809
								AND @BRANCH_TYPE_LG ='HS'  
810
								AND (	A.TRASFER_USER_RECIVE = @p_USER_LOGIN 
811
										OR	(	@IS_TDV = 'Y'
812
												AND (	A.BRANCH_ID = @p_BRANCH_LOGIN 
813
														OR A.BRANCH_ID IN (SELECT * FROM @BRANCH_AUTH)
814
													)
815
												AND (	A.DEP_ID = @DEP_ID_LG 
816
														OR A.DEP_ID IN (SELECT * FROM @DEP_AUTH)
817
													)
818
												AND (	ISNULL(A.TRASFER_USER_RECIVE, '') = '' 
819
														OR	(	ISNULL(A.TRASFER_USER_RECIVE, '') <> '' 
820
																AND ISNULL(A.PROCESS, '') <> ''
821
															)
822
													)
823
											)
824
								)
825
							)
826
						-- CN
827
						OR	(	@p_TYPE_SEARCH ='HC' 
828
								AND @BRANCH_TYPE_LG = 'CN' 
829
								AND @IS_TDV = 'Y'
830
								AND A.BRANCH_ID IN (SELECT * FROM @BRANCH_IS_TDV)
831
							)
832
						-- PGD
833
						OR	(	@p_TYPE_SEARCH ='HC' 
834
								AND @BRANCH_TYPE_LG = 'PGD' 
835
								AND (
836
										@ROLE_ID IN ('GDDV','TPGD','PPGD','PGD') 
837
										AND A.BRANCH_ID =@p_BRANCH_LOGIN
838
									)
839
							)
840
						-- KT
841
						OR	(	@p_TYPE_SEARCH='KT' 
842
								AND @p_BRANCH_LOGIN ='DV0001' 
843
								AND A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp_Login)
844
							)
845
						OR @p_TYPE_SEARCH IS NULL OR @p_TYPE_SEARCH =''
846
					)
847
			
848
	) COUNTER_TOP;WITH QUERY_DATA AS ( 
849
			SELECT A.*,B.AUTH_STATUS_NAME, C.AUTH_STATUS_NAME AUTH_STATUS_NAME_KT, TL.TLFullName CREATE_FULLNAME, C.AUTH_STATUS_KT_DESC,
850
			TL1.TLFullName APPROVE_FULLNAME,
851
			CASE WHEN ISNULL(TL2.TLFullName,'') <>'' THEN TL2.TLFullName ELSE TL8.TLFullName END AS CREATE_FULLNAME_KT,
852
			TL3.TLFullName APPROVE_FULLNAME_KT,
853
			CASE WHEN ISNULL(A.IS_PERIOD,'') <> '' AND A.IS_PERIOD ='Y' AND  EXISTS (SELECT TOP 1 X.* FROM TR_REQ_ADVANCE_DT X 
854
											INNER JOIN TR_CONTRACT CT ON X.REF_ID = CT.CONTRACT_ID
855
											WHERE X.REQ_PAY_ID = A.REQ_PAY_ID AND CT.BRANCH_ID <>  @p_BRANCH_LOGIN AND CT.BRANCH_ID IS NOT NULL AND CT.BRANCH_ID <> '') THEN 
856
											BR.BRANCH_NAME + ISNULL(' - '+ (SELECT TOP 1 BRANCH_NAME FROM CM_BRANCH WHERE BRANCH_ID =(SELECT TOP 1 BRANCH_ID FROM TR_CONTRACT WHERE CONTRACT_ID IN (SELECT TOP 1 REF_ID FROM TR_REQ_ADVANCE_DT 
857
											WHERE REQ_PAY_ID = A.REQ_PAY_ID))),'')
858
											ELSE BR.BRANCH_NAME END BRANCH_NAME_REQ,
859
			--BR.BRANCH_NAME AS BRANCH_NAME_REQ,
860
			BR1.BRANCH_NAME BRANCH_NAME_CRE, DP.DEP_NAME, DP.DEP_CODE, BR.BRANCH_CODE BRANCH_CODE_REQ,
861
			--Luanlt--2019/10/15-Sửa AL,AL1
862
			BR1.BRANCH_CODE BRANCH_CODE_CRE, AL.CONTENT REQ_TYPE_NAME,AL1.CONTENT REQ_PAY_TYPE_NAME, ISNULL((A.REQ_AMT -H.SOTIEN_TT),0) AS TOTAL_AMT_TEMP, 
863
			ISNULL(H.SOTIEN_TT,0) TOTAL_AMT_PAY_HIS,
864
			TL4.TLFullName AS TRANSFER_FULLNAME,TL5.TLFullName AS TRANSFER_RECIEVER_FULLNAME,'' EMP_FULLNAME,PO.PO_CODE, PO.PO_NAME, S.SUP_NAME,S.TAX_NO SUP_TAX_NO,
865
			PC3.LEVEL_JOB, PC3.STATUS_JOB,PC3.TYPE_JOB,
866
			--CASE WHEN PC3.TLNAME IS NOT NULL AND PC3.TLNAME <>'' THEN @P_USER_LOGIN ELSE PC3.TLNAME END AS EXEC_USER,
867
			@p_TYPE_SEARCH AS TYPE_SEARCH,SR.ROLE_ID AS ROLE_ID_CRE,CASE WHEN BR1.BRANCH_TYPE <> 'PGD'THEN BR1.BRANCH_TYPE ELSE 'CN' END AS BRANCH_TYPE_CR,
868
			BR_CORE.BRANCH_CODE AS BRANCH_CODE_CORE, BR_CORE.BRANCH_NAME AS BRANCH_NAME_CORE,'' AS BRANCH_CODE_CONTRACT,
869
			ISNULL((SELECT TOP 1 BRANCH_NAME FROM CM_BRANCH WHERE BRANCH_ID =(SELECT TOP 1 BRANCH_ID FROM TR_CONTRACT WHERE CONTRACT_ID IN (SELECT TOP 1 REF_ID FROM TR_REQ_ADVANCE_DT WHERE REQ_PAY_ID = A.REQ_PAY_ID))),'')
870
			AS BRANCH_NAME_CONTRACT,
871
			--doanptt 300622
872
			CASE WHEN PC3.TLNAME IS NOT NULL THEN PC3.TLNAME 
873
				 WHEN PC3.TLNAME <>'' THEN PC3.TLNAME 
874
				 ELSE TL2.TLNANME END AS EXEC_USER,
875
			dbo.FN_DATEDIFF_WITHOUT_WEEKEND(A.TRANSFER_DT, GETDATE()) AS NUMBER_OF_TRANSFER,
876
			PC3.TLNAME AS EXEC_USER_KT,
877
			CASE WHEN ISNULL(A.CREATE_DT_KT, '') <> '' AND A.AUTH_STATUS_KT IN('P', 'S')  THEN dbo.FN_DATEDIFF_WITHOUT_WEEKEND(A.CREATE_DT_KT, GETDATE())
878
				 ELSE 0 END AS NUMBER_OF_SEND_APPR,
879
			L.REQ_PAY_AUTO_ID, L.REQ_PAY_AUTO_CODE,
880
		dbo.FN_GET_NEXT_USER_PAYMENT(A.REQ_PAY_ID, A.MAKER_ID, A.BRANCH_ID, A.DEP_ID, A.AUTH_STATUS, A.AUTH_STATUS_KT, A.TRASFER_USER_RECIVE, A.PROCESS) AS NEXT_USER
881
	, ROW_NUMBER() OVER (ORDER BY  A.CREATE_DT DESC
882
) AS __ROWNUM-- SELECT END
883
			FROM TR_REQ_PAYMENT A
884
				LEFT JOIN CM_AUTH_STATUS B ON A.AUTH_STATUS=B.AUTH_STATUS
885
				LEFT JOIN CM_AUTH_STATUS C ON A.AUTH_STATUS_KT=C.AUTH_STATUS
886
				LEFT JOIN TL_USER TL ON A.MAKER_ID=TL.TLNANME
887
				LEFT JOIN TL_USER TL1 ON A.CHECKER_ID=TL1.TLNANME
888
				LEFT JOIN TL_USER TL2 ON A.MAKER_ID_KT=TL2.TLNANME
889
				LEFT JOIN TL_USER TL3 ON A.CHECKER_ID_KT=TL3.TLNANME
890
				LEFT JOIN dbo.CM_BRANCH BR ON A.BRANCH_ID=BR.BRANCH_ID
891
				LEFT JOIN dbo.CM_BRANCH BR1 ON A.BRANCH_CREATE=BR1.BRANCH_ID
892
				LEFT JOIN dbo.CM_DEPARTMENT DP ON DP.DEP_ID=A.DEP_ID
893
				--Luanlt--2019/10/15-Sửa AL,AL1
894
				LEFT JOIN CM_ALLCODE AL ON A.REQ_TYPE = AL.CDVAL AND AL.CDNAME='PAY_TYPE' AND AL.CDTYPE = 'REQ'
895
				LEFT JOIN CM_ALLCODE AL1 ON A.REQ_PAY_TYPE = AL1.CDVAL AND AL1.CDNAME='REQ_PAY_TYPE' AND AL1.CDTYPE ='REQ'
896
				LEFT JOIN TL_USER TL4 ON A.TRANSFER_MAKER = TL4.TLNANME
897
				LEFT JOIN TL_USER TL5 ON A.TRASFER_USER_RECIVE = TL5.TLNANME
898
				LEFT JOIN 
899
				(
900
				SELECT PAY_ADV_ID, SUM(AMT_PAY) SOTIEN_TT FROM TR_REQ_PAYMENT_DT WHERE AUTH_STATUS_KT ='A' GROUP BY PAY_ADV_ID
901
				) H ON A.REQ_PAY_ID =H.PAY_ADV_ID
902
				LEFT JOIN TR_PO_MASTER PO ON A.REF_ID = PO.PO_ID AND A.REQ_TYPE='P'
903
				LEFT JOIN CM_SUPPLIER S ON S.SUP_ID = PO.SUP_ID AND A.REQ_TYPE='P'
904
				LEFT JOIN PL_REQUEST_PROCESS_CHILD PC3 ON PC3.REQ_ID = A.REQ_PAY_ID AND PC3.STATUS_JOB ='C' 
905
				LEFT JOIN PL_REQUEST_PROCESS_CHILD PC4 ON PC4.REQ_ID = A.REQ_PAY_ID AND PC4.STATUS_JOB ='C'
906
				LEFT JOIN PL_REQUEST_PROCESS_CHILD PC5 ON PC5.REQ_ID = A.REQ_PAY_ID AND PC5.TYPE_JOB ='XL'
907
				LEFT JOIN TL_USER TL8 ON PC5.TLNAME = TL8.TLNANME
908
				LEFT JOIN TL_SYSROLE SR ON TL.RoleName = SR.ROLE_ID
909
				LEFT JOIN CM_BRANCH BR_CORE ON TL2.TLSUBBRID = BR_CORE.BRANCH_ID
910
				LEFT JOIN TR_REQ_PAY_AUTO_PAYMENTS K ON A.REQ_PAY_ID = K.REQ_PAY_ID
911
				LEFT JOIN TR_REQ_PAYMENT_AUTO L ON K.REQ_PAY_AUTO_ID = L.REQ_PAY_AUTO_ID
912
			WHERE 1=1 
913
			-- BEGIN FILTER
914
				AND	(A.REQ_PAY_ID = @p_REQ_PAY_ID OR ISNULL(@p_REQ_PAY_ID, '') = '')
915
				AND	(A.MAKER_ID =@p_MAKER_ID OR ISNULL(@p_MAKER_ID, '') = '')
916
				AND (A.IS_CREATE_AUTO = @p_IS_CREATE_AUTO OR ISNULL(@p_IS_CREATE_AUTO, '') = '')
917
				AND	(A.REF_ID =@p_REF_ID OR ISNULL(@p_REF_ID, '') = '')
918
				AND	(A.BRANCH_ID = @p_BRANCH_ID  OR ISNULL(@p_BRANCH_ID, '') = '' OR @p_BRANCH_ID = 'DV0001')
919
				AND	(A.DEP_ID = @p_DEP_ID  OR ISNULL(@p_DEP_ID, '') = '')
920
				AND	(ISNULL(@p_MAKER_ID_KT, '') = '' OR A.MAKER_ID_KT = @p_MAKER_ID_KT OR PC3.TLNAME = @p_MAKER_ID_KT)
921
				AND	(ISNULL(@p_EXEC_USER_KT, '') = '' OR ISNULL(PC3.TLNAME, '') = '' OR PC3.TLNAME = @p_EXEC_USER_KT)
922
				AND(PC4.TLNAME = @p_TRASFER_USER_RECIVE OR ISNULL(@p_TRASFER_USER_RECIVE, '') = '' OR A.MAKER_ID_KT =@p_TRASFER_USER_RECIVE)	
923
				AND	(	A.AUTH_STATUS = @p_AUTH_STATUS 
924
						OR @p_AUTH_STATUS = '' 
925
						OR @p_AUTH_STATUS IS NULL 
926
						OR	(	@p_AUTH_STATUS = 'W' 
927
								AND ISNULL(A.PROCESS, '') = '' 
928
								AND A.AUTH_STATUS = 'U'
929
								AND @P_USER_LOGIN = A.TRASFER_USER_RECIVE
930
							)-- CHỜ DUYỆT TRUNG GIAN
931
						OR	(	@p_AUTH_STATUS = 'G' 
932
								AND ISNULL(A.PROCESS, '') = '0' 
933
								AND A.AUTH_STATUS = 'U'
934
								AND @P_USER_LOGIN = A.TRASFER_USER_RECIVE
935
							) -- ĐÃ DUYỆT TRUNG GIAN
936
					)
937
				AND	(A.NOTES LIKE N'%'+@p_NOTES+'%' OR ISNULL(@p_NOTES, '') = '')
938
				AND	(A.REQ_TYPE LIKE N'%'+@p_REQ_TYPE+'%' OR ISNULL(@p_REQ_TYPE, '') = '')
939
				AND	(A.REQ_PAY_CODE LIKE N'%'+@p_REQ_PAY_CODE+'%' OR ISNULL(@p_REQ_PAY_CODE, '') = '')
940
				AND	(A.REQ_REASON LIKE N'%'+@p_REQ_REASON+'%' OR ISNULL(@p_REQ_REASON, '') = '')
941
				AND	(CONVERT(DATE, A.CREATE_DT)>=CONVERT(DATE, @DATE, 103)OR @p_FRMDATE IS NULL OR @p_FRMDATE='' OR A.CREATE_DT IS NULL)
942
				AND	(CONVERT(DATE, A.CREATE_DT)<=CONVERT(DATE, @p_TODATE, 103)OR @p_TODATE IS NULL OR @p_TODATE='' OR A.CREATE_DT IS NULL)
943
				-- KT
944
				AND	(	
945
						(	A.MAKER_ID_KT IS NOT NULL 
946
							AND @p_IS_UPDATE_KT='Y'
947
						) 
948
						OR	(	A.MAKER_ID_KT IS NULL 
949
								AND @p_IS_UPDATE_KT='N'
950
							)
951
						OR  ISNULL(@p_IS_UPDATE_KT, '') = ''
952
					)	-- TINH TRANG CAP NHAT - GDV
953
				AND	(	A.AUTH_STATUS_KT=@p_AUTH_STATUS_KT 
954
						OR (@p_AUTH_STATUS_KT ='P' AND A.AUTH_STATUS_KT IN ('P','S')) 
955
						OR ISNULL(@p_AUTH_STATUS_KT, '') = ''
956
					)	-- TRANG THAI DUYET KT
957
				AND	(	(	@p_IS_TRANSFER='Y' 
958
							AND	(	EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_ID) 
959
									OR A.AUTH_STATUS_KT ='A'
960
								)
961
						)
962
						OR	(	(	@p_IS_TRANSFER='N' 
963
									AND (	NOT EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_ID )) 
964
											AND A.AUTH_STATUS_KT <>'A'
965
								)
966
							)
967
						OR  ISNULL(@p_IS_TRANSFER, '') = ''
968
					)	-- TINH TRANG DIEU CHUYEN KT
969
				AND	(
970
						(
971
							@p_FUNCTION ='KT' 
972
							AND (
973
									EXISTS(SELECT TOP 1 * FROM PL_REQUEST_PROCESS_CHILD X WHERE REQ_ID = A.REQ_PAY_ID 
974
									AND (
975
											X.TLNAME= @p_USER_LOGIN 
976
											OR X.TLNAME =@p_EXEC_USER_KT)
977
										)
978
								) 
979
							OR	(A.MAKER_ID_KT = @p_MAKER_ID_KT OR PC3.TLNAME = @p_MAKER_ID_KT)
980
							OR A.CHECKER_ID_KT ='admin' 
981
							OR A.AUTH_STATUS_KT='A' 
982
						)
983
						OR ISNULL(@p_FUNCTION, '') = '' 
984
						OR @p_FUNCTION ='TF' 
985
					)
986
			-- END FILTER
987
				AND	(	(@p_BRANCH_ID <> @p_BRANCH_LOGIN AND A.BRANCH_ID = @p_BRANCH_ID) 
988
						OR @p_BRANCH_ID = @p_BRANCH_LOGIN 
989
						OR @p_BRANCH_ID='' 
990
						OR @p_BRANCH_ID IS NULL
991
					)
992
			-- VALIDATE BRANCH
993
				AND	(	A.BRANCH_ID = @p_BRANCH_LOGIN	-- PHIEU CUA DON VI MINH
994
						OR A.BRANCH_ID IN (SELECT * FROM @BRANCH_AUTH) -- PHIEU CUA DON VI KIEM NHIEM
995
						OR	(	@BRANCH_TYPE_LG <> 'HS' 
996
								AND EXISTS	(	SELECT * 
997
												FROM TR_REQ_ADVANCE_DT 
998
												WHERE REQ_PAY_ID = A.REQ_PAY_ID 
999
												AND REF_ID IN (SELECT CONTRACT_ID FROM TR_CONTRACT WHERE BRANCH_ID =@p_BRANCH_LOGIN) 
1000
												AND A.AUTH_STATUS_KT ='A'
1001
											)
1002
							)	-- PHIEU CUA HOI SO TAO
1003
					-- TRUONG HOP VIEW ALL
1004
						OR @IS_VIEW_ALL = 'Y'
1005
					)
1006
			-- VALIDATE DEP
1007
				AND	(
1008
						A.DEP_ID IN	(SELECT * FROM @DEP_AUTH)
1009
						OR A.BRANCH_ID <> 'DV0001'
1010
						OR	(	@BRANCH_TYPE_LG <> 'HS' 
1011
								AND EXISTS	(	SELECT * 
1012
												FROM TR_REQ_ADVANCE_DT 
1013
												WHERE REQ_PAY_ID = A.REQ_PAY_ID 
1014
												AND REF_ID IN (SELECT CONTRACT_ID FROM TR_CONTRACT WHERE BRANCH_ID =@p_BRANCH_LOGIN) 
1015
												AND A.AUTH_STATUS_KT ='A'
1016
											)
1017
							)	-- PHIEU CUA HOI SO TAO
1018
					-- TRUONG HOP VIEW ALL
1019
						OR @IS_VIEW_ALL = 'Y'
1020
					)
1021
			-- VALIDATE FLOW
1022
				AND	(
1023
				-- TRUONG HOP VIEW ALL
1024
						 @IS_VIEW_ALL = 'Y'	
1025
				-- BEGIN TRUONG HOP DAC BIET
1026
						OR	(	@IS_SEE_ALL_HC = 'Y'										-- DOANPTT 20/12/22: CHO USER XEM TOAN BO PHIEU THUOC PHONG HANH CHINH
1027
								AND A.DEP_ID = @DEP_ID_LG
1028
								AND A.BRANCH_ID = 'DV0001'
1029
								AND A.AUTH_STATUS IN ('U','R', 'A')
1030
								AND @p_TYPE_SEARCH ='HC'
1031
							)
1032
				-- END TRUONG HOP DAC BIET
1033
						OR A.MAKER_ID = @p_USER_LOGIN									-- NGUOI TAO
1034
						OR	(	A.AUTH_STATUS ='A')										-- PHIEU DA DUYET
1035
						OR	(	A.TRASFER_USER_RECIVE = @P_USER_LOGIN					
1036
								AND A.AUTH_STATUS NOT IN ('E','R')
1037
							)															-- TRUNG GIAN													
1038
						OR	(	@p_TYPE_SEARCH ='HC'									
1039
								AND A.BRANCH_ID <> 'DV0001'							
1040
								AND A.BRANCH_ID IN (SELECT * FROM @BRANCH_IS_TDV)
1041
								AND (A.AUTH_STATUS = 'U' OR A.AUTH_STATUS = 'A')
1042
								AND @IS_TDV = 'Y'
1043
							)															-- TDV - DVKD
1044
						OR	(	@p_TYPE_SEARCH ='HC'									
1045
								AND A.BRANCH_ID = 'DV0001'							
1046
								AND A.DEP_ID IN (SELECT * FROM @DEP_IS_TDV)
1047
								AND (A.AUTH_STATUS = 'U' OR A.AUTH_STATUS = 'A')
1048
								AND @IS_TDV = 'Y'
1049
							)															-- TDV - HOI SO
1050
						OR	(
1051
								@p_TYPE_SEARCH ='HC'									
1052
								AND @BRANCH_TYPE_LG <> 'HS' 
1053
								AND EXISTS (
1054
												SELECT * 
1055
												FROM TR_REQ_ADVANCE_DT 
1056
												WHERE REQ_PAY_ID = A.REQ_PAY_ID 
1057
												AND REF_ID IN	(
1058
																	SELECT CONTRACT_ID 
1059
																	FROM TR_CONTRACT
1060
																	WHERE BRANCH_ID =@p_BRANCH_LOGIN
1061
																) 
1062
												AND A.AUTH_STATUS_KT ='A'
1063
											)
1064
							)															-- LUCTV 25 05 BO SUNG CAU HINH CHO PHEP DVKD DUOC THAY NHUNG PDN THANH TOAN DO HO TẠO
1065

    
1066
						-- HOI SO
1067
						OR	(	@p_TYPE_SEARCH ='HC'
1068
								AND @BRANCH_TYPE_LG ='HS'  
1069
								AND (	A.TRASFER_USER_RECIVE = @p_USER_LOGIN 
1070
										OR	(	@IS_TDV = 'Y'
1071
												AND (	A.BRANCH_ID = @p_BRANCH_LOGIN 
1072
														OR A.BRANCH_ID IN (SELECT * FROM @BRANCH_AUTH)
1073
													)
1074
												AND (	A.DEP_ID = @DEP_ID_LG 
1075
														OR A.DEP_ID IN (SELECT * FROM @DEP_AUTH)
1076
													)
1077
												AND (	ISNULL(A.TRASFER_USER_RECIVE, '') = '' 
1078
														OR	(	ISNULL(A.TRASFER_USER_RECIVE, '') <> '' 
1079
																AND ISNULL(A.PROCESS, '') <> ''
1080
															)
1081
													)
1082
											)
1083
								)
1084
							)
1085
						-- CN
1086
						OR	(	@p_TYPE_SEARCH ='HC' 
1087
								AND @BRANCH_TYPE_LG = 'CN' 
1088
								AND @IS_TDV = 'Y'
1089
								AND A.BRANCH_ID IN (SELECT * FROM @BRANCH_IS_TDV)
1090
							)
1091
						-- PGD
1092
						OR	(	@p_TYPE_SEARCH ='HC' 
1093
								AND @BRANCH_TYPE_LG = 'PGD' 
1094
								AND (
1095
										@ROLE_ID IN ('GDDV','TPGD','PPGD','PGD') 
1096
										AND A.BRANCH_ID =@p_BRANCH_LOGIN
1097
									)
1098
							)
1099
						-- KT
1100
						OR	(	@p_TYPE_SEARCH='KT' 
1101
								AND @p_BRANCH_LOGIN ='DV0001' 
1102
								AND A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp_Login)
1103
							)
1104
						OR @p_TYPE_SEARCH IS NULL OR @p_TYPE_SEARCH =''
1105
					)
1106
			
1107
	) SELECT * FROM QUERY_DATA WHERE __ROWNUM > 0 AND __ROWNUM <= 10
1108
END-- PAGING END
1109
		END;
1110
    ELSE 
1111
	BEGIN
1112
-- PAGING BEGIN
1113
BEGIN
1114
SELECT COUNT(*) FROM(
1115
        SELECT TOP(CONVERT(INT,@p_TOP)) A.*,B.AUTH_STATUS_NAME, C.AUTH_STATUS_NAME AUTH_STATUS_NAME_KT, TL.TLFullName CREATE_FULLNAME, C.AUTH_STATUS_KT_DESC,
1116
		TL1.TLFullName APPROVE_FULLNAME,
1117
		CASE WHEN ISNULL(TL2.TLFullName,'') <>'' THEN TL2.TLFullName ELSE TL8.TLFullName END AS CREATE_FULLNAME_KT,
1118
		TL3.TLFullName APPROVE_FULLNAME_KT,
1119
		CASE WHEN ISNULL(A.IS_PERIOD,'') <> '' AND A.IS_PERIOD ='Y' AND  EXISTS (SELECT TOP 1 X.* FROM TR_REQ_ADVANCE_DT X 
1120
										INNER JOIN TR_CONTRACT CT ON X.REF_ID = CT.CONTRACT_ID
1121
										WHERE X.REQ_PAY_ID = A.REQ_PAY_ID AND CT.BRANCH_ID <>  @p_BRANCH_LOGIN AND CT.BRANCH_ID IS NOT NULL AND CT.BRANCH_ID <> '') THEN 
1122
										BR.BRANCH_NAME + ISNULL(' - '+ (SELECT TOP 1 BRANCH_NAME FROM CM_BRANCH WHERE BRANCH_ID =(SELECT TOP 1 BRANCH_ID FROM TR_CONTRACT WHERE CONTRACT_ID IN (SELECT TOP 1 REF_ID FROM TR_REQ_ADVANCE_DT 
1123
										WHERE REQ_PAY_ID = A.REQ_PAY_ID))),'')
1124
										ELSE BR.BRANCH_NAME END BRANCH_NAME_REQ,
1125
		--BR.BRANCH_NAME AS BRANCH_NAME_REQ,
1126
		BR1.BRANCH_NAME BRANCH_NAME_CRE, DP.DEP_NAME, DP.DEP_CODE, BR.BRANCH_CODE BRANCH_CODE_REQ,
1127
		--Luanlt--2019/10/15-Sửa AL,AL1
1128
		BR1.BRANCH_CODE BRANCH_CODE_CRE, AL.CONTENT REQ_TYPE_NAME,AL1.CONTENT REQ_PAY_TYPE_NAME, ISNULL((A.REQ_AMT -H.SOTIEN_TT),0) AS TOTAL_AMT_TEMP, 
1129
		ISNULL(H.SOTIEN_TT,0) TOTAL_AMT_PAY_HIS,
1130
		TL4.TLFullName AS TRANSFER_FULLNAME,TL5.TLFullName AS TRANSFER_RECIEVER_FULLNAME,'' EMP_FULLNAME,PO.PO_CODE, PO.PO_NAME, S.SUP_NAME,S.TAX_NO SUP_TAX_NO,
1131
		PC3.LEVEL_JOB, PC3.STATUS_JOB,PC3.TYPE_JOB,
1132
		--CASE WHEN PC3.TLNAME IS NOT NULL AND PC3.TLNAME <>'' THEN @P_USER_LOGIN ELSE PC3.TLNAME END AS EXEC_USER,
1133
		@p_TYPE_SEARCH AS TYPE_SEARCH,SR.ROLE_ID AS ROLE_ID_CRE,CASE WHEN BR1.BRANCH_TYPE <> 'PGD'THEN BR1.BRANCH_TYPE ELSE 'CN' END AS BRANCH_TYPE_CR,
1134
		BR_CORE.BRANCH_CODE AS BRANCH_CODE_CORE, BR_CORE.BRANCH_NAME AS BRANCH_NAME_CORE,'' AS BRANCH_CODE_CONTRACT,
1135
		ISNULL((SELECT TOP 1 BRANCH_NAME FROM CM_BRANCH WHERE BRANCH_ID =(SELECT TOP 1 BRANCH_ID FROM TR_CONTRACT WHERE CONTRACT_ID IN (SELECT TOP 1 REF_ID FROM TR_REQ_ADVANCE_DT WHERE REQ_PAY_ID = A.REQ_PAY_ID))),'')
1136
		AS BRANCH_NAME_CONTRACT,
1137
		--doanptt 300622
1138
		CASE WHEN PC3.TLNAME IS NOT NULL THEN PC3.TLNAME 
1139
			 WHEN PC3.TLNAME <>'' THEN PC3.TLNAME 
1140
			 ELSE TL2.TLNANME END AS EXEC_USER,
1141
		dbo.FN_DATEDIFF_WITHOUT_WEEKEND(A.TRANSFER_DT, GETDATE()) AS NUMBER_OF_TRANSFER,
1142
		PC3.TLNAME AS EXEC_USER_KT,
1143
		CASE WHEN ISNULL(A.CREATE_DT_KT, '') <> '' AND A.AUTH_STATUS_KT IN('P', 'S')  THEN dbo.FN_DATEDIFF_WITHOUT_WEEKEND(A.CREATE_DT_KT, GETDATE())
1144
			 ELSE 0 END AS NUMBER_OF_SEND_APPR,
1145
		L.REQ_PAY_AUTO_ID, L.REQ_PAY_AUTO_CODE,
1146
		dbo.FN_GET_NEXT_USER_PAYMENT(A.REQ_PAY_ID, A.MAKER_ID, A.BRANCH_ID, A.DEP_ID, A.AUTH_STATUS, A.AUTH_STATUS_KT, A.TRASFER_USER_RECIVE, A.PROCESS) AS NEXT_USER
1147
-- SELECT END
1148
        FROM TR_REQ_PAYMENT A
1149
             LEFT JOIN CM_AUTH_STATUS B ON A.AUTH_STATUS=B.AUTH_STATUS
1150
             LEFT JOIN CM_AUTH_STATUS C ON A.AUTH_STATUS_KT=C.AUTH_STATUS
1151
             LEFT JOIN TL_USER TL ON A.MAKER_ID=TL.TLNANME
1152
             LEFT JOIN TL_USER TL1 ON A.CHECKER_ID=TL1.TLNANME
1153
             LEFT JOIN TL_USER TL2 ON A.MAKER_ID_KT=TL2.TLNANME
1154
             LEFT JOIN TL_USER TL3 ON A.CHECKER_ID_KT=TL3.TLNANME
1155
             LEFT JOIN dbo.CM_BRANCH BR ON A.BRANCH_ID=BR.BRANCH_ID
1156
			 LEFT JOIN dbo.CM_BRANCH BR1 ON A.BRANCH_CREATE=BR1.BRANCH_ID
1157
             LEFT JOIN dbo.CM_DEPARTMENT DP ON DP.DEP_ID=A.DEP_ID
1158
			 --Luanlt--2019/10/15-Sửa AL,AL1
1159
			 LEFT JOIN CM_ALLCODE AL ON A.REQ_TYPE = AL.CDVAL AND AL.CDNAME='PAY_TYPE' AND AL.CDTYPE = 'REQ'
1160
			 LEFT JOIN CM_ALLCODE AL1 ON A.REQ_PAY_TYPE = AL1.CDVAL AND AL1.CDNAME='REQ_PAY_TYPE' AND AL1.CDTYPE = 'REQ'
1161
			 LEFT JOIN TL_USER TL4 ON A.TRANSFER_MAKER = TL4.TLNANME
1162
			 LEFT JOIN TL_USER TL5 ON A.TRASFER_USER_RECIVE = TL5.TLNANME
1163
			 LEFT JOIN 
1164
			 (
1165
			 SELECT PAY_ADV_ID, SUM(AMT_PAY) SOTIEN_TT FROM TR_REQ_PAYMENT_DT WHERE AUTH_STATUS_KT ='A' GROUP BY PAY_ADV_ID
1166
			 ) H ON A.REQ_PAY_ID =H.PAY_ADV_ID
1167
			 LEFT JOIN TR_PO_MASTER PO ON A.REF_ID = PO.PO_ID AND A.REQ_TYPE='P'
1168
			 LEFT JOIN CM_SUPPLIER S ON S.SUP_ID = PO.SUP_ID AND A.REQ_TYPE='P'
1169
			 LEFT JOIN PL_REQUEST_PROCESS_CHILD PC3 ON PC3.REQ_ID = A.REQ_PAY_ID AND PC3.STATUS_JOB ='C' 
1170
			 LEFT JOIN PL_REQUEST_PROCESS_CHILD PC4 ON PC4.REQ_ID = A.REQ_PAY_ID AND PC4.STATUS_JOB ='C'
1171
			 LEFT JOIN PL_REQUEST_PROCESS_CHILD PC5 ON PC5.REQ_ID = A.REQ_PAY_ID AND PC5.TYPE_JOB ='XL'
1172
			 LEFT JOIN TL_USER TL8 ON PC5.TLNAME = TL8.TLNANME
1173
			 LEFT JOIN TL_SYSROLE SR ON TL.RoleName = SR.ROLE_ID
1174
			 LEFT JOIN CM_BRANCH BR_CORE ON TL2.TLSUBBRID = BR_CORE.BRANCH_ID
1175
			LEFT JOIN TR_REQ_PAY_AUTO_PAYMENTS K ON A.REQ_PAY_ID = K.REQ_PAY_ID
1176
			LEFT JOIN TR_REQ_PAYMENT_AUTO L ON K.REQ_PAY_AUTO_ID = L.REQ_PAY_AUTO_ID
1177
        WHERE 1=1 
1178
			  AND(A.REQ_PAY_ID =@p_REQ_PAY_ID OR @p_REQ_PAY_ID='' OR @p_REQ_PAY_ID IS NULL)
1179
			  AND (A.IS_CREATE_AUTO = @p_IS_CREATE_AUTO OR ISNULL(@p_IS_CREATE_AUTO, '') = '')
1180
			  AND(	A.AUTH_STATUS=@p_AUTH_STATUS 
1181
					OR @p_AUTH_STATUS='' 
1182
					OR @p_AUTH_STATUS IS NULL 
1183
					OR	(	@p_AUTH_STATUS = 'G' 
1184
							AND ISNULL(A.PROCESS, '') = '0' 
1185
							AND A.AUTH_STATUS = 'U'
1186
							AND @P_USER_LOGIN = A.TRASFER_USER_RECIVE
1187
						) 
1188
					OR	(	@p_AUTH_STATUS = 'W' 
1189
							AND ISNULL(A.PROCESS, '') = '' 
1190
							AND A.AUTH_STATUS = 'U'
1191
							AND @P_USER_LOGIN = A.TRASFER_USER_RECIVE
1192
						)
1193
				)
1194
			  AND(A.MAKER_ID =@p_MAKER_ID OR @p_MAKER_ID='' OR @p_MAKER_ID IS NULL)
1195
			  AND(A.MAKER_ID_KT = @p_MAKER_ID_KT OR @p_MAKER_ID_KT = '' OR @p_MAKER_ID_KT IS NULL OR PC3.TLNAME = @p_MAKER_ID_KT)
1196
			  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)
1197
			  AND(A.DEP_ID=@p_DEP_ID OR @p_DEP_ID='' OR @p_DEP_ID IS NULL)
1198
			  AND	(	(	@p_LEVEL='ALL' AND	(	A.BRANCH_ID IN(SELECT BRANCH_ID FROM @tmp) 
1199
													OR A.BRANCH_CREATE IN (SELECT * FROM @BRANCH_AUTH)
1200
												)
1201
						) -- LUCTV 20211012: BO SUNG CAU HINH DE XU LY UY QUYEN KIEM NHIEM
1202
						OR	(	(	@p_LEVEL='UNIT' 
1203
									AND A.BRANCH_ID=@p_BRANCH_ID
1204
								)
1205
								OR(@p_BRANCH_ID='' OR @p_BRANCH_ID IS NULL) 
1206
								OR (	@BRANCH_TYPE_LG <> 'HS' AND
1207
										EXISTS	(	SELECT * 
1208
													FROM TR_REQ_ADVANCE_DT 
1209
													WHERE REQ_PAY_ID = A.REQ_PAY_ID
1210
													AND REF_ID IN (SELECT CONTRACT_ID FROM TR_CONTRACT WHERE BRANCH_ID =@p_BRANCH_LOGIN) 
1211
													AND A.AUTH_STATUS_KT ='A'
1212
												)
1213
									)
1214
							)
1215
					)
1216
			  AND	(	(	@p_LEVEL='ALL' 
1217
							AND (	A.BRANCH_ID IN(SELECT BRANCH_ID FROM @tmp) 
1218
									OR A.BRANCH_CREATE IN (SELECT * FROM @BRANCH_AUTH)
1219
								)
1220
						) -- - LUCTV 20211012: BO SUNG CAU HINH DE XU LY UY QUYEN KIEM NHIEM
1221
						OR	(	(	@p_LEVEL='UNIT' 
1222
									AND A.BRANCH_ID=@p_BRANCH_ID
1223
								)
1224
								OR	(	@p_BRANCH_ID='' 
1225
										OR @p_BRANCH_ID IS NULL
1226
									)
1227
																 OR	(	@BRANCH_TYPE_LG <> 'HS' 
1228
																		AND EXISTS	(	SELECT * 
1229
																						FROM TR_REQ_ADVANCE_DT 
1230
																						WHERE REQ_PAY_ID = A.REQ_PAY_ID 
1231
																						AND REF_ID IN (SELECT CONTRACT_ID FROM TR_CONTRACT WHERE BRANCH_ID =@p_BRANCH_LOGIN) 
1232
																						AND A.AUTH_STATUS_KT ='A'
1233
																					)
1234
																	)
1235
							)
1236
					)
1237
			  AND	(	(	A.MAKER_ID_KT IS NOT NULL 
1238
							AND @p_IS_UPDATE_KT='Y'
1239
						) --Lay danh sach chua duoc phong KT cap nhat va duoc cap nhat
1240
						OR	(	(	A.MAKER_ID_KT IS NULL 
1241
									AND @p_IS_UPDATE_KT='N'
1242
								)
1243
							)
1244
							OR @p_IS_UPDATE_KT IS NULL 
1245
							OR @p_IS_UPDATE_KT='')
1246
			  AND(A.NOTES LIKE N'%'+@p_NOTES+'%' OR @p_NOTES='' OR @p_NOTES IS NULL)
1247
			  --Luanlt-2019/10/14-Thêm Filter  REQ_TYPE,FROMDATE TODATE REF_ID
1248
			  AND(A.REQ_TYPE LIKE N'%'+@p_REQ_TYPE+'%' OR @p_REQ_TYPE = '' OR @p_REQ_TYPE IS NULL)
1249
			  AND(CONVERT(DATE, A.CREATE_DT)>=CONVERT(DATE, @DATE, 103)OR @p_FRMDATE IS NULL OR @p_FRMDATE='' OR A.CREATE_DT IS NULL)
1250
              AND(CONVERT(DATE, A.CREATE_DT)<=CONVERT(DATE, @p_TODATE, 103)OR @p_TODATE IS NULL OR @p_TODATE='' OR A.CREATE_DT IS NULL)
1251
			  --Luanlt-2019/10/17-Thêm Filter REQ_PAY_CODE REQ_PAY_NAME  BRANCH_ID DEP_ID KT_AUTH
1252
			  AND(A.REQ_PAY_CODE LIKE N'%'+@p_REQ_PAY_CODE+'%' or @p_REQ_PAY_CODE='' OR @p_REQ_PAY_CODE IS NULL)
1253
			  AND(A.REQ_REASON LIKE N'%'+@p_REQ_REASON+'%' or @p_REQ_REASON='' OR @p_REQ_REASON IS NULL)
1254
			  --AND(A.TRASFER_USER_RECIVE =@p_TRASFER_USER_RECIVE or @p_TRASFER_USER_RECIVE='' OR @p_TRASFER_USER_RECIVE IS NULL OR A.MAKER_ID_KT IS NOT NULL OR A.MAKER_ID_KT <>'')
1255
			  AND	(	(@p_BRANCH_ID <> @p_BRANCH_LOGIN AND A.BRANCH_ID = @p_BRANCH_ID) 
1256
						OR @p_BRANCH_ID = @p_BRANCH_LOGIN 
1257
						OR @p_BRANCH_ID='' 
1258
						OR @p_BRANCH_ID IS NULL
1259
					)
1260
			  AND(A.DEP_ID = @p_DEP_ID  or @p_DEP_ID='' OR @p_DEP_ID IS NULL)
1261
			  AND	(	(	A.AUTH_STATUS_KT=@p_AUTH_STATUS_KT 
1262
							OR @p_AUTH_STATUS_KT='' 
1263
							OR @p_AUTH_STATUS_KT IS NULL
1264
						) 
1265
						OR (@p_AUTH_STATUS_KT ='P' AND A.AUTH_STATUS_KT IN ('P','S'))
1266
					)
1267
			  AND(A.REF_ID =@p_REF_ID OR @p_REF_ID='' OR @p_REF_ID IS NULL)
1268
			  --AND((A.TRANSFER_MAKER IS NOT NULL AND @p_IS_TRANSFER='Y') --Lay danh sach chua duoc phong KT cap nhat va duoc cap nhat
1269
              --OR((A.TRANSFER_MAKER IS NULL AND @p_IS_TRANSFER='N'))OR @p_IS_TRANSFER IS NULL OR @p_IS_TRANSFER='')
1270
			  -- Neu ben phan he ke toan thi chi lay nhung user co maker_id khac null
1271
			  AND  (
1272
						(
1273
							@p_FUNCTION ='KT' 
1274
							AND (
1275
									EXISTS(SELECT TOP 1 * FROM PL_REQUEST_PROCESS_CHILD X WHERE REQ_ID = A.REQ_PAY_ID 
1276
									AND (
1277
											X.TLNAME= @p_USER_LOGIN 
1278
											OR X.TLNAME =@p_EXEC_USER_KT)
1279
										)
1280
								) 
1281
							OR	(A.MAKER_ID_KT = @p_MAKER_ID_KT OR PC3.TLNAME = @p_MAKER_ID_KT)
1282
							OR A.CHECKER_ID_KT ='admin' 
1283
							OR A.AUTH_STATUS_KT='A' 
1284
						)
1285
						OR @p_FUNCTION ='' 
1286
						OR @p_FUNCTION IS NULL 
1287
						OR @p_FUNCTION ='TF' 
1288
					)	  
1289
				AND(PC4.TLNAME = @p_TRASFER_USER_RECIVE OR @p_TRASFER_USER_RECIVE IS NULL OR @p_TRASFER_USER_RECIVE ='' OR A.MAKER_ID_KT =@p_TRASFER_USER_RECIVE)
1290
			 -- AND ((@p_FUNCTION ='KT' AND A.MAKER_ID_KT IS NOT NULL AND A.MAKER_ID_KT ='') OR @p_FUNCTION IS NULL OR @p_FUNCTION ='')
1291
				AND	(	(	@p_IS_TRANSFER='Y' 
1292
							AND	(	EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_ID) 
1293
									OR A.AUTH_STATUS_KT ='A'
1294
								)
1295
						) --Lay danh sach chua duoc phong KT cap nhat va duoc cap nhat
1296
						OR	(	(	@p_IS_TRANSFER='N' 
1297
									AND (	NOT EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_ID )) 
1298
											AND A.AUTH_STATUS_KT <>'A'
1299
								)
1300
							)
1301
						OR @p_IS_TRANSFER IS NULL 
1302
						OR @p_IS_TRANSFER=''
1303
					)	
1304
				AND
1305
				( /*0*/
1306
				  A.MAKER_ID =@p_USER_LOGIN  
1307
				  OR ( A.TRASFER_USER_RECIVE = @P_USER_LOGIN 
1308
						AND A.AUTH_STATUS NOT IN ('E','R')
1309
					 )
1310
				  OR	(	(	@IS_SEE_ALL_HC = 'Y'			--DOANPTT 20/12/22: CHO A XUAN XEM TOAN BO PHIEU THUOC PHONG HANH CHINH
1311
								AND A.DEP_ID = @DEP_ID_LG
1312
								AND A.BRANCH_ID = 'DV0001'
1313
								AND A.AUTH_STATUS IN ('U','R', 'A')
1314
								AND @p_TYPE_SEARCH ='HC'
1315
							)
1316
						)
1317
				  OR (@P_USER_LOGIN = 'baotq')					-- DOANPTT 08/05/2023: CHO A BẢO XEM TẤT CẢ PHIẾU CỦA HỆ THỐNG
1318
				  OR (	A.AUTH_STATUS <>'E' /*1*/
1319
						AND
1320
						(/*2*/
1321
							(	@p_TYPE_SEARCH ='HC'		/*3*/ 
1322
								AND @BRANCH_TYPE_LG ='HS'  
1323
								AND (/*4*/A.TRASFER_USER_RECIVE = @p_USER_LOGIN 
1324
										OR (/*5*/
1325
												EXISTS (	SELECT * 
1326
															FROM @TABLE_ROLE 
1327
															WHERE ROLE_AUTH IN ('GDDV','GDK','KTT','TPTC','TP','PP','TC')
1328
													   )
1329
												AND    (
1330
															(	A.BRANCH_ID =@p_BRANCH_LOGIN 
1331
																OR A.BRANCH_ID IN (SELECT * FROM @BRANCH_AUTH)
1332
															) 
1333
															AND (	A.DEP_ID = @DEP_ID_LG 
1334
																	OR  ( 
1335
																			A.DEP_ID  IN ('DEP000000000051','DEP000000000733') 
1336
																			AND @p_USER_LOGIN ='cuongpv2'
1337
																		) 
1338
																	OR A.DEP_ID IN (
1339
																						SELECT * 
1340
																						FROM @DEP_AUTH
1341
																					)
1342
																)
1343
														)
1344
												AND ( 
1345
														A.TRASFER_USER_RECIVE IS NULL 
1346
														OR A.TRASFER_USER_RECIVE ='' 
1347
														OR (
1348
																A.TRASFER_USER_RECIVE IS NOT NULL 
1349
																AND A.TRASFER_USER_RECIVE <>'' 
1350
																AND A.PROCESS IS NOT NULL 
1351
																AND A.PROCESS <>''
1352
															)
1353
													)
1354
											)/*5*/
1355
										)/*4*/
1356
								)/*3*/
1357
							OR(/*trong 2*/
1358
									@p_TYPE_SEARCH ='HC' 
1359
									AND @BRANCH_TYPE_LG = 'CN' 
1360
									AND (
1361
											@ROLE_ID IN ('GDDV','PGD','TPGD','PPGD') 
1362
											AND A.BRANCH_ID =@p_BRANCH_LOGIN 
1363
											AND
1364
												(
1365
													(
1366
														A.TRASFER_USER_RECIVE IS NOT NULL 
1367
														AND A.TRASFER_USER_RECIVE <>'' 
1368
														AND A.PROCESS IS NOT NULL 
1369
														AND A.PROCESS <>''
1370
													 ) 
1371
													OR A.TRASFER_USER_RECIVE ='' 
1372
													OR A.TRASFER_USER_RECIVE IS NULL
1373
												 )
1374
											OR (
1375
													(
1376
														A.BRANCH_CREATE <> @p_BRANCH_LOGIN 
1377
														AND A.TRASFER_USER_RECIVE IS NOT NULL 
1378
															AND A.TRASFER_USER_RECIVE <>''
1379
													) 
1380
													OR A.BRANCH_CREATE = @p_BRANCH_LOGIN
1381
												)
1382
											AND A.BRANCH_ID =@p_BRANCH_ID
1383
										)
1384
								)
1385
							 OR
1386
								(
1387
									@p_TYPE_SEARCH ='HC' 
1388
									AND @BRANCH_TYPE_LG = 'PGD' 
1389
									AND (
1390
											@ROLE_ID IN ('GDDV','TPGD','PPGD','PGD') 
1391
											AND A.BRANCH_ID =@p_BRANCH_LOGIN
1392
										)
1393
								)
1394
							 OR
1395
								(
1396
									@p_TYPE_SEARCH ='HC' 
1397
									AND(
1398
											@ROLE_ID IN ('KSV','GDV','NVTC') 
1399
											OR @DEP_ID_LG ='DEP000000000022'
1400
										) 
1401
									AND A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp_Login)
1402
								)
1403
							OR	(
1404
									@p_TYPE_SEARCH='KT' 
1405
									AND @p_BRANCH_LOGIN ='DV0001' 
1406
									AND A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp_Login)
1407
								)
1408
							OR @p_TYPE_SEARCH IS NULL OR @p_TYPE_SEARCH =''
1409
						)/*2*/
1410
				)/*1*/
1411
				  OR
1412
				  (
1413
						(
1414
							@ROLE_ID IN ('KSV','GDV','NVTC') 
1415
							OR @DEP_ID_LG ='DEP000000000022'
1416
						) 
1417
						AND @p_BRANCH_LOGIN ='DV0001' 
1418
						AND A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp_Login)
1419
				  )
1420
				  -- NEU DUOC UY QUYEN DUYỆT CHO 1 ĐƠN VỊ KHÁC HỘI SỞ THÌ CHỈ SETUP ĐƠN VỊ, KHÔNG CẦN SETUP PHÒNG BAN
1421
				  OR(	@p_TYPE_SEARCH ='HC' 
1422
						AND A.BRANCH_CREATE <> 'DV0001' 
1423
						AND A.BRANCH_ID IN (SELECT * FROM @BRANCH_AUTH)
1424
					)
1425
				  -- LUCTV 25 05 BO SUNG CAU HINH CHO PHEP DVKD DUOC THAY NHUNG PDN THANH TOAN DO HO TẠO
1426
				  OR (
1427
						@p_TYPE_SEARCH ='HC' 
1428
						AND @BRANCH_TYPE_LG <> 'HS' 
1429
						AND
1430
						EXISTS (
1431
									SELECT * 
1432
									FROM TR_REQ_ADVANCE_DT 
1433
									WHERE REQ_PAY_ID = A.REQ_PAY_ID AND REF_ID IN (
1434
																					SELECT CONTRACT_ID 
1435
																					FROM TR_CONTRACT
1436
																					WHERE BRANCH_ID =@p_BRANCH_LOGIN
1437
																				  ) 
1438
									AND A.AUTH_STATUS_KT ='A'
1439
								)
1440
					)
1441
			 )/*0*/
1442
		ORDER BY  A.CREATE_DT DESC
1443
) COUNTER_TOP;WITH QUERY_DATA AS ( 
1444
        SELECT TOP(CONVERT(INT,@p_TOP)) A.*,B.AUTH_STATUS_NAME, C.AUTH_STATUS_NAME AUTH_STATUS_NAME_KT, TL.TLFullName CREATE_FULLNAME, C.AUTH_STATUS_KT_DESC,
1445
		TL1.TLFullName APPROVE_FULLNAME,
1446
		CASE WHEN ISNULL(TL2.TLFullName,'') <>'' THEN TL2.TLFullName ELSE TL8.TLFullName END AS CREATE_FULLNAME_KT,
1447
		TL3.TLFullName APPROVE_FULLNAME_KT,
1448
		CASE WHEN ISNULL(A.IS_PERIOD,'') <> '' AND A.IS_PERIOD ='Y' AND  EXISTS (SELECT TOP 1 X.* FROM TR_REQ_ADVANCE_DT X 
1449
										INNER JOIN TR_CONTRACT CT ON X.REF_ID = CT.CONTRACT_ID
1450
										WHERE X.REQ_PAY_ID = A.REQ_PAY_ID AND CT.BRANCH_ID <>  @p_BRANCH_LOGIN AND CT.BRANCH_ID IS NOT NULL AND CT.BRANCH_ID <> '') THEN 
1451
										BR.BRANCH_NAME + ISNULL(' - '+ (SELECT TOP 1 BRANCH_NAME FROM CM_BRANCH WHERE BRANCH_ID =(SELECT TOP 1 BRANCH_ID FROM TR_CONTRACT WHERE CONTRACT_ID IN (SELECT TOP 1 REF_ID FROM TR_REQ_ADVANCE_DT 
1452
										WHERE REQ_PAY_ID = A.REQ_PAY_ID))),'')
1453
										ELSE BR.BRANCH_NAME END BRANCH_NAME_REQ,
1454
		--BR.BRANCH_NAME AS BRANCH_NAME_REQ,
1455
		BR1.BRANCH_NAME BRANCH_NAME_CRE, DP.DEP_NAME, DP.DEP_CODE, BR.BRANCH_CODE BRANCH_CODE_REQ,
1456
		--Luanlt--2019/10/15-Sửa AL,AL1
1457
		BR1.BRANCH_CODE BRANCH_CODE_CRE, AL.CONTENT REQ_TYPE_NAME,AL1.CONTENT REQ_PAY_TYPE_NAME, ISNULL((A.REQ_AMT -H.SOTIEN_TT),0) AS TOTAL_AMT_TEMP, 
1458
		ISNULL(H.SOTIEN_TT,0) TOTAL_AMT_PAY_HIS,
1459
		TL4.TLFullName AS TRANSFER_FULLNAME,TL5.TLFullName AS TRANSFER_RECIEVER_FULLNAME,'' EMP_FULLNAME,PO.PO_CODE, PO.PO_NAME, S.SUP_NAME,S.TAX_NO SUP_TAX_NO,
1460
		PC3.LEVEL_JOB, PC3.STATUS_JOB,PC3.TYPE_JOB,
1461
		--CASE WHEN PC3.TLNAME IS NOT NULL AND PC3.TLNAME <>'' THEN @P_USER_LOGIN ELSE PC3.TLNAME END AS EXEC_USER,
1462
		@p_TYPE_SEARCH AS TYPE_SEARCH,SR.ROLE_ID AS ROLE_ID_CRE,CASE WHEN BR1.BRANCH_TYPE <> 'PGD'THEN BR1.BRANCH_TYPE ELSE 'CN' END AS BRANCH_TYPE_CR,
1463
		BR_CORE.BRANCH_CODE AS BRANCH_CODE_CORE, BR_CORE.BRANCH_NAME AS BRANCH_NAME_CORE,'' AS BRANCH_CODE_CONTRACT,
1464
		ISNULL((SELECT TOP 1 BRANCH_NAME FROM CM_BRANCH WHERE BRANCH_ID =(SELECT TOP 1 BRANCH_ID FROM TR_CONTRACT WHERE CONTRACT_ID IN (SELECT TOP 1 REF_ID FROM TR_REQ_ADVANCE_DT WHERE REQ_PAY_ID = A.REQ_PAY_ID))),'')
1465
		AS BRANCH_NAME_CONTRACT,
1466
		--doanptt 300622
1467
		CASE WHEN PC3.TLNAME IS NOT NULL THEN PC3.TLNAME 
1468
			 WHEN PC3.TLNAME <>'' THEN PC3.TLNAME 
1469
			 ELSE TL2.TLNANME END AS EXEC_USER,
1470
		dbo.FN_DATEDIFF_WITHOUT_WEEKEND(A.TRANSFER_DT, GETDATE()) AS NUMBER_OF_TRANSFER,
1471
		PC3.TLNAME AS EXEC_USER_KT,
1472
		CASE WHEN ISNULL(A.CREATE_DT_KT, '') <> '' AND A.AUTH_STATUS_KT IN('P', 'S')  THEN dbo.FN_DATEDIFF_WITHOUT_WEEKEND(A.CREATE_DT_KT, GETDATE())
1473
			 ELSE 0 END AS NUMBER_OF_SEND_APPR,
1474
		L.REQ_PAY_AUTO_ID, L.REQ_PAY_AUTO_CODE,
1475
		dbo.FN_GET_NEXT_USER_PAYMENT(A.REQ_PAY_ID, A.MAKER_ID, A.BRANCH_ID, A.DEP_ID, A.AUTH_STATUS, A.AUTH_STATUS_KT, A.TRASFER_USER_RECIVE, A.PROCESS) AS NEXT_USER
1476
, ROW_NUMBER() OVER (ORDER BY  A.CREATE_DT DESC
1477
) AS __ROWNUM-- SELECT END
1478
        FROM TR_REQ_PAYMENT A
1479
             LEFT JOIN CM_AUTH_STATUS B ON A.AUTH_STATUS=B.AUTH_STATUS
1480
             LEFT JOIN CM_AUTH_STATUS C ON A.AUTH_STATUS_KT=C.AUTH_STATUS
1481
             LEFT JOIN TL_USER TL ON A.MAKER_ID=TL.TLNANME
1482
             LEFT JOIN TL_USER TL1 ON A.CHECKER_ID=TL1.TLNANME
1483
             LEFT JOIN TL_USER TL2 ON A.MAKER_ID_KT=TL2.TLNANME
1484
             LEFT JOIN TL_USER TL3 ON A.CHECKER_ID_KT=TL3.TLNANME
1485
             LEFT JOIN dbo.CM_BRANCH BR ON A.BRANCH_ID=BR.BRANCH_ID
1486
			 LEFT JOIN dbo.CM_BRANCH BR1 ON A.BRANCH_CREATE=BR1.BRANCH_ID
1487
             LEFT JOIN dbo.CM_DEPARTMENT DP ON DP.DEP_ID=A.DEP_ID
1488
			 --Luanlt--2019/10/15-Sửa AL,AL1
1489
			 LEFT JOIN CM_ALLCODE AL ON A.REQ_TYPE = AL.CDVAL AND AL.CDNAME='PAY_TYPE' AND AL.CDTYPE = 'REQ'
1490
			 LEFT JOIN CM_ALLCODE AL1 ON A.REQ_PAY_TYPE = AL1.CDVAL AND AL1.CDNAME='REQ_PAY_TYPE' AND AL1.CDTYPE = 'REQ'
1491
			 LEFT JOIN TL_USER TL4 ON A.TRANSFER_MAKER = TL4.TLNANME
1492
			 LEFT JOIN TL_USER TL5 ON A.TRASFER_USER_RECIVE = TL5.TLNANME
1493
			 LEFT JOIN 
1494
			 (
1495
			 SELECT PAY_ADV_ID, SUM(AMT_PAY) SOTIEN_TT FROM TR_REQ_PAYMENT_DT WHERE AUTH_STATUS_KT ='A' GROUP BY PAY_ADV_ID
1496
			 ) H ON A.REQ_PAY_ID =H.PAY_ADV_ID
1497
			 LEFT JOIN TR_PO_MASTER PO ON A.REF_ID = PO.PO_ID AND A.REQ_TYPE='P'
1498
			 LEFT JOIN CM_SUPPLIER S ON S.SUP_ID = PO.SUP_ID AND A.REQ_TYPE='P'
1499
			 LEFT JOIN PL_REQUEST_PROCESS_CHILD PC3 ON PC3.REQ_ID = A.REQ_PAY_ID AND PC3.STATUS_JOB ='C' 
1500
			 LEFT JOIN PL_REQUEST_PROCESS_CHILD PC4 ON PC4.REQ_ID = A.REQ_PAY_ID AND PC4.STATUS_JOB ='C'
1501
			 LEFT JOIN PL_REQUEST_PROCESS_CHILD PC5 ON PC5.REQ_ID = A.REQ_PAY_ID AND PC5.TYPE_JOB ='XL'
1502
			 LEFT JOIN TL_USER TL8 ON PC5.TLNAME = TL8.TLNANME
1503
			 LEFT JOIN TL_SYSROLE SR ON TL.RoleName = SR.ROLE_ID
1504
			 LEFT JOIN CM_BRANCH BR_CORE ON TL2.TLSUBBRID = BR_CORE.BRANCH_ID
1505
			LEFT JOIN TR_REQ_PAY_AUTO_PAYMENTS K ON A.REQ_PAY_ID = K.REQ_PAY_ID
1506
			LEFT JOIN TR_REQ_PAYMENT_AUTO L ON K.REQ_PAY_AUTO_ID = L.REQ_PAY_AUTO_ID
1507
        WHERE 1=1 
1508
			  AND(A.REQ_PAY_ID =@p_REQ_PAY_ID OR @p_REQ_PAY_ID='' OR @p_REQ_PAY_ID IS NULL)
1509
			  AND (A.IS_CREATE_AUTO = @p_IS_CREATE_AUTO OR ISNULL(@p_IS_CREATE_AUTO, '') = '')
1510
			  AND(	A.AUTH_STATUS=@p_AUTH_STATUS 
1511
					OR @p_AUTH_STATUS='' 
1512
					OR @p_AUTH_STATUS IS NULL 
1513
					OR	(	@p_AUTH_STATUS = 'G' 
1514
							AND ISNULL(A.PROCESS, '') = '0' 
1515
							AND A.AUTH_STATUS = 'U'
1516
							AND @P_USER_LOGIN = A.TRASFER_USER_RECIVE
1517
						) 
1518
					OR	(	@p_AUTH_STATUS = 'W' 
1519
							AND ISNULL(A.PROCESS, '') = '' 
1520
							AND A.AUTH_STATUS = 'U'
1521
							AND @P_USER_LOGIN = A.TRASFER_USER_RECIVE
1522
						)
1523
				)
1524
			  AND(A.MAKER_ID =@p_MAKER_ID OR @p_MAKER_ID='' OR @p_MAKER_ID IS NULL)
1525
			  AND(A.MAKER_ID_KT = @p_MAKER_ID_KT OR @p_MAKER_ID_KT = '' OR @p_MAKER_ID_KT IS NULL OR PC3.TLNAME = @p_MAKER_ID_KT)
1526
			  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)
1527
			  AND(A.DEP_ID=@p_DEP_ID OR @p_DEP_ID='' OR @p_DEP_ID IS NULL)
1528
			  AND	(	(	@p_LEVEL='ALL' AND	(	A.BRANCH_ID IN(SELECT BRANCH_ID FROM @tmp) 
1529
													OR A.BRANCH_CREATE IN (SELECT * FROM @BRANCH_AUTH)
1530
												)
1531
						) -- LUCTV 20211012: BO SUNG CAU HINH DE XU LY UY QUYEN KIEM NHIEM
1532
						OR	(	(	@p_LEVEL='UNIT' 
1533
									AND A.BRANCH_ID=@p_BRANCH_ID
1534
								)
1535
								OR(@p_BRANCH_ID='' OR @p_BRANCH_ID IS NULL) 
1536
								OR (	@BRANCH_TYPE_LG <> 'HS' AND
1537
										EXISTS	(	SELECT * 
1538
													FROM TR_REQ_ADVANCE_DT 
1539
													WHERE REQ_PAY_ID = A.REQ_PAY_ID
1540
													AND REF_ID IN (SELECT CONTRACT_ID FROM TR_CONTRACT WHERE BRANCH_ID =@p_BRANCH_LOGIN) 
1541
													AND A.AUTH_STATUS_KT ='A'
1542
												)
1543
									)
1544
							)
1545
					)
1546
			  AND	(	(	@p_LEVEL='ALL' 
1547
							AND (	A.BRANCH_ID IN(SELECT BRANCH_ID FROM @tmp) 
1548
									OR A.BRANCH_CREATE IN (SELECT * FROM @BRANCH_AUTH)
1549
								)
1550
						) -- - LUCTV 20211012: BO SUNG CAU HINH DE XU LY UY QUYEN KIEM NHIEM
1551
						OR	(	(	@p_LEVEL='UNIT' 
1552
									AND A.BRANCH_ID=@p_BRANCH_ID
1553
								)
1554
								OR	(	@p_BRANCH_ID='' 
1555
										OR @p_BRANCH_ID IS NULL
1556
									)
1557
																 OR	(	@BRANCH_TYPE_LG <> 'HS' 
1558
																		AND EXISTS	(	SELECT * 
1559
																						FROM TR_REQ_ADVANCE_DT 
1560
																						WHERE REQ_PAY_ID = A.REQ_PAY_ID 
1561
																						AND REF_ID IN (SELECT CONTRACT_ID FROM TR_CONTRACT WHERE BRANCH_ID =@p_BRANCH_LOGIN) 
1562
																						AND A.AUTH_STATUS_KT ='A'
1563
																					)
1564
																	)
1565
							)
1566
					)
1567
			  AND	(	(	A.MAKER_ID_KT IS NOT NULL 
1568
							AND @p_IS_UPDATE_KT='Y'
1569
						) --Lay danh sach chua duoc phong KT cap nhat va duoc cap nhat
1570
						OR	(	(	A.MAKER_ID_KT IS NULL 
1571
									AND @p_IS_UPDATE_KT='N'
1572
								)
1573
							)
1574
							OR @p_IS_UPDATE_KT IS NULL 
1575
							OR @p_IS_UPDATE_KT='')
1576
			  AND(A.NOTES LIKE N'%'+@p_NOTES+'%' OR @p_NOTES='' OR @p_NOTES IS NULL)
1577
			  --Luanlt-2019/10/14-Thêm Filter  REQ_TYPE,FROMDATE TODATE REF_ID
1578
			  AND(A.REQ_TYPE LIKE N'%'+@p_REQ_TYPE+'%' OR @p_REQ_TYPE = '' OR @p_REQ_TYPE IS NULL)
1579
			  AND(CONVERT(DATE, A.CREATE_DT)>=CONVERT(DATE, @DATE, 103)OR @p_FRMDATE IS NULL OR @p_FRMDATE='' OR A.CREATE_DT IS NULL)
1580
              AND(CONVERT(DATE, A.CREATE_DT)<=CONVERT(DATE, @p_TODATE, 103)OR @p_TODATE IS NULL OR @p_TODATE='' OR A.CREATE_DT IS NULL)
1581
			  --Luanlt-2019/10/17-Thêm Filter REQ_PAY_CODE REQ_PAY_NAME  BRANCH_ID DEP_ID KT_AUTH
1582
			  AND(A.REQ_PAY_CODE LIKE N'%'+@p_REQ_PAY_CODE+'%' or @p_REQ_PAY_CODE='' OR @p_REQ_PAY_CODE IS NULL)
1583
			  AND(A.REQ_REASON LIKE N'%'+@p_REQ_REASON+'%' or @p_REQ_REASON='' OR @p_REQ_REASON IS NULL)
1584
			  --AND(A.TRASFER_USER_RECIVE =@p_TRASFER_USER_RECIVE or @p_TRASFER_USER_RECIVE='' OR @p_TRASFER_USER_RECIVE IS NULL OR A.MAKER_ID_KT IS NOT NULL OR A.MAKER_ID_KT <>'')
1585
			  AND	(	(@p_BRANCH_ID <> @p_BRANCH_LOGIN AND A.BRANCH_ID = @p_BRANCH_ID) 
1586
						OR @p_BRANCH_ID = @p_BRANCH_LOGIN 
1587
						OR @p_BRANCH_ID='' 
1588
						OR @p_BRANCH_ID IS NULL
1589
					)
1590
			  AND(A.DEP_ID = @p_DEP_ID  or @p_DEP_ID='' OR @p_DEP_ID IS NULL)
1591
			  AND	(	(	A.AUTH_STATUS_KT=@p_AUTH_STATUS_KT 
1592
							OR @p_AUTH_STATUS_KT='' 
1593
							OR @p_AUTH_STATUS_KT IS NULL
1594
						) 
1595
						OR (@p_AUTH_STATUS_KT ='P' AND A.AUTH_STATUS_KT IN ('P','S'))
1596
					)
1597
			  AND(A.REF_ID =@p_REF_ID OR @p_REF_ID='' OR @p_REF_ID IS NULL)
1598
			  --AND((A.TRANSFER_MAKER IS NOT NULL AND @p_IS_TRANSFER='Y') --Lay danh sach chua duoc phong KT cap nhat va duoc cap nhat
1599
              --OR((A.TRANSFER_MAKER IS NULL AND @p_IS_TRANSFER='N'))OR @p_IS_TRANSFER IS NULL OR @p_IS_TRANSFER='')
1600
			  -- Neu ben phan he ke toan thi chi lay nhung user co maker_id khac null
1601
			  AND  (
1602
						(
1603
							@p_FUNCTION ='KT' 
1604
							AND (
1605
									EXISTS(SELECT TOP 1 * FROM PL_REQUEST_PROCESS_CHILD X WHERE REQ_ID = A.REQ_PAY_ID 
1606
									AND (
1607
											X.TLNAME= @p_USER_LOGIN 
1608
											OR X.TLNAME =@p_EXEC_USER_KT)
1609
										)
1610
								) 
1611
							OR	(A.MAKER_ID_KT = @p_MAKER_ID_KT OR PC3.TLNAME = @p_MAKER_ID_KT)
1612
							OR A.CHECKER_ID_KT ='admin' 
1613
							OR A.AUTH_STATUS_KT='A' 
1614
						)
1615
						OR @p_FUNCTION ='' 
1616
						OR @p_FUNCTION IS NULL 
1617
						OR @p_FUNCTION ='TF' 
1618
					)	  
1619
				AND(PC4.TLNAME = @p_TRASFER_USER_RECIVE OR @p_TRASFER_USER_RECIVE IS NULL OR @p_TRASFER_USER_RECIVE ='' OR A.MAKER_ID_KT =@p_TRASFER_USER_RECIVE)
1620
			 -- AND ((@p_FUNCTION ='KT' AND A.MAKER_ID_KT IS NOT NULL AND A.MAKER_ID_KT ='') OR @p_FUNCTION IS NULL OR @p_FUNCTION ='')
1621
				AND	(	(	@p_IS_TRANSFER='Y' 
1622
							AND	(	EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_ID) 
1623
									OR A.AUTH_STATUS_KT ='A'
1624
								)
1625
						) --Lay danh sach chua duoc phong KT cap nhat va duoc cap nhat
1626
						OR	(	(	@p_IS_TRANSFER='N' 
1627
									AND (	NOT EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_ID )) 
1628
											AND A.AUTH_STATUS_KT <>'A'
1629
								)
1630
							)
1631
						OR @p_IS_TRANSFER IS NULL 
1632
						OR @p_IS_TRANSFER=''
1633
					)	
1634
				AND
1635
				( /*0*/
1636
				  A.MAKER_ID =@p_USER_LOGIN  
1637
				  OR ( A.TRASFER_USER_RECIVE = @P_USER_LOGIN 
1638
						AND A.AUTH_STATUS NOT IN ('E','R')
1639
					 )
1640
				  OR	(	(	@IS_SEE_ALL_HC = 'Y'			--DOANPTT 20/12/22: CHO A XUAN XEM TOAN BO PHIEU THUOC PHONG HANH CHINH
1641
								AND A.DEP_ID = @DEP_ID_LG
1642
								AND A.BRANCH_ID = 'DV0001'
1643
								AND A.AUTH_STATUS IN ('U','R', 'A')
1644
								AND @p_TYPE_SEARCH ='HC'
1645
							)
1646
						)
1647
				  OR (@P_USER_LOGIN = 'baotq')					-- DOANPTT 08/05/2023: CHO A BẢO XEM TẤT CẢ PHIẾU CỦA HỆ THỐNG
1648
				  OR (	A.AUTH_STATUS <>'E' /*1*/
1649
						AND
1650
						(/*2*/
1651
							(	@p_TYPE_SEARCH ='HC'		/*3*/ 
1652
								AND @BRANCH_TYPE_LG ='HS'  
1653
								AND (/*4*/A.TRASFER_USER_RECIVE = @p_USER_LOGIN 
1654
										OR (/*5*/
1655
												EXISTS (	SELECT * 
1656
															FROM @TABLE_ROLE 
1657
															WHERE ROLE_AUTH IN ('GDDV','GDK','KTT','TPTC','TP','PP','TC')
1658
													   )
1659
												AND    (
1660
															(	A.BRANCH_ID =@p_BRANCH_LOGIN 
1661
																OR A.BRANCH_ID IN (SELECT * FROM @BRANCH_AUTH)
1662
															) 
1663
															AND (	A.DEP_ID = @DEP_ID_LG 
1664
																	OR  ( 
1665
																			A.DEP_ID  IN ('DEP000000000051','DEP000000000733') 
1666
																			AND @p_USER_LOGIN ='cuongpv2'
1667
																		) 
1668
																	OR A.DEP_ID IN (
1669
																						SELECT * 
1670
																						FROM @DEP_AUTH
1671
																					)
1672
																)
1673
														)
1674
												AND ( 
1675
														A.TRASFER_USER_RECIVE IS NULL 
1676
														OR A.TRASFER_USER_RECIVE ='' 
1677
														OR (
1678
																A.TRASFER_USER_RECIVE IS NOT NULL 
1679
																AND A.TRASFER_USER_RECIVE <>'' 
1680
																AND A.PROCESS IS NOT NULL 
1681
																AND A.PROCESS <>''
1682
															)
1683
													)
1684
											)/*5*/
1685
										)/*4*/
1686
								)/*3*/
1687
							OR(/*trong 2*/
1688
									@p_TYPE_SEARCH ='HC' 
1689
									AND @BRANCH_TYPE_LG = 'CN' 
1690
									AND (
1691
											@ROLE_ID IN ('GDDV','PGD','TPGD','PPGD') 
1692
											AND A.BRANCH_ID =@p_BRANCH_LOGIN 
1693
											AND
1694
												(
1695
													(
1696
														A.TRASFER_USER_RECIVE IS NOT NULL 
1697
														AND A.TRASFER_USER_RECIVE <>'' 
1698
														AND A.PROCESS IS NOT NULL 
1699
														AND A.PROCESS <>''
1700
													 ) 
1701
													OR A.TRASFER_USER_RECIVE ='' 
1702
													OR A.TRASFER_USER_RECIVE IS NULL
1703
												 )
1704
											OR (
1705
													(
1706
														A.BRANCH_CREATE <> @p_BRANCH_LOGIN 
1707
														AND A.TRASFER_USER_RECIVE IS NOT NULL 
1708
															AND A.TRASFER_USER_RECIVE <>''
1709
													) 
1710
													OR A.BRANCH_CREATE = @p_BRANCH_LOGIN
1711
												)
1712
											AND A.BRANCH_ID =@p_BRANCH_ID
1713
										)
1714
								)
1715
							 OR
1716
								(
1717
									@p_TYPE_SEARCH ='HC' 
1718
									AND @BRANCH_TYPE_LG = 'PGD' 
1719
									AND (
1720
											@ROLE_ID IN ('GDDV','TPGD','PPGD','PGD') 
1721
											AND A.BRANCH_ID =@p_BRANCH_LOGIN
1722
										)
1723
								)
1724
							 OR
1725
								(
1726
									@p_TYPE_SEARCH ='HC' 
1727
									AND(
1728
											@ROLE_ID IN ('KSV','GDV','NVTC') 
1729
											OR @DEP_ID_LG ='DEP000000000022'
1730
										) 
1731
									AND A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp_Login)
1732
								)
1733
							OR	(
1734
									@p_TYPE_SEARCH='KT' 
1735
									AND @p_BRANCH_LOGIN ='DV0001' 
1736
									AND A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp_Login)
1737
								)
1738
							OR @p_TYPE_SEARCH IS NULL OR @p_TYPE_SEARCH =''
1739
						)/*2*/
1740
				)/*1*/
1741
				  OR
1742
				  (
1743
						(
1744
							@ROLE_ID IN ('KSV','GDV','NVTC') 
1745
							OR @DEP_ID_LG ='DEP000000000022'
1746
						) 
1747
						AND @p_BRANCH_LOGIN ='DV0001' 
1748
						AND A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp_Login)
1749
				  )
1750
				  -- NEU DUOC UY QUYEN DUYỆT CHO 1 ĐƠN VỊ KHÁC HỘI SỞ THÌ CHỈ SETUP ĐƠN VỊ, KHÔNG CẦN SETUP PHÒNG BAN
1751
				  OR(	@p_TYPE_SEARCH ='HC' 
1752
						AND A.BRANCH_CREATE <> 'DV0001' 
1753
						AND A.BRANCH_ID IN (SELECT * FROM @BRANCH_AUTH)
1754
					)
1755
				  -- LUCTV 25 05 BO SUNG CAU HINH CHO PHEP DVKD DUOC THAY NHUNG PDN THANH TOAN DO HO TẠO
1756
				  OR (
1757
						@p_TYPE_SEARCH ='HC' 
1758
						AND @BRANCH_TYPE_LG <> 'HS' 
1759
						AND
1760
						EXISTS (
1761
									SELECT * 
1762
									FROM TR_REQ_ADVANCE_DT 
1763
									WHERE REQ_PAY_ID = A.REQ_PAY_ID AND REF_ID IN (
1764
																					SELECT CONTRACT_ID 
1765
																					FROM TR_CONTRACT
1766
																					WHERE BRANCH_ID =@p_BRANCH_LOGIN
1767
																				  ) 
1768
									AND A.AUTH_STATUS_KT ='A'
1769
								)
1770
					)
1771
			 )/*0*/
1772
		ORDER BY  A.CREATE_DT DESC
1773
) SELECT * FROM QUERY_DATA WHERE __ROWNUM > 0 AND __ROWNUM <= 10
1774
END-- PAGING END
1775
    END;
1776
END
1777

    
1778

    
1779
go