Project

General

Profile

fix_tim_totrinh.txt

Luc Tran Van, 06/17/2025 02:23 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'