chore: validate is_group of child parent account before auto creating an account

This commit is contained in:
Saqib Ansari 2020-10-08 14:57:27 +05:30
parent 2fa2a40b3f
commit 3f28fb19aa
2 changed files with 20 additions and 2 deletions

View File

@ -162,9 +162,16 @@ class Account(NestedSet):
def create_account_for_child_company(self, parent_acc_name_map, descendants, parent_acc_name):
for company in descendants:
company_bold = frappe.bold(company)
parent_acc_name_bold = frappe.bold(parent_acc_name)
if not parent_acc_name_map.get(company):
frappe.throw(_("While creating account for child Company {0}, parent account {1} not found. Please create the parent account in corresponding COA")
.format(company, parent_acc_name))
frappe.throw(_("While creating account for Child Company {0}, parent account {1} not found. Please create the parent account in corresponding COA")
.format(company_bold, parent_acc_name_bold), title=_("Account Not Found"))
if (frappe.db.get_value("Account", self.parent_account, "is_group")
and not frappe.db.get_value("Account", parent_acc_name_map[company], "is_group")):
frappe.throw(_("While creating account for Child Company {0}, parent account {1} is found \
as a ledger account.<br><br>Please convert the parent account in corresponding child company COA to a group account.")
.format(company_bold, parent_acc_name_bold), title=_("Invalid Parent Account"))
filters = {
"account_name": self.account_name,

View File

@ -111,6 +111,17 @@ class TestAccount(unittest.TestCase):
self.assertEqual(acc_tc_4, "Test Sync Account - _TC4")
self.assertEqual(acc_tc_5, "Test Sync Account - _TC5")
def test_add_account_to_a_group(self):
frappe.db.set_value("Account", "Office Rent - _TC3", "is_group", 1)
acc = frappe.new_doc("Account")
acc.account_name = "Test Group Account"
acc.parent_account = "Office Rent - _TC3"
acc.company = "_Test Company 3"
self.assertRaises(frappe.ValidationError, acc.insert)
frappe.db.set_value("Account", "Office Rent - _TC3", "is_group", 0)
def _make_test_records(verbose):
from frappe.test_runner import make_test_objects