patch: fix to migrate to new sla structure
diff --git a/erpnext/patches.txt b/erpnext/patches.txt
index 01270e4..9c74f27 100644
--- a/erpnext/patches.txt
+++ b/erpnext/patches.txt
@@ -601,3 +601,4 @@
 erpnext.patches.v11_1.rename_depends_on_lwp
 execute:frappe.delete_doc("Report", "Inactive Items")
 erpnext.patches.v11_1.delete_scheduling_tool
+erpnext.patches.v12_0.move_parameters_to_priority
\ No newline at end of file
diff --git a/erpnext/patches/v12_0/move_parameters_to_priority.py b/erpnext/patches/v12_0/move_parameters_to_priority.py
index 395d225..bdecb31 100644
--- a/erpnext/patches/v12_0/move_parameters_to_priority.py
+++ b/erpnext/patches/v12_0/move_parameters_to_priority.py
@@ -5,58 +5,34 @@
 import frappe
 
 def execute():
-	service_levels = frappe.get_list("Service Level")
-	for service_level in service_levels:
-		doc = frappe.get_doc("Service Level", service_level.name)
-		doc.append("priority",
-			{
-				"priority": "Low",
-				"response_time": doc.response_time,
-				"response_time_period": doc.resolution_time_period,
-				"resolution_time": doc.resolution_time,
-				"resolution_time_period": doc.resolution_time_period,
-			},
-			{
-				"priority": "Medium",
-				"response_time": doc.response_time,
-				"response_time_period": doc.resolution_time_period,
-				"resolution_time": doc.resolution_time,
-				"resolution_time_period": doc.resolution_time_period,
-			},
-			{
-				"priority": "High",
-				"response_time": doc.response_time,
-				"response_time_period": doc.resolution_time_period,
-				"resolution_time": doc.resolution_time,
-				"resolution_time_period": doc.resolution_time_period,
-			}
-		)
-		doc.save(ignore_permissions=True)
+	priorities = ["Low", "Medium", "High"]
 
-	service_level_agreements = frappe.get_list("Service Level Agreement")
+	service_levels = frappe.get_list("Service Level",
+		fields=["name", "priority", "response_time", "response_time_period", "resolution_time", "resolution_time_period"])
+	for service_level in service_levels:
+		for value in priorities:
+			doc = frappe.get_doc({
+				"doctype": "Service Level Priority",
+				"parent": service_level.name,
+				"parenttype": "Service Level",
+				"priority": value,
+				"response_time": service_level.response_time,
+				"response_time_period": service_level.response_time_period,
+				"resolution_time": service_level.resolution_time,
+				"resolution_time_period": service_level.resolution_time_period,
+			}).insert(ignore_permissions=True)
+
+	service_level_agreements = frappe.get_list("Service Level Agreement",
+		fields=["name", "priority", "response_time", "response_time_period", "resolution_time", "resolution_time_period"])
 	for service_level_agreement in service_level_agreements:
-		doc = frappe.get_doc("Service Level Agreement", service_level_agreement.name)
-		doc.append("priority",
-			{
-				"priority": "Low",
-				"response_time": doc.response_time,
-				"response_time_period": doc.resolution_time_period,
-				"resolution_time": doc.resolution_time,
-				"resolution_time_period": doc.resolution_time_period,
-			},
-			{
-				"priority": "Medium",
-				"response_time": doc.response_time,
-				"response_time_period": doc.resolution_time_period,
-				"resolution_time": doc.resolution_time,
-				"resolution_time_period": doc.resolution_time_period,
-			},
-			{
-				"priority": "High",
-				"response_time": doc.response_time,
-				"response_time_period": doc.resolution_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
+		for value in priorities:
+			doc = frappe.get_doc({
+				"doctype": "Service Level Priority",
+				"parent": service_level_agreement.name,
+				"parenttype": "Service Level Agreement",
+				"priority": value,
+				"response_time": service_level_agreement.response_time,
+				"response_time_period": service_level_agreement.response_time_period,
+				"resolution_time": service_level_agreement.resolution_time,
+				"resolution_time_period": service_level_agreement.resolution_time_period,
+			}).insert(ignore_permissions=True)
\ No newline at end of file