# ТЗ: Модуль ДКР Связанные документы: - [План реорганизации](plan.md) - [Карта нового меню](menu.md) ## 1. Назначение Модуль `ДКР` — самостоятельный рабочий контур текущей CRM для управления площадками, МАФ, каталогом ДКР, отчетами, ответственными и заказами МАФ. В рамках Manager 2.0 модуль не проектируется заново. Его нужно сохранить как автономный блок и перегруппировать в новом меню. Каталог ДКР остается внутри ДКР; `Каталог общий` является отдельной сущностью. ## 2. Статус Статус модуля: **реализован**. Основная задача по ДКР на первом этапе — реорганизация навигации без изменения бизнес-логики. ## 3. Состав модуля Целевое меню ДКР: ```text ДКР ├── Площадки ├── МАФ ├── Каталог ├── Отчеты ├── Ответственные └── Заказы МАФ ``` Текущие соответствия: | Раздел ДКР | Текущий маршрут | Текущий контроллер | Статус | |---|---|---|---| | Площадки | `order.index` | `OrderController` | Есть | | МАФ | `product_sku.index` | `ProductSKUController` | Есть | | Каталог | `catalog.index` | `ProductController` | Есть | | Отчеты | `reports.index` | `ReportController` | Есть | | Ответственные | `responsible.index` | `ResponsibleController` | Есть | | Заказы МАФ | `maf_order.index` | `MafOrderController` | Есть | ## 4. Каталог ДКР Текущий пункт `Каталог` должен остаться внутри ДКР. Решение: - `catalog.index` остается маршрутом каталога ДКР. - В меню `ДКР` пункт `Каталог` показывается пользователям с текущим доступом к каталогу. - Каталог ДКР и `Каталог общий` не смешиваются на уровне данных и назначения. - Связи ДКР с товарами/позициями продолжают работать через текущий каталог ДКР. ## 5. Требования к меню - Добавить верхний пункт меню `ДКР`. - Внутри `ДКР` разместить существующие пункты: - `Площадки`; - `МАФ`; - `Каталог`; - `Отчеты`; - `Ответственные`; - `Заказы МАФ`. - Сохранить текущие permissions для каждого пункта. - Не менять URL существующих рабочих страниц. - Активное состояние меню должно корректно подсвечивать пункт `ДКР` и выбранный подраздел. - Если у пользователя нет доступа ни к одному подразделу ДКР, пункт `ДКР` не показывать. ## 6. Площадки Текущий раздел: `Площадки`. Функционал должен сохраниться: - список площадок; - карточка площадки; - создание/редактирование/удаление при наличии прав; - загрузка фото и документов; - генерация документов; - связь с МАФ; - связь с рекламациями; - связь с графиком монтажей; - поиск, фильтры, пагинация и экспорт, если доступны в текущей реализации. Изменения на этапе реорганизации: - только перенос пункта меню внутрь `ДКР`; - бизнес-логику и структуру данных не менять. ## 7. МАФ Текущий раздел: `МАФ`. Функционал должен сохраниться: - список МАФ; - карточка МАФ; - импорт/экспорт МАФ; - загрузка паспорта; - связь с площадкой; - связь с позицией каталога ДКР; - inline-обновления, если доступны в текущей реализации; - реестр на оплату, если доступен в текущей реализации. Изменения на этапе реорганизации: - пункт меню переносится внутрь `ДКР`; - связи с каталогом должны продолжить вести в каталог ДКР. ## 8. Отчеты Текущий раздел: `Отчеты`. Функционал должен сохраниться: - текущие вкладки отчетов; - отчеты по монтажам; - отчеты по выполненным работам; - общие отчеты; - отчеты по рекламациям, если они присутствуют в текущем разделе. Изменения на этапе реорганизации: - пункт меню переносится внутрь `ДКР`; - состав отчетов не менять без отдельного ТЗ. ## 9. Ответственные Текущий раздел: `Ответственные`. Функционал должен сохраниться: - список ответственных; - добавление ответственного; - редактирование ответственного; - удаление при наличии прав; - поиск и фильтры, если доступны в текущей реализации. Изменения на этапе реорганизации: - пункт меню переносится внутрь `ДКР`; - бизнес-логику не менять. ## 10. Заказы МАФ Текущий раздел: `Заказы МАФ`. Функционал должен сохраниться: - список заказов МАФ; - создание заказа; - редактирование заказа; - удаление при наличии прав; - отметка заказа как `На складе`; - массовая отметка заказа как `На складе`, если доступна в текущей реализации; - связь заказа с МАФ/позицией. Изменения на этапе реорганизации: - пункт меню переносится внутрь `ДКР`; - бизнес-логику не менять. ## 11. Внешние связи ДКР ДКР остается самостоятельным модулем, но его данные используются другими разделами Manager 2.0. | Внешний раздел | Связь с ДКР | Требование | |---|---|---| | Рекламации | Используют площадки ДКР при создании рекламации типа `ДКР` | Сохранить текущую связь. | | График монтажей | Использует площадки ДКР | Сохранить текущую связь при переносе графика в группу `Графики`. | | Каталог ДКР | Используется МАФ и связанными позициями ДКР | Сохранить текущий каталог внутри ДКР. | | Каталог общий | Отдельный общий справочник платформы | Не смешивать с каталогом ДКР без отдельной миграции/синхронизации. | | Склад наличие | Будет использовать МАФ/позиции из общего каталога | Прямую зависимость склада от каталога ДКР не делать. | ## 12. Права доступа На первом этапе используются текущие права: | Раздел | Permission | |---|---| | Площадки | `orders.view` | | МАФ | `maf.view` | | Каталог | `catalog.view` | | Отчеты | `reports.view` | | Ответственные | `responsibles.view` | | Заказы МАФ | `maf_orders.view` | Требования: - текущая логика `hasPermission(...)` должна сохраниться; - новые права для ДКР на этапе перегруппировки не вводить без необходимости; - верхний пункт `ДКР` отображать, если доступен хотя бы один дочерний пункт. ## 13. Что не входит в этап ДКР В рамках этого ТЗ не выполняется: - переписывание моделей ДКР; - изменение структуры таблиц ДКР; - изменение бизнес-логики площадок, МАФ, отчетов, ответственных и заказов МАФ; - перенос текущих URL на новые адреса; - перенос каталога ДКР в `Каталог общий`; - разработка нового общего каталога; - разработка склада наличия; - разработка графика заказов и графика доставок. ## 14. Этапы реализации - [ ] Проверить текущие маршруты и permissions разделов ДКР. - [ ] Добавить верхний пункт меню `ДКР`. - [ ] Перенести пункты `Площадки`, `МАФ`, `Каталог`, `Отчеты`, `Ответственные`, `Заказы МАФ` внутрь `ДКР`. - [ ] Проверить, что `catalog.index` доступен как каталог ДКР. - [ ] Проверить активное состояние меню для каждого подраздела ДКР. - [ ] Проверить отображение меню для ролей с разным набором прав. - [ ] Проверить, что существующие страницы ДКР открываются по прежним маршрутам. - [ ] Проверить связи площадок с рекламациями. - [ ] Проверить связи площадок с графиком монтажей. ## 15. Критерии приемки - В верхнем меню есть группа `ДКР`. - В группе `ДКР` отображаются только доступные пользователю подразделы. - В группе `ДКР` есть пункт `Каталог` для пользователей с текущим доступом к каталогу. - Текущий каталог доступен как каталог ДКР. - Все существующие страницы ДКР открываются без 404/403 при корректных правах. - Бизнес-логика ДКР после реорганизации меню не изменилась. - Рекламации продолжают работать с площадками ДКР. - График монтажей продолжает работать с площадками ДКР. - Тесты проекта проходят. ## 16. Принятые решения - Текущие маршруты ДКР оставляем без переименования. - На первом этапе используем текущие права дочерних разделов без добавления отдельного права `dkr.view`. - Каталог ДКР и `Каталог общий` — разные сущности.