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
|
|