added Net Profit in financial analytis
diff --git a/accounts/page/financial_analytics/financial_analytics.js b/accounts/page/financial_analytics/financial_analytics.js
index 06c8a29..e8dbc0f 100644
--- a/accounts/page/financial_analytics/financial_analytics.js
+++ b/accounts/page/financial_analytics/financial_analytics.js
@@ -141,6 +141,43 @@
}
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 10e1dac..4c669a9 100644
--- a/public/js/account_tree_grid.js
+++ b/public/js/account_tree_grid.js
@@ -84,12 +84,7 @@
},
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 @@
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();