Project

General

Profile

check_role2.txt

Luc Tran Van, 12/01/2022 09:50 AM

 
1
ALTER   PROCEDURE [dbo].[TR_CHECK_ROLE_APPROVE]
2
@TYPE VARCHAR(15) = NULL,
3
@p_REQ_ID	varchar(15) = NULL,
4
@p_USER_LOGIN varchar(15) = NULL
5
AS
6
BEGIN TRANSACTION
7
IF(@TYPE <> 'ADV_PAY')
8
BEGIN
9
	IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@p_REQ_ID AND STATUS_JOB ='C' AND TLNAME =@p_USER_LOGIN AND TYPE_JOB IN ('TP','KS')))
10
	BEGIN
11
		ROLLBACK TRANSACTION
12
		SELECT '0' as Result, '' ErrorDesc
13
		RETURN '0'
14
	END
15
END
16
-- KHAI BAO THEM ROLE NHAN UY QUYEN
17
DECLARE @TABLE_ROLE TABLE (ROLE_AUTH VARCHAR(50))
18
DECLARE @TABLE_DEP TABLE (ROLE_NEW VARCHAR(50), BRANCH_ID VARCHAR(20), DEP_ID VARCHAR(20))
19
DECLARE @ROLE_ID VARCHAR(50)
20
SET @ROLE_ID = (SELECT ROLENAME FROM TL_USER WHERE TLNANME =@p_USER_LOGIN)
21
INSERT INTO @TABLE_ROLE SELECT @ROLE_ID
22
INSERT INTO @TABLE_ROLE SELECT ROLE_NEW FROM TL_SYS_ROLE_MAPPING WHERE ROLE_OLD =@ROLE_ID AND TLNAME =@p_USER_LOGIN AND
23
(CONVERT(DATE,GETDATE(),103) >= CONVERT(DATE,EFF_DATE, 103) AND CONVERT(DATE, GETDATE(),103) <=CONVERT(DATE,EXP_DATE, 103) OR (EFF_DATE IS NULL OR EXP_DATE IS NULL))
24

    
25
INSERT INTO @TABLE_DEP SELECT ROLE_NEW, BRANCH_ID, DEP_ID FROM TL_SYS_ROLE_MAPPING WHERE ROLE_OLD =@ROLE_ID AND TLNAME =@p_USER_LOGIN AND
26
(CONVERT(DATE,GETDATE(),103) >= CONVERT(DATE,EFF_DATE, 103) AND CONVERT(DATE, GETDATE(),103) <=CONVERT(DATE,EXP_DATE, 103) OR (EFF_DATE IS NULL OR EXP_DATE IS NULL))
27

    
28
	DECLARE @AUTHOR TABLE
29
	(
30
		ROLE_ID VARCHAR(20),
31
		BRANCH_ID VARCHAR(20),
32
		DEP_ID VARCHAR(20),
33
		BRANCH_TYPE VARCHAR(20)
34
	)
35
	DECLARE @AUTHOR_DVDM TABLE
36
	(
37
		ROLE_ID VARCHAR(20),
38
		BRANCH_ID VARCHAR(20),
39
		DEP_ID VARCHAR(20),
40
		DVDM_ID VARCHAR(20)
41
	)
42

    
43
	DECLARE @AUTHOR_DMMS TABLE
44
	(
45
		ROLE_ID VARCHAR(20),
46
		BRANCH_ID VARCHAR(20),
47
		DEP_ID VARCHAR(20),
48
		DMMS_ID VARCHAR(20)
49
	)
50

    
51
	INSERT INTO @AUTHOR
52
	(
53
	    ROLE_ID,
54
	    BRANCH_ID,
55
	    DEP_ID,
56
		BRANCH_TYPE
57
	)
58
	SELECT RoleName,TLSUBBRID,SECUR_CODE,CB.BRANCH_TYPE FROM dbo.TL_USER TU
59
	LEFT JOIN dbo.CM_BRANCH CB ON CB.BRANCH_ID=TU.TLSUBBRID
60
	WHERE TLNANME=@p_USER_LOGIN
61
	UNION ALL
62
	SELECT TM.ROLE_NEW RoleName,TLSUBBRID,SECUR_CODE,CB.BRANCH_TYPE FROM dbo.TL_USER TU
63
	LEFT JOIN dbo.TL_SYS_ROLE_MAPPING TM ON TM.ROLE_OLD=TU.RoleName AND( TM.TLNAME IS NULL OR TM.TLNAME='')
64
	LEFT JOIN dbo.CM_BRANCH CB ON CB.BRANCH_ID=TU.TLSUBBRID
65
	WHERE TLNANME=@p_USER_LOGIN
66
	UNION ALL
67
	SELECT TM1.ROLE_NEW RoleName,TM1.BRANCH_ID TLSUBBRID,TM1.DEP_ID SECUR_CODE,CB.BRANCH_TYPE FROM dbo.TL_SYS_ROLE_MAPPING TM1
68
	LEFT JOIN dbo.CM_BRANCH CB ON CB.BRANCH_ID=TM1.BRANCH_ID
69
	WHERE TM1.TLNAME=@p_USER_LOGIN AND CAST(TM1.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
70
	UNION ALL
71
	SELECT TM.ROLE_NEW RoleName,TM1.BRANCH_ID TLSUBBRID,TM1.DEP_ID SECUR_CODE,CB.BRANCH_TYPE FROM dbo.TL_SYS_ROLE_MAPPING TM1
72
	LEFT JOIN dbo.TL_SYS_ROLE_MAPPING TM ON TM.ROLE_OLD=TM1.ROLE_NEW AND( TM.TLNAME IS NULL OR TM.TLNAME='')
73
	LEFT JOIN dbo.CM_BRANCH CB ON CB.BRANCH_ID=TM1.BRANCH_ID
74
	WHERE TM1.TLNAME=@p_USER_LOGIN AND CAST(TM1.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
75

    
76
	INSERT INTO @AUTHOR_DVDM
77
	(
78
	    ROLE_ID,
79
	    BRANCH_ID,
80
	    DEP_ID,
81
	    DVDM_ID
82
	)
83
	SELECT TU.RoleName,TU.TLSUBBRID,TU.SECUR_CODE,PC.DVDM_ID FROM dbo.TL_USER TU 
84
	LEFT JOIN dbo.PL_COSTCENTER_DT DT ON DT.BRANCH_ID=TU.TLSUBBRID AND DT.DEP_ID=TU.SECUR_CODE
85
	LEFT JOIN dbo.PL_COSTCENTER PC ON PC.COST_ID=DT.COST_ID
86
	WHERE TU.TLNANME=@p_USER_LOGIN
87
	UNION ALL
88
	SELECT TM.ROLE_NEW RoleName,TU.TLSUBBRID,TU.SECUR_CODE,PC.DVDM_ID FROM dbo.TL_USER TU 
89
	LEFT JOIN dbo.PL_COSTCENTER_DT DT ON DT.BRANCH_ID=TU.TLSUBBRID AND DT.DEP_ID=TU.SECUR_CODE
90
	LEFT JOIN dbo.PL_COSTCENTER PC ON PC.COST_ID=DT.COST_ID
91
	LEFT JOIN dbo.TL_SYS_ROLE_MAPPING TM ON TM.ROLE_OLD=TU.RoleName AND( TM.TLNAME IS NULL OR TM.TLNAME='')
92
	WHERE TU.TLNANME=@p_USER_LOGIN
93
	UNION ALL
94
	SELECT TU.ROLE_NEW RoleName,TU.BRANCH_ID TLSUBBRID,TU.DEP_ID SECUR_CODE,PC.DVDM_ID FROM dbo.TL_SYS_ROLE_MAPPING TU 
95
	LEFT JOIN dbo.PL_COSTCENTER_DT DT ON DT.BRANCH_ID=TU.BRANCH_ID AND DT.DEP_ID=TU.DEP_ID
96
	LEFT JOIN dbo.PL_COSTCENTER PC ON PC.COST_ID=DT.COST_ID
97
	WHERE TU.TLNAME=@p_USER_LOGIN AND CAST(EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
98
	UNION ALL
99
	SELECT TM.ROLE_NEW RoleName,TU.BRANCH_ID TLSUBBRID,TU.DEP_ID SECUR_CODE,PC.DVDM_ID FROM dbo.TL_SYS_ROLE_MAPPING TU 
100
	LEFT JOIN dbo.PL_COSTCENTER_DT DT ON DT.BRANCH_ID=TU.BRANCH_ID AND DT.DEP_ID=TU.DEP_ID
101
	LEFT JOIN dbo.PL_COSTCENTER PC ON PC.COST_ID=DT.COST_ID
102
	LEFT JOIN dbo.TL_SYS_ROLE_MAPPING TM ON TM.ROLE_OLD=TU.ROLE_NEW AND( TM.TLNAME IS NULL OR TM.TLNAME='')
103
	WHERE TU.TLNAME=@p_USER_LOGIN AND CAST(TU.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
104

    
105
	INSERT INTO @AUTHOR_DMMS
106
	(
107
	    ROLE_ID,
108
	    BRANCH_ID,
109
	    DEP_ID,
110
		DMMS_ID
111
	)
112
	SELECT RoleName,TLSUBBRID,SECUR_CODE,MS.DMMS_ID FROM dbo.TL_USER TU
113
	LEFT JOIN dbo.CM_BRANCH CB ON CB.BRANCH_ID=TU.TLSUBBRID
114
	LEFT JOIN dbo.CM_DMMS MS ON MS.BRANCH_ID = CB.BRANCH_ID AND (TU.SECUR_CODE=MS.DEP_ID OR CB.BRANCH_TYPE <>'HS')
115
	WHERE TLNANME=@p_USER_LOGIN
116
	UNION ALL
117
	SELECT TM.ROLE_NEW RoleName,TLSUBBRID,SECUR_CODE,MS.DMMS_ID FROM dbo.TL_USER TU
118
	LEFT JOIN dbo.TL_SYS_ROLE_MAPPING TM ON TM.ROLE_OLD=TU.RoleName AND( TM.TLNAME IS NULL OR TM.TLNAME='')
119
	LEFT JOIN dbo.CM_BRANCH CB ON CB.BRANCH_ID=TU.TLSUBBRID
120
	LEFT JOIN dbo.CM_DMMS MS ON MS.BRANCH_ID = CB.BRANCH_ID AND (TU.SECUR_CODE=MS.DEP_ID OR CB.BRANCH_TYPE <>'HS')
121
	WHERE TLNANME=@p_USER_LOGIN
122
	UNION ALL
123
	SELECT TM1.ROLE_NEW RoleName,TM1.BRANCH_ID TLSUBBRID,TM1.DEP_ID SECUR_CODE,MS.DMMS_ID FROM dbo.TL_SYS_ROLE_MAPPING TM1
124
	LEFT JOIN dbo.CM_BRANCH CB ON CB.BRANCH_ID=TM1.BRANCH_ID
125
	LEFT JOIN dbo.CM_DMMS MS ON MS.BRANCH_ID = CB.BRANCH_ID AND (TM1.DEP_ID=MS.DEP_ID OR CB.BRANCH_TYPE <>'HS')
126
	WHERE TM1.TLNAME=@p_USER_LOGIN AND CAST(TM1.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
127
	UNION ALL
128
	SELECT TM.ROLE_NEW RoleName,TM1.BRANCH_ID TLSUBBRID,TM1.DEP_ID SECUR_CODE,MS.DMMS_ID FROM dbo.TL_SYS_ROLE_MAPPING TM1
129
	LEFT JOIN dbo.TL_SYS_ROLE_MAPPING TM ON TM.ROLE_OLD=TM1.ROLE_NEW AND( TM.TLNAME IS NULL OR TM.TLNAME='')
130
	LEFT JOIN dbo.CM_BRANCH CB ON CB.BRANCH_ID=TM1.BRANCH_ID
131
	LEFT JOIN dbo.CM_DMMS MS ON MS.BRANCH_ID = CB.BRANCH_ID AND (TM1.DEP_ID=MS.DEP_ID OR CB.BRANCH_TYPE <>'HS')
132
	WHERE TM1.TLNAME=@p_USER_LOGIN AND CAST(TM1.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
133

    
134
	IF(@TYPE='ADV_PAY')
135
	BEGIN
136
		IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE AUTH_STATUS ='A' AND REQ_PAY_ID =@p_REQ_ID))
137
		BEGIN
138
			ROLLBACK TRANSACTION
139
			SELECT '-1' as Result, N'Phiếu đã duyệt xong. Vui lòng chờ các giao dịch tiếp theo để thực hiện phê duyệt' ErrorDesc
140
			RETURN '-1'
141
		END
142

    
143
		-- NEU LA TPHC O HOI SO 
144
		IF(	EXISTS(SELECT * FROM TL_USER WHERE TLNANME = @p_USER_LOGIN AND TLSUBBRID = 'DV0001' AND DEP_ID = 'DEP000000000014' AND RoleName = 'GDDV'))
145
			--OR EXISTS(SELECT * FROM @TABLE_DEP WHERE ROLE_NEW = 'GDDV' AND BRANCH_ID = 'DV0001' AND DEP_ID = 'DEP000000000014') 
146
		BEGIN
147
			IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_REQ_ID AND PROCESS <> '' AND PROCESS IS NOT NULL))
148
			BEGIN
149
				ROLLBACK TRANSACTION
150
				SELECT '-1' as Result, N'Bạn không có quyền phê duyệt' ErrorDesc
151
				RETURN '-1'
152
			END
153
		END
154
		--doanptt: THU KY DA DIEU PHOI CHO NHAN VIEN XU LY THI KHONG DUOC DUYET NUA
155
		ELSE IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@p_REQ_ID AND STATUS_JOB <> 'C' AND TLNAME =@p_USER_LOGIN AND TYPE_JOB IN ('KS')))
156
		BEGIN
157
			ROLLBACK TRANSACTION
158
			SELECT '-1' as Result, N'Phiếu đang được điều phối đến nhân viên xử lý' ErrorDesc
159
			RETURN '-1'
160
		END
161
		ELSE IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID = @p_REQ_ID AND TRASFER_USER_RECIVE = @p_USER_LOGIN AND ISNULL(PROCESS,'') = ''))
162
		BEGIN
163
			PRINT '1'
164
		END
165
		ELSE IF	(	(	EXISTS(SELECT * FROM TL_USER WHERE TLNANME = @p_USER_LOGIN AND TLSUBBRID = 'DV0001' AND RoleName = 'GDDV')
166
						OR EXISTS(SELECT * FROM @TABLE_DEP WHERE ROLE_NEW = 'GDDV' AND BRANCH_ID = 'DV0001') 
167
					)
168
					OR EXISTS(SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID = @p_REQ_ID AND TRASFER_USER_RECIVE = @p_USER_LOGIN AND ISNULL(PROCESS,'') = '')
169
				)
170
		BEGIN
171
			ROLLBACK TRANSACTION
172
			SELECT '0' as Result, '' ErrorDesc
173
			RETURN '0'
174
		END
175
		-- CAC TRUONG HOP CON LAI
176
		ELSE
177
		BEGIN
178
			IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID =@p_REQ_ID) )
179
			BEGIN
180
				IF(NOT EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID =@p_REQ_ID AND STATUS ='C' AND ROLE_USER IN (SELECT * FROM @TABLE_ROLE)))
181
				BEGIN
182
					ROLLBACK TRANSACTION
183
					SELECT '-1' as Result, N'Bạn không có quyền phê duyệt' ErrorDesc
184
					RETURN '-1'
185
				END
186
			END
187
		END
188
		
189
		--IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_REQ_ID AND BRANCH_CREATE ='DV0001')
190
		--BEGIN
191
		--	IF(EXISTS(SELECT * FROM PL_PROCESS WHERE CHEC))
192
		--END
193
		--ELSE
194
		--BEGIN
195
		--	ROLLBACK TRANSACTION
196
		--	SELECT '-1' as Result, '' ErrorDesc
197
		--	RETURN '-1'
198
		--END
199
	END
200
	ELSE IF(@TYPE='TR_REQ_PAYMENT')
201
	BEGIN
202
		IF(EXISTS(SELECT * FROM TR_REQ_PAYMENT WHERE AUTH_STATUS ='A' AND REQ_PAY_ID =@p_REQ_ID))
203
		BEGIN
204
			ROLLBACK TRANSACTION
205
			SELECT '-1' as Result, N'Phiếu đã duyệt xong. Vui lòng chờ các giao dịch tiếp theo để thực hiện phê duyệt' ErrorDesc
206
			RETURN '-1'
207
		END
208

    
209
		IF(	(SELECT COUNT(*) FROM @TABLE_ROLE A 
210
							WHERE A.ROLE_AUTH IN ('TPGD','GDDV','PGD','PTGD','TGD','HDQT','TP','PP','TBP','KTT','GDK','KSV','TC','NVTC','TPTC','PPGD')) = 0) 
211
		BEGIN
212
			ROLLBACK TRANSACTION
213
			SELECT '-1' as Result, N'Bạn không có quyền phê duyệt' ErrorDesc
214
			RETURN '-1'
215
		END
216
	END
217
	ELSE IF (@TYPE ='CORE')
218
	BEGIN
219
		IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_REQ_ID AND AUTH_STATUS_KT ='A') OR  EXISTS(SELECT * FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_REQ_ID AND AUTH_STATUS_KT ='A'))
220
		BEGIN
221
			IF(EXISTS(SELECT * FROM PAY_ENTRIES_POST WHERE TRN_ID =@p_REQ_ID AND ISNULL(REF_NO,'') <> ''))
222
			BEGIN
223
				ROLLBACK TRANSACTION
224
				SELECT '6' as Result, N'Giao dịch được phê duyệt thành công trên AMS và hạch toán thành công vào hệ thống Core FC' ErrorDesc
225
				RETURN '6'
226
			END
227
			ELSE
228
			BEGIN
229
				ROLLBACK TRANSACTION
230
				SELECT '5' as Result, N'Giao dịch được phê duyệt thành công nhưng bắn vào Core FC thất bại. Vui lòng rà soát lại nội dung hạch toán (không được phép chứa kí tự & hoặc kí tự <)' ErrorDesc
231
				RETURN '5'
232
			END
233
		END
234
		ELSE
235
		BEGIN
236
			IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_REQ_ID AND AUTH_STATUS_KT <> 'A') AND  EXISTS(SELECT * FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_REQ_ID AND AUTH_STATUS_KT <>'A'))
237
			BEGIN
238
				ROLLBACK TRANSACTION
239
				SELECT '7' as Result, '' ErrorDesc
240
				RETURN '7'
241
			END
242
		END
243
	END
244
	ELSE IF(@TYPE ='CON_LAYOUT')
245
	BEGIN
246

    
247
		-- NEU CAP DUYET LA VAN PHONG THU KI TGD THI CO THE DUYET LUON
248
		IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID =@p_REQ_ID AND STATUS ='C' AND PROCESS_ID ='TKTGD' AND
249
		(@ROLE_ID ='TKTGD' OR EXISTS(SELECT * FROM @TABLE_ROLE WHERE ROLE_AUTH ='TKTGD'))))
250
		BEGIN
251
			ROLLBACK TRANSACTION
252
			SELECT '0' as Result, '' ErrorDesc
253
			RETURN '0'
254
		END
255
		-- NEU CAP DUYET LA VAN PHONG THU KI HDQT THI CO THE DUYET LUON
256
		IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID =@p_REQ_ID AND STATUS ='C' AND PROCESS_ID ='TKHDQT' AND (@ROLE_ID ='TKHDQT' OR EXISTS(SELECT * FROM @TABLE_ROLE WHERE ROLE_AUTH ='TKHDQT'))))
257
		BEGIN
258
			ROLLBACK TRANSACTION
259
			SELECT '0' as Result, '' ErrorDesc
260
			RETURN '0'
261
		END
262
		IF(EXISTS(SELECT * FROM CON_LAYOUT_BLUEPRINT WHERE CON_LAYOUT_BLUEPRINT_ID = @p_REQ_ID AND PROCESS_ID ='APPROVE'))
263
		BEGIN
264

    
265
			ROLLBACK TRANSACTION
266
			SELECT '-1' as Result, '' ErrorDesc
267
			RETURN '-1'
268
		END
269
		IF(NOT EXISTS(SELECT * FROM PL_REQUEST_PROCESS PR WHERE PR.REQ_ID =@p_REQ_ID AND STATUS ='C' AND (
270
									EXISTS(SELECT * FROM @AUTHOR AUTH WHERE AUTH.ROLE_ID=PR.ROLE_USER AND AUTH.BRANCH_ID=PR.BRANCH_ID AND (AUTH.DEP_ID=PR.DEP_ID OR AUTH.BRANCH_TYPE<>'HS'))
271
									OR EXISTS(SELECT  AUTH.ROLE_ID FROM @AUTHOR_DVDM AUTH WHERE AUTH.ROLE_ID=PR.ROLE_USER AND PR.DVDM_ID=AUTH.DVDM_ID)
272
									OR ( (PR.BRANCH_ID IS NULL OR PR.BRANCH_ID='') AND (PR.DVDM_ID ='' OR PR.DVDM_ID  IS NULL) )
273
									)))
274
		BEGIN
275
			print 'haha'
276
			ROLLBACK TRANSACTION
277
			SELECT '-1' as Result, '' ErrorDesc
278
			RETURN '-1'
279
		END
280
	END
281
	ELSE
282
	BEGIN
283
		-- NEU CAP DUYET LA VAN PHONG THU KI TGD THI CO THE DUYET LUON
284
		IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID =@p_REQ_ID AND STATUS ='C' AND PROCESS_ID ='TKTGD' AND
285
		(@ROLE_ID ='TKTGD' OR EXISTS(SELECT * FROM @TABLE_ROLE WHERE ROLE_AUTH ='TKTGD'))))
286
		BEGIN
287
			ROLLBACK TRANSACTION
288
			SELECT '0' as Result, '' ErrorDesc
289
			RETURN '0'
290
		END
291
		-- NEU CAP DUYET LA VAN PHONG THU KI HDQT THI CO THE DUYET LUON
292
		IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID =@p_REQ_ID AND STATUS ='C' AND PROCESS_ID ='TKHDQT' AND
293
    (@ROLE_ID ='TKHDQT' OR EXISTS(SELECT * FROM @TABLE_ROLE WHERE ROLE_AUTH ='TKHDQT'))))
294
		BEGIN
295
			ROLLBACK TRANSACTION
296
			SELECT '0' as Result, '' ErrorDesc
297
			RETURN '0'
298
		END
299
    -- NEU CAP DUYET LA DVCM THI CO THE DUYET LUON
300
		IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID =@p_REQ_ID AND STATUS ='C' AND PROCESS_ID ='DVCM' AND
301
    (@ROLE_ID ='GDDV' OR EXISTS(SELECT * FROM @TABLE_ROLE WHERE ROLE_AUTH ='GDDV'))))
302
		BEGIN
303
			ROLLBACK TRANSACTION
304
			SELECT '0' as Result, '' ErrorDesc
305
			RETURN '0'
306
		END
307
		IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@p_REQ_ID AND STATUS_JOB ='C' AND TLNAME =@p_USER_LOGIN))
308
		BEGIN
309
			ROLLBACK TRANSACTION
310
			SELECT '0' as Result, '' ErrorDesc
311
			RETURN '0'
312
		END
313
		IF(NOT EXISTS(SELECT * FROM PL_REQUEST_PROCESS PR WHERE PR.REQ_ID =@p_REQ_ID AND STATUS ='C' AND (
314
									EXISTS(SELECT * FROM @AUTHOR AUTH WHERE AUTH.ROLE_ID=PR.ROLE_USER AND AUTH.BRANCH_ID=PR.BRANCH_ID AND (AUTH.DEP_ID=PR.DEP_ID OR AUTH.BRANCH_TYPE<>'HS'))
315
									OR EXISTS(SELECT  AUTH.ROLE_ID FROM @AUTHOR_DVDM AUTH WHERE AUTH.ROLE_ID=PR.ROLE_USER AND PR.DVDM_ID=AUTH.DVDM_ID)
316
									OR EXISTS(SELECT  AUTH.ROLE_ID FROM @AUTHOR_DMMS AUTH WHERE AUTH.ROLE_ID=PR.ROLE_USER AND EXISTS (SELECT * FROM dbo.TR_REQUEST_DOC A  WHERE A.REQ_ID=@p_REQ_ID AND A.DMMS_ID=AUTH.DMMS_ID AND A.PROCESS_ID='DMMS'))
317
									OR EXISTS(SELECT  AUTH.ROLE_ID FROM @AUTHOR_DVDM AUTH WHERE AUTH.ROLE_ID=PR.ROLE_USER AND EXISTS (SELECT * FROM dbo.TR_REQUEST_DOC A  WHERE A.REQ_ID=@p_REQ_ID AND A.DMMS_ID=AUTH.DVDM_ID AND A.PROCESS_ID='DMMS'))
318
									OR EXISTS(SELECT ID FROM dbo.PL_REQUEST_PROCESS_CHILD WHERE PL_REQUEST_PROCESS_CHILD.PROCESS_ID=PR.ID AND  TLNAME=@p_USER_LOGIN AND TYPE_JOB='KS' AND STATUS_JOB='C')
319
									OR ((PR.BRANCH_ID IS NULL OR PR.BRANCH_ID='') AND (PR.DVDM_ID ='' OR PR.DVDM_ID  IS NULL) AND EXISTS(SELECT * FROM @AUTHOR AUTH WHERE AUTH.ROLE_ID = PR.ROLE_USER))
320
									)))
321
		BEGIN
322
			ROLLBACK TRANSACTION
323
			SELECT '-1' as Result, '' ErrorDesc
324
			RETURN '-1'
325
		END
326
		IF(EXISTS(SELECT * FROM PL_REQUEST_DOC WHERE REQ_ID =@p_REQ_ID AND PROCESS_ID ='APPROVE'))
327
		BEGIN
328
			ROLLBACK TRANSACTION
329
			SELECT '-1' as Result, '' ErrorDesc
330
			RETURN '-1'
331
		END
332
		IF(EXISTS(SELECT * FROM TR_REQUEST_DOC WHERE REQ_ID =@p_REQ_ID AND PROCESS_ID ='APPROVE'))
333
		BEGIN
334
			ROLLBACK TRANSACTION
335
			SELECT '-1' as Result, '' ErrorDesc
336
			RETURN '-1'
337
		END
338

    
339
		-- GiaNT
340
		IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID =@p_REQ_ID AND STATUS ='P' AND PROCESS_ID ='KT' AND
341
		(@ROLE_ID ='KSV' OR EXISTS(SELECT * FROM @TABLE_ROLE WHERE ROLE_AUTH ='KSV'))))
342
		BEGIN
343
			ROLLBACK TRANSACTION
344
			SELECT '-1' as Result, '' ErrorDesc
345
			RETURN '-1'
346
		END
347
	END
348
	COMMIT TRANSACTION
349
	print 'haha'
350
	SELECT '0' as Result, '' ErrorDesc
351
	RETURN '0'
352

    
353
	ABORT:
354
	BEGIN
355
			ROLLBACK TRANSACTION
356
			SELECT '-1' as Result, '' ErrorDesc
357
			RETURN '-1'
358
	End