1
|
|
2
|
ALTER PROCEDURE dbo.CM_REQUEST_TEMPLATE_Ins
|
3
|
@p_REQUEST_TEMPLATE_NAME nvarchar(200) = NULL,
|
4
|
@p_REQUEST_TEMPLATE_CODE nvarchar(100) = NULL,
|
5
|
@p_CREATE_LOCATION NVARCHAR(100)=NULL,
|
6
|
@p_HEADER NVARCHAR(max)=NULL,
|
7
|
@p_CONTENT NVARCHAR(max)=NULL,
|
8
|
@p_BRANCH_ID NVARCHAR(50)=NULL,
|
9
|
@p_REPORT_NO NVARCHAR(50)=NULL,
|
10
|
@p_TITLE NVARCHAR(500)=NULL,
|
11
|
@p_REPORT_DT VARCHAR(20) = NULL,
|
12
|
@p_SCHEME_OUT VARCHAR(20),
|
13
|
@p_TYPE_TEMPLATE_ID NVARCHAR(20)=NULL,
|
14
|
@p_NOTES nvarchar(max) = NULL,
|
15
|
@p_RECORD_STATUS varchar(1) = NULL,
|
16
|
@p_MAKER_ID varchar(12) = NULL,
|
17
|
@p_CREATE_DT VARCHAR(20) = NULL,
|
18
|
@p_AUTH_STATUS varchar(50) = NULL,
|
19
|
@p_CHECKER_ID varchar(12) = NULL,
|
20
|
@p_APPROVE_DT VARCHAR(20) = NULL,
|
21
|
@p_REQUEST_TEMPLATE_XML nvarchar(MAX) = NULL,
|
22
|
@p_GROUP_APPROVES NVARCHAR(MAX)=NULL
|
23
|
|
24
|
AS
|
25
|
--Validation is here
|
26
|
|
27
|
DECLARE @ERRORSYS NVARCHAR(15) = ''
|
28
|
|
29
|
|
30
|
IF( @ERRORSYS <> '' )
|
31
|
BEGIN
|
32
|
SELECT '-1' as Result, '' ID, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS
|
33
|
RETURN 0
|
34
|
END
|
35
|
IF EXISTS(SELECT * FROM CM_REQUEST_TEMPLATE WHERE REPORT_NO = @p_REPORT_NO AND RECORD_STATUS = 1)
|
36
|
BEGIN
|
37
|
SELECT '-1' Result, '' REQ_ID, N'Tờ trình số: ' + @p_REPORT_NO + N' đã tồn tại trong hệ thống!"' ErrorDesc
|
38
|
RETURN '-1'
|
39
|
END
|
40
|
|
41
|
BEGIN TRANSACTION
|
42
|
DECLARE @l_REQUEST_TEMPLATE_ID VARCHAR(100),
|
43
|
|
44
|
@l_SENT_TO_TEMPLATE_ID VARCHAR(20),
|
45
|
@string varchar(200), @hdoc int
|
46
|
DECLARE @DEP_BRANCH VARCHAR(20)
|
47
|
IF(@p_REPORT_NO IS NULL OR @p_REPORT_NO='')
|
48
|
BEGIN
|
49
|
SET @DEP_BRANCH=(SELECT D.DEP_CODE FROM TL_USER U LEFT JOIN CM_DEPARTMENT D ON U.DEP_ID=D.DEP_ID WHERE TLNANME=@p_MAKER_ID)
|
50
|
IF(@DEP_BRANCH IS NULL OR @DEP_BRANCH='')
|
51
|
BEGIN
|
52
|
SET @DEP_BRANCH=(SELECT B.BRANCH_CODE FROM TL_USER U LEFT JOIN CM_BRANCH B ON U.TLSUBBRID=B.BRANCH_ID WHERE TLNANME=@p_MAKER_ID)
|
53
|
END
|
54
|
EXEC CM_REQUEST_TEMPLATE_Get_Report_No @DEP_BRANCH,@p_REPORT_NO OUT
|
55
|
END
|
56
|
EXEC SYS_CodeMasters_Gen 'CM_REQUEST_TEMPLATE', @l_REQUEST_TEMPLATE_ID out
|
57
|
|
58
|
|
59
|
INSERT INTO [dbo].[CM_REQUEST_TEMPLATE]
|
60
|
([REQUEST_TEMPLATE_ID]
|
61
|
,[REQUEST_TEMPLATE_NAME]
|
62
|
,[NOTES]
|
63
|
,[RECORD_STATUS]
|
64
|
,[MAKER_ID]
|
65
|
,[CREATE_DT]
|
66
|
,[AUTH_STATUS]
|
67
|
,[CHECKER_ID]
|
68
|
,[APPROVE_DT]
|
69
|
,[CONTENT]
|
70
|
,[CREATE_LOCATION]
|
71
|
,[HEADER]
|
72
|
,[BRANCH_ID]
|
73
|
,[REPORT_NO]
|
74
|
,[TITLE]
|
75
|
,[REPORT_DT]
|
76
|
,[SCHEME]
|
77
|
,TYPE_TEMPLATE_ID
|
78
|
,IS_SENT_APPROVE)
|
79
|
VALUES
|
80
|
(@l_REQUEST_TEMPLATE_ID
|
81
|
,@p_REQUEST_TEMPLATE_NAME
|
82
|
,@p_NOTES
|
83
|
,@p_RECORD_STATUS
|
84
|
,@p_MAKER_ID
|
85
|
,CONVERT(DATETIME, @p_CREATE_DT, 103)
|
86
|
,@p_AUTH_STATUS
|
87
|
,@p_CHECKER_ID
|
88
|
,CONVERT(DATETIME, @p_APPROVE_DT, 103)
|
89
|
,@p_CONTENT
|
90
|
,@p_CREATE_LOCATION
|
91
|
,@p_HEADER
|
92
|
,@p_BRANCH_ID
|
93
|
,@p_REPORT_NO
|
94
|
,@p_TITLE
|
95
|
,CONVERT(DATETIME, @p_REPORT_DT, 103)
|
96
|
,@p_SCHEME_OUT
|
97
|
,@p_TYPE_TEMPLATE_ID
|
98
|
,1)
|
99
|
IF @@Error <> 0 GOTO ABORT
|
100
|
--insert sent to
|
101
|
IF(@p_REQUEST_TEMPLATE_XML <> '' AND @p_REQUEST_TEMPLATE_XML IS NOT NULL)
|
102
|
BEGIN
|
103
|
declare @sentToTlb table(CONTENT nvarchar(50))
|
104
|
insert into @sentToTlb
|
105
|
select *
|
106
|
FROM WSISPLIT(@p_REQUEST_TEMPLATE_XML,',')
|
107
|
END
|
108
|
DECLARE @TOT INT = (SELECT COUNT(CONTENT) from @sentToTlb)
|
109
|
DECLARE @ind INT
|
110
|
EXEC SYS_CodeMasters_Gen_Mult 'CM_SENT_TO_TEMPLATE',@TOT, @l_SENT_TO_TEMPLATE_ID out, @ind out
|
111
|
INSERT INTO [dbo].[CM_SENT_TO_TEMPLATE]
|
112
|
([TEMPLATE_ID]
|
113
|
,[SENT_TO_TEMPLATE_ID]
|
114
|
,[CONTENT])
|
115
|
SELECT @l_REQUEST_TEMPLATE_ID
|
116
|
,('CSTM' + right('0000000000000'+convert(varchar(15),(@ind -1 + row_number() over(order by (select 1)))),10)),
|
117
|
CONTENT
|
118
|
FROM @sentToTlb
|
119
|
IF @@Error <> 0 GOTO ABORT
|
120
|
DECLARE @DONE_INS_APPROVE_GROUP BIT = 1,
|
121
|
@ERROR_MESS NVARCHAR(MAX)
|
122
|
EXEC CM_APPROVE_GROUP_Ins @l_REQUEST_TEMPLATE_ID,@p_GROUP_APPROVES,@DONE_INS_APPROVE_GROUP OUT, @ERROR_MESS OUT
|
123
|
IF @DONE_INS_APPROVE_GROUP <> 1 GOTO ABORT_CHILD
|
124
|
|
125
|
--ADD LOG
|
126
|
DECLARE @p_DONE BIT = 1
|
127
|
EXEC CM_TEMPLATE_LOG_Ins @l_REQUEST_TEMPLATE_ID,'ADD','',@p_MAKER_ID,NULL, @p_DONE OUT
|
128
|
IF @p_DONE <> 1 GOTO ABORT
|
129
|
--
|
130
|
|
131
|
COMMIT TRANSACTION
|
132
|
SELECT '0' as Result, @l_REQUEST_TEMPLATE_ID ID, '' ErrorDesc
|
133
|
RETURN '0'
|
134
|
ABORT:
|
135
|
BEGIN
|
136
|
ROLLBACK TRANSACTION
|
137
|
SELECT '-1' as Result, '' ID, '' ErrorDesc
|
138
|
RETURN '-1'
|
139
|
End
|
140
|
ABORT_CHILD:
|
141
|
BEGIN
|
142
|
ROLLBACK TRANSACTION
|
143
|
SELECT '-1' as Result, '' ID, @ERROR_MESS ErrorDesc
|
144
|
RETURN '-1'
|
145
|
End
|
146
|
GO
|