Project

General

Profile

FILE 6.txt

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

 
1

    
2

    
3
ALTER PROCEDURE [dbo].[PL_REQUEST_DOC_Search]
4
@p_REQ_ID	varchar(15)  = NULL,
5
@p_REQ_CODE	nvarchar(100)  = NULL,
6
@p_REQ_NAME	nvarchar(200)  = NULL,
7
@p_REQ_DT	DATETIME = NULL,
8
@p_REQ_TYPE	int = NULL,
9
@p_REQ_CONTENT NVARCHAR(1000)=NULL,
10
@p_REQ_REASON NVARCHAR(500)=NULL,
11
@p_TOTAL_AMT	decimal = NULL,
12
@p_NOTES	nvarchar(1000)  = NULL,
13
@p_RECORD_STATUS	varchar(1)  = NULL,
14
@p_MAKER_ID	varchar(12)  = NULL,
15
@p_CREATE_DT	DATETIME = NULL,
16
@p_AUTH_STATUS	varchar(50)  = NULL,
17
@p_CHECKER_ID	varchar(12)  = NULL,
18
@p_APPROVE_DT	DATETIME = NULL,
19
@p_PROCESS_ID varchar(15) = NULL,
20
@p_BRANCH_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
		ORDER BY A.CREATE_DT DESC
195
	END
196
	ELSE IF(@p_TYPE='PDTT')
197
	BEGIN
198
		
199
		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,
200
               A.TOTAL_AMT AS TOTAL_AMT,A.NOTES, A.RECORD_STATUS,A.MAKER_ID,A.CREATE_DT,A.AUTH_STATUS,A.CHECKER_ID,
201

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

    
237

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

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

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

    
304

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

    
317

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

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

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

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

    
444

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

    
457

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

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

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

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

    
523

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

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

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

    
591

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

    
604

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

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

    
661

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

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

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

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

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

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

    
747

    
748
		ORDER BY A.CREATE_DT DESC
749
 
750
	END
751
   END