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

Атестаційні завдання K2 ERP/Обмінка

Матеріал з K2 ERP Wiki

Друковані форми

Найпростіший підхід — аналізувати різницю між курсом купівлі та курсом продажу. Що перевіряється !== Форма операції обміну ==

У результаті виконання атестаційного задача має бути створений компонент обліку валютних операцій у 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. У звіті потрібно відображати:

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

платформа повинна:

Потрібно передбачити скасування помилкової операції. {| class="wikitable" style="width:100%;" Звіт показує прибуток від обмінних операцій за період. Поле

Касові залишки

Прибутковий касовий ордер

Що потрібно створити? Разом компонент обліку валютних операцій: Обмінка. Об’єкт

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

Скасування операції

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

У звіті потрібно відображати:

Правильніше скасувати їх окремою дією, щоб залишилася історія продукту та було зрозуміло, чому змінився залишок каси. Довідник валют містить перелік валют, з якими функціонує платформа. Бали

провідний принцип. Валютна операційна дія не повинна бути без зусиль записом у журналі. SEO-опис Результат по касі:

Права доступу

Видатковий касовий ордер формується, коли каса видає кошти. | Валюти, каси, касири

Який провідний журнал?== Мета задача ==
Каса

Довідник кас містить місця, де зберігаються гривня та іноземна валюта. Залишок

  • зберігати історію курсів;
  • дозволяти бачити, який курс діяв на момент операції;
  • автоматизовано підставляти актуальний курс;
  • не змінювати курс у вже проведених операціях після редагування довідника курсів;
  • дозволяти встановлювати різні курси для різних валют;
  • опціонально дозволяти різні курси по різних касах. Інакше звіти й прибуток будуть некоректними. # адміністратор або касир встановлює курси валют;
  1. у касі виступає як залишки гривні та іноземної валюти;
  2. клієнт ERP приходить для купівлі або продажу валюти;
  3. касир обирає тип операції;
  4. платформа підставляє актуальний курс;
  5. касир вводить суму у валюті;
  6. платформа розраховує суму в гривні;
  7. платформа перевіряє залишки в касі;
  8. операційна дія проводиться;
  9. залишки валют автоматизовано оновлюються;
  10. формується касовий ордер;
  11. операційна дія потрапляє у звіти по оборотах і прибутку. Призначення
Скасування має:

Критично. платформа не повинна дозволяти продаж валюти, якщо в касі недостатньо залишку цієї валюти. SEO-опис

Валюти Довідник валют, з якими функціонує обмінка
Каси Місця зберігання готівки та валютних залишків
Курси валют Курси купівлі та продажу з історією змін
Операції обміну Купівля або продаж валюти
Касові залишки Поточні залишки кожної валюти в кожній касі
Касові ордери Документи, що підтверджують рух коштів
Касири Користувачі, які виконують операції
Звіти Обороти, залишки, прибуток, журнал операцій
Журнал змін історія продукту зміни курсів, операцій і залишків

Довідник «Валюти»

При продажу валюти платформа повинна:

Для атестаційного задача достатньо реалізувати один із методів, але метод має бути описаний і послідовно застосований у звітах.== Формула розрахунку суми в гривні ==

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

Поля касового ордера


== Касові ордери ==

компонент повинен формувати касові ордери для підтвердження руху коштів. 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-опис
  • отримання іноземної валюти при купівлі валюти у клієнта;
  • отримання гривні при продажу валюти клієнту.== Колонки журналу курсів ==