Битрикс: мой компонент для предварительной записи на reception

Компонент «Предварительная запись» теперь доступен в Битрикс Маркетплейс.

Во многих организациях есть такая практика, как предварительная запись перед приходом на reception (или к стойке администрации, если говорить по-русски). Это очень полезная штука, т.к. она позволяет избавиться от очередей и толкучки.

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

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

Я решил эти проблемы написанием компонента для битрикса с использованием инфоблоков. Они позволяют хранить фактически любые данные, а система учетных записей позволяет легко разграничить права доступа. Вот что у меня получилось (рассказывать буду от большего к меньшему)

Просмотр записей за месяц

При просмотре месяца важно знать только количество свободных мест по дням и общее количество записей (во многом для статистики)

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

  • зелёный день свободен для записи
  • оранжевый день уже заполнен на 80%
  • красный день уже полностью заполнен
  • серый день уже прошел
Просмотр месяца

Просмотр месяца

Создание или изменение ограничений на день

Чтобы открыть запись на день его нужно создать. Делать это могут только администраторы данного компонента (чтобы избежать хаоса).

Для удобства пользователей были добавлены кнопки «+» и «-», позволяющие изменять ограничения для временных промежутков. Это очень удобно, т.к. чаще всего промежутки изменяются незначительно. Для очень ленивых были добавлены кнопки для массового уменьшения и увеличения ненулевых значений.

Также можно скопировать ограничения с уже созданного дня. Это полезно при копировании дней. Например, пятница у нас сокращённый день =)

При уменьшении значений проверяется наличие записей на это время. Записать значение меньше чем уже записано фирм не получится.

Создание и изменение происходит через одну форму. Если день уже создан, то он изменяется, если не создан, то создаётся.

Форма создания и изменения дня

Форма создания и изменения дня

Заполнение месяца

Заполнять весь месяц руками – долго и скучно. Гораздо проще сразу создать ограничения на все рабочие дни месяца одной кнопкой, а потом уже их править. Ведь, как правило, значения для дней не сильно отличаются.

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

Форма заполнения месяца

Форма заполнения месяца

Просмотр записей за день

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

Просмотр дня - свободные промежутки

Просмотр дня - свободные промежутки

Записи тоже различаются по цвету:

  • белым цветом помечены обычные необработанные записи
  • серые записи были обработаны успешно
  • красные записи были отменены или организации имели ошибки в документах
  • от синего до фиолетового – несколько фирм от одного человека

Клик по названию организации открывает просмотр записи. Карандашик нужен для перехода к редактированию.

Просмотр записей за день

Просмотр записей за день

Создание записи

Создать запись может любой пользователь системы.

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

Также можно создать несколько записей за раз. А если еще и ввести контактный телефон, то при просмотре дня все эти записи будут помечаться одним цветом. Это нужно для тех бухгалтеров, кто работает с несколькими фирмами и приходит с общим пакетом документов. У нас есть регламент: одно место – одна фирма.

Если хоть одна запись не может быть создана, то выведется предупреждение. При этом страница не будет перезагружена и данные никуда не денутся. Можно будет изменить время или день и сохранить заново.

Создание записей

Создание записей

Изменение записи

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

Администраторы могут менять любые поля в записи.

Изменение записи

Изменение записи

Просмотр записи

Просмотр очень прост. Тут сложно придумать что-то экстраординарное.

Просмотр записи

Просмотр записи

Поиск и сортировка записей

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

Поиск по записям

Поиск по записям

Заключение

Таким образом, проблема с записями на reception была решена, а компонент получился симпатичный и полезный.

P.S. цветность уменьшенных скриншотов не совпадает с реальной =)

Компонент «Предварительная запись» теперь доступен в Битрикс Маркетплейс.

7 комментариев

Wilka

Люди на ресепшене оценили такой сервис? =)

Ответить

Морозов Максим

Они не бубнили и это уже хорошо *CRAZY*

Ответить

Юрий

Добрый день! У меня блог авторских панорамных снимков. Предлагаю взаимно подписаться на RSS и по возможности комментить друг друга :)

Юрий (AR00t)

Ответить

Эрли

Как то расплывчато у вас описание компонента… только скрины.
Во-первых, не ясно где хранится информация: в инфоблоках или вы свои таблицы создали
Во-вторых, можно было бы хоть структуру таблиц показать?

Ответить

Морозов Максим

Ну… Поделиться хотелось, а код выложить не могу.

Информация хранится в двух инфоблоках: в одном дни, в другом записи. Записи привязываются к дням.

Ответить

Морозов Максим

Про структуру могу написать, но сейчас бы я написал по другому *CRAZY*

Ответить

Эрли

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

Ответить

Ваш отзыв

logo