Снятие ограничений на одновременное бронирование переговорных в Битрикс24

Снятие ограничений на одновременное бронирование переговорных в Битрикс24

О заказчике

Заказчик — крупный российский производитель сантехнического оборудования.

Задача проекта

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

У заказчика часто проходят совещания в Zoom, а сам Zoom добавлен в Битрикс24 в качестве переговорной. Проводить совещания онлайн могут одновременно разные сотрудники из разных отделов по разным вопросам, но вот при попытке создать событие в календаре при выборе переговорной «Zoom» из списка переговорных Битрикс24 не давал сохранить событие, ссылаясь на уже имеющуюся занятость. При каждом таком случае сотрудникам приходилось прописывать название вручную, чтобы обойти ограничение.

От нас требовалась доработка данного функционала, снимающая ограничение на одновременное использование некоторых переговорных, в частности тех, которые указывают на онлайн-площадку.

Реализация

Для начала мы нашли код, которы отвечает за проверку переговорной на занятость.


Если закомментировать действие внутри условия, то можно создать несколько событий с одной переговорной в одно время и с пересекающимся временем, но нам нужно было сделать возможным такое бронирование только для онлайн-площадок.

Было 2 варианта простой реализации:

  1. Скопировать модуль в local и изменить логику вывода этой ошибки на "Если имя не равно ZOOM, SKYPE и т.д., то можно бронировать в одно время"
  2. Скопировать модуль в local и изменить логику поведения checkAccessibility в файле bitrix/modules/calendar/lib/rooms/accessibilitymanager.php

Редактируя условие, можно привязать возможность бронирования к id переговорной, выбранному цвету, имени или другим параметрам.

После согласования с заказчиком было решено реализовать следующую логику: одновременное бронирование несколькими сотрудниками возможно для переговорных, имеющих текст "online" в названии.

Также при дублировании бронирования online переговорной напротив ее названия показан текст "занято". Это отдельный скрипт, из которого нужно было убрать вывод этой надписи.


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


Под конец заказчик попросил нас сделать условие с текстом «online» в названии переговорной нечувствительным к регистрам. Это была последняя доработка, которую мы сделали. После этого заказчик начал пользоваться функционалом бронирования переговорных без лишних ограничений.

Created by potrace 1.13, written by Peter Selinger 2001-2015

Войти как пользователь
Вы можете войти на сайт, если вы зарегистрированы на одном из этих сервисов: