diff --git a/erpnext/support/doctype/issue/issue.py b/erpnext/support/doctype/issue/issue.py
index deeb8ae..c50a288 100644
--- a/erpnext/support/doctype/issue/issue.py
+++ b/erpnext/support/doctype/issue/issue.py
@@ -128,9 +128,7 @@
 		return replicated_issue.name
 
 	def before_insert(self):
-		if not self.priority:
-			self.priority = frappe.db.get_value("Issue Priority", {"default_priority": 1})
-		self.set_response_and_resolution_time(priority=self.priority)
+		self.set_response_and_resolution_time()
 
 	def set_response_and_resolution_time(self, priority=None, service_level_agreement=None):
 		service_level_agreement = get_active_service_level_agreement_for(priority=priority,
@@ -143,12 +141,13 @@
 			frappe.throw(_("This Service Level Agreement is specific to Customer {0}".format(service_level_agreement.customer)))
 
 		self.service_level_agreement = service_level_agreement.name
+		self.priority = service_level_agreement.default_priority if not priority else priority
 
-		service_level = frappe.get_doc("Service Level", service_level_agreement.service_level)
-		priority = service_level.get_service_level_priority(priority)
+		service_level_agreement = frappe.get_doc("Service Level Agreement", service_level_agreement.name)
+		priority = service_level_agreement.get_service_level_agreement_priority(self.priority)
 		priority.update({
-			"support_and_resolution": service_level.support_and_resolution,
-			"holiday_list": service_level.holiday_list
+			"support_and_resolution": service_level_agreement.support_and_resolution,
+			"holiday_list": service_level_agreement.holiday_list
 		})
 
 		if not self.creation:
diff --git a/erpnext/support/doctype/service_level/service_level.json b/erpnext/support/doctype/service_level/service_level.json
index 6718514..71e12c0 100644
--- a/erpnext/support/doctype/service_level/service_level.json
+++ b/erpnext/support/doctype/service_level/service_level.json
@@ -9,6 +9,7 @@
   "employee_group",
   "column_break_2",
   "holiday_list",
+  "default_priority",
   "response_and_resoution_time",
   "priorities",
   "section_break_01",
@@ -65,9 +66,16 @@
    "label": "Priorities",
    "options": "Service Level Priority",
    "reqd": 1
+  },
+  {
+   "fieldname": "default_priority",
+   "fieldtype": "Link",
+   "label": "Default Priority",
+   "options": "Issue Priority",
+   "read_only": 1
   }
  ],
- "modified": "2019-05-05 19:29:56.975951",
+ "modified": "2019-05-21 20:53:11.731727",
  "modified_by": "Administrator",
  "module": "Support",
  "name": "Service Level",
@@ -84,6 +92,18 @@
    "role": "System Manager",
    "share": 1,
    "write": 1
+  },
+  {
+   "create": 1,
+   "delete": 1,
+   "email": 1,
+   "export": 1,
+   "print": 1,
+   "read": 1,
+   "report": 1,
+   "role": "All",
+   "share": 1,
+   "write": 1
   }
  ],
  "sort_field": "modified",
diff --git a/erpnext/support/doctype/service_level/service_level.py b/erpnext/support/doctype/service_level/service_level.py
index a968ffe..857a216 100644
--- a/erpnext/support/doctype/service_level/service_level.py
+++ b/erpnext/support/doctype/service_level/service_level.py
@@ -12,7 +12,6 @@
 class ServiceLevel(Document):
 
 	def validate(self):
-		self.check_default_priority()
 		self.check_priorities()
 		self.check_support_and_resolution()
 
@@ -26,7 +25,9 @@
 				frappe.throw(_("Set Response Time and Resolution for Priority {0} at index {1}.".format(priority.priority, priority.idx)))
 
 			priorities.append(priority.priority)
-			#priorities.append(priority.priority)
+
+			if priority.default_priority:
+				default_priority.append(priority.default_priority)
 
 			if priority.response_time_period == "Hour":
 				response = priority.response_time * 0.0416667
@@ -50,6 +51,13 @@
 			repeated_priority = get_repeated(priorities)
 			frappe.throw(_("Priority {0} has been repeated.".format(repeated_priority)))
 
+		# Check if repeated default priority
+		if not len(set(default_priority)) == len(default_priority):
+			frappe.throw(_("Select only one Priority as Default."))
+
+		# set default priority from priorities
+		self.default_priority = next(d.priority for d in self.priorities if d.default_priority)
+
 	def check_support_and_resolution(self):
 		week = get_weekdays()
 		support_days = []
@@ -72,27 +80,13 @@
 			repeated_days = get_repeated(support_days)
 			frappe.throw(_("Workday {0} has been repeated.".format(repeated_days)))
 
-	def get_service_level_priority(self, priority):
-		priority = frappe.get_doc("Service Level Priority", {"priority": priority, "parent": self.name})
-
-		if priority:
-			return frappe._dict({
-						"priority": priority.priority,
-						"response_time": priority.response_time,
-						"response_time_period": priority.response_time_period,
-						"resolution_time": priority.resolution_time,
-						"resolution_time_period": priority.resolution_time_period
-					})
-		else:
-			frappe.throw(_("Service Level {0} doesn't have Priority {1}.".format(self.name, priority)))
-
 def get_repeated(values):
 	unique_list = []
 	diff = []
 	for value in values:
 		if value not in unique_list:
-			unique_list.append(value)
+			unique_list.append(str(value))
 		else:
 			if value not in diff:
-				diff.append(value)
+				diff.append(str(value))
 	return " ".join(diff)
diff --git a/erpnext/support/doctype/service_level_agreement/service_level_agreement.json b/erpnext/support/doctype/service_level_agreement/service_level_agreement.json
index fb7b4ea..b3166f0 100644
--- a/erpnext/support/doctype/service_level_agreement/service_level_agreement.json
+++ b/erpnext/support/doctype/service_level_agreement/service_level_agreement.json
@@ -8,10 +8,12 @@
   "service_level_agreement_name",
   "customer",
   "default_service_level_agreement",
+  "ignore_customer_and_default_sla",
   "holiday_list",
   "column_break_2",
   "service_level",
   "employee_group",
+  "default_priority",
   "agreement_details_section",
   "start_date",
   "agreement_status",
@@ -25,7 +27,7 @@
  ],
  "fields": [
   {
-   "depends_on": "eval: !doc.default_service_level_agreement",
+   "depends_on": "eval: !doc.default_service_level_agreement;\neval: !doc.ignore_customer_and_default_sla;",
    "fieldname": "customer",
    "fieldtype": "Link",
    "in_list_view": 1,
@@ -35,7 +37,7 @@
   },
   {
    "default": "0",
-   "depends_on": "eval: !doc.customer",
+   "depends_on": "eval: !doc.customer;\neval: !doc.ignore_customer_and_default_sla;",
    "fieldname": "default_service_level_agreement",
    "fieldtype": "Check",
    "in_list_view": 1,
@@ -139,9 +141,23 @@
    "fieldtype": "Check",
    "label": "Ignore Start and End Date",
    "set_only_once": 1
+  },
+  {
+   "fetch_from": "service_level.default_priority",
+   "fieldname": "default_priority",
+   "fieldtype": "Link",
+   "label": "Default Priority",
+   "options": "Issue Priority",
+   "read_only": 1
+  },
+  {
+   "default": "0",
+   "fieldname": "ignore_customer_and_default_sla",
+   "fieldtype": "Check",
+   "label": "Ignore Customer and Default SLA"
   }
  ],
- "modified": "2019-05-20 15:36:00.326471",
+ "modified": "2019-05-21 21:53:12.686806",
  "modified_by": "Administrator",
  "module": "Support",
  "name": "Service Level Agreement",
diff --git a/erpnext/support/doctype/service_level_agreement/service_level_agreement.py b/erpnext/support/doctype/service_level_agreement/service_level_agreement.py
index 11c510f..61c6cac 100644
--- a/erpnext/support/doctype/service_level_agreement/service_level_agreement.py
+++ b/erpnext/support/doctype/service_level_agreement/service_level_agreement.py
@@ -23,6 +23,17 @@
 			if not self.ignore_start_and_end_date and self.end_date < frappe.utils.getdate():
 				frappe.throw(_("End Date of Agreement can't be less than today."))
 
+	def get_service_level_agreement_priority(self, priority):
+		priority = frappe.get_doc("Service Level Priority", {"priority": priority, "parent": self.name})
+
+		return frappe._dict({
+			"priority": priority.priority,
+			"response_time": priority.response_time,
+			"response_time_period": priority.response_time_period,
+			"resolution_time": priority.resolution_time,
+			"resolution_time_period": priority.resolution_time_period
+		})
+
 def check_agreement_status():
 	service_level_agreements = frappe.get_list("Service Level Agreement", filters=[
 		{"agreement_status": "Active"},
@@ -34,17 +45,25 @@
 			frappe.db.set_value("Service Level Agreement", service_level_agreement.name,
 				"agreement_status", "Expired")
 
-@frappe.whitelist()
 def get_active_service_level_agreement_for(priority, customer=None, service_level_agreement=None):
+	filters = [
+		["Service Level Agreement", "agreement_status", "=", "Active"]
+	]
 
-	if customer and frappe.db.exists("Service Level Agreement", {"customer": customer}) and not service_level_agreement:
-		or_filter = {"customer": customer}
-	elif service_level_agreement:
-		or_filter = {"name": service_level_agreement}
-	else:
-		or_filter = {"default_service_level_agreement": 1}
+	if priority:
+		filters.append(["Service Level Priority", "priority", "=", priority])
 
-	agreement = frappe.get_list("Service Level Agreement", filters={"agreement_status": "Active"},
-		or_filters=or_filter, fields=["name", "service_level", "customer"])
+	or_filters = [
+		["Service Level Agreement", "customer", "=", customer],
+	]
+	if service_level_agreement:
+		or_filters = [
+			["Service Level Agreement", "name", "=", service_level_agreement],
+		]
+
+	or_filters.append(["Service Level Agreement", "default_service_level_agreement", "=", 1])
+
+	agreement = frappe.get_list("Service Level Agreement", filters=filters, or_filters=or_filters,
+		fields=["name", "default_priority", "customer"], debug=True)
 
 	return agreement[0] if agreement else None
\ No newline at end of file
diff --git a/erpnext/support/doctype/service_level_priority/service_level_priority.json b/erpnext/support/doctype/service_level_priority/service_level_priority.json
index fae225c..cd87a1c 100644
--- a/erpnext/support/doctype/service_level_priority/service_level_priority.json
+++ b/erpnext/support/doctype/service_level_priority/service_level_priority.json
@@ -28,14 +28,14 @@
    "fieldtype": "Section Break"
   },
   {
-   "columns": 2,
+   "columns": 1,
    "fieldname": "response_time",
    "fieldtype": "Int",
    "in_list_view": 1,
    "label": "Response Time"
   },
   {
-   "columns": 2,
+   "columns": 1,
    "fieldname": "resolution_time",
    "fieldtype": "Int",
    "in_list_view": 1,
@@ -69,11 +69,12 @@
    "default": "0",
    "fieldname": "default_priority",
    "fieldtype": "Check",
+   "in_list_view": 1,
    "label": "Default Priority"
   }
  ],
  "istable": 1,
- "modified": "2019-05-20 17:10:43.687547",
+ "modified": "2019-05-21 06:54:42.674377",
  "modified_by": "Administrator",
  "module": "Support",
  "name": "Service Level Priority",
