Project

General

Profile

check_role_271222.txt

Luc Tran Van, 12/27/2022 09:24 AM

 
1

    
2
ALTER PROCEDURE [dbo].[TR_CHECK_ROLE_APPROVE]
3
@TYPE VARCHAR(15) = NULL,
4
@p_REQ_ID	varchar(15) = NULL,
5
@p_USER_LOGIN varchar(15) = NULL
6
AS
7
BEGIN TRANSACTION
8
IF(@TYPE <> 'ADV_PAY')
9
BEGIN
10
	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')))
11
	BEGIN
12
		ROLLBACK TRANSACTION
13
		SELECT '0' as Result, '' ErrorDesc
14
		RETURN '0'
15
	END
16
END
17
-- KHAI BAO THEM ROLE NHAN UY QUYEN
18
DECLARE @TABLE_ROLE TABLE (ROLE_AUTH VARCHAR(50))
19
DECLARE @TABLE_ROLE2 TABLE (ROLE_AUTH VARCHAR(50))
20
DECLARE @TABLE_DEP TABLE (ROLE_NEW VARCHAR(50), BRANCH_ID VARCHAR(20), DEP_ID VARCHAR(20))
21
DECLARE @ROLE_ID VARCHAR(50)
22
SET @ROLE_ID = (SELECT ROLENAME FROM TL_USER WHERE TLNANME =@p_USER_LOGIN)
23
INSERT INTO @TABLE_ROLE SELECT @ROLE_ID
24
INSERT INTO @TABLE_ROLE SELECT ROLE_NEW 
25
						FROM TL_SYS_ROLE_MAPPING 
26
						WHERE	ROLE_OLD =@ROLE_ID 
27
								AND TLNAME =@p_USER_LOGIN 
28
								AND (	CONVERT(DATE,GETDATE(),103) >= CONVERT(DATE,EFF_DATE, 103) 
29
										AND CONVERT(DATE, GETDATE(),103) <=CONVERT(DATE,EXP_DATE, 103) 
30
										OR (EFF_DATE IS NULL OR EXP_DATE IS NULL)
31
									)
32
INSERT INTO @TABLE_ROLE2 SELECT @ROLE_ID
33
INSERT INTO @TABLE_ROLE2 SELECT ROLE_NEW 
34
						FROM TL_SYS_ROLE_MAPPING 
35
						WHERE	TLNAME =@p_USER_LOGIN 
36
								AND (	CONVERT(DATE,GETDATE(),103) >= CONVERT(DATE,EFF_DATE, 103) 
37
										AND CONVERT(DATE, GETDATE(),103) <=CONVERT(DATE,EXP_DATE, 103) 
38
										OR (EFF_DATE IS NULL OR EXP_DATE IS NULL)
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
	DECLARE @AUTHOR TABLE
48
	(
49
		ROLE_ID VARCHAR(20),
50
		BRANCH_ID VARCHAR(20),
51
		DEP_ID VARCHAR(20),
52
		BRANCH_TYPE VARCHAR(20)
53
	)
54
	DECLARE @AUTHOR_DVDM TABLE
55
	(
56
		ROLE_ID VARCHAR(20),
57
		BRANCH_ID VARCHAR(20),
58
		DEP_ID VARCHAR(20),
59
		DVDM_ID VARCHAR(20)
60
	)
61
	DECLARE @AUTHOR_DMMS TABLE
62
	(
63
		ROLE_ID VARCHAR(20),
64
		BRANCH_ID VARCHAR(20),
65
		DEP_ID VARCHAR(20),
66
		DMMS_ID VARCHAR(20)
67
	)
68
	INSERT INTO @AUTHOR
69
	(
70
	    ROLE_ID,
71
	    BRANCH_ID,
72
	    DEP_ID,
73
		BRANCH_TYPE
74
	)
75
	SELECT RoleName,TLSUBBRID,SECUR_CODE,CB.BRANCH_TYPE FROM dbo.TL_USER TU
76
	LEFT JOIN dbo.CM_BRANCH CB ON CB.BRANCH_ID=TU.TLSUBBRID
77
	WHERE TLNANME=@p_USER_LOGIN
78
	UNION ALL
79
	SELECT TM.ROLE_NEW RoleName,TLSUBBRID,SECUR_CODE,CB.BRANCH_TYPE FROM dbo.TL_USER TU
80
	LEFT JOIN dbo.TL_SYS_ROLE_MAPPING TM ON TM.ROLE_OLD=TU.RoleName AND( TM.TLNAME IS NULL OR TM.TLNAME='')
81
	LEFT JOIN dbo.CM_BRANCH CB ON CB.BRANCH_ID=TU.TLSUBBRID
82
	WHERE TLNANME=@p_USER_LOGIN
83
	UNION ALL
84
	SELECT TM1.ROLE_NEW RoleName,TM1.BRANCH_ID TLSUBBRID,TM1.DEP_ID SECUR_CODE,CB.BRANCH_TYPE FROM dbo.TL_SYS_ROLE_MAPPING TM1
85
	LEFT JOIN dbo.CM_BRANCH CB ON CB.BRANCH_ID=TM1.BRANCH_ID
86
	WHERE TM1.TLNAME=@p_USER_LOGIN AND CAST(TM1.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
87
	UNION ALL
88
	SELECT TM.ROLE_NEW RoleName,TM1.BRANCH_ID TLSUBBRID,TM1.DEP_ID SECUR_CODE,CB.BRANCH_TYPE FROM dbo.TL_SYS_ROLE_MAPPING TM1
89
	LEFT JOIN dbo.TL_SYS_ROLE_MAPPING TM ON TM.ROLE_OLD=TM1.ROLE_NEW AND( TM.TLNAME IS NULL OR TM.TLNAME='')
90
	LEFT JOIN dbo.CM_BRANCH CB ON CB.BRANCH_ID=TM1.BRANCH_ID
91
	WHERE TM1.TLNAME=@p_USER_LOGIN AND CAST(TM1.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
92
	INSERT INTO @AUTHOR_DVDM
93
	(
94
	    ROLE_ID,
95
	    BRANCH_ID,
96
	    DEP_ID,
97
	    DVDM_ID
98
	)
99
	SELECT TU.RoleName,TU.TLSUBBRID,TU.SECUR_CODE,PC.DVDM_ID FROM dbo.TL_USER TU 
100
	LEFT JOIN dbo.PL_COSTCENTER_DT DT ON DT.BRANCH_ID=TU.TLSUBBRID AND DT.DEP_ID=TU.SECUR_CODE
101
	LEFT JOIN dbo.PL_COSTCENTER PC ON PC.COST_ID=DT.COST_ID
102
	WHERE TU.TLNANME=@p_USER_LOGIN
103
	UNION ALL
104
	SELECT TM.ROLE_NEW RoleName,TU.TLSUBBRID,TU.SECUR_CODE,PC.DVDM_ID FROM dbo.TL_USER TU 
105
	LEFT JOIN dbo.PL_COSTCENTER_DT DT ON DT.BRANCH_ID=TU.TLSUBBRID AND DT.DEP_ID=TU.SECUR_CODE
106
	LEFT JOIN dbo.PL_COSTCENTER PC ON PC.COST_ID=DT.COST_ID
107
	LEFT JOIN dbo.TL_SYS_ROLE_MAPPING TM ON TM.ROLE_OLD=TU.RoleName AND( TM.TLNAME IS NULL OR TM.TLNAME='')
108
	WHERE TU.TLNANME=@p_USER_LOGIN
109
	UNION ALL
110
	SELECT TU.ROLE_NEW RoleName,TU.BRANCH_ID TLSUBBRID,TU.DEP_ID SECUR_CODE,PC.DVDM_ID FROM dbo.TL_SYS_ROLE_MAPPING TU 
111
	LEFT JOIN dbo.PL_COSTCENTER_DT DT ON DT.BRANCH_ID=TU.BRANCH_ID AND DT.DEP_ID=TU.DEP_ID
112
	LEFT JOIN dbo.PL_COSTCENTER PC ON PC.COST_ID=DT.COST_ID
113
	WHERE TU.TLNAME=@p_USER_LOGIN AND CAST(EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
114
	UNION ALL
115
	SELECT TM.ROLE_NEW RoleName,TU.BRANCH_ID TLSUBBRID,TU.DEP_ID SECUR_CODE,PC.DVDM_ID FROM dbo.TL_SYS_ROLE_MAPPING TU 
116
	LEFT JOIN dbo.PL_COSTCENTER_DT DT ON DT.BRANCH_ID=TU.BRANCH_ID AND DT.DEP_ID=TU.DEP_ID
117
	LEFT JOIN dbo.PL_COSTCENTER PC ON PC.COST_ID=DT.COST_ID
118
	LEFT JOIN dbo.TL_SYS_ROLE_MAPPING TM ON TM.ROLE_OLD=TU.ROLE_NEW AND( TM.TLNAME IS NULL OR TM.TLNAME='')
119
	WHERE TU.TLNAME=@p_USER_LOGIN AND CAST(TU.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
120
	INSERT INTO @AUTHOR_DMMS
121
	(
122
	    ROLE_ID,
123
	    BRANCH_ID,
124
	    DEP_ID,
125
		DMMS_ID
126
	)
127
	SELECT RoleName,TLSUBBRID,SECUR_CODE,MS.DMMS_ID FROM dbo.TL_USER TU
128
	LEFT JOIN dbo.CM_BRANCH CB ON CB.BRANCH_ID=TU.TLSUBBRID
129
	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')
130
	WHERE TLNANME=@p_USER_LOGIN
131
	UNION ALL
132
	SELECT TM.ROLE_NEW RoleName,TLSUBBRID,SECUR_CODE,MS.DMMS_ID FROM dbo.TL_USER TU
133
	LEFT JOIN dbo.TL_SYS_ROLE_MAPPING TM ON TM.ROLE_OLD=TU.RoleName AND( TM.TLNAME IS NULL OR TM.TLNAME='')
134
	LEFT JOIN dbo.CM_BRANCH CB ON CB.BRANCH_ID=TU.TLSUBBRID
135
	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')
136
	WHERE TLNANME=@p_USER_LOGIN
137
	UNION ALL
138
	SELECT TM1.ROLE_NEW RoleName,TM1.BRANCH_ID TLSUBBRID,TM1.DEP_ID SECUR_CODE,MS.DMMS_ID FROM dbo.TL_SYS_ROLE_MAPPING TM1
139
	LEFT JOIN dbo.CM_BRANCH CB ON CB.BRANCH_ID=TM1.BRANCH_ID
140
	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')
141
	WHERE TM1.TLNAME=@p_USER_LOGIN AND CAST(TM1.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
142
	UNION ALL
143
	SELECT TM.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.TL_SYS_ROLE_MAPPING TM ON TM.ROLE_OLD=TM1.ROLE_NEW AND( TM.TLNAME IS NULL OR TM.TLNAME='')
145
	LEFT JOIN dbo.CM_BRANCH CB ON CB.BRANCH_ID=TM1.BRANCH_ID
146
	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')
147
	WHERE TM1.TLNAME=@p_USER_LOGIN AND CAST(TM1.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
148
	IF(@TYPE='ADV_PAY')
149
	BEGIN
150
		IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE AUTH_STATUS ='A' AND REQ_PAY_ID =@p_REQ_ID))
151
		BEGIN
152
			ROLLBACK TRANSACTION
153
			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
154
			RETURN '-1'
155
		END
156
		-- NEU LA TPHC O HOI SO 
157
		IF(	EXISTS(SELECT * FROM TL_USER WHERE TLNANME = @p_USER_LOGIN AND TLSUBBRID = 'DV0001' AND DEP_ID = 'DEP000000000014' AND RoleName = 'GDDV'))
158
			--OR EXISTS(SELECT * FROM @TABLE_DEP WHERE ROLE_NEW = 'GDDV' AND BRANCH_ID = 'DV0001' AND DEP_ID = 'DEP000000000014') 
159
		BEGIN
160
			IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_REQ_ID AND PROCESS <> '' AND PROCESS IS NOT NULL))
161
			BEGIN
162
				ROLLBACK TRANSACTION
163
				SELECT '-1' as Result, N'Bạn không có quyền phê duyệt' ErrorDesc
164
				RETURN '-1'
165
			END
166
		END
167
		--doanptt: THU KY DA DIEU PHOI CHO NHAN VIEN XU LY THI KHONG DUOC DUYET NUA
168
		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')))
169
		BEGIN
170
			ROLLBACK TRANSACTION
171
			SELECT '-1' as Result, N'Phiếu đang được điều phối đến nhân viên xử lý' ErrorDesc
172
			RETURN '-1'
173
		END
174
		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,'') = ''))
175
		BEGIN
176
			PRINT '1'
177
		END
178
		ELSE IF	(	(	EXISTS(SELECT * FROM TL_USER WHERE TLNANME = @p_USER_LOGIN AND TLSUBBRID = 'DV0001' AND RoleName = 'GDDV')
179
						OR EXISTS(SELECT * FROM @TABLE_DEP WHERE ROLE_NEW = 'GDDV' AND BRANCH_ID = 'DV0001') 
180
					)
181
					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,'') = '')
182
				)
183
		BEGIN
184
			ROLLBACK TRANSACTION
185
			SELECT '0' as Result, '' ErrorDesc
186
			RETURN '0'
187
		END
188
		-- CAC TRUONG HOP CON LAI
189
		ELSE
190
		BEGIN
191
			IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID =@p_REQ_ID) )
192
			BEGIN
193
				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)))
194
				BEGIN
195
					ROLLBACK TRANSACTION
196
					SELECT '-1' as Result, N'Bạn không có quyền phê duyệt' ErrorDesc
197
					RETURN '-1'
198
				END
199
			END
200
		END
201
		
202
		--IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_REQ_ID AND BRANCH_CREATE ='DV0001')
203
		--BEGIN
204
		--	IF(EXISTS(SELECT * FROM PL_PROCESS WHERE CHEC))
205
		--END
206
		--ELSE
207
		--BEGIN
208
		--	ROLLBACK TRANSACTION
209
		--	SELECT '-1' as Result, '' ErrorDesc
210
		--	RETURN '-1'
211
		--END
212
	END
213
	ELSE IF(@TYPE='TR_REQ_PAYMENT')
214
	BEGIN
215
		/*
216
		IF(EXISTS(SELECT 1 FROM TR_REQ_PAYMENT WHERE ISNULL(TRASFER_USER_RECIVE, '') = @p_USER_LOGIN AND ISNULL(PROCESS, '') = '0'))
217
		BEGIN
218
			print 'sssss'
219
			ROLLBACK TRANSACTION
220
			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
221
			RETURN '-1'
222
		END
223
		*/
224
		IF(EXISTS(SELECT * FROM TR_REQ_PAYMENT WHERE AUTH_STATUS ='A' AND REQ_PAY_ID =@p_REQ_ID))
225
		BEGIN
226
			ROLLBACK TRANSACTION
227
			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
228
			RETURN '-1'
229
		END
230
		IF	(	(	SELECT COUNT(*) 
231
					FROM @TABLE_ROLE2 A 
232
					WHERE A.ROLE_AUTH IN ('TPGD','GDDV','PGD','PTGD','TGD','HDQT','TP','PP','TBP','KTT','GDK','KSV','TC','NVTC','TPTC','PPGD')
233
				) = 0
234
			) 
235
		BEGIN
236
			ROLLBACK TRANSACTION
237
			SELECT '-1' as Result, N'Bạn không có quyền phê duyệt' ErrorDesc
238
			RETURN '-1'
239
		END
240
	END
241
	ELSE IF (@TYPE ='CORE')
242
	BEGIN
243
		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'))
244
		BEGIN
245
			IF(EXISTS(SELECT * FROM PAY_ENTRIES_POST WHERE TRN_ID =@p_REQ_ID AND ISNULL(REF_NO,'') <> ''))
246
			BEGIN
247
				ROLLBACK TRANSACTION
248
				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
249
				RETURN '6'
250
			END
251
			ELSE
252
			BEGIN
253
				ROLLBACK TRANSACTION
254
				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
255
				RETURN '5'
256
			END
257
		END
258
		ELSE
259
		BEGIN
260
			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'))
261
			BEGIN
262
				ROLLBACK TRANSACTION
263
				SELECT '7' as Result, '' ErrorDesc
264
				RETURN '7'
265
			END
266
		END
267
	END
268
	ELSE IF(@TYPE ='CON_LAYOUT')
269
	BEGIN
270
		-- NEU CAP DUYET LA VAN PHONG THU KI TGD THI CO THE DUYET LUON
271
		IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID =@p_REQ_ID AND STATUS ='C' AND PROCESS_ID ='TKTGD' AND
272
		(@ROLE_ID ='TKTGD' OR EXISTS(SELECT * FROM @TABLE_ROLE WHERE ROLE_AUTH ='TKTGD'))))
273
		BEGIN
274
			ROLLBACK TRANSACTION
275
			SELECT '0' as Result, '' ErrorDesc
276
			RETURN '0'
277
		END
278
		-- NEU CAP DUYET LA VAN PHONG THU KI HDQT THI CO THE DUYET LUON
279
		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'))))
280
		BEGIN
281
			ROLLBACK TRANSACTION
282
			SELECT '0' as Result, '' ErrorDesc
283
			RETURN '0'
284
		END
285
		IF(EXISTS(SELECT * FROM CON_LAYOUT_BLUEPRINT WHERE CON_LAYOUT_BLUEPRINT_ID = @p_REQ_ID AND PROCESS_ID ='APPROVE'))
286
		BEGIN
287
			ROLLBACK TRANSACTION
288
			SELECT '-1' as Result, '' ErrorDesc
289
			RETURN '-1'
290
		END
291
		IF(NOT EXISTS(SELECT * FROM PL_REQUEST_PROCESS PR WHERE PR.REQ_ID =@p_REQ_ID AND STATUS ='C' AND (
292
									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'))
293
									OR EXISTS(SELECT  AUTH.ROLE_ID FROM @AUTHOR_DVDM AUTH WHERE AUTH.ROLE_ID=PR.ROLE_USER AND PR.DVDM_ID=AUTH.DVDM_ID)
294
									OR ( (PR.BRANCH_ID IS NULL OR PR.BRANCH_ID='') AND (PR.DVDM_ID ='' OR PR.DVDM_ID  IS NULL) )
295
									)))
296
		BEGIN
297
			print 'haha'
298
			ROLLBACK TRANSACTION
299
			SELECT '-1' as Result, '' ErrorDesc
300
			RETURN '-1'
301
		END
302
	END
303
	ELSE
304
	BEGIN
305
		-- NEU CAP DUYET LA VAN PHONG THU KI TGD THI CO THE DUYET LUON
306
		IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID =@p_REQ_ID AND STATUS ='C' AND PROCESS_ID ='TKTGD' AND
307
		(@ROLE_ID ='TKTGD' OR EXISTS(SELECT * FROM @TABLE_ROLE WHERE ROLE_AUTH ='TKTGD'))))
308
		BEGIN
309
			ROLLBACK TRANSACTION
310
			SELECT '0' as Result, '' ErrorDesc
311
			RETURN '0'
312
		END
313
		-- NEU CAP DUYET LA VAN PHONG THU KI HDQT 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 ='TKHDQT' AND
315
    (@ROLE_ID ='TKHDQT' OR EXISTS(SELECT * FROM @TABLE_ROLE WHERE ROLE_AUTH ='TKHDQT'))))
316
		BEGIN
317
			ROLLBACK TRANSACTION
318
			SELECT '0' as Result, '' ErrorDesc
319
			RETURN '0'
320
		END
321
    -- NEU CAP DUYET LA DVCM 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 ='DVCM' AND
323
    (@ROLE_ID ='GDDV' OR EXISTS(SELECT * FROM @TABLE_ROLE WHERE ROLE_AUTH ='GDDV'))))
324
		BEGIN
325
			ROLLBACK TRANSACTION
326
			SELECT '0' as Result, '' ErrorDesc
327
			RETURN '0'
328
		END
329
    IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID =@p_REQ_ID AND STATUS ='C' AND PROCESS_ID ='DVDC' AND
330
    (@ROLE_ID ='GDDV' OR EXISTS(SELECT * FROM @TABLE_ROLE WHERE ROLE_AUTH ='GDDV'))))
331
		BEGIN
332
			ROLLBACK TRANSACTION
333
			SELECT '0' as Result, '' ErrorDesc
334
			RETURN '0'
335
		END
336
		IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@p_REQ_ID AND STATUS_JOB ='C' AND TLNAME =@p_USER_LOGIN))
337
		BEGIN
338
			ROLLBACK TRANSACTION
339
			SELECT '0' as Result, '' ErrorDesc
340
			RETURN '0'
341
		END
342
		IF(NOT EXISTS(SELECT * FROM PL_REQUEST_PROCESS PR WHERE PR.REQ_ID =@p_REQ_ID AND STATUS ='C' AND (
343
									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'))
344
									OR EXISTS(SELECT  AUTH.ROLE_ID FROM @AUTHOR_DVDM AUTH WHERE AUTH.ROLE_ID=PR.ROLE_USER AND PR.DVDM_ID=AUTH.DVDM_ID)
345
									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'))
346
									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'))
347
									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')
348
									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))
349
									)))
350
		BEGIN
351
			ROLLBACK TRANSACTION
352
			SELECT '-1' as Result, '' ErrorDesc
353
			RETURN '-1'
354
		END
355
		IF(EXISTS(SELECT * FROM PL_REQUEST_DOC WHERE REQ_ID =@p_REQ_ID AND PROCESS_ID ='APPROVE'))
356
		BEGIN
357
			ROLLBACK TRANSACTION
358
			SELECT '-1' as Result, '' ErrorDesc
359
			RETURN '-1'
360
		END
361
		IF(EXISTS(SELECT * FROM TR_REQUEST_DOC WHERE REQ_ID =@p_REQ_ID AND PROCESS_ID ='APPROVE'))
362
		BEGIN
363
			ROLLBACK TRANSACTION
364
			SELECT '-1' as Result, '' ErrorDesc
365
			RETURN '-1'
366
		END
367
		-- GiaNT
368
		IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID =@p_REQ_ID AND STATUS ='P' AND PROCESS_ID ='KT' AND
369
		(@ROLE_ID ='KSV' OR EXISTS(SELECT * FROM @TABLE_ROLE WHERE ROLE_AUTH ='KSV'))))
370
		BEGIN
371
			ROLLBACK TRANSACTION
372
			SELECT '-1' as Result, '' ErrorDesc
373
			RETURN '-1'
374
		END
375
	END
376
	COMMIT TRANSACTION
377
	print 'haha'
378
	SELECT '0' as Result, '' ErrorDesc
379
	RETURN '0'
380
	ABORT:
381
	BEGIN
382
			ROLLBACK TRANSACTION
383
			SELECT '-1' as Result, '' ErrorDesc
384
			RETURN '-1'
385
	End
386