Project

General

Profile

TR_CHECK_APPR.txt

Luc Tran Van, 12/22/2022 11:29 AM

 
1

    
2

    
3
ALTER PROCEDURE [dbo].[TR_CHECK_ROLE_APPROVE]
4
@TYPE VARCHAR(15) = NULL,
5
@p_REQ_ID	varchar(15) = NULL,
6
@p_USER_LOGIN varchar(15) = NULL
7
AS
8
BEGIN TRANSACTION
9
IF(@TYPE <> 'ADV_PAY')
10
BEGIN
11
	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')))
12
	BEGIN
13
		ROLLBACK TRANSACTION
14
		SELECT '0' as Result, '' ErrorDesc
15
		RETURN '0'
16
	END
17
END
18
-- KHAI BAO THEM ROLE NHAN UY QUYEN
19
DECLARE @TABLE_ROLE TABLE (ROLE_AUTH VARCHAR(50))
20
DECLARE @TABLE_ROLE2 TABLE (ROLE_AUTH VARCHAR(50))
21
DECLARE @TABLE_DEP TABLE (ROLE_NEW VARCHAR(50), BRANCH_ID VARCHAR(20), DEP_ID VARCHAR(20))
22
DECLARE @ROLE_ID VARCHAR(50)
23
SET @ROLE_ID = (SELECT ROLENAME FROM TL_USER WHERE TLNANME =@p_USER_LOGIN)
24
INSERT INTO @TABLE_ROLE SELECT @ROLE_ID
25
INSERT INTO @TABLE_ROLE SELECT ROLE_NEW 
26
						FROM TL_SYS_ROLE_MAPPING 
27
						WHERE	ROLE_OLD =@ROLE_ID 
28
								AND TLNAME =@p_USER_LOGIN 
29
								AND (	CONVERT(DATE,GETDATE(),103) >= CONVERT(DATE,EFF_DATE, 103) 
30
										AND CONVERT(DATE, GETDATE(),103) <=CONVERT(DATE,EXP_DATE, 103) 
31
										OR (EFF_DATE IS NULL OR EXP_DATE IS NULL)
32
									)
33
INSERT INTO @TABLE_ROLE2 SELECT @ROLE_ID
34
INSERT INTO @TABLE_ROLE2 SELECT ROLE_NEW 
35
						FROM TL_SYS_ROLE_MAPPING 
36
						WHERE	TLNAME =@p_USER_LOGIN 
37
								AND (	CONVERT(DATE,GETDATE(),103) >= CONVERT(DATE,EFF_DATE, 103) 
38
										AND CONVERT(DATE, GETDATE(),103) <=CONVERT(DATE,EXP_DATE, 103) 
39
										OR (EFF_DATE IS NULL OR EXP_DATE IS NULL)
40
									)
41

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

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

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

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

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

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

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

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

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

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

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

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

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

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