1
|
ALTER PROCEDURE [dbo].[PL_PROCESS_CURRENT_SEARCH]
|
2
|
@p_REQ_ID VARCHAR(20)=NULL,
|
3
|
@p_USER_LOGIN VARCHAR(20)=NULL,
|
4
|
@p_TYPE VARCHAR(20)=NULL
|
5
|
AS
|
6
|
BEGIN
|
7
|
|
8
|
DECLARE @PROCESS_CURR VARCHAR(20),@IS_HAS_CHILD BIT
|
9
|
|
10
|
SELECT TOP 1 @PROCESS_CURR = PROCESS_ID,@IS_HAS_CHILD=IS_HAS_CHILD FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_REQ_ID AND STATUS='C'
|
11
|
|
12
|
IF(@p_TYPE LIKE 'TTCT%')
|
13
|
BEGIN
|
14
|
IF(@IS_HAS_CHILD=0 OR @IS_HAS_CHILD IS NULL)
|
15
|
BEGIN
|
16
|
|
17
|
DECLARE @SIGN_USER VARCHAR(15), @CURENT_PROCESS VARCHAR(50)
|
18
|
SET @SIGN_USER = (SELECT SIGN_USER FROM dbo.PL_REQUEST_DOC WHERE REQ_ID = @p_REQ_ID)
|
19
|
SET @CURENT_PROCESS = (SELECT TOP 1 PROCESS_ID FROM PL_REQUEST_PROCESS WHERE REQ_ID = @p_REQ_ID AND STATUS='C')
|
20
|
|
21
|
-- Nếu có cấp phê duyệt trung gian
|
22
|
IF(@SIGN_USER IS NOT NULL AND @SIGN_USER <> '' AND @CURENT_PROCESS = 'SIGN')
|
23
|
BEGIN
|
24
|
SELECT distinct PL.REQ_ID,PL.PROCESS_ID, CASE WHEN CD.DVDM_NAME IS NOT NULL AND CD.DVDM_NAME <> '' THEN CD.DVDM_NAME ELSE BR.BRANCH_NAME END AS DVDM_NAME,TempU.TLNANME AS TLNAME,TempU.TLFullName,PL.NOTES FROM dbo.PL_REQUEST_PROCESS PL
|
25
|
LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=PL.DVDM_ID
|
26
|
LEFT JOIN
|
27
|
(
|
28
|
SELECT TU.TLNANME,TU.TLFullName,TU.RoleName,Temp.DVDM_ID,TU.SECUR_CODE,TU.TLSUBBRID FROM dbo.TL_USER TU
|
29
|
LEFT JOIN(
|
30
|
SELECT PC.DVDM_ID,PD.DEP_ID,PD.BRANCH_ID FROM dbo.PL_COSTCENTER PC
|
31
|
LEFT JOIN dbo.PL_COSTCENTER_DT PD ON PC.COST_ID=PD.COST_ID) Temp ON Temp.DEP_ID=TU.SECUR_CODE AND Temp.BRANCH_ID=TU.TLSUBBRID
|
32
|
) TempU ON (TempU.RoleName=PL.ROLE_USER OR PL.ROLE_USER IN (SELECT ROLE_NEW FROM dbo.TL_SYS_ROLE_MAPPING TM WHERE TM.ROLE_OLD=TempU.RoleName AND (TM.TLNAME IS NULL OR TM.TLNAME='')))
|
33
|
AND (TempU.TLSUBBRID=PL.BRANCH_ID OR PL.BRANCH_ID IS NULL OR PL.BRANCH_ID='')
|
34
|
AND (TempU.SECUR_CODE=PL.DEP_ID OR PL.DEP_ID IS NULL OR PL.DEP_ID='')
|
35
|
AND (TempU.DVDM_ID=PL.DVDM_ID OR PL.DVDM_ID IS NULL OR PL.DVDM_ID ='')
|
36
|
LEFT JOIN dbo.PL_REQUEST_DOC RD ON RD.REQ_ID = PL.REQ_ID
|
37
|
LEFT JOIN CM_BRANCH BR ON PL.BRANCH_ID = BR.BRANCH_ID
|
38
|
WHERE PL.REQ_ID = @p_REQ_ID AND STATUS='C' AND (PL.PROCESS_ID = 'SIGN' AND TempU.TLNANME = RD.SIGN_USER)
|
39
|
|
40
|
END
|
41
|
ELSE
|
42
|
BEGIN
|
43
|
SELECT distinct PL.REQ_ID,PL.PROCESS_ID,
|
44
|
CASE WHEN CD.DVDM_NAME IS NOT NULL AND CD.DVDM_NAME <> '' THEN CD.DVDM_NAME ELSE BR.BRANCH_NAME END AS DVDM_NAME,
|
45
|
TempU.TLNANME AS TLNAME,
|
46
|
TempU.TLFullName,
|
47
|
PL.NOTES
|
48
|
FROM dbo.PL_REQUEST_PROCESS PL
|
49
|
LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=PL.DVDM_ID
|
50
|
LEFT JOIN
|
51
|
(
|
52
|
SELECT TU.TLNANME,TU.TLFullName,TU.RoleName,Temp.DVDM_ID,TU.SECUR_CODE,TU.TLSUBBRID FROM dbo.TL_USER TU
|
53
|
LEFT JOIN(
|
54
|
SELECT PC.DVDM_ID,PD.DEP_ID,PD.BRANCH_ID FROM dbo.PL_COSTCENTER PC
|
55
|
LEFT JOIN dbo.PL_COSTCENTER_DT PD ON PC.COST_ID=PD.COST_ID) Temp ON Temp.DEP_ID=TU.SECUR_CODE AND Temp.BRANCH_ID=TU.TLSUBBRID
|
56
|
UNION ALL
|
57
|
SELECT TU.TLNAME,US.TLFullName,TU.ROLE_NEW RoleName,Temp.DVDM_ID,TU.DEP_ID SECUR_CODE,TU.BRANCH_ID TLSUBBRID
|
58
|
FROM dbo.TL_SYS_ROLE_MAPPING TU
|
59
|
LEFT JOIN dbo.TL_USER US ON US.TLNANME=TU.TLNAME
|
60
|
LEFT JOIN(
|
61
|
SELECT PC.DVDM_ID,PD.DEP_ID,PD.BRANCH_ID FROM dbo.PL_COSTCENTER PC
|
62
|
LEFT JOIN dbo.PL_COSTCENTER_DT PD ON PC.COST_ID=PD.COST_ID) Temp ON Temp.DEP_ID=TU.DEP_ID AND Temp.BRANCH_ID=TU.BRANCH_ID
|
63
|
WHERE CAST(TU.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
|
64
|
) TempU ON (TempU.RoleName=PL.ROLE_USER)
|
65
|
AND (TempU.TLSUBBRID=PL.BRANCH_ID OR PL.BRANCH_ID IS NULL OR PL.BRANCH_ID='')
|
66
|
AND (((SELECT TOP 1 BRANCH_TYPE FROM dbo.CM_BRANCH WHERE BRANCH_ID = PL.BRANCH_ID) = 'HS' AND TempU.SECUR_CODE=PL.DEP_ID OR PL.DEP_ID IS NULL OR PL.DEP_ID='')
|
67
|
OR (SELECT TOP 1 BRANCH_TYPE FROM dbo.CM_BRANCH WHERE BRANCH_ID = PL.BRANCH_ID) <> 'HS')
|
68
|
AND (TempU.DVDM_ID=PL.DVDM_ID OR PL.DVDM_ID IS NULL OR PL.DVDM_ID ='')
|
69
|
LEFT JOIN CM_BRANCH BR ON PL.BRANCH_ID = BR.BRANCH_ID
|
70
|
WHERE PL.REQ_ID = @p_REQ_ID AND STATUS='C'
|
71
|
END
|
72
|
|
73
|
END
|
74
|
|
75
|
ELSE IF(@IS_HAS_CHILD=1)
|
76
|
BEGIN
|
77
|
SELECT distinct PL.REQ_ID,PL.PROCESS_ID,CASE WHEN CD.DVDM_NAME IS NOT NULL AND CD.DVDM_NAME <> '' THEN CD.DVDM_NAME ELSE BR.BRANCH_NAME END AS DVDM_NAME,CASE WHEN TempC.ID IS NULL THEN TempU.TLNANME ELSE TU.TLNANME END AS TLNAME,CASE WHEN TempC.ID IS NULL THEN TempU.TLFullName ELSE TU.TLFullName END AS TLFullName,CASE WHEN TempC.ID IS NULL THEN PL.NOTES ELSE TempC.CONTENT END AS NOTES FROM dbo.PL_REQUEST_PROCESS PL
|
78
|
LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=PL.DVDM_ID
|
79
|
LEFT JOIN CM_BRANCH BR ON PL.BRANCH_ID = BR.BRANCH_ID
|
80
|
LEFT JOIN
|
81
|
(
|
82
|
SELECT PRC.ID, PRC.PROCESS_ID,PRC.REQ_ID,PRC.TLNAME,AC.CONTENT FROM dbo.PL_REQUEST_PROCESS_CHILD PRC
|
83
|
LEFT JOIN dbo.CM_ALLCODE AC ON AC.CDVAL=PRC.TYPE_JOB AND AC.CDNAME='JOB_TYPE' AND CDTYPE='REQ'
|
84
|
WHERE (PRC.STATUS_JOB='C' OR PRC.STATUS_JOB='R' )
|
85
|
)TempC ON TempC.PROCESS_ID =PL.ID AND TempC.REQ_ID = PL.REQ_ID AND PL.IS_HAS_CHILD=1
|
86
|
LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=TempC.TLNAME
|
87
|
LEFT JOIN
|
88
|
(
|
89
|
SELECT TU.TLNANME,TU.TLFullName,TU.RoleName,Temp.DVDM_ID,TU.SECUR_CODE,TU.TLSUBBRID FROM dbo.TL_USER TU
|
90
|
LEFT JOIN(
|
91
|
SELECT PC.DVDM_ID,PD.DEP_ID,PD.BRANCH_ID FROM dbo.PL_COSTCENTER PC
|
92
|
LEFT JOIN dbo.PL_COSTCENTER_DT PD ON PC.COST_ID=PD.COST_ID) Temp ON Temp.DEP_ID=TU.SECUR_CODE AND Temp.BRANCH_ID=TU.TLSUBBRID
|
93
|
UNION ALL
|
94
|
SELECT TU.TLNAME,US.TLFullName,TU.ROLE_NEW RoleName,Temp.DVDM_ID,TU.DEP_ID SECUR_CODE,TU.BRANCH_ID TLSUBBRID FROM dbo.TL_SYS_ROLE_MAPPING TU
|
95
|
LEFT JOIN dbo.TL_USER US ON US.TLNANME=TU.TLNAME
|
96
|
LEFT JOIN(
|
97
|
SELECT PC.DVDM_ID,PD.DEP_ID,PD.BRANCH_ID FROM dbo.PL_COSTCENTER PC
|
98
|
LEFT JOIN dbo.PL_COSTCENTER_DT PD ON PC.COST_ID=PD.COST_ID) Temp ON Temp.DEP_ID=TU.DEP_ID AND Temp.BRANCH_ID=TU.BRANCH_ID
|
99
|
WHERE CAST(TU.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
|
100
|
) TempU ON (TempU.RoleName=PL.ROLE_USER OR PL.ROLE_USER IN (SELECT ROLE_NEW FROM dbo.TL_SYS_ROLE_MAPPING TM WHERE ROLE_OLD=TempU.RoleName AND (TM.TLNAME IS NULL OR TM.TLNAME=''))) AND (TempU.TLSUBBRID=PL.BRANCH_ID OR PL.BRANCH_ID IS NULL OR PL.BRANCH_ID='')
|
101
|
AND (TempU.SECUR_CODE=PL.DEP_ID OR PL.DEP_ID IS NULL OR PL.DEP_ID='')
|
102
|
AND (TempU.DVDM_ID=PL.DVDM_ID OR PL.DVDM_ID IS NULL OR PL.DVDM_ID ='')
|
103
|
WHERE PL.REQ_ID =@p_REQ_ID AND PL.STATUS='C'
|
104
|
END
|
105
|
END
|
106
|
ELSE IF(@p_TYPE LIKE 'PYC-XE')
|
107
|
BEGIN
|
108
|
IF(@IS_HAS_CHILD=0 OR @IS_HAS_CHILD IS NULL)
|
109
|
|
110
|
BEGIN
|
111
|
|
112
|
SELECT distinct PL.REQ_ID,PL.PROCESS_ID, BR.BRANCH_NAME AS DVDM_NAME,TempU.TLNANME AS TLNAME,TempU.TLFullName,PL.NOTES
|
113
|
FROM dbo.PL_REQUEST_PROCESS PL
|
114
|
LEFT JOIN CM_BRANCH BR ON PL.BRANCH_ID = BR.BRANCH_ID
|
115
|
LEFT JOIN
|
116
|
(
|
117
|
SELECT TU.TLNANME,TU.TLFullName,TU.RoleName,TU.SECUR_CODE,TU.TLSUBBRID
|
118
|
FROM (
|
119
|
SELECT TS.TLNANME,TS.TLFullName,TS.RoleName,TS.TLSUBBRID,TS.SECUR_CODE FROM
|
120
|
dbo.TL_USER TS
|
121
|
UNION ALL
|
122
|
SELECT TM.TLNAME TLNANME,TS.TLFullName,TM.ROLE_NEW RoleName,TM.BRANCH_ID TLSUBBRID,TM.DEP_ID SECUR_CODE FROM
|
123
|
dbo.TL_SYS_ROLE_MAPPING TM
|
124
|
LEFT JOIN dbo.TL_USER TS ON TS.TLNANME=TM.TLNAME
|
125
|
WHERE CAST(TM.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
|
126
|
) TU
|
127
|
) TempU ON (TempU.RoleName =PL.ROLE_USER OR PL.ROLE_USER=(SELECT ROLE_NEW FROM dbo.TL_SYS_ROLE_MAPPING TM WHERE ROLE_OLD=TempU.RoleName AND (TM.TLNAME IS NULL OR TM.TLNAME=''))) AND (TempU.TLSUBBRID=PL.BRANCH_ID OR PL.BRANCH_ID IS NULL OR PL.BRANCH_ID='')
|
128
|
AND (TempU.SECUR_CODE=PL.DEP_ID OR PL.DEP_ID IS NULL OR PL.DEP_ID='')
|
129
|
WHERE REQ_ID =@p_REQ_ID AND STATUS='C'
|
130
|
|
131
|
END
|
132
|
ELSE IF(@IS_HAS_CHILD=1)
|
133
|
BEGIN
|
134
|
SELECT distinct PL.REQ_ID,PL.PROCESS_ID,CASE WHEN CD.DVDM_NAME IS NOT NULL AND CD.DVDM_NAME <> '' THEN CD.DVDM_NAME ELSE BR.BRANCH_NAME END AS DVDM_NAME,CASE WHEN TempC.ID IS NULL THEN TempU.TLNANME ELSE TU.TLNANME END AS TLNAME,CASE WHEN TempC.ID IS NULL THEN TempU.TLFullName ELSE TU.TLFullName END AS TLFullName,CASE WHEN TempC.ID IS NULL THEN PL.NOTES ELSE TempC.CONTENT END AS NOTES FROM dbo.PL_REQUEST_PROCESS PL
|
135
|
LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=PL.DVDM_ID
|
136
|
LEFT JOIN CM_BRANCH BR ON PL.BRANCH_ID = BR.BRANCH_ID
|
137
|
LEFT JOIN
|
138
|
(
|
139
|
SELECT PRC.ID, PRC.PROCESS_ID,PRC.REQ_ID,PRC.TLNAME,AC.CONTENT FROM dbo.PL_REQUEST_PROCESS_CHILD PRC
|
140
|
LEFT JOIN dbo.CM_ALLCODE AC ON AC.CDVAL=PRC.TYPE_JOB AND AC.CDNAME='JOB_TYPE' AND CDTYPE='REQ'
|
141
|
WHERE (PRC.STATUS_JOB='C' OR PRC.STATUS_JOB='R' )
|
142
|
)TempC ON TempC.PROCESS_ID =PL.ID AND PL.IS_HAS_CHILD=1
|
143
|
LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=TempC.TLNAME
|
144
|
LEFT JOIN
|
145
|
(
|
146
|
SELECT TU.TLNANME,TU.TLFullName,TU.RoleName,Temp.DVDM_ID,TU.SECUR_CODE,TU.TLSUBBRID
|
147
|
FROM (
|
148
|
SELECT TS.TLNANME,TS.TLFullName,TS.RoleName,TS.TLSUBBRID,TS.SECUR_CODE FROM
|
149
|
dbo.TL_USER TS
|
150
|
UNION ALL
|
151
|
SELECT TM.TLNAME TLNANME,TS.TLFullName,TM.ROLE_NEW RoleName,TM.BRANCH_ID TLSUBBRID,TM.DEP_ID SECUR_CODE FROM
|
152
|
dbo.TL_SYS_ROLE_MAPPING TM
|
153
|
LEFT JOIN dbo.TL_USER TS ON TS.TLNANME=TM.TLNAME
|
154
|
WHERE CAST(TM.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
|
155
|
) TU
|
156
|
LEFT JOIN(
|
157
|
SELECT PC.DVDM_ID,PD.DEP_ID,PD.BRANCH_ID FROM dbo.PL_COSTCENTER PC
|
158
|
LEFT JOIN dbo.PL_COSTCENTER_DT PD ON PC.COST_ID=PD.COST_ID) Temp ON Temp.DEP_ID=TU.SECUR_CODE AND Temp.BRANCH_ID=TU.TLSUBBRID
|
159
|
) TempU ON (TempU.RoleName IN (SELECT VALUE FROM WSISPLIT(PL.ROLE_USER,'-')) OR EXISTS (SELECT ROLE_NEW FROM dbo.TL_SYS_ROLE_MAPPING TM WHERE ROLE_NEW IN (SELECT VALUE FROM WSISPLIT(PL.ROLE_USER,'-')) AND ROLE_OLD=TempU.RoleName AND (TM.TLNAME IS NULL OR TM.TLNAME=''))) AND (TempU.TLSUBBRID=PL.BRANCH_ID OR PL.BRANCH_ID IS NULL OR PL.BRANCH_ID='')
|
160
|
AND (TempU.SECUR_CODE=PL.DEP_ID OR PL.DEP_ID IS NULL OR PL.DEP_ID='')
|
161
|
|
162
|
WHERE PL.REQ_ID =@p_REQ_ID AND PL.STATUS='C'
|
163
|
END
|
164
|
END
|
165
|
|
166
|
ELSE IF(@p_TYPE LIKE 'PYC%')
|
167
|
BEGIN
|
168
|
IF(@PROCESS_CURR='DMMS')
|
169
|
BEGIN
|
170
|
SELECT distinct PL.REQ_ID,PL.PROCESS_ID,CASE WHEN CD.DVDM_NAME IS NOT NULL AND CD.DVDM_NAME <> '' THEN CD.DVDM_NAME ELSE BR.BRANCH_NAME END AS DVDM_NAME,CASE WHEN TempC.ID IS NULL THEN TempU.TLNANME ELSE TU.TLNANME END AS TLNAME,CASE WHEN TempC.ID IS NULL THEN TempU.TLFullName ELSE TU.TLFullName END AS TLFullName,CASE WHEN TempC.ID IS NULL THEN PL.NOTES ELSE TempC.CONTENT END AS NOTES FROM dbo.PL_REQUEST_PROCESS PL
|
171
|
LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=PL.DVDM_ID
|
172
|
LEFT JOIN dbo.TR_REQUEST_DOC TR ON TR.REQ_ID=PL.REQ_ID
|
173
|
LEFT JOIN CM_BRANCH BR ON PL.BRANCH_ID = BR.BRANCH_ID
|
174
|
LEFT JOIN
|
175
|
(
|
176
|
SELECT PRC.ID, PRC.PROCESS_ID,PRC.REQ_ID,PRC.TLNAME,AC.CONTENT FROM dbo.PL_REQUEST_PROCESS_CHILD PRC
|
177
|
LEFT JOIN dbo.CM_ALLCODE AC ON AC.CDVAL=PRC.TYPE_JOB AND AC.CDNAME='JOB_TYPE' AND CDTYPE='REQ'
|
178
|
WHERE (PRC.STATUS_JOB='C' OR PRC.STATUS_JOB='R' )
|
179
|
)TempC ON TempC.PROCESS_ID =PL.ID AND PL.IS_HAS_CHILD=1
|
180
|
LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=TempC.TLNAME
|
181
|
LEFT JOIN
|
182
|
(
|
183
|
SELECT TU.TLNANME,TU.TLFullName,TU.RoleName,Temp.DMMS_ID
|
184
|
FROM
|
185
|
(
|
186
|
SELECT TS.TLNANME,TS.TLFullName,TS.RoleName,TS.TLSUBBRID,TS.SECUR_CODE FROM
|
187
|
dbo.TL_USER TS
|
188
|
UNION ALL
|
189
|
SELECT TM.TLNAME TLNANME,TS.TLFullName,TM.ROLE_NEW RoleName,TM.BRANCH_ID TLSUBBRID,TM.DEP_ID SECUR_CODE FROM
|
190
|
dbo.TL_SYS_ROLE_MAPPING TM
|
191
|
LEFT JOIN dbo.TL_USER TS ON TS.TLNANME=TM.TLNAME
|
192
|
WHERE CAST(TM.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
|
193
|
) TU
|
194
|
LEFT JOIN dbo.CM_BRANCH CB ON CB.BRANCH_ID=TU.TLSUBBRID
|
195
|
LEFT JOIN(
|
196
|
SELECT PC.DMMS_ID,PC.DEP_ID,PC.BRANCH_ID FROM dbo.CM_DMMS PC
|
197
|
UNION ALL
|
198
|
SELECT DVDM.DVDM_ID AS DMMS_ID,DVDM.DEP_ID,DVDM.BRANCH_ID FROM
|
199
|
(
|
200
|
SELECT CD.DVDM_ID,PCDT.BRANCH_ID,PCDT.DEP_ID FROM dbo.CM_DVDM CD
|
201
|
LEFT JOIN dbo.PL_COSTCENTER PC ON PC.DVDM_ID=CD.DVDM_ID
|
202
|
LEFT JOIN dbo.PL_COSTCENTER_DT PCDT ON PCDT.COST_ID = PC.COST_ID
|
203
|
WHERE CD.IS_KHOI <>1
|
204
|
GROUP BY CD.DVDM_ID,PCDT.BRANCH_ID,PCDT.DEP_ID
|
205
|
) DVDM
|
206
|
) Temp ON (Temp.DEP_ID=TU.SECUR_CODE OR CB.BRANCH_TYPE<>'HS') AND Temp.BRANCH_ID=TU.TLSUBBRID
|
207
|
|
208
|
) TempU ON (TempU.RoleName=PL.ROLE_USER OR PL.ROLE_USER IN (SELECT ROLE_NEW FROM dbo.TL_SYS_ROLE_MAPPING TM WHERE TM.ROLE_OLD=TempU.RoleName AND (TM.TLNAME IS NULL OR TM.TLNAME=''))) AND (TempU.DMMS_ID=TR.DMMS_ID) AND TempC.ID IS NULL
|
209
|
|
210
|
WHERE PL.REQ_ID =@p_REQ_ID AND PL.STATUS='C'
|
211
|
END
|
212
|
ELSE IF(@IS_HAS_CHILD=0 OR @IS_HAS_CHILD IS NULL)
|
213
|
|
214
|
BEGIN
|
215
|
SELECT distinct PL.REQ_ID,PL.PROCESS_ID,CASE WHEN CD.DVDM_NAME IS NOT NULL AND CD.DVDM_NAME <> '' THEN CD.DVDM_NAME ELSE BR.BRANCH_NAME END AS DVDM_NAME,TempU.TLNANME AS TLNAME,TempU.TLFullName,PL.NOTES FROM dbo.PL_REQUEST_PROCESS PL
|
216
|
LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=PL.DVDM_ID
|
217
|
LEFT JOIN CM_BRANCH BR ON PL.BRANCH_ID = BR.BRANCH_ID
|
218
|
LEFT JOIN
|
219
|
(
|
220
|
SELECT TU.TLNANME,TU.TLFullName,TU.RoleName,Temp.DVDM_ID,TU.SECUR_CODE,TU.TLSUBBRID
|
221
|
FROM (
|
222
|
SELECT TS.TLNANME,TS.TLFullName,TS.RoleName,TS.TLSUBBRID,TS.SECUR_CODE FROM
|
223
|
dbo.TL_USER TS
|
224
|
UNION ALL
|
225
|
SELECT TM.TLNAME TLNANME,TS.TLFullName,TM.ROLE_NEW RoleName,TM.BRANCH_ID TLSUBBRID,TM.DEP_ID SECUR_CODE FROM
|
226
|
dbo.TL_SYS_ROLE_MAPPING TM
|
227
|
LEFT JOIN dbo.TL_USER TS ON TS.TLNANME=TM.TLNAME
|
228
|
WHERE CAST(TM.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
|
229
|
) TU
|
230
|
LEFT JOIN
|
231
|
(
|
232
|
SELECT PC.DVDM_ID,PD.DEP_ID,PD.BRANCH_ID FROM dbo.PL_COSTCENTER PC
|
233
|
LEFT JOIN dbo.PL_COSTCENTER_DT PD ON PC.COST_ID=PD.COST_ID
|
234
|
) Temp ON Temp.DEP_ID=TU.SECUR_CODE AND Temp.BRANCH_ID=TU.TLSUBBRID
|
235
|
) TempU ON (TempU.RoleName=PL.ROLE_USER OR PL.ROLE_USER IN (SELECT ROLE_NEW FROM dbo.TL_SYS_ROLE_MAPPING TM WHERE ROLE_OLD=TempU.RoleName AND (TM.TLNAME IS NULL OR TM.TLNAME=''))) AND (TempU.TLSUBBRID=PL.BRANCH_ID OR PL.BRANCH_ID IS NULL OR PL.BRANCH_ID='')
|
236
|
AND (TempU.SECUR_CODE=PL.DEP_ID OR PL.DEP_ID IS NULL OR PL.DEP_ID='')
|
237
|
AND (TempU.DVDM_ID=PL.DVDM_ID OR PL.DVDM_ID IS NULL OR PL.DVDM_ID ='')
|
238
|
WHERE REQ_ID =@p_REQ_ID AND STATUS='C'
|
239
|
|
240
|
END
|
241
|
ELSE IF(@IS_HAS_CHILD=1)
|
242
|
BEGIN
|
243
|
SELECT distinct PL.REQ_ID,PL.PROCESS_ID,CASE WHEN CD.DVDM_NAME IS NOT NULL AND CD.DVDM_NAME <> '' THEN CD.DVDM_NAME ELSE BR.BRANCH_NAME END AS DVDM_NAME,CASE WHEN TempC.ID IS NULL THEN TempU.TLNANME ELSE TU.TLNANME END AS TLNAME,CASE WHEN TempC.ID IS NULL THEN TempU.TLFullName ELSE TU.TLFullName END AS TLFullName,CASE WHEN TempC.ID IS NULL THEN PL.NOTES ELSE TempC.CONTENT END AS NOTES FROM dbo.PL_REQUEST_PROCESS PL
|
244
|
LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=PL.DVDM_ID
|
245
|
LEFT JOIN CM_BRANCH BR ON PL.BRANCH_ID = BR.BRANCH_ID
|
246
|
LEFT JOIN
|
247
|
(
|
248
|
SELECT PRC.ID, PRC.PROCESS_ID,PRC.REQ_ID,PRC.TLNAME,AC.CONTENT FROM dbo.PL_REQUEST_PROCESS_CHILD PRC
|
249
|
LEFT JOIN dbo.CM_ALLCODE AC ON AC.CDVAL=PRC.TYPE_JOB AND AC.CDNAME='JOB_TYPE' AND CDTYPE='REQ'
|
250
|
WHERE (PRC.STATUS_JOB='C' OR PRC.STATUS_JOB='R' )
|
251
|
)TempC ON TempC.PROCESS_ID =PL.ID AND PL.IS_HAS_CHILD=1
|
252
|
LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=TempC.TLNAME
|
253
|
LEFT JOIN
|
254
|
(
|
255
|
SELECT TU.TLNANME,TU.TLFullName,TU.RoleName,Temp.DVDM_ID,TU.SECUR_CODE,TU.TLSUBBRID
|
256
|
FROM (
|
257
|
SELECT TS.TLNANME,TS.TLFullName,TS.RoleName,TS.TLSUBBRID,TS.SECUR_CODE FROM
|
258
|
dbo.TL_USER TS
|
259
|
UNION ALL
|
260
|
SELECT TM.TLNAME TLNANME,TS.TLFullName,TM.ROLE_NEW RoleName,TM.BRANCH_ID TLSUBBRID,TM.DEP_ID SECUR_CODE FROM
|
261
|
dbo.TL_SYS_ROLE_MAPPING TM
|
262
|
LEFT JOIN dbo.TL_USER TS ON TS.TLNANME=TM.TLNAME
|
263
|
WHERE CAST(TM.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
|
264
|
) TU
|
265
|
LEFT JOIN(
|
266
|
SELECT PC.DVDM_ID,PD.DEP_ID,PD.BRANCH_ID FROM dbo.PL_COSTCENTER PC
|
267
|
LEFT JOIN dbo.PL_COSTCENTER_DT PD ON PC.COST_ID=PD.COST_ID) Temp ON Temp.DEP_ID=TU.SECUR_CODE AND Temp.BRANCH_ID=TU.TLSUBBRID
|
268
|
) TempU ON (TempU.RoleName=PL.ROLE_USER OR PL.ROLE_USER IN (SELECT ROLE_NEW FROM dbo.TL_SYS_ROLE_MAPPING TM WHERE ROLE_OLD=TempU.RoleName AND (TM.TLNAME IS NULL OR TM.TLNAME=''))) AND (TempU.TLSUBBRID=PL.BRANCH_ID OR PL.BRANCH_ID IS NULL OR PL.BRANCH_ID='')
|
269
|
AND (TempU.SECUR_CODE=PL.DEP_ID OR PL.DEP_ID IS NULL OR PL.DEP_ID='')
|
270
|
AND (TempU.DVDM_ID=PL.DVDM_ID OR PL.DVDM_ID IS NULL OR PL.DVDM_ID ='')
|
271
|
WHERE PL.REQ_ID =@p_REQ_ID AND PL.STATUS='C'
|
272
|
END
|
273
|
END
|
274
|
|
275
|
ELSE IF(@p_TYPE = 'INVENT')
|
276
|
BEGIN
|
277
|
SET @SIGN_USER = (SELECT SIGN_USER FROM dbo.ASS_INVENTORY_MASTER WHERE INVENT_ID = @p_REQ_ID)
|
278
|
SET @CURENT_PROCESS = (SELECT TOP 1 PROCESS_ID FROM PL_REQUEST_PROCESS WHERE REQ_ID = @p_REQ_ID AND STATUS='C')
|
279
|
|
280
|
-- Nếu có cấp phê duyệt trung gian
|
281
|
IF(@SIGN_USER IS NOT NULL AND @SIGN_USER <> '' AND @CURENT_PROCESS = 'SIGN')
|
282
|
BEGIN
|
283
|
SELECT distinct PL.REQ_ID,PL.PROCESS_ID, BR.BRANCH_NAME AS DVDM_NAME,TU.TLNANME AS TLNAME,TU.TLFullName,PL.NOTES
|
284
|
FROM dbo.PL_REQUEST_PROCESS PL
|
285
|
LEFT JOIN dbo.ASS_INVENTORY_MASTER AI ON AI.INVENT_ID = PL.REQ_ID
|
286
|
LEFT JOIN CM_BRANCH BR ON PL.BRANCH_ID = BR.BRANCH_ID
|
287
|
LEFT JOIN dbo.TL_USER TU ON TU.TLNANME = AI.SIGN_USER
|
288
|
WHERE PL.REQ_ID = @p_REQ_ID AND STATUS='C' AND PL.PROCESS_ID = 'SIGN'
|
289
|
END
|
290
|
ELSE IF(@CURENT_PROCESS = 'APPNEW')
|
291
|
BEGIN
|
292
|
SELECT PL.REQ_ID, Pl.PROCESS_ID,BR.BRANCH_NAME AS DVDM_NAME, TmpU.TLNANME, TmpU.TLFullName, PL.NOTES
|
293
|
FROM dbo.PL_REQUEST_PROCESS PL
|
294
|
LEFT JOIN (
|
295
|
SELECT * FROM [dbo].[FN_GET_USER_BY_ROLE] ('', '', '')
|
296
|
) TmpU ON 1=1
|
297
|
LEFT JOIN dbo.CM_BRANCH BR ON BR.BRANCH_ID = PL.BRANCH_ID
|
298
|
WHERE PL.REQ_ID = @p_REQ_ID AND PL.STATUS = 'C'
|
299
|
AND ((TmpU.ROLE_OLD = PL.ROLE_USER OR TmpU.ROLE_NEW = PL.ROLE_USER) OR PL.ROLE_USER IS NULL OR PL.ROLE_USER = '')
|
300
|
AND ((BR.BRANCH_TYPE = 'HS' AND TmpU.BRANCH_ID = PL.BRANCH_ID AND TmpU.DEP_ID = PL.DEP_ID)
|
301
|
OR (BR.BRANCH_TYPE <> 'HS' AND TmpU.BRANCH_ID = PL.BRANCH_ID)
|
302
|
OR (PL.BRANCH_ID IS NULL OR PL.BRANCH_ID = '')
|
303
|
)
|
304
|
END
|
305
|
ELSE IF(@CURENT_PROCESS <> 'APPNEW')
|
306
|
BEGIN
|
307
|
SELECT PL.REQ_ID, Pl.PROCESS_ID,BR.BRANCH_NAME AS DVDM_NAME, TU.TLNANME, TU.TLFullName, PL.NOTES
|
308
|
FROM dbo.PL_REQUEST_PROCESS PL
|
309
|
LEFT JOIN dbo.TL_USER TU ON TU.TLNANME = PL.ROLE_USER
|
310
|
LEFT JOIN dbo.CM_BRANCH BR ON BR.BRANCH_ID = TU.TLSUBBRID
|
311
|
WHERE PL.REQ_ID = @p_REQ_ID AND PL.STATUS = 'C'
|
312
|
END
|
313
|
END
|
314
|
|
315
|
----------------BAODNQ 6/6/2022 TỜ TRÌNH CHỈ ĐỊNH THẦU--------------
|
316
|
ELSE IF (@p_TYPE = 'TT_CDT')
|
317
|
BEGIN
|
318
|
SET @SIGN_USER = (SELECT SIGN_USER FROM PL_APPOINT_CONTRACTOR WHERE REQ_ID = @p_REQ_ID)
|
319
|
SET @CURENT_PROCESS = (
|
320
|
SELECT TOP 1 PROCESS_ID FROM PL_REQUEST_PROCESS WHERE REQ_ID = @p_REQ_ID AND STATUS = 'C'
|
321
|
)
|
322
|
-------------CÓ CẤP DUYỆT TRUNG GIAN-----------
|
323
|
IF(@SIGN_USER IS NOT NULL AND @SIGN_USER <> '' AND @CURENT_PROCESS = 'SIGN')
|
324
|
BEGIN
|
325
|
SELECT DISTINCT
|
326
|
PRP.REQ_ID,
|
327
|
PRP.PROCESS_ID,
|
328
|
CASE
|
329
|
WHEN CD.DVDM_NAME IS NOT NULL AND CD.DVDM_NAME <> '' THEN CD.DVDM_NAME
|
330
|
ELSE CB.BRANCH_NAME
|
331
|
END AS DVDM_NAME,
|
332
|
TLUSER.TLNANME AS TLNAME, TLUSER.TLFullName, PRP.NOTES
|
333
|
FROM PL_REQUEST_PROCESS PRP
|
334
|
LEFT JOIN CM_DVDM CD ON PRP.DVDM_ID = CD.DVDM_ID
|
335
|
LEFT JOIN(
|
336
|
SELECT
|
337
|
TU.TLNANME, TU.TLFullName, TU.RoleName, PCOST.DVDM_ID, TU.SECUR_CODE,
|
338
|
TU.DEP_ID, TU.TLSUBBRID
|
339
|
FROM TL_USER TU
|
340
|
LEFT JOIN (
|
341
|
SELECT PC.DVDM_ID, PD.BRANCH_ID, PD.DEP_ID
|
342
|
FROM PL_COSTCENTER PC
|
343
|
LEFT JOIN PL_COSTCENTER_DT PD ON PD.COST_ID = PC.COST_ID
|
344
|
) PCOST ON TU.TLSUBBRID = PCOST.BRANCH_ID AND TU.DEP_ID = PCOST.DEP_ID
|
345
|
|
346
|
) TLUSER ON (
|
347
|
TLUSER.RoleName = PRP.ROLE_USER
|
348
|
OR PRP.ROLE_USER IN (
|
349
|
SELECT ROLE_NEW
|
350
|
FROM TL_SYS_ROLE_MAPPING TM
|
351
|
WHERE TM.ROLE_OLD = TLUSER.RoleName
|
352
|
AND TM.TLNAME IS NULL OR TM.TLNAME = ''
|
353
|
)
|
354
|
)
|
355
|
AND (TLUSER.TLSUBBRID = PRP.BRANCH_ID OR PRP.BRANCH_ID IS NULL OR PRP.BRANCH_ID = '')
|
356
|
AND (TLUSER.DEP_ID = PRP.DEP_ID OR PRP.DEP_ID IS NULL OR PRP.DEP_ID = '')
|
357
|
AND (TLUSER.DVDM_ID = PRP.DVDM_ID OR PRP.DVDM_ID IS NULL OR PRP.DVDM_ID = '')
|
358
|
LEFT JOIN PL_APPOINT_CONTRACTOR PAC ON PRP.REQ_ID = PAC.REQ_ID
|
359
|
LEFT JOIN CM_BRANCH CB ON PRP.BRANCH_ID = CB.BRANCH_ID
|
360
|
WHERE PRP.REQ_ID = @p_REQ_ID
|
361
|
AND STATUS = 'C'
|
362
|
AND (PRP.PROCESS_ID = 'SIGN' AND TLUSER.TLNANME = PAC.SIGN_USER)
|
363
|
END
|
364
|
ELSE
|
365
|
----------KO CÓ CẤP DUYỆT TRUNG GIAN-------------
|
366
|
BEGIN
|
367
|
SELECT DISTINCT
|
368
|
PRP.REQ_ID,
|
369
|
PRP.PROCESS_ID,
|
370
|
CASE
|
371
|
WHEN CD.DVDM_NAME IS NOT NULL AND CD.DVDM_NAME <> '' THEN CD.DVDM_NAME
|
372
|
ELSE CB.BRANCH_NAME
|
373
|
END AS DVDM_NAME,
|
374
|
TLUSER.TLNANME AS TLNAME, TLUSER.TLFullName, PRP.NOTES
|
375
|
FROM PL_REQUEST_PROCESS PRP
|
376
|
LEFT JOIN CM_DVDM CD ON CD.DVDM_ID = PRP.DVDM_ID
|
377
|
LEFT JOIN
|
378
|
(
|
379
|
SELECT TU.TLNANME, TU.TLFullName, TU.RoleName, PCOST.DVDM_ID, TU.SECUR_CODE,
|
380
|
TU.DEP_ID, TU.TLSUBBRID
|
381
|
FROM TL_USER TU
|
382
|
LEFT JOIN (
|
383
|
SELECT PC.DVDM_ID, PD.BRANCH_ID, PD.DEP_ID
|
384
|
FROM PL_COSTCENTER PC
|
385
|
LEFT JOIN PL_COSTCENTER_DT PD ON PD.COST_ID = PC.COST_ID
|
386
|
) PCOST ON TU.TLSUBBRID = PCOST.BRANCH_ID AND TU.DEP_ID = PCOST.DEP_ID
|
387
|
UNION ALL
|
388
|
SELECT TM.TLNAME, TLU.TLFullName, TM.ROLE_NEW AS RoleName, PCOST.DVDM_ID,
|
389
|
TM.DEP_ID AS SECUR_CODE, TM.DEP_ID AS DEP_ID, TM.BRANCH_ID AS TLSUBBRID
|
390
|
FROM TL_SYS_ROLE_MAPPING TM
|
391
|
LEFT JOIN TL_USER TLU ON TM.TLNAME = TLU.TLNANME
|
392
|
LEFT JOIN (
|
393
|
SELECT PC.DVDM_ID, PD.BRANCH_ID, PD.DEP_ID
|
394
|
FROM PL_COSTCENTER PC
|
395
|
LEFT JOIN PL_COSTCENTER_DT PD ON PD.COST_ID = PC.COST_ID
|
396
|
) PCOST ON TM.BRANCH_ID = PCOST.BRANCH_ID AND TM.DEP_ID = PCOST.DEP_ID
|
397
|
WHERE CAST(TM.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
|
398
|
) TLUSER ON (TLUSER.RoleName = PRP.ROLE_USER)
|
399
|
AND (TLUSER.TLSUBBRID = PRP.BRANCH_ID OR PRP.BRANCH_ID IS NULL OR PRP.BRANCH_ID = '')
|
400
|
AND (
|
401
|
((SELECT TOP 1 BRANCH_TYPE FROM CM_BRANCH WHERE PRP.BRANCH_ID = BRANCH_ID) = 'HS'
|
402
|
AND TLUSER.SECUR_CODE = PRP.DEP_ID OR PRP.DEP_ID IS NULL OR PRP.DEP_ID = '')
|
403
|
OR (SELECT TOP 1 BRANCH_TYPE FROM CM_BRANCH WHERE PRP.BRANCH_ID = BRANCH_ID) <> 'HS'
|
404
|
)
|
405
|
AND (TLUSER.DVDM_ID = PRP.DVDM_ID OR PRP.DVDM_ID IS NULL OR PRP.DVDM_ID = '')
|
406
|
LEFT JOIN CM_BRANCH CB ON PRP.BRANCH_ID = CB.BRANCH_ID
|
407
|
WHERE PRP.REQ_ID = @p_REQ_ID
|
408
|
AND STATUS = 'C'
|
409
|
END
|
410
|
END
|
411
|
|
412
|
-----------------------BAODNQ 13/7/2022 ĐÁNH GIÁ NCC---------------------------
|
413
|
ELSE IF (@p_TYPE = 'RATE_SUP')
|
414
|
BEGIN
|
415
|
IF(@PROCESS_CURR='DMMS')
|
416
|
BEGIN
|
417
|
SELECT distinct PL.REQ_ID,PL.PROCESS_ID,CASE WHEN CD.DVDM_NAME IS NOT NULL AND CD.DVDM_NAME <> '' THEN CD.DVDM_NAME ELSE BR.BRANCH_NAME END AS DVDM_NAME,CASE WHEN TempC.ID IS NULL THEN TempU.TLNANME ELSE TU.TLNANME END AS TLNAME,CASE WHEN TempC.ID IS NULL THEN TempU.TLFullName ELSE TU.TLFullName END AS TLFullName,CASE WHEN TempC.ID IS NULL THEN PL.NOTES ELSE TempC.CONTENT END AS NOTES FROM dbo.PL_REQUEST_PROCESS PL
|
418
|
LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=PL.DVDM_ID
|
419
|
LEFT JOIN TR_RATE_SUPPLIER_MASTER TR ON TR.RATE_ID=PL.REQ_ID
|
420
|
LEFT JOIN CM_BRANCH BR ON PL.BRANCH_ID = BR.BRANCH_ID
|
421
|
LEFT JOIN
|
422
|
(
|
423
|
SELECT PRC.ID, PRC.PROCESS_ID,PRC.REQ_ID,PRC.TLNAME,AC.CONTENT FROM dbo.PL_REQUEST_PROCESS_CHILD PRC
|
424
|
LEFT JOIN dbo.CM_ALLCODE AC ON AC.CDVAL=PRC.TYPE_JOB AND AC.CDNAME='JOB_TYPE' AND CDTYPE='REQ'
|
425
|
WHERE (PRC.STATUS_JOB='C' OR PRC.STATUS_JOB='R' )
|
426
|
)TempC ON TempC.PROCESS_ID =PL.ID AND PL.IS_HAS_CHILD=1
|
427
|
LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=TempC.TLNAME
|
428
|
LEFT JOIN
|
429
|
(
|
430
|
SELECT TU.TLNANME,TU.TLFullName,TU.RoleName,Temp.DMMS_ID
|
431
|
FROM
|
432
|
(
|
433
|
SELECT TS.TLNANME,TS.TLFullName,
|
434
|
--TS.RoleName,
|
435
|
AR.DisplayName AS RoleName,
|
436
|
TS.TLSUBBRID,TS.SECUR_CODE FROM
|
437
|
dbo.TL_USER TS
|
438
|
JOIN AbpUserRoles AU ON TS.ID = AU.UserId
|
439
|
JOIN AbpRoles AR ON AU.RoleId = AR.Id
|
440
|
UNION ALL
|
441
|
SELECT TM.TLNAME TLNANME,TS.TLFullName,TM.ROLE_NEW RoleName,TM.BRANCH_ID TLSUBBRID,TM.DEP_ID SECUR_CODE FROM
|
442
|
dbo.TL_SYS_ROLE_MAPPING TM
|
443
|
LEFT JOIN dbo.TL_USER TS ON TS.TLNANME=TM.TLNAME
|
444
|
WHERE CAST(TM.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
|
445
|
) TU
|
446
|
LEFT JOIN dbo.CM_BRANCH CB ON CB.BRANCH_ID=TU.TLSUBBRID
|
447
|
LEFT JOIN(
|
448
|
SELECT PC.DMMS_ID,PC.DEP_ID,PC.BRANCH_ID FROM dbo.CM_DMMS PC
|
449
|
UNION ALL
|
450
|
SELECT DVDM.DVDM_ID AS DMMS_ID,DVDM.DEP_ID,DVDM.BRANCH_ID FROM
|
451
|
(
|
452
|
SELECT CD.DVDM_ID,PCDT.BRANCH_ID,PCDT.DEP_ID FROM dbo.CM_DVDM CD
|
453
|
LEFT JOIN dbo.PL_COSTCENTER PC ON PC.DVDM_ID=CD.DVDM_ID
|
454
|
LEFT JOIN dbo.PL_COSTCENTER_DT PCDT ON PCDT.COST_ID = PC.COST_ID
|
455
|
WHERE CD.IS_KHOI <>1
|
456
|
GROUP BY CD.DVDM_ID,PCDT.BRANCH_ID,PCDT.DEP_ID
|
457
|
) DVDM
|
458
|
) Temp ON (Temp.DEP_ID=TU.SECUR_CODE OR CB.BRANCH_TYPE<>'HS') AND Temp.BRANCH_ID=TU.TLSUBBRID
|
459
|
|
460
|
) TempU ON (
|
461
|
(TempU.RoleName=PL.ROLE_USER
|
462
|
OR (TempU.RoleName='KSV'
|
463
|
AND NOT EXISTS(SELECT TOP 1 PP.CHECKER_ID FROM PL_PROCESS PP WHERE PP.REQ_ID = @p_REQ_ID AND PP.PROCESS_ID = 'DMMS' AND PP.CHECKER_ID = TempU.TLNANME ORDER BY PP.APPROVE_DT DESC)
|
464
|
)
|
465
|
)
|
466
|
OR PL.ROLE_USER IN (SELECT ROLE_NEW FROM dbo.TL_SYS_ROLE_MAPPING TM WHERE TM.ROLE_OLD=TempU.RoleName AND (TM.TLNAME IS NULL OR TM.TLNAME=''))) AND (TempU.DMMS_ID=TR.DMMS_ID) AND TempC.ID IS NULL
|
467
|
|
468
|
WHERE PL.REQ_ID =@p_REQ_ID AND PL.STATUS='C'
|
469
|
END
|
470
|
IF(@IS_HAS_CHILD=0 OR @IS_HAS_CHILD IS NULL)
|
471
|
BEGIN
|
472
|
SET @SIGN_USER = (SELECT SIGN_USER FROM TR_RATE_SUPPLIER_MASTER WHERE RATE_ID = @p_REQ_ID)
|
473
|
SET @CURENT_PROCESS = (SELECT TOP 1 PROCESS_ID FROM PL_REQUEST_PROCESS WHERE REQ_ID = @p_REQ_ID AND STATUS='C')
|
474
|
|
475
|
-- Nếu có cấp phê duyệt trung gian
|
476
|
IF(@SIGN_USER IS NOT NULL AND @SIGN_USER <> '' AND @CURENT_PROCESS = 'SIGN')
|
477
|
BEGIN
|
478
|
SELECT distinct PL.REQ_ID,PL.PROCESS_ID, CASE WHEN CD.DVDM_NAME IS NOT NULL AND CD.DVDM_NAME <> '' THEN CD.DVDM_NAME ELSE BR.BRANCH_NAME END AS DVDM_NAME,TempU.TLNANME AS TLNAME,TempU.TLFullName,PL.NOTES FROM dbo.PL_REQUEST_PROCESS PL
|
479
|
LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=PL.DVDM_ID
|
480
|
LEFT JOIN
|
481
|
(
|
482
|
SELECT TU.TLNANME,TU.TLFullName,TU.RoleName,Temp.DVDM_ID,TU.SECUR_CODE,TU.TLSUBBRID FROM dbo.TL_USER TU
|
483
|
LEFT JOIN(
|
484
|
SELECT PC.DVDM_ID,PD.DEP_ID,PD.BRANCH_ID FROM dbo.PL_COSTCENTER PC
|
485
|
LEFT JOIN dbo.PL_COSTCENTER_DT PD ON PC.COST_ID=PD.COST_ID) Temp ON Temp.DEP_ID=TU.SECUR_CODE AND Temp.BRANCH_ID=TU.TLSUBBRID
|
486
|
) TempU ON (TempU.RoleName=PL.ROLE_USER OR PL.ROLE_USER IN (SELECT ROLE_NEW FROM dbo.TL_SYS_ROLE_MAPPING TM WHERE TM.ROLE_OLD=TempU.RoleName AND (TM.TLNAME IS NULL OR TM.TLNAME='')))
|
487
|
AND (TempU.TLSUBBRID=PL.BRANCH_ID OR PL.BRANCH_ID IS NULL OR PL.BRANCH_ID='')
|
488
|
AND (TempU.SECUR_CODE=PL.DEP_ID OR PL.DEP_ID IS NULL OR PL.DEP_ID='')
|
489
|
AND (TempU.DVDM_ID=PL.DVDM_ID OR PL.DVDM_ID IS NULL OR PL.DVDM_ID ='')
|
490
|
LEFT JOIN dbo.TR_RATE_SUPPLIER_MASTER TRS ON TRS.RATE_ID = PL.REQ_ID
|
491
|
LEFT JOIN CM_BRANCH BR ON PL.BRANCH_ID = BR.BRANCH_ID
|
492
|
WHERE PL.REQ_ID = @p_REQ_ID AND STATUS='C' AND (PL.PROCESS_ID = 'SIGN' AND TempU.TLNANME = TRS.SIGN_USER)
|
493
|
|
494
|
END
|
495
|
ELSE
|
496
|
BEGIN
|
497
|
SELECT distinct PL.REQ_ID,PL.PROCESS_ID,
|
498
|
CASE WHEN CD.DVDM_NAME IS NOT NULL AND CD.DVDM_NAME <> '' THEN CD.DVDM_NAME ELSE BR.BRANCH_NAME END AS DVDM_NAME,
|
499
|
TempU.TLNANME AS TLNAME,
|
500
|
TempU.TLFullName,
|
501
|
PL.NOTES
|
502
|
FROM dbo.PL_REQUEST_PROCESS PL
|
503
|
LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=PL.DVDM_ID
|
504
|
LEFT JOIN
|
505
|
(
|
506
|
SELECT TU.TLNANME,TU.TLFullName,TU.RoleName,Temp.DVDM_ID,TU.SECUR_CODE,TU.TLSUBBRID FROM dbo.TL_USER TU
|
507
|
LEFT JOIN(
|
508
|
SELECT PC.DVDM_ID,PD.DEP_ID,PD.BRANCH_ID FROM dbo.PL_COSTCENTER PC
|
509
|
LEFT JOIN dbo.PL_COSTCENTER_DT PD ON PC.COST_ID=PD.COST_ID) Temp ON Temp.DEP_ID=TU.SECUR_CODE AND Temp.BRANCH_ID=TU.TLSUBBRID
|
510
|
UNION ALL
|
511
|
SELECT TU.TLNAME,US.TLFullName,TU.ROLE_NEW RoleName,Temp.DVDM_ID,TU.DEP_ID SECUR_CODE,TU.BRANCH_ID TLSUBBRID
|
512
|
FROM dbo.TL_SYS_ROLE_MAPPING TU
|
513
|
LEFT JOIN dbo.TL_USER US ON US.TLNANME=TU.TLNAME
|
514
|
LEFT JOIN(
|
515
|
SELECT PC.DVDM_ID,PD.DEP_ID,PD.BRANCH_ID FROM dbo.PL_COSTCENTER PC
|
516
|
LEFT JOIN dbo.PL_COSTCENTER_DT PD ON PC.COST_ID=PD.COST_ID) Temp ON Temp.DEP_ID=TU.DEP_ID AND Temp.BRANCH_ID=TU.BRANCH_ID
|
517
|
WHERE CAST(TU.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
|
518
|
) TempU ON (TempU.RoleName=PL.ROLE_USER)
|
519
|
AND (TempU.TLSUBBRID=PL.BRANCH_ID OR PL.BRANCH_ID IS NULL OR PL.BRANCH_ID='')
|
520
|
AND (((SELECT TOP 1 BRANCH_TYPE FROM dbo.CM_BRANCH WHERE BRANCH_ID = PL.BRANCH_ID) = 'HS' AND TempU.SECUR_CODE=PL.DEP_ID OR PL.DEP_ID IS NULL OR PL.DEP_ID='')
|
521
|
OR (SELECT TOP 1 BRANCH_TYPE FROM dbo.CM_BRANCH WHERE BRANCH_ID = PL.BRANCH_ID) <> 'HS')
|
522
|
AND (TempU.DVDM_ID=PL.DVDM_ID OR PL.DVDM_ID IS NULL OR PL.DVDM_ID ='')
|
523
|
LEFT JOIN CM_BRANCH BR ON PL.BRANCH_ID = BR.BRANCH_ID
|
524
|
WHERE PL.REQ_ID = @p_REQ_ID AND STATUS='C'
|
525
|
END
|
526
|
END
|
527
|
ELSE IF(@IS_HAS_CHILD=1)
|
528
|
BEGIN
|
529
|
SELECT distinct PL.REQ_ID,PL.PROCESS_ID,CASE WHEN CD.DVDM_NAME IS NOT NULL AND CD.DVDM_NAME <> '' THEN CD.DVDM_NAME ELSE BR.BRANCH_NAME END AS DVDM_NAME,CASE WHEN TempC.ID IS NULL THEN TempU.TLNANME ELSE TU.TLNANME END AS TLNAME,CASE WHEN TempC.ID IS NULL THEN TempU.TLFullName ELSE TU.TLFullName END AS TLFullName,CASE WHEN TempC.ID IS NULL THEN PL.NOTES ELSE TempC.CONTENT END AS NOTES FROM dbo.PL_REQUEST_PROCESS PL
|
530
|
LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=PL.DVDM_ID
|
531
|
LEFT JOIN CM_BRANCH BR ON PL.BRANCH_ID = BR.BRANCH_ID
|
532
|
LEFT JOIN
|
533
|
(
|
534
|
SELECT PRC.ID, PRC.PROCESS_ID,PRC.REQ_ID,PRC.TLNAME,AC.CONTENT FROM dbo.PL_REQUEST_PROCESS_CHILD PRC
|
535
|
LEFT JOIN dbo.CM_ALLCODE AC ON AC.CDVAL=PRC.TYPE_JOB AND AC.CDNAME='JOB_TYPE' AND CDTYPE='REQ'
|
536
|
WHERE (PRC.STATUS_JOB='C' OR PRC.STATUS_JOB='R' )
|
537
|
)TempC ON TempC.PROCESS_ID =PL.ID AND PL.IS_HAS_CHILD=1
|
538
|
LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=TempC.TLNAME
|
539
|
LEFT JOIN
|
540
|
(
|
541
|
SELECT TU.TLNANME,TU.TLFullName,TU.RoleName,Temp.DVDM_ID,TU.SECUR_CODE,TU.TLSUBBRID
|
542
|
FROM (
|
543
|
SELECT TS.TLNANME,TS.TLFullName,TS.RoleName,TS.TLSUBBRID,TS.SECUR_CODE FROM
|
544
|
dbo.TL_USER TS
|
545
|
UNION ALL
|
546
|
SELECT TM.TLNAME TLNANME,TS.TLFullName,TM.ROLE_NEW RoleName,TM.BRANCH_ID TLSUBBRID,TM.DEP_ID SECUR_CODE FROM
|
547
|
dbo.TL_SYS_ROLE_MAPPING TM
|
548
|
LEFT JOIN dbo.TL_USER TS ON TS.TLNANME=TM.TLNAME
|
549
|
WHERE CAST(TM.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
|
550
|
) TU
|
551
|
LEFT JOIN(
|
552
|
SELECT PC.DVDM_ID,PD.DEP_ID,PD.BRANCH_ID FROM dbo.PL_COSTCENTER PC
|
553
|
LEFT JOIN dbo.PL_COSTCENTER_DT PD ON PC.COST_ID=PD.COST_ID) Temp ON Temp.DEP_ID=TU.SECUR_CODE AND Temp.BRANCH_ID=TU.TLSUBBRID
|
554
|
) TempU ON (TempU.RoleName=PL.ROLE_USER OR PL.ROLE_USER IN (SELECT ROLE_NEW FROM dbo.TL_SYS_ROLE_MAPPING TM WHERE ROLE_OLD=TempU.RoleName AND (TM.TLNAME IS NULL OR TM.TLNAME=''))) AND (TempU.TLSUBBRID=PL.BRANCH_ID OR PL.BRANCH_ID IS NULL OR PL.BRANCH_ID='')
|
555
|
AND (TempU.SECUR_CODE=PL.DEP_ID OR PL.DEP_ID IS NULL OR PL.DEP_ID='')
|
556
|
AND (TempU.DVDM_ID=PL.DVDM_ID OR PL.DVDM_ID IS NULL OR PL.DVDM_ID ='')
|
557
|
WHERE PL.REQ_ID =@p_REQ_ID AND PL.STATUS='C'
|
558
|
END
|
559
|
END
|
560
|
|
561
|
END
|
562
|
--EXEC CM_GOODS_Search '','','','','',0,'','','','','','','','',100
|