Атестаційні завдання K2 ERP/Поштова служба: відмінності між версіями
R (обговорення | внесок) Первинна публікація |
R (обговорення | внесок) Немає опису редагування |
||
| Рядок 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> | |||
== Загальний бізнес-контекст == | == Загальний бізнес-контекст == | ||
Компанія працює як мультисервісний оператор і надає два типи послуг. | |||
Поштовий напрям: | |||
* | * доставка посилок; | ||
* | * доставка документів; | ||
** | * міжнародні відправлення; | ||
* | * кур’єрська доставка; | ||
* | * доставка між відділеннями; | ||
* адресна доставка. | |||
Хостинговий напрям: | |||
* shared hosting; | |||
* VPS; | |||
* VDS; | |||
* dedicated server; | |||
* домени; | |||
* DNS; | |||
* SSL-сертифікати; | |||
* резервне копіювання; | |||
* технічна підтримка. | |||
Компанії потрібно: | |||
* | * вести єдину базу клієнтів; | ||
* | * бачити всі послуги клієнта в одному кабінеті; | ||
* | * вести окремі операційні процеси для доставки і хостингу; | ||
* мати спільний фінансовий модуль; | |||
* контролювати статуси замовлень і послуг; | |||
* автоматично формувати рахунки; | |||
* надсилати повідомлення клієнтам; | |||
* аналізувати доходи по кожному напрямку. | |||
==== | == Основний бізнес-процес == | ||
Типовий процес для поштової доставки: | |||
# клієнт створюється або обирається із бази; | |||
# оформлюється відправлення; | |||
# вказується відправник, одержувач, адреса, вага і тип доставки; | |||
# система розраховує вартість; | |||
# створюється рахунок або оплата на місці; | |||
# відправлення отримує статус '''«Прийнято»'''; | |||
# далі статуси змінюються: '''«Відправлено»''', '''«У транзиті»''', '''«На доставці»''', '''«Доставлено»'''; | |||
# клієнт отримує сповіщення; | |||
# система формує звіти по доставках. | |||
Типовий процес для хостингу: | |||
# клієнт створюється або обирається із бази; | |||
# обирається тариф хостингу; | |||
# створюється хостингова послуга; | |||
# послуга прив’язується до сервера або домену; | |||
# система формує рахунок; | |||
# клієнт оплачує; | |||
# послуга переходить у статус '''«Активна»'''; | |||
# перед завершенням періоду система надсилає нагадування; | |||
# після оплати послуга продовжується; | |||
# система формує звіти по хостингових послугах. | |||
== Основні | == Основні об’єкти модуля == | ||
== | {| class="wikitable" style="width:100%;" | ||
! Об’єкт | |||
! Призначення | |||
|- | |||
| Клієнти | |||
| Єдина база фізичних і юридичних осіб | |||
|- | |||
| Пункти обслуговування | |||
| Відділення поштової служби | |||
|- | |||
| Кур’єри | |||
| Співробітники, які доставляють відправлення | |||
|- | |||
| Відправлення | |||
| Посилки, документи, вантажі | |||
|- | |||
| Маршрути | |||
| Напрями доставки | |||
|- | |||
| Тарифи доставки | |||
| Правила розрахунку вартості доставки | |||
|- | |||
| Хостингові тарифи | |||
| Пакети послуг хостингу | |||
|- | |||
| Сервери | |||
| Інфраструктура для хостингових послуг | |||
|- | |||
| Домени | |||
| Доменні імена клієнтів | |||
|- | |||
| Хостингові послуги | |||
| Активні або завершені послуги клієнтів | |||
|- | |||
| Рахунки | |||
| Документи на оплату доставки або хостингу | |||
|- | |||
| Оплати | |||
| Фактичні платежі клієнтів | |||
|- | |||
| Сповіщення | |||
| Повідомлення про статуси, рахунки, продовження | |||
|- | |||
| Кабінет клієнта | |||
| Перегляд доставок, хостингу, рахунків і оплат | |||
|- | |||
| Звіти | |||
| Аналітика по доставці, хостингу і фінансах | |||
|} | |||
==== | == Спільна база «Клієнти» == | ||
Клієнт може користуватися однією або кількома послугами. | |||
==== | == Типи клієнтів == | ||
* | * фізична особа; | ||
* | * ФОП; | ||
* | * юридична особа; | ||
* корпоративний клієнт; | |||
* партнер; | |||
* внутрішній клієнт. | |||
=== | == Поля клієнта == | ||
{| class="wikitable" style="width:100%;" | |||
! Поле | |||
! Опис | |||
|- | |||
| ПІБ або назва компанії | |||
| Назва клієнта | |||
|- | |||
| Тип клієнта | |||
| Фізична особа, ФОП, юридична особа | |||
|- | |||
| Email | |||
| Основний контакт і логін | |||
|- | |||
| Телефон | |||
| Контактний номер | |||
|- | |||
| Контактна особа | |||
| Для юридичних осіб | |||
|- | |||
| Адреса | |||
| Адреса клієнта | |||
|- | |||
| Дата реєстрації | |||
| Коли клієнт створений | |||
|- | |||
| Статус | |||
| Активний, заблокований, архівний | |||
|- | |||
| Коментар | |||
| Внутрішня примітка | |||
|} | |||
== | == Послуги клієнта == | ||
У картці клієнта потрібно бачити: | |||
* активні поштові відправлення; | |||
* історію доставок; | |||
* активні хостингові послуги; | |||
* домени; | |||
* рахунки; | |||
* оплати; | |||
* борги; | |||
* сповіщення; | |||
* тікети або звернення, якщо реалізовано. | |||
=== | == Поштова частина == | ||
== Довідник «Пункти обслуговування» == | |||
Пункти обслуговування — це відділення, де приймаються і видаються відправлення. | |||
* | == Поля пункту обслуговування == | ||
* | |||
** | {| 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 мають працювати: | |||
* пошук клієнтів; | |||
* створення відправлення; | |||
* розрахунок вартості доставки; | |||
* зміна статусу відправлення; | |||
* призначення кур’єра; | |||
* створення хостингової послуги; | |||
* прив’язка сервера; | |||
* створення рахунку; | |||
* фіксація оплати; | |||
* продовження хостинг-послуги; | |||
* фільтрація відправлень; | |||
* фільтрація хостинг-послуг; | |||
* фільтрація рахунків; | |||
* оновлення особистого кабінету; | |||
* формування звітів. | |||
== Логування змін == | |||
Модуль повинен фіксувати ключові дії. | |||
Журнал змін має зберігати: | |||
* хто створив клієнта; | |||
* хто створив відправлення; | |||
* хто змінив статус відправлення; | |||
* хто призначив кур’єра; | |||
* хто створив тариф доставки; | |||
* хто створив хостинговий тариф; | |||
* хто створив хостингову послугу; | |||
* хто змінив дату завершення послуги; | |||
* хто створив домен; | |||
* хто створив рахунок; | |||
* хто зафіксував оплату; | |||
* хто продовжив послугу; | |||
* хто надіслав сповіщення; | |||
* дату й час дії; | |||
* старе та нове значення, якщо це можливо. | |||
== Права доступу == | |||
Модуль має підтримувати рольову модель. | |||
{| 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 для пошуку клієнтів, тарифів, кур’єрів і серверів | |||
|- | |- | ||
| | | Календар | ||
| | | FullCalendar для планування кур’єрів або технічних робіт, опціонально | ||
|- | |- | ||
| | | Друк | ||
| | | PDF-транспортні накладні, рахунки, акти, звіти | ||
|- | |- | ||
| | | Експорт | ||
| | | Excel або PDF для фінансових і операційних звітів | ||
|- | |- | ||
| | | Сповіщення | ||
| | | Email або внутрішні повідомлення | ||
|- | |- | ||
| | | Оплати | ||
| | | Готівка, картка, 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 | ||
| | | Відмінно | ||
| Модуль повністю працює: клієнти, доставки, хостинг, домени, рахунки, оплати, статуси, кабінет клієнта і звіти реалізовані коректно | |||
|- | |- | ||
| | | 75–89 | ||
| | | Добре | ||
| Основна логіка працює, є незначні недоліки, які не руйнують роботу мультисервісної компанії | |||
|- | |- | ||
| | | 60–74 | ||
| | | Зараховано | ||
| Базовий сценарій працює, але частина функцій реалізована неповно або потребує доопрацювання | |||
|- | |- | ||
| | | 0–59 | ||
| | | Не зараховано | ||
| Відсутня критична логіка: клієнти, відправлення, хостингові послуги, рахунки, оплати, статуси або звіти | |||
|} | |} | ||
== Критичні помилки == | |||
Критичними помилками вважаються ситуації, коли: | |||
* неможливо створити клієнта; | |||
* неможливо створити відправлення; | |||
* відправлення не має статусу; | |||
* відправлення не має трекінгу; | |||
* неможливо створити хостингову послугу; | |||
* хостингова послуга не має дати початку або завершення; | |||
* рахунок не прив’язується до клієнта; | |||
* рахунок не прив’язується до доставки або хостинг-послуги; | |||
* часткова оплата не змінює борг; | |||
* повна оплата не змінює статус рахунку; | |||
* продовження хостингової послуги не змінює дату завершення; | |||
* клієнт у кабінеті бачить чужі послуги або рахунки; | |||
* звіти не відповідають фактичним доставкам, послугам і оплатам; | |||
* зміни статусів, рахунків і оплат не логуються. | |||
<div style="border:3px solid #b71c1c; background:#ffebee; padding:14px; margin:16px 0;"> | |||
'''Умова складання.''' Завдання не може бути зараховане, якщо система не дозволяє пройти два базові цикли: доставка → рахунок → оплата → статус → трекінг → звіт та хостинг → рахунок → оплата → активація → продовження → звіт. | |||
</div> | |||
== Очікуваний результат == | |||
У результаті виконання атестаційного завдання має бути створений мультисервісний модуль у K2 ERP для компанії, що поєднує поштову доставку і хостингові послуги. | |||
Модуль має підтримувати єдину базу клієнтів, відправлення, кур’єрів, пункти обслуговування, тарифи доставки, трекінг, хостингові тарифи, сервери, домени, хостингові послуги, рахунки, оплати, продовження, сповіщення, особистий кабінет клієнта, адмін-панель, звіти, AJAX-інтерактив і журнал змін. | |||
== Примітка == | == Примітка == | ||
* | Єдина ERP-система для поштової служби та хостингової компанії дозволяє управляти кількома напрямками бізнесу через один інтерфейс. | ||
* | |||
* | Це знижує витрати на облік, об’єднує клієнтську базу, спрощує фінанси, підвищує якість сервісу і дозволяє бачити прибутковість кожного напрямку окремо. | ||
== Коротко == | |||
{| class="wikitable" style="width:100%;" | |||
! Питання | |||
! Відповідь | |||
|- | |||
| Що потрібно створити? | |||
| Мультисервісний модуль: поштова доставка + хостинг | |||
|- | |||
| Що є спільним? | |||
| Клієнти, рахунки, оплати, кабінет клієнта, фінансові звіти | |||
|- | |||
| Що окреме для пошти? | |||
| Відправлення, кур’єри, відділення, тарифи доставки, трекінг | |||
|- | |||
| Що окреме для хостингу? | |||
| Тарифи, сервери, домени, хостинг-послуги, продовження | |||
|- | |||
| Що потрібно контролювати? | |||
| Статуси доставок, строки хостинг-послуг, рахунки, оплати, борги | |||
|- | |||
| Які документи потрібні? | |||
| Транспортні накладні, рахунки, акти, PDF-звіти | |||
|- | |||
| Які звіти потрібні? | |||
| Доставки, кур’єри, хостинг, домени, борги, загальний фінансовий звіт | |||
|- | |||
| Що є критичною вимогою? | |||
| Один клієнт має бачити всі свої доставки, хостингові послуги, рахунки й оплати в одному кабінеті | |||
|} | |||
== Див. також == | |||
* [[K2 Cloud ERP|K2 ERP]] | |||
* [[K2 ERP]] | |||
* [[Атестаційні завдання K2 ERP]] | |||
* [[Хостинг]] | |||
* [[Датацентр, інтернет-провайдер]] | |||
* [[Реєстратор доменів]] | |||
* [[CRM]] | |||
* [[Каса]] | |||
* [[Рахунок на оплату]] | |||
* [[Особистий кабінет]] | |||
* [[Логістика]] | |||
* [[Кур'єрська доставка]] | |||
* [[Трекінг відправлень]] | |||
* [[AJAX]] | |||
[[Категорія:K2 ERP]] | |||
[[Категорія:Атестаційні завдання K2]] | |||
[[Категорія:Поштова служба]] | |||
[[Категорія:Хостинг]] | |||
[[Категорія:Логістика]] | |||
[[Категорія:Білінг]] | |||
[[Категорія:CRM]] | |||
[[Категорія:Корпоративна Wiki]] | |||