Project

General

Profile

TR_CHECK_APPR.txt

Luc Tran Van, 12/22/2022 11:04 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 
23
						FROM TL_SYS_ROLE_MAPPING 
24
						WHERE	ROLE_OLD =@ROLE_ID 
25
								AND TLNAME =@p_USER_LOGIN 
26
								AND (	CONVERT(DATE,GETDATE(),103) >= CONVERT(DATE,EFF_DATE, 103) 
27
										AND CONVERT(DATE, GETDATE(),103) <=CONVERT(DATE,EXP_DATE, 103) 
28
										OR (EFF_DATE IS NULL OR EXP_DATE IS NULL)
29
									)
30

    
31
INSERT INTO @TABLE_DEP	SELECT ROLE_NEW, BRANCH_ID, DEP_ID 
32
						FROM TL_SYS_ROLE_MAPPING 
33
						WHERE	ROLE_OLD = @ROLE_ID 
34
								AND 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
	DECLARE @AUTHOR TABLE
41
	(
42
		ROLE_ID VARCHAR(20),
43
		BRANCH_ID VARCHAR(20),
44
		DEP_ID VARCHAR(20),
45
		BRANCH_TYPE VARCHAR(20)
46
	)
47
	DECLARE @AUTHOR_DVDM TABLE
48
	(
49
		ROLE_ID VARCHAR(20),
50
		BRANCH_ID VARCHAR(20),
51
		DEP_ID VARCHAR(20),
52
		DVDM_ID VARCHAR(20)
53
	)
54

    
55
	DECLARE @AUTHOR_DMMS TABLE
56
	(
57
		ROLE_ID VARCHAR(20),
58
		BRANCH_ID VARCHAR(20),
59
		DEP_ID VARCHAR(20),
60
		DMMS_ID VARCHAR(20)
61
	)
62

    
63
	INSERT INTO @AUTHOR
64
	(
65
	    ROLE_ID,
66
	    BRANCH_ID,
67
	    DEP_ID,
68
		BRANCH_TYPE
69
	)
70
	SELECT RoleName,TLSUBBRID,SECUR_CODE,CB.BRANCH_TYPE FROM dbo.TL_USER TU
71
	LEFT JOIN dbo.CM_BRANCH CB ON CB.BRANCH_ID=TU.TLSUBBRID
72
	WHERE TLNANME=@p_USER_LOGIN
73
	UNION ALL
74
	SELECT TM.ROLE_NEW RoleName,TLSUBBRID,SECUR_CODE,CB.BRANCH_TYPE FROM dbo.TL_USER TU
75
	LEFT JOIN dbo.TL_SYS_ROLE_MAPPING TM ON TM.ROLE_OLD=TU.RoleName AND( TM.TLNAME IS NULL OR TM.TLNAME='')
76
	LEFT JOIN dbo.CM_BRANCH CB ON CB.BRANCH_ID=TU.TLSUBBRID
77
	WHERE TLNANME=@p_USER_LOGIN
78
	UNION ALL
79
	SELECT TM1.ROLE_NEW RoleName,TM1.BRANCH_ID TLSUBBRID,TM1.DEP_ID SECUR_CODE,CB.BRANCH_TYPE FROM dbo.TL_SYS_ROLE_MAPPING TM1
80
	LEFT JOIN dbo.CM_BRANCH CB ON CB.BRANCH_ID=TM1.BRANCH_ID
81
	WHERE TM1.TLNAME=@p_USER_LOGIN AND CAST(TM1.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
82
	UNION ALL
83
	SELECT TM.ROLE_NEW RoleName,TM1.BRANCH_ID TLSUBBRID,TM1.DEP_ID SECUR_CODE,CB.BRANCH_TYPE FROM dbo.TL_SYS_ROLE_MAPPING TM1
84
	LEFT JOIN dbo.TL_SYS_ROLE_MAPPING TM ON TM.ROLE_OLD=TM1.ROLE_NEW AND( TM.TLNAME IS NULL OR TM.TLNAME='')
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

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

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

    
146
	IF(@TYPE='ADV_PAY')
147
	BEGIN
148
		IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE AUTH_STATUS ='A' AND REQ_PAY_ID =@p_REQ_ID))
149
		BEGIN
150
			ROLLBACK TRANSACTION
151
			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
152
			RETURN '-1'
153
		END
154

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

    
221
		IF(EXISTS(SELECT * FROM TR_REQ_PAYMENT WHERE AUTH_STATUS ='A' AND REQ_PAY_ID =@p_REQ_ID))
222
		BEGIN
223
			ROLLBACK TRANSACTION
224
			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
225
			RETURN '-1'
226
		END
227

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

    
269
		-- NEU CAP DUYET LA VAN PHONG THU KI TGD THI CO THE DUYET LUON
270
		IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID =@p_REQ_ID AND STATUS ='C' AND PROCESS_ID ='TKTGD' AND
271
		(@ROLE_ID ='TKTGD' OR EXISTS(SELECT * FROM @TABLE_ROLE WHERE ROLE_AUTH ='TKTGD'))))
272
		BEGIN
273
			ROLLBACK TRANSACTION
274
			SELECT '0' as Result, '' ErrorDesc
275
			RETURN '0'
276
		END
277
		-- NEU CAP DUYET LA VAN PHONG THU KI HDQT 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 ='TKHDQT' AND (@ROLE_ID ='TKHDQT' OR EXISTS(SELECT * FROM @TABLE_ROLE WHERE ROLE_AUTH ='TKHDQT'))))
279
		BEGIN
280
			ROLLBACK TRANSACTION
281
			SELECT '0' as Result, '' ErrorDesc
282
			RETURN '0'
283
		END
284
		IF(EXISTS(SELECT * FROM CON_LAYOUT_BLUEPRINT WHERE CON_LAYOUT_BLUEPRINT_ID = @p_REQ_ID AND PROCESS_ID ='APPROVE'))
285
		BEGIN
286

    
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

    
368
		-- GiaNT
369
		IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID =@p_REQ_ID AND STATUS ='P' AND PROCESS_ID ='KT' AND
370
		(@ROLE_ID ='KSV' OR EXISTS(SELECT * FROM @TABLE_ROLE WHERE ROLE_AUTH ='KSV'))))
371
		BEGIN
372
			ROLLBACK TRANSACTION
373
			SELECT '-1' as Result, '' ErrorDesc
374
			RETURN '-1'
375
		END
376
	END
377
	COMMIT TRANSACTION
378
	print 'haha'
379
	SELECT '0' as Result, '' ErrorDesc
380
	RETURN '0'
381

    
382
	ABORT:
383
	BEGIN
384
			ROLLBACK TRANSACTION
385
			SELECT '-1' as Result, '' ErrorDesc
386
			RETURN '-1'
387
	End