# Новое меню Manager Документ фиксирует целевую древовидную структуру меню по ТЗ Manager 2.0 и текущий статус разделов в существующей Laravel CRM. ## Легенда статусов - **Есть** — раздел уже реализован и имеет рабочие маршруты/страницы. - **Частично** — есть близкий текущий функционал, но его нужно переименовать, перенести в другую группу или доработать под новое ТЗ. - **Нужно реализовать** — раздела нет, на первом этапе нужна страница-заглушка "В разработке". - **Уточнить** — требуется продуктовая/архитектурная развилка перед реализацией. ## Целевое верхнее меню ```text Manager ├── ДКР │ ├── Площадки │ ├── МАФ │ ├── Каталог │ ├── Отчеты │ ├── Ответственные │ └── Заказы МАФ ├── Графики │ ├── График заказов │ ├── График доставок │ └── График монтажей ├── Рекламации │ ├── Все │ └── ДКР ├── Запчасти │ ├── Каталог │ ├── Заказы запчастей │ ├── Контроль наличия │ ├── Справочник расшифровок │ └── Справка ├── Склад наличие │ ├── Наличие │ └── Заказы ├── Каталог общий │ ├── Позиции │ └── Карточка позиции ├── Документация ├── Технич. описание ├── Калькуляции └── Администратор ├── Подрядчики ├── Договоры ├── Пользователи ├── Роли и права ├── Настройки ├── Округа ├── Районы ├── Журнал уведомлений ├── Импорт ├── Экспорт/Импорт года └── Удалить данные ``` ## Детализация по разделам ### ДКР Статус: **Есть**, требуется реорганизация меню. ДКР должен стать отдельной верхней группой. Текущие пункты верхнего меню нужно сгруппировать внутрь него без изменения действующей логики. | Пункт | Статус | Текущий маршрут | Комментарий | |---|---|---|---| | Площадки | Есть | `order.index` | Сейчас верхний пункт `Площадки`. | | МАФ | Есть | `product_sku.index` | Сейчас верхний пункт `МАФ`. В коде также помечен как склад МАФ. | | Каталог | Есть | `catalog.index` | Каталог ДКР. Это отдельная сущность, не `Каталог общий`. | | Отчеты | Есть | `reports.index` | Сейчас верхний пункт `Отчёты`. | | Ответственные | Есть | `responsible.index` | Сейчас верхний пункт `Ответственные`. | | Заказы МАФ | Есть | `maf_order.index` | Сейчас верхний пункт `Заказы МАФ`. | Принятое решение: `Каталог` ДКР и `Каталог общий` — разные сущности. Каталог ДКР остается внутри ДКР и продолжает работать по текущим маршрутам. `Каталог общий` реализуется отдельно как общий справочник платформы. ### Графики Статус: **Частично**. Нужна новая верхняя группа `Графики`. На первом этапе недостающие пункты можно добавить как заглушки. | Пункт | Статус | Текущий маршрут | Комментарий | |---|---|---|---| | График заказов | Нужно реализовать | - | По ТЗ: производственный график, загрузка через 1С, связь с каталогом и монтажами. | | График доставок | Нужно реализовать | - | По ТЗ: недельный список, адреса из графика заказов, ручная занятость водителей. | | График монтажей | Есть | `schedule.index` | Сейчас верхний пункт `График монтажей`; нужно перенести внутрь группы `Графики`. | ### Рекламации Статус: **Частично**. Текущий раздел рекламаций есть, но в новом меню должен иметь внутренние вкладки/подпункты `Все` и `ДКР`. | Пункт | Статус | Текущий маршрут | Комментарий | |---|---|---|---| | Все | Есть | `reclamations.index` | Текущий общий список рекламаций. | | ДКР | Частично | `reclamations.index` | Текущий список с предустановленным фильтром по источнику `ДКР`. | ### Запчасти Статус: **Есть**, требуется реорганизация меню. Раздел уже вынесен отдельным верхним пунктом `Запчасти` и внутри имеет вкладки. В новом меню можно сохранить его как верхнюю группу и явно отразить существующие подпункты. | Пункт | Статус | Текущий маршрут | Комментарий | |---|---|---|---| | Каталог | Есть | `spare_parts.index` | Каталог запчастей. | | Заказы запчастей | Есть | `spare_part_orders.index` | Текущий маршрут заказов запчастей; в старом интерфейсе мог называться `Заказы деталей`. | | Контроль наличия | Есть | `spare_part_inventory.index` | Текущая вкладка контроля наличия запчастей. | | Справочник расшифровок | Есть | `pricing_codes.index` | Показывать всем пользователям с доступом к модулю `Запчасти`. | | Справка | Есть | `spare_parts.help` | Текущая справочная страница раздела. | ### Склад наличие Статус: **Нужно реализовать**. Новый раздел по ТЗ. Должен быть реализован полностью по образцу раздела `Запчасти`: структура вкладок, карточки, заказы, контроль остатков, бронирование, списание, отмена брони, история движений, импорт/экспорт и права доступа берутся как базовая модель поведения и адаптируются под МАФ/позиции из `Каталог общий`. На первом этапе нужны страницы-заглушки, затем отдельное ТЗ на модуль с привязкой к существующей логике `Запчасти`. | Пункт | Статус | Текущий маршрут | Комментарий | |---|---|---|---| | Наличие | Нужно реализовать | - | Видно всем пользователям. Список МАФ/позиций с остатком на складе больше 0. | | Заказы | Нужно реализовать | - | Доступ только админу и роли `assistant_head`. Ручное добавление заказов или импорт. | Отдельно в разделе потребуется PDF-экспорт наличия по шаблону. Базовый функциональный ориентир: - `Наличие` соответствует логике контроля наличия/остатков в разделе `Запчасти`. - `Заказы` соответствует логике заказов деталей в разделе `Запчасти`. - Карточка позиции должна повторять подход карточки запчасти/заказа: остатки, активные брони, действия списания и отмены, история. - Расчет доступного остатка, запрет брони сверх доступного количества, списание с конкретных заказов и сохранение истории должны работать по той же логике, что и в `Запчасти`. - Отличие доменной модели: вместо запчастей используются МАФ/позиции из `Каталог общий`, а отображаемые поля позиции берутся из общего каталога. ### Каталог общий Статус: **Частично**. По ТЗ это центральный справочник платформы. Это отдельная сущность, не каталог ДКР. Текущий `catalog.index` остается каталогом ДКР; для общего каталога используются маршруты с префиксом `common-catalog/...`, а таблицы и права получают техническое имя `common-catalog`. | Пункт | Статус | Текущий маршрут | Комментарий | |---|---|---|---| | Позиции | Нужно реализовать | - | Новый общий справочник. Нужны колонки по шаблону калькулятора, импорт/экспорт. | | Карточка позиции | Нужно реализовать | - | Центральная карточка общей позиции/МАФ. | | Фото МАФ | Нужно реализовать | - | Фото позиции общего каталога. | | Документы | Нужно реализовать | - | Сопутствующие документы позиции через текущий файловый механизм. | | Техническое описание | Уточнить / встроить | - | Вероятно поглощается общим каталогом как выгрузка/представление позиции в нужном формате. | | Калькуляция | Нужно реализовать | - | API-запрос по артикулу и отображение возвращенной калькуляции, если она есть. | ### Документация Статус: **Нужно реализовать**. Новый раздел для папок и файлов: инструкции, прайсы, прочая документация. На первом этапе нужна заглушка. ### Технич. описание Статус: **Уточнить / вероятно встроить в каталог**. По новым вводным это, вероятно, не отдельный модуль, а часть `Каталог общий`: по сути те же данные позиции, но с выгрузками в определенном формате. Есть готовый Laravel-модуль, из которого можно взять экспорт. ### Калькуляции Статус: **Нужно реализовать позже**. Калькуляции работают через внешний API: запрос выполняется по артикулу, в ответ возвращается калькуляция, если она найдена. Подробное описание API будет предоставлено отдельно. ### Администратор Статус: **Есть**, требуется переименование группы. Сейчас группа называется `Администрирование`. В новом меню по ТЗ целевое название — `Администратор`. | Пункт | Статус | Текущий маршрут | Комментарий | |---|---|---|---| | Подрядчики | Есть | `contractors.index` | Всегда показывать внутри группы `Администратор`; отдельным верхним пунктом не выводить. | | Договоры | Есть | `contract.index` | Сейчас внутри `Администрирование`. | | Пользователи | Есть | `user.index` | Сейчас внутри `Администрирование`. | | Роли и права | Есть | `admin.roles.index` | Сейчас внутри `Администрирование`. | | Настройки | Есть | `admin.settings.index` | Сейчас внутри `Администрирование`. | | Округа | Есть | `admin.district.index` | Сейчас внутри `Администрирование`. | | Районы | Есть | `admin.area.index` | Сейчас внутри `Администрирование`. | | Журнал уведомлений | Есть | `admin.notifications.log` | Сейчас внутри `Администрирование`. | | Импорт | Есть | `import.index` | Сейчас внутри `Администрирование`. | | Экспорт/Импорт года | Есть | `year-data.index` | Сейчас внутри `Администрирование`. | | Удалить данные | Есть | `clear-data.index` | Сейчас внутри `Администрирование`. | ## Предлагаемый первый этап реализации 1. Перестроить `resources/views/layouts/menu.blade.php` под верхние группы из этого документа. 2. Для разделов без реализации добавить общую страницу-заглушку `В разработке`. 3. Сохранить текущие права доступа для уже существующих пунктов. 4. Для новых пунктов-заглушек открыть доступ всем авторизованным пользователям. 5. Не менять бизнес-логику существующих модулей на этапе реорганизации меню. 6. Для новых модулей не применять фильтрацию/ограничение по выбранному году. ## Открытые вопросы 1. Оставлять ли `Технич. описание` отдельным пунктом меню или полностью встроить в `Каталог общий`? 2. Какой точный контракт внешнего API калькуляций?