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