Атестаційні завдання K2 ERP/TMS
Атестаційне завдання K2 ERP — TMS — практична задача для розробника K2 ERP, що передбачає створення модуля управління транспортними перевезеннями: облік замовлень на доставку, автомобілів, водіїв, маршрутів, витрат, статусів доставки, друкованих документів і звітності.
Назва
Модуль управління транспортними перевезеннями (TMS).
Реальний бізнес-контекст
Компанія здійснює доставку товарів власним або залученим транспортом.
У системі потрібно вести облік:
- замовлень на доставку;
- автомобілів та водіїв;
- планування маршрутів;
- витрат на перевезення;
- статусу виконання доставки.
Менеджери повинні:
- призначати машини на замовлення;
- контролювати статуси перевезень у реальному часі;
- отримувати акти виконаних робіт.
Основні завдання
1. Структура довідників
Довідник «Транспортні засоби»
Довідник транспортних засобів повинен містити:
- державний номер;
- марку та модель;
- тип кузова;
- вантажопідйомність;
- власника транспорту:
- компанія;
- підрядник;
- стан транспортного засобу:
- активний;
- на ремонті.
Довідник «Водії»
Довідник водіїв повинен містити:
- ПІБ;
- телефон;
- водійське посвідчення;
- прив’язку до транспортного засобу.
2. Журнал «Замовлення на перевезення»
Журнал замовлень на перевезення повинен відображати всі доставки та їхній поточний стан.
Колонки журналу
У журналі мають бути такі колонки:
- номер замовлення;
- дата створення;
- замовник, контрагент;
- пункт відправлення;
- пункт призначення;
- дата та час завантаження;
- дата та час доставки;
- статус замовлення:
- нове;
- в дорозі;
- доставлено;
- скасовано.
Функціональність журналу
Журнал має підтримувати:
- пошук за номером замовлення;
- пошук за замовником;
- пошук за датами;
- фільтрацію за статусами.
3. Форма створення замовлення на перевезення
Заголовок замовлення
Форма замовлення повинна містити:
- замовника, контрагента через AJAX-пошук;
- контактну особу;
- пункт відправлення — пошук адреси або ручне введення;
- пункт призначення;
- планову дату завантаження;
- планову дату доставки;
- примітки.
Вибір транспортного засобу
Потрібно реалізувати:
- вибір із вільних машин, доступних на дату перевезення;
- автоматичний фільтр за вантажопідйомністю.
Вибір водія
Система повинна пропонувати водія, який закріплений за машиною, або дозволяти вибрати іншого водія.
4. Операції зі статусами
Потрібно реалізувати такі статуси замовлення:
- Нове — замовлення створене;
- Призначено — обрано машину та водія;
- В дорозі — машина вирушила, статус встановлюється кнопкою «Почати доставку»;
- Доставлено — машина прибула, статус встановлюється кнопкою «Завершити доставку»;
- Скасовано — замовлення скасоване.
5. Додаткові розрахунки
Вартість доставки розраховується за тарифами.
Можливі варіанти тарифікації:
- фіксована ціна за доставку;
- ціна за кілометр з автоматичним розрахунком відстані через Google Maps API;
- ціна за кілометр із ручним введенням відстані.
Формула розрахунку вартості
Вартість = Відстань × Тариф за 1 км + Додаткові витрати
До додаткових витрат можуть належати:
- очікування;
- навантаження;
- інші витрати, пов’язані з перевезенням.
6. Шаблони документів
Транспортна накладна
У транспортній накладній потрібно виводити:
- номер замовлення;
- машину;
- водія;
- замовника;
- пункт відправлення;
- пункт призначення;
- список товарів, якщо потрібен;
- підписи водія і представника замовника.
Акт виконаних робіт
Акт виконаних робіт формується після завершення доставки.
7. Звітність
Звіт «Перевезення за період»
Звіт має показувати:
- кількість замовлень;
- суми за перевезення;
- витрати по транспорту;
- коефіцієнт використання транспорту.
Звіт «Рентабельність транспорту»
Звіт має показувати:
- доходи;
- витрати;
- рентабельність по кожному транспортному засобу.
8. Специфіка функціоналу
Модуль повинен підтримувати:
- зміну всіх статусів через AJAX;
- фільтрацію в таблицях по статусу та датах;
- підрахунок підсумків прямо у журналі:
- кількість замовлень;
- загальна вартість перевезень;
- логування змін у замовленнях і статусах;
- контроль доступу:
- менеджери бачать лише свої замовлення;
- або замовлення за певними складами.
Технічні вимоги
| Параметр | Опис |
|---|---|
| Бекенд | K2 ERP на Python або PHP |
| БД | PostgreSQL або MySQL |
| Фронтенд | HTML5, JavaScript, AJAX через Fetch API або Axios |
| UI-компоненти | DataTables, Select2 для автопошуку |
| Карти, опціонально | Google Maps API або OpenStreetMap для розрахунку відстаней |
| Друк | Stimulsoft Reports або внутрішній PDF-генератор |
Критерії оцінки
| Критерій | Бали |
|---|---|
| Реалізація журналу замовлень | 20 |
| Форма замовлення з вибором машини і водія | 20 |
| Логіка статусів доставки | 20 |
| Розрахунок вартості перевезення | 15 |
| Формування друкованих документів | 15 |
| Звітність і аналітика | 10 |
| Разом | 100 |
Примітка
Такий модуль критично важливий для компаній із логістикою: служб доставки товарів, будівельних компаній, сервісних служб, складів, ТРЦ і транспортних агентств.
Правильна реалізація TMS-модуля дозволяє контролювати весь ланцюжок доставки та оптимізувати витрати на транспорт.
Очікуваний результат
У результаті виконання атестаційного завдання має бути створений TMS-модуль K2 ERP, який підтримує довідники транспортних засобів і водіїв, журнал замовлень на перевезення, форму замовлення з вибором машини та водія, логіку статусів, розрахунок вартості доставки, друк транспортної накладної й акту виконаних робіт, а також звіти по перевезеннях і рентабельності транспорту.
Рекомендовані сутності бази даних
- транспортні засоби;
- водії;
- контрагенти-замовники;
- замовлення на перевезення;
- статуси замовлень;
- маршрути;
- точки маршруту;
- тарифи;
- додаткові витрати;
- транспортні накладні;
- акти виконаних робіт;
- журнали змін статусів;
- права доступу менеджерів;
- склади або зони відповідальності.