fix: miscellaneous fixes
diff --git a/erpnext/support/doctype/issue/issue.py b/erpnext/support/doctype/issue/issue.py
index c50a288..b47f710 100644
--- a/erpnext/support/doctype/issue/issue.py
+++ b/erpnext/support/doctype/issue/issue.py
@@ -135,9 +135,11 @@
customer=self.customer, service_level_agreement=service_level_agreement)
if not service_level_agreement:
+ if frappe.db.get_value("Issue", self.name, "service_level_agreement"):
+ frappe.throw(_("Couldn't Set Service Level Agreement {0}.".format(self.service_level_agreement)))
return
- if service_level_agreement.customer and self.customer and not service_level_agreement.customer == self.customer:
+ 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
diff --git a/erpnext/support/doctype/service_level/service_level.json b/erpnext/support/doctype/service_level/service_level.json
index 71e12c0..d4ce7d3 100644
--- a/erpnext/support/doctype/service_level/service_level.json
+++ b/erpnext/support/doctype/service_level/service_level.json
@@ -7,6 +7,7 @@
"field_order": [
"service_level",
"employee_group",
+ "priorities_list",
"column_break_2",
"holiday_list",
"default_priority",
@@ -73,9 +74,15 @@
"label": "Default Priority",
"options": "Issue Priority",
"read_only": 1
+ },
+ {
+ "fieldname": "priorities_list",
+ "fieldtype": "Long Text",
+ "hidden": 1,
+ "label": "Priorities List"
}
],
- "modified": "2019-05-21 20:53:11.731727",
+ "modified": "2019-05-25 20:18:00.240337",
"modified_by": "Administrator",
"module": "Support",
"name": "Service Level",
diff --git a/erpnext/support/doctype/service_level/service_level.py b/erpnext/support/doctype/service_level/service_level.py
index 857a216..80e4e22 100644
--- a/erpnext/support/doctype/service_level/service_level.py
+++ b/erpnext/support/doctype/service_level/service_level.py
@@ -13,6 +13,7 @@
def validate(self):
self.check_priorities()
+ self.set_priorities()
self.check_support_and_resolution()
def check_priorities(self):
@@ -56,7 +57,18 @@
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)
+ try:
+ self.default_priority = next(d.priority for d in self.priorities if d.default_priority)
+ except Exception:
+ frappe.throw(_("Select a Default Priority."))
+
+ def set_priorities(self):
+ priorities = []
+
+ for priority in self.priorities:
+ priorities.append(priority.priority)
+
+ self.priorities_list = ",".join(priorities)
def check_support_and_resolution(self):
week = get_weekdays()
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 b3166f0..98baa6e 100644
--- a/erpnext/support/doctype/service_level_agreement/service_level_agreement.json
+++ b/erpnext/support/doctype/service_level_agreement/service_level_agreement.json
@@ -8,8 +8,8 @@
"service_level_agreement_name",
"customer",
"default_service_level_agreement",
- "ignore_customer_and_default_sla",
"holiday_list",
+ "priorities_list",
"column_break_2",
"service_level",
"employee_group",
@@ -27,7 +27,7 @@
],
"fields": [
{
- "depends_on": "eval: !doc.default_service_level_agreement;\neval: !doc.ignore_customer_and_default_sla;",
+ "depends_on": "eval: !doc.default_service_level_agreement;",
"fieldname": "customer",
"fieldtype": "Link",
"in_list_view": 1,
@@ -37,7 +37,7 @@
},
{
"default": "0",
- "depends_on": "eval: !doc.customer;\neval: !doc.ignore_customer_and_default_sla;",
+ "depends_on": "eval: !doc.customer;",
"fieldname": "default_service_level_agreement",
"fieldtype": "Check",
"in_list_view": 1,
@@ -151,13 +151,14 @@
"read_only": 1
},
{
- "default": "0",
- "fieldname": "ignore_customer_and_default_sla",
- "fieldtype": "Check",
- "label": "Ignore Customer and Default SLA"
+ "fetch_from": "service_level.priorities_list",
+ "fieldname": "priorities_list",
+ "fieldtype": "Text",
+ "hidden": 1,
+ "label": "Priorities List"
}
],
- "modified": "2019-05-21 21:53:12.686806",
+ "modified": "2019-05-25 20:20:41.231834",
"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 61c6cac..d1d0407 100644
--- a/erpnext/support/doctype/service_level_agreement/service_level_agreement.py
+++ b/erpnext/support/doctype/service_level_agreement/service_level_agreement.py
@@ -20,7 +20,7 @@
if not self.ignore_start_and_end_date and self.start_date >= self.end_date:
frappe.throw(_("Start Date of Agreement can't be greater than or equal to End Date."))
- if not self.ignore_start_and_end_date and self.end_date < frappe.utils.getdate():
+ if not self.ignore_start_and_end_date and self.end_date < frappe.utils.today():
frappe.throw(_("End Date of Agreement can't be less than today."))
def get_service_level_agreement_priority(self, priority):
@@ -54,7 +54,7 @@
filters.append(["Service Level Priority", "priority", "=", priority])
or_filters = [
- ["Service Level Agreement", "customer", "=", customer],
+ ["Service Level Agreement", "customer", "=", customer]
]
if service_level_agreement:
or_filters = [