diff --git a/erpnext/selling/report/sales_person_wise_transaction_summary/sales_person_wise_transaction_summary.py b/erpnext/selling/report/sales_person_wise_transaction_summary/sales_person_wise_transaction_summary.py
index 0dee7ab..4761117 100644
--- a/erpnext/selling/report/sales_person_wise_transaction_summary/sales_person_wise_transaction_summary.py
+++ b/erpnext/selling/report/sales_person_wise_transaction_summary/sales_person_wise_transaction_summary.py
@@ -34,7 +34,7 @@
 
 def get_entries(filters):
 	date_field = filters["doc_type"] == "Sales Order" and "transaction_date" or "posting_date"
-	conditions, items = get_conditions(filters, date_field)
+	conditions, values = get_conditions(filters, date_field)
 	entries = frappe.db.sql("""select dt.name, dt.customer, dt.territory, dt.%s as posting_date,
 		dt_item.item_code, dt_item.qty, dt_item.base_net_amount, st.sales_person,
 		st.allocated_percentage, dt_item.base_net_amount*st.allocated_percentage/100 as contribution_amt
@@ -42,31 +42,33 @@
 		where st.parent = dt.name and dt.name = dt_item.parent and st.parenttype = %s
 		and dt.docstatus = 1 %s order by st.sales_person, dt.name desc""" %
 		(date_field, filters["doc_type"], filters["doc_type"], '%s', conditions),
-		tuple([filters["doc_type"]] + items), as_dict=1)
+		tuple([filters["doc_type"]] + values), as_dict=1, debug=1)
 
 	return entries
 
 def get_conditions(filters, date_field):
-	conditions = ""
-	if filters.get("company"): conditions += " and dt.company = '%s'" % \
-		filters["company"].replace("'", "\'")
-	if filters.get("customer"): conditions += " and dt.customer = '%s'" % \
-		filters["customer"].replace("'", "\'")
-	if filters.get("territory"): conditions += " and dt.territory = '%s'" % \
-		filters["territory"].replace("'", "\'")
-
-	if filters.get("from_date"): conditions += " and dt.%s >= '%s'" % \
-		(date_field, filters["from_date"])
-	if filters.get("to_date"): conditions += " and dt.%s <= '%s'" % (date_field, filters["to_date"])
-
-	if filters.get("sales_person"): conditions += " and st.sales_person = '%s'" % \
-	 	filters["sales_person"].replace("'", "\'")
+	conditions = [""]
+	values = []
+	
+	for field in ["company", "customer", "territory", "sales_person"]:
+		if filters.get(field):
+			conditions.append("dt.{0}=%s".format(field))
+			values.append(filters[field])
+		
+	if filters.get("from_date"):
+		conditions.append("dt.{0}>=%s".format(date_field))
+		values.append(filters["from_date"])
+		
+	if filters.get("to_date"):
+		conditions.append("dt.{0}<=%s".format(date_field))
+		values.append(filters["to_date"])
 
 	items = get_items(filters)
 	if items:
-		conditions += " and dt_item.item_code in (%s)" % ', '.join(['%s']*len(items))
+		conditions.append("dt_item.item_code in (%s)" % ', '.join(['%s']*len(items)))
+		values += items
 
-	return conditions, items
+	return " and ".join(conditions), values
 
 def get_items(filters):
 	if filters.get("item_group"): key = "item_group"
