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