Project

General

Profile

TR_CHECK_ROLE_APPROVE.txt

Luc Tran Van, 12/23/2022 03:14 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_ROLE2 TABLE (ROLE_AUTH VARCHAR(50))
19
DECLARE @TABLE_DEP TABLE (ROLE_NEW VARCHAR(50), BRANCH_ID VARCHAR(20), DEP_ID VARCHAR(20))
20
DECLARE @ROLE_ID VARCHAR(50)
21
SET @ROLE_ID = (SELECT ROLENAME FROM TL_USER WHERE TLNANME =@p_USER_LOGIN)
22
INSERT INTO @TABLE_ROLE SELECT @ROLE_ID
23
INSERT INTO @TABLE_ROLE SELECT ROLE_NEW 
24
						FROM TL_SYS_ROLE_MAPPING 
25
						WHERE	ROLE_OLD =@ROLE_ID 
26
								AND TLNAME =@p_USER_LOGIN 
27
								AND (	CONVERT(DATE,GETDATE(),103) >= CONVERT(DATE,EFF_DATE, 103) 
28
										AND CONVERT(DATE, GETDATE(),103) <=CONVERT(DATE,EXP_DATE, 103) 
29
										OR (EFF_DATE IS NULL OR EXP_DATE IS NULL)
30
									)
31
INSERT INTO @TABLE_ROLE2 SELECT @ROLE_ID
32
INSERT INTO @TABLE_ROLE2 SELECT ROLE_NEW 
33
						FROM TL_SYS_ROLE_MAPPING 
34
						WHERE	TLNAME =@p_USER_LOGIN 
35
								AND (	CONVERT(DATE,GETDATE(),103) >= CONVERT(DATE,EFF_DATE, 103) 
36
										AND CONVERT(DATE, GETDATE(),103) <=CONVERT(DATE,EXP_DATE, 103) 
37
										OR (EFF_DATE IS NULL OR EXP_DATE IS NULL)
38
									)
39

    
40
INSERT INTO @TABLE_DEP	SELECT ROLE_NEW, BRANCH_ID, DEP_ID 
41
						FROM TL_SYS_ROLE_MAPPING 
42
						WHERE	TLNAME = @p_USER_LOGIN 
43
								AND	(	CONVERT(DATE,GETDATE(),103) >= CONVERT(DATE,EFF_DATE, 103) 
44
										AND CONVERT(DATE, GETDATE(),103) <= CONVERT(DATE,EXP_DATE, 103) 
45
										OR (EFF_DATE IS NULL OR EXP_DATE IS NULL)
46
									)
47

    
48
	DECLARE @AUTHOR TABLE
49
	(
50
		ROLE_ID VARCHAR(20),
51
		BRANCH_ID VARCHAR(20),
52
		DEP_ID VARCHAR(20),
53
		BRANCH_TYPE VARCHAR(20)
54
	)
55
	DECLARE @AUTHOR_DVDM TABLE
56
	(
57
		ROLE_ID VARCHAR(20),
58
		BRANCH_ID VARCHAR(20),
59
		DEP_ID VARCHAR(20),
60
		DVDM_ID VARCHAR(20)
61
	)
62

    
63
	DECLARE @AUTHOR_DMMS TABLE
64
	(
65
		ROLE_ID VARCHAR(20),
66
		BRANCH_ID VARCHAR(20),
67
		DEP_ID VARCHAR(20),
68
		DMMS_ID VARCHAR(20)
69
	)
70

    
71
	INSERT INTO @AUTHOR
72
	(
73
	    ROLE_ID,
74
	    BRANCH_ID,
75
	    DEP_ID,
76
		BRANCH_TYPE
77
	)
78
	SELECT RoleName,TLSUBBRID,SECUR_CODE,CB.BRANCH_TYPE FROM dbo.TL_USER TU
79
	LEFT JOIN dbo.CM_BRANCH CB ON CB.BRANCH_ID=TU.TLSUBBRID
80
	WHERE TLNANME=@p_USER_LOGIN
81
	UNION ALL
82
	SELECT TM.ROLE_NEW RoleName,TLSUBBRID,SECUR_CODE,CB.BRANCH_TYPE FROM dbo.TL_USER TU
83
	LEFT JOIN dbo.TL_SYS_ROLE_MAPPING TM ON TM.ROLE_OLD=TU.RoleName AND( TM.TLNAME IS NULL OR TM.TLNAME='')
84
	LEFT JOIN dbo.CM_BRANCH CB ON CB.BRANCH_ID=TU.TLSUBBRID
85
	WHERE TLNANME=@p_USER_LOGIN
86
	UNION ALL
87
	SELECT TM1.ROLE_NEW RoleName,TM1.BRANCH_ID TLSUBBRID,TM1.DEP_ID SECUR_CODE,CB.BRANCH_TYPE FROM dbo.TL_SYS_ROLE_MAPPING TM1
88
	LEFT JOIN dbo.CM_BRANCH CB ON CB.BRANCH_ID=TM1.BRANCH_ID
89
	WHERE TM1.TLNAME=@p_USER_LOGIN AND CAST(TM1.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
90
	UNION ALL
91
	SELECT TM.ROLE_NEW RoleName,TM1.BRANCH_ID TLSUBBRID,TM1.DEP_ID SECUR_CODE,CB.BRANCH_TYPE FROM dbo.TL_SYS_ROLE_MAPPING TM1
92
	LEFT JOIN dbo.TL_SYS_ROLE_MAPPING TM ON TM.ROLE_OLD=TM1.ROLE_NEW AND( TM.TLNAME IS NULL OR TM.TLNAME='')
93
	LEFT JOIN dbo.CM_BRANCH CB ON CB.BRANCH_ID=TM1.BRANCH_ID
94
	WHERE TM1.TLNAME=@p_USER_LOGIN AND CAST(TM1.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
95

    
96
	INSERT INTO @AUTHOR_DVDM
97
	(
98
	    ROLE_ID,
99
	    BRANCH_ID,
100
	    DEP_ID,
101
	    DVDM_ID
102
	)
103
	SELECT TU.RoleName,TU.TLSUBBRID,TU.SECUR_CODE,PC.DVDM_ID FROM dbo.TL_USER TU 
104
	LEFT JOIN dbo.PL_COSTCENTER_DT DT ON DT.BRANCH_ID=TU.TLSUBBRID AND DT.DEP_ID=TU.SECUR_CODE
105
	LEFT JOIN dbo.PL_COSTCENTER PC ON PC.COST_ID=DT.COST_ID
106
	WHERE TU.TLNANME=@p_USER_LOGIN
107
	UNION ALL
108
	SELECT TM.ROLE_NEW RoleName,TU.TLSUBBRID,TU.SECUR_CODE,PC.DVDM_ID FROM dbo.TL_USER TU 
109
	LEFT JOIN dbo.PL_COSTCENTER_DT DT ON DT.BRANCH_ID=TU.TLSUBBRID AND DT.DEP_ID=TU.SECUR_CODE
110
	LEFT JOIN dbo.PL_COSTCENTER PC ON PC.COST_ID=DT.COST_ID
111
	LEFT JOIN dbo.TL_SYS_ROLE_MAPPING TM ON TM.ROLE_OLD=TU.RoleName AND( TM.TLNAME IS NULL OR TM.TLNAME='')
112
	WHERE TU.TLNANME=@p_USER_LOGIN
113
	UNION ALL
114
	SELECT TU.ROLE_NEW RoleName,TU.BRANCH_ID TLSUBBRID,TU.DEP_ID SECUR_CODE,PC.DVDM_ID FROM dbo.TL_SYS_ROLE_MAPPING TU 
115
	LEFT JOIN dbo.PL_COSTCENTER_DT DT ON DT.BRANCH_ID=TU.BRANCH_ID AND DT.DEP_ID=TU.DEP_ID
116
	LEFT JOIN dbo.PL_COSTCENTER PC ON PC.COST_ID=DT.COST_ID
117
	WHERE TU.TLNAME=@p_USER_LOGIN AND CAST(EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
118
	UNION ALL
119
	SELECT TM.ROLE_NEW RoleName,TU.BRANCH_ID TLSUBBRID,TU.DEP_ID SECUR_CODE,PC.DVDM_ID FROM dbo.TL_SYS_ROLE_MAPPING TU 
120
	LEFT JOIN dbo.PL_COSTCENTER_DT DT ON DT.BRANCH_ID=TU.BRANCH_ID AND DT.DEP_ID=TU.DEP_ID
121
	LEFT JOIN dbo.PL_COSTCENTER PC ON PC.COST_ID=DT.COST_ID
122
	LEFT JOIN dbo.TL_SYS_ROLE_MAPPING TM ON TM.ROLE_OLD=TU.ROLE_NEW AND( TM.TLNAME IS NULL OR TM.TLNAME='')
123
	WHERE TU.TLNAME=@p_USER_LOGIN AND CAST(TU.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
124

    
125
	INSERT INTO @AUTHOR_DMMS
126
	(
127
	    ROLE_ID,
128
	    BRANCH_ID,
129
	    DEP_ID,
130
		DMMS_ID
131
	)
132
	SELECT RoleName,TLSUBBRID,SECUR_CODE,MS.DMMS_ID FROM dbo.TL_USER TU
133
	LEFT JOIN dbo.CM_BRANCH CB ON CB.BRANCH_ID=TU.TLSUBBRID
134
	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')
135
	WHERE TLNANME=@p_USER_LOGIN
136
	UNION ALL
137
	SELECT TM.ROLE_NEW RoleName,TLSUBBRID,SECUR_CODE,MS.DMMS_ID FROM dbo.TL_USER TU
138
	LEFT JOIN dbo.TL_SYS_ROLE_MAPPING TM ON TM.ROLE_OLD=TU.RoleName AND( TM.TLNAME IS NULL OR TM.TLNAME='')
139
	LEFT JOIN dbo.CM_BRANCH CB ON CB.BRANCH_ID=TU.TLSUBBRID
140
	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')
141
	WHERE TLNANME=@p_USER_LOGIN
142
	UNION ALL
143
	SELECT TM1.ROLE_NEW RoleName,TM1.BRANCH_ID TLSUBBRID,TM1.DEP_ID SECUR_CODE,MS.DMMS_ID FROM dbo.TL_SYS_ROLE_MAPPING TM1
144
	LEFT JOIN dbo.CM_BRANCH CB ON CB.BRANCH_ID=TM1.BRANCH_ID
145
	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')
146
	WHERE TM1.TLNAME=@p_USER_LOGIN AND CAST(TM1.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
147
	UNION ALL
148
	SELECT TM.ROLE_NEW RoleName,TM1.BRANCH_ID TLSUBBRID,TM1.DEP_ID SECUR_CODE,MS.DMMS_ID FROM dbo.TL_SYS_ROLE_MAPPING TM1
149
	LEFT JOIN dbo.TL_SYS_ROLE_MAPPING TM ON TM.ROLE_OLD=TM1.ROLE_NEW AND( TM.TLNAME IS NULL OR TM.TLNAME='')
150
	LEFT JOIN dbo.CM_BRANCH CB ON CB.BRANCH_ID=TM1.BRANCH_ID
151
	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')
152
	WHERE TM1.TLNAME=@p_USER_LOGIN AND CAST(TM1.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
153

    
154
	IF(@TYPE='ADV_PAY')
155
	BEGIN
156
		IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE AUTH_STATUS ='A' AND REQ_PAY_ID =@p_REQ_ID))
157
		BEGIN
158
			ROLLBACK TRANSACTION
159
			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
160
			RETURN '-1'
161
		END
162

    
163
		-- NEU LA TPHC O HOI SO 
164
		IF(	EXISTS(SELECT * FROM TL_USER WHERE TLNANME = @p_USER_LOGIN AND TLSUBBRID = 'DV0001' AND DEP_ID = 'DEP000000000014' AND RoleName = 'GDDV'))
165
			--OR EXISTS(SELECT * FROM @TABLE_DEP WHERE ROLE_NEW = 'GDDV' AND BRANCH_ID = 'DV0001' AND DEP_ID = 'DEP000000000014') 
166
		BEGIN
167
			IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_REQ_ID AND PROCESS <> '' AND PROCESS IS NOT NULL))
168
			BEGIN
169
				ROLLBACK TRANSACTION
170
				SELECT '-1' as Result, N'Bạn không có quyền phê duyệt' ErrorDesc
171
				RETURN '-1'
172
			END
173
		END
174
		--doanptt: THU KY DA DIEU PHOI CHO NHAN VIEN XU LY THI KHONG DUOC DUYET NUA
175
		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')))
176
		BEGIN
177
			ROLLBACK TRANSACTION
178
			SELECT '-1' as Result, N'Phiếu đang được điều phối đến nhân viên xử lý' ErrorDesc
179
			RETURN '-1'
180
		END
181
		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,'') = ''))
182
		BEGIN
183
			PRINT '1'
184
		END
185
		ELSE IF	(	(	EXISTS(SELECT * FROM TL_USER WHERE TLNANME = @p_USER_LOGIN AND TLSUBBRID = 'DV0001' AND RoleName = 'GDDV')
186
						OR EXISTS(SELECT * FROM @TABLE_DEP WHERE ROLE_NEW = 'GDDV' AND BRANCH_ID = 'DV0001') 
187
					)
188
					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,'') = '')
189
				)
190
		BEGIN
191
			ROLLBACK TRANSACTION
192
			SELECT '0' as Result, '' ErrorDesc
193
			RETURN '0'
194
		END
195
		-- CAC TRUONG HOP CON LAI
196
		ELSE
197
		BEGIN
198
			IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID =@p_REQ_ID) )
199
			BEGIN
200
				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)))
201
				BEGIN
202
					ROLLBACK TRANSACTION
203
					SELECT '-1' as Result, N'Bạn không có quyền phê duyệt' ErrorDesc
204
					RETURN '-1'
205
				END
206
			END
207
		END
208
		
209
		--IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_REQ_ID AND BRANCH_CREATE ='DV0001')
210
		--BEGIN
211
		--	IF(EXISTS(SELECT * FROM PL_PROCESS WHERE CHEC))
212
		--END
213
		--ELSE
214
		--BEGIN
215
		--	ROLLBACK TRANSACTION
216
		--	SELECT '-1' as Result, '' ErrorDesc
217
		--	RETURN '-1'
218
		--END
219
	END
220
	ELSE IF(@TYPE='TR_REQ_PAYMENT')
221
	BEGIN
222
		IF(EXISTS(SELECT 1 FROM TR_REQ_PAYMENT WHERE TRASFER_USER_RECIVE = @p_USER_LOGIN AND ISNULL(PROCESS, '') = '0'))
223
		BEGIN
224
			ROLLBACK TRANSACTION
225
			SELECT '-1' as Result, N'Phiếu đã được duyệt trung gian. Vui lòng chờ các giao dịch tiếp theo để thực hiện phê duyệt' ErrorDesc
226
			RETURN '-1'
227
		END
228

    
229
		IF(EXISTS(SELECT * FROM TR_REQ_PAYMENT WHERE AUTH_STATUS ='A' AND REQ_PAY_ID =@p_REQ_ID))
230
		BEGIN
231
			ROLLBACK TRANSACTION
232
			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
233
			RETURN '-1'
234
		END
235

    
236
		IF	(	(	SELECT COUNT(*) 
237
					FROM @TABLE_ROLE A 
238
					WHERE A.ROLE_AUTH IN ('TPGD','GDDV','PGD','PTGD','TGD','HDQT','TP','PP','TBP','KTT','GDK','KSV','TC','NVTC','TPTC','PPGD')
239
				) = 0
240
			) 
241
		BEGIN
242
			ROLLBACK TRANSACTION
243
			SELECT '-1' as Result, N'Bạn không có quyền phê duyệt' ErrorDesc
244
			RETURN '-1'
245
		END
246
	END
247
	ELSE IF (@TYPE ='CORE')
248
	BEGIN
249
		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'))
250
		BEGIN
251
			IF(EXISTS(SELECT * FROM PAY_ENTRIES_POST WHERE TRN_ID =@p_REQ_ID AND ISNULL(REF_NO,'') <> ''))
252
			BEGIN
253
				ROLLBACK TRANSACTION
254
				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
255
				RETURN '6'
256
			END
257
			ELSE
258
			BEGIN
259
				ROLLBACK TRANSACTION
260
				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
261
				RETURN '5'
262
			END
263
		END
264
		ELSE
265
		BEGIN
266
			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'))
267
			BEGIN
268
				ROLLBACK TRANSACTION
269
				SELECT '7' as Result, '' ErrorDesc
270
				RETURN '7'
271
			END
272
		END
273
	END
274
	ELSE IF(@TYPE ='CON_LAYOUT')
275
	BEGIN
276

    
277
		-- NEU CAP DUYET LA VAN PHONG THU KI TGD THI CO THE DUYET LUON
278
		IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID =@p_REQ_ID AND STATUS ='C' AND PROCESS_ID ='TKTGD' AND
279
		(@ROLE_ID ='TKTGD' OR EXISTS(SELECT * FROM @TABLE_ROLE WHERE ROLE_AUTH ='TKTGD'))))
280
		BEGIN
281
			ROLLBACK TRANSACTION
282
			SELECT '0' as Result, '' ErrorDesc
283
			RETURN '0'
284
		END
285
		-- NEU CAP DUYET LA VAN PHONG THU KI HDQT THI CO THE DUYET LUON
286
		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'))))
287
		BEGIN
288
			ROLLBACK TRANSACTION
289
			SELECT '0' as Result, '' ErrorDesc
290
			RETURN '0'
291
		END
292
		IF(EXISTS(SELECT * FROM CON_LAYOUT_BLUEPRINT WHERE CON_LAYOUT_BLUEPRINT_ID = @p_REQ_ID AND PROCESS_ID ='APPROVE'))
293
		BEGIN
294

    
295
			ROLLBACK TRANSACTION
296
			SELECT '-1' as Result, '' ErrorDesc
297
			RETURN '-1'
298
		END
299
		IF(NOT EXISTS(SELECT * FROM PL_REQUEST_PROCESS PR WHERE PR.REQ_ID =@p_REQ_ID AND STATUS ='C' AND (
300
									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'))
301
									OR EXISTS(SELECT  AUTH.ROLE_ID FROM @AUTHOR_DVDM AUTH WHERE AUTH.ROLE_ID=PR.ROLE_USER AND PR.DVDM_ID=AUTH.DVDM_ID)
302
									OR ( (PR.BRANCH_ID IS NULL OR PR.BRANCH_ID='') AND (PR.DVDM_ID ='' OR PR.DVDM_ID  IS NULL) )
303
									)))
304
		BEGIN
305
			print 'haha'
306
			ROLLBACK TRANSACTION
307
			SELECT '-1' as Result, '' ErrorDesc
308
			RETURN '-1'
309
		END
310
	END
311
	ELSE
312
	BEGIN
313
		-- NEU CAP DUYET LA VAN PHONG THU KI TGD THI CO THE DUYET LUON
314
		IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID =@p_REQ_ID AND STATUS ='C' AND PROCESS_ID ='TKTGD' AND
315
		(@ROLE_ID ='TKTGD' OR EXISTS(SELECT * FROM @TABLE_ROLE WHERE ROLE_AUTH ='TKTGD'))))
316
		BEGIN
317
			ROLLBACK TRANSACTION
318
			SELECT '0' as Result, '' ErrorDesc
319
			RETURN '0'
320
		END
321
		-- NEU CAP DUYET LA VAN PHONG THU KI HDQT THI CO THE DUYET LUON
322
		IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID =@p_REQ_ID AND STATUS ='C' AND PROCESS_ID ='TKHDQT' AND
323
    (@ROLE_ID ='TKHDQT' OR EXISTS(SELECT * FROM @TABLE_ROLE WHERE ROLE_AUTH ='TKHDQT'))))
324
		BEGIN
325
			ROLLBACK TRANSACTION
326
			SELECT '0' as Result, '' ErrorDesc
327
			RETURN '0'
328
		END
329
    -- NEU CAP DUYET LA DVCM THI CO THE DUYET LUON
330
		IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID =@p_REQ_ID AND STATUS ='C' AND PROCESS_ID ='DVCM' AND
331
    (@ROLE_ID ='GDDV' OR EXISTS(SELECT * FROM @TABLE_ROLE WHERE ROLE_AUTH ='GDDV'))))
332
		BEGIN
333
			ROLLBACK TRANSACTION
334
			SELECT '0' as Result, '' ErrorDesc
335
			RETURN '0'
336
		END
337
    IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID =@p_REQ_ID AND STATUS ='C' AND PROCESS_ID ='DVDC' AND
338
    (@ROLE_ID ='GDDV' OR EXISTS(SELECT * FROM @TABLE_ROLE WHERE ROLE_AUTH ='GDDV'))))
339
		BEGIN
340
			ROLLBACK TRANSACTION
341
			SELECT '0' as Result, '' ErrorDesc
342
			RETURN '0'
343
		END
344
		IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@p_REQ_ID AND STATUS_JOB ='C' AND TLNAME =@p_USER_LOGIN))
345
		BEGIN
346
			ROLLBACK TRANSACTION
347
			SELECT '0' as Result, '' ErrorDesc
348
			RETURN '0'
349
		END
350
		IF(NOT EXISTS(SELECT * FROM PL_REQUEST_PROCESS PR WHERE PR.REQ_ID =@p_REQ_ID AND STATUS ='C' AND (
351
									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'))
352
									OR EXISTS(SELECT  AUTH.ROLE_ID FROM @AUTHOR_DVDM AUTH WHERE AUTH.ROLE_ID=PR.ROLE_USER AND PR.DVDM_ID=AUTH.DVDM_ID)
353
									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'))
354
									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'))
355
									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')
356
									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))
357
									)))
358
		BEGIN
359
			ROLLBACK TRANSACTION
360
			SELECT '-1' as Result, '' ErrorDesc
361
			RETURN '-1'
362
		END
363
		IF(EXISTS(SELECT * FROM PL_REQUEST_DOC WHERE REQ_ID =@p_REQ_ID AND PROCESS_ID ='APPROVE'))
364
		BEGIN
365
			ROLLBACK TRANSACTION
366
			SELECT '-1' as Result, '' ErrorDesc
367
			RETURN '-1'
368
		END
369
		IF(EXISTS(SELECT * FROM TR_REQUEST_DOC WHERE REQ_ID =@p_REQ_ID AND PROCESS_ID ='APPROVE'))
370
		BEGIN
371
			ROLLBACK TRANSACTION
372
			SELECT '-1' as Result, '' ErrorDesc
373
			RETURN '-1'
374
		END
375

    
376
		-- GiaNT
377
		IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID =@p_REQ_ID AND STATUS ='P' AND PROCESS_ID ='KT' AND
378
		(@ROLE_ID ='KSV' OR EXISTS(SELECT * FROM @TABLE_ROLE WHERE ROLE_AUTH ='KSV'))))
379
		BEGIN
380
			ROLLBACK TRANSACTION
381
			SELECT '-1' as Result, '' ErrorDesc
382
			RETURN '-1'
383
		END
384
	END
385
	COMMIT TRANSACTION
386
	print 'haha'
387
	SELECT '0' as Result, '' ErrorDesc
388
	RETURN '0'
389

    
390
	ABORT:
391
	BEGIN
392
			ROLLBACK TRANSACTION
393
			SELECT '-1' as Result, '' ErrorDesc
394
			RETURN '-1'
395
	End