# ТЗ: Модуль Рекламации Связанные документы: - [План реорганизации](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. Создание из графика заказов Сценарий: 1. Пользователь открывает заказ в `График заказов`. 2. Пользователь выбирает один или несколько МАФ заказа. 3. Пользователь нажимает `Добавить рекламацию`. 4. Открывается текущая форма создания рекламации. 5. В форму передаются заказ и выбранные МАФ. 6. Пользователь заполняет форму по текущему процессу и сохраняет рекламацию. Требования: - использовать существующую форму создания рекламации; - поддержать выбор одного или нескольких МАФ; - привязать созданную рекламацию к заказу и выбранным МАФ; - источник созданной рекламации установить `Прочее`; - созданная рекламация отображается во вкладке `Все`; - созданная рекламация не отображается во вкладке `ДКР`; - для нее недоступно формирование документации для оплаты; - остальные функции карточки рекламации работают по текущим правилам. ## 9. Связи | Модуль | Связь | Требование | |---|---|---| | ДКР / Площадки | Используется при создании рекламации типа `ДКР` | Сохранить текущую связь. | | Каталог общий | Данные по позициям | Использовать общий каталог как источник номенклатуры. | | График заказов | Из заказа создается рекламация по одному или нескольким МАФ | Открывать текущую форму создания с предзаполненным заказом и выбранными МАФ; источник `Прочее`. | | График монтажей | Рекламация может попасть в монтажный график | Сохранить текущую связь. | | Запчасти | Из рекламации формируется запрос на запчасть | Сохранить текущую связь и резервы. | ## 10. Что не входит в первый этап - изменение текущих маршрутов `reclamations.*`; - переработка модели `Reclamation` сверх добавления поля источника и связей с заказом/выбранными МАФ; - изменение логики резервов запчастей; - изменение состава и шаблонов документации для оплаты; - разработка графика заказов; - внедрение новых прав доступа. ## 11. Этапы реализации - [ ] Проверить текущие маршруты `reclamations.*`. - [ ] Проверить текущие permissions рекламаций. - [ ] Добавить верхнюю группу меню `Рекламации`. - [ ] Добавить отдельные вкладки `Все` и `ДКР`. - [ ] Реализовать вкладку `ДКР` на текущем списке с обязательным фильтром по источнику. - [ ] Добавить отдельное поле источника рекламации `ДКР` / `Прочее`. - [ ] Проверить открытие карточки рекламации. - [ ] Проверить создание рекламации по площадке ДКР. - [ ] Реализовать создание рекламации из графика заказов с выбором одного или нескольких МАФ. - [ ] Передавать заказ и выбранные МАФ в текущую форму создания рекламации. - [ ] Запретить формирование документации для оплаты для источника `Прочее`. - [ ] Проверить связь с графиком монтажей. - [ ] Проверить блок запчастей и резервов. - [ ] Проверить экспорт рекламаций. ## 12. Критерии приемки - В меню есть группа `Рекламации`. - Внутри есть отдельные вкладки `Все` и `ДКР`. - `Все` открывает текущий общий список рекламаций. - Текущие маршруты рекламаций сохранены. - Пользователи с прежним доступом сохраняют доступ. - Рекламации типа `ДКР` связаны с площадками ДКР. - При создании рекламации из площадки источник автоматически устанавливается `ДКР`. - При создании рекламации не из площадки источник устанавливается `Прочее`. - Вкладка `ДКР` открывает текущий список с обязательным фильтром по источнику `ДКР`. - Рекламации из графика заказов не попадают во вкладку `ДКР`. - Из графика заказов можно выбрать один или несколько МАФ и открыть текущую форму создания рекламации. - Созданная из графика заказов рекламация привязана к заказу и выбранным МАФ. - Документация для оплаты формируется только для рекламаций источника `ДКР`. - Для рекламаций источника `Прочее` действие формирования платежных документов отсутствует и блокируется на сервере. - Из рекламации по-прежнему можно работать с запчастями. - Перенос рекламации в график монтажей работает как раньше.