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

Первинна публікація
 
Немає опису редагування
 
Рядок 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%;"
! Поле
! Опис
|-
| Номер рахунку
| Унікальний номер
|-
| Замовлення
| До якого замовлення належить рахунок
|-
| Стіл
| По якому столу рахунок
|-
| Офіціант
| Хто сформував рахунок
|-
| Сума
| Загальна сума
|-
| Знижка
| Якщо застосовується
|-
| Сума до оплати
| Підсумок після знижки
|-
| Статус оплати
| Не оплачено, частково оплачено, оплачено
|-
| Тип оплати
| Готівка, картка, змішано
|}
 
== Оплати ==


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


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


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


=== 1. Структура довідників ===
== Статуси оплати ==


==== Довідник «Столи» ====
{| class="wikitable" style="width:100%;"
Поля довідника:
! Статус
! Значення
|-
| Не оплачено
| Рахунок ще не оплачений
|-
| Частково оплачено
| Оплачена частина рахунку
|-
| Оплачено
| Рахунок повністю оплачено
|-
| Повернення
| Оплату повернено
|}


* номер або назва столу;
== Розділення рахунку ==
* зал або зона — опціонально:
** VIP;
** тераса;
* кількість місць;
* статус:
** вільний;
** зайнятий;
** заброньований.


==== Довідник «Меню» ====
Ресторан часто потребує можливості розділити рахунок між гостями.
Поля довідника:


* назва страви / напою;
== Варіанти розділення ==
* категорія:
** салати;
** гарячі страви;
** десерти;
** напої;
* ціна;
* опис;
* вага або об'єм;
* фото страви — опціонально.


==== Довідник «Офіціанти» ====
* порівну між гостями;
Поля довідника:
* по окремих позиціях;
* частина готівкою, частина карткою;
* окремі рахунки для різних гостей;
* перенесення частини позицій на інший стіл.


* ПІБ;
== Бронювання столів ==
* телефон;
* ставка — опціонально для обліку чаєвих і зарплати.


=== 2. База «Замовлення» ===
Модуль може підтримувати попереднє бронювання.


==== Колонки бази ====
== Поля бронювання ==


* столик;
{| class="wikitable" style="width:100%;"
* офіціант;
! Поле
* список страв і напоїв;
! Опис
* кількість кожної страви;
|-
* статус замовлення:
| Дата і час
** прийняте;
| Коли очікуються гості
** в готуванні;
|-
** готове;
| Стіл або зона
** доставлено;
| Що бронюється
* час прийому замовлення;
|-
* коментарі — особливі побажання гостя.
| Ім’я гостя
| Хто бронює
|-
| Телефон
| Контактний номер
|-
| Кількість гостей
| Скільки людей очікується
|-
| Коментар
| Побажання гостя
|-
| Статус
| Нове, підтверджене, скасоване, виконане
|}
 
== Інтерактивна мапа залу ==
 
Опціонально можна реалізувати візуальну мапу залу.
 
== На мапі залу потрібно показувати ==
 
* столи;
* зони;
* статус кожного столу;
* активне замовлення;
* суму відкритого рахунку;
* бронювання;
* офіціанта, який обслуговує стіл.
 
== Склад і списання інгредієнтів ==
 
Складський блок є опціональним, але корисним для ресторану.
 
== Що має підтримувати склад ==
 
* довідник інгредієнтів;
* технологічні карти страв;
* списання інгредієнтів при продажу страви;
* контроль залишків;
* попередження про нестачу інгредієнтів;
* звіт по використанню продуктів.
 
== Технологічна карта страви ==
 
Технологічна карта визначає, які інгредієнти потрібні для страви.
 
== Поля технологічної карти ==
 
{| class="wikitable" style="width:100%;"
! Поле
! Опис
|-
| Страва
| Позиція меню
|-
| Інгредієнт
| Продукт зі складу
|-
| Кількість
| Норма витрати
|-
| Одиниця виміру
| Г, кг, мл, л, шт.
|}


==== Функціонал ====
== Звіти ==


* оформлення замовлення за столиком;
== Звіт «Продажі за день» ==
* передача замовлення на кухню:
** кухонний принтер;
** планшет;
* можливість доповнювати замовлення новими стравами.


=== 3. База «Рахунки» ===
Звіт показує результат роботи за день.


==== Колонки бази ====
У звіті потрібно відображати:


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


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


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


=== 4. Процеси ===
У звіті потрібно відображати:


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


* офіціант приймає замовлення на планшеті або смартфоні;
== Звіт «Ефективність офіціантів» ==
* замовлення миттєво передається на кухню;
* статус страв змінюється в міру приготування.


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


* офіціант формує рахунок;
У звіті потрібно відображати:
* гість оплачує рахунок:
** готівкою;
** карткою;
* стіл змінює статус на «Вільний».


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


* робота через AJAX для оновлення статусів замовлень у реальному часі;
== Звіт «Завантаженість столів» ==
* бронювання столів заздалегідь;
* інтерактивна мапа залу — розташування столиків;
* можливість розділення рахунку на кількох гостей;
* облік залишків на складі за стравами, наприклад по інгредієнтах — опціонально.


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


==== Звіт «Продажі за день» ====
У звіті потрібно відображати:


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


==== Звіт «Найпопулярніші страви» ====
== Звіт «Скасовані позиції» ==


* ТОП-10 замовлених позицій.
Звіт допомагає контролювати помилки або зловживання.


==== Звіт «Ефективність офіціантів» ====
У звіті потрібно відображати:


* кількість обслугованих замовлень;
* дату;
* середній чек на офіціанта.
* замовлення;
* стіл;
* офіціанта;
* позицію меню;
* кількість;
* причину скасування.
 
== 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
|-
|-
|Бекенд
| Кухонний екран
|K2 Cloud ERP на Python або PHP
| Оновлення статусів замовлень у реальному часі
|-
|-
|БД
| Друк
|PostgreSQL або MySQL
| PDF-рахунки, друк на чековому або кухонному принтері
|-
|-
|Фронтенд
| Медіа
|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-система — це обов'язковий інструмент для:


* ефективного обслуговування гостей;
Ресторанна ERP-система потрібна кафе, барам, ресторанам, фудкортам, їдальням, готельним ресторанам і мережам громадського харчування.
* зменшення людських помилок;
 
* оптимізації роботи персоналу.
Правильна автоматизація ресторану зменшує помилки персоналу, пришвидшує обслуговування гостей, покращує комунікацію між залом і кухнею, допомагає контролювати виручку та підвищує якість сервісу.
 
== Коротко ==
 
{| class="wikitable" style="width:100%;"
! Питання
! Відповідь
|-
| Що потрібно створити?
| Модуль обліку ресторанних замовлень, столів, кухні й рахунків
|-
| Які довідники потрібні?
| Зали, столи, меню, категорії страв, офіціанти
|-
| Який головний документ?
| Замовлення по столу
|-
| Що має робити кухня?
| Бачити передані страви й змінювати статус приготування
|-
| Які оплати потрібні?
| Готівка, картка, змішана або часткова оплата
|-
| Які звіти потрібні?
| Продажі за день, популярні страви, ефективність офіціантів, завантаженість столів
|-
| Що є критичною вимогою?
| Після оплати замовлення має закриватися, а стіл ставати вільним
|-
| Що бажано додати?
| Бронювання, мапу залу, розділення рахунку, склад інгредієнтів
|}
 
== Див. також ==


Правильна система автоматизації:
* [[K2 Cloud ERP|K2 ERP]]
* [[K2 ERP]]
* [[Атестаційні завдання K2 ERP]]
* [[Каса]]
* [[Складський облік]]
* [[Виробництво]]
* [[CRM]]
* [[Ресторан]]
* [[Меню]]
* [[Замовлення]]
* [[Рахунок на оплату]]
* [[Кухня]]
* [[Офіціант]]
* [[AJAX]]


* збільшує швидкість обслуговування;
[[Категорія:K2 ERP]]
* покращує досвід гостей.
[[Категорія:Атестаційні завдання K2]]
[[Категорія:Ресторан]]
[[Категорія:POS]]
[[Категорія:Каса]]
[[Категорія:Складський облік]]
[[Категорія:Корпоративна Wiki]]