From b31679b6ef45a7ded5db23a16800dfe1abe43527 Mon Sep 17 00:00:00 2001 From: Saqib Ansari Date: Fri, 14 Jan 2022 16:18:50 +0530 Subject: [PATCH] fix: customer filter while fetching active sla --- .../service_level_agreement.py | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) 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 c0ee1dc0e7..d6353873d7 100644 --- a/erpnext/support/doctype/service_level_agreement/service_level_agreement.py +++ b/erpnext/support/doctype/service_level_agreement/service_level_agreement.py @@ -265,9 +265,15 @@ def get_active_service_level_agreement_for(doc): ] customer = doc.get('customer') - or_filters.append( - ["Service Level Agreement", "entity", "in", [customer] + get_customer_group(customer) + get_customer_territory(customer)] - ) + if customer: + or_filters.extend([ + ["Service Level Agreement", "entity", "in", [customer] + get_customer_group(customer) + get_customer_territory(customer)], + ["Service Level Agreement", "entity_type", "is", "not set"] + ]) + else: + or_filters.append( + ["Service Level Agreement", "entity_type", "is", "not set"] + ) default_sla_filter = filters + [["Service Level Agreement", "default_service_level_agreement", "=", 1]] default_sla = frappe.get_all("Service Level Agreement", filters=default_sla_filter, @@ -379,12 +385,18 @@ def apply(doc, method=None): sla = get_active_service_level_agreement_for(doc) if not sla: - doc.service_level_agreement = None + remove_sla_if_applied() return process_sla(doc, sla) +def remove_sla_if_applied(doc): + doc.service_level_agreement = None + doc.response_by = None + doc.resolution_by = None + + def process_sla(doc, sla): if not doc.creation: