1
|
ALTER PROCEDURE dbo.CM_REQUEST_TEMPLATE_App
|
2
|
@P_REQUEST_TEMPLATE_ID VARCHAR(100),
|
3
|
@P_AUTH_STATUS VARCHAR(1),
|
4
|
@P_CHECKER_ID VARCHAR(12),
|
5
|
@P_APPROVE_DT VARCHAR(20) = NULL,
|
6
|
@P_NOTE NVARCHAR(500)=NULL
|
7
|
|
8
|
AS
|
9
|
BEGIN TRANSACTION
|
10
|
DECLARE @l_APPROVE_GROUP_ID VARCHAR(50) = (SELECT APPROVE_GROUP_ID
|
11
|
FROM CM_APPROVE_GROUP
|
12
|
WHERE REQ_ID = @P_REQUEST_TEMPLATE_ID
|
13
|
AND (APPROVE_USERNAME = @P_CHECKER_ID OR AUTHORITY_NAME = @P_CHECKER_ID)
|
14
|
AND PROCESS_STATUS = 1)
|
15
|
DECLARE @l_STEP_LEVEL INT = (SELECT STEP_LEVEL FROM CM_APPROVE_GROUP WHERE APPROVE_GROUP_ID = @l_APPROVE_GROUP_ID),
|
16
|
@AUTO_APP BIT = 0,
|
17
|
@DONE VARCHAR(1) = 'U'
|
18
|
--SET CURRENT APPROVE
|
19
|
UPDATE CM_APPROVE_GROUP
|
20
|
SET
|
21
|
DONE = 1,
|
22
|
PROCESS_STATUS = 0,
|
23
|
CHECKER_ID = @P_CHECKER_ID,
|
24
|
NOTES = @P_NOTE,
|
25
|
APPROVE_DT = CONVERT(DATETIME,@P_APPROVE_DT,103)
|
26
|
WHERE APPROVE_GROUP_ID=@l_APPROVE_GROUP_ID
|
27
|
IF @@Error <> 0 GOTO ABORT
|
28
|
|
29
|
--CHECK CURRENT APPROVE
|
30
|
IF(NOT EXISTS(SELECT * FROM CM_APPROVE_GROUP WHERE STEP_LEVEL = @l_STEP_LEVEL
|
31
|
AND DONE = 0
|
32
|
AND REQ_ID = @P_REQUEST_TEMPLATE_ID
|
33
|
AND TYPE = 'APP'))
|
34
|
BEGIN
|
35
|
IF(EXISTS(SELECT 1 FROM CM_REQUEST_TEMPLATE A
|
36
|
LEFT JOIN dbo.TL_USER B ON B.TLNANME = A.MAKER_ID
|
37
|
LEFT JOIN dbo.CM_DEPARTMENT C ON C.DEP_ID = B.DEP_ID
|
38
|
WHERE A.REQUEST_TEMPLATE_ID = @P_REQUEST_TEMPLATE_ID
|
39
|
AND @l_STEP_LEVEL = 3 -- Khi hoàn tất nhóm 3
|
40
|
AND B.BRANCH_TYPE = 'HS'
|
41
|
AND C.DEP_CODE = '79900001PPPPP'))-- 7990000:Trung tâm QL&THN -- 79900001:Phòng Quản lý nợ
|
42
|
BEGIN
|
43
|
SET @l_STEP_LEVEL = @l_STEP_LEVEL + 1
|
44
|
-- Tự động duyệt nhóm 4
|
45
|
UPDATE CM_APPROVE_GROUP
|
46
|
SET
|
47
|
DONE = 1,
|
48
|
PROCESS_STATUS = 0,
|
49
|
-- CHECKER_ID = @P_CHECKER_ID,
|
50
|
NOTES = N'Hệ thống tự động duyệt',
|
51
|
APPROVE_DT = CONVERT(DATETIME,@P_APPROVE_DT,103)
|
52
|
WHERE REQ_ID = @P_REQUEST_TEMPLATE_ID
|
53
|
AND STEP_LEVEL = @l_STEP_LEVEL
|
54
|
AND TYPE = 'APP'
|
55
|
|
56
|
SET @AUTO_APP = 1
|
57
|
END
|
58
|
|
59
|
--SET UP NEXT APPROVE
|
60
|
UPDATE CM_APPROVE_GROUP
|
61
|
SET
|
62
|
PROCESS_STATUS = 1,
|
63
|
NEED_SEND_EMAIL = 1
|
64
|
WHERE
|
65
|
REQ_ID = @P_REQUEST_TEMPLATE_ID
|
66
|
AND DONE = 0
|
67
|
AND STEP_LEVEL = @l_STEP_LEVEL + 1
|
68
|
|
69
|
--SET CURRENT_STEP OF CM_REQUEST_TEMPLATE
|
70
|
UPDATE CM_REQUEST_TEMPLATE
|
71
|
SET CURRENT_STEP = @l_STEP_LEVEL + 1
|
72
|
WHERE REQUEST_TEMPLATE_ID = @P_REQUEST_TEMPLATE_ID
|
73
|
END
|
74
|
--SET UP AUTH_STATUS
|
75
|
IF(NOT EXISTS(SELECT * FROM CM_APPROVE_GROUP WHERE REQ_ID = @P_REQUEST_TEMPLATE_ID
|
76
|
AND DONE <> 1
|
77
|
AND TYPE = 'APP'))
|
78
|
BEGIN
|
79
|
UPDATE CM_REQUEST_TEMPLATE SET AUTH_STATUS = 'O' WHERE REQUEST_TEMPLATE_ID = @P_REQUEST_TEMPLATE_ID
|
80
|
SET @DONE = 'A'
|
81
|
END
|
82
|
--ADD LOG
|
83
|
DECLARE @DONE_INS_APPROVE_GROUP BIT
|
84
|
EXEC CM_TEMPLATE_LOG_Ins @P_REQUEST_TEMPLATE_ID, 'APP', @P_NOTE, @P_CHECKER_ID, @l_APPROVE_GROUP_ID, @DONE_INS_APPROVE_GROUP OUT
|
85
|
|
86
|
IF(@AUTO_APP = 1)
|
87
|
BEGIN
|
88
|
EXEC CM_TEMPLATE_LOG_Ins @P_REQUEST_TEMPLATE_ID, 'APP_AUTO', N'Nhóm 3 đã được duyệt hoàn tất, cập nhật duyệt nhóm 4', NULL, NULL, @DONE_INS_APPROVE_GROUP OUT
|
89
|
END
|
90
|
COMMIT TRANSACTION
|
91
|
SELECT '0' as Result, '' ErrorDesc, @DONE AS Attr1
|
92
|
RETURN '0'
|
93
|
ABORT:
|
94
|
BEGIN
|
95
|
ROLLBACK TRANSACTION
|
96
|
SELECT '-1' as Result, '' ErrorDesc, '' AS Attr1
|
97
|
RETURN '-1'
|
98
|
End
|
99
|
|