Атестаційні завдання K2 ERP/Обмінка: відмінності між версіями
R (обговорення | внесок) Прибрав джерело |
R (обговорення | внесок) Немає опису редагування |
||
| Рядок 1: | Рядок 1: | ||
== | == Друковані форми == | ||
== | Найпростіший підхід — аналізувати різницю між курсом купівлі та курсом продажу. Що перевіряється | ||
!== Форма операції обміну == | |||
== | {| class="wikitable" style="width:100%;" | ||
У результаті виконання атестаційного задача має бути створений компонент обліку валютних операцій у K2 ERP.</div> | |||
== формування звітів == | |||
== оновлення версій касових залишків == | |||
== Очікуваний результат == | |||
{| class="wikitable" style="width:100%;" | |||
== Логування змін == | |||
Звіт показує поточні залишки валют по касах.</pre> | |||
</pre> | |||
Сума UAH = Сума у валюті × Курс | |||
Обмінка''' — це практична задача для перевірки навичок розробника або впроваджувача [[K2 ERP]] у створенні модуля обліку валютних операцій. Символ | |||
Бажано передбачити звіт касира за зміну або день. |- | |||
| Реалізація довідників валют і кас | |||
| 10 | |||
| Валюти, каси, касири, початкові залишки, активність | |||
|- | |||
| Реєстрація операцій обміну | |||
== | | 20 | ||
| Купівля, продаж, підстановка курсу, розрахунок суми в UAH | |||
|- | |||
| Автоматичне оновлення версій залишків каси | |||
| 20 | |||
| Зміна залишків по валюті та UAH, контроль нестачі | |||
|- | |||
| Формування касових ордерів | |||
| 20 | |||
| Прибуткові й видаткові ордери, квитанції, друк PDF | |||
|- | |||
| Формування звітів | |||
| 20 | |||
| Обороти по валютах, залишки в касах, прибуток від обмінних операцій | |||
|- | |||
| Інтерактивність через AJAX | |||
| 10 | |||
| Операції, курси, перерахунки, залишки й звіти без перезавантаження | |||
|- | |||
!== Примітка == | |||
|- | |- | ||
| Бекенд | | Бекенд | ||
| K2 Cloud ERP на Python або PHP | | K2 Cloud ERP на Python або PHP | ||
|- | |- | ||
| | | База даних | ||
| PostgreSQL або MySQL | | PostgreSQL або MySQL | ||
|- | |- | ||
| Фронтенд | | Фронтенд | ||
| HTML5, JavaScript | | HTML5, JavaScript | ||
|- | |||
| AJAX | |||
| Axios або Fetch API | |||
|- | |- | ||
| UI-компоненти | | UI-компоненти | ||
| Рядок 53: | Рядок 65: | ||
|- | |- | ||
| Друк | | Друк | ||
| | | PDF для касових ордерів, квитанцій і звітів | ||
|- | |||
| Експорт | |||
| Excel або PDF для звітів | |||
|} | |||
Перед проведенням операції платформа повинна перевіряти: | |||
== Логіка курсів == | |||
* валюти; | |||
* каси; | |||
* касири; | |||
* курси валют; | |||
* операції обміну; | |||
* касові залишки; | |||
* рухи каси; | |||
* касові ордери; | |||
* квитанції; | |||
* методи розрахунку прибутку; | |||
* звіти; | |||
* права доступу; | |||
* журнал змін; | |||
* скасування операцій. Валюта | |||
! компанія-користувач, обмінний пункт, турагентство, фінансова компанія-користувач або підприємець функціонує з готівковими чи безготівковими валютними операціями. ![[Категорія:Валютні операції]] | |||
{{DISPLAYTITLE:Атестаційні завдання K2 ERP/Обмінка}} | |||
</div> | |||
У контексті обмінки це здатна бути: | |||
як приклад: | |||
|- | |||
| Назва каси | |||
| як приклад: Каса №1, Центральна каса, Каса офісу | |||
|- | |||
| Локація | |||
| Адреса або місце розташування каси | |||
|- | |||
| Відповідальний касир | |||
| Працівник, який відповідає за касу | |||
|- | |||
| Статус | |||
| Активна, закрита, тимчасово недоступна | |||
|- | |||
| Коментар | |||
| Додаткова інформаційні матеріали | |||
|} | |||
! |- | |||
| Касир | |||
| Створює та проводить операції, друкує ордери, бачить свою касу | |||
|- | |||
| Старший касир | |||
| Бачить кілька кас, здатна скасовувати операції в межах прав | |||
|- | |||
| Бухгалтер | |||
| Перевіряє операції, звіти, касові документи | |||
|- | |||
| Адміністратор | |||
| Налаштовує валюти, каси, права, курси та службові параметри | |||
|} | |||
У роботі потрібно щоденно контролювати: | |||
== Див. так само == | |||
'''Практичний сенс.''' Якщо курс змінився о 14:00, операції до 14:00 мають залишатися зі старим курсом. Журнал курсів валют зберігає історію зміни курсів купівлі та продажу. Відповідь | |||
|- | |||
| Середньозважений курс | |||
| Собівартість валюти рахується як середній курс купленого залишку | |||
|- | |||
| FIFO | |||
| Першою продається валюта, яка була куплена раніше | |||
|- | |||
| Спрощена маржа | |||
| Прибуток оцінюється через різницю поточних курсів купівлі та продажу | |||
|} | |||
! компонент має підтримувати розмежування прав. | компонент обліку валютних операцій | |||
|- | |||
| Які довідники потрібні? !== Рекомендовані сутності бази даних == | |||
! Результат по касі: | |||
'''Практичний принцип.''' Помилкові валютні операції не варто без зусиль видаляти. | Операції обміну | |||
|- | |||
| Які типи операцій потрібні? Тип операції | |||
== Поля форми == | |||
== базовий бізнес-процес == | |||
* USD збільшується на 1000; | |||
* UAH зменшується на 39 500. ! Для точнішого розрахунку потрібно використовувати партійний або середньозважений обліковий облік валюти. Поле | |||
<pre> | |||
Можливі ролі: | |||
У звіті потрібно показати: | |||
! Рівень | |||
== Формула маржі == | |||
'''критично.''' Касовий залишок має формуватися на основі операцій, а не редагуватися вручну після кожного обміну.== Звіт касира за день == | |||
У контексті обмінки це здатна бути: | |||
|- | |||
| Дата і час | |||
| Коли встановлено курс | |||
|- | |||
| Валюта | |||
| Валюта, для якої встановлено курс | |||
|- | |||
| Курс купівлі | |||
| За яким курсом обмінка купує валюту у клієнта | |||
|- | |||
| Курс продажу | |||
| За яким курсом обмінка продає валюту клієнту | |||
|- | |||
| Каса | |||
| Якщо курс відрізняється по касах | |||
|- | |||
| Автор | |||
| Хто встановив або змінив курс | |||
|} | |||
<div style="border:3px solid #2e7d32; background:#e8f5e9; padding:14px; margin:16px 0;"> | |||
! * [[K2 Cloud ERP|K2 ERP]] | |||
* [[K2 ERP]] | |||
* [[Атестаційні завдання K2 ERP]] | |||
* [[Обмінка]] | |||
* [[Валюти]] | |||
* [[Каса]] | |||
* [[Касові ордери]] | |||
* [[Фінансовий облік]] | |||
* [[Мультивалютність]] | |||
* [[Курси валют]] | |||
* [[Прибутковий касовий ордер]] | |||
* [[Видатковий касовий ордер]] | |||
</pre> | |||
Сума UAH = 500 × 42,20 = 21 100 грн | |||
</div> | |||
! ! Купівля валюти означає, що клієнт ERP здає іноземну валюту, а каса виплачує йому гривню. Ручне коригування здатна бути лише окремою службовою операцією з логуванням. ! Тому компонент повинен цифровізувати розрахунок і контроль. | Купівля збільшує валюту й зменшує UAH, продаж зменшує валюту й збільшує UAH | |||
|- | |||
| Які документи потрібні?== AJAX-інтерактив == | |||
== Підходи до розрахунку собівартості валюти == | |||
платформа повинна дозволяти: | |||
клієнт ERP здає 1000 USD за курсом 39,50.== Видатковий касовий ордер == | |||
Звіт показує обсяги купівлі та продажу по кожній валюті за вибраний період.== Поля валюти == | |||
== Прибуток по валюті == | |||
|- | |||
| Назва валюти | |||
| як приклад: долар США, євро, фунт стерлінгів, польський злотий | |||
|- | |||
| Короткий код | |||
| USD, EUR, GBP, PLN | |||
|- | |||
| Символ | |||
| $, €, £, zł | |||
|- | |||
| Кількість знаків після коми | |||
| як приклад, 2 | |||
|- | |||
| Активність | |||
| Чи застосовується для валюта в поточних операціях | |||
|} | |||
== Контроль залишків == | |||
!== Журнал «Операції обміну» == | |||
|- | |||
| Купівля валюти | |||
| Збільшується | |||
| Зменшується | |||
|- | |||
| Продаж валюти | |||
| Зменшується | |||
| Збільшується | |||
|} | |||
</div> | |||
== Шкала оцінювання == | |||
* чи достатньо гривні для купівлі валюти; | |||
* чи достатньо іноземної валюти для продажу; | |||
* чи активна каса; | |||
* чи встановлено актуальний курс; | |||
* чи не заблокований касир; | |||
* чи не скасована операційна дія. Бали | |||
прозорий контроль валютних залишків, зменшує ризик касових помилок і дає можливість бачити реальний прибуток від обмінних операцій реалізується засобами Правильна реалізація такого модуля. Через AJAX мають працювати: | |||
! ! Окремо варто відзначити курсів валют, касових залишків, операцій купівлі і продажу валюти, касових ордерів, прибутку від курсової різниці та звітності виступає ключовою рисою '''Атестаційне задача K2 ERP. У звіті потрібно відображати: | |||
</div> | |||
{| class="wikitable" style="width:100%;" | |||
* вести довідник валют; | |||
* вести довідник кас; | |||
* фіксувати курси купівлі та продажу валют; | |||
* зберігати історію зміни курсів; | |||
* автоматизовано підставляти актуальний курс в операцію; | |||
* реєструвати купівлю валюти; | |||
* реєструвати продаж валюти; | |||
* миттєво розраховувати суму в гривні; | |||
* вести залишки по кожній валюті в кожній касі; | |||
* контролювати достатність залишків перед проведенням операції; | |||
* формувати прибуткові та видаткові касові ордери; | |||
* розраховувати прибуток від курсової різниці; | |||
* формувати звіти по оборотах, залишках і прибутковості; | |||
* експортувати або друкувати касові документи та звіти.[[Категорія:K2 ERP]] | |||
</div> | |||
платформа повинна: | |||
{| class="wikitable" style="width:100%;" | |||
Потрібно передбачити скасування помилкової операції. {| class="wikitable" style="width:100%;" | |||
Звіт показує прибуток від обмінних операцій за період. Поле | |||
== Касові залишки == | |||
== Прибутковий касовий ордер == | |||
|- | |||
| Що потрібно створити? Разом | |||
{| class="wikitable" style="width:100%;" | |||
'''компонент обліку валютних операцій: Обмінка'''. Об’єкт | |||
== Критичні помилки == | |||
{| class="wikitable" style="width:100%;" | |||
{| class="wikitable" style="width:100%;" | |||
[[Категорія:Корпоративна Wiki]] | |||
== Скасування операції == | |||
* актуальні курси купівлі та продажу; | |||
* залишки гривні та іноземної валюти в касах; | |||
* операції купівлі валюти у клієнтів; | |||
* операції продажу валюти клієнтам; | |||
* прибуток від різниці курсів; | |||
* касові документи; | |||
* обороти за день, тиждень або місяць. Журнал змін має фіксувати: | |||
У звіті потрібно відображати: | |||
! Правильніше скасувати їх окремою дією, щоб залишилася історія продукту та було зрозуміло, чому змінився залишок каси. Довідник валют містить перелік валют, з якими функціонує платформа. Бали | |||
'''провідний принцип.''' Валютна операційна дія не повинна бути без зусиль записом у журналі. SEO-опис | |||
Результат по касі: | |||
== Права доступу == | |||
|} | |||
Видатковий касовий ордер формується, коли каса видає кошти. | Валюти, каси, касири | |||
|- | |||
| Який провідний журнал?== Мета задача == | |||
{| class="wikitable" style="width:100%;" | |||
! Каса | |||
Довідник кас містить місця, де зберігаються гривня та іноземна валюта. Залишок | |||
* зберігати історію курсів; | |||
* дозволяти бачити, який курс діяв на момент операції; | |||
* автоматизовано підставляти актуальний курс; | |||
* не змінювати курс у вже проведених операціях після редагування довідника курсів; | |||
* дозволяти встановлювати різні курси для різних валют; | |||
* опціонально дозволяти різні курси по різних касах. Інакше звіти й прибуток будуть некоректними. # адміністратор або касир встановлює курси валют; | |||
# у касі виступає як залишки гривні та іноземної валюти; | |||
# клієнт ERP приходить для купівлі або продажу валюти; | |||
# касир обирає тип операції; | |||
# платформа підставляє актуальний курс; | |||
# касир вводить суму у валюті; | |||
# платформа розраховує суму в гривні; | |||
# платформа перевіряє залишки в касі; | |||
# операційна дія проводиться; | |||
# залишки валют автоматизовано оновлюються; | |||
# формується касовий ордер; | |||
# операційна дія потрапляє у звіти по оборотах і прибутку. Призначення | |||
! Скасування має: | |||
'''Критично.''' платформа не повинна дозволяти продаж валюти, якщо в касі недостатньо залишку цієї валюти. SEO-опис | |||
|- | |||
| Валюти | |||
| Довідник валют, з якими функціонує обмінка | |||
|- | |||
| Каси | |||
| Місця зберігання готівки та валютних залишків | |||
|- | |||
| Курси валют | |||
| Курси купівлі та продажу з історією змін | |||
|- | |||
| Операції обміну | |||
| Купівля або продаж валюти | |||
|- | |||
| Касові залишки | |||
| Поточні залишки кожної валюти в кожній касі | |||
|- | |||
| Касові ордери | |||
| Документи, що підтверджують рух коштів | |||
|- | |||
| Касири | |||
| Користувачі, які виконують операції | |||
|- | |||
| Звіти | |||
| Обороти, залишки, прибуток, журнал операцій | |||
|- | |||
| Журнал змін | |||
| історія продукту зміни курсів, операцій і залишків | |||
|} | |} | ||
== Довідник «Валюти» == | |||
При продажу валюти платформа повинна: | |||
[[Категорія:Фінансовий облік]] | |||
Для атестаційного задача достатньо реалізувати один із методів, але метод має бути описаний і послідовно застосований у звітах.== Формула розрахунку суми в гривні == | |||
== Основні об’єкти модуля == | |||
== Поля касового ордера == | |||
<pre> | |||
== Касові ордери == | |||
компонент повинен формувати касові ордери для підтвердження руху коштів. SEO-опис | |||
* касира; | |||
* касу; | |||
* дату; | |||
* початкові залишки; | |||
* усі операції купівлі; | |||
* усі операції продажу; | |||
* кінцеві залишки; | |||
* прибуток; | |||
* підпис касира. У звіті потрібно відображати: | |||
|- | |||
| Номер операції | |||
| Унікальний номер операції | |||
|- | |||
| Дата і час | |||
| Коли виконано операцію | |||
|- | |||
| Тип операції | |||
| Купівля або продаж валюти | |||
|- | |||
| Валюта | |||
| Валюта операції | |||
|- | |||
| Сума у валюті | |||
| Скільки валюти куплено або продано | |||
|- | |||
| Курс | |||
| Курс, за яким виконано операцію | |||
|- | |||
| Сума в UAH | |||
| Розрахована сума у гривні | |||
|- | |||
| Каса | |||
| Каса, через яку пройшла операційна дія | |||
|- | |||
| Касир | |||
| Хто провів операцію | |||
|- | |||
| Статус | |||
| Чернетка, проведено, скасовано | |||
|} | |||
! | Оборот по валютах, залишки в касах, прибуток від обмінних операцій | |||
|- | |||
| Що виступає як критичною вимогою? Питання | |||
Для реалізації задачі доцільно передбачити такі сутності: | |||
# створити валюти USD, EUR, GBP, PLN; | |||
# створити касу; | |||
# вказати початкові залишки UAH, USD та EUR; | |||
# створити курси купівлі та продажу; | |||
# оформити операцію купівлі валюти; | |||
# перевірити автоматичний розрахунок суми в UAH; | |||
# перевірити зміну залишків валюти та гривні; | |||
# сформувати касовий ордер по операції; | |||
# оформити операцію продажу валюти; | |||
# перевірити контроль достатності залишку валюти; | |||
# перевірити зміну залишків після продажу; | |||
# сформувати квитанцію або касовий ордер; | |||
# сформувати звіт обороту по валютах; | |||
# сформувати звіт залишків у касах; | |||
# сформувати звіт прибутку від обмінних операцій; | |||
# показати журнал змін; | |||
# виконати скасування помилкової операції; | |||
# перевірити зворотний рух по касі. Критерій | |||
Сума має перераховуватися миттєво при зміні валюти, курсу або кількості валюти. Валюта | |||
== Приклад купівлі валюти == | |||
|- | |||
| Каса №1 | |||
| UAH | |||
| 250 000 | |||
|- | |||
| Каса №1 | |||
| USD | |||
| 8 000 | |||
|- | |||
| Каса №1 | |||
| EUR | |||
| 5 000 | |||
|} | |||
компонент обмінки валют здатна бути корисним для обмінних пунктів, туристичних компаній, банківських підрозділів, фінансових компаній, мікрофінансових організацій, підприємців і компаній, які активно працюють із готівковою або безготівковою валютою. __TOC__ | |||
! * зменшити залишок іноземної валюти в касі; | |||
* збільшити залишок гривні в касі; | |||
* використати курс продажу; | |||
* перевірити, чи достатньо валюти в касі; | |||
* сформувати касовий документ; | |||
* зафіксувати операцію в журналі. * хто створив курс; | |||
* хто змінив курс; | |||
* хто створив операцію обміну; | |||
* хто провів операцію; | |||
* хто скасував операцію; | |||
* хто змінив касу або суму; | |||
* хто сформував касовий ордер; | |||
* дату й час дії; | |||
* старе та нове значення, якщо це можливо. |- | |||
| Тип операції | |||
| Купівля або продаж | |||
|- | |||
| Валюта | |||
| USD, EUR, GBP, PLN або інша | |||
|- | |||
| Сума у валюті | |||
| Сума, яку здає або купує клієнт ERP | |||
|- | |||
| Курс | |||
| Підставляється автоматизовано, але здатна редагуватися за наявності прав | |||
|- | |||
| Сума в UAH | |||
| Розраховується автоматизовано | |||
|- | |||
| Каса | |||
| Каса, через яку проходить операційна дія | |||
|- | |||
| Касир | |||
| Поточний користувач системи або обраний касир | |||
|- | |||
| Коментар | |||
| Додаткова інформаційні матеріали | |||
|} | |||
== | == Практичне задача == | ||
== Купівля валюти == | |||
! SEO-опис | |||
<div style="border:3px solid #1565c0; background:#e3f2fd; padding:14px; margin:16px 0;"> | |||
<div style="border:2px solid #f57c00; background:#fff3e0; padding:14px; margin:16px 0;"> | |||
! | ! | Коректна зміна касових залишків після кожної операції | ||
|} | |||
Продаж валюти означає, що клієнт ERP купує іноземну валюту, а каса отримує гривню. {| class="wikitable" style="width:100%;" | |||
== | '''Коротко.''' Потрібно реалізувати компонент “Обмінка”, який дає можливість вести валюти, каси, курси купівлі та продажу, реєструвати валютні операції, автоматизовано оновлювати залишки, формувати касові ордери й бачити прибуток від обмінних операцій.== Коротко == | ||
Критичними помилками вважаються ситуації, коли: | |||
==== | == Звіт «Залишки в касах» == | ||
Потрібно передбачити друк або PDF-формування: | |||
клієнт ERP купує 500 EUR за курсом 42,20.== Звіт «Оборот по валютах» == | |||
По кожній касі потрібно вести залишки в кожній валюті. Поле | |||
Мінімальний сценарій: | |||
== Журнал «Курси валют» == | |||
<pre> | |||
* | * валюту; | ||
* | * кількість операцій купівлі; | ||
* | * суму купівлі у валюті; | ||
* | * суму купівлі в UAH; | ||
* кількість операцій продажу; | |||
* суму продажу у валюті; | |||
* суму продажу в UAH; | |||
* підсумки за період. SEO-опис | |||
компонент має розраховувати прибуток від курсової різниці. 100 | |||
! !<div style="border:3px solid #1565c0; background:#e3f2fd; padding:14px; margin:16px 0;"> | |||
== Технічні вимоги == | == Технічні вимоги == | ||
! Поле | |||
* | <div style="border:3px solid #b71c1c; background:#ffebee; padding:14px; margin:16px 0;"> | ||
* | |||
!== Логіка руху залишків == | |||
! Параметр | |||
! ! UAH | |||
|- | |||
| Долар США | |||
| USD | |||
| $ | |||
|- | |||
| Євро | |||
| EUR | |||
| € | |||
|- | |||
| Фунт стерлінгів | |||
| GBP | |||
| £ | |||
|- | |||
| Польський злотий | |||
| PLN | |||
| zł | |||
|} | |||
== Продаж валюти == | |||
У межах атестації потрібно продемонструвати робочий сценарій.[[Категорія:Обмінка]] | |||
* EUR зменшується на 500; | |||
* UAH збільшується на 21 100. компонент має забезпечувати повний цикл роботи обмінного пункту або компанії, яка виконує валютні операції: встановлення курсів, реєстрація обміну, контроль залишків у касах, формування касових документів і аналіз прибутковості. Код | |||
Інтерфейс модуля має бути швидким і зручним для касира. Колонка | |||
! функції ERP | |||
<pre> | |||
'''Умова складання.''' задача не здатна бути зараховане, якщо платформа не дає можливість пройти базовий цикл обмінки: курс → операційна дія купівлі або продажу → розрахунок UAH → зміна залишків → касовий ордер → звіт. Валюта | |||
Журнал операцій обміну показує всі операції купівлі та продажу валюти.== Довідник «Каси» == | |||
Якщо такі операції вести вручну, швидко помилитися в залишках, курсах, сумі гривні або прибутку.<pre> | |||
Каса здатна бути фізичною касою обмінного пункту, касою офісу, касою конкретного касира або умовним внутрішнім рахунком. Вона має змінювати залишки двох валют: однієї валюти стає більше, іншої — менше. ! SEO-опис | |||
Типовий бізнес-процес роботи обмінки виглядає так: | |||
При купівлі валюти платформа повинна: | |||
* | * валюту; | ||
* | * суму купленої валюти; | ||
** | * середній курс купівлі; | ||
** | * суму проданої валюти; | ||
* середній курс продажу; | |||
* курсову маржу; | |||
* прибуток; | |||
* підсумок за день, тиждень або місяць.</div> | |||
[[Категорія:Каса]] | |||
Маржа = Курс продажу - Курс купівлі | |||
== Прибутковість обмінних операцій == | |||
Мета задача — створити в K2 ERP компонент для обліку операцій купівлі та продажу валют. ! ! ! {| class="wikitable" style="width:100%;" | |||
Кожна проведена операційна дія повинна автоматизовано змінювати залишки в касі. Максимальна оцінка | |||
== Критерії оцінювання == | |||
! Роль | |||
== Назва задача == | |||
|- | |||
| 90–100 | |||
| Відмінно | |||
| компонент на 100% функціонує: курси, купівля, продаж, залишки, ордери, прибуток, звіти й AJAX реалізовані коректно | |||
|- | |||
| 75–89 | |||
| Добре | |||
| Основна логіка функціонує, виступає як незначні недоліки, які не руйнують обліковий облік валютних операцій | |||
|- | |- | ||
| | | 60–74 | ||
| | | Зараховано | ||
| Базовий сценарій функціонує, але частина функцій реалізована неповно або потребує доопрацювання | |||
|- | |||
| 0–59 | |||
| Не зараховано | |||
| Відсутня критична логіка: операції обміну, залишки, курси, ордери або звіти | |||
|} | |||
Сума UAH = 1000 × 39,50 = 39 500 грн | |||
! Колонка | |||
== Приклади валют == | |||
! компонент повинен логувати важливі дії. * прибуткового касового ордера; | |||
* видаткового касового ордера; | |||
* квитанції обмінної операції; | |||
* звіту касира за день; | |||
* звіту по залишках. ! SEO-опис | |||
{| class="wikitable" style="width:100%;" | |||
{| class="wikitable" style="width:100%;" | |||
== Приклад продажу валюти == | |||
<div style="border:3px solid #1565c0; background:#e3f2fd; padding:14px; margin:16px 0;"> | |||
== Колонки журналу операцій == | |||
* збільшити залишок іноземної валюти в касі; | |||
* зменшити залишок гривні в касі; | |||
* використати курс купівлі; | |||
* сформувати касовий документ; | |||
* зафіксувати операцію в журналі. SEO-опис | |||
* неможливо створити валюту; | |||
* неможливо створити касу; | |||
* операційна дія обміну не підставляє курс; | |||
* сума в UAH розраховується неправильно; | |||
* купівля валюти не збільшує залишок іноземної валюти; | |||
* купівля валюти не зменшує залишок UAH; | |||
* продаж валюти не зменшує залишок іноземної валюти; | |||
* продаж валюти не збільшує залишок UAH; | |||
* платформа дає можливість продати валюту, якої немає в касі; | |||
* платформа дає можливість купити валюту без достатнього залишку UAH; | |||
* операції не потрапляють у звіти; | |||
* касові ордери не формуються; | |||
* прибуток від обмінних операцій не розраховується або рахується хаотично; | |||
* зміна курсу впливає на вже проведені операції; | |||
* скасування операції без зусиль видаляє її без історії; | |||
* зміни не логуються.== Реальний бізнес-контекст == | |||
* бути доступним лише користувачу з відповідними правами; | |||
* створювати зворотний рух по касових залишках; | |||
* не видаляти операцію фізично з бази; | |||
* фіксувати причину скасування; | |||
* записувати дію в журнал змін. {| class="wikitable" style="width:100%;" | |||
== Звіт «Прибуток від обмінних операцій» == | |||
<div style="border:3px solid #b71c1c; background:#ffebee; padding:14px; margin:16px 0;"> | |||
* видача гривні при купівлі валюти у клієнта; | |||
* видача іноземної валюти при продажу валюти клієнту. | Купівля валюти та продаж валюти | |||
|- | |||
| Що має відбуватися із залишками? Саме це робить компонент обліковим, а не довідковим. Метод | |||
* касу; | |||
* валюту; | |||
* початковий залишок; | |||
* прихід; | |||
* видаток; | |||
* кінцевий залишок; | |||
* еквівалент у базовій валюті, якщо потрібно. Спрощена формула: | |||
</pre> | |||
|- | |||
| Номер ордера | |||
| Унікальний номер документа | |||
|- | |||
| Тип ордера | |||
| Прибутковий або видатковий | |||
|- | |||
| Дата | |||
| Дата створення ордера | |||
|- | |||
| Каса | |||
| Каса, по якій сформовано документ | |||
|- | |||
| Валюта | |||
| Валюта руху | |||
|- | |- | ||
| | | Сума | ||
| | | Сума руху | ||
|- | |- | ||
| | | Курс | ||
| | | Курс операції, якщо застосовується | ||
|- | |- | ||
| | | операційна дія обміну | ||
| | | Посилання на операцію, яка створила ордер | ||
|- | |- | ||
| | | Касир | ||
| | | Відповідальний працівник | ||
|- | |- | ||
| | | Підпис касира | ||
| | | Поле для друку або електронного підтвердження | ||
|} | |} | ||
Поля | компонент має підтримувати довідники валют і кас, журнал курсів валют, журнал операцій обміну, купівлю та продаж валюти, автоматичне оновлення версій касових залишків, контроль нестачі, формування касових ордерів, розрахунок прибутку, звіти, друк, експорт, AJAX-інтерактив і логування змін. * створення операції обміну; | ||
* вибір валюти; | |||
* підстановка актуального курсу; | |||
* миттєвий розрахунок суми в UAH; | |||
* перевірка залишків; | |||
* проведення операції; | |||
* оновлення версій залишків каси; | |||
* формування ордера; | |||
* фільтрація журналів; | |||
* оновлення версій звітів. | Прибуткові та видаткові касові ордери, квитанції | |||
|- | |||
| Які звіти потрібні? Продаж “у мінус” для обмінки виступає як критичною помилкою.== Поля каси == | |||
Форма операції повинна бути максимально простою для касира.</pre> | |||
{| class="wikitable" style="width:100%;" | |||
Прибуток = Продана сума валюти × (Курс продажу - Середній курс закупівельна діяльність) | |||
[[Категорія:Атестаційні завдання K2]] | |||
Прибутковий касовий ордер формується, коли каса отримує кошти. SEO-опис | |||
* | * отримання іноземної валюти при купівлі валюти у клієнта; | ||
* | * отримання гривні при продажу валюти клієнту.== Колонки журналу курсів == | ||
{| class="wikitable" style="width:100%;" | |||
Поточна версія на 18:41, 1 травня 2026
Друковані форми
Найпростіший підхід — аналізувати різницю між курсом купівлі та курсом продажу. Що перевіряється !== Форма операції обміну ==
У результаті виконання атестаційного задача має бути створений компонент обліку валютних операцій у K2 ERP.формування звітів
оновлення версій касових залишків
Очікуваний результат
Логування змін
Сума UAH = Сума у валюті × Курс
Обмінка — це практична задача для перевірки навичок розробника або впроваджувача K2 ERP у створенні модуля обліку валютних операцій. Символ
Бажано передбачити звіт касира за зміну або день. |-
| Реалізація довідників валют і кас | 10 | Валюти, каси, касири, початкові залишки, активність |
| Реєстрація операцій обміну | 20 | Купівля, продаж, підстановка курсу, розрахунок суми в UAH |
| Автоматичне оновлення версій залишків каси | 20 | Зміна залишків по валюті та UAH, контроль нестачі |
| Формування касових ордерів | 20 | Прибуткові й видаткові ордери, квитанції, друк PDF |
| Формування звітів | 20 | Обороти по валютах, залишки в касах, прибуток від обмінних операцій |
| Інтерактивність через AJAX | 10 | Операції, курси, перерахунки, залишки й звіти без перезавантаження |
| == Примітка == | ||
|---|---|---|
| Бекенд | K2 Cloud ERP на Python або PHP | |
| База даних | PostgreSQL або MySQL | |
| Фронтенд | HTML5, JavaScript | |
| AJAX | Axios або Fetch API | |
| UI-компоненти | DataTables, Select2 | |
| Друк | PDF для касових ордерів, квитанцій і звітів | |
| Експорт | Excel або PDF для звітів |
Перед проведенням операції платформа повинна перевіряти:
Логіка курсів
- валюти;
- каси;
- касири;
- курси валют;
- операції обміну;
- касові залишки;
- рухи каси;
- касові ордери;
- квитанції;
- методи розрахунку прибутку;
- звіти;
- права доступу;
- журнал змін;
- скасування операцій. Валюта
компанія-користувач, обмінний пункт, турагентство, фінансова компанія-користувач або підприємець функціонує з готівковими чи безготівковими валютними операціями. !
У контексті обмінки це здатна бути: як приклад:
Назва каси як приклад: Каса №1, Центральна каса, Каса офісу Локація Адреса або місце розташування каси Відповідальний касир Працівник, який відповідає за касу Статус Активна, закрита, тимчасово недоступна Коментар Додаткова інформаційні матеріали
! |- | Касир | Створює та проводить операції, друкує ордери, бачить свою касу |- | Старший касир | Бачить кілька кас, здатна скасовувати операції в межах прав |- | Бухгалтер | Перевіряє операції, звіти, касові документи |- | Адміністратор | Налаштовує валюти, каси, права, курси та службові параметри |}
У роботі потрібно щоденно контролювати:
Див. так само
Практичний сенс. Якщо курс змінився о 14:00, операції до 14:00 мають залишатися зі старим курсом. Журнал курсів валют зберігає історію зміни курсів купівлі та продажу. Відповідь |- | Середньозважений курс | Собівартість валюти рахується як середній курс купленого залишку |- | FIFO | Першою продається валюта, яка була куплена раніше |- | Спрощена маржа | Прибуток оцінюється через різницю поточних курсів купівлі та продажу |}
! компонент має підтримувати розмежування прав. | компонент обліку валютних операцій |- | Які довідники потрібні? !== Рекомендовані сутності бази даних == ! Результат по касі: Практичний принцип. Помилкові валютні операції не варто без зусиль видаляти. | Операції обміну |- | Які типи операцій потрібні? Тип операції
Поля форми
базовий бізнес-процес
- USD збільшується на 1000;
- UAH зменшується на 39 500. ! Для точнішого розрахунку потрібно використовувати партійний або середньозважений обліковий облік валюти. Поле
Можливі ролі: У звіті потрібно показати: ! Рівень == Формула маржі == '''критично.''' Касовий залишок має формуватися на основі операцій, а не редагуватися вручну після кожного обміну.== Звіт касира за день == У контексті обмінки це здатна бути: |- | Дата і час | Коли встановлено курс |- | Валюта | Валюта, для якої встановлено курс |- | Курс купівлі | За яким курсом обмінка купує валюту у клієнта |- | Курс продажу | За яким курсом обмінка продає валюту клієнту |- | Каса | Якщо курс відрізняється по касах |- | Автор | Хто встановив або змінив курс |} <div style="border:3px solid #2e7d32; background:#e8f5e9; padding:14px; margin:16px 0;"> ! * [[K2 Cloud ERP|K2 ERP]] * [[K2 ERP]] * [[Атестаційні завдання K2 ERP]] * [[Обмінка]] * [[Валюти]] * [[Каса]] * [[Касові ордери]] * [[Фінансовий облік]] * [[Мультивалютність]] * [[Курси валют]] * [[Прибутковий касовий ордер]] * [[Видатковий касовий ордер]]
Сума UAH = 500 × 42,20 = 21 100 грн
! ! Купівля валюти означає, що клієнт ERP здає іноземну валюту, а каса виплачує йому гривню. Ручне коригування здатна бути лише окремою службовою операцією з логуванням. ! Тому компонент повинен цифровізувати розрахунок і контроль. | Купівля збільшує валюту й зменшує UAH, продаж зменшує валюту й збільшує UAH |- | Які документи потрібні?== AJAX-інтерактив ==
Підходи до розрахунку собівартості валюти
платформа повинна дозволяти:
клієнт ERP здає 1000 USD за курсом 39,50.== Видатковий касовий ордер ==
Звіт показує обсяги купівлі та продажу по кожній валюті за вибраний період.== Поля валюти ==
Прибуток по валюті
|- | Назва валюти | як приклад: долар США, євро, фунт стерлінгів, польський злотий |- | Короткий код | USD, EUR, GBP, PLN |- | Символ | $, €, £, zł |- | Кількість знаків після коми | як приклад, 2 |- | Активність | Чи застосовується для валюта в поточних операціях |}
Контроль залишків
!== Журнал «Операції обміну» == |- | Купівля валюти | Збільшується | Зменшується |- | Продаж валюти | Зменшується | Збільшується |}
Шкала оцінювання
- чи достатньо гривні для купівлі валюти;
- чи достатньо іноземної валюти для продажу;
- чи активна каса;
- чи встановлено актуальний курс;
- чи не заблокований касир;
- чи не скасована операційна дія. Бали
прозорий контроль валютних залишків, зменшує ризик касових помилок і дає можливість бачити реальний прибуток від обмінних операцій реалізується засобами Правильна реалізація такого модуля. Через AJAX мають працювати:
! ! Окремо варто відзначити курсів валют, касових залишків, операцій купівлі і продажу валюти, касових ордерів, прибутку від курсової різниці та звітності виступає ключовою рисою Атестаційне задача K2 ERP. У звіті потрібно відображати:
- вести довідник валют;
- вести довідник кас;
- фіксувати курси купівлі та продажу валют;
- зберігати історію зміни курсів;
- автоматизовано підставляти актуальний курс в операцію;
- реєструвати купівлю валюти;
- реєструвати продаж валюти;
- миттєво розраховувати суму в гривні;
- вести залишки по кожній валюті в кожній касі;
- контролювати достатність залишків перед проведенням операції;
- формувати прибуткові та видаткові касові ордери;
- розраховувати прибуток від курсової різниці;
- формувати звіти по оборотах, залишках і прибутковості;
- експортувати або друкувати касові документи та звіти.
платформа повинна:
Касові залишки
Прибутковий касовий ордер
Що потрібно створити? Разом
компонент обліку валютних операцій: Обмінка. Об’єкт
Критичні помилкиСкасування операції
У звіті потрібно відображати:
Видатковий касовий ордер формується, коли каса видає кошти. | Валюти, каси, касири | ||||||||||||||||||||
Який провідний журнал?== Мета задача ==
Довідник «Валюти»При продажу валюти платформа повинна: Для атестаційного задача достатньо реалізувати один із методів, але метод має бути описаний і послідовно застосований у звітах.== Формула розрахунку суми в гривні == Основні об’єкти модуляПоля касового ордера
== Касові ордери ==
компонент повинен формувати касові ордери для підтвердження руху коштів. SEO-опис
* касира;
* касу;
* дату;
* початкові залишки;
* усі операції купівлі;
* усі операції продажу;
* кінцеві залишки;
* прибуток;
* підпис касира. У звіті потрібно відображати:
|-
| Номер операції
| Унікальний номер операції
|-
| Дата і час
| Коли виконано операцію
|-
| Тип операції
| Купівля або продаж валюти
|-
| Валюта
| Валюта операції
|-
| Сума у валюті
| Скільки валюти куплено або продано
|-
| Курс
| Курс, за яким виконано операцію
|-
| Сума в UAH
| Розрахована сума у гривні
|-
| Каса
| Каса, через яку пройшла операційна дія
|-
| Касир
| Хто провів операцію
|-
| Статус
| Чернетка, проведено, скасовано
|}
! | Оборот по валютах, залишки в касах, прибуток від обмінних операцій
|-
| Що виступає як критичною вимогою? Питання
Для реалізації задачі доцільно передбачити такі сутності:
# створити валюти USD, EUR, GBP, PLN;
# створити касу;
# вказати початкові залишки UAH, USD та EUR;
# створити курси купівлі та продажу;
# оформити операцію купівлі валюти;
# перевірити автоматичний розрахунок суми в UAH;
# перевірити зміну залишків валюти та гривні;
# сформувати касовий ордер по операції;
# оформити операцію продажу валюти;
# перевірити контроль достатності залишку валюти;
# перевірити зміну залишків після продажу;
# сформувати квитанцію або касовий ордер;
# сформувати звіт обороту по валютах;
# сформувати звіт залишків у касах;
# сформувати звіт прибутку від обмінних операцій;
# показати журнал змін;
# виконати скасування помилкової операції;
# перевірити зворотний рух по касі. Критерій
Сума має перераховуватися миттєво при зміні валюти, курсу або кількості валюти. Валюта
== Приклад купівлі валюти ==
|-
| Каса №1
| UAH
| 250 000
|-
| Каса №1
| USD
| 8 000
|-
| Каса №1
| EUR
| 5 000
|}
компонент обмінки валют здатна бути корисним для обмінних пунктів, туристичних компаній, банківських підрозділів, фінансових компаній, мікрофінансових організацій, підприємців і компаній, які активно працюють із готівковою або безготівковою валютою. __TOC__
! * зменшити залишок іноземної валюти в касі;
* збільшити залишок гривні в касі;
* використати курс продажу;
* перевірити, чи достатньо валюти в касі;
* сформувати касовий документ;
* зафіксувати операцію в журналі. * хто створив курс;
* хто змінив курс;
* хто створив операцію обміну;
* хто провів операцію;
* хто скасував операцію;
* хто змінив касу або суму;
* хто сформував касовий ордер;
* дату й час дії;
* старе та нове значення, якщо це можливо. |-
| Тип операції
| Купівля або продаж
|-
| Валюта
| USD, EUR, GBP, PLN або інша
|-
| Сума у валюті
| Сума, яку здає або купує клієнт ERP
|-
| Курс
| Підставляється автоматизовано, але здатна редагуватися за наявності прав
|-
| Сума в UAH
| Розраховується автоматизовано
|-
| Каса
| Каса, через яку проходить операційна дія
|-
| Касир
| Поточний користувач системи або обраний касир
|-
| Коментар
| Додаткова інформаційні матеріали
|}
== Практичне задача ==
== Купівля валюти ==
! SEO-опис
<div style="border:3px solid #1565c0; background:#e3f2fd; padding:14px; margin:16px 0;">
<div style="border:2px solid #f57c00; background:#fff3e0; padding:14px; margin:16px 0;">
! | Коректна зміна касових залишків після кожної операції
|}
Продаж валюти означає, що клієнт ERP купує іноземну валюту, а каса отримує гривню. {| class="wikitable" style="width:100%;"
'''Коротко.''' Потрібно реалізувати компонент “Обмінка”, який дає можливість вести валюти, каси, курси купівлі та продажу, реєструвати валютні операції, автоматизовано оновлювати залишки, формувати касові ордери й бачити прибуток від обмінних операцій.== Коротко ==
Критичними помилками вважаються ситуації, коли:
== Звіт «Залишки в касах» ==
Потрібно передбачити друк або PDF-формування:
клієнт ERP купує 500 EUR за курсом 42,20.== Звіт «Оборот по валютах» ==
По кожній касі потрібно вести залишки в кожній валюті. Поле
Мінімальний сценарій:
== Журнал «Курси валют» ==
<pre>
* валюту;
* кількість операцій купівлі;
* суму купівлі у валюті;
* суму купівлі в UAH;
* кількість операцій продажу;
* суму продажу у валюті;
* суму продажу в UAH;
* підсумки за період. SEO-опис
компонент має розраховувати прибуток від курсової різниці. 100
! !<div style="border:3px solid #1565c0; background:#e3f2fd; padding:14px; margin:16px 0;">
== Технічні вимоги ==
! Поле
<div style="border:3px solid #b71c1c; background:#ffebee; padding:14px; margin:16px 0;">
!== Логіка руху залишків ==
! Параметр
! ! UAH
|-
| Долар США
| USD
| $
|-
| Євро
| EUR
| €
|-
| Фунт стерлінгів
| GBP
| £
|-
| Польський злотий
| PLN
| zł
|}
== Продаж валюти ==
У межах атестації потрібно продемонструвати робочий сценарій.[[Категорія:Обмінка]]
* EUR зменшується на 500;
* UAH збільшується на 21 100. компонент має забезпечувати повний цикл роботи обмінного пункту або компанії, яка виконує валютні операції: встановлення курсів, реєстрація обміну, контроль залишків у касах, формування касових документів і аналіз прибутковості. Код
Інтерфейс модуля має бути швидким і зручним для касира. Колонка
! функції ERP
<pre>
'''Умова складання.''' задача не здатна бути зараховане, якщо платформа не дає можливість пройти базовий цикл обмінки: курс → операційна дія купівлі або продажу → розрахунок UAH → зміна залишків → касовий ордер → звіт. Валюта
Журнал операцій обміну показує всі операції купівлі та продажу валюти.== Довідник «Каси» ==
Якщо такі операції вести вручну, швидко помилитися в залишках, курсах, сумі гривні або прибутку.<pre>
Каса здатна бути фізичною касою обмінного пункту, касою офісу, касою конкретного касира або умовним внутрішнім рахунком. Вона має змінювати залишки двох валют: однієї валюти стає більше, іншої — менше. ! SEO-опис
Типовий бізнес-процес роботи обмінки виглядає так:
При купівлі валюти платформа повинна:
* валюту;
* суму купленої валюти;
* середній курс купівлі;
* суму проданої валюти;
* середній курс продажу;
* курсову маржу;
* прибуток;
* підсумок за день, тиждень або місяць.</div>
[[Категорія:Каса]]
Маржа = Курс продажу - Курс купівлі
== Прибутковість обмінних операцій ==
Мета задача — створити в K2 ERP компонент для обліку операцій купівлі та продажу валют. ! ! ! {| class="wikitable" style="width:100%;"
Кожна проведена операційна дія повинна автоматизовано змінювати залишки в касі. Максимальна оцінка
== Критерії оцінювання ==
! Роль
== Назва задача ==
|-
| 90–100
| Відмінно
| компонент на 100% функціонує: курси, купівля, продаж, залишки, ордери, прибуток, звіти й AJAX реалізовані коректно
|-
| 75–89
| Добре
| Основна логіка функціонує, виступає як незначні недоліки, які не руйнують обліковий облік валютних операцій
|-
| 60–74
| Зараховано
| Базовий сценарій функціонує, але частина функцій реалізована неповно або потребує доопрацювання
|-
| 0–59
| Не зараховано
| Відсутня критична логіка: операції обміну, залишки, курси, ордери або звіти
|}
Сума UAH = 1000 × 39,50 = 39 500 грн
! Колонка
== Приклади валют ==
! компонент повинен логувати важливі дії. * прибуткового касового ордера;
* видаткового касового ордера;
* квитанції обмінної операції;
* звіту касира за день;
* звіту по залишках. ! SEO-опис
{| class="wikitable" style="width:100%;"
{| class="wikitable" style="width:100%;"
== Приклад продажу валюти ==
<div style="border:3px solid #1565c0; background:#e3f2fd; padding:14px; margin:16px 0;">
== Колонки журналу операцій ==
* збільшити залишок іноземної валюти в касі;
* зменшити залишок гривні в касі;
* використати курс купівлі;
* сформувати касовий документ;
* зафіксувати операцію в журналі. SEO-опис
* неможливо створити валюту;
* неможливо створити касу;
* операційна дія обміну не підставляє курс;
* сума в UAH розраховується неправильно;
* купівля валюти не збільшує залишок іноземної валюти;
* купівля валюти не зменшує залишок UAH;
* продаж валюти не зменшує залишок іноземної валюти;
* продаж валюти не збільшує залишок UAH;
* платформа дає можливість продати валюту, якої немає в касі;
* платформа дає можливість купити валюту без достатнього залишку UAH;
* операції не потрапляють у звіти;
* касові ордери не формуються;
* прибуток від обмінних операцій не розраховується або рахується хаотично;
* зміна курсу впливає на вже проведені операції;
* скасування операції без зусиль видаляє її без історії;
* зміни не логуються.== Реальний бізнес-контекст ==
* бути доступним лише користувачу з відповідними правами;
* створювати зворотний рух по касових залишках;
* не видаляти операцію фізично з бази;
* фіксувати причину скасування;
* записувати дію в журнал змін. {| class="wikitable" style="width:100%;"
== Звіт «Прибуток від обмінних операцій» ==
<div style="border:3px solid #b71c1c; background:#ffebee; padding:14px; margin:16px 0;">
* видача гривні при купівлі валюти у клієнта;
* видача іноземної валюти при продажу валюти клієнту. | Купівля валюти та продаж валюти
|-
| Що має відбуватися із залишками? Саме це робить компонент обліковим, а не довідковим. Метод
* касу;
* валюту;
* початковий залишок;
* прихід;
* видаток;
* кінцевий залишок;
* еквівалент у базовій валюті, якщо потрібно. Спрощена формула:
| ||||||||||||||||||||
| Номер ордера | Унікальний номер документа | |||||||||||||||||||
| Тип ордера | Прибутковий або видатковий | |||||||||||||||||||
| Дата | Дата створення ордера | |||||||||||||||||||
| Каса | Каса, по якій сформовано документ | |||||||||||||||||||
| Валюта | Валюта руху | |||||||||||||||||||
| Сума | Сума руху | |||||||||||||||||||
| Курс | Курс операції, якщо застосовується | |||||||||||||||||||
| операційна дія обміну | Посилання на операцію, яка створила ордер | |||||||||||||||||||
| Касир | Відповідальний працівник | |||||||||||||||||||
| Підпис касира | Поле для друку або електронного підтвердження |
компонент має підтримувати довідники валют і кас, журнал курсів валют, журнал операцій обміну, купівлю та продаж валюти, автоматичне оновлення версій касових залишків, контроль нестачі, формування касових ордерів, розрахунок прибутку, звіти, друк, експорт, AJAX-інтерактив і логування змін. * створення операції обміну;
- вибір валюти;
- підстановка актуального курсу;
- миттєвий розрахунок суми в UAH;
- перевірка залишків;
- проведення операції;
- оновлення версій залишків каси;
- формування ордера;
- фільтрація журналів;
- оновлення версій звітів. | Прибуткові та видаткові касові ордери, квитанції
Які звіти потрібні? Продаж “у мінус” для обмінки виступає як критичною помилкою.== Поля каси == Форма операції повинна бути максимально простою для касира.
Прибуток = Продана сума валюти × (Курс продажу - Середній курс закупівельна діяльність) Прибутковий касовий ордер формується, коли каса отримує кошти. SEO-опис- отримання іноземної валюти при купівлі валюти у клієнта;
- отримання гривні при продажу валюти клієнту.== Колонки журналу курсів ==