Project

General

Profile

PL_REQUEST_DOC_Search.txt

Luc Tran Van, 10/18/2022 08:42 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
		(SELECT * FROM dbo.PL_REQUEST_PROCESS PRC WHERE PRC.STATUS = 'C' AND --GIANT 23/12/2021
146
			EXISTS(SELECT PLRD.REQ_ID FROM dbo.PL_REQUEST_DOC PLRD 
147
			WHERE PLRD.REQ_ID=PRC.REQ_ID 
148

    
149
		) 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
150
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=PL.DVDM_ID
151
		LEFT JOIN 
152
		(
153
		SELECT TU.TLNANME,TU.TLFullName,TU.RoleName,Temp.DVDM_ID,TU.SECUR_CODE,TU.TLSUBBRID FROM dbo.TL_USER TU 
154
		LEFT JOIN(
155
		SELECT PC.DVDM_ID,PD.DEP_ID,PD.BRANCH_ID FROM dbo.PL_COSTCENTER PC 
156
		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
157
		UNION ALL
158
		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
159
		LEFT JOIN dbo.TL_USER US ON US.TLNANME=TU.TLNAME
160
		LEFT JOIN(
161
		SELECT PC.DVDM_ID,PD.DEP_ID,PD.BRANCH_ID FROM dbo.PL_COSTCENTER PC 
162
		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
163
		WHERE  CAST(TU.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
164
		) TempU ON (TempU.RoleName=PL.ROLE_USER  OR PL.ROLE_USER IN (SELECT ROLE_NEW FROM dbo.TL_SYS_ROLE_MAPPING TM WHERE 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='') 
165
		AND (TempU.SECUR_CODE=PL.DEP_ID OR PL.DEP_ID IS NULL OR PL.DEP_ID='') 
166
		AND (TempU.DVDM_ID=PL.DVDM_ID OR PL.DVDM_ID IS NULL OR PL.DVDM_ID ='')
167
		LEFT JOIN dbo.PL_REQUEST_DOC RD ON RD.REQ_ID = PL.REQ_ID
168
		LEFT JOIN CM_BRANCH BR ON PL.BRANCH_ID = BR.BRANCH_ID
169
		WHERE PL.STATUS='C' 
170
		UNION ALL
171
		 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 
172
		(SELECT * FROM dbo.PL_REQUEST_PROCESS PRC WHERE PRC.STATUS = 'C' AND --GIANT 23/12/2021
173
			EXISTS(SELECT PLRD.REQ_ID FROM dbo.PL_REQUEST_DOC PLRD 
174
			WHERE PLRD.REQ_ID=PRC.REQ_ID 
175
		)  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
176
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=PL.DVDM_ID
177
		LEFT JOIN 
178
		(
179
		SELECT TU.TLNANME,TU.TLFullName,TU.RoleName,Temp.DVDM_ID,TU.SECUR_CODE,TU.TLSUBBRID FROM dbo.TL_USER TU 
180
		LEFT JOIN(
181
		SELECT PC.DVDM_ID,PD.DEP_ID,PD.BRANCH_ID FROM dbo.PL_COSTCENTER PC 
182
		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
183
		) TempU ON (TempU.RoleName=PL.ROLE_USER  OR PL.ROLE_USER IN (SELECT ROLE_NEW FROM dbo.TL_SYS_ROLE_MAPPING TM WHERE TM.ROLE_OLD=TempU.RoleName AND (TM.TLNAME IS NULL OR TM.TLNAME='')))  
184
		AND (TempU.TLSUBBRID=PL.BRANCH_ID OR PL.BRANCH_ID IS NULL OR PL.BRANCH_ID='') 
185
		AND (TempU.SECUR_CODE=PL.DEP_ID OR PL.DEP_ID IS NULL OR PL.DEP_ID='') 
186
		AND (TempU.DVDM_ID=PL.DVDM_ID OR PL.DVDM_ID IS NULL OR PL.DVDM_ID ='')
187
		LEFT JOIN dbo.PL_REQUEST_DOC RD ON RD.REQ_ID = PL.REQ_ID
188
		LEFT JOIN CM_BRANCH BR ON PL.BRANCH_ID = BR.BRANCH_ID
189
		WHERE  STATUS='C' AND (PL.PROCESS_ID = 'SIGN' AND TempU.TLNANME = RD.SIGN_USER)
190

    
191
		UNION ALL
192
		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
193
		FROM 
194
		(SELECT * FROM dbo.PL_REQUEST_PROCESS PRC WHERE 
195
			EXISTS(SELECT PLRD.REQ_ID FROM dbo.PL_REQUEST_DOC PLRD 
196
			WHERE PLRD.REQ_ID=PRC.REQ_ID 
197

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

    
273

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

    
307
		LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE
308
		LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE
309

    
310
		LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID
311
	
312
		LEFT JOIN dbo.PL_REQUEST_PROCESS RPN 
313
		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') )
314
		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)
315
		LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID
316
		LEFT JOIN dbo.TL_USER UC ON UC.TLNANME=A.MAKER_ID
317
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=A.DVDM_APP_ID
318
		LEFT JOIN dbo.PL_REQUEST_DOC PARENT ON PARENT.REQ_ID=A.REQ_PARENT_ID
319
		LEFT JOIN dbo.PL_REQUEST_DOC PL_B ON PL_B.REQ_ID=A.PL_BASED_ID
320
		LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME
321
		LEFT JOIN
322
		(
323
		
324
			SELECT	Results.REQ_ID,STUFF((select ', ' + RE.TLFullName  
325
			FROM @lstREQUEST RE
326
			WHERE RE.REQ_ID=Results.REQ_ID
327
			FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULY,
328
			STUFF((select ', ' + RE.TLNAME  
329
			FROM @lstREQUEST RE
330
			WHERE RE.REQ_ID=Results.REQ_ID
331
			FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULYTLNAME	
332
			FROM @lstREQUEST Results
333
			GROUP BY REQ_ID
334
		) NXL ON NXL.REQ_ID=A.REQ_ID
335

    
336
		WHERE 1 = 1
337
		
338
	    AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
339
		AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '')
340
		AND (A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '')
341
		AND (A.REQ_REASON LIKE '%' + @p_REQ_REASON + '%' OR @p_REQ_REASON IS NULL OR @p_REQ_REASON = '')
342
		AND (A.TOTAL_AMT=@p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0)
343
		AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')	
344
		AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
345
		AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
346
		
347

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

    
350

    
351
		AND	(@p_CREATE_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_CREATE_DT,103)) = 0) 
352
		AND	(@p_APPROVE_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_APPROVE_DT,103)) = 0) 
353
		AND	(@p_REQ_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_REQ_DT,103)) = 0) 
354
		AND (A.REQ_TYPE = @p_REQ_TYPE OR @p_REQ_TYPE IS NULL OR @p_REQ_TYPE =-1)
355
		AND A.RECORD_STATUS = '1'
356
		
357
		AND(
358
			@p_REQ_TYPE = -1  OR @p_REQ_TYPE IS NULL
359
			OR
360
				(
361
					@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)
362
				)
363
				OR
364
				(
365
						@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)
366
				)
367
			)
368

    
369
--		AND    (A.MAKER_ID=@p_TLNAME_USER
370
--        OR (A.PROCESS_ID ='APPROVE' AND A.BRANCH_CREATE=@p_BRANCH_LOGIN AND (A.DEP_CREATE=@DEP_ID OR @BRANCH_TYPE<>'HS'))
371
--				OR EXISTS(SELECT ID FROM dbo.PL_ROLE_DATA_CONFIG WHERE ROLE_TYPE='PL_REQUEST_DOC_ALL' AND BRANCH_ID=@p_TLNAME_USER )
372
--				OR EXISTS(SELECT * FROM dbo.PL_REQUEST_PROCESS PLRP WHERE PLRP.PROCESS_ID='APPNEW' AND PLRP.REQ_ID=A.REQ_ID
373
--																			AND EXISTS(SELECT AUTH.ROLE_ID FROM @AUTHOR AUTH WHERE AUTH.ROLE_ID=PLRP.ROLE_USER AND AUTH.BRANCH_ID=PLRP.BRANCH_ID 
374
--																														AND(PLRP.DEP_ID=AUTH.DEP_ID OR PLRP.DEP_ID IS NULL OR PLRP.DEP_ID ='') ))
375
--			--	
376
--				
377
--				--OR (EXISTS(SELECT * FROM dbo.PL_REQUEST_PROCESS PLRP WHERE A.REQ_ID=PLRP.REQ_ID AND PLRP.PROCESS_ID='APPNEW' 
378
--				--												AND PLRP.ROLE_USER IN (SELECT ROLE_ID FROM @TABLE_ROLE) AND PLRP.BRANCH_ID=@p_BRANCH_LOGIN 
379
--				--												AND (PLRP.DEP_ID=@DEP_ID OR PLRP.DEP_ID IS NULL OR PLRP.DEP_ID =''))) 
380
--			--
381
--
382
--
383
--		OR(A.SIGN_USER IS NOT NULL AND A.SIGN_USER <>'' AND A.SIGN_USER  =@p_TLNAME_USER AND A.AUTH_STATUS<>'E'))
384
		--
385
		--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 = '')
386
		--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 ='')))))
387
		--
388
		--AND (A.AUTH_STATUS = @p_AUTH_STATUS OR @p_AUTH_STATUS ='' OR @p_AUTH_STATUS IS NULL)
389
		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'))
390
			OR (@p_AUTH_STATUS ='E' AND A.AUTH_STATUS =@p_AUTH_STATUS)
391
			OR (@p_AUTH_STATUS ='R' AND A.AUTH_STATUS =@p_AUTH_STATUS)
392
			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'))
393
			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'))
394
			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'))
395
			OR (@p_AUTH_STATUS ='' OR @p_AUTH_STATUS IS NULL)
396
		)
397
		AND(@p_FR_DATE IS NULL OR CONVERT(DATETIME,A.REQ_DT,103) >= CONVERT(DATETIME,@p_FR_DATE,103))
398
		AND(@p_TO_DATE IS NULL OR CONVERT(DATETIME,A.REQ_DT,103) <= CONVERT(DATETIME,@p_TO_DATE,103))	
399
		AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR)	
400
		AND( NXL.NGUOIXULYTLNAME LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = ''
401
			OR NXL.NGUOIXULY LIKE '%' + @p_NGUOIXULY  + '%')
402

    
403
		AND (A.BRANCH_ID = @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
404
		AND (A.DEP_ID = @p_DEP_ID OR @p_DEP_ID IS NULL OR @p_DEP_ID = '')
405
		
406
		-- GIANT 26/10/2021
407
		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))
408

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

    
412
		ORDER BY A.CREATE_DT DESC
413
	-- PAGING END
414
	END
415
	ELSE IF(@p_TYPE='PDTT')
416
	BEGIN
417
		-- PAGING BEGIN
418
		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,
419
               A.TOTAL_AMT AS TOTAL_AMT,A.NOTES, A.RECORD_STATUS,A.MAKER_ID,A.CREATE_DT,A.AUTH_STATUS,A.CHECKER_ID,
420

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

    
456

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

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

    
522
		WHERE 1 = 1
523
	    AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
524
		AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '')
525
		AND (A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '')
526
		AND (A.REQ_REASON LIKE '%' + @p_REQ_REASON + '%' OR @p_REQ_REASON IS NULL OR @p_REQ_REASON = '')
527
		AND (A.TOTAL_AMT=@p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0)
528
		AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')	
529
		AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
530
		AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
531
		
532
		AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
533
		AND	(@p_CREATE_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_CREATE_DT,103)) = 0) 
534
		AND	(@p_APPROVE_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_APPROVE_DT,103)) = 0) 
535
		AND	(@p_REQ_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_REQ_DT,103)) = 0) 
536
		AND (A.REQ_TYPE = @p_REQ_TYPE OR @p_REQ_TYPE IS NULL OR @p_REQ_TYPE =-1)
537
		--AND (@p_RECEIVE_BRANCH IS NULL OR A.PO_ID IN (SELECT PO_ID FROM TR_PO_DETAIL WHERE RECEIVE_BRANCH=@p_RECEIVE_BRANCH))
538
		AND A.RECORD_STATUS = '1'
539

    
540

    
541
		AND(
542
			@p_REQ_TYPE = -1  OR @p_REQ_TYPE IS NULL
543
			OR
544
				(
545
					@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)
546
				)
547
				OR
548
				(
549
						@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)
550
				)
551
			)
552

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

    
578
		--AND (A.BRANCH_ID = @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
579
		--AND (A.DEP_ID = @p_DEP_ID OR @p_DEP_ID IS NULL OR @p_DEP_ID = '')
580
		
581
		-- GIANT 26/10/2021
582
		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))
583

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

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

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

    
755
		---- GIANT 
756
		--AND (A.BRANCH_CREATE = @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
757
		--AND (A.DEP_CREATE = @p_DEP_ID OR @p_DEP_ID IS NULL OR @p_DEP_ID = '')
758

    
759
	ORDER BY A.CREATE_DT DESC
760
	-- PAGING END
761
	END
762
	ELSE IF(@p_TYPE='XLTT')
763
	BEGIN
764
	-- PAGING BEGIN		
765
				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,
766
             A.TOTAL_AMT AS TOTAL_AMT,A.NOTES, A.RECORD_STATUS,A.MAKER_ID,A.CREATE_DT,A.AUTH_STATUS,A.CHECKER_ID,
767

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

    
803

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

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

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

    
887

    
888
		AND(
889
			@p_REQ_TYPE = -1  OR @p_REQ_TYPE IS NULL
890
			OR
891
				(
892
					@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)
893
				)
894
				OR
895
				(
896
						@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)
897
				)
898
			)
899

    
900

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

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

    
932
		-- GIANT 26/10/2021
933
		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))
934
	ORDER BY A.CREATE_DT DESC
935
	-- PAGING END
936
	END
937
	ELSE IF(@p_TYPE='DVKD_PARENT')
938
	BEGIN
939
	-- PAGING BEGIN
940
		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,
941
              A.TOTAL_AMT AS TOTAL_AMT,A.NOTES, A.RECORD_STATUS,A.MAKER_ID,A.CREATE_DT,A.AUTH_STATUS,A.CHECKER_ID,
942
			   UDV.TLFullName AS CHECKER_NAME_DV,
943
			   A.APPROVE_DT,
944
               A.PROCESS_ID,
945
			   D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME_DV,
946

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

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

    
1012
		LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE
1013
		LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE
1014

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

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

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

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

    
1078
		--AND(@p_FR_DATE IS NULL OR CONVERT(DATETIME,A.REQ_DT,103) >= CONVERT(DATETIME,@p_FR_DATE,103))
1079
		--AND(@p_TO_DATE IS NULL OR CONVERT(DATETIME,A.REQ_DT,103) <= CONVERT(DATETIME,@p_TO_DATE,103))	
1080
		--AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR)	
1081
		--AND(A.REQ_PARENT_ID IS NULL OR A.REQ_PARENT_ID='')
1082
		--AND( NXL.NGUOIXULYTLNAME LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = ''
1083
		--	OR NXL.NGUOIXULY LIKE '%' + @p_NGUOIXULY  + '%')
1084
		--AND(
1085
		--	(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
1086
		--	OR
1087
		--	(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',1) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
1088
		--)
1089

    
1090
		--AND (A.BRANCH_ID = @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
1091
		--AND (A.DEP_ID = @p_DEP_ID OR @p_DEP_ID IS NULL OR @p_DEP_ID = '')
1092
		--AND (A.MAKER_ID = @p_TLNAME_USER)
1093

    
1094
		AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
1095
		AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')	
1096
		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)
1097
		AND(@p_FR_DATE IS NULL OR CONVERT(DATETIME,A.REQ_DT,103) >= CONVERT(DATETIME,@p_FR_DATE,103))
1098
		AND(@p_TO_DATE IS NULL OR CONVERT(DATETIME,A.REQ_DT,103) <= CONVERT(DATETIME,@p_TO_DATE,103))	
1099
		AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR)		
1100
		AND (ISNULL(A.PROCESS_ID,'') ='APPROVE')
1101

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

    
1144

    
1145
			   '' AS TYPE_JOB,
1146
			   '' AS USER_JOB,
1147
			   '' AS USER_JOB_NAME,
1148
			   '' AS TRANSFER_MAKER,
1149
			    A.CREATE_DT AS TRANFER_DT ,
1150
				'' AS TRANSFER_MAKER_ID,
1151
			   A.EFFEC_DT,A.IS_BACKDAY,
1152
			   '' AS TYPE_JOB_XL,
1153
			   '' AS USER_JOB_XL,
1154
			   RP.ID AS REF_ID,
1155
			   RPN.STATUS AS STATUS_NEXT,
1156
			   RP.STATUS AS STATUS_CURR,
1157
			   '' AS STATUS_JOB,
1158
			   A.BRANCH_CREATE,
1159
			   A.DEP_CREATE,
1160
			   A.REQ_LINE,
1161
			   A.TC_NOTES, A.SIGN_USER, TL.TLFullName AS SIGN_USER_NAME,
1162
			   A.KT_NOTES,
1163
			     A.IS_CHECKALL,
1164
			   A.BASED_CONTENT, 
1165
			   '' AS IS_TRANSFER,
1166
			   --NGUOI XU LY
1167
			   --dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) AS NGUOIXULY
1168
			    NXL.NGUOIXULY AS NGUOIXULY,A.TK_TGD_NOTES, A.OTHER_NOTES,A.TK_HDQT_NOTES
1169
			-- SELECT END
1170
		FROM PL_REQUEST_DOC A 		
1171
		LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
1172
		LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID
1173
		LEFT JOIN dbo.CM_DEPARTMENT DEP ON DEP.DEP_ID=A.DEP_ID
1174

    
1175
		LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE
1176
		LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE
1177

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

    
1232
		AND A.IS_CHECKALL=1
1233

    
1234
		AND A.PROCESS_ID='APPROVE'
1235
		AND(@p_FR_DATE IS NULL OR CONVERT(DATETIME,A.REQ_DT,103) >= CONVERT(DATETIME,@p_FR_DATE,103))
1236
		AND(@p_TO_DATE IS NULL OR CONVERT(DATETIME,A.REQ_DT,103) <= CONVERT(DATETIME,@p_TO_DATE,103))	
1237
		AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR)	
1238
		AND(A.REQ_PARENT_ID IS NULL OR A.REQ_PARENT_ID='')
1239
			AND( NXL.NGUOIXULYTLNAME LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = ''
1240
			OR NXL.NGUOIXULY LIKE '%' + @p_NGUOIXULY  + '%')
1241
		--AND(
1242
		--	(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
1243
		--	OR
1244
		--	(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',1) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
1245
		--)
1246

    
1247
		--AND (A.BRANCH_ID = @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
1248
		--AND (A.DEP_ID = @p_DEP_ID OR @p_DEP_ID IS NULL OR @p_DEP_ID = '')
1249
		
1250
		-- GIANT 26/10/2021
1251
		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))
1252

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

    
1295

    
1296
			   '' AS TYPE_JOB,
1297
			   '' AS USER_JOB,
1298
			   '' AS USER_JOB_NAME,
1299
			   '' AS TRANSFER_MAKER,
1300
			    A.CREATE_DT AS TRANFER_DT ,
1301
				'' AS TRANSFER_MAKER_ID,
1302
			   A.EFFEC_DT,A.IS_BACKDAY,
1303
			   '' AS TYPE_JOB_XL,
1304
			   '' AS USER_JOB_XL,
1305
			   RP.ID AS REF_ID,
1306
			   RPN.STATUS AS STATUS_NEXT,
1307
			   RP.STATUS AS STATUS_CURR,
1308
			   '' AS STATUS_JOB,
1309
			   A.BRANCH_CREATE,
1310
			   A.DEP_CREATE,
1311
			   A.REQ_LINE,
1312
			   A.TC_NOTES, A.SIGN_USER, TL.TLFullName AS SIGN_USER_NAME,
1313
			   A.KT_NOTES,
1314
			     A.IS_CHECKALL,
1315
			   A.BASED_CONTENT, 
1316
			   '' AS IS_TRANSFER,
1317
			   --NGUOI XU LY
1318
			   --dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) AS NGUOIXULY
1319
			    NXL.NGUOIXULY AS NGUOIXULY,A.TK_TGD_NOTES, A.OTHER_NOTES,A.TK_HDQT_NOTES
1320
		-- SELECT END
1321
		FROM PL_REQUEST_DOC A 		
1322
		LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
1323
		LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID
1324
		LEFT JOIN dbo.CM_DEPARTMENT DEP ON DEP.DEP_ID=A.DEP_ID
1325

    
1326
		LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE
1327
		LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE
1328

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

    
1383
		AND (  
1384
		 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) )
1385
		)
1386

    
1387
		AND A.PROCESS_ID='APPROVE'
1388
		AND(@p_FR_DATE IS NULL OR CONVERT(DATETIME,A.REQ_DT,103) >= CONVERT(DATETIME,@p_FR_DATE,103))
1389
		AND(@p_TO_DATE IS NULL OR CONVERT(DATETIME,A.REQ_DT,103) <= CONVERT(DATETIME,@p_TO_DATE,103))	
1390
		AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR)	
1391
		AND(A.REQ_PARENT_ID IS NULL OR A.REQ_PARENT_ID='')
1392
			AND( NXL.NGUOIXULYTLNAME LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = ''
1393
			OR NXL.NGUOIXULY LIKE '%' + @p_NGUOIXULY  + '%')
1394
		--AND(
1395
		--	(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
1396
		--	OR
1397
		--	(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',1) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
1398
		--)
1399

    
1400

    
1401
		--AND (A.BRANCH_ID = @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
1402
		--AND (A.DEP_ID = @p_DEP_ID OR @p_DEP_ID IS NULL OR @p_DEP_ID = '')
1403

    
1404
		-- GIANT 26/10/2021
1405
		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))
1406

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

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

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

    
1684
		LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE
1685
		LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE
1686

    
1687
		LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID
1688
	
1689
		LEFT JOIN dbo.PL_REQUEST_PROCESS RPN 
1690
		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') )
1691
		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)
1692
		LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID
1693
		LEFT JOIN dbo.TL_USER UC ON UC.TLNANME=A.MAKER_ID
1694
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=A.DVDM_APP_ID
1695
		LEFT JOIN dbo.PL_REQUEST_DOC PARENT ON PARENT.REQ_ID=A.REQ_PARENT_ID
1696
		-- GIANT 23/12/2021
1697
		LEFT JOIN dbo.PL_REQUEST_DOC PL_B ON PL_B.REQ_ID=A.PL_BASED_ID
1698

    
1699
		LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME
1700
		LEFT JOIN
1701
		(
1702
		
1703
		SELECT	Results.REQ_ID,STUFF((select ', ' + RE.TLFullName  
1704
		FROM @lstREQUEST RE
1705
		WHERE RE.REQ_ID=Results.REQ_ID
1706
		FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULY,
1707
		STUFF((select ', ' + RE.TLNAME  
1708
		FROM @lstREQUEST RE
1709
		WHERE RE.REQ_ID=Results.REQ_ID
1710
		FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULYTLNAME	
1711
		FROM @lstREQUEST Results
1712
		GROUP BY REQ_ID
1713
		) NXL ON NXL.REQ_ID=A.REQ_ID
1714
		WHERE 1 = 1
1715
		AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
1716
		AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')	
1717
		AND ((A.BRANCH_CREATE = @p_BRANCH_LOGIN AND( A.DEP_CREATE=@DEP_ID OR @BRANCH_TYPE <>'HS')) OR A.IS_CHECKALL=1)
1718
		AND(@p_FR_DATE IS NULL OR CONVERT(DATETIME,A.REQ_DT,103) >= CONVERT(DATETIME,@p_FR_DATE,103))
1719
		AND(@p_TO_DATE IS NULL OR CONVERT(DATETIME,A.REQ_DT,103) <= CONVERT(DATETIME,@p_TO_DATE,103))	
1720
		AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR)		
1721
		AND (ISNULL(A.PROCESS_ID,'') ='APPROVE')
1722
		AND (A.REQ_TYPE = @p_REQ_TYPE OR @p_REQ_TYPE IS NULL OR @p_REQ_TYPE =-1)
1723
		AND(
1724
			@p_REQ_TYPE = -1  OR @p_REQ_TYPE IS NULL
1725
			OR
1726
				(
1727
					@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)
1728
				)
1729
				OR
1730
				(
1731
					@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)
1732
				)
1733
			)
1734
		AND (EXISTS(SELECT REQDT_ID FROM dbo.PL_REQUEST_DOC_DT WHERE REQ_ID = A.REQ_ID))
1735

    
1736
		ORDER BY A.CREATE_DT DESC
1737
	-- PAGING END
1738
	END
1739
   END -- PAGING