Project

General

Profile

2.2. ASS_AMORT_START.txt

Luc Tran Van, 08/25/2023 05:39 PM

 
1

    
2

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

    
6

    
7
*/
8

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

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

    
40
BEGIN TRANSACTION	
41

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

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

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

    
57
	--Put valodation here
58

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

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

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

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

    
94
	/******** kiem tra giao dich chua duyet **********************/
95
	/* --Phong commented starts
96
	IF @p_ASSET_TYPE = 'TSCD'
97
	BEGIN
98
		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
99
		BEGIN
100
			SET @ERRORSYS = 'ASS-AMR-0002'	
101
			GOTO THROW_ERR
102
		END
103
	END
104
	ELSE
105
	BEGIN
106
		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')
107
		AND (BRANCH_CREATE = @l_BRANCH_ID_DO 
108
			OR (@l_BRANCH_TYPE_DO = 'CN' 
109
				--AND BRANCH_CREATE IN (SELECT * FROM [dbo].[CM_BRANCH_GETCHILDID](@l_BRANCH_ID_DO)))))--THIEUVQ THEM DIEU KIEN KIEM TRA THEO DON VI
110
				AND BRANCH_CREATE IN (SELECT BRANCHID FROM @LST_BRANCH))))--THIEUVQ 29092016 - SUA DIEU KIEN PGD THUOC DANH SACH DA CHON
111
				
112
		BEGIN
113
			SET @ERRORSYS = 'ASS-AMR-0002'	
114
			GOTO THROW_ERR
115
		END
116
	END
117
	*/
118
	--Phong commented ends
119

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

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

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

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

    
233
	--oepn cursor
234
	declare pCur cursor for
235
		 SELECT A.ASSET_ID, A.AMORTIZED_AMT, A.AMORTIZED_MONTH,
236
				A.AMORT_AMT,  A.AMORT_MONTH, A.AMORT_END_DATE, A.AMORT_START_DATE,
237
				A.FIRST_AMORT_AMT, A.MONTHLY_AMORT_AMT, A.BRANCH_ID, A.DEPT_ID
238
		 FROM ASS_MASTER A
239
		 WHERE A.AMORT_STATUS IN ('CKH','DKH')
240
			AND convert(date, A.AMORT_START_DATE) <= convert(date, @sExecDT)
241
			AND A.AMORTIZED_AMT < A.AMORT_AMT
242
			AND A.RECORD_STATUS = '1'
243
			AND A.AUTH_STATUS = 'A'
244
			AND (A.TYPE_ID = @p_ASSET_TYPE OR @p_ASSET_TYPE = 'ALL') --Phong
245
			--AND 1>2 --- LUCTV 04082023_SECRETKEY : TẠM THỜI TẮT TÍNH NĂNG KHẤU HAO TỚI NGÀY 25-08
246
/*			AND A.TYPE_ID = @p_ASSET_TYPE--THIEUVQ	
247
			AND (A.BRANCH_ID = @l_BRANCH_ID_DO 
248
				OR (@p_ASSET_TYPE = 'TSCD' or @p_ASSET_TYPE = 'CCLD')
249
				OR (@l_BRANCH_TYPE_DO = 'CN' --NEU LA CN THI PHAN BO LUON CHO PGD THUOC CHI NHANH DO
250
					--AND A.BRANCH_ID IN (SELECT * FROM [dbo].[CM_BRANCH_GETCHILDID](@l_BRANCH_ID_DO)))) --THIEUVQ
251
					AND A.BRANCH_ID IN (SELECT BRANCHID FROM @LST_BRANCH))) --THIEUVQ CHINH SUA 28092016
252
*/
253

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

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

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

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

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

    
436
BEGIN CATCH	
437
		CLOSE pCur
438
		DEALLOCATE pCur
439

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

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

    
449
	RETURN '-1'	
450

    
451
END CATCH;
452

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

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

    
463

    
464

    
465