diff --git a/erpnext/support/doctype/issue/issue.js b/erpnext/support/doctype/issue/issue.js
index e2e6997..9dc3834 100644
--- a/erpnext/support/doctype/issue/issue.js
+++ b/erpnext/support/doctype/issue/issue.js
@@ -47,8 +47,13 @@
 
 	priority: function(frm) {
 		if (frm.doc.service_level_agreement) {
-			frm.call('change_sla_priority', {
-				"priority": frm.doc.priority
+			frappe.show_alert({
+				indicator: 'green',
+				message: __('Changing Priority.')
+			});
+			frm.call('change_service_level_agreement_and_priority', {
+				"priority": frm.doc.priority,
+				"service_level_agreement": frm.doc.service_level_agreement
 			}).then(() => {
 				frappe.msgprint(__("Issue Priority changed to {0}.", [frm.doc.priority]))
 				frm.refresh();
@@ -56,6 +61,20 @@
 		}
 	},
 
+	service_level_agreement: function(frm) {
+		frappe.show_alert({
+			indicator: 'green',
+			message: __('Changing Service Level Agreement.')
+		});
+		frm.call('change_service_level_agreement_and_priority', {
+			"priority": frm.doc.priority,
+			"service_level_agreement": frm.doc.service_level_agreement
+		}).then(() => {
+			frappe.msgprint(__("Service Level Agreement changed to {0}.", [frm.doc.service_level_agreement]))
+			frm.refresh();
+		});
+	},
+
 	timeline_refresh: function(frm) {
 		// create button for "Help Article"
 		if(frappe.model.can_create('Help Article')) {
diff --git a/erpnext/support/doctype/issue/issue.json b/erpnext/support/doctype/issue/issue.json
index 29cad62..df8197f 100644
--- a/erpnext/support/doctype/issue/issue.json
+++ b/erpnext/support/doctype/issue/issue.json
@@ -152,8 +152,7 @@
    "fieldname": "service_level_agreement",
    "fieldtype": "Link",
    "label": "Service Level Agreement",
-   "options": "Service Level Agreement",
-   "read_only": 1
+   "options": "Service Level Agreement"
   },
   {
    "fieldname": "response_by",
@@ -308,6 +307,7 @@
    "label": "Attachment"
   },
   {
+   "default": "0",
    "fieldname": "via_customer_portal",
    "fieldtype": "Check",
    "label": "Via Customer Portal"
@@ -316,28 +316,28 @@
    "default": "Ongoing",
    "fieldname": "agreement_fulfilled",
    "fieldtype": "Select",
-   "label": "Agreement Fulfilled",
+   "label": "Service Level Agreement Fulfilled",
    "options": "Ongoing\nFulfilled\nFailed",
    "read_only": 1
   },
   {
    "description": "in hours",
    "fieldname": "response_by_variance",
-   "fieldtype": "Int",
+   "fieldtype": "Float",
    "label": "Response By Variance",
    "read_only": 1
   },
   {
    "description": "in hours",
    "fieldname": "resolution_by_variance",
-   "fieldtype": "Int",
+   "fieldtype": "Float",
    "label": "Resolution By Variance",
    "read_only": 1
   }
  ],
  "icon": "fa fa-ticket",
  "idx": 7,
- "modified": "2019-05-10 22:31:09.391044",
+ "modified": "2019-05-19 11:02:10.962090",
  "modified_by": "Administrator",
  "module": "Support",
  "name": "Issue",
@@ -357,6 +357,7 @@
  ],
  "quick_entry": 1,
  "search_fields": "status,customer,subject,raised_by",
+ "sort_field": "modified",
  "sort_order": "ASC",
  "timeline_field": "customer",
  "title_field": "subject",
diff --git a/erpnext/support/doctype/issue/issue.py b/erpnext/support/doctype/issue/issue.py
index ee4a128..91333b6 100644
--- a/erpnext/support/doctype/issue/issue.py
+++ b/erpnext/support/doctype/issue/issue.py
@@ -130,13 +130,18 @@
 	def before_insert(self):
 		self.set_response_and_resolution_time(priority=self.priority)
 
-	def set_response_and_resolution_time(self, priority):
-		service_level_agreement = get_active_service_level_agreement_for(priority=priority, customer=self.customer)
-		if service_level_agreement:
-			self.service_level_agreement = service_level_agreement.name
-		else:
+	def set_response_and_resolution_time(self, priority=None, service_level_agreement=None):
+		service_level_agreement = get_active_service_level_agreement_for(priority=priority,
+			customer=self.customer, service_level_agreement=service_level_agreement)
+
+		if not service_level_agreement:
 			return
 
+		if service_level_agreement.customer and self.customer and not service_level_agreement.customer == self.customer:
+			frappe.throw(_("This Service Level Agreement is specific to Customer {0}".format(service_level_agreement.customer)))
+
+		self.service_level_agreement = service_level_agreement.name
+
 		service_level = frappe.get_doc("Service Level", service_level_agreement.service_level)
 		priority = service_level.get_service_level_priority(priority)
 		priority.update({
@@ -156,8 +161,8 @@
 		self.resolution_by_variance = round(time_diff_in_hours(self.resolution_by, now_datetime()))
 
 	@frappe.whitelist()
-	def change_sla_priority(self, priority):
-		self.set_response_and_resolution_time(priority=priority)
+	def change_service_level_agreement_and_priority(self, priority, service_level_agreement):
+		self.set_response_and_resolution_time(priority=priority, service_level_agreement=service_level_agreement)
 		self.save(ignore_permissions=True)
 
 def get_expected_time_for(parameter, service_level, start_date_time):
@@ -241,16 +246,18 @@
 	filters = {"status": "Open", "agreement_fulfilled": "Ongoing"}
 
 	if issue:
-		filters = {"status": issue}
+		filters = {"name": issue}
 
 	issues = frappe.get_list("Issue", filters=filters)
 	for issue in issues:
 		doc = frappe.get_doc("Issue", issue.name)
-		if not doc.first_responded_on and not doc.agreement_fulfilled == "Ongoing":
-			variance = round(time_diff_in_hours(doc.response_by, now_datetime()))
+		if not doc.first_responded_on:
+			variance = round(time_diff_in_hours(doc.response_by, now_datetime()), 2)
+			print(variance)
 			frappe.db.set_value("Issue", doc.name, "response_by_variance", variance)
-		if not doc.resolution_dateand and not doc.agreement_fulfilled == "Ongoing":
-			variance = round(time_diff_in_hours(self.resolution_by, now_datetime()))
+		if not doc.resolution_date:
+			variance = round(time_diff_in_hours(doc.resolution_by, now_datetime()), 2)
+			print(variance)
 			frappe.db.set_value("Issue", doc.name, "resolution_by_variance", variance)
 
 def get_list_context(context=None):
diff --git a/erpnext/support/doctype/service_level_agreement/service_level_agreement.js b/erpnext/support/doctype/service_level_agreement/service_level_agreement.js
index 4f334f2..1d486f4 100644
--- a/erpnext/support/doctype/service_level_agreement/service_level_agreement.js
+++ b/erpnext/support/doctype/service_level_agreement/service_level_agreement.js
@@ -26,13 +26,4 @@
 			}
 		});
 	},
-
-	validate: function(frm) {
-		frm.doc.sla_name = null;
-		var sla_name = 'Default Service Level Agreement';
-		if (frm.doc.customer){
-			sla_name = frm.doc.customer;
-		}
-		frm.doc.sla_name = sla_name;
-	},
 });
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 b63e2af..67e82f4 100644
--- a/erpnext/support/doctype/service_level_agreement/service_level_agreement.json
+++ b/erpnext/support/doctype/service_level_agreement/service_level_agreement.json
@@ -1,11 +1,11 @@
 {
- "autoname": "format:SLA-{sla_name}",
+ "autoname": "format:SLA-{service_level_agreement_name}",
  "creation": "2018-12-26 21:08:15.448812",
  "doctype": "DocType",
  "editable_grid": 1,
  "engine": "InnoDB",
  "field_order": [
-  "sla_name",
+  "service_level_agreement_name",
   "customer",
   "default_service_level_agreement",
   "holiday_list",
@@ -17,6 +17,7 @@
   "agreement_status",
   "column_break_7",
   "end_date",
+  "ignore_start_and_end_date",
   "response_and_resolution_time_section",
   "priorities",
   "support_and_resolution_section_break",
@@ -33,6 +34,7 @@
    "set_only_once": 1
   },
   {
+   "default": "0",
    "depends_on": "eval: !doc.customer",
    "fieldname": "default_service_level_agreement",
    "fieldtype": "Check",
@@ -75,7 +77,7 @@
    "label": "Agreement Details"
   },
   {
-   "depends_on": "eval: !doc.default_service_level_agreement",
+   "depends_on": "eval: !doc.default_service_level_agreement && !doc.ignore_start_and_end_date",
    "fieldname": "start_date",
    "fieldtype": "Date",
    "label": "Start Date"
@@ -94,7 +96,7 @@
    "fieldtype": "Column Break"
   },
   {
-   "depends_on": "eval: !doc.default_service_level_agreement",
+   "depends_on": "eval: !doc.default_service_level_agreement && !doc.ignore_start_and_end_date",
    "fieldname": "end_date",
    "fieldtype": "Date",
    "label": "End Date"
@@ -124,14 +126,21 @@
    "options": "Service Level Priority"
   },
   {
-   "fieldname": "sla_name",
+   "fieldname": "service_level_agreement_name",
    "fieldtype": "Data",
    "label": "Service Level Agreement Name",
-   "read_only": 1,
+   "reqd": 1,
    "unique": 1
+  },
+  {
+   "default": "0",
+   "fieldname": "ignore_start_and_end_date",
+   "fieldtype": "Check",
+   "label": "Ignore Start and End Date",
+   "set_only_once": 1
   }
  ],
- "modified": "2019-05-06 22:00:44.623128",
+ "modified": "2019-05-19 09:41:55.498800",
  "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 e0cbc59..876aaf5 100644
--- a/erpnext/support/doctype/service_level_agreement/service_level_agreement.py
+++ b/erpnext/support/doctype/service_level_agreement/service_level_agreement.py
@@ -10,20 +10,17 @@
 class ServiceLevelAgreement(Document):
 
 	def validate(self):
-		if not (self.customer or self.default_service_level_agreement):
-			frappe.throw(_("Select a Customer or set as Default Service Level Agreement."))
-
 		if self.default_service_level_agreement:
 			if frappe.db.exists("Service Level Agreement", {"default_service_level_agreement": "1", "name": ["!=", self.name]}):
 				frappe.throw(_("A Default Service Level Agreement already exists."))
 		else:
-			if not (self.start_date and self.end_date):
+			if not (self.start_date and self.end_date and self.ignore_start_and_end_date):
 				frappe.throw(_("Enter Start and End Date for the Agreement."))
 
-			if self.start_date >= self.end_date:
+			if self.start_date >= self.end_date and not self.ignore_start_and_end_date:
 				frappe.throw(_("Start Date of Agreement can't be greater than or equal to End Date."))
 
-			if self.end_date < frappe.utils.getdate():
+			if self.end_date < frappe.utils.nowdate() and not self.ignore_start_and_end_date:
 				frappe.throw(_("End Date of Agreement can't be less than today."))
 
 def check_agreement_status():
@@ -38,14 +35,16 @@
 				"agreement_status", "Expired")
 
 @frappe.whitelist()
-def get_active_service_level_agreement_for(priority, customer=None):
+def get_active_service_level_agreement_for(priority, customer=None, service_level_agreement=None):
 
-	if customer and frappe.db.exists("Service Level Agreement", {"customer": customer}):
+	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}
 
 	agreement = frappe.get_list("Service Level Agreement", filters={"agreement_status": "Active"},
-		or_filters=or_filter, fields=["name", "service_level"])
+		or_filters=or_filter, fields=["name", "service_level", "customer"])
 
 	return agreement[0] if agreement else None
\ No newline at end of file
