Атестаційні завдання K2 ERP/Поштова служба: відмінності між версіями

Первинна публікація
 
Немає опису редагування
 
Рядок 1: Рядок 1:
{{DISPLAYTITLE:Атестаційні завдання K2 ERP/Поштова служба}}


= Модуль обліку клієнтів, послуг, замовлень, рахунків і статусів для мультисервісної компанії: Поштова доставка + Хостинг =
'''Атестаційне завдання K2 ERP — Поштова служба + Хостинг''' — це практична задача для перевірки навичок розробника або впроваджувача [[K2 ERP]] у створенні мультисервісного модуля для компанії, яка одночасно надає послуги поштової доставки та хостингові послуги.
 
Модуль має забезпечувати спільну базу клієнтів, єдину фінансову систему, окремі журнали для відправлень і хостингових послуг, контроль статусів, оплат, продовжень, сповіщень, особистий кабінет клієнта, адмін-панель і звіти по кожному напрямку бізнесу.
 
<div style="border:3px solid #1565c0; background:#e3f2fd; padding:14px; margin:16px 0;">
'''Коротко.''' Потрібно реалізувати мультисервісну ERP-систему: клієнти, поштові відправлення, кур’єри, відділення, тарифи доставки, хостингові тарифи, сервери, домени, хостинг-послуги, рахунки, оплати, статуси, продовження, сповіщення, кабінет клієнта, адмін-панель і звіти.
</div>
 
__TOC__
 
== Назва завдання ==
 
'''Модуль обліку клієнтів, послуг, замовлень, рахунків і статусів для мультисервісної компанії: Поштова доставка + Хостинг'''.
 
== Мета завдання ==
 
Мета завдання — створити в K2 ERP модуль для компанії, яка має два різні напрями діяльності:
 
* поштова доставка;
* хостингові та доменні послуги.
 
Система повинна дозволяти:
 
* вести єдину базу клієнтів;
* вести поштові відправлення;
* вести пункти обслуговування;
* вести кур’єрів;
* вести маршрути доставки;
* контролювати статуси відправлень;
* формувати транспортні накладні;
* вести хостингові тарифні плани;
* вести сервери;
* вести домени;
* вести хостингові послуги клієнтів;
* контролювати дати завершення хостинг-послуг;
* формувати рахунки на доставку;
* формувати рахунки на хостинг;
* приймати оплати;
* бачити борги клієнтів;
* надсилати сповіщення;
* вести особистий кабінет клієнта;
* формувати окремі звіти по доставці;
* формувати окремі звіти по хостингу;
* формувати загальний фінансовий звіт.
 
<div style="border:3px solid #2e7d32; background:#e8f5e9; padding:14px; margin:16px 0;">
'''Головний принцип.''' Клієнт має бути один у системі, навіть якщо він одночасно користується доставкою, хостингом, доменами та іншими послугами. Фінанси, рахунки й оплати мають обліковуватися централізовано.
</div>


== Загальний бізнес-контекст ==
== Загальний бізнес-контекст ==
Компанія:


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


Необхідно:
Поштовий напрям:


* об'єднати облік обох типів послуг;
* доставка посилок;
* вести окремі журнали для:
* доставка документів;
** відправлень;
* міжнародні відправлення;
** хостингових послуг;
* кур’єрська доставка;
* організувати спільну базу клієнтів і фінансів.
* доставка між відділеннями;
* адресна доставка.


== Основні завдання для поштової частини ==
Хостинговий напрям:


=== 1. Структура для поштової служби ===
* shared hosting;
* VPS;
* VDS;
* dedicated server;
* домени;
* DNS;
* SSL-сертифікати;
* резервне копіювання;
* технічна підтримка.


==== Довідник «Пункти обслуговування» ====
Компанії потрібно:
Поля довідника:


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


==== Довідник «Кур'єри» ====
== Основний бізнес-процес ==
Поля довідника:


* ПІБ;
Типовий процес для поштової доставки:
* телефон;
* статус:
** активний;
** відпустка.


=== 2. База «Відправлення» ===
# клієнт створюється або обирається із бази;
# оформлюється відправлення;
# вказується відправник, одержувач, адреса, вага і тип доставки;
# система розраховує вартість;
# створюється рахунок або оплата на місці;
# відправлення отримує статус '''«Прийнято»''';
# далі статуси змінюються: '''«Відправлено»''', '''«У транзиті»''', '''«На доставці»''', '''«Доставлено»''';
# клієнт отримує сповіщення;
# система формує звіти по доставках.


==== Колонки бази ====
Типовий процес для хостингу:


* номер відправлення;
# клієнт створюється або обирається із бази;
* відправник;
# обирається тариф хостингу;
* одержувач;
# створюється хостингова послуга;
* адреса доставки;
# послуга прив’язується до сервера або домену;
* тип відправлення:
# система формує рахунок;
** посилка;
# клієнт оплачує;
** документи;
# послуга переходить у статус '''«Активна»''';
* вага;
# перед завершенням періоду система надсилає нагадування;
* вартість доставки;
# після оплати послуга продовжується;
* статус:
# система формує звіти по хостингових послугах.
** прийнято;
** відправлено;
** у транзиті;
** доставлено;
* кур'єр;
* термін доставки.


== Основні завдання для хостингової частини ==
== Основні об’єкти модуля ==


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


==== Довідник «Тарифні плани» ====
== Спільна база «Клієнти» ==
Поля довідника:


* назва тарифу;
Клієнт може користуватися однією або кількома послугами.
* тип:
** хостинг;
** VPS;
** оренда сервера;
** домен;
* вартість на місяць / рік.


==== Довідник «Сервери» ====
== Типи клієнтів ==
Поля довідника:


* назва;
* фізична особа;
* тип сервера;
* ФОП;
* IP-адреси.
* юридична особа;
* корпоративний клієнт;
* партнер;
* внутрішній клієнт.


=== 4. База «Хостингові послуги» ===
== Поля клієнта ==
 
{| class="wikitable" style="width:100%;"
! Поле
! Опис
|-
| ПІБ або назва компанії
| Назва клієнта
|-
| Тип клієнта
| Фізична особа, ФОП, юридична особа
|-
| Email
| Основний контакт і логін
|-
| Телефон
| Контактний номер
|-
| Контактна особа
| Для юридичних осіб
|-
| Адреса
| Адреса клієнта
|-
| Дата реєстрації
| Коли клієнт створений
|-
| Статус
| Активний, заблокований, архівний
|-
| Коментар
| Внутрішня примітка
|}


==== Колонки бази ====
== Послуги клієнта ==


* клієнт;
У картці клієнта потрібно бачити:
* тип послуги:
** хостинг;
** VPS;
** домен;
* тариф;
* сервер — якщо потрібно;
* дата початку;
* дата завершення;
* статус:
** активна;
** припинена;
** очікує оплату.


== Спільна база ==
* активні поштові відправлення;
* історію доставок;
* активні хостингові послуги;
* домени;
* рахунки;
* оплати;
* борги;
* сповіщення;
* тікети або звернення, якщо реалізовано.


=== 5. Клієнти ===
== Поштова частина ==
Поля клієнта:


* ПІБ або назва компанії;
== Довідник «Пункти обслуговування» ==
* email;
* телефон;
* тип:
** фізична особа;
** юридична особа;
* можливість мати одночасно кілька послуг:
** доставка;
** хостинг.


=== 6. Оплата і рахунки ===
Пункти обслуговування — це відділення, де приймаються і видаються відправлення.
Функціонал:


* генерація рахунків на доставку та хостингові послуги;
== Поля пункту обслуговування ==
* статуси платежів:
 
** оплачено;
{| class="wikitable" style="width:100%;"
** очікує оплату;
! Поле
** прострочено;
! Опис
* оплата через:
|-
** готівку;
| Назва відділення
** банківські карти;
| Наприклад: Відділення №1
** електронні системи;
|-
* автоматичне створення рахунків:
| Адреса
** при продовженні послуг;
| Фактична адреса
** при новому замовленні.
|-
| Телефон
| Контактний номер
|-
| Місто
| Населений пункт
|-
| Графік роботи
| Дні та години роботи
|-
| Відповідальний
| Керівник або оператор відділення
|-
| Статус
| Активне, тимчасово закрите, архівне
|}
 
== Довідник «Кур’єри» ==
 
Кур’єри виконують доставку відправлень.
 
== Поля кур’єра ==
 
{| class="wikitable" style="width:100%;"
! Поле
! Опис
|-
| ПІБ
| Повне ім’я кур’єра
|-
| Телефон
| Контактний номер
|-
| Email
| Опціонально
|-
| Місто / зона доставки
| Територія роботи
|-
| Тип транспорту
| Пішки, авто, мото, велосипед
|-
| Статус
| Активний, відпустка, лікарняний, звільнений
|}
 
== Довідник «Тарифи доставки» ==
 
Тарифи потрібні для розрахунку вартості доставки.
 
== Варіанти тарифікації ==
 
* за вагою;
* за габаритами;
* за містом;
* за зоною доставки;
* за країною;
* за терміновістю;
* фіксована ціна;
* індивідуальна ціна для корпоративного клієнта.
 
== Поля тарифу доставки ==
 
{| 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%;"
! Поле
! Опис
|-
| Відправлення
| До якого відправлення запис
|-
| Дата і час
| Коли змінився статус
|-
| Статус
| Новий статус
|-
| Локація
| Відділення, місто або зона
|-
| Користувач
| Хто змінив статус
|-
| Коментар
| Додаткова інформація
|}
 
== Хостингова частина ==
 
== Довідник «Хостингові тарифні плани» ==
 
Тариф описує тип хостингової послуги, характеристики та вартість.
 
== Типи хостингових послуг ==
 
* shared hosting;
* VPS;
* VDS;
* dedicated server;
* domain;
* DNS;
* SSL;
* backup;
* email hosting;
* administration.
 
== Поля тарифного плану ==
 
{| class="wikitable" style="width:100%;"
! Поле
! Опис
|-
| Назва тарифу
| Наприклад: Hosting Start, VPS 4GB
|-
| Тип послуги
| Хостинг, VPS, домен, SSL тощо
|-
| Вартість на місяць
| Ціна за місяць
|-
| Вартість на рік
| Ціна за рік
|-
| Дисковий простір
| Наприклад: 10 GB
|-
| RAM
| Для VPS або серверів
|-
| CPU
| Для VPS або серверів
|-
| Трафік
| Ліміт або безліміт
|-
| Статус
| Активний, прихований, архівний
|}
 
== Довідник «Сервери» ==
 
Сервери використовуються для розміщення хостингових послуг.
 
== Поля сервера ==
 
{| class="wikitable" style="width:100%;"
! Поле
! Опис
|-
| Назва сервера
| Hostname або внутрішня назва
|-
| Тип сервера
| Shared, VPS-node, Dedicated, DNS, Mail
|-
| IP-адреса
| Основна IP
|-
| Пул IP
| Доступні IP-адреси
|-
| Локація
| Датацентр або місто
|-
| Статус
| Активний, на обслуговуванні, виведений
|}
 
== База «Хостингові послуги» ==
 
Хостингова послуга — це активна або завершена послуга клієнта.
 
== Колонки бази хостингових послуг ==
 
{| class="wikitable" style="width:100%;"
! Колонка
! Опис
|-
| Клієнт
| Власник послуги
|-
| Тип послуги
| Хостинг, VPS, домен, SSL
|-
| Тариф
| Обраний тарифний план
|-
| Сервер
| Де розміщена послуга
|-
| Домен
| Якщо прив’язано
|-
| Дата початку
| Початок дії
|-
| Дата завершення
| Кінець оплаченого періоду
|-
| Статус
| Активна, припинена, очікує оплату, прострочена
|}
 
== Статуси хостингової послуги ==
 
{| class="wikitable" style="width:100%;"
! Статус
! Значення
|-
| Нова
| Послугу створено
|-
| Очікує оплату
| Рахунок виставлено, оплати немає
|-
| Активна
| Послуга оплачена і працює
|-
| Завершується
| До кінця періоду залишилось мало часу
|-
| Прострочена
| Період завершився, оплати немає
|-
| Призупинена
| Послугу тимчасово зупинено
|-
| Припинена
| Послуга більше не надається
|}
 
== База «Домени» ==
 
Домени можуть бути окремою послугою клієнта або прив’язкою до хостингу.
 
== Поля домену ==
 
{| class="wikitable" style="width:100%;"
! Поле
! Опис
|-
| Доменне ім’я
| Наприклад: example.com
|-
| Клієнт
| Власник домену
|-
| Реєстратор
| Де зареєстровано
|-
| Дата реєстрації
| Коли зареєстровано
|-
| Дата завершення
| Коли завершується дія
|-
| DNS-сервери
| NS-записи
|-
| Статус
| Активний, завершується, протермінований, видалений
|}
 
== Спільний фінансовий модуль ==
 
Фінансовий модуль має працювати для обох напрямків.
 
== Рахунки можуть створюватися для ==
 
* поштової доставки;
* додаткового страхування відправлення;
* міжнародної доставки;
* хостингової послуги;
* продовження VPS;
* продовження домену;
* SSL-сертифіката;
* адміністрування;
* інших послуг.
 
== Поля рахунку ==
 
{| class="wikitable" style="width:100%;"
! Поле
! Опис
|-
| Номер рахунку
| Унікальний номер
|-
| Клієнт
| Кому виставлено рахунок
|-
| Напрям послуги
| Доставка або хостинг
|-
| Об’єкт оплати
| Відправлення, хостингова послуга, домен
|-
| Дата рахунку
| Коли сформовано
|-
| Сума
| Сума до оплати
|-
| Оплачено
| Скільки оплачено
|-
| Борг
| Залишок
|-
| Статус
| Новий, очікує оплату, частково оплачено, оплачено, прострочено, скасовано
|}
 
== Способи оплати ==
 
* готівка;
* банківська картка;
* банківський переказ;
* LiqPay;
* Stripe;
* PayPal;
* внутрішній баланс клієнта;
* ручна оплата оператором.
 
== Поля оплати ==
 
{| class="wikitable" style="width:100%;"
! Поле
! Опис
|-
| Клієнт
| Хто оплатив
|-
| Рахунок
| До якого рахунку прив’язана оплата
|-
| Дата оплати
| Коли отримано оплату
|-
| Сума
| Розмір платежу
|-
| Спосіб оплати
| Готівка, картка, LiqPay, Stripe, PayPal тощо
|-
| Статус
| Очікує, успішно, помилка, повернення
|-
| Коментар
| Примітка оператора
|}
 
== Особистий кабінет клієнта ==
 
Клієнт повинен бачити всі свої послуги в одному кабінеті.
 
== У кабінеті клієнт бачить ==
 
* активні відправлення;
* історію доставок;
* трекінг відправлень;
* активні хостингові послуги;
* домени;
* дати завершення послуг;
* рахунки;
* оплати;
* борги;
* можливість завантажити PDF-рахунок;
* контактні дані;
* повідомлення;
* звернення до підтримки, якщо реалізовано.
 
== Панель адміністратора ==
 
Адмін-панель має дозволяти керувати обома напрямками.
 
== В адмін-панелі потрібно бачити ==
 
* клієнтів;
* відправлення;
* кур’єрів;
* відділення;
* тарифи доставки;
* хостингові тарифи;
* сервери;
* домени;
* хостингові послуги;
* рахунки;
* оплати;
* прострочені послуги;
* відправлення з проблемами;
* звіти.
 
== Сповіщення ==
 
Система має підтримувати сповіщення клієнтів і операторів.
 
== Події для поштових сповіщень ==
 
* відправлення прийнято;
* відправлення у транзиті;
* відправлення прибуло у відділення;
* відправлення передано кур’єру;
* відправлення доставлено;
* доставка не відбулася;
* потрібна додаткова оплата;
* відправлення повертається.
 
== Події для хостингових сповіщень ==
 
* створено хостингову послугу;
* виставлено рахунок;
* рахунок оплачено;
* послуга завершується через 30 днів;
* послуга завершується через 7 днів;
* послуга прострочена;
* домен завершується;
* домен продовжено;
* послугу призупинено.


== Звіти ==
== Звіти ==


=== Звіт по доставках ===
== Звіт «Доставки за період» ==
 
У звіті потрібно відображати:


* кількість відправлень;
* кількість відправлень;
* сума доходу по доставці.
* кількість доставлених;
* кількість недоставлених;
* суму доходу;
* середню вартість доставки;
* кількість повернень.
 
== Звіт «Робота кур’єрів» ==
 
У звіті потрібно відображати:
 
* кур’єра;
* кількість доставок;
* кількість успішних доставок;
* кількість невдалих доставок;
* суму доставок;
* середній час доставки, якщо реалізовано.
 
== Звіт «Хостингові послуги» ==


=== Звіт по хостингових послугах ===
У звіті потрібно відображати:


* кількість активних послуг;
* кількість активних послуг;
* сума доходу по хостингу.
* кількість прострочених послуг;
* кількість послуг, що завершуються;
* суму доходу;
* кількість послуг по тарифах.
 
== Звіт «Домени, що завершуються» ==
 
У звіті потрібно відображати:
 
* домен;
* клієнта;
* дату завершення;
* кількість днів до завершення;
* статус рахунку;
* статус домену.
 
== Загальний фінансовий звіт ==
 
У звіті потрібно відображати:
 
* доходи від доставки;
* доходи від хостингу;
* загальний дохід;
* оплачені рахунки;
* неоплачені рахунки;
* борги клієнтів;
* частку кожного напрямку в доході.
 
== Звіт «Борги клієнтів» ==
 
У звіті потрібно відображати:
 
* клієнта;
* напрям послуги;
* рахунок;
* суму рахунку;
* оплачено;
* борг;
* кількість днів прострочення.
 
== AJAX-інтерактив ==
 
Інтерфейс має працювати швидко й без перезавантаження сторінок.
 
Через AJAX мають працювати:
 
* пошук клієнтів;
* створення відправлення;
* розрахунок вартості доставки;
* зміна статусу відправлення;
* призначення кур’єра;
* створення хостингової послуги;
* прив’язка сервера;
* створення рахунку;
* фіксація оплати;
* продовження хостинг-послуги;
* фільтрація відправлень;
* фільтрація хостинг-послуг;
* фільтрація рахунків;
* оновлення особистого кабінету;
* формування звітів.
 
== Логування змін ==
 
Модуль повинен фіксувати ключові дії.
 
Журнал змін має зберігати:


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


* доходи за період:
== Права доступу ==
** окремо по доставці;
** окремо по хостингу.


== Додаткові функції ==
Модуль має підтримувати рольову модель.


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


== Технічні вимоги ==
== Технічні вимоги ==
{| class="wikitable"
 
!Параметр
{| class="wikitable" style="width:100%;"
!Опис
! Параметр
! Опис
|-
| Бекенд
| K2 Cloud ERP на Python або PHP
|-
| База даних
| PostgreSQL або MySQL
|-
| Фронтенд
| HTML5, JavaScript
|-
| AJAX
| Fetch API або Axios
|-
| UI-компоненти
| DataTables для клієнтів, відправлень, хостинг-послуг, рахунків; Select2 для пошуку клієнтів, тарифів, кур’єрів і серверів
|-
|-
|Бекенд
| Календар
|K2 Cloud ERP на Python або PHP
| FullCalendar для планування кур’єрів або технічних робіт, опціонально
|-
|-
|БД
| Друк
|PostgreSQL або MySQL
| PDF-транспортні накладні, рахунки, акти, звіти
|-
|-
|Фронтенд
| Експорт
|HTML5, JavaScript, AJAX, Fetch API або Axios
| Excel або PDF для фінансових і операційних звітів
|-
|-
|UI-компоненти
| Сповіщення
|DataTables, Select2, FullCalendar
| Email або внутрішні повідомлення
|-
|-
|Друк
| Оплати
|Генерація транспортних накладних, рахунків у PDF
| Готівка, картка, LiqPay, Stripe, PayPal або ручна оплата
|}
|}


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


== Примітка ==
== Примітка ==
Єдина ERP-система для поштової служби та хостингової компанії дозволяє управляти кількома напрямками бізнесу через один зручний інтерфейс, об'єднуючи:


* клієнтів;
Єдина ERP-система для поштової служби та хостингової компанії дозволяє управляти кількома напрямками бізнесу через один інтерфейс.
* рахунки;
 
* фінанси.
Це знижує витрати на облік, об’єднує клієнтську базу, спрощує фінанси, підвищує якість сервісу і дозволяє бачити прибутковість кожного напрямку окремо.
 
== Коротко ==
 
{| class="wikitable" style="width:100%;"
! Питання
! Відповідь
|-
| Що потрібно створити?
| Мультисервісний модуль: поштова доставка + хостинг
|-
| Що є спільним?
| Клієнти, рахунки, оплати, кабінет клієнта, фінансові звіти
|-
| Що окреме для пошти?
| Відправлення, кур’єри, відділення, тарифи доставки, трекінг
|-
| Що окреме для хостингу?
| Тарифи, сервери, домени, хостинг-послуги, продовження
|-
| Що потрібно контролювати?
| Статуси доставок, строки хостинг-послуг, рахунки, оплати, борги
|-
| Які документи потрібні?
| Транспортні накладні, рахунки, акти, PDF-звіти
|-
| Які звіти потрібні?
| Доставки, кур’єри, хостинг, домени, борги, загальний фінансовий звіт
|-
| Що є критичною вимогою?
| Один клієнт має бачити всі свої доставки, хостингові послуги, рахунки й оплати в одному кабінеті
|}
 
== Див. також ==
 
* [[K2 Cloud ERP|K2 ERP]]
* [[K2 ERP]]
* [[Атестаційні завдання K2 ERP]]
* [[Хостинг]]
* [[Датацентр, інтернет-провайдер]]
* [[Реєстратор доменів]]
* [[CRM]]
* [[Каса]]
* [[Рахунок на оплату]]
* [[Особистий кабінет]]
* [[Логістика]]
* [[Кур'єрська доставка]]
* [[Трекінг відправлень]]
* [[AJAX]]


Це знижує витрати на облік і підвищує ефективність обслуговування.
[[Категорія:K2 ERP]]
[[Категорія:Атестаційні завдання K2]]
[[Категорія:Поштова служба]]
[[Категорія:Хостинг]]
[[Категорія:Логістика]]
[[Категорія:Білінг]]
[[Категорія:CRM]]
[[Категорія:Корпоративна Wiki]]