1
|
SET QUOTED_IDENTIFIER ON
|
2
|
SET ANSI_NULLS ON
|
3
|
GO
|
4
|
|
5
|
ALTER PROCEDURE dbo.TR_REQUEST_DOC_Search
|
6
|
@p_REQ_ID varchar(15) = NULL,
|
7
|
@p_REQ_CODE nvarchar(100) = NULL,
|
8
|
@p_REQ_NAME nvarchar(200) = NULL,
|
9
|
@p_REQ_DT VARCHAR(20) = NULL,
|
10
|
@p_REQ_TYPE varchar(20) = NULL,
|
11
|
@p_REQ_CONTENT NVARCHAR(1000)=NULL,
|
12
|
@p_CONTRACT_ID varchar(15) = NULL,
|
13
|
@p_SUP_ID varchar(15) = NULL,
|
14
|
@p_SUP_NAME nvarchar(200) = NULL,
|
15
|
@p_SUP_ADDR nvarchar(200) = NULL,
|
16
|
@p_TOTAL_AMT decimal = NULL,
|
17
|
@p_NOTES nvarchar(1000) = NULL,
|
18
|
@p_RECORD_STATUS varchar(1) = NULL,
|
19
|
@p_MAKER_ID NVARCHAR(100) = NULL,
|
20
|
@p_CREATE_DT VARCHAR(20) = NULL,
|
21
|
@p_AUTH_STATUS varchar(50) = NULL,
|
22
|
@p_CHECKER_ID VARCHAR(100) = NULL,
|
23
|
@p_APPROVE_DT VARCHAR(20) = NULL,
|
24
|
@p_CONTRACT_CODE VARCHAR(15) = NULL,
|
25
|
@p_RECEIVE_BRANCH VARCHAR(15) = NULL,
|
26
|
@p_USERNAME VARCHAR(100) = NULL,
|
27
|
@p_BRANCH_ID VARCHAR(15)=NULL,
|
28
|
@p_DEP_ID VARCHAR(15)=NULL,
|
29
|
@p_STATUS VARCHAR(15)=NULL,
|
30
|
@p_TOP INT = 10,
|
31
|
@p_DVKD_MANAGE_APP_FROM VARCHAR(20) = NULL,
|
32
|
@p_DVKD_MANAGE_APP_TO VARCHAR(20) = NULL,
|
33
|
@p_REGION_ID varchar(15) = NULL,
|
34
|
@p_LIST_CONTRACT_CODE VARCHAR(MAX) = NULL,
|
35
|
@p_LIST_MSTT VARCHAR(MAX) = NULL
|
36
|
|
37
|
|
38
|
AS
|
39
|
BEGIN -- PAGING
|
40
|
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
|
41
|
DECLARE @DEP_ID VARCHAR(20),@BRANCH_ID VARCHAR(20)
|
42
|
DECLARE @ROLE_LOGIN TABLE(ROLE_USER VARCHAR(20))
|
43
|
INSERT INTO @ROLE_LOGIN SELECT DisplayName AS ROLE_USER FROM AbpRoles WHERE Id IN (SELECT A.RoleId FROM AbpUserRoles A
|
44
|
LEFT JOIN TL_USER B ON A.UserId = B.ID
|
45
|
WHERE B.TLNANME = @p_USERNAME)
|
46
|
|
47
|
SET @DEP_ID= (SELECT DEP_ID FROM dbo.TL_USER WHERE TLNANME=@p_USERNAME)
|
48
|
SET @BRANCH_ID= (SELECT TLSUBBRID FROM dbo.TL_USER WHERE TLNANME=@p_USERNAME)
|
49
|
DECLARE @lstCOST TABLE
|
50
|
(
|
51
|
COST_ID VARCHAR(20)
|
52
|
)
|
53
|
INSERT INTO @lstCOST
|
54
|
SELECT COST_ID FROM dbo.CM_COSTCENTER_DT WHERE BRANCH_ID=@BRANCH_ID AND DEP_ID=@DEP_ID
|
55
|
-- TienLee 11/14/21 --
|
56
|
DECLARE @REQUEST_DOC_DT_TABLE_CC TABLE
|
57
|
(
|
58
|
CONTRACT_CODE VARCHAR(50) NULL
|
59
|
)
|
60
|
DECLARE @REQUEST_DOC_DT_TABLE_M TABLE
|
61
|
(
|
62
|
MSTT VARCHAR(15) NULL
|
63
|
)
|
64
|
IF @p_LIST_CONTRACT_CODE IS NOT NULL OR @p_LIST_CONTRACT_CODE = ''
|
65
|
BEGIN
|
66
|
DECLARE @id VARCHAR(15)
|
67
|
|
68
|
DECLARE setTable CURSOR FOR
|
69
|
SELECT VALUE AS 'CONTRACT_CODE' FROM dbo.wsiSplit(@p_LIST_CONTRACT_CODE, ',')
|
70
|
|
71
|
OPEN setTable
|
72
|
|
73
|
FETCH NEXT FROM setTable
|
74
|
INTO @id
|
75
|
|
76
|
WHILE @@FETCH_STATUS = 0
|
77
|
BEGIN
|
78
|
IF(@id != 'null')
|
79
|
BEGIN
|
80
|
INSERT INTO @REQUEST_DOC_DT_TABLE_CC(CONTRACT_CODE)
|
81
|
VALUES(@id)
|
82
|
END
|
83
|
FETCH NEXT FROM setTable
|
84
|
INTO @id
|
85
|
END
|
86
|
|
87
|
CLOSE setTable
|
88
|
DEALLOCATE setTable
|
89
|
END
|
90
|
--
|
91
|
IF @p_LIST_MSTT IS NOT NULL OR @p_LIST_MSTT = ''
|
92
|
BEGIN
|
93
|
DECLARE @id_ VARCHAR(15)
|
94
|
|
95
|
DECLARE setTable_ CURSOR FOR
|
96
|
SELECT VALUE AS 'MSTT' FROM dbo.wsiSplit(@p_LIST_MSTT, ',')
|
97
|
|
98
|
OPEN setTable_
|
99
|
|
100
|
FETCH NEXT FROM setTable_
|
101
|
INTO @id_
|
102
|
|
103
|
WHILE @@FETCH_STATUS = 0
|
104
|
BEGIN
|
105
|
IF(@id_ != 'null')
|
106
|
BEGIN
|
107
|
INSERT INTO @REQUEST_DOC_DT_TABLE_M(MSTT)
|
108
|
VALUES(@id_)
|
109
|
END
|
110
|
FETCH NEXT FROM setTable_
|
111
|
INTO @id_
|
112
|
END
|
113
|
|
114
|
CLOSE setTable_
|
115
|
DEALLOCATE setTable_
|
116
|
END
|
117
|
|
118
|
DECLARE @TempSTATUS TABLE
|
119
|
(
|
120
|
STATUS VARCHAR(20)
|
121
|
)
|
122
|
|
123
|
IF(EXISTS(SELECT ROLE_USER FROM @ROLE_LOGIN WHERE ROLE_USER ='QLTS' ))
|
124
|
BEGIN
|
125
|
INSERT INTO @TempSTATUS VALUES('DVKD')
|
126
|
INSERT INTO @TempSTATUS VALUES('DVCM')
|
127
|
END
|
128
|
ELSE IF(EXISTS(SELECT ROLE_USER FROM @ROLE_LOGIN WHERE ROLE_USER ='DVCM' ))
|
129
|
BEGIN
|
130
|
INSERT INTO @TempSTATUS VALUES('QLTS_N')
|
131
|
--INSERT INTO @TempSTATUS VALUES('DVCM')
|
132
|
END
|
133
|
--ELSE IF(EXISTS(SELECT ROLE_USER FROM @ROLE_LOGIN WHERE ROLE_USER ='CVMS' ))
|
134
|
--BEGIN
|
135
|
-- INSERT INTO @TempSTATUS VALUES('QLTS_N')
|
136
|
-- INSERT INTO @TempSTATUS VALUES('QLTS_XL')
|
137
|
-- --INSERT INTO @TempSTATUS VALUES('DVCM')
|
138
|
--END
|
139
|
|
140
|
DECLARE @lstBRANCH_DEP TABLE
|
141
|
(
|
142
|
BRANCH_ID VARCHAR(20),
|
143
|
DEP_ID VARCHAR(20)
|
144
|
)
|
145
|
|
146
|
|
147
|
IF(NOT EXISTS(SELECT ROLE_USER FROM @ROLE_LOGIN WHERE ROLE_USER ='DVCM' OR ROLE_USER='CVMS_TBP' ))
|
148
|
BEGIN
|
149
|
INSERT INTO @lstBRANCH_DEP
|
150
|
(BRANCH_ID,DEP_ID)
|
151
|
SELECT TLSUBBRID,DEP_ID FROM dbo.TL_USER WHERE TLNANME=@p_USERNAME
|
152
|
|
153
|
INSERT INTO @lstBRANCH_DEP
|
154
|
(BRANCH_ID,DEP_ID)
|
155
|
SELECT BRANCH_ID,DEP_ID FROM dbo.CM_KHOI_DT
|
156
|
WHERE KHOI_ID IN (SELECT KHOI_ID FROM dbo.CM_KHOI_DT WHERE DEP_ID= @DEP_ID AND BRANCH_ID=@BRANCH_ID)
|
157
|
END
|
158
|
|
159
|
|
160
|
|
161
|
DECLARE @tbDep TABLE(DEP_ID VARCHAR(20))
|
162
|
INSERT INTO @tbDep
|
163
|
SELECT ckd.DEP_ID FROM CM_DEPARTMENT cd
|
164
|
LEFT JOIN CM_KHOI ck ON cd.DEP_CODE=ck.KHOI_CODE
|
165
|
LEFT JOIN CM_KHOI_DT ckd ON ck.KHOI_ID = ckd.KHOI_ID
|
166
|
WHERE cd.DEP_ID=@p_DEP_ID
|
167
|
|
168
|
|
169
|
|
170
|
|
171
|
|
172
|
IF((EXISTS(SELECT * FROM PL_CONFIG_DATA WHERE TYPE_DATA = 'REQUEST_DOC_SLAS' AND REF_ID IN (SELECT ROLE_USER FROM @ROLE_LOGIN))))
|
173
|
BEGIN
|
174
|
IF(@P_TOP IS NULL OR @P_TOP = '' OR @P_TOP = 0)
|
175
|
BEGIN
|
176
|
-- PAGING BEGIN
|
177
|
SELECT A.REQ_ID,
|
178
|
A.REQ_CODE,
|
179
|
A.REQ_NAME,
|
180
|
ISNULL(PRP.APPROVE_DT,PRP2.APPROVE_DT) AS REQ_DT,
|
181
|
A.REQ_TYPE,
|
182
|
A.REQ_CONTENT,
|
183
|
A.CONTRACT_ID,
|
184
|
A.SUP_ID,
|
185
|
A.SUP_NAME,
|
186
|
A.SUP_ADDR,
|
187
|
A.TOTAL_AMT,
|
188
|
A.NOTES,
|
189
|
A.RECORD_STATUS,
|
190
|
A.MAKER_ID,
|
191
|
A.CREATE_DT,
|
192
|
A.AUTH_STATUS,
|
193
|
A.CHECKER_ID,
|
194
|
A.APPROVE_DT,
|
195
|
A.BRANCH_ID,
|
196
|
A.STATUS,
|
197
|
A.DEP_ID,
|
198
|
A.HO_NOTES,C.CONTRACT_CODE, E.SUP_CODE AS S_SUP_CODE, E.SUP_NAME AS S_SUP_NAME, E.ADDR AS S_ADDR, K.CONTENT AS REQ_TYPE_NAME,
|
199
|
CASE
|
200
|
WHEN A.STATUS='DONE' AND A.BRANCH_ID='DV0001' AND KHOI.KHOI_CODE <>'D2200' THEN N'Đợi PMS trình Ban điều hàng theo đúng quy định'
|
201
|
WHEN A.STATUS='DONE' AND( A.BRANCH_ID <> 'DV0001' OR KHOI.KHOI_CODE='D2200') THEN N'Phiếu đang chuyển trình Ban điều hành.' -- NguyenTD: Fix theo yêu cầu chị Loan
|
202
|
|
203
|
|
204
|
ELSE ISNULL(J.CONTENT, I.CONTENT)
|
205
|
-- ELSE
|
206
|
END
|
207
|
|
208
|
AS REQ_STATUS_NAME,
|
209
|
F.CONTRACT_CODE AS C_CONTRACT_CODE, F.[CONTRACT_NAME] AS C_CONTRACT_NAME, F.TOTAL_AMT AS C_TOTAL_AMT ,
|
210
|
ISNULL((SELECT SUM(TR_REQ.TOTAL_AMT) FROM TR_REQUEST_DOC TR_REQ WHERE TR_REQ.CONTRACT_ID = A.CONTRACT_ID),0) AS C_DONE_AMT, @p_RECEIVE_BRANCH AS RECEIVE_BRANCH,G.BRANCH_CODE,G.BRANCH_NAME, PRP.DVKD_USER_APP,
|
211
|
--CASE WHEN RQT.STATUS = 'C' OR RQT.STATUS = 'U' THEN N'Chờ duyệt'
|
212
|
--ELSE N'Đã duyệt' END AS AUTH_STATUS_NAME
|
213
|
D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME
|
214
|
--D.AUTH_STATUS_NAME
|
215
|
-- SELECT END
|
216
|
FROM TR_REQUEST_DOC A
|
217
|
|
218
|
LEFT JOIN TR_CONTRACT C ON A.CONTRACT_ID = C.CONTRACT_ID
|
219
|
LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
|
220
|
LEFT JOIN CM_SUPPLIER E ON E.SUP_ID= A.SUP_ID
|
221
|
LEFT JOIN TR_CONTRACT F ON F.CONTRACT_ID = A.CONTRACT_ID --AND A.CONTRACT_ID IS NOT NULL
|
222
|
LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID
|
223
|
LEFT JOIN CM_ALLCODE K ON K.CDNAME = 'TRREQTYPE' AND K.CDVAL = A.REQ_TYPE
|
224
|
LEFT JOIN CM_ALLCODE I ON I.CDNAME = 'TRREQSTATUS' AND I.CDVAL = A.[STATUS]
|
225
|
LEFT JOIN CM_ALLCODE J ON J.CDNAME='TRREQAFTER' AND J.CDVAL=A.AFTER_APPROVE
|
226
|
LEFT JOIN (
|
227
|
SELECT CK.KHOI_ID,CK.KHOI_CODE,ckd.DEP_ID FROM CM_KHOI ck
|
228
|
LEFT JOIN CM_KHOI_DT ckd ON ck.KHOI_ID = ckd.KHOI_ID
|
229
|
) KHOI ON KHOI.DEP_ID=A.DEP_ID
|
230
|
|
231
|
|
232
|
LEFT JOIN dbo.PL_REQUEST_PROCESS PRP ON PRP.REQ_ID=A.REQ_ID AND (PRP.ID = (SELECT TOP (1) ID FROM PL_REQUEST_PROCESS WHERE PROCESS_ID IN (SELECT STATUS FROM @TempSTATUS ) AND PL_REQUEST_PROCESS.REQ_ID=A.REQ_ID ORDER BY ID DESC)
|
233
|
|
234
|
OR ( NOT EXISTS(SELECT STATUS FROM @TempSTATUS) AND PRP.PROCESS_ID IN (SELECT T.PARENT_PROCESS_ID FROM dbo.PL_REQUEST_PROCESS T WHERE T.REQ_ID=A.REQ_ID AND T.PROCESS_ID=@p_STATUS) OR ((PRP.PROCESS_ID='DVKD_XN' ) AND @p_STATUS='DONE')))
|
235
|
|
236
|
|
237
|
--LEFT JOIN dbo.CM_AUTH_STATUS AUTH ON AUTH.AUTH_STATUS = A.AUTH_STATUS
|
238
|
--LEFT JOIN dbo.PL_REQUEST_PROCESS RQT ON RQT.REQ_ID = A.REQ_ID
|
239
|
--AND (((RQT.PROCESS_ID = A.STATUS AND RQT.ROLE_USER IN (SELECT ROLE_USER FROM @ROLE_LOGIN) AND (@p_USERNAME = RQT.DVKD_USER_APP OR (RQT.DVKD_USER_APP IS NULL OR RQT.DVKD_USER_APP = ''))) OR (RQT.STATUS = 'U' AND RQT.PROCESS_ID = 'DVKD')) OR (RQT.PROCESS_ID = A.STATUS AND EXISTS(SELECT * FROM PL_CONFIG_DATA WHERE TYPE_DATA = 'REQUEST_DOC_ROLE' AND REF_ID IN (SELECT ROLE_USER FROM @ROLE_LOGIN))))
|
240
|
--LEFT JOIN dbo.PL_REQUEST_PROCESS PRP1 ON PRP1.REQ_ID = A.REQ_ID AND PRP1.PROCESS_ID = 'CVMS_N'
|
241
|
LEFT JOIN dbo.PL_REQUEST_PROCESS PRP2 ON PRP2.REQ_ID = A.REQ_ID AND PRP2.PROCESS_ID = 'DVKD'
|
242
|
|
243
|
LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=A.MAKER_ID
|
244
|
WHERE 1 = 1
|
245
|
AND (G.REGION_ID LIKE '%' + @p_REGION_ID + '%' OR @p_REGION_ID IS NULL OR @p_REGION_ID = '')
|
246
|
AND (CONVERT(DATETIME,@p_DVKD_MANAGE_APP_FROM,103) <= CAST (PRP2.RECEPTION_DT AS DATE) OR @p_DVKD_MANAGE_APP_FROM IS NULL OR @p_DVKD_MANAGE_APP_FROM = '')
|
247
|
AND (DATEADD(day,1,CONVERT(DATETIME,@p_DVKD_MANAGE_APP_TO,103)) > CAST (PRP2.RECEPTION_DT AS DATE) OR @p_DVKD_MANAGE_APP_TO IS NULL OR @p_DVKD_MANAGE_APP_TO = '')
|
248
|
|
249
|
--AND (((RQT.PROCESS_ID = A.STATUS AND RQT.ROLE_USER IN (SELECT ROLE_USER FROM @ROLE_LOGIN) AND (@p_USERNAME = RQT.DVKD_USER_APP OR (RQT.DVKD_USER_APP IS NULL OR RQT.DVKD_USER_APP = ''))) OR (RQT.STATUS = 'U' AND RQT.PROCESS_ID = 'DVKD')) OR EXISTS(SELECT * FROM PL_CONFIG_DATA WHERE TYPE_DATA = 'REQUEST_DOC_ROLE' AND REF_ID IN (SELECT ROLE_USER FROM @ROLE_LOGIN)))
|
250
|
--AND ((@p_AUTH_STATUS = 'U' AND (RQT.STATUS = 'C' OR RQT.STATUS = 'U')) OR (@p_AUTH_STATUS = 'A' AND (RQT.STATUS = 'P' OR RQT.STATUS IS NULL))OR (@p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = ''))
|
251
|
AND A.REQ_DT >='2021-09-01'
|
252
|
AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
|
253
|
AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '')
|
254
|
AND (A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '')
|
255
|
AND (A.TOTAL_AMT=@p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0)
|
256
|
--AND (A.REQ_NAME COLLATE Latin1_general_CI_AI Like N'%' + @p_REQ_NAME + N'%' COLLATE Latin1_general_CI_AI OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')
|
257
|
--AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')
|
258
|
AND (A.CONTRACT_ID LIKE '%' + @p_CONTRACT_ID + '%' OR @p_CONTRACT_ID IS NULL OR @p_CONTRACT_ID = '')
|
259
|
AND (A.SUP_ID LIKE '%' + @p_SUP_ID + '%' OR @p_SUP_ID IS NULL OR @p_SUP_ID = '')
|
260
|
AND (A.SUP_ADDR LIKE '%' + @p_SUP_ADDR + '%' OR @p_SUP_ADDR IS NULL OR @p_SUP_ADDR = '')
|
261
|
AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
|
262
|
|
263
|
AND (DATEDIFF(DAY,A.CREATE_DT , CONVERT(DATETIME,@p_CREATE_DT,103)) = 0 OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
|
264
|
--AND (A.AUTH_STATUS LIKE '%' + @p_AUTH_STATUS + '%' OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
|
265
|
AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
|
266
|
AND (DATEDIFF(DAY,A.APPROVE_DT , CONVERT(DATETIME,@p_APPROVE_DT,103)) = 0 OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')
|
267
|
AND (C.CONTRACT_CODE LIKE '%' + @P_CONTRACT_CODE + '%' OR @P_CONTRACT_CODE = '' OR @P_CONTRACT_CODE IS NULL)
|
268
|
AND (A.REQ_TYPE = @p_REQ_TYPE OR @p_REQ_TYPE IS NULL OR @p_REQ_TYPE =-1)
|
269
|
AND (A.STATUS = @p_STATUS OR @p_STATUS IS NULL OR @p_STATUS = '' OR @p_STATUS='WAITAPP' OR @p_STATUS='DONEAPP'
|
270
|
|
271
|
OR (@p_STATUS ='WAITPO' AND A.AUTH_STATUS='A' AND A.STATUS='APPROVE' AND NOT EXISTS (SELECT PO.PO_ID FROM dbo.TR_PO_MASTER PO WHERE PO.REQ_DOC_ID=A.REQ_ID))
|
272
|
|
273
|
OR (@p_STATUS ='CREATEDPO' AND A.AUTH_STATUS='A' AND EXISTS (SELECT PO.PO_ID FROM dbo.TR_PO_MASTER PO WHERE PO.REQ_DOC_ID=A.REQ_ID))
|
274
|
OR (@p_STATUS='WAITASS' AND A.AUTH_STATUS='A' AND A.STATUS='APPROVE' AND NOT EXISTS(SELECT ADDNEW_ID FROM dbo.ASS_ADDNEW_PO ASSPO
|
275
|
INNER JOIN dbo.TR_PO_MASTER PM ON PM.PO_ID=ASSPO.PO_ID
|
276
|
WHERE PM.REQ_DOC_ID=A.REQ_ID))
|
277
|
OR (@p_STATUS='WAITASS_USE' AND A.AUTH_STATUS='A' AND A.STATUS='APPROVE' AND NOT EXISTS(SELECT ASS_USE.USER_MASTER_ID FROM dbo.ASS_USE_MULTI_MASTER ASS_USE
|
278
|
|
279
|
WHERE ASS_USE.REQ_ID=A.REQ_ID AND ASS_USE.AUTH_STATUS='A'))
|
280
|
OR (@p_STATUS = 'QLTS_N' AND A.STATUS LIKE '%QLTS%')
|
281
|
OR (@p_STATUS = 'DVCM_XN' AND EXISTS(SELECT ID FROM dbo.PL_REQUEST_PROCESS PRC WHERE PRC.REQ_ID=A.REQ_ID AND PRC.PROCESS_ID='DVCM' AND PRC.STATUS='P'))
|
282
|
OR(@p_STATUS='IN_PROCESS' AND EXISTS(SELECT ID FROM PL_REQUEST_PROCESS PRC2 WHERE PRC2.REQ_ID=A.REQ_ID AND PRC2.STATUS='C'))
|
283
|
OR(@p_STATUS='CVMS_REJECT' AND EXISTS(SELECT * FROM dbo.PL_PROCESS PLR WHERE (PLR.PROCESS_DESC='Reject' OR PLR.PROCESS_DESC='REJECT_QLTS' OR PLR.PROCESS_DESC='REJECT_DVCM') AND PROCESS_ID='CVMS_N' AND PLR.REQ_ID=A.REQ_ID))
|
284
|
)
|
285
|
|
286
|
--AND (A.BRANCH_ID IN (SELECT BRANCH_ID FROM CM_BRANCH_GETCHILDID(@p_BRANCH_ID)))
|
287
|
--AND (@p_RECEIVE_BRANCH IS NULL OR A.PO_ID IN (SELECT PO_ID FROM TR_PO_DETAIL WHERE RECEIVE_BRANCH=@p_RECEIVE_BRANCH))
|
288
|
--AND (@p_RECEIVE_BRANCH IS NULL OR @p_RECEIVE_BRANCH = '' OR EXISTS(SELECT REQ_DOC_ID FROM TR_REQUEST_DOC_DT WHERE RECEIVE_BRANCH=@p_RECEIVE_BRANCH AND REQ_DOC_ID = A.REQ_ID))
|
289
|
AND A.RECORD_STATUS = '1'
|
290
|
AND (@p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '' OR A.BRANCH_ID = @p_BRANCH_ID)
|
291
|
AND (@p_DEP_ID IS NULL OR @p_DEP_ID = '' OR A.DEP_ID IN (SELECT DEP_ID FROM @tbDep))
|
292
|
AND (A.REQ_NAME COLLATE Latin1_general_CI_AI Like N'%' + @p_REQ_NAME + N'%' COLLATE Latin1_general_CI_AI OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')
|
293
|
AND( TU.TLFullName COLLATE Latin1_general_CI_AI Like N'%' + @p_MAKER_ID + N'%' COLLATE Latin1_general_CI_AI OR TU.TLNANME COLLATE Latin1_general_CI_AI Like N'%' + @p_MAKER_ID + N'%' COLLATE Latin1_general_CI_AI
|
294
|
OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
|
295
|
|
296
|
AND (EXISTS(SELECT * FROM TR_REQUEST_DOC_DT DTT
|
297
|
LEFT JOIN dbo.TR_CONTRACT TC ON TC.CONTRACT_ID=DTT.CONTRACT_ID
|
298
|
INNER JOIN @REQUEST_DOC_DT_TABLE_CC DT_1 ON DT_1.CONTRACT_CODE = ISNULL(TC.CONTRACT_CODE,DTT.CONTRACT_CODE)
|
299
|
WHERE DTT.REQ_DOC_ID = A.REQ_ID)
|
300
|
OR @p_LIST_CONTRACT_CODE IS NULL OR @p_LIST_CONTRACT_CODE = ''
|
301
|
)
|
302
|
AND (EXISTS(SELECT * FROM TR_REQUEST_DOC_DT DTT
|
303
|
INNER JOIN @REQUEST_DOC_DT_TABLE_M DT_1 ON DT_1.MSTT = DTT.MSTT
|
304
|
WHERE DTT.REQ_DOC_ID = A.REQ_ID)
|
305
|
OR @p_LIST_MSTT IS NULL OR @p_LIST_MSTT = ''
|
306
|
)
|
307
|
|
308
|
|
309
|
ORDER BY PRP.APPROVE_DT,A.REQ_DT DESC
|
310
|
-- PAGING END
|
311
|
END
|
312
|
ELSE
|
313
|
BEGIN
|
314
|
-- PAGING BEGIN
|
315
|
SELECT TOP(CONVERT(INT,@P_TOP)) A.REQ_ID,
|
316
|
A.REQ_CODE,
|
317
|
A.REQ_NAME,
|
318
|
ISNULL(PRP.APPROVE_DT,PRP2.APPROVE_DT) AS REQ_DT,
|
319
|
A.REQ_TYPE,
|
320
|
A.REQ_CONTENT,
|
321
|
A.CONTRACT_ID,
|
322
|
A.SUP_ID,
|
323
|
A.SUP_NAME,
|
324
|
A.SUP_ADDR,
|
325
|
A.TOTAL_AMT,
|
326
|
A.NOTES,
|
327
|
A.RECORD_STATUS,
|
328
|
A.MAKER_ID,
|
329
|
A.CREATE_DT,
|
330
|
A.AUTH_STATUS,
|
331
|
A.CHECKER_ID,
|
332
|
A.APPROVE_DT,
|
333
|
A.BRANCH_ID,
|
334
|
A.STATUS,
|
335
|
A.DEP_ID,
|
336
|
A.HO_NOTES,C.CONTRACT_CODE, E.SUP_CODE AS S_SUP_CODE, E.SUP_NAME AS S_SUP_NAME, E.ADDR AS S_ADDR, K.CONTENT AS REQ_TYPE_NAME,
|
337
|
CASE
|
338
|
WHEN A.STATUS='DONE' AND A.BRANCH_ID='DV0001' AND KHOI.KHOI_CODE <>'D2200' THEN N'Đợi PMS trình Ban điều hàng theo đúng quy định'
|
339
|
WHEN A.STATUS='DONE' AND( A.BRANCH_ID <> 'DV0001' OR KHOI.KHOI_CODE='D2200') THEN N'Phiếu đang chuyển trình Ban điều hành.' -- NguyenTD: Fix theo yêu cầu chị Loan
|
340
|
|
341
|
|
342
|
ELSE ISNULL(J.CONTENT, I.CONTENT)
|
343
|
-- ELSE
|
344
|
END
|
345
|
|
346
|
AS REQ_STATUS_NAME,
|
347
|
F.CONTRACT_CODE AS C_CONTRACT_CODE, F.[CONTRACT_NAME] AS C_CONTRACT_NAME, F.TOTAL_AMT AS C_TOTAL_AMT ,
|
348
|
ISNULL((SELECT SUM(TR_REQ.TOTAL_AMT) FROM TR_REQUEST_DOC TR_REQ WHERE TR_REQ.CONTRACT_ID = A.CONTRACT_ID),0) AS C_DONE_AMT, @p_RECEIVE_BRANCH AS RECEIVE_BRANCH,G.BRANCH_CODE,G.BRANCH_NAME, PRP.DVKD_USER_APP,
|
349
|
--CASE WHEN RQT.STATUS = 'C' OR RQT.STATUS = 'U' THEN N'Chờ duyệt'
|
350
|
--ELSE N'Đã duyệt' END AS AUTH_STATUS_NAME
|
351
|
--RQT.STATUS AS TEST
|
352
|
D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME
|
353
|
--D.AUTH_STATUS_NAME
|
354
|
-- SELECT END
|
355
|
FROM TR_REQUEST_DOC A
|
356
|
|
357
|
LEFT JOIN TR_CONTRACT C ON A.CONTRACT_ID = C.CONTRACT_ID
|
358
|
LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
|
359
|
LEFT JOIN CM_SUPPLIER E ON E.SUP_ID= A.SUP_ID
|
360
|
LEFT JOIN TR_CONTRACT F ON F.CONTRACT_ID = A.CONTRACT_ID --AND A.CONTRACT_ID IS NOT NULL
|
361
|
LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID
|
362
|
LEFT JOIN CM_ALLCODE K ON K.CDNAME = 'TRREQTYPE' AND K.CDVAL = A.REQ_TYPE
|
363
|
LEFT JOIN CM_ALLCODE I ON I.CDNAME = 'TRREQSTATUS' AND I.CDVAL = A.[STATUS]
|
364
|
LEFT JOIN CM_ALLCODE J ON J.CDNAME='TRREQAFTER' AND J.CDVAL=A.AFTER_APPROVE
|
365
|
LEFT JOIN (
|
366
|
SELECT CK.KHOI_ID,CK.KHOI_CODE,ckd.DEP_ID FROM CM_KHOI ck
|
367
|
LEFT JOIN CM_KHOI_DT ckd ON ck.KHOI_ID = ckd.KHOI_ID
|
368
|
) KHOI ON KHOI.DEP_ID=A.DEP_ID
|
369
|
LEFT JOIN dbo.PL_REQUEST_PROCESS PRP ON PRP.REQ_ID=A.REQ_ID AND (PRP.ID = (SELECT TOP (1) ID FROM PL_REQUEST_PROCESS WHERE PROCESS_ID IN (SELECT STATUS FROM @TempSTATUS ) AND PL_REQUEST_PROCESS.REQ_ID=A.REQ_ID ORDER BY ID DESC)
|
370
|
|
371
|
OR ( NOT EXISTS(SELECT STATUS FROM @TempSTATUS) AND PRP.PROCESS_ID IN (SELECT T.PARENT_PROCESS_ID FROM dbo.PL_REQUEST_PROCESS T WHERE T.REQ_ID=A.REQ_ID AND T.PROCESS_ID=@p_STATUS) OR ((PRP.PROCESS_ID='DVKD_XN') AND @p_STATUS='DONE')))--LEFT JOIN dbo.CM_AUTH_STATUS AUTH ON AUTH.AUTH_STATUS = @p_AUTH_STATUS
|
372
|
--LEFT JOIN dbo.PL_REQUEST_PROCESS RQT ON RQT.REQ_ID = A.REQ_ID
|
373
|
--AND (((RQT.PROCESS_ID = A.STATUS AND RQT.ROLE_USER IN (SELECT ROLE_USER FROM @ROLE_LOGIN) AND (@p_USERNAME = RQT.DVKD_USER_APP OR (RQT.DVKD_USER_APP IS NULL OR RQT.DVKD_USER_APP = ''))) OR (RQT.STATUS = 'U' AND RQT.PROCESS_ID = 'DVKD')) OR (RQT.PROCESS_ID = A.STATUS AND EXISTS(SELECT * FROM PL_CONFIG_DATA WHERE TYPE_DATA = 'REQUEST_DOC_ROLE' AND REF_ID IN (SELECT ROLE_USER FROM @ROLE_LOGIN))))
|
374
|
--LEFT JOIN dbo.PL_REQUEST_PROCESS PRP1 ON PRP1.REQ_ID = A.REQ_ID AND PRP1.PROCESS_ID = 'CVMS_N'
|
375
|
LEFT JOIN dbo.PL_REQUEST_PROCESS PRP2 ON PRP2.REQ_ID = A.REQ_ID AND PRP2.PROCESS_ID = 'DVKD'
|
376
|
LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=A.MAKER_ID
|
377
|
WHERE 1 = 1
|
378
|
AND (G.REGION_ID LIKE '%' + @p_REGION_ID + '%' OR @p_REGION_ID IS NULL OR @p_REGION_ID = '')
|
379
|
AND (CONVERT(DATETIME,@p_DVKD_MANAGE_APP_FROM,103) <= CAST (PRP2.RECEPTION_DT AS DATE) OR @p_DVKD_MANAGE_APP_FROM IS NULL OR @p_DVKD_MANAGE_APP_FROM = '')
|
380
|
AND (DATEADD(day,1,CONVERT(DATETIME,@p_DVKD_MANAGE_APP_TO,103)) > CAST (PRP2.RECEPTION_DT AS DATE) OR @p_DVKD_MANAGE_APP_TO IS NULL OR @p_DVKD_MANAGE_APP_TO = '')
|
381
|
--AND (((RQT.PROCESS_ID = A.STATUS AND RQT.ROLE_USER IN (SELECT ROLE_USER FROM @ROLE_LOGIN) AND (@p_USERNAME = RQT.DVKD_USER_APP OR (RQT.DVKD_USER_APP IS NULL OR RQT.DVKD_USER_APP = ''))) OR (RQT.STATUS = 'U' AND RQT.PROCESS_ID = 'DVKD')) OR EXISTS(SELECT * FROM PL_CONFIG_DATA WHERE TYPE_DATA = 'REQUEST_DOC_ROLE' AND REF_ID IN (SELECT ROLE_USER FROM @ROLE_LOGIN)))
|
382
|
--AND ((@p_AUTH_STATUS = 'U' AND (RQT.STATUS = 'C' OR RQT.STATUS = 'U')) OR (@p_AUTH_STATUS = 'A' AND (RQT.STATUS = 'P' OR RQT.STATUS IS NULL))OR (@p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = ''))
|
383
|
AND A.REQ_DT >='2021-09-01'
|
384
|
--AND ((A.AUTH_STATUS LIKE '%' + @p_AUTH_STATUS + '%' OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '') )
|
385
|
AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
|
386
|
AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '')
|
387
|
AND (A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '')
|
388
|
AND (A.TOTAL_AMT=@p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0)
|
389
|
|
390
|
AND (A.CONTRACT_ID LIKE '%' + @p_CONTRACT_ID + '%' OR @p_CONTRACT_ID IS NULL OR @p_CONTRACT_ID = '')
|
391
|
AND (A.SUP_ID LIKE '%' + @p_SUP_ID + '%' OR @p_SUP_ID IS NULL OR @p_SUP_ID = '')
|
392
|
AND (A.SUP_ADDR LIKE '%' + @p_SUP_ADDR + '%' OR @p_SUP_ADDR IS NULL OR @p_SUP_ADDR = '')
|
393
|
AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
|
394
|
--AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
|
395
|
AND (DATEDIFF(DAY,A.CREATE_DT , CONVERT(DATETIME,@p_CREATE_DT,103)) = 0 OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
|
396
|
--AND (A.AUTH_STATUS LIKE '%' + @p_AUTH_STATUS + '%' OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
|
397
|
AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
|
398
|
AND (DATEDIFF(DAY,A.APPROVE_DT , CONVERT(DATETIME,@p_APPROVE_DT,103)) = 0 OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')
|
399
|
AND (C.CONTRACT_CODE LIKE '%' + @P_CONTRACT_CODE + '%' OR @P_CONTRACT_CODE = '' OR @P_CONTRACT_CODE IS NULL)
|
400
|
AND (A.REQ_TYPE = @p_REQ_TYPE OR @p_REQ_TYPE IS NULL OR @p_REQ_TYPE =-1)
|
401
|
AND (A.STATUS = @p_STATUS OR @p_STATUS IS NULL OR @p_STATUS = '' OR @p_STATUS='WAITAPP' OR @p_STATUS='DONEAPP'
|
402
|
|
403
|
OR (@p_STATUS ='WAITPO' AND A.AUTH_STATUS='A' AND A.STATUS='APPROVE' AND NOT EXISTS (SELECT PO.PO_ID FROM dbo.TR_PO_MASTER PO WHERE PO.REQ_DOC_ID=A.REQ_ID))
|
404
|
|
405
|
OR (@p_STATUS ='CREATEDPO' AND A.AUTH_STATUS='A' AND EXISTS (SELECT PO.PO_ID FROM dbo.TR_PO_MASTER PO WHERE PO.REQ_DOC_ID=A.REQ_ID))
|
406
|
OR (@p_STATUS='WAITASS' AND A.AUTH_STATUS='A' AND A.STATUS='APPROVE' AND NOT EXISTS(SELECT ADDNEW_ID FROM dbo.ASS_ADDNEW_PO ASSPO
|
407
|
INNER JOIN dbo.TR_PO_MASTER PM ON PM.PO_ID=ASSPO.PO_ID
|
408
|
WHERE PM.REQ_DOC_ID=A.REQ_ID))
|
409
|
OR (@p_STATUS='WAITASS_USE' AND A.AUTH_STATUS='A' AND A.STATUS='APPROVE' AND NOT EXISTS(SELECT ASS_USE.USER_MASTER_ID FROM dbo.ASS_USE_MULTI_MASTER ASS_USE
|
410
|
|
411
|
WHERE ASS_USE.REQ_ID=A.REQ_ID AND ASS_USE.AUTH_STATUS='A'))
|
412
|
OR (@p_STATUS = 'QLTS_N' AND A.STATUS LIKE '%QLTS%')
|
413
|
OR (@p_STATUS = 'DVCM_XN' AND EXISTS(SELECT ID FROM dbo.PL_REQUEST_PROCESS PRC WHERE PRC.REQ_ID=A.REQ_ID AND PRC.PROCESS_ID='DVCM' AND PRC.STATUS='P'))
|
414
|
OR(@p_STATUS='IN_PROCESS' AND EXISTS(SELECT ID FROM PL_REQUEST_PROCESS PRC2 WHERE PRC2.REQ_ID=A.REQ_ID AND PRC2.STATUS='C'))
|
415
|
OR(@p_STATUS='CVMS_REJECT' AND EXISTS(SELECT * FROM dbo.PL_PROCESS PLR WHERE (PLR.PROCESS_DESC='Reject' OR PLR.PROCESS_DESC='REJECT_QLTS' OR PLR.PROCESS_DESC='REJECT_DVCM') AND PROCESS_ID='CVMS_N' AND PLR.REQ_ID=A.REQ_ID))
|
416
|
)
|
417
|
|
418
|
|
419
|
--AND (A.BRANCH_ID IN (SELECT BRANCH_ID FROM CM_BRANCH_GETCHILDID(@p_BRANCH_ID)))
|
420
|
--AND (@p_RECEIVE_BRANCH IS NULL OR A.PO_ID IN (SELECT PO_ID FROM TR_PO_DETAIL WHERE RECEIVE_BRANCH=@p_RECEIVE_BRANCH))
|
421
|
--AND (@p_RECEIVE_BRANCH IS NULL OR @p_RECEIVE_BRANCH = '' OR EXISTS(SELECT REQ_DOC_ID FROM TR_REQUEST_DOC_DT WHERE RECEIVE_BRANCH=@p_RECEIVE_BRANCH AND REQ_DOC_ID = A.REQ_ID))
|
422
|
AND A.RECORD_STATUS = '1'
|
423
|
AND (@p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '' OR A.BRANCH_ID = @p_BRANCH_ID)
|
424
|
AND (@p_DEP_ID IS NULL OR @p_DEP_ID = '' OR A.DEP_ID IN (SELECT DEP_ID FROM @tbDep))
|
425
|
AND (A.REQ_NAME COLLATE Latin1_general_CI_AI Like N'%' + @p_REQ_NAME + N'%' COLLATE Latin1_general_CI_AI OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')
|
426
|
AND( TU.TLFullName COLLATE Latin1_general_CI_AI Like N'%' + @p_MAKER_ID + N'%' COLLATE Latin1_general_CI_AI OR TU.TLNANME COLLATE Latin1_general_CI_AI Like N'%' + @p_MAKER_ID + N'%' COLLATE Latin1_general_CI_AI
|
427
|
OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
|
428
|
|
429
|
AND (EXISTS(SELECT * FROM TR_REQUEST_DOC_DT DTT
|
430
|
LEFT JOIN dbo.TR_CONTRACT TC ON TC.CONTRACT_ID=DTT.CONTRACT_ID
|
431
|
INNER JOIN @REQUEST_DOC_DT_TABLE_CC DT_1 ON DT_1.CONTRACT_CODE = ISNULL(TC.CONTRACT_CODE,DTT.CONTRACT_CODE)
|
432
|
WHERE DTT.REQ_DOC_ID = A.REQ_ID)
|
433
|
OR @p_LIST_CONTRACT_CODE IS NULL OR @p_LIST_CONTRACT_CODE = ''
|
434
|
)
|
435
|
AND (EXISTS(SELECT * FROM TR_REQUEST_DOC_DT DTT
|
436
|
INNER JOIN @REQUEST_DOC_DT_TABLE_M DT_1 ON DT_1.MSTT = DTT.MSTT
|
437
|
WHERE DTT.REQ_DOC_ID = A.REQ_ID)
|
438
|
OR @p_LIST_MSTT IS NULL OR @p_LIST_MSTT = ''
|
439
|
)
|
440
|
|
441
|
ORDER BY PRP.APPROVE_DT,A.REQ_DT DESC
|
442
|
-- PAGING END
|
443
|
END
|
444
|
END
|
445
|
ELSE
|
446
|
BEGIN
|
447
|
IF(@P_TOP IS NULL OR @P_TOP = '' OR @P_TOP = 0)
|
448
|
BEGIN
|
449
|
-- PAGING BEGIN
|
450
|
SELECT A.REQ_ID,
|
451
|
A.REQ_CODE,
|
452
|
A.REQ_NAME,
|
453
|
ISNULL(PRP.APPROVE_DT,PRP2.APPROVE_DT) AS REQ_DT,
|
454
|
A.REQ_TYPE,
|
455
|
A.REQ_CONTENT,
|
456
|
A.CONTRACT_ID,
|
457
|
A.SUP_ID,
|
458
|
A.SUP_NAME,
|
459
|
A.SUP_ADDR,
|
460
|
A.TOTAL_AMT,
|
461
|
A.NOTES,
|
462
|
A.RECORD_STATUS,
|
463
|
A.MAKER_ID,
|
464
|
A.CREATE_DT,
|
465
|
A.AUTH_STATUS,
|
466
|
A.CHECKER_ID,
|
467
|
A.APPROVE_DT,
|
468
|
A.BRANCH_ID,
|
469
|
A.STATUS,
|
470
|
A.DEP_ID,
|
471
|
A.HO_NOTES,C.CONTRACT_CODE, E.SUP_CODE AS S_SUP_CODE, E.SUP_NAME AS S_SUP_NAME, E.ADDR AS S_ADDR, K.CONTENT AS REQ_TYPE_NAME,
|
472
|
CASE
|
473
|
WHEN A.STATUS='DONE' AND A.BRANCH_ID='DV0001' AND KHOI.KHOI_CODE <>'D2200' THEN N'Đợi PMS trình Ban điều hàng theo đúng quy định'
|
474
|
WHEN A.STATUS='DONE' AND( A.BRANCH_ID <> 'DV0001' OR KHOI.KHOI_CODE='D2200') THEN N'Phiếu đang chuyển trình Ban điều hành.' -- NguyenTD: Fix theo yêu cầu chị Loan
|
475
|
|
476
|
|
477
|
ELSE ISNULL(J.CONTENT, I.CONTENT)
|
478
|
-- ELSE
|
479
|
END
|
480
|
|
481
|
AS REQ_STATUS_NAME,
|
482
|
F.CONTRACT_CODE AS C_CONTRACT_CODE, F.[CONTRACT_NAME] AS C_CONTRACT_NAME, F.TOTAL_AMT AS C_TOTAL_AMT ,
|
483
|
ISNULL((SELECT SUM(TR_REQ.TOTAL_AMT) FROM TR_REQUEST_DOC TR_REQ WHERE TR_REQ.CONTRACT_ID = A.CONTRACT_ID),0) AS C_DONE_AMT, @p_RECEIVE_BRANCH AS RECEIVE_BRANCH,G.BRANCH_CODE,G.BRANCH_NAME, PRP.DVKD_USER_APP,
|
484
|
--CASE WHEN RQT.STATUS = 'C' OR RQT.STATUS = 'U' THEN N'Chờ duyệt'
|
485
|
--ELSE N'Đã duyệt' END AS AUTH_STATUS_NAME
|
486
|
D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME
|
487
|
--D.AUTH_STATUS_NAME
|
488
|
-- SELECT END
|
489
|
FROM TR_REQUEST_DOC A
|
490
|
|
491
|
LEFT JOIN TR_CONTRACT C ON A.CONTRACT_ID = C.CONTRACT_ID
|
492
|
LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
|
493
|
LEFT JOIN CM_SUPPLIER E ON E.SUP_ID= A.SUP_ID
|
494
|
LEFT JOIN TR_CONTRACT F ON F.CONTRACT_ID = A.CONTRACT_ID --AND A.CONTRACT_ID IS NOT NULL
|
495
|
LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID
|
496
|
LEFT JOIN CM_ALLCODE K ON K.CDNAME = 'TRREQTYPE' AND K.CDVAL = A.REQ_TYPE
|
497
|
LEFT JOIN CM_ALLCODE I ON I.CDNAME = 'TRREQSTATUS' AND I.CDVAL = A.[STATUS]
|
498
|
LEFT JOIN CM_ALLCODE J ON J.CDNAME='TRREQAFTER' AND J.CDVAL=A.AFTER_APPROVE
|
499
|
LEFT JOIN (
|
500
|
SELECT CK.KHOI_ID,CK.KHOI_CODE,ckd.DEP_ID FROM CM_KHOI ck
|
501
|
LEFT JOIN CM_KHOI_DT ckd ON ck.KHOI_ID = ckd.KHOI_ID
|
502
|
) KHOI ON KHOI.DEP_ID=A.DEP_ID
|
503
|
LEFT JOIN dbo.PL_REQUEST_PROCESS PRP ON PRP.REQ_ID=A.REQ_ID AND (PRP.ID = (SELECT TOP (1) ID FROM PL_REQUEST_PROCESS WHERE PROCESS_ID IN (SELECT STATUS FROM @TempSTATUS ) AND PL_REQUEST_PROCESS.REQ_ID=A.REQ_ID ORDER BY ID DESC)
|
504
|
|
505
|
OR ( NOT EXISTS(SELECT STATUS FROM @TempSTATUS) AND PRP.PROCESS_ID IN (SELECT T.PARENT_PROCESS_ID FROM dbo.PL_REQUEST_PROCESS T WHERE T.REQ_ID=A.REQ_ID AND T.PROCESS_ID=@p_STATUS) OR ((PRP.PROCESS_ID='DVKD_XN' ) AND @p_STATUS='DONE')))
|
506
|
--LEFT JOIN dbo.CM_AUTH_STATUS AUTH ON AUTH.AUTH_STATUS = A.AUTH_STATUS
|
507
|
--LEFT JOIN dbo.PL_REQUEST_PROCESS RQT ON RQT.REQ_ID = A.REQ_ID
|
508
|
--AND (((RQT.PROCESS_ID = A.STATUS AND RQT.ROLE_USER IN (SELECT ROLE_USER FROM @ROLE_LOGIN) AND (@p_USERNAME = RQT.DVKD_USER_APP OR (RQT.DVKD_USER_APP IS NULL OR RQT.DVKD_USER_APP = ''))) OR (RQT.STATUS = 'U' AND RQT.PROCESS_ID = 'DVKD')) OR (RQT.PROCESS_ID = A.STATUS AND EXISTS(SELECT * FROM PL_CONFIG_DATA WHERE TYPE_DATA = 'REQUEST_DOC_ROLE' AND REF_ID IN (SELECT ROLE_USER FROM @ROLE_LOGIN))))
|
509
|
|
510
|
--LEFT JOIN dbo.PL_REQUEST_PROCESS PRP1 ON PRP1.REQ_ID = A.REQ_ID AND PRP1.PROCESS_ID = 'CVMS_N'
|
511
|
LEFT JOIN dbo.PL_REQUEST_PROCESS PRP2 ON PRP2.REQ_ID = A.REQ_ID AND PRP2.PROCESS_ID = 'DVKD'
|
512
|
LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=A.MAKER_ID
|
513
|
WHERE 1 = 1
|
514
|
AND (G.REGION_ID LIKE '%' + @p_REGION_ID + '%' OR @p_REGION_ID IS NULL OR @p_REGION_ID = '')
|
515
|
AND (CONVERT(DATETIME,@p_DVKD_MANAGE_APP_FROM,103) <= CAST (PRP2.RECEPTION_DT AS DATE) OR @p_DVKD_MANAGE_APP_FROM IS NULL OR @p_DVKD_MANAGE_APP_FROM = '')
|
516
|
AND (DATEADD(day,1,CONVERT(DATETIME,@p_DVKD_MANAGE_APP_TO,103)) > CAST (PRP2.RECEPTION_DT AS DATE) OR @p_DVKD_MANAGE_APP_TO IS NULL OR @p_DVKD_MANAGE_APP_TO = '')
|
517
|
--AND (((RQT.PROCESS_ID = A.STATUS AND RQT.ROLE_USER IN (SELECT ROLE_USER FROM @ROLE_LOGIN) AND (@p_USERNAME = RQT.DVKD_USER_APP OR (RQT.DVKD_USER_APP IS NULL OR RQT.DVKD_USER_APP = ''))) OR (RQT.STATUS = 'U' AND RQT.PROCESS_ID = 'DVKD')) OR EXISTS(SELECT * FROM PL_CONFIG_DATA WHERE TYPE_DATA = 'REQUEST_DOC_ROLE' AND REF_ID IN (SELECT ROLE_USER FROM @ROLE_LOGIN)))
|
518
|
--AND ((@p_AUTH_STATUS = 'U' AND (RQT.STATUS = 'C' OR RQT.STATUS = 'U')) OR (@p_AUTH_STATUS = 'A' AND (RQT.STATUS = 'P' OR RQT.STATUS IS NULL))OR (@p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = ''))
|
519
|
AND (((A.MAKER_ID=@p_USERNAME
|
520
|
OR(
|
521
|
(G.BRANCH_TYPE='HS' AND EXISTS(SELECT T.DEP_ID FROM @lstBRANCH_DEP T WHERE T.BRANCH_ID=A.BRANCH_ID AND T.DEP_ID=A.DEP_ID))
|
522
|
OR (
|
523
|
(G.BRANCH_TYPE<>'HS' AND EXISTS(SELECT T.BRANCH_ID FROM @lstBRANCH_DEP T WHERE T.BRANCH_ID=A.BRANCH_ID))
|
524
|
)
|
525
|
)
|
526
|
)
|
527
|
|
528
|
AND (A.AUTH_STATUS LIKE '%' + @p_AUTH_STATUS + '%' OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '') ) OR
|
529
|
|
530
|
EXISTS (SELECT * FROM dbo.PL_REQUEST_PROCESS WHERE PL_REQUEST_PROCESS.REQ_ID=A.REQ_ID
|
531
|
AND (PL_REQUEST_PROCESS.STATUS='C' OR PL_REQUEST_PROCESS.STATUS='P')
|
532
|
AND ((@p_AUTH_STATUS='U' AND PL_REQUEST_PROCESS.STATUS='C') OR (@p_AUTH_STATUS='A' AND PL_REQUEST_PROCESS.STATUS='P') OR (@p_AUTH_STATUS<>'A' AND @p_AUTH_STATUS<>'U') OR @p_AUTH_STATUS IS NULL)
|
533
|
--AND (((PL_REQUEST_PROCESS.STATUS='C' OR PL_REQUEST_PROCESS.STATUS='P') AND (@p_AUTH_STATUS='' OR @p_AUTH_STATUS IS NULL)) OR
|
534
|
-- (@p_AUTH_STATUS='U' AND PL_REQUEST_PROCESS.STATUS='C') OR (@p_AUTH_STATUS='A' AND PL_REQUEST_PROCESS.STATUS='P'))
|
535
|
AND (PL_REQUEST_PROCESS.DVKD_USER_APP IS NULL OR PL_REQUEST_PROCESS.DVKD_USER_APP ='')
|
536
|
AND PL_REQUEST_PROCESS.ROLE_USER in (SELECT r.DisplayName FROM TL_USER u
|
537
|
LEFT JOIN AbpUserRoles ur ON ur.UserId = u.ID
|
538
|
LEFT JOIN AbpRoles r ON ur.RoleId = r.Id
|
539
|
where u.TLNANME=@p_USERNAME)
|
540
|
AND BRANCH_ID=@BRANCH_ID
|
541
|
AND ( EXISTS(SELECT * FROM dbo.CM_BRANCH WHERE CM_BRANCH.BRANCH_ID = PL_REQUEST_PROCESS.BRANCH_ID AND CM_BRANCH.BRANCH_TYPE<>'HS') OR DEP_ID IS NULL OR DEP_ID='' OR DEP_ID IN (SELECT DEP_ID FROM dbo.CM_KHOI_DT WHERE KHOI_ID IN (SELECT KHOI_ID FROM dbo.CM_KHOI_DT WHERE DEP_ID=@DEP_ID)) )
|
542
|
AND (COST_ID IN (SELECT COST_ID FROM @lstCOST) OR COST_ID ='' OR COST_ID IS NULL)
|
543
|
) OR
|
544
|
EXISTS (SELECT * FROM dbo.PL_REQUEST_PROCESS WHERE PL_REQUEST_PROCESS.REQ_ID=A.REQ_ID
|
545
|
AND DVKD_USER_APP = @p_USERNAME AND (PL_REQUEST_PROCESS.STATUS='C' OR PL_REQUEST_PROCESS.STATUS='P')
|
546
|
AND ((@p_AUTH_STATUS='U' AND PL_REQUEST_PROCESS.STATUS='C') OR (@p_AUTH_STATUS='A' AND PL_REQUEST_PROCESS.STATUS='P') OR (@p_AUTH_STATUS<>'U' AND @p_AUTH_STATUS<>'A') OR @p_AUTH_STATUS IS NULL))
|
547
|
OR (
|
548
|
EXISTS(SELECT COST_ID FROM dbo.TR_REQUEST_COSTCENTER TRCO WHERE TRCO.REQ_ID=A.REQ_ID AND TRCO.COST_ID IN (SELECT COST_ID FROM @lstCOST) )
|
549
|
AND NOT EXISTS(SELECT ID FROM PL_REQUEST_PROCESS PRPC2 WHERE PRPC2.REQ_ID =A.REQ_ID AND PRPC2.COST_ID IN (SELECT COST_ID FROM @lstCOST))
|
550
|
AND @p_AUTH_STATUS<>'U'
|
551
|
)
|
552
|
OR( EXISTS(SELECT * FROM PL_CONFIG_DATA WHERE TYPE_DATA = 'REQUEST_DOC_ROLE' AND REF_ID IN (SELECT ROLE_USER FROM @ROLE_LOGIN))
|
553
|
OR (EXISTS(SELECT * FROM PL_CONFIG_DATA WHERE TYPE_DATA = 'REQUEST_DOC_SLAS' AND REF_ID IN (SELECT ROLE_USER FROM @ROLE_LOGIN)) AND A.REQ_DT >='2021-09-01')
|
554
|
) AND ((A.AUTH_STATUS LIKE '%' + @p_AUTH_STATUS + '%' OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '') ))
|
555
|
|
556
|
AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
|
557
|
AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '')
|
558
|
AND (A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '')
|
559
|
AND (A.TOTAL_AMT=@p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0)
|
560
|
--AND (A.REQ_NAME COLLATE Latin1_general_CI_AI Like N'%' + @p_REQ_NAME + N'%' COLLATE Latin1_general_CI_AI OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')
|
561
|
--AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')
|
562
|
AND (A.CONTRACT_ID LIKE '%' + @p_CONTRACT_ID + '%' OR @p_CONTRACT_ID IS NULL OR @p_CONTRACT_ID = '')
|
563
|
AND (A.SUP_ID LIKE '%' + @p_SUP_ID + '%' OR @p_SUP_ID IS NULL OR @p_SUP_ID = '')
|
564
|
AND (A.SUP_ADDR LIKE '%' + @p_SUP_ADDR + '%' OR @p_SUP_ADDR IS NULL OR @p_SUP_ADDR = '')
|
565
|
AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
|
566
|
--AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
|
567
|
AND (DATEDIFF(DAY,A.CREATE_DT , CONVERT(DATETIME,@p_CREATE_DT,103)) = 0 OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
|
568
|
--AND (A.AUTH_STATUS LIKE '%' + @p_AUTH_STATUS + '%' OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
|
569
|
AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
|
570
|
AND (DATEDIFF(DAY,A.APPROVE_DT , CONVERT(DATETIME,@p_APPROVE_DT,103)) = 0 OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')
|
571
|
AND (C.CONTRACT_CODE LIKE '%' + @P_CONTRACT_CODE + '%' OR @P_CONTRACT_CODE = '' OR @P_CONTRACT_CODE IS NULL)
|
572
|
AND (A.REQ_TYPE = @p_REQ_TYPE OR @p_REQ_TYPE IS NULL OR @p_REQ_TYPE =-1)
|
573
|
AND (A.STATUS = @p_STATUS OR @p_STATUS IS NULL OR @p_STATUS = '' OR @p_STATUS='WAITAPP' OR @p_STATUS='DONEAPP'
|
574
|
|
575
|
OR (@p_STATUS ='WAITPO' AND A.AUTH_STATUS='A' AND A.STATUS='APPROVE' AND NOT EXISTS (SELECT PO.PO_ID FROM dbo.TR_PO_MASTER PO WHERE PO.REQ_DOC_ID=A.REQ_ID))
|
576
|
|
577
|
OR (@p_STATUS ='CREATEDPO' AND A.AUTH_STATUS='A' AND EXISTS (SELECT PO.PO_ID FROM dbo.TR_PO_MASTER PO WHERE PO.REQ_DOC_ID=A.REQ_ID))
|
578
|
OR (@p_STATUS='WAITASS' AND A.AUTH_STATUS='A' AND A.STATUS='APPROVE' AND NOT EXISTS(SELECT ADDNEW_ID FROM dbo.ASS_ADDNEW_PO ASSPO
|
579
|
INNER JOIN dbo.TR_PO_MASTER PM ON PM.PO_ID=ASSPO.PO_ID
|
580
|
WHERE PM.REQ_DOC_ID=A.REQ_ID))
|
581
|
OR (@p_STATUS='WAITASS_USE' AND A.AUTH_STATUS='A' AND A.STATUS='APPROVE' AND NOT EXISTS(SELECT ASS_USE.USER_MASTER_ID FROM dbo.ASS_USE_MULTI_MASTER ASS_USE
|
582
|
|
583
|
WHERE ASS_USE.REQ_ID=A.REQ_ID AND ASS_USE.AUTH_STATUS='A'))
|
584
|
OR (@p_STATUS = 'QLTS_N' AND A.STATUS LIKE '%QLTS%')
|
585
|
OR (@p_STATUS = 'DVCM_XN' AND EXISTS(SELECT ID FROM dbo.PL_REQUEST_PROCESS PRC WHERE PRC.REQ_ID=A.REQ_ID AND PRC.PROCESS_ID='DVCM' AND PRC.STATUS='P'))
|
586
|
OR(@p_STATUS='IN_PROCESS' AND EXISTS(SELECT ID FROM PL_REQUEST_PROCESS PRC2 WHERE PRC2.REQ_ID=A.REQ_ID AND PRC2.STATUS='C'))
|
587
|
OR(@p_STATUS='CVMS_REJECT' AND EXISTS(SELECT * FROM dbo.PL_PROCESS PLR WHERE (PLR.PROCESS_DESC='Reject' OR PLR.PROCESS_DESC='REJECT_QLTS' OR PLR.PROCESS_DESC='REJECT_DVCM') AND PROCESS_ID='CVMS_N' AND PLR.REQ_ID=A.REQ_ID))
|
588
|
)
|
589
|
|
590
|
--AND (A.BRANCH_ID IN (SELECT BRANCH_ID FROM CM_BRANCH_GETCHILDID(@p_BRANCH_ID)))
|
591
|
--AND (@p_RECEIVE_BRANCH IS NULL OR A.PO_ID IN (SELECT PO_ID FROM TR_PO_DETAIL WHERE RECEIVE_BRANCH=@p_RECEIVE_BRANCH))
|
592
|
--AND (@p_RECEIVE_BRANCH IS NULL OR @p_RECEIVE_BRANCH = '' OR EXISTS(SELECT REQ_DOC_ID FROM TR_REQUEST_DOC_DT WHERE RECEIVE_BRANCH=@p_RECEIVE_BRANCH AND REQ_DOC_ID = A.REQ_ID))
|
593
|
AND A.RECORD_STATUS = '1'
|
594
|
AND (@p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '' OR A.BRANCH_ID = @p_BRANCH_ID)
|
595
|
AND (@p_DEP_ID IS NULL OR @p_DEP_ID = '' OR A.DEP_ID IN (SELECT DEP_ID FROM @tbDep))
|
596
|
AND (A.REQ_NAME COLLATE Latin1_general_CI_AI Like N'%' + @p_REQ_NAME + N'%' COLLATE Latin1_general_CI_AI OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')
|
597
|
AND( TU.TLFullName COLLATE Latin1_general_CI_AI Like N'%' + @p_MAKER_ID + N'%' COLLATE Latin1_general_CI_AI OR TU.TLNANME COLLATE Latin1_general_CI_AI Like N'%' + @p_MAKER_ID + N'%' COLLATE Latin1_general_CI_AI
|
598
|
OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
|
599
|
AND (EXISTS(SELECT * FROM TR_REQUEST_DOC_DT DTT
|
600
|
LEFT JOIN dbo.TR_CONTRACT TC ON TC.CONTRACT_ID=DTT.CONTRACT_ID
|
601
|
INNER JOIN @REQUEST_DOC_DT_TABLE_CC DT_1 ON DT_1.CONTRACT_CODE = ISNULL(TC.CONTRACT_CODE,DTT.CONTRACT_CODE)
|
602
|
WHERE DTT.REQ_DOC_ID = A.REQ_ID)
|
603
|
OR @p_LIST_CONTRACT_CODE IS NULL OR @p_LIST_CONTRACT_CODE = ''
|
604
|
)
|
605
|
AND (EXISTS(SELECT * FROM TR_REQUEST_DOC_DT DTT
|
606
|
INNER JOIN @REQUEST_DOC_DT_TABLE_M DT_1 ON DT_1.MSTT = DTT.MSTT
|
607
|
WHERE DTT.REQ_DOC_ID = A.REQ_ID)
|
608
|
OR @p_LIST_MSTT IS NULL OR @p_LIST_MSTT = ''
|
609
|
)
|
610
|
|
611
|
ORDER BY PRP.APPROVE_DT,A.REQ_DT ASC
|
612
|
-- PAGING END
|
613
|
END
|
614
|
ELSE
|
615
|
BEGIN
|
616
|
-- PAGING BEGIN
|
617
|
SELECT TOP(CONVERT(INT,@P_TOP)) A.REQ_ID,
|
618
|
A.REQ_CODE,
|
619
|
A.REQ_NAME,
|
620
|
ISNULL(PRP.APPROVE_DT,PRP2.APPROVE_DT) AS REQ_DT,
|
621
|
A.REQ_TYPE,
|
622
|
A.REQ_CONTENT,
|
623
|
A.CONTRACT_ID,
|
624
|
A.SUP_ID,
|
625
|
A.SUP_NAME,
|
626
|
A.SUP_ADDR,
|
627
|
A.TOTAL_AMT,
|
628
|
A.NOTES,
|
629
|
A.RECORD_STATUS,
|
630
|
A.MAKER_ID,
|
631
|
A.CREATE_DT,
|
632
|
A.AUTH_STATUS,
|
633
|
A.CHECKER_ID,
|
634
|
A.APPROVE_DT,
|
635
|
A.BRANCH_ID,
|
636
|
A.STATUS,
|
637
|
A.DEP_ID,
|
638
|
A.HO_NOTES,C.CONTRACT_CODE, E.SUP_CODE AS S_SUP_CODE, E.SUP_NAME AS S_SUP_NAME, E.ADDR AS S_ADDR, K.CONTENT AS REQ_TYPE_NAME,
|
639
|
CASE
|
640
|
WHEN A.STATUS='DONE' AND A.BRANCH_ID='DV0001' AND KHOI.KHOI_CODE <>'D2200' THEN N'Đợi PMS trình Ban điều hàng theo đúng quy định'
|
641
|
WHEN A.STATUS='DONE' AND( A.BRANCH_ID <> 'DV0001' OR KHOI.KHOI_CODE='D2200') THEN N'Phiếu đang chuyển trình Ban điều hành.' -- NguyenTD: Fix theo yêu cầu chị Loan
|
642
|
|
643
|
|
644
|
ELSE ISNULL(J.CONTENT, I.CONTENT)
|
645
|
-- ELSE
|
646
|
END
|
647
|
|
648
|
AS REQ_STATUS_NAME,
|
649
|
|
650
|
|
651
|
F.CONTRACT_CODE AS C_CONTRACT_CODE, F.[CONTRACT_NAME] AS C_CONTRACT_NAME, F.TOTAL_AMT AS C_TOTAL_AMT ,
|
652
|
ISNULL((SELECT SUM(TR_REQ.TOTAL_AMT) FROM TR_REQUEST_DOC TR_REQ WHERE TR_REQ.CONTRACT_ID = A.CONTRACT_ID),0) AS C_DONE_AMT, @p_RECEIVE_BRANCH AS RECEIVE_BRANCH,G.BRANCH_CODE,G.BRANCH_NAME, PRP.DVKD_USER_APP,
|
653
|
--CASE WHEN RQT.STATUS = 'C' OR RQT.STATUS = 'U' THEN N'Chờ duyệt'
|
654
|
--ELSE N'Đã duyệt' END AS AUTH_STATUS_NAME
|
655
|
--RQT.STATUS AS TEST
|
656
|
D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME
|
657
|
--D.AUTH_STATUS_NAME
|
658
|
-- SELECT END
|
659
|
FROM TR_REQUEST_DOC A
|
660
|
|
661
|
LEFT JOIN TR_CONTRACT C ON A.CONTRACT_ID = C.CONTRACT_ID
|
662
|
LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
|
663
|
LEFT JOIN CM_SUPPLIER E ON E.SUP_ID= A.SUP_ID
|
664
|
LEFT JOIN TR_CONTRACT F ON F.CONTRACT_ID = A.CONTRACT_ID --AND A.CONTRACT_ID IS NOT NULL
|
665
|
LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID
|
666
|
LEFT JOIN CM_ALLCODE K ON K.CDNAME = 'TRREQTYPE' AND K.CDVAL = A.REQ_TYPE
|
667
|
LEFT JOIN CM_ALLCODE I ON I.CDNAME = 'TRREQSTATUS' AND I.CDVAL = A.[STATUS]
|
668
|
LEFT JOIN CM_ALLCODE J ON J.CDNAME='TRREQAFTER' AND J.CDVAL=A.AFTER_APPROVE
|
669
|
LEFT JOIN (
|
670
|
SELECT CK.KHOI_ID,CK.KHOI_CODE,ckd.DEP_ID FROM CM_KHOI ck
|
671
|
LEFT JOIN CM_KHOI_DT ckd ON ck.KHOI_ID = ckd.KHOI_ID
|
672
|
) KHOI ON KHOI.DEP_ID=A.DEP_ID
|
673
|
LEFT JOIN dbo.PL_REQUEST_PROCESS PRP ON PRP.REQ_ID=A.REQ_ID AND (PRP.ID = (SELECT TOP (1) ID FROM PL_REQUEST_PROCESS WHERE PROCESS_ID IN (SELECT STATUS FROM @TempSTATUS ) AND PL_REQUEST_PROCESS.REQ_ID=A.REQ_ID ORDER BY ID DESC)
|
674
|
|
675
|
OR ( NOT EXISTS(SELECT STATUS FROM @TempSTATUS) AND PRP.PROCESS_ID IN (SELECT T.PARENT_PROCESS_ID FROM dbo.PL_REQUEST_PROCESS T WHERE T.REQ_ID=A.REQ_ID AND T.PROCESS_ID=@p_STATUS) OR ((PRP.PROCESS_ID='DVKD_XN' ) AND @p_STATUS='DONE')))
|
676
|
--LEFT JOIN dbo.CM_AUTH_STATUS AUTH ON AUTH.AUTH_STATUS = @p_AUTH_STATUS
|
677
|
--LEFT JOIN dbo.PL_REQUEST_PROCESS RQT ON RQT.REQ_ID = A.REQ_ID
|
678
|
--AND (((RQT.PROCESS_ID = A.STATUS AND RQT.ROLE_USER IN (SELECT ROLE_USER FROM @ROLE_LOGIN) AND (@p_USERNAME = RQT.DVKD_USER_APP OR (RQT.DVKD_USER_APP IS NULL OR RQT.DVKD_USER_APP = ''))) OR (RQT.STATUS = 'U' AND RQT.PROCESS_ID = 'DVKD')) OR (RQT.PROCESS_ID = A.STATUS AND EXISTS(SELECT * FROM PL_CONFIG_DATA WHERE TYPE_DATA = 'REQUEST_DOC_ROLE' AND REF_ID IN (SELECT ROLE_USER FROM @ROLE_LOGIN))))
|
679
|
--LEFT JOIN dbo.PL_REQUEST_PROCESS PRP1 ON PRP1.REQ_ID = A.REQ_ID AND PRP1.PROCESS_ID = 'CVMS_N'
|
680
|
LEFT JOIN dbo.PL_REQUEST_PROCESS PRP2 ON PRP2.REQ_ID = A.REQ_ID AND PRP2.PROCESS_ID = 'DVKD'
|
681
|
LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=A.MAKER_ID
|
682
|
WHERE 1 = 1
|
683
|
AND (G.REGION_ID LIKE '%' + @p_REGION_ID + '%' OR @p_REGION_ID IS NULL OR @p_REGION_ID = '')
|
684
|
AND (CONVERT(DATETIME,@p_DVKD_MANAGE_APP_FROM,103) <= CAST (PRP2.RECEPTION_DT AS DATE) OR @p_DVKD_MANAGE_APP_FROM IS NULL OR @p_DVKD_MANAGE_APP_FROM = '')
|
685
|
AND (DATEADD(day,1,CONVERT(DATETIME,@p_DVKD_MANAGE_APP_TO,103)) > CAST (PRP2.RECEPTION_DT AS DATE) OR @p_DVKD_MANAGE_APP_TO IS NULL OR @p_DVKD_MANAGE_APP_TO = '')
|
686
|
--AND (((RQT.PROCESS_ID = A.STATUS AND RQT.ROLE_USER IN (SELECT ROLE_USER FROM @ROLE_LOGIN) AND (@p_USERNAME = RQT.DVKD_USER_APP OR (RQT.DVKD_USER_APP IS NULL OR RQT.DVKD_USER_APP = ''))) OR (RQT.STATUS = 'U' AND RQT.PROCESS_ID = 'DVKD')) OR EXISTS(SELECT * FROM PL_CONFIG_DATA WHERE TYPE_DATA = 'REQUEST_DOC_ROLE' AND REF_ID IN (SELECT ROLE_USER FROM @ROLE_LOGIN)))
|
687
|
--AND ((@p_AUTH_STATUS = 'U' AND (RQT.STATUS = 'C' OR RQT.STATUS = 'U')) OR (@p_AUTH_STATUS = 'A' AND (RQT.STATUS = 'P' OR RQT.STATUS IS NULL))OR (@p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = ''))
|
688
|
AND (((A.MAKER_ID=@p_USERNAME
|
689
|
OR(
|
690
|
(G.BRANCH_TYPE='HS' AND EXISTS(SELECT T.DEP_ID FROM @lstBRANCH_DEP T WHERE T.BRANCH_ID=A.BRANCH_ID AND T.DEP_ID=A.DEP_ID))
|
691
|
OR(
|
692
|
(G.BRANCH_TYPE<>'HS' AND EXISTS(SELECT T.BRANCH_ID FROM @lstBRANCH_DEP T WHERE T.BRANCH_ID=A.BRANCH_ID))
|
693
|
)
|
694
|
)
|
695
|
)
|
696
|
|
697
|
AND (A.AUTH_STATUS LIKE '%' + @p_AUTH_STATUS + '%' OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '') ) OR
|
698
|
|
699
|
EXISTS (SELECT * FROM dbo.PL_REQUEST_PROCESS WHERE PL_REQUEST_PROCESS.REQ_ID=A.REQ_ID
|
700
|
AND (PL_REQUEST_PROCESS.STATUS='C' OR PL_REQUEST_PROCESS.STATUS='P')
|
701
|
AND ((@p_AUTH_STATUS='U' AND PL_REQUEST_PROCESS.STATUS='C') OR (@p_AUTH_STATUS='A' AND PL_REQUEST_PROCESS.STATUS='P') OR (@p_AUTH_STATUS<>'A' AND @p_AUTH_STATUS<>'U') OR @p_AUTH_STATUS IS NULL)
|
702
|
--AND (((PL_REQUEST_PROCESS.STATUS='C' OR PL_REQUEST_PROCESS.STATUS='P') AND (@p_AUTH_STATUS='' OR @p_AUTH_STATUS IS NULL)) OR
|
703
|
-- (@p_AUTH_STATUS='U' AND PL_REQUEST_PROCESS.STATUS='C') OR (@p_AUTH_STATUS='A' AND PL_REQUEST_PROCESS.STATUS='P'))
|
704
|
AND (PL_REQUEST_PROCESS.DVKD_USER_APP IS NULL OR PL_REQUEST_PROCESS.DVKD_USER_APP ='')
|
705
|
AND PL_REQUEST_PROCESS.ROLE_USER in (SELECT r.DisplayName FROM TL_USER u
|
706
|
LEFT JOIN AbpUserRoles ur ON ur.UserId = u.ID
|
707
|
LEFT JOIN AbpRoles r ON ur.RoleId = r.Id
|
708
|
where u.TLNANME=@p_USERNAME)
|
709
|
AND BRANCH_ID=@BRANCH_ID
|
710
|
AND ( EXISTS(SELECT * FROM dbo.CM_BRANCH WHERE CM_BRANCH.BRANCH_ID = PL_REQUEST_PROCESS.BRANCH_ID AND CM_BRANCH.BRANCH_TYPE<>'HS') OR DEP_ID IS NULL OR DEP_ID='' OR DEP_ID IN (SELECT DEP_ID FROM dbo.CM_KHOI_DT WHERE KHOI_ID IN (SELECT KHOI_ID FROM dbo.CM_KHOI_DT WHERE DEP_ID=@DEP_ID)) )
|
711
|
AND (COST_ID IN (SELECT COST_ID FROM @lstCOST) OR COST_ID ='' OR COST_ID IS NULL)
|
712
|
) OR
|
713
|
EXISTS (SELECT * FROM dbo.PL_REQUEST_PROCESS WHERE PL_REQUEST_PROCESS.REQ_ID=A.REQ_ID
|
714
|
AND DVKD_USER_APP = @p_USERNAME AND (PL_REQUEST_PROCESS.STATUS='C' OR PL_REQUEST_PROCESS.STATUS='P')
|
715
|
AND ((@p_AUTH_STATUS='U' AND PL_REQUEST_PROCESS.STATUS='C') OR (@p_AUTH_STATUS='A' AND PL_REQUEST_PROCESS.STATUS='P') OR (@p_AUTH_STATUS<>'U' AND @p_AUTH_STATUS<>'A') OR @p_AUTH_STATUS IS NULL))
|
716
|
OR (
|
717
|
EXISTS(SELECT COST_ID FROM dbo.TR_REQUEST_COSTCENTER TRCO WHERE TRCO.REQ_ID=A.REQ_ID AND TRCO.COST_ID IN (SELECT COST_ID FROM @lstCOST) )
|
718
|
AND NOT EXISTS(SELECT ID FROM PL_REQUEST_PROCESS PRPC2 WHERE PRPC2.REQ_ID =A.REQ_ID AND PRPC2.COST_ID IN (SELECT COST_ID FROM @lstCOST))
|
719
|
AND @p_AUTH_STATUS<>'U'
|
720
|
)
|
721
|
OR( EXISTS(SELECT * FROM PL_CONFIG_DATA WHERE TYPE_DATA = 'REQUEST_DOC_ROLE' AND REF_ID IN (SELECT ROLE_USER FROM @ROLE_LOGIN))
|
722
|
OR (EXISTS(SELECT * FROM PL_CONFIG_DATA WHERE TYPE_DATA = 'REQUEST_DOC_SLAS' AND REF_ID IN (SELECT ROLE_USER FROM @ROLE_LOGIN)) AND A.REQ_DT >='2021-09-01')
|
723
|
) AND ((A.AUTH_STATUS LIKE '%' + @p_AUTH_STATUS + '%' OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '') ))
|
724
|
AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
|
725
|
AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '')
|
726
|
AND (A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '')
|
727
|
AND (A.TOTAL_AMT=@p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0)
|
728
|
|
729
|
AND (A.CONTRACT_ID LIKE '%' + @p_CONTRACT_ID + '%' OR @p_CONTRACT_ID IS NULL OR @p_CONTRACT_ID = '')
|
730
|
AND (A.SUP_ID LIKE '%' + @p_SUP_ID + '%' OR @p_SUP_ID IS NULL OR @p_SUP_ID = '')
|
731
|
AND (A.SUP_ADDR LIKE '%' + @p_SUP_ADDR + '%' OR @p_SUP_ADDR IS NULL OR @p_SUP_ADDR = '')
|
732
|
AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
|
733
|
--AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
|
734
|
AND (DATEDIFF(DAY,A.CREATE_DT , CONVERT(DATETIME,@p_CREATE_DT,103)) = 0 OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
|
735
|
--AND (A.AUTH_STATUS LIKE '%' + @p_AUTH_STATUS + '%' OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
|
736
|
AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
|
737
|
AND (DATEDIFF(DAY,A.APPROVE_DT , CONVERT(DATETIME,@p_APPROVE_DT,103)) = 0 OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')
|
738
|
AND (C.CONTRACT_CODE LIKE '%' + @P_CONTRACT_CODE + '%' OR @P_CONTRACT_CODE = '' OR @P_CONTRACT_CODE IS NULL)
|
739
|
AND (A.REQ_TYPE = @p_REQ_TYPE OR @p_REQ_TYPE IS NULL OR @p_REQ_TYPE =-1)
|
740
|
AND (A.STATUS = @p_STATUS OR @p_STATUS IS NULL OR @p_STATUS = '' OR @p_STATUS='WAITAPP' OR @p_STATUS='DONEAPP'
|
741
|
|
742
|
OR (@p_STATUS ='WAITPO' AND A.AUTH_STATUS='A' AND A.STATUS='APPROVE' AND NOT EXISTS (SELECT PO.PO_ID FROM dbo.TR_PO_MASTER PO WHERE PO.REQ_DOC_ID=A.REQ_ID))
|
743
|
|
744
|
OR (@p_STATUS ='CREATEDPO' AND A.AUTH_STATUS='A' AND EXISTS (SELECT PO.PO_ID FROM dbo.TR_PO_MASTER PO WHERE PO.REQ_DOC_ID=A.REQ_ID))
|
745
|
OR (@p_STATUS='WAITASS' AND A.AUTH_STATUS='A' AND A.STATUS='APPROVE' AND NOT EXISTS(SELECT ADDNEW_ID FROM dbo.ASS_ADDNEW_PO ASSPO
|
746
|
INNER JOIN dbo.TR_PO_MASTER PM ON PM.PO_ID=ASSPO.PO_ID
|
747
|
WHERE PM.REQ_DOC_ID=A.REQ_ID))
|
748
|
OR (@p_STATUS='WAITASS_USE' AND A.AUTH_STATUS='A' AND A.STATUS='APPROVE' AND NOT EXISTS(SELECT ASS_USE.USER_MASTER_ID FROM dbo.ASS_USE_MULTI_MASTER ASS_USE
|
749
|
|
750
|
WHERE ASS_USE.REQ_ID=A.REQ_ID AND ASS_USE.AUTH_STATUS='A'))
|
751
|
OR (@p_STATUS = 'QLTS_N' AND A.STATUS LIKE '%QLTS%')
|
752
|
OR (@p_STATUS = 'DVCM_XN' AND EXISTS(SELECT ID FROM dbo.PL_REQUEST_PROCESS PRC WHERE PRC.REQ_ID=A.REQ_ID AND PRC.PROCESS_ID='DVCM' AND PRC.STATUS='P'))
|
753
|
OR(@p_STATUS='IN_PROCESS' AND EXISTS(SELECT ID FROM PL_REQUEST_PROCESS PRC2 WHERE PRC2.REQ_ID=A.REQ_ID AND PRC2.STATUS='C'))
|
754
|
OR(@p_STATUS='CVMS_REJECT' AND EXISTS(SELECT * FROM dbo.PL_PROCESS PLR WHERE (PLR.PROCESS_DESC='Reject' OR PLR.PROCESS_DESC='REJECT_QLTS' OR PLR.PROCESS_DESC='REJECT_DVCM') AND PROCESS_ID='CVMS_N' AND PLR.REQ_ID=A.REQ_ID))
|
755
|
)
|
756
|
|
757
|
|
758
|
--AND (A.BRANCH_ID IN (SELECT BRANCH_ID FROM CM_BRANCH_GETCHILDID(@p_BRANCH_ID)))
|
759
|
--AND (@p_RECEIVE_BRANCH IS NULL OR A.PO_ID IN (SELECT PO_ID FROM TR_PO_DETAIL WHERE RECEIVE_BRANCH=@p_RECEIVE_BRANCH))
|
760
|
--AND (@p_RECEIVE_BRANCH IS NULL OR @p_RECEIVE_BRANCH = '' OR EXISTS(SELECT REQ_DOC_ID FROM TR_REQUEST_DOC_DT WHERE RECEIVE_BRANCH=@p_RECEIVE_BRANCH AND REQ_DOC_ID = A.REQ_ID))
|
761
|
AND A.RECORD_STATUS = '1'
|
762
|
AND (@p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '' OR A.BRANCH_ID = @p_BRANCH_ID)
|
763
|
AND (@p_DEP_ID IS NULL OR @p_DEP_ID = '' OR A.DEP_ID IN (SELECT DEP_ID FROM @tbDep))
|
764
|
AND (A.REQ_NAME COLLATE Latin1_general_CI_AI Like N'%' + @p_REQ_NAME + N'%' COLLATE Latin1_general_CI_AI OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')
|
765
|
AND( TU.TLFullName COLLATE Latin1_general_CI_AI Like N'%' + @p_MAKER_ID + N'%' COLLATE Latin1_general_CI_AI OR TU.TLNANME COLLATE Latin1_general_CI_AI Like N'%' + @p_MAKER_ID + N'%' COLLATE Latin1_general_CI_AI
|
766
|
OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
|
767
|
AND (EXISTS(SELECT * FROM TR_REQUEST_DOC_DT DTT
|
768
|
LEFT JOIN dbo.TR_CONTRACT TC ON TC.CONTRACT_ID=DTT.CONTRACT_ID
|
769
|
INNER JOIN @REQUEST_DOC_DT_TABLE_CC DT_1 ON DT_1.CONTRACT_CODE = ISNULL(TC.CONTRACT_CODE,DTT.CONTRACT_CODE)
|
770
|
WHERE DTT.REQ_DOC_ID = A.REQ_ID)
|
771
|
OR @p_LIST_CONTRACT_CODE IS NULL OR @p_LIST_CONTRACT_CODE = ''
|
772
|
)
|
773
|
AND (EXISTS(SELECT * FROM TR_REQUEST_DOC_DT DTT
|
774
|
INNER JOIN @REQUEST_DOC_DT_TABLE_M DT_1 ON DT_1.MSTT = DTT.MSTT
|
775
|
WHERE DTT.REQ_DOC_ID = A.REQ_ID)
|
776
|
OR @p_LIST_MSTT IS NULL OR @p_LIST_MSTT = ''
|
777
|
)
|
778
|
|
779
|
ORDER BY PRP.APPROVE_DT,A.REQ_DT DESC
|
780
|
-- PAGING END
|
781
|
END
|
782
|
END
|
783
|
|
784
|
|
785
|
|
786
|
END -- PAGING
|
787
|
|
788
|
|
789
|
|
790
|
|
791
|
|
792
|
|