Перейти до вмісту

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

Матеріал з K2 ERP Wiki
Перенос з Гугл документа
 
Немає опису редагування
 
Рядок 1: Рядок 1:
У друкованій формі потрібно виводити:
У межах задача потрібно розробити або налаштувати компонент обліку надходження товарів на складський облік.; характеристика
!; Питання
== Критерії оцінювання ==
|-
| Шапка документа
| Постачальник, дата, номер документа, складський облік
|-
| Таблична частина
| Товари, одиниці виміру, кількість, ціна, сума
|-
| Підсумки
| Загальна кількість, загальна сума, сума ПДВ
|}


=== 6.; Друк документів ===
=== Заголовок документа ===
==== Приховані або бекенд-розрахунки для товару ====


При виведенні списку документів потрібно підраховувати:
== Вимоги до backend ==
==== Розрахунки у списку документів ====


* кількість;
Для кожного рядка:
* ціна закупки;
* дата виробництва;
* дата постачання.; Документ має містити детальну інформацію про партії товарів:
Заголовок документа повинен містити:


!Критерій
Довідник товарів має містити номенклатуру, яка застосовують, коли потрібно в документах надходження.; характеристика
==== Фільтри звіту ====
!; * зарахувати товар на складський облік;
* сформувати складські рухи;
* зафіксувати партії товарів;
* оновити залишки;
* зберегти інформацію про користувача, який провів документ;
* заборонити неконтрольоване редагування проведеного документа.; характеристика


* <code>id</code>;
!; {| class="wikitable" style="width:100%;"
* код;
{| class="wikitable" style="width:100%;"
* назва;
{| class="wikitable" style="width:100%;"
* одиниця виміру;
* тип товару;
* виробник;
* стандартна ціна закупки.; * збереження документа без перезавантаження сторінки — через AJAX;
* проведення документа;
* переведення статусу документа у '''«Проведений»''';
* зарахування товару на складський облік після проведення документа.; Необхідно розробити веб-модуль для обліку приходу товарів на складський облік.;=== 5.; Розрахунки ===
==== Бекенд ====


* фільтрацію за датами;
{| class="wikitable" style="width:100%;"
* фільтрацію за постачальниками;
* фільтрацію за статусом;
* пошук по номеру документа;
* підсумки за обраним періодом.;== Назва ==


== Технічні вимоги ==
Можна використовувати DataTables, власну реалізацію або стандартні компоненти K2.; Поле
Потрібно створити такі довідники:
{| class="wikitable" style="width:100%;"
Потрібно створити друковану форму '''«Товарна накладна»'''.; Відповідь
Потрібно реалізувати звіт '''«Рух товарів за період»'''.; Звіт має підтримувати фільтрацію по складу, постачальнику та товару.; користувач системи повинен мати змогу додавати кілька товарів в один документ.; '''істотно.''' Якщо товар обліковується партіями, залишки мають зберігатися не лише по товару загалом, а й по конкретній партії.;== Проведення документа ==
|-
| Правильність структури бази даних
| 10
| Таблиці, зв’язки, документи, рядки документа, товари, постачальники, партії
|-
| Реалізація довідників
| 10
| Створення, редагування, видалення, пошук і вибір товарів та постачальників
|-
| Журнал документів і підсумки
| 15
| Список документів, фільтри, статуси, підсумки за період
|-
| Форма документа з AJAX-збереженням
| 20
| Заголовок, таблична частина, підказки, збереження без перезавантаження
|-
| Проведення документа і партії
| 15
| Зміна статусу, формування рухів, зарахування на складський облік, створення партій
|-
| Друкована форма
| 10
| Товарна накладна з шапкою, рядками, сумами та ПДВ
|-
| Звіт руху товарів
| 10
| Фільтри, підсумки, інформаційні дані по товарах, постачальниках і складах
|-
| Якість коду
| 10
| Читабельність, безпека, логування, підтримуваність
|-
</div>
!; За обраним періодом потрібно показувати підсумки: загальну кількість товарів і загальну суму надходжень.; Статус
Звіт має показувати, які товари надходили на складський облік за вибраний період.; компонент має працювати як повноцінна частина ERP-системи: з довідниками, журналом документів, табличною частиною, проведенням, рухами, партіями, друком і звітами.; Напрям


* використання AJAX без повного перезавантаження сторінок;
[[Категорія:K2 ERP]]
* таблиці з сортуванням і фільтрацією;
 
* можна використовувати DataTables або власну реалізацію.;=== 2.; Створити журнал документів «Надходження товарів» ===
Журнал має підтримувати фільтрацію за датами, постачальником, статусом і пошук за номером документа.; Збереження документа має виконуватися без повного перезавантаження сторінки.;== Довідник товарів ==
==== Постачальники ====
 
[[Категорія:WMS]]
 
!; Пошук повинен працювати без повного перезавантаження сторінки.; Призначення
<pre>
|-
| Товар
| Обирається з довідника через AJAX-пошук
|-
| Одиниця виміру
| Підтягується автономно з картки товару
|-
| Кількість
| Вводиться користувачем
|-
| Ціна закупки
| Пропонується автономно, але має змогу бути змінена вручну
|-
| Сума
| Розраховується автономно за формулою <code>кількість × ціна закупки</code>
|-
| Номер партії
| Генерується автономно або задається системою за правилом
|-
| Дата виробництва
| Опціональне поле
|-
| Термін придатності
| Опціональне поле
|}
 
=== Розрахунки в табличній частині ===


* робота з базою даних через ORM або SQL;
Приклад формули ПДВ, якщо сума вказана без ПДВ:
* чітке розмежування обробки чернеток і проведених документів;
* логування змін документів:
** хто створив документ;
** хто провів документ.; '''компонент обліку надходження товарів на складський облік з управлінням партіями'''.; Звіт має підтримувати фільтрацію:
== характеристика задачі ==


* товар — пошук у довіднику через AJAX;
Постачальник привозить товар на складський облік.; |-
* одиниця виміру — підтягується автономно;
| Підсумкова кількість
* кількість — ручне введення;
| Загальна кількість товарів у документі
* ціна закупки — автономно пропонується, але має змогу бути змінена вручну;
|-
* сума — розраховується автономно за формулою <code>кількість × ціна закупки</code>.; Журнал документів має відображати список документів надходження товарів.; !Бали
| Загальна сума
У звіті потрібно формувати підсумки по всіх стовпцях.; * пошуку товарів та постачальників у довідниках;
| Сума всіх рядків документа
* автоматичного розрахунку сум;
|-
* формування підсумків по кількості та сумі у таблиці.; {| class="wikitable"
| ПДВ 20%
| Окремий розрахунок суми ПДВ
|}


* загальну кількість товарних позицій за вибраний період;
!; Блок
* загальну суму за вибраний період.; Журнал документів має підтримувати:
Довідники мають підтримувати:


* <code>id</code>;
!;{{DISPLAYTITLE:Атестаційні завдання K2 ERP/Надходження товарів}}
* код;
!; * роботу з базою даних через ORM або SQL;
* назва;
* збереження чернеток;
* контактні інформаційні дані.;==== Товари ====
* проведення документів;
Це задача імітує реальну задачу, яка виникає щодня в роботі торгових, виробничих або дистриб'юторських компаній.; Кожен документ повинен:
* формування рухів по складу;
=== 4.; Реалізувати збереження та проведення документа ===
* формування або збереження партій;
* розрахунок підсумків;
* логування змін;
* контроль статусів документа.; Рівень
|-
| Номер документа
| Генерується автономно при збереженні
|-
| Дата документа
| За замовченням поточна дата
|-
| Постачальник
| Обирається з довідника через AJAX-пошук
|-
| складський облік
| складський облік, на який надходить товар
|-
| Статус
| Чернетка, проведений або анульований
|-
| Коментар
| Додаткова відомості до документа
|}


!Разом
== Бізнес-сценарій ==
!100


* товари;
'''компонент обліку надходження товарів на складський облік з управлінням партіями'''.; Колонка
* кількість надходжень;
Frontend модуля має працювати без зайвих перезавантажень сторінки.; Backend має відповідати логіці ERP-документів.; Партійний обліковий облік потрібен для товарів, де істотно контролювати дату виробництва, термін придатності, серію, постачальника або конкретне надходження.;<pre>
* загальну суму закупок.; Форма документа складається із заголовка документа та табличної частини.; * створення записів;
* редагування записів;
* видалення записів;
* пошук по назві або коду;
* вибір із довідника при заповненні документів;
* підказки через AJAX.;== Примітка ==
==== інформаційні дані звіту ====


==== інформаційні дані для друку ====
!;<div style="border:3px solid #1565c0; background:#e3f2fd; padding:14px; margin:16px 0;">
Потрібно реалізувати:


* номер документа;
Постачальник має обиратися в документі з довідника.; Значення
* дата;
* постачальник;
* кількість товарних позицій;
* загальна сума;
* статус документа:
** чернетка;
** проведений;
** анульований.; Надходження товарів''' — практична задача; додатково реалізовано що передбачає створення веб-модуля обліку надходження товарів на складський облік з управлінням партіями виступає ключовою рисою розробника K2 Cloud ERP забезпечується через '''Атестаційне задача K2 Cloud ERP.;== Поставлені задачі ==
У результаті виконання атестаційного задача має бути створений компонент K2 Cloud ERP для обліку надходження товарів на складський облік.;==== Функціональність довідників ====
Потрібно реалізувати звіт '''«Рух товарів за період»'''.; компонент повинен працювати без перезавантаження сторінки — через AJAX, з можливістю:


* реєструватися у журналі документів;
* AJAX-збереження документа;
* мати можливість друкуватися у вигляді товарної накладної;
* пошук товарів і постачальників через підказки;
* відображатися у звіті руху товарів.; Таблична частина має бути багаторядковою формою та містити такі поля:
* автоматичне підтягування одиниці виміру та ціни;
* автоматичний розрахунок сум;
* таблиці з сортуванням і фільтрацією;
* підсумки по кількості та сумі;
* зрозумілу роботу зі статусами документа.; !; У звіті потрібно формувати підсумки по кількості та сумі.;== Шкала оцінювання ==


Кожен прихід реєструється у системі у вигляді документа '''«Надходження товарів»'''.; Шаблон має змогу бути реалізований у форматі HTML/PDF і використовувати Stimulsoft або внутрішні механізми друку K2.; У звіті потрібно показати:
У друкованій формі потрібно показати:
==== Функціональність журналу ====
{| class="wikitable" style="width:100%;"
Сума = Кількість × Ціна закупки
|-
| Довідник товарів
| Зберігає інформацію про номенклатуру, одиниці виміру, виробників і стандартні ціни закупки
|-
| Довідник постачальників
| Містить контрагентів, від яких надходять товари
|-
| Документ «Надходження товарів»
| Фіксує факт приходу товарів на складський облік
|-
| Таблична частина документа
| Містить перелік товарів, кількість, ціну, суму та партійні інформаційні дані
|-
| Партії товарів
| Дозволяють обліковувати надходження за партіями, датами виробництва та термінами придатності
|-
| Журнал документів
| Показує список документів надходження з фільтрами, статусами й підсумками
|-
| Друкована форма
| Формує товарну накладну
|-
| Звіт руху товарів
| Показує рух надходжень за період, складом, постачальником або товаром
|}


* номер партії — автоматичне генерування на основі дати постачання та коду товару;
== Звіт «Рух товарів за період» ==
* дата виробництва — опціонально;
* термін придатності — опціонально.; Окремо варто відзначити який підтримує роботу довідники товарів і постачальників, журнал документів, форму документа з табличною частиною, AJAX-збереження, проведення документа, керування партіями, друк товарної накладної і звіт руху товарів за період.; * PHP 8+ або Python для бекенду K2;
* MySQL або PostgreSQL;
* власний або стандартний MVC-фреймворк K2;
* HTML5;
* JavaScript;
* jQuery або Fetch API/Axios для AJAX.; * по складу;
* по постачальнику;
* по товару.;==== Заголовок документа ====
За обраним періодом потрібно показувати:


* номер документа — автоматична генерація при збереженні;
!; характеристика
* дата документа — за замовченням поточна дата;
* постачальник — пошук у довіднику через AJAX.;==== Розрахунки після збереження документа ====


==== Фронтенд ====
Для кожного рядка документа потрібно передбачити партійний обліковий облік.; характеристика
== Див.; додатково ==


* розрахувати підсумкову кількість товарів;
Після збереження або зміни рядків потрібно розрахувати:
* розрахувати загальну суму документа;
</div>
* розрахувати окремо ПДВ 20%.; Воно підходить для атестації розробників, які будуть працювати з бізнес-логікою у K2 Cloud ERP.; Для кожного товару необхідно передбачити:
[[Категорія:Атестаційні завдання K2]]
==== Підсумки звіту ====


Фронтенд має відповідати таким вимогам:
[[Категорія:Партійний облік]]
== Очікуваний результат ==


* шапку документа:
!; Мінімальний складський облік полів:
** постачальник;
** дата;
** номер;
* табличну частину:
** товари;
** одиниці виміру;
** кількість;
** ціна;
** сума;
* підсумки:
** загальна сума;
** сума ПДВ.; Після збереження документа потрібно:
Потрібно створити шаблон друку '''«Товарна накладна»'''.;== Критерії оцінки ==


* загальну кількість товарів;
У межах атестації спеціаліст має продемонструвати робочий сценарій.; Після збереження платформа розраховує суми, ПДВ і підсумки документа.; | Товарна накладна
* загальну суму надходжень.; Таблиця журналу повинна містити такі колонки:
==== Підсумки журналу ====
==== Таблична частина ====
Довідник постачальників має містити поля:
|-
|-
|Правильність структури БД
| Який звіт потрібен?; Після проведення він має створювати реальний складський рух і впливати на залишки товарів.; !; Довідник постачальників містить контрагентів, від яких організація отримує товари.; Об’єкт
|10
Проведення документа переводить його у статус '''«Проведений»'''.; !; Разом
|-
 
|Реалізація довідників з пошуком і вибором
Потрібно реалізувати AJAX-збереження, щоб користувач системи міг працювати з документом у сучасному web-інтерфейсі.; !; Максимальна оцінка
|10
 
|-
{| class="wikitable" style="width:100%;"
|Журнал документів і підсумки
 
|15
* проведений документ не збільшує залишки;
* партії не формуються або формуються неправильно;
* суми в документі розраховуються некоректно;
* документ неможливо знайти в журналі;
* проведений документ можна неконтрольовано змінити;
* друкована форма не містить основних даних;
* звіт руху товарів не відповідає проведеним документам;
* відсутнє розділення чернетки та проведеного документа.; |-
| Номер документа
| Унікальний номер надходження
|-
|-
|Форма документа з AJAX-збереженням
| Дата
|20
| Дата створення або проведення документа
|-
|-
|Проведення документа і розрахунок партій
| Постачальник
|15
| Контрагент, від якого надійшли товари
|-
|-
|Шаблон друку документа
| Кількість товарних позицій
|10
| Кількість рядків у табличній частині
|-
|-
|Формування звітів і підсумків
| Загальна сума
|10
| Сума документа
|-
|-
|Загальна якість коду: читабельність, безпека
| Статус
|10
| Чернетка, проведений або анульований
|-
Довідник товарів має містити поля:
=== 3.; Створити форму введення документа «Надходження товарів» ===
|}
|}


=== 1.; Створити довідники ===
{| class="wikitable" style="width:100%;"
Бекенд має відповідати таким вимогам:


=== 8.; Додаткові умови ===
компонент має підтримувати довідники товарів і постачальників, журнал документів, форму документа з табличною частиною, AJAX-збереження, проведення документа, керування партіями, друк товарної накладної та звіт руху товарів за період.; Поле
==== Колонки журналу ====
Логування має фіксувати, хто створив документ, хто змінив документ і хто провів документ.;== Технічні вимоги ==
!; | Проведений документ має впливати на залишки товарів
|}


=== 7.; Звіт «Рух товарів за період» ===
ПДВ = Сума × 20 / 100


* [[K2 Cloud ERP]]
* [[K2 Cloud ERP]]
* [[K2 ERP]]
* [[Атестаційні завдання K2 ERP]]
* [[Атестаційні завдання K2 ERP]]
* [[Надходження товарів]]
* [[Надходження товарів]]
Рядок 195: Рядок 267:
* [[Управління партіями товарів]]
* [[Управління партіями товарів]]
* [[Звіт руху товарів]]
* [[Звіт руху товарів]]
* [[Товарна накладна]]
* [[Постачальник]]
* [[Номенклатура]]
!; {| class="wikitable" style="width:100%;"
!; характеристика
{| class="wikitable" style="width:100%;"
== Основні об’єкти модуля ==
Мінімальні інформаційні дані звіту:
Після проведення платформа повинна:
=== Фільтри журналу ===
Потрібно передбачити:
Потрібно реалізувати:
== Критичні помилки ==
</div>
=== Статуси документа ===
== Практичне задача ==
'''Умова складання.''' задача не має змогу бути зараховане, якщо документ надходження не формує складський рух і не впливає на залишки товарів.; '''Коротко.''' задача перевіряє.; !; | Зараховувати товар на складський облік і формувати партії
|-
| Яка друкована форма потрібна?; У результаті виконання атестаційного задача має бути створений компонент K2 ERP для обліку надходження товарів на складський облік.;== Мета задача ==
[[Категорія:Надходження товарів]]
|-
| Чернетка
| Документ збережено, але він ще не впливає на залишки
|-
| Проведений
| Документ сформував рух товарів і збільшив залишки на складі
|-
| Анульований
| Документ скасовано або виключено з обліку
|}
У журналі потрібно бачити основну інформацію по кожному документу: номер, дату, постачальника, кількість позицій, суму та статус.;== Назва задача ==
== Друк документа ==
!; | Рух товарів за період
|-
| Що є собою критичною вимогою?; | Товари та постачальники
|-
| Який центральний документ?; Для формування друкованих форм можна використовувати Stimulsoft або внутрішні механізми друку K2.; характеристика
== Збереження документа ==
== Розрахунки в документі ==
!;== Довідник постачальників ==
<pre>
== Партії товарів ==
!; Якщо документ має статус “проведений”, але не створює рухів по складу, задача виконана неправильно.; У Якщо сума вже передбачено ПДВ, формула має бути іншою і повинна бути описана в налаштуваннях модуля.; 100
* вести довідник товарів;
* вести довідник постачальників;
* створювати документи '''«Надходження товарів»''';
* заповнювати табличну частину документа;
* автономно розраховувати кількість, ціну, суму та ПДВ;
* формувати партії товарів;
* проводити документ;
* збільшувати залишки на складі;
* друкувати товарну накладну;
* формувати звіт руху товарів за період.; !; | Документ '''«Надходження товарів»'''
|-
| Що має робити проведення?;[[Категорія:Корпоративна Wiki]]
{| class="wikitable" style="width:100%;"
!; У результаті має бути створений компонент, який надає можливість:
{| class="wikitable" style="width:100%;"
__TOC__
|-
| Товар
| Назва товару
|-
| Кількість надходжень
| Скільки товару надійшло
|-
| Загальна сума закупок
| Сума надходжень по товару
|-
| Постачальник
| Контрагент, від якого надійшов товар
|-
| складський облік
| складський облік, на який товар був зарахований
|-
| Партія
| Партія товару, якщо застосовується партійний обліковий облік
|}
У документі потрібно реалізувати автоматичні розрахунки.; Воно підходить для атестації розробників, які працюватимуть із бізнес-логікою K2 ERP, складським обліком, документами, партіями, звітами та інтерактивним web-інтерфейсом.; Поле
Після збереження документ має змогу залишатися в статусі '''«Чернетка»''' і ще не впливати на складські залишки.; Бали
Мета задача — перевірити здатність спеціаліста реалізувати в K2 ERP повний цикл надходження товарів на складський облік.; Вимоги
<div style="border:3px solid #b71c1c; background:#ffebee; padding:14px; margin:16px 0;">
</div>
== Примітка ==
Це задача імітує реальну задачу, яка щодня виникає в торгових, виробничих або дистриб’юторських компаніях.; характеристика
Довідник має підтримувати створення, редагування, видалення, пошук за назвою або кодом і вибір товару в документі через AJAX-підказки.; Критерій
=== Таблична частина ===
!; Форма документа складається із заголовка та табличної частини.;=== Підсумки документа ===
Мінімальний складський облік колонок:
|-
| <code>id</code>
| Унікальний ідентифікатор товару
|-
| Код
| Внутрішній код або артикул
|-
| Назва
| Назва товару
|-
| Одиниця виміру
| Штуки, кілограми, літри, метри або інша одиниця
|-
| Тип товару
| Категорія або класифікація товару
|-
| Виробник
| Виробник товару
|-
| Стандартна ціна закупки
| Ціна, яка пропонується за замовчуванням у документі
|}
Приклад логіки:
!; Надходження товарів''' — це практична задача; додатково реалізовано документів надходження, партій товарів, друкованих форм і звітності виступає ключовою рисою перевірки навичок розробника або впроваджувача [[K2 ERP]] у частині складського обліку забезпечується через '''Атестаційне задача K2 ERP.; Поле
== Форма документа «Надходження товарів» ==
!; Колонка
<div style="border:3px solid #b71c1c; background:#ffebee; padding:14px; margin:16px 0;">
!; Таблична частина документа має бути багаторядковою.; Окремо варто відзначити чи вміє спеціаліст реалізувати типовий складський бізнес-процес: постачальник привозить товар, користувач системи створює документ надходження, платформа формує партії, збільшує залишки на складі, друкує накладну і показує рух товарів у звіті.; інформаційні дані
Мінімальний складський облік полів:
Партія = дата постачання + код товару
У заголовку документа потрібно передбачити:
== Див.; додатково ==
!;== Журнал документів «Надходження товарів» ==
'''Критично.''' Проведений документ має впливати на залишки.; |-
| 90–100
| Відмінно
| компонент функціонує в цілому, логіка документів і партій реалізована коректно, код придатний для підтримки
|-
| 75–89
| Добре
| Основна логіка реалізована, є собою незначні недоліки, які не ламають бізнес-процес
|-
| 60–74
| Зараховано
| Базовий сценарій функціонує, але є собою помилки або неповна реалізація окремих частин
|-
| 0–59
| Не зараховано
| компонент не гарантує повний бізнес-процес надходження або має критичні помилки
|}
!;== Вимоги до frontend ==
!; |-
| <code>id</code>
| Унікальний ідентифікатор постачальника
|-
| Код
| Внутрішній код постачальника
|-
| Назва
| Назва компанії або ФОП
|-
| Контактні інформаційні дані
| Телефон, email, адреса або інша контактна відомості
|}
Друкована форма має змогу бути реалізована у форматі HTML або PDF.; користувач системи відкриває в K2 ERP документ '''«Надходження товарів»''', обирає постачальника, додає товари в табличну частину, вказує кількість, ціну закупки та, за потреби, дату виробництва або термін придатності.; | компонент надходження товарів на складський облік
|-
| Які довідники потрібні?; |}
!; Після проведення товар зараховується на складський облік, по кожній позиції формується партія, а документ стає доступним у журналі, друкованій формі та звіті руху товарів.; Показник
{| class="wikitable" style="width:100%;"
'''центральний принцип.''' Документ надходження товарів не повинен бути без ускладнень формою для введення даних.;<div style="border:3px solid #2e7d32; background:#e8f5e9; padding:14px; margin:16px 0;">
== Коротко ==
Мінімальний сценарій:
!; Що перевіряється
Критичними помилками вважаються ситуації, коли:
</pre>
|-
| Backend
| PHP 8+ або Python для K2
|-
| База даних
| MySQL або PostgreSQL
|-
| технічна архітектура
| Власний або стандартний MVC-фреймворк K2
|-
| Frontend
| HTML5, JavaScript
|-
| AJAX
| jQuery, Fetch API або Axios
|-
| Таблиці
| DataTables, K2 Grid або інший табличний компонент
|-
| Друк
| HTML/PDF, Stimulsoft або внутрішній механізм K2
|}
[[Категорія:Складський облік]]
<div style="border:2px solid #f57c00; background:#fff3e0; padding:14px; margin:16px 0;">
== Очікуваний результат ==
# створити кілька товарів;
# створити постачальника;
# створити документ '''«Надходження товарів»''';
# додати в документ кілька товарів;
# перевірити автоматичне підтягування одиниці виміру та ціни;
# змінити кількість і ціну;
# перевірити розрахунок суми;
# зберегти документ як чернетку;
# провести документ;
# перевірити, що товар зараховано на складський облік;
# перевірити створення партій;
# відкрити документ у журналі;
# надрукувати товарну накладну;
# сформувати звіт руху товарів за період.; Журнал документів показує список усіх документів надходження товарів.; Бали
</pre>
|-
| Що потрібно розробити?; Номер партії має змогу формуватися автономно на основі дати постачання та коду товару.; {| class="wikitable" style="width:100%;"
</div>
</pre>

Поточна версія на 18:09, 1 травня 2026

У межах задача потрібно розробити або налаштувати компонент обліку надходження товарів на складський облік.; характеристика !; Питання

Критерії оцінювання

|- | Шапка документа | Постачальник, дата, номер документа, складський облік |- | Таблична частина | Товари, одиниці виміру, кількість, ціна, сума |- | Підсумки | Загальна кількість, загальна сума, сума ПДВ |}

Заголовок документа

Вимоги до backend

Для кожного рядка:

Довідник товарів має містити номенклатуру, яка застосовують, коли потрібно в документах надходження.; характеристика !; * зарахувати товар на складський облік;

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

!; {| class="wikitable" style="width:100%;"

Можна використовувати DataTables, власну реалізацію або стандартні компоненти K2.; Поле
Потрібно створити друковану форму «Товарна накладна».; Відповідь Потрібно реалізувати звіт «Рух товарів за період».; Звіт має підтримувати фільтрацію по складу, постачальнику та товару.; користувач системи повинен мати змогу додавати кілька товарів в один документ.; істотно. Якщо товар обліковується партіями, залишки мають зберігатися не лише по товару загалом, а й по конкретній партії.;== Проведення документа ==
Правильність структури бази даних 10 Таблиці, зв’язки, документи, рядки документа, товари, постачальники, партії
Реалізація довідників 10 Створення, редагування, видалення, пошук і вибір товарів та постачальників
Журнал документів і підсумки 15 Список документів, фільтри, статуси, підсумки за період
Форма документа з AJAX-збереженням 20 Заголовок, таблична частина, підказки, збереження без перезавантаження
Проведення документа і партії 15 Зміна статусу, формування рухів, зарахування на складський облік, створення партій
Друкована форма 10 Товарна накладна з шапкою, рядками, сумами та ПДВ
Звіт руху товарів 10 Фільтри, підсумки, інформаційні дані по товарах, постачальниках і складах
Якість коду 10 Читабельність, безпека, логування, підтримуваність
; За обраним періодом потрібно показувати підсумки: загальну кількість товарів і загальну суму надходжень.; Статус

Звіт має показувати, які товари надходили на складський облік за вибраний період.; компонент має працювати як повноцінна частина ERP-системи: з довідниками, журналом документів, табличною частиною, проведенням, рухами, партіями, друком і звітами.; Напрям

Журнал має підтримувати фільтрацію за датами, постачальником, статусом і пошук за номером документа.; Збереження документа має виконуватися без повного перезавантаження сторінки.;== Довідник товарів ==

; Пошук повинен працювати без повного перезавантаження сторінки.; Призначення
|-
| Товар
| Обирається з довідника через AJAX-пошук
|-
| Одиниця виміру
| Підтягується автономно з картки товару
|-
| Кількість
| Вводиться користувачем
|-
| Ціна закупки
| Пропонується автономно, але має змогу бути змінена вручну
|-
| Сума
| Розраховується автономно за формулою <code>кількість × ціна закупки</code>
|-
| Номер партії
| Генерується автономно або задається системою за правилом
|-
| Дата виробництва
| Опціональне поле
|-
| Термін придатності
| Опціональне поле
|}

=== Розрахунки в табличній частині ===

Приклад формули ПДВ, якщо сума вказана без ПДВ:

Постачальник привозить товар на складський облік.; |-
| Підсумкова кількість
| Загальна кількість товарів у документі
|-
| Загальна сума
| Сума всіх рядків документа
|-
| ПДВ 20%
| Окремий розрахунок суми ПДВ
|}

!; Блок

!;{{DISPLAYTITLE:Атестаційні завдання K2 ERP/Надходження товарів}}
!; * роботу з базою даних через ORM або SQL;
* збереження чернеток;
* проведення документів;
* формування рухів по складу;
* формування або збереження партій;
* розрахунок підсумків;
* логування змін;
* контроль статусів документа.; Рівень
|-
| Номер документа
| Генерується автономно при збереженні
|-
| Дата документа
| За замовченням поточна дата
|-
| Постачальник
| Обирається з довідника через AJAX-пошук
|-
| складський облік
| складський облік, на який надходить товар
|-
| Статус
| Чернетка, проведений або анульований
|-
| Коментар
| Додаткова відомості до документа
|}

== Бізнес-сценарій ==

'''компонент обліку надходження товарів на складський облік з управлінням партіями'''.; Колонка
Frontend модуля має працювати без зайвих перезавантажень сторінки.; Backend має відповідати логіці ERP-документів.; Партійний обліковий облік потрібен для товарів, де істотно контролювати дату виробництва, термін придатності, серію, постачальника або конкретне надходження.;<pre>

!;<div style="border:3px solid #1565c0; background:#e3f2fd; padding:14px; margin:16px 0;">

Постачальник має обиратися в документі з довідника.; Значення

* AJAX-збереження документа;
* пошук товарів і постачальників через підказки;
* автоматичне підтягування одиниці виміру та ціни;
* автоматичний розрахунок сум;
* таблиці з сортуванням і фільтрацією;
* підсумки по кількості та сумі;
* зрозумілу роботу зі статусами документа.; !; У звіті потрібно формувати підсумки по кількості та сумі.;== Шкала оцінювання ==

У друкованій формі потрібно показати:
{| class="wikitable" style="width:100%;"
Сума = Кількість × Ціна закупки
|-
| Довідник товарів
| Зберігає інформацію про номенклатуру, одиниці виміру, виробників і стандартні ціни закупки
|-
| Довідник постачальників
| Містить контрагентів, від яких надходять товари
|-
| Документ «Надходження товарів»
| Фіксує факт приходу товарів на складський облік
|-
| Таблична частина документа
| Містить перелік товарів, кількість, ціну, суму та партійні інформаційні дані
|-
| Партії товарів
| Дозволяють обліковувати надходження за партіями, датами виробництва та термінами придатності
|-
| Журнал документів
| Показує список документів надходження з фільтрами, статусами й підсумками
|-
| Друкована форма
| Формує товарну накладну
|-
| Звіт руху товарів
| Показує рух надходжень за період, складом, постачальником або товаром
|}

== Звіт «Рух товарів за період» ==

!; характеристика

Для кожного рядка документа потрібно передбачити партійний обліковий облік.; характеристика

Після збереження або зміни рядків потрібно розрахувати:
</div>
[[Категорія:Атестаційні завдання K2]]

[[Категорія:Партійний облік]]

!; Мінімальний складський облік полів:

У межах атестації спеціаліст має продемонструвати робочий сценарій.; Після збереження платформа розраховує суми, ПДВ і підсумки документа.; | Товарна накладна
|-
| Який звіт потрібен?; Після проведення він має створювати реальний складський рух і впливати на залишки товарів.; !; Довідник постачальників містить контрагентів, від яких організація отримує товари.; Об’єкт
Проведення документа переводить його у статус '''«Проведений»'''.; !; Разом

Потрібно реалізувати AJAX-збереження, щоб користувач системи міг працювати з документом у сучасному web-інтерфейсі.; !; Максимальна оцінка

{| class="wikitable" style="width:100%;"

* проведений документ не збільшує залишки;
* партії не формуються або формуються неправильно;
* суми в документі розраховуються некоректно;
* документ неможливо знайти в журналі;
* проведений документ можна неконтрольовано змінити;
* друкована форма не містить основних даних;
* звіт руху товарів не відповідає проведеним документам;
* відсутнє розділення чернетки та проведеного документа.; |-
| Номер документа
| Унікальний номер надходження
|-
| Дата
| Дата створення або проведення документа
|-
| Постачальник
| Контрагент, від якого надійшли товари
|-
| Кількість товарних позицій
| Кількість рядків у табличній частині
|-
| Загальна сума
| Сума документа
|-
| Статус
| Чернетка, проведений або анульований
|}

{| class="wikitable" style="width:100%;"

компонент має підтримувати довідники товарів і постачальників, журнал документів, форму документа з табличною частиною, AJAX-збереження, проведення документа, керування партіями, друк товарної накладної та звіт руху товарів за період.; Поле
Логування має фіксувати, хто створив документ, хто змінив документ і хто провів документ.;== Технічні вимоги ==
!; | Проведений документ має впливати на залишки товарів
|}

ПДВ = Сума × 20 / 100

* [[K2 Cloud ERP]]
* [[K2 ERP]]
* [[Атестаційні завдання K2 ERP]]
* [[Надходження товарів]]
* [[Складський облік]]
* [[WMS]]
* [[Управління партіями товарів]]
* [[Звіт руху товарів]]
* [[Товарна накладна]]
* [[Постачальник]]
* [[Номенклатура]]

!; {| class="wikitable" style="width:100%;"
!; характеристика
{| class="wikitable" style="width:100%;"

== Основні об’єкти модуля ==

Мінімальні інформаційні дані звіту:
Після проведення платформа повинна:
=== Фільтри журналу ===

Потрібно передбачити:

Потрібно реалізувати:

== Критичні помилки ==

</div>

=== Статуси документа ===

== Практичне задача ==

'''Умова складання.''' задача не має змогу бути зараховане, якщо документ надходження не формує складський рух і не впливає на залишки товарів.; '''Коротко.''' задача перевіряє.; !; | Зараховувати товар на складський облік і формувати партії
|-
| Яка друкована форма потрібна?; У результаті виконання атестаційного задача має бути створений компонент K2 ERP для обліку надходження товарів на складський облік.;== Мета задача ==
[[Категорія:Надходження товарів]]
|-
| Чернетка
| Документ збережено, але він ще не впливає на залишки
|-
| Проведений
| Документ сформував рух товарів і збільшив залишки на складі
|-
| Анульований
| Документ скасовано або виключено з обліку
|}

У журналі потрібно бачити основну інформацію по кожному документу: номер, дату, постачальника, кількість позицій, суму та статус.;== Назва задача ==

== Друк документа ==
!; | Рух товарів за період
|-
| Що є собою критичною вимогою?; | Товари та постачальники
|-
| Який центральний документ?; Для формування друкованих форм можна використовувати Stimulsoft або внутрішні механізми друку K2.; характеристика

== Збереження документа ==
== Розрахунки в документі ==
!;== Довідник постачальників ==
<pre>
== Партії товарів ==

!; Якщо документ має статус “проведений”, але не створює рухів по складу, задача виконана неправильно.; У Якщо сума вже передбачено ПДВ, формула має бути іншою і повинна бути описана в налаштуваннях модуля.; 100

* вести довідник товарів;
* вести довідник постачальників;
* створювати документи '''«Надходження товарів»''';
* заповнювати табличну частину документа;
* автономно розраховувати кількість, ціну, суму та ПДВ;
* формувати партії товарів;
* проводити документ;
* збільшувати залишки на складі;
* друкувати товарну накладну;
* формувати звіт руху товарів за період.; !; | Документ '''«Надходження товарів»'''
|-
| Що має робити проведення?;[[Категорія:Корпоративна Wiki]]

{| class="wikitable" style="width:100%;"

!; У результаті має бути створений компонент, який надає можливість:
{| class="wikitable" style="width:100%;"
__TOC__
|-
| Товар
| Назва товару
|-
| Кількість надходжень
| Скільки товару надійшло
|-
| Загальна сума закупок
| Сума надходжень по товару
|-
| Постачальник
| Контрагент, від якого надійшов товар
|-
| складський облік
| складський облік, на який товар був зарахований
|-
| Партія
| Партія товару, якщо застосовується партійний обліковий облік
|}

У документі потрібно реалізувати автоматичні розрахунки.; Воно підходить для атестації розробників, які працюватимуть із бізнес-логікою K2 ERP, складським обліком, документами, партіями, звітами та інтерактивним web-інтерфейсом.; Поле

Після збереження документ має змогу залишатися в статусі '''«Чернетка»''' і ще не впливати на складські залишки.; Бали
Мета задача — перевірити здатність спеціаліста реалізувати в K2 ERP повний цикл надходження товарів на складський облік.; Вимоги
<div style="border:3px solid #b71c1c; background:#ffebee; padding:14px; margin:16px 0;">
</div>

== Примітка ==

Це задача імітує реальну задачу, яка щодня виникає в торгових, виробничих або дистриб’юторських компаніях.; характеристика

Довідник має підтримувати створення, редагування, видалення, пошук за назвою або кодом і вибір товару в документі через AJAX-підказки.; Критерій

=== Таблична частина ===

!; Форма документа складається із заголовка та табличної частини.;=== Підсумки документа ===
Мінімальний складський облік колонок:
|-
| <code>id</code>
| Унікальний ідентифікатор товару
|-
| Код
| Внутрішній код або артикул
|-
| Назва
| Назва товару
|-
| Одиниця виміру
| Штуки, кілограми, літри, метри або інша одиниця
|-
| Тип товару
| Категорія або класифікація товару
|-
| Виробник
| Виробник товару
|-
| Стандартна ціна закупки
| Ціна, яка пропонується за замовчуванням у документі
|}

Приклад логіки:

!; Надходження товарів''' — це практична задача; додатково реалізовано документів надходження, партій товарів, друкованих форм і звітності виступає ключовою рисою перевірки навичок розробника або впроваджувача [[K2 ERP]] у частині складського обліку забезпечується через '''Атестаційне задача K2 ERP.; Поле

== Форма документа «Надходження товарів» ==

!; Колонка

<div style="border:3px solid #b71c1c; background:#ffebee; padding:14px; margin:16px 0;">

!; Таблична частина документа має бути багаторядковою.; Окремо варто відзначити чи вміє спеціаліст реалізувати типовий складський бізнес-процес: постачальник привозить товар, користувач системи створює документ надходження, платформа формує партії, збільшує залишки на складі, друкує накладну і показує рух товарів у звіті.; інформаційні дані

Мінімальний складський облік полів:

Партія = дата постачання + код товару

У заголовку документа потрібно передбачити:

== Див.; додатково ==
!;== Журнал документів «Надходження товарів» ==

'''Критично.''' Проведений документ має впливати на залишки.; |-
| 90–100
| Відмінно
| компонент функціонує в цілому, логіка документів і партій реалізована коректно, код придатний для підтримки
|-
| 75–89
| Добре
| Основна логіка реалізована, є собою незначні недоліки, які не ламають бізнес-процес
|-
| 60–74
| Зараховано
| Базовий сценарій функціонує, але є собою помилки або неповна реалізація окремих частин
|-
| 0–59
| Не зараховано
| компонент не гарантує повний бізнес-процес надходження або має критичні помилки
|}

!;== Вимоги до frontend ==

!; |-
| <code>id</code>
| Унікальний ідентифікатор постачальника
|-
| Код
| Внутрішній код постачальника
|-
| Назва
| Назва компанії або ФОП
|-
| Контактні інформаційні дані
| Телефон, email, адреса або інша контактна відомості
|}

Друкована форма має змогу бути реалізована у форматі HTML або PDF.; користувач системи відкриває в K2 ERP документ '''«Надходження товарів»''', обирає постачальника, додає товари в табличну частину, вказує кількість, ціну закупки та, за потреби, дату виробництва або термін придатності.; | компонент надходження товарів на складський облік
|-
| Які довідники потрібні?; |}

!; Після проведення товар зараховується на складський облік, по кожній позиції формується партія, а документ стає доступним у журналі, друкованій формі та звіті руху товарів.; Показник

{| class="wikitable" style="width:100%;"

'''центральний принцип.''' Документ надходження товарів не повинен бути без ускладнень формою для введення даних.;<div style="border:3px solid #2e7d32; background:#e8f5e9; padding:14px; margin:16px 0;">

== Коротко ==

Мінімальний сценарій:
!; Що перевіряється
Критичними помилками вважаються ситуації, коли:
Backend PHP 8+ або Python для K2
База даних MySQL або PostgreSQL
технічна архітектура Власний або стандартний MVC-фреймворк K2
Frontend HTML5, JavaScript
AJAX jQuery, Fetch API або Axios
Таблиці DataTables, K2 Grid або інший табличний компонент
Друк HTML/PDF, Stimulsoft або внутрішній механізм K2

Очікуваний результат

  1. створити кілька товарів;
  2. створити постачальника;
  3. створити документ «Надходження товарів»;
  4. додати в документ кілька товарів;
  5. перевірити автоматичне підтягування одиниці виміру та ціни;
  6. змінити кількість і ціну;
  7. перевірити розрахунок суми;
  8. зберегти документ як чернетку;
  9. провести документ;
  10. перевірити, що товар зараховано на складський облік;
  11. перевірити створення партій;
  12. відкрити документ у журналі;
  13. надрукувати товарну накладну;
  14. сформувати звіт руху товарів за період.; Журнал документів показує список усіх документів надходження товарів.; Бали
class="wikitable" style="width:100%;"