From b5f94e5f717c8d577dcda8bf24485ea86ba4be81 Mon Sep 17 00:00:00 2001 From: Rohit Waghchaure Date: Mon, 17 Jun 2019 13:32:36 +0530 Subject: [PATCH] fix: not able to save asset if depreciation method is manual --- erpnext/assets/doctype/asset/asset.py | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/erpnext/assets/doctype/asset/asset.py b/erpnext/assets/doctype/asset/asset.py index 72f5c627a7..45f7b30ae8 100644 --- a/erpnext/assets/doctype/asset/asset.py +++ b/erpnext/assets/doctype/asset/asset.py @@ -291,16 +291,19 @@ class Asset(AccountsController): def validate_expected_value_after_useful_life(self): for row in self.get('finance_books'): - accumulated_depreciation_after_full_schedule = max([d.accumulated_depreciation_amount - for d in self.get("schedules") if cint(d.finance_book_id) == row.idx]) + accumulated_depreciation_after_full_schedule = [d.accumulated_depreciation_amount + for d in self.get("schedules") if cint(d.finance_book_id) == row.idx] - asset_value_after_full_schedule = flt(flt(self.gross_purchase_amount) - - flt(accumulated_depreciation_after_full_schedule), - self.precision('gross_purchase_amount')) + if accumulated_depreciation_after_full_schedule: + accumulated_depreciation_after_full_schedule = max(accumulated_depreciation_after_full_schedule) - if row.expected_value_after_useful_life < asset_value_after_full_schedule: - frappe.throw(_("Depreciation Row {0}: Expected value after useful life must be greater than or equal to {1}") - .format(row.idx, asset_value_after_full_schedule)) + asset_value_after_full_schedule = flt(flt(self.gross_purchase_amount) - + flt(accumulated_depreciation_after_full_schedule), + self.precision('gross_purchase_amount')) + + if row.expected_value_after_useful_life < asset_value_after_full_schedule: + frappe.throw(_("Depreciation Row {0}: Expected value after useful life must be greater than or equal to {1}") + .format(row.idx, asset_value_after_full_schedule)) def validate_cancellation(self): if self.status not in ("Submitted", "Partially Depreciated", "Fully Depreciated"):