Project

General

Profile

PL_REQUEST_DOC_Search.txt

Luc Tran Van, 12/27/2022 03:22 PM

 
1

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

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

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

    
44

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

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

    
58

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

    
64

    
65

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

    
99
	INSERT INTO @AUTHOR_DVDM
100
	(
101
	    ROLE_ID,
102
	    BRANCH_ID,
103
	    DEP_ID,
104
	    DVDM_ID
105
	)
106
	SELECT TU.RoleName,TU.TLSUBBRID,TU.SECUR_CODE,PC.DVDM_ID FROM dbo.TL_USER TU 
107
	LEFT JOIN dbo.PL_COSTCENTER_DT DT ON DT.BRANCH_ID=TU.TLSUBBRID AND DT.DEP_ID=TU.SECUR_CODE
108
	LEFT JOIN dbo.PL_COSTCENTER PC ON PC.COST_ID=DT.COST_ID
109
	WHERE TU.TLNANME=@p_TLNAME_USER
110
	UNION ALL
111
	SELECT TM.ROLE_NEW RoleName,TU.TLSUBBRID,TU.SECUR_CODE,PC.DVDM_ID FROM dbo.TL_USER TU 
112
	LEFT JOIN dbo.PL_COSTCENTER_DT DT ON DT.BRANCH_ID=TU.TLSUBBRID AND DT.DEP_ID=TU.SECUR_CODE
113
	LEFT JOIN dbo.PL_COSTCENTER PC ON PC.COST_ID=DT.COST_ID
114
	LEFT JOIN dbo.TL_SYS_ROLE_MAPPING TM ON TM.ROLE_OLD=TU.RoleName AND( TM.TLNAME IS NULL OR TM.TLNAME='')
115
	WHERE TU.TLNANME=@p_TLNAME_USER AND TM.ROLE_NEW IS NOT NULL
116
	UNION ALL
117
	SELECT TU.ROLE_NEW RoleName,TU.BRANCH_ID TLSUBBRID,TU.DEP_ID SECUR_CODE,PC.DVDM_ID FROM dbo.TL_SYS_ROLE_MAPPING TU 
118
	LEFT JOIN dbo.PL_COSTCENTER_DT DT ON DT.BRANCH_ID=TU.BRANCH_ID AND DT.DEP_ID=TU.DEP_ID
119
	LEFT JOIN dbo.PL_COSTCENTER PC ON PC.COST_ID=DT.COST_ID
120
	WHERE TU.TLNAME=@p_TLNAME_USER AND CAST(EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
121
	UNION ALL
122
	SELECT TM.ROLE_NEW RoleName,TU.BRANCH_ID TLSUBBRID,TU.DEP_ID SECUR_CODE,PC.DVDM_ID FROM dbo.TL_SYS_ROLE_MAPPING TU 
123
	LEFT JOIN dbo.PL_COSTCENTER_DT DT ON DT.BRANCH_ID=TU.BRANCH_ID AND DT.DEP_ID=TU.DEP_ID
124
	LEFT JOIN dbo.PL_COSTCENTER PC ON PC.COST_ID=DT.COST_ID
125
	LEFT JOIN dbo.TL_SYS_ROLE_MAPPING TM ON TM.ROLE_OLD=TU.ROLE_NEW AND( TM.TLNAME IS NULL OR TM.TLNAME='')
126
	WHERE TU.TLNAME=@p_TLNAME_USER AND CAST(TU.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)	
127
	---- 16.11.22 LUCTV BO SUNG UNION NHUNG PHONG BAN CON CUA PHONG BAN DUOC KIEM NHIEM
128
	UNION ALL
129
	SELECT TU.ROLE_NEW RoleName,TU.BRANCH_ID TLSUBBRID,TU.DEP_ID SECUR_CODE,PC.DVDM_ID FROM dbo.TL_SYS_ROLE_MAPPING TU 
130
	LEFT JOIN CM_DEPARTMENT DP ON DP.FATHER_ID = TU.DEP_ID
131
	LEFT JOIN dbo.PL_COSTCENTER_DT DT ON DT.BRANCH_ID=TU.BRANCH_ID AND DT.DEP_ID=DP.DEP_ID
132
	LEFT JOIN dbo.PL_COSTCENTER PC ON PC.COST_ID=DT.COST_ID
133
	WHERE TU.TLNAME=@p_TLNAME_USER AND CAST(EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
134
	UNION ALL
135
	SELECT TU.RoleName,TU.TLSUBBRID,TU.SECUR_CODE,PC.DVDM_ID FROM dbo.TL_USER TU
136
	LEFT JOIN CM_DEPARTMENT DP ON DP.FATHER_ID = TU.SECUR_CODE
137
	LEFT JOIN dbo.PL_COSTCENTER_DT DT ON DT.BRANCH_ID=TU.TLSUBBRID AND DT.DEP_ID=DP.DEP_ID
138
	LEFT JOIN dbo.PL_COSTCENTER PC ON PC.COST_ID=DT.COST_ID
139
	WHERE TU.TLNANME=@p_TLNAME_USER
140
	--- END LUCTV 16.11.2022
141
	INSERT INTO @COST_ID
142
	SELECT COST_ID FROM dbo.PL_COSTCENTER_DT WHERE DEP_ID=@DEP_ID AND BRANCH_ID=@p_BRANCH_LOGIN
143
	INSERT INTO @DVDM_ID
144
	SELECT DVDM_ID FROM dbo.PL_COSTCENTER WHERE COST_ID IN (SELECT COST_ID FROM @COST_ID) GROUP BY DVDM_ID
145

    
146
	---- NGUOI XU lY TIEP THEO 18022021
147
			DECLARE @lstREQUEST TABLE (
148
			REQ_ID VARCHAR(20),
149
			PROCESS_ID VARCHAR(50),
150
			DVDM_NAME NVARCHAR(200),
151
			TLNAME VARCHAR(200),
152
			TLFullName NVARCHAR(200),
153
			NOTES NVARCHAR(200)
154
		)
155
		INSERT INTO @lstREQUEST
156
		( REQ_ID,PROCESS_ID, DVDM_NAME,TLNAME,TLFullName, NOTES)
157
		    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 
158
		(
159
      SELECT REQ_ID,PROCESS_ID,NOTES,ROLE_USER,BRANCH_ID,DEP_ID,STATUS,DVDM_ID
160
      FROM dbo.PL_REQUEST_PROCESS PRC
161
      WHERE PRC.STATUS = 'C'
162
        AND EXISTS(SELECT PLRD.REQ_ID FROM dbo.PL_REQUEST_DOC PLRD WHERE PLRD.REQ_ID=PRC.REQ_ID) 
163
        AND PRC.STATUS='C' AND PRC.PROCESS_ID <>'APPROVE' AND PRC.PROCESS_ID <>'SIGN'
164
        AND (PRC.IS_HAS_CHILD = 0  OR PRC.IS_HAS_CHILD IS NULL)
165
    ) PL
166
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=PL.DVDM_ID
167
		LEFT JOIN 
168
		(
169
  		SELECT TU.TLNANME,TU.TLFullName,TU.RoleName,Temp.DVDM_ID,TU.SECUR_CODE,TU.TLSUBBRID FROM dbo.TL_USER TU 
170
  		LEFT JOIN
171
      (
172
    		SELECT PC.DVDM_ID,PD.DEP_ID,PD.BRANCH_ID
173
        FROM dbo.PL_COSTCENTER PC 
174
    		LEFT JOIN dbo.PL_COSTCENTER_DT PD ON PC.COST_ID=PD.COST_ID
175
      ) Temp ON Temp.DEP_ID=TU.SECUR_CODE AND Temp.BRANCH_ID=TU.TLSUBBRID
176
  		UNION ALL
177
  		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
178
  		LEFT JOIN dbo.TL_USER US ON US.TLNANME=TU.TLNAME
179
  		LEFT JOIN(
180
  		SELECT PC.DVDM_ID,PD.DEP_ID,PD.BRANCH_ID FROM dbo.PL_COSTCENTER PC 
181
  		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
182
  		WHERE  CAST(TU.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
183
		) TempU ON (TempU.RoleName=PL.ROLE_USER 
184
      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='') 
185
		AND (TempU.SECUR_CODE=PL.DEP_ID OR PL.DEP_ID IS NULL OR PL.DEP_ID='') 
186
		AND (TempU.DVDM_ID=PL.DVDM_ID OR PL.DVDM_ID IS NULL OR PL.DVDM_ID ='')
187
		LEFT JOIN dbo.PL_REQUEST_DOC RD ON RD.REQ_ID = PL.REQ_ID
188
		LEFT JOIN CM_BRANCH BR ON PL.BRANCH_ID = BR.BRANCH_ID
189
		WHERE PL.STATUS='C' 
190
		UNION ALL
191
		 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 
192
		(
193
      SELECT REQ_ID,PROCESS_ID,NOTES,ROLE_USER,BRANCH_ID,DEP_ID,STATUS,DVDM_ID
194
      FROM dbo.PL_REQUEST_PROCESS PRC WHERE PRC.STATUS = 'C' AND --GIANT 23/12/2021
195
			EXISTS(SELECT PLRD.REQ_ID FROM dbo.PL_REQUEST_DOC PLRD 
196
			WHERE PLRD.REQ_ID=PRC.REQ_ID 
197
		)  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
198
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=PL.DVDM_ID
199
		LEFT JOIN 
200
		(
201
		SELECT TU.TLNANME,TU.TLFullName,TU.RoleName,Temp.DVDM_ID,TU.SECUR_CODE,TU.TLSUBBRID FROM dbo.TL_USER TU 
202
		LEFT JOIN(
203
		SELECT PC.DVDM_ID,PD.DEP_ID,PD.BRANCH_ID FROM dbo.PL_COSTCENTER PC 
204
		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
205
		) 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='')))  
206
		AND (TempU.TLSUBBRID=PL.BRANCH_ID OR PL.BRANCH_ID IS NULL OR PL.BRANCH_ID='') 
207
		AND (TempU.SECUR_CODE=PL.DEP_ID OR PL.DEP_ID IS NULL OR PL.DEP_ID='') 
208
		AND (TempU.DVDM_ID=PL.DVDM_ID OR PL.DVDM_ID IS NULL OR PL.DVDM_ID ='')
209
		LEFT JOIN dbo.PL_REQUEST_DOC RD ON RD.REQ_ID = PL.REQ_ID
210
		LEFT JOIN CM_BRANCH BR ON PL.BRANCH_ID = BR.BRANCH_ID
211
		WHERE  STATUS='C' AND (PL.PROCESS_ID = 'SIGN' AND TempU.TLNANME = RD.SIGN_USER)
212

    
213
		UNION ALL
214
		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
215
		FROM 
216
		(
217
      SELECT REQ_ID,PROCESS_ID,NOTES,ROLE_USER,BRANCH_ID,DEP_ID,STATUS,IS_HAS_CHILD,DVDM_ID,ID
218
      FROM dbo.PL_REQUEST_PROCESS PRC WHERE 
219
			EXISTS(SELECT PLRD.REQ_ID FROM dbo.PL_REQUEST_DOC PLRD 
220
			WHERE PLRD.REQ_ID=PRC.REQ_ID 
221

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

    
297

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

    
331
		LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE
332
		LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE
333

    
334
		LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID
335
	
336
		LEFT JOIN dbo.PL_REQUEST_PROCESS RPN 
337
		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') )
338
		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)
339
		LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID
340
		LEFT JOIN dbo.TL_USER UC ON UC.TLNANME=A.MAKER_ID
341
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=A.DVDM_APP_ID
342
		LEFT JOIN dbo.PL_REQUEST_DOC PARENT ON PARENT.REQ_ID=A.REQ_PARENT_ID
343
		LEFT JOIN dbo.PL_REQUEST_DOC PL_B ON PL_B.REQ_ID=A.PL_BASED_ID
344
		LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME
345
		LEFT JOIN
346
		(
347
		
348
			SELECT	Results.REQ_ID,STUFF((select ', ' + RE.TLFullName  
349
			FROM @lstREQUEST RE
350
			WHERE RE.REQ_ID=Results.REQ_ID
351
			FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULY,
352
			STUFF((select ', ' + RE.TLNAME  
353
			FROM @lstREQUEST RE
354
			WHERE RE.REQ_ID=Results.REQ_ID
355
			FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULYTLNAME	
356
			FROM @lstREQUEST Results
357
			GROUP BY REQ_ID
358
		) NXL ON NXL.REQ_ID=A.REQ_ID
359

    
360
		WHERE 1 = 1
361
		
362
	    AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
363
		AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '')
364
		AND (A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '')
365
		AND (A.REQ_REASON LIKE '%' + @p_REQ_REASON + '%' OR @p_REQ_REASON IS NULL OR @p_REQ_REASON = '')
366
		AND (A.TOTAL_AMT=@p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0)
367
		AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')	
368
		AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
369
		AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
370
		
371

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

    
374

    
375
		AND	(@p_CREATE_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_CREATE_DT,103)) = 0) 
376
		AND	(@p_APPROVE_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_APPROVE_DT,103)) = 0) 
377
		AND	(@p_REQ_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_REQ_DT,103)) = 0) 
378
		AND (A.REQ_TYPE = @p_REQ_TYPE OR @p_REQ_TYPE IS NULL OR @p_REQ_TYPE =-1)
379
		AND A.RECORD_STATUS = '1'
380
		
381
		AND(
382
			@p_REQ_TYPE = -1  OR @p_REQ_TYPE IS NULL
383
			OR
384
				(
385
					@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)
386
				)
387
				OR
388
				(
389
						@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)
390
				)
391
			)
392

    
393
		AND    (A.MAKER_ID=@p_TLNAME_USER
394
        OR (A.PROCESS_ID ='APPROVE' AND A.BRANCH_CREATE=@p_BRANCH_LOGIN AND (A.DEP_CREATE=@DEP_ID OR @BRANCH_TYPE<>'HS'))
395
				OR EXISTS(SELECT ID FROM dbo.PL_ROLE_DATA_CONFIG PLRDC WHERE PLRDC.ROLE_TYPE='PL_REQUEST_DOC_ALL'
396
          AND (PLRDC.BRANCH_ID=@p_TLNAME_USER OR (PLRDC.BRANCH_ID = @p_BRANCH_LOGIN AND PLRDC.DEP_ID = @DEP_ID)))
397
				OR EXISTS(SELECT * FROM dbo.PL_REQUEST_PROCESS PLRP WHERE PLRP.PROCESS_ID='APPNEW' AND PLRP.REQ_ID=A.REQ_ID
398
																			AND EXISTS(SELECT AUTH.ROLE_ID FROM @AUTHOR AUTH WHERE AUTH.ROLE_ID=PLRP.ROLE_USER AND AUTH.BRANCH_ID=PLRP.BRANCH_ID 
399
																														AND(PLRP.DEP_ID=AUTH.DEP_ID OR PLRP.DEP_ID IS NULL OR PLRP.DEP_ID ='') ))
400
			--	
401
				
402
				--OR (EXISTS(SELECT * FROM dbo.PL_REQUEST_PROCESS PLRP WHERE A.REQ_ID=PLRP.REQ_ID AND PLRP.PROCESS_ID='APPNEW' 
403
				--												AND PLRP.ROLE_USER IN (SELECT ROLE_ID FROM @TABLE_ROLE) AND PLRP.BRANCH_ID=@p_BRANCH_LOGIN 
404
				--												AND (PLRP.DEP_ID=@DEP_ID OR PLRP.DEP_ID IS NULL OR PLRP.DEP_ID =''))) 
405
			--
406

    
407

    
408
		OR(A.SIGN_USER IS NOT NULL AND A.SIGN_USER <>'' AND A.SIGN_USER  =@p_TLNAME_USER AND A.AUTH_STATUS<>'E'))
409
		--
410
		--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 = '')
411
		--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 ='')))))
412
		--
413
		--AND (A.AUTH_STATUS = @p_AUTH_STATUS OR @p_AUTH_STATUS ='' OR @p_AUTH_STATUS IS NULL)
414
		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'))
415
			OR (@p_AUTH_STATUS ='E' AND A.AUTH_STATUS =@p_AUTH_STATUS)
416
			OR (@p_AUTH_STATUS ='R' AND A.AUTH_STATUS =@p_AUTH_STATUS)
417
			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'))
418
			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'))
419
			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'))
420
			OR (@p_AUTH_STATUS ='' OR @p_AUTH_STATUS IS NULL)
421
		)
422
		AND(@p_FR_DATE IS NULL OR @p_REQ_CODE IS NOT NULL OR CONVERT(DATETIME,A.REQ_DT,103) >= CONVERT(DATETIME,@p_FR_DATE,103))
423
		AND(@p_TO_DATE IS NULL OR @p_REQ_CODE IS NOT NULL OR CONVERT(DATETIME,A.REQ_DT,103) <= CONVERT(DATETIME,@p_TO_DATE,103))	
424
		AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR)	
425
--		AND( NXL.NGUOIXULYTLNAME LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = ''
426
--			OR NXL.NGUOIXULY LIKE '%' + @p_NGUOIXULY  + '%')
427

    
428
		AND (A.BRANCH_ID = @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
429
		AND (A.DEP_ID = @p_DEP_ID OR @p_DEP_ID IS NULL OR @p_DEP_ID = '')
430
		
431
		-- GIANT 26/10/2021
432
		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))
433

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

    
437
		ORDER BY A.CREATE_DT DESC
438
	-- PAGING END
439
	END
440
	ELSE IF(@p_TYPE='PDTT')
441
	BEGIN
442
		-- PAGING BEGIN
443
		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,
444
               A.TOTAL_AMT AS TOTAL_AMT,A.NOTES, A.RECORD_STATUS,A.MAKER_ID,A.CREATE_DT,A.AUTH_STATUS,A.CHECKER_ID,
445

    
446
			   UDV.TLFullName AS CHECKER_NAME_DV,
447
			  
448
			   A.APPROVE_DT,
449
               A.PROCESS_ID,
450
			   D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME_DV,
451
			   CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt'
452
			   ELSE N'Chờ duyệt' END AS AUTH_STATUS_NAME,
453
			   G.BRANCH_CODE,
454
			   G.BRANCH_NAME,
455
			   UP.TLFullName AS CHECKER_NAME_PROCESS,
456
			   RP.APPROVE_DT AS APPROVE_DT_PROCESS,
457
			   UC.TLFullName AS MAKER_NAME,
458
			   RPN.PROCESS_ID AS PROCESS_ID_NEXT,
459
			   RPN.ROLE_USER, 
460
			   RP.NOTES AS PROCESS_STATUS , 
461
			   RPN.NOTES AS PROCESS_STATUS_NEXT,
462
			   A.DVDM_APP_ID,
463
			   CD.DVDM_NAME AS DVDM_APP_NAME,
464
			   A.REQ_PARENT_ID,
465
			   PARENT.REQ_NAME AS REQ_PARENT_NAME,
466
			   PARENT.REQ_CODE AS REQ_PARENT_CODE,
467
			   PARENT.TOTAL_AMT AS REQ_PARENT_AMT,
468
			   A.BRANCH_FEE,
469
			   A.DEP_ID,
470
			   A.DEP_FEE,
471
			   DEP.DEP_NAME,
472
			   DEP.DEP_CODE,
473
			   BF.BRANCH_NAME AS BRANCH_FEE_NAME,
474
			   BF.BRANCH_CODE AS BRANCH_FEE_CODE,
475
			   DF.DEP_NAME AS DEP_FEE_NAME,
476
			   DF.DEP_CODE AS DEP_FEE_CODE,
477
			   '' AS BRANCH_DEP,
478
			   '' AS BRANCH_DEP_FEE,
479
			   
480

    
481

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

    
518
		LEFT JOIN dbo.CM_DEPARTMENT DEP ON DEP.DEP_ID=A.DEP_ID
519
		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')
520
		LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE
521
		LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE
522
		LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID
523
		LEFT JOIN dbo.TL_USER UC ON UC.TLNANME=A.MAKER_ID
524
		LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID
525
		LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=RPC.TLNAME
526
		LEFT JOIN dbo.TL_USER TFM ON TFM.TLNANME=RPC.MAKER_ID
527
		LEFT JOIN dbo.CM_PROCESS_STATUS PS ON PS.PROCESS_ID = A.PROCESS_ID
528
		LEFT JOIN dbo.CM_PROCESS_STATUS PSN ON PSN.PROCESS_ID = A.PROCESS_ID
529
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=A.DVDM_APP_ID
530
		LEFT JOIN dbo.PL_REQUEST_DOC PARENT ON PARENT.REQ_ID=A.REQ_PARENT_ID
531
		LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME
532
		LEFT JOIN
533
		(
534
		
535
		SELECT	Results.REQ_ID,STUFF((select ', ' + RE.TLFullName  
536
		FROM @lstREQUEST RE
537
		WHERE RE.REQ_ID=Results.REQ_ID
538
		FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULY,
539
		STUFF((select ', ' + RE.TLNAME  
540
		FROM @lstREQUEST RE
541
		WHERE RE.REQ_ID=Results.REQ_ID
542
		FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULYTLNAME	
543
		FROM @lstREQUEST Results
544
		GROUP BY REQ_ID
545
		) NXL ON NXL.REQ_ID=A.REQ_ID
546

    
547
		WHERE 1 = 1
548
	  AND (@p_REQ_CODE IS NULL OR @p_REQ_CODE = '' OR A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%')
549
		AND (@p_REQ_ID IS NULL OR @p_REQ_ID = '' OR A.REQ_ID LIKE '%' + @p_REQ_ID + '%')
550
		AND (@p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '' OR A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%')
551
		AND (@p_REQ_REASON IS NULL OR @p_REQ_REASON = '' OR A.REQ_REASON LIKE '%' + @p_REQ_REASON + '%')
552
		AND (@p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0 OR A.TOTAL_AMT=@p_TOTAL_AMT)
553
		AND (@p_REQ_NAME IS NULL OR @p_REQ_NAME = '' OR A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%')	
554
--		AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
555
		AND (@p_MAKER_ID IS NULL OR @p_MAKER_ID = '' OR A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%')
556
		AND (@p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '' OR A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%')
557
		AND	(@p_CREATE_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_CREATE_DT,103)) = 0) 
558
		AND	(@p_APPROVE_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_APPROVE_DT,103)) = 0) 
559
		AND	(@p_REQ_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_REQ_DT,103)) = 0) 
560
		AND (@p_REQ_TYPE IS NULL OR @p_REQ_TYPE =-1 OR A.REQ_TYPE = @p_REQ_TYPE)
561
		--AND (@p_RECEIVE_BRANCH IS NULL OR A.PO_ID IN (SELECT PO_ID FROM TR_PO_DETAIL WHERE RECEIVE_BRANCH=@p_RECEIVE_BRANCH))
562
		AND A.RECORD_STATUS = '1'
563

    
564
--		AND(@p_REQ_TYPE = -1  OR @p_REQ_TYPE IS NULL
565
--			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))
566
--			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))
567
--    )
568

    
569
		AND EXISTS(SELECT AUTH.ROLE_ID FROM @AUTHOR_DVDM AUTH WHERE AUTH.ROLE_ID=PLRP.ROLE_USER AND (
570
			(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=''))
571
			OR PLRP.DVDM_ID=AUTH.DVDM_ID
572
			OR ((PLRP.DVDM_ID ='' OR PLRP.DVDM_ID  IS NULL) AND (PLRP.BRANCH_ID IS NULL OR PLRP.BRANCH_ID=''))
573
		))
574
		--AND PLRP.ROLE_USER IN (SELECT ROLE_ID FROM @TABLE_ROLE) 
575
		--AND (
576
		--  (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='')) 
577
		--OR ( PLRP.DVDM_ID IN (SELECT DVDM_ID FROM @DVDM_ID))
578
		--OR
579
		--( (PLRP.DVDM_ID ='' OR PLRP.DVDM_ID  IS NULL) AND (PLRP.BRANCH_ID IS NULL OR PLRP.BRANCH_ID=''))	
580
		--)
581
		AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR)	
582
		AND (PLRP.IS_HAS_CHILD=0 OR PLRP.IS_HAS_CHILD IS NULL)
583
		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 = '')
584
		AND(@p_FR_DATE IS NULL OR @p_REQ_CODE IS NOT NULL OR CONVERT(DATETIME,A.REQ_DT,103) >= CONVERT(DATETIME,@p_FR_DATE,103))
585
		AND(@p_TO_DATE IS NULL OR @p_REQ_CODE IS NOT NULL OR CONVERT(DATETIME,A.REQ_DT,103) <= CONVERT(DATETIME,@p_TO_DATE,103))	
586
--		AND( NXL.NGUOIXULYTLNAME LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = ''
587
--			OR NXL.NGUOIXULY LIKE '%' + @p_NGUOIXULY  + '%')
588
		--AND(
589
		--	(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
590
		--	OR
591
		--	(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',1) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
592
		--)
593

    
594
		--AND (A.BRANCH_ID = @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
595
		--AND (A.DEP_ID = @p_DEP_ID OR @p_DEP_ID IS NULL OR @p_DEP_ID = '')
596
		
597
		-- GIANT 26/10/2021
598
		AND (EXISTS (SELECT PL_REQUEST_DOC_DT.REQ_ID FROM PL_REQUEST_DOC_DT WHERE PL_REQUEST_DOC_DT.REQ_ID = A.REQ_ID))
599
		AND (A.PROCESS_ID IN ('GDK_TT','PTGDK_TT','TGD','HDQT','GDK_DC','APPROVE','GDK_TC')) -- LUCTV 24.11.2022 BO SUNG DIEU KIEN DE CHAN KHONG CHO LANH DAO TIM KIEM NEU PHIEU CHUA TOI
600
		ORDER BY A.CREATE_DT DESC
601
	-- PAGING END
602
	END
603
	ELSE IF(@p_TYPE='TFJOB')
604
	BEGIN
605
		-- PAGING BEGIN
606
				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,
607
              A.TOTAL_AMT AS TOTAL_AMT,A.NOTES, A.RECORD_STATUS,A.MAKER_ID,A.CREATE_DT,A.AUTH_STATUS,A.CHECKER_ID,
608

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

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

    
772
		---- GIANT 26/10/2021
773
		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))
774

    
775
		---- GIANT 
776
		--AND (A.BRANCH_CREATE = @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
777
		--AND (A.DEP_CREATE = @p_DEP_ID OR @p_DEP_ID IS NULL OR @p_DEP_ID = '')
778

    
779
	ORDER BY A.CREATE_DT DESC
780
	-- PAGING END
781
	END
782
	ELSE IF(@p_TYPE='XLTT')
783
	BEGIN
784
	-- PAGING BEGIN		
785
				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,
786
             A.TOTAL_AMT AS TOTAL_AMT,A.NOTES, A.RECORD_STATUS,A.MAKER_ID,A.CREATE_DT,A.AUTH_STATUS,A.CHECKER_ID,
787

    
788
			   UDV.TLFullName AS CHECKER_NAME_DV,
789
			  
790
			   A.APPROVE_DT,
791
               A.PROCESS_ID,
792
			   D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME_DV,
793
			   CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt'
794
			   ELSE N'Chờ duyệt' END AS AUTH_STATUS_NAME,
795
			   G.BRANCH_CODE,
796
			   CASE WHEN A.BRANCH_CREATE <> 'DV0001' THEN G.BRANCH_NAME ELSE G.BRANCH_NAME+' - ' + DEP.DEP_NAME END AS BRANCH_NAME,
797
			   UP.TLFullName AS CHECKER_NAME_PROCESS,
798
			   RP.APPROVE_DT AS APPROVE_DT_PROCESS,
799
			   UC.TLFullName AS MAKER_NAME,
800
			   RPN.PROCESS_ID AS PROCESS_ID_NEXT,
801
			   RPN.ROLE_USER, 
802
			   RP.NOTES AS PROCESS_STATUS , 
803
			   RPN.NOTES AS PROCESS_STATUS_NEXT,
804
			   A.DVDM_APP_ID,
805
			   CD.DVDM_NAME AS DVDM_APP_NAME,
806
			   A.REQ_PARENT_ID,
807
			   PARENT.REQ_NAME AS REQ_PARENT_NAME,
808
			   PARENT.REQ_CODE AS REQ_PARENT_CODE,
809
			   PARENT.TOTAL_AMT AS REQ_PARENT_AMT,
810
			   A.BRANCH_FEE,
811
			   A.DEP_ID,
812
			   A.DEP_FEE,
813
			   DEP.DEP_NAME,
814
			   DEP.DEP_CODE,
815
			   BF.BRANCH_NAME AS BRANCH_FEE_NAME,
816
			   BF.BRANCH_CODE AS BRANCH_FEE_CODE,
817
			   DF.DEP_NAME AS DEP_FEE_NAME,
818
			   DF.DEP_CODE AS DEP_FEE_CODE,
819
			   '' AS BRANCH_DEP,
820
			   '' AS BRANCH_DEP_FEE,
821
			   
822

    
823

    
824
			   RPC.TYPE_JOB AS TYPE_JOB,
825
			   RPC.TLNAME AS USER_JOB,
826
			   TU.TLFullName AS USER_JOB_NAME,
827
			   TFM.TLNANME AS TRANSFER_MAKER,
828
			    RPC.TRANFER_DT AS TRANFER_DT ,
829
				RPC.MAKER_ID AS TRANSFER_MAKER_ID,
830
			   A.EFFEC_DT,A.IS_BACKDAY,
831
			   '' AS TYPE_JOB_XL,
832
			   '' AS USER_JOB_XL,
833
			   PLRP.ID AS REF_ID,
834
			   RPN.STATUS AS STATUS_NEXT,
835
			   PLRP.STATUS AS STATUS_CURR,
836
			   RPC.STATUS_JOB AS STATUS_JOB,
837
			   A.BRANCH_CREATE,
838
			   A.DEP_CREATE,
839
			   A.REQ_LINE,
840
			   A.TC_NOTES,
841
			   A.SIGN_USER, TL.TLFullName AS SIGN_USER_NAME,
842
			   A.KT_NOTES,
843
			     A.IS_CHECKALL,
844
			   A.BASED_CONTENT, 
845
			   '' AS IS_TRANSFER,
846
			   --NGUOI XU LY
847
			   --dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) AS NGUOIXULY
848
			    NXL.NGUOIXULY AS NGUOIXULY,A.TK_TGD_NOTES, A.OTHER_NOTES,A.TK_HDQT_NOTES
849
			-- SELECT END
850
		FROM PL_REQUEST_DOC A 	
851
		INNER JOIN dbo.PL_REQUEST_PROCESS PLRP ON PLRP.REQ_ID=A.REQ_ID AND PLRP.STATUS <> 'U' AND PLRP.IS_HAS_CHILD=1
852
		LEFT JOIN dbo.PL_REQUEST_PROCESS RPN 
853
		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') )
854
		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)	
855
		LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
856
		LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID
857
		LEFT JOIN dbo.CM_DEPARTMENT DEP ON DEP.DEP_ID=A.DEP_ID
858

    
859
		LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE
860
		LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE
861
		LEFT JOIN dbo.TL_USER UC ON UC.TLNANME=A.MAKER_ID
862
		LEFT JOIN dbo.CM_PROCESS_STATUS PS ON PS.PROCESS_ID = A.PROCESS_ID
863
		LEFT JOIN dbo.CM_PROCESS_STATUS PSN ON PSN.PROCESS_ID = A.PROCESS_ID
864
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=A.DVDM_APP_ID
865
		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')
866
		
867
		LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID
868
	
869
		LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID
870
		LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=RPC.TLNAME
871
		LEFT JOIN dbo.TL_USER TFM ON TFM.TLNANME=RPC.MAKER_ID
872
		LEFT JOIN dbo.PL_REQUEST_DOC PARENT ON PARENT.REQ_ID=A.REQ_PARENT_ID
873
		LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME
874
		LEFT JOIN
875
		(
876
		
877
		SELECT	Results.REQ_ID,STUFF((select ', ' + RE.TLFullName  
878
		FROM @lstREQUEST RE
879
		WHERE RE.REQ_ID=Results.REQ_ID
880
		FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULY,
881
		STUFF((select ', ' + RE.TLNAME  
882
		FROM @lstREQUEST RE
883
		WHERE RE.REQ_ID=Results.REQ_ID
884
		FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULYTLNAME	
885
		FROM @lstREQUEST Results
886
		GROUP BY REQ_ID
887
		) NXL ON NXL.REQ_ID=A.REQ_ID
888

    
889
		WHERE 1 = 1
890
    AND (@p_REQ_CODE IS NULL OR @p_REQ_CODE = '' OR A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%')
891
		AND (@p_REQ_ID IS NULL OR @p_REQ_ID = '' OR A.REQ_ID LIKE '%' + @p_REQ_ID + '%')
892
		AND (@p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '' OR A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%')
893
		AND (@p_REQ_REASON IS NULL OR @p_REQ_REASON = '' OR A.REQ_REASON LIKE '%' + @p_REQ_REASON + '%')
894
		AND (@p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0 OR A.TOTAL_AMT=@p_TOTAL_AMT)
895
		AND (@p_REQ_NAME IS NULL OR @p_REQ_NAME = '' OR A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%')	
896
--		AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
897
		AND (@p_MAKER_ID IS NULL OR @p_MAKER_ID = '' OR A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%')
898
		
899
		AND (@p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '' OR A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%')
900
		AND	(@p_CREATE_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_CREATE_DT,103)) = 0) 
901
		AND	(@p_APPROVE_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_APPROVE_DT,103)) = 0) 
902
		AND	(@p_REQ_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_REQ_DT,103)) = 0) 
903
		AND (@p_REQ_TYPE IS NULL OR @p_REQ_TYPE =-1 OR A.REQ_TYPE = @p_REQ_TYPE)
904
		--AND (@p_RECEIVE_BRANCH IS NULL OR A.PO_ID IN (SELECT PO_ID FROM TR_PO_DETAIL WHERE RECEIVE_BRANCH=@p_RECEIVE_BRANCH))
905
		AND A.RECORD_STATUS = '1'
906

    
907

    
908
--		AND(@p_REQ_TYPE = -1  OR @p_REQ_TYPE IS NULL
909
--			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))
910
--			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))
911
--    )
912

    
913

    
914
		
915
		AND(EXISTS(SELECT ID FROM dbo.PL_REQUEST_PROCESS_CHILD WHERE TLNAME=@p_TLNAME_USER  AND PL_REQUEST_PROCESS_CHILD.PROCESS_ID=PLRP.ID)
916
			OR EXISTS(SELECT AUTH.ROLE_ID FROM @AUTHOR_DVDM AUTH WHERE AUTH.ROLE_ID=PLRP.ROLE_USER
917
        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=''))
918
				  OR PLRP.DVDM_ID=AUTH.DVDM_ID
919
				  OR ((PLRP.DVDM_ID ='' OR PLRP.DVDM_ID  IS NULL) AND (PLRP.BRANCH_ID IS NULL OR PLRP.BRANCH_ID='')))
920
        )
921
	  )
922
		AND(@p_FR_DATE IS NULL OR @p_REQ_CODE IS NOT NULL OR CONVERT(DATETIME,A.REQ_DT,103) >= CONVERT(DATETIME,@p_FR_DATE,103))
923
		AND(@p_TO_DATE IS NULL OR @p_REQ_CODE IS NOT NULL OR CONVERT(DATETIME,A.REQ_DT,103) <= CONVERT(DATETIME,@p_TO_DATE,103))	
924
		AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR)		
925
		AND (@p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = ''
926
      OR ( @p_AUTH_STATUS='TDV_APPROVED' AND  PLRP.STATUS='P')
927
			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'))
928
			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'))
929
			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'))
930
    ) 
931
	
932
--		AND(@p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = ''
933
--      OR NXL.NGUOIXULYTLNAME LIKE '%' + @p_NGUOIXULY  + '%'
934
--			OR NXL.NGUOIXULY LIKE '%' + @p_NGUOIXULY  + '%'
935
--    )
936
		--AND(
937
		--	(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
938
		--	OR
939
		--	(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',1) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
940
		--)
941

    
942
		--
943
		AND (@p_BRANCH_ID IS NULL OR @p_BRANCH_ID = ''
944
      OR A.BRANCH_ID = @p_BRANCH_ID
945
    )
946
		AND (@p_DEP_ID IS NULL OR @p_DEP_ID = ''
947
      OR A.DEP_ID = @p_DEP_ID
948
    )
949
		-- LUCTV 10 03 2021 BO SUNG DIEU KIENN NEU PHIEU CHUA DUOC DIEU PHOI THI SE KHONG TIM THAY O MAN HINH DVCM
950
		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'))) 
951
			OR (@p_NGUOIXULY IS NOT NULL AND @p_NGUOIXULY <> ''))
952

    
953
		-- GIANT 26/10/2021
954
		AND (EXISTS (SELECT PL_REQUEST_DOC_DT.REQ_ID FROM PL_REQUEST_DOC_DT WHERE PL_REQUEST_DOC_DT.REQ_ID = A.REQ_ID))
955
	ORDER BY A.CREATE_DT DESC
956
	-- PAGING END
957
	END
958
	ELSE IF(@p_TYPE='DVKD_PARENT')
959
	BEGIN
960
	-- PAGING BEGIN
961
		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,
962
              A.TOTAL_AMT AS TOTAL_AMT,A.NOTES, A.RECORD_STATUS,A.MAKER_ID,A.CREATE_DT,A.AUTH_STATUS,A.CHECKER_ID,
963
			   UDV.TLFullName AS CHECKER_NAME_DV,
964
			   A.APPROVE_DT,
965
               A.PROCESS_ID,
966
			   D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME_DV,
967

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

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

    
1033
		LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE
1034
		LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE
1035

    
1036
		LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID
1037
	
1038
		LEFT JOIN dbo.PL_REQUEST_PROCESS RPN 
1039
		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') )
1040
		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)
1041
		LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID
1042
		LEFT JOIN dbo.TL_USER UC ON UC.TLNANME=A.MAKER_ID
1043
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=A.DVDM_APP_ID
1044
		LEFT JOIN dbo.PL_REQUEST_DOC PARENT ON PARENT.REQ_ID=A.REQ_PARENT_ID
1045
		-- GIANT 23/12/2021
1046
		LEFT JOIN dbo.PL_REQUEST_DOC PL_B ON PL_B.REQ_ID=A.PL_BASED_ID
1047

    
1048
		LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME
1049
		LEFT JOIN
1050
		(
1051
		
1052
		SELECT	Results.REQ_ID,STUFF((select ', ' + RE.TLFullName  
1053
		FROM @lstREQUEST RE
1054
		WHERE RE.REQ_ID=Results.REQ_ID
1055
		FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULY,
1056
		STUFF((select ', ' + RE.TLNAME  
1057
		FROM @lstREQUEST RE
1058
		WHERE RE.REQ_ID=Results.REQ_ID
1059
		FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULYTLNAME	
1060
		FROM @lstREQUEST Results
1061
		GROUP BY REQ_ID
1062
		) NXL ON NXL.REQ_ID=A.REQ_ID
1063
		WHERE 1 = 1
1064
		
1065
	    --AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
1066
		--AND ((A.BRANCH_CREATE = @p_BRANCH_LOGIN AND( A.DEP_CREATE=@DEP_ID OR @BRANCH_TYPE <>'HS')) OR A.IS_CHECKALL=1)
1067
		--AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR)	
1068
		--AND (ISNULL(A.PROCESS_ID,'') ='APPROVE')	
1069

    
1070
		--AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '')
1071
		--AND (A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '')
1072
		--AND (A.REQ_REASON LIKE '%' + @p_REQ_REASON + '%' OR @p_REQ_REASON IS NULL OR @p_REQ_REASON = '')
1073
		--AND (A.TOTAL_AMT=@p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0)
1074
		--AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')	
1075
		--AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
1076
		--AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
1077
	
1078
		--AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
1079
		--AND	(@p_CREATE_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_CREATE_DT,103)) = 0) 
1080
		--AND	(@p_APPROVE_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_APPROVE_DT,103)) = 0) 
1081
		--AND	(@p_REQ_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_REQ_DT,103)) = 0) 
1082
		--AND A.RECORD_STATUS = '1'
1083
		
1084
		AND (A.REQ_TYPE = @p_REQ_TYPE OR @p_REQ_TYPE IS NULL OR @p_REQ_TYPE =-1)
1085
		AND(
1086
			@p_REQ_TYPE = -1  OR @p_REQ_TYPE IS NULL
1087
			OR
1088
				(
1089
					@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)
1090
				)
1091
				OR
1092
				(
1093
					@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)
1094
				)
1095
			)
1096

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

    
1099
		--AND(@p_FR_DATE IS NULL OR CONVERT(DATETIME,A.REQ_DT,103) >= CONVERT(DATETIME,@p_FR_DATE,103))
1100
		--AND(@p_TO_DATE IS NULL OR CONVERT(DATETIME,A.REQ_DT,103) <= CONVERT(DATETIME,@p_TO_DATE,103))	
1101
		--AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR)	
1102
		--AND(A.REQ_PARENT_ID IS NULL OR A.REQ_PARENT_ID='')
1103
		--AND( NXL.NGUOIXULYTLNAME LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = ''
1104
		--	OR NXL.NGUOIXULY LIKE '%' + @p_NGUOIXULY  + '%')
1105
		--AND(
1106
		--	(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
1107
		--	OR
1108
		--	(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',1) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
1109
		--)
1110

    
1111
		--AND (A.BRANCH_ID = @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
1112
		--AND (A.DEP_ID = @p_DEP_ID OR @p_DEP_ID IS NULL OR @p_DEP_ID = '')
1113
		--AND (A.MAKER_ID = @p_TLNAME_USER)
1114

    
1115
		AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
1116
		AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')	
1117
		--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)
1118
		----------BAODNQ 25/10/2022 : FIX POPUP TÌM KIẾM TTCT Ở PYCMS--------------------
1119
		----------NẾU KO PH TT TOÀN HÀNG THÌ CHỈ TÌM KIẾM DC TTCT THEO PHÒNG BAN NẾU Ở HỘI SỞ-----
1120
		AND (
1121
			(A.BRANCH_CREATE = @p_BRANCH_LOGIN 
1122
				AND( A.DEP_CREATE=@DEP_ID OR @BRANCH_TYPE <>'HS')
1123
			) 
1124
			OR A.IS_CHECKALL=1 OR A.MAKER_ID =@p_TLNAME_USER OR A.MAKER_ID =@p_MAKER_ID --- LUCTV 02.11.2022 HOTFIX LỖI KHÔNG SEARCH ĐC TTCT DO CODE KHÔNG TRUYỀN @p_TLNAME_USER XUỐNG
1125
		)
1126
		---------------------------------END BAODNQ-------------------------
1127
		AND(@p_FR_DATE IS NULL OR CONVERT(DATETIME,A.REQ_DT,103) >= CONVERT(DATETIME,@p_FR_DATE,103))
1128
		AND(@p_TO_DATE IS NULL OR CONVERT(DATETIME,A.REQ_DT,103) <= CONVERT(DATETIME,@p_TO_DATE,103))	
1129
		AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR)		
1130
		AND (ISNULL(A.PROCESS_ID,'') ='APPROVE')
1131

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

    
1174

    
1175
			   '' AS TYPE_JOB,
1176
			   '' AS USER_JOB,
1177
			   '' AS USER_JOB_NAME,
1178
			   '' AS TRANSFER_MAKER,
1179
			    A.CREATE_DT AS TRANFER_DT ,
1180
				'' AS TRANSFER_MAKER_ID,
1181
			   A.EFFEC_DT,A.IS_BACKDAY,
1182
			   '' AS TYPE_JOB_XL,
1183
			   '' AS USER_JOB_XL,
1184
			   RP.ID AS REF_ID,
1185
			   RPN.STATUS AS STATUS_NEXT,
1186
			   RP.STATUS AS STATUS_CURR,
1187
			   '' AS STATUS_JOB,
1188
			   A.BRANCH_CREATE,
1189
			   A.DEP_CREATE,
1190
			   A.REQ_LINE,
1191
			   A.TC_NOTES, A.SIGN_USER, TL.TLFullName AS SIGN_USER_NAME,
1192
			   A.KT_NOTES,
1193
			     A.IS_CHECKALL,
1194
			   A.BASED_CONTENT, 
1195
			   '' AS IS_TRANSFER,
1196
			   --NGUOI XU LY
1197
			   --dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) AS NGUOIXULY
1198
			    NXL.NGUOIXULY AS NGUOIXULY,A.TK_TGD_NOTES, A.OTHER_NOTES,A.TK_HDQT_NOTES
1199
			-- SELECT END
1200
		FROM PL_REQUEST_DOC A 		
1201
		LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
1202
		LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID
1203
		LEFT JOIN dbo.CM_DEPARTMENT DEP ON DEP.DEP_ID=A.DEP_ID
1204

    
1205
		LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE
1206
		LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE
1207

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

    
1262
		AND A.IS_CHECKALL=1
1263

    
1264
		AND A.PROCESS_ID='APPROVE'
1265
		AND(@p_FR_DATE IS NULL OR CONVERT(DATETIME,A.REQ_DT,103) >= CONVERT(DATETIME,@p_FR_DATE,103))
1266
		AND(@p_TO_DATE IS NULL OR CONVERT(DATETIME,A.REQ_DT,103) <= CONVERT(DATETIME,@p_TO_DATE,103))	
1267
		AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR)	
1268
		AND(A.REQ_PARENT_ID IS NULL OR A.REQ_PARENT_ID='')
1269
			AND( NXL.NGUOIXULYTLNAME LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = ''
1270
			OR NXL.NGUOIXULY LIKE '%' + @p_NGUOIXULY  + '%')
1271
		--AND(
1272
		--	(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
1273
		--	OR
1274
		--	(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',1) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
1275
		--)
1276

    
1277
		--AND (A.BRANCH_ID = @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
1278
		--AND (A.DEP_ID = @p_DEP_ID OR @p_DEP_ID IS NULL OR @p_DEP_ID = '')
1279
		
1280
		-- GIANT 26/10/2021
1281
		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))
1282

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

    
1325

    
1326
			   '' AS TYPE_JOB,
1327
			   '' AS USER_JOB,
1328
			   '' AS USER_JOB_NAME,
1329
			   '' AS TRANSFER_MAKER,
1330
			    A.CREATE_DT AS TRANFER_DT ,
1331
				'' AS TRANSFER_MAKER_ID,
1332
			   A.EFFEC_DT,A.IS_BACKDAY,
1333
			   '' AS TYPE_JOB_XL,
1334
			   '' AS USER_JOB_XL,
1335
			   RP.ID AS REF_ID,
1336
			   RPN.STATUS AS STATUS_NEXT,
1337
			   RP.STATUS AS STATUS_CURR,
1338
			   '' AS STATUS_JOB,
1339
			   A.BRANCH_CREATE,
1340
			   A.DEP_CREATE,
1341
			   A.REQ_LINE,
1342
			   A.TC_NOTES, A.SIGN_USER, TL.TLFullName AS SIGN_USER_NAME,
1343
			   A.KT_NOTES,
1344
			     A.IS_CHECKALL,
1345
			   A.BASED_CONTENT, 
1346
			   '' AS IS_TRANSFER,
1347
			   --NGUOI XU LY
1348
			   --dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) AS NGUOIXULY
1349
			    NXL.NGUOIXULY AS NGUOIXULY,A.TK_TGD_NOTES, A.OTHER_NOTES,A.TK_HDQT_NOTES
1350
		-- SELECT END
1351
		FROM PL_REQUEST_DOC A 		
1352
		LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
1353
		LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID
1354
		LEFT JOIN dbo.CM_DEPARTMENT DEP ON DEP.DEP_ID=A.DEP_ID
1355

    
1356
		LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE
1357
		LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE
1358

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

    
1413
		AND (  
1414
		 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) )
1415
		)
1416

    
1417
		AND A.PROCESS_ID='APPROVE'
1418
		AND(@p_FR_DATE IS NULL OR CONVERT(DATETIME,A.REQ_DT,103) >= CONVERT(DATETIME,@p_FR_DATE,103))
1419
		AND(@p_TO_DATE IS NULL OR CONVERT(DATETIME,A.REQ_DT,103) <= CONVERT(DATETIME,@p_TO_DATE,103))	
1420
		AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR)	
1421
		AND(A.REQ_PARENT_ID IS NULL OR A.REQ_PARENT_ID='')
1422
			AND( NXL.NGUOIXULYTLNAME LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = ''
1423
			OR NXL.NGUOIXULY LIKE '%' + @p_NGUOIXULY  + '%')
1424
		--AND(
1425
		--	(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
1426
		--	OR
1427
		--	(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',1) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
1428
		--)
1429

    
1430

    
1431
		--AND (A.BRANCH_ID = @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
1432
		--AND (A.DEP_ID = @p_DEP_ID OR @p_DEP_ID IS NULL OR @p_DEP_ID = '')
1433

    
1434
		-- GIANT 26/10/2021
1435
		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))
1436

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

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

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

    
1714
		LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE
1715
		LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE
1716

    
1717
		LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID
1718
	
1719
		LEFT JOIN dbo.PL_REQUEST_PROCESS RPN 
1720
		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') )
1721
		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)
1722
		LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID
1723
		LEFT JOIN dbo.TL_USER UC ON UC.TLNANME=A.MAKER_ID
1724
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=A.DVDM_APP_ID
1725
		LEFT JOIN dbo.PL_REQUEST_DOC PARENT ON PARENT.REQ_ID=A.REQ_PARENT_ID
1726
		-- GIANT 23/12/2021
1727
		LEFT JOIN dbo.PL_REQUEST_DOC PL_B ON PL_B.REQ_ID=A.PL_BASED_ID
1728

    
1729
		LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME
1730
		LEFT JOIN
1731
		(
1732
		
1733
		SELECT	Results.REQ_ID,STUFF((select ', ' + RE.TLFullName  
1734
		FROM @lstREQUEST RE
1735
		WHERE RE.REQ_ID=Results.REQ_ID
1736
		FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULY,
1737
		STUFF((select ', ' + RE.TLNAME  
1738
		FROM @lstREQUEST RE
1739
		WHERE RE.REQ_ID=Results.REQ_ID
1740
		FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULYTLNAME	
1741
		FROM @lstREQUEST Results
1742
		GROUP BY REQ_ID
1743
		) NXL ON NXL.REQ_ID=A.REQ_ID
1744
		WHERE 1 = 1
1745
		AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
1746
		AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')	
1747
		AND ((A.BRANCH_CREATE = @p_BRANCH_LOGIN AND( A.DEP_CREATE=@DEP_ID OR @BRANCH_TYPE <>'HS')) OR A.IS_CHECKALL=1)
1748
		AND(@p_FR_DATE IS NULL OR CONVERT(DATETIME,A.REQ_DT,103) >= CONVERT(DATETIME,@p_FR_DATE,103))
1749
		AND(@p_TO_DATE IS NULL OR CONVERT(DATETIME,A.REQ_DT,103) <= CONVERT(DATETIME,@p_TO_DATE,103))	
1750
		AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR)		
1751
		AND (ISNULL(A.PROCESS_ID,'') ='APPROVE')
1752
		AND (A.REQ_TYPE = @p_REQ_TYPE OR @p_REQ_TYPE IS NULL OR @p_REQ_TYPE =-1)
1753
		AND(
1754
			@p_REQ_TYPE = -1  OR @p_REQ_TYPE IS NULL
1755
			OR
1756
				(
1757
					@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)
1758
				)
1759
				OR
1760
				(
1761
					@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)
1762
				)
1763
			)
1764
		AND (EXISTS(SELECT REQDT_ID FROM dbo.PL_REQUEST_DOC_DT WHERE REQ_ID = A.REQ_ID))
1765

    
1766
		ORDER BY A.CREATE_DT DESC
1767
	-- PAGING END
1768
	END
1769
   END -- PAGING