Project

General

Profile

CM_REQUEST_TEMPLATE_Upd.txt

Luc Tran Van, 03/03/2023 11:38 AM

 
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