diff --git a/accounts/page/financial_analytics/financial_analytics.js b/accounts/page/financial_analytics/financial_analytics.js
index e8dbc0f..cf96258 100644
--- a/accounts/page/financial_analytics/financial_analytics.js
+++ b/accounts/page/financial_analytics/financial_analytics.js
@@ -76,7 +76,7 @@
 	},
 	init_filter_values: function() {
 		this._super();
-		this.filter_inputs.range.val('Weekly');
+		this.filter_inputs.range.val('Monthly');
 	},
 	prepare_balances: function() {
 		var me = this;
@@ -142,42 +142,45 @@
 		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];
+		if(!me.is_default("company")) {
+			// 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",
+			};
+			me.item_by_name[net_profit.name] = net_profit;
+
+			$.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);
+			});
+
+			this.data.push(net_profit);
+		}
 	},
 	add_balance: function(field, account, gl) {
 		account[field] = flt(account[field]) + 
diff --git a/buying/page/purchase_analytics/purchase_analytics.js b/buying/page/purchase_analytics/purchase_analytics.js
index 1e401c3..d1af656 100644
--- a/buying/page/purchase_analytics/purchase_analytics.js
+++ b/buying/page/purchase_analytics/purchase_analytics.js
@@ -128,7 +128,7 @@
 	},
 	init_filter_values: function() {
 		this._super();
-		this.filter_inputs.range.val('Weekly');
+		this.filter_inputs.range.val('Monthly');
 	},
 	prepare_data: function() {
 		var me = this;
diff --git a/home/page/latest_updates/latest_updates.js b/home/page/latest_updates/latest_updates.js
index e93fd0b..5429294 100644
--- a/home/page/latest_updates/latest_updates.js
+++ b/home/page/latest_updates/latest_updates.js
@@ -1,6 +1,7 @@
 erpnext.updates = [
 	["28th November 2012", [
 		"Profile: Profile Settings (My Settings...) is now the Profile Form.",
+		"Financial Analytics: Show Net Profit/Loss",
 	]],
 	["27th November 2012", [
 		"Communication: Made common communication thread and added it in Lead, Contact.",
diff --git a/selling/doctype/sales_order/sales_order.js b/selling/doctype/sales_order/sales_order.js
index 1285c84..f720cfa 100644
--- a/selling/doctype/sales_order/sales_order.js
+++ b/selling/doctype/sales_order/sales_order.js
@@ -92,6 +92,16 @@
 			cur_frm.add_custom_button('Unstop', cur_frm.cscript['Unstop Sales Order']);
 		}
 	}
+	
+	cur_frm.cscript.order_type(doc);
+}
+
+cur_frm.cscript.order_type = function(doc) {
+	if(doc.order_type == "Sales") {
+		cur_frm.toggle_reqd("delivery_date", 1);
+	} else {
+		cur_frm.toggle_reqd("delivery_date", 0);
+	}
 }
 
 //customer
diff --git a/selling/page/sales_analytics/sales_analytics.js b/selling/page/sales_analytics/sales_analytics.js
index d454d67..6c47133 100644
--- a/selling/page/sales_analytics/sales_analytics.js
+++ b/selling/page/sales_analytics/sales_analytics.js
@@ -136,7 +136,7 @@
 	},
 	init_filter_values: function() {
 		this._super();
-		this.filter_inputs.range.val('Weekly');
+		this.filter_inputs.range.val('Monthly');
 	},
 	prepare_data: function() {
 		var me = this;
diff --git a/stock/page/stock_analytics/stock_analytics.js b/stock/page/stock_analytics/stock_analytics.js
index f0d2a2b..8e98de8 100644
--- a/stock/page/stock_analytics/stock_analytics.js
+++ b/stock/page/stock_analytics/stock_analytics.js
@@ -103,7 +103,7 @@
 	},
 	init_filter_values: function() {
 		this._super();
-		this.filter_inputs.range.val('Weekly');
+		this.filter_inputs.range.val('Monthly');
 	},
 	prepare_data: function() {
 		var me = this;
