Project

General

Profile

2.0.ASS_AMORT_START.txt

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

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

    
4

    
5
*/
6

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

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

    
38
BEGIN TRANSACTION	
39

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

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

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

    
55
	--Put valodation here
56

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

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

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

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

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

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

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

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

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

    
231
	--oepn cursor
232
	declare pCur cursor for
233
		 SELECT A.ASSET_ID, A.AMORTIZED_AMT, A.AMORTIZED_MONTH,
234
				A.AMORT_AMT,  A.AMORT_MONTH, A.AMORT_END_DATE, A.AMORT_START_DATE,
235
				A.FIRST_AMORT_AMT, A.MONTHLY_AMORT_AMT, A.BRANCH_ID, A.DEPT_ID
236
		 FROM ASS_MASTER A
237
		 WHERE A.AMORT_STATUS IN ('CKH','DKH')
238
			AND convert(date, A.AMORT_START_DATE) <= convert(date, @sExecDT)
239
			AND A.AMORTIZED_AMT < A.AMORT_AMT
240
			AND A.RECORD_STATUS = '1'
241
			AND A.AUTH_STATUS = 'A'
242
			AND (A.TYPE_ID = @p_ASSET_TYPE OR @p_ASSET_TYPE = 'ALL') --Phong
243
			--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
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
				SET @SOKY = DATEDIFF(MONTH, @l_AMORT_START_DATE, @BeginDate)
341
				SET @l_CURR_AMORT_AMT = @l_FIRST_AMORT_AMT + @l_MONTHLY_AMORT_AMT*@SOKY
342
				SET @SOKY = @SOKY + 1
343
				IF @SOKY > = @l_AMORT_MONTH ---KHAU HAO LUI VOI SOKY LON HON HOAC BANG SO THANG THI KHAU HAO HET
344
				BEGIN
345
					SET @SOKY = @l_AMORT_MONTH
346
					SET @l_CURR_AMORT_AMT = @l_AMORT_AMT
347
				END
348
			END
349
			--------END
350
		END
351
		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
352
		BEGIN
353
			SET @l_CURR_AMORT_AMT = @l_AMORT_AMT - @l_AMORTIZED_AMT
354
			--SET @l_CURR_AMORT_STATUS = 'KHX'	
355
			print 'last amort'	+ @l_ASSET_ID
356
		END
357
		---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
358
		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)
359
			SET @l_CURR_AMORT_AMT = @l_AMORT_AMT - @l_AMORTIZED_AMT
360
		ELSE --tai san dang khau hao binh thuong
361
		BEGIN
362
			SET @l_CURR_AMORT_AMT = @l_MONTHLY_AMORT_AMT
363
			--SET @l_CURR_AMORT_STATUS = 'DKH'			
364
		END
365
		--THIEUVQ THEM DK KHONG KHAU HAO AM 13112017
366
			IF (ISNULL(@l_AMORTIZED_AMT,0) + @l_CURR_AMORT_AMT) > @l_AMORT_AMT
367
				SET @l_CURR_AMORT_AMT = @l_AMORT_AMT - ISNULL(@l_AMORTIZED_AMT,0)
368
	
369
		--Insert to bang ASS_AMORT_DT
370
		EXEC SYS_CodeMasters_Gen 'ASS_AMORT_DT', @l_AMORTDT_ID out
371
	
372
		INSERT INTO ASS_AMORT_DT
373
		(
374
			AMORTDT_ID,
375
			AMORT_ID,
376
			AMORT_DT,
377
			CRDR,
378
			BRANCH_ID,
379
			DEP_ID,
380
			ASSET_ID,
381
			AMORT_AMT,
382
			GROUP_ID,
383
			EXECUTED,
384
			TRN_TYPE,
385
			TRN_DESC
386
		)
387
		VALUES
388
		(
389
			@l_AMORTDT_ID,
390
			@l_AMORT_ID,
391
			@sExecDT,
392
			'C',
393
			@l_BRANCH_ID,
394
			@l_DEP_ID,
395
			@l_ASSET_ID,
396
			@l_CURR_AMORT_AMT,
397
			NULL, --Khong chay khau hao theo group
398
			'0',
399
			'AMORT',
400
			@l_DESC
401
		)
402
	
403
		SET @l_TOTAL_AMT = @l_TOTAL_AMT + @l_CURR_AMORT_AMT
404

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

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

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

    
434
BEGIN CATCH	
435
		CLOSE pCur
436
		DEALLOCATE pCur
437

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

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

    
447
	RETURN '-1'	
448

    
449
END CATCH;
450

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

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

    
461

    
462

    
463