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