feat: filter sla based on customer in issue
This commit is contained in:
parent
24cef8e26e
commit
41bf0c6855
@ -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)
|
|
@ -1,6 +1,7 @@
|
|||||||
frappe.ui.form.on("Issue", {
|
frappe.ui.form.on("Issue", {
|
||||||
onload: function(frm) {
|
onload: function(frm) {
|
||||||
frm.email_field = "raised_by";
|
frm.email_field = "raised_by";
|
||||||
|
|
||||||
if (frm.doc.service_level_agreement) {
|
if (frm.doc.service_level_agreement) {
|
||||||
frappe.call({
|
frappe.call({
|
||||||
method: "erpnext.support.doctype.service_level_agreement.service_level_agreement.get_service_level_agreement_priorities",
|
method: "erpnext.support.doctype.service_level_agreement.service_level_agreement.get_service_level_agreement_priorities",
|
||||||
@ -19,6 +20,24 @@ frappe.ui.form.on("Issue", {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
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],
|
||||||
|
}
|
||||||
|
};
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -70,6 +70,18 @@ def get_active_service_level_agreement_for(priority, customer=None, service_leve
|
|||||||
def get_service_level_agreement_priorities(name):
|
def get_service_level_agreement_priorities(name):
|
||||||
return [priority.priority for priority in frappe.get_list("Service Level Priority", filters={"parent": name}, fields=["priority"])]
|
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):
|
def get_customer_group(customer):
|
||||||
if customer:
|
if customer:
|
||||||
return frappe.db.get_value("Customer", customer, "customer_group")
|
return frappe.db.get_value("Customer", customer, "customer_group")
|
||||||
|
Loading…
x
Reference in New Issue
Block a user