Project

General

Profile

CON_LAYOUT_BLUEPRINT_APP.txt

Luc Tran Van, 04/27/2022 11:04 AM

 
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