Project

General

Profile

CM_APPROVE_GROUP_Ins.txt

Luc Tran Van, 03/07/2023 08:56 AM

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

    
9
	DECLARE @ERRORSYS NVARCHAR(15) = '' 
10

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

    
17
	BEGIN TRANSACTION
18
	declare @listApproveTlb table(STEP_LEVEL INT,GROUP_APPROVE nvarchar(max))
19

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

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

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

    
79