Во многих организациях есть такая практика, как предварительная запись перед приходом на reception (или к стойке администрации, если говорить по-русски). Это очень полезная штука, т.к. она позволяет избавиться от очередей и толкучки.
При сравнительно небольшом количестве записей для управления этим процессом достаточно экселевского файлика в сетевой папке. Многие фирмы так работают и не жалуются. Но с ростом количества клиентов всплывает большое количество проблем:
- файл может быть случайно удалён в любое время
- невозможно отследить правки в файле, т.к. нет авторизации
- нет никакой возможности жестко ограничивать количество записей
- оформление записей далеко от идеального
Я решил эти проблемы написанием компонента для битрикса с использованием инфоблоков. Они позволяют хранить фактически любые данные, а система учетных записей позволяет легко разграничить права доступа. Вот что у меня получилось (рассказывать буду от большего к меньшему)
Просмотр записей за месяц
При просмотре месяца важно знать только количество свободных мест по дням и общее количество записей (во многом для статистики)
Записи можно создать на непрошедший день, для которого заданы ограничения по времени. Если день не был создан, то он не имеет фона. Созданные дни могу быть нескольких цветов:
- зелёный день свободен для записи
- оранжевый день уже заполнен на 80%
- красный день уже полностью заполнен
- серый день уже прошел
Создание или изменение ограничений на день
Чтобы открыть запись на день его нужно создать. Делать это могут только администраторы данного компонента (чтобы избежать хаоса).
Для удобства пользователей были добавлены кнопки «+» и «-», позволяющие изменять ограничения для временных промежутков. Это очень удобно, т.к. чаще всего промежутки изменяются незначительно. Для очень ленивых были добавлены кнопки для массового уменьшения и увеличения ненулевых значений.
Также можно скопировать ограничения с уже созданного дня. Это полезно при копировании дней. Например, пятница у нас сокращённый день =)
При уменьшении значений проверяется наличие записей на это время. Записать значение меньше чем уже записано фирм не получится.
Создание и изменение происходит через одну форму. Если день уже создан, то он изменяется, если не создан, то создаётся.
Заполнение месяца
Заполнять весь месяц руками – долго и скучно. Гораздо проще сразу создать ограничения на все рабочие дни месяца одной кнопкой, а потом уже их править. Ведь, как правило, значения для дней не сильно отличаются.
Если в месяце есть рабочие дни, выпадающие на выходные и наоборот, то их можно указать в соответствующем поле.
Просмотр записей за день
При просмотре дня временные ограничения могут иметь два фона – зелёный для свободных промежутков и серый для закрытых.
Записи тоже различаются по цвету:
- белым цветом помечены обычные необработанные записи
- серые записи были обработаны успешно
- красные записи были отменены или организации имели ошибки в документах
- от синего до фиолетового – несколько фирм от одного человека
Клик по названию организации открывает просмотр записи. Карандашик нужен для перехода к редактированию.
Создание записи
Создать запись может любой пользователь системы.
Пока оператор заполняет данные, в верхней части страницы раз в 20 секунд обновляется информация о свободных промежутках. Это позволяет в онлайн режиме следить за наличием свободных мест на день «не отходя от кассы».
Также можно создать несколько записей за раз. А если еще и ввести контактный телефон, то при просмотре дня все эти записи будут помечаться одним цветом. Это нужно для тех бухгалтеров, кто работает с несколькими фирмами и приходит с общим пакетом документов. У нас есть регламент: одно место – одна фирма.
Если хоть одна запись не может быть создана, то выведется предупреждение. При этом страница не будет перезагружена и данные никуда не денутся. Можно будет изменить время или день и сохранить заново.
Изменение записи
Пользователи могут изменять время и день для подключения, менять статусы и оставлять комментарии.
Администраторы могут менять любые поля в записи.
Просмотр записи
Просмотр очень прост. Тут сложно придумать что-то экстраординарное.
Поиск и сортировка записей
Если понадобится найти какую-либо запись, то можно воспользоваться поиском по любому значению.
Заключение
Таким образом, проблема с записями на reception была решена, а компонент получился симпатичный и полезный.
P.S. цветность уменьшенных скриншотов не совпадает с реальной =)
Они не бубнили и это уже хорошо *CRAZY*
Ответить