Project

General

Profile

CM_REQUEST_TEMPALE_UPD-28-02.txt

Luc Tran Van, 02/28/2023 01:35 PM

 
1

    
2

    
3
ALTER PROCEDURE [dbo].[CM_REQUEST_TEMPLATE_Upd] 
4
	@p_REQUEST_TEMPLATE_ID nvarchar(200)  = NULL,
5
	@p_REQUEST_TEMPLATE_NAME	nvarchar(200)  = NULL,
6
	@p_REQUEST_TEMPLATE_CODE	nvarchar(100)  = NULL,
7
	@p_CREATE_LOCATION NVARCHAR(100)=NULL,
8
	@p_HEADER NVARCHAR(max)=NULL,
9
	@p_CONTENT NVARCHAR(max)=NULL,
10
	@p_BRANCH_ID NVARCHAR(50)=NULL,
11
	@p_REPORT_NO NVARCHAR(50)=NULL,
12
	@p_TITLE NVARCHAR(500)=NULL,
13
	@p_REPORT_DT	VARCHAR(20) = NULL,
14
	@p_SCHEME_OUT VARCHAR(20),
15
	@p_TYPE_TEMPLATE_ID NVARCHAR(20)=NULL,
16
	@p_NOTES	nvarchar(max)  = NULL,
17
	@p_RECORD_STATUS	varchar(1)  = NULL,
18
	@p_MAKER_ID	varchar(12)  = NULL,
19
	@p_CREATE_DT	VARCHAR(20) = NULL,
20
	@p_AUTH_STATUS	varchar(50)  = NULL,
21
	@p_CHECKER_ID	varchar(12)  = NULL,
22
	@p_APPROVE_DT	VARCHAR(20) = NULL,
23
	@p_REQUEST_TEMPLATE_XML nvarchar(MAX) = NULL,
24
	@p_GROUP_APPROVES NVARCHAR(MAX)=NULL
25
AS
26
BEGIN
27
	--Validation is here
28
	DECLARE @ERRORSYS NVARCHAR(15) = '', 
29
		@hdoc int,
30
		@l_REQUEST_TEMPLATE_DETAIL_ID varchar(15),
31

    
32
		@l_REQUEST_TEMPLATE_DETAIL_CONTENT nvarchar(max),
33
		@l_REQUEST_TEMPLATE_DETAIL_CODE varchar(15),
34
		@l_PAGE_SIZE varchar(5),
35
		@l_NOTES nvarchar(max)
36
	IF @ERRORSYS <> '' 
37
	BEGIN
38
		SELECT ErrorCode Result, ''  CAR_ID, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS
39
		RETURN '0'
40
	END
41
	IF (@p_REPORT_NO IS NULL OR @p_REPORT_NO = '')
42
	BEGIN
43
		SELECT '-1' Result, '' REQ_ID, N'Số tờ trình không được bỏ trống."' ErrorDesc 
44
		RETURN '-1'
45
	END
46
	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)
47
	BEGIN
48
		SELECT '-1' Result, '' REQ_ID, N'Tờ trình số: ' + @p_REPORT_NO + N' đã tồn tại trong hệ thống!"' ErrorDesc 
49
		RETURN '-1'
50
	END
51

    
52

    
53
	BEGIN TRANSACTION  
54
	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')
55
	BEGIN
56
	UPDATE [dbo].[CM_REQUEST_TEMPLATE]
57
	SET [REQUEST_TEMPLATE_NAME] = @p_REQUEST_TEMPLATE_NAME
58
      ,[REQUEST_TEMPLATE_CODE] = @p_REQUEST_TEMPLATE_CODE
59
      ,[NOTES] = @p_NOTES
60
      ,[MAKER_ID] = @p_MAKER_ID
61
      ,[CREATE_DT] =CONVERT(DATETIME, @p_CREATE_DT, 103) 
62
      ,[CONTENT] = @p_CONTENT
63
      ,[CREATE_LOCATION] = @p_CREATE_LOCATION
64
      ,[HEADER] = @p_HEADER
65
      ,[BRANCH_ID] = @p_BRANCH_ID
66
      ,[REPORT_NO] = @p_REPORT_NO
67
      ,[TITLE] = @p_TITLE
68
      ,[REPORT_DT] = CONVERT(DATETIME, @p_REPORT_DT, 103) 
69
      ,[SCHEME] = @p_SCHEME_OUT
70
      ,[TYPE_TEMPLATE_ID] = @p_TYPE_TEMPLATE_ID
71
	  WHERE [REQUEST_TEMPLATE_ID] = @p_REQUEST_TEMPLATE_ID
72
		IF @@Error <> 0 GOTO ABORT
73
	END
74

    
75
	DELETE CM_SENT_TO_TEMPLATE WHERE TEMPLATE_ID=@p_REQUEST_TEMPLATE_ID
76
	declare @sentToTlb table(CONTENT nvarchar(50))
77
	IF(@p_REQUEST_TEMPLATE_XML <> '' AND @p_REQUEST_TEMPLATE_XML IS NOT NULL)
78
	BEGIN
79
		insert into @sentToTlb
80
		select *
81
		FROM WSISPLIT(@p_REQUEST_TEMPLATE_XML,',')
82
	END
83
	DECLARE @TOT INT = (SELECT COUNT(CONTENT) from @sentToTlb)
84
	DECLARE @ind INT,@p_SENT_TO_TEMPLATE_ID nvarchar(50)
85
	EXEC SYS_CodeMasters_Gen_Mult 'CM_SENT_TO_TEMPLATE',@TOT, @p_SENT_TO_TEMPLATE_ID out, @ind out
86
	--EXEC SYS_CodeMasters_Gen 'CM_SENT_TO_TEMPLATE', @l_SENT_TO_TEMPLATE_ID out
87

    
88
	INSERT INTO [dbo].[CM_SENT_TO_TEMPLATE]
89
		   ([TEMPLATE_ID]
90
		   ,[SENT_TO_TEMPLATE_ID]
91
		   ,[CONTENT])
92
	SELECT @p_REQUEST_TEMPLATE_ID
93
		   ,('CSTM' + right('0000000000000'+convert(varchar(15),(@ind -1 + row_number() over(order by (select 1)))),10)),
94
		CONTENT
95
	FROM @sentToTlb
96
	IF @@Error <> 0 GOTO ABORT
97

    
98
	--EDIT USER APPROVE
99
	DECLARE @CURRENT_STEP INT =(SELECT CURRENT_STEP FROM CM_REQUEST_TEMPLATE WHERE REQUEST_TEMPLATE_ID=@p_REQUEST_TEMPLATE_ID)
100
	DECLARE @DONE_INS_APPROVE_GROUP BIT=1,
101
			@ERROR_MESS NVARCHAR(MAX)
102
	EXEC CM_APPROVE_GROUP_Upd @p_REQUEST_TEMPLATE_ID,@p_GROUP_APPROVES,@CURRENT_STEP,@DONE_INS_APPROVE_GROUP OUT, @ERROR_MESS OUT
103
	IF @DONE_INS_APPROVE_GROUP <> 1 GOTO ABORT_CHILD
104
	--
105

    
106
	--ADD LOG
107
	IF(EXISTS(SELECT 1 FROM CM_REQUEST_TEMPLATE WHERE IS_SENT_APPROVE = 0 AND REQUEST_TEMPLATE_ID = @P_REQUEST_TEMPLATE_ID))
108
	BEGIN
109
		DECLARE @p_DONE BIT = 1
110
		EXEC CM_TEMPLATE_LOG_Ins @p_REQUEST_TEMPLATE_ID,'UPD','',@p_MAKER_ID,NULL, @p_DONE OUT
111
		IF @p_DONE <> 1 GOTO ABORT
112
	END
113
	--
114

    
115
COMMIT TRANSACTION
116

    
117
SELECT '0' as Result, @p_REQUEST_TEMPLATE_ID  ID, '' ErrorDesc
118
RETURN '0'
119
ABORT:
120
BEGIN
121
		
122
		ROLLBACK TRANSACTION
123
		SELECT '-1' as Result, '' ID, '' ErrorDesc
124
		RETURN '-1'
125
END
126
ABORT_CHILD:
127
BEGIN
128
		ROLLBACK TRANSACTION
129
		SELECT '-1' as Result, '' ID, @ERROR_MESS ErrorDesc
130
		RETURN '-1'
131
End
132
END
133