ERP-Система: Архитектура и Модульная Структура
Современные ERP-решения требуют четкой структуры, изоляции бизнес-логики и гибкости. Ниже представлены модули для системы на Koseven с учетом принципов «Просто, Единообразно, Хорошо».
Блок 100–200: Core & Infrastructure (Ядро)
- erp101_auth: Авторизация, сессии и профили пользователей
- erp208_events [ГОТОВО]: Шина событий для связи между модулями
- erp212_storage [ГОТОВО]: Единое хранилище файлов (S3/Local)
- erp216_acl [ГОТОВО]: Управление правами доступа
- erp217_notification_center [ГОТОВО]: Центр уведомлений (Email/TG/Push)
- erp218_audit: Логирование действий пользователей и изменений БД
- erp220_settings: Глобальные настройки системы
Блок 300: Commercial (Коммерция)
- erp300_crm: Единый модуль продаж
- Leads (Лиды/Заявки)
- Clients (Контрагенты и контакты)
- Deals (Сделки и воронка продаж)
- Activities (Звонки, встречи, задачи)
- erp310_catalog: Единый справочник (PIM) — товары, услуги, цены и категории
Блок 400: Supply Chain & Warehouse (Склад и снабжение)
- erp400_warehouse: Управление материальными потоками
- Stock (Остатки и инвентаризация)
- Movements (Поступления, перемещения, списания)
- Purchases (Закупки у поставщиков)
- erp410_logistics: Доставка и управление транспортом
Блок 500: Production (Производство)
- erp500_factory: Управление производственным циклом
- BoM (Спецификации/Состав изделий)
- Work Orders (Производственные задания)
- Quality Control (ОТК и контроль брака)
Блок 600: Finance (Финансы)
- erp600_finance: Учет денежных средств
- Cash (Кассы и банковские счета)
- Invoices (Счета, оплаты)
- Payments (Входящие/исходящие платежи)
- P&L / CashFlow (Отчетность)
Блок 700: Human Resources (Персонал)
- erp700_staff: Управление штатом
- Employees (Карточки сотрудников)
- Org Structure (Департаменты, должности)
- Timesheet (Табель рабочего времени)
Блок 800: Management & Tools (Управление и поддержка)
- erp800_tasks: Проектное управление, задачи, канбан-доски
- erp810_analytics: Дашборды и BI-индикаторы
- erp820_wiki: База знаний, регламенты, документация
Блок 900: Automation (Автоматизация)
- erp900_workflow: Конструктор бизнес-процессов и триггеров
Почему это «Хорошо»:
Изоляция
Каждый модуль имеет свою префиксную группу (например, 300). Это исключает конфликты имен.
Связность
Модуль CRM связан стандартным ORM, что ускоряет разработку и делает его легко расширяемым.
Гибкость
Новый модуль можно легко создать без нарушения существующей структуры (например, erp320_marketing).
Стандарт
Любой разработчик быстро понимает, что финансы — это 600, а склад — 400.
Рекомендация по старту:
Начните с модуля erp300_crm. Внутри него реализуйте модели Client и Lead, постепенно добавляя контроллеры. Все связи (файлы, уведомления, права) уже готовы в слое 200.