From 42d37bf6c2a0f0fa54f0727d9d5c46cd86b2ad4b Mon Sep 17 00:00:00 2001 From: Anand Doshi Date: Wed, 28 Nov 2012 16:06:37 +0530 Subject: [PATCH] added Net Profit in financial analytis --- .../financial_analytics.js | 37 +++++++++++++++++++ public/js/account_tree_grid.js | 17 +++++---- 2 files changed, 46 insertions(+), 8 deletions(-) diff --git a/accounts/page/financial_analytics/financial_analytics.js b/accounts/page/financial_analytics/financial_analytics.js index 06c8a29fab..e8dbc0faf1 100644 --- a/accounts/page/financial_analytics/financial_analytics.js +++ b/accounts/page/financial_analytics/financial_analytics.js @@ -141,6 +141,43 @@ erpnext.FinancialAnalytics = erpnext.AccountTreeGrid.extend({ } this.update_groups(); this.accounts_initialized = true; + + // show Net Profit / Loss + var net_profit = { + company: me.company, + id: "Net Profit / Loss", + name: "Net Profit / Loss", + indent: 0, + opening: 0, + checked: false, + is_pl_account: me.pl_or_bs=="Balance Sheet" ? "No" : "Yes", + }; + + $.each(me.data, function(i, ac) { + if(!ac.parent_account && me.apply_filter(ac, "company")) { + if(me.pl_or_bs == "Balance Sheet") { + var valid_account = ac.is_pl_account!="Yes"; + var do_addition_for = "Debit"; + } else { + var valid_account = ac.is_pl_account=="Yes"; + var do_addition_for = "Credit"; + } + if(valid_account) { + $.each(me.columns, function(i, col) { + if(col.formatter==me.currency_formatter) { + if(!net_profit[col.field]) net_profit[col.field] = 0; + if(ac.debit_or_credit==do_addition_for) { + net_profit[col.field] += ac[col.field]; + } else { + net_profit[col.field] -= ac[col.field]; + } + } + }); + } + } + }); + + this.data.push(net_profit); }, add_balance: function(field, account, gl) { account[field] = flt(account[field]) + diff --git a/public/js/account_tree_grid.js b/public/js/account_tree_grid.js index 10e1daccde..4c669a9d9e 100644 --- a/public/js/account_tree_grid.js +++ b/public/js/account_tree_grid.js @@ -84,12 +84,7 @@ erpnext.AccountTreeGrid = wn.views.TreeGridReport.extend({ }, prepare_data: function() { var me = this; - if(this.data) { - // refresh -- only initialize - $.each(this.data, function(i, d) { - me.init_account(d); - }) - } else { + if(!this.primary_data) { // make accounts list me.data = []; me.parent_map = {}; @@ -103,10 +98,16 @@ erpnext.AccountTreeGrid = wn.views.TreeGridReport.extend({ if(d.parent_account) { me.parent_map[d.name] = d.parent_account; } - - me.init_account(d); }); + + me.primary_data = [].concat(me.data); } + + me.data = [].concat(me.primary_data); + $.each(me.data, function(i, d) { + me.init_account(d); + }); + this.set_indent(); this.prepare_balances();