Merge branch 'develop' into issue-9424
diff --git a/erpnext/buying/doctype/request_for_quotation/test_request_for_quotation.py b/erpnext/buying/doctype/request_for_quotation/test_request_for_quotation.py
index 4f205c5..2e8b946 100644
--- a/erpnext/buying/doctype/request_for_quotation/test_request_for_quotation.py
+++ b/erpnext/buying/doctype/request_for_quotation/test_request_for_quotation.py
@@ -3,8 +3,10 @@
 # See license.txt
 from __future__ import unicode_literals
 
-import frappe
 import unittest
+
+import frappe
+from erpnext.templates.pages.rfq import check_supplier_has_docname_access
 from frappe.utils import nowdate
 
 class TestRequestforQuotation(unittest.TestCase):
@@ -28,6 +30,31 @@
 		self.assertEquals(sq1.get('items')[0].item_code, "_Test Item")
 		self.assertEquals(sq1.get('items')[0].qty, 5)
 
+	def test_make_supplier_quotation_with_special_characters(self):
+		from erpnext.buying.doctype.request_for_quotation.request_for_quotation import make_supplier_quotation
+
+		frappe.delete_doc_if_exists("Supplier", "_Test Supplier '1", force=1)
+		supplier = frappe.new_doc("Supplier")
+		supplier.supplier_name = "_Test Supplier '1"
+		supplier.supplier_type = "_Test Supplier Type"
+		supplier.insert()
+
+		rfq = make_request_for_quotation(supplier_wt_appos)
+
+		sq = make_supplier_quotation(rfq.name, supplier_wt_appos[0].get("supplier"))
+		sq.submit()
+
+		frappe.form_dict = frappe.local("form_dict")
+		frappe.form_dict.name = rfq.name
+
+		self.assertEqual(
+			check_supplier_has_docname_access(supplier_wt_appos[0].get('supplier')),
+			True
+		)
+
+		# reset form_dict
+		frappe.form_dict.name = None
+
 	def test_make_supplier_quotation_from_portal(self):
 		from erpnext.buying.doctype.request_for_quotation.request_for_quotation import create_supplier_quotation
 		rfq = make_request_for_quotation()
@@ -44,8 +71,11 @@
 		self.assertEquals(supplier_quotation_doc.get('items')[0].amount, 500)
 		
 
-def make_request_for_quotation():
-	supplier_data = get_supplier_data()
+def make_request_for_quotation(supplier_data=None):
+	"""
+	:param supplier_data: List containing supplier data
+	"""
+	supplier_data = supplier_data if supplier_data else get_supplier_data()
 	rfq = frappe.new_doc('Request for Quotation')
 	rfq.transaction_date = nowdate()
 	rfq.status = 'Draft'
@@ -77,3 +107,8 @@
 		"supplier": "_Test Supplier 1",
 		"supplier_name": "_Test Supplier 1"
 	}]
+
+supplier_wt_appos = [{
+	"supplier": "_Test Supplier '1",
+	"supplier_name": "_Test Supplier '1",
+}]
diff --git a/erpnext/templates/pages/rfq.py b/erpnext/templates/pages/rfq.py
index abc2890..aaf4110 100644
--- a/erpnext/templates/pages/rfq.py
+++ b/erpnext/templates/pages/rfq.py
@@ -29,7 +29,7 @@
 def check_supplier_has_docname_access(supplier):
 	status = True
 	if frappe.form_dict.name not in frappe.db.sql_list("""select parent from `tabRequest for Quotation Supplier`
-		where supplier = '{supplier}'""".format(supplier=supplier)):
+		where supplier = %s""", (supplier,)):
 		status = False
 	return status