Project

General

Profile

approve_ins.txt

Luc Tran Van, 02/27/2023 11:33 AM

 
1

    
2

    
3
ALTER PROCEDURE [dbo].[CM_APPROVE_GROUP_Ins]
4
	@p_REQ_ID [varchar](50) NULL,
5
	@p_GROUP_APPROVES NVARCHAR(400)=NULL,
6
	@p_DONE BIT OUT,
7
	@p_ERROR_MESS NVARCHAR(MAX) OUT
8
AS
9
--Validation is here
10

    
11
	DECLARE @ERRORSYS NVARCHAR(15) = '' 
12

    
13
	IF( @ERRORSYS <> '' )
14
	BEGIN
15
		SELECT @p_DONE = 0, @p_ERROR_MESS =  @ERRORSYS
16
		RETURN '-1'
17
	END
18

    
19
	BEGIN TRANSACTION
20
	declare @listApproveTlb table(STEP_LEVEL INT,GROUP_APPROVE nvarchar(50))
21

    
22
	declare @approveTlb table(STEP_LEVEL INT,USERNAME nvarchar(50))
23
	--SLIP LIST
24
		insert into @listApproveTlb (STEP_LEVEL, GROUP_APPROVE)
25
		select  row_number() over(order by (select 1)), [value]
26
		FROM WSISPLIT(@p_GROUP_APPROVES,',')
27
		WHERE [value] <>'' 
28
		--DELETE @listApproveTlb WHERE GROUP_APPROVE=''OR GROUP_APPROVE IS NULL
29
		
30
	--	LIST TO TABLE
31
		insert into @approveTlb (STEP_LEVEL,USERNAME)
32
		select A.STEP_LEVEL,B.value	 
33
		from @listApproveTlb A
34
		CROSS APPLY (select [value] FROM WSISPLIT(A.GROUP_APPROVE,';') ) B
35
		
36
		
37
		
38
	--START CHECK THƯ KÍ
39
	/*insert into @approveTlb
40
	SELECT STEP_LEVEL From @approveTlb
41
	WHERE dbo.FN_CHECK_ROLE_USER(USERNAME,'TGD')=1*/
42
	--END CHECK THƯ KÍ
43
	--INSERT CM_APPROVE_GROUP
44
	DECLARE @TOT_APPORVE INT = (SELECT COUNT(*) from @approveTlb)
45
	DECLARE @index_approve INT,@l_APPROVE_GROUP_ID nvarchar(50)
46
	EXEC SYS_CodeMasters_Gen_Mult 'CM_APPROVE_GROUP',@TOT_APPORVE, @l_APPROVE_GROUP_ID out, @index_approve out
47

    
48
	INSERT INTO [dbo].[CM_APPROVE_GROUP]
49
           ([APPROVE_GROUP_ID]
50
           ,[APPROVE_USERNAME]
51
           ,[STEP_LEVEL]
52
		   ,PROCESS_STATUS
53
		   ,DONE
54
           ,[AUTH_STATUS]
55
		   ,CREATE_DT
56
           ,[REQ_ID]
57
		   ,[TYPE])
58
	SELECT ('CAG' + right('000000000000000'+convert(varchar(15),(@index_approve -1 + row_number() over(order by (select 1)))),10)),
59
		USERNAME
60
		,STEP_LEVEL
61
		,0
62
		,0
63
		,'U'
64
		,GETDATE()
65
		,@p_REQ_ID
66
		,'APP'
67
	FROM @approveTlb
68
	IF @@Error <> 0 GOTO ABORT
69
	--
70

    
71
COMMIT TRANSACTION
72
SELECT @p_DONE = 1, @p_ERROR_MESS =  N''
73
RETURN '0'
74
ABORT:
75
BEGIN
76
		ROLLBACK TRANSACTION
77
		SELECT @p_DONE = 0, @p_ERROR_MESS =  N'THÊM NHÓM DUYỆT THẤT BẠI'
78
		RETURN '-1'
79
End
80

    
81