Project

General

Profile

1.4 TIM KIEM TO TRINH.txt

Luc Tran Van, 03/10/2021 11:25 AM

 
1

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

    
33
AS
34
BEGIN
35

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

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

    
45

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

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

    
59

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

    
65

    
66

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

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

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

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

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

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

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

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

    
228

    
229

    
230

    
231
		
232
	----
233

    
234

    
235

    
236

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

    
275

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

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

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

    
338
		WHERE 1 = 1
339
		
340
	    AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
341
		AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '')
342
		AND (A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '')
343
		AND (A.REQ_REASON LIKE '%' + @p_REQ_REASON + '%' OR @p_REQ_REASON IS NULL OR @p_REQ_REASON = '')
344
		AND (A.TOTAL_AMT=@p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0)
345
		AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')	
346
		AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
347
		AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
348
			AND (DATEDIFF(DAY,A.CREATE_DT , CAST(@p_CREATE_DT AS DATE)) = 0 OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
349
	
350
		AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
351
		AND (DATEDIFF(DAY,A.APPROVE_DT , CAST(@p_CREATE_DT AS DATE)) = 0 OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')	
352
		AND (DATEDIFF(DAY,A.REQ_DT , CAST(@p_REQ_DT AS DATE)) = 0 OR @p_REQ_DT IS NULL OR @p_REQ_DT = '')		
353
		AND (A.REQ_TYPE = @p_REQ_TYPE OR @p_REQ_TYPE IS NULL OR @p_REQ_TYPE =-1)
354
		AND A.RECORD_STATUS = '1'
355
		
356
		AND(
357
			@p_REQ_TYPE = -1  OR @p_REQ_TYPE IS NULL
358
			OR
359
				(
360
					@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)
361
				)
362
				OR
363
				(
364
						@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)
365
				)
366
			)
367

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

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

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

    
433

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

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

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

    
515

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

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

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

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

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

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

    
680

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

    
693

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

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

    
724

    
725
	ORDER BY A.CREATE_DT DESC
726
	END
727

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

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

    
769

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

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

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

    
852

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

    
865

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

    
887
		--AND (A.BRANCH_ID = @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
888
		--AND (A.DEP_ID = @p_DEP_ID OR @p_DEP_ID IS NULL OR @p_DEP_ID = '')
889
		-- LUCTV 10 03 2021 BO SUNG DIEU KIENN NEU PHIEU CHUA DUOC DIEU PHOI THI SE KHONG TIM THAY O MAN HINH DVCM
890
		AND(EXISTS(SELECT * FROM dbo.PL_REQUEST_PROCESS_CHILD  C WHERE A.REQ_ID=C.REQ_ID AND C.PROCESS_ID=PLRP.ID ))
891

    
892
	ORDER BY A.CREATE_DT DESC
893
	END
894
	ELSE IF(@p_TYPE='DVKD_PARENT')
895
	BEGIN	
896
		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,
897
              A.TOTAL_AMT AS TOTAL_AMT,A.NOTES, A.RECORD_STATUS,A.MAKER_ID,A.CREATE_DT,A.AUTH_STATUS,A.CHECKER_ID,
898
			   UDV.TLFullName AS CHECKER_NAME_DV,
899
			   A.APPROVE_DT,
900
               A.PROCESS_ID,
901
			   D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME_DV,
902
			   CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt'
903
			   ELSE N'Chờ duyệt' END AS AUTH_STATUS_NAME,
904
			   G.BRANCH_CODE,
905
			   G.BRANCH_NAME,
906
			   UP.TLFullName AS CHECKER_NAME_PROCESS,
907
			   RP.APPROVE_DT AS APPROVE_DT_PROCESS,
908
			   UC.TLFullName AS MAKER_NAME,
909
			   RPN.PROCESS_ID AS PROCESS_ID_NEXT,
910
			   RP.ROLE_USER, 
911
			   RP.NOTES AS PROCESS_STATUS , 
912
			   RPN.NOTES AS PROCESS_STATUS_NEXT,
913
			   A.DVDM_APP_ID,
914
			   CD.DVDM_NAME AS DVDM_APP_NAME,
915
			   A.REQ_PARENT_ID,
916
			   PARENT.REQ_NAME AS REQ_PARENT_NAME,
917
			   PARENT.REQ_CODE AS REQ_PARENT_CODE,
918
			   PARENT.TOTAL_AMT AS REQ_PARENT_AMT,
919
			   A.BRANCH_FEE,
920
			   A.DEP_ID,
921
			   A.DEP_FEE,
922
			   DEP.DEP_NAME,
923
			   DEP.DEP_CODE,
924
			   BF.BRANCH_NAME AS BRANCH_FEE_NAME,
925
			   BF.BRANCH_CODE AS BRANCH_FEE_CODE,
926
			   DF.DEP_NAME AS DEP_FEE_NAME,
927
			   DF.DEP_CODE AS DEP_FEE_CODE,
928
			   '' AS BRANCH_DEP,
929
			   '' AS BRANCH_DEP_FEE,
930
			   
931

    
932

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

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

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

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

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

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

    
1037

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

    
1079

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

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

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

    
1166
		AND A.IS_CHECKALL=1
1167

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

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

    
1184

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

    
1226

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

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

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

    
1313
		AND (  
1314
		 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) )
1315
		)
1316

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

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

    
1333

    
1334
		ORDER BY A.CREATE_DT DESC
1335
 
1336
	END
1337
   END