Project

General

Profile

FILE 3 - PL_REQUEST_SEARCH.txt

Truong Nguyen Vu, 10/22/2020 10:17 AM

 
1

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

    
33
AS
34
BEGIN
35

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

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

    
45

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

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

    
99

    
100
			   '' AS TYPE_JOB,
101
			   '' AS USER_JOB,
102
			   '' AS USER_JOB_NAME,
103
			   '' AS TRANSFER_MAKER,
104
			    A.CREATE_DT AS TRANFER_DT ,
105
				'' AS TRANSFER_MAKER_ID,
106
			   A.EFFEC_DT,A.IS_BACKDAY,
107
			   '' AS TYPE_JOB_XL,
108
			   '' AS USER_JOB_XL,
109
			   RP.ID AS REF_ID,
110
			   RPN.STATUS AS STATUS_NEXT,
111
			   RP.STATUS AS STATUS_CURR,
112
			   '' AS STATUS_JOB,
113
			   A.BRANCH_CREATE,
114
			   A.DEP_CREATE,
115
			   A.REQ_LINE,
116
			   A.TC_NOTES,
117
			   A.SIGN_USER,
118
			   TL.TLFullName AS SIGN_USER_NAME,
119
			   A.KT_NOTES,
120
			   A.IS_CHECKALL,
121
			   A.BASED_CONTENT,
122
			   A.PL_BASED_ID, PL_B.REQ_CODE AS PL_BASED_CODE, PL_B.REQ_CONTENT AS PL_BASED_CONTENT, 
123
			   '' AS IS_TRANSFER,
124
			   --NGUOI XU LY
125
			   dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) AS NGUOIXULY
126
			   
127
		FROM PL_REQUEST_DOC A 	
128
		--LEFT JOIN	dbo.PL_REQUEST_PROCESS PLRP ON PLRP.REQ_ID=A.REQ_ID  AND PLRP.STATUS <>'U'
129
		LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
130
		LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID
131
		LEFT JOIN dbo.CM_DEPARTMENT DEP ON DEP.DEP_ID=A.DEP_ID
132

    
133
		LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE
134
		LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE
135

    
136
		LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID
137
	
138
		LEFT JOIN dbo.PL_REQUEST_PROCESS RPN 
139
		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') )
140
		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)
141
		LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID
142
		LEFT JOIN dbo.TL_USER UC ON UC.TLNANME=A.MAKER_ID
143
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=A.DVDM_APP_ID
144
		LEFT JOIN dbo.PL_REQUEST_DOC PARENT ON PARENT.REQ_ID=A.REQ_PARENT_ID
145
		LEFT JOIN dbo.PL_REQUEST_DOC PL_B ON PL_B.REQ_ID=A.PL_BASED_ID
146
		LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME
147

    
148

    
149
		WHERE 1 = 1
150
		
151
	    AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
152
		AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '')
153
		AND (A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '')
154
		AND (A.REQ_REASON LIKE '%' + @p_REQ_REASON + '%' OR @p_REQ_REASON IS NULL OR @p_REQ_REASON = '')
155
		AND (A.TOTAL_AMT=@p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0)
156
		AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')	
157
		AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
158
		AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
159
			AND (DATEDIFF(DAY,A.CREATE_DT , CAST(@p_CREATE_DT AS DATE)) = 0 OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
160
	
161
		AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
162
		AND (DATEDIFF(DAY,A.APPROVE_DT , CAST(@p_CREATE_DT AS DATE)) = 0 OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')	
163
		AND (DATEDIFF(DAY,A.REQ_DT , CAST(@p_REQ_DT AS DATE)) = 0 OR @p_REQ_DT IS NULL OR @p_REQ_DT = '')		
164
		AND (A.REQ_TYPE = @p_REQ_TYPE OR @p_REQ_TYPE IS NULL OR @p_REQ_TYPE =-1)
165
		AND A.RECORD_STATUS = '1'
166
		
167
		AND(
168
			@p_REQ_TYPE = -1  OR @p_REQ_TYPE IS NULL
169
			OR
170
				(
171
					@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)
172
				)
173
				OR
174
				(
175
						@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)
176
				)
177
			)
178

    
179
		AND    (A.MAKER_ID=@p_TLNAME_USER OR EXISTS(SELECT ID FROM dbo.PL_ROLE_DATA_CONFIG WHERE ROLE_TYPE='PL_REQUEST_DOC_ALL' AND BRANCH_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' 
180
																AND PLRP.ROLE_USER IN (SELECT ROLE_ID FROM @TABLE_ROLE) AND PLRP.BRANCH_ID=@p_BRANCH_LOGIN 
181
																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'))
182
		--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 = '')
183
		--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 ='')))))
184
		AND (A.AUTH_STATUS = @p_AUTH_STATUS OR @p_AUTH_STATUS ='' OR @p_AUTH_STATUS IS NULL)
185
		AND(@p_FR_DATE IS NULL OR CAST(A.REQ_DT AS DATE) >= CAST(@p_FR_DATE AS DATE))
186
		AND(@p_TO_DATE IS NULL OR CAST(A.REQ_DT AS DATE) <= CAST(@p_TO_DATE AS DATE))	
187
		AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR)	
188
		AND(
189
			(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
190
			OR
191
			(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',1) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
192
		)
193

    
194
		AND (A.BRANCH_ID = @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
195
		AND (A.DEP_ID = @p_DEP_ID OR @p_DEP_ID IS NULL OR @p_DEP_ID = '')
196
		
197
		ORDER BY A.CREATE_DT DESC
198
	END
199
	ELSE IF(@p_TYPE='PDTT')
200
	BEGIN
201
		
202
		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,
203
               A.TOTAL_AMT AS TOTAL_AMT,A.NOTES, A.RECORD_STATUS,A.MAKER_ID,A.CREATE_DT,A.AUTH_STATUS,A.CHECKER_ID,
204

    
205
			   UDV.TLFullName AS CHECKER_NAME_DV,
206
			  
207
			   A.APPROVE_DT,
208
               A.PROCESS_ID,
209
			   D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME_DV,
210
			   CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt'
211
			   ELSE N'Chờ duyệt' END AS AUTH_STATUS_NAME,
212
			   G.BRANCH_CODE,
213
			   G.BRANCH_NAME,
214
			   UP.TLFullName AS CHECKER_NAME_PROCESS,
215
			   RP.APPROVE_DT AS APPROVE_DT_PROCESS,
216
			   UC.TLFullName AS MAKER_NAME,
217
			   RPN.PROCESS_ID AS PROCESS_ID_NEXT,
218
			   RPN.ROLE_USER, 
219
			   RP.NOTES AS PROCESS_STATUS , 
220
			   RPN.NOTES AS PROCESS_STATUS_NEXT,
221
			   A.DVDM_APP_ID,
222
			   CD.DVDM_NAME AS DVDM_APP_NAME,
223
			   A.REQ_PARENT_ID,
224
			   PARENT.REQ_NAME AS REQ_PARENT_NAME,
225
			   PARENT.REQ_CODE AS REQ_PARENT_CODE,
226
			   PARENT.TOTAL_AMT AS REQ_PARENT_AMT,
227
			   A.BRANCH_FEE,
228
			   A.DEP_ID,
229
			   A.DEP_FEE,
230
			   DEP.DEP_NAME,
231
			   DEP.DEP_CODE,
232
			   BF.BRANCH_NAME AS BRANCH_FEE_NAME,
233
			   BF.BRANCH_CODE AS BRANCH_FEE_CODE,
234
			   DF.DEP_NAME AS DEP_FEE_NAME,
235
			   DF.DEP_CODE AS DEP_FEE_CODE,
236
			   '' AS BRANCH_DEP,
237
			   '' AS BRANCH_DEP_FEE,
238
			   
239

    
240

    
241
			   RPC.TYPE_JOB AS TYPE_JOB,
242
			   RPC.TLNAME AS USER_JOB,
243
			   TU.TLFullName AS USER_JOB_NAME,
244
			   TFM.TLNANME AS TRANSFER_MAKER,
245
			    RPC.TRANFER_DT AS TRANFER_DT ,
246
				RPC.MAKER_ID AS TRANSFER_MAKER_ID,
247
			   A.EFFEC_DT,A.IS_BACKDAY,
248
			   '' AS TYPE_JOB_XL,
249
			   '' AS USER_JOB_XL,
250
			   RP.ID AS REF_ID,
251
			   RPN.STATUS AS STATUS_NEXT,
252
			   PLRP.STATUS AS STATUS_CURR,
253
			    RPC.STATUS_JOB AS STATUS_JOB,
254
			   A.BRANCH_CREATE,
255
			   A.DEP_CREATE,
256
			   A.REQ_LINE,
257
			     A.TC_NOTES,
258
				  A.SIGN_USER,
259
			   TL.TLFullName  AS SIGN_USER_NAME,
260
			   A.KT_NOTES,
261
			     A.IS_CHECKALL,
262
			   A.BASED_CONTENT, 
263
			   '' AS IS_TRANSFER,
264
			   --NGUOI XU LY
265
			   dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) AS NGUOIXULY
266

    
267
		FROM PL_REQUEST_DOC A 	
268
		INNER JOIN dbo.PL_REQUEST_PROCESS PLRP ON PLRP.REQ_ID=A.REQ_ID AND PLRP.STATUS <>'U'	
269
		LEFT JOIN dbo.PL_REQUEST_PROCESS RPN 
270
		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') )
271
		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)	
272
		LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
273
		LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID
274

    
275
		LEFT JOIN dbo.CM_DEPARTMENT DEP ON DEP.DEP_ID=A.DEP_ID
276
		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')
277
		LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE
278
		LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE
279
		LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID
280
		LEFT JOIN dbo.TL_USER UC ON UC.TLNANME=A.MAKER_ID
281
		LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID
282
		LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=RPC.TLNAME
283
		LEFT JOIN dbo.TL_USER TFM ON TFM.TLNANME=RPC.MAKER_ID
284
		LEFT JOIN dbo.CM_PROCESS_STATUS PS ON PS.PROCESS_ID = A.PROCESS_ID
285
		LEFT JOIN dbo.CM_PROCESS_STATUS PSN ON PSN.PROCESS_ID = A.PROCESS_ID
286
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=A.DVDM_APP_ID
287
		LEFT JOIN dbo.PL_REQUEST_DOC PARENT ON PARENT.REQ_ID=A.REQ_PARENT_ID
288
		LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME
289
		WHERE 1 = 1
290
	    AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
291
		AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '')
292
		AND (A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '')
293
		AND (A.REQ_REASON LIKE '%' + @p_REQ_REASON + '%' OR @p_REQ_REASON IS NULL OR @p_REQ_REASON = '')
294
		AND (A.TOTAL_AMT=@p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0)
295
		AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')	
296
		AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
297
		AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
298
		AND (DATEDIFF(DAY,A.CREATE_DT , CAST(@p_CREATE_DT AS DATE)) = 0 OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
299
		
300
		AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
301
		AND (DATEDIFF(DAY,A.APPROVE_DT , CAST(@p_CREATE_DT AS DATE)) = 0 OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')	
302
		AND (DATEDIFF(DAY,A.REQ_DT , CAST(@p_REQ_DT AS DATE)) = 0 OR @p_REQ_DT IS NULL OR @p_REQ_DT = '')	
303
		AND (A.REQ_TYPE = @p_REQ_TYPE OR @p_REQ_TYPE IS NULL OR @p_REQ_TYPE =-1)
304
		--AND (@p_RECEIVE_BRANCH IS NULL OR A.PO_ID IN (SELECT PO_ID FROM TR_PO_DETAIL WHERE RECEIVE_BRANCH=@p_RECEIVE_BRANCH))
305
		AND A.RECORD_STATUS = '1'
306

    
307

    
308
		AND(
309
			@p_REQ_TYPE = -1  OR @p_REQ_TYPE IS NULL
310
			OR
311
				(
312
					@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)
313
				)
314
				OR
315
				(
316
						@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)
317
				)
318
			)
319

    
320

    
321
		AND PLRP.ROLE_USER IN (SELECT ROLE_ID FROM @TABLE_ROLE) AND (
322
		  (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='')) 
323
		OR ( PLRP.DVDM_ID IN (SELECT DVDM_ID FROM @DVDM_ID))
324
		OR
325
		( (PLRP.DVDM_ID ='' OR PLRP.DVDM_ID  IS NULL) AND (PLRP.BRANCH_ID IS NULL OR PLRP.BRANCH_ID=''))	
326
		)
327
			AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR)	
328
		AND (PLRP.IS_HAS_CHILD=0 OR PLRP.IS_HAS_CHILD IS NULL)
329
		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 = '')
330
		AND(@p_FR_DATE IS NULL OR CAST(A.REQ_DT AS DATE) >= CAST(@p_FR_DATE AS DATE))
331
		AND(@p_TO_DATE IS NULL OR CAST(A.REQ_DT AS DATE) <= CAST(@p_TO_DATE AS DATE))	
332
		AND(
333
			(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
334
			OR
335
			(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',1) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
336
		)
337

    
338
		--AND (A.BRANCH_ID = @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
339
		--AND (A.DEP_ID = @p_DEP_ID OR @p_DEP_ID IS NULL OR @p_DEP_ID = '')
340

    
341
		ORDER BY A.CREATE_DT DESC
342
 
343
	END
344
	ELSE IF(@p_TYPE='TFJOB')
345
	BEGIN
346
		
347
				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,
348
              A.TOTAL_AMT AS TOTAL_AMT,A.NOTES, A.RECORD_STATUS,A.MAKER_ID,A.CREATE_DT,A.AUTH_STATUS,A.CHECKER_ID,
349

    
350
			   UDV.TLFullName AS CHECKER_NAME_DV,
351
			  
352
			   A.APPROVE_DT,
353
               A.PROCESS_ID,
354
			   D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME_DV,
355
			   CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt'
356
			   ELSE N'Chờ duyệt' END AS AUTH_STATUS_NAME,
357
			   G.BRANCH_CODE,
358
			   G.BRANCH_NAME,
359
			   UP.TLFullName AS CHECKER_NAME_PROCESS,
360
			   RP.APPROVE_DT AS APPROVE_DT_PROCESS,
361
			   UC.TLFullName AS MAKER_NAME,
362
			   RPN.PROCESS_ID AS PROCESS_ID_NEXT,
363
			   RP.ROLE_USER, 
364
			   RP.NOTES AS PROCESS_STATUS , 
365
			   RPN.NOTES AS PROCESS_STATUS_NEXT,
366
			   A.DVDM_APP_ID,
367
			   CD.DVDM_NAME AS DVDM_APP_NAME,
368
			   A.REQ_PARENT_ID,
369
			   PARENT.REQ_NAME AS REQ_PARENT_NAME,
370
			   PARENT.REQ_CODE AS REQ_PARENT_CODE,
371
			   PARENT.TOTAL_AMT AS REQ_PARENT_AMT,
372
			   A.BRANCH_FEE,
373
			   A.DEP_ID,
374
			   A.DEP_FEE,
375
			   DEP.DEP_NAME,
376
			   DEP.DEP_CODE,
377
			   BF.BRANCH_NAME AS BRANCH_FEE_NAME,
378
			   BF.BRANCH_CODE AS BRANCH_FEE_CODE,
379
			   DF.DEP_NAME AS DEP_FEE_NAME,
380
			   DF.DEP_CODE AS DEP_FEE_CODE,
381
			   '' AS BRANCH_DEP,
382
			   '' AS BRANCH_DEP_FEE,
383
			   RPC.TYPE_JOB AS TYPE_JOB,
384
			   RPC.TLNAME AS USER_JOB,
385
			   TU.TLFullName AS USER_JOB_NAME,
386
			   TFM.TLNANME AS TRANSFER_MAKER,
387
			    RPC.TRANFER_DT AS TRANFER_DT ,
388
				RPC.MAKER_ID AS TRANSFER_MAKER_ID,
389
			   A.EFFEC_DT,A.IS_BACKDAY,
390
			   '' AS TYPE_JOB_XL,
391
			   '' AS USER_JOB_XL,
392
			   PLRP.ID AS REF_ID,
393
			   RPN.STATUS AS STATUS_NEXT,
394
			   PLRP.STATUS AS STATUS_CURR,
395
			    RPC.STATUS_JOB AS STATUS_JOB,
396
			   A.BRANCH_CREATE,
397
			   A.DEP_CREATE,
398
			   A.REQ_LINE,
399
			   A.TC_NOTES,
400
			   A.SIGN_USER,
401
			   TL.TLFULLNAME AS SIGN_USER_NAME,
402
			   A.KT_NOTES,
403
			     A.IS_CHECKALL,
404
			   A.BASED_CONTENT, 
405
			   '' AS IS_TRANSFER,
406
			  --NGUOI XU LY
407
			  dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) AS NGUOIXULY
408

    
409
		FROM PL_REQUEST_DOC A 	
410
		INNER JOIN dbo.PL_REQUEST_PROCESS PLRP ON PLRP.REQ_ID=A.REQ_ID AND PLRP.STATUS = 'C' AND PLRP.IS_HAS_CHILD=1
411
		LEFT JOIN dbo.PL_REQUEST_PROCESS RPN 
412
		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') )
413
		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)	
414
		LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
415
		LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID
416
		LEFT JOIN dbo.CM_DEPARTMENT DEP ON DEP.DEP_ID=A.DEP_ID
417

    
418
		LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE
419
		LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE
420
		LEFT JOIN dbo.TL_USER UC ON UC.TLNANME=A.MAKER_ID
421
		LEFT JOIN dbo.CM_PROCESS_STATUS PS ON PS.PROCESS_ID = A.PROCESS_ID
422
		LEFT JOIN dbo.CM_PROCESS_STATUS PSN ON PSN.PROCESS_ID = A.PROCESS_ID
423
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=A.DVDM_APP_ID
424
		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')
425
		
426
		LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID
427
	
428
		LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID
429
		LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=RPC.TLNAME
430
		LEFT JOIN dbo.TL_USER TFM ON TFM.TLNANME=RPC.MAKER_ID
431
		LEFT JOIN dbo.PL_REQUEST_DOC PARENT ON PARENT.REQ_ID=A.REQ_PARENT_ID
432
		LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME
433
		WHERE 1 = 1
434
	    AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
435
		AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '')
436
		AND (A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '')
437
		AND (A.REQ_REASON LIKE '%' + @p_REQ_REASON + '%' OR @p_REQ_REASON IS NULL OR @p_REQ_REASON = '')
438
		AND (A.TOTAL_AMT=@p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0)
439
		AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')	
440
		AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
441
		AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
442
		AND (DATEDIFF(DAY,A.CREATE_DT , CAST(@p_CREATE_DT AS DATE)) = 0 OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
443
		
444
		AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
445
		AND (DATEDIFF(DAY,A.APPROVE_DT , CAST(@p_CREATE_DT AS DATE)) = 0 OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')	
446
		AND (DATEDIFF(DAY,A.REQ_DT , CAST(@p_REQ_DT AS DATE)) = 0 OR @p_REQ_DT IS NULL OR @p_REQ_DT = '')	
447
		AND (A.REQ_TYPE = @p_REQ_TYPE OR @p_REQ_TYPE IS NULL OR @p_REQ_TYPE =-1)
448
		--AND (@p_RECEIVE_BRANCH IS NULL OR A.PO_ID IN (SELECT PO_ID FROM TR_PO_DETAIL WHERE RECEIVE_BRANCH=@p_RECEIVE_BRANCH))
449
		AND A.RECORD_STATUS = '1'
450

    
451

    
452
		AND(
453
			@p_REQ_TYPE = -1  OR @p_REQ_TYPE IS NULL
454
			OR
455
				(
456
					@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)
457
				)
458
				OR
459
				(
460
						@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)
461
				)
462
			)
463

    
464

    
465
		
466
		AND(( PLRP.ROLE_USER IN (SELECT ROLE_ID FROM @TABLE_ROLE) AND ((PLRP.DVDM_ID  IN (SELECT DVDM_ID FROM @DVDM_ID) )
467
		 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='')) 
468
			OR ( (PLRP.DVDM_ID ='' OR PLRP.DVDM_ID  IS NULL) AND (PLRP.BRANCH_ID IS NULL OR PLRP.BRANCH_ID=''))
469
		)) 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) ) )
470
		AND(@p_FR_DATE IS NULL OR CAST(A.REQ_DT AS DATE) >= CAST(@p_FR_DATE AS DATE))
471
		AND(@p_TO_DATE IS NULL OR CAST(A.REQ_DT AS DATE) <= CAST(@p_TO_DATE AS DATE))	
472
		AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR)	
473
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 = '')
474
  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'))
475
		AND (
476
			((RPC.REQ_ID IS NOT NULL OR RPC.REQ_ID <> '') AND @p_IS_TRANSFER = 'Y')
477
			OR ((RPC.REQ_ID IS NULL OR RPC.REQ_ID = '') AND @p_IS_TRANSFER = 'N')
478
			OR @p_IS_TRANSFER = '' OR @p_IS_TRANSFER IS NULL
479
			)
480

    
481
		AND(
482
			(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
483
			OR
484
			(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',1) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
485
		)
486

    
487
		--AND (A.BRANCH_ID = @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
488
		--AND (A.DEP_ID = @p_DEP_ID OR @p_DEP_ID IS NULL OR @p_DEP_ID = '')
489

    
490

    
491
	ORDER BY A.CREATE_DT DESC
492
	END
493

    
494
	ELSE IF(@p_TYPE='XLTT')
495
	BEGIN
496
			
497
				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,
498
             A.TOTAL_AMT AS TOTAL_AMT,A.NOTES, A.RECORD_STATUS,A.MAKER_ID,A.CREATE_DT,A.AUTH_STATUS,A.CHECKER_ID,
499

    
500
			   UDV.TLFullName AS CHECKER_NAME_DV,
501
			  
502
			   A.APPROVE_DT,
503
               A.PROCESS_ID,
504
			   D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME_DV,
505
			   CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt'
506
			   ELSE N'Chờ duyệt' END AS AUTH_STATUS_NAME,
507
			   G.BRANCH_CODE,
508
			   G.BRANCH_NAME,
509
			   UP.TLFullName AS CHECKER_NAME_PROCESS,
510
			   RP.APPROVE_DT AS APPROVE_DT_PROCESS,
511
			   UC.TLFullName AS MAKER_NAME,
512
			   RPN.PROCESS_ID AS PROCESS_ID_NEXT,
513
			   RPN.ROLE_USER, 
514
			   RP.NOTES AS PROCESS_STATUS , 
515
			   RPN.NOTES AS PROCESS_STATUS_NEXT,
516
			   A.DVDM_APP_ID,
517
			   CD.DVDM_NAME AS DVDM_APP_NAME,
518
			   A.REQ_PARENT_ID,
519
			   PARENT.REQ_NAME AS REQ_PARENT_NAME,
520
			   PARENT.REQ_CODE AS REQ_PARENT_CODE,
521
			   PARENT.TOTAL_AMT AS REQ_PARENT_AMT,
522
			   A.BRANCH_FEE,
523
			   A.DEP_ID,
524
			   A.DEP_FEE,
525
			   DEP.DEP_NAME,
526
			   DEP.DEP_CODE,
527
			   BF.BRANCH_NAME AS BRANCH_FEE_NAME,
528
			   BF.BRANCH_CODE AS BRANCH_FEE_CODE,
529
			   DF.DEP_NAME AS DEP_FEE_NAME,
530
			   DF.DEP_CODE AS DEP_FEE_CODE,
531
			   '' AS BRANCH_DEP,
532
			   '' AS BRANCH_DEP_FEE,
533
			   
534

    
535

    
536
			   RPC.TYPE_JOB AS TYPE_JOB,
537
			   RPC.TLNAME AS USER_JOB,
538
			   TU.TLFullName AS USER_JOB_NAME,
539
			   TFM.TLNANME AS TRANSFER_MAKER,
540
			    RPC.TRANFER_DT AS TRANFER_DT ,
541
				RPC.MAKER_ID AS TRANSFER_MAKER_ID,
542
			   A.EFFEC_DT,A.IS_BACKDAY,
543
			   '' AS TYPE_JOB_XL,
544
			   '' AS USER_JOB_XL,
545
			   PLRP.ID AS REF_ID,
546
			   RPN.STATUS AS STATUS_NEXT,
547
			   PLRP.STATUS AS STATUS_CURR,
548
			   RPC.STATUS_JOB AS STATUS_JOB,
549
			   A.BRANCH_CREATE,
550
			   A.DEP_CREATE,
551
			   A.REQ_LINE,
552
			   A.TC_NOTES,
553
			   A.SIGN_USER, TL.TLFullName AS SIGN_USER_NAME,
554
			   A.KT_NOTES,
555
			     A.IS_CHECKALL,
556
			   A.BASED_CONTENT, 
557
			   '' AS IS_TRANSFER,
558
			   --NGUOI XU LY
559
			   dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) AS NGUOIXULY
560

    
561
		FROM PL_REQUEST_DOC A 	
562
		INNER JOIN dbo.PL_REQUEST_PROCESS PLRP ON PLRP.REQ_ID=A.REQ_ID AND PLRP.STATUS <> 'U' AND PLRP.IS_HAS_CHILD=1
563
		LEFT JOIN dbo.PL_REQUEST_PROCESS RPN 
564
		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') )
565
		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)	
566
		LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
567
		LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID
568
		LEFT JOIN dbo.CM_DEPARTMENT DEP ON DEP.DEP_ID=A.DEP_ID
569

    
570
		LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE
571
		LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE
572
		LEFT JOIN dbo.TL_USER UC ON UC.TLNANME=A.MAKER_ID
573
		LEFT JOIN dbo.CM_PROCESS_STATUS PS ON PS.PROCESS_ID = A.PROCESS_ID
574
		LEFT JOIN dbo.CM_PROCESS_STATUS PSN ON PSN.PROCESS_ID = A.PROCESS_ID
575
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=A.DVDM_APP_ID
576
		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')
577
		
578
		LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID
579
	
580
		LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID
581
		LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=RPC.TLNAME
582
		LEFT JOIN dbo.TL_USER TFM ON TFM.TLNANME=RPC.MAKER_ID
583
		LEFT JOIN dbo.PL_REQUEST_DOC PARENT ON PARENT.REQ_ID=A.REQ_PARENT_ID
584
		LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME
585
		WHERE 1 = 1
586
	    AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
587
		AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '')
588
		AND (A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '')
589
		AND (A.REQ_REASON LIKE '%' + @p_REQ_REASON + '%' OR @p_REQ_REASON IS NULL OR @p_REQ_REASON = '')
590
		AND (A.TOTAL_AMT=@p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0)
591
		AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')	
592
		AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
593
		AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
594
		AND (DATEDIFF(DAY,A.CREATE_DT , CAST(@p_CREATE_DT AS DATE)) = 0 OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
595
		
596
		AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
597
		AND (DATEDIFF(DAY,A.APPROVE_DT , CAST(@p_CREATE_DT AS DATE)) = 0 OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')	
598
		AND (DATEDIFF(DAY,A.REQ_DT , CAST(@p_REQ_DT AS DATE)) = 0 OR @p_REQ_DT IS NULL OR @p_REQ_DT = '')	
599
		AND (A.REQ_TYPE = @p_REQ_TYPE OR @p_REQ_TYPE IS NULL OR @p_REQ_TYPE =-1)
600
		--AND (@p_RECEIVE_BRANCH IS NULL OR A.PO_ID IN (SELECT PO_ID FROM TR_PO_DETAIL WHERE RECEIVE_BRANCH=@p_RECEIVE_BRANCH))
601
		AND A.RECORD_STATUS = '1'
602

    
603

    
604
		AND(
605
			@p_REQ_TYPE = -1  OR @p_REQ_TYPE IS NULL
606
			OR
607
				(
608
					@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)
609
				)
610
				OR
611
				(
612
						@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)
613
				)
614
			)
615

    
616

    
617
		
618
		AND(( PLRP.ROLE_USER IN (SELECT ROLE_ID FROM @TABLE_ROLE) AND ((PLRP.DVDM_ID  IN (SELECT DVDM_ID FROM @DVDM_ID) )
619
		 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='')) 
620
			OR ( (PLRP.DVDM_ID ='' OR PLRP.DVDM_ID  IS NULL) AND ( PLRP.BRANCH_ID IS NULL OR PLRP.BRANCH_ID=''))
621
		)) OR (EXISTS(SELECT ID FROM dbo.PL_REQUEST_PROCESS_CHILD WHERE TLNAME=@p_TLNAME_USER  AND PL_REQUEST_PROCESS_CHILD.PROCESS_ID=PLRP.ID) ))
622
				AND(@p_FR_DATE IS NULL OR CAST(A.REQ_DT AS DATE) >= CAST(@p_FR_DATE AS DATE))
623
		AND(@p_TO_DATE IS NULL OR CAST(A.REQ_DT AS DATE) <= CAST(@p_TO_DATE AS DATE))	
624
			AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR)		
625
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 = '') 
626
	
627
		AND(
628
			(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
629
			OR
630
			(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',1) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
631
		)
632

    
633
		--AND (A.BRANCH_ID = @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
634
		--AND (A.DEP_ID = @p_DEP_ID OR @p_DEP_ID IS NULL OR @p_DEP_ID = '')
635

    
636

    
637
	ORDER BY A.CREATE_DT DESC
638
	END
639
	ELSE IF(@p_TYPE='DVKD_PARENT')
640
	BEGIN	
641
		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,
642
              A.TOTAL_AMT AS TOTAL_AMT,A.NOTES, A.RECORD_STATUS,A.MAKER_ID,A.CREATE_DT,A.AUTH_STATUS,A.CHECKER_ID,
643
			   UDV.TLFullName AS CHECKER_NAME_DV,
644
			   A.APPROVE_DT,
645
               A.PROCESS_ID,
646
			   D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME_DV,
647
			   CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt'
648
			   ELSE N'Chờ duyệt' END AS AUTH_STATUS_NAME,
649
			   G.BRANCH_CODE,
650
			   G.BRANCH_NAME,
651
			   UP.TLFullName AS CHECKER_NAME_PROCESS,
652
			   RP.APPROVE_DT AS APPROVE_DT_PROCESS,
653
			   UC.TLFullName AS MAKER_NAME,
654
			   RPN.PROCESS_ID AS PROCESS_ID_NEXT,
655
			   RP.ROLE_USER, 
656
			   RP.NOTES AS PROCESS_STATUS , 
657
			   RPN.NOTES AS PROCESS_STATUS_NEXT,
658
			   A.DVDM_APP_ID,
659
			   CD.DVDM_NAME AS DVDM_APP_NAME,
660
			   A.REQ_PARENT_ID,
661
			   PARENT.REQ_NAME AS REQ_PARENT_NAME,
662
			   PARENT.REQ_CODE AS REQ_PARENT_CODE,
663
			   PARENT.TOTAL_AMT AS REQ_PARENT_AMT,
664
			   A.BRANCH_FEE,
665
			   A.DEP_ID,
666
			   A.DEP_FEE,
667
			   DEP.DEP_NAME,
668
			   DEP.DEP_CODE,
669
			   BF.BRANCH_NAME AS BRANCH_FEE_NAME,
670
			   BF.BRANCH_CODE AS BRANCH_FEE_CODE,
671
			   DF.DEP_NAME AS DEP_FEE_NAME,
672
			   DF.DEP_CODE AS DEP_FEE_CODE,
673
			   '' AS BRANCH_DEP,
674
			   '' AS BRANCH_DEP_FEE,
675
			   
676

    
677

    
678
			   '' AS TYPE_JOB,
679
			   '' AS USER_JOB,
680
			   '' AS USER_JOB_NAME,
681
			   '' AS TRANSFER_MAKER,
682
			    A.CREATE_DT AS TRANFER_DT ,
683
				'' AS TRANSFER_MAKER_ID,
684
			   A.EFFEC_DT,A.IS_BACKDAY,
685
			   '' AS TYPE_JOB_XL,
686
			   '' AS USER_JOB_XL,
687
			   RP.ID AS REF_ID,
688
			   RPN.STATUS AS STATUS_NEXT,
689
			   RP.STATUS AS STATUS_CURR,
690
			   '' AS STATUS_JOB,
691
			   A.BRANCH_CREATE,
692
			   A.DEP_CREATE,
693
			   A.REQ_LINE,
694
			   A.TC_NOTES, A.SIGN_USER, TL.TLFullName AS SIGN_USER_NAME,
695
			   A.KT_NOTES,
696
			     A.IS_CHECKALL,
697
			   A.BASED_CONTENT, 
698
			   '' AS IS_TRANSFER,
699
			   --NGUOI XU LY
700
			   dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) AS NGUOIXULY
701

    
702
		FROM PL_REQUEST_DOC A 		
703
		LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
704
		LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID
705
		LEFT JOIN dbo.CM_DEPARTMENT DEP ON DEP.DEP_ID=A.DEP_ID
706

    
707
		LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE
708
		LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE
709

    
710
		LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID
711
	
712
		LEFT JOIN dbo.PL_REQUEST_PROCESS RPN 
713
		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') )
714
		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)
715
		LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID
716
		LEFT JOIN dbo.TL_USER UC ON UC.TLNANME=A.MAKER_ID
717
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=A.DVDM_APP_ID
718
		LEFT JOIN dbo.PL_REQUEST_DOC PARENT ON PARENT.REQ_ID=A.REQ_PARENT_ID
719
		LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME
720
		WHERE 1 = 1
721
		
722
	    AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
723
		AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '')
724
		AND (A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '')
725
		AND (A.REQ_REASON LIKE '%' + @p_REQ_REASON + '%' OR @p_REQ_REASON IS NULL OR @p_REQ_REASON = '')
726
		AND (A.TOTAL_AMT=@p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0)
727
		AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')	
728
		AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
729
		AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
730
			AND (DATEDIFF(DAY,A.CREATE_DT , CAST(@p_CREATE_DT AS DATE)) = 0 OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
731
	
732
		AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
733
		AND (DATEDIFF(DAY,A.APPROVE_DT , CAST(@p_CREATE_DT AS DATE)) = 0 OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')	
734
		AND (DATEDIFF(DAY,A.REQ_DT , CAST(@p_REQ_DT AS DATE)) = 0 OR @p_REQ_DT IS NULL OR @p_REQ_DT = '')		
735
		AND (A.REQ_TYPE = @p_REQ_TYPE OR @p_REQ_TYPE IS NULL OR @p_REQ_TYPE =-1)
736
		AND A.RECORD_STATUS = '1'
737
		
738
		AND(
739
			@p_REQ_TYPE = -1  OR @p_REQ_TYPE IS NULL
740
			OR
741
				(
742
					@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)
743
				)
744
				OR
745
				(
746
						@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)
747
				)
748
			)
749

    
750
		AND (  (A.BRANCH_CREATE = @p_BRANCH_LOGIN AND( A.DEP_CREATE=@DEP_ID OR A.DEP_CREATE IS NULL OR A.DEP_ID='')) OR A.IS_CHECKALL=1)
751
		AND A.PROCESS_ID='APPROVE'
752
		AND(@p_FR_DATE IS NULL OR CAST(A.REQ_DT AS DATE) >= CAST(@p_FR_DATE AS DATE))
753
		AND(@p_TO_DATE IS NULL OR CAST(A.REQ_DT AS DATE) <= CAST(@p_TO_DATE AS DATE))	
754
		AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR)	
755
		AND(A.REQ_PARENT_ID IS NULL OR A.REQ_PARENT_ID='')
756

    
757
		AND(
758
			(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
759
			OR
760
			(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',1) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
761
		)
762

    
763
		--AND (A.BRANCH_ID = @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
764
		--AND (A.DEP_ID = @p_DEP_ID OR @p_DEP_ID IS NULL OR @p_DEP_ID = '')
765

    
766

    
767
		ORDER BY A.CREATE_DT DESC
768
 
769
	END
770
   END