fix: Only raise an error if Depreciation Expense Account is neither an Income nor an Expense Account
diff --git a/erpnext/assets/doctype/asset_category/asset_category.py b/erpnext/assets/doctype/asset_category/asset_category.py
index e2f3ca3..bd573bf 100644
--- a/erpnext/assets/doctype/asset_category/asset_category.py
+++ b/erpnext/assets/doctype/asset_category/asset_category.py
@@ -42,10 +42,10 @@
def validate_account_types(self):
account_type_map = {
- 'fixed_asset_account': { 'account_type': 'Fixed Asset' },
- 'accumulated_depreciation_account': { 'account_type': 'Accumulated Depreciation' },
- 'depreciation_expense_account': { 'root_type': 'Expense' },
- 'capital_work_in_progress_account': { 'account_type': 'Capital Work in Progress' }
+ 'fixed_asset_account': {'account_type': ['Fixed Asset']},
+ 'accumulated_depreciation_account': {'account_type': ['Accumulated Depreciation']},
+ 'depreciation_expense_account': {'root_type': ['Expense', 'Income']},
+ 'capital_work_in_progress_account': {'account_type': ['Capital Work in Progress']}
}
for d in self.accounts:
for fieldname in account_type_map.keys():
@@ -53,11 +53,11 @@
selected_account = d.get(fieldname)
key_to_match = next(iter(account_type_map.get(fieldname))) # acount_type or root_type
selected_key_type = frappe.db.get_value('Account', selected_account, key_to_match)
- expected_key_type = account_type_map[fieldname][key_to_match]
+ expected_key_types = account_type_map[fieldname][key_to_match]
- if selected_key_type != expected_key_type:
+ if selected_key_type not in expected_key_types:
frappe.throw(_("Row #{}: {} of {} should be {}. Please modify the account or select a different account.")
- .format(d.idx, frappe.unscrub(key_to_match), frappe.bold(selected_account), frappe.bold(expected_key_type)),
+ .format(d.idx, frappe.unscrub(key_to_match), frappe.bold(selected_account), frappe.bold(expected_key_types)),
title=_("Invalid Account"))
def valide_cwip_account(self):