Атестаційні завдання K2 ERP/Ресторан


Атестаційне завдання K2 ERP — Ресторан — це практична задача для перевірки навичок розробника або впроваджувача K2 ERP у створенні модуля обліку ресторанних замовлень, столів, меню, кухні, рахунків, оплат і звітності.

Модуль має забезпечувати повний цикл обслуговування гостя: бронювання або посадку за стіл, прийом замовлення офіціантом, передачу страв на кухню, контроль статусів приготування, доповнення замовлення, формування рахунку, оплату, звільнення столу та аналіз продажів.

Коротко. Потрібно реалізувати ресторанний модуль: зали, столи, меню, категорії страв, офіціанти, замовлення, кухня, статуси страв, рахунки, оплати, бронювання столів, розділення рахунку, склад інгредієнтів, звіти й AJAX-оновлення в реальному часі.

Назва завдання

Модуль обліку замовлень, кухні, столів і рахунків для ресторану.

Мета завдання

Мета завдання — створити в K2 ERP модуль для автоматизації роботи ресторану, кафе, бару, фудкорту або закладу громадського харчування.

Система повинна дозволяти:

  • вести зали і зони ресторану;
  • вести столи;
  • вести меню;
  • вести категорії страв і напоїв;
  • вести офіціантів;
  • приймати замовлення по столах;
  • додавати страви й напої до замовлення;
  • передавати замовлення на кухню або бар;
  • змінювати статуси страв;
  • доповнювати відкрите замовлення;
  • формувати рахунок;
  • розділяти рахунок між кількома гостями;
  • фіксувати оплату готівкою, карткою або змішано;
  • змінювати статус столу після оплати;
  • вести бронювання столів;
  • формувати звіти по продажах, стравах, офіціантах і столах;
  • працювати через AJAX без перезавантаження сторінок.

Головний принцип. Замовлення в ресторані має пройти зрозумілий шлях: стіл → офіціант → замовлення → кухня → готовність → подача → рахунок → оплата → звільнення столу.

Реальний бізнес-контекст

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

У такій роботі важливо:

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

Основний бізнес-процес

Типовий процес роботи ресторану виглядає так:

  1. гість сідає за вільний або заброньований стіл;
  2. офіціант відкриває замовлення по столу;
  3. додає страви й напої з меню;
  4. замовлення передається на кухню або бар;
  5. кухня змінює статус страв на «Готується»;
  6. після приготування статус змінюється на «Готово»;
  7. офіціант подає страви гостям;
  8. гість може дозамовити інші позиції;
  9. після завершення обслуговування формується рахунок;
  10. рахунок оплачується готівкою, карткою або частково різними способами;
  11. замовлення закривається;
  12. стіл переходить у статус «Вільний»;
  13. дані потрапляють у звіти продажів.

Основні об’єкти модуля

Об’єкт Призначення
Зали і зони Розділення ресторану на зал, терасу, VIP, бар тощо
Столи Посадкові місця для гостей
Меню Страви, напої та інші позиції продажу
Категорії меню Салати, гарячі страви, десерти, напої, бар
Офіціанти Працівники, які приймають і ведуть замовлення
Кухня Робоча зона приготування страв
Замовлення Основний документ обслуговування гостя
Позиції замовлення Конкретні страви й напої в замовленні
Рахунки Документи для оплати
Оплати Факт отримання коштів
Бронювання Попереднє резервування столів
Склад Облік інгредієнтів, якщо реалізовано
Звіти Аналітика по продажах, стравах, офіціантах і столах

Довідник «Зали і зони»

Зали і зони допомагають організувати простір ресторану.

Приклади зон

  • основний зал;
  • тераса;
  • VIP-зал;
  • барна зона;
  • банкетна зала;
  • літній майданчик;
  • доставка / самовивіз, якщо використовується.

Поля зони

Поле Опис
Назва зони Наприклад: Основний зал, Тераса, VIP
Опис Додаткова інформація
Активність Чи використовується зона

Довідник «Столи»

Довідник столів містить усі посадкові місця ресторану.

Поля столу

Поле Опис
Номер або назва столу Наприклад: Стіл 1, VIP-2, Тераса-5
Зал або зона Де знаходиться стіл
Кількість місць Скільки гостей можна посадити
Статус Вільний, зайнятий, заброньований, недоступний
Коментар Наприклад: біля вікна, круглий стіл, диван

Статуси столу

Статус Значення
Вільний Стіл доступний для посадки
Зайнятий За столом є активне замовлення
Заброньований Стіл зарезервовано на певний час
Недоступний Стіл тимчасово не використовується

Важливо. Стіл зі статусом «Зайнятий» не повинен відкриватися для нового замовлення без попередження або закриття попереднього рахунку.

Довідник «Меню»

Меню містить усі страви, напої та послуги, які можна додати в замовлення.

Категорії меню

  • салати;
  • холодні закуски;
  • гарячі страви;
  • перші страви;
  • гарніри;
  • десерти;
  • напої;
  • алкогольні напої;
  • кава і чай;
  • бар;
  • дитяче меню;
  • бізнес-ланч;
  • сезонне меню.

Поля позиції меню

Поле Опис
Назва страви або напою Назва позиції в меню
Категорія До якої групи належить позиція
Ціна Вартість для гостя
Вага або об’єм Наприклад: 250 г, 0,5 л
Опис Склад або коротке пояснення
Фото Опціонально
Зона приготування Кухня, бар, кондитерська тощо
Статус Активна або недоступна

Доступність позицій меню

Позиція меню може бути тимчасово недоступною.

Причини недоступності

  • закінчилися інгредієнти;
  • страва знята з меню;
  • сезонна позиція;
  • кухня тимчасово не готує цю позицію;
  • бар не має потрібного напою.

Довідник «Офіціанти»

Довідник офіціантів містить працівників, які приймають замовлення.

Поля офіціанта

Поле Опис
ПІБ Повне ім’я офіціанта
Телефон Контактний номер
Зона роботи Основна зона або зал
Ставка Опціонально для зарплати
Статус Активний, неактивний, звільнений

Замовлення

Замовлення — це основний документ, який відкривається на стіл або гостя.

Колонки журналу замовлень

Колонка Опис
Номер замовлення Унікальний номер
Стіл За яким столом створено замовлення
Офіціант Хто прийняв замовлення
Час відкриття Коли замовлення створено
Сума Поточна сума замовлення
Статус Відкрите, на кухні, готове, закрите, скасоване
Коментар Особливі побажання гостей

Поля замовлення

Поле Опис
Номер замовлення Генерується автоматично
Стіл До якого столу прив’язане замовлення
Офіціант Хто веде замовлення
Кількість гостей Опціонально
Час відкриття Коли створено замовлення
Час закриття Коли замовлення завершено
Коментар гостя Побажання: без солі, алергія, подати пізніше тощо
Загальна сума Підсумок по позиціях
Статус Поточний стан замовлення

Статуси замовлення

Статус Значення
Відкрите Замовлення створено і може доповнюватися
Передано на кухню Позиції передані на приготування
В готуванні Кухня готує страви
Частково готове Частина позицій готова
Готове Усі позиції готові
Подано Страви передані гостю
Очікує оплати Рахунок сформовано
Закрите Замовлення оплачено і завершено
Скасоване Замовлення скасовано

Позиції замовлення

Кожна страва або напій у замовленні має власний статус.

Поля позиції замовлення

Поле Опис
Замовлення До якого замовлення належить позиція
Позиція меню Страва або напій
Кількість Скільки одиниць замовлено
Ціна Ціна на момент замовлення
Сума Кількість × ціна
Коментар Наприклад: без цибулі, гостре, подати пізніше
Зона приготування Кухня або бар
Статус Прийнято, готується, готово, подано, скасовано

Статуси позицій замовлення

Статус Значення
Прийнято Офіціант додав позицію в замовлення
Передано Позиція передана на кухню або бар
Готується Позиція в роботі
Готово Позицію можна забирати
Подано Позиція подана гостю
Скасовано Позицію скасовано

Кухонний екран або кухня

Кухня має бачити тільки ті позиції, які потрібно готувати.

На кухонному екрані потрібно показувати

  • номер замовлення;
  • стіл;
  • офіціанта;
  • час замовлення;
  • назву страви;
  • кількість;
  • коментар до страви;
  • статус приготування;
  • час очікування.

Функції кухні

Кухня повинна мати можливість:

  • прийняти позицію в роботу;
  • змінити статус на «Готується»;
  • змінити статус на «Готово»;
  • бачити термінові або давні замовлення;
  • бачити коментарі до страв;
  • фільтрувати позиції по зоні приготування.

Критично. Позиція, передана на кухню, має бути видима кухні без ручного дублювання замовлення офіціантом.

Рахунки

Рахунок формується після завершення або під час обслуговування гостя.

Поля рахунку

Поле Опис
Номер рахунку Унікальний номер
Замовлення До якого замовлення належить рахунок
Стіл По якому столу рахунок
Офіціант Хто сформував рахунок
Сума Загальна сума
Знижка Якщо застосовується
Сума до оплати Підсумок після знижки
Статус оплати Не оплачено, частково оплачено, оплачено
Тип оплати Готівка, картка, змішано

Оплати

Модуль має підтримувати різні способи оплати.

Типи оплати

  • готівка;
  • банківська картка;
  • змішана оплата;
  • часткова оплата;
  • оплата сертифікатом;
  • оплата бонусами, опціонально;
  • корпоративний рахунок, опціонально.

Статуси оплати

Статус Значення
Не оплачено Рахунок ще не оплачений
Частково оплачено Оплачена частина рахунку
Оплачено Рахунок повністю оплачено
Повернення Оплату повернено

Розділення рахунку

Ресторан часто потребує можливості розділити рахунок між гостями.

Варіанти розділення

  • порівну між гостями;
  • по окремих позиціях;
  • частина готівкою, частина карткою;
  • окремі рахунки для різних гостей;
  • перенесення частини позицій на інший стіл.

Бронювання столів

Модуль може підтримувати попереднє бронювання.

Поля бронювання

Поле Опис
Дата і час Коли очікуються гості
Стіл або зона Що бронюється
Ім’я гостя Хто бронює
Телефон Контактний номер
Кількість гостей Скільки людей очікується
Коментар Побажання гостя
Статус Нове, підтверджене, скасоване, виконане

Інтерактивна мапа залу

Опціонально можна реалізувати візуальну мапу залу.

На мапі залу потрібно показувати

  • столи;
  • зони;
  • статус кожного столу;
  • активне замовлення;
  • суму відкритого рахунку;
  • бронювання;
  • офіціанта, який обслуговує стіл.

Склад і списання інгредієнтів

Складський блок є опціональним, але корисним для ресторану.

Що має підтримувати склад

  • довідник інгредієнтів;
  • технологічні карти страв;
  • списання інгредієнтів при продажу страви;
  • контроль залишків;
  • попередження про нестачу інгредієнтів;
  • звіт по використанню продуктів.

Технологічна карта страви

Технологічна карта визначає, які інгредієнти потрібні для страви.

Поля технологічної карти

Поле Опис
Страва Позиція меню
Інгредієнт Продукт зі складу
Кількість Норма витрати
Одиниця виміру Г, кг, мл, л, шт.

Звіти

Звіт «Продажі за день»

Звіт показує результат роботи за день.

У звіті потрібно відображати:

  • дату;
  • загальну виручку;
  • кількість рахунків;
  • кількість замовлень;
  • середній чек;
  • суму готівкою;
  • суму карткою.

Звіт «Найпопулярніші страви»

Звіт показує, які позиції меню продаються найкраще.

У звіті потрібно відображати:

  • страву або напій;
  • категорію;
  • кількість продажів;
  • суму продажів;
  • частку в загальній виручці.

Звіт «Ефективність офіціантів»

Звіт показує роботу офіціантів.

У звіті потрібно відображати:

  • офіціанта;
  • кількість замовлень;
  • кількість рахунків;
  • загальну суму продажів;
  • середній чек;
  • кількість скасованих позицій.

Звіт «Завантаженість столів»

Звіт показує використання столів.

У звіті потрібно відображати:

  • стіл;
  • зону;
  • кількість посадок;
  • загальну суму продажів;
  • середній час зайнятості;
  • середній чек.

Звіт «Скасовані позиції»

Звіт допомагає контролювати помилки або зловживання.

У звіті потрібно відображати:

  • дату;
  • замовлення;
  • стіл;
  • офіціанта;
  • позицію меню;
  • кількість;
  • причину скасування.

AJAX-інтерактив

Інтерфейс має працювати швидко і без перезавантаження сторінки.

Через AJAX мають працювати:

  • відкриття замовлення;
  • додавання страв;
  • зміна кількості;
  • передача на кухню;
  • зміна статусу страв;
  • оновлення кухонного екрану;
  • формування рахунку;
  • фіксація оплати;
  • розділення рахунку;
  • зміна статусу столу;
  • бронювання столу;
  • оновлення мапи залу;
  • фільтрація звітів.

Логування змін

Модуль повинен фіксувати важливі дії.

Журнал змін має зберігати:

  • хто відкрив замовлення;
  • хто додав позицію;
  • хто змінив кількість;
  • хто скасував позицію;
  • хто передав замовлення на кухню;
  • хто змінив статус страви;
  • хто сформував рахунок;
  • хто зафіксував оплату;
  • хто розділив рахунок;
  • хто закрив замовлення;
  • хто змінив статус столу;
  • дату й час дії;
  • старе та нове значення, якщо це можливо.

Права доступу

Модуль має підтримувати розмежування прав.

Роль Можливості
Офіціант Відкриває замовлення, додає страви, передає на кухню, формує рахунок
Кухар Бачить кухонний екран, змінює статуси приготування
Бармен Бачить барні позиції, змінює їхні статуси
Касир Фіксує оплату, друкує рахунки й чеки
Адміністратор залу Керує столами, бронюваннями, пересадками і відкритими рахунками
Менеджер Керує меню, цінами, персоналом і звітами
Керівник Переглядає продажі, виручку, ефективність офіціантів і популярність страв
Адміністратор системи Налаштовує права, довідники, принтери, зони, меню і службові параметри

Технічні вимоги

Параметр Опис
Бекенд K2 Cloud ERP на Python або PHP
База даних PostgreSQL або MySQL
Фронтенд HTML5, JavaScript
AJAX Fetch API або Axios
UI-компоненти DataTables для замовлень, Select2 для вибору страв, інтерфейс залу через Canvas або Grid
Кухонний екран Оновлення статусів замовлень у реальному часі
Друк PDF-рахунки, друк на чековому або кухонному принтері
Медіа Фото страв, опціонально
Склад Облік інгредієнтів і списання по технологічних картах, опціонально
Експорт Excel або PDF для звітів

Рекомендовані сутності бази даних

Для реалізації задачі доцільно передбачити такі сутності:

  • зали;
  • столи;
  • категорії меню;
  • меню;
  • офіціанти;
  • замовлення;
  • позиції замовлення;
  • статуси замовлень;
  • кухонні завдання;
  • рахунки;
  • оплати;
  • бронювання столів;
  • знижки;
  • скасування позицій;
  • інгредієнти;
  • технологічні карти;
  • складські залишки;
  • журнал змін;
  • звіти;
  • права доступу.

Практичне завдання

У межах атестації потрібно продемонструвати робочий сценарій.

Мінімальний сценарій:

  1. створити зони ресторану;
  2. створити столи;
  3. створити категорії меню;
  4. створити позиції меню;
  5. створити офіціантів;
  6. відкрити замовлення по столу;
  7. додати кілька страв і напоїв;
  8. додати коментар до позиції;
  9. передати замовлення на кухню;
  10. змінити статус позиції на «Готується»;
  11. змінити статус позиції на «Готово»;
  12. додати дозамовлення;
  13. сформувати рахунок;
  14. розділити рахунок, якщо функція реалізована;
  15. зафіксувати оплату готівкою;
  16. зафіксувати оплату карткою;
  17. закрити замовлення;
  18. перевести стіл у статус «Вільний»;
  19. створити бронювання столу;
  20. сформувати звіт продажів за день;
  21. сформувати звіт популярних страв;
  22. сформувати звіт ефективності офіціантів;
  23. перевірити журнал змін.

Критерії оцінювання

Критерій Бали Що перевіряється
Реалізація бази столів, меню і офіціантів 20 Зали, столи, меню, категорії, офіціанти, статуси столів
Оформлення замовлень і управління статусами 20 Відкриття замовлення, позиції, передача на кухню, статуси приготування, дозамовлення
Формування рахунків і облік оплат 20 Рахунок, знижка, часткова або повна оплата, готівка, картка, закриття столу
Звіти по продажах і популярних стравах 20 Продажі за день, популярні страви, офіціанти, столи, скасовані позиції
Інтерактивність через AJAX і реальний час 20 Оновлення замовлень, кухні, статусів, рахунків і мапи залу без перезавантаження
Разом 100 Максимальна оцінка

Шкала оцінювання

Бали Рівень Опис
90–100 Відмінно Модуль повністю працює: столи, меню, замовлення, кухня, рахунки, оплати, бронювання, звіти й AJAX-оновлення реалізовані коректно
75–89 Добре Основна логіка працює, є незначні недоліки, які не руйнують процес обслуговування гостей
60–74 Зараховано Базовий сценарій працює, але частина функцій реалізована неповно або потребує доопрацювання
0–59 Не зараховано Відсутня критична логіка: столи, меню, замовлення, кухня, рахунки або оплати

Критичні помилки

Критичними помилками вважаються ситуації, коли:

  • неможливо створити стіл;
  • неможливо створити позицію меню;
  • неможливо відкрити замовлення;
  • замовлення не прив’язується до столу;
  • замовлення не прив’язується до офіціанта;
  • позиція меню не додається в замовлення;
  • сума замовлення розраховується неправильно;
  • позиція не передається на кухню;
  • кухня не бачить передані позиції;
  • статус позиції не змінюється;
  • рахунок не формується;
  • оплата не прив’язується до рахунку;
  • оплачений рахунок не закриває замовлення;
  • після закриття замовлення стіл не звільняється;
  • скасовані позиції залишаються в сумі рахунку;
  • звіти не відповідають фактичним продажам;
  • зміни замовлень, рахунків і оплат не логуються.

Умова складання. Завдання не може бути зараховане, якщо система не дозволяє пройти базовий цикл ресторану: стіл → замовлення → кухня → готовність → рахунок → оплата → звільнення столу → звіт.

Очікуваний результат

У результаті виконання атестаційного завдання має бути створений ресторанний модуль у K2 ERP.

Модуль має підтримувати зали, столи, меню, категорії страв, офіціантів, замовлення, позиції замовлень, кухонний екран, статуси приготування, рахунки, оплати, бронювання, розділення рахунків, мапу залу, склад інгредієнтів, звіти, AJAX-інтерактив і логування змін.

Примітка

Ресторанна ERP-система потрібна кафе, барам, ресторанам, фудкортам, їдальням, готельним ресторанам і мережам громадського харчування.

Правильна автоматизація ресторану зменшує помилки персоналу, пришвидшує обслуговування гостей, покращує комунікацію між залом і кухнею, допомагає контролювати виручку та підвищує якість сервісу.

Коротко

Питання Відповідь
Що потрібно створити? Модуль обліку ресторанних замовлень, столів, кухні й рахунків
Які довідники потрібні? Зали, столи, меню, категорії страв, офіціанти
Який головний документ? Замовлення по столу
Що має робити кухня? Бачити передані страви й змінювати статус приготування
Які оплати потрібні? Готівка, картка, змішана або часткова оплата
Які звіти потрібні? Продажі за день, популярні страви, ефективність офіціантів, завантаженість столів
Що є критичною вимогою? Після оплати замовлення має закриватися, а стіл ставати вільним
Що бажано додати? Бронювання, мапу залу, розділення рахунку, склад інгредієнтів

Див. також