1
|
ALTER PROC [dbo].[CON_LAYOUT_BLUEPRINT_APP]
|
2
|
@p_CON_LAYOUT_BLUEPRINT_ID VARCHAR(15) = NULL,
|
3
|
@p_AUTH_STATUS VARCHAR(1) = NULL,
|
4
|
@p_CHECKER_ID varchar(15) = NULL,
|
5
|
@p_APPROVE_DT varchar(20)
|
6
|
AS
|
7
|
BEGIN TRANSACTION
|
8
|
BEGIN
|
9
|
DECLARE @PROCESS_ID VARCHAR(15),@LAYOUT_TYPE VARCHAR(15),@ERRORS NVARCHAR(2000),@BRANCH_ID VARCHAR(15),@DEPT_ID VARCHAR(15),@DVDM_ID VARCHAR(15),@BRANCH_TYPE VARCHAR(15),
|
10
|
@USER_BRANCH VARCHAR(15),@USER_DEPT VARCHAR(15)
|
11
|
SELECT @PROCESS_ID = B.PROCESS_ID,
|
12
|
@LAYOUT_TYPE = LAYOUT_TYPE,
|
13
|
@BRANCH_ID = P.BRANCH_ID,
|
14
|
@DEPT_ID = P.DEP_ID,
|
15
|
@DVDM_ID = P.DVDM_ID,
|
16
|
@BRANCH_TYPE = BR.BRANCH_TYPE
|
17
|
FROM CON_LAYOUT_BLUEPRINT B
|
18
|
INNER JOIN dbo.PL_REQUEST_PROCESS P ON B.CON_LAYOUT_BLUEPRINT_ID = P.REQ_ID AND B.PROCESS_ID = P.PROCESS_ID
|
19
|
LEFT JOIN dbo.CM_BRANCH BR ON BR.BRANCH_ID = P.BRANCH_ID
|
20
|
WHERE CON_LAYOUT_BLUEPRINT_ID = @p_CON_LAYOUT_BLUEPRINT_ID
|
21
|
SELECT @USER_BRANCH = TLSUBBRID, @USER_DEPT = SECUR_CODE
|
22
|
FROM dbo.TL_USER
|
23
|
WHERE TLNANME = @p_CHECKER_ID
|
24
|
|
25
|
-- LAY THONG TIN PHAN QUYEN KIEM NHIEM CUA USER
|
26
|
DECLARE @ASSIGN_ROLES TABLE (BRANCH_ID VARCHAR(20), DEPT_ID VARCHAR(15), ROLE_ID VARCHAR(20))
|
27
|
INSERT INTO @ASSIGN_ROLES SELECT * FROM [dbo].[TL_USER_GET_ASSIGNED_BRANCH](@p_CHECKER_ID)
|
28
|
-- LAY THONG TIN PHAN QUYEN HIEN TAI CUA USER
|
29
|
DECLARE @USER_ROLES TABLE (BRANCH_ID VARCHAR(20), DEPT_ID VARCHAR(15), ROLE_ID VARCHAR(20))
|
30
|
INSERT INTO @USER_ROLES SELECT * FROM [dbo].[TL_USER_GET_ROLES](@p_CHECKER_ID)
|
31
|
|
32
|
DECLARE @TMP TABLE (BRANCH_ID VARCHAR(15), DEPT_ID VARCHAR(15))
|
33
|
|
34
|
IF (@PROCESS_ID = 'SIGN')
|
35
|
BEGIN
|
36
|
IF (@p_CHECKER_ID <> (SELECT TOP 1 SIGN_USER FROM dbo.CON_LAYOUT_BLUEPRINT WHERE CON_LAYOUT_BLUEPRINT_ID = CON_LAYOUT_BLUEPRINT_ID))
|
37
|
BEGIN
|
38
|
SET @ERRORS = N'Người dùng không thể duyệt layout này vì không phải cấp phê duyệt trung gian'
|
39
|
ROLLBACK TRANSACTION
|
40
|
SELECT '-1' as Result, @ERRORS ErrorDesc
|
41
|
RETURN -1
|
42
|
END
|
43
|
|
44
|
UPDATE PL_REQUEST_PROCESS SET [STATUS] = 'P', CHECKER_ID = @p_CHECKER_ID, APPROVE_DT = CONVERT(DATETIME, @p_APPROVE_DT, 103) WHERE REQ_ID = @p_CON_LAYOUT_BLUEPRINT_ID AND PROCESS_ID = @PROCESS_ID
|
45
|
UPDATE PL_REQUEST_PROCESS SET [STATUS] = 'C' WHERE REQ_ID = @p_CON_LAYOUT_BLUEPRINT_ID AND PROCESS_ID = 'APPNEW'
|
46
|
UPDATE CON_LAYOUT_BLUEPRINT SET PROCESS_ID = 'APPNEW' WHERE CON_LAYOUT_BLUEPRINT_ID = @p_CON_LAYOUT_BLUEPRINT_ID
|
47
|
INSERT INTO dbo.PL_PROCESS
|
48
|
(
|
49
|
REQ_ID,
|
50
|
PROCESS_ID,
|
51
|
CHECKER_ID,
|
52
|
APPROVE_DT,
|
53
|
PROCESS_DESC,
|
54
|
NOTES
|
55
|
)
|
56
|
VALUES
|
57
|
( @p_CON_LAYOUT_BLUEPRINT_ID,
|
58
|
'APP',
|
59
|
@p_CHECKER_ID,
|
60
|
GETDATE(),
|
61
|
N'Phê duyệt layout bản vẽ thành công' ,
|
62
|
N'Cấp phê duyệt trung gian phê duyệt thành công'
|
63
|
)
|
64
|
END
|
65
|
ELSE IF (@PROCESS_ID = 'APPNEW')
|
66
|
BEGIN
|
67
|
IF ((@BRANCH_TYPE = 'HS'
|
68
|
AND NOT EXISTS (SELECT *
|
69
|
FROM (SELECT * FROM @ASSIGN_ROLES WHERE ROLE_ID IN ('GDDV','TP') UNION ALL SELECT * FROM @USER_ROLES WHERE ROLE_ID IN ('GDDV','TP')) T
|
70
|
WHERE T.BRANCH_ID = @BRANCH_ID AND T.DEPT_ID = @DEPT_ID))
|
71
|
OR (@BRANCH_TYPE <> 'HS'
|
72
|
AND NOT EXISTS (SELECT * FROM (SELECT *
|
73
|
FROM @ASSIGN_ROLES WHERE ROLE_ID IN ('GDDV','TPGD') UNION ALL SELECT * FROM @USER_ROLES WHERE ROLE_ID IN ('GDDV','TPGD')) T
|
74
|
WHERE T.BRANCH_ID = @BRANCH_ID))
|
75
|
)
|
76
|
BEGIN
|
77
|
SET @ERRORS = N'Người dùng không thể duyệt layout này vì không phải trưởng đơn vị'
|
78
|
ROLLBACK TRANSACTION
|
79
|
SELECT '-1' as Result, @ERRORS ErrorDesc
|
80
|
RETURN -1
|
81
|
END
|
82
|
|
83
|
UPDATE PL_REQUEST_PROCESS SET [STATUS] = 'P', CHECKER_ID = @p_CHECKER_ID, APPROVE_DT = CONVERT(DATETIME, @p_APPROVE_DT, 103) WHERE REQ_ID = @p_CON_LAYOUT_BLUEPRINT_ID AND PROCESS_ID = @PROCESS_ID
|
84
|
UPDATE PL_REQUEST_PROCESS SET [STATUS] = 'C' WHERE REQ_ID = @p_CON_LAYOUT_BLUEPRINT_ID AND PROCESS_ID = 'GDK_HT'
|
85
|
UPDATE CON_LAYOUT_BLUEPRINT SET PROCESS_ID = 'GDK_HT' WHERE CON_LAYOUT_BLUEPRINT_ID = @p_CON_LAYOUT_BLUEPRINT_ID
|
86
|
INSERT INTO dbo.PL_PROCESS
|
87
|
(
|
88
|
REQ_ID,
|
89
|
PROCESS_ID,
|
90
|
CHECKER_ID,
|
91
|
APPROVE_DT,
|
92
|
PROCESS_DESC,
|
93
|
NOTES
|
94
|
)
|
95
|
VALUES
|
96
|
( @p_CON_LAYOUT_BLUEPRINT_ID,
|
97
|
'APP',
|
98
|
@p_CHECKER_ID,
|
99
|
GETDATE(),
|
100
|
N'Phê duyệt layout bản vẽ thành công' ,
|
101
|
N'Trưởng đơn vị phê duyệt thành công'
|
102
|
)
|
103
|
END
|
104
|
ELSE IF (@PROCESS_ID = 'GDK_HT')
|
105
|
BEGIN
|
106
|
INSERT INTO @TMP
|
107
|
SELECT DT.BRANCH_ID, DT.DEP_ID FROM dbo.PL_COSTCENTER C
|
108
|
JOIN dbo.PL_COSTCENTER_DT DT ON C.COST_ID = DT.COST_ID
|
109
|
JOIN dbo.CM_DVDM DV ON C.DVDM_ID = dv.DVDM_ID
|
110
|
WHERE dv.IS_KHOI = 1 AND DV.DVDM_ID = @DVDM_ID
|
111
|
|
112
|
IF (NOT EXISTS(SELECT *
|
113
|
FROM (SELECT * FROM @ASSIGN_ROLES WHERE ROLE_ID = 'GDK' UNION ALL SELECT * FROM @USER_ROLES WHERE ROLE_ID = 'GDK') T
|
114
|
WHERE T.BRANCH_ID IN (SELECT BRANCH_ID FROM @TMP)
|
115
|
AND T.DEPT_ID IN (SELECT DEPT_ID FROM @TMP))
|
116
|
)
|
117
|
BEGIN
|
118
|
SET @ERRORS = N'Người dùng không thể duyệt layout này vì không phải giám đốc khối hỗ trợ'
|
119
|
ROLLBACK TRANSACTION
|
120
|
SELECT '-1' as Result, @ERRORS ErrorDesc
|
121
|
RETURN -1
|
122
|
END
|
123
|
|
124
|
UPDATE PL_REQUEST_PROCESS SET [STATUS] = 'P', CHECKER_ID = @p_CHECKER_ID, APPROVE_DT = CONVERT(DATETIME, @p_APPROVE_DT, 103) WHERE REQ_ID = @p_CON_LAYOUT_BLUEPRINT_ID AND PROCESS_ID = @PROCESS_ID
|
125
|
UPDATE PL_REQUEST_PROCESS SET [STATUS] = 'C' WHERE REQ_ID = @p_CON_LAYOUT_BLUEPRINT_ID AND PROCESS_ID = 'PTGD_TC'
|
126
|
UPDATE CON_LAYOUT_BLUEPRINT SET PROCESS_ID = 'PTGD_TC' WHERE CON_LAYOUT_BLUEPRINT_ID = @p_CON_LAYOUT_BLUEPRINT_ID
|
127
|
INSERT INTO dbo.PL_PROCESS
|
128
|
(
|
129
|
REQ_ID,
|
130
|
PROCESS_ID,
|
131
|
CHECKER_ID,
|
132
|
APPROVE_DT,
|
133
|
PROCESS_DESC,
|
134
|
NOTES
|
135
|
)
|
136
|
VALUES
|
137
|
( @p_CON_LAYOUT_BLUEPRINT_ID,
|
138
|
'APP',
|
139
|
@p_CHECKER_ID,
|
140
|
GETDATE(),
|
141
|
N'Phê duyệt layout bản vẽ thành công' ,
|
142
|
N'Giám đốc khối hỗ trợ phê duyệt thành công'
|
143
|
)
|
144
|
END
|
145
|
ELSE IF (@PROCESS_ID = 'PTGD_TC')
|
146
|
BEGIN
|
147
|
INSERT INTO @TMP
|
148
|
SELECT DT.BRANCH_ID, DT.DEP_ID FROM dbo.PL_COSTCENTER C
|
149
|
JOIN dbo.PL_COSTCENTER_DT DT ON C.COST_ID = DT.COST_ID
|
150
|
JOIN dbo.CM_DVDM DV ON C.DVDM_ID = dv.DVDM_ID
|
151
|
WHERE dv.IS_KHOI = 1 AND DV.DVDM_ID = @DVDM_ID
|
152
|
|
153
|
IF (NOT EXISTS(SELECT *
|
154
|
FROM (SELECT * FROM @ASSIGN_ROLES WHERE ROLE_ID = 'PTGD' UNION ALL SELECT * FROM @USER_ROLES WHERE ROLE_ID = 'PTGD') T
|
155
|
WHERE T.BRANCH_ID IN (SELECT BRANCH_ID FROM @TMP)
|
156
|
AND T.DEPT_ID IN (SELECT DEPT_ID FROM @TMP))
|
157
|
)
|
158
|
BEGIN
|
159
|
SET @ERRORS = N'Người dùng không thể duyệt layout này vì không phải phó tổng giám đốc khối tài chính'
|
160
|
ROLLBACK TRANSACTION
|
161
|
SELECT '-1' as Result, @ERRORS ErrorDesc
|
162
|
RETURN -1
|
163
|
END
|
164
|
|
165
|
UPDATE PL_REQUEST_PROCESS SET [STATUS] = 'P', CHECKER_ID = @p_CHECKER_ID, APPROVE_DT = CONVERT(DATETIME, @p_APPROVE_DT, 103) WHERE REQ_ID = @p_CON_LAYOUT_BLUEPRINT_ID AND PROCESS_ID = @PROCESS_ID
|
166
|
UPDATE PL_REQUEST_PROCESS SET [STATUS] = 'C' WHERE REQ_ID = @p_CON_LAYOUT_BLUEPRINT_ID AND PROCESS_ID = 'PTGD_VH'
|
167
|
UPDATE CON_LAYOUT_BLUEPRINT SET PROCESS_ID = 'PTGD_VH' WHERE CON_LAYOUT_BLUEPRINT_ID = @p_CON_LAYOUT_BLUEPRINT_ID
|
168
|
INSERT INTO dbo.PL_PROCESS
|
169
|
(
|
170
|
REQ_ID,
|
171
|
PROCESS_ID,
|
172
|
CHECKER_ID,
|
173
|
APPROVE_DT,
|
174
|
PROCESS_DESC,
|
175
|
NOTES
|
176
|
)
|
177
|
VALUES
|
178
|
( @p_CON_LAYOUT_BLUEPRINT_ID,
|
179
|
'APP',
|
180
|
@p_CHECKER_ID,
|
181
|
GETDATE(),
|
182
|
N'Phê duyệt layout bản vẽ thành công' ,
|
183
|
N'PTDG khối tài chính phê duyệt thành công'
|
184
|
)
|
185
|
END
|
186
|
ELSE IF (@PROCESS_ID = 'PTGD_VH')
|
187
|
BEGIN
|
188
|
INSERT INTO @TMP
|
189
|
SELECT DT.BRANCH_ID, DT.DEP_ID FROM dbo.PL_COSTCENTER C
|
190
|
JOIN dbo.PL_COSTCENTER_DT DT ON C.COST_ID = DT.COST_ID
|
191
|
JOIN dbo.CM_DVDM DV ON C.DVDM_ID = dv.DVDM_ID
|
192
|
WHERE dv.IS_KHOI = 1 AND DV.DVDM_ID = @DVDM_ID
|
193
|
|
194
|
IF (NOT EXISTS(SELECT *
|
195
|
FROM (SELECT * FROM @ASSIGN_ROLES WHERE ROLE_ID = 'PTGD' UNION ALL SELECT * FROM @USER_ROLES WHERE ROLE_ID = 'PTGD') T
|
196
|
WHERE T.BRANCH_ID IN (SELECT BRANCH_ID FROM @TMP)
|
197
|
AND T.DEPT_ID IN (SELECT DEPT_ID FROM @TMP))
|
198
|
)
|
199
|
BEGIN
|
200
|
SET @ERRORS = N'Người dùng không thể duyệt layout này vì không phải phó tổng giám đốc khối vận hành'
|
201
|
ROLLBACK TRANSACTION
|
202
|
SELECT '-1' as Result, @ERRORS ErrorDesc
|
203
|
RETURN -1
|
204
|
END
|
205
|
|
206
|
UPDATE PL_REQUEST_PROCESS SET [STATUS] = 'P', CHECKER_ID = @p_CHECKER_ID, APPROVE_DT = CONVERT(DATETIME, @p_APPROVE_DT, 103) WHERE REQ_ID = @p_CON_LAYOUT_BLUEPRINT_ID AND PROCESS_ID = @PROCESS_ID
|
207
|
UPDATE PL_REQUEST_PROCESS SET [STATUS] = 'C' WHERE REQ_ID = @p_CON_LAYOUT_BLUEPRINT_ID AND PROCESS_ID = 'PTGD_HT'
|
208
|
UPDATE CON_LAYOUT_BLUEPRINT SET PROCESS_ID = 'PTGD_HT' WHERE CON_LAYOUT_BLUEPRINT_ID = @p_CON_LAYOUT_BLUEPRINT_ID
|
209
|
INSERT INTO dbo.PL_PROCESS
|
210
|
(
|
211
|
REQ_ID,
|
212
|
PROCESS_ID,
|
213
|
CHECKER_ID,
|
214
|
APPROVE_DT,
|
215
|
PROCESS_DESC,
|
216
|
NOTES
|
217
|
)
|
218
|
VALUES
|
219
|
( @p_CON_LAYOUT_BLUEPRINT_ID,
|
220
|
'APP',
|
221
|
@p_CHECKER_ID,
|
222
|
GETDATE(),
|
223
|
N'Phê duyệt layout bản vẽ thành công' ,
|
224
|
N'PTGD khối vận hành phê duyệt thành công'
|
225
|
)
|
226
|
END
|
227
|
ELSE IF (@PROCESS_ID = 'PTGD_HT')
|
228
|
BEGIN
|
229
|
INSERT INTO @TMP
|
230
|
SELECT DT.BRANCH_ID, DT.DEP_ID FROM dbo.PL_COSTCENTER C
|
231
|
JOIN dbo.PL_COSTCENTER_DT DT ON C.COST_ID = DT.COST_ID
|
232
|
JOIN dbo.CM_DVDM DV ON C.DVDM_ID = dv.DVDM_ID
|
233
|
WHERE dv.IS_KHOI = 1 AND DV.DVDM_ID = @DVDM_ID
|
234
|
|
235
|
IF (NOT EXISTS(SELECT *
|
236
|
FROM (SELECT * FROM @ASSIGN_ROLES WHERE ROLE_ID = 'PTGD' UNION ALL SELECT * FROM @USER_ROLES WHERE ROLE_ID = 'PTGD') T
|
237
|
WHERE T.BRANCH_ID IN (SELECT BRANCH_ID FROM @TMP)
|
238
|
AND T.DEPT_ID IN (SELECT DEPT_ID FROM @TMP))
|
239
|
)
|
240
|
BEGIN
|
241
|
SET @ERRORS = N'Người dùng không thể duyệt layout này vì không phải phó tổng giám đốc khối hỗ trợ'
|
242
|
ROLLBACK TRANSACTION
|
243
|
SELECT '-1' as Result, @ERRORS ErrorDesc
|
244
|
RETURN -1
|
245
|
END
|
246
|
|
247
|
UPDATE PL_REQUEST_PROCESS SET [STATUS] = 'P', CHECKER_ID = @p_CHECKER_ID, APPROVE_DT = CONVERT(DATETIME, @p_APPROVE_DT, 103) WHERE REQ_ID = @p_CON_LAYOUT_BLUEPRINT_ID AND PROCESS_ID = @PROCESS_ID
|
248
|
|
249
|
IF (@LAYOUT_TYPE = 'CN')
|
250
|
BEGIN
|
251
|
UPDATE PL_REQUEST_PROCESS SET [STATUS] = 'C' WHERE REQ_ID = @p_CON_LAYOUT_BLUEPRINT_ID AND PROCESS_ID = 'TGD'
|
252
|
UPDATE CON_LAYOUT_BLUEPRINT SET PROCESS_ID = 'TGD' WHERE CON_LAYOUT_BLUEPRINT_ID = @p_CON_LAYOUT_BLUEPRINT_ID
|
253
|
END
|
254
|
ELSE
|
255
|
BEGIN
|
256
|
UPDATE CON_LAYOUT_BLUEPRINT SET PROCESS_ID = 'APPROVE',AUTH_STATUS = 'A' WHERE CON_LAYOUT_BLUEPRINT_ID = @p_CON_LAYOUT_BLUEPRINT_ID
|
257
|
END
|
258
|
INSERT INTO dbo.PL_PROCESS
|
259
|
(
|
260
|
REQ_ID,
|
261
|
PROCESS_ID,
|
262
|
CHECKER_ID,
|
263
|
APPROVE_DT,
|
264
|
PROCESS_DESC,
|
265
|
NOTES
|
266
|
)
|
267
|
VALUES
|
268
|
( @p_CON_LAYOUT_BLUEPRINT_ID,
|
269
|
'APP',
|
270
|
@p_CHECKER_ID,
|
271
|
GETDATE(),
|
272
|
N'Phê duyệt layout bản vẽ thành công' ,
|
273
|
N'PTGD khối hỗ trợ phê duyệt thành công'
|
274
|
)
|
275
|
END
|
276
|
ELSE IF (@PROCESS_ID = 'TGD')
|
277
|
BEGIN
|
278
|
IF (NOT EXISTS(SELECT * FROM @ASSIGN_ROLES WHERE ROLE_ID = 'TGD' UNION ALL SELECT * FROM @USER_ROLES WHERE ROLE_ID = 'TGD'))
|
279
|
BEGIN
|
280
|
SET @ERRORS = N'Người dùng không thể duyệt layout này vì không phải tổng giám đốc'
|
281
|
ROLLBACK TRANSACTION
|
282
|
SELECT '-1' as Result, @ERRORS ErrorDesc
|
283
|
RETURN -1
|
284
|
END
|
285
|
|
286
|
UPDATE PL_REQUEST_PROCESS SET [STATUS] = 'P', CHECKER_ID = @p_CHECKER_ID, APPROVE_DT = CONVERT(DATETIME, @p_APPROVE_DT, 103) WHERE REQ_ID = @p_CON_LAYOUT_BLUEPRINT_ID AND PROCESS_ID = @PROCESS_ID
|
287
|
UPDATE CON_LAYOUT_BLUEPRINT SET PROCESS_ID = 'APPROVE',AUTH_STATUS = 'A' WHERE CON_LAYOUT_BLUEPRINT_ID = @p_CON_LAYOUT_BLUEPRINT_ID
|
288
|
INSERT INTO dbo.PL_PROCESS
|
289
|
(
|
290
|
REQ_ID,
|
291
|
PROCESS_ID,
|
292
|
CHECKER_ID,
|
293
|
APPROVE_DT,
|
294
|
PROCESS_DESC,
|
295
|
NOTES
|
296
|
)
|
297
|
VALUES
|
298
|
( @p_CON_LAYOUT_BLUEPRINT_ID,
|
299
|
'APP',
|
300
|
@p_CHECKER_ID,
|
301
|
GETDATE(),
|
302
|
N'Phê duyệt layout bản vẽ thành công' ,
|
303
|
N'Tổng giám đốc phê duyệt thành công'
|
304
|
)
|
305
|
END
|
306
|
|
307
|
IF @@Error <> 0 GOTO ABORT
|
308
|
END
|
309
|
|
310
|
COMMIT TRANSACTION
|
311
|
SELECT '0' as Result, '' ErrorDesc
|
312
|
RETURN 0
|
313
|
ABORT:
|
314
|
BEGIN
|
315
|
ROLLBACK TRANSACTION
|
316
|
SELECT '-1' as Result, '' ErrorDesc
|
317
|
RETURN -1
|
318
|
END
|