From eea0ffcb38e48d04d236deb29987241152446dad Mon Sep 17 00:00:00 2001 From: Saqib Date: Tue, 21 Jan 2020 15:25:51 +0530 Subject: [PATCH] fix: account not added to child company (#20361) --- erpnext/accounts/doctype/account/account.py | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/erpnext/accounts/doctype/account/account.py b/erpnext/accounts/doctype/account/account.py index cf1748f6a7f..1407d5f5fe3 100644 --- a/erpnext/accounts/doctype/account/account.py +++ b/erpnext/accounts/doctype/account/account.py @@ -95,29 +95,29 @@ class Account(NestedSet): # ignore validation while creating new compnay or while syncing to child companies if frappe.local.flags.ignore_root_company_validation or self.flags.ignore_root_company_validation: return - ancestors = get_root_company(self.company) if ancestors: if frappe.get_value("Company", self.company, "allow_account_creation_against_child_company"): return - if not frappe.db.get_value("Account", {'account_name': self.account_name, 'company': ancestors[0]}, 'name'): frappe.throw(_("Please add the account to root level Company - %s" % ancestors[0])) else: descendants = get_descendants_of('Company', self.company) if not descendants: return - parent_acc_name_map = {} parent_acc_name, parent_acc_number = frappe.db.get_value('Account', self.parent_account, \ ["account_name", "account_number"]) - for d in frappe.db.get_values('Account', - { "company": ["in", descendants], "account_name": parent_acc_name, - "account_number": parent_acc_number }, - ["company", "name"], as_dict=True): + filters = { + "company": ["in", descendants], + "account_name": parent_acc_name, + } + if parent_acc_number: + filters["account_number"] = parent_acc_number + + for d in frappe.db.get_values('Account', filters=filters, fieldname=["company", "name"], as_dict=True): parent_acc_name_map[d["company"]] = d["name"] if not parent_acc_name_map: return - self.create_account_for_child_company(parent_acc_name_map, descendants, parent_acc_name) def validate_group_or_ledger(self): @@ -175,7 +175,6 @@ class Account(NestedSet): filters["account_number"] = self.account_number child_account = frappe.db.get_value("Account", filters, 'name') - if not child_account: doc = frappe.copy_doc(self) doc.flags.ignore_root_company_validation = True