Атестаційні завдання K2 ERP/Мережа аптек
Атестаційне завдання K2 ERP — Мережа аптек — це практична задача для перевірки навичок розробника або впроваджувача K2 ERP у створенні модуля обліку аптечної мережі: аптек, препаратів, партій, серій, постачань, продажів, рецептів, залишків, термінів придатності, сертифікатів, переміщень, списань, касових операцій і звітності.
Модуль має забезпечувати централізований облік товарів у кількох аптеках, контроль залишків по кожній точці, облік партій і серій препаратів, перевірку рецептурності, контроль термінів придатності, роботу з постачальниками, продаж через касу, резервування товарів, списання прострочених препаратів і формування звітів.
Коротко. Потрібно реалізувати модуль аптечної мережі: аптеки, склади, препарати, МНН, форми випуску, серії, партії, постачальники, постачання, продажі, рецепти, сертифікати, залишки, терміни придатності, списання, переміщення, каса, звіти й AJAX-оновлення.
Назва завдання
Модуль обліку товарів, продажів, рецептів і залишків для мережі аптек.
Мета завдання
Мета завдання — створити в K2 ERP модуль для автоматизації роботи однієї аптеки або мережі аптек.
Система повинна дозволяти:
- вести довідник аптек;
- вести довідник препаратів;
- вести міжнародні непатентовані назви — МНН;
- вести форми випуску, дозування і пакування;
- вести постачальників;
- вести фармацевтів;
- обліковувати партії препаратів;
- обліковувати серії препаратів;
- контролювати терміни придатності;
- зберігати сертифікати якості;
- оприбутковувати постачання;
- продавати препарати через касу;
- перевіряти рецептурність препарату;
- фіксувати номер рецепта, якщо препарат рецептурний;
- автоматично списувати залишки при продажі;
- вести залишки по кожній аптеці;
- переміщувати препарати між аптеками;
- списувати прострочені або пошкоджені препарати;
- резервувати препарати для клієнтів;
- формувати чеки, накладні, акти списання;
- формувати звіти по продажах, залишках, термінах придатності й прибутковості.
Головний принцип. Кожен препарат має обліковуватися не тільки за назвою, а й за аптекою, партією, серією, терміном придатності, ціною, залишком і рецептурністю.
Реальний бізнес-контекст
Аптечна мережа може складатися з однієї або багатьох аптек у різних районах чи містах. Кожна аптека продає лікарські засоби, медичні вироби, косметику, супутні товари та працює з різними партіями препаратів.
Для аптечної мережі важливо:
- бачити залишки по кожній аптеці;
- контролювати терміни придатності;
- не продавати прострочені препарати;
- вести облік серій і партій;
- контролювати рецептурні препарати;
- зберігати дані про сертифікати;
- швидко знаходити препарат за назвою, МНН, штрихкодом або виробником;
- переміщувати товар між аптеками;
- списувати непридатні препарати;
- аналізувати продажі й прибутковість.
Основний бізнес-процес
Типовий процес роботи аптечної мережі виглядає так:
- адміністратор створює аптеку в довіднику;
- створюються препарати, форми випуску, дозування і виробники;
- постачальник передає партію товару;
- фармацевт або комірник оприбутковує постачання;
- для партії фіксуються серія, термін придатності, закупівельна ціна й сертифікат;
- залишок препарату збільшується в конкретній аптеці;
- клієнт купує препарат;
- система перевіряє наявність залишку;
- система перевіряє, чи потрібен рецепт;
- якщо препарат рецептурний — фіксується номер рецепта;
- продаж проводиться через касу;
- залишок автоматично зменшується;
- формується чек;
- дані потрапляють у звіти.
Основні об’єкти модуля
| Об’єкт | Призначення |
|---|---|
| Аптеки | Точки продажу аптечної мережі |
| Склади | Місця зберігання препаратів у межах аптек |
| Препарати | Лікарські засоби та аптечні товари |
| МНН | Міжнародні непатентовані назви |
| Форми випуску | Таблетки, капсули, мазі, ампули, сиропи тощо |
| Виробники | Компанії-виробники препаратів |
| Постачальники | Компанії, які постачають препарати |
| Партії | Конкретні надходження товару |
| Серії | Серійний облік препаратів |
| Сертифікати | Документи якості або відповідності |
| Продажі | Реалізація препаратів клієнтам |
| Рецепти | Дані про рецептурний продаж |
| Залишки | Кількість препаратів по аптеках, партіях і серіях |
| Переміщення | Передача товару між аптеками |
| Списання | Виведення з обліку прострочених або пошкоджених препаратів |
| Звіти | Аналітика по товарах, продажах, залишках і термінах |
Довідник «Аптеки»
Довідник аптек містить усі торгові точки мережі.
Поля аптеки
| Поле | Опис |
|---|---|
| Назва аптеки | Назва або номер аптеки |
| Адреса | Фактична адреса точки |
| Місто / район | Територіальна прив’язка |
| Менеджер | Відповідальна особа |
| Телефон | Контактний номер |
| Графік роботи | Робочі години |
| Статус | Активна, тимчасово закрита, архівна |
Довідник «Фармацевти»
Фармацевти виконують продажі, приймання товару та касові операції.
Поля фармацевта
| Поле | Опис |
|---|---|
| ПІБ | Повне ім’я працівника |
| Аптека | Основна точка роботи |
| Посада | Фармацевт, провізор, завідувач аптеки |
| Телефон | Контактний номер |
| Електронна адреса | |
| Статус | Активний, неактивний, звільнений |
Довідник «Препарати»
Довідник препаратів містить основні характеристики товарів.
Поля препарату
| Поле | Опис |
|---|---|
| Назва препарату | Торгова назва |
| МНН | Міжнародна непатентована назва |
| Форма випуску | Таблетки, мазь, ампули, сироп тощо |
| Дозування | Наприклад: 500 мг, 10 мл |
| Пакування | Кількість в упаковці або опис |
| Виробник | Компанія-виробник |
| Категорія | Ліки, медвироби, косметика, супутні товари |
| Рецептурність | Рецептурний або безрецептурний |
| Штрихкод | Для швидкого продажу через сканер |
| Роздрібна ціна | Ціна продажу |
| Закупівельна ціна | Базова закупівельна ціна |
| Статус | Активний, недоступний, архівний |
Довідник «МНН»
МНН дозволяє групувати препарати за діючою речовиною.
Поля МНН
| Поле | Опис |
|---|---|
| Назва МНН | Міжнародна непатентована назва |
| Опис | Опціональний опис |
| Група | Фармакологічна група, якщо використовується |
Довідник «Форми випуску»
Приклади форм випуску:
- таблетки;
- капсули;
- сироп;
- мазь;
- крем;
- ампули;
- краплі;
- спрей;
- порошок;
- розчин;
- супозиторії;
- пластирі.
Довідник «Виробники»
Виробники потрібні для пошуку, аналітики і контролю серій.
Поля виробника
| Поле | Опис |
|---|---|
| Назва виробника | Компанія-виробник |
| Країна | Країна виробництва |
| Контакти | Опціонально |
| Статус | Активний або архівний |
Довідник «Постачальники»
Постачальники використовуються для обліку надходжень.
Поля постачальника
| Поле | Опис |
|---|---|
| Назва постачальника | Компанія-постачальник |
| Контактна особа | Представник постачальника |
| Телефон | Контактний номер |
| Електронна адреса | |
| Адреса | Юридична або фактична адреса |
| Умови оплати | Передоплата, післяплата, відстрочка |
| Статус | Активний або архівний |
База «Постачання»
Постачання фіксує надходження препаратів від постачальника.
Поля постачання
| Поле | Опис |
|---|---|
| Номер документа | Номер накладної або внутрішній номер |
| Аптека | Куди надійшов товар |
| Постачальник | Від кого отримано товар |
| Дата постачання | Дата надходження |
| Препарат | Який препарат надійшов |
| Кількість | Кількість одиниць |
| Закупівельна ціна | Ціна постачання |
| Серія | Серія препарату |
| Термін придатності | Дата завершення придатності |
| Сертифікат | Номер або файл сертифіката |
Партії і серії препаратів
Для аптечного обліку важливо вести партії й серії.
Поля партії
| Поле | Опис |
|---|---|
| Препарат | До якого препарату належить партія |
| Аптека | Де зберігається партія |
| Серія | Серія виробника |
| Дата надходження | Коли партія оприбуткована |
| Термін придатності | До якої дати препарат придатний |
| Кількість початкова | Скільки надійшло |
| Кількість залишок | Скільки залишилося |
| Закупівельна ціна | Ціна закупівлі |
| Роздрібна ціна | Ціна продажу |
| Статус | Активна, закінчується, прострочена, списана |
Критично. Система не повинна дозволяти продаж препарату з партії, у якої завершився термін придатності або залишок дорівнює нулю.
Сертифікати препаратів
Сертифікати потрібні для контролю якості та документального супроводу.
Поля сертифіката
| Поле | Опис |
|---|---|
| Номер сертифіката | Номер документа |
| Препарат | До якого препарату належить |
| Серія | Для якої серії діє |
| Дата видачі | Коли видано |
| Дата завершення | Якщо має строк дії |
| Файл | Скан або PDF сертифіката |
| Статус | Дійсний, завершується, недійсний |
База «Продажі»
Продаж фіксує реалізацію препарату клієнту.
Поля продажу
| Поле | Опис |
|---|---|
| Номер продажу | Унікальний номер |
| Аптека | Де виконано продаж |
| Фармацевт | Хто продав |
| Дата і час | Коли виконано продаж |
| Препарат | Що продано |
| Партія / серія | З якої партії списано |
| Кількість | Скільки продано |
| Ціна продажу | Ціна за одиницю |
| Сума | Загальна сума |
| Рецепт | Так або ні |
| Номер рецепта | Якщо потрібен |
| Тип оплати | Готівка, картка, змішано |
Перевірка рецептурності
Якщо препарат рецептурний, система повинна вимагати номер рецепта або відповідну позначку.
Логіка перевірки
- фармацевт обирає препарат;
- система перевіряє поле «Рецептурність»;
- якщо препарат безрецептурний — продаж дозволено без рецепта;
- якщо препарат рецептурний — система вимагає номер рецепта;
- без номера рецепта продаж не проводиться або потребує спеціального права;
- факт рецептурного продажу записується в історію.
Облік залишків
Залишки повинні рахуватися по кожній аптеці, препарату, партії та серії.
Формула залишку
Залишок = Надходження + Переміщення в аптеку - Продажі - Списання - Переміщення з аптеки
Що має показувати залишок
- аптеку;
- препарат;
- МНН;
- форму випуску;
- дозування;
- серію;
- термін придатності;
- кількість;
- закупівельну ціну;
- роздрібну ціну;
- статус партії.
Списання препаратів
Списання потрібне для прострочених, пошкоджених або непридатних препаратів.
Причини списання
- завершився термін придатності;
- пошкоджене пакування;
- брак;
- повернення постачальнику;
- інвентаризаційна нестача;
- інша причина.
Поля списання
| Поле | Опис |
|---|---|
| Аптека | Де списується товар |
| Препарат | Що списується |
| Партія / серія | З якої партії списання |
| Кількість | Скільки списується |
| Причина | Чому списується |
| Дата списання | Коли списано |
| Відповідальний | Хто виконав списання |
| Документ | Акт списання |
Переміщення між аптеками
Мережа аптек повинна мати можливість переміщувати товар між точками.
Поля переміщення
| Поле | Опис |
|---|---|
| Аптека-відправник | Звідки передається товар |
| Аптека-отримувач | Куди передається товар |
| Препарат | Що переміщується |
| Партія / серія | Яка партія передається |
| Кількість | Скільки передається |
| Дата | Дата переміщення |
| Статус | Створено, відправлено, отримано, скасовано |
Резервування препаратів
Опціонально система може підтримувати резервування препаратів через сайт або оператором.
Поля резерву
| Поле | Опис |
|---|---|
| Клієнт | Хто резервує |
| Телефон | Контакт клієнта |
| Аптека | Де буде отримання |
| Препарат | Що резервується |
| Кількість | Скільки одиниць |
| Термін резерву | До якого часу тримається резерв |
| Статус | Новий, підтверджений, виданий, скасований, прострочений |
Каса і оплати
Продажі мають проходити через касовий блок.
Способи оплати
- готівка;
- банківська картка;
- змішана оплата;
- бонуси, якщо реалізовано;
- сертифікат, якщо реалізовано.
Касові функції
- створення продажу;
- пошук препарату;
- сканування штрихкоду;
- перевірка рецепта;
- перевірка залишку;
- друк чека;
- повернення товару, якщо реалізовано;
- закриття зміни, якщо реалізовано.
Програма лояльності
Опціонально можна реалізувати програму лояльності.
Можливості лояльності
- картка клієнта;
- накопичення бонусів;
- списання бонусів;
- знижки для постійних клієнтів;
- акційні ціни;
- персональні пропозиції;
- історія покупок клієнта.
Звіти
Звіт «Продажі за період»
У звіті потрібно відображати:
- аптеку;
- дату;
- фармацевта;
- препарат;
- кількість;
- суму продажу;
- тип оплати;
- рецептурність.
Звіт «Залишки по аптеках»
У звіті потрібно відображати:
- аптеку;
- препарат;
- МНН;
- форму випуску;
- серію;
- термін придатності;
- залишок;
- роздрібну ціну;
- закупівельну ціну.
Звіт «Терміни придатності»
У звіті потрібно відображати:
- аптеку;
- препарат;
- серію;
- залишок;
- термін придатності;
- кількість днів до завершення;
- статус партії.
Звіт «Рецептурні продажі»
У звіті потрібно відображати:
- дату продажу;
- аптеку;
- фармацевта;
- препарат;
- номер рецепта;
- кількість;
- суму.
Звіт «Популярні препарати»
У звіті потрібно відображати:
- препарат;
- МНН;
- кількість продажів;
- суму продажів;
- кількість аптек, де продавався препарат.
Звіт «Прибутковість»
У звіті потрібно відображати:
- препарат;
- кількість продажів;
- суму продажів;
- закупівельну собівартість;
- валовий прибуток;
- маржу.
AJAX-інтерактив
Інтерфейс має працювати швидко й без перезавантаження сторінок.
Через AJAX мають працювати:
- пошук препарату;
- пошук за МНН;
- пошук за штрихкодом;
- перевірка залишку;
- перевірка терміну придатності;
- перевірка рецептурності;
- додавання препарату в чек;
- оновлення суми продажу;
- фіксація оплати;
- оприбуткування постачання;
- переміщення між аптеками;
- списання препарату;
- фільтрація звітів;
- оновлення залишків.
Логування змін
Модуль повинен фіксувати важливі дії.
Журнал змін має зберігати:
- хто створив препарат;
- хто змінив ціну;
- хто оприбуткував партію;
- хто змінив термін придатності;
- хто додав сертифікат;
- хто провів продаж;
- хто скасував продаж;
- хто списав препарат;
- хто перемістив препарат між аптеками;
- хто створив резерв;
- хто експортував звіт;
- дату й час дії;
- старе та нове значення, якщо це можливо.
Права доступу
Модуль має підтримувати розмежування прав.
| Роль | Можливості |
|---|---|
| Фармацевт | Продає препарати, перевіряє залишки, працює з касою |
| Завідувач аптеки | Керує залишками своєї аптеки, постачаннями, списаннями і звітами |
| Комірник | Оприбутковує товар, веде партії, серії, терміни придатності |
| Менеджер мережі | Бачить залишки й продажі по всіх аптеках |
| Бухгалтер | Контролює постачання, продажі, оплати, звіти й прибутковість |
| Адміністратор | Налаштовує довідники, права, аптеки, користувачів і службові параметри |
Технічні вимоги
| Параметр | Опис |
|---|---|
| Бекенд | K2 Cloud ERP на Python або PHP |
| База даних | PostgreSQL або MySQL |
| Фронтенд | HTML5, JavaScript |
| AJAX | Fetch API або Axios |
| UI-компоненти | DataTables для таблиць продажів і товарів, Select2 для пошуку препаратів і постачальників |
| Штрихкоди | Підтримка сканера штрихкодів, опціонально |
| Файли | Завантаження сертифікатів препаратів |
| Друк | Чеки, накладні, акти списання, PDF або друк на чековому принтері |
| Експорт | Excel або PDF для звітів |
Рекомендовані сутності бази даних
Для реалізації задачі доцільно передбачити такі сутності:
- аптеки;
- склади;
- фармацевти;
- препарати;
- МНН;
- форми випуску;
- виробники;
- постачальники;
- партії;
- серії;
- сертифікати;
- постачання;
- продажі;
- рецепти;
- залишки;
- переміщення;
- списання;
- резервування;
- касові операції;
- клієнти;
- бонуси;
- звіти;
- журнал змін;
- права доступу.
Практичне завдання
У межах атестації потрібно продемонструвати робочий сценарій.
Мінімальний сценарій:
- створити аптеку;
- створити фармацевта;
- створити постачальника;
- створити виробника;
- створити МНН;
- створити препарат;
- вказати форму випуску, дозування і рецептурність;
- оприбуткувати партію препарату;
- вказати серію і термін придатності;
- додати сертифікат;
- перевірити залишок препарату в аптеці;
- виконати продаж безрецептурного препарату;
- виконати продаж рецептурного препарату з номером рецепта;
- перевірити, що продаж рецептурного препарату без номера рецепта не допускається;
- перевірити списання залишку після продажу;
- створити переміщення препарату між аптеками;
- списати прострочений препарат;
- сформувати звіт продажів;
- сформувати звіт залишків;
- сформувати звіт термінів придатності;
- сформувати звіт рецептурних продажів;
- перевірити журнал змін.
Критерії оцінювання
| Критерій | Бали | Що перевіряється |
|---|---|---|
| Реалізація бази аптек, препаратів і продажів | 20 | Аптеки, препарати, МНН, форми випуску, виробники, фармацевти, продажі |
| Облік залишків і контроль термінів придатності | 20 | Партії, серії, залишки по аптеках, списання, заборона продажу прострочених препаратів |
| Підтримка обліку рецептів | 20 | Рецептурність препарату, номер рецепта, контроль продажу рецептурних препаратів |
| Звіти по продажах і залишках | 20 | Продажі, залишки, терміни придатності, рецептурні продажі, популярні препарати, прибутковість |
| Інтерактивність через AJAX і касові операції | 20 | Пошук препарату, штрихкод, чек, оплата, оновлення залишків, швидкий продаж без перезавантаження |
| Разом | 100 | Максимальна оцінка |
Шкала оцінювання
| Бали | Рівень | Опис |
|---|---|---|
| 90–100 | Відмінно | Модуль повністю працює: аптеки, препарати, партії, серії, рецепти, продажі, залишки, терміни, сертифікати, звіти й AJAX реалізовані коректно |
| 75–89 | Добре | Основна логіка працює, є незначні недоліки, які не руйнують процес аптечного обліку |
| 60–74 | Зараховано | Базовий сценарій працює, але частина функцій реалізована неповно або потребує доопрацювання |
| 0–59 | Не зараховано | Відсутня критична логіка: препарати, партії, залишки, продажі, рецепти або звіти |
Критичні помилки
Критичними помилками вважаються ситуації, коли:
- неможливо створити аптеку;
- неможливо створити препарат;
- препарат не має форми випуску або дозування;
- неможливо оприбуткувати партію;
- партія не має серії;
- партія не має терміну придатності;
- залишок не збільшується після постачання;
- продаж не зменшує залишок;
- система дозволяє продаж препарату з нульовим залишком;
- система дозволяє продаж простроченого препарату;
- рецептурний препарат продається без номера рецепта;
- списання не зменшує залишок;
- переміщення не змінює залишки аптек;
- звіти не відповідають фактичним продажам і залишкам;
- зміни партій, продажів, списань і цін не логуються.
Умова складання. Завдання не може бути зараховане, якщо система не дозволяє пройти базовий цикл аптечної мережі: аптека → препарат → партія і серія → постачання → залишок → продаж → рецепт → списання → звіт.
Очікуваний результат
У результаті виконання атестаційного завдання має бути створений модуль мережі аптек у K2 ERP.
Модуль має підтримувати аптеки, склади, фармацевтів, препарати, МНН, форми випуску, виробників, постачальників, партії, серії, сертифікати, постачання, продажі, рецепти, залишки, переміщення, списання, резервування, касові операції, звіти, AJAX-інтерактив і логування змін.
Примітка
ERP для мережі аптек потрібна для точного обліку лікарських засобів, контролю залишків, термінів придатності, рецептурних продажів і роботи кількох аптек в єдиній системі.
Правильно побудований модуль допомагає запобігати продажу прострочених препаратів, зменшує втрати від неправильних залишків, покращує контроль постачань і підвищує ефективність роботи аптечної мережі.
Коротко
| Питання | Відповідь |
|---|---|
| Що потрібно створити? | Модуль обліку мережі аптек |
| Які довідники потрібні? | Аптеки, препарати, МНН, форми випуску, виробники, постачальники, фармацевти |
| Який головний облік? | Залишки препаратів по аптеках, партіях і серіях |
| Що важливо для препаратів? | Серія, термін придатності, рецептурність, сертифікат і залишок |
| Що має перевіряти продаж? | Наявність залишку, термін придатності й необхідність рецепта |
| Які звіти потрібні? | Продажі, залишки, терміни придатності, рецептурні продажі, прибутковість |
| Що є критичною вимогою? | Заборона продажу прострочених препаратів і рецептурних препаратів без рецепта |
| Що бажано додати? | Штрихкоди, резервування, переміщення між аптеками, лояльність, сертифікати |