Project

General

Profile

5.0 PHE DUYET HOP DONG.txt

Luc Tran Van, 03/01/2021 02:33 PM

 
1
ALTER PROCEDURE [dbo].[TR_CONTRACT_App]
2
@p_CONTRACT_ID VARCHAR(15),
3
@p_AUTH_STATUS	varchar(50)  = NULL,
4
@p_CHECKER_ID	varchar(12)  = NULL,
5
@p_APPROVE_DT	VARCHAR(20) = NULL
6
AS
7
BEGIN
8
BEGIN TRANSACTION
9
		DECLARE @ROLE_ID VARCHAR(50)
10
		SET @ROLE_ID =(SELECT RoleName FROM TL_USER WHERE TLNANME =@p_CHECKER_ID)
11
		SET  @ROLE_ID =(SELECT TOP 1 RoleName FROM TL_USER WHERE TLNANME =@p_CHECKER_ID)
12
		IF(@ROLE_ID IS NOT NULL AND @ROLE_ID <>'' AND @ROLE_ID IN ('TPGD','GDDV','PGD','PTGD','TGD','HDQT','TP','PP','KTT','GDK','KSV','TC','NVTC','TPTC','PPGD'))
13
		BEGIN
14
			PRINT @ROLE_ID
15
		END
16
		ELSE
17
		BEGIN
18
			SET @ROLE_ID =(SELECT TOP 1 RoleName FROM TL_USER_V2 WHERE TLNANME =@p_CHECKER_ID)
19
			IF(@ROLE_ID IS NULL OR @ROLE_ID ='')
20
			BEGIN
21
					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))
22
			END
23
		END
24
		--IF(@ROLE_ID NOT IN ('TPGD','PPGD','PP','TP','GDDV','PGD','KTT','TP','PP','TPTC','TC','GDK','TBP'))
25
		--BEGIN
26
		--	ROLLBACK TRANSACTION
27
		--	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
28
		--	RETURN '-1'
29
		--END
30
		IF(EXISTS(SELECT * FROM TR_CONTRACT WHERE CONTRACT_ID =@p_CONTRACT_ID AND AUTH_STATUS ='R'))
31
		BEGIN
32
			ROLLBACK TRANSACTION
33
			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
34
			RETURN '-1'
35
		END
36
		IF(EXISTS(SELECT * FROM TR_CONTRACT WHERE CONTRACT_ID =@p_CONTRACT_ID AND AUTH_STATUS ='E'))
37
		BEGIN
38
			ROLLBACK TRANSACTION
39
			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
40
			RETURN '-1'
41
		END
42
		IF(EXISTS(SELECT * FROM TR_CONTRACT WHERE CONTRACT_ID =@p_CONTRACT_ID AND AUTH_STATUS ='A'))
43
		BEGIN
44
			ROLLBACK TRANSACTION
45
			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
46
			RETURN '-1'
47
		END
48
		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','TBP'))
49
		BEGIN
50
			ROLLBACK TRANSACTION
51
			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
52
			RETURN '-1'
53
		END
54
		--insert master
55
		UPDATE TR_CONTRACT SET [AUTH_STATUS] = 'A',[CHECKER_ID] = @p_CHECKER_ID,[APPROVE_DT] = CONVERT(DATETIME, @p_APPROVE_DT, 103)
56
		WHERE  CONTRACT_ID= @p_CONTRACT_ID
57
		IF @@Error <> 0 GOTO ABORT
58
		PRINT 'UPDATE MASTER SUCCESS'
59
		-- INSERT VAO LOG
60
		INSERT INTO dbo.PL_PROCESS
61
		(
62
						REQ_ID,
63
						PROCESS_ID,
64
						CHECKER_ID,
65
						APPROVE_DT,
66
						PROCESS_DESC,NOTES
67
					)
68
					VALUES
69
					(   @p_CONTRACT_ID,        -- REQ_ID - varchar(15)
70
						'APP',        -- PROCESS_ID - varchar(10)
71
						@p_CHECKER_ID,        -- CHECKER_ID - varchar(15)
72
						GETDATE(), -- APPROVE_DT - datetime
73
					   N'Phê duyệt hợp đồng thành công' ,N'Phê duyệt hợp đồng')
74
		--insert asset detail tương đương như NỘI DUNG trong bảng contract detail
75
COMMIT TRANSACTION
76
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
77
RETURN '0'
78
ABORT:
79
BEGIN		
80
		ROLLBACK TRANSACTION
81
		SELECT '-1' as Result, ''  CONTRACT_ID, ERROR_MESSAGE() ErrorDesc
82
		RETURN '-1'
83
End
84

    
85
END
86

    
87

    
88

    
89

    
90