Project

General

Profile

FIX_TIM_TOTRINH1.txt

Luc Tran Van, 06/17/2025 02:26 PM

 
1
SET QUOTED_IDENTIFIER ON
2
SET ANSI_NULLS ON
3
GO
4
CREATE PROCEDURE dbo.PL_REQUEST_DOC_Search
5
@p_REQ_ID	varchar(15)  = NULL,
6
@p_REQ_CODE	nvarchar(100)  = NULL,
7
@p_REQ_NAME	nvarchar(200)  = NULL,
8
@p_REQ_DT	varchar(20) = NULL,
9
@p_REQ_TYPE	int = NULL,
10
@p_REQ_CONTENT NVARCHAR(1000)=NULL,
11
@p_REQ_REASON NVARCHAR(500)=NULL,
12
@p_TOTAL_AMT	decimal = NULL,
13
@p_NOTES	nvarchar(1000)  = NULL,
14
@p_RECORD_STATUS	varchar(1)  = NULL,
15
@p_MAKER_ID	varchar(12)  = NULL,
16
@p_CREATE_DT	varchar(20) = NULL,
17
@p_AUTH_STATUS	varchar(50)  = NULL,
18
@p_CHECKER_ID	varchar(12)  = NULL,
19
@p_APPROVE_DT	varchar(20) = NULL,
20
@p_PROCESS_ID varchar(15) = NULL,
21
@p_BRANCH_ID VARCHAR(15)=NULL,
22
@p_DEP_ID VARCHAR(15) = NULL,
23
@p_BRANCH_LOGIN VARCHAR(15),
24
@p_ROLE_USER VARCHAR(20),
25
@p_TLNAME_USER VARCHAR(15),
26
@p_FR_DATE varchar(20) = NULL,
27
@p_TO_DATE varchar(20) = NULL,
28
@p_TYPE_TRANFER VARCHAR(15)= NULL,
29
@p_TYPE VARCHAR(15) = NULL,
30
@p_YEAR INT = NULL,
31
@p_TOP	INT = 10 ,
32
@p_IS_TRANSFER VARCHAR(10) = NULL,
33
@p_NGUOIXULY NVARCHAR(15) = NULL,
34
@p_MENU_NAME_CALL_API NVARCHAR(150) = NULL
35
AS
36
BEGIN -- PAGING 
37
	DECLARE @MENU_PERMISSION NVARCHAR(500) = ''--permission chức năng call store
38
	SELECT @MENU_PERMISSION = MENU_PERMISSION FROM TL_MENU WHERE MENU_NAME_EL = @p_MENU_NAME_CALL_API
39
	DECLARE @DEP_ID VARCHAR(15),@BRANCH_TYPE VARCHAR(15)
40
	
41
	DECLARE
42
	@COST_ID TABLE (
43
		COST_ID VARCHAR(15)
44
	)
45

    
46
	DECLARE @DVDM_ID TABLE (
47
		DVDM_ID VARCHAR(15)
48
	)
49
	SET @DEP_ID =(SELECT SECUR_CODE FROM dbo.TL_USER WHERE TLNANME=@p_TLNAME_USER)
50
	SET @BRANCH_TYPE=(SELECT BRANCH_TYPE FROM dbo.CM_BRANCH WHERE BRANCH_ID=@p_BRANCH_LOGIN)
51

    
52

    
53
	IF(EXISTS(SELECT DEP_CODE FROM dbo.CM_DEPARTMENT WHERE DEP_ID=@DEP_ID AND DEP_CODE LIKE '069%'))
54
	BEGIN
55
		SET @BRANCH_TYPE='HS'
56
	END
57

    
58
  
59
	SELECT * INTO #AUTHOR FROM  [dbo].[FN_GET_ROLE_USER_BY_TLNAME] (@p_TLNAME_USER, @MENU_PERMISSION)
60

    
61
	SELECT * INTO #AUTHOR_DVDM FROM  [dbo].[FN_GET_ROLE_DVDM_USER_BY_TLNAME] (@p_TLNAME_USER, @MENU_PERMISSION)
62

    
63
	INSERT INTO @COST_ID
64
	SELECT COST_ID FROM dbo.PL_COSTCENTER_DT WHERE DEP_ID=@DEP_ID AND BRANCH_ID=@p_BRANCH_LOGIN
65
	INSERT INTO @DVDM_ID
66
	SELECT DVDM_ID FROM dbo.PL_COSTCENTER WHERE COST_ID IN (SELECT COST_ID FROM @COST_ID) GROUP BY DVDM_ID
67
		----- GIANT 23/12/2021
68
	IF(@p_FR_DATE IS NULL) -- NguyenTD 16.06.2025 Đóng lại fix lỗi tờ trình lùi ngày quá 1 năm sẽ không tìm thấy
69
	BEGIN
70
			SET @p_FR_DATE = GETDATE()
71
			SET @p_FR_DATE = DATEADD(YEAR,-3,@p_FR_DATE)
72
	END
73
	--IF(@p_REQ_CODE IS NOT NULL OR @p_REQ_CODE <> '' OR @p_REQ_ID <> '' AND @p_REQ_ID IS NOT NULL )
74
	--BEGIN
75
	--		SET @p_FR_DATE = GETDATE()
76
	--		SET @p_FR_DATE = DATEADD(YEAR,-10,@p_FR_DATE)
77
	--END
78
		-----
79
	IF(@p_TYPE='DVKD')
80
	BEGIN	
81
		-- PAGING BEGIN
82
		SELECT A.REQ_ID,A.REQ_CODE,A.REQ_NAME,A.REQ_DT,A.REQ_TYPE,A.REQ_CONTENT, A.REQ_REASON,A.BRANCH_ID,
83
               A.TOTAL_AMT AS TOTAL_AMT,A.NOTES, A.RECORD_STATUS,A.MAKER_ID,A.CREATE_DT,A.AUTH_STATUS,A.CHECKER_ID,
84
			   UDV.TLFullName AS CHECKER_NAME_DV,
85
			   A.APPROVE_DT,
86
               A.PROCESS_ID,
87
			   --D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME_DV,
88
			   --CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt'
89
			   --WHEN A.PROCESS_ID<> 'APPROVE' AND A.AUTH_STATUS='A' THEN N'Chờ duyệt' ELSE D.AUTH_STATUS_NAME END AS AUTH_STATUS_NAME,
90
			   CASE WHEN A.PROCESS_ID='APPROVE' OR A.AUTH_STATUS ='A' THEN N'Đã duyệt'
91
			   ELSE D.AUTH_STATUS_NAME END AS AUTH_STATUS_NAME,
92
			   G.BRANCH_CODE,
93
			   CASE WHEN A.BRANCH_CREATE <> 'DV0001' THEN G.BRANCH_NAME ELSE G.BRANCH_NAME+' - ' + DEP.DEP_NAME END AS BRANCH_NAME,
94
			   UP.TLFullName AS CHECKER_NAME_PROCESS,
95
			   RP.APPROVE_DT AS APPROVE_DT_PROCESS,
96
			   UC.TLFullName AS MAKER_NAME,
97
			   RPN.PROCESS_ID AS PROCESS_ID_NEXT,
98
			   RP.ROLE_USER, 
99
			   RP.NOTES AS PROCESS_STATUS , 
100
			   RPN.NOTES AS PROCESS_STATUS_NEXT,
101
			   A.DVDM_APP_ID,
102
			   CD.DVDM_NAME AS DVDM_APP_NAME,
103
			   A.REQ_PARENT_ID,
104
			   PARENT.REQ_NAME AS REQ_PARENT_NAME,
105
			   PARENT.REQ_CODE AS REQ_PARENT_CODE,
106
			   PARENT.TOTAL_AMT AS REQ_PARENT_AMT,
107
			   A.BRANCH_FEE,
108
			   A.DEP_ID,
109
			   A.DEP_FEE,
110
			   DEP.DEP_NAME,
111
			   DEP.DEP_CODE,
112
			   BF.BRANCH_NAME AS BRANCH_FEE_NAME,
113
			   BF.BRANCH_CODE AS BRANCH_FEE_CODE,
114
			   DF.DEP_NAME AS DEP_FEE_NAME,
115
			   DF.DEP_CODE AS DEP_FEE_CODE,
116
			   '' AS BRANCH_DEP,
117
			   '' AS BRANCH_DEP_FEE,
118
			   
119

    
120

    
121
			   '' AS TYPE_JOB,
122
			   '' AS USER_JOB,
123
			   '' AS USER_JOB_NAME,
124
			   '' AS TRANSFER_MAKER,
125
			    A.CREATE_DT AS TRANFER_DT ,
126
				'' AS TRANSFER_MAKER_ID,
127
			   A.EFFEC_DT,A.IS_BACKDAY,
128
			   '' AS TYPE_JOB_XL,
129
			   '' AS USER_JOB_XL,
130
			   RP.ID AS REF_ID,
131
			   RPN.STATUS AS STATUS_NEXT,
132
			   RP.STATUS AS STATUS_CURR,
133
			   '' AS STATUS_JOB,
134
			   A.BRANCH_CREATE,
135
			   A.DEP_CREATE,
136
			   A.REQ_LINE,
137
			   A.TC_NOTES,
138
			   A.SIGN_USER,
139
			   TL.TLFullName AS SIGN_USER_NAME,
140
			   A.KT_NOTES,
141
			   A.IS_CHECKALL,
142
			   A.BASED_CONTENT,
143
			   A.PL_BASED_ID, PL_B.REQ_CODE AS PL_BASED_CODE, PL_B.REQ_CONTENT AS PL_BASED_CONTENT, 
144
			   '' AS IS_TRANSFER,
145
			   --NGUOI XU LY
146
			  NXL.NGUOIXULY AS NGUOIXULY, A.TK_HDQT_NOTES, A.TK_TGD_NOTES, A.OTHER_NOTES
147
			 -- SELECT END 
148
		FROM PL_REQUEST_DOC A 	
149
		--LEFT JOIN	dbo.PL_REQUEST_PROCESS PLRP ON PLRP.REQ_ID=A.REQ_ID  AND PLRP.STATUS <>'U'
150
		LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
151
		LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID
152
		LEFT JOIN dbo.CM_DEPARTMENT DEP ON DEP.DEP_ID=A.DEP_ID
153

    
154
		LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE
155
		LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE
156

    
157
		LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID
158
	
159
		LEFT JOIN dbo.PL_REQUEST_PROCESS RPN 
160
		ON RPN.ID IN (SELECT TOP 1 Temp.ID FROM dbo.PL_REQUEST_PROCESS Temp WHERE Temp.REQ_ID=A.REQ_ID AND (Temp.STATUS='C' OR Temp.STATUS='R') )
161
		LEFT JOIN dbo.PL_REQUEST_PROCESS RP ON RP.ID IN(SELECT TOP 1 ID FROM dbo.PL_REQUEST_PROCESS WHERE PL_REQUEST_PROCESS.PROCESS_ID=RPN.PARENT_PROCESS_ID AND  PL_REQUEST_PROCESS.REQ_ID=A.REQ_ID)
162
		LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID
163
		LEFT JOIN dbo.TL_USER UC ON UC.TLNANME=A.MAKER_ID
164
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=A.DVDM_APP_ID
165
		LEFT JOIN dbo.PL_REQUEST_DOC PARENT ON PARENT.REQ_ID=A.REQ_PARENT_ID
166
		LEFT JOIN dbo.PL_REQUEST_DOC PL_B ON PL_B.REQ_ID=A.PL_BASED_ID
167
		LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME
168
		OUTER APPLY
169
		(
170
			SELECT [dbo].[FN_PL_REQUEST_DOC_GET_NEXT_USER](A.REQ_ID, @MENU_PERMISSION) NGUOIXULY, '' NGUOIXULYTLNAME
171
		) NXL
172
		WHERE 1 = 1
173
		
174
	    AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
175
		AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '')
176
		AND (A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '')
177
		AND (A.REQ_REASON LIKE '%' + @p_REQ_REASON + '%' OR @p_REQ_REASON IS NULL OR @p_REQ_REASON = '')
178
		AND (A.TOTAL_AMT=@p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0)
179
		AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')	
180
		AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
181
		AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
182
		
183

    
184
		AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
185

    
186

    
187
		AND	(@p_CREATE_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_CREATE_DT,103)) = 0) 
188
		AND	(@p_APPROVE_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_APPROVE_DT,103)) = 0) 
189
		AND	(@p_REQ_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_REQ_DT,103)) = 0) 
190
		AND (A.REQ_TYPE = @p_REQ_TYPE OR @p_REQ_TYPE IS NULL OR @p_REQ_TYPE =-1)
191
		AND A.RECORD_STATUS = '1'
192
		
193
		AND(
194
			@p_REQ_TYPE = -1  OR @p_REQ_TYPE IS NULL
195
			OR
196
				(
197
					@p_REQ_TYPE=1 AND EXISTS(SELECT D.REQDT_ID FROM dbo.PL_REQUEST_DOC_DT D WHERE D.REQDT_TYPE='O' AND D.REQ_ID=A.REQ_ID)
198
				)
199
				OR
200
				(
201
						@p_REQ_TYPE=0 AND NOT EXISTS(SELECT D.REQDT_ID FROM dbo.PL_REQUEST_DOC_DT D WHERE D.REQDT_TYPE='O' AND D.REQ_ID=A.REQ_ID)
202
				)
203
			)
204

    
205
		AND    (A.MAKER_ID=@p_TLNAME_USER 
206
        OR (A.PROCESS_ID ='APPROVE' AND A.BRANCH_CREATE=@p_BRANCH_LOGIN AND (A.DEP_CREATE=@DEP_ID OR @BRANCH_TYPE<>'HS'))
207
				OR EXISTS(SELECT ID FROM dbo.PL_ROLE_DATA_CONFIG PLRDC WHERE PLRDC.ROLE_TYPE='PL_REQUEST_DOC_ALL' AND (PLRDC.BRANCH_ID=@p_TLNAME_USER OR (PLRDC.BRANCH_ID = @p_BRANCH_LOGIN AND PLRDC.DEP_ID = @DEP_ID)))
208
				OR EXISTS(SELECT * FROM dbo.PL_REQUEST_PROCESS PLRP WHERE PLRP.PROCESS_ID='APPNEW' AND PLRP.REQ_ID=A.REQ_ID
209
																			AND EXISTS(SELECT AUTH.ROLE_DISPLAYNAME FROM #AUTHOR  AUTH WHERE AUTH.ROLE_DISPLAYNAME=PLRP.ROLE_USER AND AUTH.BRANCH_ID=PLRP.BRANCH_ID 
210
																														AND(PLRP.DEP_ID=AUTH.DEP_ID OR PLRP.DEP_ID IS NULL OR PLRP.DEP_ID ='') ))
211
			--	
212
				
213
				--OR (EXISTS(SELECT * FROM dbo.PL_REQUEST_PROCESS PLRP WHERE A.REQ_ID=PLRP.REQ_ID AND PLRP.PROCESS_ID='APPNEW' 
214
				--												AND PLRP.ROLE_USER IN (SELECT ROLE_ID FROM @TABLE_ROLE) AND PLRP.BRANCH_ID=@p_BRANCH_LOGIN 
215
				--												AND (PLRP.DEP_ID=@DEP_ID OR PLRP.DEP_ID IS NULL OR PLRP.DEP_ID =''))) 
216
			--
217

    
218

    
219
		OR(A.SIGN_USER IS NOT NULL AND A.SIGN_USER <>'' AND A.SIGN_USER  =@p_TLNAME_USER AND A.AUTH_STATUS<>'E'))
220
		--
221
		--AND (( @p_AUTH_STATUS='A' AND  A.PROCESS_ID='APPROVE') OR( @p_AUTH_STATUS IN('U','R','E') AND (A.PROCESS_ID <> 'APPROVE' OR A.PROCESS_ID IS NULL)) OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
222
		--AND ((A.AUTH_STATUS='E' AND A.MAKER_ID=@p_TLNAME_USER) OR (A.AUTH_STATUS <> 'E' AND (A.MAKER_ID=@p_TLNAME_USER OR (PLRP.PROCESS_ID='DVKD' AND PLRP.ROLE_USER=@p_ROLE_USER AND PLRP.BRANCH_ID=@p_BRANCH_LOGIN AND (PLRP.DEP_ID=@DEP_ID OR PLRP.DEP_ID IS NULL OR PLRP.DEP_ID ='')))))
223
		--
224
		--AND (A.AUTH_STATUS = @p_AUTH_STATUS OR @p_AUTH_STATUS ='' OR @p_AUTH_STATUS IS NULL)
225
		AND( (@p_AUTH_STATUS ='A' AND EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID = A.REQ_ID AND PROCESS_ID ='APPNEW' AND STATUS ='P'))
226
			OR (@p_AUTH_STATUS ='E' AND A.AUTH_STATUS =@p_AUTH_STATUS)
227
			OR (@p_AUTH_STATUS ='R' AND A.AUTH_STATUS =@p_AUTH_STATUS)
228
			OR (@p_AUTH_STATUS ='W' AND EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID = A.REQ_ID AND PROCESS_ID ='SIGN' AND STATUS ='C'))
229
			OR (@p_AUTH_STATUS ='G' AND EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID = A.REQ_ID AND PROCESS_ID ='SIGN' AND STATUS ='P'))
230
			OR (@p_AUTH_STATUS ='U' AND EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID = A.REQ_ID AND PROCESS_ID ='APPNEW' AND STATUS ='C'))
231
			OR (@p_AUTH_STATUS ='' OR @p_AUTH_STATUS IS NULL)
232
		)
233
		AND(@p_FR_DATE IS NULL  OR CONVERT(DATE,A.REQ_DT,103) >= CONVERT(DATE,@p_FR_DATE,103))
234
		AND(@p_TO_DATE IS NULL  OR CONVERT(DATE,A.REQ_DT,103) <= CONVERT(DATE,@p_TO_DATE,103))		
235
		AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR)	
236
		AND( NXL.NGUOIXULYTLNAME LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = ''
237
			OR NXL.NGUOIXULY LIKE '%' + @p_NGUOIXULY  + '%')
238

    
239
		AND (A.BRANCH_ID = @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
240
		AND (A.DEP_ID = @p_DEP_ID OR @p_DEP_ID IS NULL OR @p_DEP_ID = '')
241
		
242
		-- GIANT 26/10/2021
243
		AND (A.REQ_ID IN (SELECT PL_REQUEST_DOC_DT.REQ_ID FROM PL_REQUEST_DOC_DT WHERE PL_REQUEST_DOC_DT.REQ_ID = A.REQ_ID))
244

    
245
		--HUYHT 10/05/2022 TÌM KIẾM THEO BƯỚC XỬ LÝ TIẾP THEO
246
		AND (A.PROCESS_ID = @p_PROCESS_ID OR (@p_PROCESS_ID IS NULL OR @p_PROCESS_ID = ''))
247

    
248
		ORDER BY A.CREATE_DT DESC
249
	-- PAGING END
250
	END
251
	ELSE IF(@p_TYPE='PDTT')
252
	BEGIN
253
		-- PAGING BEGIN
254
		SELECT A.REQ_ID,A.REQ_CODE,A.REQ_NAME,A.REQ_DT,A.REQ_TYPE,A.REQ_CONTENT, A.REQ_REASON,A.BRANCH_ID,
255
               A.TOTAL_AMT AS TOTAL_AMT,A.NOTES, A.RECORD_STATUS,A.MAKER_ID,A.CREATE_DT,A.AUTH_STATUS,A.CHECKER_ID,
256

    
257
			   UDV.TLFullName AS CHECKER_NAME_DV,
258
			  
259
			   A.APPROVE_DT,
260
               A.PROCESS_ID,
261
			   D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME_DV,
262
			   CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt'
263
			   ELSE N'Chờ duyệt' END AS AUTH_STATUS_NAME,
264
			   G.BRANCH_CODE,
265
			   G.BRANCH_NAME,
266
			   UP.TLFullName AS CHECKER_NAME_PROCESS,
267
			   RP.APPROVE_DT AS APPROVE_DT_PROCESS,
268
			   UC.TLFullName AS MAKER_NAME,
269
			   RPN.PROCESS_ID AS PROCESS_ID_NEXT,
270
			   RPN.ROLE_USER, 
271
			   RP.NOTES AS PROCESS_STATUS , 
272
			   RPN.NOTES AS PROCESS_STATUS_NEXT,
273
			   A.DVDM_APP_ID,
274
			   CD.DVDM_NAME AS DVDM_APP_NAME,
275
			   A.REQ_PARENT_ID,
276
			   PARENT.REQ_NAME AS REQ_PARENT_NAME,
277
			   PARENT.REQ_CODE AS REQ_PARENT_CODE,
278
			   PARENT.TOTAL_AMT AS REQ_PARENT_AMT,
279
			   A.BRANCH_FEE,
280
			   A.DEP_ID,
281
			   A.DEP_FEE,
282
			   DEP.DEP_NAME,
283
			   DEP.DEP_CODE,
284
			   BF.BRANCH_NAME AS BRANCH_FEE_NAME,
285
			   BF.BRANCH_CODE AS BRANCH_FEE_CODE,
286
			   DF.DEP_NAME AS DEP_FEE_NAME,
287
			   DF.DEP_CODE AS DEP_FEE_CODE,
288
			   '' AS BRANCH_DEP,
289
			   '' AS BRANCH_DEP_FEE,
290
			   
291

    
292

    
293
			   RPC.TYPE_JOB AS TYPE_JOB,
294
			   RPC.TLNAME AS USER_JOB,
295
			   TU.TLFullName AS USER_JOB_NAME,
296
			   TFM.TLNANME AS TRANSFER_MAKER,
297
			    RPC.TRANFER_DT AS TRANFER_DT ,
298
				RPC.MAKER_ID AS TRANSFER_MAKER_ID,
299
			   A.EFFEC_DT,A.IS_BACKDAY,
300
			   '' AS TYPE_JOB_XL,
301
			   '' AS USER_JOB_XL,
302
			   --RP.ID AS REF_ID,
303
			   ISNULL(RP.ID,1) AS REF_ID,
304
			   RPN.STATUS AS STATUS_NEXT,
305
			   PLRP.STATUS AS STATUS_CURR,
306
			    RPC.STATUS_JOB AS STATUS_JOB,
307
			   A.BRANCH_CREATE,
308
			   A.DEP_CREATE,
309
			   A.REQ_LINE,
310
			     A.TC_NOTES,
311
				  A.SIGN_USER,
312
			   TL.TLFullName  AS SIGN_USER_NAME,
313
			   A.KT_NOTES,
314
			     A.IS_CHECKALL,
315
			   A.BASED_CONTENT, 
316
			   '' AS IS_TRANSFER,
317
			   --NGUOI XU LY
318
			   --dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) AS NGUOIXULY
319
			    NXL.NGUOIXULY AS NGUOIXULY,A.TK_TGD_NOTES, A.OTHER_NOTES,A.TK_HDQT_NOTES
320
			-- SELECT END
321
		FROM PL_REQUEST_DOC A 	
322
		INNER JOIN dbo.PL_REQUEST_PROCESS PLRP ON PLRP.REQ_ID=A.REQ_ID AND PLRP.STATUS <>'U'	
323
		LEFT JOIN dbo.PL_REQUEST_PROCESS RPN 
324
		ON RPN.ID IN (SELECT TOP 1 Temp.ID FROM dbo.PL_REQUEST_PROCESS Temp WHERE Temp.REQ_ID=A.REQ_ID AND (Temp.STATUS='C' OR Temp.STATUS='R') )
325
		LEFT JOIN dbo.PL_REQUEST_PROCESS RP ON RP.ID=(SELECT TOP 1 ID FROM PL_REQUEST_PROCESS WHERE PL_REQUEST_PROCESS.REQ_ID=A.REQ_ID AND PL_REQUEST_PROCESS.PROCESS_ID=RPN.PARENT_PROCESS_ID ORDER BY APPROVE_DT DESC)	
326
		LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
327
		LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID
328

    
329
		LEFT JOIN dbo.CM_DEPARTMENT DEP ON DEP.DEP_ID=A.DEP_ID
330
		LEFT JOIN dbo.PL_REQUEST_PROCESS_CHILD RPC ON RPC.REQ_ID=A.REQ_ID AND RPC.PROCESS_ID=PLRP.ID AND (RPC.STATUS_JOB='C' OR RPC.STATUS_JOB='R')
331
		LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE
332
		LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE
333
		LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID
334
		LEFT JOIN dbo.TL_USER UC ON UC.TLNANME=A.MAKER_ID
335
		LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID
336
		LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=RPC.TLNAME
337
		LEFT JOIN dbo.TL_USER TFM ON TFM.TLNANME=RPC.MAKER_ID
338
		LEFT JOIN dbo.CM_PROCESS_STATUS PS ON PS.PROCESS_ID = A.PROCESS_ID
339
		LEFT JOIN dbo.CM_PROCESS_STATUS PSN ON PSN.PROCESS_ID = A.PROCESS_ID
340
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=A.DVDM_APP_ID
341
		LEFT JOIN dbo.PL_REQUEST_DOC PARENT ON PARENT.REQ_ID=A.REQ_PARENT_ID
342
		LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME
343
		OUTER APPLY
344
		(
345
			SELECT [dbo].[FN_PL_REQUEST_DOC_GET_NEXT_USER](A.REQ_ID, @MENU_PERMISSION) NGUOIXULY, '' NGUOIXULYTLNAME
346
		) NXL 
347

    
348
		WHERE 1 = 1
349
	  AND (@p_REQ_CODE IS NULL OR @p_REQ_CODE = '' OR A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%')
350
		AND (@p_REQ_ID IS NULL OR @p_REQ_ID = '' OR A.REQ_ID LIKE '%' + @p_REQ_ID + '%')
351
		AND (@p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '' OR A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%')
352
		AND (@p_REQ_REASON IS NULL OR @p_REQ_REASON = '' OR A.REQ_REASON LIKE '%' + @p_REQ_REASON + '%')
353
		AND (@p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0 OR A.TOTAL_AMT=@p_TOTAL_AMT)
354
		AND (@p_REQ_NAME IS NULL OR @p_REQ_NAME = '' OR A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%')	
355
--		AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
356
		AND (@p_MAKER_ID IS NULL OR @p_MAKER_ID = '' OR A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%')
357
		AND (@p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '' OR A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%')
358
		AND	(@p_CREATE_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_CREATE_DT,103)) = 0) 
359
		AND	(@p_APPROVE_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_APPROVE_DT,103)) = 0) 
360
		AND	(@p_REQ_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_REQ_DT,103)) = 0) 
361
		AND (@p_REQ_TYPE IS NULL OR @p_REQ_TYPE =-1 OR A.REQ_TYPE = @p_REQ_TYPE)
362
		--AND (@p_RECEIVE_BRANCH IS NULL OR A.PO_ID IN (SELECT PO_ID FROM TR_PO_DETAIL WHERE RECEIVE_BRANCH=@p_RECEIVE_BRANCH))
363
		AND A.RECORD_STATUS = '1'
364

    
365
--		AND(@p_REQ_TYPE = -1  OR @p_REQ_TYPE IS NULL
366
--			OR(@p_REQ_TYPE=1 AND EXISTS(SELECT D.REQDT_ID FROM dbo.PL_REQUEST_DOC_DT D WHERE D.REQDT_TYPE='O' AND D.REQ_ID=A.REQ_ID))
367
--			OR(@p_REQ_TYPE=0 AND NOT EXISTS(SELECT D.REQDT_ID FROM dbo.PL_REQUEST_DOC_DT D WHERE D.REQDT_TYPE='O' AND D.REQ_ID=A.REQ_ID))
368
--    )
369

    
370
		AND EXISTS(SELECT AUTH.ROLE_DISPLAYNAME FROM #AUTHOR_DVDM AUTH WHERE AUTH.ROLE_DISPLAYNAME=PLRP.ROLE_USER AND (
371
			(PLRP.PROCESS_ID='DVDC' AND PLRP.BRANCH_ID=AUTH.BRANCH_ID AND (PLRP.DEP_ID=AUTH.DEP_ID OR PLRP.DEP_ID IS NULL OR PLRP.DEP_ID=''))
372
			OR PLRP.DVDM_ID=AUTH.DVDM_ID
373
			OR ((PLRP.DVDM_ID ='' OR PLRP.DVDM_ID  IS NULL) AND (PLRP.BRANCH_ID IS NULL OR PLRP.BRANCH_ID=''))
374
		))
375
		--AND PLRP.ROLE_USER IN (SELECT ROLE_ID FROM @TABLE_ROLE) 
376
		--AND (
377
		--  (PLRP.PROCESS_ID='DVDC' AND PLRP.BRANCH_ID=@p_BRANCH_LOGIN AND (PLRP.DEP_ID=@DEP_ID OR PLRP.DEP_ID IS NULL OR PLRP.DEP_ID='')) 
378
		--OR ( PLRP.DVDM_ID IN (SELECT DVDM_ID FROM @DVDM_ID))
379
		--OR
380
		--( (PLRP.DVDM_ID ='' OR PLRP.DVDM_ID  IS NULL) AND (PLRP.BRANCH_ID IS NULL OR PLRP.BRANCH_ID=''))	
381
		--)
382
		AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR)	
383
		AND (PLRP.IS_HAS_CHILD=0 OR PLRP.IS_HAS_CHILD IS NULL)
384
		AND (( @p_AUTH_STATUS='A' AND  PLRP.STATUS='P') OR( @p_AUTH_STATUS='U' AND (PLRP.STATUS='C')) OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
385
		AND(@p_FR_DATE IS NULL  OR CONVERT(DATE,A.REQ_DT,103) >= CONVERT(DATE,@p_FR_DATE,103))
386
		AND(@p_TO_DATE IS NULL  OR CONVERT(DATE,A.REQ_DT,103) <= CONVERT(DATE,@p_TO_DATE,103))	
387
		AND( NXL.NGUOIXULYTLNAME LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = ''
388
			OR NXL.NGUOIXULY LIKE '%' + @p_NGUOIXULY  + '%')
389
		--AND(
390
		--	(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
391
		--	OR
392
		--	(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',1) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
393
		--)
394

    
395
		--AND (A.BRANCH_ID = @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
396
		--AND (A.DEP_ID = @p_DEP_ID OR @p_DEP_ID IS NULL OR @p_DEP_ID = '')
397
		
398
		-- GIANT 26/10/2021
399
		AND (EXISTS (SELECT PL_REQUEST_DOC_DT.REQ_ID FROM PL_REQUEST_DOC_DT WHERE PL_REQUEST_DOC_DT.REQ_ID = A.REQ_ID))
400
		AND (A.PROCESS_ID IN ('GDK_TT','PTGDK_TT','TGD','HDQT','GDK_DC','APPROVE','GDK_TC')) -- LUCTV 24.11.2022 BO SUNG DIEU KIEN DE CHAN KHONG CHO LANH DAO TIM KIEM NEU PHIEU CHUA TOI
401
		ORDER BY A.CREATE_DT DESC
402
	-- PAGING END
403
	END
404
	ELSE IF(@p_TYPE='TFJOB')
405
	BEGIN
406
		-- PAGING BEGIN
407
			SELECT A.REQ_ID,A.REQ_CODE,A.REQ_NAME,A.REQ_DT,A.REQ_TYPE,A.REQ_CONTENT, A.REQ_REASON,A.BRANCH_ID,
408
              A.TOTAL_AMT AS TOTAL_AMT,A.NOTES, A.RECORD_STATUS,A.MAKER_ID,A.CREATE_DT,A.AUTH_STATUS,A.CHECKER_ID,
409

    
410
			   UDV.TLFullName AS CHECKER_NAME_DV,
411
			  
412
			   A.APPROVE_DT,
413
               A.PROCESS_ID,
414
			   D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME_DV,
415
			   CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt'
416
			   ELSE N'Chờ duyệt' END AS AUTH_STATUS_NAME,
417
			   G.BRANCH_CODE,
418
			   G.BRANCH_NAME,
419
			   UP.TLFullName AS CHECKER_NAME_PROCESS,
420
			   RP.APPROVE_DT AS APPROVE_DT_PROCESS,
421
			   UC.TLFullName AS MAKER_NAME,
422
			   PLRP.PROCESS_ID AS PROCESS_ID_NEXT,
423
			   RP.ROLE_USER, 
424
			   RP.NOTES AS PROCESS_STATUS , 
425
			   PLRP.NOTES AS PROCESS_STATUS_NEXT,
426
			   A.DVDM_APP_ID,
427
			   CD.DVDM_NAME AS DVDM_APP_NAME,
428
			   A.REQ_PARENT_ID,
429
			   PARENT.REQ_NAME AS REQ_PARENT_NAME,
430
			   PARENT.REQ_CODE AS REQ_PARENT_CODE,
431
			   PARENT.TOTAL_AMT AS REQ_PARENT_AMT,
432
			   A.BRANCH_FEE,
433
			   A.DEP_ID,
434
			   A.DEP_FEE,
435
			   DEP.DEP_NAME,
436
			   DEP.DEP_CODE,
437
			   BF.BRANCH_NAME AS BRANCH_FEE_NAME,
438
			   BF.BRANCH_CODE AS BRANCH_FEE_CODE,
439
			   DF.DEP_NAME AS DEP_FEE_NAME,
440
			   DF.DEP_CODE AS DEP_FEE_CODE,
441
			   '' AS BRANCH_DEP,
442
			   '' AS BRANCH_DEP_FEE,
443
			  CASE WHEN RPC.TYPE_JOB IS NULL OR RPC.TYPE_JOB ='' THEN 'TP' ELSE RPC.TYPE_JOB END AS TYPE_JOB,
444
			   RPC.TLNAME AS USER_JOB,
445
			   TU.TLFullName AS USER_JOB_NAME,
446
			   TFM.TLNANME AS TRANSFER_MAKER,
447
			    RPC.TRANFER_DT AS TRANFER_DT ,
448
				RPC.MAKER_ID AS TRANSFER_MAKER_ID,
449
			   A.EFFEC_DT,A.IS_BACKDAY,
450
			   '' AS TYPE_JOB_XL,
451
			   '' AS USER_JOB_XL,
452
			   PLRP.ID AS REF_ID,
453
			   PLRP.STATUS AS STATUS_NEXT,
454
			   PLRP.STATUS AS STATUS_CURR,
455
			    RPC.STATUS_JOB AS STATUS_JOB,
456
			   A.BRANCH_CREATE,
457
			   A.DEP_CREATE,
458
			   A.REQ_LINE,
459
			   A.TC_NOTES,
460
			   A.SIGN_USER,
461
			   TL.TLFULLNAME AS SIGN_USER_NAME,
462
			   A.KT_NOTES,
463
			     A.IS_CHECKALL,
464
			   A.BASED_CONTENT, 
465
			   CASE 
466
         	WHEN (RPC.REQ_ID IS NOT NULL AND RPC.REQ_ID <> '' AND (RPC.MAKER_ID =@p_TLNAME_USER OR @p_ROLE_USER ='KSV')) OR (EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID = A.REQ_ID AND CHECKER_ID=@p_TLNAME_USER)) THEN 'Y'
467
         	WHEN (@p_ROLE_USER ='KSV' AND ISNULL(RPC.REQ_ID,'') = '') OR (@p_ROLE_USER<> 'KSV' AND (ISNULL(RPC.REQ_ID,'') = '' OR (ISNULL(RPC.REQ_ID,'') <> '' AND RPC.MAKER_ID <> @p_TLNAME_USER))) THEN 'N'
468
         	ELSE 'N'
469
         END AS IS_TRANSFER,
470
			  --NGUOI XU LY
471
			 -- dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) AS NGUOIXULY
472
			  NXL.NGUOIXULY AS NGUOIXULY,A.TK_TGD_NOTES,A.TK_HDQT_NOTES, A.OTHER_NOTES
473
			  --PLQ.TLFullName CHECKER_NAME_DV 
474
			-- SELECT END
475
		FROM PL_REQUEST_DOC A 	
476
		INNER JOIN dbo.PL_REQUEST_PROCESS PLRP ON PLRP.REQ_ID=A.REQ_ID AND PLRP.STATUS = 'C' AND PLRP.IS_HAS_CHILD=1
477
		--LEFT JOIN dbo.PL_REQUEST_PROCESS PLRP ON PLRP.REQ_ID=A.REQ_ID AND PLRP.STATUS = 'C' AND PLRP.IS_HAS_CHILD=1
478
--		LEFT JOIN dbo.PL_REQUEST_PROCESS RPN 
479
--		ON RPN.ID IN (SELECT TOP 1 Temp.ID FROM dbo.PL_REQUEST_PROCESS Temp WHERE Temp.REQ_ID=A.REQ_ID AND (Temp.STATUS='C' OR Temp.STATUS='R') )
480
		LEFT JOIN dbo.PL_REQUEST_PROCESS RP ON RP.ID=(SELECT MAX(B.ID) FROM PL_REQUEST_PROCESS B WHERE B.REQ_ID=A.REQ_ID AND B.PROCESS_ID=PLRP.PARENT_PROCESS_ID)	
481
		LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
482
		LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID
483
		LEFT JOIN dbo.CM_DEPARTMENT DEP ON DEP.DEP_ID=A.DEP_ID
484

    
485
		LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE
486
		LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE
487
		LEFT JOIN dbo.TL_USER UC ON UC.TLNANME=A.MAKER_ID
488
		LEFT JOIN dbo.CM_PROCESS_STATUS PS ON PS.PROCESS_ID = A.PROCESS_ID
489
		LEFT JOIN dbo.CM_PROCESS_STATUS PSN ON PSN.PROCESS_ID = A.PROCESS_ID
490
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=A.DVDM_APP_ID
491
		LEFT JOIN dbo.PL_REQUEST_PROCESS_CHILD RPC ON RPC.REQ_ID=A.REQ_ID AND RPC.PROCESS_ID=PLRP.ID AND (RPC.STATUS_JOB='C' OR RPC.STATUS_JOB='R')
492
		
493
		LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID
494
	
495
		LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID
496
		LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=RPC.TLNAME
497
		LEFT JOIN dbo.TL_USER TFM ON TFM.TLNANME=RPC.MAKER_ID
498
		LEFT JOIN dbo.PL_REQUEST_DOC PARENT ON PARENT.REQ_ID=A.REQ_PARENT_ID
499
		LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME
500
		OUTER APPLY
501
		(
502
			SELECT [dbo].[FN_PL_REQUEST_DOC_GET_NEXT_USER](A.REQ_ID, @MENU_PERMISSION) NGUOIXULY, '' NGUOIXULYTLNAME
503
		) NXL
504
		-- GIANT
505
		--LEFT JOIN (
506
		--	SELECT AB.ID,AB.REQ_ID,AB.PROCESS_ID,BC.TLFullName,AB.TLNAME FROM PL_REQUEST_PROCESS_CHILD AB LEFT JOIN TL_USER  BC ON AB.TLNAME = BC.TLNANME
507
			
508
		--) PLQ ON A.REQ_ID = PLQ.REQ_ID
509
		WHERE 1 = 1
510
		AND (@p_REQ_CODE IS NULL OR @p_REQ_CODE = '' OR A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%')
511
		AND (@p_REQ_ID IS NULL OR @p_REQ_ID = '' OR A.REQ_ID LIKE '%' + @p_REQ_ID + '%')
512
		AND (@p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '' OR A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%')
513
		AND (@p_REQ_REASON IS NULL OR @p_REQ_REASON = '' OR A.REQ_REASON LIKE '%' + @p_REQ_REASON + '%')
514
		AND (@p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0 OR A.TOTAL_AMT=@p_TOTAL_AMT)
515
		AND (@p_REQ_NAME IS NULL OR @p_REQ_NAME = '' OR A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%')	
516
--		AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
517
		AND (@p_MAKER_ID IS NULL OR @p_MAKER_ID = '' OR A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%')
518
		
519
		AND (@p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '' OR A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%')
520
		AND	(@p_CREATE_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_CREATE_DT,103)) = 0) 
521
		AND	(@p_APPROVE_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_APPROVE_DT,103)) = 0) 
522
		AND	(@p_REQ_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_REQ_DT,103)) = 0) 
523
		AND (@p_REQ_TYPE IS NULL OR @p_REQ_TYPE =-1 OR A.REQ_TYPE = @p_REQ_TYPE)
524
		--AND (@p_RECEIVE_BRANCH IS NULL OR A.PO_ID IN (SELECT PO_ID FROM TR_PO_DETAIL WHERE RECEIVE_BRANCH=@p_RECEIVE_BRANCH))
525
		AND A.RECORD_STATUS = '1'	
526
		AND((EXISTS(SELECT ID FROM dbo.PL_REQUEST_PROCESS_CHILD WHERE TLNAME=@p_TLNAME_USER AND TYPE_JOB='KS' AND PL_REQUEST_PROCESS_CHILD.PROCESS_ID=PLRP.ID))
527
		OR EXISTS(SELECT AUTH.ROLE_DISPLAYNAME FROM #AUTHOR_DVDM AUTH WHERE AUTH.ROLE_DISPLAYNAME=PLRP.ROLE_USER
528
		AND ((PLRP.PROCESS_ID='DVDC' AND PLRP.BRANCH_ID=AUTH.BRANCH_ID AND (PLRP.DEP_ID=AUTH.DEP_ID OR PLRP.DEP_ID IS NULL OR PLRP.DEP_ID=''))
529
  			OR PLRP.DVDM_ID=AUTH.DVDM_ID
530
  			OR ((PLRP.DVDM_ID ='' OR PLRP.DVDM_ID  IS NULL) AND (PLRP.BRANCH_ID IS NULL OR PLRP.BRANCH_ID=''))))
531
		)
532
		AND(@p_FR_DATE IS NULL  OR @p_REQ_ID IS NOT NULL OR CONVERT(DATE,A.REQ_DT,103) >= CONVERT(DATE,@p_FR_DATE,103)) --- 29112023_SECRETKEY FIX LỖI NẾU ĐÃ TRUYỀN ID XUỐNG THÌ KHÔNG CARE NGÀY THÁNG
533
		AND(@p_TO_DATE IS NULL  OR CONVERT(DATE,A.REQ_DT,103) <= CONVERT(DATE,@p_TO_DATE,103))
534
		AND(@p_YEAR IS NULL OR @p_YEAR=0  OR YEAR(A.REQ_DT)=@p_YEAR)	
535
			AND (@p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = ''
536
		  OR (@p_AUTH_STATUS='A' AND  PLRP.STATUS='P') OR( @p_AUTH_STATUS='U' AND (PLRP.STATUS='C'))
537
		)
538
			AND (NOT EXISTS(SELECT ID FROM dbo.PL_REQUEST_PROCESS_CHILD PRRC WHERE PRRC.PROCESS_ID=PLRP.ID AND PRRC.STATUS_JOB='C' AND PRRC.TYPE_JOB='TP' AND PRRC.REQ_ID=@p_REQ_ID))
539
				AND (@p_IS_TRANSFER = '' OR @p_IS_TRANSFER IS NULL
540
				OR (((RPC.REQ_ID IS NOT NULL AND RPC.REQ_ID <> '' AND (RPC.MAKER_ID =@p_TLNAME_USER OR @p_ROLE_USER ='KSV')) OR (EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID = A.REQ_ID AND CHECKER_ID=@p_TLNAME_USER))) AND @p_IS_TRANSFER = 'Y') --- LUCTV 22-10-2022 LUCTV DIEU CHINH CACH XAC ĐỊNH ĐÃ ĐIỀU PHỐI / CHƯA ĐIỀU PHỐI
541
				OR (
542
						(@p_ROLE_USER ='KSV' AND ISNULL(RPC.REQ_ID,'') = '') OR (@p_ROLE_USER<> 'KSV' AND (ISNULL(RPC.REQ_ID,'') = '' OR (ISNULL(RPC.REQ_ID,'') <> '' AND RPC.MAKER_ID <> @p_TLNAME_USER)))
543
								AND @p_IS_TRANSFER = 'N')
544
		)
545
		AND(@p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = ''
546
      OR NXL.NGUOIXULYTLNAME LIKE '%' + @p_NGUOIXULY  + '%' 
547
			OR NXL.NGUOIXULY LIKE '%' + @p_NGUOIXULY  + '%'
548
    )
549
    AND A.REQ_CODE NOT LIKE N'%TTDC%'
550
--		AND (A.REQ_ID NOT IN( SELECT REQ_DOC_ID FROM PL_REQUEST_TRANSFER) )
551
		---- GIANT 26/10/2021
552
		--AND (A.REQ_ID IN (SELECT PL_REQUEST_DOC_DT.REQ_ID FROM PL_REQUEST_DOC_DT WHERE PL_REQUEST_DOC_DT.REQ_ID = A.REQ_ID))
553
		---- GIANT 
554
		--AND (A.BRANCH_CREATE = @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
555
		--AND (A.DEP_CREATE = @p_DEP_ID OR @p_DEP_ID IS NULL OR @p_DEP_ID = '')
556
	ORDER BY A.CREATE_DT DESC
557
	-- PAGING END
558
	END
559
	ELSE IF(@p_TYPE='XLTT')
560
	BEGIN
561
	-- PAGING BEGIN		
562
				SELECT A.REQ_ID,A.REQ_CODE,A.REQ_NAME,A.REQ_DT,A.REQ_TYPE,A.REQ_CONTENT, A.REQ_REASON,A.BRANCH_ID,
563
             A.TOTAL_AMT AS TOTAL_AMT,A.NOTES, A.RECORD_STATUS,A.MAKER_ID,A.CREATE_DT,A.AUTH_STATUS,A.CHECKER_ID,
564

    
565
			   UDV.TLFullName AS CHECKER_NAME_DV,
566
			  
567
			   A.APPROVE_DT,
568
               A.PROCESS_ID,
569
			   D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME_DV,
570
			   CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt'
571
			   ELSE N'Chờ duyệt' END AS AUTH_STATUS_NAME,
572
			   G.BRANCH_CODE,
573
			   CASE WHEN A.BRANCH_CREATE <> 'DV0001' THEN G.BRANCH_NAME ELSE G.BRANCH_NAME+' - ' + DEP.DEP_NAME END AS BRANCH_NAME,
574
			   UP.TLFullName AS CHECKER_NAME_PROCESS,
575
			   RP.APPROVE_DT AS APPROVE_DT_PROCESS,
576
			   UC.TLFullName AS MAKER_NAME,
577
			   RPN.PROCESS_ID AS PROCESS_ID_NEXT,
578
			   RPN.ROLE_USER, 
579
			   RP.NOTES AS PROCESS_STATUS , 
580
			   RPN.NOTES AS PROCESS_STATUS_NEXT,
581
			   A.DVDM_APP_ID,
582
			   CD.DVDM_NAME AS DVDM_APP_NAME,
583
			   A.REQ_PARENT_ID,
584
			   PARENT.REQ_NAME AS REQ_PARENT_NAME,
585
			   PARENT.REQ_CODE AS REQ_PARENT_CODE,
586
			   PARENT.TOTAL_AMT AS REQ_PARENT_AMT,
587
			   A.BRANCH_FEE,
588
			   A.DEP_ID,
589
			   A.DEP_FEE,
590
			   DEP.DEP_NAME,
591
			   DEP.DEP_CODE,
592
			   BF.BRANCH_NAME AS BRANCH_FEE_NAME,
593
			   BF.BRANCH_CODE AS BRANCH_FEE_CODE,
594
			   DF.DEP_NAME AS DEP_FEE_NAME,
595
			   DF.DEP_CODE AS DEP_FEE_CODE,
596
			   '' AS BRANCH_DEP,
597
			   '' AS BRANCH_DEP_FEE,
598
			   RPC.TYPE_JOB AS TYPE_JOB,
599
			   RPC.TLNAME AS USER_JOB,
600
			   TU.TLFullName AS USER_JOB_NAME,
601
			   TFM.TLNANME AS TRANSFER_MAKER,
602
			    RPC.TRANFER_DT AS TRANFER_DT ,
603
				RPC.MAKER_ID AS TRANSFER_MAKER_ID,
604
			   A.EFFEC_DT,A.IS_BACKDAY,
605
			   '' AS TYPE_JOB_XL,
606
			   '' AS USER_JOB_XL,
607
			   PLRP.ID AS REF_ID,
608
			   RPN.STATUS AS STATUS_NEXT,
609
			   PLRP.STATUS AS STATUS_CURR,
610
			   RPC.STATUS_JOB AS STATUS_JOB,
611
			   A.BRANCH_CREATE,
612
			   A.DEP_CREATE,
613
			   A.REQ_LINE,
614
			   A.TC_NOTES,
615
			   A.SIGN_USER, TL.TLFullName AS SIGN_USER_NAME,
616
			   A.KT_NOTES,
617
			     A.IS_CHECKALL,
618
			   A.BASED_CONTENT, 
619
			   '' AS IS_TRANSFER,
620
			   --NGUOI XU LY
621
			   --dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) AS NGUOIXULY
622
			    NXL.NGUOIXULY AS NGUOIXULY,A.TK_TGD_NOTES, A.OTHER_NOTES,A.TK_HDQT_NOTES
623
			-- SELECT END
624
		FROM PL_REQUEST_DOC A 	
625
		INNER JOIN dbo.PL_REQUEST_PROCESS PLRP ON PLRP.REQ_ID=A.REQ_ID AND PLRP.STATUS <> 'U' AND PLRP.IS_HAS_CHILD=1
626
		LEFT JOIN dbo.PL_REQUEST_PROCESS RPN 
627
		ON RPN.ID IN (SELECT TOP 1 Temp.ID FROM dbo.PL_REQUEST_PROCESS Temp WHERE Temp.REQ_ID=A.REQ_ID AND (Temp.STATUS='C' OR Temp.STATUS='R') )
628
		LEFT JOIN dbo.PL_REQUEST_PROCESS RP ON RP.ID=(SELECT TOP 1 ID FROM PL_REQUEST_PROCESS WHERE PL_REQUEST_PROCESS.REQ_ID=A.REQ_ID AND PL_REQUEST_PROCESS.PROCESS_ID=RPN.PARENT_PROCESS_ID ORDER BY APPROVE_DT DESC)	
629
		LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
630
		LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID
631
		LEFT JOIN dbo.CM_DEPARTMENT DEP ON DEP.DEP_ID=A.DEP_ID
632

    
633
		LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE
634
		LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE
635
		LEFT JOIN dbo.TL_USER UC ON UC.TLNANME=A.MAKER_ID
636
		LEFT JOIN dbo.CM_PROCESS_STATUS PS ON PS.PROCESS_ID = A.PROCESS_ID
637
		LEFT JOIN dbo.CM_PROCESS_STATUS PSN ON PSN.PROCESS_ID = A.PROCESS_ID
638
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=A.DVDM_APP_ID
639
		LEFT JOIN dbo.PL_REQUEST_PROCESS_CHILD RPC ON RPC.REQ_ID=A.REQ_ID AND RPC.PROCESS_ID=PLRP.ID AND (RPC.STATUS_JOB='C' OR RPC.STATUS_JOB='R')
640
		
641
		LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID
642
	
643
		LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID
644
		LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=RPC.TLNAME
645
		LEFT JOIN dbo.TL_USER TFM ON TFM.TLNANME=RPC.MAKER_ID
646
		LEFT JOIN dbo.PL_REQUEST_DOC PARENT ON PARENT.REQ_ID=A.REQ_PARENT_ID
647
		LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME
648
		OUTER APPLY
649
		(
650
			SELECT [dbo].[FN_PL_REQUEST_DOC_GET_NEXT_USER](A.REQ_ID, @MENU_PERMISSION) NGUOIXULY, '' NGUOIXULYTLNAME
651
		) NXL
652

    
653
		WHERE 1 = 1
654
		AND (@p_REQ_CODE IS NULL OR @p_REQ_CODE = '' OR A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%')
655
		AND (@p_REQ_ID IS NULL OR @p_REQ_ID = '' OR A.REQ_ID LIKE '%' + @p_REQ_ID + '%')
656
		AND (@p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '' OR A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%')
657
		AND (@p_REQ_REASON IS NULL OR @p_REQ_REASON = '' OR A.REQ_REASON LIKE '%' + @p_REQ_REASON + '%')
658
		AND (@p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0 OR A.TOTAL_AMT=@p_TOTAL_AMT)
659
		AND (@p_REQ_NAME IS NULL OR @p_REQ_NAME = '' OR A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%')	
660
--		AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
661
		AND (@p_MAKER_ID IS NULL OR @p_MAKER_ID = '' OR A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%')
662
		
663
		AND (@p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '' OR A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%')
664
		AND	(@p_CREATE_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_CREATE_DT,103)) = 0) 
665
		AND	(@p_APPROVE_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_APPROVE_DT,103)) = 0) 
666
		AND	(@p_REQ_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_REQ_DT,103)) = 0) 
667
		AND (@p_REQ_TYPE IS NULL OR @p_REQ_TYPE =-1 OR A.REQ_TYPE = @p_REQ_TYPE)
668
		--AND (@p_RECEIVE_BRANCH IS NULL OR A.PO_ID IN (SELECT PO_ID FROM TR_PO_DETAIL WHERE RECEIVE_BRANCH=@p_RECEIVE_BRANCH))
669
		AND A.RECORD_STATUS = '1'
670

    
671

    
672
--		AND(@p_REQ_TYPE = -1  OR @p_REQ_TYPE IS NULL
673
--			OR(@p_REQ_TYPE=1 AND EXISTS(SELECT D.REQDT_ID FROM dbo.PL_REQUEST_DOC_DT D WHERE D.REQDT_TYPE='O' AND D.REQ_ID=A.REQ_ID))
674
--			OR(@p_REQ_TYPE=0 AND NOT EXISTS(SELECT D.REQDT_ID FROM dbo.PL_REQUEST_DOC_DT D WHERE D.REQDT_TYPE='O' AND D.REQ_ID=A.REQ_ID))
675
--    )
676

    
677

    
678
		
679
		AND(EXISTS(SELECT ID FROM dbo.PL_REQUEST_PROCESS_CHILD WHERE TLNAME=@p_TLNAME_USER  AND PL_REQUEST_PROCESS_CHILD.PROCESS_ID=PLRP.ID)
680
			OR EXISTS(SELECT AUTH.ROLE_DISPLAYNAME FROM #AUTHOR_DVDM AUTH WHERE AUTH.ROLE_DISPLAYNAME=PLRP.ROLE_USER
681
        AND ((PLRP.PROCESS_ID='DVDC' AND PLRP.BRANCH_ID=AUTH.BRANCH_ID AND (PLRP.DEP_ID=AUTH.DEP_ID OR PLRP.DEP_ID IS NULL OR PLRP.DEP_ID=''))
682
				  OR PLRP.DVDM_ID=AUTH.DVDM_ID
683
				  OR ((PLRP.DVDM_ID ='' OR PLRP.DVDM_ID  IS NULL) AND (PLRP.BRANCH_ID IS NULL OR PLRP.BRANCH_ID='')))
684
        )
685
	  )
686
		AND(@p_FR_DATE IS NULL  OR CONVERT(DATE,A.REQ_DT,103) >= CONVERT(DATE,@p_FR_DATE,103))
687
		AND(@p_TO_DATE IS NULL  OR CONVERT(DATE,A.REQ_DT,103) <= CONVERT(DATE,@p_TO_DATE,103))	
688
		AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR)		
689
		AND (@p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = ''
690
      OR ( @p_AUTH_STATUS='TDV_APPROVED' AND  PLRP.STATUS='P')
691
			OR (@p_AUTH_STATUS = 'NV_XL' AND EXISTS(SELECT X.ID FROM dbo.PL_REQUEST_PROCESS_CHILD X WHERE X.PROCESS_ID = PLRP.ID AND X.TYPE_JOB = 'XL' AND X.STATUS_JOB = 'C'))
692
			OR (@p_AUTH_STATUS = 'KSV_APPROVE' AND EXISTS(SELECT X.ID FROM dbo.PL_REQUEST_PROCESS_CHILD X WHERE X.PROCESS_ID = PLRP.ID AND X.TYPE_JOB = 'KS' AND X.STATUS_JOB = 'C'))
693
			OR (@p_AUTH_STATUS = 'TDV_APPROVE' AND EXISTS(SELECT X.ID FROM dbo.PL_REQUEST_PROCESS_CHILD X WHERE X.PROCESS_ID = PLRP.ID AND X.TYPE_JOB = 'TP' AND X.STATUS_JOB = 'C'))
694
    ) 
695
	
696
		AND(@p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = ''
697
      OR NXL.NGUOIXULYTLNAME LIKE '%' + @p_NGUOIXULY  + '%'
698
			OR NXL.NGUOIXULY LIKE '%' + @p_NGUOIXULY  + '%'
699
    )
700
		--AND(
701
		--	(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
702
		--	OR
703
		--	(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',1) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
704
		--)
705

    
706
		--
707
		AND (@p_BRANCH_ID IS NULL OR @p_BRANCH_ID = ''
708
      OR A.BRANCH_ID = @p_BRANCH_ID
709
    )
710
		AND (@p_DEP_ID IS NULL OR @p_DEP_ID = ''
711
      OR A.DEP_ID = @p_DEP_ID
712
    )
713
		-- LUCTV 10 03 2021 BO SUNG DIEU KIENN NEU PHIEU CHUA DUOC DIEU PHOI THI SE KHONG TIM THAY O MAN HINH DVCM
714
		AND((EXISTS(SELECT * FROM dbo.PL_REQUEST_PROCESS_CHILD  C WHERE A.REQ_ID=C.REQ_ID AND C.PROCESS_ID=PLRP.ID AND C.TLNAME =@p_TLNAME_USER AND C.STATUS_JOB IN ('C','P'))) 
715
			OR (@p_NGUOIXULY IS NOT NULL AND @p_NGUOIXULY <> '')
716
		OR EXISTS(SELECT * FROM #AUTHOR WHERE ROLE_DISPLAYNAME ='TKTGD')) --- LUCTV 11042024_SECRETKEY: BỔ SUNG CHO PHÉP TKTGD THẤY NHỮNG TỜ TRÌNH ĐÃ DUYỆT
717

    
718
		-- GIANT 26/10/2021
719
		AND (EXISTS (SELECT PL_REQUEST_DOC_DT.REQ_ID FROM PL_REQUEST_DOC_DT WHERE PL_REQUEST_DOC_DT.REQ_ID = A.REQ_ID))
720
	ORDER BY A.CREATE_DT DESC
721
	-- PAGING END
722
	END
723
	ELSE IF(@p_TYPE='DVKD_PARENT')
724
	BEGIN
725
	-- PAGING BEGIN
726
		SELECT A.REQ_ID,A.REQ_CODE,A.REQ_NAME,A.REQ_DT,A.REQ_TYPE,A.REQ_CONTENT, A.REQ_REASON,A.BRANCH_ID,
727
              A.TOTAL_AMT AS TOTAL_AMT,A.NOTES, A.RECORD_STATUS,A.MAKER_ID,A.CREATE_DT,A.AUTH_STATUS,A.CHECKER_ID,
728
			   UDV.TLFullName AS CHECKER_NAME_DV,
729
			   A.APPROVE_DT,
730
               A.PROCESS_ID,
731
			   D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME_DV,
732

    
733
			   CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt'
734
			   WHEN A.PROCESS_ID<> 'APPROVE' AND A.AUTH_STATUS='A' THEN N'Chờ duyệt' ELSE D.AUTH_STATUS_NAME END AS AUTH_STATUS_NAME,
735

    
736
			   --CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt'
737
			   --ELSE N'Chờ duyệt' END AS AUTH_STATUS_NAME,
738
			   G.BRANCH_CODE,
739
			   G.BRANCH_NAME,
740
			   UP.TLFullName AS CHECKER_NAME_PROCESS,
741
			   RP.APPROVE_DT AS APPROVE_DT_PROCESS,
742
			   UC.TLFullName AS MAKER_NAME,
743
			   RPN.PROCESS_ID AS PROCESS_ID_NEXT,
744
			   RP.ROLE_USER, 
745
			   RP.NOTES AS PROCESS_STATUS , 
746
			   RPN.NOTES AS PROCESS_STATUS_NEXT,
747
			   A.DVDM_APP_ID,
748
			   CD.DVDM_NAME AS DVDM_APP_NAME,
749
			   A.REQ_PARENT_ID,
750
			   PARENT.REQ_NAME AS REQ_PARENT_NAME,
751
			   PARENT.REQ_CODE AS REQ_PARENT_CODE,
752
			   PARENT.TOTAL_AMT AS REQ_PARENT_AMT,
753
			   A.BRANCH_FEE,
754
			   A.DEP_ID,
755
			   A.DEP_FEE,
756
			   DEP.DEP_NAME,
757
			   DEP.DEP_CODE,
758
			   BF.BRANCH_NAME AS BRANCH_FEE_NAME,
759
			   BF.BRANCH_CODE AS BRANCH_FEE_CODE,
760
			   DF.DEP_NAME AS DEP_FEE_NAME,
761
			   DF.DEP_CODE AS DEP_FEE_CODE,
762
			   '' AS BRANCH_DEP,
763
			   '' AS BRANCH_DEP_FEE,
764
			   '' AS TYPE_JOB,
765
			   '' AS USER_JOB,
766
			   '' AS USER_JOB_NAME,
767
			   '' AS TRANSFER_MAKER,
768
			    A.CREATE_DT AS TRANFER_DT ,
769
				'' AS TRANSFER_MAKER_ID,
770
			   A.EFFEC_DT,A.IS_BACKDAY,
771
			   '' AS TYPE_JOB_XL,
772
			   '' AS USER_JOB_XL,
773
			   --RP.ID AS REF_ID,
774
			   0 AS REF_ID,
775
			   RPN.STATUS AS STATUS_NEXT,
776
			   RP.STATUS AS STATUS_CURR,
777
			   '' AS STATUS_JOB,
778
			   A.BRANCH_CREATE,
779
			   A.DEP_CREATE,
780
			   A.REQ_LINE,
781
			   A.TC_NOTES, A.SIGN_USER, TL.TLFullName AS SIGN_USER_NAME,
782
			   A.KT_NOTES,
783
			   A.BASED_CONTENT, 
784
			   A.IS_CHECKALL,
785
			   -- GIANT 23/12/2021
786
			   A.PL_BASED_ID, PL_B.REQ_CODE AS PL_BASED_CODE, PL_B.REQ_CONTENT AS PL_BASED_CONTENT, 
787
			   '' AS IS_TRANSFER,
788
			   --NGUOI XU LY
789
			   --dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) AS NGUOIXULY
790
			    NXL.NGUOIXULY AS NGUOIXULY,A.TK_TGD_NOTES, A.OTHER_NOTES,A.TK_HDQT_NOTES,
791
				(SELECT TOP 1 BB.YEAR  FROM PL_REQUEST_DOC_DT AA LEFT JOIN PL_MASTER BB ON AA.PLAN_ID = BB.PLAN_ID WHERE AA.REQ_ID = A.REQ_ID) AS NAMNGANSACH
792
		-- SELECT END
793
		FROM PL_REQUEST_DOC A 		
794
		LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
795
		LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID
796
		LEFT JOIN dbo.CM_DEPARTMENT DEP ON DEP.DEP_ID=A.DEP_ID
797

    
798
		LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE
799
		LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE
800

    
801
		LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID
802
	
803
		LEFT JOIN dbo.PL_REQUEST_PROCESS RPN 
804
		ON RPN.ID IN (SELECT TOP 1 Temp.ID FROM dbo.PL_REQUEST_PROCESS Temp WHERE Temp.REQ_ID=A.REQ_ID AND (Temp.STATUS='C' OR Temp.STATUS='R') )
805
		LEFT JOIN dbo.PL_REQUEST_PROCESS RP ON RP.ID IN(SELECT TOP 1 ID FROM dbo.PL_REQUEST_PROCESS WHERE PL_REQUEST_PROCESS.PROCESS_ID=RPN.PARENT_PROCESS_ID AND  PL_REQUEST_PROCESS.REQ_ID=A.REQ_ID)
806
		LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID
807
		LEFT JOIN dbo.TL_USER UC ON UC.TLNANME=A.MAKER_ID
808
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=A.DVDM_APP_ID
809
		LEFT JOIN dbo.PL_REQUEST_DOC PARENT ON PARENT.REQ_ID=A.REQ_PARENT_ID
810
		-- GIANT 23/12/2021
811
		LEFT JOIN dbo.PL_REQUEST_DOC PL_B ON PL_B.REQ_ID=A.PL_BASED_ID
812

    
813
		LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME
814
		OUTER APPLY
815
		(
816
			SELECT [dbo].[FN_PL_REQUEST_DOC_GET_NEXT_USER](A.REQ_ID, @MENU_PERMISSION) NGUOIXULY, '' NGUOIXULYTLNAME
817
		) NXL
818
		WHERE 1 = 1
819
		
820
	    --AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
821
		--AND ((A.BRANCH_CREATE = @p_BRANCH_LOGIN AND( A.DEP_CREATE=@DEP_ID OR @BRANCH_TYPE <>'HS')) OR A.IS_CHECKALL=1)
822
		--AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR)	
823
		--AND (ISNULL(A.PROCESS_ID,'') ='APPROVE')	
824

    
825
		--AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '')
826
		--AND (A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '')
827
		--AND (A.REQ_REASON LIKE '%' + @p_REQ_REASON + '%' OR @p_REQ_REASON IS NULL OR @p_REQ_REASON = '')
828
		--AND (A.TOTAL_AMT=@p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0)
829
		--AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')	
830
		--AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
831
		--AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
832
	
833
		--AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
834
		--AND	(@p_CREATE_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_CREATE_DT,103)) = 0) 
835
		--AND	(@p_APPROVE_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_APPROVE_DT,103)) = 0) 
836
		--AND	(@p_REQ_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_REQ_DT,103)) = 0) 
837
		--AND A.RECORD_STATUS = '1'
838
		
839
--		AND (A.REQ_TYPE = @p_REQ_TYPE OR @p_REQ_TYPE IS NULL OR @p_REQ_TYPE =-1)
840
		AND(
841
			@p_REQ_TYPE = -1  OR @p_REQ_TYPE IS NULL
842
			OR
843
				(
844
					@p_REQ_TYPE=1 AND EXISTS(SELECT D.REQDT_ID FROM dbo.PL_REQUEST_DOC_DT D WHERE D.REQDT_TYPE='O' AND D.REQ_ID=A.REQ_ID)
845
				)
846
				OR
847
				(
848
					@p_REQ_TYPE=0 AND NOT EXISTS(SELECT D.REQDT_ID FROM dbo.PL_REQUEST_DOC_DT D WHERE D.REQDT_TYPE='O' AND D.REQ_ID=A.REQ_ID)
849
				)
850
			)
851

    
852
		----AND (  (A.BRANCH_CREATE = @p_BRANCH_LOGIN AND( A.DEP_CREATE=@DEP_ID OR @BRANCH_TYPE <>'HS')) OR A.IS_CHECKALL=1)
853

    
854
		--AND(@p_FR_DATE IS NULL OR CONVERT(DATETIME,A.REQ_DT,103) >= CONVERT(DATETIME,@p_FR_DATE,103))
855
		--AND(@p_TO_DATE IS NULL OR CONVERT(DATETIME,A.REQ_DT,103) <= CONVERT(DATETIME,@p_TO_DATE,103))	
856
		--AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR)	
857
		--AND(A.REQ_PARENT_ID IS NULL OR A.REQ_PARENT_ID='')
858
		AND( NXL.NGUOIXULYTLNAME LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = ''
859
			OR NXL.NGUOIXULY LIKE '%' + @p_NGUOIXULY  + '%')
860
		--AND(
861
		--	(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
862
		--	OR
863
		--	(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',1) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
864
		--)
865

    
866
		--AND (A.BRANCH_ID = @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
867
		--AND (A.DEP_ID = @p_DEP_ID OR @p_DEP_ID IS NULL OR @p_DEP_ID = '')
868
		--AND (A.MAKER_ID = @p_TLNAME_USER)
869

    
870
		AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
871
		AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')	
872
		--AND ((A.BRANCH_CREATE = @p_BRANCH_LOGIN AND( A.DEP_CREATE=@DEP_ID OR @BRANCH_TYPE <>'HS' OR A.BRANCH_ID =@p_BRANCH_ID OR A.BRANCH_CREATE =@p_BRANCH_ID OR A.BRANCH_CREATE =@p_BRANCH_LOGIN )) OR A.IS_CHECKALL=1 OR A.MAKER_ID =@p_TLNAME_USER)
873
		----------BAODNQ 25/10/2022 : FIX POPUP TÌM KIẾM TTCT Ở PYCMS--------------------
874
		----------NẾU KO PH TT TOÀN HÀNG THÌ CHỈ TÌM KIẾM DC TTCT THEO PHÒNG BAN NẾU Ở HỘI SỞ-----
875
		AND (
876
			(A.BRANCH_CREATE = @p_BRANCH_LOGIN 
877
				AND( A.DEP_CREATE=@DEP_ID OR @BRANCH_TYPE <>'HS')
878
			) 
879
			OR A.IS_CHECKALL=1 OR A.MAKER_ID =@p_TLNAME_USER OR A.MAKER_ID =@p_MAKER_ID OR A.DEP_CREATE=@DEP_ID--- LUCTV 02.11.2022 HOTFIX LỖI KHÔNG SEARCH ĐC TTCT DO CODE KHÔNG TRUYỀN @p_TLNAME_USER XUỐNG
880
		) --- LUCTV 08052024_SECRETKEY
881
		---------------------------------END BAODNQ-------------------------
882
		AND(@p_FR_DATE IS NULL OR CONVERT(DATETIME,A.REQ_DT,103) >= CONVERT(DATETIME,@p_FR_DATE,103))
883
		AND(@p_TO_DATE IS NULL OR CONVERT(DATETIME,A.REQ_DT,103) <= CONVERT(DATETIME,@p_TO_DATE,103))	
884
		AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR)		
885
		AND (ISNULL(A.PROCESS_ID,'') ='APPROVE')
886

    
887
		ORDER BY A.CREATE_DT DESC
888
	-- PAGING END
889
	END
890
	ELSE IF(@p_TYPE='DVKD_ISALL')
891
	BEGIN	
892
	-- PAGING BEGIN
893
		SELECT A.REQ_ID,A.REQ_CODE,A.REQ_NAME,A.REQ_DT,A.REQ_TYPE,A.REQ_CONTENT, A.REQ_REASON,A.BRANCH_ID,
894
              A.TOTAL_AMT AS TOTAL_AMT,A.NOTES, A.RECORD_STATUS,A.MAKER_ID,A.CREATE_DT,A.AUTH_STATUS,A.CHECKER_ID,
895
			   UDV.TLFullName AS CHECKER_NAME_DV,
896
			   A.APPROVE_DT,
897
               A.PROCESS_ID,
898
			   D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME_DV,
899
			   CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt'
900
			   ELSE N'Chờ duyệt' END AS AUTH_STATUS_NAME,
901
			   G.BRANCH_CODE,
902
			   G.BRANCH_NAME,
903
			   UP.TLFullName AS CHECKER_NAME_PROCESS,
904
			   RP.APPROVE_DT AS APPROVE_DT_PROCESS,
905
			   UC.TLFullName AS MAKER_NAME,
906
			   RPN.PROCESS_ID AS PROCESS_ID_NEXT,
907
			   RP.ROLE_USER, 
908
			   RP.NOTES AS PROCESS_STATUS , 
909
			   RPN.NOTES AS PROCESS_STATUS_NEXT,
910
			   A.DVDM_APP_ID,
911
			   CD.DVDM_NAME AS DVDM_APP_NAME,
912
			   A.REQ_PARENT_ID,
913
			   PARENT.REQ_NAME AS REQ_PARENT_NAME,
914
			   PARENT.REQ_CODE AS REQ_PARENT_CODE,
915
			   PARENT.TOTAL_AMT AS REQ_PARENT_AMT,
916
			   A.BRANCH_FEE,
917
			   A.DEP_ID,
918
			   A.DEP_FEE,
919
			   DEP.DEP_NAME,
920
			   DEP.DEP_CODE,
921
			   BF.BRANCH_NAME AS BRANCH_FEE_NAME,
922
			   BF.BRANCH_CODE AS BRANCH_FEE_CODE,
923
			   DF.DEP_NAME AS DEP_FEE_NAME,
924
			   DF.DEP_CODE AS DEP_FEE_CODE,
925
			   '' AS BRANCH_DEP,
926
			   '' AS BRANCH_DEP_FEE,
927
			   
928

    
929

    
930
			   '' AS TYPE_JOB,
931
			   '' AS USER_JOB,
932
			   '' AS USER_JOB_NAME,
933
			   '' AS TRANSFER_MAKER,
934
			    A.CREATE_DT AS TRANFER_DT ,
935
				'' AS TRANSFER_MAKER_ID,
936
			   A.EFFEC_DT,A.IS_BACKDAY,
937
			   '' AS TYPE_JOB_XL,
938
			   '' AS USER_JOB_XL,
939
			   RP.ID AS REF_ID,
940
			   RPN.STATUS AS STATUS_NEXT,
941
			   RP.STATUS AS STATUS_CURR,
942
			   '' AS STATUS_JOB,
943
			   A.BRANCH_CREATE,
944
			   A.DEP_CREATE,
945
			   A.REQ_LINE,
946
			   A.TC_NOTES, A.SIGN_USER, TL.TLFullName AS SIGN_USER_NAME,
947
			   A.KT_NOTES,
948
			     A.IS_CHECKALL,
949
			   A.BASED_CONTENT, 
950
			   '' AS IS_TRANSFER,
951
			   --NGUOI XU LY
952
			   --dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) AS NGUOIXULY
953
			    NXL.NGUOIXULY AS NGUOIXULY,A.TK_TGD_NOTES, A.OTHER_NOTES,A.TK_HDQT_NOTES
954
			-- SELECT END
955
		FROM PL_REQUEST_DOC A 		
956
		LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
957
		LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID
958
		LEFT JOIN dbo.CM_DEPARTMENT DEP ON DEP.DEP_ID=A.DEP_ID
959

    
960
		LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE
961
		LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE
962

    
963
		LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID
964
	
965
		LEFT JOIN dbo.PL_REQUEST_PROCESS RPN 
966
		ON RPN.ID IN (SELECT TOP 1 Temp.ID FROM dbo.PL_REQUEST_PROCESS Temp WHERE Temp.REQ_ID=A.REQ_ID AND (Temp.STATUS='C' OR Temp.STATUS='R') )
967
		LEFT JOIN dbo.PL_REQUEST_PROCESS RP ON RP.ID IN(SELECT TOP 1 ID FROM dbo.PL_REQUEST_PROCESS WHERE PL_REQUEST_PROCESS.PROCESS_ID=RPN.PARENT_PROCESS_ID AND  PL_REQUEST_PROCESS.REQ_ID=A.REQ_ID)
968
		LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID
969
		LEFT JOIN dbo.TL_USER UC ON UC.TLNANME=A.MAKER_ID
970
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=A.DVDM_APP_ID
971
		LEFT JOIN dbo.PL_REQUEST_DOC PARENT ON PARENT.REQ_ID=A.REQ_PARENT_ID
972
		LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME
973
		OUTER APPLY
974
		(
975
			SELECT [dbo].[FN_PL_REQUEST_DOC_GET_NEXT_USER](A.REQ_ID, @MENU_PERMISSION) NGUOIXULY, '' NGUOIXULYTLNAME
976
		) NXL
977
		WHERE 1 = 1
978
		
979
	    AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
980
		AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '')
981
		AND (A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '')
982
		AND (A.REQ_REASON LIKE '%' + @p_REQ_REASON + '%' OR @p_REQ_REASON IS NULL OR @p_REQ_REASON = '')
983
		AND (A.TOTAL_AMT=@p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0)
984
		AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')	
985
		AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
986
		AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
987
	
988
		AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
989
		AND	(@p_CREATE_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_CREATE_DT,103)) = 0) 
990
		AND	(@p_APPROVE_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_APPROVE_DT,103)) = 0) 
991
		AND	(@p_REQ_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_REQ_DT,103)) = 0) 
992
		AND (A.REQ_TYPE = @p_REQ_TYPE OR @p_REQ_TYPE IS NULL OR @p_REQ_TYPE =-1)
993
		AND A.RECORD_STATUS = '1'
994
		
995
		AND(
996
			@p_REQ_TYPE = -1  OR @p_REQ_TYPE IS NULL
997
			OR
998
				(
999
					@p_REQ_TYPE=1 AND EXISTS(SELECT D.REQDT_ID FROM dbo.PL_REQUEST_DOC_DT D WHERE D.REQDT_TYPE='O' AND D.REQ_ID=A.REQ_ID)
1000
				)
1001
				OR
1002
				(
1003
						@p_REQ_TYPE=0 AND NOT EXISTS(SELECT D.REQDT_ID FROM dbo.PL_REQUEST_DOC_DT D WHERE D.REQDT_TYPE='O' AND D.REQ_ID=A.REQ_ID)
1004
				)
1005
			)
1006

    
1007
		AND A.IS_CHECKALL=1
1008

    
1009
		AND A.PROCESS_ID='APPROVE'
1010
		AND(@p_FR_DATE IS NULL OR CONVERT(DATE,A.REQ_DT,103) >= CONVERT(DATE,@p_FR_DATE,103))
1011
		AND(@p_TO_DATE IS NULL OR CONVERT(DATE,A.REQ_DT,103) <= CONVERT(DATE,@p_TO_DATE,103))	
1012
		AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR)	
1013
		AND(A.REQ_PARENT_ID IS NULL OR A.REQ_PARENT_ID='')
1014
			AND( NXL.NGUOIXULYTLNAME LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = ''
1015
			OR NXL.NGUOIXULY LIKE '%' + @p_NGUOIXULY  + '%')
1016
		--AND(
1017
		--	(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
1018
		--	OR
1019
		--	(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',1) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
1020
		--)
1021

    
1022
		--AND (A.BRANCH_ID = @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
1023
		--AND (A.DEP_ID = @p_DEP_ID OR @p_DEP_ID IS NULL OR @p_DEP_ID = '')
1024
		
1025
		-- GIANT 26/10/2021
1026
		AND (A.REQ_ID IN (SELECT PL_REQUEST_DOC_DT.REQ_ID FROM PL_REQUEST_DOC_DT WHERE PL_REQUEST_DOC_DT.REQ_ID = A.REQ_ID))
1027

    
1028
		ORDER BY A.CREATE_DT DESC
1029
	-- PAGING END
1030
	END
1031
	ELSE IF(@p_TYPE='TTCT_DVCM')
1032
	BEGIN	
1033
	-- PAGING BEGIN
1034
		SELECT A.REQ_ID,A.REQ_CODE,A.REQ_NAME,A.REQ_DT,A.REQ_TYPE,A.REQ_CONTENT, A.REQ_REASON,A.BRANCH_ID,
1035
              A.TOTAL_AMT AS TOTAL_AMT,A.NOTES, A.RECORD_STATUS,A.MAKER_ID,A.CREATE_DT,A.AUTH_STATUS,A.CHECKER_ID,
1036
			   UDV.TLFullName AS CHECKER_NAME_DV,
1037
			   A.APPROVE_DT,
1038
               A.PROCESS_ID,
1039
			   D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME_DV,
1040
			   CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt'
1041
			   ELSE N'Chờ duyệt' END AS AUTH_STATUS_NAME,
1042
			   G.BRANCH_CODE,
1043
			   G.BRANCH_NAME,
1044
			   UP.TLFullName AS CHECKER_NAME_PROCESS,
1045
			   RP.APPROVE_DT AS APPROVE_DT_PROCESS,
1046
			   UC.TLFullName AS MAKER_NAME,
1047
			   RPN.PROCESS_ID AS PROCESS_ID_NEXT,
1048
			   RP.ROLE_USER, 
1049
			   RP.NOTES AS PROCESS_STATUS , 
1050
			   RPN.NOTES AS PROCESS_STATUS_NEXT,
1051
			   A.DVDM_APP_ID,
1052
			   CD.DVDM_NAME AS DVDM_APP_NAME,
1053
			   A.REQ_PARENT_ID,
1054
			   PARENT.REQ_NAME AS REQ_PARENT_NAME,
1055
			   PARENT.REQ_CODE AS REQ_PARENT_CODE,
1056
			   PARENT.TOTAL_AMT AS REQ_PARENT_AMT,
1057
			   A.BRANCH_FEE,
1058
			   A.DEP_ID,
1059
			   A.DEP_FEE,
1060
			   DEP.DEP_NAME,
1061
			   DEP.DEP_CODE,
1062
			   BF.BRANCH_NAME AS BRANCH_FEE_NAME,
1063
			   BF.BRANCH_CODE AS BRANCH_FEE_CODE,
1064
			   DF.DEP_NAME AS DEP_FEE_NAME,
1065
			   DF.DEP_CODE AS DEP_FEE_CODE,
1066
			   '' AS BRANCH_DEP,
1067
			   '' AS BRANCH_DEP_FEE,
1068
			   
1069

    
1070

    
1071
			   '' AS TYPE_JOB,
1072
			   '' AS USER_JOB,
1073
			   '' AS USER_JOB_NAME,
1074
			   '' AS TRANSFER_MAKER,
1075
			    A.CREATE_DT AS TRANFER_DT ,
1076
				'' AS TRANSFER_MAKER_ID,
1077
			   A.EFFEC_DT,A.IS_BACKDAY,
1078
			   '' AS TYPE_JOB_XL,
1079
			   '' AS USER_JOB_XL,
1080
			   RP.ID AS REF_ID,
1081
			   RPN.STATUS AS STATUS_NEXT,
1082
			   RP.STATUS AS STATUS_CURR,
1083
			   '' AS STATUS_JOB,
1084
			   A.BRANCH_CREATE,
1085
			   A.DEP_CREATE,
1086
			   A.REQ_LINE,
1087
			   A.TC_NOTES, A.SIGN_USER, TL.TLFullName AS SIGN_USER_NAME,
1088
			   A.KT_NOTES,
1089
			     A.IS_CHECKALL,
1090
			   A.BASED_CONTENT, 
1091
			   '' AS IS_TRANSFER,
1092
			   --NGUOI XU LY
1093
			   --dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) AS NGUOIXULY
1094
			    NXL.NGUOIXULY AS NGUOIXULY,A.TK_TGD_NOTES, A.OTHER_NOTES,A.TK_HDQT_NOTES
1095
		-- SELECT END
1096
		FROM PL_REQUEST_DOC A 		
1097
		LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
1098
		LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID
1099
		LEFT JOIN dbo.CM_DEPARTMENT DEP ON DEP.DEP_ID=A.DEP_ID
1100

    
1101
		LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE
1102
		LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE
1103

    
1104
		LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID
1105
	
1106
		LEFT JOIN dbo.PL_REQUEST_PROCESS RPN 
1107
		ON RPN.ID IN (SELECT TOP 1 Temp.ID FROM dbo.PL_REQUEST_PROCESS Temp WHERE Temp.REQ_ID=A.REQ_ID AND (Temp.STATUS='C' OR Temp.STATUS='R') )
1108
		LEFT JOIN dbo.PL_REQUEST_PROCESS RP ON RP.ID IN(SELECT TOP 1 ID FROM dbo.PL_REQUEST_PROCESS WHERE PL_REQUEST_PROCESS.PROCESS_ID=RPN.PARENT_PROCESS_ID AND  PL_REQUEST_PROCESS.REQ_ID=A.REQ_ID)
1109
		LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID
1110
		LEFT JOIN dbo.TL_USER UC ON UC.TLNANME=A.MAKER_ID
1111
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=A.DVDM_APP_ID
1112
		LEFT JOIN dbo.PL_REQUEST_DOC PARENT ON PARENT.REQ_ID=A.REQ_PARENT_ID
1113
		LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME
1114
		OUTER APPLY
1115
		(
1116
			SELECT [dbo].[FN_PL_REQUEST_DOC_GET_NEXT_USER](A.REQ_ID, @MENU_PERMISSION) NGUOIXULY, '' NGUOIXULYTLNAME
1117
		) NXL
1118
		WHERE 1 = 1
1119
		
1120
	    AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
1121
		AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '')
1122
		AND (A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '')
1123
		AND (A.REQ_REASON LIKE '%' + @p_REQ_REASON + '%' OR @p_REQ_REASON IS NULL OR @p_REQ_REASON = '')
1124
		AND (A.TOTAL_AMT=@p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0)
1125
		AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')	
1126
		AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
1127
		AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
1128
	
1129
		AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
1130
		AND	(@p_CREATE_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_CREATE_DT,103)) = 0) 
1131
		AND	(@p_APPROVE_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_APPROVE_DT,103)) = 0) 
1132
		AND	(@p_REQ_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_REQ_DT,103)) = 0) 	
1133
		AND (A.REQ_TYPE = @p_REQ_TYPE OR @p_REQ_TYPE IS NULL OR @p_REQ_TYPE =-1)
1134
		AND A.RECORD_STATUS = '1'
1135
		
1136
		AND(
1137
			@p_REQ_TYPE = -1  OR @p_REQ_TYPE IS NULL
1138
			OR
1139
				(
1140
					@p_REQ_TYPE=1 AND EXISTS(SELECT D.REQDT_ID FROM dbo.PL_REQUEST_DOC_DT D WHERE D.REQDT_TYPE='O' AND D.REQ_ID=A.REQ_ID)
1141
				)
1142
				OR
1143
				(
1144
						@p_REQ_TYPE=0 AND NOT EXISTS(SELECT D.REQDT_ID FROM dbo.PL_REQUEST_DOC_DT D WHERE D.REQDT_TYPE='O' AND D.REQ_ID=A.REQ_ID)
1145
				)
1146
			)
1147

    
1148
		AND (  
1149
		 EXISTS (SELECT * FROM dbo.PL_REQUEST_COSTCENTER PC WHERE PC.REQ_ID=A.REQ_ID AND EXISTS(SELECT AUTH.ROLE_DISPLAYNAME FROM #AUTHOR_DVDM AUTH WHERE AUTH.DVDM_ID=PC.COST_ID) )
1150
		)
1151

    
1152
		AND A.PROCESS_ID='APPROVE'
1153
		AND(@p_FR_DATE IS NULL OR CONVERT(DATE,A.REQ_DT,103) >= CONVERT(DATE,@p_FR_DATE,103))
1154
		AND(@p_TO_DATE IS NULL OR CONVERT(DATE,A.REQ_DT,103) <= CONVERT(DATE,@p_TO_DATE,103))	
1155
		AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR)	
1156
		AND(A.REQ_PARENT_ID IS NULL OR A.REQ_PARENT_ID='')
1157
			AND( NXL.NGUOIXULYTLNAME LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = ''
1158
			OR NXL.NGUOIXULY LIKE '%' + @p_NGUOIXULY  + '%')
1159
		--AND(
1160
		--	(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
1161
		--	OR
1162
		--	(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',1) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
1163
		--)
1164

    
1165

    
1166
		--AND (A.BRANCH_ID = @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
1167
		--AND (A.DEP_ID = @p_DEP_ID OR @p_DEP_ID IS NULL OR @p_DEP_ID = '')
1168

    
1169
		-- GIANT 26/10/2021
1170
		AND (A.REQ_ID IN (SELECT PL_REQUEST_DOC_DT.REQ_ID FROM PL_REQUEST_DOC_DT WHERE PL_REQUEST_DOC_DT.REQ_ID = A.REQ_ID))
1171

    
1172
		ORDER BY A.CREATE_DT DESC
1173
	-- PAGING END
1174
	END
1175
	ELSE IF(@p_TYPE='REQ_PARENT')
1176
	BEGIN	
1177
		-- PAGING BEGIN
1178
		SELECT A.REQ_ID,A.REQ_CODE,A.REQ_NAME,A.REQ_DT,A.REQ_TYPE,A.REQ_CONTENT, A.REQ_REASON,A.BRANCH_ID,
1179
              A.TOTAL_AMT AS TOTAL_AMT,A.NOTES, A.RECORD_STATUS,A.MAKER_ID,A.CREATE_DT,A.AUTH_STATUS,A.CHECKER_ID,
1180
			   UDV.TLFullName AS CHECKER_NAME_DV,
1181
			   A.APPROVE_DT,
1182
               A.PROCESS_ID,
1183
			   D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME_DV,
1184
			   CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt'
1185
			   ELSE N'Chờ duyệt' END AS AUTH_STATUS_NAME,
1186
			G.BRANCH_CODE,
1187
			   G.BRANCH_NAME,
1188
			   UP.TLFullName AS CHECKER_NAME_PROCESS,
1189
			   RP.APPROVE_DT AS APPROVE_DT_PROCESS,
1190
			   UC.TLFullName AS MAKER_NAME,
1191
			   RPN.PROCESS_ID AS PROCESS_ID_NEXT,
1192
			   RP.ROLE_USER, 
1193
			   RP.NOTES AS PROCESS_STATUS , 
1194
			   RPN.NOTES AS PROCESS_STATUS_NEXT,
1195
			   A.DVDM_APP_ID,
1196
			   CD.DVDM_NAME AS DVDM_APP_NAME,
1197
			   A.REQ_PARENT_ID,
1198
			   PARENT.REQ_NAME AS REQ_PARENT_NAME,
1199
			   PARENT.REQ_CODE AS REQ_PARENT_CODE,
1200
			   PARENT.TOTAL_AMT AS REQ_PARENT_AMT,
1201
			   A.BRANCH_FEE,
1202
			   A.DEP_ID,
1203
			   A.DEP_FEE,
1204
			   DEP.DEP_NAME,
1205
			   DEP.DEP_CODE,
1206
			   BF.BRANCH_NAME AS BRANCH_FEE_NAME,
1207
			   BF.BRANCH_CODE AS BRANCH_FEE_CODE,
1208
			   DF.DEP_NAME AS DEP_FEE_NAME,
1209
			   DF.DEP_CODE AS DEP_FEE_CODE,
1210
			   '' AS BRANCH_DEP,
1211
			   '' AS BRANCH_DEP_FEE,
1212
			   
1213
			   '' AS TYPE_JOB,
1214
			   '' AS USER_JOB,
1215
			   '' AS USER_JOB_NAME,
1216
			   '' AS TRANSFER_MAKER,
1217
			    A.CREATE_DT AS TRANFER_DT ,
1218
				'' AS TRANSFER_MAKER_ID,
1219
			   A.EFFEC_DT,A.IS_BACKDAY,
1220
			   '' AS TYPE_JOB_XL,
1221
			   '' AS USER_JOB_XL,
1222
			   RP.ID AS REF_ID,
1223
			   RPN.STATUS AS STATUS_NEXT,
1224
			   RP.STATUS AS STATUS_CURR,
1225
			   '' AS STATUS_JOB,
1226
			   A.BRANCH_CREATE,
1227
			   A.DEP_CREATE,
1228
			   A.REQ_LINE,
1229
			   A.TC_NOTES, A.SIGN_USER, TL.TLFullName AS SIGN_USER_NAME,
1230
			   A.KT_NOTES,
1231
			     A.IS_CHECKALL,
1232
			   A.BASED_CONTENT, 
1233
			   '' AS IS_TRANSFER,
1234
			   --NGUOI XU LY
1235
			   --dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) AS NGUOIXULY
1236
			    NXL.NGUOIXULY AS NGUOIXULY
1237
				,A.TK_TGD_NOTES, A.OTHER_NOTES,A.TK_HDQT_NOTES
1238
		-- SELECT END
1239
		FROM PL_REQUEST_DOC A 		
1240
		LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
1241
		LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID
1242
		LEFT JOIN dbo.CM_DEPARTMENT DEP ON DEP.DEP_ID=A.DEP_ID
1243
		LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE
1244
		LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE
1245
		LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID
1246
	
1247
		LEFT JOIN dbo.PL_REQUEST_PROCESS RPN 
1248
		ON RPN.ID IN (SELECT TOP 1 Temp.ID FROM dbo.PL_REQUEST_PROCESS Temp WHERE Temp.REQ_ID=A.REQ_ID AND (Temp.STATUS='C' OR Temp.STATUS='R') )
1249
		LEFT JOIN dbo.PL_REQUEST_PROCESS RP ON RP.ID IN(SELECT TOP 1 ID FROM dbo.PL_REQUEST_PROCESS WHERE PL_REQUEST_PROCESS.PROCESS_ID=RPN.PARENT_PROCESS_ID AND  PL_REQUEST_PROCESS.REQ_ID=A.REQ_ID)
1250
		LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID
1251
		LEFT JOIN dbo.TL_USER UC ON UC.TLNANME=A.MAKER_ID
1252
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=A.DVDM_APP_ID
1253
		LEFT JOIN dbo.PL_REQUEST_DOC PARENT ON PARENT.REQ_ID=A.REQ_PARENT_ID
1254
		LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME
1255
		OUTER APPLY
1256
		(
1257
			SELECT [dbo].[FN_PL_REQUEST_DOC_GET_NEXT_USER](A.REQ_ID, @MENU_PERMISSION) NGUOIXULY, '' NGUOIXULYTLNAME
1258
		) NXL
1259
		WHERE 1 = 1 
1260
		AND A.REQ_PARENT_ID =@p_REQ_ID
1261
		ORDER BY A.CREATE_DT DESC
1262
		-- PAGING END
1263
	END
1264
	ELSE IF(@p_TYPE='LINK_TTCT')
1265
	BEGIN	
1266
		-- PAGING BEGIN
1267
		-- đoạn dưới chưa làm
1268
		SELECT A.REQ_ID,A.REQ_CODE,A.REQ_NAME,A.REQ_DT,A.REQ_TYPE,A.REQ_CONTENT, A.REQ_REASON,A.BRANCH_ID,
1269
              A.TOTAL_AMT AS TOTAL_AMT,A.NOTES, A.RECORD_STATUS,A.MAKER_ID,A.CREATE_DT,A.AUTH_STATUS,A.CHECKER_ID,
1270
			   UDV.TLFullName AS CHECKER_NAME_DV,
1271
			   A.APPROVE_DT,
1272
               A.PROCESS_ID,
1273
			   D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME_DV,
1274
			   CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt'
1275
			   ELSE N'Chờ duyệt' END AS AUTH_STATUS_NAME,
1276
			G.BRANCH_CODE,
1277
			   G.BRANCH_NAME,
1278
			   UP.TLFullName AS CHECKER_NAME_PROCESS,
1279
			   RP.APPROVE_DT AS APPROVE_DT_PROCESS,
1280
			   UC.TLFullName AS MAKER_NAME,
1281
			   RPN.PROCESS_ID AS PROCESS_ID_NEXT,
1282
			   RP.ROLE_USER, 
1283
			   RP.NOTES AS PROCESS_STATUS , 
1284
			   RPN.NOTES AS PROCESS_STATUS_NEXT,
1285
			   A.DVDM_APP_ID,
1286
			   CD.DVDM_NAME AS DVDM_APP_NAME,
1287
			   A.REQ_PARENT_ID,
1288
			   PARENT.REQ_NAME AS REQ_PARENT_NAME,
1289
			   PARENT.REQ_CODE AS REQ_PARENT_CODE,
1290
			   PARENT.TOTAL_AMT AS REQ_PARENT_AMT,
1291
			   A.BRANCH_FEE,
1292
			   A.DEP_ID,
1293
			   A.DEP_FEE,
1294
			   DEP.DEP_NAME,
1295
			   DEP.DEP_CODE,
1296
			   BF.BRANCH_NAME AS BRANCH_FEE_NAME,
1297
			   BF.BRANCH_CODE AS BRANCH_FEE_CODE,
1298
			   DF.DEP_NAME AS DEP_FEE_NAME,
1299
			   DF.DEP_CODE AS DEP_FEE_CODE,
1300
			   '' AS BRANCH_DEP,
1301
			   '' AS BRANCH_DEP_FEE,
1302
			   
1303
			   '' AS TYPE_JOB,
1304
			   '' AS USER_JOB,
1305
			   '' AS USER_JOB_NAME,
1306
			   '' AS TRANSFER_MAKER,
1307
			    A.CREATE_DT AS TRANFER_DT ,
1308
				'' AS TRANSFER_MAKER_ID,
1309
			   A.EFFEC_DT,A.IS_BACKDAY,
1310
			   '' AS TYPE_JOB_XL,
1311
			   '' AS USER_JOB_XL,
1312
			   RP.ID AS REF_ID,
1313
			   RPN.STATUS AS STATUS_NEXT,
1314
			   RP.STATUS AS STATUS_CURR,
1315
			   '' AS STATUS_JOB,
1316
			   A.BRANCH_CREATE,
1317
			   A.DEP_CREATE,
1318
			   A.REQ_LINE,
1319
			   A.TC_NOTES, A.SIGN_USER, TL.TLFullName AS SIGN_USER_NAME,
1320
			   A.KT_NOTES,
1321
			     A.IS_CHECKALL,
1322
			   A.BASED_CONTENT, 
1323
			   '' AS IS_TRANSFER,
1324
			   --NGUOI XU LY
1325
			   --dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) AS NGUOIXULY
1326
			    NXL.NGUOIXULY AS NGUOIXULY
1327
				,A.TK_TGD_NOTES, A.OTHER_NOTES,A.TK_HDQT_NOTES
1328
		-- SELECT END
1329
		FROM PL_REQUEST_DOC A 		
1330
		LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
1331
		LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID
1332
		LEFT JOIN dbo.CM_DEPARTMENT DEP ON DEP.DEP_ID=A.DEP_ID
1333
		LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE
1334
		LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE
1335
		LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID
1336
	
1337
		LEFT JOIN dbo.PL_REQUEST_PROCESS RPN 
1338
		ON RPN.ID IN (SELECT TOP 1 Temp.ID FROM dbo.PL_REQUEST_PROCESS Temp WHERE Temp.REQ_ID=A.REQ_ID AND (Temp.STATUS='C' OR Temp.STATUS='R') )
1339
		LEFT JOIN dbo.PL_REQUEST_PROCESS RP ON RP.ID IN(SELECT TOP 1 ID FROM dbo.PL_REQUEST_PROCESS WHERE PL_REQUEST_PROCESS.PROCESS_ID=RPN.PARENT_PROCESS_ID AND  PL_REQUEST_PROCESS.REQ_ID=A.REQ_ID)
1340
		LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID
1341
		LEFT JOIN dbo.TL_USER UC ON UC.TLNANME=A.MAKER_ID
1342
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=A.DVDM_APP_ID
1343
		LEFT JOIN dbo.PL_REQUEST_DOC PARENT ON PARENT.REQ_ID=A.REQ_PARENT_ID
1344
		LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME
1345
		OUTER APPLY
1346
		(
1347
			SELECT [dbo].[FN_PL_REQUEST_DOC_GET_NEXT_USER](A.REQ_ID, @MENU_PERMISSION) NGUOIXULY, '' NGUOIXULYTLNAME
1348
		) NXL
1349
		WHERE 1 = 1 
1350
		AND A.PL_BASED_ID =@p_REQ_ID --- LUCTV 19.02.2023 FIX DIEU KIEN SEARCH TO TRINH CAN CU DANG THAM CHIEU
1351
		ORDER BY A.CREATE_DT DESC
1352
		-- PAGING END
1353
	END
1354
	ELSE IF(@p_TYPE='DVKD_XDCB')
1355
	BEGIN
1356
	-- PAGING BEGIN
1357
		SELECT A.REQ_ID,A.REQ_CODE,A.REQ_NAME,A.REQ_DT,A.REQ_TYPE,A.REQ_CONTENT, A.REQ_REASON,A.BRANCH_ID,
1358
              A.TOTAL_AMT AS TOTAL_AMT,A.NOTES, A.RECORD_STATUS,A.MAKER_ID,A.CREATE_DT,A.AUTH_STATUS,A.CHECKER_ID,
1359
			   UDV.TLFullName AS CHECKER_NAME_DV,
1360
			   A.APPROVE_DT,
1361
               A.PROCESS_ID,
1362
			   D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME_DV,
1363

    
1364
			   CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt'
1365
			   WHEN A.PROCESS_ID<> 'APPROVE' AND A.AUTH_STATUS='A' THEN N'Chờ duyệt' ELSE D.AUTH_STATUS_NAME END AS AUTH_STATUS_NAME,
1366

    
1367
			   --CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt'
1368
			   --ELSE N'Chờ duyệt' END AS AUTH_STATUS_NAME,
1369
			   G.BRANCH_CODE,
1370
			   G.BRANCH_NAME,
1371
			   UP.TLFullName AS CHECKER_NAME_PROCESS,
1372
			   RP.APPROVE_DT AS APPROVE_DT_PROCESS,
1373
			   UC.TLFullName AS MAKER_NAME,
1374
			   RPN.PROCESS_ID AS PROCESS_ID_NEXT,
1375
			   RP.ROLE_USER, 
1376
			   RP.NOTES AS PROCESS_STATUS , 
1377
			   RPN.NOTES AS PROCESS_STATUS_NEXT,
1378
			   A.DVDM_APP_ID,
1379
			   CD.DVDM_NAME AS DVDM_APP_NAME,
1380
			   A.REQ_PARENT_ID,
1381
			   PARENT.REQ_NAME AS REQ_PARENT_NAME,
1382
			   PARENT.REQ_CODE AS REQ_PARENT_CODE,
1383
			   PARENT.TOTAL_AMT AS REQ_PARENT_AMT,
1384
			   A.BRANCH_FEE,
1385
			   A.DEP_ID,
1386
			   A.DEP_FEE,
1387
			   DEP.DEP_NAME,
1388
			   DEP.DEP_CODE,
1389
			   BF.BRANCH_NAME AS BRANCH_FEE_NAME,
1390
			   BF.BRANCH_CODE AS BRANCH_FEE_CODE,
1391
			   DF.DEP_NAME AS DEP_FEE_NAME,
1392
			   DF.DEP_CODE AS DEP_FEE_CODE,
1393
			   '' AS BRANCH_DEP,
1394
			   '' AS BRANCH_DEP_FEE,
1395
			   '' AS TYPE_JOB,
1396
			   '' AS USER_JOB,
1397
			   '' AS USER_JOB_NAME,
1398
			   '' AS TRANSFER_MAKER,
1399
			    A.CREATE_DT AS TRANFER_DT ,
1400
				'' AS TRANSFER_MAKER_ID,
1401
			   A.EFFEC_DT,A.IS_BACKDAY,
1402
			   '' AS TYPE_JOB_XL,
1403
			   '' AS USER_JOB_XL,
1404
			   --RP.ID AS REF_ID,
1405
			   0 AS REF_ID,
1406
			   RPN.STATUS AS STATUS_NEXT,
1407
			   RP.STATUS AS STATUS_CURR,
1408
			   '' AS STATUS_JOB,
1409
			   A.BRANCH_CREATE,
1410
			   A.DEP_CREATE,
1411
			   A.REQ_LINE,
1412
			   A.TC_NOTES, A.SIGN_USER, TL.TLFullName AS SIGN_USER_NAME,
1413
			   A.KT_NOTES,
1414
			   A.BASED_CONTENT, 
1415
			   A.IS_CHECKALL,
1416
			   -- GIANT 23/12/2021
1417
			   A.PL_BASED_ID, PL_B.REQ_CODE AS PL_BASED_CODE, PL_B.REQ_CONTENT AS PL_BASED_CONTENT, 
1418
			   '' AS IS_TRANSFER,
1419
			   --NGUOI XU LY
1420
			   --dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) AS NGUOIXULY
1421
			    NXL.NGUOIXULY AS NGUOIXULY,A.TK_TGD_NOTES, A.OTHER_NOTES,A.TK_HDQT_NOTES,
1422
				(SELECT TOP 1 BB.YEAR  FROM PL_REQUEST_DOC_DT AA LEFT JOIN PL_MASTER BB ON AA.PLAN_ID = BB.PLAN_ID WHERE AA.REQ_ID = A.REQ_ID) AS NAMNGANSACH
1423
		-- SELECT END
1424
		FROM PL_REQUEST_DOC A 		
1425
		LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
1426
		LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID
1427
		LEFT JOIN dbo.CM_DEPARTMENT DEP ON DEP.DEP_ID=A.DEP_ID
1428

    
1429
		LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE
1430
		LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE
1431

    
1432
		LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID
1433
	
1434
		LEFT JOIN dbo.PL_REQUEST_PROCESS RPN 
1435
		ON RPN.ID IN (SELECT TOP 1 Temp.ID FROM dbo.PL_REQUEST_PROCESS Temp WHERE Temp.REQ_ID=A.REQ_ID AND (Temp.STATUS='C' OR Temp.STATUS='R') )
1436
		LEFT JOIN dbo.PL_REQUEST_PROCESS RP ON RP.ID IN(SELECT TOP 1 ID FROM dbo.PL_REQUEST_PROCESS WHERE PL_REQUEST_PROCESS.PROCESS_ID=RPN.PARENT_PROCESS_ID AND  PL_REQUEST_PROCESS.REQ_ID=A.REQ_ID)
1437
		LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID
1438
		LEFT JOIN dbo.TL_USER UC ON UC.TLNANME=A.MAKER_ID
1439
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=A.DVDM_APP_ID
1440
		LEFT JOIN dbo.PL_REQUEST_DOC PARENT ON PARENT.REQ_ID=A.REQ_PARENT_ID
1441
		-- GIANT 23/12/2021
1442
		LEFT JOIN dbo.PL_REQUEST_DOC PL_B ON PL_B.REQ_ID=A.PL_BASED_ID
1443

    
1444
		LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME
1445
		OUTER APPLY
1446
		(
1447
			SELECT [dbo].[FN_PL_REQUEST_DOC_GET_NEXT_USER](A.REQ_ID, @MENU_PERMISSION) NGUOIXULY, '' NGUOIXULYTLNAME
1448
		) NXL
1449
		WHERE 1 = 1
1450
		AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
1451
		AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')	
1452
		AND ((A.BRANCH_CREATE = @p_BRANCH_LOGIN AND( A.DEP_CREATE=@DEP_ID OR @BRANCH_TYPE <>'HS')) OR A.IS_CHECKALL=1)
1453
		AND(@p_FR_DATE IS NULL OR CONVERT(DATETIME,A.REQ_DT,103) >= CONVERT(DATETIME,@p_FR_DATE,103))
1454
		AND(@p_TO_DATE IS NULL OR CONVERT(DATETIME,A.REQ_DT,103) <= CONVERT(DATETIME,@p_TO_DATE,103))	
1455
		AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR)		
1456
		AND (ISNULL(A.PROCESS_ID,'') ='APPROVE')
1457
		AND (A.REQ_TYPE = @p_REQ_TYPE OR @p_REQ_TYPE IS NULL OR @p_REQ_TYPE =-1)
1458
		AND(
1459
			@p_REQ_TYPE = -1  OR @p_REQ_TYPE IS NULL
1460
			OR
1461
				(
1462
					@p_REQ_TYPE=1 AND EXISTS(SELECT D.REQDT_ID FROM dbo.PL_REQUEST_DOC_DT D WHERE D.REQDT_TYPE='O' AND D.REQ_ID=A.REQ_ID)
1463
				)
1464
				OR
1465
				(
1466
					@p_REQ_TYPE=0 AND NOT EXISTS(SELECT D.REQDT_ID FROM dbo.PL_REQUEST_DOC_DT D WHERE D.REQDT_TYPE='O' AND D.REQ_ID=A.REQ_ID)
1467
				)
1468
			)
1469
		AND (EXISTS(SELECT REQDT_ID FROM dbo.PL_REQUEST_DOC_DT WHERE REQ_ID = A.REQ_ID))
1470

    
1471
		ORDER BY A.CREATE_DT DESC
1472
	-- PAGING END
1473
	END
1474
	ELSE IF(@p_TYPE='VLOOK_UP')
1475
	BEGIN	
1476
		-- PAGING BEGIN
1477
		SELECT A.REQ_ID,A.REQ_CODE,A.REQ_NAME,A.REQ_DT,A.REQ_TYPE,A.REQ_CONTENT, A.REQ_REASON,A.BRANCH_ID,
1478
               A.TOTAL_AMT AS TOTAL_AMT,A.NOTES, A.RECORD_STATUS,A.MAKER_ID,A.CREATE_DT,A.AUTH_STATUS,A.CHECKER_ID,
1479
			   UDV.TLFullName AS CHECKER_NAME_DV,
1480
			   A.APPROVE_DT,
1481
               A.PROCESS_ID,
1482
			   --D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME_DV,
1483
			   --CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt'
1484
			   --WHEN A.PROCESS_ID<> 'APPROVE' AND A.AUTH_STATUS='A' THEN N'Chờ duyệt' ELSE D.AUTH_STATUS_NAME END AS AUTH_STATUS_NAME,
1485
			   CASE WHEN A.PROCESS_ID='APPROVE' OR A.AUTH_STATUS ='A' THEN N'Đã duyệt'
1486
			   ELSE D.AUTH_STATUS_NAME END AS AUTH_STATUS_NAME,
1487
			   G.BRANCH_CODE,
1488
			   CASE WHEN A.BRANCH_CREATE <> 'DV0001' THEN G.BRANCH_NAME ELSE G.BRANCH_NAME+' - ' + DEP.DEP_NAME END AS BRANCH_NAME,
1489
			   UP.TLFullName AS CHECKER_NAME_PROCESS,
1490
			   RP.APPROVE_DT AS APPROVE_DT_PROCESS,
1491
			   UC.TLFullName AS MAKER_NAME,
1492
			   RPN.PROCESS_ID AS PROCESS_ID_NEXT,
1493
			   RP.ROLE_USER, 
1494
			   RP.NOTES AS PROCESS_STATUS , 
1495
			   RPN.NOTES AS PROCESS_STATUS_NEXT,
1496
			   A.DVDM_APP_ID,
1497
			   CD.DVDM_NAME AS DVDM_APP_NAME,
1498
			   A.REQ_PARENT_ID,
1499
			   PARENT.REQ_NAME AS REQ_PARENT_NAME,
1500
			   PARENT.REQ_CODE AS REQ_PARENT_CODE,
1501
			   PARENT.TOTAL_AMT AS REQ_PARENT_AMT,
1502
			   A.BRANCH_FEE,
1503
			   A.DEP_ID,
1504
			   A.DEP_FEE,
1505
			   DEP.DEP_NAME,
1506
			   DEP.DEP_CODE,
1507
			   BF.BRANCH_NAME AS BRANCH_FEE_NAME,
1508
			   BF.BRANCH_CODE AS BRANCH_FEE_CODE,
1509
			   DF.DEP_NAME AS DEP_FEE_NAME,
1510
			   DF.DEP_CODE AS DEP_FEE_CODE,
1511
			   '' AS BRANCH_DEP,
1512
			   '' AS BRANCH_DEP_FEE,
1513
			   
1514

    
1515

    
1516
			   '' AS TYPE_JOB,
1517
			   '' AS USER_JOB,
1518
			   '' AS USER_JOB_NAME,
1519
			   '' AS TRANSFER_MAKER,
1520
			    A.CREATE_DT AS TRANFER_DT ,
1521
				'' AS TRANSFER_MAKER_ID,
1522
			   A.EFFEC_DT,A.IS_BACKDAY,
1523
			   '' AS TYPE_JOB_XL,
1524
			   '' AS USER_JOB_XL,
1525
			   RP.ID AS REF_ID,
1526
			   RPN.STATUS AS STATUS_NEXT,
1527
			   RP.STATUS AS STATUS_CURR,
1528
			   '' AS STATUS_JOB,
1529
			   A.BRANCH_CREATE,
1530
			   A.DEP_CREATE,
1531
			   A.REQ_LINE,
1532
			   A.TC_NOTES,
1533
			   A.SIGN_USER,
1534
			   TL.TLFullName AS SIGN_USER_NAME,
1535
			   A.KT_NOTES,
1536
			   A.IS_CHECKALL,
1537
			   A.BASED_CONTENT,
1538
			   A.PL_BASED_ID, PL_B.REQ_CODE AS PL_BASED_CODE, PL_B.REQ_CONTENT AS PL_BASED_CONTENT, 
1539
			   '' AS IS_TRANSFER,
1540
			   --NGUOI XU LY
1541
			  NXL.NGUOIXULY AS NGUOIXULY, A.TK_HDQT_NOTES, A.TK_TGD_NOTES, A.OTHER_NOTES
1542
			 -- SELECT END 
1543
		FROM PL_REQUEST_DOC A 	
1544
		--LEFT JOIN	dbo.PL_REQUEST_PROCESS PLRP ON PLRP.REQ_ID=A.REQ_ID  AND PLRP.STATUS <>'U'
1545
		LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
1546
		LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID
1547
		LEFT JOIN dbo.CM_DEPARTMENT DEP ON DEP.DEP_ID=A.DEP_ID
1548

    
1549
		LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE
1550
		LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE
1551

    
1552
		LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID
1553
	
1554
		LEFT JOIN dbo.PL_REQUEST_PROCESS RPN 
1555
		ON RPN.ID IN (SELECT TOP 1 Temp.ID FROM dbo.PL_REQUEST_PROCESS Temp WHERE Temp.REQ_ID=A.REQ_ID AND (Temp.STATUS='C' OR Temp.STATUS='R') )
1556
		LEFT JOIN dbo.PL_REQUEST_PROCESS RP ON RP.ID IN(SELECT TOP 1 ID FROM dbo.PL_REQUEST_PROCESS WHERE PL_REQUEST_PROCESS.PROCESS_ID=RPN.PARENT_PROCESS_ID AND  PL_REQUEST_PROCESS.REQ_ID=A.REQ_ID)
1557
		LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID
1558
		LEFT JOIN dbo.TL_USER UC ON UC.TLNANME=A.MAKER_ID
1559
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=A.DVDM_APP_ID
1560
		LEFT JOIN dbo.PL_REQUEST_DOC PARENT ON PARENT.REQ_ID=A.REQ_PARENT_ID
1561
		LEFT JOIN dbo.PL_REQUEST_DOC PL_B ON PL_B.REQ_ID=A.PL_BASED_ID
1562
		LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME
1563
		OUTER APPLY
1564
		(
1565
			SELECT [dbo].[FN_PL_REQUEST_DOC_GET_NEXT_USER](A.REQ_ID, @MENU_PERMISSION) NGUOIXULY, '' NGUOIXULYTLNAME
1566
		) NXL
1567

    
1568
		WHERE 1 = 1
1569
		
1570
	    AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
1571
		AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '')
1572
		AND (A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '')
1573
		AND (A.REQ_REASON LIKE '%' + @p_REQ_REASON + '%' OR @p_REQ_REASON IS NULL OR @p_REQ_REASON = '')
1574
		AND (A.TOTAL_AMT=@p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0)
1575
		AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')	
1576
		AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
1577
		AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
1578
		
1579

    
1580
		AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
1581

    
1582

    
1583
		AND	(@p_CREATE_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_CREATE_DT,103)) = 0) 
1584
		AND	(@p_APPROVE_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_APPROVE_DT,103)) = 0) 
1585
		AND	(@p_REQ_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_REQ_DT,103)) = 0) 
1586
		AND (A.REQ_TYPE = @p_REQ_TYPE OR @p_REQ_TYPE IS NULL OR @p_REQ_TYPE =-1)
1587
		AND A.RECORD_STATUS = '1'
1588
		
1589
		AND(
1590
			@p_REQ_TYPE = -1  OR @p_REQ_TYPE IS NULL
1591
			OR
1592
				(
1593
					@p_REQ_TYPE=1 AND EXISTS(SELECT D.REQDT_ID FROM dbo.PL_REQUEST_DOC_DT D WHERE D.REQDT_TYPE='O' AND D.REQ_ID=A.REQ_ID)
1594
				)
1595
				OR
1596
				(
1597
						@p_REQ_TYPE=0 AND NOT EXISTS(SELECT D.REQDT_ID FROM dbo.PL_REQUEST_DOC_DT D WHERE D.REQDT_TYPE='O' AND D.REQ_ID=A.REQ_ID)
1598
				)
1599
			)
1600

    
1601
		AND    (A.MAKER_ID=@p_TLNAME_USER
1602
        OR (A.PROCESS_ID ='APPROVE' AND A.BRANCH_CREATE=@p_BRANCH_LOGIN AND (A.DEP_CREATE=@DEP_ID OR @BRANCH_TYPE<>'HS'))
1603
				OR EXISTS(SELECT ID FROM dbo.PL_ROLE_DATA_CONFIG PLRDC WHERE PLRDC.ROLE_TYPE='PL_REQUEST_DOC_ALL'
1604
          AND (PLRDC.BRANCH_ID=@p_TLNAME_USER OR (PLRDC.BRANCH_ID = @p_BRANCH_LOGIN AND PLRDC.DEP_ID = @DEP_ID)))
1605
				OR EXISTS(SELECT * FROM dbo.PL_REQUEST_PROCESS PLRP WHERE PLRP.PROCESS_ID='APPNEW' AND PLRP.REQ_ID=A.REQ_ID
1606
																			AND EXISTS(SELECT AUTH.ROLE_DISPLAYNAME FROM #AUTHOR AUTH WHERE AUTH.ROLE_DISPLAYNAME=PLRP.ROLE_USER AND AUTH.BRANCH_ID=PLRP.BRANCH_ID 
1607
																														AND(PLRP.DEP_ID=AUTH.DEP_ID OR PLRP.DEP_ID IS NULL OR PLRP.DEP_ID ='') ))
1608
			--	
1609
				
1610
				--OR (EXISTS(SELECT * FROM dbo.PL_REQUEST_PROCESS PLRP WHERE A.REQ_ID=PLRP.REQ_ID AND PLRP.PROCESS_ID='APPNEW' 
1611
				--												AND PLRP.ROLE_USER IN (SELECT ROLE_ID FROM @TABLE_ROLE) AND PLRP.BRANCH_ID=@p_BRANCH_LOGIN 
1612
				--												AND (PLRP.DEP_ID=@DEP_ID OR PLRP.DEP_ID IS NULL OR PLRP.DEP_ID =''))) 
1613
			--
1614

    
1615

    
1616
		OR(A.SIGN_USER IS NOT NULL AND A.SIGN_USER <>'' AND A.SIGN_USER  =@p_TLNAME_USER AND A.AUTH_STATUS<>'E'))
1617
		--
1618
		--AND (( @p_AUTH_STATUS='A' AND  A.PROCESS_ID='APPROVE') OR( @p_AUTH_STATUS IN('U','R','E') AND (A.PROCESS_ID <> 'APPROVE' OR A.PROCESS_ID IS NULL)) OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
1619
		--AND ((A.AUTH_STATUS='E' AND A.MAKER_ID=@p_TLNAME_USER) OR (A.AUTH_STATUS <> 'E' AND (A.MAKER_ID=@p_TLNAME_USER OR (PLRP.PROCESS_ID='DVKD' AND PLRP.ROLE_USER=@p_ROLE_USER AND PLRP.BRANCH_ID=@p_BRANCH_LOGIN AND (PLRP.DEP_ID=@DEP_ID OR PLRP.DEP_ID IS NULL OR PLRP.DEP_ID ='')))))
1620
		--
1621
		--AND (A.AUTH_STATUS = @p_AUTH_STATUS OR @p_AUTH_STATUS ='' OR @p_AUTH_STATUS IS NULL)
1622
		AND( (@p_AUTH_STATUS ='A' AND EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID = A.REQ_ID AND PROCESS_ID ='APPNEW' AND STATUS ='P'))
1623
			OR (@p_AUTH_STATUS ='E' AND A.AUTH_STATUS =@p_AUTH_STATUS)
1624
			OR (@p_AUTH_STATUS ='R' AND A.AUTH_STATUS =@p_AUTH_STATUS)
1625
			OR (@p_AUTH_STATUS ='W' AND EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID = A.REQ_ID AND PROCESS_ID ='SIGN' AND STATUS ='C'))
1626
			OR (@p_AUTH_STATUS ='G' AND EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID = A.REQ_ID AND PROCESS_ID ='SIGN' AND STATUS ='P'))
1627
			OR (@p_AUTH_STATUS ='U' AND EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID = A.REQ_ID AND PROCESS_ID ='APPNEW' AND STATUS ='C'))
1628
			OR (@p_AUTH_STATUS ='' OR @p_AUTH_STATUS IS NULL)
1629
		)
1630
		AND(@p_FR_DATE IS NULL  OR CONVERT(DATE,A.REQ_DT,103) >= CONVERT(DATE,@p_FR_DATE,103))
1631
		AND(@p_TO_DATE IS NULL  OR CONVERT(DATE,A.REQ_DT,103) <= CONVERT(DATE,@p_TO_DATE,103))	
1632
		AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR)	
1633
--		AND( NXL.NGUOIXULYTLNAME LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = ''
1634
--			OR NXL.NGUOIXULY LIKE '%' + @p_NGUOIXULY  + '%')
1635

    
1636
		AND (A.BRANCH_ID = @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
1637
		AND (A.DEP_ID = @p_DEP_ID OR @p_DEP_ID IS NULL OR @p_DEP_ID = '')
1638
		
1639
		-- GIANT 26/10/2021
1640
		AND (A.REQ_ID IN (SELECT PL_REQUEST_DOC_DT.REQ_ID FROM PL_REQUEST_DOC_DT WHERE PL_REQUEST_DOC_DT.REQ_ID = A.REQ_ID))
1641

    
1642
		--HUYHT 10/05/2022 TÌM KIẾM THEO BƯỚC XỬ LÝ TIẾP THEO
1643
		AND (A.PROCESS_ID = @p_PROCESS_ID OR (@p_PROCESS_ID IS NULL OR @p_PROCESS_ID = ''))
1644

    
1645
		ORDER BY A.CREATE_DT DESC
1646
		-- PAGING END
1647
	END
1648
    ELSE IF(@p_TYPE='TTTL')
1649
	BEGIN
1650
		-- PAGING BEGIN
1651
			SELECT A.REQ_ID,A.REQ_CODE,A.BRANCH_ID,
1652
               A.TOTAL_AMT,A.NOTES, A.RECORD_STATUS,A.MAKER_ID,A.CREATE_DT,A.AUTH_STATUS,A.CHECKER_ID,
1653
               A.NOTES AS REQ_REASON,
1654
			   A.APPROVE_DT AS APPROVE_DT,
1655
			   UDV.TLFullName AS CHECKER_NAME_DV,
1656
               A.PROCESS_ID,
1657
			   D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME_DV,
1658
			   CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt'
1659
			   ELSE N'Chờ duyệt' END AS AUTH_STATUS_NAME,
1660
			   G.BRANCH_CODE,
1661
			   G.BRANCH_NAME,
1662
			   UP.TLFullName AS CHECKER_NAME_PROCESS,
1663
			   RP.APPROVE_DT AS APPROVE_DT_PROCESS,
1664
			   UC.TLFullName AS MAKER_NAME,
1665
			   PLRP.PROCESS_ID AS PROCESS_ID_NEXT,
1666
			   RP.ROLE_USER,
1667
			   RP.NOTES AS PROCESS_STATUS , 
1668
			   PLRP.NOTES AS PROCESS_STATUS_NEXT,
1669
			   A.DEP_ID,
1670
			   DEP.DEP_NAME,
1671
			   DEP.DEP_CODE,
1672
			   '' AS BRANCH_DEP,
1673
			   '' AS BRANCH_DEP_FEE,
1674
			  CASE WHEN RPC.TYPE_JOB IS NULL OR RPC.TYPE_JOB ='' THEN 'TP' ELSE RPC.TYPE_JOB END AS TYPE_JOB,
1675
			   RPC.TLNAME AS USER_JOB,
1676
			   TU.TLFullName AS USER_JOB_NAME,
1677
			   TFM.TLNANME AS TRANSFER_MAKER,
1678
			    RPC.TRANFER_DT AS TRANFER_DT ,
1679
				RPC.MAKER_ID AS TRANSFER_MAKER_ID,
1680
			   '' AS TYPE_JOB_XL,
1681
			   '' AS USER_JOB_XL,
1682
			   PLRP.ID AS REF_ID,
1683
			   PLRP.STATUS AS STATUS_NEXT,
1684
			   PLRP.STATUS AS STATUS_CURR,
1685
			    RPC.STATUS_JOB AS STATUS_JOB,
1686
			   A.BRANCH_ID AS BRANCH_CREATE,
1687
			   A.DEP_ID AS DEP_CREATE,
1688
			   A.USER_APPROVAL AS SIGN_USER,
1689
			   TL.TLFULLNAME AS SIGN_USER_NAME,
1690
			   '' AS IS_TRANSFER,
1691
			  NXL.NGUOIXULY AS NGUOIXULY
1692
			-- SELECT END
1693
		FROM ASS_PLAN_REQUEST_LIQUID_MASTER A 	
1694
		INNER JOIN dbo.PL_REQUEST_PROCESS PLRP ON PLRP.REQ_ID=A.REQ_ID AND PLRP.IS_HAS_CHILD=1
1695

    
1696
		LEFT JOIN dbo.PL_REQUEST_PROCESS RP ON RP.ID=(SELECT MAX(B.ID) FROM PL_REQUEST_PROCESS B WHERE B.REQ_ID=A.REQ_ID AND B.PROCESS_ID=PLRP.PARENT_PROCESS_ID)	
1697
		LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
1698
		LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID
1699
		LEFT JOIN dbo.CM_DEPARTMENT DEP ON DEP.DEP_ID=A.DEP_ID
1700

    
1701
		LEFT JOIN dbo.TL_USER UC ON UC.TLNANME=A.MAKER_ID
1702
		LEFT JOIN dbo.CM_PROCESS_STATUS PS ON PS.PROCESS_ID = A.PROCESS_ID
1703
		LEFT JOIN dbo.CM_PROCESS_STATUS PSN ON PSN.PROCESS_ID = A.PROCESS_ID
1704
		LEFT JOIN dbo.PL_REQUEST_PROCESS_CHILD RPC ON RPC.REQ_ID=A.REQ_ID AND RPC.PROCESS_ID=PLRP.ID AND (RPC.STATUS_JOB='C' OR RPC.STATUS_JOB='R')
1705

    
1706
		LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID
1707
		LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID
1708
		LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=RPC.TLNAME
1709
		LEFT JOIN dbo.TL_USER TFM ON TFM.TLNANME=RPC.MAKER_ID
1710
		LEFT JOIN TL_USER TL ON A.USER_APPROVAL = TL.TLNANME
1711
		OUTER APPLY
1712
		(
1713
			SELECT [dbo].[FN_PL_REQUEST_DOC_GET_NEXT_USER](A.REQ_ID, @MENU_PERMISSION) NGUOIXULY, '' NGUOIXULYTLNAME
1714
		) NXL
1715
		WHERE 1 = 1 AND ((@p_IS_TRANSFER = 'N' AND PLRP.STATUS IN ('C','R')) OR (@p_IS_TRANSFER = 'Y' AND PLRP.STATUS = 'P') OR @p_IS_TRANSFER IS NULL OR @p_IS_TRANSFER = '')
1716
		AND (A.BRANCH_ID = @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
1717
		AND (@p_REQ_CODE IS NULL OR @p_REQ_CODE = '' OR A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%')
1718
		AND (@p_REQ_ID IS NULL OR @p_REQ_ID = '' OR A.REQ_ID LIKE '%' + @p_REQ_ID + '%')
1719
		AND (@p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0 OR A.TOTAL_AMT=@p_TOTAL_AMT)
1720
		AND (@p_MAKER_ID IS NULL OR @p_MAKER_ID = '' OR A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%')
1721
		AND (@p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '' OR A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%')
1722
		AND	(@p_CREATE_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_CREATE_DT,103)) = 0) 
1723
		AND	(@p_APPROVE_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_APPROVE_DT,103)) = 0) 
1724
		AND	(@p_REQ_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_REQ_DT,103)) = 0) 
1725
		AND ((EXISTS(SELECT ID FROM dbo.PL_REQUEST_PROCESS_CHILD WHERE TLNAME=@p_TLNAME_USER AND TYPE_JOB='KS' AND PL_REQUEST_PROCESS_CHILD.PROCESS_ID=PLRP.ID))
1726
		        OR EXISTS(SELECT AUTH.ROLE_DISPLAYNAME FROM #AUTHOR_DVDM AUTH WHERE AUTH.ROLE_DISPLAYNAME=PLRP.ROLE_USER
1727
		            AND (PLRP.DVDM_ID=AUTH.DVDM_ID OR ((PLRP.DVDM_ID ='' OR PLRP.DVDM_ID  IS NULL) AND (PLRP.BRANCH_ID IS NULL OR PLRP.BRANCH_ID=''))))
1728
		)
1729
		AND(@p_FR_DATE IS NULL OR @p_REQ_ID IS NOT NULL OR CONVERT(DATETIME,A.CREATE_DT,103) >= CONVERT(DATETIME,@p_FR_DATE,103))
1730
		AND(@p_TO_DATE IS NULL OR CONVERT(DATETIME,A.CREATE_DT,103) <= CONVERT(DATETIME,@p_TO_DATE,103))
1731
		AND(@p_YEAR IS NULL OR @p_YEAR=0  OR YEAR(A.CREATE_DT)=@p_YEAR)	
1732
			AND (@p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = ''
1733
		  OR (@p_AUTH_STATUS='A' AND  PLRP.STATUS='P') OR( @p_AUTH_STATUS='U' AND (PLRP.STATUS='C'))
1734
		)
1735
			AND (NOT EXISTS(SELECT ID FROM dbo.PL_REQUEST_PROCESS_CHILD PRRC WHERE PRRC.PROCESS_ID=PLRP.ID AND PRRC.STATUS_JOB='C' AND PRRC.TYPE_JOB='TP' AND PRRC.REQ_ID=@p_REQ_ID))
1736
				AND (@p_IS_TRANSFER = '' OR @p_IS_TRANSFER IS NULL
1737
				OR (((RPC.REQ_ID IS NOT NULL AND RPC.REQ_ID <> '' AND (RPC.MAKER_ID =@p_TLNAME_USER OR @p_ROLE_USER ='KSV')) OR (EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID = A.REQ_ID AND CHECKER_ID=@p_TLNAME_USER))) AND @p_IS_TRANSFER = 'Y')
1738
				OR (
1739
						(@p_ROLE_USER ='KSV' AND ISNULL(RPC.REQ_ID,'') = '') OR (@p_ROLE_USER<> 'KSV' AND (ISNULL(RPC.REQ_ID,'') = '' OR (ISNULL(RPC.REQ_ID,'') <> '' AND RPC.MAKER_ID <> @p_TLNAME_USER)))
1740
								AND @p_IS_TRANSFER = 'N')
1741
		)
1742
		AND(@p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = ''
1743
      OR NXL.NGUOIXULYTLNAME LIKE '%' + @p_NGUOIXULY  + '%' 
1744
			OR NXL.NGUOIXULY LIKE '%' + @p_NGUOIXULY  + '%'
1745
    )
1746
	ORDER BY A.CREATE_DT DESC
1747
	-- PAGING END
1748
	END
1749
   END -- PAGING
1750
--17062025_secretkey