From 0e47bfeb16c2f8919a37ad7d7dc611bc63504c01 Mon Sep 17 00:00:00 2001 From: Saurabh Date: Mon, 30 May 2016 17:54:16 +0530 Subject: [PATCH] [enhance] treeview to BOM, sales person, Cost Center and Chart of acounts --- .../doctype/account/account_treeview.js | 37 +++++++++++++++++++ .../cost_center/cost_center_treeview.js | 25 +++++++++++++ erpnext/accounts/utils.py | 8 ++++ .../manufacturing/doctype/bom/bom_treeview.js | 3 +- .../sales_person/sales_person_treeview.js | 11 ++++++ 5 files changed, 83 insertions(+), 1 deletion(-) create mode 100644 erpnext/accounts/doctype/account/account_treeview.js create mode 100644 erpnext/accounts/doctype/cost_center/cost_center_treeview.js create mode 100644 erpnext/setup/doctype/sales_person/sales_person_treeview.js diff --git a/erpnext/accounts/doctype/account/account_treeview.js b/erpnext/accounts/doctype/account/account_treeview.js new file mode 100644 index 0000000000..673ef9f58f --- /dev/null +++ b/erpnext/accounts/doctype/account/account_treeview.js @@ -0,0 +1,37 @@ +frappe.treeview_settings["Account"] = { + breadcrumbs: "Accounts", + title: __("Chart Of Accounts"), + get_tree_root: false, + filters: [{ + fieldname: "comp", + fieldtype:"Select", + options: $.map(locals[':Company'], function(c) { return c.name; }).sort(), + label: __("Company") + }], + root_label: "Accounts", + get_tree_nodes: 'erpnext.accounts.page.accounts_browser.accounts_browser.get_children', + add_tree_node: 'erpnext.accounts.utils.add_ac', + menu_items:[ + { + label: __('New Company'), + action: function() { newdoc('Company'); }, + condition: 'frappe.boot.user.can_create.indexOf("Company") === -1' + } + ], + fields: [ + {fieldtype:'Data', fieldname:'account_name', label:__('New Account Name'), reqd:true, + description: __("Name of new Account. Note: Please don't create accounts for Customers and Suppliers")}, + {fieldtype:'Check', fieldname:'is_group', label:__('Is Group'), + description: __('Further accounts can be made under Groups, but entries can be made against non-Groups')}, + {fieldtype:'Select', fieldname:'root_type', label:__('Root Type'), + options: ['Asset', 'Liability', 'Equity', 'Income', 'Expense'].join('\n'), + }, + {fieldtype:'Select', fieldname:'account_type', label:__('Account Type'), + options: ['', 'Bank', 'Cash', 'Warehouse', 'Tax', 'Chargeable'].join('\n'), + description: __("Optional. This setting will be used to filter in various transactions.") }, + {fieldtype:'Float', fieldname:'tax_rate', label:__('Tax Rate')}, + {fieldtype:'Link', fieldname:'warehouse', label:__('Warehouse'), options:"Warehouse"}, + {fieldtype:'Link', fieldname:'account_currency', label:__('Currency'), options:"Currency", + description: __("Optional. Sets company's default currency, if not specified.")} + ] +} \ No newline at end of file diff --git a/erpnext/accounts/doctype/cost_center/cost_center_treeview.js b/erpnext/accounts/doctype/cost_center/cost_center_treeview.js new file mode 100644 index 0000000000..c3a222d2ca --- /dev/null +++ b/erpnext/accounts/doctype/cost_center/cost_center_treeview.js @@ -0,0 +1,25 @@ +frappe.treeview_settings["Cost Center"] = { + breadcrumbs: "Accounts", + get_tree_root: false, + filters: [{ + fieldname: "comp", + fieldtype:"Select", + options: $.map(locals[':Company'], function(c) { return c.name; }).sort(), + label: __("Company"), + }], + root_label: "Cost Centers", + get_tree_nodes: 'erpnext.accounts.page.accounts_browser.accounts_browser.get_children', + add_tree_node: 'erpnext.accounts.utils.add_cc', + menu_items:[ + { + label: __('New Company'), + action: function() { newdoc('Company'); }, + condition: 'frappe.boot.user.can_create.indexOf("Company") === -1' + } + ], + fields:[ + {fieldtype:'Data', fieldname:'cost_center_name', label:__('New Cost Center Name'), reqd:true}, + {fieldtype:'Check', fieldname:'is_group', label:__('Is Group'), + description:__('Further cost centers can be made under Groups but entries can be made against non-Groups')} + ] +} \ No newline at end of file diff --git a/erpnext/accounts/utils.py b/erpnext/accounts/utils.py index 27f1394afe..06c15d7d96 100644 --- a/erpnext/accounts/utils.py +++ b/erpnext/accounts/utils.py @@ -135,6 +135,10 @@ def add_ac(args=None): args.pop("ignore_permissions") ac.update(args) + + if not ac.parent_account: + ac.parent_account = args.get("parent") + ac.old_parent = "" ac.freeze_account = "No" if cint(ac.get("is_root")): @@ -153,6 +157,10 @@ def add_cc(args=None): cc = frappe.new_doc("Cost Center") cc.update(args) + + if not cc.parent_cost_center: + cc.parent_cost_center = args.get("parent") + cc.old_parent = "" cc.insert() return cc.name diff --git a/erpnext/manufacturing/doctype/bom/bom_treeview.js b/erpnext/manufacturing/doctype/bom/bom_treeview.js index 359acdff6c..68ed4e2629 100644 --- a/erpnext/manufacturing/doctype/bom/bom_treeview.js +++ b/erpnext/manufacturing/doctype/bom/bom_treeview.js @@ -8,9 +8,10 @@ frappe.treeview_settings["BOM"] = { label: __("BOM") } ], + title: "BOM", breadcrumb: "Manufacturing", disable_add_node: true, - label: "bom", // should be fieldname from filters + root_label: "bom", //fieldname from filters get_label: function(node) { if(node.data.qty) { return node.data.qty + " x " + node.data.item_code; diff --git a/erpnext/setup/doctype/sales_person/sales_person_treeview.js b/erpnext/setup/doctype/sales_person/sales_person_treeview.js new file mode 100644 index 0000000000..fd2127d013 --- /dev/null +++ b/erpnext/setup/doctype/sales_person/sales_person_treeview.js @@ -0,0 +1,11 @@ +frappe.treeview_settings["Sales Person"] = { + fields: [ + {fieldtype:'Data', fieldname: 'name_field', + label:__('New Sales Person Name'), reqd:true}, + {fieldtype:'Link', fieldname:'employee', + label:__('Employee'), options:'Employee', + description: __("Please enter Employee Id of this sales person")}, + {fieldtype:'Select', fieldname:'is_group', label:__('Group Node'), options:'No\nYes', + description: __("Further nodes can be only created under 'Group' type nodes")} + ], +} \ No newline at end of file