Любой успешный бизнес базируется на грамотной, слаженной структуре. В ресторанном бизнесе, для его наибольшей успешности, порядок распределения работ и задач играет одну из ведущих ролей. Несмотря на свою некоторую консервативность, внедрение компьютерных технологий не обошло стороной данную отрасль бизнеса. Каждый ресторан сейчас пытается максимально оптимизировать работу таких подразделений как зал, склад, кухня, бар и офис. Для этого создаются приложения, связывающие все подразделения ресторана и передающие информацию в реальном времени, тем самым решая проблемы со скоростью передачи заказов между подразделениями и ведением складского учета. Данная статья расскажет, как решить многие проблемы в организации слаженной работы ресторана с помощью современного веб-приложения.
Веб-приложение является единой точкой входа для любого работника ресторана с получением доступной только ему информации на текущий момент. Внедренное в повседневную работу ресторана, такое приложение способствует реализации целого спектра задач:
− Реализация возможности управления ролями. Главный администратор сам может выбирать доступные пункты приложения для той или иной группы рабочего персонала;
− Реализация управления сотрудниками. Менеджер или главный администратор составляет список работы для каждой группы рабочего персонала с возможностью составления индивидуального графика отпусков и выходных, а также управляет зарплатами с учетом штрафов и премий.
− Реализация раздела «резервирование». Специальный раздел хостеса для удобства резервирования столов в зале.
− Реализация раздела «справочники». Раздел для работников офиса и шеф-повара, в котором хранятся информативные данные о поставщиках, складах, информация о приготовлении блюд и их распределения по меню.
Для разработки приложения «Ресторан» был выбран веб-фреймворк Yii2 на языке PHP. Yii2 является объектно-ориентированным, компонентным фреймворком, реализующим шаблон проектирования MVC. Выбор был обусловлен большой популярностью данного фреймворка, наличием подробной документации на русском и английском языке и хорошим интернет-сообществом, оказывающим помощь начинающему разработчику. В комплекте с Yii2 поставляется свободный CSS фреймворк для Front-end разработки Bootstrap3, главной особенностью которого является удобная разработка интерфейса, адаптивного под экраны с разным разрешением и богатая документация с сотнями живых примеров, облегчающих его изучение. Для хранения данных приложения используется свободная реляционная база данных MySQL. Из плюсов здесь в первую очередь кроссплатформенность, высокая производительность, наличие удобного клиента PHPMyAdmin и постоянной поддержки лидера в разработке баз данных, корпорации Oracle. На текущий момент, в веб-приложении «Ресторан» реализовано четыре основных раздела: «Работники», «Справочники», «Склад» и «Резервирование». Далее расскажем подробней о каждом из них.
Раздел «Работники» состоит из 5 подразделов:
− В первом подразделе «Группы работников» создаются роли и впоследствии каждой роли назначаются разрешения, таким образом, чтобы сотрудник, состоящий в группе «Официант», мог иметь доступ только к тем действиям, которые выдали этой группе. Разделение по ролям необходимо для обеспечения безопасности при пользовании программным продуктом.
− Во втором подразделе «Список работников» добавляется и редактируется информация о сотрудниках. Заполняется полная анкета сотрудника, выдаются логин и пароль для входа в систему. По мере необходимости формируется индивидуальный график работы, назначаются штрафы и премии.
− Третий подраздел «Групповой график работы» необходим для назначения и редактирования графика работы для всей группы.
− Четвертый и пятый подразделы «Выходной» и «Отпуск» носят чисто информативный характер для руководства заведения.
Структура базы данных, отвечающая за информацию в разделе «Работники»
Раздел «Справочники» является набором справочников, необходимых для функционирования работы ресторана. Состоит из таких категорий, как «Поставщики», «Список складов», «Категории товаров», «Тех. карты», «Полуфабрикаты» и т. п. В подразделе «Список складов» можно посмотреть наличие товаров и ингредиентов на каждом складе.
Раздел «Резервирование» носит исключительно информационный характер, в него записываются резервы столов, дата, количество людей и предзаказ. Данный раздел необходим для информирования хостесом остального персонала.
Раздел«Склад» в свою очередь имеет 4 готовых подраздела: «Список товаров», «Списание», «Список поставок», «Перемещение».
− «Список товаров» необходим для создания товаров, из которых будут составлять меню. Вся информация о товаре вносится в нужную категорию, также прикрепляется фото товара и единица измерения.
− «Список поставок» необходим для поставок на склады. Выбирается дата поставки, склад назначения, поставщик, описание поставки и состав поставки, состоящий из названия продукта, количества, цены за единицу и наценки. Сумма поставки генерируется автоматически, и по нажатию кнопки «Создать» поставка переходит в статус «В ожидании». После проверки поставки материально-ответственное лицо подтверждает поставку, и она переходит в статус «Принято». После совершения принятия поставки её изменение невозможно.
− «Списание» является обратным по своему действию к поставкам. Дата списания и сотрудник, совершающий его, всегда назначаются текущим. Далее выбирается склад откуда производится списание, причина списания, комментарий к нему и состав списания. Разница состава списания с составом поставки в том, что мы можем списать только товар, который есть на выбранном складе и не больше его текущего количества.
− «Перемещение» является объединением предыдущих двух подразделов. Товар списывается со склада отправителя и поставляется на склад получателя. Также необходимо подтвердить перемещение, после чего его отмена невозможна.
Структура базы данных отвечающей за все складские действия
Приложение разделено на четыре логических модуля, составляющих его общую структуру:
− «справочники»
− «работники»
− «склад»
− «резервирование»
Каждый модуль выполняет свою задачу, и при этом взаимосвязан с остальными модулями. В приложении «Ресторан» используется архитектура MVC. Исходя из особенностей данной архитектуры, учет данных производится в моделях. Каждая модель создана исключительно для управления одной индивидуальной задачей. Простые модели, не требующие сложной связи, генерируются с помощью системы автоматической генерации кода «Gii». Более сложные модели по мере необходимости конструируются вручную.
Построение представлений приложения происходит не менее интересным образом. Фреймворк Yii2 поставляет в комплекте для презентабельной и адаптивной верстки набор инструментов CSS — Bootstrap 3, который упрощает разработку пользовательского интерфейса. Главным инструментом, используемым при построении представлений, является адаптивная таблица Bootstrap grid, которая делит окно браузера на 12 равных частей (при этом каждую из частей можно так же разделить на 12 частей). Имея такой инструмент под рукой легко, расставить элементы по странице. В состав фреймворка помимо прочего входит библиотека JavaScript — JQuery, которая фокусируется на взаимодействие JavaScript и HTML. Наличие JQuery скриптов на странице оживляет ее, и избавляют от необходимости постоянно обновлять страницу. В приложении «Ресторан» весь JS код вынесен в отдельную папку /web/js/, а CSS код в папку /web/css/. Подключение к страницам приложения происходит через AppAsset, в котором прописываются пути ко всем используемым CSS и JS файлам. Данный подход позволяет облегчить разработку путем уменьшения повторяющегося кода. К примеру, если мы хотим изменить шрифт у всего текста на сайте, мы изменяем его только в одном файле и стиль применяется ко всем объектам, в которых присутствует текст. Согласно политике фреймворка, представление по каждому участку логики хранится в папке /views/«имя модели»/. В этой же папке находятся страницы для каждого объемного действия.
Веб-приложения «Ресторан» создано на основе популярных средств разработки веб индустрии. Само приложение базируется не только на современных технологиях программирования, но и непосредственно на концепции работы ресторанного бизнеса, что не маловажно для понимания тонких нюансов данной бизнес среды. На текущий момент реализована лишь часть задуманного. Продукт, созданный на фреймворке Yii2, получил довольно гибкую структуру, которая позволит в будущем легко расширить уже готовый функционал.
Литература:
- Mark Safronov, Jeffrey Winesett «Web Application Development with Yii 2 and PHP».
- Bill Keck «A step by step guide to learning Yii 2 for beginners».
- https://github.com/yiisoft/yii2 — документация по фреймворку Yii2 (дата обращения: 15.05.2019).
- http://bootstrap-3.ru/index.php — документация по Bootstrap 3 (дата обращения: 18.05.2019).
- https://jquery-docs.ru/ — документация по JQuery (дата обращения: 18.05.2019).
- Александр Затуливетров «Новый ресторан: 365 дней после открытия», 2013.
- Роберт Милл «Управление рестораном», 3-е издание, 2015.