Project

General

Profile

upd_LIVE.txt

Luc Tran Van, 04/10/2023 09:34 AM

 
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