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
This commit is contained in:
Deepesh Garg 2020-01-28 12:54:45 +05:30 committed by Nabin Hait
parent 3fb48ebf61
commit cd8d667861
3 changed files with 22 additions and 4 deletions

View File

@ -14,7 +14,7 @@ test_dependencies = ["Designation"]
class TestStaffingPlan(unittest.TestCase): class TestStaffingPlan(unittest.TestCase):
def test_staffing_plan(self): def test_staffing_plan(self):
_set_up() _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"): if frappe.db.exists("Staffing Plan", "Test"):
return return
staffing_plan = frappe.new_doc("Staffing Plan") staffing_plan = frappe.new_doc("Staffing Plan")
@ -36,7 +36,7 @@ class TestStaffingPlan(unittest.TestCase):
if frappe.db.exists("Staffing Plan", "Test 1"): if frappe.db.exists("Staffing Plan", "Test 1"):
return return
staffing_plan = frappe.new_doc("Staffing Plan") 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.name = "Test 1"
staffing_plan.from_date = nowdate() staffing_plan.from_date = nowdate()
staffing_plan.to_date = add_days(nowdate(), 10) staffing_plan.to_date = add_days(nowdate(), 10)
@ -52,7 +52,7 @@ class TestStaffingPlan(unittest.TestCase):
if frappe.db.exists("Staffing Plan", "Test"): if frappe.db.exists("Staffing Plan", "Test"):
return return
staffing_plan = frappe.new_doc("Staffing Plan") staffing_plan = frappe.new_doc("Staffing Plan")
staffing_plan.company = "_Test Company" staffing_plan.company = "_Test Company 3"
staffing_plan.name = "Test" staffing_plan.name = "Test"
staffing_plan.from_date = nowdate() staffing_plan.from_date = nowdate()
staffing_plan.to_date = add_days(nowdate(), 10) staffing_plan.to_date = add_days(nowdate(), 10)
@ -87,10 +87,11 @@ def _set_up():
def make_company(): def make_company():
if frappe.db.exists("Company", "_Test Company 10"): if frappe.db.exists("Company", "_Test Company 10"):
return return
company = frappe.new_doc("Company") company = frappe.new_doc("Company")
company.company_name = "_Test Company 10" company.company_name = "_Test Company 10"
company.abbr = "_TC10" company.abbr = "_TC10"
company.parent_company = "_Test Company" company.parent_company = "_Test Company 3"
company.default_currency = "INR" company.default_currency = "INR"
company.country = "Pakistan" company.country = "Pakistan"
company.insert() company.insert()

View File

@ -4,6 +4,15 @@
frappe.provide("erpnext.company"); frappe.provide("erpnext.company");
frappe.ui.form.on("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) { setup: function(frm) {
erpnext.company.setup_queries(frm); erpnext.company.setup_queries(frm);
frm.set_query("hra_component", function(){ frm.set_query("hra_component", function(){

View File

@ -47,6 +47,7 @@ class Company(NestedSet):
self.validate_perpetual_inventory() self.validate_perpetual_inventory()
self.check_country_change() self.check_country_change()
self.set_chart_of_accounts() self.set_chart_of_accounts()
self.validate_parent_company()
def validate_abbr(self): def validate_abbr(self):
if not self.abbr: if not self.abbr:
@ -189,6 +190,13 @@ class Company(NestedSet):
self.create_chart_of_accounts_based_on = "Existing Company" self.create_chart_of_accounts_based_on = "Existing Company"
self.existing_company = self.parent_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): def set_default_accounts(self):
default_accounts = { default_accounts = {
"default_cash_account": "Cash", "default_cash_account": "Cash",