Project

General

Profile

PL_REQUEST_DOC_Search.txt

Sang Đặng Thái, 10/15/2020 05:01 PM

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

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

    
239

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

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

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

    
306

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

    
319

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

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

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

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

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

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

    
450

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

    
463

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

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

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

    
489

    
490
	ORDER BY A.CREATE_DT DESC
491
	END
492

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

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

    
534

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

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

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

    
602

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

    
615

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

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

    
635

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

    
676

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

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

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

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

    
749
		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)
750
		AND A.PROCESS_ID='APPROVE'
751
		AND(@p_FR_DATE IS NULL OR CAST(A.REQ_DT AS DATE) >= CAST(@p_FR_DATE AS DATE))
752
		AND(@p_TO_DATE IS NULL OR CAST(A.REQ_DT AS DATE) <= CAST(@p_TO_DATE AS DATE))	
753
		AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR)	
754
		AND(A.REQ_PARENT_ID IS NULL OR A.REQ_PARENT_ID='')
755

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

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

    
765

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