fix: override primary action button, change filter to root company
diff --git a/erpnext/accounts/doctype/account/account_tree.js b/erpnext/accounts/doctype/account/account_tree.js
index 5a80258..4bedb3c 100644
--- a/erpnext/accounts/doctype/account/account_tree.js
+++ b/erpnext/accounts/doctype/account/account_tree.js
@@ -15,25 +15,23 @@
var me = frappe.treeview_settings['Account'].treeview;
var company = me.page.fields_dict.company.get_value();
frappe.call({
- method: "frappe.client.get_value",
+ method: "erpnext.accounts.doctype.account.account.get_root_company",
args: {
- doctype: "Company",
- fieldname: "parent_company",
- filters: { name: company},
+ company: company,
},
callback: function(r, rt) {
if(r.message) {
- me.page.fields_dict.parent_company.set_value(r.message["parent_company"] || "");
+ let root_company = r.message.length ? r.message[0] : "";
+ me.page.fields_dict.root_company.set_value(root_company);
}
}
});
}
},
{
- fieldname: "parent_company",
+ fieldname: "root_company",
fieldtype:"Data",
- fetch_from: "company.parent_company",
- label: __("Parent Company"),
+ label: __("Root Company"),
hidden: true,
disable_onchange: true
}
@@ -105,6 +103,18 @@
}
},
+ post_render: function(treeview) {
+ frappe.treeview_settings['Account'].treeview["tree"] = treeview.tree;
+ treeview.page.set_primary_action(__("New"), function() {
+ let root_company = treeview.page.fields_dict.root_company.get_value();
+
+ if(root_company) {
+ frappe.throw(__("Please add the account to root level Company - ") + root_company);
+ } else {
+ treeview.new_node();
+ }
+ }, "octicon octicon-plus");
+ },
onrender: function(node) {
if(frappe.boot.user.can_read.indexOf("GL Entry") !== -1){
var dr_or_cr = node.data.balance < 0 ? "Cr" : "Dr";
@@ -124,12 +134,12 @@
label:__("Add Child"),
condition: function(node) {
return frappe.boot.user.can_create.indexOf("Account") !== -1 &&
- !frappe.treeview_settings['Account'].treeview.page.fields_dict.parent_company.get_value() &&
+ !frappe.treeview_settings['Account'].treeview.page.fields_dict.root_company.get_value() &&
node.expandable && !node.hide_add;
},
click: function(node) {
var me = frappe.treeview_settings['Account'].treeview;
- me.new_node(node);
+ me.new_node();
},
btnClass: "hidden-xs"
},
@@ -143,7 +153,7 @@
"account": node.label,
"from_date": frappe.sys_defaults.year_start_date,
"to_date": frappe.sys_defaults.year_end_date,
- "company": frappe.treeview_settings['Account'].page.fields_dict.company.get_value()
+ "company": frappe.treeview_settings['Account'].treeview.page.fields_dict.company.get_value()
};
frappe.set_route("query-report", "General Ledger");
},