[fix] [minor] recreate gl entries when using auto inventory accounting to fix bug introduced due to commit - 5dd6b1d082d180133813c1c661d5e72076a19491
diff --git a/patches/september_2013/p01_fix_buying_amount_gl_entries.py b/patches/september_2013/p01_fix_buying_amount_gl_entries.py
index 7812a2a..0a25cd4 100644
--- a/patches/september_2013/p01_fix_buying_amount_gl_entries.py
+++ b/patches/september_2013/p01_fix_buying_amount_gl_entries.py
@@ -12,12 +12,12 @@
 	
 	# fix delivery note
 	for dn in webnotes.conn.sql_list("""select name from `tabDelivery Note` where docstatus=1
-		and posting_date >= "2013-08-06" """):
+		and posting_date >= "2013-08-06" order by posting_date"""):
 			recreate_gl_entries("Delivery Note", dn, "delivery_note_details")
 	
 	# fix sales invoice
 	for si in webnotes.conn.sql_list("""select name from `tabSales Invoice` where docstatus=1
-		and update_stock=1 and posting_date >= "2013-08-06" """):
+		and update_stock=1 and posting_date >= "2013-08-06" order by posting_date"""):
 			recreate_gl_entries("Sales Invoice", si, "entries")
 	
 def recreate_gl_entries(doctype, name, parentfield):
@@ -27,24 +27,34 @@
 	
 	# update missing expense account and cost center
 	for item in bean.doclist.get({"parentfield": parentfield}):
-		if item.buying_amount and not (item.expense_account and item.cost_center):
+		if item.buying_amount and not validate_item_values(item, bean.doc.company):
 			res = webnotes.conn.sql("""select expense_account, cost_center
 				from `tab%s` child where docstatus=1 and item_code=%s and
 					ifnull(expense_account, '')!='' and ifnull(cost_center, '')!='' and
 					(select company from `tabAccount` ac where ac.name=child.expense_account)=%s and
-					(select company from `tabCost Center` cc where cc.name=child.cost_center)=%s
+					(select company from `tabCost Center` cc where cc.name=child.cost_center)=%s and
 					order by creation desc limit 1""" % (item.doctype, "%s", "%s", "%s"), 
 					(item.item_code, bean.doc.company, bean.doc.company))
 			if res:
-				if not item.expense_account:
-					item.expense_account = res[0][0]
-				if not item.cost_center:
-					item.cost_center = res[0][1]
-			
+				item.expense_account = res[0][0]
+				item.cost_center = res[0][1]
+		
 				webnotes.conn.set_value(item.doctype, item.name, "expense_account", item.expense_account)
 				webnotes.conn.set_value(item.doctype, item.name, "cost_center", item.cost_center)
 	
 	# remove gl entries
 	webnotes.conn.sql("""delete from `tabGL Entry` where voucher_type=%s
 		and voucher_no=%s""", (doctype, name))
-	bean.run_method("make_gl_entries")
\ No newline at end of file
+	bean.run_method("make_gl_entries")
+	
+def validate_item_values(item, company):
+	if item.expense_account and \
+		webnotes.conn.get_value("Account", item.expense_account, "company")!=company:
+			return False
+	elif item.cost_center and \
+		webnotes.conn.get_value("Cost Center", item.cost_center, "company")!=company:
+			return False
+	elif not (item.expense_account and item.cost_center):
+		return False
+		
+	return True
\ No newline at end of file