Фильтры для параметра datetime

Назначение

Иногда требуется ограничить выбор даты и времени в параметре процесса. Например - дата и время приезда сервис - инженера к клиенту на подключение услуг. Это позволяет планировать и компоновать подключения услуг в отдаленных поселках. Плагин позволяет настроить "фильтр" на группу в определенных населенных пунктах, на определенные дни и на определенные временные слоты с разрешенным количеством процессов.

Группа
  г.Уфа
     с Дата1 по Дата2
       слот с 10:00 по 10:00 кол 1
       слот с 14:00 по 18:00 кол 2
  • Дату2 можно сделать равной Дате1, тогда фильтр действует только в этот день.

  • Дату2 можно оставить пустой, тогда фильтр действует от Дата1 и до бесконечности.

  • если Дата1 в будущем, то до указанной даты нельзя назначить процесс.

С настройкой указанной выше, клиенту из данного города смогут назначить время подключения в 10 либо любое время в промежутке с 14 по 18 часов. К тому, в этот промежуток могут назначить еще одного клиента, т. к. указано количество 2. Плагин позволяет добавить в фильтр несколько населенных пунктов.

В этом случае даты и слоты являются общими для этих населенных пунктов***

Так же в рамках одного фильтра можно настраивать несколько временных промежутков, например: в будни большее количество слотов, а в выходные другое.

Настройка фильтров

Для того чтобы перейти к настройке фильтров перейдите в меню:

Пуск - > Фильтры для параметра datetime - > Администрирование - выберите группу

На каждом уровне фильтра доступны операции

  • создать

  • редактировать

  • удалить

при удалении нет проверки на наличие процессов. Фильтр просто удалится. С процессом ничего не произойдет

Дополнительные условия фильтрации

Систему фильтрации можно расширять создавая новые классы имплементирующие интерфейс ru.bgcrm.plugin.epp.model.AdditionalFilterCondition. Эти условия можно выбирать при создании/редактировании фильтра. Обход условий происходит в режиме "И"

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

Для того чтобы посмотреть состояние загруженности настроенных временных слов перейдите в меню: Пуск - > Фильтры для параметра datetime - > Монитор занятости временных слотов

  • выберите группу

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

Для того чтобы для данного типа процесса включить фильтр на параметр datetime, в конфигурации этого типа процесса необходимо добавить ключ:

epp.enabled=1372:90
  • 1372 - это id параметра datetime

  • 90 - id параметра address

Обработчик событий

Для того чтобы параметр datetime генерил ru.bgcrm.event.DateChangingEvent необходим ключ в конфигурации этого параметра:

sendColorMapRequest=1

Заполнение данных о датах для dateTimePicker`a происходит в классе ru.bgcrm.plugin.epp.event.listener.DateTimeListener. Для этого требуется указать данный класс в качестве скрипта для этого параметра, либо вызывать его из динкода. Так же данный класс производит валидацию выбранного времени на основе настроек фильтров.