Project

General

Profile

store_CM_REQUEST_TEMPLATE_App.txt

Luc Tran Van, 04/17/2023 09:37 AM

 
1

    
2
ALTER PROCEDURE dbo.CM_REQUEST_TEMPLATE_App
3
@P_REQUEST_TEMPLATE_ID VARCHAR(100),
4
@P_AUTH_STATUS VARCHAR(1),
5
@P_CHECKER_ID VARCHAR(12),
6
@P_APPROVE_DT VARCHAR(20) = NULL,
7
@P_NOTE NVARCHAR(500)=NULL
8

    
9
AS
10
BEGIN TRANSACTION
11
	DECLARE @l_APPROVE_GROUP_ID VARCHAR(50) = (SELECT APPROVE_GROUP_ID 
12
												FROM CM_APPROVE_GROUP
13
												WHERE REQ_ID = @P_REQUEST_TEMPLATE_ID
14
												AND (APPROVE_USERNAME = @P_CHECKER_ID OR AUTHORITY_NAME = @P_CHECKER_ID)
15
												AND PROCESS_STATUS = 1)
16
	DECLARE @l_STEP_LEVEL INT = (SELECT STEP_LEVEL FROM CM_APPROVE_GROUP WHERE APPROVE_GROUP_ID = @l_APPROVE_GROUP_ID),
17
			@AUTO_APP BIT = 0,
18
			@DONE VARCHAR(1) = 'U'
19
	--SET CURRENT APPROVE
20
	UPDATE CM_APPROVE_GROUP
21
	SET 
22
	DONE = 1,
23
	PROCESS_STATUS = 0,
24
	CHECKER_ID = @P_CHECKER_ID,
25
	NOTES = @P_NOTE,
26
	APPROVE_DT = CONVERT(DATETIME,@P_APPROVE_DT,103)
27
	WHERE APPROVE_GROUP_ID=@l_APPROVE_GROUP_ID
28
	IF @@Error <> 0 GOTO ABORT
29

    
30
	--CHECK CURRENT APPROVE
31
	IF(NOT EXISTS(SELECT * FROM CM_APPROVE_GROUP WHERE STEP_LEVEL = @l_STEP_LEVEL 
32
													AND DONE = 0
33
													AND REQ_ID = @P_REQUEST_TEMPLATE_ID
34
													AND TYPE = 'APP'))
35
	BEGIN
36
		IF(EXISTS(SELECT 1 FROM CM_REQUEST_TEMPLATE A
37
							LEFT JOIN dbo.TL_USER B ON B.TLNANME = A.MAKER_ID
38
							LEFT JOIN dbo.CM_DEPARTMENT C ON C.DEP_ID = B.DEP_ID
39
							WHERE A.REQUEST_TEMPLATE_ID = @P_REQUEST_TEMPLATE_ID
40
							AND	@l_STEP_LEVEL = 3 -- Khi hoàn tất nhóm 3
41
							AND B.BRANCH_TYPE = 'HS'
42
							AND C.DEP_CODE = '79900001'))-- 7990000:Trung tâm QL&THN -- 79900001:Phòng Quản lý nợ
43
		BEGIN	
44
			SET @l_STEP_LEVEL = @l_STEP_LEVEL + 1
45
			-- Tự động duyệt nhóm 4
46
			UPDATE CM_APPROVE_GROUP
47
			SET 
48
			DONE = 1,
49
			PROCESS_STATUS = 0,
50
			-- CHECKER_ID = @P_CHECKER_ID,
51
			NOTES = N'Hệ thống tự động duyệt',
52
			APPROVE_DT = CONVERT(DATETIME,@P_APPROVE_DT,103)
53
			WHERE REQ_ID = @P_REQUEST_TEMPLATE_ID
54
			AND STEP_LEVEL = @l_STEP_LEVEL
55
			AND TYPE = 'APP'
56

    
57
			SET @AUTO_APP = 1
58
		END
59

    
60
		--SET UP NEXT APPROVE
61
		UPDATE CM_APPROVE_GROUP
62
		SET
63
		PROCESS_STATUS = 1,
64
		NEED_SEND_EMAIL = 1
65
		WHERE 
66
		REQ_ID = @P_REQUEST_TEMPLATE_ID
67
		AND DONE = 0
68
		AND STEP_LEVEL = @l_STEP_LEVEL + 1
69

    
70
		--SET CURRENT_STEP OF CM_REQUEST_TEMPLATE
71
		UPDATE CM_REQUEST_TEMPLATE
72
		SET CURRENT_STEP = @l_STEP_LEVEL + 1
73
		WHERE REQUEST_TEMPLATE_ID = @P_REQUEST_TEMPLATE_ID
74
	END
75
	--SET UP AUTH_STATUS
76
	IF(NOT EXISTS(SELECT * FROM CM_APPROVE_GROUP WHERE REQ_ID = @P_REQUEST_TEMPLATE_ID 
77
													AND DONE <> 1 
78
													AND TYPE = 'APP'))
79
	BEGIN
80
		UPDATE CM_REQUEST_TEMPLATE SET AUTH_STATUS = 'O' WHERE REQUEST_TEMPLATE_ID = @P_REQUEST_TEMPLATE_ID
81
		SET @DONE = 'A'
82
	END
83
	--ADD LOG
84
	DECLARE @DONE_INS_APPROVE_GROUP BIT
85
	EXEC CM_TEMPLATE_LOG_Ins @P_REQUEST_TEMPLATE_ID, 'APP', @P_NOTE, @P_CHECKER_ID, @l_APPROVE_GROUP_ID, @DONE_INS_APPROVE_GROUP OUT
86
	
87
	IF(@AUTO_APP = 1)
88
	BEGIN
89
		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
90
	END
91
COMMIT TRANSACTION
92
SELECT '0' as Result, '' ErrorDesc, @DONE AS Attr1
93
RETURN '0'
94
ABORT:
95
BEGIN
96
		ROLLBACK TRANSACTION
97
		SELECT '-1' as Result, '' ErrorDesc, '' AS Attr1
98
		RETURN '-1'
99
End
100