Как работает расширенный календарь

Поля в фильтре расширенного календаря

  • Пользователь (user_id)
  • Задачи (task_is_complete)
  • События (event_is_complete)
  • Просроченные события (events_overdue)
  • Д.Р. сотрудников (is_birthdays_show)

Поля даты (формируются из календаря)

Также скрытно передаются два поля даты

  • start_date
  • end_date 

Значения этих полей формируется на основое вида календаря (День, Неделя, Месяц), а также учитывая какой год, месяц, число отображается на календаре!

Пример формирования:

  • Месяц:
    • start_date - формируется от даты первой ячейки календаря
    • end_date - формируется от даты последней ячейки календаря + 1 день
  • Неделя:
    • start_date - формируется от даты первого столбца календаря
    • end_date - формируется от даты последней столбца календаря + 1 день
  • День:
    • start_date - формируется от даты выбраного дня календаря
    • end_date - формируется от даты выбраного дня календаря + 1 день

Пример:

Например текущий месяц октября 2022 года, то порядок формирования этих полей таков:

  • Месяц: (start_date) 2022-09-26 - (end_date) 2022-11-07
  • Неделя: (start_date) 2022-10-10 - (end_date) 2022-10-17
  • День: (start_date) 2022-10-12 - (end_date) 2022-10-13

Сущности что отображаются на календаре

События

События подгружаются в зависимости от поля События (event_is_complete) и поля Просроченные события (events_overdue)

Если поле События (event_is_complete) - пустое, а также поле Просроченные события (events_overdue) не отмечено - то события не будут отображаться в календаре

Имеет ограничение на количество выборки - лимит на 150 событий!

Формирование выборки:

  • Поле Просроченные события (events_overdue) - Отмечено, то:
    • Условие: Дата события больше или равно start_date
    • Условие: Дата события меньше текущей даты
    • Условие: Статус события неподтвержденный
  • Иначе 
    • Поле События (event_is_complete)
      • Если выбрано значение Подтвержденные, то Статус события подтвержденный
      • Если выбрано значение Неподтвержденные, то Статус события неподтвержденный
      • Если выбрано значение Подтвержденные и Неподтвержденные, то правило на Статус события не добавляется
    • Условие: Дата события больше или равно start_date
    • Условие: Дата события меньше или равно end_date
  • Если поле Пользователь (user_id) пустое - то формируется следующая выборка
    • Условие ИЛИ
      • Условие: Назначено на авторизованного пользователя
      • Условие: у события в поле участники отмечен авторизованный пользователь
      • Условие: у события в поле участники отмечено Все пользователи
  • Если поле Пользователь (user_id) не пустое - то формируется следующая выборка
    • Условие ИЛИ
      • Условие: Назначено на выбранного пользователя
      • Условие: у события в поле участники отмечен выбранный пользователь
      • Условие: у события  в поле участники отмечено Все пользователи

Задачи

Задачи подгружаются в зависимости от поля Задачи (task_is_complete)
Если поле пустое - то задачи не будут отображаться на календаре

Формирование выборки:

  • Условие: Задача не в архиве
  • Условие: Работают ограничения: можно ограничить вывод задач рестрикшенами Мои либо Подчиненные (Идет учет от авторизованного пользователя) (Конфликтует с условиями от поля Пользователь (user_id) если оно не пустое)
  • Условие: Дата выполения задачи должна быть больше или равно start_date
  • Условие: Дата выполения задачи должна быть меньше или равно end_date
  • Поле Задачи (task_is_complete)
    • Условие: Если выбрано Выполненные, применяется правило Дата потверждения задачи не пустое
    • Условие: Если выбрано Незавершенные, применяется правило  Дата потверждения задачи пустое
    • Условие: Если выбрано Выполненные и Незавершенные, то правило на Дату потверждения задачи не добавляется
  • Условие: Если поле Пользователь (user_id) пустое - то ищуется задачи назначенные на авторизованного пользователя
  • Условие: Если поле Пользователь (user_id) не пустое - то ищуется задачи назначенные на выбранного пользователя

Дни рождения (пользователей либо контрагентов)

Дни рождения выводиться в зависимости от чекбокса Д.Р. сотрудников (is_birthdays_show)

Подгружает на календарь эти самые дни с учетом передаваемых дат

Праздничные дни

Зависит от настройки Выводить праздничные дни в календаре, которую можно включить в шапке CRM (вкладка Календарь)

Подгружает на календарь эти самые праздничные дни с учетом передаваемых дат