Атестаційні завдання K2 ERP/Управління договорами
Атестаційне завдання K2 ERP — Управління договорами — практична задача для розробника K2 ERP, що передбачає створення модуля обліку договорів компанії, автоматичного нарахування рахунків, контролю строків дії договорів, друку шаблонів та звітності.
Назва
Модуль управління договорами компанії.
Реалістичний опис бізнес-процесу
Компанія має велику кількість договорів із клієнтами та підрядниками. Для нормальної роботи потрібно:
- вести облік усіх договорів;
- контролювати терміни закінчення;
- автоматично нараховувати суму щомісячних платежів по договорах, наприклад абонплату, роялті або постійні послуги;
- автоматично формувати акти або рахунки на підставі активних договорів;
- вчасно попереджати про закінчення або пролонгацію договорів.
Основні завдання
1. Структура довідників
Довідник «Контрагенти»
Довідник контрагентів повинен містити:
- назву компанії;
- тип контрагента:
- клієнт;
- постачальник;
- ЄДРПОУ або ІПН;
- контактну особу;
- email для повідомлень.
Довідник «Типи договорів»
Довідник типів договорів повинен містити:
- назву типу договору:
- оренда;
- постійне обслуговування;
- постачання;
- аутсорсинг;
- ліцензійна угода;
- інші типи;
- ознаку, чи потребує тип договору автоматичного виставлення рахунків: так або ні.
2. Журнал «Договори»
Журнал договорів повинен відображати всі договори компанії.
Колонки журналу
У журналі мають бути такі колонки:
- номер договору;
- контрагент;
- тип договору;
- дата укладання;
- дата початку;
- дата закінчення;
- статус договору:
- діючий;
- закінчений;
- пролонгований;
- розірваний;
- сума договору;
- періодичність оплат:
- одноразово;
- щомісяця;
- щокварталу.
Функціональність журналу
Журнал договорів має підтримувати:
- пошук за номером договору;
- пошук за контрагентом;
- пошук за періодами;
- фільтрацію по статусу;
- масове продовження договорів на новий термін — пролонгацію;
- лог змін по кожному договору.
3. Форма створення договору
Заголовок договору
Форма створення договору повинна містити:
- контрагента з вибором через AJAX-пошук;
- тип договору;
- номер договору, який вводиться вручну або генерується автоматично;
- дату укладання;
- дату початку;
- дату закінчення;
- умови пролонгації:
- автоматично;
- за погодженням;
- періодичність виставлення рахунків;
- суму платежу, якщо передбачені періодичні платежі.
Додаткові дані договору
У формі договору потрібно передбачити:
- прикріплення файлу скану підписаного договору у форматі PDF;
- поле приміток у форматі textarea.
4. Автоматичне нарахування рахунків по договорах
На початку кожного місяця система має перевіряти всі діючі договори з періодичністю «Щомісяця».
Для кожного такого договору система повинна:
- автоматично створювати чернетку рахунку на оплату;
- формувати номер рахунку автоматично на базі номера договору та порядкового номера місяця;
- пов’язувати рахунок із договором;
- відображати всі рахунки у журналі рахунків.
5. Сповіщення про закінчення договору
За 30 днів до закінчення договору система має створити нагадування.
Нагадування повинно:
- відображатися у списку «Договори, що закінчуються» у панелі керівника;
- надсилатися email відповідальному менеджеру.
6. Шаблони друку
Шаблон договору
Шаблон договору повинен формуватися у форматі DOCX або PDF.
У шаблоні потрібно підтримати підстановку змінних:
Шаблон:CONTRACT NUMBER— номер договору;Шаблон:CLIENT NAME— назва клієнта;Шаблон:START DATE— дата початку;Шаблон:END DATE— дата закінчення;Шаблон:AMOUNT— сума.
Також потрібно реалізувати генерацію шаблонного тексту договору на основі введених даних.
Шаблон рахунку
Шаблон рахунку повинен містити:
- контрагента;
- суму;
- дату виставлення;
- підпис директора та бухгалтера.
7. Звітність
Звіт «Договори за період»
Звіт повинен показувати договори за вибраний період:
- укладені;
- закінчені;
- пролонговані.
Також потрібно показувати суми укладених зобов’язань.
Звіт «Очікувані платежі»
Звіт повинен показувати суми платежів по діючих договорах на майбутні місяці.
8. Функціональні вимоги
Модуль повинен підтримувати:
- роботу без перезавантаження сторінок через AJAX;
- збереження чернеток договорів;
- автоматичний підрахунок сум платежів;
- лог змін із зазначенням, хто і коли редагував договір.
Технічні вимоги
| Параметр | Опис |
|---|---|
| Бекенд | K2 ERP на Python або PHP |
| БД | PostgreSQL або MySQL |
| Фронтенд | HTML5, JavaScript, AJAX |
| UI-компоненти | DataTables, Select2 для вибору контрагентів |
| Друк | Stimulsoft або внутрішній генератор PDF |
Критерії оцінки
| Критерій | Бали |
|---|---|
| Реалізація журналу договорів | 15 |
| Форма створення договору та розрахунки | 20 |
| Автоматичне створення рахунків | 20 |
| Нотифікації про закінчення договорів | 15 |
| Формування друкованих шаблонів | 10 |
| Якість структури БД і коду | 20 |
| Разом | 100 |
Примітка
Цей модуль є обов’язковим для будь-якої компанії середнього і великого бізнесу, яка працює з договорами: сервісних компаній, IT-компаній, торговельних мереж, орендодавців і фінансових установ.
Очікуваний результат
У результаті виконання атестаційного завдання має бути створений модуль управління договорами в K2 ERP, який підтримує довідники контрагентів і типів договорів, журнал договорів, форму договору, автоматичне створення рахунків, контроль строків дії, сповіщення, друк шаблонів і звітність.
Рекомендовані сутності бази даних
- контрагенти;
- типи договорів;
- договори;
- файли договорів;
- умови пролонгації;
- графік платежів;
- рахунки;
- рядки рахунків;
- акти;
- сповіщення;
- відповідальні менеджери;
- журнал змін договорів;
- шаблони друку.