[script report] bank reconciliation statement in new style
diff --git a/accounts/page/accounts_home/accounts_home.js b/accounts/page/accounts_home/accounts_home.js
index 6a9f91a..5779307 100644
--- a/accounts/page/accounts_home/accounts_home.js
+++ b/accounts/page/accounts_home/accounts_home.js
@@ -188,6 +188,11 @@
 		icon: "icon-list",
 		items: [
 			{
+				"label":wn._("Bank Reconciliation Statement"),
+				route: "query-report/Bank Reconciliation Statement",
+				doctype: "Journal Voucher"
+			},
+			{
 				"label":wn._("Delivered Items To Be Billed"),
 				route: "query-report/Delivered Items To Be Billed",
 				doctype: "Sales Invoice"
diff --git a/accounts/report/bank_reconciliation_statement/__init__.py b/accounts/report/bank_reconciliation_statement/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/accounts/report/bank_reconciliation_statement/__init__.py
diff --git a/accounts/report/bank_reconciliation_statement/bank_reconciliation_statement.js b/accounts/report/bank_reconciliation_statement/bank_reconciliation_statement.js
new file mode 100644
index 0000000..28ac920
--- /dev/null
+++ b/accounts/report/bank_reconciliation_statement/bank_reconciliation_statement.js
@@ -0,0 +1,25 @@
+wn.query_reports["Bank Reconciliation Statement"] = {
+	"filters": [
+		{
+			"fieldname":"account",
+			"label": "Bank Account",
+			"fieldtype": "Link",
+			"options": "Account",
+			"get_query": function() {
+				return {
+					"query": "accounts.utils.get_account_list", 
+					"filters": {
+						"is_pl_account": "No",
+						"account_type": "Bank or Cash"
+					}
+				}
+			}
+		},
+		{
+			"fieldname":"report_date",
+			"label": "Date",
+			"fieldtype": "Date",
+			"default": get_today()
+		},
+	]
+}
\ No newline at end of file
diff --git a/accounts/report/bank_reconciliation_statement/bank_reconciliation_statement.py b/accounts/report/bank_reconciliation_statement/bank_reconciliation_statement.py
new file mode 100644
index 0000000..4275958
--- /dev/null
+++ b/accounts/report/bank_reconciliation_statement/bank_reconciliation_statement.py
@@ -0,0 +1,63 @@
+from __future__ import unicode_literals
+import webnotes
+from webnotes import _, msgprint
+from webnotes.utils import flt
+
+def execute(filters=None):
+	if not filters: filters = {}
+		
+	columns = get_columns()	
+	data = get_entries(filters)
+	
+	from accounts.utils import get_balance_on
+	balance_as_per_company = get_balance_on(filters["account"], filters["report_date"])
+
+	total_debit, total_credit = 0,0
+	for d in data:
+		total_debit += flt(d[4])
+		total_credit += flt(d[5])
+
+	if webnotes.conn.get_value("Account", filters["account"], "debit_or_credit") == 'Debit':
+		bank_bal = flt(balance_as_per_company) - flt(total_debit) + flt(total_credit)
+	else:
+		bank_bal = flt(balance_as_per_company) + flt(total_debit) - flt(total_credit)
+		
+	data += [
+		["", "", "", "Balance as per company books", balance_as_per_company, ""], 
+		["", "", "", "Amounts not reflected in bank", total_debit, total_credit], 
+		["", "", "", "Balance as per bank", bank_bal, ""]
+	]
+			
+	return columns, data
+	
+	
+def get_columns():
+	return ["Journal Voucher:Link/Journal Voucher:140", "Posting Date:Date:100", 
+		"Clearance Date:Date:110", "Against Account:Link/Account:200", 
+		"Debit:Currency:120", "Credit:Currency:120"
+	]
+
+def get_conditions(filters):
+	conditions = ""
+	if not filters.get("account"):
+		msgprint(_("Please select Bank Account"), raise_exception=1)
+	else:
+		conditions += " and jvd.account = %(account)s"
+		
+	if not filters.get("report_date"):
+		msgprint(_("Please select Date on which you want to run the report"), raise_exception=1)
+	else:
+		conditions += """ and jv.posting_date <= %(report_date)s 
+			and ifnull(jv.clearance_date, '4000-01-01') > %(report_date)s"""
+
+	return conditions
+	
+def get_entries(filters):
+	conditions = get_conditions(filters)
+	entries = webnotes.conn.sql("""select jv.name, jv.posting_date, jv.clearance_date, 
+		jvd.against_account, jvd.debit, jvd.credit
+		from `tabJournal Voucher Detail` jvd, `tabJournal Voucher` jv 
+		where jvd.parent = jv.name and jv.docstatus=1 and ifnull(jv.cheque_no, '')!= '' %s
+		order by jv.name DESC""" % conditions, filters, as_list=1)
+		
+	return entries
\ No newline at end of file
diff --git a/accounts/report/bank_reconciliation_statement/bank_reconciliation_statement.txt b/accounts/report/bank_reconciliation_statement/bank_reconciliation_statement.txt
new file mode 100644
index 0000000..9867c5d
--- /dev/null
+++ b/accounts/report/bank_reconciliation_statement/bank_reconciliation_statement.txt
@@ -0,0 +1,22 @@
+[
+ {
+  "creation": "2013-04-30 18:30:21", 
+  "docstatus": 0, 
+  "modified": "2013-05-01 10:53:12", 
+  "modified_by": "Administrator", 
+  "owner": "Administrator"
+ }, 
+ {
+  "add_total_row": 0, 
+  "doctype": "Report", 
+  "is_standard": "Yes", 
+  "name": "__common__", 
+  "ref_doctype": "Journal Voucher", 
+  "report_name": "Bank Reconciliation Statement", 
+  "report_type": "Script Report"
+ }, 
+ {
+  "doctype": "Report", 
+  "name": "Bank Reconciliation Statement"
+ }
+]
\ No newline at end of file