patch to fix incorrect gl entries due to payment reconciliation between 2013-03-11 and 2013-03-15
diff --git a/controllers/accounts_controller.py b/controllers/accounts_controller.py
index 73d7608..576921a 100644
--- a/controllers/accounts_controller.py
+++ b/controllers/accounts_controller.py
@@ -23,6 +23,9 @@
 class AccountsController(TransactionBase):
 	def get_gl_dict(self, args, cancel=None):
 		"""this method populates the common properties of a gl entry record"""
+		if cancel is None:
+			cancel = (self.doc.docstatus == 2)
+			
 		gl_dict = {
 			'company': self.doc.company, 
 			'posting_date': self.doc.posting_date,
@@ -30,7 +33,7 @@
 			'voucher_no': self.doc.name,
 			'aging_date': self.doc.fields.get("aging_date") or self.doc.posting_date,
 			'remarks': self.doc.remarks,
-			'is_cancelled': self.doc.docstatus == 2 and "Yes" or "No",
+			'is_cancelled': cancel and "Yes" or "No",
 			'fiscal_year': self.doc.fiscal_year,
 			'debit': 0,
 			'credit': 0,
diff --git a/patches/march_2013/p05_payment_reconciliation.py b/patches/march_2013/p05_payment_reconciliation.py
new file mode 100644
index 0000000..f2f0306
--- /dev/null
+++ b/patches/march_2013/p05_payment_reconciliation.py
@@ -0,0 +1,30 @@
+import webnotes
+
+def execute():
+	# delete wrong gle entries created due to a bug in make_gl_entries of Account Controller
+	# when using payment reconciliation
+	res = webnotes.conn.sql_list("""select distinct gl1.voucher_no
+		from `tabGL Entry` gl1, `tabGL Entry` gl2
+		where
+		(date(gl1.modified) between "2013-03-11" and "2013-03-15")
+		and date(gl1.modified) = date(gl2.modified)
+		and gl1.voucher_no = gl2.voucher_no
+		and gl1.voucher_type = "Journal Voucher"
+		and gl1.voucher_type = gl2.voucher_type
+		and gl1.posting_date = gl2.posting_date
+		and gl1.account = gl2.account
+		and ifnull(gl1.cost_center, "") = ifnull(gl2.cost_center, "")
+		and ifnull(gl1.is_cancelled, 'No') = 'No' and ifnull(gl2.is_cancelled, 'No') = 'No' 
+		and ifnull(gl1.against_voucher, '') = ifnull(gl2.against_voucher, '')
+		and ifnull(gl1.against_voucher_type, '') = ifnull(gl2.against_voucher_type, '')
+		and gl1.remarks = gl2.remarks
+		and ifnull(gl1.debit, 0) = ifnull(gl2.credit, 0)
+		and ifnull(gl1.credit, 0) = ifnull(gl2.debit, 0)
+		and gl1.name > gl2.name""")
+	
+	for r in res:
+		webnotes.conn.sql("""update `tabGL Entry` set `is_cancelled`='Yes'
+			where voucher_type='Journal Voucher' and voucher_no=%s""", r)
+		jv = webnotes.bean("Journal Voucher", r)
+		jv.run_method("make_gl_entries")
+	
\ No newline at end of file
diff --git a/patches/patch_list.py b/patches/patch_list.py
index bc68ea1..f5e3f40 100644
--- a/patches/patch_list.py
+++ b/patches/patch_list.py
@@ -211,4 +211,5 @@
 	"patches.march_2013.p02_get_global_default",
 	"patches.march_2013.p03_rename_blog_to_blog_post",
 	"execute:webnotes.reload_doc('hr', 'search_criteria', 'monthly_attendance_details')",
+	"patches.march_2013.p05_payment_reconciliation",
 ]
\ No newline at end of file