Project

General

Profile

2.2. ASS_AMORT_DO.txt

Luc Tran Van, 09/25/2023 06:17 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 1>2 --- LUCTV 25092023_SECRETKEY : TẠM THỜI TẮT TÍNH NĂNG KHẤU HAO TỚI NGÀY 25-08
245
/*			AND A.TYPE_ID = @p_ASSET_TYPE--THIEUVQ	
246
			AND (A.BRANCH_ID = @l_BRANCH_ID_DO 
247
				OR (@p_ASSET_TYPE = 'TSCD' or @p_ASSET_TYPE = 'CCLD')
248
				OR (@l_BRANCH_TYPE_DO = 'CN' --NEU LA CN THI PHAN BO LUON CHO PGD THUOC CHI NHANH DO
249
					--AND A.BRANCH_ID IN (SELECT * FROM [dbo].[CM_BRANCH_GETCHILDID](@l_BRANCH_ID_DO)))) --THIEUVQ
250
					AND A.BRANCH_ID IN (SELECT BRANCHID FROM @LST_BRANCH))) --THIEUVQ CHINH SUA 28092016
251
*/
252

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

    
263
	--set dien giai
264
	IF @p_ASSET_TYPE = 'TSCD'
265
		SET @l_DESC = N'Khấu hao kỳ ' + @l_AMORT_TERM
266
	ELSE
267
		SET @l_DESC = N'Phân bổ kỳ ' + @l_AMORT_TERM
268
 
269
	--Insert ky khau hao moi
270
	EXEC SYS_CodeMasters_Gen 'ASS_AMORT', @l_AMORT_ID out
271
	
272
	INSERT INTO ASS_AMORT
273
	(
274
		AMORT_ID,
275
		AMORT_TERM,
276
		EXECUTE_DT,
277
		TOTAL_AMT,
278
		IS_LEAF,
279
		PARENT_ID,
280
		NOTES,
281
		PROCESS_STATUS,
282
		[RECORD_STATUS],
283
		[MAKER_ID],
284
		[CREATE_DT],
285
		[AUTH_STATUS],
286
		[CHECKER_ID],
287
		[APPROVE_DT],
288
		[BRANCH_ID],
289
		[ASSET_TYPE]
290
	)
291
	VALUES
292
	(
293
		@l_AMORT_ID,
294
		@l_AMORT_TERM,
295
		CONVERT(datetime, @p_EXECUTE_DATE, 103),
296
		0,
297
		'Y',
298
		@l_LAST_AMORT_ID,
299
		@l_DESC,--N'Khấu hao kỳ ' + @l_AMORT_TERM,
300
		'P', --Pending cho chay khau hao
301
		'1',
302
		@p_MAKER_ID,
303
		GETDATE(),
304
		'A',
305
		@p_CHECKER_ID,
306
		GETDATE(),
307
		@l_BRANCH_ID_DO,
308
		@p_ASSET_TYPE
309
	)	
310
 
311
	----------------BO DUNG DANH SACH PGD DUOC CN PHAN BO GIUM THIEUVQ - 28092016------------------
312
	IF @l_BRANCH_TYPE_DO = 'CN'
313
	BEGIN
314
		INSERT INTO ASS_AMORT_BRN SELECT @l_AMORT_ID, @l_AMORT_TERM, BRANCHID FROM @LST_BRANCH
315
	END
316
	-----------------------------------------------------------------------------------------------
317
	SET @l_TOTAL_AMT = 0	
318
	
319
	DECLARE @SOKY INT = 1
320
	DECLARE @BeginDate DATE = CONVERT(DATE,(CONVERT(VARCHAR(10),YEAR(GETDATE()))+'-'+CONVERT(VARCHAR(4),MONTH(GETDATE())) +'-1'))
321
	--SELECT @BeginDate
322
	--Tinh khau hao cho tung tai san
323
	FETCH NEXT FROM pCur INTO  @l_ASSET_ID, @l_AMORTIZED_AMT, @l_AMORTIZED_MONTH,
324
				@l_AMORT_AMT,  @l_AMORT_MONTH, @l_AMORT_END_DATE, @l_AMORT_START_DATE,
325
				@l_FIRST_AMORT_AMT, @l_MONTHLY_AMORT_AMT, @l_BRANCH_ID, @l_DEP_ID
326
	
327
	WHILE @@FETCH_STATUS = 0	
328
	BEGIN
329
		--SET @l_DESC = N'Khấu hao kỳ ' + @l_AMORT_TERM
330
		SET @SOKY = 1
331
		IF (@l_AMORTIZED_MONTH = 0) --Khau hao thang dau tien
332
		BEGIN
333
			SET @l_CURR_AMORT_AMT = @l_FIRST_AMORT_AMT
334
			--SET @l_CURR_AMORT_STATUS = 'DKH'
335
			--------THIEUVQ KHAU HAO LUI 15012019-----------------
336
			--------BEGIN
337
			IF @l_AMORT_START_DATE < @BeginDate
338
			BEGIN
339
				--TINH SO KY KHAO HAO
340
				--SELECT DATEDIFF(MONTH,'2018-11-10','2019-1-1')
341
				SET @SOKY = DATEDIFF(MONTH, @l_AMORT_START_DATE, @BeginDate)
342
				SET @l_CURR_AMORT_AMT = @l_FIRST_AMORT_AMT + @l_MONTHLY_AMORT_AMT*@SOKY
343
				SET @SOKY = @SOKY + 1
344
				IF @SOKY > = @l_AMORT_MONTH ---KHAU HAO LUI VOI SOKY LON HON HOAC BANG SO THANG THI KHAU HAO HET
345
				BEGIN
346
					SET @SOKY = @l_AMORT_MONTH
347
					SET @l_CURR_AMORT_AMT = @l_AMORT_AMT
348
				END
349
			END
350
			--------END
351
		END
352
		ELSE IF dbo.FN_GetLastDayOfMonth(@sExecDT) = dbo.FN_GetLastDayOfMonth(@l_AMORT_END_DATE) --Ky khau hao cuoi cung
353
		BEGIN
354
			SET @l_CURR_AMORT_AMT = @l_AMORT_AMT - @l_AMORTIZED_AMT
355
			--SET @l_CURR_AMORT_STATUS = 'KHX'	
356
			print 'last amort'	+ @l_ASSET_ID
357
		END
358
		---LUCTV 14072023_SECRETKEY KIỂM TRA NẾU SỐ TIỀN CÒN LẠI NHỎ HƠN SỐ TIỀN KHẤU HAO CỦA 2 KỲ THÌ KHẤU HAO HẾT
359
		ELSE IF ((ISNUlL(@l_AMORT_AMT,0) -ISNULL(@l_AMORTIZED_AMT,0) < @l_MONTHLY_AMORT_AMT *2) OR (@l_AMORT_MONTH -@l_AMORTIZED_MONTH) =1)
360
			SET @l_CURR_AMORT_AMT = @l_AMORT_AMT - @l_AMORTIZED_AMT
361
		ELSE --tai san dang khau hao binh thuong
362
		BEGIN
363
			SET @l_CURR_AMORT_AMT = @l_MONTHLY_AMORT_AMT
364
			--SET @l_CURR_AMORT_STATUS = 'DKH'			
365
		END
366
		--THIEUVQ THEM DK KHONG KHAU HAO AM 13112017
367
			IF (ISNULL(@l_AMORTIZED_AMT,0) + @l_CURR_AMORT_AMT) > @l_AMORT_AMT
368
				SET @l_CURR_AMORT_AMT = @l_AMORT_AMT - ISNULL(@l_AMORTIZED_AMT,0)
369
	
370
		--Insert to bang ASS_AMORT_DT
371
		EXEC SYS_CodeMasters_Gen 'ASS_AMORT_DT', @l_AMORTDT_ID out
372
	
373
		INSERT INTO ASS_AMORT_DT
374
		(
375
			AMORTDT_ID,
376
			AMORT_ID,
377
			AMORT_DT,
378
			CRDR,
379
			BRANCH_ID,
380
			DEP_ID,
381
			ASSET_ID,
382
			AMORT_AMT,
383
			GROUP_ID,
384
			EXECUTED,
385
			TRN_TYPE,
386
			TRN_DESC
387
		)
388
		VALUES
389
		(
390
			@l_AMORTDT_ID,
391
			@l_AMORT_ID,
392
			@sExecDT,
393
			'C',
394
			@l_BRANCH_ID,
395
			@l_DEP_ID,
396
			@l_ASSET_ID,
397
			@l_CURR_AMORT_AMT,
398
			NULL, --Khong chay khau hao theo group
399
			'0',
400
			'AMORT',
401
			@l_DESC
402
		)
403
	
404
		SET @l_TOTAL_AMT = @l_TOTAL_AMT + @l_CURR_AMORT_AMT
405

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

    
418
			IF (@ErrCode<> '0') 
419
				THROW 99001, 'Cost Allocation failed', 1;
420
			
421
		END
422
		--Phong added for cost allocate End -- 20-OCT-2018
423

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

    
435
BEGIN CATCH	
436
		CLOSE pCur
437
		DEALLOCATE pCur
438

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

    
444
		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,
445
		N'' STATUS_NAME, NOTES
446
		FROM ASS_AMORT 
447

    
448
	RETURN '-1'	
449

    
450
END CATCH;
451

    
452
	CLOSE pCur
453
	DEALLOCATE pCur
454
	
455
IF @@TRANCOUNT>0 COMMIT TRANSACTION
456

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

    
462

    
463

    
464