From cd8d667861edff8fb4be4e72ea23b1b437e4e9ec Mon Sep 17 00:00:00 2001 From: Deepesh Garg <42651287+deepeshgarg007@users.noreply.github.com> Date: Tue, 28 Jan 2020 12:54:45 +0530 Subject: [PATCH] fix: Parent company defaulting on creation of new company (#20422) * fix: Parent company defaulting on creation of new company * fix: Test Cases * fix: Test Cases * fix: Test Cases for staffing plan --- erpnext/hr/doctype/staffing_plan/test_staffing_plan.py | 9 +++++---- erpnext/setup/doctype/company/company.js | 9 +++++++++ erpnext/setup/doctype/company/company.py | 8 ++++++++ 3 files changed, 22 insertions(+), 4 deletions(-) diff --git a/erpnext/hr/doctype/staffing_plan/test_staffing_plan.py b/erpnext/hr/doctype/staffing_plan/test_staffing_plan.py index 9ba6d5e63f..628255b11f 100644 --- a/erpnext/hr/doctype/staffing_plan/test_staffing_plan.py +++ b/erpnext/hr/doctype/staffing_plan/test_staffing_plan.py @@ -14,7 +14,7 @@ test_dependencies = ["Designation"] class TestStaffingPlan(unittest.TestCase): def test_staffing_plan(self): _set_up() - frappe.db.set_value("Company", "_Test Company", "is_group", 1) + frappe.db.set_value("Company", "_Test Company 3", "is_group", 1) if frappe.db.exists("Staffing Plan", "Test"): return staffing_plan = frappe.new_doc("Staffing Plan") @@ -36,7 +36,7 @@ class TestStaffingPlan(unittest.TestCase): if frappe.db.exists("Staffing Plan", "Test 1"): return staffing_plan = frappe.new_doc("Staffing Plan") - staffing_plan.company = "_Test Company" + staffing_plan.company = "_Test Company 3" staffing_plan.name = "Test 1" staffing_plan.from_date = nowdate() staffing_plan.to_date = add_days(nowdate(), 10) @@ -52,7 +52,7 @@ class TestStaffingPlan(unittest.TestCase): if frappe.db.exists("Staffing Plan", "Test"): return staffing_plan = frappe.new_doc("Staffing Plan") - staffing_plan.company = "_Test Company" + staffing_plan.company = "_Test Company 3" staffing_plan.name = "Test" staffing_plan.from_date = nowdate() staffing_plan.to_date = add_days(nowdate(), 10) @@ -87,10 +87,11 @@ def _set_up(): def make_company(): if frappe.db.exists("Company", "_Test Company 10"): return + company = frappe.new_doc("Company") company.company_name = "_Test Company 10" company.abbr = "_TC10" - company.parent_company = "_Test Company" + company.parent_company = "_Test Company 3" company.default_currency = "INR" company.country = "Pakistan" company.insert() \ No newline at end of file diff --git a/erpnext/setup/doctype/company/company.js b/erpnext/setup/doctype/company/company.js index be736d2d9d..0fbe49eab7 100644 --- a/erpnext/setup/doctype/company/company.js +++ b/erpnext/setup/doctype/company/company.js @@ -4,6 +4,15 @@ frappe.provide("erpnext.company"); frappe.ui.form.on("Company", { + onload: function(frm) { + if (frm.doc.__islocal && frm.doc.parent_company) { + frappe.db.get_value('Company', frm.doc.parent_company, 'is_group', (r) => { + if (!r.is_group) { + frm.set_value('parent_company', ''); + } + }); + } + }, setup: function(frm) { erpnext.company.setup_queries(frm); frm.set_query("hra_component", function(){ diff --git a/erpnext/setup/doctype/company/company.py b/erpnext/setup/doctype/company/company.py index ff3515485c..6aa2c04671 100644 --- a/erpnext/setup/doctype/company/company.py +++ b/erpnext/setup/doctype/company/company.py @@ -47,6 +47,7 @@ class Company(NestedSet): self.validate_perpetual_inventory() self.check_country_change() self.set_chart_of_accounts() + self.validate_parent_company() def validate_abbr(self): if not self.abbr: @@ -189,6 +190,13 @@ class Company(NestedSet): self.create_chart_of_accounts_based_on = "Existing Company" self.existing_company = self.parent_company + def validate_parent_company(self): + if self.parent_company: + is_group = frappe.get_value('Company', self.parent_company, 'is_group') + + if not is_group: + frappe.throw(_("Parent Company must be a group company")) + def set_default_accounts(self): default_accounts = { "default_cash_account": "Cash",