Merge remote-tracking branch 'upstream/master' into develop

Conflicts:
	erpnext/accounts/report/general_ledger/general_ledger.py
diff --git a/erpnext/accounts/report/general_ledger/general_ledger.py b/erpnext/accounts/report/general_ledger/general_ledger.py
index 1229a05..a7b1d19 100644
--- a/erpnext/accounts/report/general_ledger/general_ledger.py
+++ b/erpnext/accounts/report/general_ledger/general_ledger.py
@@ -157,25 +157,44 @@
 	if filters.get("account") or filters.get("party"):
 		data += [get_balance_row(_("Opening"), opening, opening_in_account_currency), {}]
 
-	for acc, acc_dict in gle_map.items():
-		if acc_dict.entries:
-			# Opening for individual ledger, if grouped by account
-			if filters.get("group_by_account"):
-				data.append(get_balance_row(_("Opening"), acc_dict.opening,
-					acc_dict.opening_in_account_currency))
+	if filters.get("group_by_account"):
+		for acc, acc_dict in gle_map.items():
+			if acc_dict.entries:
+				# Opening for individual ledger, if grouped by account
+				if filters.get("group_by_account"):
+					data.append(get_balance_row(_("Opening"), acc_dict.opening,
+						acc_dict.opening_in_account_currency))
 
-			data += acc_dict.entries
+				data += acc_dict.entries
 
-			# Totals and closing for individual ledger, if grouped by account
-			if filters.get("group_by_account"):
-				account_closing = acc_dict.opening + acc_dict.total_debit - acc_dict.total_credit
-				account_closing_in_account_currency = acc_dict.opening_in_account_currency \
-					+ acc_dict.total_debit_in_account_currency - acc_dict.total_credit_in_account_currency
+				# Totals and closing for individual ledger, if grouped by account
+				if filters.get("group_by_account"):
+					account_closing = acc_dict.opening + acc_dict.total_debit - acc_dict.total_credit
+					account_closing_in_account_currency = acc_dict.opening_in_account_currency \
+						+ acc_dict.total_debit_in_account_currency - acc_dict.total_credit_in_account_currency
 
-				data += [{"account": "'" + _("Totals") + "'", "debit": acc_dict.total_debit,
-					"credit": acc_dict.total_credit},
-					get_balance_row(_("Closing (Opening + Totals)"),
-						account_closing, account_closing_in_account_currency), {}]
+					data += [{"account": "'" + _("Totals") + "'", "debit": acc_dict.total_debit,
+						"credit": acc_dict.total_credit},
+						get_balance_row(_("Closing (Opening + Totals)"),
+							account_closing, account_closing_in_account_currency), {}]
+
+	else:
+		from_date, to_date = getdate(filters.from_date), getdate(filters.to_date)
+		opening_debit = opening_credit = 0.0
+
+		for gl in gl_entries:
+			if gl.posting_date < from_date:
+				opening_debit += flt(gl.debit, 3)
+				opening_credit += flt(gl.credit, 3)
+			else:
+				data.append(gl)
+
+	if not (filters.get("account") or filters.get("party")):
+		data = [{
+			"account": "'" + _("Opening") + "'",
+			"debit": opening_debit,
+			"credit": opening_credit
+		}] + data
 
 	# Total debit and credit between from and to date
 	if total_debit or total_credit: