diff --git a/erpnext/accounts/doctype/bank_account/bank_account.js b/erpnext/accounts/doctype/bank_account/bank_account.js index 202f750fb50..5173e0539f4 100644 --- a/erpnext/accounts/doctype/bank_account/bank_account.js +++ b/erpnext/accounts/doctype/bank_account/bank_account.js @@ -42,8 +42,4 @@ frappe.ui.form.on("Bank Account", { }); } }, - - is_company_account: function (frm) { - frm.set_df_property("account", "reqd", frm.doc.is_company_account); - }, }); diff --git a/erpnext/accounts/doctype/bank_account/bank_account.json b/erpnext/accounts/doctype/bank_account/bank_account.json index 4946dc168ba..ce239365f30 100644 --- a/erpnext/accounts/doctype/bank_account/bank_account.json +++ b/erpnext/accounts/doctype/bank_account/bank_account.json @@ -52,6 +52,7 @@ "fieldtype": "Link", "in_list_view": 1, "label": "Company Account", + "mandatory_depends_on": "is_company_account", "options": "Account" }, { @@ -98,6 +99,7 @@ "in_list_view": 1, "in_standard_filter": 1, "label": "Company", + "mandatory_depends_on": "is_company_account", "options": "Company" }, { @@ -252,7 +254,7 @@ "link_fieldname": "default_bank_account" } ], - "modified": "2025-08-29 12:32:01.081687", + "modified": "2026-01-20 00:46:16.633364", "modified_by": "Administrator", "module": "Accounts", "name": "Bank Account", diff --git a/erpnext/accounts/doctype/bank_account/bank_account.py b/erpnext/accounts/doctype/bank_account/bank_account.py index 5a874701a39..1aa11df0c9a 100644 --- a/erpnext/accounts/doctype/bank_account/bank_account.py +++ b/erpnext/accounts/doctype/bank_account/bank_account.py @@ -52,31 +52,35 @@ class BankAccount(Document): delete_contact_and_address("Bank Account", self.name) def validate(self): - self.validate_company() - self.validate_account() + self.validate_is_company_account() self.update_default_bank_account() - def validate_account(self): - if self.account: - if accounts := frappe.db.get_all( - "Bank Account", filters={"account": self.account, "name": ["!=", self.name]}, as_list=1 - ): - frappe.throw( - _("'{0}' account is already used by {1}. Use another account.").format( - frappe.bold(self.account), - frappe.bold(comma_and([get_link_to_form(self.doctype, x[0]) for x in accounts])), - ) - ) + def validate_is_company_account(self): + if self.is_company_account: + if not self.company: + frappe.throw(_("Company is mandatory for company account")) - def validate_company(self): - if self.is_company_account and not self.company: - frappe.throw(_("Company is manadatory for company account")) + if not self.account: + frappe.throw(_("Company Account is mandatory")) + + self.validate_account() @deprecated def validate_iban(self): """Kept for backward compatibility, will be removed in v16.""" validate_iban(self.iban, throw=True) + def validate_account(self): + if accounts := frappe.db.get_all( + "Bank Account", filters={"account": self.account, "name": ["!=", self.name]}, as_list=1 + ): + frappe.throw( + _("'{0}' account is already used by {1}. Use another account.").format( + frappe.bold(self.account), + frappe.bold(comma_and([get_link_to_form(self.doctype, x[0]) for x in accounts])), + ) + ) + def update_default_bank_account(self): if self.is_default and not self.disabled: frappe.db.set_value(