Project

General

Profile

FILE 1-UDATE PL_REQUEST_DOC_SEARCH.txt

Truong Nguyen Vu, 09/09/2020 09:41 AM

 
1

    
2
ALTER PROCEDURE [dbo].[PL_REQUEST_DOC_Search]
3
@p_REQ_ID	varchar(15)  = NULL,
4
@p_REQ_CODE	nvarchar(100)  = NULL,
5
@p_REQ_NAME	nvarchar(200)  = NULL,
6
@p_REQ_DT	DATETIME = NULL,
7
@p_REQ_TYPE	int = NULL,
8
@p_REQ_CONTENT NVARCHAR(1000)=NULL,
9
@p_REQ_REASON NVARCHAR(500)=NULL,
10
@p_TOTAL_AMT	decimal = NULL,
11
@p_NOTES	nvarchar(1000)  = NULL,
12
@p_RECORD_STATUS	varchar(1)  = NULL,
13
@p_MAKER_ID	varchar(12)  = NULL,
14
@p_CREATE_DT	DATETIME = NULL,
15
@p_AUTH_STATUS	varchar(50)  = NULL,
16
@p_CHECKER_ID	varchar(12)  = NULL,
17
@p_APPROVE_DT	DATETIME = NULL,
18
@p_PROCESS_ID varchar(15) = NULL,
19
@p_BRANCH_ID VARCHAR(15)=NULL,
20
@p_BRANCH_LOGIN VARCHAR(15),
21
@p_ROLE_USER VARCHAR(20),
22
@p_TLNAME_USER VARCHAR(15),
23
@p_FR_DATE DATETIME = NULL,
24
@p_TO_DATE DATETIME = NULL,
25
@p_TYPE_TRANFER VARCHAR(15),
26
@p_TYPE VARCHAR(15),
27
@p_YEAR INT,
28
@p_TOP	INT = 10,
29
@p_IS_TRANSFER VARCHAR(10) = NULL
30
AS
31
BEGIN
32

    
33
	DECLARE @TABLE_ROLE TABLE 
34
	( ROLE_ID VARCHAR(20))
35
	INSERT INTO @TABLE_ROLE VALUES(@p_ROLE_USER)
36

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

    
42

    
43
	DECLARE @DEP_ID VARCHAR(15)
44
	
45
	DECLARE
46
	@COST_ID TABLE (
47
		COST_ID VARCHAR(15)
48
	)
49

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

    
96

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

    
127
		LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE
128
		LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE
129

    
130
		LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID
131
	
132
		LEFT JOIN dbo.PL_REQUEST_PROCESS RPN 
133
		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') )
134
		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)
135
		LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID
136
		LEFT JOIN dbo.TL_USER UC ON UC.TLNANME=A.MAKER_ID
137
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=A.DVDM_APP_ID
138
		LEFT JOIN dbo.PL_REQUEST_DOC PARENT ON PARENT.REQ_ID=A.REQ_PARENT_ID
139
		LEFT JOIN dbo.PL_REQUEST_DOC PL_B ON PL_B.REQ_ID=A.PL_BASED_ID
140
		LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME
141
		WHERE 1 = 1
142
		
143
	    AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
144
		AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '')
145
		AND (A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '')
146
		AND (A.REQ_REASON LIKE '%' + @p_REQ_REASON + '%' OR @p_REQ_REASON IS NULL OR @p_REQ_REASON = '')
147
		AND (A.TOTAL_AMT=@p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0)
148
		AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')	
149
		AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
150
		AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
151
			AND (DATEDIFF(DAY,A.CREATE_DT , CAST(@p_CREATE_DT AS DATE)) = 0 OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
152
	
153
		AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
154
		AND (DATEDIFF(DAY,A.APPROVE_DT , CAST(@p_CREATE_DT AS DATE)) = 0 OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')	
155
		AND (DATEDIFF(DAY,A.REQ_DT , CAST(@p_REQ_DT AS DATE)) = 0 OR @p_REQ_DT IS NULL OR @p_REQ_DT = '')		
156
		AND (A.REQ_TYPE = @p_REQ_TYPE OR @p_REQ_TYPE IS NULL OR @p_REQ_TYPE =-1)
157
		AND A.RECORD_STATUS = '1'
158
		
159
		AND(
160
			@p_REQ_TYPE = -1  OR @p_REQ_TYPE IS NULL
161
			OR
162
				(
163
					@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)
164
				)
165
				OR
166
				(
167
						@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)
168
				)
169
			)
170

    
171
		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' 
172
																AND PLRP.ROLE_USER IN (SELECT ROLE_ID FROM @TABLE_ROLE) AND PLRP.BRANCH_ID=@p_BRANCH_LOGIN 
173
																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'))
174
		--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 = '')
175
		--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 ='')))))
176
		AND (A.AUTH_STATUS = @p_AUTH_STATUS OR @p_AUTH_STATUS ='' OR @p_AUTH_STATUS IS NULL)
177
		AND(@p_FR_DATE IS NULL OR CAST(A.REQ_DT AS DATE) >= CAST(@p_FR_DATE AS DATE))
178
		AND(@p_TO_DATE IS NULL OR CAST(A.REQ_DT AS DATE) <= CAST(@p_TO_DATE AS DATE))	
179
		AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR)	
180
		ORDER BY A.CREATE_DT DESC
181
	END
182
	ELSE IF(@p_TYPE='PDTT')
183
	BEGIN
184
		
185
		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,
186
               A.TOTAL_AMT AS TOTAL_AMT,A.NOTES, A.RECORD_STATUS,A.MAKER_ID,A.CREATE_DT,A.AUTH_STATUS,A.CHECKER_ID,
187

    
188
			   UDV.TLFullName AS CHECKER_NAME_DV,
189
			  
190
			   A.APPROVE_DT,
191
               A.PROCESS_ID,
192
			   D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME_DV,
193
			   CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt'
194
			   ELSE N'Chờ duyệt' END AS AUTH_STATUS_NAME,
195
			   G.BRANCH_CODE,
196
			   G.BRANCH_NAME,
197
			   UP.TLFullName AS CHECKER_NAME_PROCESS,
198
			   RP.APPROVE_DT AS APPROVE_DT_PROCESS,
199
			   UC.TLFullName AS MAKER_NAME,
200
			   RPN.PROCESS_ID AS PROCESS_ID_NEXT,
201
			   RPN.ROLE_USER, 
202
			   RP.NOTES AS PROCESS_STATUS , 
203
			   RPN.NOTES AS PROCESS_STATUS_NEXT,
204
			   A.DVDM_APP_ID,
205
			   CD.DVDM_NAME AS DVDM_APP_NAME,
206
			   A.REQ_PARENT_ID,
207
			   PARENT.REQ_NAME AS REQ_PARENT_NAME,
208
			   PARENT.REQ_CODE AS REQ_PARENT_CODE,
209
			   PARENT.TOTAL_AMT AS REQ_PARENT_AMT,
210
			   A.BRANCH_FEE,
211
			   A.DEP_ID,
212
			   A.DEP_FEE,
213
			   DEP.DEP_NAME,
214
			   DEP.DEP_CODE,
215
			   BF.BRANCH_NAME AS BRANCH_FEE_NAME,
216
			   BF.BRANCH_CODE AS BRANCH_FEE_CODE,
217
			   DF.DEP_NAME AS DEP_FEE_NAME,
218
			   DF.DEP_CODE AS DEP_FEE_CODE,
219
			   '' AS BRANCH_DEP,
220
			   '' AS BRANCH_DEP_FEE,
221
			   
222

    
223

    
224
			   RPC.TYPE_JOB AS TYPE_JOB,
225
			   RPC.TLNAME AS USER_JOB,
226
			   TU.TLFullName AS USER_JOB_NAME,
227
			   TFM.TLNANME AS TRANSFER_MAKER,
228
			    RPC.TRANFER_DT AS TRANFER_DT ,
229
				RPC.MAKER_ID AS TRANSFER_MAKER_ID,
230
			   A.EFFEC_DT,A.IS_BACKDAY,
231
			   '' AS TYPE_JOB_XL,
232
			   '' AS USER_JOB_XL,
233
			   RP.ID AS REF_ID,
234
			   RPN.STATUS AS STATUS_NEXT,
235
			   PLRP.STATUS AS STATUS_CURR,
236
			    RPC.STATUS_JOB AS STATUS_JOB,
237
			   A.BRANCH_CREATE,
238
			   A.DEP_CREATE,
239
			   A.REQ_LINE,
240
			     A.TC_NOTES,
241
				  A.SIGN_USER,
242
			   TL.TLFullName  AS SIGN_USER_NAME,
243
			   A.KT_NOTES,
244
			     A.IS_CHECKALL,
245
			   A.BASED_CONTENT, 
246
			   '' AS IS_TRANSFER
247
		FROM PL_REQUEST_DOC A 	
248
		INNER JOIN dbo.PL_REQUEST_PROCESS PLRP ON PLRP.REQ_ID=A.REQ_ID AND PLRP.STATUS <>'U'	
249
		LEFT JOIN dbo.PL_REQUEST_PROCESS RPN 
250
		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') )
251
		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)	
252
		LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
253
		LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID
254

    
255
		LEFT JOIN dbo.CM_DEPARTMENT DEP ON DEP.DEP_ID=A.DEP_ID
256
		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')
257
		LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE
258
		LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE
259
		LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID
260
		LEFT JOIN dbo.TL_USER UC ON UC.TLNANME=A.MAKER_ID
261
		LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID
262
		LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=RPC.TLNAME
263
		LEFT JOIN dbo.TL_USER TFM ON TFM.TLNANME=RPC.MAKER_ID
264
		LEFT JOIN dbo.CM_PROCESS_STATUS PS ON PS.PROCESS_ID = A.PROCESS_ID
265
		LEFT JOIN dbo.CM_PROCESS_STATUS PSN ON PSN.PROCESS_ID = A.PROCESS_ID
266
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=A.DVDM_APP_ID
267
		LEFT JOIN dbo.PL_REQUEST_DOC PARENT ON PARENT.REQ_ID=A.REQ_PARENT_ID
268
		LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME
269
		WHERE 1 = 1
270
	    AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
271
		AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '')
272
		AND (A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '')
273
		AND (A.REQ_REASON LIKE '%' + @p_REQ_REASON + '%' OR @p_REQ_REASON IS NULL OR @p_REQ_REASON = '')
274
		AND (A.TOTAL_AMT=@p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0)
275
		AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')	
276
		AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
277
		AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
278
		AND (DATEDIFF(DAY,A.CREATE_DT , CAST(@p_CREATE_DT AS DATE)) = 0 OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
279
		
280
		AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
281
		AND (DATEDIFF(DAY,A.APPROVE_DT , CAST(@p_CREATE_DT AS DATE)) = 0 OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')	
282
		AND (DATEDIFF(DAY,A.REQ_DT , CAST(@p_REQ_DT AS DATE)) = 0 OR @p_REQ_DT IS NULL OR @p_REQ_DT = '')	
283
		AND (A.REQ_TYPE = @p_REQ_TYPE OR @p_REQ_TYPE IS NULL OR @p_REQ_TYPE =-1)
284
		--AND (@p_RECEIVE_BRANCH IS NULL OR A.PO_ID IN (SELECT PO_ID FROM TR_PO_DETAIL WHERE RECEIVE_BRANCH=@p_RECEIVE_BRANCH))
285
		AND A.RECORD_STATUS = '1'
286

    
287

    
288
		AND(
289
			@p_REQ_TYPE = -1  OR @p_REQ_TYPE IS NULL
290
			OR
291
				(
292
					@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)
293
				)
294
				OR
295
				(
296
						@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)
297
				)
298
			)
299

    
300

    
301
		AND PLRP.ROLE_USER IN (SELECT ROLE_ID FROM @TABLE_ROLE) AND (
302
		  (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='')) 
303
		OR ( PLRP.DVDM_ID IN (SELECT DVDM_ID FROM @DVDM_ID))
304
		OR
305
		( (PLRP.DVDM_ID ='' OR PLRP.DVDM_ID  IS NULL) AND (PLRP.BRANCH_ID IS NULL OR PLRP.BRANCH_ID=''))	
306
		)
307
			AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR)	
308
		AND (PLRP.IS_HAS_CHILD=0 OR PLRP.IS_HAS_CHILD IS NULL)
309
		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 = '')
310
		--		AND(@p_FR_DATE IS NULL OR CAST(A.REQ_DT AS DATE) >= CAST(@p_FR_DATE AS DATE))
311
		--AND(@p_TO_DATE IS NULL OR CAST(A.REQ_DT AS DATE) <= CAST(@p_TO_DATE AS DATE))	
312
		ORDER BY A.CREATE_DT DESC
313
 
314
	END
315
	ELSE IF(@p_TYPE='TFJOB')
316
	BEGIN
317
		
318
				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,
319
              A.TOTAL_AMT AS TOTAL_AMT,A.NOTES, A.RECORD_STATUS,A.MAKER_ID,A.CREATE_DT,A.AUTH_STATUS,A.CHECKER_ID,
320

    
321
			   UDV.TLFullName AS CHECKER_NAME_DV,
322
			  
323
			   A.APPROVE_DT,
324
               A.PROCESS_ID,
325
			   D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME_DV,
326
			   CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt'
327
			   ELSE N'Chờ duyệt' END AS AUTH_STATUS_NAME,
328
			   G.BRANCH_CODE,
329
			   G.BRANCH_NAME,
330
			   UP.TLFullName AS CHECKER_NAME_PROCESS,
331
			   RP.APPROVE_DT AS APPROVE_DT_PROCESS,
332
			   UC.TLFullName AS MAKER_NAME,
333
			   RPN.PROCESS_ID AS PROCESS_ID_NEXT,
334
			   RP.ROLE_USER, 
335
			   RP.NOTES AS PROCESS_STATUS , 
336
			   RPN.NOTES AS PROCESS_STATUS_NEXT,
337
			   A.DVDM_APP_ID,
338
			   CD.DVDM_NAME AS DVDM_APP_NAME,
339
			   A.REQ_PARENT_ID,
340
			   PARENT.REQ_NAME AS REQ_PARENT_NAME,
341
			   PARENT.REQ_CODE AS REQ_PARENT_CODE,
342
			   PARENT.TOTAL_AMT AS REQ_PARENT_AMT,
343
			   A.BRANCH_FEE,
344
			   A.DEP_ID,
345
			   A.DEP_FEE,
346
			   DEP.DEP_NAME,
347
			   DEP.DEP_CODE,
348
			   BF.BRANCH_NAME AS BRANCH_FEE_NAME,
349
			   BF.BRANCH_CODE AS BRANCH_FEE_CODE,
350
			   DF.DEP_NAME AS DEP_FEE_NAME,
351
			   DF.DEP_CODE AS DEP_FEE_CODE,
352
			   '' AS BRANCH_DEP,
353
			   '' AS BRANCH_DEP_FEE,
354
			   RPC.TYPE_JOB AS TYPE_JOB,
355
			   RPC.TLNAME AS USER_JOB,
356
			   TU.TLFullName AS USER_JOB_NAME,
357
			   TFM.TLNANME AS TRANSFER_MAKER,
358
			    RPC.TRANFER_DT AS TRANFER_DT ,
359
				RPC.MAKER_ID AS TRANSFER_MAKER_ID,
360
			   A.EFFEC_DT,A.IS_BACKDAY,
361
			   '' AS TYPE_JOB_XL,
362
			   '' AS USER_JOB_XL,
363
			   PLRP.ID AS REF_ID,
364
			   RPN.STATUS AS STATUS_NEXT,
365
			   PLRP.STATUS AS STATUS_CURR,
366
			    RPC.STATUS_JOB AS STATUS_JOB,
367
			   A.BRANCH_CREATE,
368
			   A.DEP_CREATE,
369
			   A.REQ_LINE,
370
			   A.TC_NOTES,
371
			   A.SIGN_USER,
372
			   TL.TLFULLNAME AS SIGN_USER_NAME,
373
			   A.KT_NOTES,
374
			     A.IS_CHECKALL,
375
			   A.BASED_CONTENT, 
376
			   '' AS IS_TRANSFER
377
		FROM PL_REQUEST_DOC A 	
378
		INNER JOIN dbo.PL_REQUEST_PROCESS PLRP ON PLRP.REQ_ID=A.REQ_ID AND PLRP.STATUS = 'C' AND PLRP.IS_HAS_CHILD=1
379
		LEFT JOIN dbo.PL_REQUEST_PROCESS RPN 
380
		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') )
381
		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)	
382
		LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
383
		LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID
384
		LEFT JOIN dbo.CM_DEPARTMENT DEP ON DEP.DEP_ID=A.DEP_ID
385

    
386
		LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE
387
		LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE
388
		LEFT JOIN dbo.TL_USER UC ON UC.TLNANME=A.MAKER_ID
389
		LEFT JOIN dbo.CM_PROCESS_STATUS PS ON PS.PROCESS_ID = A.PROCESS_ID
390
		LEFT JOIN dbo.CM_PROCESS_STATUS PSN ON PSN.PROCESS_ID = A.PROCESS_ID
391
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=A.DVDM_APP_ID
392
		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')
393
		
394
		LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID
395
	
396
		LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID
397
		LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=RPC.TLNAME
398
		LEFT JOIN dbo.TL_USER TFM ON TFM.TLNANME=RPC.MAKER_ID
399
		LEFT JOIN dbo.PL_REQUEST_DOC PARENT ON PARENT.REQ_ID=A.REQ_PARENT_ID
400
		LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME
401
		WHERE 1 = 1
402
	    AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
403
		AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '')
404
		AND (A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '')
405
		AND (A.REQ_REASON LIKE '%' + @p_REQ_REASON + '%' OR @p_REQ_REASON IS NULL OR @p_REQ_REASON = '')
406
		AND (A.TOTAL_AMT=@p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0)
407
		AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')	
408
		AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
409
		AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
410
		AND (DATEDIFF(DAY,A.CREATE_DT , CAST(@p_CREATE_DT AS DATE)) = 0 OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
411
		
412
		AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
413
		AND (DATEDIFF(DAY,A.APPROVE_DT , CAST(@p_CREATE_DT AS DATE)) = 0 OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')	
414
		AND (DATEDIFF(DAY,A.REQ_DT , CAST(@p_REQ_DT AS DATE)) = 0 OR @p_REQ_DT IS NULL OR @p_REQ_DT = '')	
415
		AND (A.REQ_TYPE = @p_REQ_TYPE OR @p_REQ_TYPE IS NULL OR @p_REQ_TYPE =-1)
416
		--AND (@p_RECEIVE_BRANCH IS NULL OR A.PO_ID IN (SELECT PO_ID FROM TR_PO_DETAIL WHERE RECEIVE_BRANCH=@p_RECEIVE_BRANCH))
417
		AND A.RECORD_STATUS = '1'
418

    
419

    
420
		AND(
421
			@p_REQ_TYPE = -1  OR @p_REQ_TYPE IS NULL
422
			OR
423
				(
424
					@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)
425
				)
426
				OR
427
				(
428
						@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)
429
				)
430
			)
431

    
432

    
433
		
434
		AND(( PLRP.ROLE_USER IN (SELECT ROLE_ID FROM @TABLE_ROLE) AND ((PLRP.DVDM_ID  IN (SELECT DVDM_ID FROM @DVDM_ID) )
435
		 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='')) 
436
			OR ( (PLRP.DVDM_ID ='' OR PLRP.DVDM_ID  IS NULL) AND (PLRP.BRANCH_ID IS NULL OR PLRP.BRANCH_ID=''))
437
		)) 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) ) )
438
		AND(@p_FR_DATE IS NULL OR CAST(A.REQ_DT AS DATE) >= CAST(@p_FR_DATE AS DATE))
439
		AND(@p_TO_DATE IS NULL OR CAST(A.REQ_DT AS DATE) <= CAST(@p_TO_DATE AS DATE))	
440
		AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR)		
441
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 = '')
442
  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'))
443
		AND (
444
			((RPC.REQ_ID IS NOT NULL OR RPC.REQ_ID <> '') AND @p_IS_TRANSFER = 'Y')
445
			OR ((RPC.REQ_ID IS NULL OR RPC.REQ_ID = '') AND @p_IS_TRANSFER = 'N')
446
			OR @p_IS_TRANSFER = '' OR @p_IS_TRANSFER IS NULL
447
			)
448
	ORDER BY A.CREATE_DT DESC
449
	END
450

    
451
	ELSE IF(@p_TYPE='XLTT')
452
	BEGIN
453
			
454
				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,
455
             A.TOTAL_AMT AS TOTAL_AMT,A.NOTES, A.RECORD_STATUS,A.MAKER_ID,A.CREATE_DT,A.AUTH_STATUS,A.CHECKER_ID,
456

    
457
			   UDV.TLFullName AS CHECKER_NAME_DV,
458
			  
459
			   A.APPROVE_DT,
460
               A.PROCESS_ID,
461
			   D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME_DV,
462
			   CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt'
463
			   ELSE N'Chờ duyệt' END AS AUTH_STATUS_NAME,
464
			   G.BRANCH_CODE,
465
			   G.BRANCH_NAME,
466
			   UP.TLFullName AS CHECKER_NAME_PROCESS,
467
			   RP.APPROVE_DT AS APPROVE_DT_PROCESS,
468
			   UC.TLFullName AS MAKER_NAME,
469
			   RPN.PROCESS_ID AS PROCESS_ID_NEXT,
470
			   RPN.ROLE_USER, 
471
			   RP.NOTES AS PROCESS_STATUS , 
472
			   RPN.NOTES AS PROCESS_STATUS_NEXT,
473
			   A.DVDM_APP_ID,
474
			   CD.DVDM_NAME AS DVDM_APP_NAME,
475
			   A.REQ_PARENT_ID,
476
			   PARENT.REQ_NAME AS REQ_PARENT_NAME,
477
			   PARENT.REQ_CODE AS REQ_PARENT_CODE,
478
			   PARENT.TOTAL_AMT AS REQ_PARENT_AMT,
479
			   A.BRANCH_FEE,
480
			   A.DEP_ID,
481
			   A.DEP_FEE,
482
			   DEP.DEP_NAME,
483
			   DEP.DEP_CODE,
484
			   BF.BRANCH_NAME AS BRANCH_FEE_NAME,
485
			   BF.BRANCH_CODE AS BRANCH_FEE_CODE,
486
			   DF.DEP_NAME AS DEP_FEE_NAME,
487
			   DF.DEP_CODE AS DEP_FEE_CODE,
488
			   '' AS BRANCH_DEP,
489
			   '' AS BRANCH_DEP_FEE,
490
			   
491

    
492

    
493
			   RPC.TYPE_JOB AS TYPE_JOB,
494
			   RPC.TLNAME AS USER_JOB,
495
			   TU.TLFullName AS USER_JOB_NAME,
496
			   TFM.TLNANME AS TRANSFER_MAKER,
497
			    RPC.TRANFER_DT AS TRANFER_DT ,
498
				RPC.MAKER_ID AS TRANSFER_MAKER_ID,
499
			   A.EFFEC_DT,A.IS_BACKDAY,
500
			   '' AS TYPE_JOB_XL,
501
			   '' AS USER_JOB_XL,
502
			   PLRP.ID AS REF_ID,
503
			   RPN.STATUS AS STATUS_NEXT,
504
			   PLRP.STATUS AS STATUS_CURR,
505
			   RPC.STATUS_JOB AS STATUS_JOB,
506
			   A.BRANCH_CREATE,
507
			   A.DEP_CREATE,
508
			   A.REQ_LINE,
509
			   A.TC_NOTES,
510
			   A.SIGN_USER, TL.TLFullName AS SIGN_USER_NAME,
511
			   A.KT_NOTES,
512
			     A.IS_CHECKALL,
513
			   A.BASED_CONTENT, 
514
			   '' AS IS_TRANSFER
515
		FROM PL_REQUEST_DOC A 	
516
		INNER JOIN dbo.PL_REQUEST_PROCESS PLRP ON PLRP.REQ_ID=A.REQ_ID AND PLRP.STATUS <> 'U' AND PLRP.IS_HAS_CHILD=1
517
		LEFT JOIN dbo.PL_REQUEST_PROCESS RPN 
518
		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') )
519
		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)	
520
		LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
521
		LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID
522
		LEFT JOIN dbo.CM_DEPARTMENT DEP ON DEP.DEP_ID=A.DEP_ID
523

    
524
		LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE
525
		LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE
526
		LEFT JOIN dbo.TL_USER UC ON UC.TLNANME=A.MAKER_ID
527
		LEFT JOIN dbo.CM_PROCESS_STATUS PS ON PS.PROCESS_ID = A.PROCESS_ID
528
		LEFT JOIN dbo.CM_PROCESS_STATUS PSN ON PSN.PROCESS_ID = A.PROCESS_ID
529
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=A.DVDM_APP_ID
530
		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')
531
		
532
		LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID
533
	
534
		LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID
535
		LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=RPC.TLNAME
536
		LEFT JOIN dbo.TL_USER TFM ON TFM.TLNANME=RPC.MAKER_ID
537
		LEFT JOIN dbo.PL_REQUEST_DOC PARENT ON PARENT.REQ_ID=A.REQ_PARENT_ID
538
		LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME
539
		WHERE 1 = 1
540
	    AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
541
		AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '')
542
		AND (A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '')
543
		AND (A.REQ_REASON LIKE '%' + @p_REQ_REASON + '%' OR @p_REQ_REASON IS NULL OR @p_REQ_REASON = '')
544
		AND (A.TOTAL_AMT=@p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0)
545
		AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')	
546
		AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
547
		AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
548
		AND (DATEDIFF(DAY,A.CREATE_DT , CAST(@p_CREATE_DT AS DATE)) = 0 OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
549
		
550
		AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
551
		AND (DATEDIFF(DAY,A.APPROVE_DT , CAST(@p_CREATE_DT AS DATE)) = 0 OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')	
552
		AND (DATEDIFF(DAY,A.REQ_DT , CAST(@p_REQ_DT AS DATE)) = 0 OR @p_REQ_DT IS NULL OR @p_REQ_DT = '')	
553
		AND (A.REQ_TYPE = @p_REQ_TYPE OR @p_REQ_TYPE IS NULL OR @p_REQ_TYPE =-1)
554
		--AND (@p_RECEIVE_BRANCH IS NULL OR A.PO_ID IN (SELECT PO_ID FROM TR_PO_DETAIL WHERE RECEIVE_BRANCH=@p_RECEIVE_BRANCH))
555
		AND A.RECORD_STATUS = '1'
556

    
557

    
558
		AND(
559
			@p_REQ_TYPE = -1  OR @p_REQ_TYPE IS NULL
560
			OR
561
				(
562
					@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)
563
				)
564
				OR
565
				(
566
						@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)
567
				)
568
			)
569

    
570

    
571
		
572
		AND(( PLRP.ROLE_USER IN (SELECT ROLE_ID FROM @TABLE_ROLE) AND ((PLRP.DVDM_ID  IN (SELECT DVDM_ID FROM @DVDM_ID) )
573
		 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='')) 
574
			OR ( (PLRP.DVDM_ID ='' OR PLRP.DVDM_ID  IS NULL) AND ( PLRP.BRANCH_ID IS NULL OR PLRP.BRANCH_ID=''))
575
		)) OR (EXISTS(SELECT ID FROM dbo.PL_REQUEST_PROCESS_CHILD WHERE TLNAME=@p_TLNAME_USER  AND PL_REQUEST_PROCESS_CHILD.PROCESS_ID=PLRP.ID) ))
576
				AND(@p_FR_DATE IS NULL OR CAST(A.REQ_DT AS DATE) >= CAST(@p_FR_DATE AS DATE))
577
		AND(@p_TO_DATE IS NULL OR CAST(A.REQ_DT AS DATE) <= CAST(@p_TO_DATE AS DATE))	
578
			AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR)		
579
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 = '') 
580
	ORDER BY A.CREATE_DT DESC
581
	END
582
	ELSE IF(@p_TYPE='DVKD_PARENT')
583
	BEGIN	
584
		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,
585
              A.TOTAL_AMT AS TOTAL_AMT,A.NOTES, A.RECORD_STATUS,A.MAKER_ID,A.CREATE_DT,A.AUTH_STATUS,A.CHECKER_ID,
586
			   UDV.TLFullName AS CHECKER_NAME_DV,
587
			   A.APPROVE_DT,
588
               A.PROCESS_ID,
589
			   D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME_DV,
590
			   CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt'
591
			   ELSE N'Chờ duyệt' END AS AUTH_STATUS_NAME,
592
			   G.BRANCH_CODE,
593
			   G.BRANCH_NAME,
594
			   UP.TLFullName AS CHECKER_NAME_PROCESS,
595
			   RP.APPROVE_DT AS APPROVE_DT_PROCESS,
596
			   UC.TLFullName AS MAKER_NAME,
597
			   RPN.PROCESS_ID AS PROCESS_ID_NEXT,
598
			   RP.ROLE_USER, 
599
			   RP.NOTES AS PROCESS_STATUS , 
600
			   RPN.NOTES AS PROCESS_STATUS_NEXT,
601
			   A.DVDM_APP_ID,
602
			   CD.DVDM_NAME AS DVDM_APP_NAME,
603
			   A.REQ_PARENT_ID,
604
			   PARENT.REQ_NAME AS REQ_PARENT_NAME,
605
			   PARENT.REQ_CODE AS REQ_PARENT_CODE,
606
			   PARENT.TOTAL_AMT AS REQ_PARENT_AMT,
607
			   A.BRANCH_FEE,
608
			   A.DEP_ID,
609
			   A.DEP_FEE,
610
			   DEP.DEP_NAME,
611
			   DEP.DEP_CODE,
612
			   BF.BRANCH_NAME AS BRANCH_FEE_NAME,
613
			   BF.BRANCH_CODE AS BRANCH_FEE_CODE,
614
			   DF.DEP_NAME AS DEP_FEE_NAME,
615
			   DF.DEP_CODE AS DEP_FEE_CODE,
616
			   '' AS BRANCH_DEP,
617
			   '' AS BRANCH_DEP_FEE,
618
			   
619

    
620

    
621
			   '' AS TYPE_JOB,
622
			   '' AS USER_JOB,
623
			   '' AS USER_JOB_NAME,
624
			   '' AS TRANSFER_MAKER,
625
			    A.CREATE_DT AS TRANFER_DT ,
626
				'' AS TRANSFER_MAKER_ID,
627
			   A.EFFEC_DT,A.IS_BACKDAY,
628
			   '' AS TYPE_JOB_XL,
629
			   '' AS USER_JOB_XL,
630
			   RP.ID AS REF_ID,
631
			   RPN.STATUS AS STATUS_NEXT,
632
			   RP.STATUS AS STATUS_CURR,
633
			   '' AS STATUS_JOB,
634
			   A.BRANCH_CREATE,
635
			   A.DEP_CREATE,
636
			   A.REQ_LINE,
637
			   A.TC_NOTES, A.SIGN_USER, TL.TLFullName AS SIGN_USER_NAME,
638
			   A.KT_NOTES,
639
			     A.IS_CHECKALL,
640
			   A.BASED_CONTENT, 
641
			   '' AS IS_TRANSFER
642
		FROM PL_REQUEST_DOC A 		
643
		LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
644
		LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID
645
		LEFT JOIN dbo.CM_DEPARTMENT DEP ON DEP.DEP_ID=A.DEP_ID
646

    
647
		LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE
648
		LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE
649

    
650
		LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID
651
	
652
		LEFT JOIN dbo.PL_REQUEST_PROCESS RPN 
653
		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') )
654
		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)
655
		LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID
656
		LEFT JOIN dbo.TL_USER UC ON UC.TLNANME=A.MAKER_ID
657
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=A.DVDM_APP_ID
658
		LEFT JOIN dbo.PL_REQUEST_DOC PARENT ON PARENT.REQ_ID=A.REQ_PARENT_ID
659
		LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME
660
		WHERE 1 = 1
661
		
662
	    AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
663
		AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '')
664
		AND (A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '')
665
		AND (A.REQ_REASON LIKE '%' + @p_REQ_REASON + '%' OR @p_REQ_REASON IS NULL OR @p_REQ_REASON = '')
666
		AND (A.TOTAL_AMT=@p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0)
667
		AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')	
668
		AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
669
		AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
670
			AND (DATEDIFF(DAY,A.CREATE_DT , CAST(@p_CREATE_DT AS DATE)) = 0 OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
671
	
672
		AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
673
		AND (DATEDIFF(DAY,A.APPROVE_DT , CAST(@p_CREATE_DT AS DATE)) = 0 OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')	
674
		AND (DATEDIFF(DAY,A.REQ_DT , CAST(@p_REQ_DT AS DATE)) = 0 OR @p_REQ_DT IS NULL OR @p_REQ_DT = '')		
675
		AND (A.REQ_TYPE = @p_REQ_TYPE OR @p_REQ_TYPE IS NULL OR @p_REQ_TYPE =-1)
676
		AND A.RECORD_STATUS = '1'
677
		
678
		AND(
679
			@p_REQ_TYPE = -1  OR @p_REQ_TYPE IS NULL
680
			OR
681
				(
682
					@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)
683
				)
684
				OR
685
				(
686
						@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)
687
				)
688
			)
689

    
690
		AND   (A.BRANCH_CREATE = @p_BRANCH_LOGIN AND( A.DEP_CREATE=@DEP_ID OR A.DEP_CREATE IS NULL OR A.DEP_ID=''))
691
		AND (( @p_AUTH_STATUS='A' AND  A.PROCESS_ID='APPROVE') OR( @p_AUTH_STATUS='U' AND (A.PROCESS_ID <> 'APPROVE' OR A.PROCESS_ID IS NULL)) OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
692
		AND(@p_FR_DATE IS NULL OR CAST(A.REQ_DT AS DATE) >= CAST(@p_FR_DATE AS DATE))
693
		AND(@p_TO_DATE IS NULL OR CAST(A.REQ_DT AS DATE) <= CAST(@p_TO_DATE AS DATE))	
694
		AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR)	
695
		AND(A.REQ_PARENT_ID IS NULL OR A.REQ_PARENT_ID='')
696
		ORDER BY A.CREATE_DT DESC
697
 
698
	END
699
   END