Project

General

Profile

PL_REQUEST_DOC_SEARCH-update.txt

Truong Nguyen Vu, 02/03/2021 10:32 AM

 
1
ALTER PROCEDURE [dbo].[PL_REQUEST_DOC_Search]  
2
@p_REQ_ID varchar(15) = NULL,  
3
@p_REQ_CODE nvarchar(100) = NULL,  
4
@p_REQ_NAME nvarchar(200) = NULL,  
5
@p_REQ_DT DATETIME = NULL,  
6
@p_REQ_TYPE int = NULL,  
7
@p_REQ_CONTENT NVARCHAR(1000)=NULL,  
8
@p_REQ_REASON NVARCHAR(500)=NULL,  
9
@p_TOTAL_AMT decimal = NULL,  
10
@p_NOTES nvarchar(1000) = NULL,  
11
@p_RECORD_STATUS varchar(1) = NULL,  
12
@p_MAKER_ID varchar(12) = NULL,  
13
@p_CREATE_DT DATETIME = NULL,  
14
@p_AUTH_STATUS varchar(50) = NULL,  
15
@p_CHECKER_ID varchar(12) = NULL,  
16
@p_APPROVE_DT DATETIME = NULL,  
17
@p_PROCESS_ID varchar(15) = NULL,  
18
@p_BRANCH_ID VARCHAR(15)=NULL,  
19
@p_DEP_ID VARCHAR(15) = NULL,  
20
@p_BRANCH_LOGIN VARCHAR(15),  
21
@p_ROLE_USER VARCHAR(20),  
22
@p_TLNAME_USER VARCHAR(15),  
23
@p_FR_DATE DATETIME = NULL,  
24
@p_TO_DATE DATETIME = NULL,  
25
@p_TYPE_TRANFER VARCHAR(15),  
26
@p_TYPE VARCHAR(15),  
27
@p_YEAR INT,  
28
@p_TOP INT = 10,  
29
@p_IS_TRANSFER VARCHAR(10) = NULL,  
30
@p_NGUOIXULY NVARCHAR(15) = NULL  
31
 
32
AS  
33
BEGIN  
34
 
35
DECLARE @TABLE_ROLE TABLE  
36
( ROLE_ID VARCHAR(20))  
37
INSERT INTO @TABLE_ROLE VALUES(@p_ROLE_USER)  
38
 
39
 
40
INSERT INTO @TABLE_ROLE  
41
SELECT ROLE_NEW FROM dbo.TL_SYS_ROLE_MAPPING WHERE ROLE_OLD=@p_ROLE_USER  
42
 
43
 
44
 
45
DECLARE @DEP_ID VARCHAR(15),@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_TLNAME_USER ) OR (EXISTS(SELECT * FROM dbo.PL_REQUEST_PROCESS PLRP WHERE A.REQ_ID=PLRP.REQ_ID AND PLRP.PROCESS_ID='APPNEW'  
181
AND PLRP.ROLE_USER IN (SELECT ROLE_ID FROM @TABLE_ROLE) AND PLRP.BRANCH_ID=@p_BRANCH_LOGIN  
182
AND (PLRP.DEP_ID=@DEP_ID OR PLRP.DEP_ID IS NULL OR PLRP.DEP_ID =''))) OR(A.SIGN_USER IS NOT NULL AND A.SIGN_USER <>'' AND A.SIGN_USER =@p_TLNAME_USER AND A.AUTH_STATUS<>'E'))  
183
--AND (( @p_AUTH_STATUS='A' AND A.PROCESS_ID='APPROVE') OR( @p_AUTH_STATUS IN('U','R','E') AND (A.PROCESS_ID <> 'APPROVE' OR A.PROCESS_ID IS NULL)) OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')  
184
--AND ((A.AUTH_STATUS='E' AND A.MAKER_ID=@p_TLNAME_USER) OR (A.AUTH_STATUS <> 'E' AND (A.MAKER_ID=@p_TLNAME_USER OR (PLRP.PROCESS_ID='DVKD' AND PLRP.ROLE_USER=@p_ROLE_USER AND PLRP.BRANCH_ID=@p_BRANCH_LOGIN AND (PLRP.DEP_ID=@DEP_ID OR PLRP.DEP_ID IS NULL OR PLRP.DEP_ID ='')))))  
185
AND (A.AUTH_STATUS = @p_AUTH_STATUS OR @p_AUTH_STATUS ='' OR @p_AUTH_STATUS IS NULL)  
186
AND(@p_FR_DATE IS NULL OR CAST(A.REQ_DT AS DATE) >= CAST(@p_FR_DATE AS DATE))  
187
AND(@p_TO_DATE IS NULL OR CAST(A.REQ_DT AS DATE) <= CAST(@p_TO_DATE AS DATE))  
188
AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR)  
189
AND(  
190
(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) LIKE '%' + @p_NGUOIXULY + '%' OR @p_NGUOIXULY IS NULL OR @p_NGUOIXULY = '')  
191
OR  
192
(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',1) LIKE '%' + @p_NGUOIXULY + '%' OR @p_NGUOIXULY IS NULL OR @p_NGUOIXULY = '')  
193
)  
194
 
195
AND (A.BRANCH_ID = @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')  
196
AND (A.DEP_ID = @p_DEP_ID OR @p_DEP_ID IS NULL OR @p_DEP_ID = '')  
197
 
198
ORDER BY A.CREATE_DT DESC  
199
END  
200
ELSE IF(@p_TYPE='PDTT')  
201
BEGIN  
202
 
203
SELECT A.REQ_ID,A.REQ_CODE,A.REQ_NAME,A.REQ_DT,A.REQ_TYPE,A.REQ_CONTENT, A.REQ_REASON,A.BRANCH_ID,  
204
A.TOTAL_AMT AS TOTAL_AMT,A.NOTES, A.RECORD_STATUS,A.MAKER_ID,A.CREATE_DT,A.AUTH_STATUS,A.CHECKER_ID,  
205
 
206
UDV.TLFullName AS CHECKER_NAME_DV,  
207
 
208
A.APPROVE_DT,  
209
A.PROCESS_ID,  
210
D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME_DV,  
211
CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt'  
212
ELSE N'Chờ duyệt' END AS AUTH_STATUS_NAME,  
213
G.BRANCH_CODE,  
214
G.BRANCH_NAME,  
215
UP.TLFullName AS CHECKER_NAME_PROCESS,  
216
RP.APPROVE_DT AS APPROVE_DT_PROCESS,  
217
UC.TLFullName AS MAKER_NAME,  
218
RPN.PROCESS_ID AS PROCESS_ID_NEXT,  
219
RPN.ROLE_USER,  
220
RP.NOTES AS PROCESS_STATUS ,  
221
RPN.NOTES AS PROCESS_STATUS_NEXT,  
222
A.DVDM_APP_ID,  
223
CD.DVDM_NAME AS DVDM_APP_NAME,  
224
A.REQ_PARENT_ID,  
225
PARENT.REQ_NAME AS REQ_PARENT_NAME,  
226
PARENT.REQ_CODE AS REQ_PARENT_CODE,  
227
PARENT.TOTAL_AMT AS REQ_PARENT_AMT,  
228
A.BRANCH_FEE,  
229
A.DEP_ID,  
230
A.DEP_FEE,  
231
DEP.DEP_NAME,  
232
DEP.DEP_CODE,  
233
BF.BRANCH_NAME AS BRANCH_FEE_NAME,  
234
BF.BRANCH_CODE AS BRANCH_FEE_CODE,  
235
DF.DEP_NAME AS DEP_FEE_NAME,  
236
DF.DEP_CODE AS DEP_FEE_CODE,  
237
'' AS BRANCH_DEP,  
238
'' AS BRANCH_DEP_FEE,  
239
 
240
 
241
 
242
RPC.TYPE_JOB AS TYPE_JOB,  
243
RPC.TLNAME AS USER_JOB,  
244
TU.TLFullName AS USER_JOB_NAME,  
245
TFM.TLNANME AS TRANSFER_MAKER,  
246
RPC.TRANFER_DT AS TRANFER_DT ,  
247
RPC.MAKER_ID AS TRANSFER_MAKER_ID,  
248
A.EFFEC_DT,A.IS_BACKDAY,  
249
'' AS TYPE_JOB_XL,  
250
'' AS USER_JOB_XL,  
251
RP.ID AS REF_ID,  
252
RPN.STATUS AS STATUS_NEXT,  
253
PLRP.STATUS AS STATUS_CURR,  
254
RPC.STATUS_JOB AS STATUS_JOB,  
255
A.BRANCH_CREATE,  
256
A.DEP_CREATE,  
257
A.REQ_LINE,  
258
A.TC_NOTES,  
259
A.SIGN_USER,  
260
TL.TLFullName AS SIGN_USER_NAME,  
261
A.KT_NOTES,  
262
A.IS_CHECKALL,  
263
A.BASED_CONTENT,  
264
'' AS IS_TRANSFER,  
265
--NGUOI XU LY  
266
dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) AS NGUOIXULY  
267
 
268
FROM PL_REQUEST_DOC A  
269
INNER JOIN dbo.PL_REQUEST_PROCESS PLRP ON PLRP.REQ_ID=A.REQ_ID AND PLRP.STATUS <>'U'  
270
LEFT JOIN dbo.PL_REQUEST_PROCESS RPN  
271
ON RPN.ID IN (SELECT TOP 1 Temp.ID FROM dbo.PL_REQUEST_PROCESS Temp WHERE Temp.REQ_ID=A.REQ_ID AND (Temp.STATUS='C' OR Temp.STATUS='R') )  
272
LEFT JOIN dbo.PL_REQUEST_PROCESS RP ON RP.ID=(SELECT TOP 1 ID FROM PL_REQUEST_PROCESS WHERE PL_REQUEST_PROCESS.REQ_ID=A.REQ_ID AND PL_REQUEST_PROCESS.PROCESS_ID=RPN.PARENT_PROCESS_ID ORDER BY APPROVE_DT DESC)  
273
LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS  
274
LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID  
275
 
276
LEFT JOIN dbo.CM_DEPARTMENT DEP ON DEP.DEP_ID=A.DEP_ID  
277
LEFT JOIN dbo.PL_REQUEST_PROCESS_CHILD RPC ON RPC.REQ_ID=A.REQ_ID AND RPC.PROCESS_ID=PLRP.ID AND (RPC.STATUS_JOB='C' OR RPC.STATUS_JOB='R')  
278
LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE  
279
LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE  
280
LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID  
281
LEFT JOIN dbo.TL_USER UC ON UC.TLNANME=A.MAKER_ID  
282
LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID  
283
LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=RPC.TLNAME  
284
LEFT JOIN dbo.TL_USER TFM ON TFM.TLNANME=RPC.MAKER_ID  
285
LEFT JOIN dbo.CM_PROCESS_STATUS PS ON PS.PROCESS_ID = A.PROCESS_ID  
286
LEFT JOIN dbo.CM_PROCESS_STATUS PSN ON PSN.PROCESS_ID = A.PROCESS_ID  
287
LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=A.DVDM_APP_ID  
288
LEFT JOIN dbo.PL_REQUEST_DOC PARENT ON PARENT.REQ_ID=A.REQ_PARENT_ID  
289
LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME  
290
WHERE 1 = 1  
291
AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')  
292
AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '')  
293
AND (A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '')  
294
AND (A.REQ_REASON LIKE '%' + @p_REQ_REASON + '%' OR @p_REQ_REASON IS NULL OR @p_REQ_REASON = '')  
295
AND (A.TOTAL_AMT=@p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0)  
296
AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')  
297
AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')  
298
AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')  
299
AND (DATEDIFF(DAY,A.CREATE_DT , CAST(@p_CREATE_DT AS DATE)) = 0 OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')  
300
 
301
AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')  
302
AND (DATEDIFF(DAY,A.APPROVE_DT , CAST(@p_CREATE_DT AS DATE)) = 0 OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')  
303
AND (DATEDIFF(DAY,A.REQ_DT , CAST(@p_REQ_DT AS DATE)) = 0 OR @p_REQ_DT IS NULL OR @p_REQ_DT = '')  
304
AND (A.REQ_TYPE = @p_REQ_TYPE OR @p_REQ_TYPE IS NULL OR @p_REQ_TYPE =-1)  
305
--AND (@p_RECEIVE_BRANCH IS NULL OR A.PO_ID IN (SELECT PO_ID FROM TR_PO_DETAIL WHERE RECEIVE_BRANCH=@p_RECEIVE_BRANCH))  
306
AND A.RECORD_STATUS = '1'  
307
 
308
 
309
AND(  
310
@p_REQ_TYPE = -1 OR @p_REQ_TYPE IS NULL  
311
OR  
312
(  
313
@p_REQ_TYPE=1 AND EXISTS(SELECT D.REQDT_ID FROM dbo.PL_REQUEST_DOC_DT D WHERE D.REQDT_TYPE='O' AND D.REQ_ID=A.REQ_ID)  
314
)  
315
OR  
316
(  
317
@p_REQ_TYPE=0 AND NOT EXISTS(SELECT D.REQDT_ID FROM dbo.PL_REQUEST_DOC_DT D WHERE D.REQDT_TYPE='O' AND D.REQ_ID=A.REQ_ID)  
318
)  
319
)  
320
 
321
 
322
AND PLRP.ROLE_USER IN (SELECT ROLE_ID FROM @TABLE_ROLE) AND (  
323
(PLRP.PROCESS_ID='DVDC' AND PLRP.BRANCH_ID=@p_BRANCH_LOGIN AND (PLRP.DEP_ID=@DEP_ID OR PLRP.DEP_ID IS NULL OR PLRP.DEP_ID=''))  
324
OR ( PLRP.DVDM_ID IN (SELECT DVDM_ID FROM @DVDM_ID))  
325
OR  
326
( (PLRP.DVDM_ID ='' OR PLRP.DVDM_ID IS NULL) AND (PLRP.BRANCH_ID IS NULL OR PLRP.BRANCH_ID=''))  
327
)  
328
AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR)  
329
AND (PLRP.IS_HAS_CHILD=0 OR PLRP.IS_HAS_CHILD IS NULL)  
330
AND (( @p_AUTH_STATUS='A' AND PLRP.STATUS='P') OR( @p_AUTH_STATUS='U' AND (PLRP.STATUS='C')) OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')  
331
AND(@p_FR_DATE IS NULL OR CAST(A.REQ_DT AS DATE) >= CAST(@p_FR_DATE AS DATE))  
332
AND(@p_TO_DATE IS NULL OR CAST(A.REQ_DT AS DATE) <= CAST(@p_TO_DATE AS DATE))  
333
AND(  
334
(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) LIKE '%' + @p_NGUOIXULY + '%' OR @p_NGUOIXULY IS NULL OR @p_NGUOIXULY = '')  
335
OR  
336
(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',1) LIKE '%' + @p_NGUOIXULY + '%' OR @p_NGUOIXULY IS NULL OR @p_NGUOIXULY = '')  
337
)  
338
 
339
--AND (A.BRANCH_ID = @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')  
340
--AND (A.DEP_ID = @p_DEP_ID OR @p_DEP_ID IS NULL OR @p_DEP_ID = '')  
341
 
342
ORDER BY A.CREATE_DT DESC  
343
 
344
END  
345
ELSE IF(@p_TYPE='TFJOB')  
346
BEGIN  
347
 
348
SELECT A.REQ_ID,A.REQ_CODE,A.REQ_NAME,A.REQ_DT,A.REQ_TYPE,A.REQ_CONTENT, A.REQ_REASON,A.BRANCH_ID,  
349
A.TOTAL_AMT AS TOTAL_AMT,A.NOTES, A.RECORD_STATUS,A.MAKER_ID,A.CREATE_DT,A.AUTH_STATUS,A.CHECKER_ID,  
350
 
351
UDV.TLFullName AS CHECKER_NAME_DV,  
352
 
353
A.APPROVE_DT,  
354
A.PROCESS_ID,  
355
D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME_DV,  
356
CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt'  
357
ELSE N'Chờ duyệt' END AS AUTH_STATUS_NAME,  
358
G.BRANCH_CODE,  
359
G.BRANCH_NAME,  
360
UP.TLFullName AS CHECKER_NAME_PROCESS,  
361
RP.APPROVE_DT AS APPROVE_DT_PROCESS,  
362
UC.TLFullName AS MAKER_NAME,  
363
RPN.PROCESS_ID AS PROCESS_ID_NEXT,  
364
RP.ROLE_USER,  
365
RP.NOTES AS PROCESS_STATUS ,  
366
RPN.NOTES AS PROCESS_STATUS_NEXT,  
367
A.DVDM_APP_ID,  
368
CD.DVDM_NAME AS DVDM_APP_NAME,  
369
A.REQ_PARENT_ID,  
370
PARENT.REQ_NAME AS REQ_PARENT_NAME,  
371
PARENT.REQ_CODE AS REQ_PARENT_CODE,  
372
PARENT.TOTAL_AMT AS REQ_PARENT_AMT,  
373
A.BRANCH_FEE,  
374
A.DEP_ID,  
375
A.DEP_FEE,  
376
DEP.DEP_NAME,  
377
DEP.DEP_CODE,  
378
BF.BRANCH_NAME AS BRANCH_FEE_NAME,  
379
BF.BRANCH_CODE AS BRANCH_FEE_CODE,  
380
DF.DEP_NAME AS DEP_FEE_NAME,  
381
DF.DEP_CODE AS DEP_FEE_CODE,  
382
'' AS BRANCH_DEP,  
383
'' AS BRANCH_DEP_FEE,  
384
RPC.TYPE_JOB AS TYPE_JOB,  
385
RPC.TLNAME AS USER_JOB,  
386
TU.TLFullName AS USER_JOB_NAME,  
387
TFM.TLNANME AS TRANSFER_MAKER,  
388
RPC.TRANFER_DT AS TRANFER_DT ,  
389
RPC.MAKER_ID AS TRANSFER_MAKER_ID,  
390
A.EFFEC_DT,A.IS_BACKDAY,  
391
'' AS TYPE_JOB_XL,  
392
'' AS USER_JOB_XL,  
393
PLRP.ID AS REF_ID,  
394
RPN.STATUS AS STATUS_NEXT,  
395
PLRP.STATUS AS STATUS_CURR,  
396
RPC.STATUS_JOB AS STATUS_JOB,  
397
A.BRANCH_CREATE,  
398
A.DEP_CREATE,  
399
A.REQ_LINE,  
400
A.TC_NOTES,  
401
A.SIGN_USER,  
402
TL.TLFULLNAME AS SIGN_USER_NAME,  
403
A.KT_NOTES,  
404
A.IS_CHECKALL,  
405
A.BASED_CONTENT,  
406
'' AS IS_TRANSFER,  
407
--NGUOI XU LY  
408
dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) AS NGUOIXULY  
409
 
410
FROM PL_REQUEST_DOC A  
411
INNER JOIN dbo.PL_REQUEST_PROCESS PLRP ON PLRP.REQ_ID=A.REQ_ID AND PLRP.STATUS = 'C' AND PLRP.IS_HAS_CHILD=1  
412
LEFT JOIN dbo.PL_REQUEST_PROCESS RPN  
413
ON RPN.ID IN (SELECT TOP 1 Temp.ID FROM dbo.PL_REQUEST_PROCESS Temp WHERE Temp.REQ_ID=A.REQ_ID AND (Temp.STATUS='C' OR Temp.STATUS='R') )  
414
LEFT JOIN dbo.PL_REQUEST_PROCESS RP ON RP.ID=(SELECT TOP 1 ID FROM PL_REQUEST_PROCESS WHERE PL_REQUEST_PROCESS.REQ_ID=A.REQ_ID AND PL_REQUEST_PROCESS.PROCESS_ID=RPN.PARENT_PROCESS_ID ORDER BY APPROVE_DT DESC)  
415
LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS  
416
LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID  
417
LEFT JOIN dbo.CM_DEPARTMENT DEP ON DEP.DEP_ID=A.DEP_ID  
418
 
419
LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE  
420
LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE  
421
LEFT JOIN dbo.TL_USER UC ON UC.TLNANME=A.MAKER_ID  
422
LEFT JOIN dbo.CM_PROCESS_STATUS PS ON PS.PROCESS_ID = A.PROCESS_ID  
423
LEFT JOIN dbo.CM_PROCESS_STATUS PSN ON PSN.PROCESS_ID = A.PROCESS_ID  
424
LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=A.DVDM_APP_ID  
425
LEFT JOIN dbo.PL_REQUEST_PROCESS_CHILD RPC ON RPC.REQ_ID=A.REQ_ID AND RPC.PROCESS_ID=PLRP.ID AND (RPC.STATUS_JOB='C' OR RPC.STATUS_JOB='R')  
426
 
427
LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID  
428
 
429
LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID  
430
LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=RPC.TLNAME  
431
LEFT JOIN dbo.TL_USER TFM ON TFM.TLNANME=RPC.MAKER_ID  
432
LEFT JOIN dbo.PL_REQUEST_DOC PARENT ON PARENT.REQ_ID=A.REQ_PARENT_ID  
433
LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME  
434
WHERE 1 = 1  
435
AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')  
436
AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '')  
437
AND (A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '')  
438
AND (A.REQ_REASON LIKE '%' + @p_REQ_REASON + '%' OR @p_REQ_REASON IS NULL OR @p_REQ_REASON = '')  
439
AND (A.TOTAL_AMT=@p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0)  
440
AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')  
441
AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')  
442
AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')  
443
AND (DATEDIFF(DAY,A.CREATE_DT , CAST(@p_CREATE_DT AS DATE)) = 0 OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')  
444
 
445
AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')  
446
AND (DATEDIFF(DAY,A.APPROVE_DT , CAST(@p_CREATE_DT AS DATE)) = 0 OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')  
447
AND (DATEDIFF(DAY,A.REQ_DT , CAST(@p_REQ_DT AS DATE)) = 0 OR @p_REQ_DT IS NULL OR @p_REQ_DT = '')  
448
AND (A.REQ_TYPE = @p_REQ_TYPE OR @p_REQ_TYPE IS NULL OR @p_REQ_TYPE =-1)  
449
--AND (@p_RECEIVE_BRANCH IS NULL OR A.PO_ID IN (SELECT PO_ID FROM TR_PO_DETAIL WHERE RECEIVE_BRANCH=@p_RECEIVE_BRANCH))  
450
AND A.RECORD_STATUS = '1'  
451
 
452
 
453
AND(  
454
@p_REQ_TYPE = -1 OR @p_REQ_TYPE IS NULL  
455
OR  
456
(  
457
@p_REQ_TYPE=1 AND EXISTS(SELECT D.REQDT_ID FROM dbo.PL_REQUEST_DOC_DT D WHERE D.REQDT_TYPE='O' AND D.REQ_ID=A.REQ_ID)  
458
)  
459
OR  
460
(  
461
@p_REQ_TYPE=0 AND NOT EXISTS(SELECT D.REQDT_ID FROM dbo.PL_REQUEST_DOC_DT D WHERE D.REQDT_TYPE='O' AND D.REQ_ID=A.REQ_ID)  
462
)  
463
)  
464
 
465
 
466
 
467
AND(( PLRP.ROLE_USER IN (SELECT ROLE_ID FROM @TABLE_ROLE) AND ((PLRP.DVDM_ID IN (SELECT DVDM_ID FROM @DVDM_ID) )  
468
OR (PLRP.PROCESS_ID='DVDC' AND PLRP.BRANCH_ID=@p_BRANCH_LOGIN AND (PLRP.DEP_ID=@DEP_ID OR PLRP.DEP_ID IS NULL OR PLRP.DEP_ID=''))  
469
OR ( (PLRP.DVDM_ID ='' OR PLRP.DVDM_ID IS NULL) AND (PLRP.BRANCH_ID IS NULL OR PLRP.BRANCH_ID=''))  
470
)) OR (EXISTS(SELECT ID FROM dbo.PL_REQUEST_PROCESS_CHILD WHERE TLNAME=@p_TLNAME_USER AND TYPE_JOB='KS' AND PL_REQUEST_PROCESS_CHILD.PROCESS_ID=PLRP.ID) ) )  
471
AND(@p_FR_DATE IS NULL OR CAST(A.REQ_DT AS DATE) >= CAST(@p_FR_DATE AS DATE))  
472
AND(@p_TO_DATE IS NULL OR CAST(A.REQ_DT AS DATE) <= CAST(@p_TO_DATE AS DATE))  
473
AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR)  
474
AND (( @p_AUTH_STATUS='A' AND PLRP.STATUS='P') OR( @p_AUTH_STATUS='U' AND (PLRP.STATUS='C')) OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')  
475
AND (NOT EXISTS(SELECT ID FROM dbo.PL_REQUEST_PROCESS_CHILD WHERE PL_REQUEST_PROCESS_CHILD.PROCESS_ID=PLRP.ID AND PL_REQUEST_PROCESS_CHILD.STATUS_JOB='C' AND PL_REQUEST_PROCESS_CHILD.TYPE_JOB='TP'))  
476
AND (  
477
((RPC.REQ_ID IS NOT NULL OR RPC.REQ_ID <> '') AND @p_IS_TRANSFER = 'Y')  
478
OR ((RPC.REQ_ID IS NULL OR RPC.REQ_ID = '') AND @p_IS_TRANSFER = 'N')  
479
OR @p_IS_TRANSFER = '' OR @p_IS_TRANSFER IS NULL  
480
)  
481
 
482
AND(  
483
(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) LIKE '%' + @p_NGUOIXULY + '%' OR @p_NGUOIXULY IS NULL OR @p_NGUOIXULY = '')  
484
OR  
485
(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',1) LIKE '%' + @p_NGUOIXULY + '%' OR @p_NGUOIXULY IS NULL OR @p_NGUOIXULY = '')  
486
)  
487
 
488
--AND (A.BRANCH_ID = @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')  
489
--AND (A.DEP_ID = @p_DEP_ID OR @p_DEP_ID IS NULL OR @p_DEP_ID = '')  
490
 
491
 
492
ORDER BY A.CREATE_DT DESC  
493
END  
494
 
495
ELSE IF(@p_TYPE='XLTT')  
496
BEGIN  
497
 
498
SELECT A.REQ_ID,A.REQ_CODE,A.REQ_NAME,A.REQ_DT,A.REQ_TYPE,A.REQ_CONTENT, A.REQ_REASON,A.BRANCH_ID,  
499
A.TOTAL_AMT AS TOTAL_AMT,A.NOTES, A.RECORD_STATUS,A.MAKER_ID,A.CREATE_DT,A.AUTH_STATUS,A.CHECKER_ID,  
500
 
501
UDV.TLFullName AS CHECKER_NAME_DV,  
502
 
503
A.APPROVE_DT,  
504
A.PROCESS_ID,  
505
D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME_DV,  
506
CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt'  
507
ELSE N'Chờ duyệt' END AS AUTH_STATUS_NAME,  
508
G.BRANCH_CODE,  
509
G.BRANCH_NAME,  
510
UP.TLFullName AS CHECKER_NAME_PROCESS,  
511
RP.APPROVE_DT AS APPROVE_DT_PROCESS,  
512
UC.TLFullName AS MAKER_NAME,  
513
RPN.PROCESS_ID AS PROCESS_ID_NEXT,  
514
RPN.ROLE_USER,  
515
RP.NOTES AS PROCESS_STATUS ,  
516
RPN.NOTES AS PROCESS_STATUS_NEXT,  
517
A.DVDM_APP_ID,  
518
CD.DVDM_NAME AS DVDM_APP_NAME,  
519
A.REQ_PARENT_ID,  
520
PARENT.REQ_NAME AS REQ_PARENT_NAME,  
521
PARENT.REQ_CODE AS REQ_PARENT_CODE,  
522
PARENT.TOTAL_AMT AS REQ_PARENT_AMT,  
523
A.BRANCH_FEE,  
524
A.DEP_ID,  
525
A.DEP_FEE,  
526
DEP.DEP_NAME,  
527
DEP.DEP_CODE,  
528
BF.BRANCH_NAME AS BRANCH_FEE_NAME,  
529
BF.BRANCH_CODE AS BRANCH_FEE_CODE,  
530
DF.DEP_NAME AS DEP_FEE_NAME,  
531
DF.DEP_CODE AS DEP_FEE_CODE,  
532
'' AS BRANCH_DEP,  
533
'' AS BRANCH_DEP_FEE,  
534
RPC.TYPE_JOB AS TYPE_JOB,  
535
CASE WHEN @p_NGUOIXULY IS NOT NULL AND @p_NGUOIXULY <>'' THEN @p_TLNAME_USER
536
ELSE RPC.TLNAME END USER_JOB, 
537

    
538
TU.TLFullName AS USER_JOB_NAME,  
539
TFM.TLNANME AS TRANSFER_MAKER,  
540
RPC.TRANFER_DT AS TRANFER_DT ,  
541
RPC.MAKER_ID AS TRANSFER_MAKER_ID,  
542
A.EFFEC_DT,A.IS_BACKDAY,  
543
'' AS TYPE_JOB_XL,  
544
'' AS USER_JOB_XL,  
545
PLRP.ID AS REF_ID,  
546
RPN.STATUS AS STATUS_NEXT,  
547
PLRP.STATUS AS STATUS_CURR,  
548
RPC.STATUS_JOB AS STATUS_JOB,  
549
A.BRANCH_CREATE,  
550
A.DEP_CREATE,  
551
A.REQ_LINE,  
552
A.TC_NOTES,  
553
A.SIGN_USER, TL.TLFullName AS SIGN_USER_NAME,  
554
A.KT_NOTES,  
555
A.IS_CHECKALL,  
556
A.BASED_CONTENT,  
557
'' AS IS_TRANSFER,  
558
--NGUOI XU LY  
559
dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) AS NGUOIXULY  
560
 
561
FROM PL_REQUEST_DOC A  
562
INNER JOIN dbo.PL_REQUEST_PROCESS PLRP ON PLRP.REQ_ID=A.REQ_ID AND PLRP.STATUS <> 'U' AND PLRP.IS_HAS_CHILD=1  
563
LEFT JOIN dbo.PL_REQUEST_PROCESS RPN  
564
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') )  
565
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)  
566
LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS  
567
LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID  
568
LEFT JOIN dbo.CM_DEPARTMENT DEP ON DEP.DEP_ID=A.DEP_ID  
569
 
570
LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE  
571
LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE  
572
LEFT JOIN dbo.TL_USER UC ON UC.TLNANME=A.MAKER_ID  
573
LEFT JOIN dbo.CM_PROCESS_STATUS PS ON PS.PROCESS_ID = A.PROCESS_ID  
574
LEFT JOIN dbo.CM_PROCESS_STATUS PSN ON PSN.PROCESS_ID = A.PROCESS_ID  
575
LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=A.DVDM_APP_ID  
576
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')  
577
 
578
LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID  
579
 
580
LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID  
581
LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=RPC.TLNAME  
582
LEFT JOIN dbo.TL_USER TFM ON TFM.TLNANME=RPC.MAKER_ID  
583
LEFT JOIN dbo.PL_REQUEST_DOC PARENT ON PARENT.REQ_ID=A.REQ_PARENT_ID  
584
LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME  
585
WHERE 1 = 1  
586
AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')  
587
AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '')  
588
AND (A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '')  
589
AND (A.REQ_REASON LIKE '%' + @p_REQ_REASON + '%' OR @p_REQ_REASON IS NULL OR @p_REQ_REASON = '')  
590
AND (A.TOTAL_AMT=@p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0)  
591
AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')  
592
AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')  
593
AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')  
594
AND (DATEDIFF(DAY,A.CREATE_DT , CAST(@p_CREATE_DT AS DATE)) = 0 OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')  
595
 
596
AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')  
597
AND (DATEDIFF(DAY,A.APPROVE_DT , CAST(@p_CREATE_DT AS DATE)) = 0 OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')  
598
AND (DATEDIFF(DAY,A.REQ_DT , CAST(@p_REQ_DT AS DATE)) = 0 OR @p_REQ_DT IS NULL OR @p_REQ_DT = '')  
599
AND (A.REQ_TYPE = @p_REQ_TYPE OR @p_REQ_TYPE IS NULL OR @p_REQ_TYPE =-1)  
600
--AND (@p_RECEIVE_BRANCH IS NULL OR A.PO_ID IN (SELECT PO_ID FROM TR_PO_DETAIL WHERE RECEIVE_BRANCH=@p_RECEIVE_BRANCH))  
601
AND A.RECORD_STATUS = '1'  
602
 
603
 
604
AND(  
605
@p_REQ_TYPE = -1 OR @p_REQ_TYPE IS NULL  
606
OR  
607
(  
608
@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)  
609
)  
610
OR  
611
(  
612
@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)  
613
)  
614
)  
615
 
616
 
617
 
618
AND(( PLRP.ROLE_USER IN (SELECT ROLE_ID FROM @TABLE_ROLE) AND ((PLRP.DVDM_ID IN (SELECT DVDM_ID FROM @DVDM_ID) )  
619
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=''))  
620
OR ( (PLRP.DVDM_ID ='' OR PLRP.DVDM_ID IS NULL) AND ( PLRP.BRANCH_ID IS NULL OR PLRP.BRANCH_ID=''))  
621
)) OR (EXISTS(SELECT ID FROM dbo.PL_REQUEST_PROCESS_CHILD WHERE TLNAME=@p_TLNAME_USER AND PL_REQUEST_PROCESS_CHILD.PROCESS_ID=PLRP.ID) ))  
622
AND(@p_FR_DATE IS NULL OR CAST(A.REQ_DT AS DATE) >= CAST(@p_FR_DATE AS DATE))  
623
AND(@p_TO_DATE IS NULL OR CAST(A.REQ_DT AS DATE) <= CAST(@p_TO_DATE AS DATE))  
624
AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR)  
625
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 = '')  
626
 
627
AND(  
628
(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) LIKE '%' + @p_NGUOIXULY + '%' OR @p_NGUOIXULY IS NULL OR @p_NGUOIXULY = '')  
629
OR  
630
(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',1) LIKE '%' + @p_NGUOIXULY + '%' OR @p_NGUOIXULY IS NULL OR @p_NGUOIXULY = '')  
631
)  
632
 
633
--AND (A.BRANCH_ID = @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')  
634
--AND (A.DEP_ID = @p_DEP_ID OR @p_DEP_ID IS NULL OR @p_DEP_ID = '')  
635
 
636
 
637
ORDER BY A.CREATE_DT DESC  
638
END  
639
ELSE IF(@p_TYPE='DVKD_PARENT')  
640
BEGIN  
641
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,  
642
A.TOTAL_AMT AS TOTAL_AMT,A.NOTES, A.RECORD_STATUS,A.MAKER_ID,A.CREATE_DT,A.AUTH_STATUS,A.CHECKER_ID,  
643
UDV.TLFullName AS CHECKER_NAME_DV,  
644
A.APPROVE_DT,  
645
A.PROCESS_ID,  
646
D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME_DV,  
647
CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt'  
648
ELSE N'Chờ duyệt' END AS AUTH_STATUS_NAME,  
649
G.BRANCH_CODE,  
650
G.BRANCH_NAME,  
651
UP.TLFullName AS CHECKER_NAME_PROCESS,  
652
RP.APPROVE_DT AS APPROVE_DT_PROCESS,  
653
UC.TLFullName AS MAKER_NAME,  
654
RPN.PROCESS_ID AS PROCESS_ID_NEXT,  
655
RP.ROLE_USER,  
656
RP.NOTES AS PROCESS_STATUS ,  
657
RPN.NOTES AS PROCESS_STATUS_NEXT,  
658
A.DVDM_APP_ID,  
659
CD.DVDM_NAME AS DVDM_APP_NAME,  
660
A.REQ_PARENT_ID,  
661
PARENT.REQ_NAME AS REQ_PARENT_NAME,  
662
PARENT.REQ_CODE AS REQ_PARENT_CODE,  
663
PARENT.TOTAL_AMT AS REQ_PARENT_AMT,  
664
A.BRANCH_FEE,  
665
A.DEP_ID,  
666
A.DEP_FEE,  
667
DEP.DEP_NAME,  
668
DEP.DEP_CODE,  
669
BF.BRANCH_NAME AS BRANCH_FEE_NAME,  
670
BF.BRANCH_CODE AS BRANCH_FEE_CODE,  
671
DF.DEP_NAME AS DEP_FEE_NAME,  
672
DF.DEP_CODE AS DEP_FEE_CODE,  
673
'' AS BRANCH_DEP,  
674
'' AS BRANCH_DEP_FEE,  
675
 
676
 
677
 
678
'' AS TYPE_JOB,  
679
'' AS USER_JOB,  
680
'' AS USER_JOB_NAME,  
681
'' AS TRANSFER_MAKER,  
682
A.CREATE_DT AS TRANFER_DT ,  
683
'' AS TRANSFER_MAKER_ID,  
684
A.EFFEC_DT,A.IS_BACKDAY,  
685
'' AS TYPE_JOB_XL,  
686
'' AS USER_JOB_XL,  
687
RP.ID AS REF_ID,  
688
RPN.STATUS AS STATUS_NEXT,  
689
RP.STATUS AS STATUS_CURR,  
690
'' AS STATUS_JOB,  
691
A.BRANCH_CREATE,  
692
A.DEP_CREATE,  
693
A.REQ_LINE,  
694
A.TC_NOTES, A.SIGN_USER, TL.TLFullName AS SIGN_USER_NAME,  
695
A.KT_NOTES,  
696
A.IS_CHECKALL,  
697
A.BASED_CONTENT,  
698
'' AS IS_TRANSFER,  
699
--NGUOI XU LY  
700
dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) AS NGUOIXULY  
701
 
702
FROM PL_REQUEST_DOC A  
703
LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS  
704
LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID  
705
LEFT JOIN dbo.CM_DEPARTMENT DEP ON DEP.DEP_ID=A.DEP_ID  
706
 
707
LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE  
708
LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE  
709
 
710
LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID  
711
 
712
LEFT JOIN dbo.PL_REQUEST_PROCESS RPN  
713
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') )  
714
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)  
715
LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID  
716
LEFT JOIN dbo.TL_USER UC ON UC.TLNANME=A.MAKER_ID  
717
LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=A.DVDM_APP_ID  
718
LEFT JOIN dbo.PL_REQUEST_DOC PARENT ON PARENT.REQ_ID=A.REQ_PARENT_ID  
719
LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME  
720
WHERE 1 = 1  
721
 
722
AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')  
723
AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '')  
724
AND (A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '')  
725
AND (A.REQ_REASON LIKE '%' + @p_REQ_REASON + '%' OR @p_REQ_REASON IS NULL OR @p_REQ_REASON = '')  
726
AND (A.TOTAL_AMT=@p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0)  
727
AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')  
728
AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')  
729
AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')  
730
AND (DATEDIFF(DAY,A.CREATE_DT , CAST(@p_CREATE_DT AS DATE)) = 0 OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')  
731
 
732
AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')  
733
AND (DATEDIFF(DAY,A.APPROVE_DT , CAST(@p_CREATE_DT AS DATE)) = 0 OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')  
734
AND (DATEDIFF(DAY,A.REQ_DT , CAST(@p_REQ_DT AS DATE)) = 0 OR @p_REQ_DT IS NULL OR @p_REQ_DT = '')  
735
AND (A.REQ_TYPE = @p_REQ_TYPE OR @p_REQ_TYPE IS NULL OR @p_REQ_TYPE =-1)  
736
AND A.RECORD_STATUS = '1'  
737
 
738
AND(  
739
@p_REQ_TYPE = -1 OR @p_REQ_TYPE IS NULL  
740
OR  
741
(  
742
@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)  
743
)  
744
OR  
745
(  
746
@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)  
747
)  
748
)  
749
 
750
AND ( (A.BRANCH_CREATE = @p_BRANCH_LOGIN AND( A.DEP_CREATE=@DEP_ID OR @BRANCH_TYPE <>'HS')) OR A.IS_CHECKALL=1)  
751
AND A.PROCESS_ID='APPROVE'  
752
AND(@p_FR_DATE IS NULL OR CAST(A.REQ_DT AS DATE) >= CAST(@p_FR_DATE AS DATE))  
753
AND(@p_TO_DATE IS NULL OR CAST(A.REQ_DT AS DATE) <= CAST(@p_TO_DATE AS DATE))  
754
AND(@p_YEAR IS NULL OR @p_YEAR=0 OR YEAR(A.REQ_DT)=@p_YEAR)  
755
AND(A.REQ_PARENT_ID IS NULL OR A.REQ_PARENT_ID='')  
756
 
757
AND(  
758
(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) LIKE '%' + @p_NGUOIXULY + '%' OR @p_NGUOIXULY IS NULL OR @p_NGUOIXULY = '')  
759
OR  
760
(dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',1) LIKE '%' + @p_NGUOIXULY + '%' OR @p_NGUOIXULY IS NULL OR @p_NGUOIXULY = '')  
761
)  
762
 
763
--AND (A.BRANCH_ID = @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')  
764
--AND (A.DEP_ID = @p_DEP_ID OR @p_DEP_ID IS NULL OR @p_DEP_ID = '')  
765
 
766
 
767
ORDER BY A.CREATE_DT DESC  
768
 
769
END  
770
END