Project

General

Profile

PL_REQUEST_DOC_Search.txt

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

 
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)= NULL,
26
@p_TYPE VARCHAR(15) = NULL,
27
@p_YEAR INT = NULL,
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 @p_REQ_CODE IS NOT NULL OR CONVERT(DATETIME,A.REQ_DT,103) >= CONVERT(DATETIME,@p_FR_DATE,103))
422
		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))	
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
		AND (@p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '' OR A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%')
556
		AND	(@p_CREATE_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_CREATE_DT,103)) = 0) 
557
		AND	(@p_APPROVE_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_APPROVE_DT,103)) = 0) 
558
		AND	(@p_REQ_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_REQ_DT,103)) = 0) 
559
		AND (@p_REQ_TYPE IS NULL OR @p_REQ_TYPE =-1 OR A.REQ_TYPE = @p_REQ_TYPE)
560
		--AND (@p_RECEIVE_BRANCH IS NULL OR A.PO_ID IN (SELECT PO_ID FROM TR_PO_DETAIL WHERE RECEIVE_BRANCH=@p_RECEIVE_BRANCH))
561
		AND A.RECORD_STATUS = '1'
562

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

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

    
593
		--AND (A.BRANCH_ID = @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
594
		--AND (A.DEP_ID = @p_DEP_ID OR @p_DEP_ID IS NULL OR @p_DEP_ID = '')
595
		
596
		-- GIANT 26/10/2021
597
		AND (EXISTS (SELECT PL_REQUEST_DOC_DT.REQ_ID FROM PL_REQUEST_DOC_DT WHERE PL_REQUEST_DOC_DT.REQ_ID = A.REQ_ID))
598
		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
599
		ORDER BY A.CREATE_DT DESC
600
	-- PAGING END
601
	END
602
	ELSE IF(@p_TYPE='TFJOB')
603
	BEGIN
604
		-- PAGING BEGIN
605
				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,
606
              A.TOTAL_AMT AS TOTAL_AMT,A.NOTES, A.RECORD_STATUS,A.MAKER_ID,A.CREATE_DT,A.AUTH_STATUS,A.CHECKER_ID,
607

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

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

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

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

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

    
822

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

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

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

    
906

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

    
912

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    
1173

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

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

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

    
1261
		AND A.IS_CHECKALL=1
1262

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

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

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

    
1324

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

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

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

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

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

    
1429

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

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

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

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

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

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

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

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

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