Атестаційні завдання K2 ERP/Надходження товарів

Матеріал з K2 ERP Wiki Ukraine — База знань з автоматизації та санкцій в Україні
Перейти до навігації Перейти до пошуку

Атестаційне завдання 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.

Див. також