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

Перенос з Гугл док
 
Немає опису редагування
 
Рядок 1: Рядок 1:
'''Атестаційне завдання K2 ERP — Рахунки орендарям ТРЦ''' — практична задача для розробника K2 ERP, що передбачає створення модуля обліку виставлення рахунків орендарям за орендовані площі та комунальні послуги в торговельно-розважальному центрі.
{{DISPLAYTITLE:Атестаційні завдання K2 ERP/Оренда}}


== Назва ==
'''Атестаційне завдання K2 ERP — Оренда''' — це практична задача для перевірки навичок розробника або впроваджувача [[K2 ERP]] у створенні модуля обліку оренди, комунальних послуг, нарахувань, рахунків, актів, оплат і заборгованості.
'''Модуль обліку виставлення рахунків орендарям за орендовані площі та комунальні послуги в ТРЦ'''.


== Опис ситуації ==
Завдання моделює роботу торговельно-розважального центру, бізнес-центру, складу, готелю або іншого об’єкта нерухомості, де є багато орендарів, приміщень, договорів, послуг і щомісячних нарахувань.
Власник ТРЦ має десятки орендарів: магазини, кафе, сервісні компанії. Кожного місяця потрібно автоматизовано виконувати нарахування та виставлення рахунків.


Щомісячно необхідно:
<div style="border:3px solid #1565c0; background:#e3f2fd; padding:14px; margin:16px 0;">
'''Коротко.''' Потрібно реалізувати модуль, який щомісяця нараховує орендну плату та комунальні послуги, формує рахунки й акти для орендарів, контролює оплати, борги та дозволяє масово завантажувати показники лічильників з Excel.
</div>


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


Система повинна:
== Назва завдання ==


* автоматично розраховувати суми;
'''Модуль обліку виставлення рахунків орендарям за орендовані площі та комунальні послуги в ТРЦ'''.
* дозволяти вручну коригувати дані;
* виставляти рахунки;
* формувати акти виконаних робіт;
* друкувати документи та надсилати їх орендарям;
* вести аналітику по оплатах і заборгованості.


== Завдання ==
== Мета завдання ==


=== 1. Структура довідників ===
Мета завдання — створити в K2 ERP модуль для автоматизації щомісячної роботи з орендарями.


==== Довідник «Орендарі» ====
Система повинна допомагати власнику ТРЦ або бізнес-центру не рахувати все вручну в Excel, а вести облік у єдиному середовищі: договори, площі, тарифи, лічильники, показники, нарахування, рахунки, акти, оплати та борги.
Довідник орендарів повинен містити:


* назву компанії;
<div style="border:3px solid #2e7d32; background:#e8f5e9; padding:14px; margin:16px 0;">
* договір оренди:
'''Головний принцип.''' Оренда — це не просто рахунок на оплату. Це ланцюжок: договір → площа → послуга → тариф або показник лічильника → нарахування → рахунок → акт → оплата → баланс орендаря.
** номер договору;
</div>
** дату початку;
** дату закінчення;
* контактних осіб;
* email для виставлення рахунків.


==== Довідник «Орендовані площі» ====
== Опис ситуації ==
Довідник орендованих площ повинен містити:


* прив’язку до орендаря;
Власник ТРЦ має десятки орендарів: магазини, кафе, сервісні компанії, острівні торгові точки, склади або офіси.
* номер приміщення;
* метраж, м²;
* ставку оренди за м², грн/м²;
* додаткові примітки.


==== Довідник «Послуги» ====
Кожного місяця потрібно автоматично виконувати нарахування та виставляти рахунки за:
Довідник послуг повинен містити типи послуг:


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


Для кожної послуги потрібно передбачити тип розрахунку:
Комунальні послуги можуть розраховуватися по-різному: за показниками лічильника, за нормативом на квадратний метр або як фіксована сума.


* за показниками лічильника;
Система повинна автоматично розраховувати суми, дозволяти ручне коригування, формувати рахунки, акти виконаних робіт, друковані форми, email-розсилку орендарям і звіти по оплатах та заборгованості.
* за нормативом на 1 м²;
* фіксована сума.


=== 2. Журнал документів «Рахунки на оплату» ===
== Основний бізнес-процес ==
Журнал документів має відображати всі рахунки, виставлені орендарям.


==== Колонки журналу ====
Щомісячний процес роботи з орендарями виглядає так:
У журналі повинні бути такі колонки:


* номер рахунку;
# співробітники ТРЦ знімають показники лічильників;
* орендар;
# показники вводяться вручну або завантажуються з Excel;
* період нарахування: місяць і рік;
# система розраховує витрати за період;
* загальна сума;
# формуються нарахування по кожному орендарю;
* статус рахунку:
# на основі нарахувань створюються рахунки на оплату;
** чернетка;
# для орендарів формуються акти виконаних робіт;
** виставлений;
# рахунки та акти друкуються або надсилаються email;
** оплачений;
# після отримання оплат змінюються статуси рахунків;
** прострочений;
# у звітах видно виставлені суми, оплати та борги.
* дата виставлення;
* дата оплати.


==== Функціональність журналу ====
== Основні об’єкти модуля ==
Журнал має підтримувати:


* створення рахунку;
{| class="wikitable" style="width:100%;"
* редагування рахунку;
! Об’єкт
* проведення рахунку;
! Призначення
* друк рахунку;
|-
* фільтрацію по орендарю;
| Орендарі
* фільтрацію по статусу;
| Компанії або ФОП, які орендують площі
* фільтрацію по періоду.
|-
| Договори оренди
| Умови оренди, строки, ставки, реквізити
|-
| Орендовані площі
| Приміщення, площа, номер, ставка за м²
|-
| Послуги
| Оренда, електроенергія, вода, опалення, кондиціонування, прибирання
|-
| Тарифи
| Ціни за одиницю послуги або норматив
|-
| Лічильники
| Прилади обліку електроенергії, води та інших ресурсів
|-
| Показники лічильників
| Значення на початок і кінець періоду
|-
| Нарахування
| Розраховані суми за період
|-
| Рахунки на оплату
| Документи для виставлення орендарям
|-
| Акти виконаних робіт
| Документи підтвердження наданих послуг
|-
| Оплати
| Фіксація надходження коштів
|-
| Баланс орендарів
| Нарахування, оплати й заборгованість
|}


=== 3. Форма створення рахунку ===
== Довідник «Орендарі» ==


==== Заголовок документа ====
Довідник орендарів зберігає інформацію про компанії, які орендують площі.
Заголовок рахунку повинен містити:


* орендаря з пошуком у довіднику через AJAX;
Мінімальний склад даних:
* період нарахування;
* дату виставлення.


==== Таблична частина ====
{| class="wikitable" style="width:100%;"
Таблична частина повинна містити орендовані площі та послуги.
! Поле
{| class="wikitable"
! Опис
!
|-
!Назва послуги
| Назва компанії
!Одиниця виміру
| Офіційна назва орендаря
!Кількість
|-
!Ціна за одиницю
| Код або ЄДРПОУ
!Сума
| Ідентифікатор компанії
|-
|-
|1
| Договір оренди
|Оренда приміщення
| Номер, дата початку та дата закінчення договору
|м²
|120
|300
|36 000
|-
|-
|2
| Контактні особи
|Електроенергія
| Відповідальні особи з боку орендаря
|кВт·год
|450
|5
|2 250
|-
|-
|3
| Email для рахунків
|Водопостачання
| Адреса для надсилання рахунків і актів
|м³
|30
|20
|600
|-
|-
|4
| Телефон
|Опалення
| Контактний номер
|м²
|120
|30
|3 600
|-
|-
! colspan="5" |Підсумкова сума
| Статус
!42 450 грн
| Активний, неактивний, боржник, договір завершено
|}
|}


=== 4. Розрахунки в системі ===
Орендар повинен використовуватися в рахунках, актах, нарахуваннях, оплатах і звітах.
 
==== Оренда ====
Сума оренди розраховується за формулою:<pre>
Сума оренди = Метраж × Ставка за м²
</pre>
 
==== Електроенергія ====
Якщо є лічильник:<pre>
Сума = Спожиті кВт·год × Тариф
</pre>Якщо лічильника немає:<pre>
Сума = Норма споживання × Метраж × Тариф
</pre>


==== Водопостачання ====
== Довідник «Орендовані площі» ==
Водопостачання розраховується за лічильником або за нормативом.


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


=== 5. Інтерфейс користувача ===
Мінімальний склад даних:
Інтерфейс користувача повинен підтримувати:


* додавання рядків послуг у таблиці через AJAX без перезавантаження сторінки;
{| class="wikitable" style="width:100%;"
* редагування кількості або тарифу прямо в таблиці через inline edit;
! Поле
* автоматичний перерахунок підсумкової суми при зміні кількості або тарифу;
! Опис
* кнопку '''«Зберегти чернетку»''';
* кнопку '''«Виставити рахунок»'''.
 
=== 6. Друк рахунку ===
Шаблон рахунку повинен містити:
 
* назву орендаря;
* реквізити ТРЦ;
* таблицю послуг;
* підсумкову суму;
* підпис відповідальної особи ТРЦ.
 
Формат друку:
 
* PDF;
* або HTML-друк для подальшої відправки.
 
=== 7. Звітність ===
 
==== Звіт «Реєстр виставлених рахунків» ====
Звіт має містити:
 
* список рахунків із підсумками за періодами;
* суми виставлені;
* суми сплачені;
* борги.
 
==== Звіт «Баланс орендарів» ====
Звіт має містити:
 
* орендарів із сумою нарахувань;
* оплати за вибраний період;
* виділення боржників червоним кольором.
 
=== 8. Додаткові вимоги ===
 
* статуси рахунків повинні змінюватися автоматично при фіксації оплати;
* потрібно логувати всі зміни по рахунках і оплатах;
* потрібно реалізувати нотифікації орендарям через email API про виставлення рахунку;
* потрібно передбачити можливість масового завантаження показників лічильників з Excel-файлу.
 
== Технічні вимоги ==
{| class="wikitable"
!Параметр
!Опис
|-
|-
|Бекенд
| Орендар
|PHP 8 або Python 3
| Компанія, яка орендує приміщення
|-
|-
|Фреймворк
| Номер приміщення
|K2 Core або Symfony Slim K2
| Номер кімнати, павільйону, магазину або площі
|-
|-
|БД
| Метраж
|PostgreSQL або MySQL
| Площа в м²
|-
|-
|Фронтенд
| Ставка оренди за м²
|HTML5, JavaScript, AJAX через Fetch або Axios
| Вартість оренди одного квадратного метра
|-
|-
|UI-компоненти
| Договір
|DataTables, Select2 для довідників
| Договір, на підставі якого орендується площа
|-
|-
|Друк
| Примітки
|Stimulsoft Reports або внутрішній PDF-генератор
| Додаткова інформація
|}
|}


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


== Примітка ==
== Лічильники та показники ==
Це прикладна задача, яку реально використовують власники ТРЦ, бізнес-центри, склади, готелі та інші об’єкти нерухомості.


Реалізація такого рішення в K2 ERP автоматизує щомісячну рутину та допомагає уникнути людських помилок.
Співробітники ТРЦ зазвичай знімають показники лічильників один раз на місяць.


== Додаткові зауваження ==
Усі зняті показники потрібно зберігати в системі. Кожен запис має містити дату й час зняття, приміщення, лічильник, тип ресурсу, одиницю виміру та значення на початок і кінець періоду.
Співробітники ТРЦ знімають показники лічильників, як правило, один раз на місяць. Усі зняті показники потрібно зберігати в системі.


Співробітник вносить інформацію в табличному форматі на певну дату та час зняття показників.
== Таблиця показників лічильників ==


=== Таблиця показників лічильників ===
{| class="wikitable" style="width:100%;"
{| class="wikitable"
! №
!№
! Кімната / приміщення
!Кімната / Приміщення
! № лічильника
!№ лічильника (ID)
! Тип лічильника
!Тип лічильника
! Одиниці
!Одиниці
! Значення на початок періоду
!Значення на початок періоду
! Значення на кінець періоду
!Значення на кінець періоду
! Різниця
!Різниця (витрата)
! Примітки
!Примітки
|-
|-
|1
| 1
|
|
|
|
Рядок 291: Рядок 228:
|
|
|-
|-
|2
| 2
|
|
|
|
Рядок 301: Рядок 238:
|
|
|-
|-
|3
| 3
|
|
|
|
Рядок 311: Рядок 248:
|
|
|-
|-
|49
| ...
|
|
|
|
Рядок 321: Рядок 258:
|
|
|-
|-
|50
! Разом
|
|
|
|
|
|
|
|
|-
!Разом
!
!
!
!
Рядок 338: Рядок 265:
!
!
!
!
!0,00
! 0,00
!
!
|}
|}
Нарахування робляться по події натисканням кнопки та формуються на певну дату. Усі нарахування потрібно зберігати в системі.


Приклад Excel-файлу нарахувань за 1 місяць:
Різниця між значенням на кінець і початок періоду використовується для розрахунку споживання.
 
<div style="border:2px solid #f57c00; background:#fff3e0; padding:14px; margin:16px 0;">
'''Важливо.''' Показники лічильників не повинні зникати після формування рахунку. Вони мають зберігатися як історія розрахунків за конкретний період.
</div>
 
== Масове завантаження показників з Excel ==
 
Потрібно передбачити можливість масового завантаження показників лічильників з Excel-файлу.
 
Завантаження має дозволяти:
 
* імпортувати показники за місяць;
* перевіряти коректність структури файлу;
* знаходити приміщення та лічильники;
* показувати помилки імпорту;
* не дублювати вже завантажені дані;
* створювати нарахування на основі імпортованих показників.
 
Приклад Excel-файлу нарахувань за один місяць може використовуватися як орієнтир для структури імпорту.
 
== Нарахування ==
 
Нарахування створюються на певну дату за обраний період.
 
Нарахування можуть формуватися:
 
* по всіх орендарях одразу;
* по конкретному орендарю;
* по конкретній послузі;
* по конкретному приміщенню;
* по певному завантаженню показників.
 
Нарахування мають зберігатися в системі. Це потрібно для того, щоб рахунки можна було відтворити, перевірити й порівняти з оплатами.
 
<div style="border:3px solid #2e7d32; background:#e8f5e9; padding:14px; margin:16px 0;">
'''Правильна логіка.''' Рахунок не повинен рахуватися “на льоту” щоразу заново без сліду. Спочатку система формує нарахування, зберігає їх, а вже з нарахувань створює рахунки.
</div>
 
== Розрахунки в системі ==
 
== Оренда ==
 
Сума оренди розраховується за формулою:
 
<pre>
Сума оренди = Метраж × Ставка за м²
</pre>
 
Наприклад, якщо площа становить 120 м², а ставка — 300 грн/м², то сума оренди становить:
 
<pre>
120 × 300 = 36 000 грн
</pre>
 
== Електроенергія ==
 
Якщо є лічильник:
 
<pre>
Сума = Спожиті кВт·год × Тариф
</pre>
 
Якщо лічильника немає:
 
<pre>
Сума = Норма споживання × Метраж × Тариф
</pre>
 
== Водопостачання ==
 
Водопостачання може розраховуватися за лічильником або за нормативом.
 
За лічильником:
 
<pre>
Сума = Спожиті м³ × Тариф
</pre>
 
За нормативом:


* https://drive.google.com/file/d/1poPAq1mFiPM_8wVZ3WU3ipPeTkSSISmq/view?usp=drive_link
<pre>
Сума = Норма на 1 м² × Метраж × Тариф
</pre>


З таблиці нарахувань повинні виставлятись рахунки:
== Опалення і кондиціонування ==


* по певному нарахуванню;
Опалення та кондиціонування зазвичай розраховуються пропорційно площі.
* по певному контрагенту;
* або по всіх нарахуваннях одразу.


== Очікуваний результат ==
<pre>
У результаті виконання атестаційного завдання має бути створений модуль K2 ERP для обліку оренди та комунальних послуг у ТРЦ, який підтримує довідники орендарів, площ і послуг, журнал рахунків, форму рахунку з AJAX-інтерактивом, розрахунки за лічильниками і нормативами, друк документів, звітність, контроль оплат, боргів і масове завантаження показників з Excel.
Сума = Метраж × Тариф за м²
</pre>
 
== Журнал документів «Рахунки на оплату» ==
 
Журнал рахунків має відображати всі рахунки, виставлені орендарям.
 
Мінімальні колонки журналу:
 
{| class="wikitable" style="width:100%;"
! Колонка
! Опис
|-
| Номер рахунку
| Унікальний номер документа
|-
| Орендар
| Компанія, якій виставлено рахунок
|-
| Період нарахування
| Місяць і рік
|-
| Загальна сума
| Сума рахунку
|-
| Статус
| Чернетка, виставлений, оплачений, прострочений
|-
| Дата виставлення
| Коли рахунок виставлено
|-
| Дата оплати
| Коли рахунок оплачено
|}
 
Журнал має підтримувати створення, редагування, проведення, друк рахунку, а також фільтрацію за орендарем, статусом і періодом.
 
== Статуси рахунку ==
 
{| class="wikitable" style="width:100%;"
! Статус
! Значення
|-
| Чернетка
| Рахунок підготовлено, але ще не виставлено орендарю
|-
| Виставлений
| Рахунок сформовано й передано орендарю
|-
| Оплачений
| Оплата зафіксована повністю
|-
| Частково оплачений
| Оплачено лише частину суми
|-
| Прострочений
| Термін оплати минув, борг залишається
|-
| Скасований
| Рахунок анульовано або замінено іншим
|}
 
Статуси повинні змінюватися автоматично при фіксації оплати.
 
== Форма створення рахунку ==
 
Форма рахунку складається із заголовка та табличної частини.
 
== Заголовок рахунку ==
 
У заголовку рахунку потрібно передбачити:
 
{| class="wikitable" style="width:100%;"
! Поле
! Опис
|-
| Орендар
| Вибір з довідника через AJAX-пошук
|-
| Період нарахування
| Місяць і рік
|-
| Дата виставлення
| Дата формування рахунку
|-
| Договір
| Договір оренди, за яким виставляється рахунок
|-
| Статус
| Чернетка, виставлений, оплачений, прострочений
|-
| Коментар
| Додаткова інформація
|}
 
== Таблична частина рахунку ==
 
Таблична частина повинна містити орендовані площі та послуги.
 
{| class="wikitable" style="width:100%;"
! №
! Назва послуги
! Одиниця виміру
! Кількість
! Ціна за одиницю
! Сума
|-
| 1
| Оренда приміщення
| м²
| 120
| 300
| 36 000
|-
| 2
| Електроенергія
| кВт·год
| 450
| 5
| 2 250
|-
| 3
| Водопостачання
| м³
| 30
| 20
| 600
|-
| 4
| Опалення
| м²
| 120
| 30
| 3 600
|-
! colspan="5" | Підсумкова сума
! 42 450 грн
|}
 
Користувач має мати можливість коригувати кількість, тариф або суму, якщо це дозволено правилами компанії.
 
== Інтерфейс користувача ==
 
Інтерфейс має бути зручним для щомісячної масової роботи.
 
Потрібно реалізувати:
 
* додавання рядків послуг через AJAX без перезавантаження сторінки;
* редагування кількості або тарифу прямо в таблиці через inline edit;
* автоматичний перерахунок підсумкової суми;
* кнопку '''«Зберегти чернетку»''';
* кнопку '''«Виставити рахунок»''';
* кнопку '''«Сформувати акт»''';
* кнопку '''«Надіслати email»''';
* виділення боржників або прострочених рахунків.
 
== Друк рахунку ==
 
Шаблон рахунку повинен містити:
 
* назву орендаря;
* реквізити ТРЦ;
* номер і дату рахунку;
* період нарахування;
* таблицю послуг;
* підсумкову суму;
* підпис відповідальної особи ТРЦ.
 
Формат друку:
 
* PDF;
* або HTML-друк для подальшої відправки.
 
== Акти виконаних робіт ==
 
Система повинна формувати акт виконаних робіт на основі рахунку або нарахувань.
 
Акт має містити:
 
* орендаря;
* період;
* перелік послуг;
* кількість;
* ціну;
* суму;
* підсумок;
* реквізити сторін;
* місце для підписів.
 
== Email-нотифікації орендарям ==
 
Потрібно реалізувати надсилання email-повідомлень орендарям про виставлення рахунку.
 
Email має містити:
 
* тему повідомлення;
* назву орендаря;
* період нарахування;
* суму до оплати;
* вкладення рахунку або посилання на документ;
* за потреби — акт виконаних робіт.
 
У системі потрібно зберігати історію відправлення повідомлень.
 
== Оплати та заборгованість ==
 
Після фіксації оплати система повинна автоматично оновлювати статус рахунку.
 
Якщо рахунок оплачено повністю — статус змінюється на '''«Оплачений»'''.
 
Якщо оплачено частково — статус змінюється на '''«Частково оплачений»'''.
 
Якщо термін оплати минув, а оплати немає або вона неповна, рахунок має ставати '''«Простроченим»'''.
 
<div style="border:3px solid #b71c1c; background:#ffebee; padding:14px; margin:16px 0;">
'''Критично.''' Модуль оренди має показувати не лише виставлені рахунки, а й реальний стан взаєморозрахунків: хто оплатив, хто оплатив частково, хто має борг і за який період.
</div>
 
== Звітність ==
 
== Звіт «Реєстр виставлених рахунків» ==
 
Звіт має показувати рахунки за вибраний період.
 
У звіті потрібно відображати:
 
* список рахунків;
* період нарахування;
* орендаря;
* суму рахунку;
* суму оплати;
* борг;
* статус;
* підсумки за період.
 
== Звіт «Баланс орендарів» ==
 
Звіт має показувати фінансовий стан по кожному орендарю.
 
У звіті потрібно відображати:
 
* орендаря;
* суму нарахувань;
* суму оплат;
* поточний борг;
* прострочений борг;
* період;
* статус.
 
Боржників потрібно виділяти червоним кольором або іншим помітним способом.
 
== Звіт по показниках лічильників ==
 
Бажано передбачити окремий звіт по показниках лічильників.
 
Звіт має показувати:
 
* приміщення;
* лічильник;
* тип ресурсу;
* показник на початок;
* показник на кінець;
* різницю;
* тариф;
* суму;
* період.
 
== Логування змін ==
 
Потрібно логувати всі важливі зміни по рахунках, оплатах і нарахуваннях.
 
Журнал змін має фіксувати:
 
* хто створив документ;
* хто змінив документ;
* хто виставив рахунок;
* хто зафіксував оплату;
* хто змінив тариф або кількість;
* дату й час зміни;
* старе та нове значення, якщо це можливо.
 
== Технічні вимоги ==
 
{| class="wikitable" style="width:100%;"
! Параметр
! Опис
|-
| Бекенд
| PHP 8 або Python 3
|-
| Фреймворк
| K2 Core або Symfony Slim K2
|-
| База даних
| PostgreSQL або MySQL
|-
| Фронтенд
| HTML5, JavaScript
|-
| AJAX
| Fetch або Axios
|-
| UI-компоненти
| DataTables, Select2 для довідників
|-
| Друк
| Stimulsoft Reports або внутрішній PDF-генератор
|-
| Імпорт
| Excel-файл з показниками або нарахуваннями
|-
| Нотифікації
| Email API
|}


== Рекомендовані сутності бази даних ==
== Рекомендовані сутності бази даних ==
Для реалізації задачі доцільно передбачити такі сутності:


* орендарі;
* орендарі;
Рядок 373: Рядок 693:
* email-нотифікації;
* email-нотифікації;
* журнал змін.
* журнал змін.
== Практичне завдання ==
У межах атестації потрібно продемонструвати робочий сценарій.
Мінімальний сценарій:
# створити орендаря;
# створити договір оренди;
# створити орендовану площу;
# створити послуги й тарифи;
# створити або прив’язати лічильник;
# внести показники лічильника;
# сформувати нарахування за місяць;
# перевірити розрахунок оренди за м²;
# перевірити розрахунок комунальних послуг;
# створити рахунок на оплату з нарахування;
# відредагувати рядок рахунку через inline edit;
# зберегти чернетку;
# виставити рахунок;
# сформувати друковану форму рахунку;
# сформувати акт виконаних робіт;
# надіслати email-нотифікацію;
# зафіксувати оплату;
# перевірити зміну статусу рахунку;
# сформувати реєстр рахунків;
# сформувати баланс орендарів;
# показати боржників.
== Критерії оцінювання ==
{| class="wikitable" style="width:100%;"
! Критерій
! Бали
! Що перевіряється
|-
| Коректність розрахунків
| 20
| Оренда за м², комунальні послуги, лічильники, нормативи, підсумки
|-
| Зручність введення даних і UX
| 20
| Робота з рахунком, inline edit, зрозуміла таблиця, швидке введення показників
|-
| AJAX-інтерактив
| 20
| Додавання рядків, редагування, збереження, перерахунок без перезавантаження
|-
| Структура БД і якість коду
| 20
| Орендарі, договори, площі, послуги, тарифи, лічильники, рахунки, оплати, журнал змін
|-
| Друковані форми
| 10
| Рахунок і акт виконаних робіт у придатному для друку вигляді
|-
| Звіти
| 10
| Реєстр рахунків, баланс орендарів, борги, підсумки
|-
! Разом
! 100
! Максимальна оцінка
|}
== Шкала оцінювання ==
{| class="wikitable" style="width:100%;"
! Бали
! Рівень
! Опис
|-
| 90–100
| Відмінно
| Модуль працює повністю: нарахування, рахунки, акти, оплати, борги, Excel-імпорт і звіти реалізовані коректно
|-
| 75–89
| Добре
| Основна логіка працює, є незначні недоліки, які не руйнують бізнес-процес
|-
| 60–74
| Зараховано
| Базовий сценарій працює, але частина функцій реалізована неповно або потребує доопрацювання
|-
| 0–59
| Не зараховано
| Відсутня критична логіка: розрахунки, рахунки, оплати, борги або звіти
|}
== Критичні помилки ==
Критичними помилками вважаються ситуації, коли:
* оренда за м² розраховується неправильно;
* показники лічильників не зберігаються;
* неможливо сформувати нарахування за період;
* рахунок не пов’язаний із нарахуванням;
* оплата не змінює статус рахунку;
* неможливо побачити борг орендаря;
* рахунок або акт не друкується;
* звіт балансу орендарів не відповідає рахункам і оплатам;
* боржники не виділяються або не визначаються;
* Excel-імпорт дублює або спотворює показники.
<div style="border:3px solid #b71c1c; background:#ffebee; padding:14px; margin:16px 0;">
'''Умова складання.''' Завдання не може бути зараховане, якщо система не формує коректні нарахування за місяць і не показує заборгованість орендарів після виставлення рахунків та оплат.
</div>
== Очікуваний результат ==
У результаті виконання атестаційного завдання має бути створений модуль K2 ERP для обліку оренди та комунальних послуг у ТРЦ.
Модуль має підтримувати довідники орендарів, договорів, площ і послуг, журнал рахунків, форму рахунку з AJAX-інтерактивом, розрахунки за лічильниками і нормативами, друк документів, акти виконаних робіт, контроль оплат, боргів, звітність і масове завантаження показників з Excel.
== Примітка ==
Це прикладна задача, яку реально використовують власники ТРЦ, бізнес-центри, склади, готелі та інші об’єкти нерухомості.
Реалізація такого рішення в K2 ERP автоматизує щомісячну рутину та допомагає уникнути людських помилок у рахунках, актах, тарифах, показниках і боргах.
== Коротко ==
{| class="wikitable" style="width:100%;"
! Питання
! Відповідь
|-
| Що потрібно створити?
| Модуль обліку оренди та комунальних послуг
|-
| Для кого модуль?
| Для ТРЦ, бізнес-центрів, складів, готелів та інших об’єктів нерухомості
|-
| Що є основою розрахунків?
| Договори, площі, тарифи, лічильники, нормативи й нарахування
|-
| Які документи потрібні?
| Рахунок на оплату та акт виконаних робіт
|-
| Які звіти потрібні?
| Реєстр рахунків, баланс орендарів, звіт по показниках лічильників
|-
| Що має підтримувати система?
| AJAX, inline edit, друк, email, Excel-імпорт, логування, статуси оплат
|-
| Що є критичною вимогою?
| Коректні нарахування за місяць і контроль заборгованості орендарів
|}


== Див. також ==
== Див. також ==


* [[K2 Cloud ERP|K2 ERP]]
* [[K2 Cloud ERP|K2 ERP]]
* [[K2 ERP]]
* [[Атестаційні завдання K2 ERP]]
* [[Атестаційні завдання K2 ERP]]
* [[Оренда]]
* [[Оренда]]
* [[Комунальні послуги]]
* [[Комунальні послуги]]
* [[ТРЦ]]
* [[ТРЦ]]
* [[Бізнес-центр]]
* [[Рахунок на оплату]]
* [[Рахунок на оплату]]
* [[Акт виконаних робіт]]
* [[Акт виконаних робіт]]
* [[Баланс орендарів]]
* [[Баланс орендарів]]
* [[Показники лічильників]]
* [[Excel-імпорт]]
[[Категорія:K2 ERP]]
[[Категорія:Атестаційні завдання K2]]
[[Категорія:Оренда]]
[[Категорія:Комунальні послуги]]
[[Категорія:ТРЦ]]
[[Категорія:Рахунки на оплату]]
[[Категорія:Акти виконаних робіт]]
[[Категорія:Корпоративна Wiki]]