Project

General

Profile

CHECK_ROLE_291122.txt

Luc Tran Van, 11/29/2022 04:27 PM

 
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
		ELSE IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_ID =@p_REQ_ID AND TRASFER_USER_RECEIVE = @p_USER_LOGIN AND ISNULL(PROCESS, '') <> ''))
155
		BEGIN
156
		print '1'
157
		END
158
		-- CAC TRUONG HOP CON LAI
159
		ELSE
160
		BEGIN
161
			IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID =@p_REQ_ID) )
162
			BEGIN
163
				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)))
164
				BEGIN
165
					ROLLBACK TRANSACTION
166
					SELECT '-1' as Result, N'Bạn không có quyền phê duyệt' ErrorDesc
167
					RETURN '-1'
168
				END
169
			END
170
		END
171
		--doanptt: THU KY DA DIEU PHOI CHO NHAN VIEN XU LY THI KHONG DUOC DUYET NUA
172
		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')))
173
		BEGIN
174
			ROLLBACK TRANSACTION
175
			SELECT '-1' as Result, N'Phiếu đang được điều phối đến nhân viên xử lý' ErrorDesc
176
			RETURN '-1'
177
		END
178
		--IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_REQ_ID AND BRANCH_CREATE ='DV0001')
179
		--BEGIN
180
		--	IF(EXISTS(SELECT * FROM PL_PROCESS WHERE CHEC))
181
		--END
182
		--ELSE
183
		--BEGIN
184
		--	ROLLBACK TRANSACTION
185
		--	SELECT '-1' as Result, '' ErrorDesc
186
		--	RETURN '-1'
187
		--END
188
	END
189
	ELSE IF(@TYPE='TR_REQ_PAYMENT')
190
	BEGIN
191
		IF(EXISTS(SELECT * FROM TR_REQ_PAYMENT WHERE AUTH_STATUS ='A' AND REQ_PAY_ID =@p_REQ_ID))
192
		BEGIN
193
			ROLLBACK TRANSACTION
194
			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
195
			RETURN '-1'
196
		END
197

    
198
		IF(	(SELECT COUNT(*) FROM @TABLE_ROLE A 
199
							WHERE A.ROLE_AUTH IN ('TPGD','GDDV','PGD','PTGD','TGD','HDQT','TP','PP','TBP','KTT','GDK','KSV','TC','NVTC','TPTC','PPGD')) = 0) 
200
		BEGIN
201
			ROLLBACK TRANSACTION
202
			SELECT '-1' as Result, N'Bạn không có quyền phê duyệt' ErrorDesc
203
			RETURN '-1'
204
		END
205
	END
206
	ELSE IF (@TYPE ='CORE')
207
	BEGIN
208
		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'))
209
		BEGIN
210
			IF(EXISTS(SELECT * FROM PAY_ENTRIES_POST WHERE TRN_ID =@p_REQ_ID AND ISNULL(REF_NO,'') <> ''))
211
			BEGIN
212
				ROLLBACK TRANSACTION
213
				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
214
				RETURN '6'
215
			END
216
			ELSE
217
			BEGIN
218
				ROLLBACK TRANSACTION
219
				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
220
				RETURN '5'
221
			END
222
		END
223
		ELSE
224
		BEGIN
225
			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'))
226
			BEGIN
227
				ROLLBACK TRANSACTION
228
				SELECT '7' as Result, '' ErrorDesc
229
				RETURN '7'
230
			END
231
		END
232
	END
233
	ELSE IF(@TYPE ='CON_LAYOUT')
234
	BEGIN
235

    
236
		-- NEU CAP DUYET LA VAN PHONG THU KI TGD THI CO THE DUYET LUON
237
		IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID =@p_REQ_ID AND STATUS ='C' AND PROCESS_ID ='TKTGD' AND
238
		(@ROLE_ID ='TKTGD' OR EXISTS(SELECT * FROM @TABLE_ROLE WHERE ROLE_AUTH ='TKTGD'))))
239
		BEGIN
240
			ROLLBACK TRANSACTION
241
			SELECT '0' as Result, '' ErrorDesc
242
			RETURN '0'
243
		END
244
		-- NEU CAP DUYET LA VAN PHONG THU KI HDQT THI CO THE DUYET LUON
245
		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'))))
246
		BEGIN
247
			ROLLBACK TRANSACTION
248
			SELECT '0' as Result, '' ErrorDesc
249
			RETURN '0'
250
		END
251
		IF(EXISTS(SELECT * FROM CON_LAYOUT_BLUEPRINT WHERE CON_LAYOUT_BLUEPRINT_ID = @p_REQ_ID AND PROCESS_ID ='APPROVE'))
252
		BEGIN
253

    
254
			ROLLBACK TRANSACTION
255
			SELECT '-1' as Result, '' ErrorDesc
256
			RETURN '-1'
257
		END
258
		IF(NOT EXISTS(SELECT * FROM PL_REQUEST_PROCESS PR WHERE PR.REQ_ID =@p_REQ_ID AND STATUS ='C' AND (
259
									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'))
260
									OR EXISTS(SELECT  AUTH.ROLE_ID FROM @AUTHOR_DVDM AUTH WHERE AUTH.ROLE_ID=PR.ROLE_USER AND PR.DVDM_ID=AUTH.DVDM_ID)
261
									OR ( (PR.BRANCH_ID IS NULL OR PR.BRANCH_ID='') AND (PR.DVDM_ID ='' OR PR.DVDM_ID  IS NULL) )
262
									)))
263
		BEGIN
264
			print 'haha'
265
			ROLLBACK TRANSACTION
266
			SELECT '-1' as Result, '' ErrorDesc
267
			RETURN '-1'
268
		END
269
	END
270
	ELSE
271
	BEGIN
272
		-- NEU CAP DUYET LA VAN PHONG THU KI TGD THI CO THE DUYET LUON
273
		IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID =@p_REQ_ID AND STATUS ='C' AND PROCESS_ID ='TKTGD' AND
274
		(@ROLE_ID ='TKTGD' OR EXISTS(SELECT * FROM @TABLE_ROLE WHERE ROLE_AUTH ='TKTGD'))))
275
		BEGIN
276
			ROLLBACK TRANSACTION
277
			SELECT '0' as Result, '' ErrorDesc
278
			RETURN '0'
279
		END
280
		-- NEU CAP DUYET LA VAN PHONG THU KI HDQT THI CO THE DUYET LUON
281
		IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID =@p_REQ_ID AND STATUS ='C' AND PROCESS_ID ='TKHDQT' AND
282
    (@ROLE_ID ='TKHDQT' OR EXISTS(SELECT * FROM @TABLE_ROLE WHERE ROLE_AUTH ='TKHDQT'))))
283
		BEGIN
284
			ROLLBACK TRANSACTION
285
			SELECT '0' as Result, '' ErrorDesc
286
			RETURN '0'
287
		END
288
    -- NEU CAP DUYET LA DVCM THI CO THE DUYET LUON
289
		IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID =@p_REQ_ID AND STATUS ='C' AND PROCESS_ID ='DVCM' AND
290
    (@ROLE_ID ='GDDV' OR EXISTS(SELECT * FROM @TABLE_ROLE WHERE ROLE_AUTH ='GDDV'))))
291
		BEGIN
292
			ROLLBACK TRANSACTION
293
			SELECT '0' as Result, '' ErrorDesc
294
			RETURN '0'
295
		END
296
		IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@p_REQ_ID AND STATUS_JOB ='C' AND TLNAME =@p_USER_LOGIN))
297
		BEGIN
298
			ROLLBACK TRANSACTION
299
			SELECT '0' as Result, '' ErrorDesc
300
			RETURN '0'
301
		END
302
		IF(NOT EXISTS(SELECT * FROM PL_REQUEST_PROCESS PR WHERE PR.REQ_ID =@p_REQ_ID AND STATUS ='C' AND (
303
									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'))
304
									OR EXISTS(SELECT  AUTH.ROLE_ID FROM @AUTHOR_DVDM AUTH WHERE AUTH.ROLE_ID=PR.ROLE_USER AND PR.DVDM_ID=AUTH.DVDM_ID)
305
									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'))
306
									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'))
307
									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')
308
									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))
309
									)))
310
		BEGIN
311
			ROLLBACK TRANSACTION
312
			SELECT '-1' as Result, '' ErrorDesc
313
			RETURN '-1'
314
		END
315
		IF(EXISTS(SELECT * FROM PL_REQUEST_DOC WHERE REQ_ID =@p_REQ_ID AND PROCESS_ID ='APPROVE'))
316
		BEGIN
317
			ROLLBACK TRANSACTION
318
			SELECT '-1' as Result, '' ErrorDesc
319
			RETURN '-1'
320
		END
321
		IF(EXISTS(SELECT * FROM TR_REQUEST_DOC WHERE REQ_ID =@p_REQ_ID AND PROCESS_ID ='APPROVE'))
322
		BEGIN
323
			ROLLBACK TRANSACTION
324
			SELECT '-1' as Result, '' ErrorDesc
325
			RETURN '-1'
326
		END
327

    
328
		-- GiaNT
329
		IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID =@p_REQ_ID AND STATUS ='P' AND PROCESS_ID ='KT' AND
330
		(@ROLE_ID ='KSV' OR EXISTS(SELECT * FROM @TABLE_ROLE WHERE ROLE_AUTH ='KSV'))))
331
		BEGIN
332
			ROLLBACK TRANSACTION
333
			SELECT '-1' as Result, '' ErrorDesc
334
			RETURN '-1'
335
		END
336
	END
337
	COMMIT TRANSACTION
338
	print 'haha'
339
	SELECT '0' as Result, '' ErrorDesc
340
	RETURN '0'
341

    
342
	ABORT:
343
	BEGIN
344
			ROLLBACK TRANSACTION
345
			SELECT '-1' as Result, '' ErrorDesc
346
			RETURN '-1'
347
	End