Option for selecting already reconciled entries in bank reconciliation #1310
diff --git a/erpnext/accounts/doctype/bank_reconciliation/bank_reconciliation.json b/erpnext/accounts/doctype/bank_reconciliation/bank_reconciliation.json
index eff6e6d..d0757fd 100644
--- a/erpnext/accounts/doctype/bank_reconciliation/bank_reconciliation.json
+++ b/erpnext/accounts/doctype/bank_reconciliation/bank_reconciliation.json
@@ -2,7 +2,7 @@
  "allow_copy": 1, 
  "allow_email": 1, 
  "allow_print": 1, 
- "creation": "2013-01-10 16:34:05.000000", 
+ "creation": "2013-01-10 16:34:05", 
  "docstatus": 0, 
  "doctype": "DocType", 
  "fields": [
@@ -10,6 +10,7 @@
    "description": "Select account head of the bank where cheque was deposited.", 
    "fieldname": "bank_account", 
    "fieldtype": "Link", 
+   "in_list_view": 1, 
    "label": "Bank Account", 
    "options": "Account", 
    "permlevel": 0, 
@@ -19,6 +20,7 @@
    "fieldname": "company", 
    "fieldtype": "Link", 
    "hidden": 1, 
+   "in_list_view": 1, 
    "label": "Company", 
    "options": "Company", 
    "permlevel": 0, 
@@ -28,6 +30,7 @@
   {
    "fieldname": "from_date", 
    "fieldtype": "Date", 
+   "in_list_view": 1, 
    "label": "From Date", 
    "permlevel": 0, 
    "reqd": 1
@@ -35,14 +38,22 @@
   {
    "fieldname": "to_date", 
    "fieldtype": "Date", 
+   "in_list_view": 1, 
    "label": "To Date", 
    "permlevel": 0, 
    "reqd": 1
   }, 
   {
-   "fieldname": "get_non_reconciled_entries", 
+   "fieldname": "include_reconciled_entries", 
+   "fieldtype": "Check", 
+   "in_list_view": 1, 
+   "label": "Include Reconciled Entries", 
+   "permlevel": 0
+  }, 
+  {
+   "fieldname": "get_relevant_entries", 
    "fieldtype": "Button", 
-   "label": "Get Non Reconciled Entries", 
+   "label": "Get Relevant Entries", 
    "options": "get_details", 
    "permlevel": 0
   }, 
@@ -74,7 +85,7 @@
  "icon": "icon-check", 
  "idx": 1, 
  "issingle": 1, 
- "modified": "2013-07-05 14:26:22.000000", 
+ "modified": "2014-05-06 16:26:08.984595", 
  "modified_by": "Administrator", 
  "module": "Accounts", 
  "name": "Bank Reconciliation", 
diff --git a/erpnext/accounts/doctype/bank_reconciliation/bank_reconciliation.py b/erpnext/accounts/doctype/bank_reconciliation/bank_reconciliation.py
index 8bf1172..a411898 100644
--- a/erpnext/accounts/doctype/bank_reconciliation/bank_reconciliation.py
+++ b/erpnext/accounts/doctype/bank_reconciliation/bank_reconciliation.py
@@ -3,7 +3,7 @@
 
 from __future__ import unicode_literals
 import frappe
-from frappe.utils import cstr, flt, getdate, nowdate
+from frappe.utils import flt, getdate, nowdate
 from frappe import msgprint, _
 from frappe.model.document import Document
 
@@ -13,29 +13,34 @@
 			msgprint("Bank Account, From Date and To Date are Mandatory")
 			return
 
+		condition = ""
+		if not self.include_reconciled_entries:
+			condition = "and ifnull(clearance_date, '') in ('', '0000-00-00')"
+
+
 		dl = frappe.db.sql("""select t1.name, t1.cheque_no, t1.cheque_date, t2.debit,
-				t2.credit, t1.posting_date, t2.against_account
+				t2.credit, t1.posting_date, t2.against_account, t1.clearance_date
 			from
 				`tabJournal Voucher` t1, `tabJournal Voucher Detail` t2
 			where
 				t2.parent = t1.name and t2.account = %s
-				and (clearance_date is null or clearance_date = '0000-00-00' or clearance_date = '')
-				and t1.posting_date >= %s and t1.posting_date <= %s and t1.docstatus=1""",
-				(self.bank_account, self.from_date, self.to_date))
+				and t1.posting_date >= %s and t1.posting_date <= %s and t1.docstatus=1 %s""" %
+				('%s', '%s', '%s', condition), (self.bank_account, self.from_date, self.to_date), as_dict=1)
 
 		self.set('entries', [])
 		self.total_amount = 0.0
 
 		for d in dl:
 			nl = self.append('entries', {})
-			nl.posting_date = cstr(d[5])
-			nl.voucher_id = cstr(d[0])
-			nl.cheque_number = cstr(d[1])
-			nl.cheque_date = cstr(d[2])
-			nl.debit = flt(d[3])
-			nl.credit = flt(d[4])
-			nl.against_account = cstr(d[6])
-			self.total_amount += flt(flt(d[4]) - flt(d[3]))
+			nl.posting_date = d.posting_date
+			nl.voucher_id = d.name
+			nl.cheque_number = d.cheque_no
+			nl.cheque_date = d.cheque_date
+			nl.debit = d.debit
+			nl.credit = d.credit
+			nl.against_account = d.against_account
+			nl.clearance_date = d.clearance_date
+			self.total_amount += flt(d.debit) - flt(d.credit)
 
 	def update_details(self):
 		vouchers = []