Project

General

Profile

PL_REQUEST_DOC_Search.txt

Luc Tran Van, 10/26/2022 09:06 AM

 
1

    
2
ALTER PROCEDURE [dbo].[PL_REQUEST_DOC_Search]
3
@p_REQ_ID	varchar(15)  = NULL,
4
@p_REQ_CODE	nvarchar(100)  = NULL,
5
@p_REQ_NAME	nvarchar(200)  = NULL,
6
@p_REQ_DT	varchar(20) = NULL,
7
@p_REQ_TYPE	int = NULL,
8
@p_REQ_CONTENT NVARCHAR(1000)=NULL,
9
@p_REQ_REASON NVARCHAR(500)=NULL,
10
@p_TOTAL_AMT	decimal = NULL,
11
@p_NOTES	nvarchar(1000)  = NULL,
12
@p_RECORD_STATUS	varchar(1)  = NULL,
13
@p_MAKER_ID	varchar(12)  = NULL,
14
@p_CREATE_DT	varchar(20) = NULL,
15
@p_AUTH_STATUS	varchar(50)  = NULL,
16
@p_CHECKER_ID	varchar(12)  = NULL,
17
@p_APPROVE_DT	varchar(20) = NULL,
18
@p_PROCESS_ID varchar(15) = NULL,
19
@p_BRANCH_ID VARCHAR(15)=NULL,
20
@p_DEP_ID VARCHAR(15) = NULL,
21
@p_BRANCH_LOGIN VARCHAR(15),
22
@p_ROLE_USER VARCHAR(20),
23
@p_TLNAME_USER VARCHAR(15),
24
@p_FR_DATE varchar(20) = NULL,
25
@p_TO_DATE varchar(20) = NULL,
26
@p_TYPE_TRANFER VARCHAR(15),
27
@p_TYPE VARCHAR(15),
28
@p_YEAR INT,
29
@p_TOP	INT = 10,
30
@p_IS_TRANSFER VARCHAR(10) = NULL,
31
@p_NGUOIXULY NVARCHAR(15) = NULL
32
AS
33
BEGIN -- PAGING
34

    
35
	DECLARE @TABLE_ROLE TABLE 
36
	( ROLE_ID VARCHAR(20))
37
	INSERT INTO @TABLE_ROLE VALUES(@p_ROLE_USER)
38

    
39
	
40
	INSERT INTO @TABLE_ROLE
41
	SELECT ROLE_NEW FROM dbo.TL_SYS_ROLE_MAPPING WHERE ROLE_OLD=@p_ROLE_USER
42
	
43

    
44

    
45
	DECLARE @DEP_ID VARCHAR(15),@BRANCH_TYPE VARCHAR(15)
46
	
47
	DECLARE
48
	@COST_ID TABLE (
49
		COST_ID VARCHAR(15)
50
	)
51

    
52
	DECLARE @DVDM_ID TABLE (
53
		DVDM_ID VARCHAR(15)
54
	)
55
	SET @DEP_ID =(SELECT SECUR_CODE FROM dbo.TL_USER WHERE TLNANME=@p_TLNAME_USER)
56
	SET @BRANCH_TYPE=(SELECT BRANCH_TYPE FROM dbo.CM_BRANCH WHERE BRANCH_ID=@p_BRANCH_LOGIN)
57

    
58

    
59
	IF(EXISTS(SELECT DEP_CODE FROM dbo.CM_DEPARTMENT WHERE DEP_ID=@DEP_ID AND DEP_CODE LIKE '069%'))
60
	BEGIN
61
		SET @BRANCH_TYPE='HS'
62
	END
63

    
64

    
65

    
66
	DECLARE @AUTHOR TABLE
67
	(
68
		ROLE_ID VARCHAR(100),
69
		BRANCH_ID VARCHAR(20),
70
		DEP_ID VARCHAR(20)
71
	)
72
	DECLARE @AUTHOR_DVDM TABLE
73
	(
74
		ROLE_ID VARCHAR(100),
75
		BRANCH_ID VARCHAR(20),
76
		DEP_ID VARCHAR(20),
77
		DVDM_ID VARCHAR(20)
78
	)
79
	INSERT INTO @AUTHOR
80
	(
81
	    ROLE_ID,
82
	    BRANCH_ID,
83
	    DEP_ID
84
	)
85
	SELECT RoleName,TLSUBBRID,SECUR_CODE FROM dbo.TL_USER TU
86
	WHERE TLNANME=@p_TLNAME_USER
87
	UNION ALL
88
	SELECT TM.ROLE_NEW RoleName,TLSUBBRID,SECUR_CODE FROM dbo.TL_USER TU
89
	LEFT JOIN dbo.TL_SYS_ROLE_MAPPING TM ON TM.ROLE_OLD=TU.RoleName AND( TM.TLNAME IS NULL OR TM.TLNAME='')
90
	WHERE TLNANME=@p_TLNAME_USER AND TM.ROLE_NEW IS NOT NULL
91
	UNION ALL
92
	SELECT TM1.ROLE_NEW RoleName,TM1.BRANCH_ID TLSUBBRID,TM1.DEP_ID SECUR_CODE FROM dbo.TL_SYS_ROLE_MAPPING TM1
93
	WHERE TM1.TLNAME=@p_TLNAME_USER AND CAST(TM1.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
94
	UNION ALL
95
	SELECT TM.ROLE_NEW RoleName,TM1.BRANCH_ID TLSUBBRID,TM1.DEP_ID SECUR_CODE FROM dbo.TL_SYS_ROLE_MAPPING TM1
96
	LEFT JOIN dbo.TL_SYS_ROLE_MAPPING TM ON TM.ROLE_OLD=TM1.ROLE_NEW AND( TM.TLNAME IS NULL OR TM.TLNAME='')
97
	WHERE TM1.TLNAME=@p_TLNAME_USER AND CAST(TM1.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
98

    
99
	INSERT INTO @AUTHOR_DVDM
100
	(
101
	    ROLE_ID,
102
	    BRANCH_ID,
103
	    DEP_ID,
104
	    DVDM_ID
105
	)
106
	SELECT TU.RoleName,TU.TLSUBBRID,TU.SECUR_CODE,PC.DVDM_ID FROM dbo.TL_USER TU 
107
	LEFT JOIN dbo.PL_COSTCENTER_DT DT ON DT.BRANCH_ID=TU.TLSUBBRID AND DT.DEP_ID=TU.SECUR_CODE
108
	LEFT JOIN dbo.PL_COSTCENTER PC ON PC.COST_ID=DT.COST_ID
109
	WHERE TU.TLNANME=@p_TLNAME_USER
110
	UNION ALL
111
	SELECT TM.ROLE_NEW RoleName,TU.TLSUBBRID,TU.SECUR_CODE,PC.DVDM_ID FROM dbo.TL_USER TU 
112
	LEFT JOIN dbo.PL_COSTCENTER_DT DT ON DT.BRANCH_ID=TU.TLSUBBRID AND DT.DEP_ID=TU.SECUR_CODE
113
	LEFT JOIN dbo.PL_COSTCENTER PC ON PC.COST_ID=DT.COST_ID
114
	LEFT JOIN dbo.TL_SYS_ROLE_MAPPING TM ON TM.ROLE_OLD=TU.RoleName AND( TM.TLNAME IS NULL OR TM.TLNAME='')
115
	WHERE TU.TLNANME=@p_TLNAME_USER AND TM.ROLE_NEW IS NOT NULL
116
	UNION ALL
117
	SELECT TU.ROLE_NEW RoleName,TU.BRANCH_ID TLSUBBRID,TU.DEP_ID SECUR_CODE,PC.DVDM_ID FROM dbo.TL_SYS_ROLE_MAPPING TU 
118
	LEFT JOIN dbo.PL_COSTCENTER_DT DT ON DT.BRANCH_ID=TU.BRANCH_ID AND DT.DEP_ID=TU.DEP_ID
119
	LEFT JOIN dbo.PL_COSTCENTER PC ON PC.COST_ID=DT.COST_ID
120
	WHERE TU.TLNAME=@p_TLNAME_USER AND CAST(EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
121
	UNION ALL
122
	SELECT TM.ROLE_NEW RoleName,TU.BRANCH_ID TLSUBBRID,TU.DEP_ID SECUR_CODE,PC.DVDM_ID FROM dbo.TL_SYS_ROLE_MAPPING TU 
123
	LEFT JOIN dbo.PL_COSTCENTER_DT DT ON DT.BRANCH_ID=TU.BRANCH_ID AND DT.DEP_ID=TU.DEP_ID
124
	LEFT JOIN dbo.PL_COSTCENTER PC ON PC.COST_ID=DT.COST_ID
125
	LEFT JOIN dbo.TL_SYS_ROLE_MAPPING TM ON TM.ROLE_OLD=TU.ROLE_NEW AND( TM.TLNAME IS NULL OR TM.TLNAME='')
126
	WHERE TU.TLNAME=@p_TLNAME_USER AND CAST(TU.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)	
127

    
128
	INSERT INTO @COST_ID
129
	SELECT COST_ID FROM dbo.PL_COSTCENTER_DT WHERE DEP_ID=@DEP_ID AND BRANCH_ID=@p_BRANCH_LOGIN
130
	INSERT INTO @DVDM_ID
131
	SELECT DVDM_ID FROM dbo.PL_COSTCENTER WHERE COST_ID IN (SELECT COST_ID FROM @COST_ID) GROUP BY DVDM_ID
132

    
133
	---- NGUOI XU lY TIEP THEO 18022021
134
			DECLARE @lstREQUEST TABLE (
135
			REQ_ID VARCHAR(20),
136
			PROCESS_ID VARCHAR(50),
137
			DVDM_NAME NVARCHAR(200),
138
			TLNAME VARCHAR(200),
139
			TLFullName NVARCHAR(200),
140
			NOTES NVARCHAR(200)
141
		)
142
		INSERT INTO @lstREQUEST
143
		( REQ_ID,PROCESS_ID, DVDM_NAME,TLNAME,TLFullName, NOTES)
144
		    SELECT distinct PL.REQ_ID,PL.PROCESS_ID,CASE WHEN CD.DVDM_NAME IS NOT NULL AND CD.DVDM_NAME <> '' THEN CD.DVDM_NAME ELSE BR.BRANCH_NAME END AS DVDM_NAME,TempU.TLNANME AS TLNAME,TempU.TLFullName,PL.NOTES FROM 
145
		(
146
      SELECT REQ_ID,PROCESS_ID,NOTES,ROLE_USER,BRANCH_ID,DEP_ID,STATUS,DVDM_ID
147
      FROM dbo.PL_REQUEST_PROCESS PRC
148
      WHERE PRC.STATUS = 'C'
149
        AND EXISTS(SELECT PLRD.REQ_ID FROM dbo.PL_REQUEST_DOC PLRD WHERE PLRD.REQ_ID=PRC.REQ_ID) 
150
        AND PRC.STATUS='C' AND PRC.PROCESS_ID <>'APPROVE' AND PRC.PROCESS_ID <>'SIGN'
151
        AND (PRC.IS_HAS_CHILD = 0  OR PRC.IS_HAS_CHILD IS NULL)
152
    ) PL
153
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=PL.DVDM_ID
154
		LEFT JOIN 
155
		(
156
  		SELECT TU.TLNANME,TU.TLFullName,TU.RoleName,Temp.DVDM_ID,TU.SECUR_CODE,TU.TLSUBBRID FROM dbo.TL_USER TU 
157
  		LEFT JOIN
158
      (
159
    		SELECT PC.DVDM_ID,PD.DEP_ID,PD.BRANCH_ID
160
        FROM dbo.PL_COSTCENTER PC 
161
    		LEFT JOIN dbo.PL_COSTCENTER_DT PD ON PC.COST_ID=PD.COST_ID
162
      ) Temp ON Temp.DEP_ID=TU.SECUR_CODE AND Temp.BRANCH_ID=TU.TLSUBBRID
163
  		UNION ALL
164
  		SELECT TU.TLNAME,US.TLFullName,TU.ROLE_NEW RoleName,Temp.DVDM_ID,TU.DEP_ID SECUR_CODE,TU.BRANCH_ID TLSUBBRID FROM dbo.TL_SYS_ROLE_MAPPING TU
165
  		LEFT JOIN dbo.TL_USER US ON US.TLNANME=TU.TLNAME
166
  		LEFT JOIN(
167
  		SELECT PC.DVDM_ID,PD.DEP_ID,PD.BRANCH_ID FROM dbo.PL_COSTCENTER PC 
168
  		LEFT JOIN dbo.PL_COSTCENTER_DT PD ON PC.COST_ID=PD.COST_ID) Temp ON Temp.DEP_ID=TU.DEP_ID AND Temp.BRANCH_ID=TU.BRANCH_ID
169
  		WHERE  CAST(TU.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
170
		) TempU ON (TempU.RoleName=PL.ROLE_USER 
171
      OR EXISTS(SELECT ROLE_NEW FROM dbo.TL_SYS_ROLE_MAPPING TM WHERE PL.ROLE_USER = TM.ROLE_NEW AND ROLE_OLD=TempU.RoleName AND (TM.TLNAME IS NULL OR TM.TLNAME='')))  AND (TempU.TLSUBBRID=PL.BRANCH_ID OR PL.BRANCH_ID IS NULL OR PL.BRANCH_ID='') 
172
		AND (TempU.SECUR_CODE=PL.DEP_ID OR PL.DEP_ID IS NULL OR PL.DEP_ID='') 
173
		AND (TempU.DVDM_ID=PL.DVDM_ID OR PL.DVDM_ID IS NULL OR PL.DVDM_ID ='')
174
		LEFT JOIN dbo.PL_REQUEST_DOC RD ON RD.REQ_ID = PL.REQ_ID
175
		LEFT JOIN CM_BRANCH BR ON PL.BRANCH_ID = BR.BRANCH_ID
176
		WHERE PL.STATUS='C' 
177
		UNION ALL
178
		 SELECT distinct PL.REQ_ID,PL.PROCESS_ID, CASE WHEN CD.DVDM_NAME IS NOT NULL AND CD.DVDM_NAME <> '' THEN CD.DVDM_NAME ELSE BR.BRANCH_NAME END AS DVDM_NAME,TempU.TLNANME AS TLNAME,TempU.TLFullName,PL.NOTES FROM 
179
		(
180
      SELECT REQ_ID,PROCESS_ID,NOTES,ROLE_USER,BRANCH_ID,DEP_ID,STATUS,DVDM_ID
181
      FROM dbo.PL_REQUEST_PROCESS PRC WHERE PRC.STATUS = 'C' AND --GIANT 23/12/2021
182
			EXISTS(SELECT PLRD.REQ_ID FROM dbo.PL_REQUEST_DOC PLRD 
183
			WHERE PLRD.REQ_ID=PRC.REQ_ID 
184
		)  AND PRC.STATUS='C' AND PRC.PROCESS_ID <>'APPROVE' AND PRC.PROCESS_ID ='SIGN' AND (PRC.IS_HAS_CHILD = 0  OR PRC.IS_HAS_CHILD IS NULL)) PL
185
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=PL.DVDM_ID
186
		LEFT JOIN 
187
		(
188
		SELECT TU.TLNANME,TU.TLFullName,TU.RoleName,Temp.DVDM_ID,TU.SECUR_CODE,TU.TLSUBBRID FROM dbo.TL_USER TU 
189
		LEFT JOIN(
190
		SELECT PC.DVDM_ID,PD.DEP_ID,PD.BRANCH_ID FROM dbo.PL_COSTCENTER PC 
191
		LEFT JOIN dbo.PL_COSTCENTER_DT PD ON PC.COST_ID=PD.COST_ID) Temp ON Temp.DEP_ID=TU.SECUR_CODE AND Temp.BRANCH_ID=TU.TLSUBBRID
192
		) TempU ON (TempU.RoleName=PL.ROLE_USER  OR EXISTS(SELECT ROLE_NEW FROM dbo.TL_SYS_ROLE_MAPPING TM WHERE PL.ROLE_USER = TM.ROLE_NEW AND TM.ROLE_OLD=TempU.RoleName AND (TM.TLNAME IS NULL OR TM.TLNAME='')))  
193
		AND (TempU.TLSUBBRID=PL.BRANCH_ID OR PL.BRANCH_ID IS NULL OR PL.BRANCH_ID='') 
194
		AND (TempU.SECUR_CODE=PL.DEP_ID OR PL.DEP_ID IS NULL OR PL.DEP_ID='') 
195
		AND (TempU.DVDM_ID=PL.DVDM_ID OR PL.DVDM_ID IS NULL OR PL.DVDM_ID ='')
196
		LEFT JOIN dbo.PL_REQUEST_DOC RD ON RD.REQ_ID = PL.REQ_ID
197
		LEFT JOIN CM_BRANCH BR ON PL.BRANCH_ID = BR.BRANCH_ID
198
		WHERE  STATUS='C' AND (PL.PROCESS_ID = 'SIGN' AND TempU.TLNANME = RD.SIGN_USER)
199

    
200
		UNION ALL
201
		SELECT distinct PL.REQ_ID,PL.PROCESS_ID,CASE WHEN CD.DVDM_NAME IS NOT NULL AND CD.DVDM_NAME <> '' THEN CD.DVDM_NAME ELSE BR.BRANCH_NAME END AS DVDM_NAME,CASE WHEN TempC.ID IS NULL THEN TempU.TLNANME ELSE TU.TLNANME END AS TLNAME,CASE WHEN TempC.ID IS NULL THEN TempU.TLFullName ELSE TU.TLFullName END AS TLFullName,CASE WHEN TempC.ID IS NULL THEN PL.NOTES ELSE TempC.CONTENT END AS NOTES
202
		FROM 
203
		(
204
      SELECT REQ_ID,PROCESS_ID,NOTES,ROLE_USER,BRANCH_ID,DEP_ID,STATUS,IS_HAS_CHILD,DVDM_ID,ID
205
      FROM dbo.PL_REQUEST_PROCESS PRC WHERE 
206
			EXISTS(SELECT PLRD.REQ_ID FROM dbo.PL_REQUEST_DOC PLRD 
207
			WHERE PLRD.REQ_ID=PRC.REQ_ID 
208

    
209
		)  AND PRC.STATUS='C' AND PRC.PROCESS_ID <>'APPROVE' AND PRC.PROCESS_ID <>'SIGN' AND PRC.IS_HAS_CHILD = 1  ) PL
210
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=PL.DVDM_ID
211
		LEFT JOIN CM_BRANCH BR ON PL.BRANCH_ID = BR.BRANCH_ID
212
		LEFT JOIN 
213
		(
214
		SELECT PRC.ID, PRC.PROCESS_ID,PRC.REQ_ID,PRC.TLNAME,AC.CONTENT FROM dbo.PL_REQUEST_PROCESS_CHILD PRC 
215
		LEFT JOIN dbo.CM_ALLCODE AC ON AC.CDVAL=PRC.TYPE_JOB AND AC.CDNAME='JOB_TYPE' AND CDTYPE='REQ'
216
		WHERE (PRC.STATUS_JOB='C' OR PRC.STATUS_JOB='R' )
217
		)TempC ON TempC.PROCESS_ID =PL.ID AND PL.IS_HAS_CHILD=1
218
		LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=TempC.TLNAME
219
		LEFT JOIN 
220
			(
221
				SELECT TU.TLNANME,TU.TLFullName,TU.RoleName,Temp.DVDM_ID,TU.SECUR_CODE,TU.TLSUBBRID FROM dbo.TL_USER TU 
222
				LEFT JOIN(
223
				SELECT PC.DVDM_ID,PD.DEP_ID,PD.BRANCH_ID FROM dbo.PL_COSTCENTER PC 
224
				LEFT JOIN dbo.PL_COSTCENTER_DT PD ON PC.COST_ID=PD.COST_ID) Temp ON Temp.DEP_ID=TU.SECUR_CODE AND Temp.BRANCH_ID=TU.TLSUBBRID
225
				UNION ALL
226
				SELECT TU.TLNAME,US.TLFullName,TU.ROLE_NEW RoleName,Temp.DVDM_ID,TU.DEP_ID SECUR_CODE,TU.BRANCH_ID TLSUBBRID  FROM dbo.TL_SYS_ROLE_MAPPING TU
227
				LEFT JOIN dbo.TL_USER US ON US.TLNANME=TU.TLNAME
228
				LEFT JOIN(
229
				SELECT PC.DVDM_ID,PD.DEP_ID,PD.BRANCH_ID FROM dbo.PL_COSTCENTER PC 
230
				LEFT JOIN dbo.PL_COSTCENTER_DT PD ON PC.COST_ID=PD.COST_ID) Temp ON Temp.DEP_ID=TU.DEP_ID AND Temp.BRANCH_ID=TU.BRANCH_ID
231
				WHERE  CAST(TU.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
232
			) TempU ON (TempU.RoleName=PL.ROLE_USER  OR EXISTS(SELECT ROLE_NEW FROM dbo.TL_SYS_ROLE_MAPPING TM WHERE PL.ROLE_USER = TM.ROLE_NEW AND ROLE_OLD=TempU.RoleName AND (TM.TLNAME IS NULL OR TM.TLNAME=''))) AND (TempU.TLSUBBRID=PL.BRANCH_ID OR PL.BRANCH_ID IS NULL OR PL.BRANCH_ID='') 
233
			AND (TempU.SECUR_CODE=PL.DEP_ID OR PL.DEP_ID IS NULL OR PL.DEP_ID='') 
234
			AND (TempU.DVDM_ID=PL.DVDM_ID OR PL.DVDM_ID IS NULL OR PL.DVDM_ID ='')
235
		WHERE  PL.STATUS='C'
236
		----- GIANT 23/12/2021
237
		IF(@p_FR_DATE IS NULL)
238
		BEGIN
239
			SET @p_FR_DATE = GETDATE()
240
			SET @p_FR_DATE = DATEADD(YEAR,-1,@p_FR_DATE)
241
		END
242
		-----
243
	IF(@p_TYPE='DVKD')
244
	BEGIN	
245
		-- PAGING BEGIN
246
		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,
247
               A.TOTAL_AMT AS TOTAL_AMT,A.NOTES, A.RECORD_STATUS,A.MAKER_ID,A.CREATE_DT,A.AUTH_STATUS,A.CHECKER_ID,
248
			   UDV.TLFullName AS CHECKER_NAME_DV,
249
			   A.APPROVE_DT,
250
               A.PROCESS_ID,
251
			   --D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME_DV,
252
			   --CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt'
253
			   --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,
254
			   CASE WHEN A.PROCESS_ID='APPROVE' OR A.AUTH_STATUS ='A' THEN N'Đã duyệt'
255
			   ELSE D.AUTH_STATUS_NAME END AS AUTH_STATUS_NAME,
256
			   G.BRANCH_CODE,
257
			   CASE WHEN A.BRANCH_CREATE <> 'DV0001' THEN G.BRANCH_NAME ELSE G.BRANCH_NAME+' - ' + DEP.DEP_NAME END AS BRANCH_NAME,
258
			   UP.TLFullName AS CHECKER_NAME_PROCESS,
259
			   RP.APPROVE_DT AS APPROVE_DT_PROCESS,
260
			   UC.TLFullName AS MAKER_NAME,
261
			   RPN.PROCESS_ID AS PROCESS_ID_NEXT,
262
			   RP.ROLE_USER, 
263
			   RP.NOTES AS PROCESS_STATUS , 
264
			   RPN.NOTES AS PROCESS_STATUS_NEXT,
265
			   A.DVDM_APP_ID,
266
			   CD.DVDM_NAME AS DVDM_APP_NAME,
267
			   A.REQ_PARENT_ID,
268
			   PARENT.REQ_NAME AS REQ_PARENT_NAME,
269
			   PARENT.REQ_CODE AS REQ_PARENT_CODE,
270
			   PARENT.TOTAL_AMT AS REQ_PARENT_AMT,
271
			   A.BRANCH_FEE,
272
			   A.DEP_ID,
273
			   A.DEP_FEE,
274
			   DEP.DEP_NAME,
275
			   DEP.DEP_CODE,
276
			   BF.BRANCH_NAME AS BRANCH_FEE_NAME,
277
			   BF.BRANCH_CODE AS BRANCH_FEE_CODE,
278
			   DF.DEP_NAME AS DEP_FEE_NAME,
279
			   DF.DEP_CODE AS DEP_FEE_CODE,
280
			   '' AS BRANCH_DEP,
281
			   '' AS BRANCH_DEP_FEE,
282
			   
283

    
284

    
285
			   '' AS TYPE_JOB,
286
			   '' AS USER_JOB,
287
			   '' AS USER_JOB_NAME,
288
			   '' AS TRANSFER_MAKER,
289
			    A.CREATE_DT AS TRANFER_DT ,
290
				'' AS TRANSFER_MAKER_ID,
291
			   A.EFFEC_DT,A.IS_BACKDAY,
292
			   '' AS TYPE_JOB_XL,
293
			   '' AS USER_JOB_XL,
294
			   RP.ID AS REF_ID,
295
			   RPN.STATUS AS STATUS_NEXT,
296
			   RP.STATUS AS STATUS_CURR,
297
			   '' AS STATUS_JOB,
298
			   A.BRANCH_CREATE,
299
			   A.DEP_CREATE,
300
			   A.REQ_LINE,
301
			   A.TC_NOTES,
302
			   A.SIGN_USER,
303
			   TL.TLFullName AS SIGN_USER_NAME,
304
			   A.KT_NOTES,
305
			   A.IS_CHECKALL,
306
			   A.BASED_CONTENT,
307
			   A.PL_BASED_ID, PL_B.REQ_CODE AS PL_BASED_CODE, PL_B.REQ_CONTENT AS PL_BASED_CONTENT, 
308
			   '' AS IS_TRANSFER,
309
			   --NGUOI XU LY
310
			  NXL.NGUOIXULY AS NGUOIXULY, A.TK_HDQT_NOTES, A.TK_TGD_NOTES, A.OTHER_NOTES
311
			 -- SELECT END 
312
		FROM PL_REQUEST_DOC A 	
313
		--LEFT JOIN	dbo.PL_REQUEST_PROCESS PLRP ON PLRP.REQ_ID=A.REQ_ID  AND PLRP.STATUS <>'U'
314
		LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
315
		LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID
316
		LEFT JOIN dbo.CM_DEPARTMENT DEP ON DEP.DEP_ID=A.DEP_ID
317

    
318
		LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE
319
		LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE
320

    
321
		LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID
322
	
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 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)
326
		LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID
327
		LEFT JOIN dbo.TL_USER UC ON UC.TLNANME=A.MAKER_ID
328
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=A.DVDM_APP_ID
329
		LEFT JOIN dbo.PL_REQUEST_DOC PARENT ON PARENT.REQ_ID=A.REQ_PARENT_ID
330
		LEFT JOIN dbo.PL_REQUEST_DOC PL_B ON PL_B.REQ_ID=A.PL_BASED_ID
331
		LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME
332
		LEFT JOIN
333
		(
334
		
335
			SELECT	Results.REQ_ID,STUFF((select ', ' + RE.TLFullName  
336
			FROM @lstREQUEST RE
337
			WHERE RE.REQ_ID=Results.REQ_ID
338
			FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULY,
339
			STUFF((select ', ' + RE.TLNAME  
340
			FROM @lstREQUEST RE
341
			WHERE RE.REQ_ID=Results.REQ_ID
342
			FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULYTLNAME	
343
			FROM @lstREQUEST Results
344
			GROUP BY REQ_ID
345
		) NXL ON NXL.REQ_ID=A.REQ_ID
346

    
347
		WHERE 1 = 1
348
		
349
	    AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
350
		AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '')
351
		AND (A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '')
352
		AND (A.REQ_REASON LIKE '%' + @p_REQ_REASON + '%' OR @p_REQ_REASON IS NULL OR @p_REQ_REASON = '')
353
		AND (A.TOTAL_AMT=@p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0)
354
		AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')	
355
		AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
356
		AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
357
		
358

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

    
361

    
362
		AND	(@p_CREATE_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_CREATE_DT,103)) = 0) 
363
		AND	(@p_APPROVE_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_APPROVE_DT,103)) = 0) 
364
		AND	(@p_REQ_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_REQ_DT,103)) = 0) 
365
		AND (A.REQ_TYPE = @p_REQ_TYPE OR @p_REQ_TYPE IS NULL OR @p_REQ_TYPE =-1)
366
		AND A.RECORD_STATUS = '1'
367
		
368
		AND(
369
			@p_REQ_TYPE = -1  OR @p_REQ_TYPE IS NULL
370
			OR
371
				(
372
					@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)
373
				)
374
				OR
375
				(
376
						@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)
377
				)
378
			)
379

    
380
		AND    (A.MAKER_ID=@p_TLNAME_USER
381
        OR (A.PROCESS_ID ='APPROVE' AND A.BRANCH_CREATE=@p_BRANCH_LOGIN AND (A.DEP_CREATE=@DEP_ID OR @BRANCH_TYPE<>'HS'))
382
				OR EXISTS(SELECT ID FROM dbo.PL_ROLE_DATA_CONFIG WHERE ROLE_TYPE='PL_REQUEST_DOC_ALL' AND BRANCH_ID=@p_TLNAME_USER )
383
				OR EXISTS(SELECT * FROM dbo.PL_REQUEST_PROCESS PLRP WHERE PLRP.PROCESS_ID='APPNEW' AND PLRP.REQ_ID=A.REQ_ID
384
																			AND EXISTS(SELECT AUTH.ROLE_ID FROM @AUTHOR AUTH WHERE AUTH.ROLE_ID=PLRP.ROLE_USER AND AUTH.BRANCH_ID=PLRP.BRANCH_ID 
385
																														AND(PLRP.DEP_ID=AUTH.DEP_ID OR PLRP.DEP_ID IS NULL OR PLRP.DEP_ID ='') ))
386
			--	
387
				
388
				--OR (EXISTS(SELECT * FROM dbo.PL_REQUEST_PROCESS PLRP WHERE A.REQ_ID=PLRP.REQ_ID AND PLRP.PROCESS_ID='APPNEW' 
389
				--												AND PLRP.ROLE_USER IN (SELECT ROLE_ID FROM @TABLE_ROLE) AND PLRP.BRANCH_ID=@p_BRANCH_LOGIN 
390
				--												AND (PLRP.DEP_ID=@DEP_ID OR PLRP.DEP_ID IS NULL OR PLRP.DEP_ID =''))) 
391
			--
392

    
393

    
394
		OR(A.SIGN_USER IS NOT NULL AND A.SIGN_USER <>'' AND A.SIGN_USER  =@p_TLNAME_USER AND A.AUTH_STATUS<>'E'))
395
		--
396
		--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 = '')
397
		--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 ='')))))
398
		--
399
		--AND (A.AUTH_STATUS = @p_AUTH_STATUS OR @p_AUTH_STATUS ='' OR @p_AUTH_STATUS IS NULL)
400
		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'))
401
			OR (@p_AUTH_STATUS ='E' AND A.AUTH_STATUS =@p_AUTH_STATUS)
402
			OR (@p_AUTH_STATUS ='R' AND A.AUTH_STATUS =@p_AUTH_STATUS)
403
			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'))
404
			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'))
405
			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'))
406
			OR (@p_AUTH_STATUS ='' OR @p_AUTH_STATUS IS NULL)
407
		)
408
		AND(@p_FR_DATE IS NULL OR CONVERT(DATETIME,A.REQ_DT,103) >= CONVERT(DATETIME,@p_FR_DATE,103))
409
		AND(@p_TO_DATE IS NULL OR CONVERT(DATETIME,A.REQ_DT,103) <= CONVERT(DATETIME,@p_TO_DATE,103))	
410
		AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR)	
411
		AND( NXL.NGUOIXULYTLNAME LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = ''
412
			OR NXL.NGUOIXULY LIKE '%' + @p_NGUOIXULY  + '%')
413

    
414
		AND (A.BRANCH_ID = @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
415
		AND (A.DEP_ID = @p_DEP_ID OR @p_DEP_ID IS NULL OR @p_DEP_ID = '')
416
		
417
		-- GIANT 26/10/2021
418
		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))
419

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

    
423
		ORDER BY A.CREATE_DT DESC
424
	-- PAGING END
425
	END
426
	ELSE IF(@p_TYPE='PDTT')
427
	BEGIN
428
		-- PAGING BEGIN
429
		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,
430
               A.TOTAL_AMT AS TOTAL_AMT,A.NOTES, A.RECORD_STATUS,A.MAKER_ID,A.CREATE_DT,A.AUTH_STATUS,A.CHECKER_ID,
431

    
432
			   UDV.TLFullName AS CHECKER_NAME_DV,
433
			  
434
			   A.APPROVE_DT,
435
               A.PROCESS_ID,
436
			   D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME_DV,
437
			   CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt'
438
			   ELSE N'Chờ duyệt' END AS AUTH_STATUS_NAME,
439
			   G.BRANCH_CODE,
440
			   G.BRANCH_NAME,
441
			   UP.TLFullName AS CHECKER_NAME_PROCESS,
442
			   RP.APPROVE_DT AS APPROVE_DT_PROCESS,
443
			   UC.TLFullName AS MAKER_NAME,
444
			   RPN.PROCESS_ID AS PROCESS_ID_NEXT,
445
			   RPN.ROLE_USER, 
446
			   RP.NOTES AS PROCESS_STATUS , 
447
			   RPN.NOTES AS PROCESS_STATUS_NEXT,
448
			   A.DVDM_APP_ID,
449
			   CD.DVDM_NAME AS DVDM_APP_NAME,
450
			   A.REQ_PARENT_ID,
451
			   PARENT.REQ_NAME AS REQ_PARENT_NAME,
452
			   PARENT.REQ_CODE AS REQ_PARENT_CODE,
453
			   PARENT.TOTAL_AMT AS REQ_PARENT_AMT,
454
			   A.BRANCH_FEE,
455
			   A.DEP_ID,
456
			   A.DEP_FEE,
457
			   DEP.DEP_NAME,
458
			   DEP.DEP_CODE,
459
			   BF.BRANCH_NAME AS BRANCH_FEE_NAME,
460
			   BF.BRANCH_CODE AS BRANCH_FEE_CODE,
461
			   DF.DEP_NAME AS DEP_FEE_NAME,
462
			   DF.DEP_CODE AS DEP_FEE_CODE,
463
			   '' AS BRANCH_DEP,
464
			   '' AS BRANCH_DEP_FEE,
465
			   
466

    
467

    
468
			   RPC.TYPE_JOB AS TYPE_JOB,
469
			   RPC.TLNAME AS USER_JOB,
470
			   TU.TLFullName AS USER_JOB_NAME,
471
			   TFM.TLNANME AS TRANSFER_MAKER,
472
			    RPC.TRANFER_DT AS TRANFER_DT ,
473
				RPC.MAKER_ID AS TRANSFER_MAKER_ID,
474
			   A.EFFEC_DT,A.IS_BACKDAY,
475
			   '' AS TYPE_JOB_XL,
476
			   '' AS USER_JOB_XL,
477
			   --RP.ID AS REF_ID,
478
			   ISNULL(RP.ID,1) AS REF_ID,
479
			   RPN.STATUS AS STATUS_NEXT,
480
			   PLRP.STATUS AS STATUS_CURR,
481
			    RPC.STATUS_JOB AS STATUS_JOB,
482
			   A.BRANCH_CREATE,
483
			   A.DEP_CREATE,
484
			   A.REQ_LINE,
485
			     A.TC_NOTES,
486
				  A.SIGN_USER,
487
			   TL.TLFullName  AS SIGN_USER_NAME,
488
			   A.KT_NOTES,
489
			     A.IS_CHECKALL,
490
			   A.BASED_CONTENT, 
491
			   '' AS IS_TRANSFER,
492
			   --NGUOI XU LY
493
			   --dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) AS NGUOIXULY
494
			    NXL.NGUOIXULY AS NGUOIXULY,A.TK_TGD_NOTES, A.OTHER_NOTES,A.TK_HDQT_NOTES
495
			-- SELECT END
496
		FROM PL_REQUEST_DOC A 	
497
		INNER JOIN dbo.PL_REQUEST_PROCESS PLRP ON PLRP.REQ_ID=A.REQ_ID AND PLRP.STATUS <>'U'	
498
		LEFT JOIN dbo.PL_REQUEST_PROCESS RPN 
499
		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') )
500
		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)	
501
		LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
502
		LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID
503

    
504
		LEFT JOIN dbo.CM_DEPARTMENT DEP ON DEP.DEP_ID=A.DEP_ID
505
		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')
506
		LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE
507
		LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE
508
		LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID
509
		LEFT JOIN dbo.TL_USER UC ON UC.TLNANME=A.MAKER_ID
510
		LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID
511
		LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=RPC.TLNAME
512
		LEFT JOIN dbo.TL_USER TFM ON TFM.TLNANME=RPC.MAKER_ID
513
		LEFT JOIN dbo.CM_PROCESS_STATUS PS ON PS.PROCESS_ID = A.PROCESS_ID
514
		LEFT JOIN dbo.CM_PROCESS_STATUS PSN ON PSN.PROCESS_ID = A.PROCESS_ID
515
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=A.DVDM_APP_ID
516
		LEFT JOIN dbo.PL_REQUEST_DOC PARENT ON PARENT.REQ_ID=A.REQ_PARENT_ID
517
		LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME
518
		LEFT JOIN
519
		(
520
		
521
		SELECT	Results.REQ_ID,STUFF((select ', ' + RE.TLFullName  
522
		FROM @lstREQUEST RE
523
		WHERE RE.REQ_ID=Results.REQ_ID
524
		FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULY,
525
		STUFF((select ', ' + RE.TLNAME  
526
		FROM @lstREQUEST RE
527
		WHERE RE.REQ_ID=Results.REQ_ID
528
		FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULYTLNAME	
529
		FROM @lstREQUEST Results
530
		GROUP BY REQ_ID
531
		) NXL ON NXL.REQ_ID=A.REQ_ID
532

    
533
		WHERE 1 = 1
534
	  AND (@p_REQ_CODE IS NULL OR @p_REQ_CODE = '' OR A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%')
535
		AND (@p_REQ_ID IS NULL OR @p_REQ_ID = '' OR A.REQ_ID LIKE '%' + @p_REQ_ID + '%')
536
		AND (@p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '' OR A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%')
537
		AND (@p_REQ_REASON IS NULL OR @p_REQ_REASON = '' OR A.REQ_REASON LIKE '%' + @p_REQ_REASON + '%')
538
		AND (@p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0 OR A.TOTAL_AMT=@p_TOTAL_AMT)
539
		AND (@p_REQ_NAME IS NULL OR @p_REQ_NAME = '' OR A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%')	
540
--		AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
541
		AND (@p_MAKER_ID IS NULL OR @p_MAKER_ID = '' OR A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%')
542
		
543
		AND (@p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '' OR A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%')
544
		AND	(@p_CREATE_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_CREATE_DT,103)) = 0) 
545
		AND	(@p_APPROVE_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_APPROVE_DT,103)) = 0) 
546
		AND	(@p_REQ_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_REQ_DT,103)) = 0) 
547
		AND (@p_REQ_TYPE IS NULL OR @p_REQ_TYPE =-1 OR A.REQ_TYPE = @p_REQ_TYPE)
548
		--AND (@p_RECEIVE_BRANCH IS NULL OR A.PO_ID IN (SELECT PO_ID FROM TR_PO_DETAIL WHERE RECEIVE_BRANCH=@p_RECEIVE_BRANCH))
549
		AND A.RECORD_STATUS = '1'
550

    
551
--		AND(@p_REQ_TYPE = -1  OR @p_REQ_TYPE IS NULL
552
--			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))
553
--			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))
554
--    )
555

    
556
		AND EXISTS(SELECT AUTH.ROLE_ID FROM @AUTHOR_DVDM AUTH WHERE AUTH.ROLE_ID=PLRP.ROLE_USER AND (
557
			(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=''))
558
			OR PLRP.DVDM_ID=AUTH.DVDM_ID
559
			OR ((PLRP.DVDM_ID ='' OR PLRP.DVDM_ID  IS NULL) AND (PLRP.BRANCH_ID IS NULL OR PLRP.BRANCH_ID=''))
560
		))
561
		--AND PLRP.ROLE_USER IN (SELECT ROLE_ID FROM @TABLE_ROLE) 
562
		--AND (
563
		--  (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='')) 
564
		--OR ( PLRP.DVDM_ID IN (SELECT DVDM_ID FROM @DVDM_ID))
565
		--OR
566
		--( (PLRP.DVDM_ID ='' OR PLRP.DVDM_ID  IS NULL) AND (PLRP.BRANCH_ID IS NULL OR PLRP.BRANCH_ID=''))	
567
		--)
568
		AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR)	
569
		AND (PLRP.IS_HAS_CHILD=0 OR PLRP.IS_HAS_CHILD IS NULL)
570
		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 = '')
571
		AND(@p_FR_DATE IS NULL OR CONVERT(DATETIME,A.REQ_DT,103) >= CONVERT(DATETIME,@p_FR_DATE,103))
572
		AND(@p_TO_DATE IS NULL OR CONVERT(DATETIME,A.REQ_DT,103) <= CONVERT(DATETIME,@p_TO_DATE,103))	
573
		AND( NXL.NGUOIXULYTLNAME LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = ''
574
			OR NXL.NGUOIXULY LIKE '%' + @p_NGUOIXULY  + '%')
575
		--AND(
576
		--	(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
577
		--	OR
578
		--	(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',1) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
579
		--)
580

    
581
		--AND (A.BRANCH_ID = @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
582
		--AND (A.DEP_ID = @p_DEP_ID OR @p_DEP_ID IS NULL OR @p_DEP_ID = '')
583
		
584
		-- GIANT 26/10/2021
585
		AND (EXISTS (SELECT PL_REQUEST_DOC_DT.REQ_ID FROM PL_REQUEST_DOC_DT WHERE PL_REQUEST_DOC_DT.REQ_ID = A.REQ_ID))
586

    
587
		ORDER BY A.CREATE_DT DESC
588
	-- PAGING END
589
	END
590
	ELSE IF(@p_TYPE='TFJOB')
591
	BEGIN
592
		-- PAGING BEGIN
593
				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,
594
              A.TOTAL_AMT AS TOTAL_AMT,A.NOTES, A.RECORD_STATUS,A.MAKER_ID,A.CREATE_DT,A.AUTH_STATUS,A.CHECKER_ID,
595

    
596
			   UDV.TLFullName AS CHECKER_NAME_DV,
597
			  
598
			   A.APPROVE_DT,
599
               A.PROCESS_ID,
600
			   D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME_DV,
601
			   CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt'
602
			   ELSE N'Chờ duyệt' END AS AUTH_STATUS_NAME,
603
			   G.BRANCH_CODE,
604
			   G.BRANCH_NAME,
605
			   UP.TLFullName AS CHECKER_NAME_PROCESS,
606
			   RP.APPROVE_DT AS APPROVE_DT_PROCESS,
607
			   UC.TLFullName AS MAKER_NAME,
608
			   PLRP.PROCESS_ID AS PROCESS_ID_NEXT,
609
			   RP.ROLE_USER, 
610
			   RP.NOTES AS PROCESS_STATUS , 
611
			   PLRP.NOTES AS PROCESS_STATUS_NEXT,
612
			   A.DVDM_APP_ID,
613
			   CD.DVDM_NAME AS DVDM_APP_NAME,
614
			   A.REQ_PARENT_ID,
615
			   PARENT.REQ_NAME AS REQ_PARENT_NAME,
616
			   PARENT.REQ_CODE AS REQ_PARENT_CODE,
617
			   PARENT.TOTAL_AMT AS REQ_PARENT_AMT,
618
			   A.BRANCH_FEE,
619
			   A.DEP_ID,
620
			   A.DEP_FEE,
621
			   DEP.DEP_NAME,
622
			   DEP.DEP_CODE,
623
			   BF.BRANCH_NAME AS BRANCH_FEE_NAME,
624
			   BF.BRANCH_CODE AS BRANCH_FEE_CODE,
625
			   DF.DEP_NAME AS DEP_FEE_NAME,
626
			   DF.DEP_CODE AS DEP_FEE_CODE,
627
			   '' AS BRANCH_DEP,
628
			   '' AS BRANCH_DEP_FEE,
629
			  CASE WHEN RPC.TYPE_JOB IS NULL OR RPC.TYPE_JOB ='' THEN 'TP' ELSE RPC.TYPE_JOB END AS TYPE_JOB,
630
			   RPC.TLNAME AS USER_JOB,
631
			   TU.TLFullName AS USER_JOB_NAME,
632
			   TFM.TLNANME AS TRANSFER_MAKER,
633
			    RPC.TRANFER_DT AS TRANFER_DT ,
634
				RPC.MAKER_ID AS TRANSFER_MAKER_ID,
635
			   A.EFFEC_DT,A.IS_BACKDAY,
636
			   '' AS TYPE_JOB_XL,
637
			   '' AS USER_JOB_XL,
638
			   PLRP.ID AS REF_ID,
639
			   PLRP.STATUS AS STATUS_NEXT,
640
			   PLRP.STATUS AS STATUS_CURR,
641
			    RPC.STATUS_JOB AS STATUS_JOB,
642
			   A.BRANCH_CREATE,
643
			   A.DEP_CREATE,
644
			   A.REQ_LINE,
645
			   A.TC_NOTES,
646
			   A.SIGN_USER,
647
			   TL.TLFULLNAME AS SIGN_USER_NAME,
648
			   A.KT_NOTES,
649
			     A.IS_CHECKALL,
650
			   A.BASED_CONTENT, 
651
			   '' AS IS_TRANSFER,
652
			  --NGUOI XU LY
653
			 -- dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) AS NGUOIXULY
654
			  NXL.NGUOIXULY AS NGUOIXULY,A.TK_TGD_NOTES,A.TK_HDQT_NOTES, A.OTHER_NOTES
655
			  --PLQ.TLFullName CHECKER_NAME_DV 
656
			-- SELECT END
657
		FROM PL_REQUEST_DOC A 	
658
		INNER JOIN dbo.PL_REQUEST_PROCESS PLRP ON PLRP.REQ_ID=A.REQ_ID AND PLRP.STATUS = 'C' AND PLRP.IS_HAS_CHILD=1
659
		--LEFT JOIN dbo.PL_REQUEST_PROCESS PLRP ON PLRP.REQ_ID=A.REQ_ID AND PLRP.STATUS = 'C' AND PLRP.IS_HAS_CHILD=1
660
--		LEFT JOIN dbo.PL_REQUEST_PROCESS RPN 
661
--		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') )
662
		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)	
663
		LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
664
		LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID
665
		LEFT JOIN dbo.CM_DEPARTMENT DEP ON DEP.DEP_ID=A.DEP_ID
666

    
667
		LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE
668
		LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE
669
		LEFT JOIN dbo.TL_USER UC ON UC.TLNANME=A.MAKER_ID
670
		LEFT JOIN dbo.CM_PROCESS_STATUS PS ON PS.PROCESS_ID = A.PROCESS_ID
671
		LEFT JOIN dbo.CM_PROCESS_STATUS PSN ON PSN.PROCESS_ID = A.PROCESS_ID
672
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=A.DVDM_APP_ID
673
		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')
674
		
675
		LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID
676
	
677
		LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID
678
		LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=RPC.TLNAME
679
		LEFT JOIN dbo.TL_USER TFM ON TFM.TLNANME=RPC.MAKER_ID
680
		LEFT JOIN dbo.PL_REQUEST_DOC PARENT ON PARENT.REQ_ID=A.REQ_PARENT_ID
681
		LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME
682
		LEFT JOIN
683
		(
684
		
685
			SELECT	Results.REQ_ID,STUFF((select ', ' + RE.TLFullName  
686
			FROM @lstREQUEST RE
687
			WHERE RE.REQ_ID=Results.REQ_ID
688
			FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULY,
689
			STUFF((select ', ' + RE.TLNAME  
690
			FROM @lstREQUEST RE
691
			WHERE RE.REQ_ID=Results.REQ_ID
692
			FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULYTLNAME	
693
			FROM @lstREQUEST Results
694
			GROUP BY REQ_ID
695
		) NXL ON NXL.REQ_ID=A.REQ_ID
696
		-- GIANT
697
		--LEFT JOIN (
698
		--	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
699
			
700
		--) PLQ ON A.REQ_ID = PLQ.REQ_ID
701
		WHERE 1 = 1
702
		AND (@p_REQ_CODE IS NULL OR @p_REQ_CODE = '' OR A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%')
703
		AND (@p_REQ_ID IS NULL OR @p_REQ_ID = '' OR A.REQ_ID LIKE '%' + @p_REQ_ID + '%')
704
		AND (@p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '' OR A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%')
705
		AND (@p_REQ_REASON IS NULL OR @p_REQ_REASON = '' OR A.REQ_REASON LIKE '%' + @p_REQ_REASON + '%')
706
		AND (@p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0 OR A.TOTAL_AMT=@p_TOTAL_AMT)
707
		AND (@p_REQ_NAME IS NULL OR @p_REQ_NAME = '' OR A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%')	
708
--		AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
709
		AND (@p_MAKER_ID IS NULL OR @p_MAKER_ID = '' OR A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%')
710
		
711
		AND (@p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '' OR A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%')
712
		AND	(@p_CREATE_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_CREATE_DT,103)) = 0) 
713
		AND	(@p_APPROVE_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_APPROVE_DT,103)) = 0) 
714
		AND	(@p_REQ_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_REQ_DT,103)) = 0) 
715
		AND (@p_REQ_TYPE IS NULL OR @p_REQ_TYPE =-1 OR A.REQ_TYPE = @p_REQ_TYPE)
716
		--AND (@p_RECEIVE_BRANCH IS NULL OR A.PO_ID IN (SELECT PO_ID FROM TR_PO_DETAIL WHERE RECEIVE_BRANCH=@p_RECEIVE_BRANCH))
717
		AND A.RECORD_STATUS = '1'
718
--
719
--
720
--		AND(@p_REQ_TYPE = -1  OR @p_REQ_TYPE IS NULL
721
--			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))
722
--			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))
723
--    )
724
--
725
--
726
--		
727
    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))
728
      OR EXISTS(SELECT AUTH.ROLE_ID FROM @AUTHOR_DVDM AUTH WHERE AUTH.ROLE_ID=PLRP.ROLE_USER
729
      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=''))
730
  			OR PLRP.DVDM_ID=AUTH.DVDM_ID
731
  			OR ((PLRP.DVDM_ID ='' OR PLRP.DVDM_ID  IS NULL) AND (PLRP.BRANCH_ID IS NULL OR PLRP.BRANCH_ID=''))))
732
    )
733
		AND(@p_FR_DATE IS NULL
734
      OR CONVERT(DATETIME,A.REQ_DT,103) >= CONVERT(DATETIME,@p_FR_DATE,103)
735
    )
736
		AND(@p_TO_DATE IS NULL
737
      OR CONVERT(DATETIME,A.REQ_DT,103) <= CONVERT(DATETIME,@p_TO_DATE,103)
738
    )
739
		AND(@p_YEAR IS NULL OR @p_YEAR=0
740
      OR YEAR(A.REQ_DT)=@p_YEAR
741
    )	
742
		AND (@p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = ''
743
      OR (@p_AUTH_STATUS='A' AND  PLRP.STATUS='P') OR( @p_AUTH_STATUS='U' AND (PLRP.STATUS='C'))
744
    )
745
		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'))
746
			AND (@p_IS_TRANSFER = '' OR @p_IS_TRANSFER IS NULL
747
			OR ((RPC.REQ_ID IS NOT NULL AND RPC.REQ_ID <> '' AND (RPC.MAKER_ID =@p_TLNAME_USER OR @p_ROLE_USER ='KSV')) 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
748
			OR (
749
					(@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)))
750
							AND @p_IS_TRANSFER = 'N')
751
    )
752
		AND(@p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = ''
753
      OR NXL.NGUOIXULYTLNAME LIKE '%' + @p_NGUOIXULY  + '%' 
754
			OR NXL.NGUOIXULY LIKE '%' + @p_NGUOIXULY  + '%'
755
    )
756
--
757
--		---- GIANT 26/10/2021
758
		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))
759

    
760
		---- GIANT 
761
		--AND (A.BRANCH_CREATE = @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
762
		--AND (A.DEP_CREATE = @p_DEP_ID OR @p_DEP_ID IS NULL OR @p_DEP_ID = '')
763

    
764
	ORDER BY A.CREATE_DT DESC
765
	-- PAGING END
766
	END
767
	ELSE IF(@p_TYPE='XLTT')
768
	BEGIN
769
	-- PAGING BEGIN		
770
				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,
771
             A.TOTAL_AMT AS TOTAL_AMT,A.NOTES, A.RECORD_STATUS,A.MAKER_ID,A.CREATE_DT,A.AUTH_STATUS,A.CHECKER_ID,
772

    
773
			   UDV.TLFullName AS CHECKER_NAME_DV,
774
			  
775
			   A.APPROVE_DT,
776
               A.PROCESS_ID,
777
			   D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME_DV,
778
			   CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt'
779
			   ELSE N'Chờ duyệt' END AS AUTH_STATUS_NAME,
780
			   G.BRANCH_CODE,
781
			   CASE WHEN A.BRANCH_CREATE <> 'DV0001' THEN G.BRANCH_NAME ELSE G.BRANCH_NAME+' - ' + DEP.DEP_NAME END AS BRANCH_NAME,
782
			   UP.TLFullName AS CHECKER_NAME_PROCESS,
783
			   RP.APPROVE_DT AS APPROVE_DT_PROCESS,
784
			   UC.TLFullName AS MAKER_NAME,
785
			   RPN.PROCESS_ID AS PROCESS_ID_NEXT,
786
			   RPN.ROLE_USER, 
787
			   RP.NOTES AS PROCESS_STATUS , 
788
			   RPN.NOTES AS PROCESS_STATUS_NEXT,
789
			   A.DVDM_APP_ID,
790
			   CD.DVDM_NAME AS DVDM_APP_NAME,
791
			   A.REQ_PARENT_ID,
792
			   PARENT.REQ_NAME AS REQ_PARENT_NAME,
793
			   PARENT.REQ_CODE AS REQ_PARENT_CODE,
794
			   PARENT.TOTAL_AMT AS REQ_PARENT_AMT,
795
			   A.BRANCH_FEE,
796
			   A.DEP_ID,
797
			   A.DEP_FEE,
798
			   DEP.DEP_NAME,
799
			   DEP.DEP_CODE,
800
			   BF.BRANCH_NAME AS BRANCH_FEE_NAME,
801
			   BF.BRANCH_CODE AS BRANCH_FEE_CODE,
802
			   DF.DEP_NAME AS DEP_FEE_NAME,
803
			   DF.DEP_CODE AS DEP_FEE_CODE,
804
			   '' AS BRANCH_DEP,
805
			   '' AS BRANCH_DEP_FEE,
806
			   
807

    
808

    
809
			   RPC.TYPE_JOB AS TYPE_JOB,
810
			   RPC.TLNAME AS USER_JOB,
811
			   TU.TLFullName AS USER_JOB_NAME,
812
			   TFM.TLNANME AS TRANSFER_MAKER,
813
			    RPC.TRANFER_DT AS TRANFER_DT ,
814
				RPC.MAKER_ID AS TRANSFER_MAKER_ID,
815
			   A.EFFEC_DT,A.IS_BACKDAY,
816
			   '' AS TYPE_JOB_XL,
817
			   '' AS USER_JOB_XL,
818
			   PLRP.ID AS REF_ID,
819
			   RPN.STATUS AS STATUS_NEXT,
820
			   PLRP.STATUS AS STATUS_CURR,
821
			   RPC.STATUS_JOB AS STATUS_JOB,
822
			   A.BRANCH_CREATE,
823
			   A.DEP_CREATE,
824
			   A.REQ_LINE,
825
			   A.TC_NOTES,
826
			   A.SIGN_USER, TL.TLFullName AS SIGN_USER_NAME,
827
			   A.KT_NOTES,
828
			     A.IS_CHECKALL,
829
			   A.BASED_CONTENT, 
830
			   '' AS IS_TRANSFER,
831
			   --NGUOI XU LY
832
			   --dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) AS NGUOIXULY
833
			    NXL.NGUOIXULY AS NGUOIXULY,A.TK_TGD_NOTES, A.OTHER_NOTES,A.TK_HDQT_NOTES
834
			-- SELECT END
835
		FROM PL_REQUEST_DOC A 	
836
		INNER JOIN dbo.PL_REQUEST_PROCESS PLRP ON PLRP.REQ_ID=A.REQ_ID AND PLRP.STATUS <> 'U' AND PLRP.IS_HAS_CHILD=1
837
		LEFT JOIN dbo.PL_REQUEST_PROCESS RPN 
838
		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') )
839
		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)	
840
		LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
841
		LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID
842
		LEFT JOIN dbo.CM_DEPARTMENT DEP ON DEP.DEP_ID=A.DEP_ID
843

    
844
		LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE
845
		LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE
846
		LEFT JOIN dbo.TL_USER UC ON UC.TLNANME=A.MAKER_ID
847
		LEFT JOIN dbo.CM_PROCESS_STATUS PS ON PS.PROCESS_ID = A.PROCESS_ID
848
		LEFT JOIN dbo.CM_PROCESS_STATUS PSN ON PSN.PROCESS_ID = A.PROCESS_ID
849
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=A.DVDM_APP_ID
850
		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')
851
		
852
		LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID
853
	
854
		LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID
855
		LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=RPC.TLNAME
856
		LEFT JOIN dbo.TL_USER TFM ON TFM.TLNANME=RPC.MAKER_ID
857
		LEFT JOIN dbo.PL_REQUEST_DOC PARENT ON PARENT.REQ_ID=A.REQ_PARENT_ID
858
		LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME
859
		LEFT JOIN
860
		(
861
		
862
		SELECT	Results.REQ_ID,STUFF((select ', ' + RE.TLFullName  
863
		FROM @lstREQUEST RE
864
		WHERE RE.REQ_ID=Results.REQ_ID
865
		FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULY,
866
		STUFF((select ', ' + RE.TLNAME  
867
		FROM @lstREQUEST RE
868
		WHERE RE.REQ_ID=Results.REQ_ID
869
		FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULYTLNAME	
870
		FROM @lstREQUEST Results
871
		GROUP BY REQ_ID
872
		) NXL ON NXL.REQ_ID=A.REQ_ID
873

    
874
		WHERE 1 = 1
875
    AND (@p_REQ_CODE IS NULL OR @p_REQ_CODE = '' OR A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%')
876
		AND (@p_REQ_ID IS NULL OR @p_REQ_ID = '' OR A.REQ_ID LIKE '%' + @p_REQ_ID + '%')
877
		AND (@p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '' OR A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%')
878
		AND (@p_REQ_REASON IS NULL OR @p_REQ_REASON = '' OR A.REQ_REASON LIKE '%' + @p_REQ_REASON + '%')
879
		AND (@p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0 OR A.TOTAL_AMT=@p_TOTAL_AMT)
880
		AND (@p_REQ_NAME IS NULL OR @p_REQ_NAME = '' OR A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%')	
881
--		AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
882
		AND (@p_MAKER_ID IS NULL OR @p_MAKER_ID = '' OR A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%')
883
		
884
		AND (@p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '' OR A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%')
885
		AND	(@p_CREATE_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_CREATE_DT,103)) = 0) 
886
		AND	(@p_APPROVE_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_APPROVE_DT,103)) = 0) 
887
		AND	(@p_REQ_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_REQ_DT,103)) = 0) 
888
		AND (@p_REQ_TYPE IS NULL OR @p_REQ_TYPE =-1 OR A.REQ_TYPE = @p_REQ_TYPE)
889
		--AND (@p_RECEIVE_BRANCH IS NULL OR A.PO_ID IN (SELECT PO_ID FROM TR_PO_DETAIL WHERE RECEIVE_BRANCH=@p_RECEIVE_BRANCH))
890
		AND A.RECORD_STATUS = '1'
891

    
892

    
893
--		AND(@p_REQ_TYPE = -1  OR @p_REQ_TYPE IS NULL
894
--			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))
895
--			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))
896
--    )
897

    
898

    
899
		
900
		AND(EXISTS(SELECT ID FROM dbo.PL_REQUEST_PROCESS_CHILD WHERE TLNAME=@p_TLNAME_USER  AND PL_REQUEST_PROCESS_CHILD.PROCESS_ID=PLRP.ID)
901
			OR EXISTS(SELECT AUTH.ROLE_ID FROM @AUTHOR_DVDM AUTH WHERE AUTH.ROLE_ID=PLRP.ROLE_USER
902
        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=''))
903
				  OR PLRP.DVDM_ID=AUTH.DVDM_ID
904
				  OR ((PLRP.DVDM_ID ='' OR PLRP.DVDM_ID  IS NULL) AND (PLRP.BRANCH_ID IS NULL OR PLRP.BRANCH_ID='')))
905
        )
906
	  )
907
		AND(@p_FR_DATE IS NULL OR CONVERT(DATETIME,A.REQ_DT,103) >= CONVERT(DATETIME,@p_FR_DATE,103))
908
		AND(@p_TO_DATE IS NULL OR CONVERT(DATETIME,A.REQ_DT,103) <= CONVERT(DATETIME,@p_TO_DATE,103))	
909
		AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR)		
910
		AND (@p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = ''
911
      OR ( @p_AUTH_STATUS='TDV_APPROVED' AND  PLRP.STATUS='P')
912
			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'))
913
			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'))
914
			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'))
915
    ) 
916
	
917
		AND(@p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = ''
918
      OR NXL.NGUOIXULYTLNAME LIKE '%' + @p_NGUOIXULY  + '%'
919
			OR NXL.NGUOIXULY LIKE '%' + @p_NGUOIXULY  + '%'
920
    )
921
		--AND(
922
		--	(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
923
		--	OR
924
		--	(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',1) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
925
		--)
926

    
927
		--
928
		AND (@p_BRANCH_ID IS NULL OR @p_BRANCH_ID = ''
929
      OR A.BRANCH_ID = @p_BRANCH_ID
930
    )
931
		AND (@p_DEP_ID IS NULL OR @p_DEP_ID = ''
932
      OR A.DEP_ID = @p_DEP_ID
933
    )
934
		-- LUCTV 10 03 2021 BO SUNG DIEU KIENN NEU PHIEU CHUA DUOC DIEU PHOI THI SE KHONG TIM THAY O MAN HINH DVCM
935
		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'))) 
936
			OR (@p_NGUOIXULY IS NOT NULL AND @p_NGUOIXULY <> ''))
937

    
938
		-- GIANT 26/10/2021
939
		AND (EXISTS (SELECT PL_REQUEST_DOC_DT.REQ_ID FROM PL_REQUEST_DOC_DT WHERE PL_REQUEST_DOC_DT.REQ_ID = A.REQ_ID))
940
	ORDER BY A.CREATE_DT DESC
941
	-- PAGING END
942
	END
943
	ELSE IF(@p_TYPE='DVKD_PARENT')
944
	BEGIN
945
	-- PAGING BEGIN
946
		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,
947
              A.TOTAL_AMT AS TOTAL_AMT,A.NOTES, A.RECORD_STATUS,A.MAKER_ID,A.CREATE_DT,A.AUTH_STATUS,A.CHECKER_ID,
948
			   UDV.TLFullName AS CHECKER_NAME_DV,
949
			   A.APPROVE_DT,
950
               A.PROCESS_ID,
951
			   D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME_DV,
952

    
953
			   CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt'
954
			   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,
955

    
956
			   --CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt'
957
			   --ELSE N'Chờ duyệt' END AS AUTH_STATUS_NAME,
958
			   G.BRANCH_CODE,
959
			   G.BRANCH_NAME,
960
			   UP.TLFullName AS CHECKER_NAME_PROCESS,
961
			   RP.APPROVE_DT AS APPROVE_DT_PROCESS,
962
			   UC.TLFullName AS MAKER_NAME,
963
			   RPN.PROCESS_ID AS PROCESS_ID_NEXT,
964
			   RP.ROLE_USER, 
965
			   RP.NOTES AS PROCESS_STATUS , 
966
			   RPN.NOTES AS PROCESS_STATUS_NEXT,
967
			   A.DVDM_APP_ID,
968
			   CD.DVDM_NAME AS DVDM_APP_NAME,
969
			   A.REQ_PARENT_ID,
970
			   PARENT.REQ_NAME AS REQ_PARENT_NAME,
971
			   PARENT.REQ_CODE AS REQ_PARENT_CODE,
972
			   PARENT.TOTAL_AMT AS REQ_PARENT_AMT,
973
			   A.BRANCH_FEE,
974
			   A.DEP_ID,
975
			   A.DEP_FEE,
976
			   DEP.DEP_NAME,
977
			   DEP.DEP_CODE,
978
			   BF.BRANCH_NAME AS BRANCH_FEE_NAME,
979
			   BF.BRANCH_CODE AS BRANCH_FEE_CODE,
980
			   DF.DEP_NAME AS DEP_FEE_NAME,
981
			   DF.DEP_CODE AS DEP_FEE_CODE,
982
			   '' AS BRANCH_DEP,
983
			   '' AS BRANCH_DEP_FEE,
984
			   '' AS TYPE_JOB,
985
			   '' AS USER_JOB,
986
			   '' AS USER_JOB_NAME,
987
			   '' AS TRANSFER_MAKER,
988
			    A.CREATE_DT AS TRANFER_DT ,
989
				'' AS TRANSFER_MAKER_ID,
990
			   A.EFFEC_DT,A.IS_BACKDAY,
991
			   '' AS TYPE_JOB_XL,
992
			   '' AS USER_JOB_XL,
993
			   --RP.ID AS REF_ID,
994
			   0 AS REF_ID,
995
			   RPN.STATUS AS STATUS_NEXT,
996
			   RP.STATUS AS STATUS_CURR,
997
			   '' AS STATUS_JOB,
998
			   A.BRANCH_CREATE,
999
			   A.DEP_CREATE,
1000
			   A.REQ_LINE,
1001
			   A.TC_NOTES, A.SIGN_USER, TL.TLFullName AS SIGN_USER_NAME,
1002
			   A.KT_NOTES,
1003
			   A.BASED_CONTENT, 
1004
			   A.IS_CHECKALL,
1005
			   -- GIANT 23/12/2021
1006
			   A.PL_BASED_ID, PL_B.REQ_CODE AS PL_BASED_CODE, PL_B.REQ_CONTENT AS PL_BASED_CONTENT, 
1007
			   '' AS IS_TRANSFER,
1008
			   --NGUOI XU LY
1009
			   --dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) AS NGUOIXULY
1010
			    NXL.NGUOIXULY AS NGUOIXULY,A.TK_TGD_NOTES, A.OTHER_NOTES,A.TK_HDQT_NOTES,
1011
				(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
1012
		-- SELECT END
1013
		FROM PL_REQUEST_DOC A 		
1014
		LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
1015
		LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID
1016
		LEFT JOIN dbo.CM_DEPARTMENT DEP ON DEP.DEP_ID=A.DEP_ID
1017

    
1018
		LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE
1019
		LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE
1020

    
1021
		LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID
1022
	
1023
		LEFT JOIN dbo.PL_REQUEST_PROCESS RPN 
1024
		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') )
1025
		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)
1026
		LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID
1027
		LEFT JOIN dbo.TL_USER UC ON UC.TLNANME=A.MAKER_ID
1028
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=A.DVDM_APP_ID
1029
		LEFT JOIN dbo.PL_REQUEST_DOC PARENT ON PARENT.REQ_ID=A.REQ_PARENT_ID
1030
		-- GIANT 23/12/2021
1031
		LEFT JOIN dbo.PL_REQUEST_DOC PL_B ON PL_B.REQ_ID=A.PL_BASED_ID
1032

    
1033
		LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME
1034
		LEFT JOIN
1035
		(
1036
		
1037
		SELECT	Results.REQ_ID,STUFF((select ', ' + RE.TLFullName  
1038
		FROM @lstREQUEST RE
1039
		WHERE RE.REQ_ID=Results.REQ_ID
1040
		FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULY,
1041
		STUFF((select ', ' + RE.TLNAME  
1042
		FROM @lstREQUEST RE
1043
		WHERE RE.REQ_ID=Results.REQ_ID
1044
		FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULYTLNAME	
1045
		FROM @lstREQUEST Results
1046
		GROUP BY REQ_ID
1047
		) NXL ON NXL.REQ_ID=A.REQ_ID
1048
		WHERE 1 = 1
1049
		
1050
	    --AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
1051
		--AND ((A.BRANCH_CREATE = @p_BRANCH_LOGIN AND( A.DEP_CREATE=@DEP_ID OR @BRANCH_TYPE <>'HS')) OR A.IS_CHECKALL=1)
1052
		--AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR)	
1053
		--AND (ISNULL(A.PROCESS_ID,'') ='APPROVE')	
1054

    
1055
		--AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '')
1056
		--AND (A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '')
1057
		--AND (A.REQ_REASON LIKE '%' + @p_REQ_REASON + '%' OR @p_REQ_REASON IS NULL OR @p_REQ_REASON = '')
1058
		--AND (A.TOTAL_AMT=@p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0)
1059
		--AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')	
1060
		--AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
1061
		--AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
1062
	
1063
		--AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
1064
		--AND	(@p_CREATE_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_CREATE_DT,103)) = 0) 
1065
		--AND	(@p_APPROVE_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_APPROVE_DT,103)) = 0) 
1066
		--AND	(@p_REQ_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_REQ_DT,103)) = 0) 
1067
		--AND A.RECORD_STATUS = '1'
1068
		
1069
		AND (A.REQ_TYPE = @p_REQ_TYPE OR @p_REQ_TYPE IS NULL OR @p_REQ_TYPE =-1)
1070
		AND(
1071
			@p_REQ_TYPE = -1  OR @p_REQ_TYPE IS NULL
1072
			OR
1073
				(
1074
					@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)
1075
				)
1076
				OR
1077
				(
1078
					@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)
1079
				)
1080
			)
1081

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

    
1084
		--AND(@p_FR_DATE IS NULL OR CONVERT(DATETIME,A.REQ_DT,103) >= CONVERT(DATETIME,@p_FR_DATE,103))
1085
		--AND(@p_TO_DATE IS NULL OR CONVERT(DATETIME,A.REQ_DT,103) <= CONVERT(DATETIME,@p_TO_DATE,103))	
1086
		--AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR)	
1087
		--AND(A.REQ_PARENT_ID IS NULL OR A.REQ_PARENT_ID='')
1088
		--AND( NXL.NGUOIXULYTLNAME LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = ''
1089
		--	OR NXL.NGUOIXULY LIKE '%' + @p_NGUOIXULY  + '%')
1090
		--AND(
1091
		--	(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
1092
		--	OR
1093
		--	(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',1) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
1094
		--)
1095

    
1096
		--AND (A.BRANCH_ID = @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
1097
		--AND (A.DEP_ID = @p_DEP_ID OR @p_DEP_ID IS NULL OR @p_DEP_ID = '')
1098
		--AND (A.MAKER_ID = @p_TLNAME_USER)
1099

    
1100
		AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
1101
		AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')	
1102
		--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)
1103
		----------BAODNQ 25/10/2022 : FIX POPUP TÌM KIẾM TTCT Ở PYCMS--------------------
1104
		----------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Ở-----
1105
		AND (
1106
			(A.BRANCH_CREATE = @p_BRANCH_LOGIN 
1107
				AND( A.DEP_CREATE=@DEP_ID OR @BRANCH_TYPE <>'HS')
1108
			) 
1109
			OR A.IS_CHECKALL=1 OR A.MAKER_ID =@p_TLNAME_USER
1110
		)
1111
		---------------------------------END BAODNQ-------------------------
1112
		AND(@p_FR_DATE IS NULL OR CONVERT(DATETIME,A.REQ_DT,103) >= CONVERT(DATETIME,@p_FR_DATE,103))
1113
		AND(@p_TO_DATE IS NULL OR CONVERT(DATETIME,A.REQ_DT,103) <= CONVERT(DATETIME,@p_TO_DATE,103))	
1114
		AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR)		
1115
		AND (ISNULL(A.PROCESS_ID,'') ='APPROVE')
1116

    
1117
		ORDER BY A.CREATE_DT DESC
1118
	-- PAGING END
1119
	END
1120
	ELSE IF(@p_TYPE='DVKD_ISALL')
1121
	BEGIN	
1122
	-- PAGING BEGIN
1123
		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,
1124
              A.TOTAL_AMT AS TOTAL_AMT,A.NOTES, A.RECORD_STATUS,A.MAKER_ID,A.CREATE_DT,A.AUTH_STATUS,A.CHECKER_ID,
1125
			   UDV.TLFullName AS CHECKER_NAME_DV,
1126
			   A.APPROVE_DT,
1127
               A.PROCESS_ID,
1128
			   D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME_DV,
1129
			   CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt'
1130
			   ELSE N'Chờ duyệt' END AS AUTH_STATUS_NAME,
1131
			   G.BRANCH_CODE,
1132
			   G.BRANCH_NAME,
1133
			   UP.TLFullName AS CHECKER_NAME_PROCESS,
1134
			   RP.APPROVE_DT AS APPROVE_DT_PROCESS,
1135
			   UC.TLFullName AS MAKER_NAME,
1136
			   RPN.PROCESS_ID AS PROCESS_ID_NEXT,
1137
			   RP.ROLE_USER, 
1138
			   RP.NOTES AS PROCESS_STATUS , 
1139
			   RPN.NOTES AS PROCESS_STATUS_NEXT,
1140
			   A.DVDM_APP_ID,
1141
			   CD.DVDM_NAME AS DVDM_APP_NAME,
1142
			   A.REQ_PARENT_ID,
1143
			   PARENT.REQ_NAME AS REQ_PARENT_NAME,
1144
			   PARENT.REQ_CODE AS REQ_PARENT_CODE,
1145
			   PARENT.TOTAL_AMT AS REQ_PARENT_AMT,
1146
			   A.BRANCH_FEE,
1147
			   A.DEP_ID,
1148
			   A.DEP_FEE,
1149
			   DEP.DEP_NAME,
1150
			   DEP.DEP_CODE,
1151
			   BF.BRANCH_NAME AS BRANCH_FEE_NAME,
1152
			   BF.BRANCH_CODE AS BRANCH_FEE_CODE,
1153
			   DF.DEP_NAME AS DEP_FEE_NAME,
1154
			   DF.DEP_CODE AS DEP_FEE_CODE,
1155
			   '' AS BRANCH_DEP,
1156
			   '' AS BRANCH_DEP_FEE,
1157
			   
1158

    
1159

    
1160
			   '' AS TYPE_JOB,
1161
			   '' AS USER_JOB,
1162
			   '' AS USER_JOB_NAME,
1163
			   '' AS TRANSFER_MAKER,
1164
			    A.CREATE_DT AS TRANFER_DT ,
1165
				'' AS TRANSFER_MAKER_ID,
1166
			   A.EFFEC_DT,A.IS_BACKDAY,
1167
			   '' AS TYPE_JOB_XL,
1168
			   '' AS USER_JOB_XL,
1169
			   RP.ID AS REF_ID,
1170
			   RPN.STATUS AS STATUS_NEXT,
1171
			   RP.STATUS AS STATUS_CURR,
1172
			   '' AS STATUS_JOB,
1173
			   A.BRANCH_CREATE,
1174
			   A.DEP_CREATE,
1175
			   A.REQ_LINE,
1176
			   A.TC_NOTES, A.SIGN_USER, TL.TLFullName AS SIGN_USER_NAME,
1177
			   A.KT_NOTES,
1178
			     A.IS_CHECKALL,
1179
			   A.BASED_CONTENT, 
1180
			   '' AS IS_TRANSFER,
1181
			   --NGUOI XU LY
1182
			   --dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) AS NGUOIXULY
1183
			    NXL.NGUOIXULY AS NGUOIXULY,A.TK_TGD_NOTES, A.OTHER_NOTES,A.TK_HDQT_NOTES
1184
			-- SELECT END
1185
		FROM PL_REQUEST_DOC A 		
1186
		LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
1187
		LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID
1188
		LEFT JOIN dbo.CM_DEPARTMENT DEP ON DEP.DEP_ID=A.DEP_ID
1189

    
1190
		LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE
1191
		LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE
1192

    
1193
		LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID
1194
	
1195
		LEFT JOIN dbo.PL_REQUEST_PROCESS RPN 
1196
		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') )
1197
		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)
1198
		LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID
1199
		LEFT JOIN dbo.TL_USER UC ON UC.TLNANME=A.MAKER_ID
1200
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=A.DVDM_APP_ID
1201
		LEFT JOIN dbo.PL_REQUEST_DOC PARENT ON PARENT.REQ_ID=A.REQ_PARENT_ID
1202
		LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME
1203
		LEFT JOIN
1204
		(
1205
		
1206
		SELECT	Results.REQ_ID,STUFF((select ', ' + RE.TLFullName  
1207
		FROM @lstREQUEST RE
1208
		WHERE RE.REQ_ID=Results.REQ_ID
1209
		FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULY,
1210
		STUFF((select ', ' + RE.TLNAME  
1211
		FROM @lstREQUEST RE
1212
		WHERE RE.REQ_ID=Results.REQ_ID
1213
		FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULYTLNAME	
1214
		FROM @lstREQUEST Results
1215
		GROUP BY REQ_ID
1216
		) NXL ON NXL.REQ_ID=A.REQ_ID
1217
		WHERE 1 = 1
1218
		
1219
	    AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
1220
		AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '')
1221
		AND (A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '')
1222
		AND (A.REQ_REASON LIKE '%' + @p_REQ_REASON + '%' OR @p_REQ_REASON IS NULL OR @p_REQ_REASON = '')
1223
		AND (A.TOTAL_AMT=@p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0)
1224
		AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')	
1225
		AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
1226
		AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
1227
	
1228
		AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
1229
		AND	(@p_CREATE_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_CREATE_DT,103)) = 0) 
1230
		AND	(@p_APPROVE_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_APPROVE_DT,103)) = 0) 
1231
		AND	(@p_REQ_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_REQ_DT,103)) = 0) 
1232
		AND (A.REQ_TYPE = @p_REQ_TYPE OR @p_REQ_TYPE IS NULL OR @p_REQ_TYPE =-1)
1233
		AND A.RECORD_STATUS = '1'
1234
		
1235
		AND(
1236
			@p_REQ_TYPE = -1  OR @p_REQ_TYPE IS NULL
1237
			OR
1238
				(
1239
					@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)
1240
				)
1241
				OR
1242
				(
1243
						@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)
1244
				)
1245
			)
1246

    
1247
		AND A.IS_CHECKALL=1
1248

    
1249
		AND A.PROCESS_ID='APPROVE'
1250
		AND(@p_FR_DATE IS NULL OR CONVERT(DATETIME,A.REQ_DT,103) >= CONVERT(DATETIME,@p_FR_DATE,103))
1251
		AND(@p_TO_DATE IS NULL OR CONVERT(DATETIME,A.REQ_DT,103) <= CONVERT(DATETIME,@p_TO_DATE,103))	
1252
		AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR)	
1253
		AND(A.REQ_PARENT_ID IS NULL OR A.REQ_PARENT_ID='')
1254
			AND( NXL.NGUOIXULYTLNAME LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = ''
1255
			OR NXL.NGUOIXULY LIKE '%' + @p_NGUOIXULY  + '%')
1256
		--AND(
1257
		--	(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
1258
		--	OR
1259
		--	(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',1) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
1260
		--)
1261

    
1262
		--AND (A.BRANCH_ID = @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
1263
		--AND (A.DEP_ID = @p_DEP_ID OR @p_DEP_ID IS NULL OR @p_DEP_ID = '')
1264
		
1265
		-- GIANT 26/10/2021
1266
		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))
1267

    
1268
		ORDER BY A.CREATE_DT DESC
1269
	-- PAGING END
1270
	END
1271
	ELSE IF(@p_TYPE='TTCT_DVCM')
1272
	BEGIN	
1273
	-- PAGING BEGIN
1274
		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,
1275
              A.TOTAL_AMT AS TOTAL_AMT,A.NOTES, A.RECORD_STATUS,A.MAKER_ID,A.CREATE_DT,A.AUTH_STATUS,A.CHECKER_ID,
1276
			   UDV.TLFullName AS CHECKER_NAME_DV,
1277
			   A.APPROVE_DT,
1278
               A.PROCESS_ID,
1279
			   D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME_DV,
1280
			   CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt'
1281
			   ELSE N'Chờ duyệt' END AS AUTH_STATUS_NAME,
1282
			   G.BRANCH_CODE,
1283
			   G.BRANCH_NAME,
1284
			   UP.TLFullName AS CHECKER_NAME_PROCESS,
1285
			   RP.APPROVE_DT AS APPROVE_DT_PROCESS,
1286
			   UC.TLFullName AS MAKER_NAME,
1287
			   RPN.PROCESS_ID AS PROCESS_ID_NEXT,
1288
			   RP.ROLE_USER, 
1289
			   RP.NOTES AS PROCESS_STATUS , 
1290
			   RPN.NOTES AS PROCESS_STATUS_NEXT,
1291
			   A.DVDM_APP_ID,
1292
			   CD.DVDM_NAME AS DVDM_APP_NAME,
1293
			   A.REQ_PARENT_ID,
1294
			   PARENT.REQ_NAME AS REQ_PARENT_NAME,
1295
			   PARENT.REQ_CODE AS REQ_PARENT_CODE,
1296
			   PARENT.TOTAL_AMT AS REQ_PARENT_AMT,
1297
			   A.BRANCH_FEE,
1298
			   A.DEP_ID,
1299
			   A.DEP_FEE,
1300
			   DEP.DEP_NAME,
1301
			   DEP.DEP_CODE,
1302
			   BF.BRANCH_NAME AS BRANCH_FEE_NAME,
1303
			   BF.BRANCH_CODE AS BRANCH_FEE_CODE,
1304
			   DF.DEP_NAME AS DEP_FEE_NAME,
1305
			   DF.DEP_CODE AS DEP_FEE_CODE,
1306
			   '' AS BRANCH_DEP,
1307
			   '' AS BRANCH_DEP_FEE,
1308
			   
1309

    
1310

    
1311
			   '' AS TYPE_JOB,
1312
			   '' AS USER_JOB,
1313
			   '' AS USER_JOB_NAME,
1314
			   '' AS TRANSFER_MAKER,
1315
			    A.CREATE_DT AS TRANFER_DT ,
1316
				'' AS TRANSFER_MAKER_ID,
1317
			   A.EFFEC_DT,A.IS_BACKDAY,
1318
			   '' AS TYPE_JOB_XL,
1319
			   '' AS USER_JOB_XL,
1320
			   RP.ID AS REF_ID,
1321
			   RPN.STATUS AS STATUS_NEXT,
1322
			   RP.STATUS AS STATUS_CURR,
1323
			   '' AS STATUS_JOB,
1324
			   A.BRANCH_CREATE,
1325
			   A.DEP_CREATE,
1326
			   A.REQ_LINE,
1327
			   A.TC_NOTES, A.SIGN_USER, TL.TLFullName AS SIGN_USER_NAME,
1328
			   A.KT_NOTES,
1329
			     A.IS_CHECKALL,
1330
			   A.BASED_CONTENT, 
1331
			   '' AS IS_TRANSFER,
1332
			   --NGUOI XU LY
1333
			   --dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) AS NGUOIXULY
1334
			    NXL.NGUOIXULY AS NGUOIXULY,A.TK_TGD_NOTES, A.OTHER_NOTES,A.TK_HDQT_NOTES
1335
		-- SELECT END
1336
		FROM PL_REQUEST_DOC A 		
1337
		LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
1338
		LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID
1339
		LEFT JOIN dbo.CM_DEPARTMENT DEP ON DEP.DEP_ID=A.DEP_ID
1340

    
1341
		LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE
1342
		LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE
1343

    
1344
		LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID
1345
	
1346
		LEFT JOIN dbo.PL_REQUEST_PROCESS RPN 
1347
		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') )
1348
		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)
1349
		LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID
1350
		LEFT JOIN dbo.TL_USER UC ON UC.TLNANME=A.MAKER_ID
1351
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=A.DVDM_APP_ID
1352
		LEFT JOIN dbo.PL_REQUEST_DOC PARENT ON PARENT.REQ_ID=A.REQ_PARENT_ID
1353
		LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME
1354
		LEFT JOIN
1355
		(
1356
		
1357
		SELECT	Results.REQ_ID,STUFF((select ', ' + RE.TLFullName  
1358
		FROM @lstREQUEST RE
1359
		WHERE RE.REQ_ID=Results.REQ_ID
1360
		FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULY,
1361
		STUFF((select ', ' + RE.TLNAME  
1362
		FROM @lstREQUEST RE
1363
		WHERE RE.REQ_ID=Results.REQ_ID
1364
		FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULYTLNAME	
1365
		FROM @lstREQUEST Results
1366
		GROUP BY REQ_ID
1367
		) NXL ON NXL.REQ_ID=A.REQ_ID
1368
		WHERE 1 = 1
1369
		
1370
	    AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
1371
		AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '')
1372
		AND (A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '')
1373
		AND (A.REQ_REASON LIKE '%' + @p_REQ_REASON + '%' OR @p_REQ_REASON IS NULL OR @p_REQ_REASON = '')
1374
		AND (A.TOTAL_AMT=@p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0)
1375
		AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')	
1376
		AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
1377
		AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
1378
	
1379
		AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
1380
		AND	(@p_CREATE_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_CREATE_DT,103)) = 0) 
1381
		AND	(@p_APPROVE_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_APPROVE_DT,103)) = 0) 
1382
		AND	(@p_REQ_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_REQ_DT,103)) = 0) 	
1383
		AND (A.REQ_TYPE = @p_REQ_TYPE OR @p_REQ_TYPE IS NULL OR @p_REQ_TYPE =-1)
1384
		AND A.RECORD_STATUS = '1'
1385
		
1386
		AND(
1387
			@p_REQ_TYPE = -1  OR @p_REQ_TYPE IS NULL
1388
			OR
1389
				(
1390
					@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)
1391
				)
1392
				OR
1393
				(
1394
						@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)
1395
				)
1396
			)
1397

    
1398
		AND (  
1399
		 EXISTS (SELECT * FROM dbo.PL_REQUEST_COSTCENTER PC WHERE PC.REQ_ID=A.REQ_ID AND EXISTS(SELECT AUTH.ROLE_ID FROM @AUTHOR_DVDM AUTH WHERE AUTH.DVDM_ID=PC.COST_ID) )
1400
		)
1401

    
1402
		AND A.PROCESS_ID='APPROVE'
1403
		AND(@p_FR_DATE IS NULL OR CONVERT(DATETIME,A.REQ_DT,103) >= CONVERT(DATETIME,@p_FR_DATE,103))
1404
		AND(@p_TO_DATE IS NULL OR CONVERT(DATETIME,A.REQ_DT,103) <= CONVERT(DATETIME,@p_TO_DATE,103))	
1405
		AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR)	
1406
		AND(A.REQ_PARENT_ID IS NULL OR A.REQ_PARENT_ID='')
1407
			AND( NXL.NGUOIXULYTLNAME LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = ''
1408
			OR NXL.NGUOIXULY LIKE '%' + @p_NGUOIXULY  + '%')
1409
		--AND(
1410
		--	(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
1411
		--	OR
1412
		--	(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',1) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
1413
		--)
1414

    
1415

    
1416
		--AND (A.BRANCH_ID = @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
1417
		--AND (A.DEP_ID = @p_DEP_ID OR @p_DEP_ID IS NULL OR @p_DEP_ID = '')
1418

    
1419
		-- GIANT 26/10/2021
1420
		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))
1421

    
1422
		ORDER BY A.CREATE_DT DESC
1423
	-- PAGING END
1424
	END
1425
	ELSE IF(@p_TYPE='REQ_PARENT')
1426
	BEGIN	
1427
		-- PAGING BEGIN
1428
		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,
1429
              A.TOTAL_AMT AS TOTAL_AMT,A.NOTES, A.RECORD_STATUS,A.MAKER_ID,A.CREATE_DT,A.AUTH_STATUS,A.CHECKER_ID,
1430
			   UDV.TLFullName AS CHECKER_NAME_DV,
1431
			   A.APPROVE_DT,
1432
               A.PROCESS_ID,
1433
			   D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME_DV,
1434
			   CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt'
1435
			   ELSE N'Chờ duyệt' END AS AUTH_STATUS_NAME,
1436
			G.BRANCH_CODE,
1437
			   G.BRANCH_NAME,
1438
			   UP.TLFullName AS CHECKER_NAME_PROCESS,
1439
			   RP.APPROVE_DT AS APPROVE_DT_PROCESS,
1440
			   UC.TLFullName AS MAKER_NAME,
1441
			   RPN.PROCESS_ID AS PROCESS_ID_NEXT,
1442
			   RP.ROLE_USER, 
1443
			   RP.NOTES AS PROCESS_STATUS , 
1444
			   RPN.NOTES AS PROCESS_STATUS_NEXT,
1445
			   A.DVDM_APP_ID,
1446
			   CD.DVDM_NAME AS DVDM_APP_NAME,
1447
			   A.REQ_PARENT_ID,
1448
			   PARENT.REQ_NAME AS REQ_PARENT_NAME,
1449
			   PARENT.REQ_CODE AS REQ_PARENT_CODE,
1450
			   PARENT.TOTAL_AMT AS REQ_PARENT_AMT,
1451
			   A.BRANCH_FEE,
1452
			   A.DEP_ID,
1453
			   A.DEP_FEE,
1454
			   DEP.DEP_NAME,
1455
			   DEP.DEP_CODE,
1456
			   BF.BRANCH_NAME AS BRANCH_FEE_NAME,
1457
			   BF.BRANCH_CODE AS BRANCH_FEE_CODE,
1458
			   DF.DEP_NAME AS DEP_FEE_NAME,
1459
			   DF.DEP_CODE AS DEP_FEE_CODE,
1460
			   '' AS BRANCH_DEP,
1461
			   '' AS BRANCH_DEP_FEE,
1462
			   
1463
			   '' AS TYPE_JOB,
1464
			   '' AS USER_JOB,
1465
			   '' AS USER_JOB_NAME,
1466
			   '' AS TRANSFER_MAKER,
1467
			    A.CREATE_DT AS TRANFER_DT ,
1468
				'' AS TRANSFER_MAKER_ID,
1469
			   A.EFFEC_DT,A.IS_BACKDAY,
1470
			   '' AS TYPE_JOB_XL,
1471
			   '' AS USER_JOB_XL,
1472
			   RP.ID AS REF_ID,
1473
			   RPN.STATUS AS STATUS_NEXT,
1474
			   RP.STATUS AS STATUS_CURR,
1475
			   '' AS STATUS_JOB,
1476
			   A.BRANCH_CREATE,
1477
			   A.DEP_CREATE,
1478
			   A.REQ_LINE,
1479
			   A.TC_NOTES, A.SIGN_USER, TL.TLFullName AS SIGN_USER_NAME,
1480
			   A.KT_NOTES,
1481
			     A.IS_CHECKALL,
1482
			   A.BASED_CONTENT, 
1483
			   '' AS IS_TRANSFER,
1484
			   --NGUOI XU LY
1485
			   --dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) AS NGUOIXULY
1486
			    NXL.NGUOIXULY AS NGUOIXULY
1487
				,A.TK_TGD_NOTES, A.OTHER_NOTES,A.TK_HDQT_NOTES
1488
		-- SELECT END
1489
		FROM PL_REQUEST_DOC A 		
1490
		LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
1491
		LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID
1492
		LEFT JOIN dbo.CM_DEPARTMENT DEP ON DEP.DEP_ID=A.DEP_ID
1493
		LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE
1494
		LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE
1495
		LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID
1496
	
1497
		LEFT JOIN dbo.PL_REQUEST_PROCESS RPN 
1498
		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') )
1499
		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)
1500
		LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID
1501
		LEFT JOIN dbo.TL_USER UC ON UC.TLNANME=A.MAKER_ID
1502
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=A.DVDM_APP_ID
1503
		LEFT JOIN dbo.PL_REQUEST_DOC PARENT ON PARENT.REQ_ID=A.REQ_PARENT_ID
1504
		LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME
1505
		LEFT JOIN
1506
		(
1507
		
1508
		SELECT	Results.REQ_ID,STUFF((select ', ' + RE.TLFullName  
1509
		FROM @lstREQUEST RE
1510
		WHERE RE.REQ_ID=Results.REQ_ID
1511
		FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULY,
1512
		STUFF((select ', ' + RE.TLNAME  
1513
		FROM @lstREQUEST RE
1514
		WHERE RE.REQ_ID=Results.REQ_ID
1515
		FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULYTLNAME	
1516
		FROM @lstREQUEST Results
1517
		GROUP BY REQ_ID
1518
		) NXL ON NXL.REQ_ID=A.REQ_ID
1519
		WHERE 1 = 1 
1520
		AND A.REQ_PARENT_ID =@p_REQ_ID
1521
		ORDER BY A.CREATE_DT DESC
1522
		-- PAGING END
1523
	END
1524
	ELSE IF(@p_TYPE='LINK_TTCT')
1525
	BEGIN	
1526
		-- PAGING BEGIN
1527
		-- đoạn dưới chưa làm
1528
		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,
1529
              A.TOTAL_AMT AS TOTAL_AMT,A.NOTES, A.RECORD_STATUS,A.MAKER_ID,A.CREATE_DT,A.AUTH_STATUS,A.CHECKER_ID,
1530
			   UDV.TLFullName AS CHECKER_NAME_DV,
1531
			   A.APPROVE_DT,
1532
               A.PROCESS_ID,
1533
			   D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME_DV,
1534
			   CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt'
1535
			   ELSE N'Chờ duyệt' END AS AUTH_STATUS_NAME,
1536
			G.BRANCH_CODE,
1537
			   G.BRANCH_NAME,
1538
			   UP.TLFullName AS CHECKER_NAME_PROCESS,
1539
			   RP.APPROVE_DT AS APPROVE_DT_PROCESS,
1540
			   UC.TLFullName AS MAKER_NAME,
1541
			   RPN.PROCESS_ID AS PROCESS_ID_NEXT,
1542
			   RP.ROLE_USER, 
1543
			   RP.NOTES AS PROCESS_STATUS , 
1544
			   RPN.NOTES AS PROCESS_STATUS_NEXT,
1545
			   A.DVDM_APP_ID,
1546
			   CD.DVDM_NAME AS DVDM_APP_NAME,
1547
			   A.REQ_PARENT_ID,
1548
			   PARENT.REQ_NAME AS REQ_PARENT_NAME,
1549
			   PARENT.REQ_CODE AS REQ_PARENT_CODE,
1550
			   PARENT.TOTAL_AMT AS REQ_PARENT_AMT,
1551
			   A.BRANCH_FEE,
1552
			   A.DEP_ID,
1553
			   A.DEP_FEE,
1554
			   DEP.DEP_NAME,
1555
			   DEP.DEP_CODE,
1556
			   BF.BRANCH_NAME AS BRANCH_FEE_NAME,
1557
			   BF.BRANCH_CODE AS BRANCH_FEE_CODE,
1558
			   DF.DEP_NAME AS DEP_FEE_NAME,
1559
			   DF.DEP_CODE AS DEP_FEE_CODE,
1560
			   '' AS BRANCH_DEP,
1561
			   '' AS BRANCH_DEP_FEE,
1562
			   
1563
			   '' AS TYPE_JOB,
1564
			   '' AS USER_JOB,
1565
			   '' AS USER_JOB_NAME,
1566
			   '' AS TRANSFER_MAKER,
1567
			    A.CREATE_DT AS TRANFER_DT ,
1568
				'' AS TRANSFER_MAKER_ID,
1569
			   A.EFFEC_DT,A.IS_BACKDAY,
1570
			   '' AS TYPE_JOB_XL,
1571
			   '' AS USER_JOB_XL,
1572
			   RP.ID AS REF_ID,
1573
			   RPN.STATUS AS STATUS_NEXT,
1574
			   RP.STATUS AS STATUS_CURR,
1575
			   '' AS STATUS_JOB,
1576
			   A.BRANCH_CREATE,
1577
			   A.DEP_CREATE,
1578
			   A.REQ_LINE,
1579
			   A.TC_NOTES, A.SIGN_USER, TL.TLFullName AS SIGN_USER_NAME,
1580
			   A.KT_NOTES,
1581
			     A.IS_CHECKALL,
1582
			   A.BASED_CONTENT, 
1583
			   '' AS IS_TRANSFER,
1584
			   --NGUOI XU LY
1585
			   --dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) AS NGUOIXULY
1586
			    NXL.NGUOIXULY AS NGUOIXULY
1587
				,A.TK_TGD_NOTES, A.OTHER_NOTES,A.TK_HDQT_NOTES
1588
		-- SELECT END
1589
		FROM PL_REQUEST_DOC A 		
1590
		LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
1591
		LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID
1592
		LEFT JOIN dbo.CM_DEPARTMENT DEP ON DEP.DEP_ID=A.DEP_ID
1593
		LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE
1594
		LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE
1595
		LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID
1596
	
1597
		LEFT JOIN dbo.PL_REQUEST_PROCESS RPN 
1598
		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') )
1599
		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)
1600
		LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID
1601
		LEFT JOIN dbo.TL_USER UC ON UC.TLNANME=A.MAKER_ID
1602
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=A.DVDM_APP_ID
1603
		LEFT JOIN dbo.PL_REQUEST_DOC PARENT ON PARENT.REQ_ID=A.REQ_PARENT_ID
1604
		LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME
1605
		LEFT JOIN
1606
		(
1607
		
1608
		SELECT	Results.REQ_ID,STUFF((select ', ' + RE.TLFullName  
1609
		FROM @lstREQUEST RE
1610
		WHERE RE.REQ_ID=Results.REQ_ID
1611
		FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULY,
1612
		STUFF((select ', ' + RE.TLNAME  
1613
		FROM @lstREQUEST RE
1614
		WHERE RE.REQ_ID=Results.REQ_ID
1615
		FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULYTLNAME	
1616
		FROM @lstREQUEST Results
1617
		GROUP BY REQ_ID
1618
		) NXL ON NXL.REQ_ID=A.REQ_ID
1619
		WHERE 1 = 1 
1620
		AND A.REQ_PARENT_ID =@p_REQ_ID
1621
		ORDER BY A.CREATE_DT DESC
1622
		-- PAGING END
1623
	END
1624
	ELSE IF(@p_TYPE='DVKD_XDCB')
1625
	BEGIN
1626
	-- PAGING BEGIN
1627
		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,
1628
              A.TOTAL_AMT AS TOTAL_AMT,A.NOTES, A.RECORD_STATUS,A.MAKER_ID,A.CREATE_DT,A.AUTH_STATUS,A.CHECKER_ID,
1629
			   UDV.TLFullName AS CHECKER_NAME_DV,
1630
			   A.APPROVE_DT,
1631
               A.PROCESS_ID,
1632
			   D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME_DV,
1633

    
1634
			   CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt'
1635
			   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,
1636

    
1637
			   --CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt'
1638
			   --ELSE N'Chờ duyệt' END AS AUTH_STATUS_NAME,
1639
			   G.BRANCH_CODE,
1640
			   G.BRANCH_NAME,
1641
			   UP.TLFullName AS CHECKER_NAME_PROCESS,
1642
			   RP.APPROVE_DT AS APPROVE_DT_PROCESS,
1643
			   UC.TLFullName AS MAKER_NAME,
1644
			   RPN.PROCESS_ID AS PROCESS_ID_NEXT,
1645
			   RP.ROLE_USER, 
1646
			   RP.NOTES AS PROCESS_STATUS , 
1647
			   RPN.NOTES AS PROCESS_STATUS_NEXT,
1648
			   A.DVDM_APP_ID,
1649
			   CD.DVDM_NAME AS DVDM_APP_NAME,
1650
			   A.REQ_PARENT_ID,
1651
			   PARENT.REQ_NAME AS REQ_PARENT_NAME,
1652
			   PARENT.REQ_CODE AS REQ_PARENT_CODE,
1653
			   PARENT.TOTAL_AMT AS REQ_PARENT_AMT,
1654
			   A.BRANCH_FEE,
1655
			   A.DEP_ID,
1656
			   A.DEP_FEE,
1657
			   DEP.DEP_NAME,
1658
			   DEP.DEP_CODE,
1659
			   BF.BRANCH_NAME AS BRANCH_FEE_NAME,
1660
			   BF.BRANCH_CODE AS BRANCH_FEE_CODE,
1661
			   DF.DEP_NAME AS DEP_FEE_NAME,
1662
			   DF.DEP_CODE AS DEP_FEE_CODE,
1663
			   '' AS BRANCH_DEP,
1664
			   '' AS BRANCH_DEP_FEE,
1665
			   '' AS TYPE_JOB,
1666
			   '' AS USER_JOB,
1667
			   '' AS USER_JOB_NAME,
1668
			   '' AS TRANSFER_MAKER,
1669
			    A.CREATE_DT AS TRANFER_DT ,
1670
				'' AS TRANSFER_MAKER_ID,
1671
			   A.EFFEC_DT,A.IS_BACKDAY,
1672
			   '' AS TYPE_JOB_XL,
1673
			   '' AS USER_JOB_XL,
1674
			   --RP.ID AS REF_ID,
1675
			   0 AS REF_ID,
1676
			   RPN.STATUS AS STATUS_NEXT,
1677
			   RP.STATUS AS STATUS_CURR,
1678
			   '' AS STATUS_JOB,
1679
			   A.BRANCH_CREATE,
1680
			   A.DEP_CREATE,
1681
			   A.REQ_LINE,
1682
			   A.TC_NOTES, A.SIGN_USER, TL.TLFullName AS SIGN_USER_NAME,
1683
			   A.KT_NOTES,
1684
			   A.BASED_CONTENT, 
1685
			   A.IS_CHECKALL,
1686
			   -- GIANT 23/12/2021
1687
			   A.PL_BASED_ID, PL_B.REQ_CODE AS PL_BASED_CODE, PL_B.REQ_CONTENT AS PL_BASED_CONTENT, 
1688
			   '' AS IS_TRANSFER,
1689
			   --NGUOI XU LY
1690
			   --dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) AS NGUOIXULY
1691
			    NXL.NGUOIXULY AS NGUOIXULY,A.TK_TGD_NOTES, A.OTHER_NOTES,A.TK_HDQT_NOTES,
1692
				(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
1693
		-- SELECT END
1694
		FROM PL_REQUEST_DOC A 		
1695
		LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
1696
		LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID
1697
		LEFT JOIN dbo.CM_DEPARTMENT DEP ON DEP.DEP_ID=A.DEP_ID
1698

    
1699
		LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE
1700
		LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE
1701

    
1702
		LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID
1703
	
1704
		LEFT JOIN dbo.PL_REQUEST_PROCESS RPN 
1705
		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') )
1706
		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)
1707
		LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID
1708
		LEFT JOIN dbo.TL_USER UC ON UC.TLNANME=A.MAKER_ID
1709
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=A.DVDM_APP_ID
1710
		LEFT JOIN dbo.PL_REQUEST_DOC PARENT ON PARENT.REQ_ID=A.REQ_PARENT_ID
1711
		-- GIANT 23/12/2021
1712
		LEFT JOIN dbo.PL_REQUEST_DOC PL_B ON PL_B.REQ_ID=A.PL_BASED_ID
1713

    
1714
		LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME
1715
		LEFT JOIN
1716
		(
1717
		
1718
		SELECT	Results.REQ_ID,STUFF((select ', ' + RE.TLFullName  
1719
		FROM @lstREQUEST RE
1720
		WHERE RE.REQ_ID=Results.REQ_ID
1721
		FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULY,
1722
		STUFF((select ', ' + RE.TLNAME  
1723
		FROM @lstREQUEST RE
1724
		WHERE RE.REQ_ID=Results.REQ_ID
1725
		FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULYTLNAME	
1726
		FROM @lstREQUEST Results
1727
		GROUP BY REQ_ID
1728
		) NXL ON NXL.REQ_ID=A.REQ_ID
1729
		WHERE 1 = 1
1730
		AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
1731
		AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')	
1732
		AND ((A.BRANCH_CREATE = @p_BRANCH_LOGIN AND( A.DEP_CREATE=@DEP_ID OR @BRANCH_TYPE <>'HS')) OR A.IS_CHECKALL=1)
1733
		AND(@p_FR_DATE IS NULL OR CONVERT(DATETIME,A.REQ_DT,103) >= CONVERT(DATETIME,@p_FR_DATE,103))
1734
		AND(@p_TO_DATE IS NULL OR CONVERT(DATETIME,A.REQ_DT,103) <= CONVERT(DATETIME,@p_TO_DATE,103))	
1735
		AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR)		
1736
		AND (ISNULL(A.PROCESS_ID,'') ='APPROVE')
1737
		AND (A.REQ_TYPE = @p_REQ_TYPE OR @p_REQ_TYPE IS NULL OR @p_REQ_TYPE =-1)
1738
		AND(
1739
			@p_REQ_TYPE = -1  OR @p_REQ_TYPE IS NULL
1740
			OR
1741
				(
1742
					@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)
1743
				)
1744
				OR
1745
				(
1746
					@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)
1747
				)
1748
			)
1749
		AND (EXISTS(SELECT REQDT_ID FROM dbo.PL_REQUEST_DOC_DT WHERE REQ_ID = A.REQ_ID))
1750

    
1751
		ORDER BY A.CREATE_DT DESC
1752
	-- PAGING END
1753
	END
1754
   END -- PAGING
1755

    
1756

    
1757

    
1758

    
1759