diff --git a/erpnext/__init__.py b/erpnext/__init__.py
index bd400c0..7ab6784 100644
--- a/erpnext/__init__.py
+++ b/erpnext/__init__.py
@@ -5,7 +5,7 @@
 from erpnext.hooks import regional_overrides
 from frappe.utils import getdate
 
-__version__ = '10.0.10'
+__version__ = '10.0.11'
 
 def get_default_company(user=None):
 	'''Get default company for user'''
diff --git a/erpnext/accounts/report/accounts_receivable_summary/accounts_receivable_summary.js b/erpnext/accounts/report/accounts_receivable_summary/accounts_receivable_summary.js
index ceed5e5..96e5d18 100644
--- a/erpnext/accounts/report/accounts_receivable_summary/accounts_receivable_summary.js
+++ b/erpnext/accounts/report/accounts_receivable_summary/accounts_receivable_summary.js
@@ -23,10 +23,10 @@
 			"options": "Customer Group"
 		},
 		{
-			"fieldname":"credit_days_based_on",
-			"label": __("Credit Days Based On"),
-			"fieldtype": "Select",
-			"options": "\nFixed Days\nLast Day of the Next Month"
+			"fieldname":"payment_terms_template",
+			"label": __("Payment Terms Template"),
+			"fieldtype": "Link",
+			"options": "Payment Terms Template"
 		},
 		{
 			"fieldtype": "Break",
diff --git a/erpnext/accounts/report/general_ledger/general_ledger.html b/erpnext/accounts/report/general_ledger/general_ledger.html
index 91cc3c9..83325aa 100644
--- a/erpnext/accounts/report/general_ledger/general_ledger.html
+++ b/erpnext/accounts/report/general_ledger/general_ledger.html
@@ -19,36 +19,66 @@
 		<tr>
 			<th style="width: 15%">{%= __("Date") %}</th>
 			<th style="width: 15%">{%= __("Ref") %}</th>
-			<th style="width: 40%">{%= __("Party") %}</th>
+			<th style="width: 25%">{%= __("Party") %}</th>
 			<th style="width: 15%">{%= __("Debit") %}</th>
 			<th style="width: 15%">{%= __("Credit") %}</th>
+			<th style="width: 15%">{%= __("Balance") %}</th>
 		</tr>
 	</thead>
 	<tbody>
 		{% for(var i=0, l=data.length; i<l; i++) { %}
 			<tr>
-			{% if(data[i][__("Posting Date")]) { %}
-				<td>{%= dateutil.str_to_user(data[i][__("Posting Date")]) %}</td>
-				<td>{%= data[i][__("Voucher Type")] %}
-					<br>{%= data[i][__("Voucher No")] %}</td>
+			{% if(data[i].posting_date) { %}
+				<td>{%= dateutil.str_to_user(data[i].posting_date) %}</td>
+				<td>{%= data[i].voucher_type %}
+					<br>{%= data[i].voucher_no %}</td>
 				<td>
 					{% if(!(filters.party || filters.account)) { %}
-						{%= data[i][__("Party")] || data[i][__("Account")] %}
+						{%= data[i].party || data[i].account %}
 						<br>
 					{% } %}
 
-					{{ __("Against") }}: {%= data[i][__("Against Account")] %}
-					<br>{%= __("Remarks") %}: {%= data[i][__("Remarks")] %}</td>
-				<td style="text-align: right">{%= format_currency(data[i][__("Debit")]) %}</td>
-				<td style="text-align: right">{%= format_currency(data[i][__("Credit")]) %}</td>
+					{{ __("Against") }}: {%= data[i].against %}
+					<br>{%= __("Remarks") %}: {%= data[i].remarks %}
+					{% if(data[i].bill_no) { %}
+						<br>{%= __("Supplier Invoice No") %}: {%= data[i].bill_no %}
+					{% } %}
+					</td>
+				{% if(filters.print_in_account_currency) { %}
+					<td style="text-align: right">
+						{%= format_currency(data[i].debit_in_account_currency, data[i].account_currency) %}
+					</td>
+					<td style="text-align: right">
+						{%= format_currency(data[i].credit_in_account_currency, data[i].account_currency) %}
+					</td>
+				{% } else { %}
+					<td style="text-align: right">
+						{%= format_currency(data[i].debit) %}</td>
+					<td style="text-align: right">
+						{%= format_currency(data[i].credit) %}</td>
+				{% } %}
 			{% } else { %}
 				<td></td>
 				<td></td>
-				<td><b>{%= frappe.format(data[i][__("Account")], {fieldtype: "Link"}) || "&nbsp;" %}</b></td>
-				<td style="text-align: right">
-					{%= data[i][__("Account")] && format_currency(data[i][__("Debit")]) %}</td>
-				<td style="text-align: right">
-					{%= data[i][__("Account")] && format_currency(data[i][__("Credit")]) %}</td>
+				<td><b>{%= frappe.format(data[i].account, {fieldtype: "Link"}) || "&nbsp;" %}</b></td>
+				{% if(filters.print_in_account_currency) { %}
+					<td style="text-align: right">
+						{%= data[i].account && format_currency(data[i].debit_in_account_currency, data[i].account_currency) %}</td>
+					<td style="text-align: right">
+						{%= data[i].account && format_currency(data[i].credit_in_account_currency, data[i].account_currency) %}</td>
+				{% } else { %}
+					<td style="text-align: right">
+						{%= data[i].account && format_currency(data[i].debit) %}
+					</td>
+					<td style="text-align: right">
+						{%= data[i].account && format_currency(data[i].credit) %}
+					</td>
+				{% } %}
+			{% } %}
+			{% if(filters.print_in_account_currency) { %}
+				<td style="text-align: right">{%= data[i].balance_in_account_currency %}</td>
+			{% } else { %}
+				<td style="text-align: right">{%= data[i].balance %}</td>
 			{% } %}
 			</tr>
 		{% } %}
diff --git a/erpnext/accounts/report/general_ledger/general_ledger.js b/erpnext/accounts/report/general_ledger/general_ledger.js
index 282c767..adefadd 100644
--- a/erpnext/accounts/report/general_ledger/general_ledger.js
+++ b/erpnext/accounts/report/general_ledger/general_ledger.js
@@ -105,6 +105,11 @@
 			"fieldname":"group_by_account",
 			"label": __("Group by Account"),
 			"fieldtype": "Check",
+		},
+		{
+			"fieldname":"print_in_account_currency",
+			"label": __("Print in Account Currency"),
+			"fieldtype": "Check",
 		}
 	]
 }
diff --git a/erpnext/accounts/report/general_ledger/general_ledger.py b/erpnext/accounts/report/general_ledger/general_ledger.py
index eefb3d1..72fe793 100644
--- a/erpnext/accounts/report/general_ledger/general_ledger.py
+++ b/erpnext/accounts/report/general_ledger/general_ledger.py
@@ -3,12 +3,17 @@
 
 from __future__ import unicode_literals
 import frappe
-from frappe.utils import getdate, cstr, flt
+from frappe.utils import getdate, cstr, flt, fmt_money
 from frappe import _, _dict
 from erpnext.accounts.utils import get_account_currency
 
 def execute(filters=None):
 	account_details = {}
+
+	if filters and filters.get('print_in_account_currency') and \
+		not filters.get('account'):
+		frappe.throw(_("Select an account to print in account currency"))
+
 	for acc in frappe.db.sql("""select name, is_group from tabAccount""", as_dict=1):
 		account_details.setdefault(acc.name, acc)
 
@@ -76,28 +81,6 @@
 
 		return filters
 
-def get_columns(filters):
-	columns = [
-		_("Posting Date") + ":Date:90", _("Account") + ":Link/Account:200",
-		_("Debit") + ":Float:100", _("Credit") + ":Float:100"
-	]
-
-	if filters.get("show_in_account_currency"):
-		columns += [
-			_("Debit") + " (" + filters.account_currency + ")" + ":Float:100",
-			_("Credit") + " (" + filters.account_currency + ")" + ":Float:100"
-		]
-
-	columns += [
-		_("Voucher Type") + "::120", _("Voucher No") + ":Dynamic Link/"+_("Voucher Type")+":160",
-		_("Against Account") + "::120", _("Party Type") + "::80", _("Party") + "::150",
-		_("Project") + ":Link/Project:100", _("Cost Center") + ":Link/Cost Center:100",
-		_("Against Voucher Type") + "::120", _("Against Voucher") + ":Dynamic Link/"+_("Against Voucher Type")+":160",
-		_("Remarks") + "::400"
-	]
-
-	return columns
-
 def get_result(filters, account_details):
 	gl_entries = get_gl_entries(filters)
 
@@ -193,24 +176,6 @@
 	# closing
 	data.append(totals.closing)
 
-	#total closing
-	total_closing = totals.total_closing
-	total_debit = totals.closing.get('debit', 0)
-	total_credit = totals.closing.get('credit', 0)
-	debit_in_account_currency = totals.closing.get('debit_in_account_currency', 0)
-	credit_in_account_currency = totals.closing.get('credit_in_account_currency', 0)
-
-	total_amount = total_debit - total_credit
-
-	if total_amount > 0:
-		total_closing['debit'] = total_amount
-		total_closing['debit_in_account_currency'] = debit_in_account_currency - credit_in_account_currency
-	else:
-		total_closing['credit'] = abs(total_amount)
-		total_closing['credit_in_account_currency'] = abs(debit_in_account_currency - credit_in_account_currency)
-
-	data.append(totals.total_closing)
-
 	return data
 
 def get_totals_dict():
@@ -225,8 +190,7 @@
 	return _dict(
 		opening = _get_debit_credit_dict(_('Opening')),
 		total = _get_debit_credit_dict(_('Total')),
-		closing = _get_debit_credit_dict(_('Closing (Opening + Total)')),
-		total_closing = _get_debit_credit_dict(_('Closing Balance (Dr - Cr)'))
+		closing = _get_debit_credit_dict(_('Closing (Opening + Total)'))
 	)
 
 def initialize_gle_map(gl_entries):
@@ -270,17 +234,164 @@
 	return totals, entries
 
 def get_result_as_list(data, filters):
-	result = []
+	balance, balance_in_account_currency = 0, 0
+	inv_details = get_supplier_invoice_details()
+
 	for d in data:
-		row = [d.get("posting_date"), d.get("account"), d.get("debit"), d.get("credit")]
+		if not d.posting_date:
+			balance, balance_in_account_currency = 0, 0
+
+		balance, label = get_balance(d, balance, 'debit', 'credit')
+		d['balance'] = '{0} {1}'.format(fmt_money(abs(balance)), label)
 
 		if filters.get("show_in_account_currency"):
-			row += [d.get("debit_in_account_currency"), d.get("credit_in_account_currency")]
+			balance_in_account_currency, label = get_balance(d, balance_in_account_currency,
+				'debit_in_account_currency', 'credit_in_account_currency')
+			d['balance_in_account_currency'] = '{0} {1}'.format(fmt_money(abs(balance_in_account_currency)), label)
+		else:
+			d['debit_in_account_currency'] = d.get('debit', 0)
+			d['credit_in_account_currency'] = d.get('credit', 0)
+			d['balance_in_account_currency'] = d.get('balance')
 
-		row += [d.get("voucher_type"), d.get("voucher_no"), d.get("against"),
-			d.get("party_type"), d.get("party"), d.get("project"), d.get("cost_center"), d.get("against_voucher_type"), d.get("against_voucher"), d.get("remarks")
-		]
+		d['account_currency'] = filters.account_currency
+		d['bill_no'] = inv_details.get(d.against_voucher, '')
 
-		result.append(row)
+	return data
 
-	return result
+def get_supplier_invoice_details():
+	inv_details = {}
+	for d in frappe.db.sql(""" select name, bill_no from `tabPurchase Invoice`
+		where docstatus = 1 and bill_no is not null and bill_no != '' """, as_dict=1):
+		inv_details[d.name] = d.bill_no
+
+	return inv_details
+
+def get_balance(row, balance, debit_field, credit_field):
+	balance += (row.get(debit_field, 0) -  row.get(credit_field, 0))
+	label = 'DR' if balance > 0 else 'CR'
+
+	return balance, label
+
+def get_columns(filters):
+	columns = [
+		{
+			"label": _("Posting Date"),
+			"fieldname": "posting_date",
+			"fieldtype": "Date",
+			"width": 90
+		},
+		{
+			"label": _("Account"),
+			"fieldname": "account",
+			"fieldtype": "Link",
+			"options": "Account",
+			"width": 180
+		},
+		{
+			"label": _("Debit"),
+			"fieldname": "debit",
+			"fieldtype": "Float",
+			"width": 100
+		},
+		{
+			"label": _("Credit"),
+			"fieldname": "credit",
+			"fieldtype": "Float",
+			"width": 100
+		},
+		{
+			"label": _("Balance"),
+			"fieldname": "balance",
+			"fieldtype": "Data",
+			"width": 100
+		}
+	]
+
+	if filters.get("show_in_account_currency"):
+		columns.extend([
+			{
+				"label": _("Debit") + " (" + filters.account_currency + ")",
+				"fieldname": "debit_in_account_currency",
+				"fieldtype": "Float",
+				"width": 100
+			},
+			{
+				"label": _("Credit") + " (" + filters.account_currency + ")",
+				"fieldname": "credit_in_account_currency",
+				"fieldtype": "Float",
+				"width": 100
+			},
+			{
+				"label": _("Balance") + " (" + filters.account_currency + ")",
+				"fieldname": "balance_in_account_currency",
+				"fieldtype": "Data",
+				"width": 100
+			}
+		])
+
+	columns.extend([
+		{
+			"label": _("Voucher Type"),
+			"fieldname": "voucher_type",
+			"width": 120
+		},
+		{
+			"label": _("Voucher No"),
+			"fieldname": "voucher_no",
+			"fieldtype": "Dynamic Link",
+			"options": "voucher_type",
+			"width": 180
+		},
+		{
+			"label": _("Against Account"),
+			"fieldname": "against",
+			"width": 120
+		},
+		{
+			"label": _("Party Type"),
+			"fieldname": "party_type",
+			"width": 100
+		},
+		{
+			"label": _("Party"),
+			"fieldname": "party",
+			"width": 100
+		},
+		{
+			"label": _("Project"),
+			"options": "Project",
+			"fieldname": "project",
+			"width": 100
+		},
+		{
+			"label": _("Cost Center"),
+			"options": "Cost Center",
+			"fieldname": "cost_center",
+			"width": 100
+		},
+		{
+			"label": _("Against Voucher Type"),
+			"fieldname": "against_voucher_type",
+			"width": 100
+		},
+		{
+			"label": _("Against Voucher"),
+			"fieldname": "against_voucher",
+			"fieldtype": "Dynamic Link",
+			"options": "against_voucher_type",
+			"width": 100
+		},
+		{
+			"label": _("Supplier Invoice No"),
+			"fieldname": "bill_no",
+			"fieldtype": "Data",
+			"width": 100
+		},
+		{
+			"label": _("Remarks"),
+			"fieldname": "remarks",
+			"width": 400
+		}
+	])
+
+	return columns
diff --git a/erpnext/accounts/report/sales_payment_summary/sales_payment_summary.py b/erpnext/accounts/report/sales_payment_summary/sales_payment_summary.py
index 6ce65bf..2106bb2 100644
--- a/erpnext/accounts/report/sales_payment_summary/sales_payment_summary.py
+++ b/erpnext/accounts/report/sales_payment_summary/sales_payment_summary.py
@@ -52,7 +52,7 @@
 	return data
 
 def get_conditions(filters):
-	conditions = ""
+	conditions = "1=1"
 	if filters.get("from_date"): conditions += "a.posting_date >= %(from_date)s"
 	if filters.get("to_date"): conditions += " and a.posting_date <= %(to_date)s"
 	if filters.get("company"): conditions += " and a.company=%(company)s"
diff --git a/erpnext/buying/doctype/purchase_order/purchase_order.js b/erpnext/buying/doctype/purchase_order/purchase_order.js
index 3f12bce..51cec69 100644
--- a/erpnext/buying/doctype/purchase_order/purchase_order.js
+++ b/erpnext/buying/doctype/purchase_order/purchase_order.js
@@ -30,10 +30,10 @@
 			return erpnext.queries.warehouse(frm.doc);
 		});
 
-		frappe.db.get_value('Buying Settings', {name: 'Buying Settings'}, 'disable_fetch_last_purchase_rate', (r) => {
-			value = r && cint(r.disable_fetch_last_purchase_rate);
-			frm.toggle_display('get_last_purchase_rate', !value);
-		});
+		if (frm.doc.__onload) {
+			frm.toggle_display('get_last_purchase_rate',
+				frm.doc.__onload.disable_fetch_last_purchase_rate);
+		}
 
 		frm.set_indicator_formatter('item_code',
 			function(doc) { return (doc.qty<=doc.received_qty) ? "green" : "orange" })
diff --git a/erpnext/buying/doctype/purchase_order/purchase_order.py b/erpnext/buying/doctype/purchase_order/purchase_order.py
index 096b9c6..8075ab3 100644
--- a/erpnext/buying/doctype/purchase_order/purchase_order.py
+++ b/erpnext/buying/doctype/purchase_order/purchase_order.py
@@ -34,6 +34,12 @@
 			'overflow_type': 'order'
 		}]
 
+	def onload(self):
+		super(PurchaseOrder, self).onload()
+
+		self.set_onload('disable_fetch_last_purchase_rate',
+			cint(frappe.db.get_single_value("Buying Settings", "disable_fetch_last_purchase_rate")))
+
 	def validate(self):
 		super(PurchaseOrder, self).validate()
 
diff --git a/erpnext/manufacturing/doctype/production_planning_tool/production_planning_tool.py b/erpnext/manufacturing/doctype/production_planning_tool/production_planning_tool.py
index 3ef7be1..16a3023 100644
--- a/erpnext/manufacturing/doctype/production_planning_tool/production_planning_tool.py
+++ b/erpnext/manufacturing/doctype/production_planning_tool/production_planning_tool.py
@@ -310,6 +310,7 @@
 			}
 		"""
 		item_list = []
+		precision = frappe.get_precision("BOM Item", "stock_qty")
 
 		for bom, so_wise_qty in bom_dict.items():
 			bom_wise_item_details = {}
@@ -334,8 +335,9 @@
 
 			for item, item_details in bom_wise_item_details.items():
 				for so_qty in so_wise_qty:
-					item_list.append([item, flt(item_details.qty) * so_qty[1], item_details.description,
-						item_details.stock_uom, item_details.min_order_qty, so_qty[0]])
+					item_list.append([item, flt(flt(item_details.qty) * so_qty[1], precision),
+						item_details.description, item_details.stock_uom, item_details.min_order_qty,
+						so_qty[0]])
 
 		self.make_items_dict(item_list)
 
diff --git a/erpnext/patches/v7_0/convert_timelog_to_timesheet.py b/erpnext/patches/v7_0/convert_timelog_to_timesheet.py
index 9894c2a..4b6cf74 100644
--- a/erpnext/patches/v7_0/convert_timelog_to_timesheet.py
+++ b/erpnext/patches/v7_0/convert_timelog_to_timesheet.py
@@ -16,7 +16,7 @@
 		else:
 			company = frappe.db.get_single_value('Global Defaults', 'default_company')
 		
-		time_sheet = make_timesheet(data.production_order)
+		time_sheet = make_timesheet(data.production_order, company)
 		args = get_timelog_data(data)
 		add_timesheet_detail(time_sheet, args)
 		if data.docstatus == 2:
diff --git a/erpnext/public/less/pos.less b/erpnext/public/less/pos.less
index 0fcb654..af3008e 100644
--- a/erpnext/public/less/pos.less
+++ b/erpnext/public/less/pos.less
@@ -216,6 +216,10 @@
 	}
 
 	.grand-total-value {
-		font-size: 24px;
+		font-size: 18px;
 	}
+}
+
+.rounded-total-value {
+  font-size: 18px;
 }
\ No newline at end of file
diff --git a/erpnext/utilities/user_progress_utils.py b/erpnext/utilities/user_progress_utils.py
index 9d5c258..18d38c0 100644
--- a/erpnext/utilities/user_progress_utils.py
+++ b/erpnext/utilities/user_progress_utils.py
@@ -40,7 +40,7 @@
 @frappe.whitelist()
 def create_letterhead(args_data):
 	args = json.loads(args_data)
-	letterhead = args.get("letterhead")
+	letterhead = args.get("letterhead").encode('utf-8')
 	if letterhead:
 		try:
 			frappe.get_doc({
