Project

General

Profile

FILE PL_REQ_DOC_SEARCH.txt

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

 
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),@BRANCH_TYPE 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
	SET @BRANCH_TYPE=(SELECT BRANCH_TYPE FROM dbo.CM_BRANCH WHERE BRANCH_ID=@p_BRANCH_LOGIN)
59

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

    
102

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

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

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

    
151

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

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

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

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

    
243

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

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

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

    
310

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

    
323

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

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

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

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

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

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

    
454

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

    
467

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

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

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

    
493

    
494
	ORDER BY A.CREATE_DT DESC
495
	END
496

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

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

    
538

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

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

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

    
606

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

    
619

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

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

    
639

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

    
680

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

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

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

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

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

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

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

    
769

    
770
		ORDER BY A.CREATE_DT DESC
771
 
772
	END
773
   END