Project

General

Profile

FILE 5.txt

Truong Nguyen Vu, 09/22/2020 02:34 PM

 
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_BRANCH_LOGIN VARCHAR(15),
21
@p_ROLE_USER VARCHAR(20),
22
@p_TLNAME_USER VARCHAR(15),
23
@p_FR_DATE DATETIME = NULL,
24
@p_TO_DATE DATETIME = NULL,
25
@p_TYPE_TRANFER VARCHAR(15),
26
@p_TYPE VARCHAR(15),
27
@p_YEAR INT,
28
@p_TOP	INT = 10,
29
@p_IS_TRANSFER VARCHAR(10) = NULL,
30
@p_NGUOIXULY NVARCHAR(15) = NULL
31

    
32
AS
33
BEGIN
34

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

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

    
44

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

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

    
98

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

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

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

    
147

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

    
178
		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' 
179
																AND PLRP.ROLE_USER IN (SELECT ROLE_ID FROM @TABLE_ROLE) AND PLRP.BRANCH_ID=@p_BRANCH_LOGIN 
180
																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'))
181
		--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 = '')
182
		--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 ='')))))
183
		AND (A.AUTH_STATUS = @p_AUTH_STATUS OR @p_AUTH_STATUS ='' OR @p_AUTH_STATUS IS NULL)
184
		AND(@p_FR_DATE IS NULL OR CAST(A.REQ_DT AS DATE) >= CAST(@p_FR_DATE AS DATE))
185
		AND(@p_TO_DATE IS NULL OR CAST(A.REQ_DT AS DATE) <= CAST(@p_TO_DATE AS DATE))	
186
		AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR)	
187
		AND(
188
			(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
189
			OR
190
			(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',1) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
191
		)
192
		
193
		ORDER BY A.CREATE_DT DESC
194
	END
195
	ELSE IF(@p_TYPE='PDTT')
196
	BEGIN
197
		
198
		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,
199
               A.TOTAL_AMT AS TOTAL_AMT,A.NOTES, A.RECORD_STATUS,A.MAKER_ID,A.CREATE_DT,A.AUTH_STATUS,A.CHECKER_ID,
200

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

    
236

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

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

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

    
303

    
304
		AND(
305
			@p_REQ_TYPE = -1  OR @p_REQ_TYPE IS NULL
306
			OR
307
				(
308
					@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)
309
				)
310
				OR
311
				(
312
						@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)
313
				)
314
			)
315

    
316

    
317
		AND PLRP.ROLE_USER IN (SELECT ROLE_ID FROM @TABLE_ROLE) AND (
318
		  (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='')) 
319
		OR ( PLRP.DVDM_ID IN (SELECT DVDM_ID FROM @DVDM_ID))
320
		OR
321
		( (PLRP.DVDM_ID ='' OR PLRP.DVDM_ID  IS NULL) AND (PLRP.BRANCH_ID IS NULL OR PLRP.BRANCH_ID=''))	
322
		)
323
			AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR)	
324
		AND (PLRP.IS_HAS_CHILD=0 OR PLRP.IS_HAS_CHILD IS NULL)
325
		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 = '')
326
		--		AND(@p_FR_DATE IS NULL OR CAST(A.REQ_DT AS DATE) >= CAST(@p_FR_DATE AS DATE))
327
		--AND(@p_TO_DATE IS NULL OR CAST(A.REQ_DT AS DATE) <= CAST(@p_TO_DATE AS DATE))	
328
		AND(
329
			(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
330
			OR
331
			(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',1) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
332
		)
333
		ORDER BY A.CREATE_DT DESC
334
 
335
	END
336
	ELSE IF(@p_TYPE='TFJOB')
337
	BEGIN
338
		
339
				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,
340
              A.TOTAL_AMT AS TOTAL_AMT,A.NOTES, A.RECORD_STATUS,A.MAKER_ID,A.CREATE_DT,A.AUTH_STATUS,A.CHECKER_ID,
341

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

    
401
		FROM PL_REQUEST_DOC A 	
402
		INNER JOIN dbo.PL_REQUEST_PROCESS PLRP ON PLRP.REQ_ID=A.REQ_ID AND PLRP.STATUS = 'C' AND PLRP.IS_HAS_CHILD=1
403
		LEFT JOIN dbo.PL_REQUEST_PROCESS RPN 
404
		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') )
405
		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)	
406
		LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
407
		LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID
408
		LEFT JOIN dbo.CM_DEPARTMENT DEP ON DEP.DEP_ID=A.DEP_ID
409

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

    
443

    
444
		AND(
445
			@p_REQ_TYPE = -1  OR @p_REQ_TYPE IS NULL
446
			OR
447
				(
448
					@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)
449
				)
450
				OR
451
				(
452
						@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)
453
				)
454
			)
455

    
456

    
457
		
458
		AND(( PLRP.ROLE_USER IN (SELECT ROLE_ID FROM @TABLE_ROLE) AND ((PLRP.DVDM_ID  IN (SELECT DVDM_ID FROM @DVDM_ID) )
459
		 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='')) 
460
			OR ( (PLRP.DVDM_ID ='' OR PLRP.DVDM_ID  IS NULL) AND (PLRP.BRANCH_ID IS NULL OR PLRP.BRANCH_ID=''))
461
		)) 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) ) )
462
		AND(@p_FR_DATE IS NULL OR CAST(A.REQ_DT AS DATE) >= CAST(@p_FR_DATE AS DATE))
463
		AND(@p_TO_DATE IS NULL OR CAST(A.REQ_DT AS DATE) <= CAST(@p_TO_DATE AS DATE))	
464
		AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR)	
465
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 = '')
466
  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'))
467
		AND (
468
			((RPC.REQ_ID IS NOT NULL OR RPC.REQ_ID <> '') AND @p_IS_TRANSFER = 'Y')
469
			OR ((RPC.REQ_ID IS NULL OR RPC.REQ_ID = '') AND @p_IS_TRANSFER = 'N')
470
			OR @p_IS_TRANSFER = '' OR @p_IS_TRANSFER IS NULL
471
			)
472

    
473
		AND(
474
			(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
475
			OR
476
			(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',1) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
477
		)
478
	ORDER BY A.CREATE_DT DESC
479
	END
480

    
481
	ELSE IF(@p_TYPE='XLTT')
482
	BEGIN
483
			
484
				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,
485
             A.TOTAL_AMT AS TOTAL_AMT,A.NOTES, A.RECORD_STATUS,A.MAKER_ID,A.CREATE_DT,A.AUTH_STATUS,A.CHECKER_ID,
486

    
487
			   UDV.TLFullName AS CHECKER_NAME_DV,
488
			  
489
			   A.APPROVE_DT,
490
               A.PROCESS_ID,
491
			   D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME_DV,
492
			   CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt'
493
			   ELSE N'Chờ duyệt' END AS AUTH_STATUS_NAME,
494
			   G.BRANCH_CODE,
495
			   G.BRANCH_NAME,
496
			   UP.TLFullName AS CHECKER_NAME_PROCESS,
497
			   RP.APPROVE_DT AS APPROVE_DT_PROCESS,
498
			   UC.TLFullName AS MAKER_NAME,
499
			   RPN.PROCESS_ID AS PROCESS_ID_NEXT,
500
			   RPN.ROLE_USER, 
501
			   RP.NOTES AS PROCESS_STATUS , 
502
			   RPN.NOTES AS PROCESS_STATUS_NEXT,
503
			   A.DVDM_APP_ID,
504
			   CD.DVDM_NAME AS DVDM_APP_NAME,
505
			   A.REQ_PARENT_ID,
506
			   PARENT.REQ_NAME AS REQ_PARENT_NAME,
507
			   PARENT.REQ_CODE AS REQ_PARENT_CODE,
508
			   PARENT.TOTAL_AMT AS REQ_PARENT_AMT,
509
			   A.BRANCH_FEE,
510
			   A.DEP_ID,
511
			   A.DEP_FEE,
512
			   DEP.DEP_NAME,
513
			   DEP.DEP_CODE,
514
			   BF.BRANCH_NAME AS BRANCH_FEE_NAME,
515
			   BF.BRANCH_CODE AS BRANCH_FEE_CODE,
516
			   DF.DEP_NAME AS DEP_FEE_NAME,
517
			   DF.DEP_CODE AS DEP_FEE_CODE,
518
			   '' AS BRANCH_DEP,
519
			   '' AS BRANCH_DEP_FEE,
520
			   
521

    
522

    
523
			   RPC.TYPE_JOB AS TYPE_JOB,
524
			   RPC.TLNAME AS USER_JOB,
525
			   TU.TLFullName AS USER_JOB_NAME,
526
			   TFM.TLNANME AS TRANSFER_MAKER,
527
			    RPC.TRANFER_DT AS TRANFER_DT ,
528
				RPC.MAKER_ID AS TRANSFER_MAKER_ID,
529
			   A.EFFEC_DT,A.IS_BACKDAY,
530
			   '' AS TYPE_JOB_XL,
531
			   '' AS USER_JOB_XL,
532
			   PLRP.ID AS REF_ID,
533
			   RPN.STATUS AS STATUS_NEXT,
534
			   PLRP.STATUS AS STATUS_CURR,
535
			   RPC.STATUS_JOB AS STATUS_JOB,
536
			   A.BRANCH_CREATE,
537
			   A.DEP_CREATE,
538
			   A.REQ_LINE,
539
			   A.TC_NOTES,
540
			   A.SIGN_USER, TL.TLFullName AS SIGN_USER_NAME,
541
			   A.KT_NOTES,
542
			     A.IS_CHECKALL,
543
			   A.BASED_CONTENT, 
544
			   '' AS IS_TRANSFER,
545
			   --NGUOI XU LY
546
			   dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) AS NGUOIXULY
547

    
548
		FROM PL_REQUEST_DOC A 	
549
		INNER JOIN dbo.PL_REQUEST_PROCESS PLRP ON PLRP.REQ_ID=A.REQ_ID AND PLRP.STATUS <> 'U' AND PLRP.IS_HAS_CHILD=1
550
		LEFT JOIN dbo.PL_REQUEST_PROCESS RPN 
551
		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') )
552
		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)	
553
		LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
554
		LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID
555
		LEFT JOIN dbo.CM_DEPARTMENT DEP ON DEP.DEP_ID=A.DEP_ID
556

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

    
590

    
591
		AND(
592
			@p_REQ_TYPE = -1  OR @p_REQ_TYPE IS NULL
593
			OR
594
				(
595
					@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)
596
				)
597
				OR
598
				(
599
						@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)
600
				)
601
			)
602

    
603

    
604
		
605
		AND(( PLRP.ROLE_USER IN (SELECT ROLE_ID FROM @TABLE_ROLE) AND ((PLRP.DVDM_ID  IN (SELECT DVDM_ID FROM @DVDM_ID) )
606
		 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='')) 
607
			OR ( (PLRP.DVDM_ID ='' OR PLRP.DVDM_ID  IS NULL) AND ( PLRP.BRANCH_ID IS NULL OR PLRP.BRANCH_ID=''))
608
		)) OR (EXISTS(SELECT ID FROM dbo.PL_REQUEST_PROCESS_CHILD WHERE TLNAME=@p_TLNAME_USER  AND PL_REQUEST_PROCESS_CHILD.PROCESS_ID=PLRP.ID) ))
609
				AND(@p_FR_DATE IS NULL OR CAST(A.REQ_DT AS DATE) >= CAST(@p_FR_DATE AS DATE))
610
		AND(@p_TO_DATE IS NULL OR CAST(A.REQ_DT AS DATE) <= CAST(@p_TO_DATE AS DATE))	
611
			AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR)		
612
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 = '') 
613
	
614
		AND(
615
			(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
616
			OR
617
			(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',1) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
618
		)
619

    
620
	ORDER BY A.CREATE_DT DESC
621
	END
622
	ELSE IF(@p_TYPE='DVKD_PARENT')
623
	BEGIN	
624
		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,
625
              A.TOTAL_AMT AS TOTAL_AMT,A.NOTES, A.RECORD_STATUS,A.MAKER_ID,A.CREATE_DT,A.AUTH_STATUS,A.CHECKER_ID,
626
			   UDV.TLFullName AS CHECKER_NAME_DV,
627
			   A.APPROVE_DT,
628
               A.PROCESS_ID,
629
			   D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME_DV,
630
			   CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt'
631
			   ELSE N'Chờ duyệt' END AS AUTH_STATUS_NAME,
632
			   G.BRANCH_CODE,
633
			   G.BRANCH_NAME,
634
			   UP.TLFullName AS CHECKER_NAME_PROCESS,
635
			   RP.APPROVE_DT AS APPROVE_DT_PROCESS,
636
			   UC.TLFullName AS MAKER_NAME,
637
			   RPN.PROCESS_ID AS PROCESS_ID_NEXT,
638
			   RP.ROLE_USER, 
639
			   RP.NOTES AS PROCESS_STATUS , 
640
			   RPN.NOTES AS PROCESS_STATUS_NEXT,
641
			   A.DVDM_APP_ID,
642
			   CD.DVDM_NAME AS DVDM_APP_NAME,
643
			   A.REQ_PARENT_ID,
644
			   PARENT.REQ_NAME AS REQ_PARENT_NAME,
645
			   PARENT.REQ_CODE AS REQ_PARENT_CODE,
646
			   PARENT.TOTAL_AMT AS REQ_PARENT_AMT,
647
			   A.BRANCH_FEE,
648
			   A.DEP_ID,
649
			   A.DEP_FEE,
650
			   DEP.DEP_NAME,
651
			   DEP.DEP_CODE,
652
			   BF.BRANCH_NAME AS BRANCH_FEE_NAME,
653
			   BF.BRANCH_CODE AS BRANCH_FEE_CODE,
654
			   DF.DEP_NAME AS DEP_FEE_NAME,
655
			   DF.DEP_CODE AS DEP_FEE_CODE,
656
			   '' AS BRANCH_DEP,
657
			   '' AS BRANCH_DEP_FEE,
658
			   
659

    
660

    
661
			   '' AS TYPE_JOB,
662
			   '' AS USER_JOB,
663
			   '' AS USER_JOB_NAME,
664
			   '' AS TRANSFER_MAKER,
665
			    A.CREATE_DT AS TRANFER_DT ,
666
				'' AS TRANSFER_MAKER_ID,
667
			   A.EFFEC_DT,A.IS_BACKDAY,
668
			   '' AS TYPE_JOB_XL,
669
			   '' AS USER_JOB_XL,
670
			   RP.ID AS REF_ID,
671
			   RPN.STATUS AS STATUS_NEXT,
672
			   RP.STATUS AS STATUS_CURR,
673
			   '' AS STATUS_JOB,
674
			   A.BRANCH_CREATE,
675
			   A.DEP_CREATE,
676
			   A.REQ_LINE,
677
			   A.TC_NOTES, A.SIGN_USER, TL.TLFullName AS SIGN_USER_NAME,
678
			   A.KT_NOTES,
679
			     A.IS_CHECKALL,
680
			   A.BASED_CONTENT, 
681
			   '' AS IS_TRANSFER,
682
			   --NGUOI XU LY
683
			   dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) AS NGUOIXULY
684

    
685
		FROM PL_REQUEST_DOC A 		
686
		LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
687
		LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID
688
		LEFT JOIN dbo.CM_DEPARTMENT DEP ON DEP.DEP_ID=A.DEP_ID
689

    
690
		LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE
691
		LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE
692

    
693
		LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID
694
	
695
		LEFT JOIN dbo.PL_REQUEST_PROCESS RPN 
696
		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') )
697
		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)
698
		LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID
699
		LEFT JOIN dbo.TL_USER UC ON UC.TLNANME=A.MAKER_ID
700
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=A.DVDM_APP_ID
701
		LEFT JOIN dbo.PL_REQUEST_DOC PARENT ON PARENT.REQ_ID=A.REQ_PARENT_ID
702
		LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME
703
		WHERE 1 = 1
704
		
705
	    AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
706
		AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '')
707
		AND (A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '')
708
		AND (A.REQ_REASON LIKE '%' + @p_REQ_REASON + '%' OR @p_REQ_REASON IS NULL OR @p_REQ_REASON = '')
709
		AND (A.TOTAL_AMT=@p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0)
710
		AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')	
711
		AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
712
		AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
713
			AND (DATEDIFF(DAY,A.CREATE_DT , CAST(@p_CREATE_DT AS DATE)) = 0 OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
714
	
715
		AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
716
		AND (DATEDIFF(DAY,A.APPROVE_DT , CAST(@p_CREATE_DT AS DATE)) = 0 OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')	
717
		AND (DATEDIFF(DAY,A.REQ_DT , CAST(@p_REQ_DT AS DATE)) = 0 OR @p_REQ_DT IS NULL OR @p_REQ_DT = '')		
718
		AND (A.REQ_TYPE = @p_REQ_TYPE OR @p_REQ_TYPE IS NULL OR @p_REQ_TYPE =-1)
719
		AND A.RECORD_STATUS = '1'
720
		
721
		AND(
722
			@p_REQ_TYPE = -1  OR @p_REQ_TYPE IS NULL
723
			OR
724
				(
725
					@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)
726
				)
727
				OR
728
				(
729
						@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)
730
				)
731
			)
732

    
733
		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)
734
		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 = '')
735
		AND(@p_FR_DATE IS NULL OR CAST(A.REQ_DT AS DATE) >= CAST(@p_FR_DATE AS DATE))
736
		AND(@p_TO_DATE IS NULL OR CAST(A.REQ_DT AS DATE) <= CAST(@p_TO_DATE AS DATE))	
737
		AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR)	
738
		AND(A.REQ_PARENT_ID IS NULL OR A.REQ_PARENT_ID='')
739

    
740
		AND(
741
			(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
742
			OR
743
			(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',1) LIKE '%' + @p_NGUOIXULY  + '%' OR @p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = '')
744
		)
745

    
746
		ORDER BY A.CREATE_DT DESC
747
 
748
	END
749
   END