Project

General

Profile

alter tempalte_ins.txt

Luc Tran Van, 02/27/2023 10:47 AM

 
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