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.