feat: filter sla based on customer in issue
diff --git a/erpnext/patches/v12_0/move_parameters_to_priority.py b/erpnext/patches/v12_0/move_parameters_to_priority.py
deleted file mode 100644
index 310bfe2..0000000
--- a/erpnext/patches/v12_0/move_parameters_to_priority.py
+++ /dev/null
@@ -1,38 +0,0 @@
-# Copyright (c) 2017, Frappe and Contributors
-# License: GNU General Public License v3. See license.txt
-
-from __future__ import unicode_literals
-import frappe
-
-def execute():
-	priority = ["Low", "Medium", "High"]
-
-	service_levels = frappe.get_list("Service Level")
-	for service_level in service_levels:
-		doc = frappe.get_doc("Service Level", service_level)
-		for value in priority:
-			doc.append("priorities",
-				{
-					"priority": "{0}".format(value),
-					"response_time": doc.response_time,
-					"response_time_period": doc.response_time_period,
-					"resolution_time": doc.resolution_time,
-					"resolution_time_period": doc.resolution_time_period,
-				}
-			)
-		doc.save(ignore_permissions=True)
-
-	service_level_agreements = frappe.get_list("Service Level Agreement")
-	for service_level_agreement in service_level_agreements:
-		doc = frappe.get_doc("Service Level Agreement", service_level_agreement)
-		for value in priority:
-			doc.append("priorities",
-				{
-					"priority": "{0}".format(value),
-					"response_time": doc.response_time,
-					"response_time_period": doc.response_time_period,
-					"resolution_time": doc.resolution_time,
-					"resolution_time_period": doc.resolution_time_period,
-				}
-			)
-		doc.save(ignore_permissions=True)
\ No newline at end of file
diff --git a/erpnext/support/doctype/issue/issue.js b/erpnext/support/doctype/issue/issue.js
index 7c93973..05bfe97 100644
--- a/erpnext/support/doctype/issue/issue.js
+++ b/erpnext/support/doctype/issue/issue.js
@@ -1,6 +1,7 @@
 frappe.ui.form.on("Issue", {
 	onload: function(frm) {
 		frm.email_field = "raised_by";
+
 		if (frm.doc.service_level_agreement) {
 			frappe.call({
 				method: "erpnext.support.doctype.service_level_agreement.service_level_agreement.get_service_level_agreement_priorities",
@@ -19,6 +20,24 @@
 					}
 				}
 			});
+
+			frappe.call({
+				method: "erpnext.support.doctype.service_level_agreement.service_level_agreement.get_valid_service_level_agreements",
+				args: {
+					customer: frm.doc.customer,
+				},
+				callback: function (r) {
+					if (r && r.message) {
+						frm.set_query('service_level_agreement', function() {
+							return {
+								filters: {
+									"name": ["in", r.message],
+								}
+							};
+						});
+					}
+				}
+			});
 		}
 	},
 
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 aeeb86d..5d71e1f 100644
--- a/erpnext/support/doctype/service_level_agreement/service_level_agreement.py
+++ b/erpnext/support/doctype/service_level_agreement/service_level_agreement.py
@@ -70,6 +70,18 @@
 def get_service_level_agreement_priorities(name):
 	return [priority.priority for priority in frappe.get_list("Service Level Priority", filters={"parent": name}, fields=["priority"])]
 
+@frappe.whitelist()
+def get_valid_service_level_agreements(customer):
+	or_filters = [
+		["Service Level Agreement", "entity", "in", [customer, get_customer_group(customer), get_customer_territory(customer), "IS NULL"]],
+		["Service Level Agreement", "default_service_level_agreement", "=", 1]
+	]
+
+	if not customer:
+		or_filters = ["Service Level Agreement", "default_service_level_agreement", "=", 1]
+
+	return [d.name for d in frappe.get_list("Service Level Agreement", or_filters=or_filters)]
+
 def get_customer_group(customer):
 	if customer:
 		return frappe.db.get_value("Customer", customer, "customer_group")