Esempio n. 1
0
    def test_service_level(self):
        employee_group = make_employee_group()
        make_holiday_list()
        make_priorities()

        # Default Service Level
        test_make_service_level = create_service_level("__Test Service Level",
                                                       "__Test Holiday List",
                                                       employee_group, 4, 6)
        get_make_service_level = get_service_level("__Test Service Level")

        self.assertEqual(test_make_service_level.name,
                         get_make_service_level.name)
        self.assertEqual(test_make_service_level.holiday_list,
                         get_make_service_level.holiday_list)
        self.assertEqual(test_make_service_level.employee_group,
                         get_make_service_level.employee_group)

        # Service Level
        test_make_service_level = create_service_level("_Test Service Level",
                                                       "__Test Holiday List",
                                                       employee_group, 2, 3)
        get_make_service_level = get_service_level("_Test Service Level")

        self.assertEqual(test_make_service_level.name,
                         get_make_service_level.name)
        self.assertEqual(test_make_service_level.holiday_list,
                         get_make_service_level.holiday_list)
        self.assertEqual(test_make_service_level.employee_group,
                         get_make_service_level.employee_group)
Esempio n. 2
0
def create_service_level_for_sla():
    employee_group = make_employee_group()
    make_holiday_list()
    make_priorities()

    # Default Service Level
    create_service_level("__Test Service Level", "__Test Holiday List",
                         employee_group, 4, 6)

    # Service Level
    create_service_level("_Test Service Level", "__Test Holiday List",
                         employee_group, 2, 3)
def create_service_level_agreement(
	default_service_level_agreement,
	holiday_list,
	response_time,
	entity_type,
	entity,
	resolution_time=0,
	doctype="Issue",
	condition="",
	sla_fulfilled_on=[],
	pause_sla_on=[],
	apply_sla_for_resolution=1,
	service_level=None,
	start_time="10:00:00",
	end_time="18:00:00",
):

	make_holiday_list()
	make_priorities()

	if not sla_fulfilled_on:
		sla_fulfilled_on = [{"status": "Resolved"}, {"status": "Closed"}]

	pause_sla_on = [{"status": "Replied"}] if doctype == "Issue" else pause_sla_on

	service_level_agreement = frappe._dict(
		{
			"doctype": "Service Level Agreement",
			"enabled": 1,
			"document_type": doctype,
			"service_level": service_level
			or "__Test {} SLA".format(entity_type if entity_type else "Default"),
			"default_service_level_agreement": default_service_level_agreement,
			"condition": condition,
			"default_priority": "Medium",
			"holiday_list": holiday_list,
			"entity_type": entity_type,
			"entity": entity,
			"start_date": frappe.utils.getdate(),
			"end_date": frappe.utils.add_to_date(frappe.utils.getdate(), days=100),
			"apply_sla_for_resolution": apply_sla_for_resolution,
			"priorities": [
				{
					"priority": "Low",
					"response_time": response_time,
					"resolution_time": resolution_time,
				},
				{
					"priority": "Medium",
					"response_time": response_time,
					"default_priority": 1,
					"resolution_time": resolution_time,
				},
				{
					"priority": "High",
					"response_time": response_time,
					"resolution_time": resolution_time,
				},
			],
			"sla_fulfilled_on": sla_fulfilled_on,
			"pause_sla_on": pause_sla_on,
			"support_and_resolution": [
				{
					"workday": "Monday",
					"start_time": start_time,
					"end_time": end_time,
				},
				{
					"workday": "Tuesday",
					"start_time": start_time,
					"end_time": end_time,
				},
				{
					"workday": "Wednesday",
					"start_time": start_time,
					"end_time": end_time,
				},
				{
					"workday": "Thursday",
					"start_time": start_time,
					"end_time": end_time,
				},
				{
					"workday": "Friday",
					"start_time": start_time,
					"end_time": end_time,
				},
			],
		}
	)

	filters = {
		"default_service_level_agreement": service_level_agreement.default_service_level_agreement,
		"service_level": service_level_agreement.service_level,
	}

	if not default_service_level_agreement:
		filters.update({"entity_type": entity_type, "entity": entity})

	sla = frappe.db.exists("Service Level Agreement", filters)
	if sla:
		frappe.delete_doc("Service Level Agreement", sla, force=1)

	return frappe.get_doc(service_level_agreement).insert(
		ignore_permissions=True, ignore_if_duplicate=True
	)
Esempio n. 4
0
def create_service_level_agreement(default_service_level_agreement,
                                   holiday_list, employee_group, response_time,
                                   entity_type, entity, resolution_time):

    employee_group = make_employee_group()
    make_holiday_list()
    make_priorities()

    service_level_agreement = frappe.get_doc({
        "doctype":
        "Service Level Agreement",
        "enable":
        1,
        "service_level":
        "__Test Service Level",
        "default_service_level_agreement":
        default_service_level_agreement,
        "default_priority":
        "Medium",
        "holiday_list":
        holiday_list,
        "employee_group":
        employee_group,
        "entity_type":
        entity_type,
        "entity":
        entity,
        "start_date":
        frappe.utils.getdate(),
        "end_date":
        frappe.utils.add_to_date(frappe.utils.getdate(), days=100),
        "priorities": [{
            "priority": "Low",
            "response_time": response_time,
            "response_time_period": "Hour",
            "resolution_time": resolution_time,
            "resolution_time_period": "Hour",
        }, {
            "priority": "Medium",
            "response_time": response_time,
            "default_priority": 1,
            "response_time_period": "Hour",
            "resolution_time": resolution_time,
            "resolution_time_period": "Hour",
        }, {
            "priority": "High",
            "response_time": response_time,
            "response_time_period": "Hour",
            "resolution_time": resolution_time,
            "resolution_time_period": "Hour",
        }],
        "pause_sla_on": [{
            "status": "Replied"
        }],
        "support_and_resolution": [{
            "workday": "Monday",
            "start_time": "10:00:00",
            "end_time": "18:00:00",
        }, {
            "workday": "Tuesday",
            "start_time": "10:00:00",
            "end_time": "18:00:00",
        }, {
            "workday": "Wednesday",
            "start_time": "10:00:00",
            "end_time": "18:00:00",
        }, {
            "workday": "Thursday",
            "start_time": "10:00:00",
            "end_time": "18:00:00",
        }, {
            "workday": "Friday",
            "start_time": "10:00:00",
            "end_time": "18:00:00",
        }, {
            "workday": "Saturday",
            "start_time": "10:00:00",
            "end_time": "18:00:00",
        }, {
            "workday": "Sunday",
            "start_time": "10:00:00",
            "end_time": "18:00:00",
        }]
    })

    filters = {
        "default_service_level_agreement":
        service_level_agreement.default_service_level_agreement,
        "service_level": service_level_agreement.service_level
    }

    if not default_service_level_agreement:
        filters.update({"entity_type": entity_type, "entity": entity})

    service_level_agreement_exists = frappe.db.exists(
        "Service Level Agreement", filters)

    if not service_level_agreement_exists:
        service_level_agreement.insert(ignore_permissions=True)
        return service_level_agreement
    else:
        return frappe.get_doc("Service Level Agreement",
                              service_level_agreement_exists)