Project

General

Profile

FILE 4- PL_REQUEST_DOC_SEARCH.txt

Luc Tran Van, 10/19/2020 05:50 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_DEP_ID VARCHAR(15) = NULL,
22
@p_BRANCH_LOGIN VARCHAR(15),
23
@p_ROLE_USER VARCHAR(20),
24
@p_TLNAME_USER VARCHAR(15),
25
@p_FR_DATE DATETIME = NULL,
26
@p_TO_DATE DATETIME = NULL,
27
@p_TYPE_TRANFER VARCHAR(15),
28
@p_TYPE VARCHAR(15),
29
@p_YEAR INT,
30
@p_TOP	INT = 10,
31
@p_IS_TRANSFER VARCHAR(10) = NULL,
32
@p_NGUOIXULY NVARCHAR(15) = NULL
33

    
34
AS
35
BEGIN
36

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

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

    
46

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

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

    
100

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

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

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

    
149

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

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

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

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

    
241

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

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

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

    
308

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

    
321

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

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

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

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

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

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

    
452

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

    
465

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

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

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

    
491

    
492
	ORDER BY A.CREATE_DT DESC
493
	END
494

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

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

    
536

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

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

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

    
604

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

    
617

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

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

    
637

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

    
678

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

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

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

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

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

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

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

    
767

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