diff --git a/accounts/doctype/payment_to_invoice_matching_tool/payment_to_invoice_matching_tool.py b/accounts/doctype/payment_to_invoice_matching_tool/payment_to_invoice_matching_tool.py
index b1bec06..07a97d8 100644
--- a/accounts/doctype/payment_to_invoice_matching_tool/payment_to_invoice_matching_tool.py
+++ b/accounts/doctype/payment_to_invoice_matching_tool/payment_to_invoice_matching_tool.py
@@ -153,13 +153,14 @@
 			    		or ifnull(gle.against_voucher, '') = gle.voucher_no ) 
 					and ifnull(gle.%(account_type)s, 0) > 0 
 			   		and (select ifnull(abs(sum(ifnull(debit, 0)) 
-			   			- sum(ifnull(credit, 0))), 0) 
+			   				- sum(ifnull(credit, 0))), 0) 
 						from `tabGL Entry` 
 			        	where against_voucher_type = '%(dt)s' 
 			        		and against_voucher = gle.voucher_no 
 			        	and voucher_no != gle.voucher_no 
 			        	and ifnull(is_cancelled, 'No') = 'No') 
-							!= abs(ifnull(gle.debit, 0) - ifnull(gle.credit, 0)) 
+							!= abs(ifnull(gle.debit, 0) - ifnull(gle.credit, 0)
+						) 
 					%(mcond)s
 			    ORDER BY gle.posting_date desc, gle.voucher_no desc 
 			    limit %(start)s, %(page_len)s""" %  {dt:filters["dt"], acc:filters["acc"], 
diff --git a/accounts/doctype/pos_setting/pos_setting.js b/accounts/doctype/pos_setting/pos_setting.js
index aa9cf11..991c8da 100755
--- a/accounts/doctype/pos_setting/pos_setting.js
+++ b/accounts/doctype/pos_setting/pos_setting.js
@@ -55,7 +55,7 @@
 	return{
 		filters:{
 			'company_name': doc.company,
-			'group_or_ledger': "Ledger",
+			'group_or_ledger': "Ledger"
 		}
 	}	
 }
diff --git a/accounts/doctype/sales_invoice/sales_invoice.py b/accounts/doctype/sales_invoice/sales_invoice.py
index d7ab91a..e42cb73 100644
--- a/accounts/doctype/sales_invoice/sales_invoice.py
+++ b/accounts/doctype/sales_invoice/sales_invoice.py
@@ -990,8 +990,10 @@
 
 	return webnotes.conn.sql("""select tabAccount.name from `tabAccount` 
 			where (tabAccount.debit_or_credit="Credit" 
-				or tabAccount.account_type = "Income Account") 
-			and tabAccount.group_or_ledger="Ledger" and tabAccount.docstatus!=2 
-			and tabAccount.company = '%(company)s' and tabAccount.%(key)s LIKE '%(txt)s'
-			%(mcond)s""" % {'company': filters['company'], 'key': searchfield, 
+					or tabAccount.account_type = "Income Account") 
+				and tabAccount.group_or_ledger="Ledger" 
+				and tabAccount.docstatus!=2 
+				and tabAccount.company = '%(company)s' 
+				and tabAccount.%(key)s LIKE '%(txt)s'
+				%(mcond)s""" % {'company': filters['company'], 'key': searchfield, 
 			'txt': "%%%s%%" % txt, 'mcond':get_match_cond(doctype, searchfield)})
\ No newline at end of file
diff --git a/buying/doctype/quality_inspection/quality_inspection.js b/buying/doctype/quality_inspection/quality_inspection.js
index 72eaecb..d40d81a 100644
--- a/buying/doctype/quality_inspection/quality_inspection.js
+++ b/buying/doctype/quality_inspection/quality_inspection.js
@@ -43,15 +43,11 @@
 
 // item code based on GRN/DN
 cur_frm.fields_dict['item_code'].get_query = function(doc, cdt, cdn) {
-	filter = {};
-	if (doc.purchase_receipt_no)
-		filter:{
-			'parent': doc.purchase_receipt_no
-		}
-	else if (doc.delivery_note_no) 
-		filter:{
-			'parent': doc.delivery_note_no
-		}		
+	var filter = {};
+	if (doc.purchase_receipt_no) filter['parent'] = doc.purchase_receipt_no;
+		
+	else if (doc.delivery_note_no) filter['parent'] =  doc.delivery_note_no;
+
 	return{
 		filters: filter
 	}
@@ -59,15 +55,14 @@
 
 // Serial No based on item_code
 cur_frm.fields_dict['item_serial_no'].get_query = function(doc, cdt, cdn) {
-	filter = {};
+	var filter = {};
 	if (doc.item_code)
 		filter:{
 			'item_code': doc.item_code,
 			'status': "In Store"
 		}
-		// return 'SELECT name, item_code, warehouse FROM `tabSerial No` WHERE docstatus != 2 AND item_code = "' + doc.item_code +'" AND status = "In Store" AND %(key)s LIKE "%s" ORDER BY name ASC LIMIT 50';
 	else
-		filter:{ 'status': "In Store" }
-		// return 'SELECT name, item_code, warehouse FROM `tabSerial No` WHERE docstatus != 2 AND status = "In Store" AND %(key)s LIKE "%s" ORDER BY name ASC LIMIT 50';
-	return{	filters: filter	}
+		filter: { 'status': "In Store" }
+	
+	return { filters: filter }
 }
\ No newline at end of file
diff --git a/buying/doctype/supplier_quotation/supplier_quotation.js b/buying/doctype/supplier_quotation/supplier_quotation.js
index 54ef722..722ac00 100644
--- a/buying/doctype/supplier_quotation/supplier_quotation.js
+++ b/buying/doctype/supplier_quotation/supplier_quotation.js
@@ -67,7 +67,7 @@
 	function(doc, cdt, cdn) {
 		return{
 			filters:[
-				['Project', 'status', 'not in', 'Completed, Cancelled'],
+				['Project', 'status', 'not in', 'Completed, Cancelled']
 			]
 		}
 	}
diff --git a/projects/doctype/task/task.py b/projects/doctype/task/task.py
index 0072b1f..0ea9eea 100644
--- a/projects/doctype/task/task.py
+++ b/projects/doctype/task/task.py
@@ -96,8 +96,9 @@
 def get_project(doctype, txt, searchfield, start, page_len, filters):
 	from controllers.queries import get_match_cond
 	return webnotes.conn.sql(""" select name from `tabProject`
-			where %(key)s like "%(txt)s" %(mcond)s
-			order by name limit %(start)s, %(page_len)s
-		""" % {'key': searchfield, 'txt': "%%%s%%" % txt, 
-		'mcond':get_match_cond(doctype, searchfield),
-		'start': start, 'page_len': page_len})
\ No newline at end of file
+			where %(key)s like "%(txt)s"
+				%(mcond)s
+			order by name 
+			limit %(start)s, %(page_len)s """ % {'key': searchfield, 
+			'txt': "%%%s%%" % txt, 'mcond':get_match_cond(doctype, searchfield),
+			'start': start, 'page_len': page_len})
\ No newline at end of file
diff --git a/selling/doctype/opportunity/opportunity.py b/selling/doctype/opportunity/opportunity.py
index 6217821..92d391b 100644
--- a/selling/doctype/opportunity/opportunity.py
+++ b/selling/doctype/opportunity/opportunity.py
@@ -207,8 +207,9 @@
 def get_lead(doctype, txt, searchfield, start, page_len, filters):
 	from controllers.queries import get_match_cond
 	return webnotes.conn.sql ("""select `tabLead`.name, `tabLead`.lead_name FROM `tabLead` 
-			where `tabLead`.%(key)s like "%(txt)s" %(mcond)s	
-			order by `tabLead`.`name` asc limit %(start)s, %(page_len)s
-		""" % {'key': searchfield, 'txt': "%%%s%%" % txt, 
-		'mcond':get_match_cond(doctype, searchfield),
-		'start': start, 'page_len': page_len})
\ No newline at end of file
+			where `tabLead`.%(key)s like "%(txt)s" 
+				%(mcond)s	
+			order by `tabLead`.`name` asc 
+			limit %(start)s, %(page_len)s """ % {'key': searchfield, 
+			'txt': "%%%s%%" % txt, 'mcond':get_match_cond(doctype, searchfield),
+			'start': start, 'page_len': page_len})
\ No newline at end of file
diff --git a/selling/doctype/quotation/quotation.js b/selling/doctype/quotation/quotation.js
index cfaf611..0649f54 100644
--- a/selling/doctype/quotation/quotation.js
+++ b/selling/doctype/quotation/quotation.js
@@ -199,7 +199,7 @@
 		return {
 			query: 'selling.doctype.quotation.quotation.quotation_details',
 			filters:{
-				cond: cond,
+				cond: cond
 			}		
 		}	
 	}
diff --git a/selling/doctype/quotation/quotation.py b/selling/doctype/quotation/quotation.py
index 152e909..5bf8510 100644
--- a/selling/doctype/quotation/quotation.py
+++ b/selling/doctype/quotation/quotation.py
@@ -266,26 +266,35 @@
 
 	if filters.has_key('cust') and filters.has_key('precision'):
 		return webnotes.conn.sql("""select 	item.name, 
-					(select concat('Last Quote @ ', q.currency, ' ', format(q_item.export_rate, %(precision)s))
+					(select concat('Last Quote @ ', q.currency, ' ', 
+								format(q_item.export_rate, %(precision)s))
 						from `tabQuotation` q, `tabQuotation Item` q_item 
-						where q.name = q_item.parent and q_item.item_code = item.name
-						and q.docstatus = 1	and q.customer = "%(cust)s"
+						where q.name = q_item.parent 
+							and q_item.item_code = item.name
+							and q.docstatus = 1	
+							and q.customer = "%(cust)s"
 						order by q.transaction_date desc 
 						limit 1) as quote_rate,
-					(select concat('Last Sale @ ', si.currency, ' ', format(si_item.basic_rate, %(precision)s)) 
+					(select concat('Last Sale @ ', si.currency, ' ', 
+								format(si_item.basic_rate, %(precision)s)) 
 						from `tabSales Invoice` si, `tabSales Invoice Item` si_item 
-						where si.name = si_item.parent and si_item.item_code = item.name
-						and si.docstatus = 1 and si.customer ="%(cust)s"
+						where si.name = si_item.parent 
+							and si_item.item_code = item.name
+							and si.docstatus = 1 
+							and si.customer ="%(cust)s"
 						order by si.posting_date desc 
 						limit 1) as sales_rate,
 					item.item_name, item.description
 					from `tabItem` item 
-					where %(cond)s %(mcond)s and item.%(searchfield)s like '%(txt)s' order by item.name desc limit %(start)s, 
-					%(page_len)s """ % {'precision': filters["precision"], 'cust': filters['cust'], 
-				'cond': filters['cond'], 'searchfield': searchfield, 'txt': "%%%s%%" % txt, 
-				'mcond': get_match_cond(doctype, searchfield), 'start': start, 'page_len': page_len})
+					where %(cond)s %(mcond)s 
+						and item.%(searchfield)s like '%(txt)s' 
+					order by item.name desc limit %(start)s, %(page_len)s """ % {'precision': filters["precision"], 
+					'cust': filters['cust'], 'cond': filters['cond'], 'searchfield': searchfield, 
+					'txt': "%%%s%%" % txt, 'mcond': get_match_cond(doctype, searchfield), 
+					'start': start, 'page_len': page_len})
 
 	else:
-		webnotes.conn.sql(""" select name, item_name, description from `tabItem` item 
-		where %s %s and %s like %s order by name desc limit %s, %s""" % 
-		("%s", get_match_cond(doctype, searchfield), searchfield, "%s", "%s", "%s"), (filters["cond"], "%%%s%%" % txt, start, page_len))
\ No newline at end of file
+		return webnotes.conn.sql(""" select name, item_name, description from `tabItem` item 
+			where %s %s and %s like %s order by name desc limit %s, %s""" % 
+		("%s", get_match_cond(doctype, searchfield), searchfield, "%s", "%s", "%s"), 
+		(filters["cond"], "%%%s%%" % txt, start, page_len))
\ No newline at end of file
diff --git a/selling/doctype/sales_common/sales_common.py b/selling/doctype/sales_common/sales_common.py
index dfbfb48..00825bb 100644
--- a/selling/doctype/sales_common/sales_common.py
+++ b/selling/doctype/sales_common/sales_common.py
@@ -370,20 +370,30 @@
 
 	if filters.has_key('warehouse'):
 		return webnotes.conn.sql("""select batch_no from `tabStock Ledger Entry` sle 
-				where item_code = '%(item_code)s'  and warehouse = '%(warehouse)s' 
-				and ifnull(is_cancelled, 'No') = 'No' and batch_no like '%(txt)s' 
-				and exists(select * from `tabBatch` where 
-					name = sle.batch_no and expiry_date >= '%(posting_date)s' 
-					and docstatus != 2) %(mcond)s
+				where item_code = '%(item_code)s' 
+					and warehouse = '%(warehouse)s' 
+					and ifnull(is_cancelled, 'No') = 'No' 
+					and batch_no like '%(txt)s' 
+					and exists(select * from `tabBatch` 
+							where name = sle.batch_no 
+								and expiry_date >= '%(posting_date)s' 
+								and docstatus != 2) 
+					%(mcond)s
 				group by batch_no having sum(actual_qty) > 0 
-				order by batch_no desc limit %(start)s, %(page_len)s
-			""" % {'item_code': filters['item_code'], 'warehouse': filters['warehouse'], 
-			'posting_date': filters['posting_date'], 'txt': 'txt': "%%%s%%" % txt, 
-			'mcond':get_match_cond(doctype, searchfield),'start': start, 'page_len': page_len})
+				order by batch_no desc 
+				limit %(start)s, %(page_len)s """ % {'item_code': filters['item_code'], 
+					'warehouse': filters['warehouse'], 'posting_date': filters['posting_date'], 
+					'txt': "%%%s%%" % txt, 'mcond':get_match_cond(doctype, searchfield), 
+					'start': start, 'page_len': page_len})
 	else:
-		return webnotes.conn.sql("""select name from tabBatch where docstatus != 2 
-				and item = '%(item_code)s' and expiry_date >= '%(posting_date)s' 
-				and name like '%(txt)s' %(mcond)s ORDER BY name DESC LIMIT 50""" % 
-				{'item_code': filters['item_code'], 'posting_date': filters['posting_date'], 
-				'txt': 'txt': "%%%s%%" % txt, 'mcond':get_match_cond(doctype, searchfield),
-				'start': start, 'page_len': page_len})
\ No newline at end of file
+		return webnotes.conn.sql("""select name from tabBatch 
+				where docstatus != 2 
+					and item = '%(item_code)s' 
+					and expiry_date >= '%(posting_date)s' 
+					and name like '%(txt)s' 
+					%(mcond)s 
+				order by name desc 
+				limit %(start)s, %(page_len)s""" % {'item_code': filters['item_code'], 
+				'posting_date': filters['posting_date'], 'txt': "%%%s%%" % txt, 
+				'mcond':get_match_cond(doctype, searchfield),'start': start, 
+				'page_len': page_len})
\ No newline at end of file
diff --git a/stock/doctype/packing_slip/packing_slip.py b/stock/doctype/packing_slip/packing_slip.py
index a46d77c..63aa6a9 100644
--- a/stock/doctype/packing_slip/packing_slip.py
+++ b/stock/doctype/packing_slip/packing_slip.py
@@ -177,7 +177,9 @@
 	from controllers.queries import get_match_cond
 	return webnotes.conn.sql("""select name, item_name, description from `tabItem` 
 				where name in ( select item_code FROM `tabDelivery Note Item` 
-	 				where parent= %s and ifnull(qty, 0) > ifnull(packed_qty, 0)) 
-	 			and %s like "%s" %s limit  %s, %s """ % ("%s", searchfield, "%s", 
+	 						where parent= %s 
+	 							and ifnull(qty, 0) > ifnull(packed_qty, 0)) 
+	 			and %s like "%s" %s 
+	 			limit  %s, %s """ % ("%s", searchfield, "%s", 
 	 			get_match_cond(doctype, searchfield), "%s", "%s"), 
 	 			(filters["delivery_note"], "%%%s%%" % txt, start, page_len))
\ No newline at end of file
diff --git a/stock/doctype/stock_entry/stock_entry.py b/stock/doctype/stock_entry/stock_entry.py
index fc4fadc..d985432 100644
--- a/stock/doctype/stock_entry/stock_entry.py
+++ b/stock/doctype/stock_entry/stock_entry.py
@@ -717,7 +717,8 @@
 	
 	return webnotes.conn.sql("""select name, customer, customer_name
 		from `tab%s` where docstatus = 1
-		and (`%s` like %%(txt)s or `customer` like %%(txt)s) %s %s
+			and (`%s` like %%(txt)s 
+				or `customer` like %%(txt)s) %s %s
 		order by name, customer, customer_name
 		limit %s""" % (doctype, searchfield, conditions, 
 		get_match_cond(doctype, searchfield), "%(start)s, %(page_len)s"), 
@@ -728,7 +729,8 @@
 	from controllers.queries import get_match_cond
 	return webnotes.conn.sql("""select name, supplier, supplier_name
 		from `tab%s` where docstatus = 1
-		and (`%s` like %%(txt)s or `supplier` like %%(txt)s) %s
+			and (`%s` like %%(txt)s 
+				or `supplier` like %%(txt)s) %s
 		order by name, supplier, supplier_name
 		limit %s""" % (doctype, searchfield, get_match_cond(doctype, searchfield), 
 		"%(start)s, %(page_len)s"),	{"txt": "%%%s%%" % txt, "start": 
@@ -762,15 +764,21 @@
 	from controllers.queries import get_match_cond
 
 	return webnotes.conn.sql("""select batch_no from `tabStock Ledger Entry` sle 
-		where item_code = '%(item_code)s' and warehouse = '%(s_warehouse)s'
-		and ifnull(is_cancelled, 'No') = 'No' and batch_no like '%(txt)s' 
-		and exists(select * from `tabBatch` where name = sle.batch_no 
-			and expiry_date >= %(posting_date)s and docstatus != 2) %(mcond)s
-		group by batch_no having sum(actual_qty) > 0 
-		order by batch_no desc limit %(start)s, %(page_len)s """ 
-		% {'item_code': filters['item_code'], 's_warehouse': filters['s_warehouse'], 
-		'posting_date': filters['posting_date'], 'txt': "%%%s%%" % txt, 
-		'mcond':get_match_cond(doctype, searchfield),"start": start, "page_len": page_len})
+			where item_code = '%(item_code)s' 
+				and warehouse = '%(s_warehouse)s'
+				and ifnull(is_cancelled, 'No') = 'No' 
+				and batch_no like '%(txt)s' 
+				and exists(select * from `tabBatch` 
+						where name = sle.batch_no 
+							and expiry_date >= %(posting_date)s 
+							and docstatus != 2) 
+			%(mcond)s
+			group by batch_no having sum(actual_qty) > 0 
+			order by batch_no desc 
+			limit %(start)s, %(page_len)s """ % {'item_code': filters['item_code'], 
+			's_warehouse': filters['s_warehouse'], 'posting_date': filters['posting_date'], 
+			'txt': "%%%s%%" % txt, 'mcond':get_match_cond(doctype, searchfield), 
+			"start": start, "page_len": page_len})
 
 def get_stock_items_for_return(ref_doclist, parentfields):
 	"""return item codes filtered from doclist, which are stock items"""
diff --git a/support/doctype/maintenance_schedule/maintenance_schedule.py b/support/doctype/maintenance_schedule/maintenance_schedule.py
index 6260acd..56dceaa 100644
--- a/support/doctype/maintenance_schedule/maintenance_schedule.py
+++ b/support/doctype/maintenance_schedule/maintenance_schedule.py
@@ -335,12 +335,16 @@
 def get_sales_order_no(doctype, txt, searchfield, start, page_len, filters):
 	from controllers.queries import get_match_cond
 
-	return webnotes.conn.sql(""" select distinct `tabSales Order`.name from `tabSales Order`, 
-			`tabSales Order Item`, `tabItem` 
-    	where `tabSales Order`.company = "%(company)s" and `tabSales Order`.docstatus = 1 
-    	and `tabSales Order Item`.parent = `tabSales Order`.name 
-    	and `tabSales Order Item`.item_code = `tabItem`.name 
-     	and `tabItem`.is_service_item = "Yes" and %(cond)s `tabSales Order`.name LIKE "%(txt)s" %(mcond)s
-    	ORDER BY `tabSales Order`.name desc LIMIT %(start)s, %(page_len)s""" 
-    	% 'company': filters["company"], 'cond': filters['cond'], 'txt': "%%%s%%" % txt, 
-    	'mcond':get_match_cond(doctype, searchfield), "start": start, "page_len": page_len})
\ No newline at end of file
+	return webnotes.conn.sql(""" select distinct `tabSales Order`.name 
+			from `tabSales Order`, `tabSales Order Item`, `tabItem` 
+    		where `tabSales Order`.company = "%(company)s" 
+    			and `tabSales Order`.docstatus = 1 
+    			and `tabSales Order Item`.parent = `tabSales Order`.name 
+    			and `tabSales Order Item`.item_code = `tabItem`.name 
+     			and `tabItem`.is_service_item = "Yes" 
+     			and %(cond)s `tabSales Order`.name LIKE "%(txt)s" 
+     			%(mcond)s
+    		order by `tabSales Order`.name desc 
+    		limit %(start)s, %(page_len)s """ % {'company': filters["company"], 
+    		'cond': filters['cond'], 'txt': "%%%s%%" % txt, 'mcond':get_match_cond(doctype, searchfield), 
+    		'start': start, 'page_len': page_len})
\ No newline at end of file
