Единый план подключения (ЕПП)

ЕПП ограничивает выбор даты и времени в параметре процесса: например, когда инженер может приехать к клиенту. Для группы исполнителей задаются населённые пункты, дни и временные слоты с допустимым числом процессов. Пользователь видит в календаре только разрешённое время, а занятые слоты отмечены.

Все экраны плагина находятся в меню ЕПП.

Как работает ограничение

Фильтр связывает:

  • группу — группу решения процесса с ролью "исполнение";

  • населённые пункты (и, если включены кварталы, кварталы) — по адресу процесса;

  • расписание — для каждой даты набор слотов "с … по …, не больше N процессов";

  • при необходимости дополнительные условия — тип дома, тип технологии, тип процесса.

Когда пользователь выбирает дату в параметре процесса, система находит фильтр по группе исполнителей и адресу и показывает свободные слоты зелёным, занятые — красным. При сохранении время проверяется по тем же фильтрам: время вне слотов или в заполненном слоте сохранить нельзя.

Шаблоны слотов

Шаблон — именованный набор слотов, который затем одним щелчком расставляется по дням. Меню ЕПП → Редактор шаблонов.

Редактор шаблонов
  1. В поле Группа выберите группу. Список ниже покажет её шаблоны. Отметка Добавлять шаблоны на эту группу сохраняет новый шаблон только для этой группы; без отметки шаблон общий для всех групп.

  2. Задайте цвет, наименование и символ (до трёх знаков) — они отображаются в календаре фильтров.

  3. Добавьте слоты: время С, По, Количество процессов и кнопка Добавить. Лишний слот удаляется крестиком.

  4. Нажмите ОК.

Кнопки в строке шаблона открывают его на редактирование или удаляют после подтверждения. Изменение шаблона не меняет уже расставленные дни: слоты копируются в день в момент назначения.

Фильтры

Меню ЕПП → Администрирование. Выберите группу и период: таблица покажет фильтры группы по дням. В ячейке — символ шаблона или число слотов, заданных вручную; 0 — слоты не заданы. Наведение на ячейку показывает слоты, на название фильтра — населённые пункты, комментарий и доп. условия. Значок часов рядом с названием открывает историю изменений.

Добавление фильтра

Выберите Режим → Фильтры и нажмите Добавить фильтр.

Добавление фильтра
Поле Описание

Название фильтра, комментарий

Необязательные, видны в подсказке.

Населённый пункт

Один или несколько. Даты и слоты фильтра общие для всех выбранных пунктов.

Кварталы

Заполняются по выбранным населённым пунктам, если включены кварталы (см. ниже).

Доп. условия

Тип дома, тип технологии, тип процесса — фильтр действует, только если процесс подходит под все выбранные условия.

Расписание по дням

Выберите Режим → Шаблоны и включите Режим редактирования. Над таблицей появится панель шаблонов группы и два служебных пункта:

  • шаблон — щелчок по дню записывает в него слоты шаблона;

  • Редактировать фильтр — щелчок по дню открывает ручную настройку слотов этого дня, щелчок по названию — изменение населённых пунктов, названия и доп. условий;

  • Убрать фильтр — щелчок по дню удаляет его слоты, щелчок по названию удаляет весь фильтр после подтверждения.

Фильтр с расставленными по дням шаблонами
Ручная настройка слотов дня
При удалении фильтра наличие процессов не проверяется. Процессы, уже назначенные на его слоты, не меняются.

Монитор занятости

Меню ЕПП → Монитор занятости временных слотов. Выберите одну или несколько групп, период и нажмите Найти. В ячейке указано "занято / всего" по населённому пункту и дню; щелчок по ячейке показывает процессы, занявшие слоты.

Монитор занятости временных слотов

Дополнительные условия

Доп. условие уточняет, к каким процессам относится фильтр.

  • ЕПП → Типы доп. условий — справочник видов условий. У типа есть название, код типа, класс проверки, признак активности, конфигурация по умолчанию и комментарий.

  • ЕПП → Доп. условия — конкретные условия: название, тип и конфигурация. Созданные условия выбираются при добавлении и редактировании фильтра.

Типы дополнительных условий

Конфигурация условия задаёт идентификаторы, с которыми сравнивается процесс:

filter.ids=10650,10585
filter.processes.checkLinked.enabled=false
Ключ Значение

filter.ids

Идентификаторы через запятую. Пустой список — условие выполняется всегда.

filter.processes.checkLinked.enabled

Для типа "тип процесса": проверять типы связанных процессов вместо типа самого процесса.

Условие по типу процесса учитывает и родительские типы: если в filter.ids указан родительский тип, условию соответствуют все его подтипы.

Новый вид условия добавляется классом, реализующим проверку ru.bgcrm.plugin.epp.conditions.model.AdditionalConditionMatcher, и записью в Типах доп. условий.

Настройка типа процесса

В конфигурации типа процесса укажите, какой параметр даты ограничивать и по какому адресному параметру искать населённый пункт:

epp.enabled=1372:90
epp.hoursCheck=1
  • 1372 — параметр типа datetime, 90 — параметр типа address. Пар можно указать несколько через запятую.

  • epp.hoursCheck — за сколько часов от текущего момента можно назначить время, по умолчанию 1. Более раннее время сохранить нельзя.

Чтобы календарь параметра получал раскраску слотов, в конфигурации параметра даты укажите sendColorMapRequest=1, а в качестве скрипта параметра — класс ru.bgcrm.plugin.epp.event.listener.DateTimeListener (или вызовите его из своего скрипта).

Общая конфигурация

plugin.epp.quarters.enabled=1

Включает работу с кварталами: в фильтре можно выбирать не только населённые пункты, но и кварталы внутри них. Без ключа экран Администрирование открывается в прежнем варианте: фильтр создаётся полями над таблицей, без отдельного окна и без кварталов.