Project

General

Profile

UPDATE SEARCH REQ 4.txt

Truong Nguyen Vu, 05/15/2020 02:38 PM

 
1
USE [gAMSPro_VietcapitalBank_v2]
2
GO
3
/****** Object:  StoredProcedure [dbo].[PL_REQUEST_DOC_Search]    Script Date: 15-May-20 14:35:35 ******/
4
SET ANSI_NULLS ON
5
GO
6
SET QUOTED_IDENTIFIER ON
7
GO
8

    
9

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

    
46
	DECLARE @DVDM_ID TABLE (
47
		DVDM_ID VARCHAR(15)
48
	)
49

    
50

    
51

    
52

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

    
96

    
97
			   '' AS TYPE_JOB,
98
			   '' AS USER_JOB,
99
			   '' AS USER_JOB_NAME,
100
			   '' AS TRANSFER_MAKER,
101
			    A.CREATE_DT AS TRANFER_DT ,
102
				'' AS TRANSFER_MAKER_ID,
103
			   A.EFFEC_DT,A.IS_BACKDAY,
104
			   '' AS TYPE_JOB_XL,
105
			   '' AS USER_JOB_XL,
106
			   RP.ID AS REF_ID,
107
			   RPN.STATUS AS STATUS_NEXT,
108
			   RP.STATUS AS STATUS_CURR,
109
			   '' AS STATUS_JOB,
110
			   A.BRANCH_CREATE,
111
			   A.DEP_CREATE,
112
			   A.REQ_LINE,
113
			   A.TC_NOTES
114
		FROM PL_REQUEST_DOC A 	
115
		--LEFT JOIN	dbo.PL_REQUEST_PROCESS PLRP ON PLRP.REQ_ID=A.REQ_ID  AND PLRP.STATUS <>'U'
116
		LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
117
		LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID
118
		LEFT JOIN dbo.CM_DEPARTMENT DEP ON DEP.DEP_ID=A.DEP_ID
119

    
120
		LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE
121
		LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE
122

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

    
162
		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' 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 =''))))
163
		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 = '')
164
		--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 ='')))))
165
		AND(@p_FR_DATE IS NULL OR CAST(A.REQ_DT AS DATE) >= CAST(@p_FR_DATE AS DATE))
166
		AND(@p_TO_DATE IS NULL OR CAST(A.REQ_DT AS DATE) <= CAST(@p_TO_DATE AS DATE))	
167
		AND(@p_YEAR IS NULL OR YEAR(A.REQ_DT)=@p_YEAR)	
168

    
169

    
170
 
171
	END
172
	ELSE IF(@p_TYPE='PDTT')
173
	BEGIN
174
		
175
		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,
176
               A.TOTAL_AMT,A.NOTES, A.RECORD_STATUS,A.MAKER_ID,A.CREATE_DT,A.AUTH_STATUS,A.CHECKER_ID,
177

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

    
213

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

    
239
		LEFT JOIN dbo.CM_DEPARTMENT DEP ON DEP.DEP_ID=A.DEP_ID
240
		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')
241
		LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE
242
		LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE
243
		LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID
244
		LEFT JOIN dbo.TL_USER UC ON UC.TLNANME=A.MAKER_ID
245
		LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID
246
		LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=RPC.TLNAME
247
		LEFT JOIN dbo.TL_USER TFM ON TFM.TLNANME=RPC.MAKER_ID
248
		LEFT JOIN dbo.CM_PROCESS_STATUS PS ON PS.PROCESS_ID = A.PROCESS_ID
249
		LEFT JOIN dbo.CM_PROCESS_STATUS PSN ON PSN.PROCESS_ID = A.PROCESS_ID
250
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=A.DVDM_APP_ID
251
		LEFT JOIN dbo.PL_REQUEST_DOC PARENT ON PARENT.REQ_ID=A.REQ_PARENT_ID
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='DVC' 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

    
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
			   
338

    
339

    
340
			   RPC.TYPE_JOB AS TYPE_JOB,
341
			   RPC.TLNAME AS USER_JOB,
342
			   TU.TLFullName AS USER_JOB_NAME,
343
			   TFM.TLNANME AS TRANSFER_MAKER,
344
			    RPC.TRANFER_DT AS TRANFER_DT ,
345
				RPC.MAKER_ID AS TRANSFER_MAKER_ID,
346
			   A.EFFEC_DT,A.IS_BACKDAY,
347
			   '' AS TYPE_JOB_XL,
348
			   '' AS USER_JOB_XL,
349
			   PLRP.ID AS REF_ID,
350
			   RPN.STATUS AS STATUS_NEXT,
351
			   PLRP.STATUS AS STATUS_CURR,
352
			    RPC.STATUS_JOB AS STATUS_JOB,
353
			   A.BRANCH_CREATE,
354
			   A.DEP_CREATE,
355
			   A.REQ_LINE,
356
			     A.TC_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
		WHERE 1 = 1
381
	    AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
382
		AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '')
383
		AND (A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '')
384
		AND (A.REQ_REASON LIKE '%' + @p_REQ_REASON + '%' OR @p_REQ_REASON IS NULL OR @p_REQ_REASON = '')
385
		AND (A.TOTAL_AMT=@p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0)
386
		AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')	
387
		AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
388
		AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
389
		AND (DATEDIFF(DAY,A.CREATE_DT , CAST(@p_CREATE_DT AS DATE)) = 0 OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
390
		
391
		AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
392
		AND (DATEDIFF(DAY,A.APPROVE_DT , CAST(@p_CREATE_DT AS DATE)) = 0 OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')	
393
		AND (DATEDIFF(DAY,A.REQ_DT , CAST(@p_REQ_DT AS DATE)) = 0 OR @p_REQ_DT IS NULL OR @p_REQ_DT = '')	
394
		AND (A.REQ_TYPE = @p_REQ_TYPE OR @p_REQ_TYPE IS NULL OR @p_REQ_TYPE =-1)
395
		--AND (@p_RECEIVE_BRANCH IS NULL OR A.PO_ID IN (SELECT PO_ID FROM TR_PO_DETAIL WHERE RECEIVE_BRANCH=@p_RECEIVE_BRANCH))
396
		AND A.RECORD_STATUS = '1'
397

    
398

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

    
411

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

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

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

    
465

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

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

    
524

    
525
		AND(
526
			@p_REQ_TYPE = -1  OR @p_REQ_TYPE IS NULL
527
			OR
528
				(
529
					@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)
530
				)
531
				OR
532
				(
533
						@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)
534
				)
535
			)
536

    
537

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

    
586

    
587
			   '' AS TYPE_JOB,
588
			   '' AS USER_JOB,
589
			   '' AS USER_JOB_NAME,
590
			   '' AS TRANSFER_MAKER,
591
			    A.CREATE_DT AS TRANFER_DT ,
592
				'' AS TRANSFER_MAKER_ID,
593
			   A.EFFEC_DT,A.IS_BACKDAY,
594
			   '' AS TYPE_JOB_XL,
595
			   '' AS USER_JOB_XL,
596
			   RP.ID AS REF_ID,
597
			   RPN.STATUS AS STATUS_NEXT,
598
			   RP.STATUS AS STATUS_CURR,
599
			   '' AS STATUS_JOB,
600
			   A.BRANCH_CREATE,
601
			   A.DEP_CREATE,
602
			   A.REQ_LINE,
603
			   A.TC_NOTES
604
		FROM PL_REQUEST_DOC A 		
605
		LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
606
		LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID
607
		LEFT JOIN dbo.CM_DEPARTMENT DEP ON DEP.DEP_ID=A.DEP_ID
608

    
609
		LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE
610
		LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE
611

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

    
651
		AND   (A.BRANCH_CREATE = @p_BRANCH_LOGIN AND( A.DEP_CREATE=@DEP_ID OR A.DEP_CREATE IS NULL OR A.DEP_ID=''))
652
		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 = '')
653
		AND(@p_FR_DATE IS NULL OR CAST(A.REQ_DT AS DATE) >= CAST(@p_FR_DATE AS DATE))
654
		AND(@p_TO_DATE IS NULL OR CAST(A.REQ_DT AS DATE) <= CAST(@p_TO_DATE AS DATE))	
655
		AND(@p_YEAR IS NULL OR YEAR(A.REQ_DT)=@p_YEAR)	
656
		AND(A.REQ_PARENT_ID IS NULL OR A.REQ_PARENT_ID='')
657

    
658
 
659
	END
660
   END
661

    
662

    
663

    
664

    
665