Project

General

Profile

TIM KIEM TO TRINH.txt

Luc Tran Van, 07/14/2020 01:54 PM

 
1
ALTER PROCEDURE [dbo].[PL_REQUEST_DOC_Search]
2
@p_REQ_ID	varchar(15)  = NULL,
3
@p_REQ_CODE	nvarchar(100)  = NULL,
4
@p_REQ_NAME	nvarchar(200)  = NULL,
5
@p_REQ_DT	DATETIME = NULL,
6
@p_REQ_TYPE	int = NULL,
7
@p_REQ_CONTENT NVARCHAR(1000)=NULL,
8
@p_REQ_REASON NVARCHAR(500)=NULL,
9
@p_TOTAL_AMT	decimal = NULL,
10
@p_NOTES	nvarchar(1000)  = NULL,
11
@p_RECORD_STATUS	varchar(1)  = NULL,
12
@p_MAKER_ID	varchar(12)  = NULL,
13
@p_CREATE_DT	DATETIME = NULL,
14
@p_AUTH_STATUS	varchar(50)  = NULL,
15
@p_CHECKER_ID	varchar(12)  = NULL,
16
@p_APPROVE_DT	DATETIME = NULL,
17
@p_PROCESS_ID varchar(15) = NULL,
18
@p_BRANCH_ID VARCHAR(15)=NULL,
19
@p_BRANCH_LOGIN VARCHAR(15),
20
@p_ROLE_USER VARCHAR(20),
21
@p_TLNAME_USER VARCHAR(15),
22
@p_FR_DATE DATETIME = NULL,
23
@p_TO_DATE DATETIME = NULL,
24
@p_TYPE_TRANFER VARCHAR(15),
25
@p_TYPE VARCHAR(15),
26
@p_YEAR INT,
27
@p_TOP	INT = 10
28
AS
29
BEGIN
30
	IF(@p_ROLE_USER ='KTT')
31
	BEGIN
32
		SET @p_ROLE_USER ='GDDV'
33
	END
34
	DECLARE @DEP_ID VARCHAR(15)
35
	
36
	DECLARE
37
	@COST_ID TABLE (
38
		COST_ID VARCHAR(15)
39
	)
40

    
41
	DECLARE @DVDM_ID TABLE (
42
		DVDM_ID VARCHAR(15)
43
	)
44
	SET @DEP_ID =(SELECT SECUR_CODE FROM dbo.TL_USER WHERE TLNANME=@p_TLNAME_USER)
45
	INSERT INTO @COST_ID
46
	SELECT COST_ID FROM dbo.PL_COSTCENTER_DT WHERE DEP_ID=@DEP_ID AND BRANCH_ID=@p_BRANCH_LOGIN
47
	INSERT INTO @DVDM_ID
48
	SELECT DVDM_ID FROM dbo.PL_COSTCENTER WHERE COST_ID IN (SELECT COST_ID FROM @COST_ID) GROUP BY DVDM_ID
49
	IF(@p_TYPE='DVKD')
50
	BEGIN	
51
		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,
52
               A.TOTAL_AMT,A.NOTES, A.RECORD_STATUS,A.MAKER_ID,A.CREATE_DT,A.AUTH_STATUS,A.CHECKER_ID,
53
			   UDV.TLFullName AS CHECKER_NAME_DV,
54
			   A.APPROVE_DT,
55
               A.PROCESS_ID,
56
			   D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME_DV,
57
			   CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt'
58
			   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,
59
			   G.BRANCH_CODE,
60
			   G.BRANCH_NAME,
61
			   UP.TLFullName AS CHECKER_NAME_PROCESS,
62
			   RP.APPROVE_DT AS APPROVE_DT_PROCESS,
63
			   UC.TLFullName AS MAKER_NAME,
64
			   RPN.PROCESS_ID AS PROCESS_ID_NEXT,
65
			   RP.ROLE_USER, 
66
			   RP.NOTES AS PROCESS_STATUS , 
67
			   RPN.NOTES AS PROCESS_STATUS_NEXT,
68
			   A.DVDM_APP_ID,
69
			   CD.DVDM_NAME AS DVDM_APP_NAME,
70
			   A.REQ_PARENT_ID,
71
			   PARENT.REQ_NAME AS REQ_PARENT_NAME,
72
			   PARENT.REQ_CODE AS REQ_PARENT_CODE,
73
			   PARENT.TOTAL_AMT AS REQ_PARENT_AMT,
74
			   A.BRANCH_FEE,
75
			   A.DEP_ID,
76
			   A.DEP_FEE,
77
			   DEP.DEP_NAME,
78
			   DEP.DEP_CODE,
79
			   BF.BRANCH_NAME AS BRANCH_FEE_NAME,
80
			   BF.BRANCH_CODE AS BRANCH_FEE_CODE,
81
			   DF.DEP_NAME AS DEP_FEE_NAME,
82
			   DF.DEP_CODE AS DEP_FEE_CODE,
83
			   '' AS BRANCH_DEP,
84
			   '' AS BRANCH_DEP_FEE,
85
			   
86

    
87

    
88
			   '' AS TYPE_JOB,
89
			   '' AS USER_JOB,
90
			   '' AS USER_JOB_NAME,
91
			   '' AS TRANSFER_MAKER,
92
			    A.CREATE_DT AS TRANFER_DT ,
93
				'' AS TRANSFER_MAKER_ID,
94
			   A.EFFEC_DT,A.IS_BACKDAY,
95
			   '' AS TYPE_JOB_XL,
96
			   '' AS USER_JOB_XL,
97
			   RP.ID AS REF_ID,
98
			   RPN.STATUS AS STATUS_NEXT,
99
			   RP.STATUS AS STATUS_CURR,
100
			   '' AS STATUS_JOB,
101
			   A.BRANCH_CREATE,
102
			   A.DEP_CREATE,
103
			   A.REQ_LINE,
104
			   A.TC_NOTES,
105
			   A.SIGN_USER,
106
			   TL.TLFullName AS SIGN_USER_NAME,
107
			   A.KT_NOTES
108
		FROM PL_REQUEST_DOC A 	
109
		--LEFT JOIN	dbo.PL_REQUEST_PROCESS PLRP ON PLRP.REQ_ID=A.REQ_ID  AND PLRP.STATUS <>'U'
110
		LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
111
		LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID
112
		LEFT JOIN dbo.CM_DEPARTMENT DEP ON DEP.DEP_ID=A.DEP_ID
113

    
114
		LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE
115
		LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE
116

    
117
		LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID
118
	
119
		LEFT JOIN dbo.PL_REQUEST_PROCESS RPN 
120
		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') )
121
		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)
122
		LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID
123
		LEFT JOIN dbo.TL_USER UC ON UC.TLNANME=A.MAKER_ID
124
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=A.DVDM_APP_ID
125
		LEFT JOIN dbo.PL_REQUEST_DOC PARENT ON PARENT.REQ_ID=A.REQ_PARENT_ID
126
		LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME
127
		WHERE 1 = 1
128
		
129
	    AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
130
		AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '')
131
		AND (A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '')
132
		AND (A.REQ_REASON LIKE '%' + @p_REQ_REASON + '%' OR @p_REQ_REASON IS NULL OR @p_REQ_REASON = '')
133
		AND (A.TOTAL_AMT=@p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0)
134
		AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')	
135
		AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
136
		AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
137
			AND (DATEDIFF(DAY,A.CREATE_DT , CAST(@p_CREATE_DT AS DATE)) = 0 OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
138
	
139
		AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
140
		AND (DATEDIFF(DAY,A.APPROVE_DT , CAST(@p_CREATE_DT AS DATE)) = 0 OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')	
141
		AND (DATEDIFF(DAY,A.REQ_DT , CAST(@p_REQ_DT AS DATE)) = 0 OR @p_REQ_DT IS NULL OR @p_REQ_DT = '')		
142
		AND (A.REQ_TYPE = @p_REQ_TYPE OR @p_REQ_TYPE IS NULL OR @p_REQ_TYPE =-1)
143
		AND A.RECORD_STATUS = '1'
144
		
145
		AND(
146
			@p_REQ_TYPE = -1  OR @p_REQ_TYPE IS NULL
147
			OR
148
				(
149
					@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)
150
				)
151
				OR
152
				(
153
						@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)
154
				)
155
			)
156

    
157
		AND    (A.MAKER_ID=@p_TLNAME_USER OR (EXISTS(SELECT * FROM dbo.PL_REQUEST_PROCESS PLRP WHERE A.REQ_ID=PLRP.REQ_ID AND PLRP.PROCESS_ID='APPNEW' 
158
																AND PLRP.ROLE_USER=@p_ROLE_USER AND PLRP.BRANCH_ID=@p_BRANCH_LOGIN 
159
																AND (PLRP.DEP_ID=@DEP_ID OR PLRP.DEP_ID IS NULL OR PLRP.DEP_ID =''))) OR(A.SIGN_USER IS NOT NULL AND A.SIGN_USER <>'' AND A.SIGN_USER  =@p_TLNAME_USER AND A.AUTH_STATUS<>'E'))
160
		--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 = '')
161
		--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 ='')))))
162
		AND (A.AUTH_STATUS = @p_AUTH_STATUS OR @p_AUTH_STATUS ='' OR @p_AUTH_STATUS IS NULL)
163
		AND(@p_FR_DATE IS NULL OR CAST(A.REQ_DT AS DATE) >= CAST(@p_FR_DATE AS DATE))
164
		AND(@p_TO_DATE IS NULL OR CAST(A.REQ_DT AS DATE) <= CAST(@p_TO_DATE AS DATE))	
165
		AND(@p_YEAR IS NULL OR YEAR(A.REQ_DT)=@p_YEAR)	
166
		ORDER BY A.CREATE_DT DESC
167
	END
168
	ELSE IF(@p_TYPE='PDTT')
169
	BEGIN
170
		
171
		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,
172
               A.TOTAL_AMT,A.NOTES, A.RECORD_STATUS,A.MAKER_ID,A.CREATE_DT,A.AUTH_STATUS,A.CHECKER_ID,
173

    
174
			   UDV.TLFullName AS CHECKER_NAME_DV,
175
			  
176
			   A.APPROVE_DT,
177
               A.PROCESS_ID,
178
			   D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME_DV,
179
			   CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt'
180
			   ELSE N'Chờ duyệt' END AS AUTH_STATUS_NAME,
181
			   G.BRANCH_CODE,
182
			   G.BRANCH_NAME,
183
			   UP.TLFullName AS CHECKER_NAME_PROCESS,
184
			   RP.APPROVE_DT AS APPROVE_DT_PROCESS,
185
			   UC.TLFullName AS MAKER_NAME,
186
			   RPN.PROCESS_ID AS PROCESS_ID_NEXT,
187
			   RPN.ROLE_USER, 
188
			   RP.NOTES AS PROCESS_STATUS , 
189
			   RPN.NOTES AS PROCESS_STATUS_NEXT,
190
			   A.DVDM_APP_ID,
191
			   CD.DVDM_NAME AS DVDM_APP_NAME,
192
			   A.REQ_PARENT_ID,
193
			   PARENT.REQ_NAME AS REQ_PARENT_NAME,
194
			   PARENT.REQ_CODE AS REQ_PARENT_CODE,
195
			   PARENT.TOTAL_AMT AS REQ_PARENT_AMT,
196
			   A.BRANCH_FEE,
197
			   A.DEP_ID,
198
			   A.DEP_FEE,
199
			   DEP.DEP_NAME,
200
			   DEP.DEP_CODE,
201
			   BF.BRANCH_NAME AS BRANCH_FEE_NAME,
202
			   BF.BRANCH_CODE AS BRANCH_FEE_CODE,
203
			   DF.DEP_NAME AS DEP_FEE_NAME,
204
			   DF.DEP_CODE AS DEP_FEE_CODE,
205
			   '' AS BRANCH_DEP,
206
			   '' AS BRANCH_DEP_FEE,
207
			   
208

    
209

    
210
			   RPC.TYPE_JOB AS TYPE_JOB,
211
			   RPC.TLNAME AS USER_JOB,
212
			   TU.TLFullName AS USER_JOB_NAME,
213
			   TFM.TLNANME AS TRANSFER_MAKER,
214
			    RPC.TRANFER_DT AS TRANFER_DT ,
215
				RPC.MAKER_ID AS TRANSFER_MAKER_ID,
216
			   A.EFFEC_DT,A.IS_BACKDAY,
217
			   '' AS TYPE_JOB_XL,
218
			   '' AS USER_JOB_XL,
219
			   RP.ID AS REF_ID,
220
			   RPN.STATUS AS STATUS_NEXT,
221
			   PLRP.STATUS AS STATUS_CURR,
222
			    RPC.STATUS_JOB AS STATUS_JOB,
223
			   A.BRANCH_CREATE,
224
			   A.DEP_CREATE,
225
			   A.REQ_LINE,
226
			     A.TC_NOTES,
227
				  A.SIGN_USER,
228
			   TL.TLFullName  AS SIGN_USER_NAME,
229
			   A.KT_NOTES
230
		FROM PL_REQUEST_DOC A 	
231
		INNER JOIN dbo.PL_REQUEST_PROCESS PLRP ON PLRP.REQ_ID=A.REQ_ID AND PLRP.STATUS <>'U'	
232
		LEFT JOIN dbo.PL_REQUEST_PROCESS RPN 
233
		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') )
234
		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)	
235
		LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
236
		LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID
237

    
238
		LEFT JOIN dbo.CM_DEPARTMENT DEP ON DEP.DEP_ID=A.DEP_ID
239
		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')
240
		LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE
241
		LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE
242
		LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID
243
		LEFT JOIN dbo.TL_USER UC ON UC.TLNANME=A.MAKER_ID
244
		LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID
245
		LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=RPC.TLNAME
246
		LEFT JOIN dbo.TL_USER TFM ON TFM.TLNANME=RPC.MAKER_ID
247
		LEFT JOIN dbo.CM_PROCESS_STATUS PS ON PS.PROCESS_ID = A.PROCESS_ID
248
		LEFT JOIN dbo.CM_PROCESS_STATUS PSN ON PSN.PROCESS_ID = A.PROCESS_ID
249
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=A.DVDM_APP_ID
250
		LEFT JOIN dbo.PL_REQUEST_DOC PARENT ON PARENT.REQ_ID=A.REQ_PARENT_ID
251
		LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME
252
		WHERE 1 = 1
253
	    AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
254
		AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '')
255
		AND (A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '')
256
		AND (A.REQ_REASON LIKE '%' + @p_REQ_REASON + '%' OR @p_REQ_REASON IS NULL OR @p_REQ_REASON = '')
257
		AND (A.TOTAL_AMT=@p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0)
258
		AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')	
259
		AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
260
		AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
261
		AND (DATEDIFF(DAY,A.CREATE_DT , CAST(@p_CREATE_DT AS DATE)) = 0 OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
262
		
263
		AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
264
		AND (DATEDIFF(DAY,A.APPROVE_DT , CAST(@p_CREATE_DT AS DATE)) = 0 OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')	
265
		AND (DATEDIFF(DAY,A.REQ_DT , CAST(@p_REQ_DT AS DATE)) = 0 OR @p_REQ_DT IS NULL OR @p_REQ_DT = '')	
266
		AND (A.REQ_TYPE = @p_REQ_TYPE OR @p_REQ_TYPE IS NULL OR @p_REQ_TYPE =-1)
267
		--AND (@p_RECEIVE_BRANCH IS NULL OR A.PO_ID IN (SELECT PO_ID FROM TR_PO_DETAIL WHERE RECEIVE_BRANCH=@p_RECEIVE_BRANCH))
268
		AND A.RECORD_STATUS = '1'
269

    
270

    
271
		AND(
272
			@p_REQ_TYPE = -1  OR @p_REQ_TYPE IS NULL
273
			OR
274
				(
275
					@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)
276
				)
277
				OR
278
				(
279
						@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)
280
				)
281
			)
282

    
283

    
284
		AND PLRP.ROLE_USER=@p_ROLE_USER AND (
285
		  (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='')) 
286
		OR ( PLRP.DVDM_ID IN (SELECT DVDM_ID FROM @DVDM_ID))
287
		OR
288
		( (PLRP.DVDM_ID ='' OR PLRP.DVDM_ID  IS NULL) AND (PLRP.BRANCH_ID IS NULL OR PLRP.BRANCH_ID=''))	
289
		)
290
			AND(@p_YEAR IS NULL OR YEAR(A.REQ_DT)=@p_YEAR)	
291
		AND (PLRP.IS_HAS_CHILD=0 OR PLRP.IS_HAS_CHILD IS NULL)
292
		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 = '')
293
		--		AND(@p_FR_DATE IS NULL OR CAST(A.REQ_DT AS DATE) >= CAST(@p_FR_DATE AS DATE))
294
		--AND(@p_TO_DATE IS NULL OR CAST(A.REQ_DT AS DATE) <= CAST(@p_TO_DATE AS DATE))	
295
		ORDER BY A.CREATE_DT DESC
296
 
297
	END
298
	ELSE IF(@p_TYPE='TFJOB')
299
	BEGIN
300
		
301
				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,
302
               A.TOTAL_AMT,A.NOTES, A.RECORD_STATUS,A.MAKER_ID,A.CREATE_DT,A.AUTH_STATUS,A.CHECKER_ID,
303

    
304
			   UDV.TLFullName AS CHECKER_NAME_DV,
305
			  
306
			   A.APPROVE_DT,
307
               A.PROCESS_ID,
308
			   D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME_DV,
309
			   CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt'
310
			   ELSE N'Chờ duyệt' END AS AUTH_STATUS_NAME,
311
			   G.BRANCH_CODE,
312
			   G.BRANCH_NAME,
313
			   UP.TLFullName AS CHECKER_NAME_PROCESS,
314
			   RP.APPROVE_DT AS APPROVE_DT_PROCESS,
315
			   UC.TLFullName AS MAKER_NAME,
316
			   RPN.PROCESS_ID AS PROCESS_ID_NEXT,
317
			   RP.ROLE_USER, 
318
			   RP.NOTES AS PROCESS_STATUS , 
319
			   RPN.NOTES AS PROCESS_STATUS_NEXT,
320
			   A.DVDM_APP_ID,
321
			   CD.DVDM_NAME AS DVDM_APP_NAME,
322
			   A.REQ_PARENT_ID,
323
			   PARENT.REQ_NAME AS REQ_PARENT_NAME,
324
			   PARENT.REQ_CODE AS REQ_PARENT_CODE,
325
			   PARENT.TOTAL_AMT AS REQ_PARENT_AMT,
326
			   A.BRANCH_FEE,
327
			   A.DEP_ID,
328
			   A.DEP_FEE,
329
			   DEP.DEP_NAME,
330
			   DEP.DEP_CODE,
331
			   BF.BRANCH_NAME AS BRANCH_FEE_NAME,
332
			   BF.BRANCH_CODE AS BRANCH_FEE_CODE,
333
			   DF.DEP_NAME AS DEP_FEE_NAME,
334
			   DF.DEP_CODE AS DEP_FEE_CODE,
335
			   '' AS BRANCH_DEP,
336
			   '' AS BRANCH_DEP_FEE,
337
			   RPC.TYPE_JOB AS TYPE_JOB,
338
			   RPC.TLNAME AS USER_JOB,
339
			   TU.TLFullName AS USER_JOB_NAME,
340
			   TFM.TLNANME AS TRANSFER_MAKER,
341
			    RPC.TRANFER_DT AS TRANFER_DT ,
342
				RPC.MAKER_ID AS TRANSFER_MAKER_ID,
343
			   A.EFFEC_DT,A.IS_BACKDAY,
344
			   '' AS TYPE_JOB_XL,
345
			   '' AS USER_JOB_XL,
346
			   PLRP.ID AS REF_ID,
347
			   RPN.STATUS AS STATUS_NEXT,
348
			   PLRP.STATUS AS STATUS_CURR,
349
			    RPC.STATUS_JOB AS STATUS_JOB,
350
			   A.BRANCH_CREATE,
351
			   A.DEP_CREATE,
352
			   A.REQ_LINE,
353
			   A.TC_NOTES,
354
			   A.SIGN_USER,
355
			   TL.TLFULLNAME AS SIGN_USER_NAME,
356
			   A.KT_NOTES
357
		FROM PL_REQUEST_DOC A 	
358
		INNER JOIN dbo.PL_REQUEST_PROCESS PLRP ON PLRP.REQ_ID=A.REQ_ID AND PLRP.STATUS = 'C' AND PLRP.IS_HAS_CHILD=1
359
		LEFT JOIN dbo.PL_REQUEST_PROCESS RPN 
360
		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') )
361
		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)	
362
		LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
363
		LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID
364
		LEFT JOIN dbo.CM_DEPARTMENT DEP ON DEP.DEP_ID=A.DEP_ID
365

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

    
399

    
400
		AND(
401
			@p_REQ_TYPE = -1  OR @p_REQ_TYPE IS NULL
402
			OR
403
				(
404
					@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)
405
				)
406
				OR
407
				(
408
						@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)
409
				)
410
			)
411

    
412

    
413
		
414
		AND(( PLRP.ROLE_USER=@p_ROLE_USER AND ((PLRP.DVDM_ID  IN (SELECT DVDM_ID FROM @DVDM_ID) )
415
		 OR (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='')) 
416
			OR ( (PLRP.DVDM_ID ='' OR PLRP.DVDM_ID  IS NULL) AND (PLRP.BRANCH_ID IS NULL OR PLRP.BRANCH_ID=''))
417
		)) 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) ) )
418
		AND(@p_FR_DATE IS NULL OR CAST(A.REQ_DT AS DATE) >= CAST(@p_FR_DATE AS DATE))
419
		AND(@p_TO_DATE IS NULL OR CAST(A.REQ_DT AS DATE) <= CAST(@p_TO_DATE AS DATE))	
420
			AND(@p_YEAR IS NULL OR YEAR(A.REQ_DT)=@p_YEAR)	
421
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 = '')
422
  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'))
423
	ORDER BY A.CREATE_DT DESC
424
	END
425

    
426
	ELSE IF(@p_TYPE='XLTT')
427
	BEGIN
428
			
429
				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,
430
               A.TOTAL_AMT,A.NOTES, A.RECORD_STATUS,A.MAKER_ID,A.CREATE_DT,A.AUTH_STATUS,A.CHECKER_ID,
431

    
432
			   UDV.TLFullName AS CHECKER_NAME_DV,
433
			  
434
			   A.APPROVE_DT,
435
               A.PROCESS_ID,
436
			   D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME_DV,
437
			   CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt'
438
			   ELSE N'Chờ duyệt' END AS AUTH_STATUS_NAME,
439
			   G.BRANCH_CODE,
440
			   G.BRANCH_NAME,
441
			   UP.TLFullName AS CHECKER_NAME_PROCESS,
442
			   RP.APPROVE_DT AS APPROVE_DT_PROCESS,
443
			   UC.TLFullName AS MAKER_NAME,
444
			   RPN.PROCESS_ID AS PROCESS_ID_NEXT,
445
			   RPN.ROLE_USER, 
446
			   RP.NOTES AS PROCESS_STATUS , 
447
			   RPN.NOTES AS PROCESS_STATUS_NEXT,
448
			   A.DVDM_APP_ID,
449
			   CD.DVDM_NAME AS DVDM_APP_NAME,
450
			   A.REQ_PARENT_ID,
451
			   PARENT.REQ_NAME AS REQ_PARENT_NAME,
452
			   PARENT.REQ_CODE AS REQ_PARENT_CODE,
453
			   PARENT.TOTAL_AMT AS REQ_PARENT_AMT,
454
			   A.BRANCH_FEE,
455
			   A.DEP_ID,
456
			   A.DEP_FEE,
457
			   DEP.DEP_NAME,
458
			   DEP.DEP_CODE,
459
			   BF.BRANCH_NAME AS BRANCH_FEE_NAME,
460
			   BF.BRANCH_CODE AS BRANCH_FEE_CODE,
461
			   DF.DEP_NAME AS DEP_FEE_NAME,
462
			   DF.DEP_CODE AS DEP_FEE_CODE,
463
			   '' AS BRANCH_DEP,
464
			   '' AS BRANCH_DEP_FEE,
465
			   
466

    
467

    
468
			   RPC.TYPE_JOB AS TYPE_JOB,
469
			   RPC.TLNAME AS USER_JOB,
470
			   TU.TLFullName AS USER_JOB_NAME,
471
			   TFM.TLNANME AS TRANSFER_MAKER,
472
			    RPC.TRANFER_DT AS TRANFER_DT ,
473
				RPC.MAKER_ID AS TRANSFER_MAKER_ID,
474
			   A.EFFEC_DT,A.IS_BACKDAY,
475
			   '' AS TYPE_JOB_XL,
476
			   '' AS USER_JOB_XL,
477
			   PLRP.ID AS REF_ID,
478
			   RPN.STATUS AS STATUS_NEXT,
479
			   PLRP.STATUS AS STATUS_CURR,
480
			   RPC.STATUS_JOB AS STATUS_JOB,
481
			   A.BRANCH_CREATE,
482
			   A.DEP_CREATE,
483
			   A.REQ_LINE,
484
			   A.TC_NOTES,
485
			   A.SIGN_USER, TL.TLFullName AS SIGN_USER_NAME,
486
			   A.KT_NOTES
487
		FROM PL_REQUEST_DOC A 	
488
		INNER JOIN dbo.PL_REQUEST_PROCESS PLRP ON PLRP.REQ_ID=A.REQ_ID AND PLRP.STATUS <> 'U' AND PLRP.IS_HAS_CHILD=1
489
		LEFT JOIN dbo.PL_REQUEST_PROCESS RPN 
490
		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') )
491
		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)	
492
		LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
493
		LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID
494
		LEFT JOIN dbo.CM_DEPARTMENT DEP ON DEP.DEP_ID=A.DEP_ID
495

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

    
529

    
530
		AND(
531
			@p_REQ_TYPE = -1  OR @p_REQ_TYPE IS NULL
532
			OR
533
				(
534
					@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)
535
				)
536
				OR
537
				(
538
						@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)
539
				)
540
			)
541

    
542

    
543
		
544
		AND(( PLRP.ROLE_USER=@p_ROLE_USER AND ((PLRP.DVDM_ID  IN (SELECT DVDM_ID FROM @DVDM_ID) )
545
		 OR (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='')) 
546
			OR ( (PLRP.DVDM_ID ='' OR PLRP.DVDM_ID  IS NULL) AND ( PLRP.BRANCH_ID IS NULL OR PLRP.BRANCH_ID=''))
547
		)) OR (EXISTS(SELECT ID FROM dbo.PL_REQUEST_PROCESS_CHILD WHERE TLNAME=@p_TLNAME_USER  AND PL_REQUEST_PROCESS_CHILD.PROCESS_ID=PLRP.ID) ))
548
				AND(@p_FR_DATE IS NULL OR CAST(A.REQ_DT AS DATE) >= CAST(@p_FR_DATE AS DATE))
549
		AND(@p_TO_DATE IS NULL OR CAST(A.REQ_DT AS DATE) <= CAST(@p_TO_DATE AS DATE))	
550
			AND(@p_YEAR IS NULL OR YEAR(A.REQ_DT)=@p_YEAR)	
551
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 = '') 
552
	ORDER BY A.CREATE_DT DESC
553
	END
554
	ELSE IF(@p_TYPE='DVKD_PARENT')
555
	BEGIN	
556
		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,
557
               A.TOTAL_AMT,A.NOTES, A.RECORD_STATUS,A.MAKER_ID,A.CREATE_DT,A.AUTH_STATUS,A.CHECKER_ID,
558
			   UDV.TLFullName AS CHECKER_NAME_DV,
559
			   A.APPROVE_DT,
560
               A.PROCESS_ID,
561
			   D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME_DV,
562
			   CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt'
563
			   ELSE N'Chờ duyệt' END AS AUTH_STATUS_NAME,
564
			   G.BRANCH_CODE,
565
			   G.BRANCH_NAME,
566
			   UP.TLFullName AS CHECKER_NAME_PROCESS,
567
			   RP.APPROVE_DT AS APPROVE_DT_PROCESS,
568
			   UC.TLFullName AS MAKER_NAME,
569
			   RPN.PROCESS_ID AS PROCESS_ID_NEXT,
570
			   RP.ROLE_USER, 
571
			   RP.NOTES AS PROCESS_STATUS , 
572
			   RPN.NOTES AS PROCESS_STATUS_NEXT,
573
			   A.DVDM_APP_ID,
574
			   CD.DVDM_NAME AS DVDM_APP_NAME,
575
			   A.REQ_PARENT_ID,
576
			   PARENT.REQ_NAME AS REQ_PARENT_NAME,
577
			   PARENT.REQ_CODE AS REQ_PARENT_CODE,
578
			   PARENT.TOTAL_AMT AS REQ_PARENT_AMT,
579
			   A.BRANCH_FEE,
580
			   A.DEP_ID,
581
			   A.DEP_FEE,
582
			   DEP.DEP_NAME,
583
			   DEP.DEP_CODE,
584
			   BF.BRANCH_NAME AS BRANCH_FEE_NAME,
585
			   BF.BRANCH_CODE AS BRANCH_FEE_CODE,
586
			   DF.DEP_NAME AS DEP_FEE_NAME,
587
			   DF.DEP_CODE AS DEP_FEE_CODE,
588
			   '' AS BRANCH_DEP,
589
			   '' AS BRANCH_DEP_FEE,
590
			   
591

    
592

    
593
			   '' AS TYPE_JOB,
594
			   '' AS USER_JOB,
595
			   '' AS USER_JOB_NAME,
596
			   '' AS TRANSFER_MAKER,
597
			    A.CREATE_DT AS TRANFER_DT ,
598
				'' AS TRANSFER_MAKER_ID,
599
			   A.EFFEC_DT,A.IS_BACKDAY,
600
			   '' AS TYPE_JOB_XL,
601
			   '' AS USER_JOB_XL,
602
			   RP.ID AS REF_ID,
603
			   RPN.STATUS AS STATUS_NEXT,
604
			   RP.STATUS AS STATUS_CURR,
605
			   '' AS STATUS_JOB,
606
			   A.BRANCH_CREATE,
607
			   A.DEP_CREATE,
608
			   A.REQ_LINE,
609
			   A.TC_NOTES, A.SIGN_USER, TL.TLFullName AS SIGN_USER_NAME,
610
			   A.KT_NOTES
611
		FROM PL_REQUEST_DOC A 		
612
		LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
613
		LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID
614
		LEFT JOIN dbo.CM_DEPARTMENT DEP ON DEP.DEP_ID=A.DEP_ID
615

    
616
		LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE
617
		LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE
618

    
619
		LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID
620
	
621
		LEFT JOIN dbo.PL_REQUEST_PROCESS RPN 
622
		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') )
623
		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)
624
		LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID
625
		LEFT JOIN dbo.TL_USER UC ON UC.TLNANME=A.MAKER_ID
626
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=A.DVDM_APP_ID
627
		LEFT JOIN dbo.PL_REQUEST_DOC PARENT ON PARENT.REQ_ID=A.REQ_PARENT_ID
628
		LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME
629
		WHERE 1 = 1
630
		
631
	    AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
632
		AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '')
633
		AND (A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '')
634
		AND (A.REQ_REASON LIKE '%' + @p_REQ_REASON + '%' OR @p_REQ_REASON IS NULL OR @p_REQ_REASON = '')
635
		AND (A.TOTAL_AMT=@p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0)
636
		AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')	
637
		AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
638
		AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
639
			AND (DATEDIFF(DAY,A.CREATE_DT , CAST(@p_CREATE_DT AS DATE)) = 0 OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
640
	
641
		AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
642
		AND (DATEDIFF(DAY,A.APPROVE_DT , CAST(@p_CREATE_DT AS DATE)) = 0 OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')	
643
		AND (DATEDIFF(DAY,A.REQ_DT , CAST(@p_REQ_DT AS DATE)) = 0 OR @p_REQ_DT IS NULL OR @p_REQ_DT = '')		
644
		AND (A.REQ_TYPE = @p_REQ_TYPE OR @p_REQ_TYPE IS NULL OR @p_REQ_TYPE =-1)
645
		AND A.RECORD_STATUS = '1'
646
		
647
		AND(
648
			@p_REQ_TYPE = -1  OR @p_REQ_TYPE IS NULL
649
			OR
650
				(
651
					@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)
652
				)
653
				OR
654
				(
655
						@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)
656
				)
657
			)
658

    
659
		AND   (A.BRANCH_CREATE = @p_BRANCH_LOGIN AND( A.DEP_CREATE=@DEP_ID OR A.DEP_CREATE IS NULL OR A.DEP_ID=''))
660
		AND (( @p_AUTH_STATUS='A' AND  A.PROCESS_ID='APPROVE') OR( @p_AUTH_STATUS='U' AND (A.PROCESS_ID <> 'APPROVE' OR A.PROCESS_ID IS NULL)) OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
661
		AND(@p_FR_DATE IS NULL OR CAST(A.REQ_DT AS DATE) >= CAST(@p_FR_DATE AS DATE))
662
		AND(@p_TO_DATE IS NULL OR CAST(A.REQ_DT AS DATE) <= CAST(@p_TO_DATE AS DATE))	
663
		AND(@p_YEAR IS NULL OR YEAR(A.REQ_DT)=@p_YEAR)	
664
		AND(A.REQ_PARENT_ID IS NULL OR A.REQ_PARENT_ID='')
665
		ORDER BY A.CREATE_DT DESC
666
 
667
	END
668
   END