Project

General

Profile

5.0 TIM KIEM TO TRINH.txt

Luc Tran Van, 03/17/2021 02:25 PM

 
1

    
2

    
3

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

    
35
AS
36
BEGIN
37

    
38
	DECLARE @TABLE_ROLE TABLE 
39
	( ROLE_ID VARCHAR(20))
40
	INSERT INTO @TABLE_ROLE VALUES(@p_ROLE_USER)
41

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

    
47

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

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

    
61

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

    
67

    
68

    
69
	DECLARE @AUTHOR TABLE
70
	(
71
		ROLE_ID VARCHAR(100),
72
		BRANCH_ID VARCHAR(20),
73
		DEP_ID VARCHAR(20)
74
	)
75
	DECLARE @AUTHOR_DVDM TABLE
76
	(
77
		ROLE_ID VARCHAR(100),
78
		BRANCH_ID VARCHAR(20),
79
		DEP_ID VARCHAR(20),
80
		DVDM_ID VARCHAR(20)
81
	)
82

    
83
	INSERT INTO @AUTHOR
84
	(
85
	    ROLE_ID,
86
	    BRANCH_ID,
87
	    DEP_ID
88
	)
89
	SELECT RoleName,TLSUBBRID,SECUR_CODE FROM dbo.TL_USER TU
90
	WHERE TLNANME=@p_TLNAME_USER
91
	UNION ALL
92
	SELECT TM.ROLE_NEW RoleName,TLSUBBRID,SECUR_CODE FROM dbo.TL_USER TU
93
	LEFT JOIN dbo.TL_SYS_ROLE_MAPPING TM ON TM.ROLE_OLD=TU.RoleName AND( TM.TLNAME IS NULL OR TM.TLNAME='')
94
	WHERE TLNANME=@p_TLNAME_USER AND TM.ROLE_NEW IS NOT NULL
95
	UNION ALL
96
	SELECT TM1.ROLE_NEW RoleName,TM1.BRANCH_ID TLSUBBRID,TM1.DEP_ID SECUR_CODE FROM dbo.TL_SYS_ROLE_MAPPING TM1
97
	WHERE TM1.TLNAME=@p_TLNAME_USER AND CAST(TM1.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
98
	UNION ALL
99
	SELECT TM.ROLE_NEW RoleName,TM1.BRANCH_ID TLSUBBRID,TM1.DEP_ID SECUR_CODE FROM dbo.TL_SYS_ROLE_MAPPING TM1
100
	LEFT JOIN dbo.TL_SYS_ROLE_MAPPING TM ON TM.ROLE_OLD=TM1.ROLE_NEW AND( TM.TLNAME IS NULL OR TM.TLNAME='')
101
	WHERE TM1.TLNAME=@p_TLNAME_USER AND CAST(TM1.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
102

    
103
	INSERT INTO @AUTHOR_DVDM
104
	(
105
	    ROLE_ID,
106
	    BRANCH_ID,
107
	    DEP_ID,
108
	    DVDM_ID
109
	)
110
	SELECT TU.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
	WHERE TU.TLNANME=@p_TLNAME_USER
114
	UNION ALL
115
	SELECT TM.ROLE_NEW RoleName,TU.TLSUBBRID,TU.SECUR_CODE,PC.DVDM_ID FROM dbo.TL_USER TU 
116
	LEFT JOIN dbo.PL_COSTCENTER_DT DT ON DT.BRANCH_ID=TU.TLSUBBRID AND DT.DEP_ID=TU.SECUR_CODE
117
	LEFT JOIN dbo.PL_COSTCENTER PC ON PC.COST_ID=DT.COST_ID
118
	LEFT JOIN dbo.TL_SYS_ROLE_MAPPING TM ON TM.ROLE_OLD=TU.RoleName AND( TM.TLNAME IS NULL OR TM.TLNAME='')
119
	WHERE TU.TLNANME=@p_TLNAME_USER AND TM.ROLE_NEW IS NOT NULL
120
	UNION ALL
121
	SELECT TU.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
	WHERE TU.TLNAME=@p_TLNAME_USER AND CAST(EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
125
	UNION ALL
126
	SELECT TM.ROLE_NEW RoleName,TU.BRANCH_ID TLSUBBRID,TU.DEP_ID SECUR_CODE,PC.DVDM_ID FROM dbo.TL_SYS_ROLE_MAPPING TU 
127
	LEFT JOIN dbo.PL_COSTCENTER_DT DT ON DT.BRANCH_ID=TU.BRANCH_ID AND DT.DEP_ID=TU.DEP_ID
128
	LEFT JOIN dbo.PL_COSTCENTER PC ON PC.COST_ID=DT.COST_ID
129
	LEFT JOIN dbo.TL_SYS_ROLE_MAPPING TM ON TM.ROLE_OLD=TU.ROLE_NEW AND( TM.TLNAME IS NULL OR TM.TLNAME='')
130
	WHERE TU.TLNAME=@p_TLNAME_USER AND CAST(TU.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)	
131

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

    
137
	---- NGUOI XU lY TIEP THEO 18022021
138
			DECLARE @lstREQUEST TABLE (
139
			REQ_ID VARCHAR(20),
140
			PROCESS_ID VARCHAR(50),
141
			DVDM_NAME NVARCHAR(200),
142
			TLNAME VARCHAR(200),
143
			TLFullName NVARCHAR(200),
144
			NOTES NVARCHAR(200)
145
		)
146
		INSERT INTO @lstREQUEST
147
		( REQ_ID,PROCESS_ID, DVDM_NAME,TLNAME,TLFullName, NOTES)
148
		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 
149
		(SELECT * FROM dbo.PL_REQUEST_PROCESS PRC WHERE 
150
			EXISTS(SELECT PLRD.REQ_ID FROM dbo.PL_REQUEST_DOC PLRD 
151
			WHERE PLRD.REQ_ID=PRC.REQ_ID 
152

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

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

    
202
		)  AND PRC.STATUS='C' AND PRC.PROCESS_ID <>'APPROVE' AND PRC.PROCESS_ID <>'SIGN' AND PRC.IS_HAS_CHILD = 1  ) PL
203
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=PL.DVDM_ID
204
		LEFT JOIN CM_BRANCH BR ON PL.BRANCH_ID = BR.BRANCH_ID
205
		LEFT JOIN 
206
		(
207
		SELECT PRC.ID, PRC.PROCESS_ID,PRC.REQ_ID,PRC.TLNAME,AC.CONTENT FROM dbo.PL_REQUEST_PROCESS_CHILD PRC 
208
		LEFT JOIN dbo.CM_ALLCODE AC ON AC.CDVAL=PRC.TYPE_JOB AND AC.CDNAME='JOB_TYPE' AND CDTYPE='REQ'
209
		WHERE (PRC.STATUS_JOB='C' OR PRC.STATUS_JOB='R' )
210
		)TempC ON TempC.PROCESS_ID =PL.ID AND PL.IS_HAS_CHILD=1
211
		LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=TempC.TLNAME
212
		LEFT JOIN 
213
			(
214
				SELECT TU.TLNANME,TU.TLFullName,TU.RoleName,Temp.DVDM_ID,TU.SECUR_CODE,TU.TLSUBBRID FROM dbo.TL_USER TU 
215
				LEFT JOIN(
216
				SELECT PC.DVDM_ID,PD.DEP_ID,PD.BRANCH_ID FROM dbo.PL_COSTCENTER PC 
217
				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
218
				UNION ALL
219
				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
220
				LEFT JOIN dbo.TL_USER US ON US.TLNANME=TU.TLNAME
221
				LEFT JOIN(
222
				SELECT PC.DVDM_ID,PD.DEP_ID,PD.BRANCH_ID FROM dbo.PL_COSTCENTER PC 
223
				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
224
				WHERE  CAST(TU.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
225
			) TempU ON (TempU.RoleName=PL.ROLE_USER  OR PL.ROLE_USER IN (SELECT ROLE_NEW FROM dbo.TL_SYS_ROLE_MAPPING TM WHERE ROLE_OLD=TempU.RoleName AND (TM.TLNAME IS NULL OR TM.TLNAME=''))) AND (TempU.TLSUBBRID=PL.BRANCH_ID OR PL.BRANCH_ID IS NULL OR PL.BRANCH_ID='') 
226
			AND (TempU.SECUR_CODE=PL.DEP_ID OR PL.DEP_ID IS NULL OR PL.DEP_ID='') 
227
			AND (TempU.DVDM_ID=PL.DVDM_ID OR PL.DVDM_ID IS NULL OR PL.DVDM_ID ='')
228
		WHERE  PL.STATUS='C'
229

    
230

    
231

    
232

    
233
		
234
	----
235

    
236

    
237

    
238

    
239
	IF(@p_TYPE='DVKD')
240
	BEGIN	
241
		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,
242
               A.TOTAL_AMT AS TOTAL_AMT,A.NOTES, A.RECORD_STATUS,A.MAKER_ID,A.CREATE_DT,A.AUTH_STATUS,A.CHECKER_ID,
243
			   UDV.TLFullName AS CHECKER_NAME_DV,
244
			   A.APPROVE_DT,
245
               A.PROCESS_ID,
246
			   D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME_DV,
247
			   CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt'
248
			   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,
249
			   G.BRANCH_CODE,
250
			   G.BRANCH_NAME,
251
			   UP.TLFullName AS CHECKER_NAME_PROCESS,
252
			   RP.APPROVE_DT AS APPROVE_DT_PROCESS,
253
			   UC.TLFullName AS MAKER_NAME,
254
			   RPN.PROCESS_ID AS PROCESS_ID_NEXT,
255
			   RP.ROLE_USER, 
256
			   RP.NOTES AS PROCESS_STATUS , 
257
			   RPN.NOTES AS PROCESS_STATUS_NEXT,
258
			   A.DVDM_APP_ID,
259
			   CD.DVDM_NAME AS DVDM_APP_NAME,
260
			   A.REQ_PARENT_ID,
261
			   PARENT.REQ_NAME AS REQ_PARENT_NAME,
262
			   PARENT.REQ_CODE AS REQ_PARENT_CODE,
263
			   PARENT.TOTAL_AMT AS REQ_PARENT_AMT,
264
			   A.BRANCH_FEE,
265
			   A.DEP_ID,
266
			   A.DEP_FEE,
267
			   DEP.DEP_NAME,
268
			   DEP.DEP_CODE,
269
			   BF.BRANCH_NAME AS BRANCH_FEE_NAME,
270
			   BF.BRANCH_CODE AS BRANCH_FEE_CODE,
271
			   DF.DEP_NAME AS DEP_FEE_NAME,
272
			   DF.DEP_CODE AS DEP_FEE_CODE,
273
			   '' AS BRANCH_DEP,
274
			   '' AS BRANCH_DEP_FEE,
275
			   
276

    
277

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

    
311
		LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE
312
		LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE
313

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

    
340
		WHERE 1 = 1
341
		
342
	    AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
343
		AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '')
344
		AND (A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '')
345
		AND (A.REQ_REASON LIKE '%' + @p_REQ_REASON + '%' OR @p_REQ_REASON IS NULL OR @p_REQ_REASON = '')
346
		AND (A.TOTAL_AMT=@p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0)
347
		AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')	
348
		AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
349
		AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
350
			AND (DATEDIFF(DAY,A.CREATE_DT , CAST(@p_CREATE_DT AS DATE)) = 0 OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
351
	
352
		AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
353
		AND (DATEDIFF(DAY,A.APPROVE_DT , CAST(@p_CREATE_DT AS DATE)) = 0 OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')	
354
		AND (DATEDIFF(DAY,A.REQ_DT , CAST(@p_REQ_DT AS DATE)) = 0 OR @p_REQ_DT IS NULL OR @p_REQ_DT = '')		
355
		AND (A.REQ_TYPE = @p_REQ_TYPE OR @p_REQ_TYPE IS NULL OR @p_REQ_TYPE =-1)
356
		AND A.RECORD_STATUS = '1'
357
		
358
		AND(
359
			@p_REQ_TYPE = -1  OR @p_REQ_TYPE IS NULL
360
			OR
361
				(
362
					@p_REQ_TYPE=1 AND EXISTS(SELECT D.REQDT_ID FROM dbo.PL_REQUEST_DOC_DT D WHERE D.REQDT_TYPE='O' AND D.REQ_ID=A.REQ_ID)
363
				)
364
				OR
365
				(
366
						@p_REQ_TYPE=0 AND NOT EXISTS(SELECT D.REQDT_ID FROM dbo.PL_REQUEST_DOC_DT D WHERE D.REQDT_TYPE='O' AND D.REQ_ID=A.REQ_ID)
367
				)
368
			)
369

    
370
		AND    (A.MAKER_ID=@p_TLNAME_USER OR 
371
				(A.PROCESS_ID ='APPROVE' AND A.BRANCH_CREATE=@p_BRANCH_LOGIN AND (A.DEP_CREATE=@DEP_ID OR @BRANCH_TYPE<>'HS'))
372
				OR EXISTS(SELECT ID FROM dbo.PL_ROLE_DATA_CONFIG WHERE ROLE_TYPE='PL_REQUEST_DOC_ALL' AND BRANCH_ID=@p_TLNAME_USER )
373
				OR EXISTS(SELECT * FROM dbo.PL_REQUEST_PROCESS PLRP WHERE PLRP.PROCESS_ID='APPNEW' AND PLRP.REQ_ID=A.REQ_ID
374
																			AND EXISTS(SELECT AUTH.ROLE_ID FROM @AUTHOR AUTH WHERE AUTH.ROLE_ID=PLRP.ROLE_USER AND AUTH.BRANCH_ID=PLRP.BRANCH_ID 
375
																														AND(PLRP.DEP_ID=AUTH.DEP_ID OR PLRP.DEP_ID IS NULL OR PLRP.DEP_ID ='') ))
376
				--OR (EXISTS(SELECT * FROM dbo.PL_REQUEST_PROCESS PLRP WHERE A.REQ_ID=PLRP.REQ_ID AND PLRP.PROCESS_ID='APPNEW' 
377
				--												AND PLRP.ROLE_USER IN (SELECT ROLE_ID FROM @TABLE_ROLE) AND PLRP.BRANCH_ID=@p_BRANCH_LOGIN 
378
				--												AND (PLRP.DEP_ID=@DEP_ID OR PLRP.DEP_ID IS NULL OR PLRP.DEP_ID =''))) 
379
		OR(A.SIGN_USER IS NOT NULL AND A.SIGN_USER <>'' AND A.SIGN_USER  =@p_TLNAME_USER AND A.AUTH_STATUS<>'E'))
380
		--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 = '')
381
		--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 ='')))))
382
		AND (A.AUTH_STATUS = @p_AUTH_STATUS OR @p_AUTH_STATUS ='' OR @p_AUTH_STATUS IS NULL)
383
		AND(@p_FR_DATE IS NULL OR CAST(A.REQ_DT AS DATE) >= CAST(@p_FR_DATE AS DATE))
384
		AND(@p_TO_DATE IS NULL OR CAST(A.REQ_DT AS DATE) <= CAST(@p_TO_DATE AS DATE))	
385
		AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR)	
386
		AND( NXL.NGUOIXULYTLNAME LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = ''
387
			OR NXL.NGUOIXULY LIKE '%' + @p_NGUOIXULY  + '%')
388

    
389
		AND (A.BRANCH_ID = @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
390
		AND (A.DEP_ID = @p_DEP_ID OR @p_DEP_ID IS NULL OR @p_DEP_ID = '')
391
		
392
		ORDER BY A.CREATE_DT DESC
393
	END
394
	ELSE IF(@p_TYPE='PDTT')
395
	BEGIN
396
		
397
		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,
398
               A.TOTAL_AMT AS TOTAL_AMT,A.NOTES, A.RECORD_STATUS,A.MAKER_ID,A.CREATE_DT,A.AUTH_STATUS,A.CHECKER_ID,
399

    
400
			   UDV.TLFullName AS CHECKER_NAME_DV,
401
			  
402
			   A.APPROVE_DT,
403
               A.PROCESS_ID,
404
			   D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME_DV,
405
			   CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt'
406
			   ELSE N'Chờ duyệt' END AS AUTH_STATUS_NAME,
407
			   G.BRANCH_CODE,
408
			   G.BRANCH_NAME,
409
			   UP.TLFullName AS CHECKER_NAME_PROCESS,
410
			   RP.APPROVE_DT AS APPROVE_DT_PROCESS,
411
			   UC.TLFullName AS MAKER_NAME,
412
			   RPN.PROCESS_ID AS PROCESS_ID_NEXT,
413
			   RPN.ROLE_USER, 
414
			   RP.NOTES AS PROCESS_STATUS , 
415
			   RPN.NOTES AS PROCESS_STATUS_NEXT,
416
			   A.DVDM_APP_ID,
417
			   CD.DVDM_NAME AS DVDM_APP_NAME,
418
			   A.REQ_PARENT_ID,
419
			   PARENT.REQ_NAME AS REQ_PARENT_NAME,
420
			   PARENT.REQ_CODE AS REQ_PARENT_CODE,
421
			   PARENT.TOTAL_AMT AS REQ_PARENT_AMT,
422
			   A.BRANCH_FEE,
423
			   A.DEP_ID,
424
			   A.DEP_FEE,
425
			   DEP.DEP_NAME,
426
			   DEP.DEP_CODE,
427
			   BF.BRANCH_NAME AS BRANCH_FEE_NAME,
428
			   BF.BRANCH_CODE AS BRANCH_FEE_CODE,
429
			   DF.DEP_NAME AS DEP_FEE_NAME,
430
			   DF.DEP_CODE AS DEP_FEE_CODE,
431
			   '' AS BRANCH_DEP,
432
			   '' AS BRANCH_DEP_FEE,
433
			   
434

    
435

    
436
			   RPC.TYPE_JOB AS TYPE_JOB,
437
			   RPC.TLNAME AS USER_JOB,
438
			   TU.TLFullName AS USER_JOB_NAME,
439
			   TFM.TLNANME AS TRANSFER_MAKER,
440
			    RPC.TRANFER_DT AS TRANFER_DT ,
441
				RPC.MAKER_ID AS TRANSFER_MAKER_ID,
442
			   A.EFFEC_DT,A.IS_BACKDAY,
443
			   '' AS TYPE_JOB_XL,
444
			   '' AS USER_JOB_XL,
445
			   RP.ID AS REF_ID,
446
			   RPN.STATUS AS STATUS_NEXT,
447
			   PLRP.STATUS AS STATUS_CURR,
448
			    RPC.STATUS_JOB AS STATUS_JOB,
449
			   A.BRANCH_CREATE,
450
			   A.DEP_CREATE,
451
			   A.REQ_LINE,
452
			     A.TC_NOTES,
453
				  A.SIGN_USER,
454
			   TL.TLFullName  AS SIGN_USER_NAME,
455
			   A.KT_NOTES,
456
			     A.IS_CHECKALL,
457
			   A.BASED_CONTENT, 
458
			   '' AS IS_TRANSFER,
459
			   --NGUOI XU LY
460
			   --dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) AS NGUOIXULY
461
			    NXL.NGUOIXULY AS NGUOIXULY
462
		FROM PL_REQUEST_DOC A 	
463
		INNER JOIN dbo.PL_REQUEST_PROCESS PLRP ON PLRP.REQ_ID=A.REQ_ID AND PLRP.STATUS <>'U'	
464
		LEFT JOIN dbo.PL_REQUEST_PROCESS RPN 
465
		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') )
466
		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)	
467
		LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
468
		LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID
469

    
470
		LEFT JOIN dbo.CM_DEPARTMENT DEP ON DEP.DEP_ID=A.DEP_ID
471
		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')
472
		LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE
473
		LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE
474
		LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID
475
		LEFT JOIN dbo.TL_USER UC ON UC.TLNANME=A.MAKER_ID
476
		LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID
477
		LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=RPC.TLNAME
478
		LEFT JOIN dbo.TL_USER TFM ON TFM.TLNANME=RPC.MAKER_ID
479
		LEFT JOIN dbo.CM_PROCESS_STATUS PS ON PS.PROCESS_ID = A.PROCESS_ID
480
		LEFT JOIN dbo.CM_PROCESS_STATUS PSN ON PSN.PROCESS_ID = A.PROCESS_ID
481
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=A.DVDM_APP_ID
482
		LEFT JOIN dbo.PL_REQUEST_DOC PARENT ON PARENT.REQ_ID=A.REQ_PARENT_ID
483
		LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME
484
		LEFT JOIN
485
		(
486
		
487
		SELECT	Results.REQ_ID,STUFF((select ', ' + RE.TLFullName  
488
		FROM @lstREQUEST RE
489
		WHERE RE.REQ_ID=Results.REQ_ID
490
		FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULY,
491
		STUFF((select ', ' + RE.TLNAME  
492
		FROM @lstREQUEST RE
493
		WHERE RE.REQ_ID=Results.REQ_ID
494
		FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULYTLNAME	
495
		FROM @lstREQUEST Results
496
		GROUP BY REQ_ID
497
		) NXL ON NXL.REQ_ID=A.REQ_ID
498

    
499
		WHERE 1 = 1
500
	    AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
501
		AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '')
502
		AND (A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '')
503
		AND (A.REQ_REASON LIKE '%' + @p_REQ_REASON + '%' OR @p_REQ_REASON IS NULL OR @p_REQ_REASON = '')
504
		AND (A.TOTAL_AMT=@p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0)
505
		AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')	
506
		AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
507
		AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
508
		AND (DATEDIFF(DAY,A.CREATE_DT , CAST(@p_CREATE_DT AS DATE)) = 0 OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
509
		
510
		AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
511
		AND (DATEDIFF(DAY,A.APPROVE_DT , CAST(@p_CREATE_DT AS DATE)) = 0 OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')	
512
		AND (DATEDIFF(DAY,A.REQ_DT , CAST(@p_REQ_DT AS DATE)) = 0 OR @p_REQ_DT IS NULL OR @p_REQ_DT = '')	
513
		AND (A.REQ_TYPE = @p_REQ_TYPE OR @p_REQ_TYPE IS NULL OR @p_REQ_TYPE =-1)
514
		--AND (@p_RECEIVE_BRANCH IS NULL OR A.PO_ID IN (SELECT PO_ID FROM TR_PO_DETAIL WHERE RECEIVE_BRANCH=@p_RECEIVE_BRANCH))
515
		AND A.RECORD_STATUS = '1'
516

    
517

    
518
		AND(
519
			@p_REQ_TYPE = -1  OR @p_REQ_TYPE IS NULL
520
			OR
521
				(
522
					@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)
523
				)
524
				OR
525
				(
526
						@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)
527
				)
528
			)
529

    
530
		AND EXISTS(SELECT AUTH.ROLE_ID FROM @AUTHOR_DVDM AUTH WHERE AUTH.ROLE_ID=PLRP.ROLE_USER AND (
531
			(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=''))
532
			OR PLRP.DVDM_ID=AUTH.DVDM_ID
533
			OR ((PLRP.DVDM_ID ='' OR PLRP.DVDM_ID  IS NULL) AND (PLRP.BRANCH_ID IS NULL OR PLRP.BRANCH_ID=''))
534
		))
535
		--AND PLRP.ROLE_USER IN (SELECT ROLE_ID FROM @TABLE_ROLE) 
536
		--AND (
537
		--  (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='')) 
538
		--OR ( PLRP.DVDM_ID IN (SELECT DVDM_ID FROM @DVDM_ID))
539
		--OR
540
		--( (PLRP.DVDM_ID ='' OR PLRP.DVDM_ID  IS NULL) AND (PLRP.BRANCH_ID IS NULL OR PLRP.BRANCH_ID=''))	
541
		--)
542
		AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR)	
543
		AND (PLRP.IS_HAS_CHILD=0 OR PLRP.IS_HAS_CHILD IS NULL)
544
		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 = '')
545
		AND(@p_FR_DATE IS NULL OR CAST(A.REQ_DT AS DATE) >= CAST(@p_FR_DATE AS DATE))
546
		AND(@p_TO_DATE IS NULL OR CAST(A.REQ_DT AS DATE) <= CAST(@p_TO_DATE AS DATE))	
547
		AND( NXL.NGUOIXULYTLNAME LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = ''
548
			OR NXL.NGUOIXULY LIKE '%' + @p_NGUOIXULY  + '%')
549
		--AND(
550
		--	(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
551
		--	OR
552
		--	(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',1) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
553
		--)
554

    
555
		--AND (A.BRANCH_ID = @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
556
		--AND (A.DEP_ID = @p_DEP_ID OR @p_DEP_ID IS NULL OR @p_DEP_ID = '')
557

    
558
		ORDER BY A.CREATE_DT DESC
559
 
560
	END
561
	ELSE IF(@p_TYPE='TFJOB')
562
	BEGIN
563
		
564
				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,
565
              A.TOTAL_AMT AS TOTAL_AMT,A.NOTES, A.RECORD_STATUS,A.MAKER_ID,A.CREATE_DT,A.AUTH_STATUS,A.CHECKER_ID,
566

    
567
			   UDV.TLFullName AS CHECKER_NAME_DV,
568
			  
569
			   A.APPROVE_DT,
570
               A.PROCESS_ID,
571
			   D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME_DV,
572
			   CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt'
573
			   ELSE N'Chờ duyệt' END AS AUTH_STATUS_NAME,
574
			   G.BRANCH_CODE,
575
			   G.BRANCH_NAME,
576
			   UP.TLFullName AS CHECKER_NAME_PROCESS,
577
			   RP.APPROVE_DT AS APPROVE_DT_PROCESS,
578
			   UC.TLFullName AS MAKER_NAME,
579
			   RPN.PROCESS_ID AS PROCESS_ID_NEXT,
580
			   RP.ROLE_USER, 
581
			   RP.NOTES AS PROCESS_STATUS , 
582
			   RPN.NOTES AS PROCESS_STATUS_NEXT,
583
			   A.DVDM_APP_ID,
584
			   CD.DVDM_NAME AS DVDM_APP_NAME,
585
			   A.REQ_PARENT_ID,
586
			   PARENT.REQ_NAME AS REQ_PARENT_NAME,
587
			   PARENT.REQ_CODE AS REQ_PARENT_CODE,
588
			   PARENT.TOTAL_AMT AS REQ_PARENT_AMT,
589
			   A.BRANCH_FEE,
590
			   A.DEP_ID,
591
			   A.DEP_FEE,
592
			   DEP.DEP_NAME,
593
			   DEP.DEP_CODE,
594
			   BF.BRANCH_NAME AS BRANCH_FEE_NAME,
595
			   BF.BRANCH_CODE AS BRANCH_FEE_CODE,
596
			   DF.DEP_NAME AS DEP_FEE_NAME,
597
			   DF.DEP_CODE AS DEP_FEE_CODE,
598
			   '' AS BRANCH_DEP,
599
			   '' AS BRANCH_DEP_FEE,
600
			   RPC.TYPE_JOB AS TYPE_JOB,
601
			   RPC.TLNAME AS USER_JOB,
602
			   TU.TLFullName AS USER_JOB_NAME,
603
			   TFM.TLNANME AS TRANSFER_MAKER,
604
			    RPC.TRANFER_DT AS TRANFER_DT ,
605
				RPC.MAKER_ID AS TRANSFER_MAKER_ID,
606
			   A.EFFEC_DT,A.IS_BACKDAY,
607
			   '' AS TYPE_JOB_XL,
608
			   '' AS USER_JOB_XL,
609
			   PLRP.ID AS REF_ID,
610
			   RPN.STATUS AS STATUS_NEXT,
611
			   PLRP.STATUS AS STATUS_CURR,
612
			    RPC.STATUS_JOB AS STATUS_JOB,
613
			   A.BRANCH_CREATE,
614
			   A.DEP_CREATE,
615
			   A.REQ_LINE,
616
			   A.TC_NOTES,
617
			   A.SIGN_USER,
618
			   TL.TLFULLNAME AS SIGN_USER_NAME,
619
			   A.KT_NOTES,
620
			     A.IS_CHECKALL,
621
			   A.BASED_CONTENT, 
622
			   '' AS IS_TRANSFER,
623
			  --NGUOI XU LY
624
			 -- dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) AS NGUOIXULY
625
			  NXL.NGUOIXULY AS NGUOIXULY
626
		FROM PL_REQUEST_DOC A 	
627
		INNER JOIN dbo.PL_REQUEST_PROCESS PLRP ON PLRP.REQ_ID=A.REQ_ID AND PLRP.STATUS = 'C' AND PLRP.IS_HAS_CHILD=1
628
		LEFT JOIN dbo.PL_REQUEST_PROCESS RPN 
629
		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') )
630
		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)	
631
		LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
632
		LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID
633
		LEFT JOIN dbo.CM_DEPARTMENT DEP ON DEP.DEP_ID=A.DEP_ID
634

    
635
		LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE
636
		LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE
637
		LEFT JOIN dbo.TL_USER UC ON UC.TLNANME=A.MAKER_ID
638
		LEFT JOIN dbo.CM_PROCESS_STATUS PS ON PS.PROCESS_ID = A.PROCESS_ID
639
		LEFT JOIN dbo.CM_PROCESS_STATUS PSN ON PSN.PROCESS_ID = A.PROCESS_ID
640
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=A.DVDM_APP_ID
641
		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')
642
		
643
		LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID
644
	
645
		LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID
646
		LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=RPC.TLNAME
647
		LEFT JOIN dbo.TL_USER TFM ON TFM.TLNANME=RPC.MAKER_ID
648
		LEFT JOIN dbo.PL_REQUEST_DOC PARENT ON PARENT.REQ_ID=A.REQ_PARENT_ID
649
		LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME
650
		LEFT JOIN
651
		(
652
		
653
		SELECT	Results.REQ_ID,STUFF((select ', ' + RE.TLFullName  
654
		FROM @lstREQUEST RE
655
		WHERE RE.REQ_ID=Results.REQ_ID
656
		FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULY,
657
		STUFF((select ', ' + RE.TLNAME  
658
		FROM @lstREQUEST RE
659
		WHERE RE.REQ_ID=Results.REQ_ID
660
		FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULYTLNAME	
661
		FROM @lstREQUEST Results
662
		GROUP BY REQ_ID
663
		) NXL ON NXL.REQ_ID=A.REQ_ID
664
		WHERE 1 = 1
665
	    AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
666
		AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '')
667
		AND (A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '')
668
		AND (A.REQ_REASON LIKE '%' + @p_REQ_REASON + '%' OR @p_REQ_REASON IS NULL OR @p_REQ_REASON = '')
669
		AND (A.TOTAL_AMT=@p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0)
670
		AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')	
671
		AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
672
		AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
673
		AND (DATEDIFF(DAY,A.CREATE_DT , CAST(@p_CREATE_DT AS DATE)) = 0 OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
674
		
675
		AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
676
		AND (DATEDIFF(DAY,A.APPROVE_DT , CAST(@p_CREATE_DT AS DATE)) = 0 OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')	
677
		AND (DATEDIFF(DAY,A.REQ_DT , CAST(@p_REQ_DT AS DATE)) = 0 OR @p_REQ_DT IS NULL OR @p_REQ_DT = '')	
678
		AND (A.REQ_TYPE = @p_REQ_TYPE OR @p_REQ_TYPE IS NULL OR @p_REQ_TYPE =-1)
679
		--AND (@p_RECEIVE_BRANCH IS NULL OR A.PO_ID IN (SELECT PO_ID FROM TR_PO_DETAIL WHERE RECEIVE_BRANCH=@p_RECEIVE_BRANCH))
680
		AND A.RECORD_STATUS = '1'
681

    
682

    
683
		AND(
684
			@p_REQ_TYPE = -1  OR @p_REQ_TYPE IS NULL
685
			OR
686
				(
687
					@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)
688
				)
689
				OR
690
				(
691
						@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)
692
				)
693
			)
694

    
695

    
696
		
697
		AND(
698
		
699
		EXISTS(SELECT AUTH.ROLE_ID FROM @AUTHOR_DVDM AUTH WHERE AUTH.ROLE_ID=PLRP.ROLE_USER AND (
700
			(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=''))
701
			OR PLRP.DVDM_ID=AUTH.DVDM_ID
702
			OR ((PLRP.DVDM_ID ='' OR PLRP.DVDM_ID  IS NULL) AND (PLRP.BRANCH_ID IS NULL OR PLRP.BRANCH_ID=''))
703
		))
704
			OR (EXISTS(SELECT ID FROM dbo.PL_REQUEST_PROCESS_CHILD WHERE TLNAME=@p_TLNAME_USER AND TYPE_JOB='KS' AND PL_REQUEST_PROCESS_CHILD.PROCESS_ID=PLRP.ID) ) )
705
		AND(@p_FR_DATE IS NULL OR CAST(A.REQ_DT AS DATE) >= CAST(@p_FR_DATE AS DATE))
706
		AND(@p_TO_DATE IS NULL OR CAST(A.REQ_DT AS DATE) <= CAST(@p_TO_DATE AS DATE))	
707
		AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR)	
708
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 = '')
709
  AND (NOT EXISTS(SELECT ID FROM dbo.PL_REQUEST_PROCESS_CHILD WHERE PL_REQUEST_PROCESS_CHILD.PROCESS_ID=PLRP.ID AND PL_REQUEST_PROCESS_CHILD.STATUS_JOB='C' AND PL_REQUEST_PROCESS_CHILD.TYPE_JOB='TP'))
710
		AND (
711
			((RPC.REQ_ID IS NOT NULL OR RPC.REQ_ID <> '') AND @p_IS_TRANSFER = 'Y')
712
			OR ((RPC.REQ_ID IS NULL OR RPC.REQ_ID = '') AND @p_IS_TRANSFER = 'N')
713
			OR @p_IS_TRANSFER = '' OR @p_IS_TRANSFER IS NULL
714
			)
715
		AND( NXL.NGUOIXULYTLNAME LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = ''
716
			OR NXL.NGUOIXULY LIKE '%' + @p_NGUOIXULY  + '%')
717
		--AND(
718
		--	(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
719
		--	OR
720
		--	(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',1) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
721
		--)
722

    
723
		--AND (A.BRANCH_ID = @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
724
		--AND (A.DEP_ID = @p_DEP_ID OR @p_DEP_ID IS NULL OR @p_DEP_ID = '')
725

    
726

    
727
	ORDER BY A.CREATE_DT DESC
728
	END
729

    
730
	ELSE IF(@p_TYPE='XLTT')
731
	BEGIN
732
			
733
				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,
734
             A.TOTAL_AMT AS TOTAL_AMT,A.NOTES, A.RECORD_STATUS,A.MAKER_ID,A.CREATE_DT,A.AUTH_STATUS,A.CHECKER_ID,
735

    
736
			   UDV.TLFullName AS CHECKER_NAME_DV,
737
			  
738
			   A.APPROVE_DT,
739
               A.PROCESS_ID,
740
			   D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME_DV,
741
			   CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt'
742
			   ELSE N'Chờ duyệt' END AS AUTH_STATUS_NAME,
743
			   G.BRANCH_CODE,
744
			   G.BRANCH_NAME,
745
			   UP.TLFullName AS CHECKER_NAME_PROCESS,
746
			   RP.APPROVE_DT AS APPROVE_DT_PROCESS,
747
			   UC.TLFullName AS MAKER_NAME,
748
			   RPN.PROCESS_ID AS PROCESS_ID_NEXT,
749
			   RPN.ROLE_USER, 
750
			   RP.NOTES AS PROCESS_STATUS , 
751
			   RPN.NOTES AS PROCESS_STATUS_NEXT,
752
			   A.DVDM_APP_ID,
753
			   CD.DVDM_NAME AS DVDM_APP_NAME,
754
			   A.REQ_PARENT_ID,
755
			   PARENT.REQ_NAME AS REQ_PARENT_NAME,
756
			   PARENT.REQ_CODE AS REQ_PARENT_CODE,
757
			   PARENT.TOTAL_AMT AS REQ_PARENT_AMT,
758
			   A.BRANCH_FEE,
759
			   A.DEP_ID,
760
			   A.DEP_FEE,
761
			   DEP.DEP_NAME,
762
			   DEP.DEP_CODE,
763
			   BF.BRANCH_NAME AS BRANCH_FEE_NAME,
764
			   BF.BRANCH_CODE AS BRANCH_FEE_CODE,
765
			   DF.DEP_NAME AS DEP_FEE_NAME,
766
			   DF.DEP_CODE AS DEP_FEE_CODE,
767
			   '' AS BRANCH_DEP,
768
			   '' AS BRANCH_DEP_FEE,
769
			   
770

    
771

    
772
			   RPC.TYPE_JOB AS TYPE_JOB,
773
			   RPC.TLNAME AS USER_JOB,
774
			   TU.TLFullName AS USER_JOB_NAME,
775
			   TFM.TLNANME AS TRANSFER_MAKER,
776
			    RPC.TRANFER_DT AS TRANFER_DT ,
777
				RPC.MAKER_ID AS TRANSFER_MAKER_ID,
778
			   A.EFFEC_DT,A.IS_BACKDAY,
779
			   '' AS TYPE_JOB_XL,
780
			   '' AS USER_JOB_XL,
781
			   PLRP.ID AS REF_ID,
782
			   RPN.STATUS AS STATUS_NEXT,
783
			   PLRP.STATUS AS STATUS_CURR,
784
			   RPC.STATUS_JOB AS STATUS_JOB,
785
			   A.BRANCH_CREATE,
786
			   A.DEP_CREATE,
787
			   A.REQ_LINE,
788
			   A.TC_NOTES,
789
			   A.SIGN_USER, TL.TLFullName AS SIGN_USER_NAME,
790
			   A.KT_NOTES,
791
			     A.IS_CHECKALL,
792
			   A.BASED_CONTENT, 
793
			   '' AS IS_TRANSFER,
794
			   --NGUOI XU LY
795
			   --dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) AS NGUOIXULY
796
			    NXL.NGUOIXULY AS NGUOIXULY
797
		FROM PL_REQUEST_DOC A 	
798
		INNER JOIN dbo.PL_REQUEST_PROCESS PLRP ON PLRP.REQ_ID=A.REQ_ID AND PLRP.STATUS <> 'U' AND PLRP.IS_HAS_CHILD=1
799
		LEFT JOIN dbo.PL_REQUEST_PROCESS RPN 
800
		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') )
801
		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)	
802
		LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
803
		LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID
804
		LEFT JOIN dbo.CM_DEPARTMENT DEP ON DEP.DEP_ID=A.DEP_ID
805

    
806
		LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE
807
		LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE
808
		LEFT JOIN dbo.TL_USER UC ON UC.TLNANME=A.MAKER_ID
809
		LEFT JOIN dbo.CM_PROCESS_STATUS PS ON PS.PROCESS_ID = A.PROCESS_ID
810
		LEFT JOIN dbo.CM_PROCESS_STATUS PSN ON PSN.PROCESS_ID = A.PROCESS_ID
811
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=A.DVDM_APP_ID
812
		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')
813
		
814
		LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID
815
	
816
		LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID
817
		LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=RPC.TLNAME
818
		LEFT JOIN dbo.TL_USER TFM ON TFM.TLNANME=RPC.MAKER_ID
819
		LEFT JOIN dbo.PL_REQUEST_DOC PARENT ON PARENT.REQ_ID=A.REQ_PARENT_ID
820
		LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME
821
		LEFT JOIN
822
		(
823
		
824
		SELECT	Results.REQ_ID,STUFF((select ', ' + RE.TLFullName  
825
		FROM @lstREQUEST RE
826
		WHERE RE.REQ_ID=Results.REQ_ID
827
		FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULY,
828
		STUFF((select ', ' + RE.TLNAME  
829
		FROM @lstREQUEST RE
830
		WHERE RE.REQ_ID=Results.REQ_ID
831
		FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULYTLNAME	
832
		FROM @lstREQUEST Results
833
		GROUP BY REQ_ID
834
		) NXL ON NXL.REQ_ID=A.REQ_ID
835

    
836
		WHERE 1 = 1
837
	    AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
838
		AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '')
839
		AND (A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '')
840
		AND (A.REQ_REASON LIKE '%' + @p_REQ_REASON + '%' OR @p_REQ_REASON IS NULL OR @p_REQ_REASON = '')
841
		AND (A.TOTAL_AMT=@p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0)
842
		AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')	
843
		AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
844
		AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
845
		AND (DATEDIFF(DAY,A.CREATE_DT , CAST(@p_CREATE_DT AS DATE)) = 0 OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
846
		
847
		AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
848
		AND (DATEDIFF(DAY,A.APPROVE_DT , CAST(@p_CREATE_DT AS DATE)) = 0 OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')	
849
		AND (DATEDIFF(DAY,A.REQ_DT , CAST(@p_REQ_DT AS DATE)) = 0 OR @p_REQ_DT IS NULL OR @p_REQ_DT = '')	
850
		AND (A.REQ_TYPE = @p_REQ_TYPE OR @p_REQ_TYPE IS NULL OR @p_REQ_TYPE =-1)
851
		--AND (@p_RECEIVE_BRANCH IS NULL OR A.PO_ID IN (SELECT PO_ID FROM TR_PO_DETAIL WHERE RECEIVE_BRANCH=@p_RECEIVE_BRANCH))
852
		AND A.RECORD_STATUS = '1'
853

    
854

    
855
		AND(
856
			@p_REQ_TYPE = -1  OR @p_REQ_TYPE IS NULL
857
			OR
858
				(
859
					@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)
860
				)
861
				OR
862
				(
863
						@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)
864
				)
865
			)
866

    
867

    
868
		
869
		AND(
870
		EXISTS(SELECT AUTH.ROLE_ID FROM @AUTHOR_DVDM AUTH WHERE AUTH.ROLE_ID=PLRP.ROLE_USER AND (
871
			(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=''))
872
			OR PLRP.DVDM_ID=AUTH.DVDM_ID
873
			OR ((PLRP.DVDM_ID ='' OR PLRP.DVDM_ID  IS NULL) AND (PLRP.BRANCH_ID IS NULL OR PLRP.BRANCH_ID=''))
874
		)) 
875
		OR (EXISTS(SELECT ID FROM dbo.PL_REQUEST_PROCESS_CHILD WHERE TLNAME=@p_TLNAME_USER  AND PL_REQUEST_PROCESS_CHILD.PROCESS_ID=PLRP.ID) ))
876
				AND(@p_FR_DATE IS NULL OR CAST(A.REQ_DT AS DATE) >= CAST(@p_FR_DATE AS DATE))
877
		AND(@p_TO_DATE IS NULL OR CAST(A.REQ_DT AS DATE) <= CAST(@p_TO_DATE AS DATE))	
878
			AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR)		
879
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 = '') 
880
	
881
			AND( NXL.NGUOIXULYTLNAME LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = ''
882
			OR NXL.NGUOIXULY LIKE '%' + @p_NGUOIXULY  + '%')
883
		--AND(
884
		--	(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
885
		--	OR
886
		--	(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',1) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
887
		--)
888

    
889
		--AND (A.BRANCH_ID = @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
890
		--AND (A.DEP_ID = @p_DEP_ID OR @p_DEP_ID IS NULL OR @p_DEP_ID = '')
891
		-- LUCTV 10 03 2021 BO SUNG DIEU KIENN NEU PHIEU CHUA DUOC DIEU PHOI THI SE KHONG TIM THAY O MAN HINH DVCM
892
		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'))) 
893
			OR (@p_NGUOIXULY IS NOT NULL AND @p_NGUOIXULY <> ''))
894
	ORDER BY A.CREATE_DT DESC
895
	END
896
	ELSE IF(@p_TYPE='DVKD_PARENT')
897
	BEGIN	
898
		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,
899
              A.TOTAL_AMT AS TOTAL_AMT,A.NOTES, A.RECORD_STATUS,A.MAKER_ID,A.CREATE_DT,A.AUTH_STATUS,A.CHECKER_ID,
900
			   UDV.TLFullName AS CHECKER_NAME_DV,
901
			   A.APPROVE_DT,
902
               A.PROCESS_ID,
903
			   D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME_DV,
904
			   CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt'
905
			   ELSE N'Chờ duyệt' END AS AUTH_STATUS_NAME,
906
			   G.BRANCH_CODE,
907
			   G.BRANCH_NAME,
908
			   UP.TLFullName AS CHECKER_NAME_PROCESS,
909
			   RP.APPROVE_DT AS APPROVE_DT_PROCESS,
910
			   UC.TLFullName AS MAKER_NAME,
911
			   RPN.PROCESS_ID AS PROCESS_ID_NEXT,
912
			   RP.ROLE_USER, 
913
			   RP.NOTES AS PROCESS_STATUS , 
914
			   RPN.NOTES AS PROCESS_STATUS_NEXT,
915
			   A.DVDM_APP_ID,
916
			   CD.DVDM_NAME AS DVDM_APP_NAME,
917
			   A.REQ_PARENT_ID,
918
			   PARENT.REQ_NAME AS REQ_PARENT_NAME,
919
			   PARENT.REQ_CODE AS REQ_PARENT_CODE,
920
			   PARENT.TOTAL_AMT AS REQ_PARENT_AMT,
921
			   A.BRANCH_FEE,
922
			   A.DEP_ID,
923
			   A.DEP_FEE,
924
			   DEP.DEP_NAME,
925
			   DEP.DEP_CODE,
926
			   BF.BRANCH_NAME AS BRANCH_FEE_NAME,
927
			   BF.BRANCH_CODE AS BRANCH_FEE_CODE,
928
			   DF.DEP_NAME AS DEP_FEE_NAME,
929
			   DF.DEP_CODE AS DEP_FEE_CODE,
930
			   '' AS BRANCH_DEP,
931
			   '' AS BRANCH_DEP_FEE,
932
			   
933

    
934

    
935
			   '' AS TYPE_JOB,
936
			   '' AS USER_JOB,
937
			   '' AS USER_JOB_NAME,
938
			   '' AS TRANSFER_MAKER,
939
			    A.CREATE_DT AS TRANFER_DT ,
940
				'' AS TRANSFER_MAKER_ID,
941
			   A.EFFEC_DT,A.IS_BACKDAY,
942
			   '' AS TYPE_JOB_XL,
943
			   '' AS USER_JOB_XL,
944
			   RP.ID AS REF_ID,
945
			   RPN.STATUS AS STATUS_NEXT,
946
			   RP.STATUS AS STATUS_CURR,
947
			   '' AS STATUS_JOB,
948
			   A.BRANCH_CREATE,
949
			   A.DEP_CREATE,
950
			   A.REQ_LINE,
951
			   A.TC_NOTES, A.SIGN_USER, TL.TLFullName AS SIGN_USER_NAME,
952
			   A.KT_NOTES,
953
			     A.IS_CHECKALL,
954
			   A.BASED_CONTENT, 
955
			   '' AS IS_TRANSFER,
956
			   --NGUOI XU LY
957
			   --dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) AS NGUOIXULY
958
			    NXL.NGUOIXULY AS NGUOIXULY
959
		FROM PL_REQUEST_DOC A 		
960
		LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
961
		LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID
962
		LEFT JOIN dbo.CM_DEPARTMENT DEP ON DEP.DEP_ID=A.DEP_ID
963

    
964
		LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE
965
		LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE
966

    
967
		LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID
968
	
969
		LEFT JOIN dbo.PL_REQUEST_PROCESS RPN 
970
		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') )
971
		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)
972
		LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID
973
		LEFT JOIN dbo.TL_USER UC ON UC.TLNANME=A.MAKER_ID
974
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=A.DVDM_APP_ID
975
		LEFT JOIN dbo.PL_REQUEST_DOC PARENT ON PARENT.REQ_ID=A.REQ_PARENT_ID
976
		LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME
977
		LEFT JOIN
978
		(
979
		
980
		SELECT	Results.REQ_ID,STUFF((select ', ' + RE.TLFullName  
981
		FROM @lstREQUEST RE
982
		WHERE RE.REQ_ID=Results.REQ_ID
983
		FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULY,
984
		STUFF((select ', ' + RE.TLNAME  
985
		FROM @lstREQUEST RE
986
		WHERE RE.REQ_ID=Results.REQ_ID
987
		FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULYTLNAME	
988
		FROM @lstREQUEST Results
989
		GROUP BY REQ_ID
990
		) NXL ON NXL.REQ_ID=A.REQ_ID
991
		WHERE 1 = 1
992
		
993
	    AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
994
		AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '')
995
		AND (A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '')
996
		AND (A.REQ_REASON LIKE '%' + @p_REQ_REASON + '%' OR @p_REQ_REASON IS NULL OR @p_REQ_REASON = '')
997
		AND (A.TOTAL_AMT=@p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0)
998
		AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')	
999
		AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
1000
		AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
1001
			AND (DATEDIFF(DAY,A.CREATE_DT , CAST(@p_CREATE_DT AS DATE)) = 0 OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
1002
	
1003
		AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
1004
		AND (DATEDIFF(DAY,A.APPROVE_DT , CAST(@p_CREATE_DT AS DATE)) = 0 OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')	
1005
		AND (DATEDIFF(DAY,A.REQ_DT , CAST(@p_REQ_DT AS DATE)) = 0 OR @p_REQ_DT IS NULL OR @p_REQ_DT = '')		
1006
		AND (A.REQ_TYPE = @p_REQ_TYPE OR @p_REQ_TYPE IS NULL OR @p_REQ_TYPE =-1)
1007
		AND A.RECORD_STATUS = '1'
1008
		
1009
		AND(
1010
			@p_REQ_TYPE = -1  OR @p_REQ_TYPE IS NULL
1011
			OR
1012
				(
1013
					@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)
1014
				)
1015
				OR
1016
				(
1017
						@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)
1018
				)
1019
			)
1020

    
1021
		AND (  (A.BRANCH_CREATE = @p_BRANCH_LOGIN AND( A.DEP_CREATE=@DEP_ID OR @BRANCH_TYPE <>'HS')) OR A.IS_CHECKALL=1)
1022

    
1023
		AND A.PROCESS_ID='APPROVE'
1024
		AND(@p_FR_DATE IS NULL OR CAST(A.REQ_DT AS DATE) >= CAST(@p_FR_DATE AS DATE))
1025
		AND(@p_TO_DATE IS NULL OR CAST(A.REQ_DT AS DATE) <= CAST(@p_TO_DATE AS DATE))	
1026
		AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR)	
1027
		AND(A.REQ_PARENT_ID IS NULL OR A.REQ_PARENT_ID='')
1028
		AND( NXL.NGUOIXULYTLNAME LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = ''
1029
			OR NXL.NGUOIXULY LIKE '%' + @p_NGUOIXULY  + '%')
1030
		--AND(
1031
		--	(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
1032
		--	OR
1033
		--	(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',1) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
1034
		--)
1035

    
1036
		--AND (A.BRANCH_ID = @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
1037
		--AND (A.DEP_ID = @p_DEP_ID OR @p_DEP_ID IS NULL OR @p_DEP_ID = '')
1038

    
1039

    
1040
		ORDER BY A.CREATE_DT DESC
1041
 
1042
	END
1043
	ELSE IF(@p_TYPE='DVKD_ISALL')
1044
	BEGIN	
1045
		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,
1046
              A.TOTAL_AMT AS TOTAL_AMT,A.NOTES, A.RECORD_STATUS,A.MAKER_ID,A.CREATE_DT,A.AUTH_STATUS,A.CHECKER_ID,
1047
			   UDV.TLFullName AS CHECKER_NAME_DV,
1048
			   A.APPROVE_DT,
1049
               A.PROCESS_ID,
1050
			   D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME_DV,
1051
			   CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt'
1052
			   ELSE N'Chờ duyệt' END AS AUTH_STATUS_NAME,
1053
			   G.BRANCH_CODE,
1054
			   G.BRANCH_NAME,
1055
			   UP.TLFullName AS CHECKER_NAME_PROCESS,
1056
			   RP.APPROVE_DT AS APPROVE_DT_PROCESS,
1057
			   UC.TLFullName AS MAKER_NAME,
1058
			   RPN.PROCESS_ID AS PROCESS_ID_NEXT,
1059
			   RP.ROLE_USER, 
1060
			   RP.NOTES AS PROCESS_STATUS , 
1061
			   RPN.NOTES AS PROCESS_STATUS_NEXT,
1062
			   A.DVDM_APP_ID,
1063
			   CD.DVDM_NAME AS DVDM_APP_NAME,
1064
			   A.REQ_PARENT_ID,
1065
			   PARENT.REQ_NAME AS REQ_PARENT_NAME,
1066
			   PARENT.REQ_CODE AS REQ_PARENT_CODE,
1067
			   PARENT.TOTAL_AMT AS REQ_PARENT_AMT,
1068
			   A.BRANCH_FEE,
1069
			   A.DEP_ID,
1070
			   A.DEP_FEE,
1071
			   DEP.DEP_NAME,
1072
			   DEP.DEP_CODE,
1073
			   BF.BRANCH_NAME AS BRANCH_FEE_NAME,
1074
			   BF.BRANCH_CODE AS BRANCH_FEE_CODE,
1075
			   DF.DEP_NAME AS DEP_FEE_NAME,
1076
			   DF.DEP_CODE AS DEP_FEE_CODE,
1077
			   '' AS BRANCH_DEP,
1078
			   '' AS BRANCH_DEP_FEE,
1079
			   
1080

    
1081

    
1082
			   '' AS TYPE_JOB,
1083
			   '' AS USER_JOB,
1084
			   '' AS USER_JOB_NAME,
1085
			   '' AS TRANSFER_MAKER,
1086
			    A.CREATE_DT AS TRANFER_DT ,
1087
				'' AS TRANSFER_MAKER_ID,
1088
			   A.EFFEC_DT,A.IS_BACKDAY,
1089
			   '' AS TYPE_JOB_XL,
1090
			   '' AS USER_JOB_XL,
1091
			   RP.ID AS REF_ID,
1092
			   RPN.STATUS AS STATUS_NEXT,
1093
			   RP.STATUS AS STATUS_CURR,
1094
			   '' AS STATUS_JOB,
1095
			   A.BRANCH_CREATE,
1096
			   A.DEP_CREATE,
1097
			   A.REQ_LINE,
1098
			   A.TC_NOTES, A.SIGN_USER, TL.TLFullName AS SIGN_USER_NAME,
1099
			   A.KT_NOTES,
1100
			     A.IS_CHECKALL,
1101
			   A.BASED_CONTENT, 
1102
			   '' AS IS_TRANSFER,
1103
			   --NGUOI XU LY
1104
			   --dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) AS NGUOIXULY
1105
			    NXL.NGUOIXULY AS NGUOIXULY
1106
		FROM PL_REQUEST_DOC A 		
1107
		LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
1108
		LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID
1109
		LEFT JOIN dbo.CM_DEPARTMENT DEP ON DEP.DEP_ID=A.DEP_ID
1110

    
1111
		LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE
1112
		LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE
1113

    
1114
		LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID
1115
	
1116
		LEFT JOIN dbo.PL_REQUEST_PROCESS RPN 
1117
		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') )
1118
		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)
1119
		LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID
1120
		LEFT JOIN dbo.TL_USER UC ON UC.TLNANME=A.MAKER_ID
1121
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=A.DVDM_APP_ID
1122
		LEFT JOIN dbo.PL_REQUEST_DOC PARENT ON PARENT.REQ_ID=A.REQ_PARENT_ID
1123
		LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME
1124
		LEFT JOIN
1125
		(
1126
		
1127
		SELECT	Results.REQ_ID,STUFF((select ', ' + RE.TLFullName  
1128
		FROM @lstREQUEST RE
1129
		WHERE RE.REQ_ID=Results.REQ_ID
1130
		FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULY,
1131
		STUFF((select ', ' + RE.TLNAME  
1132
		FROM @lstREQUEST RE
1133
		WHERE RE.REQ_ID=Results.REQ_ID
1134
		FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULYTLNAME	
1135
		FROM @lstREQUEST Results
1136
		GROUP BY REQ_ID
1137
		) NXL ON NXL.REQ_ID=A.REQ_ID
1138
		WHERE 1 = 1
1139
		
1140
	    AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
1141
		AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '')
1142
		AND (A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '')
1143
		AND (A.REQ_REASON LIKE '%' + @p_REQ_REASON + '%' OR @p_REQ_REASON IS NULL OR @p_REQ_REASON = '')
1144
		AND (A.TOTAL_AMT=@p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0)
1145
		AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')	
1146
		AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
1147
		AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
1148
			AND (DATEDIFF(DAY,A.CREATE_DT , CAST(@p_CREATE_DT AS DATE)) = 0 OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
1149
	
1150
		AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
1151
		AND (DATEDIFF(DAY,A.APPROVE_DT , CAST(@p_CREATE_DT AS DATE)) = 0 OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')	
1152
		AND (DATEDIFF(DAY,A.REQ_DT , CAST(@p_REQ_DT AS DATE)) = 0 OR @p_REQ_DT IS NULL OR @p_REQ_DT = '')		
1153
		AND (A.REQ_TYPE = @p_REQ_TYPE OR @p_REQ_TYPE IS NULL OR @p_REQ_TYPE =-1)
1154
		AND A.RECORD_STATUS = '1'
1155
		
1156
		AND(
1157
			@p_REQ_TYPE = -1  OR @p_REQ_TYPE IS NULL
1158
			OR
1159
				(
1160
					@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)
1161
				)
1162
				OR
1163
				(
1164
						@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)
1165
				)
1166
			)
1167

    
1168
		AND A.IS_CHECKALL=1
1169

    
1170
		AND A.PROCESS_ID='APPROVE'
1171
		AND(@p_FR_DATE IS NULL OR CAST(A.REQ_DT AS DATE) >= CAST(@p_FR_DATE AS DATE))
1172
		AND(@p_TO_DATE IS NULL OR CAST(A.REQ_DT AS DATE) <= CAST(@p_TO_DATE AS DATE))	
1173
		AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR)	
1174
		AND(A.REQ_PARENT_ID IS NULL OR A.REQ_PARENT_ID='')
1175
			AND( NXL.NGUOIXULYTLNAME LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = ''
1176
			OR NXL.NGUOIXULY LIKE '%' + @p_NGUOIXULY  + '%')
1177
		--AND(
1178
		--	(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
1179
		--	OR
1180
		--	(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',1) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
1181
		--)
1182

    
1183
		--AND (A.BRANCH_ID = @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
1184
		--AND (A.DEP_ID = @p_DEP_ID OR @p_DEP_ID IS NULL OR @p_DEP_ID = '')
1185

    
1186

    
1187
		ORDER BY A.CREATE_DT DESC
1188
 
1189
	END
1190
	ELSE IF(@p_TYPE='TTCT_DVCM')
1191
	BEGIN	
1192
		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,
1193
              A.TOTAL_AMT AS TOTAL_AMT,A.NOTES, A.RECORD_STATUS,A.MAKER_ID,A.CREATE_DT,A.AUTH_STATUS,A.CHECKER_ID,
1194
			   UDV.TLFullName AS CHECKER_NAME_DV,
1195
			   A.APPROVE_DT,
1196
               A.PROCESS_ID,
1197
			   D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME_DV,
1198
			   CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt'
1199
			   ELSE N'Chờ duyệt' END AS AUTH_STATUS_NAME,
1200
			   G.BRANCH_CODE,
1201
			   G.BRANCH_NAME,
1202
			   UP.TLFullName AS CHECKER_NAME_PROCESS,
1203
			   RP.APPROVE_DT AS APPROVE_DT_PROCESS,
1204
			   UC.TLFullName AS MAKER_NAME,
1205
			   RPN.PROCESS_ID AS PROCESS_ID_NEXT,
1206
			   RP.ROLE_USER, 
1207
			   RP.NOTES AS PROCESS_STATUS , 
1208
			   RPN.NOTES AS PROCESS_STATUS_NEXT,
1209
			   A.DVDM_APP_ID,
1210
			   CD.DVDM_NAME AS DVDM_APP_NAME,
1211
			   A.REQ_PARENT_ID,
1212
			   PARENT.REQ_NAME AS REQ_PARENT_NAME,
1213
			   PARENT.REQ_CODE AS REQ_PARENT_CODE,
1214
			   PARENT.TOTAL_AMT AS REQ_PARENT_AMT,
1215
			   A.BRANCH_FEE,
1216
			   A.DEP_ID,
1217
			   A.DEP_FEE,
1218
			   DEP.DEP_NAME,
1219
			   DEP.DEP_CODE,
1220
			   BF.BRANCH_NAME AS BRANCH_FEE_NAME,
1221
			   BF.BRANCH_CODE AS BRANCH_FEE_CODE,
1222
			   DF.DEP_NAME AS DEP_FEE_NAME,
1223
			   DF.DEP_CODE AS DEP_FEE_CODE,
1224
			   '' AS BRANCH_DEP,
1225
			   '' AS BRANCH_DEP_FEE,
1226
			   
1227

    
1228

    
1229
			   '' AS TYPE_JOB,
1230
			   '' AS USER_JOB,
1231
			   '' AS USER_JOB_NAME,
1232
			   '' AS TRANSFER_MAKER,
1233
			    A.CREATE_DT AS TRANFER_DT ,
1234
				'' AS TRANSFER_MAKER_ID,
1235
			   A.EFFEC_DT,A.IS_BACKDAY,
1236
			   '' AS TYPE_JOB_XL,
1237
			   '' AS USER_JOB_XL,
1238
			   RP.ID AS REF_ID,
1239
			   RPN.STATUS AS STATUS_NEXT,
1240
			   RP.STATUS AS STATUS_CURR,
1241
			   '' AS STATUS_JOB,
1242
			   A.BRANCH_CREATE,
1243
			   A.DEP_CREATE,
1244
			   A.REQ_LINE,
1245
			   A.TC_NOTES, A.SIGN_USER, TL.TLFullName AS SIGN_USER_NAME,
1246
			   A.KT_NOTES,
1247
			     A.IS_CHECKALL,
1248
			   A.BASED_CONTENT, 
1249
			   '' AS IS_TRANSFER,
1250
			   --NGUOI XU LY
1251
			   --dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) AS NGUOIXULY
1252
			    NXL.NGUOIXULY AS NGUOIXULY
1253
		FROM PL_REQUEST_DOC A 		
1254
		LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
1255
		LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID
1256
		LEFT JOIN dbo.CM_DEPARTMENT DEP ON DEP.DEP_ID=A.DEP_ID
1257

    
1258
		LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE
1259
		LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE
1260

    
1261
		LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID
1262
	
1263
		LEFT JOIN dbo.PL_REQUEST_PROCESS RPN 
1264
		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') )
1265
		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)
1266
		LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID
1267
		LEFT JOIN dbo.TL_USER UC ON UC.TLNANME=A.MAKER_ID
1268
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=A.DVDM_APP_ID
1269
		LEFT JOIN dbo.PL_REQUEST_DOC PARENT ON PARENT.REQ_ID=A.REQ_PARENT_ID
1270
		LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME
1271
		LEFT JOIN
1272
		(
1273
		
1274
		SELECT	Results.REQ_ID,STUFF((select ', ' + RE.TLFullName  
1275
		FROM @lstREQUEST RE
1276
		WHERE RE.REQ_ID=Results.REQ_ID
1277
		FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULY,
1278
		STUFF((select ', ' + RE.TLNAME  
1279
		FROM @lstREQUEST RE
1280
		WHERE RE.REQ_ID=Results.REQ_ID
1281
		FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '') NGUOIXULYTLNAME	
1282
		FROM @lstREQUEST Results
1283
		GROUP BY REQ_ID
1284
		) NXL ON NXL.REQ_ID=A.REQ_ID
1285
		WHERE 1 = 1
1286
		
1287
	    AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
1288
		AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '')
1289
		AND (A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '')
1290
		AND (A.REQ_REASON LIKE '%' + @p_REQ_REASON + '%' OR @p_REQ_REASON IS NULL OR @p_REQ_REASON = '')
1291
		AND (A.TOTAL_AMT=@p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0)
1292
		AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')	
1293
		AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
1294
		AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
1295
			AND (DATEDIFF(DAY,A.CREATE_DT , CAST(@p_CREATE_DT AS DATE)) = 0 OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
1296
	
1297
		AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
1298
		AND (DATEDIFF(DAY,A.APPROVE_DT , CAST(@p_CREATE_DT AS DATE)) = 0 OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')	
1299
		AND (DATEDIFF(DAY,A.REQ_DT , CAST(@p_REQ_DT AS DATE)) = 0 OR @p_REQ_DT IS NULL OR @p_REQ_DT = '')		
1300
		AND (A.REQ_TYPE = @p_REQ_TYPE OR @p_REQ_TYPE IS NULL OR @p_REQ_TYPE =-1)
1301
		AND A.RECORD_STATUS = '1'
1302
		
1303
		AND(
1304
			@p_REQ_TYPE = -1  OR @p_REQ_TYPE IS NULL
1305
			OR
1306
				(
1307
					@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)
1308
				)
1309
				OR
1310
				(
1311
						@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)
1312
				)
1313
			)
1314

    
1315
		AND (  
1316
		 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) )
1317
		)
1318

    
1319
		AND A.PROCESS_ID='APPROVE'
1320
		AND(@p_FR_DATE IS NULL OR CAST(A.REQ_DT AS DATE) >= CAST(@p_FR_DATE AS DATE))
1321
		AND(@p_TO_DATE IS NULL OR CAST(A.REQ_DT AS DATE) <= CAST(@p_TO_DATE AS DATE))	
1322
		AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR)	
1323
		AND(A.REQ_PARENT_ID IS NULL OR A.REQ_PARENT_ID='')
1324
			AND( NXL.NGUOIXULYTLNAME LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = ''
1325
			OR NXL.NGUOIXULY LIKE '%' + @p_NGUOIXULY  + '%')
1326
		--AND(
1327
		--	(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
1328
		--	OR
1329
		--	(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',1) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
1330
		--)
1331

    
1332
		--AND (A.BRANCH_ID = @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
1333
		--AND (A.DEP_ID = @p_DEP_ID OR @p_DEP_ID IS NULL OR @p_DEP_ID = '')
1334

    
1335

    
1336
		ORDER BY A.CREATE_DT DESC
1337
 
1338
	END
1339
   END