Merge pull request #2082 from nabinhait/hotfix

Bank reconciliation statement: show amounts which has cleared in the ban...
diff --git a/erpnext/accounts/report/bank_reconciliation_statement/bank_reconciliation_statement.py b/erpnext/accounts/report/bank_reconciliation_statement/bank_reconciliation_statement.py
index 119de09..4fda030 100644
--- a/erpnext/accounts/report/bank_reconciliation_statement/bank_reconciliation_statement.py
+++ b/erpnext/accounts/report/bank_reconciliation_statement/bank_reconciliation_statement.py
@@ -4,6 +4,7 @@
 from __future__ import unicode_literals
 import frappe
 from frappe.utils import flt
+from frappe import _
 
 def execute(filters=None):
 	if not filters: filters = {}
@@ -15,25 +16,38 @@
 	data = get_entries(filters)
 
 	from erpnext.accounts.utils import get_balance_on
-	balance_as_per_company = get_balance_on(filters["account"], filters["report_date"])
+	balance_as_per_system = get_balance_on(filters["account"], filters["report_date"])
 
 	total_debit, total_credit = 0,0
 	for d in data:
 		total_debit += flt(d[2])
 		total_credit += flt(d[3])
 
-	bank_bal = flt(balance_as_per_company) - flt(total_debit) + flt(total_credit)
+	amounts_not_reflected_in_system = frappe.db.sql("""select sum(ifnull(jvd.debit, 0) - ifnull(jvd.credit, 0))
+		from `tabJournal Voucher Detail` jvd, `tabJournal Voucher` jv
+		where jvd.parent = jv.name and jv.docstatus=1 and jvd.account=%s
+		and jv.posting_date > %s and jv.clearance_date <= %s
+		""", (filters["account"], filters["report_date"], filters["report_date"]))
+
+	amounts_not_reflected_in_system = flt(amounts_not_reflected_in_system[0][0]) \
+		if amounts_not_reflected_in_system else 0.0
+
+	bank_bal = flt(balance_as_per_system) - flt(total_debit) + flt(total_credit) \
+		+ amounts_not_reflected_in_system
 
 	data += [
-		get_balance_row("Balance as per company books", balance_as_per_company),
-		["", "Amounts not reflected in bank", total_debit, total_credit, "", "", "", ""],
-		get_balance_row("Balance as per bank", bank_bal)
+		get_balance_row(_("System Balance"), balance_as_per_system),
+		[""]*len(columns),
+		["", _("Amounts not reflected in bank"), total_debit, total_credit, "", "", "", ""],
+		get_balance_row(_("Amounts not reflected in system"), amounts_not_reflected_in_system),
+		[""]*len(columns),
+		get_balance_row(_("Expected balance as per bank"), bank_bal)
 	]
 
 	return columns, data
 
 def get_columns():
-	return ["Posting Date:Date:100", "Journal Voucher:Link/Journal Voucher:200",
+	return ["Posting Date:Date:100", "Journal Voucher:Link/Journal Voucher:220",
 		"Debit:Currency:120", "Credit:Currency:120",
 		"Against Account:Link/Account:200", "Reference::100", "Ref Date:Date:110", "Clearance Date:Date:110"
 	]
@@ -55,4 +69,4 @@
 	if amount > 0:
 		return ["", label, amount, 0, "", "", "", ""]
 	else:
-		return ["", label, 0, amount, "", "", "", ""]
+		return ["", label, 0, abs(amount), "", "", "", ""]