Project

General

Profile

upd_CM_REQUEST_TEMPLATE.txt

Luc Tran Van, 05/31/2023 08:38 AM

 
1

    
2

    
3
INSERT INTO SYS_PARAMETERS (ParaKey, ParaValue, DataType, Description, RECORD_STATUS, MAKER_ID, CREATE_DT, AUTH_STATUS, CHECKER_ID, APPROVE_DT) VALUES
4
('AUTO_APPROVE', N'0', 'Chr', N'Tự động duyệt phòng Quản lý nợ (0: tắt, 1: bật)', '1', 'admin', CONVERT(DATETIME, '2023-05-26 16:51:15.000', 121), 'U', 'admin', CONVERT(DATETIME, '2023-05-26 16:51:15.000', 121))
5
GO
6

    
7
ALTER PROCEDURE dbo.CM_REQUEST_TEMPLATE_App
8
@P_REQUEST_TEMPLATE_ID VARCHAR(100),
9
@P_AUTH_STATUS VARCHAR(1),
10
@P_CHECKER_ID VARCHAR(12),
11
@P_APPROVE_DT VARCHAR(20) = NULL,
12
@P_NOTE NVARCHAR(500)=NULL
13

    
14
AS
15
BEGIN TRANSACTION
16
	DECLARE @l_APPROVE_GROUP_ID VARCHAR(50) = (SELECT APPROVE_GROUP_ID 
17
												FROM CM_APPROVE_GROUP
18
												WHERE REQ_ID = @P_REQUEST_TEMPLATE_ID
19
												AND (APPROVE_USERNAME = @P_CHECKER_ID OR AUTHORITY_NAME = @P_CHECKER_ID)
20
												AND PROCESS_STATUS = 1)
21
	DECLARE @l_STEP_LEVEL INT = (SELECT STEP_LEVEL FROM CM_APPROVE_GROUP WHERE APPROVE_GROUP_ID = @l_APPROVE_GROUP_ID),
22
			@AUTO_APP BIT = 0,
23
			@DONE VARCHAR(1) = 'U'
24
	--SET CURRENT APPROVE
25
	UPDATE CM_APPROVE_GROUP
26
	SET 
27
	DONE = 1,
28
	PROCESS_STATUS = 0,
29
	CHECKER_ID = @P_CHECKER_ID,
30
	NOTES = @P_NOTE,
31
	APPROVE_DT = CONVERT(DATETIME,@P_APPROVE_DT,103)
32
	WHERE APPROVE_GROUP_ID=@l_APPROVE_GROUP_ID
33
	IF @@Error <> 0 GOTO ABORT
34
	--CHECK CURRENT APPROVE
35
	IF(NOT EXISTS(SELECT * FROM CM_APPROVE_GROUP WHERE STEP_LEVEL = @l_STEP_LEVEL 
36
													AND DONE = 0
37
													AND REQ_ID = @P_REQUEST_TEMPLATE_ID
38
													AND TYPE = 'APP'))
39
	BEGIN
40
		IF(EXISTS(SELECT 1 FROM CM_REQUEST_TEMPLATE A
41
							LEFT JOIN dbo.TL_USER B ON B.TLNANME = A.MAKER_ID
42
							LEFT JOIN dbo.CM_DEPARTMENT C ON C.DEP_ID = B.DEP_ID
43
							WHERE A.REQUEST_TEMPLATE_ID = @P_REQUEST_TEMPLATE_ID
44
							AND	@l_STEP_LEVEL = 3 -- Khi hoàn tất nhóm 3
45
							AND B.BRANCH_TYPE = 'HS'
46
							AND C.DEP_CODE = '79900001') -- 7990000:Trung tâm QL&THN -- 79900001:Phòng Quản lý nợ
47
        AND (SELECT ParaValue FROM SYS_PARAMETERS WHERE ParaKey = 'AUTO_APPROVE') = '1') -- 26-05-23 Nếu là 1 sẽ bật tự động duyệt 
48
		BEGIN	
49
			SET @l_STEP_LEVEL = @l_STEP_LEVEL + 1
50
			-- Tự động duyệt nhóm 4
51
			UPDATE CM_APPROVE_GROUP
52
			SET 
53
			DONE = 1,
54
			PROCESS_STATUS = 0,
55
			-- CHECKER_ID = @P_CHECKER_ID,
56
			NOTES = N'Hệ thống tự động duyệt',
57
			APPROVE_DT = CONVERT(DATETIME,@P_APPROVE_DT,103)
58
			WHERE REQ_ID = @P_REQUEST_TEMPLATE_ID
59
			AND STEP_LEVEL = @l_STEP_LEVEL
60
			AND TYPE = 'APP'
61

    
62
			SET @AUTO_APP = 1
63
		END
64

    
65
		--SET UP NEXT APPROVE
66
		UPDATE CM_APPROVE_GROUP
67
		SET
68
		PROCESS_STATUS = 1,
69
		NEED_SEND_EMAIL = 1
70
		WHERE 
71
		REQ_ID = @P_REQUEST_TEMPLATE_ID
72
		AND DONE = 0
73
		AND STEP_LEVEL = @l_STEP_LEVEL + 1
74

    
75
		--SET CURRENT_STEP OF CM_REQUEST_TEMPLATE
76
		UPDATE CM_REQUEST_TEMPLATE
77
		SET CURRENT_STEP = @l_STEP_LEVEL + 1
78
		WHERE REQUEST_TEMPLATE_ID = @P_REQUEST_TEMPLATE_ID
79
	END
80
	--SET UP AUTH_STATUS
81
	IF(NOT EXISTS(SELECT * FROM CM_APPROVE_GROUP WHERE REQ_ID = @P_REQUEST_TEMPLATE_ID 
82
													AND DONE <> 1 
83
													AND TYPE = 'APP'))
84
	BEGIN
85
		UPDATE CM_REQUEST_TEMPLATE SET AUTH_STATUS = 'O' WHERE REQUEST_TEMPLATE_ID = @P_REQUEST_TEMPLATE_ID
86
		SET @DONE = 'A'
87
	END
88
	--ADD LOG
89
	DECLARE @DONE_INS_APPROVE_GROUP BIT
90
	EXEC CM_TEMPLATE_LOG_Ins @P_REQUEST_TEMPLATE_ID, 'APP', @P_NOTE, @P_CHECKER_ID, @l_APPROVE_GROUP_ID, @DONE_INS_APPROVE_GROUP OUT
91
	
92
	IF(@AUTO_APP = 1)
93
	BEGIN
94
		EXEC CM_TEMPLATE_LOG_Ins @P_REQUEST_TEMPLATE_ID, 'APP_AUTO', N'Nhóm 3 đã được duyệt hoàn tất, cập nhật duyệt nhóm 4', NULL, NULL, @DONE_INS_APPROVE_GROUP OUT
95
	END
96
COMMIT TRANSACTION
97
SELECT '0' as Result, '' ErrorDesc, @DONE AS Attr1
98
RETURN '0'
99
ABORT:
100
BEGIN
101
		ROLLBACK TRANSACTION
102
		SELECT '-1' as Result, '' ErrorDesc, '' AS Attr1
103
		RETURN '-1'
104
End
105

    
106
GO
107

    
108
ALTER PROCEDURE dbo.CM_REQUEST_TEMPLATE_Ins
109
	@p_REQUEST_TEMPLATE_NAME	nvarchar(200)  = NULL,
110
	@p_REQUEST_TEMPLATE_CODE	nvarchar(100)  = NULL,
111
	@p_CREATE_LOCATION NVARCHAR(100)=NULL,
112
	@p_HEADER NVARCHAR(max)=NULL,
113
	@p_CONTENT NVARCHAR(max)=NULL,
114
	@p_BRANCH_ID NVARCHAR(50)=NULL,
115
	@p_REPORT_NO NVARCHAR(50)=NULL,
116
	@p_TITLE NVARCHAR(500)=NULL,
117
	@p_REPORT_DT	VARCHAR(20) = NULL,
118
	@p_SCHEME_OUT VARCHAR(20),
119
	@p_TYPE_TEMPLATE_ID NVARCHAR(20)=NULL,
120
	@p_NOTES	nvarchar(max)  = NULL,
121
	@p_RECORD_STATUS	varchar(1)  = NULL,
122
	@p_MAKER_ID	varchar(12)  = NULL,
123
	@p_CREATE_DT	VARCHAR(20) = NULL,
124
	@p_AUTH_STATUS	varchar(50)  = NULL,
125
	@p_CHECKER_ID	varchar(12)  = NULL,
126
	@p_APPROVE_DT	VARCHAR(20) = NULL,
127
	@p_REQUEST_TEMPLATE_XML nvarchar(MAX) = NULL,
128
	@p_GROUP_APPROVES NVARCHAR(MAX)=NULL
129

    
130
AS
131
--Validation is here
132

    
133
DECLARE @ERRORSYS NVARCHAR(15) = '' 
134

    
135

    
136
	IF( @ERRORSYS <> '' )
137
	BEGIN
138
		SELECT '-1' as Result, ''  ID, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS
139
		RETURN 0
140
	END
141
	IF EXISTS(SELECT * FROM CM_REQUEST_TEMPLATE WHERE LTRIM(RTRIM(REPORT_NO)) = LTRIM(RTRIM(@p_REPORT_NO)) AND RECORD_STATUS = 1)
142
	BEGIN
143
		SELECT '-1' Result, '' REQ_ID, N'Tờ trình số: ' + @p_REPORT_NO + N' đã tồn tại trong hệ thống!' ErrorDesc 
144
		RETURN '-1'
145
	END
146

    
147
  IF EXISTS(SELECT * FROM CM_REQUEST_TEMPLATE WHERE LTRIM(RTRIM(REPORT_NO)) = LTRIM(RTRIM(@p_REPORT_NO)) AND RECORD_STATUS = 1)
148
	BEGIN
149
		SELECT '-1' Result, '' REQ_ID, N'Tờ trình số: ' + @p_REPORT_NO + N' đã tồn tại trong hệ thống!' ErrorDesc 
150
		RETURN '-1'
151
	END
152

    
153
 IF (@p_CONTENT IS NULL OR @p_CONTENT = '')
154
	BEGIN
155
		SELECT '-1' Result, '' REQ_ID, N'Nội dung tờ trình không được bỏ trống' ErrorDesc 
156
		RETURN '-1'
157
	END
158
  IF (@p_GROUP_APPROVES IS NULL OR @p_GROUP_APPROVES = '')
159
  BEGIN
160
		SELECT '-1' Result, '' REQ_ID, N'Nhóm duyệt không được bỏ trống' ErrorDesc 
161
		RETURN '-1'
162
	END
163

    
164
BEGIN TRANSACTION
165
DECLARE @l_REQUEST_TEMPLATE_ID VARCHAR(100),
166

    
167
@l_SENT_TO_TEMPLATE_ID VARCHAR(20),
168
@string varchar(200), @hdoc int
169
DECLARE @DEP_BRANCH VARCHAR(20)
170
IF(@p_REPORT_NO IS NULL OR @p_REPORT_NO='')
171
BEGIN
172
	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)
173
	IF(@DEP_BRANCH IS NULL OR @DEP_BRANCH='')
174
	BEGIN
175
		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)
176
	END
177
	EXEC CM_REQUEST_TEMPLATE_Get_Report_No @DEP_BRANCH,@p_REPORT_NO OUT
178
END
179
		EXEC SYS_CodeMasters_Gen 'CM_REQUEST_TEMPLATE', @l_REQUEST_TEMPLATE_ID out
180
		
181
		
182
INSERT INTO [dbo].[CM_REQUEST_TEMPLATE]
183
           ([REQUEST_TEMPLATE_ID]
184
           ,[REQUEST_TEMPLATE_NAME]
185
           ,[NOTES]
186
           ,[RECORD_STATUS]
187
           ,[MAKER_ID]
188
           ,[CREATE_DT]
189
           ,[AUTH_STATUS]
190
           ,[CHECKER_ID]
191
           ,[APPROVE_DT]
192
           ,[CONTENT]
193
           ,[CREATE_LOCATION]
194
           ,[HEADER]
195
           ,[BRANCH_ID]
196
           ,[REPORT_NO]
197
           ,[TITLE]
198
           ,[REPORT_DT]
199
           ,[SCHEME]
200
		   ,TYPE_TEMPLATE_ID
201
		   ,IS_SENT_APPROVE)
202
     VALUES
203
           (@l_REQUEST_TEMPLATE_ID
204
           ,@p_REQUEST_TEMPLATE_NAME
205
           ,@p_NOTES
206
           ,@p_RECORD_STATUS
207
           ,@p_MAKER_ID
208
           ,CONVERT(DATETIME, @p_CREATE_DT, 103) 
209
           ,@p_AUTH_STATUS
210
           ,@p_CHECKER_ID
211
           ,CONVERT(DATETIME, @p_APPROVE_DT, 103) 
212
           ,@p_CONTENT
213
           ,@p_CREATE_LOCATION
214
           ,@p_HEADER
215
           ,@p_BRANCH_ID
216
           ,@p_REPORT_NO
217
           ,@p_TITLE
218
           ,CONVERT(DATETIME, @p_REPORT_DT, 103) 
219
           ,@p_SCHEME_OUT
220
		   ,@p_TYPE_TEMPLATE_ID
221
		   ,1)
222
		IF @@Error <> 0 GOTO ABORT
223
	--insert sent to
224
	IF(@p_REQUEST_TEMPLATE_XML <> '' AND @p_REQUEST_TEMPLATE_XML IS NOT NULL)
225
	BEGIN
226
		declare @sentToTlb table(CONTENT nvarchar(200))
227
		insert into @sentToTlb
228
		select *
229
		FROM WSISPLIT(@p_REQUEST_TEMPLATE_XML,',')
230
	END
231
	DECLARE @TOT INT = (SELECT COUNT(CONTENT) from @sentToTlb)
232
	DECLARE @ind INT
233
	EXEC SYS_CodeMasters_Gen_Mult 'CM_SENT_TO_TEMPLATE',@TOT, @l_SENT_TO_TEMPLATE_ID out, @ind out
234
	INSERT INTO [dbo].[CM_SENT_TO_TEMPLATE]
235
           ([TEMPLATE_ID]
236
           ,[SENT_TO_TEMPLATE_ID]
237
           ,[CONTENT])
238
	SELECT @l_REQUEST_TEMPLATE_ID
239
		   ,('CSTM' + right('0000000000000'+convert(varchar(15),(@ind -1 + row_number() over(order by (select 1)))),10)),
240
		CONTENT
241
	FROM @sentToTlb
242
	IF @@Error <> 0 GOTO ABORT
243
	DECLARE @DONE_INS_APPROVE_GROUP BIT = 1,
244
			@ERROR_MESS NVARCHAR(MAX)
245
	EXEC CM_APPROVE_GROUP_Ins @l_REQUEST_TEMPLATE_ID,@p_GROUP_APPROVES,@DONE_INS_APPROVE_GROUP OUT, @ERROR_MESS OUT
246
	IF @DONE_INS_APPROVE_GROUP <> 1 GOTO ABORT_CHILD
247

    
248
  IF (NOT EXISTS(SELECT * FROM CM_APPROVE_GROUP WHERE REQ_ID = @l_REQUEST_TEMPLATE_ID))
249
  BEGIN  
250
    ROLLBACK TRANSACTION
251
  	SELECT '-1' Result, '' REQ_ID, N'Nhóm duyệt không được bỏ trống' ErrorDesc 
252
		RETURN '-1'
253
  END
254
	--ADD LOG
255
	DECLARE @p_DONE BIT = 1
256
	EXEC CM_TEMPLATE_LOG_Ins @l_REQUEST_TEMPLATE_ID,'ADD','',@p_MAKER_ID,NULL, @p_DONE OUT
257
	IF @p_DONE <> 1 GOTO ABORT
258
	--
259

    
260
COMMIT TRANSACTION
261
SELECT '0' as Result, @l_REQUEST_TEMPLATE_ID  ID, '' ErrorDesc
262
RETURN '0'
263
ABORT:
264
BEGIN
265
		ROLLBACK TRANSACTION
266
		SELECT '-1' as Result, '' ID, '' ErrorDesc
267
		RETURN '-1'
268
End
269
ABORT_CHILD:
270
BEGIN
271
		ROLLBACK TRANSACTION
272
		SELECT '-1' as Result, '' ID, @ERROR_MESS ErrorDesc
273
		RETURN '-1'
274
End
275

    
276
GO
277

    
278
ALTER PROCEDURE dbo.CM_REQUEST_TEMPLATE_Upd 
279
	@p_REQUEST_TEMPLATE_ID nvarchar(200)  = NULL,
280
	@p_REQUEST_TEMPLATE_NAME	nvarchar(200)  = NULL,
281
	@p_REQUEST_TEMPLATE_CODE	nvarchar(100)  = NULL,
282
	@p_CREATE_LOCATION NVARCHAR(100)=NULL,
283
	@p_HEADER NVARCHAR(max)=NULL,
284
	@p_CONTENT NVARCHAR(max)=NULL,
285
	@p_BRANCH_ID NVARCHAR(50)=NULL,
286
	@p_REPORT_NO NVARCHAR(50)=NULL,
287
	@p_TITLE NVARCHAR(500)=NULL,
288
	@p_REPORT_DT	VARCHAR(20) = NULL,
289
	@p_SCHEME_OUT VARCHAR(20),
290
	@p_TYPE_TEMPLATE_ID NVARCHAR(20)=NULL,
291
	@p_NOTES	nvarchar(max)  = NULL,
292
	@p_RECORD_STATUS	varchar(1)  = NULL,
293
	@p_MAKER_ID	varchar(12)  = NULL,
294
	@p_CREATE_DT	VARCHAR(20) = NULL,
295
	@p_AUTH_STATUS	varchar(50)  = NULL,
296
	@p_CHECKER_ID	varchar(12)  = NULL,
297
	@p_APPROVE_DT	VARCHAR(20) = NULL,
298
	@p_REQUEST_TEMPLATE_XML nvarchar(MAX) = NULL,
299
	@p_GROUP_APPROVES NVARCHAR(MAX)=NULL
300
AS
301
BEGIN
302
	--Validation is here
303
	DECLARE @ERRORSYS NVARCHAR(15) = '', 
304
		@hdoc int,
305
		@l_REQUEST_TEMPLATE_DETAIL_ID varchar(15),
306

    
307
		@l_REQUEST_TEMPLATE_DETAIL_CONTENT nvarchar(max),
308
		@l_REQUEST_TEMPLATE_DETAIL_CODE varchar(15),
309
		@l_PAGE_SIZE varchar(5),
310
		@l_NOTES nvarchar(max)
311
	IF @ERRORSYS <> '' 
312
	BEGIN
313
		SELECT ErrorCode Result, ''  CAR_ID, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS
314
		RETURN '0'
315
	END
316
	IF (@p_REPORT_NO IS NULL OR LTRIM(RTRIM(@p_REPORT_NO)) = '')
317
	BEGIN
318
		SELECT '-1' Result, '' REQ_ID, N'Số tờ trình không được bỏ trống' ErrorDesc 
319
		RETURN '-1'
320
	END
321
	IF EXISTS(SELECT * FROM CM_REQUEST_TEMPLATE WHERE LTRIM(RTRIM(REPORT_NO)) = LTRIM(RTRIM(@p_REPORT_NO)) AND RECORD_STATUS = 1 AND REQUEST_TEMPLATE_ID <> @p_REQUEST_TEMPLATE_ID)
322
	BEGIN
323
		SELECT '-1' Result, '' REQ_ID, N'Tờ trình số: ' + @p_REPORT_NO + N' đã tồn tại trong hệ thống!' ErrorDesc 
324
		RETURN '-1'
325
	END
326

    
327
  IF (@p_CONTENT IS NULL OR @p_CONTENT = '')
328
	BEGIN
329
		SELECT '-1' Result, '' REQ_ID, N'Nội dung tờ trình đang tải vui lòng cập nhật lại' ErrorDesc 
330
		RETURN '-1'
331
	END
332
  IF (@p_GROUP_APPROVES IS NULL OR @p_GROUP_APPROVES = '')
333
  BEGIN
334
		SELECT '-1' Result, '' REQ_ID, N'Nhóm duyệt không được bỏ trống' ErrorDesc 
335
		RETURN '-1'
336
	END
337

    
338

    
339
	BEGIN TRANSACTION  
340
	IF((SELECT AUTH_STATUS FROM CM_REQUEST_TEMPLATE WHERE REQUEST_TEMPLATE_ID=@p_REQUEST_TEMPLATE_ID ) IN ('U', 'R'))
341
	BEGIN
342
		UPDATE [dbo].[CM_REQUEST_TEMPLATE]
343
		SET [REQUEST_TEMPLATE_NAME] = @p_REQUEST_TEMPLATE_NAME
344
		  ,[REQUEST_TEMPLATE_CODE] = @p_REQUEST_TEMPLATE_CODE
345
		  ,[NOTES] = @p_NOTES
346
		  ,[MAKER_ID] = @p_MAKER_ID
347
		  ,[CREATE_DT] =CONVERT(DATETIME, @p_CREATE_DT, 103) 
348
		  ,[CONTENT] = @p_CONTENT
349
		  ,[CREATE_LOCATION] = @p_CREATE_LOCATION
350
		  ,[HEADER] = @p_HEADER
351
		  ,[BRANCH_ID] = @p_BRANCH_ID
352
		  ,[REPORT_NO] = @p_REPORT_NO
353
		  ,[TITLE] = @p_TITLE
354
		  ,[REPORT_DT] = CONVERT(DATETIME, @p_REPORT_DT, 103) 
355
		  ,[SCHEME] = @p_SCHEME_OUT
356
		  ,[TYPE_TEMPLATE_ID] = @p_TYPE_TEMPLATE_ID
357
		  WHERE [REQUEST_TEMPLATE_ID] = @p_REQUEST_TEMPLATE_ID
358
			IF @@Error <> 0 GOTO ABORT
359
	
360

    
361
		DELETE CM_SENT_TO_TEMPLATE WHERE TEMPLATE_ID=@p_REQUEST_TEMPLATE_ID
362
		declare @sentToTlb table(CONTENT nvarchar(200))
363
		IF(@p_REQUEST_TEMPLATE_XML <> '' AND @p_REQUEST_TEMPLATE_XML IS NOT NULL)
364
		BEGIN
365
			insert into @sentToTlb
366
			select *
367
			FROM WSISPLIT(@p_REQUEST_TEMPLATE_XML,',')
368
		END
369
		DECLARE @TOT INT = (SELECT COUNT(CONTENT) from @sentToTlb)
370
		DECLARE @ind INT,@p_SENT_TO_TEMPLATE_ID nvarchar(50)
371
		EXEC SYS_CodeMasters_Gen_Mult 'CM_SENT_TO_TEMPLATE',@TOT, @p_SENT_TO_TEMPLATE_ID out, @ind out
372
		--EXEC SYS_CodeMasters_Gen 'CM_SENT_TO_TEMPLATE', @l_SENT_TO_TEMPLATE_ID out
373

    
374
		INSERT INTO [dbo].[CM_SENT_TO_TEMPLATE]
375
			   ([TEMPLATE_ID]
376
			   ,[SENT_TO_TEMPLATE_ID]
377
			   ,[CONTENT])
378
		SELECT @p_REQUEST_TEMPLATE_ID
379
			   ,('CSTM' + right('0000000000000'+convert(varchar(15),(@ind -1 + row_number() over(order by (select 1)))),10)),
380
			CONTENT
381
		FROM @sentToTlb
382
		IF @@Error <> 0 GOTO ABORT
383
	
384
		--EDIT USER APPROVE
385
		DECLARE @CURRENT_STEP INT =(SELECT CURRENT_STEP FROM CM_REQUEST_TEMPLATE WHERE REQUEST_TEMPLATE_ID=@p_REQUEST_TEMPLATE_ID)
386
		DECLARE @DONE_INS_APPROVE_GROUP BIT=1,
387
				@ERROR_MESS NVARCHAR(MAX)
388
		EXEC CM_APPROVE_GROUP_Upd @p_REQUEST_TEMPLATE_ID,@p_GROUP_APPROVES,@CURRENT_STEP,@DONE_INS_APPROVE_GROUP OUT, @ERROR_MESS OUT
389
		IF @DONE_INS_APPROVE_GROUP <> 1 GOTO ABORT_CHILD
390
		--
391
    IF (NOT EXISTS(SELECT * FROM CM_APPROVE_GROUP WHERE REQ_ID = @p_REQUEST_TEMPLATE_ID))
392
    BEGIN  
393
      ROLLBACK TRANSACTION
394
    	SELECT '-1' Result, '' REQ_ID, N'Nhóm duyệt không được bỏ trống' ErrorDesc 
395
  		RETURN '-1'
396
    END
397

    
398
		--ADD LOG
399
		IF(EXISTS(SELECT 1 FROM CM_REQUEST_TEMPLATE WHERE IS_SENT_APPROVE = 0 AND REQUEST_TEMPLATE_ID = @P_REQUEST_TEMPLATE_ID))
400
		BEGIN
401
			DECLARE @p_DONE BIT = 1
402
			EXEC CM_TEMPLATE_LOG_Ins @p_REQUEST_TEMPLATE_ID,'UPD','',@p_MAKER_ID,NULL, @p_DONE OUT
403
			IF @p_DONE <> 1 GOTO ABORT
404
		END
405
	END
406
	ELSE
407
	BEGIN
408
		SET @ERROR_MESS = N'Trạng thái phiếu hiện không thể cập nhật'
409
		GOTO ABORT_CHILD
410
	END
411
	--
412

    
413
COMMIT TRANSACTION
414

    
415
SELECT '0' as Result, @p_REQUEST_TEMPLATE_ID  ID, '' ErrorDesc
416
RETURN '0'
417
ABORT:
418
BEGIN
419
		
420
		ROLLBACK TRANSACTION
421
		SELECT '-1' as Result, '' ID, '' ErrorDesc
422
		RETURN '-1'
423
END
424
ABORT_CHILD:
425
BEGIN
426
		ROLLBACK TRANSACTION
427
		SELECT '-1' as Result, '' ID, @ERROR_MESS ErrorDesc
428
		RETURN '-1'
429
End
430
END
431

    
432
GO
433

    
434
ALTER PROCEDURE dbo.CM_REQUEST_TEMPLATE_Upd_Admin 
435
	@p_REQUEST_TEMPLATE_ID nvarchar(200)  = NULL,
436
	@p_REQUEST_TEMPLATE_NAME	nvarchar(200)  = NULL,
437
	@p_REQUEST_TEMPLATE_CODE	nvarchar(100)  = NULL,
438
	@p_CREATE_LOCATION NVARCHAR(100)=NULL,
439
	@p_HEADER NVARCHAR(max)=NULL,
440
	@p_CONTENT NVARCHAR(max)=NULL,
441
	@p_BRANCH_ID NVARCHAR(50)=NULL,
442
	@p_REPORT_NO NVARCHAR(50)=NULL,
443
	@p_TITLE NVARCHAR(50)=NULL,
444
	@p_REPORT_DT	VARCHAR(20) = NULL,
445
	@p_SCHEME_IN BIT,
446
	@p_TYPE_TEMPLATE_ID NVARCHAR(20)=NULL,
447
	@p_NOTES	nvarchar(max)  = NULL,
448
	@p_RECORD_STATUS	varchar(1)  = NULL,
449
	@p_MAKER_ID	varchar(12)  = NULL,
450
	@p_CREATE_DT	VARCHAR(20) = NULL,
451
	@p_AUTH_STATUS	varchar(50)  = NULL,
452
	@p_CHECKER_ID	varchar(12)  = NULL,
453
	@p_APPROVE_DT	VARCHAR(20) = NULL,
454
	@p_REQUEST_TEMPLATE_XML nvarchar(MAX) = NULL
455
AS
456
BEGIN
457
	--Validation is here
458
	DECLARE @ERRORSYS NVARCHAR(15) = '', 
459
		@hdoc int,
460
		@l_REQUEST_TEMPLATE_DETAIL_ID varchar(15),
461

    
462
		@l_REQUEST_TEMPLATE_DETAIL_CONTENT nvarchar(max),
463
		@l_REQUEST_TEMPLATE_DETAIL_CODE varchar(15),
464
		@l_PAGE_SIZE varchar(5),
465
		@l_NOTES nvarchar(max)
466
	IF @ERRORSYS <> '' 
467
	BEGIN
468
		SELECT ErrorCode Result, ''  CAR_ID, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS
469
		RETURN '0'
470
	END
471
	IF (@p_REPORT_NO IS NULL OR LTRIM(RTRIM(@p_REPORT_NO)) = '')
472
	BEGIN
473
		SELECT '-1' Result, '' REQ_ID, N'Số tờ trình không được bỏ trống' ErrorDesc 
474
		RETURN '-1'
475
	END
476
	IF EXISTS(SELECT * FROM CM_REQUEST_TEMPLATE WHERE LTRIM(RTRIM(REPORT_NO)) = LTRIM(RTRIM(@p_REPORT_NO)) AND RECORD_STATUS = 1 AND REQUEST_TEMPLATE_ID <> @p_REQUEST_TEMPLATE_ID)
477
	BEGIN
478
		SELECT '-1' Result, '' REQ_ID, N'Tờ trình số: ' + @p_REPORT_NO + N' đã tồn tại trong hệ thống!' ErrorDesc 
479
		RETURN '-1'
480
	END
481

    
482
  IF (@p_CONTENT IS NULL OR @p_CONTENT = '')
483
	BEGIN
484
		SELECT '-1' Result, '' REQ_ID, N'Nội dung tờ trình đang tải vui lòng cập nhật lại' ErrorDesc 
485
		RETURN '-1'
486
	END
487

    
488
	BEGIN TRANSACTION  
489

    
490
	UPDATE [dbo].[CM_REQUEST_TEMPLATE]
491
   SET [REQUEST_TEMPLATE_NAME] = @p_REQUEST_TEMPLATE_NAME
492
      ,[REQUEST_TEMPLATE_CODE] = @p_REQUEST_TEMPLATE_CODE
493
      ,[NOTES] = @p_NOTES
494
      ,[CREATE_DT] =CONVERT(DATETIME, @p_CREATE_DT, 103) 
495
      ,[AUTH_STATUS] = @p_AUTH_STATUS
496
      ,[CONTENT] = @p_CONTENT
497
      ,[CREATE_LOCATION] = @p_CREATE_LOCATION
498
      ,[HEADER] = @p_HEADER
499
      ,[BRANCH_ID] = @p_BRANCH_ID
500
      ,[REPORT_NO] = @p_REPORT_NO
501
      ,[TITLE] = @p_TITLE
502
      ,[REPORT_DT] = CONVERT(DATETIME, @p_REPORT_DT, 103) 
503
      ,[SCHEME] = @p_SCHEME_IN
504
      ,[TYPE_TEMPLATE_ID] = @p_TYPE_TEMPLATE_ID
505
	  WHERE [REQUEST_TEMPLATE_ID] = @p_REQUEST_TEMPLATE_ID
506
		IF @@Error <> 0 GOTO ABORT
507

    
508
	DELETE CM_SENT_TO_TEMPLATE WHERE TEMPLATE_ID=@p_REQUEST_TEMPLATE_ID
509
	declare @sentToTlb table(CONTENT nvarchar(200))
510
	IF(@p_REQUEST_TEMPLATE_XML <> '' AND @p_REQUEST_TEMPLATE_XML IS NOT NULL)
511
	BEGIN
512
		insert into @sentToTlb
513
		select *
514
		FROM WSISPLIT(@p_REQUEST_TEMPLATE_XML,',')
515
	END
516
	DECLARE @TOT INT = (SELECT COUNT(CONTENT) from @sentToTlb)
517
	DECLARE @ind INT,@p_SENT_TO_TEMPLATE_ID nvarchar(50)
518
	EXEC SYS_CodeMasters_Gen_Mult 'CM_SENT_TO_TEMPLATE',@TOT, @p_SENT_TO_TEMPLATE_ID out, @ind out
519
	--EXEC SYS_CodeMasters_Gen 'CM_SENT_TO_TEMPLATE', @l_SENT_TO_TEMPLATE_ID out
520

    
521
	INSERT INTO [dbo].[CM_SENT_TO_TEMPLATE]
522
		   ([TEMPLATE_ID]
523
		   ,[SENT_TO_TEMPLATE_ID]
524
		   ,[CONTENT])
525
	SELECT @p_REQUEST_TEMPLATE_ID
526
		   ,('CSTM' + right('0000000000000'+convert(varchar(15),(@ind -1 + row_number() over(order by (select 1)))),10)),
527
		CONTENT
528
	FROM @sentToTlb
529
	IF @@Error <> 0 GOTO ABORT
530
	--ADD LOG
531
	DECLARE @DONE_INS_APPROVE_GROUP BIT
532
	EXEC CM_TEMPLATE_LOG_Ins @p_REQUEST_TEMPLATE_ID,'UPD','',@p_MAKER_ID,NULL, @DONE_INS_APPROVE_GROUP OUT
533
	IF @DONE_INS_APPROVE_GROUP <> 1 GOTO ABORT_CHILD
534
	--
535

    
536
COMMIT TRANSACTION
537

    
538
SELECT '0' as Result, @p_REQUEST_TEMPLATE_ID  ID, '' ErrorDesc
539
RETURN '0'
540
ABORT:
541
BEGIN
542
		
543
		ROLLBACK TRANSACTION
544
		SELECT '-1' as Result, '' ID, '' ErrorDesc
545
		RETURN '-1'
546
END
547
ABORT_CHILD:
548
BEGIN
549
		ROLLBACK TRANSACTION
550
		SELECT '-1' as Result, '' ID, N'THÊM LỊCH SỬ THẤT BẠI' ErrorDesc
551
		RETURN '-1'
552
End
553
END
554
GO