Project

General

Profile

ASS_AMORT_Do.txt

Luc Tran Van, 04/25/2023 05:31 PM

 
1

    
2
/*
3
EXEC [ASS_AMORT_Do] '30/10/2018','admin','admin','ALL',NULL
4

    
5

    
6
*/
7

    
8
ALTER PROCEDURE dbo.ASS_AMORT_Do
9
	@p_EXECUTE_DATE varchar(20) = NULL,  --Mac dinh la ngay hien tai cua he thong, duoc truyen tu UI
10
	@p_MAKER_ID	varchar(15)  = NULL,
11
	@p_CHECKER_ID varchar(15)  = NULL,
12
	@p_ASSET_TYPE VARCHAR(15) = 'ALL',
13
	@p_BRANCH_ID_LST XML = NULL
14
AS
15
BEGIN TRY
16
	declare @l_AMORT_ID varchar(15), @l_AMORTDT_ID varchar(15)
17
	declare @l_LAST_AMORT_ID varchar(15) = NULL
18
	declare @l_AMORT_TERM nvarchar(50) = ''
19
	
20
	declare @l_ASSET_ID varchar(15)
21
	declare @l_AMORTIZED_AMT decimal(18,0)
22
	declare @l_AMORTIZED_MONTH int
23
	declare @l_AMORT_AMT decimal(18,0)
24
	declare @l_AMORT_MONTH decimal(18,2)
25
	declare @l_AMORT_END_DATE datetime, @l_AMORT_START_DATE datetime
26
	declare @l_FIRST_AMORT_AMT decimal(18,0), @l_MONTHLY_AMORT_AMT decimal(18,0)
27
	declare @l_BRANCH_ID varchar(15)
28
	declare @l_DEP_ID varchar(15)	
29
	declare @l_BRANCH_ID_DO varchar(15) = NULL, @l_BRANCH_TYPE_DO VARCHAR(15)
30
	declare @l_CURR_AMORT_AMT decimal(18,0)
31
	declare @l_TOTAL_AMT decimal(18,0)
32
	declare @l_CURR_AMORT_STATUS nvarchar(100)
33
	declare @l_DESC nvarchar(1000)
34
	DECLARE @ERRORSYS NVARCHAR(15) = '' 
35
	DECLARE @LST_BRANCH TABLE ( BRANCHID VARCHAR(15), BRANCHCODE VARCHAR(15))
36

    
37
	DECLARE @ErrCode nvarchar(10) --Phong added
38

    
39
BEGIN TRANSACTION	
40

    
41
	--Thieuvq Them gia tri mac dinh
42
	--
43
	declare @l_AmortIdDefault varchar(100) = '',@l_AMORTTERMDefault varchar(100) = '',
44
	@l_TOTALAMTDefault decimal (18,2) = 0,@l_PROCESSSTATUSDefault varchar(100) = '',
45
	@l_ExecDateDefault datetime = null, @l_StatusNameDef varchar(100) = '', @l_NotesDef varchar(100) = ''
46
	--
47

    
48
	declare @sExecDT datetime = convert(datetime, @p_EXECUTE_DATE, 103)
49
	
50
	select @l_LAST_AMORT_ID = AMORT_ID
51
	FROM ASS_AMORT
52
	WHERE IS_LEAF = 'Y'
53

    
54
	SET @l_AMORT_TERM = convert(varchar(2), datepart(month, @sExecDT)) + '/' + convert(varchar(4), datepart(year, @sExecDT))
55

    
56
	--Put valodation here
57

    
58
	--THIEUVQ 11/07/2014
59
	/***********LAY BRANCH_ID CUA USER THUC HIEN CHAY KHAU HAO**************/
60
	SELECT @l_BRANCH_ID_DO = TLSUBBRID FROM TL_USER WHERE TLNANME = @p_MAKER_ID	
61
	IF @l_BRANCH_ID_DO = '' OR @l_BRANCH_ID_DO IS NULL
62
	BEGIN
63
		SET @ERRORSYS = 'ASS-AMR-0005'	
64
		GOTO THROW_ERR
65
	END
66

    
67
	--THIEUVQ 29092016 - BO DIEU KIEN KHONG CHO PGD CHAY PHAN BO
68
	SELECT @l_BRANCH_TYPE_DO = BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = @l_BRANCH_ID_DO
69
	--IF @l_BRANCH_TYPE_DO = 'PGD' OR @l_BRANCH_TYPE_DO IS NULL
70
	--BEGIN
71
	--	SET @ERRORSYS = 'ASS-AMR-1006'	
72
	--	GOTO THROW_ERR
73
	--END
74
	--11/07/2014
75

    
76
	----------------BO DUNG DANH SACH PGD DUOC CN PHAN BO GIUM THIEUVQ - 28092016------------------
77
			IF @p_BRANCH_ID_LST IS NOT NULL AND @l_BRANCH_TYPE_DO = 'CN'
78
			BEGIN				
79
				Declare @hdoc INT
80
				Exec sp_xml_preparedocument @hdoc Output, @p_BRANCH_ID_LST	
81

    
82
				INSERT INTO @LST_BRANCH
83
				SELECT *
84
				FROM OPENXML(@hDoc,'/Root/BRANCHLIST',2)
85
				WITH 
86
				(					
87
					BRANCH_ID	varchar(15),
88
					BRANCH_CODE	varchar(15)
89
				)				
90
			END
91
	-----------------------------------------------------------------------------------------------
92

    
93
	/******** kiem tra giao dich chua duyet **********************/
94
	/* --Phong commented starts
95
	IF @p_ASSET_TYPE = 'TSCD'
96
	BEGIN
97
		IF 1=0 AND EXISTS(SELECT 1 FROM ASS_PENDING_ITEM A WHERE A.AUTH_STATUS = 'U' AND TYPE_ID = 'TSCD')--THIEUVQ THEM DIEU KIEN KIEM TRA THEO DON VI
98
		BEGIN
99
			SET @ERRORSYS = 'ASS-AMR-0002'	
100
			GOTO THROW_ERR
101
		END
102
	END
103
	ELSE
104
	BEGIN
105
		IF EXISTS(SELECT 1 FROM ASS_PENDING_ITEM A WHERE A.AUTH_STATUS = 'U' AND TYPE_ID = 'CCLD' AND TRAN_TYPE NOT IN ('ASS_ADDNEW','ASS_USE')
106
		AND (BRANCH_CREATE = @l_BRANCH_ID_DO 
107
			OR (@l_BRANCH_TYPE_DO = 'CN' 
108
				--AND BRANCH_CREATE IN (SELECT * FROM [dbo].[CM_BRANCH_GETCHILDID](@l_BRANCH_ID_DO)))))--THIEUVQ THEM DIEU KIEN KIEM TRA THEO DON VI
109
				AND BRANCH_CREATE IN (SELECT BRANCHID FROM @LST_BRANCH))))--THIEUVQ 29092016 - SUA DIEU KIEN PGD THUOC DANH SACH DA CHON
110
				
111
		BEGIN
112
			SET @ERRORSYS = 'ASS-AMR-0002'	
113
			GOTO THROW_ERR
114
		END
115
	END
116
	*/
117
	--Phong commented ends
118

    
119
	--Phong added starts
120
	IF 1=0 AND EXISTS(SELECT 1 FROM ASS_PENDING_ITEM A WHERE A.AUTH_STATUS = 'U')
121
	BEGIN
122
		SET @ERRORSYS = 'ASS-AMR-0002'	
123
		GOTO THROW_ERR
124
	END
125
	
126
	--THIEUVQ  THEM DIEU KIEN KIEM TRA KY KHAU HAO DA DUOC TAO
127
	IF EXISTS(SELECT 1 FROM ASS_AMORT A WHERE MONTH(A.EXECUTE_DT) = MONTH(@sExecDT) AND YEAR(A.EXECUTE_DT) = YEAR(@sExecDT)
128
												  AND ASSET_TYPE = @p_ASSET_TYPE)	
129
		BEGIN
130
			SET @ERRORSYS = 'ASS-AMR-0001'
131
			GOTO THROW_ERR
132
		END
133
	/*******KIEM TRA KY KHAU HAO DA TRONG THANG DA DUOC TAO HAY CHUA******/
134
/*
135
	IF @p_ASSET_TYPE = 'TSCD'
136
	BEGIN
137
		IF EXISTS(SELECT 1 FROM ASS_AMORT A WHERE MONTH(A.EXECUTE_DT) = MONTH(@sExecDT) AND YEAR(A.EXECUTE_DT) = YEAR(@sExecDT)
138
												  AND ASSET_TYPE = 'TSCD')	
139
		BEGIN
140
			SET @ERRORSYS = 'ASS-AMR-0001'
141
			GOTO THROW_ERR
142
		END
143
	END
144
	ELSE
145
	BEGIN		
146
		IF EXISTS(SELECT 1 FROM ASS_AMORT A WHERE MONTH(A.EXECUTE_DT) = MONTH(@sExecDT) AND YEAR(A.EXECUTE_DT) = YEAR(@sExecDT)
147
												AND ASSET_TYPE = 'CCLD' AND BRANCH_ID = @l_BRANCH_ID_DO)--THIEUVQ THEM DIEU KIEN KIEM TRA THEO LOAI TAI SAN
148
		BEGIN
149
			SET @ERRORSYS = 'ASS-AMR-0006'
150
			GOTO THROW_ERR
151
		END
152
		
153
		----------------BO DUNG DANH SACH PGD DUOC CN PHAN BO GIUM THIEUVQ - 28092016------------------
154
		IF @l_BRANCH_TYPE_DO = 'CN'
155
		BEGIN
156
			DECLARE @LSTERROR VARCHAR(500) = ''
157
			SELECT @LSTERROR = @LSTERROR + B.BRANCHCODE + ';' 
158
			FROM ASS_AMORT A 
159
			LEFT JOIN @LST_BRANCH B ON B.BRANCHID = A.BRANCH_ID
160
			WHERE A.AMORT_TERM = @l_AMORT_TERM AND A.BRANCH_ID IN (SELECT BRANCHID FROM @LST_BRANCH)
161
			
162
			IF LEN(@LSTERROR) > 0	
163
			BEGIN
164
				SELECT '-1' Result, N'PGD sau đã tự chạy phân bổ: ' + @LSTERROR ErrorDesc, @l_AmortIdDefault as AMORT_ID, @l_AMORTTERMDefault as AMORT_TERM, 
165
					@l_TOTALAMTDefault as TOTAL_AMT, @l_PROCESSSTATUSDefault as PROCESS_STATUS ,@l_StatusNameDef as STATUS_NAME, 
166
					@l_ExecDateDefault AS EXECUTE_DT,@l_NotesDef AS NOTES
167

    
168
				IF @@TRANCOUNT>0 ROLLBACK TRANSACTION
169
				RETURN '0'
170
			END			
171
		END
172
		ELSE 
173
		BEGIN				
174
			IF @l_BRANCH_TYPE_DO = 'PGD'
175
			BEGIN			
176
				IF EXISTS(SELECT 1 FROM ASS_AMORT_BRN A WHERE A.AMORT_TERM = @l_AMORT_TERM AND A.BRANCH_ID = @l_BRANCH_ID_DO)
177
				BEGIN
178
					SET @ERRORSYS = 'ASS-AMR-0007'
179
					GOTO THROW_ERR
180
				END
181
			END
182
		END
183
	END
184
*/
185

    
186
	/***** Ngay thuc thi khau hao phai lon hon ngay chay cuoi cung da chay *****/
187
	--IF EXISTS(SELECT 1 FROM ASS_AMORT A WHERE convert(date,A.EXECUTE_DT) > convert(date,@sExecDT))
188
	--BEGIN
189
	--	SET @ERRORSYS = 'ASS-AMR-0004'
190
	--	GOTO THROW_ERR
191
	--END		
192
	/************ Kiem tra cac tai khoan hach toan trong bang ASS_GROUP ******/
193
	IF EXISTS(SELECT * 
194
				FROM ASS_GROUP A 
195
				WHERE 1=1
196
					AND A.IS_LEAF='Y' 
197
					AND ISNULL(A.ASSET_ACCTNO,'') = '' 
198
					AND ISNULL(A.AMORT_ACCTNO,'') = ''
199
					AND ISNULL(A.EXP_ACCTNO,'') = ''
200
					AND ISNULL(A.INC_ACCTNO,'') = ''
201
					AND ISNULL(A.LIQ_ACCTNO,'') = ''
202
					AND A.TYPE_ID = @p_ASSET_TYPE)
203
	BEGIN					
204
		SET @ERRORSYS = 'ASS-AMR-0003'
205
		GOTO THROW_ERR
206
	END
207
		
208
THROW_ERR:			
209
	IF @ERRORSYS <> '' 
210
	BEGIN
211
		IF @ERRORSYS = 'ASS-AMR-0001'
212
		BEGIN
213
			SELECT @l_AmortIdDefault = A.AMORT_ID, @l_PROCESSSTATUSDefault = A.PROCESS_STATUS, @l_ExecDateDefault = A.EXECUTE_DT,
214
			@l_AMORTTERMDefault = A.AMORT_TERM, @l_TOTALAMTDefault = A.TOTAL_AMT
215
			FROM ASS_AMORT A WHERE MONTH(A.EXECUTE_DT) = MONTH(@sExecDT) AND YEAR(A.EXECUTE_DT) = YEAR(@sExecDT)
216
												  AND ASSET_TYPE = @p_ASSET_TYPE 
217
			SELECT ErrorCode Result, ErrorDesc ErrorDesc, @l_AmortIdDefault as AMORT_ID, @l_AMORTTERMDefault as AMORT_TERM, 
218
						@l_TOTALAMTDefault as TOTAL_AMT, @l_PROCESSSTATUSDefault as PROCESS_STATUS,@l_StatusNameDef as STATUS_NAME, 
219
						@l_ExecDateDefault AS EXECUTE_DT,@l_NotesDef AS NOTES
220
			FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS
221
		END
222
		ELSE
223
		SELECT ErrorCode Result, ErrorDesc ErrorDesc, @l_AmortIdDefault as AMORT_ID, @l_AMORTTERMDefault as AMORT_TERM, 
224
					@l_TOTALAMTDefault as TOTAL_AMT, @l_PROCESSSTATUSDefault as PROCESS_STATUS,@l_StatusNameDef as STATUS_NAME, 
225
					@l_ExecDateDefault AS EXECUTE_DT,@l_NotesDef AS NOTES
226
		FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS
227

    
228
		IF @@TRANCOUNT>0 ROLLBACK TRANSACTION
229
		RETURN '0'
230
	END	
231

    
232
	--oepn cursor
233
	declare pCur cursor for
234
		 SELECT A.ASSET_ID, A.AMORTIZED_AMT, A.AMORTIZED_MONTH,
235
				A.AMORT_AMT,  A.AMORT_MONTH, A.AMORT_END_DATE, A.AMORT_START_DATE,
236
				A.FIRST_AMORT_AMT, A.MONTHLY_AMORT_AMT, A.BRANCH_ID, A.DEPT_ID
237
		 FROM ASS_MASTER A
238
		 WHERE A.AMORT_STATUS IN ('CKH','DKH')
239
			AND convert(date, A.AMORT_START_DATE) <= convert(date, @sExecDT)
240
			AND A.AMORTIZED_AMT < A.AMORT_AMT
241
			AND A.RECORD_STATUS = '1'
242
			AND A.AUTH_STATUS = 'A'
243
			AND (A.TYPE_ID = @p_ASSET_TYPE OR @p_ASSET_TYPE = 'ALL') --Phong
244
/*			AND A.TYPE_ID = @p_ASSET_TYPE--THIEUVQ	
245
			AND (A.BRANCH_ID = @l_BRANCH_ID_DO 
246
				OR (@p_ASSET_TYPE = 'TSCD' or @p_ASSET_TYPE = 'CCLD')
247
				OR (@l_BRANCH_TYPE_DO = 'CN' --NEU LA CN THI PHAN BO LUON CHO PGD THUOC CHI NHANH DO
248
					--AND A.BRANCH_ID IN (SELECT * FROM [dbo].[CM_BRANCH_GETCHILDID](@l_BRANCH_ID_DO)))) --THIEUVQ
249
					AND A.BRANCH_ID IN (SELECT BRANCHID FROM @LST_BRANCH))) --THIEUVQ CHINH SUA 28092016
250
*/
251

    
252
	open pCur
253
		
254
	--Update ky khau hao truoc khong con la nut la
255
	IF @l_LAST_AMORT_ID IS NOT NULL 
256
	BEGIN
257
		UPDATE ASS_AMORT 
258
		SET IS_LEAF = 'N'
259
		WHERE AMORT_ID = @l_LAST_AMORT_ID
260
	END	
261

    
262
	--set dien giai
263
	IF @p_ASSET_TYPE = 'TSCD'
264
		SET @l_DESC = N'Khấu hao kỳ ' + @l_AMORT_TERM
265
	ELSE
266
		SET @l_DESC = N'Phân bổ kỳ ' + @l_AMORT_TERM
267
 
268
	--Insert ky khau hao moi
269
	EXEC SYS_CodeMasters_Gen 'ASS_AMORT', @l_AMORT_ID out
270
	
271
	INSERT INTO ASS_AMORT
272
	(
273
		AMORT_ID,
274
		AMORT_TERM,
275
		EXECUTE_DT,
276
		TOTAL_AMT,
277
		IS_LEAF,
278
		PARENT_ID,
279
		NOTES,
280
		PROCESS_STATUS,
281
		[RECORD_STATUS],
282
		[MAKER_ID],
283
		[CREATE_DT],
284
		[AUTH_STATUS],
285
		[CHECKER_ID],
286
		[APPROVE_DT],
287
		[BRANCH_ID],
288
		[ASSET_TYPE]
289
	)
290
	VALUES
291
	(
292
		@l_AMORT_ID,
293
		@l_AMORT_TERM,
294
		CONVERT(datetime, @p_EXECUTE_DATE, 103),
295
		0,
296
		'Y',
297
		@l_LAST_AMORT_ID,
298
		@l_DESC,--N'Khấu hao kỳ ' + @l_AMORT_TERM,
299
		'P', --Pending cho chay khau hao
300
		'1',
301
		@p_MAKER_ID,
302
		GETDATE(),
303
		'A',
304
		@p_CHECKER_ID,
305
		GETDATE(),
306
		@l_BRANCH_ID_DO,
307
		@p_ASSET_TYPE
308
	)	
309
 
310
	----------------BO DUNG DANH SACH PGD DUOC CN PHAN BO GIUM THIEUVQ - 28092016------------------
311
	IF @l_BRANCH_TYPE_DO = 'CN'
312
	BEGIN
313
		INSERT INTO ASS_AMORT_BRN SELECT @l_AMORT_ID, @l_AMORT_TERM, BRANCHID FROM @LST_BRANCH
314
	END
315
	-----------------------------------------------------------------------------------------------
316
	SET @l_TOTAL_AMT = 0	
317
	
318
	DECLARE @SOKY INT = 1
319
	DECLARE @BeginDate DATE = CONVERT(DATE,(CONVERT(VARCHAR(10),YEAR(GETDATE()))+'-'+CONVERT(VARCHAR(4),MONTH(GETDATE())) +'-1'))
320
	--SELECT @BeginDate
321
	--Tinh khau hao cho tung tai san
322
	FETCH NEXT FROM pCur INTO  @l_ASSET_ID, @l_AMORTIZED_AMT, @l_AMORTIZED_MONTH,
323
				@l_AMORT_AMT,  @l_AMORT_MONTH, @l_AMORT_END_DATE, @l_AMORT_START_DATE,
324
				@l_FIRST_AMORT_AMT, @l_MONTHLY_AMORT_AMT, @l_BRANCH_ID, @l_DEP_ID
325
	
326
	WHILE @@FETCH_STATUS = 0	
327
	BEGIN
328
		--SET @l_DESC = N'Khấu hao kỳ ' + @l_AMORT_TERM
329
		SET @SOKY = 1
330
		IF (@l_AMORTIZED_MONTH = 0) --Khau hao thang dau tien
331
		BEGIN
332
			SET @l_CURR_AMORT_AMT = @l_FIRST_AMORT_AMT
333
			--SET @l_CURR_AMORT_STATUS = 'DKH'
334
			--------THIEUVQ KHAU HAO LUI 15012019-----------------
335
			--------BEGIN
336
			IF @l_AMORT_START_DATE < @BeginDate
337
			BEGIN
338
				--TINH SO KY KHAO HAO
339
				--SELECT DATEDIFF(MONTH,'2018-11-10','2019-1-1')
340

    
341
				SET @SOKY = DATEDIFF(MONTH, @l_AMORT_START_DATE, @BeginDate)
342

    
343
				SET @l_CURR_AMORT_AMT = @l_FIRST_AMORT_AMT + @l_MONTHLY_AMORT_AMT*@SOKY
344
				SET @SOKY = @SOKY + 1
345

    
346

    
347
				
348
				
349

    
350

    
351
				IF @SOKY > = @l_AMORT_MONTH ---KHAU HAO LUI VOI SOKY LON HON HOAC BANG SO THANG THI KHAU HAO HET
352
				BEGIN
353
					SET @SOKY = @l_AMORT_MONTH
354
					SET @l_CURR_AMORT_AMT = @l_AMORT_AMT
355
				END
356
			END
357
			--------END
358
		END
359
		ELSE IF dbo.FN_GetLastDayOfMonth(@sExecDT) = dbo.FN_GetLastDayOfMonth(@l_AMORT_END_DATE) --Ky khau hao cuoi cung
360
		BEGIN
361
			SET @l_CURR_AMORT_AMT = @l_AMORT_AMT - @l_AMORTIZED_AMT
362
			--SET @l_CURR_AMORT_STATUS = 'KHX'	
363
			print 'last amort'	+ @l_ASSET_ID
364
		END
365
		ELSE --tai san dang khau hao binh thuong
366
		BEGIN
367
			SET @l_CURR_AMORT_AMT = @l_MONTHLY_AMORT_AMT
368
			--SET @l_CURR_AMORT_STATUS = 'DKH'			
369
		END
370
		--THIEUVQ THEM DK KHONG KHAU HAO AM 13112017
371
			IF (ISNULL(@l_AMORTIZED_AMT,0) + @l_CURR_AMORT_AMT) > @l_AMORT_AMT
372
				SET @l_CURR_AMORT_AMT = @l_AMORT_AMT - ISNULL(@l_AMORTIZED_AMT,0)
373
	
374
		--Insert to bang ASS_AMORT_DT
375
		EXEC SYS_CodeMasters_Gen 'ASS_AMORT_DT', @l_AMORTDT_ID out
376
	
377
		INSERT INTO ASS_AMORT_DT
378
		(
379
			AMORTDT_ID,
380
			AMORT_ID,
381
			AMORT_DT,
382
			CRDR,
383
			BRANCH_ID,
384
			DEP_ID,
385
			ASSET_ID,
386
			AMORT_AMT,
387
			GROUP_ID,
388
			EXECUTED,
389
			TRN_TYPE,
390
			TRN_DESC
391
		)
392
		VALUES
393
		(
394
			@l_AMORTDT_ID,
395
			@l_AMORT_ID,
396
			@sExecDT,
397
			'C',
398
			@l_BRANCH_ID,
399
			@l_DEP_ID,
400
			@l_ASSET_ID,
401
			@l_CURR_AMORT_AMT,
402
			NULL, --Khong chay khau hao theo group
403
			'0',
404
			'AMORT',
405
			@l_DESC
406
		)
407
	
408
		SET @l_TOTAL_AMT = @l_TOTAL_AMT + @l_CURR_AMORT_AMT
409

    
410
		--Phong added for cost allocate starts -- 20-OCT-2018
411
		IF EXISTS(SELECT 1 FROM ASS_COST_ALLOCATION WHERE ASSET_ID = @l_ASSET_ID)
412
		BEGIN
413
			EXEC ASS_AMORT_COST_Do
414
				@l_AMORT_ID,
415
				@p_EXECUTE_DATE,
416
				@l_AMORTDT_ID,
417
				@l_ASSET_ID,
418
				@l_CURR_AMORT_AMT,
419
				@SOKY,
420
				@ErrCode OUT
421

    
422
			IF (@ErrCode<> '0') 
423
				THROW 99001, 'Cost Allocation failed', 1;
424
			
425
		END
426
		--Phong added for cost allocate End -- 20-OCT-2018
427

    
428
		FETCH NEXT FROM pCur INTO  @l_ASSET_ID, @l_AMORTIZED_AMT, @l_AMORTIZED_MONTH,
429
					@l_AMORT_AMT,  @l_AMORT_MONTH, @l_AMORT_END_DATE, @l_AMORT_START_DATE,
430
					@l_FIRST_AMORT_AMT, @l_MONTHLY_AMORT_AMT, @l_BRANCH_ID, @l_DEP_ID
431
	END
432
		
433
	UPDATE ASS_AMORT
434
	SET TOTAL_AMT = @l_TOTAL_AMT
435
	WHERE AMORT_ID = @l_AMORT_ID
436
	
437
END TRY
438

    
439
BEGIN CATCH	
440
		CLOSE pCur
441
		DEALLOCATE pCur
442

    
443
	IF @@TRANCOUNT>0 ROLLBACK TRANSACTION		
444
		--SELECT '-1' as Result, (convert(nvarchar(100),ERROR_NUMBER()) + N' - ' + ERROR_MESSAGE()) ErrorDesc, 
445
		--	'' AMORT_ID, '' AMORT_TERM, 0 TOTAL_AMT, GETDATE() EXECUTE_DT,'' AS PROCESS_STATUS,
446
		--	N'' STATUS_NAME, N'' NOTES
447

    
448
		SELECT top 1 '-1' as Result, (convert(nvarchar(100),ERROR_NUMBER()) + N' - ' + ERROR_MESSAGE()) ErrorDesc, AMORT_ID, AMORT_TERM, TOTAL_AMT, EXECUTE_DT,'' AS PROCESS_STATUS,
449
		N'' STATUS_NAME, NOTES
450
		FROM ASS_AMORT 
451

    
452
	RETURN '-1'	
453

    
454
END CATCH;
455

    
456
	CLOSE pCur
457
	DEALLOCATE pCur
458
	
459
IF @@TRANCOUNT>0 COMMIT TRANSACTION
460

    
461
SELECT '0' as Result, '' ErrorDesc, AMORT_ID, AMORT_TERM, TOTAL_AMT, EXECUTE_DT,'' AS PROCESS_STATUS,
462
		CASE WHEN PROCESS_STATUS='P' THEN N'Chờ thực thi' ELSE N'Đã thực thi' END STATUS_NAME, NOTES
463
		FROM ASS_AMORT WHERE AMORT_ID = @l_AMORT_ID
464
RETURN '0'	
465

    
466

    
467

    
468

    
469
GO