Project

General

Profile

TR_CONTRACT_APP.txt

Truong Nguyen Vu, 02/04/2021 11:27 AM

 
1

    
2
ALTER PROCEDURE [dbo].[TR_CONTRACT_App]
3
@p_CONTRACT_ID VARCHAR(15),
4
@p_AUTH_STATUS	varchar(50)  = NULL,
5
@p_CHECKER_ID	varchar(12)  = NULL,
6
@p_APPROVE_DT	VARCHAR(20) = NULL
7
AS
8
BEGIN
9
BEGIN TRANSACTION
10
		DECLARE @ROLE_ID VARCHAR(50)
11
		SET @ROLE_ID =(SELECT RoleName FROM TL_USER WHERE TLNANME =@p_CHECKER_ID)
12
		SET  @ROLE_ID =(SELECT TOP 1 RoleName FROM TL_USER WHERE TLNANME =@p_CHECKER_ID)
13
		IF(@ROLE_ID IS NOT NULL AND @ROLE_ID <>'' AND @ROLE_ID IN ('TPGD','GDDV','PGD','PTGD','TGD','HDQT','TP','PP','TBP','KTT','GDK','KSV','TC','NVTC','TPTC','PPGD'))
14
		BEGIN
15
			PRINT @ROLE_ID
16
		END
17
		ELSE
18
		BEGIN
19
			SET @ROLE_ID =(SELECT TOP 1 RoleName FROM TL_USER_V2 WHERE TLNANME =@p_CHECKER_ID)
20
			IF(@ROLE_ID IS NULL OR @ROLE_ID ='')
21
			BEGIN
22
					SET @ROLE_ID =(SELECT TOP 1 ROLE_NEW FROM TL_SYS_ROLE_MAPPING WHERE ROLE_OLD =(SELECT TOP 1 ROLENAME FROM TL_USER WHERE TLNANME=@p_CHECKER_ID))
23
			END
24
		END
25
		IF(@ROLE_ID NOT IN ('TPGD','PPGD','PP','TP','GDDV','PGD','KTT','TBP','TP','PP','TPTC','TC','GDK'))
26
		BEGIN
27
			ROLLBACK TRANSACTION
28
			SELECT '-1' as Result, @p_CONTRACT_ID  CONTRACT_ID, N'Bạn không nằm trong nhóm quyền được phép phê duyệt hợp đồng' ErrorDesc
29
			RETURN '-1'
30
		END
31
		IF(EXISTS(SELECT * FROM TR_CONTRACT WHERE CONTRACT_ID =@p_CONTRACT_ID AND AUTH_STATUS ='R'))
32
		BEGIN
33
			ROLLBACK TRANSACTION
34
			SELECT '-1' as Result, @p_CONTRACT_ID  CONTRACT_ID, N'Hợp đồng đang bị trả về! Vui lòng đợi nhân viên xử lý và gửi phê duyệt lại' ErrorDesc
35
			RETURN '-1'
36
		END
37
		IF(EXISTS(SELECT * FROM TR_CONTRACT WHERE CONTRACT_ID =@p_CONTRACT_ID AND AUTH_STATUS ='E'))
38
		BEGIN
39
			ROLLBACK TRANSACTION
40
			SELECT '-1' as Result, @p_CONTRACT_ID  CONTRACT_ID, N'Hợp đồng đang lưu nháp! Vui lòng đợi nhân viên xử lý và gửi phê duyệt lại' ErrorDesc
41
			RETURN '-1'
42
		END
43
		IF(EXISTS(SELECT * FROM TR_CONTRACT WHERE CONTRACT_ID =@p_CONTRACT_ID AND AUTH_STATUS ='A'))
44
		BEGIN
45
			ROLLBACK TRANSACTION
46
			SELECT '-1' as Result, @p_CONTRACT_ID  CONTRACT_ID, N'Hợp đồng này đã được phê duyệt trước đó. Bạn không được phê duyệt lại' ErrorDesc
47
			RETURN '-1'
48
		END
49
		IF((SELECT MAKER_ID FROM TR_CONTRACT WHERE CONTRACT_ID =@p_CONTRACT_ID)=@p_CHECKER_ID AND @ROLE_ID NOT IN ('TPGD','PPGD','PP','TP','GDDV','PGD','KTT','TP','PP','TPTC','TC','GDK'))
50
		BEGIN
51
			ROLLBACK TRANSACTION
52
			SELECT '-1' as Result, @p_CONTRACT_ID  CONTRACT_ID, N'Người duyệt hợp đồng phải khác người tạo hợp đồng' ErrorDesc
53
			RETURN '-1'
54
		END
55
		--insert master
56
		UPDATE TR_CONTRACT SET [AUTH_STATUS] = 'A',[CHECKER_ID] = @p_CHECKER_ID,[APPROVE_DT] = CONVERT(DATETIME, @p_APPROVE_DT, 103)
57
		WHERE  CONTRACT_ID= @p_CONTRACT_ID
58
		IF @@Error <> 0 GOTO ABORT
59
		PRINT 'UPDATE MASTER SUCCESS'
60
		-- INSERT VAO LOG
61
		INSERT INTO dbo.PL_PROCESS
62
		(
63
						REQ_ID,
64
						PROCESS_ID,
65
						CHECKER_ID,
66
						APPROVE_DT,
67
						PROCESS_DESC,NOTES
68
					)
69
					VALUES
70
					(   @p_CONTRACT_ID,        -- REQ_ID - varchar(15)
71
						'APP',        -- PROCESS_ID - varchar(10)
72
						@p_CHECKER_ID,        -- CHECKER_ID - varchar(15)
73
						GETDATE(), -- APPROVE_DT - datetime
74
					   N'Phê duyệt hợp đồng thành công' ,N'Phê duyệt hợp đồng')
75
		--insert asset detail tương đương như NỘI DUNG trong bảng contract detail
76
COMMIT TRANSACTION
77
SELECT '0' as Result, @P_CONTRACT_ID  CONTRACT_ID, N'Hợp đồng có ID: '+@p_CONTRACT_ID+N' đã được phê duyệt thành công. Bạn có thể thực hiện thanh toán hoặc tạm ứng cho hợp đồng' ErrorDesc
78
RETURN '0'
79
ABORT:
80
BEGIN		
81
		ROLLBACK TRANSACTION
82
		SELECT '-1' as Result, ''  CONTRACT_ID, ERROR_MESSAGE() ErrorDesc
83
		RETURN '-1'
84
End
85

    
86
END
87

    
88

    
89

    
90

    
91