Project

General

Profile

1.0 PL REQ_DOC SEARCH.txt

Luc Tran Van, 10/17/2022 02:37 PM

 
1

    
2

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

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

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

    
45

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

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

    
59

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

    
65

    
66

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

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

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

    
134
	---- NGUOI XU lY TIEP THEO 18022021
135
			DECLARE @lstREQUEST TABLE (
136
			REQ_ID VARCHAR(20),
137
			PROCESS_ID VARCHAR(50),
138
			DVDM_NAME NVARCHAR(200),
139
			TLNAME VARCHAR(200),
140
			TLFullName NVARCHAR(200),
141
			NOTES NVARCHAR(200)
142
		)
143
		INSERT INTO @lstREQUEST
144
		( REQ_ID,PROCESS_ID, DVDM_NAME,TLNAME,TLFullName, NOTES)
145
		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 
146
		(SELECT * FROM dbo.PL_REQUEST_PROCESS PRC WHERE PRC.STATUS = 'C' AND --GIANT 23/12/2021
147
			EXISTS(SELECT PLRD.REQ_ID FROM dbo.PL_REQUEST_DOC PLRD 
148
			WHERE PLRD.REQ_ID=PRC.REQ_ID 
149

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

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

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

    
274

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

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

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

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

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

    
351

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

    
370
		AND    (A.MAKER_ID=@p_TLNAME_USER OR 
371
				(A.PROCESS_ID ='APPROVE' AND A.BRANCH_CREATE=@p_BRANCH_LOGIN AND (A.DEP_CREATE=@DEP_ID OR @BRANCH_TYPE<>'HS'))
372
				OR EXISTS(SELECT ID FROM dbo.PL_ROLE_DATA_CONFIG WHERE ROLE_TYPE='PL_REQUEST_DOC_ALL' AND BRANCH_ID=@p_TLNAME_USER )
373
				OR EXISTS(SELECT * FROM dbo.PL_REQUEST_PROCESS PLRP WHERE PLRP.PROCESS_ID='APPNEW' AND PLRP.REQ_ID=A.REQ_ID
374
																			AND EXISTS(SELECT AUTH.ROLE_ID FROM @AUTHOR AUTH WHERE AUTH.ROLE_ID=PLRP.ROLE_USER AND AUTH.BRANCH_ID=PLRP.BRANCH_ID 
375
																														AND(PLRP.DEP_ID=AUTH.DEP_ID OR PLRP.DEP_ID IS NULL OR PLRP.DEP_ID ='') ))
376
			--	
377
				
378
				--OR (EXISTS(SELECT * FROM dbo.PL_REQUEST_PROCESS PLRP WHERE A.REQ_ID=PLRP.REQ_ID AND PLRP.PROCESS_ID='APPNEW' 
379
				--												AND PLRP.ROLE_USER IN (SELECT ROLE_ID FROM @TABLE_ROLE) AND PLRP.BRANCH_ID=@p_BRANCH_LOGIN 
380
				--												AND (PLRP.DEP_ID=@DEP_ID OR PLRP.DEP_ID IS NULL OR PLRP.DEP_ID =''))) 
381
			--
382

    
383

    
384
		OR(A.SIGN_USER IS NOT NULL AND A.SIGN_USER <>'' AND A.SIGN_USER  =@p_TLNAME_USER AND A.AUTH_STATUS<>'E'))
385
		--
386
		--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 = '')
387
		--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 ='')))))
388
		--
389
		--AND (A.AUTH_STATUS = @p_AUTH_STATUS OR @p_AUTH_STATUS ='' OR @p_AUTH_STATUS IS NULL)
390
		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'))
391
			OR (@p_AUTH_STATUS ='E' AND A.AUTH_STATUS =@p_AUTH_STATUS)
392
			OR (@p_AUTH_STATUS ='R' AND A.AUTH_STATUS =@p_AUTH_STATUS)
393
			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'))
394
			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'))
395
			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'))
396
			OR (@p_AUTH_STATUS ='' OR @p_AUTH_STATUS IS NULL)
397
		)
398
		AND(@p_FR_DATE IS NULL OR CONVERT(DATETIME,A.REQ_DT,103) >= CONVERT(DATETIME,@p_FR_DATE,103))
399
		AND(@p_TO_DATE IS NULL OR CONVERT(DATETIME,A.REQ_DT,103) <= CONVERT(DATETIME,@p_TO_DATE,103))	
400
		AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR)	
401
		AND( NXL.NGUOIXULYTLNAME LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = ''
402
			OR NXL.NGUOIXULY LIKE '%' + @p_NGUOIXULY  + '%')
403

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

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

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

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

    
457

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

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

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

    
541

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

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

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

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

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

    
665
		LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE
666
		LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE
667
		LEFT JOIN dbo.TL_USER UC ON UC.TLNANME=A.MAKER_ID
668
		LEFT JOIN dbo.CM_PROCESS_STATUS PS ON PS.PROCESS_ID = A.PROCESS_ID
669
		LEFT JOIN dbo.CM_PROCESS_STATUS PSN ON PSN.PROCESS_ID = A.PROCESS_ID
670
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=A.DVDM_APP_ID
671
		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')
672
		
673
		LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID
674
	
675
		LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID
676
		LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=RPC.TLNAME
677
		LEFT JOIN dbo.TL_USER TFM ON TFM.TLNANME=RPC.MAKER_ID
678
		LEFT JOIN dbo.PL_REQUEST_DOC PARENT ON PARENT.REQ_ID=A.REQ_PARENT_ID
679
		LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME
680
		LEFT JOIN
681
		(
682
		
683
			SELECT	Results.REQ_ID,STUFF((select ', ' + RE.TLFullName  
684
			FROM @lstREQUEST RE
685
			WHERE RE.REQ_ID=Results.REQ_ID
686
			FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULY,
687
			STUFF((select ', ' + RE.TLNAME  
688
			FROM @lstREQUEST RE
689
			WHERE RE.REQ_ID=Results.REQ_ID
690
			FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULYTLNAME	
691
			FROM @lstREQUEST Results
692
			GROUP BY REQ_ID
693
		) NXL ON NXL.REQ_ID=A.REQ_ID
694
		-- GIANT
695
		--LEFT JOIN (
696
		--	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
697
			
698
		--) PLQ ON A.REQ_ID = PLQ.REQ_ID
699
		WHERE 1 = 1
700
	    AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
701
		AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '')
702
		AND (A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '')
703
		AND (A.REQ_REASON LIKE '%' + @p_REQ_REASON + '%' OR @p_REQ_REASON IS NULL OR @p_REQ_REASON = '')
704
		AND (A.TOTAL_AMT=@p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0)
705
		AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')	
706
		AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
707
		AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
708
		
709
		AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
710
		AND	(@p_CREATE_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_CREATE_DT,103)) = 0) 
711
		AND	(@p_APPROVE_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_APPROVE_DT,103)) = 0) 
712
		AND	(@p_REQ_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_REQ_DT,103)) = 0) 
713
		AND (A.REQ_TYPE = @p_REQ_TYPE OR @p_REQ_TYPE IS NULL OR @p_REQ_TYPE =-1)
714
		--AND (@p_RECEIVE_BRANCH IS NULL OR A.PO_ID IN (SELECT PO_ID FROM TR_PO_DETAIL WHERE RECEIVE_BRANCH=@p_RECEIVE_BRANCH))
715
		AND A.RECORD_STATUS = '1'
716

    
717

    
718
		AND(
719
			@p_REQ_TYPE = -1  OR @p_REQ_TYPE IS NULL
720
			OR
721
				(
722
					@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)
723
				)
724
				OR
725
				(
726
						@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)
727
				)
728
			)
729

    
730

    
731
		
732
		AND(
733
		
734
		EXISTS(SELECT AUTH.ROLE_ID FROM @AUTHOR_DVDM AUTH WHERE AUTH.ROLE_ID=PLRP.ROLE_USER AND (
735
			(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=''))
736
			OR PLRP.DVDM_ID=AUTH.DVDM_ID
737
			OR ((PLRP.DVDM_ID ='' OR PLRP.DVDM_ID  IS NULL) AND (PLRP.BRANCH_ID IS NULL OR PLRP.BRANCH_ID=''))
738
		))
739
			OR (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) ) )
740
		AND(@p_FR_DATE IS NULL OR CONVERT(DATETIME,A.REQ_DT,103) >= CONVERT(DATETIME,@p_FR_DATE,103))
741
		AND(@p_TO_DATE IS NULL OR CONVERT(DATETIME,A.REQ_DT,103) <= CONVERT(DATETIME,@p_TO_DATE,103))
742
		AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR)	
743
		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 = '')
744
		AND (NOT EXISTS(SELECT ID FROM dbo.PL_REQUEST_PROCESS_CHILD WHERE PL_REQUEST_PROCESS_CHILD.PROCESS_ID=PLRP.ID AND PL_REQUEST_PROCESS_CHILD.STATUS_JOB='C' AND PL_REQUEST_PROCESS_CHILD.TYPE_JOB='TP'))
745
		AND (
746
			((RPC.REQ_ID IS NOT NULL OR RPC.REQ_ID <> '') AND @p_IS_TRANSFER = 'Y')
747
			OR ((RPC.REQ_ID IS NULL OR RPC.REQ_ID = '') AND @p_IS_TRANSFER = 'N')
748
			OR @p_IS_TRANSFER = '' OR @p_IS_TRANSFER IS NULL
749
			)
750
		AND( NXL.NGUOIXULYTLNAME LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = ''
751
			OR NXL.NGUOIXULY LIKE '%' + @p_NGUOIXULY  + '%')
752

    
753
		---- GIANT 26/10/2021
754
		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))
755

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

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

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

    
804

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

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

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

    
888

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

    
901

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    
1145

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

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

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

    
1233
		AND A.IS_CHECKALL=1
1234

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

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

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

    
1296

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

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

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

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

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

    
1401

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

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

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

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

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

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

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

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

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