From 7174a2cd933e177fb2903fd96b861bae21212318 Mon Sep 17 00:00:00 2001 From: anandbaburajan Date: Sat, 21 Jan 2023 18:41:19 +0530 Subject: [PATCH] fix: incorrect row order and accumulated_depreciation when schedule with multiple FBs is scrapped --- erpnext/assets/doctype/asset/asset.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/erpnext/assets/doctype/asset/asset.py b/erpnext/assets/doctype/asset/asset.py index 59187d36865..7a0ff9ce8b8 100644 --- a/erpnext/assets/doctype/asset/asset.py +++ b/erpnext/assets/doctype/asset/asset.py @@ -364,6 +364,9 @@ class Asset(AccountsController): }, ) + if len(self.get("finance_books")) > 1 and any(start): + self.sort_depreciation_schedule() + # depreciation schedules need to be cleared before modification due to increase in asset life/asset sales # JE: Journal Entry, FB: Finance Book def clear_depreciation_schedule(self): @@ -399,6 +402,14 @@ class Asset(AccountsController): return start + def sort_depreciation_schedule(self): + self.schedules = sorted( + self.schedules, key=lambda s: (int(s.finance_book_id), getdate(s.schedule_date)) + ) + + for idx, s in enumerate(self.schedules, 1): + s.idx = idx + def get_from_date(self, finance_book): if not self.get("schedules"): return self.available_for_use_date