diff --git a/erpnext/accounts/report/profit_and_loss_statement/profit_and_loss_statement.js b/erpnext/accounts/report/profit_and_loss_statement/profit_and_loss_statement.js
index 91ec9d9..0f7a6b6 100644
--- a/erpnext/accounts/report/profit_and_loss_statement/profit_and_loss_statement.js
+++ b/erpnext/accounts/report/profit_and_loss_statement/profit_and_loss_statement.js
@@ -2,7 +2,8 @@
 // License: GNU General Public License v3. See license.txt
 
 frappe.require("assets/erpnext/js/financial_statements.js", function() {
-	frappe.query_reports["Profit and Loss Statement"] = $.extend({}, erpnext.financial_statements);
+	frappe.query_reports["Profit and Loss Statement"] = $.extend({},
+		erpnext.financial_statements);
 
 	frappe.query_reports["Profit and Loss Statement"]["filters"].push({
 		"fieldname": "accumulated_values",
diff --git a/erpnext/demo/demo.py b/erpnext/demo/demo.py
index 9b9d898..6642e7b 100644
--- a/erpnext/demo/demo.py
+++ b/erpnext/demo/demo.py
@@ -4,7 +4,7 @@
 import erpnext
 import frappe.utils
 from erpnext.demo.setup_data import setup_data
-from erpnext.demo.user import hr, sales, purchase, manufacturing, stock
+from erpnext.demo.user import hr, sales, purchase, manufacturing, stock, accounts
 
 """
 Make a demo
@@ -68,8 +68,7 @@
 		purchase.work()
 		manufacturing.work()
 		stock.work()
-		# run_stock()
-		# run_accounts()
+		accounts.work()
 		# run_projects()
 		# run_messages()
 
diff --git a/erpnext/demo/setup_data.py b/erpnext/demo/setup_data.py
index 1033f7d..6f1fb0a 100644
--- a/erpnext/demo/setup_data.py
+++ b/erpnext/demo/setup_data.py
@@ -330,6 +330,6 @@
 
 	if not frappe.db.get_global('demo_accounts_user'):
 		user = frappe.get_doc('User', 'LeonAbdulov@example.com')
-		user.add_roles('Accounts User', 'Accounts Manager')
+		user.add_roles('Accounts User', 'Accounts Manager', 'Sales User', 'Purchase User')
 		frappe.db.set_global('demo_accounts_user', user.name)
 
diff --git a/erpnext/demo/user/accounts.py b/erpnext/demo/user/accounts.py
index 4a514ef..d3df627 100644
--- a/erpnext/demo/user/accounts.py
+++ b/erpnext/demo/user/accounts.py
@@ -15,8 +15,7 @@
 	if random.random() < 0.5:
 		from erpnext.selling.doctype.sales_order.sales_order import make_sales_invoice
 		report = "Ordered Items to be Billed"
-		for so in list(set([r[0] for r in
-			query_report.run(report)["result"]
+		for so in list(set([r[0] for r in query_report.run(report)["result"]
 				if r[0]!="Total"]))[:random.randint(1, 5)]:
 			si = frappe.get_doc(make_sales_invoice(so))
 			si.posting_date = frappe.flags.current_date
diff --git a/erpnext/demo/user/purchase.py b/erpnext/demo/user/purchase.py
index ff40e74..6f06f26 100644
--- a/erpnext/demo/user/purchase.py
+++ b/erpnext/demo/user/purchase.py
@@ -131,10 +131,13 @@
 	po.is_subcontracted = "Yes"
 	po.supplier = get_random("Supplier")
 
+	item_code = get_random("Item", {"is_sub_contracted_item": 1})
+	moq = frappe.db.get_value('Item', item_code, 'min_order_qty')
+
 	po.append("items", {
-		"item_code": get_random("Item", {"is_sub_contracted_item": 1}),
+		"item_code": item_code,
 		"schedule_date": frappe.utils.add_days(frappe.flags.current_date, 7),
-		"qty": 20
+		"qty": moq
 	})
 	po.set_missing_values()
 	try:
diff --git a/erpnext/docs/license.html b/erpnext/docs/license.html
index b0310f6..6aa4e64 100644
--- a/erpnext/docs/license.html
+++ b/erpnext/docs/license.html
@@ -13,7 +13,7 @@
 
 <p>Version 3, 29 June 2007</p>
 
-<p>http://www.gnu.org/copyleft/gpl.html</p>
+<p><a href="http://www.gnu.org/copyleft/gpl.html" rel="nofollow">http://www.gnu.org/copyleft/gpl.html</a></p>
 
 <p>TERMS AND CONDITIONS
 0. Definitions.</p>
diff --git a/erpnext/docs/user/manual/de/Beispiel/Beispiel.md b/erpnext/docs/user/manual/de/Beispiel/index.md
similarity index 100%
rename from erpnext/docs/user/manual/de/Beispiel/Beispiel.md
rename to erpnext/docs/user/manual/de/Beispiel/index.md
diff --git a/erpnext/patches/v7_0/convert_timelog_to_timesheet.py b/erpnext/patches/v7_0/convert_timelog_to_timesheet.py
index 3f5cca1..cb16466 100644
--- a/erpnext/patches/v7_0/convert_timelog_to_timesheet.py
+++ b/erpnext/patches/v7_0/convert_timelog_to_timesheet.py
@@ -3,8 +3,7 @@
 from erpnext.manufacturing.doctype.production_order.production_order import make_timesheet, add_timesheet_detail
 
 def execute():
-	if "note" not in frappe.db.get_table_columns("timesheet"):
-		frappe.reload_doc('projects', 'doctype', 'timesheet')
+	frappe.reload_doc('projects', 'doctype', 'timesheet')
 
 	for data in frappe.get_all('Time Log', fields=["*"],
 		filters = [["docstatus", "<", "2"]]):
diff --git a/erpnext/patches/v7_0/rename_time_sheet_doctype.py b/erpnext/patches/v7_0/rename_time_sheet_doctype.py
index dc2fada..a008045 100644
--- a/erpnext/patches/v7_0/rename_time_sheet_doctype.py
+++ b/erpnext/patches/v7_0/rename_time_sheet_doctype.py
@@ -1,7 +1,7 @@
 import frappe
 
 def execute():
-	if frappe.db.table_exists("Time Sheet"):
+	if frappe.db.table_exists("Time Sheet") and not frappe.db.table_exists("Timesheet"):
 		frappe.rename_doc("DocType", "Time Sheet", "Timesheet")
 		frappe.rename_doc("DocType", "Time Sheet Detail", "Timesheet Detail")
 		
diff --git a/erpnext/stock/doctype/delivery_note/delivery_note.js b/erpnext/stock/doctype/delivery_note/delivery_note.js
index c5fce7d..ab8297c 100644
--- a/erpnext/stock/doctype/delivery_note/delivery_note.js
+++ b/erpnext/stock/doctype/delivery_note/delivery_note.js
@@ -5,6 +5,15 @@
 
 frappe.provide("erpnext.stock");
 frappe.provide("erpnext.stock.delivery_note");
+
+frappe.ui.form.on('Delivery Note', 'onload', function(frm) {
+	frm.set_indicator_formatter('item_code',
+		function(doc) {
+			return (doc.docstatus==1 || doc.qty<=doc.actual_qty) ? "green" : "orange"
+		})
+
+})
+
 erpnext.stock.DeliveryNoteController = erpnext.selling.SellingController.extend({
 	refresh: function(doc, dt, dn) {
 		this._super();
diff --git a/erpnext/stock/page/stock_balance/stock_balance.json b/erpnext/stock/page/stock_balance/stock_balance.json
index d908875..05039da 100644
--- a/erpnext/stock/page/stock_balance/stock_balance.json
+++ b/erpnext/stock/page/stock_balance/stock_balance.json
@@ -4,7 +4,7 @@
  "docstatus": 0, 
  "doctype": "Page", 
  "idx": 0, 
- "modified": "2016-04-21 05:04:30.228526", 
+ "modified": "2016-07-14 06:39:09.096256", 
  "modified_by": "Administrator", 
  "module": "Stock", 
  "name": "stock-balance", 
@@ -18,5 +18,5 @@
  "script": null, 
  "standard": "Yes", 
  "style": null, 
- "title": "Stock Balance"
+ "title": "Stock Summary"
 }
\ No newline at end of file
diff --git a/erpnext/stock/report/stock_balance/stock_balance.py b/erpnext/stock/report/stock_balance/stock_balance.py
index 696f2b0..2777d3d 100644
--- a/erpnext/stock/report/stock_balance/stock_balance.py
+++ b/erpnext/stock/report/stock_balance/stock_balance.py
@@ -8,7 +8,7 @@
 
 def execute(filters=None):
 	if not filters: filters = {}
-	
+
 	validate_filters(filters)
 
 	columns = get_columns()
@@ -83,7 +83,7 @@
 			company, voucher_type, qty_after_transaction, stock_value_difference
 		from `tabStock Ledger Entry` sle force index (posting_sort_index)
 		where docstatus < 2 %s order by posting_date, posting_time, name""" %
-		conditions, as_dict=1, debug=1)
+		conditions, as_dict=1)
 
 def get_item_warehouse_map(filters):
 	iwb_map = {}
@@ -147,4 +147,3 @@
 		sle_count = flt(frappe.db.sql("""select count(name) from `tabStock Ledger Entry`""")[0][0])
 		if sle_count > 500000:
 			frappe.throw(_("Please set filter based on Item or Warehouse"))
-	
\ No newline at end of file
