Атестаційні завдання K2 ERP/Готель
Атестаційне завдання K2 ERP — Готель — це практична задача для перевірки навичок розробника або впроваджувача K2 ERP у створенні комплексного модуля для готельно-ресторанного комплексу.
Модуль має забезпечувати облік номерного фонду, бронювань, поселення і виїзду гостей, додаткових послуг, ресторанних замовлень, замовлень у номер, прибирання, рахунків, оплат, особистого кабінету гостя та звітності по завантаженості й доходах.
Коротко. Потрібно реалізувати систему для готелю з рестораном: типи номерів, номери, гості, бронювання, поселення, виїзд, додаткові послуги, ресторан, замовлення в номер, прибирання, єдиний рахунок, оплати, календар зайнятості, кабінет гостя, сповіщення і звіти.
Назва завдання
Комплексна система обліку готелю з рестораном: бронювання, поселення, обслуговування гостей, замовлення їжі та оплата.
Мета завдання
Мета завдання — створити в K2 ERP модуль для автоматизації роботи готелю, апарт-готелю, бази відпочинку, хостелу або готельно-ресторанного комплексу.
Система повинна дозволяти:
- вести типи номерів;
- вести номерний фонд;
- вести гостей;
- приймати бронювання;
- контролювати календар зайнятості номерів;
- виконувати поселення;
- виконувати виїзд;
- нараховувати вартість проживання;
- додавати додаткові послуги;
- керувати прибиранням номерів;
- вести ресторан;
- приймати замовлення в ресторані;
- оформлювати замовлення їжі в номер;
- прив’язувати ресторанні замовлення до номера гостя;
- формувати єдиний рахунок за проживання, послуги й харчування;
- приймати оплату готівкою, карткою або банківським переказом;
- формувати PDF-рахунки й чеки;
- підтримувати особистий кабінет гостя;
- надсилати сповіщення;
- формувати звіти по завантаженості, доходах, бронюваннях, ресторану й популярних послугах.
Головний принцип. Гість має пройти повний цикл обслуговування в одній системі: бронювання → поселення → проживання → додаткові послуги → ресторан або замовлення в номер → фінальний рахунок → оплата → виїзд.
Реальний бізнес-контекст
Готель надає гостям проживання та супутні послуги. У складі готелю може працювати ресторан, бар, СПА-зона, паркінг, трансферна служба, конференц-зали або інші сервіси.
Гість може:
- забронювати номер онлайн або через адміністратора;
- заселитися на рецепції;
- замовити сніданок, обід або вечерю;
- скористатися СПА, паркінгом чи трансфером;
- замовити їжу в номер;
- оплатити все одним рахунком під час виїзду.
Для готелю важливо бачити зайнятість номерів, статуси прибирання, майбутні заїзди, виїзди, борги гостей, виручку по проживанню, ресторану й додаткових послугах.
Основний бізнес-процес
Типовий процес роботи готелю виглядає так:
- гість створює бронювання або адміністратор створює його вручну;
- система перевіряє доступність номера на вибрані дати;
- бронювання отримує статус «Підтверджене»;
- перед заїздом номер готується до поселення;
- адміністратор виконує поселення гостя;
- номер переходить у статус «Зайнятий»;
- під час проживання гостю можуть нараховуватися додаткові послуги;
- ресторанні замовлення можуть оплачуватися одразу або переноситися на рахунок номера;
- при виїзді формується фінальний рахунок;
- гість оплачує проживання, послуги й харчування;
- адміністратор виконує виїзд;
- номер переходить у статус «Прибирання»;
- після прибирання номер знову стає «Вільний».
Основні об’єкти модуля
| Об’єкт | Призначення |
|---|---|
| Типи номерів | Стандарт, люкс, апартаменти, сімейний номер тощо |
| Номери | Конкретні кімнати готелю |
| Гості | Фізичні особи або корпоративні клієнти |
| Бронювання | Попереднє резервування номера на дати |
| Проживання | Фактичне поселення гостя |
| Додаткові послуги | Паркінг, СПА, трансфер, сніданок, дитяча кімната |
| Прибирання | Контроль підготовки номера |
| Столи ресторану | Посадкові місця ресторану |
| Меню ресторану | Страви й напої |
| Ресторанні замовлення | Замовлення в залі або в номер |
| Рахунки | Документи для оплати |
| Оплати | Готівка, картка, банківський переказ |
| Кабінет гостя | Перегляд бронювань, рахунків і замовлень |
| Звіти | Аналітика по готелю, ресторану, доходах і зайнятості |
Довідник «Типи номерів»
Тип номера визначає категорію, місткість і базову ціну.
Приклади типів номерів
- стандарт;
- покращений стандарт;
- люкс;
- напівлюкс;
- апартаменти;
- сімейний номер;
- одномісний номер;
- двомісний номер;
- хостельне місце.
Поля типу номера
| Поле | Опис |
|---|---|
| Назва типу | Наприклад: Стандарт, Люкс, Апартаменти |
| Кількість місць | Скільки гостей може проживати |
| Площа | Площа номера |
| Базова ціна за добу | Стандартна вартість проживання |
| Опис | Коротка характеристика номера |
| Фото | Опціонально для сайту бронювання |
| Активність | Чи доступний тип номера для бронювання |
Довідник «Номери»
Довідник номерів містить конкретні кімнати готелю.
Поля номера
| Поле | Опис |
|---|---|
| Номер кімнати | Наприклад: 101, 202, A-15 |
| Тип номера | Стандарт, люкс, апартаменти тощо |
| Поверх | На якому поверсі знаходиться номер |
| Корпус | Якщо готель має кілька корпусів |
| Кількість місць | Може успадковуватись із типу номера |
| Статус | Вільний, заброньований, зайнятий, прибирання, ремонт |
| Коментар | Особливості номера |
Статуси номера
| Статус | Значення |
|---|---|
| Вільний | Номер доступний для поселення або бронювання |
| Заброньований | Номер зарезервовано на майбутні дати |
| Зайнятий | У номері проживає гість |
| Прибирання | Номер потребує підготовки після виїзду |
| Ремонт | Номер тимчасово недоступний |
| Заблокований | Номер вручну закритий для продажу |
Критично. Система не повинна дозволяти поселити двох гостей в один номер на періоди, які перетинаються.
Довідник «Гості»
Довідник гостей містить клієнтів готелю.
Поля гостя
| Поле | Опис |
|---|---|
| ПІБ | Ім’я гостя |
| Телефон | Контактний номер |
| Для підтверджень і рахунків | |
| Документ | Паспорт або інший документ, якщо потрібно |
| Країна | Країна гостя |
| Компанія | Якщо гість проживає від імені організації |
| Коментар | Особливі побажання або примітки |
| Статус | Активний, VIP, чорний список, архівний |
Бронювання номерів
Бронювання фіксує резервування номера на певний період.
Поля бронювання
| Поле | Опис |
|---|---|
| Номер бронювання | Унікальний номер |
| Гість | Хто бронює |
| Тип номера | Який тип номера потрібен |
| Номер | Конкретний номер, якщо уже призначений |
| Дата заїзду | Початок проживання |
| Дата виїзду | Завершення проживання |
| Кількість гостей | Скільки людей проживатиме |
| Вартість проживання | Розрахована сума |
| Передоплата | Якщо передбачена |
| Статус бронювання | Нове, підтверджене, скасоване, заселене, завершене |
Статуси бронювання
| Статус | Значення |
|---|---|
| Нове | Бронювання створено, але ще не підтверджено |
| Очікує передоплати | Потрібна оплата для підтвердження |
| Підтверджене | Номер зарезервовано |
| Заселене | Гість фактично заселився |
| Скасоване | Бронювання скасовано |
| Не заїхав | Гість не приїхав |
| Завершене | Проживання завершено |
Календар зайнятості номерів
Календар показує доступність номерів за датами.
У календарі потрібно бачити
- вільні номери;
- заброньовані номери;
- зайняті номери;
- номери на прибиранні;
- номери в ремонті;
- заїзди;
- виїзди;
- прострочені виїзди;
- ручні блокування номерів.
Поселення гостя
Поселення переводить бронювання в фактичне проживання.
Кроки поселення
- адміністратор знаходить бронювання;
- перевіряє дані гостя;
- перевіряє готовність номера;
- фіксує фактичну дату й час заїзду;
- змінює статус бронювання на «Заселене»;
- змінює статус номера на «Зайнятий»;
- відкриває рахунок проживання гостя.
Виїзд гостя
Виїзд завершує проживання й формує фінальний розрахунок.
Кроки виїзду
- адміністратор відкриває картку проживання;
- перевіряє всі нарахування;
- додає ресторанні замовлення, якщо вони були перенесені на номер;
- додає додаткові послуги;
- формує фінальний рахунок;
- приймає оплату;
- закриває проживання;
- змінює статус номера на «Прибирання»;
- після прибирання номер повертається в статус «Вільний».
Додаткові послуги готелю
Готель може надавати послуги, які додаються до рахунку гостя.
Приклади послуг
- сніданок;
- трансфер;
- паркінг;
- СПА;
- сауна;
- пральня;
- дитяча кімната;
- конференц-зал;
- додаткове ліжко;
- ранній заїзд;
- пізній виїзд.
Поля послуги
| Поле | Опис |
|---|---|
| Назва послуги | Наприклад: Сніданок, СПА, Паркінг |
| Категорія | Харчування, транспорт, сервіс, інше |
| Ціна | Вартість послуги |
| Одиниця | Доба, година, раз, послуга |
| Активність | Чи доступна послуга для нарахування |
Прибирання номерів
Після виїзду номер має перейти в стан підготовки.
Статуси прибирання
| Статус | Значення |
|---|---|
| Очікує прибирання | Номер звільнений і потребує прибирання |
| В роботі | Прибирання виконується |
| Перевірка | Номер потрібно перевірити адміністратору |
| Готовий | Номер готовий до наступного гостя |
Ресторан у складі готелю
Ресторан може працювати як окремо, так і з прив’язкою до проживання гостя.
Довідник «Столи ресторану»
| Поле | Опис |
|---|---|
| Номер столу | Назва або номер столика |
| Зона | Зал, тераса, бар, VIP |
| Кількість місць | Скільки гостей можна посадити |
| Статус | Вільний, зайнятий, заброньований |
Довідник «Меню ресторану»
| Поле | Опис |
|---|---|
| Назва страви або напою | Позиція меню |
| Категорія | Салати, гарячі страви, десерти, напої |
| Ціна | Вартість позиції |
| Вага або об’єм | Наприклад: 250 г, 0,5 л |
| Фото | Опціонально |
| Статус | Активна або недоступна |
Ресторанне замовлення
Ресторанне замовлення може бути прив’язане до столу або номера.
Поля ресторанного замовлення
| Поле | Опис |
|---|---|
| Номер замовлення | Унікальний номер |
| Тип замовлення | У залі, у номер, самовивіз |
| Стіл | Якщо гість сидить у ресторані |
| Номер готелю | Якщо замовлення прив’язане до проживання |
| Гість | Хто замовляє |
| Офіціант | Хто прийняв замовлення |
| Позиції меню | Страви та напої |
| Сума | Загальна вартість |
| Статус | Прийняте, на кухні, готове, доставлено, оплачено |
Замовлення їжі в номер
Room service дозволяє гостю замовити страви безпосередньо в номер.
Процес замовлення в номер
- гість або адміністратор створює замовлення;
- обирається номер проживання;
- додаються страви й напої;
- замовлення передається на кухню;
- кухня готує замовлення;
- працівник доставляє його в номер;
- замовлення або оплачується одразу, або додається до фінального рахунку гостя.
Рахунки і оплати
Система повинна дозволяти формувати як окремі, так і єдині рахунки.
Варіанти рахунків
- рахунок за проживання;
- рахунок за додаткові послуги;
- ресторанний рахунок;
- рахунок за замовлення в номер;
- фінальний єдиний рахунок гостя;
- корпоративний рахунок для компанії.
Єдиний рахунок гостя
Єдиний рахунок може включати:
- проживання;
- туристичний збір, якщо потрібно;
- сніданки;
- ресторан;
- room service;
- СПА;
- паркінг;
- трансфер;
- інші додаткові послуги.
Способи оплати
- готівка;
- банківська картка;
- банківський переказ;
- передоплата;
- часткова оплата;
- оплата компанією;
- змішана оплата.
Особистий кабінет гостя
Кабінет гостя потрібен для самостійного перегляду бронювань і рахунків.
Функції кабінету гостя
Гість повинен мати можливість:
- переглядати свої бронювання;
- бачити статус бронювання;
- бачити дати заїзду і виїзду;
- переглядати рахунки;
- завантажувати PDF-рахунки;
- переглядати ресторанні замовлення;
- переглядати додаткові послуги;
- оплачувати онлайн, якщо реалізовано;
- залишати відгук, якщо реалізовано.
Сповіщення
Система має надсилати повідомлення гостям і персоналу.
Події для сповіщень
- створено бронювання;
- бронювання підтверджено;
- наближається дата заїзду;
- номер готовий до заїзду;
- настав час виїзду;
- номер потребує прибирання;
- ресторанне замовлення готове;
- замовлення доставлено в номер;
- сформовано рахунок;
- отримано оплату.
Звіти
Звіт «Зайнятість номерів»
Звіт показує завантаженість номерного фонду.
У звіті потрібно відображати:
- період;
- кількість номерів;
- кількість зайнятих номерів;
- кількість вільних номерів;
- відсоток завантаженості;
- дохід від проживання.
Звіт «Бронювання за період»
У звіті потрібно відображати:
- номер бронювання;
- гостя;
- номер;
- дату заїзду;
- дату виїзду;
- статус;
- суму проживання.
Звіт «Доходи готелю»
Звіт показує фінансовий результат.
У звіті потрібно відображати:
- проживання;
- додаткові послуги;
- ресторан;
- room service;
- загальну суму;
- оплати готівкою;
- оплати карткою;
- борги.
Звіт «Ресторан і популярні страви»
У звіті потрібно відображати:
- кількість ресторанних замовлень;
- суму продажів;
- ТОП-страви;
- продажі по категоріях;
- замовлення в номер.
Звіт «Прибирання номерів»
У звіті потрібно відображати:
- номер;
- статус прибирання;
- час виїзду;
- час завершення прибирання;
- відповідального працівника.
AJAX-інтерактив
Інтерфейс має працювати швидко й без перезавантаження сторінок.
Через AJAX мають працювати:
- перевірка доступності номерів;
- створення бронювання;
- поселення гостя;
- виїзд гостя;
- зміна статусу номера;
- зміна статусу прибирання;
- додавання послуг до рахунку;
- створення ресторанного замовлення;
- передача замовлення на кухню;
- зміна статусу ресторанного замовлення;
- формування рахунку;
- фіксація оплати;
- оновлення календаря зайнятості;
- фільтрація звітів.
Логування змін
Модуль повинен фіксувати важливі дії.
Журнал змін має зберігати:
- хто створив бронювання;
- хто змінив дати бронювання;
- хто поселив гостя;
- хто виконав виїзд;
- хто змінив статус номера;
- хто додав послугу до рахунку;
- хто створив ресторанне замовлення;
- хто переніс ресторанне замовлення на номер;
- хто сформував рахунок;
- хто зафіксував оплату;
- хто змінив статус прибирання;
- дату й час дії;
- старе та нове значення, якщо це можливо.
Права доступу
Модуль має підтримувати розмежування прав.
| Роль | Можливості |
|---|---|
| Адміністратор рецепції | Створює бронювання, поселяє гостей, оформлює виїзд, формує рахунки |
| Покоївка | Бачить номери на прибирання і змінює статус підготовки |
| Офіціант | Приймає ресторанні замовлення і замовлення в номер |
| Кухар | Бачить кухонні замовлення і змінює статуси приготування |
| Касир | Приймає оплати, друкує рахунки й чеки |
| Гість | Переглядає свої бронювання, рахунки й послуги в кабінеті |
| Керівник | Переглядає зайнятість, доходи, ресторан, послуги й звіти |
| Адміністратор системи | Налаштовує довідники, права, тарифи, номери, меню і службові параметри |
Технічні вимоги
| Параметр | Опис |
|---|---|
| Бекенд | K2 Cloud ERP на Python або PHP |
| База даних | PostgreSQL або MySQL |
| Фронтенд | HTML5, JavaScript |
| AJAX | Fetch API або Axios |
| UI-компоненти | DataTables, Select2, FullCalendar для календаря бронювань, Slick Carousel для галереї номерів і страв |
| Друк | PDF-рахунки, чеки, підтвердження бронювань |
| Медіа | Фото номерів і страв |
| Платежі | Онлайн-оплата, опціонально |
| Експорт | Excel або PDF для звітів |
Рекомендовані сутності бази даних
Для реалізації задачі доцільно передбачити такі сутності:
- типи номерів;
- номери;
- гості;
- бронювання;
- проживання;
- статуси номерів;
- прибирання;
- додаткові послуги;
- нарахування;
- столи ресторану;
- меню ресторану;
- ресторанні замовлення;
- позиції замовлень;
- рахунки;
- оплати;
- сповіщення;
- кабінет гостя;
- журнал змін;
- звіти;
- права доступу.
Практичне завдання
У межах атестації потрібно продемонструвати робочий сценарій.
Мінімальний сценарій:
- створити типи номерів;
- створити номери;
- створити гостя;
- створити бронювання;
- перевірити доступність номера в календарі;
- підтвердити бронювання;
- виконати поселення;
- перевести номер у статус «Зайнятий»;
- додати додаткову послугу;
- створити ресторанний стіл;
- створити меню ресторану;
- створити ресторанне замовлення;
- прив’язати ресторанне замовлення до номера гостя;
- створити замовлення їжі в номер;
- змінити статус замовлення на «Готове»;
- додати ресторанне замовлення до рахунку гостя;
- сформувати єдиний фінальний рахунок;
- зафіксувати оплату;
- виконати виїзд гостя;
- перевести номер у статус «Прибирання»;
- завершити прибирання;
- перевести номер у статус «Вільний»;
- сформувати звіт зайнятості номерів;
- сформувати звіт доходів готелю;
- сформувати звіт ресторану;
- перевірити журнал змін.
Критерії оцінювання
| Критерій | Бали | Що перевіряється |
|---|---|---|
| Реалізація обліку номерного фонду і столів | 20 | Типи номерів, номери, статуси номерів, столи ресторану, меню |
| Процеси бронювання, поселення, замовлення страв | 20 | Бронювання, календар зайнятості, поселення, виїзд, ресторанні замовлення, room service |
| Формування рахунків за проживання та харчування | 20 | Проживання, додаткові послуги, ресторан, єдиний рахунок, оплати |
| Звіти про доходи, зайнятість номерів, популярні страви | 20 | Завантаженість номерів, бронювання, доходи, ресторан, прибирання |
| Інтерактивність через AJAX, особисті кабінети, сповіщення | 20 | AJAX-бронювання, статуси, кабінет гостя, сповіщення, оновлення календарів |
| Разом | 100 | Максимальна оцінка |
Шкала оцінювання
| Бали | Рівень | Опис |
|---|---|---|
| 90–100 | Відмінно | Модуль повністю працює: номери, бронювання, поселення, ресторан, room service, рахунки, оплати, прибирання, кабінет гостя і звіти реалізовані коректно |
| 75–89 | Добре | Основна логіка працює, є незначні недоліки, які не руйнують процес роботи готелю |
| 60–74 | Зараховано | Базовий сценарій працює, але частина функцій реалізована неповно або потребує доопрацювання |
| 0–59 | Не зараховано | Відсутня критична логіка: номери, бронювання, поселення, рахунки, ресторан або оплати |
Критичні помилки
Критичними помилками вважаються ситуації, коли:
- неможливо створити тип номера;
- неможливо створити номер;
- неможливо створити гостя;
- неможливо створити бронювання;
- система дозволяє подвійне бронювання номера на один період;
- неможливо виконати поселення;
- після поселення номер не переходить у статус «Зайнятий»;
- неможливо додати додаткову послугу до рахунку;
- ресторанне замовлення не прив’язується до номера;
- фінальний рахунок не включає проживання і додаткові послуги;
- оплата не прив’язується до рахунку;
- після виїзду номер не переходить у статус «Прибирання»;
- після завершення прибирання номер не стає вільним;
- звіти не відповідають фактичним бронюванням, оплатам і замовленням;
- зміни бронювань, рахунків, оплат і статусів номерів не логуються.
Умова складання. Завдання не може бути зараховане, якщо система не дозволяє пройти базовий цикл готелю: бронювання → поселення → проживання → послуги або ресторан → рахунок → оплата → виїзд → прибирання → звіт.
Очікуваний результат
У результаті виконання атестаційного завдання має бути створений комплексний модуль готелю з рестораном у K2 ERP.
Модуль має підтримувати типи номерів, номери, гостей, бронювання, календар зайнятості, поселення, виїзд, додаткові послуги, прибирання, ресторан, меню, замовлення в номер, єдиний рахунок, оплати, кабінет гостя, сповіщення, звіти, AJAX-інтерактив і логування змін.
Примітка
Повна ERP-система для готельно-ресторанного комплексу автоматизує весь цикл обслуговування гостей: бронювання, поселення, проживання, харчування, додаткові послуги, фінальні розрахунки та підготовку номера до наступного гостя.
Впровадження такого модуля підвищує рівень сервісу, зменшує ручну роботу персоналу, покращує контроль доходів і допомагає керівництву бачити реальну завантаженість готелю.
Коротко
| Питання | Відповідь |
|---|---|
| Що потрібно створити? | Комплексний модуль готелю з рестораном |
| Які головні довідники? | Типи номерів, номери, гості, послуги, столи ресторану, меню |
| Який головний процес? | Бронювання, поселення, проживання, рахунок, оплата, виїзд |
| Що має включати єдиний рахунок? | Проживання, додаткові послуги, ресторан, замовлення в номер |
| Що має відбуватися після виїзду? | Номер переходить у статус прибирання |
| Що має відбуватися після прибирання? | Номер знову стає вільним |
| Які звіти потрібні? | Зайнятість номерів, бронювання, доходи, ресторан, прибирання |
| Що є критичною вимогою? | Не можна допустити подвійне бронювання номера на один період |