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();