Esempio n. 1
0
	def set_response_and_resolution_time(self, priority=None, service_level_agreement=None):
		service_level_agreement = get_active_service_level_agreement_for(self)

		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):
			frappe.throw(_("This Service Level Agreement is specific to Customer {0}").format(service_level_agreement.customer))

		self.service_level_agreement = service_level_agreement.name
		if not self.priority:
			self.priority = service_level_agreement.default_priority

		priority = get_priority(self)

		if not self.creation:
			self.creation = now_datetime()
			self.service_level_agreement_creation = now_datetime()

		start_date_time = get_datetime(self.service_level_agreement_creation)
		self.response_by = get_expected_time_for(parameter="response", service_level=priority, start_date_time=start_date_time)
		self.resolution_by = get_expected_time_for(parameter="resolution", service_level=priority, start_date_time=start_date_time)

		self.response_by_variance = round(time_diff_in_seconds(self.response_by, now_datetime()))
		self.resolution_by_variance = round(time_diff_in_seconds(self.resolution_by, now_datetime()))
Esempio n. 2
0
    def set_response_and_resolution_time(self,
                                         priority=None,
                                         service_level_agreement=None):
        service_level_agreement = get_active_service_level_agreement_for(
            priority=priority,
            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):
            frappe.throw(
                _("This Service Level Agreement is specific to Customer {0}".
                  format(service_level_agreement.customer)))

        self.service_level_agreement = service_level_agreement.name
        self.priority = service_level_agreement.default_priority if not priority else priority

        service_level_agreement = frappe.get_doc("Service Level Agreement",
                                                 service_level_agreement.name)
        priority = service_level_agreement.get_service_level_agreement_priority(
            self.priority)
        priority.update({
            "support_and_resolution":
            service_level_agreement.support_and_resolution,
            "holiday_list": service_level_agreement.holiday_list
        })

        if not self.creation:
            self.creation = now_datetime()
            self.service_level_agreement_creation = now_datetime()

        start_date_time = get_datetime(self.service_level_agreement_creation)
        self.response_by = get_expected_time_for(
            parameter='response',
            service_level=priority,
            start_date_time=start_date_time)
        self.resolution_by = get_expected_time_for(
            parameter='resolution',
            service_level=priority,
            start_date_time=start_date_time)

        self.response_by_variance = round(
            time_diff_in_hours(self.response_by, now_datetime()))
        self.resolution_by_variance = round(
            time_diff_in_hours(self.resolution_by, now_datetime()))