Project

General

Profile

PL_REQUEST_DOC_Search.txt

Luc Tran Van, 11/17/2022 09:47 AM

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

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

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

    
43

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

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

    
57

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

    
63

    
64

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

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

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

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

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

    
296

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

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

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

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

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

    
373

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

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

    
406

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

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

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

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

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

    
480

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

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

    
546
		WHERE 1 = 1
547
	  AND (@p_REQ_CODE IS NULL OR @p_REQ_CODE = '' OR A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%')
548
		AND (@p_REQ_ID IS NULL OR @p_REQ_ID = '' OR A.REQ_ID LIKE '%' + @p_REQ_ID + '%')
549
		AND (@p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '' OR A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%')
550
		AND (@p_REQ_REASON IS NULL OR @p_REQ_REASON = '' OR A.REQ_REASON LIKE '%' + @p_REQ_REASON + '%')
551
		AND (@p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0 OR A.TOTAL_AMT=@p_TOTAL_AMT)
552
		AND (@p_REQ_NAME IS NULL OR @p_REQ_NAME = '' OR A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%')	
553
--		AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
554
		AND (@p_MAKER_ID IS NULL OR @p_MAKER_ID = '' OR A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%')
555
		
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 CONVERT(DATETIME,A.REQ_DT,103) >= CONVERT(DATETIME,@p_FR_DATE,103))
585
		AND(@p_TO_DATE IS 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

    
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 CONVERT(DATETIME,A.REQ_DT,103) >= CONVERT(DATETIME,@p_FR_DATE,103)
748
    )
749
		AND(@p_TO_DATE IS NULL
750
      OR CONVERT(DATETIME,A.REQ_DT,103) <= CONVERT(DATETIME,@p_TO_DATE,103)
751
    )
752
		AND(@p_YEAR IS NULL OR @p_YEAR=0
753
      OR YEAR(A.REQ_DT)=@p_YEAR
754
    )	
755
		AND (@p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = ''
756
      OR (@p_AUTH_STATUS='A' AND  PLRP.STATUS='P') OR( @p_AUTH_STATUS='U' AND (PLRP.STATUS='C'))
757
    )
758
		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'))
759
			AND (@p_IS_TRANSFER = '' OR @p_IS_TRANSFER IS NULL
760
			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
761
			OR (
762
					(@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)))
763
							AND @p_IS_TRANSFER = 'N')
764
    )
765
		AND(@p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = ''
766
      OR NXL.NGUOIXULYTLNAME LIKE '%' + @p_NGUOIXULY  + '%' 
767
			OR NXL.NGUOIXULY LIKE '%' + @p_NGUOIXULY  + '%'
768
    )
769
--
770
--		---- GIANT 26/10/2021
771
		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))
772

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

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

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

    
821

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

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

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

    
905

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

    
911

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

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

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

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

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

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

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

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

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

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

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

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

    
1113
		AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
1114
		AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')	
1115
		--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)
1116
		----------BAODNQ 25/10/2022 : FIX POPUP TÌM KIẾM TTCT Ở PYCMS--------------------
1117
		----------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Ở-----
1118
		AND (
1119
			(A.BRANCH_CREATE = @p_BRANCH_LOGIN 
1120
				AND( A.DEP_CREATE=@DEP_ID OR @BRANCH_TYPE <>'HS')
1121
			) 
1122
			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
1123
		)
1124
		---------------------------------END BAODNQ-------------------------
1125
		AND(@p_FR_DATE IS NULL OR CONVERT(DATETIME,A.REQ_DT,103) >= CONVERT(DATETIME,@p_FR_DATE,103))
1126
		AND(@p_TO_DATE IS NULL OR CONVERT(DATETIME,A.REQ_DT,103) <= CONVERT(DATETIME,@p_TO_DATE,103))	
1127
		AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR)		
1128
		AND (ISNULL(A.PROCESS_ID,'') ='APPROVE')
1129

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

    
1172

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

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

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

    
1260
		AND A.IS_CHECKALL=1
1261

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

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

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

    
1323

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

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

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

    
1411
		AND (  
1412
		 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) )
1413
		)
1414

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

    
1428

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

    
1432
		-- GIANT 26/10/2021
1433
		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))
1434

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

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

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

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

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

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

    
1764
		ORDER BY A.CREATE_DT DESC
1765
	-- PAGING END
1766
	END
1767
   END -- PAGING