chore: asset finance books validation (#36979)
diff --git a/erpnext/assets/doctype/asset/asset.py b/erpnext/assets/doctype/asset/asset.py
index b5a4c2d..0dbed87 100644
--- a/erpnext/assets/doctype/asset/asset.py
+++ b/erpnext/assets/doctype/asset/asset.py
@@ -46,6 +46,7 @@
self.validate_item()
self.validate_cost_center()
self.set_missing_values()
+ self.validate_finance_books()
if not self.split_from:
self.prepare_depreciation_data()
update_draft_asset_depr_schedules(self)
@@ -200,6 +201,27 @@
finance_books = get_item_details(self.item_code, self.asset_category)
self.set("finance_books", finance_books)
+ def validate_finance_books(self):
+ if not self.calculate_depreciation or len(self.finance_books) == 1:
+ return
+
+ finance_books = set()
+
+ for d in self.finance_books:
+ if d.finance_book in finance_books:
+ frappe.throw(
+ _("Row #{}: Please use a different Finance Book.").format(d.idx),
+ title=_("Duplicate Finance Book"),
+ )
+ else:
+ finance_books.add(d.finance_book)
+
+ if not d.finance_book:
+ frappe.throw(
+ _("Row #{}: Finance Book should not be empty since you're using multiple.").format(d.idx),
+ title=_("Missing Finance Book"),
+ )
+
def validate_asset_values(self):
if not self.asset_category:
self.asset_category = frappe.get_cached_value("Item", self.item_code, "asset_category")