# ТЗ: Модуль Рекламации Связанные документы: - [План реорганизации](plan.md) - [Карта нового меню](menu.md) - [Исходное ТЗ](source-tz.md) - [ТЗ: Модуль ДКР](tz-dkr.md) - [ТЗ: Графики](tz-schedules.md) - [ТЗ: Запчасти](tz-spare-parts.md) ## 1. Назначение Модуль `Рекламации` предназначен для ведения клиентских рекламаций Manager 2.0. В новом формате раздел должен сохранить текущую рабочую логику рекламаций и получить структуру: ```text Рекламации ├── Все └── ДКР ``` Рекламации имеют два типа: - `ДКР` — рекламации по программе ДКР; - `Прочее` — остальные рекламации. ## 2. Статус Статус модуля: **частично реализован**. В текущей CRM уже есть: - список рекламаций; - карточка рекламации; - маршрут списка: `reclamations.index`; - маршрут карточки: `reclamations.show`; - контроллер: `ReclamationController`; - модель: `Reclamation`; - связь с площадкой/заказом; - документы и фото до/после; - генерация пакетов документов; - связь с запчастями и резервами; - создание записи в графике монтажей из рекламации. На первом этапе бизнес-логика не меняется, выполняется только реорганизация меню и подготовка разделения `Все` / `ДКР`. ## 3. Место в меню Целевое меню: ```text Рекламации ├── Все └── ДКР ``` Требования: - добавить верхний пункт меню `Рекламации`; - внутри разместить пункты `Все` и `ДКР`; - текущий маршрут `reclamations.index` оставить без переименования; - текущий маршрут `reclamations.show` оставить без переименования; - для пункта `ДКР` использовать фильтр текущего списка; - реорганизация меню выполняется в общем этапе Manager 2.0. ## 4. Права доступа На первом этапе оставляем текущие права. | Действие | Permission | |---|---| | Просмотр рекламаций | `reclamations.view` | | Создание/редактирование | Использовать текущие права рекламаций | | Экспорт | Использовать текущие права рекламаций | Требования: - не вводить новую систему прав на первом этапе; - пользователи с текущим доступом к рекламациям должны сохранить доступ; - верхний пункт `Рекламации` показывать, если доступен хотя бы один дочерний пункт. ## 5. Подраздел `Все` Назначение: - общий список всех рекламаций независимо от типа. Функционал: - текущий список рекламаций; - поиск и фильтры; - экспорт; - переход в карточку; - отображение статусов; - отображение рекламаций по ДКР и прочих рекламаций. Текущая основа: - `reclamations.index`. ## 6. Подраздел `ДКР` Назначение: - список рекламаций типа `ДКР`; - работа с рекламациями, созданными по площадкам ДКР. Функционал: - отображение только рекламаций типа `ДКР`; - реализация через текущий список рекламаций с предустановленным фильтром по источнику; - создание рекламации с привязкой к площадке ДКР; - сохранение текущей карточки рекламации; - связь с графиком монтажей; - формирование запросов на запчасти. Принятое решение: - отдельный URL для списка `ДКР` не нужен; - используется текущий список с фильтром по источнику рекламации; - для определения источника рекламации добавляется отдельное поле; - при создании рекламации из площадки источник устанавливается `ДКР`; - при создании рекламации не из площадки источник устанавливается `Прочее`. ## 7. Карточка рекламации Карточка должна сохранить текущий функционал: - основные поля рекламации; - связь с площадкой/заказом; - данные по МАФ/позициям; - документы; - фото до и после; - акты; - чат, если используется в текущей реализации; - блок запчастей; - активные резервы и дефициты; - действия по резервам; - генерация документов; - перенос в график монтажей. Изменения на первом этапе: - не менять структуру карточки; - добавить/использовать отображение источника рекламации `ДКР` / `Прочее`; - сохранить текущие маршруты и формы. ## 8. Связи | Модуль | Связь | Требование | |---|---|---| | ДКР / Площадки | Используется при создании рекламации типа `ДКР` | Сохранить текущую связь. | | Каталог общий | Данные по позициям | Использовать общий каталог как источник номенклатуры. | | График заказов | Используется при создании рекламации | Реализовать после появления графика заказов. | | График монтажей | Рекламация может попасть в монтажный график | Сохранить текущую связь. | | Запчасти | Из рекламации формируется запрос на запчасть | Сохранить текущую связь и резервы. | ## 9. Что не входит в первый этап - изменение текущих маршрутов `reclamations.*`; - переработка модели `Reclamation`; - изменение логики резервов запчастей; - изменение генерации документов; - разработка графика заказов; - внедрение новых прав доступа. ## 10. Этапы реализации - [ ] Проверить текущие маршруты `reclamations.*`. - [ ] Проверить текущие permissions рекламаций. - [ ] Добавить верхнюю группу меню `Рекламации`. - [ ] Добавить пункт `Все`, ведущий на текущий список. - [ ] Добавить пункт `ДКР` как отдельный URL или фильтр после решения. - [ ] Проверить открытие карточки рекламации. - [ ] Проверить создание рекламации по площадке ДКР. - [ ] Проверить связь с графиком монтажей. - [ ] Проверить блок запчастей и резервов. - [ ] Проверить экспорт рекламаций. ## 11. Критерии приемки - В меню есть группа `Рекламации`. - Внутри есть пункты `Все` и `ДКР`. - `Все` открывает текущий общий список рекламаций. - Текущие маршруты рекламаций сохранены. - Пользователи с прежним доступом сохраняют доступ. - Рекламации типа `ДКР` связаны с площадками ДКР. - При создании рекламации из площадки источник автоматически устанавливается `ДКР`. - При создании рекламации не из площадки источник устанавливается `Прочее`. - Пункт `Рекламации -> ДКР` открывает текущий список с фильтром по источнику `ДКР`. - Из рекламации по-прежнему можно работать с запчастями. - Перенос рекламации в график монтажей работает как раньше. ## 12. Открытые вопросы - Как будет использоваться связь с будущим `График заказов` при создании рекламации?