From f665189ab3e8b209dfefdc9578d5065df7323e72 Mon Sep 17 00:00:00 2001 From: Zlash65 Date: Fri, 20 Apr 2018 16:00:55 +0530 Subject: [PATCH] tree based changes --- .../doctype/supplier_group/supplier_group.js | 22 ++++++++++++++++++- .../doctype/supplier_group/supplier_group.py | 16 +++++++++++--- 2 files changed, 34 insertions(+), 4 deletions(-) diff --git a/erpnext/setup/doctype/supplier_group/supplier_group.js b/erpnext/setup/doctype/supplier_group/supplier_group.js index 10e5c04dcc..ea92726e2a 100644 --- a/erpnext/setup/doctype/supplier_group/supplier_group.js +++ b/erpnext/setup/doctype/supplier_group/supplier_group.js @@ -2,7 +2,27 @@ // For license information, please see license.txt cur_frm.cscript.refresh = function(doc) { - cur_frm.set_intro(doc.__islocal ? "" : __("There is nothing to edit.")) + cur_frm.set_intro(doc.__islocal ? "" : __("There is nothing to edit.")); + cur_frm.cscript.set_root_readonly(doc); +} + +cur_frm.cscript.set_root_readonly = function(doc) { + // read-only for root customer group + if(!doc.parent_supplier_group) { + cur_frm.set_read_only(); + cur_frm.set_intro(__("This is a root supplier group and cannot be edited.")); + } else { + cur_frm.set_intro(null); + } +} + +//get query select Customer Group +cur_frm.fields_dict['parent_supplier_group'].get_query = function(doc,cdt,cdn) { + return { + filters: { + 'is_group': 1 + } + } } cur_frm.fields_dict['accounts'].grid.get_field('account').get_query = function(doc, cdt, cdn) { diff --git a/erpnext/setup/doctype/supplier_group/supplier_group.py b/erpnext/setup/doctype/supplier_group/supplier_group.py index 53ab215190..747560a533 100644 --- a/erpnext/setup/doctype/supplier_group/supplier_group.py +++ b/erpnext/setup/doctype/supplier_group/supplier_group.py @@ -4,7 +4,17 @@ from __future__ import unicode_literals import frappe -from frappe.model.document import Document +from frappe.utils.nestedset import NestedSet -class SupplierGroup(Document): - pass +class SupplierGroup(NestedSet): + nsm_parent_field = 'parent_supplier_group'; + + def update_nsm_model(self): + frappe.utils.nestedset.update_nsm(self) + + def on_update(self): + self.update_nsm_model() + self.validate_one_root() + + def on_trash(self): + self.update_nsm_model()