From df9f8a363e83bbfb431748c66212760ee3480ade Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Tue, 22 May 2012 16:54:46 +0530 Subject: [PATCH] Balance on chart of accounts --- .../accounts_browser/accounts_browser.css | 9 + .../page/accounts_browser/accounts_browser.js | 400 +----------------- .../page/accounts_browser/accounts_browser.py | 45 +- 3 files changed, 53 insertions(+), 401 deletions(-) diff --git a/erpnext/accounts/page/accounts_browser/accounts_browser.css b/erpnext/accounts/page/accounts_browser/accounts_browser.css index bbbbb6b8aac..718da365da9 100644 --- a/erpnext/accounts/page/accounts_browser/accounts_browser.css +++ b/erpnext/accounts/page/accounts_browser/accounts_browser.css @@ -18,3 +18,12 @@ span.tree-node-toolbar { font-weight: bold; text-decoration: underline; } + +span.balance-area { + float: right; + height: 13px; +} + +span.balance-bold { + font-weight: bold; +} \ No newline at end of file diff --git a/erpnext/accounts/page/accounts_browser/accounts_browser.js b/erpnext/accounts/page/accounts_browser/accounts_browser.js index 0561bd73a4f..10118740748 100644 --- a/erpnext/accounts/page/accounts_browser/accounts_browser.js +++ b/erpnext/accounts/page/accounts_browser/accounts_browser.js @@ -24,7 +24,7 @@ pscript['onload_Accounts Browser'] = function(wrapper){ wn.require('lib/js/wn/ui/tree.js'); wrapper.appframe = new wn.ui.AppFrame($(wrapper).find('.appframe-area')); wrapper.appframe.add_button('New Company', function() { newdoc('Company'); }, 'icon-plus'); - wrapper.appframe.add_button('Refresh', function() { + wrapper.appframe.add_button('Refresh', function() { wrapper.$company_select.change(); }, 'icon-refresh'); @@ -80,7 +80,7 @@ erpnext.AccountsChart = Class.extend({ this.tree = new wn.ui.Tree({ parent: $(wrapper).find('.tree-area'), label: company, - args: {ctype: ctype}, + args: {ctype: ctype, comp: company}, method: 'accounts.page.accounts_browser.accounts_browser.get_children', click: function(link) { if(me.cur_toolbar) @@ -93,17 +93,25 @@ erpnext.AccountsChart = Class.extend({ me.cur_toolbar = link.toolbar; $(me.cur_toolbar).toggle(true); } + + // bold + $('.balance-bold').removeClass('balance-bold'); // deselect + $(link).parent().find('.balance-area:first').addClass('balance-bold'); // select + }, + onrender: function(treenode) { + var bal = treenode.data && treenode.data.balance.split(' ') || ['','']; + treenode.parent.append(''+ bal[0] + ' ' + + bal[1] + ''); } }); - this.tree.rootnode.$a.click(); + this.tree.rootnode.$a.click(); }, make_link_toolbar: function(link) { var data = $(link).data('node-data'); if(!data) return; link.toolbar = $('').insertAfter(link); - // edit $('Edit').appendTo(link.toolbar); @@ -236,386 +244,4 @@ erpnext.AccountsChart = Class.extend({ }); d.show(); } -}); - -/* -pscript.make_chart = function(b, wrapper) { - pscript.ctype = b; - $(wrapper).find('.tree-area').empty() - $(wrapper).find('.layout-sidesection').empty() - - //================== table body====================================== - var ac_main_grid = make_table($i('ab_body'),1,2,'100%',['60%','40%'],{border:"0px", padding:"4px",tableLayout: "fixed", borderCollapse: "collapse"}); - $y($td(ac_main_grid,0,0),{border: "1px solid #dddddd", padding: "8px"}); - pscript.account_tree = $a($td(ac_main_grid,0,0),'div', '',{minHeight:'400px'}); - $y($td(ac_main_grid,0,1),{border: "1px solid #DDD"}); - pscript.la = $a($td(ac_main_grid,0,1),'div'); - pscript.acc_period_bal = $a($td(ac_main_grid,0,1),'div'); - - //=====================footer area ================================== - if (pscript.ctype == 'Account') { - var footer = $a($i('ab_body'),'div','',{backgroundColor: "#FFD", padding: "8px", color: "#444", fontSize: "12px", marginTop: "14px"}); - - var help1 = $a(footer,'span'); - help1.innerHTML = "Note: To create accounts for Customers and Suppliers, please create Customer and Supplier" - + " Masters. This will ensure that the accounts are linked to your Selling and Buying Processes. The Account Heads for Customer and Supplier will automatically be created." - } - - // header and toolbar - // ------------------ - wrapper.appframe.$titlebar.find('.appframe-title').html('Chart of '+pscript.ctype+'s'); - - // select company - // -------------- - var tab = make_table(select_area, 1, 2, null, [], {verticalAlign:'middle', padding: '2px'}); - $td(tab,0,0).innerHTML = 'Select Company'.bold(); - var sel = $a($td(tab,0,1),'select','',{width:'160px'}); - - // set tree - var set_tree = function() { - if(pscript.ac_tree) { - pscript.ac_tree.body.innerHTML = ''; - } - pscript.make_ac_tree(); - var cn = sel_val(sel); - var n = pscript.ac_tree.addNode(null, cn, null,pscript.ac_tree.std_onclick, pscript.ac_tree.std_onexp); - n.rec = {}; - n.rec.name = 'Root Node'; - n.rec.account_name = cn; - n.rec.cost_center_name = cn; - pscript.set_ac_head('',n.rec); - $ds(pscript.ac_head_area); - } - - // select company - add_sel_options(sel, ['Loading...']); - var callback = function(r,rt) { - empty_select(sel); - add_sel_options(sel,r.message.cl,sys_defaults.company); - set_tree(); - sel.onchange = function() { set_tree(); } - } - $c_obj('GL Control', 'get_companies', '', callback); - - pscript.ab_company_sel = sel; - - pscript.make_ac_head(); - pscript.make_group_area(); - pscript.make_ledger_area(); - pscript.make_new_acc_dialog(); - pscript.make_new_cost_center_dialog(); - -} - -pscript.make_ac_tree = function() { - //var type= sel_val($i('ctype')) - var type= pscript.ctype; - var tree = new Tree(pscript.account_tree, '90%'); - pscript.ac_tree = tree; - - // on click - tree.std_onclick = function(node) { - - - pscript.cur_node = node; - - // show ledger - pscript.set_ac_head(node.parent_account, node.rec,type); - } - - // on expand - tree.std_onexp = function(node) { - if(node.expanded_once)return; - $ds(node.loading_div); - //set_ac_head - var callback = function(r,rt) { - - $dh(node.loading_div); - var n = tree.allnodes[r.message.parent_acc_name]; - - var cl = r.message.cl; - - if(type=='Account'){ - for(var i=0;i