Project

General

Profile

PL_REQUEST_DOC_SEARCH.txt

Truong Nguyen Vu, 02/05/2021 11:10 AM

 
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(20),
72
		BRANCH_ID VARCHAR(20),
73
		DEP_ID VARCHAR(20)
74
	)
75
	DECLARE @AUTHOR_DVDM TABLE
76
	(
77
		ROLE_ID VARCHAR(20),
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
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
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
	
133
	
134

    
135
	INSERT INTO @COST_ID
136
	SELECT COST_ID FROM dbo.PL_COSTCENTER_DT WHERE DEP_ID=@DEP_ID AND BRANCH_ID=@p_BRANCH_LOGIN
137
	INSERT INTO @DVDM_ID
138
	SELECT DVDM_ID FROM dbo.PL_COSTCENTER WHERE COST_ID IN (SELECT COST_ID FROM @COST_ID) GROUP BY DVDM_ID
139
	IF(@p_TYPE='DVKD')
140
	BEGIN	
141
		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,
142
               A.TOTAL_AMT AS TOTAL_AMT,A.NOTES, A.RECORD_STATUS,A.MAKER_ID,A.CREATE_DT,A.AUTH_STATUS,A.CHECKER_ID,
143
			   UDV.TLFullName AS CHECKER_NAME_DV,
144
			   A.APPROVE_DT,
145
               A.PROCESS_ID,
146
			   D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME_DV,
147
			   CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt'
148
			   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,
149
			   G.BRANCH_CODE,
150
			   G.BRANCH_NAME,
151
			   UP.TLFullName AS CHECKER_NAME_PROCESS,
152
			   RP.APPROVE_DT AS APPROVE_DT_PROCESS,
153
			   UC.TLFullName AS MAKER_NAME,
154
			   RPN.PROCESS_ID AS PROCESS_ID_NEXT,
155
			   RP.ROLE_USER, 
156
			   RP.NOTES AS PROCESS_STATUS , 
157
			   RPN.NOTES AS PROCESS_STATUS_NEXT,
158
			   A.DVDM_APP_ID,
159
			   CD.DVDM_NAME AS DVDM_APP_NAME,
160
			   A.REQ_PARENT_ID,
161
			   PARENT.REQ_NAME AS REQ_PARENT_NAME,
162
			   PARENT.REQ_CODE AS REQ_PARENT_CODE,
163
			   PARENT.TOTAL_AMT AS REQ_PARENT_AMT,
164
			   A.BRANCH_FEE,
165
			   A.DEP_ID,
166
			   A.DEP_FEE,
167
			   DEP.DEP_NAME,
168
			   DEP.DEP_CODE,
169
			   BF.BRANCH_NAME AS BRANCH_FEE_NAME,
170
			   BF.BRANCH_CODE AS BRANCH_FEE_CODE,
171
			   DF.DEP_NAME AS DEP_FEE_NAME,
172
			   DF.DEP_CODE AS DEP_FEE_CODE,
173
			   '' AS BRANCH_DEP,
174
			   '' AS BRANCH_DEP_FEE,
175
			   
176

    
177

    
178
			   '' AS TYPE_JOB,
179
			   '' AS USER_JOB,
180
			   '' AS USER_JOB_NAME,
181
			   '' AS TRANSFER_MAKER,
182
			    A.CREATE_DT AS TRANFER_DT ,
183
				'' AS TRANSFER_MAKER_ID,
184
			   A.EFFEC_DT,A.IS_BACKDAY,
185
			   '' AS TYPE_JOB_XL,
186
			   '' AS USER_JOB_XL,
187
			   RP.ID AS REF_ID,
188
			   RPN.STATUS AS STATUS_NEXT,
189
			   RP.STATUS AS STATUS_CURR,
190
			   '' AS STATUS_JOB,
191
			   A.BRANCH_CREATE,
192
			   A.DEP_CREATE,
193
			   A.REQ_LINE,
194
			   A.TC_NOTES,
195
			   A.SIGN_USER,
196
			   TL.TLFullName AS SIGN_USER_NAME,
197
			   A.KT_NOTES,
198
			   A.IS_CHECKALL,
199
			   A.BASED_CONTENT,
200
			   A.PL_BASED_ID, PL_B.REQ_CODE AS PL_BASED_CODE, PL_B.REQ_CONTENT AS PL_BASED_CONTENT, 
201
			   '' AS IS_TRANSFER,
202
			   --NGUOI XU LY
203
			   dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) AS NGUOIXULY
204
			   
205
		FROM PL_REQUEST_DOC A 	
206
		--LEFT JOIN	dbo.PL_REQUEST_PROCESS PLRP ON PLRP.REQ_ID=A.REQ_ID  AND PLRP.STATUS <>'U'
207
		LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
208
		LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID
209
		LEFT JOIN dbo.CM_DEPARTMENT DEP ON DEP.DEP_ID=A.DEP_ID
210

    
211
		LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE
212
		LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE
213

    
214
		LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID
215
	
216
		LEFT JOIN dbo.PL_REQUEST_PROCESS RPN 
217
		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') )
218
		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)
219
		LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID
220
		LEFT JOIN dbo.TL_USER UC ON UC.TLNANME=A.MAKER_ID
221
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=A.DVDM_APP_ID
222
		LEFT JOIN dbo.PL_REQUEST_DOC PARENT ON PARENT.REQ_ID=A.REQ_PARENT_ID
223
		LEFT JOIN dbo.PL_REQUEST_DOC PL_B ON PL_B.REQ_ID=A.PL_BASED_ID
224
		LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME
225

    
226

    
227
		WHERE 1 = 1
228
		
229
	    AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
230
		AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '')
231
		AND (A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '')
232
		AND (A.REQ_REASON LIKE '%' + @p_REQ_REASON + '%' OR @p_REQ_REASON IS NULL OR @p_REQ_REASON = '')
233
		AND (A.TOTAL_AMT=@p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0)
234
		AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')	
235
		AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
236
		AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
237
			AND (DATEDIFF(DAY,A.CREATE_DT , CAST(@p_CREATE_DT AS DATE)) = 0 OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
238
	
239
		AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
240
		AND (DATEDIFF(DAY,A.APPROVE_DT , CAST(@p_CREATE_DT AS DATE)) = 0 OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')	
241
		AND (DATEDIFF(DAY,A.REQ_DT , CAST(@p_REQ_DT AS DATE)) = 0 OR @p_REQ_DT IS NULL OR @p_REQ_DT = '')		
242
		AND (A.REQ_TYPE = @p_REQ_TYPE OR @p_REQ_TYPE IS NULL OR @p_REQ_TYPE =-1)
243
		AND A.RECORD_STATUS = '1'
244
		
245
		AND(
246
			@p_REQ_TYPE = -1  OR @p_REQ_TYPE IS NULL
247
			OR
248
				(
249
					@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)
250
				)
251
				OR
252
				(
253
						@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)
254
				)
255
			)
256

    
257
		AND    (A.MAKER_ID=@p_TLNAME_USER OR 
258
				(A.PROCESS_ID ='APPROVE' AND A.BRANCH_CREATE=@p_BRANCH_LOGIN AND (A.DEP_CREATE=@DEP_ID OR @BRANCH_TYPE<>'HS'))
259
				OR EXISTS(SELECT ID FROM dbo.PL_ROLE_DATA_CONFIG WHERE ROLE_TYPE='PL_REQUEST_DOC_ALL' AND BRANCH_ID=@p_TLNAME_USER )
260
				OR EXISTS(SELECT * FROM dbo.PL_REQUEST_PROCESS PLRP WHERE PLRP.PROCESS_ID='APPNEW' AND PLRP.REQ_ID=A.REQ_ID
261
																			AND EXISTS(SELECT AUTH.ROLE_ID FROM @AUTHOR AUTH WHERE AUTH.ROLE_ID=PLRP.ROLE_USER AND AUTH.BRANCH_ID=PLRP.BRANCH_ID 
262
																														AND(PLRP.DEP_ID=AUTH.DEP_ID OR PLRP.DEP_ID IS NULL OR PLRP.DEP_ID ='') ))
263
				--OR (EXISTS(SELECT * FROM dbo.PL_REQUEST_PROCESS PLRP WHERE A.REQ_ID=PLRP.REQ_ID AND PLRP.PROCESS_ID='APPNEW' 
264
				--												AND PLRP.ROLE_USER IN (SELECT ROLE_ID FROM @TABLE_ROLE) AND PLRP.BRANCH_ID=@p_BRANCH_LOGIN 
265
				--												AND (PLRP.DEP_ID=@DEP_ID OR PLRP.DEP_ID IS NULL OR PLRP.DEP_ID =''))) 
266
				OR(A.SIGN_USER IS NOT NULL AND A.SIGN_USER <>'' AND A.SIGN_USER  =@p_TLNAME_USER AND A.AUTH_STATUS<>'E'))
267
		--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 = '')
268
		--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 ='')))))
269
		AND (A.AUTH_STATUS = @p_AUTH_STATUS OR @p_AUTH_STATUS ='' OR @p_AUTH_STATUS IS NULL)
270
		AND(@p_FR_DATE IS NULL OR CAST(A.REQ_DT AS DATE) >= CAST(@p_FR_DATE AS DATE))
271
		AND(@p_TO_DATE IS NULL OR CAST(A.REQ_DT AS DATE) <= CAST(@p_TO_DATE AS DATE))	
272
		AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR)	
273
		AND(
274
			(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
275
			OR
276
			(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',1) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
277
		)
278

    
279
		AND (A.BRANCH_ID = @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
280
		AND (A.DEP_ID = @p_DEP_ID OR @p_DEP_ID IS NULL OR @p_DEP_ID = '')
281
		
282
		ORDER BY A.CREATE_DT DESC
283
	END
284
	ELSE IF(@p_TYPE='PDTT')
285
	BEGIN
286
		
287
		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,
288
               A.TOTAL_AMT AS TOTAL_AMT,A.NOTES, A.RECORD_STATUS,A.MAKER_ID,A.CREATE_DT,A.AUTH_STATUS,A.CHECKER_ID,
289

    
290
			   UDV.TLFullName AS CHECKER_NAME_DV,
291
			  
292
			   A.APPROVE_DT,
293
               A.PROCESS_ID,
294
			   D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME_DV,
295
			   CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt'
296
			   ELSE N'Chờ duyệt' END AS AUTH_STATUS_NAME,
297
			   G.BRANCH_CODE,
298
			   G.BRANCH_NAME,
299
			   UP.TLFullName AS CHECKER_NAME_PROCESS,
300
			   RP.APPROVE_DT AS APPROVE_DT_PROCESS,
301
			   UC.TLFullName AS MAKER_NAME,
302
			   RPN.PROCESS_ID AS PROCESS_ID_NEXT,
303
			   RPN.ROLE_USER, 
304
			   RP.NOTES AS PROCESS_STATUS , 
305
			   RPN.NOTES AS PROCESS_STATUS_NEXT,
306
			   A.DVDM_APP_ID,
307
			   CD.DVDM_NAME AS DVDM_APP_NAME,
308
			   A.REQ_PARENT_ID,
309
			   PARENT.REQ_NAME AS REQ_PARENT_NAME,
310
			   PARENT.REQ_CODE AS REQ_PARENT_CODE,
311
			   PARENT.TOTAL_AMT AS REQ_PARENT_AMT,
312
			   A.BRANCH_FEE,
313
			   A.DEP_ID,
314
			   A.DEP_FEE,
315
			   DEP.DEP_NAME,
316
			   DEP.DEP_CODE,
317
			   BF.BRANCH_NAME AS BRANCH_FEE_NAME,
318
			   BF.BRANCH_CODE AS BRANCH_FEE_CODE,
319
			   DF.DEP_NAME AS DEP_FEE_NAME,
320
			   DF.DEP_CODE AS DEP_FEE_CODE,
321
			   '' AS BRANCH_DEP,
322
			   '' AS BRANCH_DEP_FEE,
323
			   
324

    
325

    
326
			   RPC.TYPE_JOB AS TYPE_JOB,
327
			   RPC.TLNAME AS USER_JOB,
328
			   TU.TLFullName AS USER_JOB_NAME,
329
			   TFM.TLNANME AS TRANSFER_MAKER,
330
			    RPC.TRANFER_DT AS TRANFER_DT ,
331
				RPC.MAKER_ID AS TRANSFER_MAKER_ID,
332
			   A.EFFEC_DT,A.IS_BACKDAY,
333
			   '' AS TYPE_JOB_XL,
334
			   '' AS USER_JOB_XL,
335
			   RP.ID AS REF_ID,
336
			   RPN.STATUS AS STATUS_NEXT,
337
			   PLRP.STATUS AS STATUS_CURR,
338
			    RPC.STATUS_JOB AS STATUS_JOB,
339
			   A.BRANCH_CREATE,
340
			   A.DEP_CREATE,
341
			   A.REQ_LINE,
342
			     A.TC_NOTES,
343
				  A.SIGN_USER,
344
			   TL.TLFullName  AS SIGN_USER_NAME,
345
			   A.KT_NOTES,
346
			     A.IS_CHECKALL,
347
			   A.BASED_CONTENT, 
348
			   '' AS IS_TRANSFER,
349
			   --NGUOI XU LY
350
			   dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) AS NGUOIXULY
351

    
352
		FROM PL_REQUEST_DOC A 	
353
		INNER JOIN dbo.PL_REQUEST_PROCESS PLRP ON PLRP.REQ_ID=A.REQ_ID AND PLRP.STATUS <>'U'	
354
		LEFT JOIN dbo.PL_REQUEST_PROCESS RPN 
355
		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') )
356
		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)	
357
		LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
358
		LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID
359

    
360
		LEFT JOIN dbo.CM_DEPARTMENT DEP ON DEP.DEP_ID=A.DEP_ID
361
		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')
362
		LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE
363
		LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE
364
		LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID
365
		LEFT JOIN dbo.TL_USER UC ON UC.TLNANME=A.MAKER_ID
366
		LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID
367
		LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=RPC.TLNAME
368
		LEFT JOIN dbo.TL_USER TFM ON TFM.TLNANME=RPC.MAKER_ID
369
		LEFT JOIN dbo.CM_PROCESS_STATUS PS ON PS.PROCESS_ID = A.PROCESS_ID
370
		LEFT JOIN dbo.CM_PROCESS_STATUS PSN ON PSN.PROCESS_ID = A.PROCESS_ID
371
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=A.DVDM_APP_ID
372
		LEFT JOIN dbo.PL_REQUEST_DOC PARENT ON PARENT.REQ_ID=A.REQ_PARENT_ID
373
		LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME
374
		WHERE 1 = 1
375
	    AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
376
		AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '')
377
		AND (A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '')
378
		AND (A.REQ_REASON LIKE '%' + @p_REQ_REASON + '%' OR @p_REQ_REASON IS NULL OR @p_REQ_REASON = '')
379
		AND (A.TOTAL_AMT=@p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0)
380
		AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')	
381
		AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
382
		AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
383
		AND (DATEDIFF(DAY,A.CREATE_DT , CAST(@p_CREATE_DT AS DATE)) = 0 OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
384
		
385
		AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
386
		AND (DATEDIFF(DAY,A.APPROVE_DT , CAST(@p_CREATE_DT AS DATE)) = 0 OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')	
387
		AND (DATEDIFF(DAY,A.REQ_DT , CAST(@p_REQ_DT AS DATE)) = 0 OR @p_REQ_DT IS NULL OR @p_REQ_DT = '')	
388
		AND (A.REQ_TYPE = @p_REQ_TYPE OR @p_REQ_TYPE IS NULL OR @p_REQ_TYPE =-1)
389
		--AND (@p_RECEIVE_BRANCH IS NULL OR A.PO_ID IN (SELECT PO_ID FROM TR_PO_DETAIL WHERE RECEIVE_BRANCH=@p_RECEIVE_BRANCH))
390
		AND A.RECORD_STATUS = '1'
391

    
392

    
393
		AND(
394
			@p_REQ_TYPE = -1  OR @p_REQ_TYPE IS NULL
395
			OR
396
				(
397
					@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)
398
				)
399
				OR
400
				(
401
						@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)
402
				)
403
			)
404

    
405
		AND EXISTS(SELECT AUTH.ROLE_ID FROM @AUTHOR_DVDM AUTH WHERE AUTH.ROLE_ID=PLRP.ROLE_USER AND (
406
			(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=''))
407
			OR PLRP.DVDM_ID=AUTH.DVDM_ID
408
			OR ((PLRP.DVDM_ID ='' OR PLRP.DVDM_ID  IS NULL) AND (PLRP.BRANCH_ID IS NULL OR PLRP.BRANCH_ID=''))
409
		))
410
		--AND PLRP.ROLE_USER IN (SELECT ROLE_ID FROM @TABLE_ROLE) 
411
		--AND (
412
		--  (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='')) 
413
		--OR ( PLRP.DVDM_ID IN (SELECT DVDM_ID FROM @DVDM_ID))
414
		--OR
415
		--( (PLRP.DVDM_ID ='' OR PLRP.DVDM_ID  IS NULL) AND (PLRP.BRANCH_ID IS NULL OR PLRP.BRANCH_ID=''))	
416
		--)
417
		AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR)	
418
		AND (PLRP.IS_HAS_CHILD=0 OR PLRP.IS_HAS_CHILD IS NULL)
419
		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 = '')
420
		AND(@p_FR_DATE IS NULL OR CAST(A.REQ_DT AS DATE) >= CAST(@p_FR_DATE AS DATE))
421
		AND(@p_TO_DATE IS NULL OR CAST(A.REQ_DT AS DATE) <= CAST(@p_TO_DATE AS DATE))	
422
		AND(
423
			(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
424
			OR
425
			(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',1) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
426
		)
427

    
428
		--AND (A.BRANCH_ID = @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
429
		--AND (A.DEP_ID = @p_DEP_ID OR @p_DEP_ID IS NULL OR @p_DEP_ID = '')
430

    
431
		ORDER BY A.CREATE_DT DESC
432
 
433
	END
434
	ELSE IF(@p_TYPE='TFJOB')
435
	BEGIN
436
		
437
				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,
438
              A.TOTAL_AMT AS TOTAL_AMT,A.NOTES, A.RECORD_STATUS,A.MAKER_ID,A.CREATE_DT,A.AUTH_STATUS,A.CHECKER_ID,
439

    
440
			   UDV.TLFullName AS CHECKER_NAME_DV,
441
			  
442
			   A.APPROVE_DT,
443
               A.PROCESS_ID,
444
			   D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME_DV,
445
			   CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt'
446
			   ELSE N'Chờ duyệt' END AS AUTH_STATUS_NAME,
447
			   G.BRANCH_CODE,
448
			   G.BRANCH_NAME,
449
			   UP.TLFullName AS CHECKER_NAME_PROCESS,
450
			   RP.APPROVE_DT AS APPROVE_DT_PROCESS,
451
			   UC.TLFullName AS MAKER_NAME,
452
			   RPN.PROCESS_ID AS PROCESS_ID_NEXT,
453
			   RP.ROLE_USER, 
454
			   RP.NOTES AS PROCESS_STATUS , 
455
			   RPN.NOTES AS PROCESS_STATUS_NEXT,
456
			   A.DVDM_APP_ID,
457
			   CD.DVDM_NAME AS DVDM_APP_NAME,
458
			   A.REQ_PARENT_ID,
459
			   PARENT.REQ_NAME AS REQ_PARENT_NAME,
460
			   PARENT.REQ_CODE AS REQ_PARENT_CODE,
461
			   PARENT.TOTAL_AMT AS REQ_PARENT_AMT,
462
			   A.BRANCH_FEE,
463
			   A.DEP_ID,
464
			   A.DEP_FEE,
465
			   DEP.DEP_NAME,
466
			   DEP.DEP_CODE,
467
			   BF.BRANCH_NAME AS BRANCH_FEE_NAME,
468
			   BF.BRANCH_CODE AS BRANCH_FEE_CODE,
469
			   DF.DEP_NAME AS DEP_FEE_NAME,
470
			   DF.DEP_CODE AS DEP_FEE_CODE,
471
			   '' AS BRANCH_DEP,
472
			   '' AS BRANCH_DEP_FEE,
473
			   RPC.TYPE_JOB AS TYPE_JOB,
474
			   RPC.TLNAME AS USER_JOB,
475
			   TU.TLFullName AS USER_JOB_NAME,
476
			   TFM.TLNANME AS TRANSFER_MAKER,
477
			    RPC.TRANFER_DT AS TRANFER_DT ,
478
				RPC.MAKER_ID AS TRANSFER_MAKER_ID,
479
			   A.EFFEC_DT,A.IS_BACKDAY,
480
			   '' AS TYPE_JOB_XL,
481
			   '' AS USER_JOB_XL,
482
			   PLRP.ID AS REF_ID,
483
			   RPN.STATUS AS STATUS_NEXT,
484
			   PLRP.STATUS AS STATUS_CURR,
485
			    RPC.STATUS_JOB AS STATUS_JOB,
486
			   A.BRANCH_CREATE,
487
			   A.DEP_CREATE,
488
			   A.REQ_LINE,
489
			   A.TC_NOTES,
490
			   A.SIGN_USER,
491
			   TL.TLFULLNAME AS SIGN_USER_NAME,
492
			   A.KT_NOTES,
493
			     A.IS_CHECKALL,
494
			   A.BASED_CONTENT, 
495
			   '' AS IS_TRANSFER,
496
			  --NGUOI XU LY
497
			  dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) AS NGUOIXULY
498

    
499
		FROM PL_REQUEST_DOC A 	
500
		INNER JOIN dbo.PL_REQUEST_PROCESS PLRP ON PLRP.REQ_ID=A.REQ_ID AND PLRP.STATUS = 'C' AND PLRP.IS_HAS_CHILD=1
501
		LEFT JOIN dbo.PL_REQUEST_PROCESS RPN 
502
		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') )
503
		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)	
504
		LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
505
		LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID
506
		LEFT JOIN dbo.CM_DEPARTMENT DEP ON DEP.DEP_ID=A.DEP_ID
507

    
508
		LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE
509
		LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE
510
		LEFT JOIN dbo.TL_USER UC ON UC.TLNANME=A.MAKER_ID
511
		LEFT JOIN dbo.CM_PROCESS_STATUS PS ON PS.PROCESS_ID = A.PROCESS_ID
512
		LEFT JOIN dbo.CM_PROCESS_STATUS PSN ON PSN.PROCESS_ID = A.PROCESS_ID
513
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=A.DVDM_APP_ID
514
		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')
515
		
516
		LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID
517
	
518
		LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID
519
		LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=RPC.TLNAME
520
		LEFT JOIN dbo.TL_USER TFM ON TFM.TLNANME=RPC.MAKER_ID
521
		LEFT JOIN dbo.PL_REQUEST_DOC PARENT ON PARENT.REQ_ID=A.REQ_PARENT_ID
522
		LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME
523
		WHERE 1 = 1
524
	    AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
525
		AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '')
526
		AND (A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '')
527
		AND (A.REQ_REASON LIKE '%' + @p_REQ_REASON + '%' OR @p_REQ_REASON IS NULL OR @p_REQ_REASON = '')
528
		AND (A.TOTAL_AMT=@p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0)
529
		AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')	
530
		AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
531
		AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
532
		AND (DATEDIFF(DAY,A.CREATE_DT , CAST(@p_CREATE_DT AS DATE)) = 0 OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
533
		
534
		AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
535
		AND (DATEDIFF(DAY,A.APPROVE_DT , CAST(@p_CREATE_DT AS DATE)) = 0 OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')	
536
		AND (DATEDIFF(DAY,A.REQ_DT , CAST(@p_REQ_DT AS DATE)) = 0 OR @p_REQ_DT IS NULL OR @p_REQ_DT = '')	
537
		AND (A.REQ_TYPE = @p_REQ_TYPE OR @p_REQ_TYPE IS NULL OR @p_REQ_TYPE =-1)
538
		--AND (@p_RECEIVE_BRANCH IS NULL OR A.PO_ID IN (SELECT PO_ID FROM TR_PO_DETAIL WHERE RECEIVE_BRANCH=@p_RECEIVE_BRANCH))
539
		AND A.RECORD_STATUS = '1'
540

    
541

    
542
		AND(
543
			@p_REQ_TYPE = -1  OR @p_REQ_TYPE IS NULL
544
			OR
545
				(
546
					@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)
547
				)
548
				OR
549
				(
550
						@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)
551
				)
552
			)
553

    
554

    
555
		
556
		AND(
557
		
558
		EXISTS(SELECT AUTH.ROLE_ID FROM @AUTHOR_DVDM AUTH WHERE AUTH.ROLE_ID=PLRP.ROLE_USER AND (
559
			(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=''))
560
			OR PLRP.DVDM_ID=AUTH.DVDM_ID
561
			OR ((PLRP.DVDM_ID ='' OR PLRP.DVDM_ID  IS NULL) AND (PLRP.BRANCH_ID IS NULL OR PLRP.BRANCH_ID=''))
562
		))
563
			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) ) )
564
		AND(@p_FR_DATE IS NULL OR CAST(A.REQ_DT AS DATE) >= CAST(@p_FR_DATE AS DATE))
565
		AND(@p_TO_DATE IS NULL OR CAST(A.REQ_DT AS DATE) <= CAST(@p_TO_DATE AS DATE))	
566
		AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR)	
567
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 = '')
568
  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'))
569
		AND (
570
			((RPC.REQ_ID IS NOT NULL OR RPC.REQ_ID <> '') AND @p_IS_TRANSFER = 'Y')
571
			OR ((RPC.REQ_ID IS NULL OR RPC.REQ_ID = '') AND @p_IS_TRANSFER = 'N')
572
			OR @p_IS_TRANSFER = '' OR @p_IS_TRANSFER IS NULL
573
			)
574

    
575
		AND(
576
			(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
577
			OR
578
			(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',1) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
579
		)
580

    
581
		--AND (A.BRANCH_ID = @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
582
		--AND (A.DEP_ID = @p_DEP_ID OR @p_DEP_ID IS NULL OR @p_DEP_ID = '')
583

    
584

    
585
	ORDER BY A.CREATE_DT DESC
586
	END
587

    
588
	ELSE IF(@p_TYPE='XLTT')
589
	BEGIN
590
			
591
				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,
592
             A.TOTAL_AMT AS TOTAL_AMT,A.NOTES, A.RECORD_STATUS,A.MAKER_ID,A.CREATE_DT,A.AUTH_STATUS,A.CHECKER_ID,
593

    
594
			   UDV.TLFullName AS CHECKER_NAME_DV,
595
			  
596
			   A.APPROVE_DT,
597
               A.PROCESS_ID,
598
			   D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME_DV,
599
			   CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt'
600
			   ELSE N'Chờ duyệt' END AS AUTH_STATUS_NAME,
601
			   G.BRANCH_CODE,
602
			   G.BRANCH_NAME,
603
			   UP.TLFullName AS CHECKER_NAME_PROCESS,
604
			   RP.APPROVE_DT AS APPROVE_DT_PROCESS,
605
			   UC.TLFullName AS MAKER_NAME,
606
			   RPN.PROCESS_ID AS PROCESS_ID_NEXT,
607
			   RPN.ROLE_USER, 
608
			   RP.NOTES AS PROCESS_STATUS , 
609
			   RPN.NOTES AS PROCESS_STATUS_NEXT,
610
			   A.DVDM_APP_ID,
611
			   CD.DVDM_NAME AS DVDM_APP_NAME,
612
			   A.REQ_PARENT_ID,
613
			   PARENT.REQ_NAME AS REQ_PARENT_NAME,
614
			   PARENT.REQ_CODE AS REQ_PARENT_CODE,
615
			   PARENT.TOTAL_AMT AS REQ_PARENT_AMT,
616
			   A.BRANCH_FEE,
617
			   A.DEP_ID,
618
			   A.DEP_FEE,
619
			   DEP.DEP_NAME,
620
			   DEP.DEP_CODE,
621
			   BF.BRANCH_NAME AS BRANCH_FEE_NAME,
622
			   BF.BRANCH_CODE AS BRANCH_FEE_CODE,
623
			   DF.DEP_NAME AS DEP_FEE_NAME,
624
			   DF.DEP_CODE AS DEP_FEE_CODE,
625
			   '' AS BRANCH_DEP,
626
			   '' AS BRANCH_DEP_FEE,
627
			   
628

    
629

    
630
			   RPC.TYPE_JOB AS TYPE_JOB,
631
			   RPC.TLNAME AS USER_JOB,
632
			   TU.TLFullName AS USER_JOB_NAME,
633
			   TFM.TLNANME AS TRANSFER_MAKER,
634
			    RPC.TRANFER_DT AS TRANFER_DT ,
635
				RPC.MAKER_ID AS TRANSFER_MAKER_ID,
636
			   A.EFFEC_DT,A.IS_BACKDAY,
637
			   '' AS TYPE_JOB_XL,
638
			   '' AS USER_JOB_XL,
639
			   PLRP.ID AS REF_ID,
640
			   RPN.STATUS AS STATUS_NEXT,
641
			   PLRP.STATUS AS STATUS_CURR,
642
			   RPC.STATUS_JOB AS STATUS_JOB,
643
			   A.BRANCH_CREATE,
644
			   A.DEP_CREATE,
645
			   A.REQ_LINE,
646
			   A.TC_NOTES,
647
			   A.SIGN_USER, TL.TLFullName AS SIGN_USER_NAME,
648
			   A.KT_NOTES,
649
			     A.IS_CHECKALL,
650
			   A.BASED_CONTENT, 
651
			   '' AS IS_TRANSFER,
652
			   --NGUOI XU LY
653
			   dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) AS NGUOIXULY
654

    
655
		FROM PL_REQUEST_DOC A 	
656
		INNER JOIN dbo.PL_REQUEST_PROCESS PLRP ON PLRP.REQ_ID=A.REQ_ID AND PLRP.STATUS <> 'U' AND PLRP.IS_HAS_CHILD=1
657
		LEFT JOIN dbo.PL_REQUEST_PROCESS RPN 
658
		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') )
659
		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)	
660
		LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
661
		LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID
662
		LEFT JOIN dbo.CM_DEPARTMENT DEP ON DEP.DEP_ID=A.DEP_ID
663

    
664
		LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE
665
		LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE
666
		LEFT JOIN dbo.TL_USER UC ON UC.TLNANME=A.MAKER_ID
667
		LEFT JOIN dbo.CM_PROCESS_STATUS PS ON PS.PROCESS_ID = A.PROCESS_ID
668
		LEFT JOIN dbo.CM_PROCESS_STATUS PSN ON PSN.PROCESS_ID = A.PROCESS_ID
669
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=A.DVDM_APP_ID
670
		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')
671
		
672
		LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID
673
	
674
		LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID
675
		LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=RPC.TLNAME
676
		LEFT JOIN dbo.TL_USER TFM ON TFM.TLNANME=RPC.MAKER_ID
677
		LEFT JOIN dbo.PL_REQUEST_DOC PARENT ON PARENT.REQ_ID=A.REQ_PARENT_ID
678
		LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME
679
		WHERE 1 = 1
680
	    AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
681
		AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '')
682
		AND (A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '')
683
		AND (A.REQ_REASON LIKE '%' + @p_REQ_REASON + '%' OR @p_REQ_REASON IS NULL OR @p_REQ_REASON = '')
684
		AND (A.TOTAL_AMT=@p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0)
685
		AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')	
686
		AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
687
		AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
688
		AND (DATEDIFF(DAY,A.CREATE_DT , CAST(@p_CREATE_DT AS DATE)) = 0 OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
689
		
690
		AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
691
		AND (DATEDIFF(DAY,A.APPROVE_DT , CAST(@p_CREATE_DT AS DATE)) = 0 OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')	
692
		AND (DATEDIFF(DAY,A.REQ_DT , CAST(@p_REQ_DT AS DATE)) = 0 OR @p_REQ_DT IS NULL OR @p_REQ_DT = '')	
693
		AND (A.REQ_TYPE = @p_REQ_TYPE OR @p_REQ_TYPE IS NULL OR @p_REQ_TYPE =-1)
694
		--AND (@p_RECEIVE_BRANCH IS NULL OR A.PO_ID IN (SELECT PO_ID FROM TR_PO_DETAIL WHERE RECEIVE_BRANCH=@p_RECEIVE_BRANCH))
695
		AND A.RECORD_STATUS = '1'
696

    
697

    
698
		AND(
699
			@p_REQ_TYPE = -1  OR @p_REQ_TYPE IS NULL
700
			OR
701
				(
702
					@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)
703
				)
704
				OR
705
				(
706
						@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)
707
				)
708
			)
709

    
710

    
711
		
712
		AND(
713
		EXISTS(SELECT AUTH.ROLE_ID FROM @AUTHOR_DVDM AUTH WHERE AUTH.ROLE_ID=PLRP.ROLE_USER AND (
714
			(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=''))
715
			OR PLRP.DVDM_ID=AUTH.DVDM_ID
716
			OR ((PLRP.DVDM_ID ='' OR PLRP.DVDM_ID  IS NULL) AND (PLRP.BRANCH_ID IS NULL OR PLRP.BRANCH_ID=''))
717
		)) 
718
		OR (EXISTS(SELECT ID FROM dbo.PL_REQUEST_PROCESS_CHILD WHERE TLNAME=@p_TLNAME_USER  AND PL_REQUEST_PROCESS_CHILD.PROCESS_ID=PLRP.ID) ))
719
				AND(@p_FR_DATE IS NULL OR CAST(A.REQ_DT AS DATE) >= CAST(@p_FR_DATE AS DATE))
720
		AND(@p_TO_DATE IS NULL OR CAST(A.REQ_DT AS DATE) <= CAST(@p_TO_DATE AS DATE))	
721
			AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR)		
722
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 = '') 
723
	
724
		AND(
725
			(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
726
			OR
727
			(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',1) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
728
		)
729

    
730
		--AND (A.BRANCH_ID = @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
731
		--AND (A.DEP_ID = @p_DEP_ID OR @p_DEP_ID IS NULL OR @p_DEP_ID = '')
732

    
733

    
734
	ORDER BY A.CREATE_DT DESC
735
	END
736
	ELSE IF(@p_TYPE='DVKD_PARENT')
737
	BEGIN	
738
		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,
739
              A.TOTAL_AMT AS TOTAL_AMT,A.NOTES, A.RECORD_STATUS,A.MAKER_ID,A.CREATE_DT,A.AUTH_STATUS,A.CHECKER_ID,
740
			   UDV.TLFullName AS CHECKER_NAME_DV,
741
			   A.APPROVE_DT,
742
               A.PROCESS_ID,
743
			   D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME_DV,
744
			   CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt'
745
			   ELSE N'Chờ duyệt' END AS AUTH_STATUS_NAME,
746
			   G.BRANCH_CODE,
747
			   G.BRANCH_NAME,
748
			   UP.TLFullName AS CHECKER_NAME_PROCESS,
749
			   RP.APPROVE_DT AS APPROVE_DT_PROCESS,
750
			   UC.TLFullName AS MAKER_NAME,
751
			   RPN.PROCESS_ID AS PROCESS_ID_NEXT,
752
			   RP.ROLE_USER, 
753
			   RP.NOTES AS PROCESS_STATUS , 
754
			   RPN.NOTES AS PROCESS_STATUS_NEXT,
755
			   A.DVDM_APP_ID,
756
			   CD.DVDM_NAME AS DVDM_APP_NAME,
757
			   A.REQ_PARENT_ID,
758
			   PARENT.REQ_NAME AS REQ_PARENT_NAME,
759
			   PARENT.REQ_CODE AS REQ_PARENT_CODE,
760
			   PARENT.TOTAL_AMT AS REQ_PARENT_AMT,
761
			   A.BRANCH_FEE,
762
			   A.DEP_ID,
763
			   A.DEP_FEE,
764
			   DEP.DEP_NAME,
765
			   DEP.DEP_CODE,
766
			   BF.BRANCH_NAME AS BRANCH_FEE_NAME,
767
			   BF.BRANCH_CODE AS BRANCH_FEE_CODE,
768
			   DF.DEP_NAME AS DEP_FEE_NAME,
769
			   DF.DEP_CODE AS DEP_FEE_CODE,
770
			   '' AS BRANCH_DEP,
771
			   '' AS BRANCH_DEP_FEE,
772
			   
773

    
774

    
775
			   '' AS TYPE_JOB,
776
			   '' AS USER_JOB,
777
			   '' AS USER_JOB_NAME,
778
			   '' AS TRANSFER_MAKER,
779
			    A.CREATE_DT AS TRANFER_DT ,
780
				'' AS TRANSFER_MAKER_ID,
781
			   A.EFFEC_DT,A.IS_BACKDAY,
782
			   '' AS TYPE_JOB_XL,
783
			   '' AS USER_JOB_XL,
784
			   RP.ID AS REF_ID,
785
			   RPN.STATUS AS STATUS_NEXT,
786
			   RP.STATUS AS STATUS_CURR,
787
			   '' AS STATUS_JOB,
788
			   A.BRANCH_CREATE,
789
			   A.DEP_CREATE,
790
			   A.REQ_LINE,
791
			   A.TC_NOTES, A.SIGN_USER, TL.TLFullName AS SIGN_USER_NAME,
792
			   A.KT_NOTES,
793
			     A.IS_CHECKALL,
794
			   A.BASED_CONTENT, 
795
			   '' AS IS_TRANSFER,
796
			   --NGUOI XU LY
797
			   dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) AS NGUOIXULY
798

    
799
		FROM PL_REQUEST_DOC A 		
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

    
807
		LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID
808
	
809
		LEFT JOIN dbo.PL_REQUEST_PROCESS RPN 
810
		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') )
811
		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)
812
		LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID
813
		LEFT JOIN dbo.TL_USER UC ON UC.TLNANME=A.MAKER_ID
814
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=A.DVDM_APP_ID
815
		LEFT JOIN dbo.PL_REQUEST_DOC PARENT ON PARENT.REQ_ID=A.REQ_PARENT_ID
816
		LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME
817
		WHERE 1 = 1
818
		
819
	    AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
820
		AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '')
821
		AND (A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '')
822
		AND (A.REQ_REASON LIKE '%' + @p_REQ_REASON + '%' OR @p_REQ_REASON IS NULL OR @p_REQ_REASON = '')
823
		AND (A.TOTAL_AMT=@p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0)
824
		AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')	
825
		AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
826
		AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
827
			AND (DATEDIFF(DAY,A.CREATE_DT , CAST(@p_CREATE_DT AS DATE)) = 0 OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
828
	
829
		AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
830
		AND (DATEDIFF(DAY,A.APPROVE_DT , CAST(@p_CREATE_DT AS DATE)) = 0 OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')	
831
		AND (DATEDIFF(DAY,A.REQ_DT , CAST(@p_REQ_DT AS DATE)) = 0 OR @p_REQ_DT IS NULL OR @p_REQ_DT = '')		
832
		AND (A.REQ_TYPE = @p_REQ_TYPE OR @p_REQ_TYPE IS NULL OR @p_REQ_TYPE =-1)
833
		AND A.RECORD_STATUS = '1'
834
		
835
		AND(
836
			@p_REQ_TYPE = -1  OR @p_REQ_TYPE IS NULL
837
			OR
838
				(
839
					@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)
840
				)
841
				OR
842
				(
843
						@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)
844
				)
845
			)
846

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

    
849
		AND A.PROCESS_ID='APPROVE'
850
		AND(@p_FR_DATE IS NULL OR CAST(A.REQ_DT AS DATE) >= CAST(@p_FR_DATE AS DATE))
851
		AND(@p_TO_DATE IS NULL OR CAST(A.REQ_DT AS DATE) <= CAST(@p_TO_DATE AS DATE))	
852
		AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR)	
853
		AND(A.REQ_PARENT_ID IS NULL OR A.REQ_PARENT_ID='')
854

    
855
		AND(
856
			(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
857
			OR
858
			(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',1) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
859
		)
860

    
861
		--AND (A.BRANCH_ID = @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
862
		--AND (A.DEP_ID = @p_DEP_ID OR @p_DEP_ID IS NULL OR @p_DEP_ID = '')
863

    
864

    
865
		ORDER BY A.CREATE_DT DESC
866
 
867
	END
868
	ELSE IF(@p_TYPE='DVKD_ISALL')
869
	BEGIN	
870
		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,
871
              A.TOTAL_AMT AS TOTAL_AMT,A.NOTES, A.RECORD_STATUS,A.MAKER_ID,A.CREATE_DT,A.AUTH_STATUS,A.CHECKER_ID,
872
			   UDV.TLFullName AS CHECKER_NAME_DV,
873
			   A.APPROVE_DT,
874
               A.PROCESS_ID,
875
			   D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME_DV,
876
			   CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt'
877
			   ELSE N'Chờ duyệt' END AS AUTH_STATUS_NAME,
878
			   G.BRANCH_CODE,
879
			   G.BRANCH_NAME,
880
			   UP.TLFullName AS CHECKER_NAME_PROCESS,
881
			   RP.APPROVE_DT AS APPROVE_DT_PROCESS,
882
			   UC.TLFullName AS MAKER_NAME,
883
			   RPN.PROCESS_ID AS PROCESS_ID_NEXT,
884
			   RP.ROLE_USER, 
885
			   RP.NOTES AS PROCESS_STATUS , 
886
			   RPN.NOTES AS PROCESS_STATUS_NEXT,
887
			   A.DVDM_APP_ID,
888
			   CD.DVDM_NAME AS DVDM_APP_NAME,
889
			   A.REQ_PARENT_ID,
890
			   PARENT.REQ_NAME AS REQ_PARENT_NAME,
891
			   PARENT.REQ_CODE AS REQ_PARENT_CODE,
892
			   PARENT.TOTAL_AMT AS REQ_PARENT_AMT,
893
			   A.BRANCH_FEE,
894
			   A.DEP_ID,
895
			   A.DEP_FEE,
896
			   DEP.DEP_NAME,
897
			   DEP.DEP_CODE,
898
			   BF.BRANCH_NAME AS BRANCH_FEE_NAME,
899
			   BF.BRANCH_CODE AS BRANCH_FEE_CODE,
900
			   DF.DEP_NAME AS DEP_FEE_NAME,
901
			   DF.DEP_CODE AS DEP_FEE_CODE,
902
			   '' AS BRANCH_DEP,
903
			   '' AS BRANCH_DEP_FEE,
904
			   
905

    
906

    
907
			   '' AS TYPE_JOB,
908
			   '' AS USER_JOB,
909
			   '' AS USER_JOB_NAME,
910
			   '' AS TRANSFER_MAKER,
911
			    A.CREATE_DT AS TRANFER_DT ,
912
				'' AS TRANSFER_MAKER_ID,
913
			   A.EFFEC_DT,A.IS_BACKDAY,
914
			   '' AS TYPE_JOB_XL,
915
			   '' AS USER_JOB_XL,
916
			   RP.ID AS REF_ID,
917
			   RPN.STATUS AS STATUS_NEXT,
918
			   RP.STATUS AS STATUS_CURR,
919
			   '' AS STATUS_JOB,
920
			   A.BRANCH_CREATE,
921
			   A.DEP_CREATE,
922
			   A.REQ_LINE,
923
			   A.TC_NOTES, A.SIGN_USER, TL.TLFullName AS SIGN_USER_NAME,
924
			   A.KT_NOTES,
925
			     A.IS_CHECKALL,
926
			   A.BASED_CONTENT, 
927
			   '' AS IS_TRANSFER,
928
			   --NGUOI XU LY
929
			   dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) AS NGUOIXULY
930

    
931
		FROM PL_REQUEST_DOC A 		
932
		LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
933
		LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID
934
		LEFT JOIN dbo.CM_DEPARTMENT DEP ON DEP.DEP_ID=A.DEP_ID
935

    
936
		LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE
937
		LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE
938

    
939
		LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID
940
	
941
		LEFT JOIN dbo.PL_REQUEST_PROCESS RPN 
942
		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') )
943
		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)
944
		LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID
945
		LEFT JOIN dbo.TL_USER UC ON UC.TLNANME=A.MAKER_ID
946
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=A.DVDM_APP_ID
947
		LEFT JOIN dbo.PL_REQUEST_DOC PARENT ON PARENT.REQ_ID=A.REQ_PARENT_ID
948
		LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME
949
		WHERE 1 = 1
950
		
951
	    AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
952
		AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '')
953
		AND (A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '')
954
		AND (A.REQ_REASON LIKE '%' + @p_REQ_REASON + '%' OR @p_REQ_REASON IS NULL OR @p_REQ_REASON = '')
955
		AND (A.TOTAL_AMT=@p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0)
956
		AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')	
957
		AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
958
		AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
959
			AND (DATEDIFF(DAY,A.CREATE_DT , CAST(@p_CREATE_DT AS DATE)) = 0 OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
960
	
961
		AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
962
		AND (DATEDIFF(DAY,A.APPROVE_DT , CAST(@p_CREATE_DT AS DATE)) = 0 OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')	
963
		AND (DATEDIFF(DAY,A.REQ_DT , CAST(@p_REQ_DT AS DATE)) = 0 OR @p_REQ_DT IS NULL OR @p_REQ_DT = '')		
964
		AND (A.REQ_TYPE = @p_REQ_TYPE OR @p_REQ_TYPE IS NULL OR @p_REQ_TYPE =-1)
965
		AND A.RECORD_STATUS = '1'
966
		
967
		AND(
968
			@p_REQ_TYPE = -1  OR @p_REQ_TYPE IS NULL
969
			OR
970
				(
971
					@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)
972
				)
973
				OR
974
				(
975
						@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)
976
				)
977
			)
978

    
979
		AND A.IS_CHECKALL=1
980

    
981
		AND A.PROCESS_ID='APPROVE'
982
		AND(@p_FR_DATE IS NULL OR CAST(A.REQ_DT AS DATE) >= CAST(@p_FR_DATE AS DATE))
983
		AND(@p_TO_DATE IS NULL OR CAST(A.REQ_DT AS DATE) <= CAST(@p_TO_DATE AS DATE))	
984
		AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR)	
985
		AND(A.REQ_PARENT_ID IS NULL OR A.REQ_PARENT_ID='')
986

    
987
		AND(
988
			(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
989
			OR
990
			(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',1) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
991
		)
992

    
993
		--AND (A.BRANCH_ID = @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
994
		--AND (A.DEP_ID = @p_DEP_ID OR @p_DEP_ID IS NULL OR @p_DEP_ID = '')
995

    
996

    
997
		ORDER BY A.CREATE_DT DESC
998
 
999
	END
1000
	ELSE IF(@p_TYPE='TTCT_DVCM')
1001
	BEGIN	
1002
		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,
1003
              A.TOTAL_AMT AS TOTAL_AMT,A.NOTES, A.RECORD_STATUS,A.MAKER_ID,A.CREATE_DT,A.AUTH_STATUS,A.CHECKER_ID,
1004
			   UDV.TLFullName AS CHECKER_NAME_DV,
1005
			   A.APPROVE_DT,
1006
               A.PROCESS_ID,
1007
			   D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME_DV,
1008
			   CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt'
1009
			   ELSE N'Chờ duyệt' END AS AUTH_STATUS_NAME,
1010
			   G.BRANCH_CODE,
1011
			   G.BRANCH_NAME,
1012
			   UP.TLFullName AS CHECKER_NAME_PROCESS,
1013
			   RP.APPROVE_DT AS APPROVE_DT_PROCESS,
1014
			   UC.TLFullName AS MAKER_NAME,
1015
			   RPN.PROCESS_ID AS PROCESS_ID_NEXT,
1016
			   RP.ROLE_USER, 
1017
			   RP.NOTES AS PROCESS_STATUS , 
1018
			   RPN.NOTES AS PROCESS_STATUS_NEXT,
1019
			   A.DVDM_APP_ID,
1020
			   CD.DVDM_NAME AS DVDM_APP_NAME,
1021
			   A.REQ_PARENT_ID,
1022
			   PARENT.REQ_NAME AS REQ_PARENT_NAME,
1023
			   PARENT.REQ_CODE AS REQ_PARENT_CODE,
1024
			   PARENT.TOTAL_AMT AS REQ_PARENT_AMT,
1025
			   A.BRANCH_FEE,
1026
			   A.DEP_ID,
1027
			   A.DEP_FEE,
1028
			   DEP.DEP_NAME,
1029
			   DEP.DEP_CODE,
1030
			   BF.BRANCH_NAME AS BRANCH_FEE_NAME,
1031
			   BF.BRANCH_CODE AS BRANCH_FEE_CODE,
1032
			   DF.DEP_NAME AS DEP_FEE_NAME,
1033
			   DF.DEP_CODE AS DEP_FEE_CODE,
1034
			   '' AS BRANCH_DEP,
1035
			   '' AS BRANCH_DEP_FEE,
1036
			   
1037

    
1038

    
1039
			   '' AS TYPE_JOB,
1040
			   '' AS USER_JOB,
1041
			   '' AS USER_JOB_NAME,
1042
			   '' AS TRANSFER_MAKER,
1043
			    A.CREATE_DT AS TRANFER_DT ,
1044
				'' AS TRANSFER_MAKER_ID,
1045
			   A.EFFEC_DT,A.IS_BACKDAY,
1046
			   '' AS TYPE_JOB_XL,
1047
			   '' AS USER_JOB_XL,
1048
			   RP.ID AS REF_ID,
1049
			   RPN.STATUS AS STATUS_NEXT,
1050
			   RP.STATUS AS STATUS_CURR,
1051
			   '' AS STATUS_JOB,
1052
			   A.BRANCH_CREATE,
1053
			   A.DEP_CREATE,
1054
			   A.REQ_LINE,
1055
			   A.TC_NOTES, A.SIGN_USER, TL.TLFullName AS SIGN_USER_NAME,
1056
			   A.KT_NOTES,
1057
			     A.IS_CHECKALL,
1058
			   A.BASED_CONTENT, 
1059
			   '' AS IS_TRANSFER,
1060
			   --NGUOI XU LY
1061
			   dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) AS NGUOIXULY
1062

    
1063
		FROM PL_REQUEST_DOC A 		
1064
		LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
1065
		LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID
1066
		LEFT JOIN dbo.CM_DEPARTMENT DEP ON DEP.DEP_ID=A.DEP_ID
1067

    
1068
		LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE
1069
		LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE
1070

    
1071
		LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID
1072
	
1073
		LEFT JOIN dbo.PL_REQUEST_PROCESS RPN 
1074
		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') )
1075
		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)
1076
		LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID
1077
		LEFT JOIN dbo.TL_USER UC ON UC.TLNANME=A.MAKER_ID
1078
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=A.DVDM_APP_ID
1079
		LEFT JOIN dbo.PL_REQUEST_DOC PARENT ON PARENT.REQ_ID=A.REQ_PARENT_ID
1080
		LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME
1081
		WHERE 1 = 1
1082
		
1083
	    AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
1084
		AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '')
1085
		AND (A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '')
1086
		AND (A.REQ_REASON LIKE '%' + @p_REQ_REASON + '%' OR @p_REQ_REASON IS NULL OR @p_REQ_REASON = '')
1087
		AND (A.TOTAL_AMT=@p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0)
1088
		AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')	
1089
		AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
1090
		AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
1091
			AND (DATEDIFF(DAY,A.CREATE_DT , CAST(@p_CREATE_DT AS DATE)) = 0 OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
1092
	
1093
		AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
1094
		AND (DATEDIFF(DAY,A.APPROVE_DT , CAST(@p_CREATE_DT AS DATE)) = 0 OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')	
1095
		AND (DATEDIFF(DAY,A.REQ_DT , CAST(@p_REQ_DT AS DATE)) = 0 OR @p_REQ_DT IS NULL OR @p_REQ_DT = '')		
1096
		AND (A.REQ_TYPE = @p_REQ_TYPE OR @p_REQ_TYPE IS NULL OR @p_REQ_TYPE =-1)
1097
		AND A.RECORD_STATUS = '1'
1098
		
1099
		AND(
1100
			@p_REQ_TYPE = -1  OR @p_REQ_TYPE IS NULL
1101
			OR
1102
				(
1103
					@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)
1104
				)
1105
				OR
1106
				(
1107
						@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)
1108
				)
1109
			)
1110

    
1111
		AND (  
1112
		 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) )
1113
		)
1114

    
1115
		AND A.PROCESS_ID='APPROVE'
1116
		AND(@p_FR_DATE IS NULL OR CAST(A.REQ_DT AS DATE) >= CAST(@p_FR_DATE AS DATE))
1117
		AND(@p_TO_DATE IS NULL OR CAST(A.REQ_DT AS DATE) <= CAST(@p_TO_DATE AS DATE))	
1118
		AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR)	
1119
		AND(A.REQ_PARENT_ID IS NULL OR A.REQ_PARENT_ID='')
1120

    
1121
		AND(
1122
			(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
1123
			OR
1124
			(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',1) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
1125
		)
1126

    
1127
		--AND (A.BRANCH_ID = @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
1128
		--AND (A.DEP_ID = @p_DEP_ID OR @p_DEP_ID IS NULL OR @p_DEP_ID = '')
1129

    
1130

    
1131
		ORDER BY A.CREATE_DT DESC
1132
 
1133
	END
1134
   END