Атестаційні завдання K2 ERP/Надходження товарів
У межах задача потрібно розробити або налаштувати компонент обліку надходження товарів на складський облік.; характеристика !; Питання
Критерії оцінювання
|- | Шапка документа | Постачальник, дата, номер документа, складський облік |- | Таблична частина | Товари, одиниці виміру, кількість, ціна, сума |- | Підсумки | Загальна кількість, загальна сума, сума ПДВ |}
Заголовок документа
Вимоги до backend
Для кожного рядка:
Довідник товарів має містити номенклатуру, яка застосовують, коли потрібно в документах надходження.; характеристика !; * зарахувати товар на складський облік;
- сформувати складські рухи;
- зафіксувати партії товарів;
- оновити залишки;
- зберегти інформацію про користувача, який провів документ;
- заборонити неконтрольоване редагування проведеного документа.; характеристика
!; {| class="wikitable" style="width:100%;"
| Правильність структури бази даних | 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 |
Очікуваний результат
- створити кілька товарів;
- створити постачальника;
- створити документ «Надходження товарів»;
- додати в документ кілька товарів;
- перевірити автоматичне підтягування одиниці виміру та ціни;
- змінити кількість і ціну;
- перевірити розрахунок суми;
- зберегти документ як чернетку;
- провести документ;
- перевірити, що товар зараховано на складський облік;
- перевірити створення партій;
- відкрити документ у журналі;
- надрукувати товарну накладну;
- сформувати звіт руху товарів за період.; Журнал документів показує список усіх документів надходження товарів.; Бали