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
|
|