Атестаційні завдання K2 ERP/Ресторан: відмінності між версіями
R (обговорення | внесок) Первинна публікація |
R (обговорення | внесок) Немає опису редагування |
||
| Рядок 1: | Рядок 1: | ||
{{DISPLAYTITLE:Атестаційні завдання K2 ERP/Ресторан}} | |||
= Модуль обліку замовлень, кухні, столів і рахунків для ресторану = | '''Атестаційне завдання K2 ERP — Ресторан''' — це практична задача для перевірки навичок розробника або впроваджувача [[K2 ERP]] у створенні модуля обліку ресторанних замовлень, столів, меню, кухні, рахунків, оплат і звітності. | ||
Модуль має забезпечувати повний цикл обслуговування гостя: бронювання або посадку за стіл, прийом замовлення офіціантом, передачу страв на кухню, контроль статусів приготування, доповнення замовлення, формування рахунку, оплату, звільнення столу та аналіз продажів. | |||
<div style="border:3px solid #1565c0; background:#e3f2fd; padding:14px; margin:16px 0;"> | |||
'''Коротко.''' Потрібно реалізувати ресторанний модуль: зали, столи, меню, категорії страв, офіціанти, замовлення, кухня, статуси страв, рахунки, оплати, бронювання столів, розділення рахунку, склад інгредієнтів, звіти й AJAX-оновлення в реальному часі. | |||
</div> | |||
__TOC__ | |||
== Назва завдання == | |||
'''Модуль обліку замовлень, кухні, столів і рахунків для ресторану'''. | |||
== Мета завдання == | |||
Мета завдання — створити в K2 ERP модуль для автоматизації роботи ресторану, кафе, бару, фудкорту або закладу громадського харчування. | |||
Система повинна дозволяти: | |||
* вести зали і зони ресторану; | |||
* вести столи; | |||
* вести меню; | |||
* вести категорії страв і напоїв; | |||
* вести офіціантів; | |||
* приймати замовлення по столах; | |||
* додавати страви й напої до замовлення; | |||
* передавати замовлення на кухню або бар; | |||
* змінювати статуси страв; | |||
* доповнювати відкрите замовлення; | |||
* формувати рахунок; | |||
* розділяти рахунок між кількома гостями; | |||
* фіксувати оплату готівкою, карткою або змішано; | |||
* змінювати статус столу після оплати; | |||
* вести бронювання столів; | |||
* формувати звіти по продажах, стравах, офіціантах і столах; | |||
* працювати через AJAX без перезавантаження сторінок. | |||
<div style="border:3px solid #2e7d32; background:#e8f5e9; padding:14px; margin:16px 0;"> | |||
'''Головний принцип.''' Замовлення в ресторані має пройти зрозумілий шлях: стіл → офіціант → замовлення → кухня → готовність → подача → рахунок → оплата → звільнення столу. | |||
</div> | |||
== Реальний бізнес-контекст == | == Реальний бізнес-контекст == | ||
* | Ресторан щодня обслуговує гостей у залі, на терасі, у VIP-зонах або через попередні бронювання. Офіціанти приймають замовлення, кухня готує страви, бар готує напої, касир або офіціант приймає оплату, а керівник аналізує продажі. | ||
* | |||
* | У такій роботі важливо: | ||
* | |||
* | * не загубити замовлення; | ||
* швидко передати його на кухню; | |||
* бачити, які страви вже готуються; | |||
* знати, які страви готові; | |||
* швидко сформувати рахунок; | |||
* коректно прийняти оплату; | |||
* бачити завантаженість столів; | |||
* контролювати роботу офіціантів; | |||
* аналізувати популярні страви; | |||
* контролювати виручку за день. | |||
== Основний бізнес-процес == | |||
Типовий процес роботи ресторану виглядає так: | |||
# гість сідає за вільний або заброньований стіл; | |||
# офіціант відкриває замовлення по столу; | |||
# додає страви й напої з меню; | |||
# замовлення передається на кухню або бар; | |||
# кухня змінює статус страв на '''«Готується»'''; | |||
# після приготування статус змінюється на '''«Готово»'''; | |||
# офіціант подає страви гостям; | |||
# гість може дозамовити інші позиції; | |||
# після завершення обслуговування формується рахунок; | |||
# рахунок оплачується готівкою, карткою або частково різними способами; | |||
# замовлення закривається; | |||
# стіл переходить у статус '''«Вільний»'''; | |||
# дані потрапляють у звіти продажів. | |||
== Основні об’єкти модуля == | |||
{| class="wikitable" style="width:100%;" | |||
! Об’єкт | |||
! Призначення | |||
|- | |||
| Зали і зони | |||
| Розділення ресторану на зал, терасу, VIP, бар тощо | |||
|- | |||
| Столи | |||
| Посадкові місця для гостей | |||
|- | |||
| Меню | |||
| Страви, напої та інші позиції продажу | |||
|- | |||
| Категорії меню | |||
| Салати, гарячі страви, десерти, напої, бар | |||
|- | |||
| Офіціанти | |||
| Працівники, які приймають і ведуть замовлення | |||
|- | |||
| Кухня | |||
| Робоча зона приготування страв | |||
|- | |||
| Замовлення | |||
| Основний документ обслуговування гостя | |||
|- | |||
| Позиції замовлення | |||
| Конкретні страви й напої в замовленні | |||
|- | |||
| Рахунки | |||
| Документи для оплати | |||
|- | |||
| Оплати | |||
| Факт отримання коштів | |||
|- | |||
| Бронювання | |||
| Попереднє резервування столів | |||
|- | |||
| Склад | |||
| Облік інгредієнтів, якщо реалізовано | |||
|- | |||
| Звіти | |||
| Аналітика по продажах, стравах, офіціантах і столах | |||
|} | |||
== Довідник «Зали і зони» == | |||
Зали і зони допомагають організувати простір ресторану. | |||
== Приклади зон == | |||
* основний зал; | |||
* тераса; | |||
* VIP-зал; | |||
* барна зона; | |||
* банкетна зала; | |||
* літній майданчик; | |||
* доставка / самовивіз, якщо використовується. | |||
== Поля зони == | |||
{| class="wikitable" style="width:100%;" | |||
! Поле | |||
! Опис | |||
|- | |||
| Назва зони | |||
| Наприклад: Основний зал, Тераса, VIP | |||
|- | |||
| Опис | |||
| Додаткова інформація | |||
|- | |||
| Активність | |||
| Чи використовується зона | |||
|} | |||
== Довідник «Столи» == | |||
Довідник столів містить усі посадкові місця ресторану. | |||
== Поля столу == | |||
{| class="wikitable" style="width:100%;" | |||
! Поле | |||
! Опис | |||
|- | |||
| Номер або назва столу | |||
| Наприклад: Стіл 1, VIP-2, Тераса-5 | |||
|- | |||
| Зал або зона | |||
| Де знаходиться стіл | |||
|- | |||
| Кількість місць | |||
| Скільки гостей можна посадити | |||
|- | |||
| Статус | |||
| Вільний, зайнятий, заброньований, недоступний | |||
|- | |||
| Коментар | |||
| Наприклад: біля вікна, круглий стіл, диван | |||
|} | |||
== Статуси столу == | |||
{| class="wikitable" style="width:100%;" | |||
! Статус | |||
! Значення | |||
|- | |||
| Вільний | |||
| Стіл доступний для посадки | |||
|- | |||
| Зайнятий | |||
| За столом є активне замовлення | |||
|- | |||
| Заброньований | |||
| Стіл зарезервовано на певний час | |||
|- | |||
| Недоступний | |||
| Стіл тимчасово не використовується | |||
|} | |||
<div style="border:2px solid #f57c00; background:#fff3e0; padding:14px; margin:16px 0;"> | |||
'''Важливо.''' Стіл зі статусом '''«Зайнятий»''' не повинен відкриватися для нового замовлення без попередження або закриття попереднього рахунку. | |||
</div> | |||
== Довідник «Меню» == | |||
Меню містить усі страви, напої та послуги, які можна додати в замовлення. | |||
== Категорії меню == | |||
* салати; | |||
* холодні закуски; | |||
* гарячі страви; | |||
* перші страви; | |||
* гарніри; | |||
* десерти; | |||
* напої; | |||
* алкогольні напої; | |||
* кава і чай; | |||
* бар; | |||
* дитяче меню; | |||
* бізнес-ланч; | |||
* сезонне меню. | |||
== Поля позиції меню == | |||
{| class="wikitable" style="width:100%;" | |||
! Поле | |||
! Опис | |||
|- | |||
| Назва страви або напою | |||
| Назва позиції в меню | |||
|- | |||
| Категорія | |||
| До якої групи належить позиція | |||
|- | |||
| Ціна | |||
| Вартість для гостя | |||
|- | |||
| Вага або об’єм | |||
| Наприклад: 250 г, 0,5 л | |||
|- | |||
| Опис | |||
| Склад або коротке пояснення | |||
|- | |||
| Фото | |||
| Опціонально | |||
|- | |||
| Зона приготування | |||
| Кухня, бар, кондитерська тощо | |||
|- | |||
| Статус | |||
| Активна або недоступна | |||
|} | |||
== Доступність позицій меню == | |||
Позиція меню може бути тимчасово недоступною. | |||
== Причини недоступності == | |||
* закінчилися інгредієнти; | |||
* страва знята з меню; | |||
* сезонна позиція; | |||
* кухня тимчасово не готує цю позицію; | |||
* бар не має потрібного напою. | |||
== Довідник «Офіціанти» == | |||
Довідник офіціантів містить працівників, які приймають замовлення. | |||
== Поля офіціанта == | |||
{| class="wikitable" style="width:100%;" | |||
! Поле | |||
! Опис | |||
|- | |||
| ПІБ | |||
| Повне ім’я офіціанта | |||
|- | |||
| Телефон | |||
| Контактний номер | |||
|- | |||
| Зона роботи | |||
| Основна зона або зал | |||
|- | |||
| Ставка | |||
| Опціонально для зарплати | |||
|- | |||
| Статус | |||
| Активний, неактивний, звільнений | |||
|} | |||
== Замовлення == | |||
Замовлення — це основний документ, який відкривається на стіл або гостя. | |||
== Колонки журналу замовлень == | |||
{| class="wikitable" style="width:100%;" | |||
! Колонка | |||
! Опис | |||
|- | |||
| Номер замовлення | |||
| Унікальний номер | |||
|- | |||
| Стіл | |||
| За яким столом створено замовлення | |||
|- | |||
| Офіціант | |||
| Хто прийняв замовлення | |||
|- | |||
| Час відкриття | |||
| Коли замовлення створено | |||
|- | |||
| Сума | |||
| Поточна сума замовлення | |||
|- | |||
| Статус | |||
| Відкрите, на кухні, готове, закрите, скасоване | |||
|- | |||
| Коментар | |||
| Особливі побажання гостей | |||
|} | |||
== Поля замовлення == | |||
{| class="wikitable" style="width:100%;" | |||
! Поле | |||
! Опис | |||
|- | |||
| Номер замовлення | |||
| Генерується автоматично | |||
|- | |||
| Стіл | |||
| До якого столу прив’язане замовлення | |||
|- | |||
| Офіціант | |||
| Хто веде замовлення | |||
|- | |||
| Кількість гостей | |||
| Опціонально | |||
|- | |||
| Час відкриття | |||
| Коли створено замовлення | |||
|- | |||
| Час закриття | |||
| Коли замовлення завершено | |||
|- | |||
| Коментар гостя | |||
| Побажання: без солі, алергія, подати пізніше тощо | |||
|- | |||
| Загальна сума | |||
| Підсумок по позиціях | |||
|- | |||
| Статус | |||
| Поточний стан замовлення | |||
|} | |||
== Статуси замовлення == | |||
{| class="wikitable" style="width:100%;" | |||
! Статус | |||
! Значення | |||
|- | |||
| Відкрите | |||
| Замовлення створено і може доповнюватися | |||
|- | |||
| Передано на кухню | |||
| Позиції передані на приготування | |||
|- | |||
| В готуванні | |||
| Кухня готує страви | |||
|- | |||
| Частково готове | |||
| Частина позицій готова | |||
|- | |||
| Готове | |||
| Усі позиції готові | |||
|- | |||
| Подано | |||
| Страви передані гостю | |||
|- | |||
| Очікує оплати | |||
| Рахунок сформовано | |||
|- | |||
| Закрите | |||
| Замовлення оплачено і завершено | |||
|- | |||
| Скасоване | |||
| Замовлення скасовано | |||
|} | |||
== Позиції замовлення == | |||
Кожна страва або напій у замовленні має власний статус. | |||
== Поля позиції замовлення == | |||
{| class="wikitable" style="width:100%;" | |||
! Поле | |||
! Опис | |||
|- | |||
| Замовлення | |||
| До якого замовлення належить позиція | |||
|- | |||
| Позиція меню | |||
| Страва або напій | |||
|- | |||
| Кількість | |||
| Скільки одиниць замовлено | |||
|- | |||
| Ціна | |||
| Ціна на момент замовлення | |||
|- | |||
| Сума | |||
| Кількість × ціна | |||
|- | |||
| Коментар | |||
| Наприклад: без цибулі, гостре, подати пізніше | |||
|- | |||
| Зона приготування | |||
| Кухня або бар | |||
|- | |||
| Статус | |||
| Прийнято, готується, готово, подано, скасовано | |||
|} | |||
== Статуси позицій замовлення == | |||
{| class="wikitable" style="width:100%;" | |||
! Статус | |||
! Значення | |||
|- | |||
| Прийнято | |||
| Офіціант додав позицію в замовлення | |||
|- | |||
| Передано | |||
| Позиція передана на кухню або бар | |||
|- | |||
| Готується | |||
| Позиція в роботі | |||
|- | |||
| Готово | |||
| Позицію можна забирати | |||
|- | |||
| Подано | |||
| Позиція подана гостю | |||
|- | |||
| Скасовано | |||
| Позицію скасовано | |||
|} | |||
== Кухонний екран або кухня == | |||
Кухня має бачити тільки ті позиції, які потрібно готувати. | |||
== На кухонному екрані потрібно показувати == | |||
* номер замовлення; | |||
* стіл; | |||
* офіціанта; | |||
* час замовлення; | |||
* назву страви; | |||
* кількість; | |||
* коментар до страви; | |||
* статус приготування; | |||
* час очікування. | |||
== Функції кухні == | |||
Кухня повинна мати можливість: | |||
* прийняти позицію в роботу; | |||
* змінити статус на '''«Готується»'''; | |||
* змінити статус на '''«Готово»'''; | |||
* бачити термінові або давні замовлення; | |||
* бачити коментарі до страв; | |||
* фільтрувати позиції по зоні приготування. | |||
<div style="border:3px solid #b71c1c; background:#ffebee; padding:14px; margin:16px 0;"> | |||
'''Критично.''' Позиція, передана на кухню, має бути видима кухні без ручного дублювання замовлення офіціантом. | |||
</div> | |||
== Рахунки == | |||
Рахунок формується після завершення або під час обслуговування гостя. | |||
== Поля рахунку == | |||
{| class="wikitable" style="width:100%;" | |||
! Поле | |||
! Опис | |||
|- | |||
| Номер рахунку | |||
| Унікальний номер | |||
|- | |||
| Замовлення | |||
| До якого замовлення належить рахунок | |||
|- | |||
| Стіл | |||
| По якому столу рахунок | |||
|- | |||
| Офіціант | |||
| Хто сформував рахунок | |||
|- | |||
| Сума | |||
| Загальна сума | |||
|- | |||
| Знижка | |||
| Якщо застосовується | |||
|- | |||
| Сума до оплати | |||
| Підсумок після знижки | |||
|- | |||
| Статус оплати | |||
| Не оплачено, частково оплачено, оплачено | |||
|- | |||
| Тип оплати | |||
| Готівка, картка, змішано | |||
|} | |||
== Оплати == | |||
Модуль має підтримувати різні способи оплати. | |||
== Типи оплати == | |||
* готівка; | |||
* банківська картка; | |||
* змішана оплата; | |||
* часткова оплата; | |||
* оплата сертифікатом; | |||
* оплата бонусами, опціонально; | |||
* корпоративний рахунок, опціонально. | |||
== | == Статуси оплати == | ||
== | {| class="wikitable" style="width:100%;" | ||
! Статус | |||
! Значення | |||
|- | |||
| Не оплачено | |||
| Рахунок ще не оплачений | |||
|- | |||
| Частково оплачено | |||
| Оплачена частина рахунку | |||
|- | |||
| Оплачено | |||
| Рахунок повністю оплачено | |||
|- | |||
| Повернення | |||
| Оплату повернено | |||
|} | |||
== Розділення рахунку == | |||
Ресторан часто потребує можливості розділити рахунок між гостями. | |||
== Варіанти розділення == | |||
* порівну між гостями; | |||
* по окремих позиціях; | |||
* частина готівкою, частина карткою; | |||
* окремі рахунки для різних гостей; | |||
* перенесення частини позицій на інший стіл. | |||
== Бронювання столів == | |||
Модуль може підтримувати попереднє бронювання. | |||
== | == Поля бронювання == | ||
{| class="wikitable" style="width:100%;" | |||
* | ! Поле | ||
* | ! Опис | ||
* | |- | ||
* | | Дата і час | ||
** | | Коли очікуються гості | ||
** | |- | ||
** | | Стіл або зона | ||
** | | Що бронюється | ||
* | |- | ||
| Ім’я гостя | |||
| Хто бронює | |||
|- | |||
| Телефон | |||
| Контактний номер | |||
|- | |||
| Кількість гостей | |||
| Скільки людей очікується | |||
|- | |||
| Коментар | |||
| Побажання гостя | |||
|- | |||
| Статус | |||
| Нове, підтверджене, скасоване, виконане | |||
|} | |||
== Інтерактивна мапа залу == | |||
Опціонально можна реалізувати візуальну мапу залу. | |||
== На мапі залу потрібно показувати == | |||
* столи; | |||
* зони; | |||
* статус кожного столу; | |||
* активне замовлення; | |||
* суму відкритого рахунку; | |||
* бронювання; | |||
* офіціанта, який обслуговує стіл. | |||
== Склад і списання інгредієнтів == | |||
Складський блок є опціональним, але корисним для ресторану. | |||
== Що має підтримувати склад == | |||
* довідник інгредієнтів; | |||
* технологічні карти страв; | |||
* списання інгредієнтів при продажу страви; | |||
* контроль залишків; | |||
* попередження про нестачу інгредієнтів; | |||
* звіт по використанню продуктів. | |||
== Технологічна карта страви == | |||
Технологічна карта визначає, які інгредієнти потрібні для страви. | |||
== Поля технологічної карти == | |||
{| class="wikitable" style="width:100%;" | |||
! Поле | |||
! Опис | |||
|- | |||
| Страва | |||
| Позиція меню | |||
|- | |||
| Інгредієнт | |||
| Продукт зі складу | |||
|- | |||
| Кількість | |||
| Норма витрати | |||
|- | |||
| Одиниця виміру | |||
| Г, кг, мл, л, шт. | |||
|} | |||
== | == Звіти == | ||
== Звіт «Продажі за день» == | |||
Звіт показує результат роботи за день. | |||
У звіті потрібно відображати: | |||
* | * дату; | ||
* | * загальну виручку; | ||
* | * кількість рахунків; | ||
* | * кількість замовлень; | ||
* середній чек; | |||
* суму готівкою; | |||
* | * суму карткою. | ||
* | |||
* | |||
== | == Звіт «Найпопулярніші страви» == | ||
Звіт показує, які позиції меню продаються найкраще. | |||
У звіті потрібно відображати: | |||
* страву або напій; | |||
* категорію; | |||
* кількість продажів; | |||
* суму продажів; | |||
* частку в загальній виручці. | |||
== Звіт «Ефективність офіціантів» == | |||
Звіт показує роботу офіціантів. | |||
У звіті потрібно відображати: | |||
* офіціанта; | |||
* кількість замовлень; | |||
* кількість рахунків; | |||
* загальну суму продажів; | |||
* середній чек; | |||
* кількість скасованих позицій. | |||
== Звіт «Завантаженість столів» == | |||
Звіт показує використання столів. | |||
У звіті потрібно відображати: | |||
* | * стіл; | ||
* кількість | * зону; | ||
* кількість посадок; | |||
* загальну суму продажів; | |||
* середній час зайнятості; | |||
* середній чек. | * середній чек. | ||
== Звіт «Скасовані позиції» == | |||
Звіт допомагає контролювати помилки або зловживання. | |||
У звіті потрібно відображати: | |||
* кількість | * дату; | ||
* | * замовлення; | ||
* стіл; | |||
* офіціанта; | |||
* позицію меню; | |||
* кількість; | |||
* причину скасування. | |||
== AJAX-інтерактив == | |||
Інтерфейс має працювати швидко і без перезавантаження сторінки. | |||
Через AJAX мають працювати: | |||
* відкриття замовлення; | |||
* додавання страв; | |||
* зміна кількості; | |||
* передача на кухню; | |||
* зміна статусу страв; | |||
* оновлення кухонного екрану; | |||
* формування рахунку; | |||
* фіксація оплати; | |||
* розділення рахунку; | |||
* зміна статусу столу; | |||
* бронювання столу; | |||
* оновлення мапи залу; | |||
* фільтрація звітів. | |||
== Логування змін == | |||
Модуль повинен фіксувати важливі дії. | |||
Журнал змін має зберігати: | |||
* хто відкрив замовлення; | |||
* хто додав позицію; | |||
* хто змінив кількість; | |||
* хто скасував позицію; | |||
* хто передав замовлення на кухню; | |||
* хто змінив статус страви; | |||
* хто сформував рахунок; | |||
* хто зафіксував оплату; | |||
* хто розділив рахунок; | |||
* хто закрив замовлення; | |||
* хто змінив статус столу; | |||
* дату й час дії; | |||
* старе та нове значення, якщо це можливо. | |||
== Права доступу == | |||
Модуль має підтримувати розмежування прав. | |||
{| class="wikitable" style="width:100%;" | |||
! Роль | |||
! Можливості | |||
|- | |||
| Офіціант | |||
| Відкриває замовлення, додає страви, передає на кухню, формує рахунок | |||
|- | |||
| Кухар | |||
| Бачить кухонний екран, змінює статуси приготування | |||
|- | |||
| Бармен | |||
| Бачить барні позиції, змінює їхні статуси | |||
|- | |||
| Касир | |||
| Фіксує оплату, друкує рахунки й чеки | |||
|- | |||
| Адміністратор залу | |||
| Керує столами, бронюваннями, пересадками і відкритими рахунками | |||
|- | |||
| Менеджер | |||
| Керує меню, цінами, персоналом і звітами | |||
|- | |||
| Керівник | |||
| Переглядає продажі, виручку, ефективність офіціантів і популярність страв | |||
|- | |||
| Адміністратор системи | |||
| Налаштовує права, довідники, принтери, зони, меню і службові параметри | |||
|} | |||
== Технічні вимоги == | == Технічні вимоги == | ||
{| class="wikitable" | |||
!Параметр | {| class="wikitable" style="width:100%;" | ||
!Опис | ! Параметр | ||
! Опис | |||
|- | |||
| Бекенд | |||
| K2 Cloud ERP на Python або PHP | |||
|- | |||
| База даних | |||
| PostgreSQL або MySQL | |||
|- | |||
| Фронтенд | |||
| HTML5, JavaScript | |||
|- | |||
| AJAX | |||
| Fetch API або Axios | |||
|- | |||
| UI-компоненти | |||
| DataTables для замовлень, Select2 для вибору страв, інтерфейс залу через Canvas або Grid | |||
|- | |- | ||
| | | Кухонний екран | ||
| | | Оновлення статусів замовлень у реальному часі | ||
|- | |- | ||
| | | Друк | ||
| | | PDF-рахунки, друк на чековому або кухонному принтері | ||
|- | |- | ||
| | | Медіа | ||
| | | Фото страв, опціонально | ||
|- | |- | ||
| | | Склад | ||
| | | Облік інгредієнтів і списання по технологічних картах, опціонально | ||
|- | |- | ||
| | | Експорт | ||
| | | Excel або PDF для звітів | ||
|} | |} | ||
== Критерії | == Рекомендовані сутності бази даних == | ||
{| class="wikitable" | |||
!Критерій | Для реалізації задачі доцільно передбачити такі сутності: | ||
!Бали | |||
* зали; | |||
* столи; | |||
* категорії меню; | |||
* меню; | |||
* офіціанти; | |||
* замовлення; | |||
* позиції замовлення; | |||
* статуси замовлень; | |||
* кухонні завдання; | |||
* рахунки; | |||
* оплати; | |||
* бронювання столів; | |||
* знижки; | |||
* скасування позицій; | |||
* інгредієнти; | |||
* технологічні карти; | |||
* складські залишки; | |||
* журнал змін; | |||
* звіти; | |||
* права доступу. | |||
== Практичне завдання == | |||
У межах атестації потрібно продемонструвати робочий сценарій. | |||
Мінімальний сценарій: | |||
# створити зони ресторану; | |||
# створити столи; | |||
# створити категорії меню; | |||
# створити позиції меню; | |||
# створити офіціантів; | |||
# відкрити замовлення по столу; | |||
# додати кілька страв і напоїв; | |||
# додати коментар до позиції; | |||
# передати замовлення на кухню; | |||
# змінити статус позиції на '''«Готується»'''; | |||
# змінити статус позиції на '''«Готово»'''; | |||
# додати дозамовлення; | |||
# сформувати рахунок; | |||
# розділити рахунок, якщо функція реалізована; | |||
# зафіксувати оплату готівкою; | |||
# зафіксувати оплату карткою; | |||
# закрити замовлення; | |||
# перевести стіл у статус '''«Вільний»'''; | |||
# створити бронювання столу; | |||
# сформувати звіт продажів за день; | |||
# сформувати звіт популярних страв; | |||
# сформувати звіт ефективності офіціантів; | |||
# перевірити журнал змін. | |||
== Критерії оцінювання == | |||
{| class="wikitable" style="width:100%;" | |||
! Критерій | |||
! Бали | |||
! Що перевіряється | |||
|- | |- | ||
|Реалізація бази столів, меню і офіціантів | | Реалізація бази столів, меню і офіціантів | ||
|20 | | 20 | ||
| Зали, столи, меню, категорії, офіціанти, статуси столів | |||
|- | |- | ||
|Оформлення замовлень і управління статусами | | Оформлення замовлень і управління статусами | ||
|20 | | 20 | ||
| Відкриття замовлення, позиції, передача на кухню, статуси приготування, дозамовлення | |||
|- | |- | ||
|Формування рахунків і облік оплат | | Формування рахунків і облік оплат | ||
|20 | | 20 | ||
| Рахунок, знижка, часткова або повна оплата, готівка, картка, закриття столу | |||
|- | |- | ||
|Звіти по продажах і популярних стравах | | Звіти по продажах і популярних стравах | ||
|20 | | 20 | ||
| Продажі за день, популярні страви, офіціанти, столи, скасовані позиції | |||
|- | |- | ||
|Інтерактивність через AJAX і реальний час | | Інтерактивність через AJAX і реальний час | ||
|20 | | 20 | ||
| Оновлення замовлень, кухні, статусів, рахунків і мапи залу без перезавантаження | |||
|- | |||
! Разом | |||
! 100 | |||
! Максимальна оцінка | |||
|} | |} | ||
== Шкала оцінювання == | |||
{| class="wikitable" style="width:100%;" | |||
! Бали | |||
! Рівень | |||
! Опис | |||
|- | |||
| 90–100 | |||
| Відмінно | |||
| Модуль повністю працює: столи, меню, замовлення, кухня, рахунки, оплати, бронювання, звіти й AJAX-оновлення реалізовані коректно | |||
|- | |||
| 75–89 | |||
| Добре | |||
| Основна логіка працює, є незначні недоліки, які не руйнують процес обслуговування гостей | |||
|- | |||
| 60–74 | |||
| Зараховано | |||
| Базовий сценарій працює, але частина функцій реалізована неповно або потребує доопрацювання | |||
|- | |||
| 0–59 | |||
| Не зараховано | |||
| Відсутня критична логіка: столи, меню, замовлення, кухня, рахунки або оплати | |||
|} | |||
== Критичні помилки == | |||
Критичними помилками вважаються ситуації, коли: | |||
* неможливо створити стіл; | |||
* неможливо створити позицію меню; | |||
* неможливо відкрити замовлення; | |||
* замовлення не прив’язується до столу; | |||
* замовлення не прив’язується до офіціанта; | |||
* позиція меню не додається в замовлення; | |||
* сума замовлення розраховується неправильно; | |||
* позиція не передається на кухню; | |||
* кухня не бачить передані позиції; | |||
* статус позиції не змінюється; | |||
* рахунок не формується; | |||
* оплата не прив’язується до рахунку; | |||
* оплачений рахунок не закриває замовлення; | |||
* після закриття замовлення стіл не звільняється; | |||
* скасовані позиції залишаються в сумі рахунку; | |||
* звіти не відповідають фактичним продажам; | |||
* зміни замовлень, рахунків і оплат не логуються. | |||
<div style="border:3px solid #b71c1c; background:#ffebee; padding:14px; margin:16px 0;"> | |||
'''Умова складання.''' Завдання не може бути зараховане, якщо система не дозволяє пройти базовий цикл ресторану: стіл → замовлення → кухня → готовність → рахунок → оплата → звільнення столу → звіт. | |||
</div> | |||
== Очікуваний результат == | |||
У результаті виконання атестаційного завдання має бути створений ресторанний модуль у K2 ERP. | |||
Модуль має підтримувати зали, столи, меню, категорії страв, офіціантів, замовлення, позиції замовлень, кухонний екран, статуси приготування, рахунки, оплати, бронювання, розділення рахунків, мапу залу, склад інгредієнтів, звіти, AJAX-інтерактив і логування змін. | |||
== Примітка == | == Примітка == | ||
Ресторанна ERP-система потрібна кафе, барам, ресторанам, фудкортам, їдальням, готельним ресторанам і мережам громадського харчування. | |||
Правильна автоматизація ресторану зменшує помилки персоналу, пришвидшує обслуговування гостей, покращує комунікацію між залом і кухнею, допомагає контролювати виручку та підвищує якість сервісу. | |||
== Коротко == | |||
{| class="wikitable" style="width:100%;" | |||
! Питання | |||
! Відповідь | |||
|- | |||
| Що потрібно створити? | |||
| Модуль обліку ресторанних замовлень, столів, кухні й рахунків | |||
|- | |||
| Які довідники потрібні? | |||
| Зали, столи, меню, категорії страв, офіціанти | |||
|- | |||
| Який головний документ? | |||
| Замовлення по столу | |||
|- | |||
| Що має робити кухня? | |||
| Бачити передані страви й змінювати статус приготування | |||
|- | |||
| Які оплати потрібні? | |||
| Готівка, картка, змішана або часткова оплата | |||
|- | |||
| Які звіти потрібні? | |||
| Продажі за день, популярні страви, ефективність офіціантів, завантаженість столів | |||
|- | |||
| Що є критичною вимогою? | |||
| Після оплати замовлення має закриватися, а стіл ставати вільним | |||
|- | |||
| Що бажано додати? | |||
| Бронювання, мапу залу, розділення рахунку, склад інгредієнтів | |||
|} | |||
== Див. також == | |||
* [[K2 Cloud ERP|K2 ERP]] | |||
* [[K2 ERP]] | |||
* [[Атестаційні завдання K2 ERP]] | |||
* [[Каса]] | |||
* [[Складський облік]] | |||
* [[Виробництво]] | |||
* [[CRM]] | |||
* [[Ресторан]] | |||
* [[Меню]] | |||
* [[Замовлення]] | |||
* [[Рахунок на оплату]] | |||
* [[Кухня]] | |||
* [[Офіціант]] | |||
* [[AJAX]] | |||
[[Категорія:K2 ERP]] | |||
[[Категорія:Атестаційні завдання K2]] | |||
[[Категорія:Ресторан]] | |||
[[Категорія:POS]] | |||
[[Категорія:Каса]] | |||
[[Категорія:Складський облік]] | |||
[[Категорія:Корпоративна Wiki]] | |||