ALTER PROCEDURE dbo.ASS_AMORT_Start @p_AMORT_ID VARCHAR(15) = NULL AS --declare @l_CURR_AMORT_AMT decimal(18,0) DECLARE @l_CURR_AMORT_STATUS NVARCHAR(100) DECLARE @l_EXP_GL VARCHAR(50) DECLARE @l_AMORT_GL VARCHAR(50) DECLARE @l_GROUP_ID VARCHAR(15) DECLARE @l_ASSET_ID VARCHAR(15) DECLARE @l_AMORT_AMT DECIMAL(18, 0) DECLARE @l_AMORTIZED_AMT DECIMAL(18, 0) DECLARE @l_BRANCH_ID VARCHAR(15) DECLARE @l_AMORTIZED_MONTH DECIMAL(18, 2) DECLARE @l_ET_ID VARCHAR(15) DECLARE @l_AMORTDT_ID VARCHAR(15) DECLARE @l_AMORT_END_DATE DATETIME DECLARE @sToday VARCHAR(10) = CONVERT(VARCHAR(10), GETDATE(), 103) DECLARE @sExecDT DATETIME DECLARE @l_TRN_REF_NO VARCHAR(20) = NULL DECLARE @l_DO_BRANCH_ID VARCHAR(15) = NULL DECLARE @l_TYPE_ID VARCHAR(15) = NULL DECLARE @l_DR_BRN_ID VARCHAR(15) ,@l_CR_BRN_ID VARCHAR(15) DECLARE @l_HO_BRN_ID VARCHAR(15) DECLARE @l_DEP_ID VARCHAR(15) DECLARE @l_MAKER_ID VARCHAR(15) ,@l_CHECKER_ID VARCHAR(15) ,@l_BRANCH_ID_DO VARCHAR(20) ,@l_ASSET_TYPE_DO VARCHAR(15) ,@l_BRANCH_TYPE_DO VARCHAR(15) DECLARE @l_ASSET_TYPE VARCHAR(15) ,@l_DESC_CORE NVARCHAR(200) ,@l_AMORT_TERM VARCHAR(20) --thieuvq them loai tai san de dien giai hach toan DECLARE @l_AM_AMORT_AMT DECIMAL(18, 0) ,@l_AMORT_START_DATE DATETIME ,@l_AMORT_MONTH DECIMAL(18, 0) --Put valodation here --get data SELECT @sExecDT = EXECUTE_DT ,@l_MAKER_ID = MAKER_ID ,@l_CHECKER_ID = CHECKER_ID ,@l_AMORT_TERM = AMORT_TERM , -- @l_BRANCH_ID_DO = BRANCH_ID ,@l_ASSET_TYPE_DO = ASSET_TYPE--thieuvq them 01/08/2014 -- FROM ASS_AMORT WHERE AMORT_ID = @p_AMORT_ID --SET @l_AMORT_TERM = REPLACE(@l_AMORT_TERM,'/',' ') --Lay branch_id cua user duyet SET @l_DO_BRANCH_ID = 'DV0001' --BRN_ID HOI SO SELECT @l_HO_BRN_ID = BRANCH_ID FROM CM_BRANCH A WHERE A.BRANCH_TYPE = 'HS' --lay branch type cua don vi thuc hien SELECT @l_BRANCH_TYPE_DO = BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = @l_BRANCH_ID_DO --oepn cursor DECLARE pCur CURSOR FOR SELECT A.AMORTDT_ID ,A.ASSET_ID ,A.BRANCH_ID ,A.DEP_ID ,A.AMORT_AMT ,ISNULL(AM.REF_GROUP_ID, AM.GROUP_ID) ,AM.AMORTIZED_MONTH ,AM.AMORT_END_DATE ,AM.[TYPE_ID] ,AM.AMORT_AMT AM_AMORT_AMT ,AM.AMORT_START_DATE ,AM.AMORT_MONTH FROM ASS_AMORT_DT A LEFT JOIN ASS_MASTER AM ON AM.ASSET_ID = A.ASSET_ID WHERE AMORT_ID = @p_AMORT_ID AND A.EXECUTED = '1' OPEN pCur BEGIN TRANSACTION DECLARE @goupxe TABLE ( GROUP_ID VARCHAR(25) ) INSERT INTO @goupxe SELECT ag.GROUP_ID FROM ASS_GROUP ag WHERE ag.PARENT_ID = 'ASG000000000151' --chay khau hao FETCH NEXT FROM pCur INTO @l_AMORTDT_ID, @l_ASSET_ID, @l_BRANCH_ID, @l_DEP_ID, @l_AMORT_AMT, @l_GROUP_ID, @l_AMORTIZED_MONTH, @l_AMORT_END_DATE, @l_ASSET_TYPE, @l_AM_AMORT_AMT, @l_AMORT_START_DATE, @l_AMORT_MONTH WHILE @@fetch_status = 0 BEGIN --lay thong tin tai khoan DECLARE @l_AMT_OVER DECIMAL(18, 0) ,@l_AMT_AMORT DECIMAL(18, 0) SET @l_AMT_OVER = 0 SELECT @l_EXP_GL = G.EXP_ACCTNO ,@l_AMORT_GL = G.AMORT_ACCTNO ,@l_TYPE_ID = G.[TYPE_ID] FROM ASS_GROUP G WHERE G.GROUP_ID = @l_GROUP_ID IF @@error <> 0 GOTO ABORT DECLARE @l_MONTHLY_AMT DECIMAL(18, 0) IF (@l_AM_AMORT_AMT > 1600000000 AND EXISTS (SELECT GROUP_ID FROM @goupxe WHERE GROUP_ID = @l_GROUP_ID) ) BEGIN PRINT 1 SET @l_MONTHLY_AMT = ROUND(1600000000 / @l_AMORT_MONTH, 0) DECLARE @AMORT_ON_DAY DECIMAL(18, 0) SET @AMORT_ON_DAY = ROUND(@l_MONTHLY_AMT / dbo.[FN_GetDaysInMonth](@l_AMORT_START_DATE), 0) SET @l_AMT_AMORT = ROUND(@AMORT_ON_DAY * (DATEDIFF(DAY, @l_AMORT_START_DATE, dbo.FN_GetLastDayOfMonth(@l_AMORT_START_DATE)) + 1), 0) --END IF (DAY(@l_AMORT_START_DATE) = 1) SET @l_AMT_AMORT = @l_MONTHLY_AMT END IF (@l_AMORTIZED_MONTH = 0) --Khau hao thang dau tien BEGIN SET @l_CURR_AMORT_STATUS = 'DKH' IF (@l_AM_AMORT_AMT > 1600000000 AND EXISTS (SELECT GROUP_ID FROM @goupxe WHERE GROUP_ID = @l_GROUP_ID) ) BEGIN SET @l_AMT_OVER = @l_AMORT_AMT - @l_AMT_AMORT END END ELSE IF dbo.FN_GetLastDayOfMonth(@sExecDT) = dbo.FN_GetLastDayOfMonth(@l_AMORT_END_DATE) --Ky khau hao cuoi cung BEGIN --SET @l_CURR_AMORT_AMT = @l_AMORT_AMT - @l_AMORTIZED_AMT SET @l_CURR_AMORT_STATUS = 'KHX' IF (@l_AM_AMORT_AMT > 1600000000 AND EXISTS (SELECT GROUP_ID FROM @goupxe WHERE GROUP_ID = @l_GROUP_ID) ) BEGIN SET @l_AMT_OVER = @l_AMORT_AMT - (1600000000 - (@l_AMT_AMORT + (@l_MONTHLY_AMT * (@l_AMORT_MONTH - 2)))) END END ELSE --tai san dang khau hao binh thuong BEGIN SET @l_CURR_AMORT_STATUS = 'DKH' IF (@l_AM_AMORT_AMT > 1600000000 AND EXISTS (SELECT GROUP_ID FROM @goupxe WHERE GROUP_ID = @l_GROUP_ID) ) BEGIN SET @l_AMT_OVER = @l_AMORT_AMT - @l_MONTHLY_AMT END END IF(@l_AMORT_AMT - @l_AMORTIZED_AMT>0) SET @l_CURR_AMORT_STATUS = 'DKH' --Insert vao bang dbo.ASS_ENTRIES_POST EXEC ASS_TRN_REF_NO_Gen @l_TYPE_ID ,@sToday ,@l_TRN_REF_NO OUT IF @l_BRANCH_ID = @l_HO_BRN_ID BEGIN SET @l_DR_BRN_ID = @l_DEP_ID END ELSE BEGIN SET @l_DR_BRN_ID = @l_BRANCH_ID END --thieuvq dien giai hach toan khau hao IF @l_ASSET_TYPE = 'TSCD' BEGIN SET @l_DESC_CORE = 'KHAU HAO TSCD KY ' + @l_AMORT_TERM SET @l_CR_BRN_ID = @l_HO_BRN_ID END ELSE BEGIN SET @l_DESC_CORE = 'PHAN BO CHI PHI CCLD KY ' + @l_AMORT_TERM SET @l_CR_BRN_ID = @l_BRANCH_ID END DECLARE @l_BRANCH_CODE VARCHAR(25) ,@l_ASSET_CODE VARCHAR(25) ,@l_ETP_ID VARCHAR(25) ,@DEP_CODE VARCHAR(25) SET @l_BRANCH_CODE = (SELECT cb.BRANCH_CODE FROM CM_BRANCH cb WHERE cb.BRANCH_ID = @l_BRANCH_ID) SET @l_ASSET_CODE = (SELECT am.ASSET_CODE FROM ASS_MASTER am WHERE am.ASSET_ID = @l_ASSET_ID) SET @l_AMORTIZED_AMT = (SELECT am.AMORTIZED_AMT FROM ASS_MASTER am WHERE am.ASSET_ID = @l_ASSET_ID) SET @DEP_CODE = (SELECT cd.DEP_CODE FROM CM_DEPARTMENT cd WHERE cd.DEP_ID = @l_DEP_ID) DECLARE @LST_COST_SHARE TABLE ( ASSET_ID VARCHAR(20), BRANCH_ID VARCHAR(20), DEP_ID VARCHAR(20), COST_AMOUNT DECIMAL(18,0) ) INSERT INTO @LST_COST_SHARE (ASSET_ID, BRANCH_ID, DEP_ID, COST_AMOUNT) SELECT aca.ASSET_ID,acad.BRANCH_ID,acad.DEPT_ID,acad.COST_AMOUNT FROM ASS_COST_ALLOCATION aca LEFT JOIN ASS_COST_ALLOC_DT acad ON aca.COS_ID = acad.COS_ID WHERE aca.RECORD_STATUS=1 AND aca.AUTH_STATUS='A' AND aca.ASSET_ID=@l_ASSET_ID IF (@l_AMORT_AMT > 0) BEGIN EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST' ,@l_ET_ID OUT IF @l_ET_ID = '' OR @l_ET_ID IS NULL GOTO ABORT INSERT INTO ASS_ENTRIES_POST (ET_ID, REF_NO, ASSET_ID, TRN_TYPE, REF_ID, DO_BRN, CR_ACCT, CR_BRN, DR_ACCT, DR_BRN, AMT, EXP_TO_CORE, TRN_DATE, TRN_DESC, MAKER_ID, CHECKER_ID) VALUES (@l_ET_ID, @l_TRN_REF_NO, @l_ASSET_ID, 'AMORT', @l_AMORTDT_ID, @l_DO_BRANCH_ID, dbo.FN_REPLACE_ACCTNO(@l_AMORT_GL, @l_CR_BRN_ID), @l_CR_BRN_ID, @l_EXP_GL, @l_DR_BRN_ID, @l_AMORT_AMT - @l_AMT_OVER, 'Y', @sExecDT, @l_DESC_CORE, @l_MAKER_ID, @l_CHECKER_ID) EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC' ,@l_ETP_ID OUT INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS) VALUES (@l_ETP_ID, @l_ET_ID, @l_AMORTDT_ID, @l_BRANCH_CODE, @l_AMORT_GL, 'VND', 'C', @l_AMORT_AMT - @l_AMT_OVER, 1, @l_AMORT_AMT - @l_AMT_OVER, @l_ASSET_CODE, @sExecDT, @l_MAKER_ID, @l_CHECKER_ID, @DEP_CODE, @l_DESC_CORE); EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC' ,@l_ETP_ID OUT INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS) VALUES (@l_ETP_ID, @l_ET_ID, @l_AMORTDT_ID, @l_BRANCH_CODE, @l_EXP_GL, 'VND', 'D', @l_AMORT_AMT - @l_AMT_OVER, 1, @l_AMORT_AMT - @l_AMT_OVER, @l_ASSET_CODE, @sExecDT, @l_MAKER_ID, @l_CHECKER_ID, @DEP_CODE, @l_DESC_CORE); IF(EXISTS(SELECT ASSET_ID FROM @LST_COST_SHARE)) BEGIN DECLARE lstDATACOST CURSOR FOR SELECT BRANCH_ID ,DEP_ID ,COST_AMOUNT FROM @LST_COST_SHARE OPEN lstDATACOST DECLARE @COST_BRANCH_ID VARCHAR(20) , @COST_DEP_ID VARCHAR(20), @COST_AMOUNT DECIMAL(18,0),@COST_DEP_CODE VARCHAR(20),@COST_BRANCH_CODE VARCHAR(20),@TRANFER_CP VARCHAR(25) SET @TRANFER_CP=(SELECT epa.ACC_NO FROM ENTRIES_POST_ACCNO epa WHERE epa.ACC_TYPE='ASSET_CCLD_N') FETCH NEXT FROM lstDATACOST INTO @COST_BRANCH_ID, @COST_DEP_ID , @COST_AMOUNT WHILE @@fetch_status = 0 BEGIN IF(@l_BRANCH_ID <> @COST_BRANCH_ID) BEGIN SET @COST_BRANCH_CODE =(SELECT cb.BRANCH_CODE FROM CM_BRANCH cb WHERE cb.BRANCH_ID = @COST_BRANCH_ID) EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC' ,@l_ETP_ID OUT INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS) VALUES (@l_ETP_ID, @l_ET_ID, @l_AMORTDT_ID, @l_BRANCH_CODE, @l_EXP_GL, 'VND', 'C', @COST_AMOUNT, 1, @COST_AMOUNT, @l_ASSET_CODE, @sExecDT, @l_MAKER_ID, @l_CHECKER_ID, @DEP_CODE, @l_DESC_CORE); EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC' ,@l_ETP_ID OUT INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS) VALUES (@l_ETP_ID, @l_ET_ID, @l_AMORTDT_ID, @l_BRANCH_CODE, @TRANFER_CP, 'VND', 'D', @COST_AMOUNT, 1, @COST_AMOUNT, @l_ASSET_CODE, @sExecDT, @l_MAKER_ID, @l_CHECKER_ID, @DEP_CODE, @l_DESC_CORE); EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC' ,@l_ETP_ID OUT INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS) VALUES (@l_ETP_ID, @l_ET_ID, @l_AMORTDT_ID, @COST_BRANCH_CODE, @TRANFER_CP, 'VND', 'C', @COST_AMOUNT, 1, @COST_AMOUNT, @l_ASSET_CODE, @sExecDT, @l_MAKER_ID, @l_CHECKER_ID, '', @l_DESC_CORE); EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC' ,@l_ETP_ID OUT INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS) VALUES (@l_ETP_ID, @l_ET_ID, @l_AMORTDT_ID, @COST_BRANCH_CODE, @l_EXP_GL, 'VND', 'D', @COST_AMOUNT, 1, @COST_AMOUNT, @l_ASSET_CODE, @sExecDT, @l_MAKER_ID, @l_CHECKER_ID, '', @l_DESC_CORE); END ELSE BEGIN SET @COST_DEP_CODE =(SELECT cd.DEP_CODE FROM CM_DEPARTMENT cd WHERE cd.DEP_ID=@COST_DEP_ID) EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC' ,@l_ETP_ID OUT INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS) VALUES (@l_ETP_ID, @l_ET_ID, @l_AMORTDT_ID, @l_BRANCH_CODE, @l_EXP_GL, 'VND', 'C', @COST_AMOUNT, 1, @COST_AMOUNT, @l_ASSET_CODE, @sExecDT, @l_MAKER_ID, @l_CHECKER_ID, @DEP_CODE, @l_DESC_CORE); EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC' ,@l_ETP_ID OUT INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS) VALUES (@l_ETP_ID, @l_ET_ID, @l_AMORTDT_ID, @l_BRANCH_CODE, @l_EXP_GL, 'VND', 'D', @COST_AMOUNT, 1, @COST_AMOUNT, @l_ASSET_CODE, @sExecDT, @l_MAKER_ID, @l_CHECKER_ID, @COST_DEP_CODE, @l_DESC_CORE); END FETCH NEXT FROM lstDATACOST INTO @COST_BRANCH_ID, @COST_DEP_ID , @COST_AMOUNT END CLOSE lstDATACOST DEALLOCATE lstDATACOST END END IF (@l_AMT_OVER > 0) BEGIN EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST' ,@l_ET_ID OUT IF @l_ET_ID = '' OR @l_ET_ID IS NULL GOTO ABORT INSERT INTO ASS_ENTRIES_POST (ET_ID, REF_NO, ASSET_ID, TRN_TYPE, REF_ID, DO_BRN, CR_ACCT, CR_BRN, DR_ACCT, DR_BRN, AMT, EXP_TO_CORE, TRN_DATE, TRN_DESC, MAKER_ID, CHECKER_ID) VALUES (@l_ET_ID, @l_TRN_REF_NO, @l_ASSET_ID, 'AMORT', @l_AMORTDT_ID, @l_DO_BRANCH_ID, dbo.FN_REPLACE_ACCTNO(@l_AMORT_GL, @l_CR_BRN_ID), @l_CR_BRN_ID, @l_EXP_GL, @l_DR_BRN_ID, @l_AMT_OVER, 'Y', @sExecDT, @l_DESC_CORE, @l_MAKER_ID, @l_CHECKER_ID) EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC' ,@l_ETP_ID OUT INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS) VALUES (@l_ETP_ID, @l_ET_ID, @l_AMORTDT_ID, @l_BRANCH_CODE, @l_AMORT_GL, 'VND', 'C', @l_AMT_OVER, 1, @l_AMT_OVER, @l_ASSET_CODE, @sExecDT, @l_MAKER_ID, @l_CHECKER_ID, @DEP_CODE, @l_DESC_CORE); EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC' ,@l_ETP_ID OUT INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS) VALUES (@l_ETP_ID, @l_ET_ID, @l_AMORTDT_ID, @l_BRANCH_CODE, '871001005', 'VND', 'D', @l_AMT_OVER, 1, @l_AMT_OVER, @l_ASSET_CODE, @sExecDT, @l_MAKER_ID, @l_CHECKER_ID, @DEP_CODE, @l_DESC_CORE); END IF @@error <> 0 GOTO ABORT --UPDATE BANG ASS_MASTER -- UPDATE ASS_MASTER -- SET AMORTIZED_AMT = ISNULL(AMORTIZED_AMT, 0) + @l_AMORT_AMT -- ,AMORTIZED_MONTH = ISNULL(AMORTIZED_MONTH, 0) + 1 -- ,AMORT_STATUS = @l_CURR_AMORT_STATUS -- WHERE ASSET_ID = @l_ASSET_ID IF @@error <> 0 GOTO ABORT -- --update da hach toan -- UPDATE ASS_AMORT_DT -- SET EXECUTED = '1' -- WHERE AMORTDT_ID = @l_AMORTDT_ID IF @@error <> 0 GOTO ABORT FETCH NEXT FROM pCur INTO @l_AMORTDT_ID, @l_ASSET_ID, @l_BRANCH_ID, @l_DEP_ID, @l_AMORT_AMT, @l_GROUP_ID, @l_AMORTIZED_MONTH, @l_AMORT_END_DATE, @l_ASSET_TYPE, @l_AM_AMORT_AMT, @l_AMORT_START_DATE, @l_AMORT_MONTH END -- --UPDATE STATUS CHO BANG ASS_AMORT -- UPDATE ASS_AMORT -- SET PROCESS_STATUS = 'S' -- WHERE AMORT_ID = @p_AMORT_ID IF @@error <> 0 GOTO ABORT -- -- /****CAP NHAT CCLD TINH TRANG: DPB(Đã phân bổ chi phí khi xuất sử dụng) VE DANG KHAU HAO***/ -- IF @l_ASSET_TYPE_DO = 'CCLD' -- BEGIN -- UPDATE ASS_MASTER -- SET AMORT_STATUS = 'DKH' -- WHERE AMORT_STATUS IN ('DPB') -- --AND convert(date, AMORT_START_DATE) <= convert(date, @sExecDT) -- AND CONVERT(DATE, AMORT_START_DATE) <= CONVERT(DATE, dbo.FN_GetLastDayOfMonth(@sExecDT)) -- AND AMORTIZED_AMT < AMORT_AMT -- AND RECORD_STATUS = '1' -- AND AUTH_STATUS = 'A' -- AND TYPE_ID = 'CCLD' -- AND (BRANCH_ID = @l_BRANCH_ID_DO -- OR (@l_BRANCH_TYPE_DO = 'CN' --NEU LA CN THI PHAN BO LUON CHO PGD THUOC CHI NHANH DO -- --AND BRANCH_ID IN (SELECT * FROM [dbo].[CM_BRANCH_GETCHILDID](@l_BRANCH_ID_DO)))) --THIEUVQ -- AND BRANCH_ID IN (SELECT -- BR.BRANCH_ID -- FROM ASS_AMORT_BRN BR -- WHERE BR.AMORT_ID = @p_AMORT_ID) -- )) --THIEUVQ 28092016 -- END CLOSE pCur DEALLOCATE pCur COMMIT TRANSACTION SELECT '0' AS Result ,'' ErrorDesc RETURN '0' ABORT: BEGIN CLOSE pCur DEALLOCATE pCur ROLLBACK TRANSACTION SELECT '-1' AS Result ,@@error ErrorDesc RETURN '-1' END