From 7506132861bcfe5397e4073642f3aa459e6da60b Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Wed, 17 May 2023 22:52:13 +0530 Subject: [PATCH] fix: depreciation schedule for existing assets [v14] (backport #35255) (#35347) * fix: depreciation schedule for existing assets [v14] (#35255) * fix: depreciation schedule for existing assets * chore: correct logic for existing assets and fix test (cherry picked from commit 0a080efce26e99198a326009caa5d353a8fae862) # Conflicts: # erpnext/assets/doctype/asset/asset.py * chore: fix conflict --------- Co-authored-by: Anand Baburajan --- erpnext/assets/doctype/asset/asset.py | 10 ++++++---- erpnext/assets/doctype/asset/test_asset.py | 2 +- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/erpnext/assets/doctype/asset/asset.py b/erpnext/assets/doctype/asset/asset.py index 38a66e470cff..d6de519d2320 100644 --- a/erpnext/assets/doctype/asset/asset.py +++ b/erpnext/assets/doctype/asset/asset.py @@ -432,7 +432,7 @@ def make_depreciation_schedule(self, date_of_disposal): ) skip_row = True - if depreciation_amount > 0: + if flt(depreciation_amount, self.precision("gross_purchase_amount")) > 0: self.append( "schedules", { @@ -1281,9 +1281,11 @@ def get_straight_line_or_manual_depr_amount(asset, row): ) # if the Depreciation Schedule is being prepared for the first time else: - return (flt(asset.gross_purchase_amount) - flt(row.expected_value_after_useful_life)) / flt( - row.total_number_of_depreciations - ) + return ( + flt(asset.gross_purchase_amount) + - flt(asset.opening_accumulated_depreciation) + - flt(row.expected_value_after_useful_life) + ) / flt(row.total_number_of_depreciations - asset.number_of_depreciations_booked) def get_wdv_or_dd_depr_amount( diff --git a/erpnext/assets/doctype/asset/test_asset.py b/erpnext/assets/doctype/asset/test_asset.py index 0cf4d5b603a5..551543859475 100644 --- a/erpnext/assets/doctype/asset/test_asset.py +++ b/erpnext/assets/doctype/asset/test_asset.py @@ -569,7 +569,7 @@ def test_schedule_for_straight_line_method_for_existing_asset(self): ) self.assertEqual(asset.status, "Draft") - expected_schedules = [["2032-12-31", 30000.0, 77095.89], ["2033-06-06", 12904.11, 90000.0]] + expected_schedules = [["2032-12-31", 42904.11, 90000.0]] schedules = [ [cstr(d.schedule_date), flt(d.depreciation_amount, 2), d.accumulated_depreciation_amount] for d in asset.get("schedules")