Project

General

Profile

1.0 PL REQUEST DOC Search.txt

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

    
201
		UNION ALL
202
		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
203
		FROM 
204
		(
205
      SELECT REQ_ID,PROCESS_ID,NOTES,ROLE_USER,BRANCH_ID,DEP_ID,STATUS,IS_HAS_CHILD,DVDM_ID,ID
206
      FROM dbo.PL_REQUEST_PROCESS PRC WHERE 
207
			EXISTS(SELECT PLRD.REQ_ID FROM dbo.PL_REQUEST_DOC PLRD 
208
			WHERE PLRD.REQ_ID=PRC.REQ_ID 
209

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

    
285

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

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

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

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

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

    
362

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

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

    
394

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

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

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

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

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

    
468

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

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

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

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

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

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

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

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

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

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

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

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

    
809

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

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

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

    
893

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

    
899

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

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

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

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

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

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

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

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

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

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

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

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

    
1101
		AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
1102
		AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')	
1103
		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)
1104
		AND(@p_FR_DATE IS NULL OR CONVERT(DATETIME,A.REQ_DT,103) >= CONVERT(DATETIME,@p_FR_DATE,103))
1105
		AND(@p_TO_DATE IS NULL OR CONVERT(DATETIME,A.REQ_DT,103) <= CONVERT(DATETIME,@p_TO_DATE,103))	
1106
		AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR)		
1107
		AND (ISNULL(A.PROCESS_ID,'') ='APPROVE')
1108

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

    
1151

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

    
1182
		LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE
1183
		LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE
1184

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

    
1239
		AND A.IS_CHECKALL=1
1240

    
1241
		AND A.PROCESS_ID='APPROVE'
1242
		AND(@p_FR_DATE IS NULL OR CONVERT(DATETIME,A.REQ_DT,103) >= CONVERT(DATETIME,@p_FR_DATE,103))
1243
		AND(@p_TO_DATE IS NULL OR CONVERT(DATETIME,A.REQ_DT,103) <= CONVERT(DATETIME,@p_TO_DATE,103))	
1244
		AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR)	
1245
		AND(A.REQ_PARENT_ID IS NULL OR A.REQ_PARENT_ID='')
1246
			AND( NXL.NGUOIXULYTLNAME LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = ''
1247
			OR NXL.NGUOIXULY LIKE '%' + @p_NGUOIXULY  + '%')
1248
		--AND(
1249
		--	(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
1250
		--	OR
1251
		--	(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',1) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
1252
		--)
1253

    
1254
		--AND (A.BRANCH_ID = @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
1255
		--AND (A.DEP_ID = @p_DEP_ID OR @p_DEP_ID IS NULL OR @p_DEP_ID = '')
1256
		
1257
		-- GIANT 26/10/2021
1258
		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))
1259

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

    
1302

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

    
1333
		LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE
1334
		LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE
1335

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

    
1390
		AND (  
1391
		 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) )
1392
		)
1393

    
1394
		AND A.PROCESS_ID='APPROVE'
1395
		AND(@p_FR_DATE IS NULL OR CONVERT(DATETIME,A.REQ_DT,103) >= CONVERT(DATETIME,@p_FR_DATE,103))
1396
		AND(@p_TO_DATE IS NULL OR CONVERT(DATETIME,A.REQ_DT,103) <= CONVERT(DATETIME,@p_TO_DATE,103))	
1397
		AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR)	
1398
		AND(A.REQ_PARENT_ID IS NULL OR A.REQ_PARENT_ID='')
1399
			AND( NXL.NGUOIXULYTLNAME LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = ''
1400
			OR NXL.NGUOIXULY LIKE '%' + @p_NGUOIXULY  + '%')
1401
		--AND(
1402
		--	(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
1403
		--	OR
1404
		--	(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',1) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
1405
		--)
1406

    
1407

    
1408
		--AND (A.BRANCH_ID = @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
1409
		--AND (A.DEP_ID = @p_DEP_ID OR @p_DEP_ID IS NULL OR @p_DEP_ID = '')
1410

    
1411
		-- GIANT 26/10/2021
1412
		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))
1413

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

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

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

    
1691
		LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE
1692
		LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE
1693

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

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

    
1743
		ORDER BY A.CREATE_DT DESC
1744
	-- PAGING END
1745
	END
1746
   END -- PAGING
1747

    
1748

    
1749

    
1750

    
1751