Project

General

Profile

PL_REQUEST_DOC_SEARCH.txt

Luc Tran Van, 02/03/2021 10:13 AM

 
1
CREATE PROCEDURE [dbo].[PL_REQUEST_DOC_Search]  
2
@p_REQ_ID varchar(15) = NULL,  
3
@p_REQ_CODE nvarchar(100) = NULL,  
4
@p_REQ_NAME nvarchar(200) = NULL,  
5
@p_REQ_DT DATETIME = NULL,  
6
@p_REQ_TYPE int = NULL,  
7
@p_REQ_CONTENT NVARCHAR(1000)=NULL,  
8
@p_REQ_REASON NVARCHAR(500)=NULL,  
9
@p_TOTAL_AMT decimal = NULL,  
10
@p_NOTES nvarchar(1000) = NULL,  
11
@p_RECORD_STATUS varchar(1) = NULL,  
12
@p_MAKER_ID varchar(12) = NULL,  
13
@p_CREATE_DT DATETIME = NULL,  
14
@p_AUTH_STATUS varchar(50) = NULL,  
15
@p_CHECKER_ID varchar(12) = NULL,  
16
@p_APPROVE_DT DATETIME = NULL,  
17
@p_PROCESS_ID varchar(15) = NULL,  
18
@p_BRANCH_ID VARCHAR(15)=NULL,  
19
@p_DEP_ID VARCHAR(15) = NULL,  
20
@p_BRANCH_LOGIN VARCHAR(15),  
21
@p_ROLE_USER VARCHAR(20),  
22
@p_TLNAME_USER VARCHAR(15),  
23
@p_FR_DATE DATETIME = NULL,  
24
@p_TO_DATE DATETIME = NULL,  
25
@p_TYPE_TRANFER VARCHAR(15),  
26
@p_TYPE VARCHAR(15),  
27
@p_YEAR INT,  
28
@p_TOP INT = 10,  
29
@p_IS_TRANSFER VARCHAR(10) = NULL,  
30
@p_NGUOIXULY NVARCHAR(15) = NULL  
31
 
32
AS  
33
BEGIN  
34
 
35
DECLARE @TABLE_ROLE TABLE  
36
( ROLE_ID VARCHAR(20))  
37
INSERT INTO @TABLE_ROLE VALUES(@p_ROLE_USER)  
38
 
39
 
40
INSERT INTO @TABLE_ROLE  
41
SELECT ROLE_NEW FROM dbo.TL_SYS_ROLE_MAPPING WHERE ROLE_OLD=@p_ROLE_USER  
42
 
43
 
44
 
45
DECLARE @DEP_ID VARCHAR(15),@BRANCH_TYPE VARCHAR(15)  
46
 
47
DECLARE  
48
@COST_ID TABLE (  
49
COST_ID VARCHAR(15)  
50
)  
51
 
52
DECLARE @DVDM_ID TABLE (  
53
DVDM_ID VARCHAR(15)  
54
)  
55
SET @DEP_ID =(SELECT SECUR_CODE FROM dbo.TL_USER WHERE TLNANME=@p_TLNAME_USER)  
56
SET @BRANCH_TYPE=(SELECT BRANCH_TYPE FROM dbo.CM_BRANCH WHERE BRANCH_ID=@p_BRANCH_LOGIN)  
57
 
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 (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_TL 
181
NAME_USER ) OR (EXISTS(SELECT * FROM dbo.PL_REQUEST_PROCESS PLRP WHERE A.REQ_ID=PLRP.REQ_ID AND PLRP.PROCESS_ID='APPNEW'  
182
AND PLRP.ROLE_USER IN (SELECT ROLE_ID FROM @TABLE_ROLE) AND PLRP.BRANCH_ID=@p_BRANCH_LOGIN  
183
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'))  
184
--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 = '')  
185
--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 NUL 
186
L 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