|
@@ -62,7 +62,7 @@
|
|
|
- внутри раздела реализовать отдельные вкладки `Все` и `ДКР`;
|
|
- внутри раздела реализовать отдельные вкладки `Все` и `ДКР`;
|
|
|
- текущий маршрут `reclamations.index` оставить без переименования;
|
|
- текущий маршрут `reclamations.index` оставить без переименования;
|
|
|
- текущий маршрут `reclamations.show` оставить без переименования;
|
|
- текущий маршрут `reclamations.show` оставить без переименования;
|
|
|
-- вкладку `ДКР` реализовать на текущем списке с обязательным фильтром по источнику `ДКР`;
|
|
|
|
|
|
|
+- вкладку `ДКР` реализовать на текущем списке с обязательным фильтром по типу рекламации `ДКР`;
|
|
|
- реорганизация меню выполняется в общем этапе Manager 2.0.
|
|
- реорганизация меню выполняется в общем этапе Manager 2.0.
|
|
|
|
|
|
|
|
## 4. Права доступа
|
|
## 4. Права доступа
|
|
@@ -81,7 +81,58 @@
|
|
|
- пользователи с текущим доступом к рекламациям должны сохранить доступ;
|
|
- пользователи с текущим доступом к рекламациям должны сохранить доступ;
|
|
|
- верхний пункт `Рекламации` показывать, если доступен хотя бы один дочерний пункт.
|
|
- верхний пункт `Рекламации` показывать, если доступен хотя бы один дочерний пункт.
|
|
|
|
|
|
|
|
-## 5. Подраздел `Все`
|
|
|
|
|
|
|
+## 5. Справочник типов рекламаций
|
|
|
|
|
+
|
|
|
|
|
+Тип рекламации должен храниться не строковым полем, а ссылкой на отдельный системный справочник.
|
|
|
|
|
+
|
|
|
|
|
+### 5.1. Таблица типов
|
|
|
|
|
+
|
|
|
|
|
+Создать таблицу `reclamation_types` со следующими полями:
|
|
|
|
|
+
|
|
|
|
|
+| Поле | Тип | Требование |
|
|
|
|
|
+|---|---|---|
|
|
|
|
|
+| `id` | `bigint` | Первичный ключ. |
|
|
|
|
|
+| `code` | `string` | Уникальный стабильный код типа. |
|
|
|
|
|
+| `name` | `string` | Отображаемое название типа. |
|
|
|
|
|
+| `created_at`, `updated_at` | `timestamps` | Служебные даты. |
|
|
|
|
|
+
|
|
|
|
|
+Начальные записи справочника:
|
|
|
|
|
+
|
|
|
|
|
+| `code` | `name` |
|
|
|
|
|
+|---|---|
|
|
|
|
|
+| `dkr` | `ДКР` |
|
|
|
|
|
+| `other` | `Прочее` |
|
|
|
|
|
+
|
|
|
|
|
+Требования:
|
|
|
|
|
+
|
|
|
|
|
+- создать модель `ReclamationType`;
|
|
|
|
|
+- определить в модели константы кодов `CODE_DKR = 'dkr'` и `CODE_OTHER = 'other'`;
|
|
|
|
|
+- создать сидер `ReclamationTypeSeeder`;
|
|
|
|
|
+- сидер должен идемпотентно создавать или обновлять типы по полю `code`;
|
|
|
|
|
+- зарегистрировать `ReclamationTypeSeeder` в общем процессе заполнения БД;
|
|
|
|
|
+- системные коды `dkr` и `other` использовать в бизнес-логике вместо сравнения отображаемых названий;
|
|
|
|
|
+- на текущем этапе отдельный интерфейс управления справочником не требуется;
|
|
|
|
|
+- удаление используемого типа рекламации должно быть запрещено внешним ключом (`restrictOnDelete`).
|
|
|
|
|
+
|
|
|
|
|
+### 5.2. Связь с рекламацией
|
|
|
|
|
+
|
|
|
|
|
+В таблицу `reclamations` добавить обязательное поле `reclamation_type_id`:
|
|
|
|
|
+
|
|
|
|
|
+- внешний ключ на `reclamation_types.id`;
|
|
|
|
|
+- индекс для фильтрации списков;
|
|
|
|
|
+- связь `Reclamation::reclamationType()`;
|
|
|
|
|
+- обратная связь `ReclamationType::reclamations()`;
|
|
|
|
|
+- существующим рекламациям при переносе данных назначить тип с кодом `dkr`;
|
|
|
|
|
+- после заполнения существующих записей поле не должно допускать `null`.
|
|
|
|
|
+
|
|
|
|
|
+Тип назначается сервером по сценарию создания:
|
|
|
|
|
+
|
|
|
|
|
+- рекламация, созданная из площадки ДКР, получает тип `dkr`;
|
|
|
|
|
+- рекламация, созданная не из площадки, включая график заказов, получает тип `other`;
|
|
|
|
|
+- клиентская форма не должна позволять подменить автоматически определенный тип;
|
|
|
|
|
+- если в будущем потребуется ручной выбор типа, это оформляется отдельным изменением требований и прав доступа.
|
|
|
|
|
+
|
|
|
|
|
+## 6. Подраздел `Все`
|
|
|
|
|
|
|
|
Назначение:
|
|
Назначение:
|
|
|
|
|
|
|
@@ -94,15 +145,15 @@
|
|
|
- экспорт;
|
|
- экспорт;
|
|
|
- переход в карточку;
|
|
- переход в карточку;
|
|
|
- отображение статусов;
|
|
- отображение статусов;
|
|
|
-- отображение рекламаций по ДКР и прочих рекламаций.
|
|
|
|
|
-- вкладка содержит все рекламации независимо от источника;
|
|
|
|
|
-- наличие рекламации во вкладке `Все` не дает права формировать платежные документы, если источник не `ДКР`.
|
|
|
|
|
|
|
+- отображение рекламаций по ДКР и прочих рекламаций;
|
|
|
|
|
+- вкладка содержит все рекламации независимо от типа;
|
|
|
|
|
+- наличие рекламации во вкладке `Все` не дает права формировать платежные документы, если тип не `ДКР`.
|
|
|
|
|
|
|
|
Текущая основа:
|
|
Текущая основа:
|
|
|
|
|
|
|
|
- `reclamations.index`.
|
|
- `reclamations.index`.
|
|
|
|
|
|
|
|
-## 6. Подраздел `ДКР`
|
|
|
|
|
|
|
+## 7. Подраздел `ДКР`
|
|
|
|
|
|
|
|
Назначение:
|
|
Назначение:
|
|
|
|
|
|
|
@@ -112,25 +163,25 @@
|
|
|
Функционал:
|
|
Функционал:
|
|
|
|
|
|
|
|
- отображение только рекламаций типа `ДКР`;
|
|
- отображение только рекламаций типа `ДКР`;
|
|
|
-- отдельная вкладка интерфейса на основе текущего списка с обязательным фильтром по источнику;
|
|
|
|
|
|
|
+- отдельная вкладка интерфейса на основе текущего списка с обязательным фильтром по типу рекламации;
|
|
|
- создание рекламации с привязкой к площадке ДКР;
|
|
- создание рекламации с привязкой к площадке ДКР;
|
|
|
- сохранение текущей карточки рекламации;
|
|
- сохранение текущей карточки рекламации;
|
|
|
- связь с графиком монтажей;
|
|
- связь с графиком монтажей;
|
|
|
- формирование запросов на запчасти;
|
|
- формирование запросов на запчасти;
|
|
|
-- формирование документации для оплаты только по рекламациям источника `ДКР`.
|
|
|
|
|
|
|
+- формирование документации для оплаты только по рекламациям типа `ДКР`.
|
|
|
|
|
|
|
|
Принятое решение:
|
|
Принятое решение:
|
|
|
|
|
|
|
|
- отдельный URL для списка `ДКР` не обязателен;
|
|
- отдельный URL для списка `ДКР` не обязателен;
|
|
|
- в интерфейсе обязательно отдельное разделение на вкладки `Все` и `ДКР`;
|
|
- в интерфейсе обязательно отдельное разделение на вкладки `Все` и `ДКР`;
|
|
|
-- вкладка `ДКР` использует текущий список с обязательным фильтром по источнику рекламации;
|
|
|
|
|
-- для определения источника рекламации добавляется отдельное поле;
|
|
|
|
|
-- при создании рекламации из площадки источник устанавливается `ДКР`;
|
|
|
|
|
-- при создании рекламации не из площадки, включая создание из графика заказов, источник устанавливается `Прочее`;
|
|
|
|
|
-- рекламации источника `Прочее` не выводятся во вкладке `ДКР`;
|
|
|
|
|
-- формирование документации для оплаты разрешено только для рекламаций источника `ДКР`.
|
|
|
|
|
|
|
+- вкладка `ДКР` использует текущий список с обязательным фильтром по `reclamation_type_id` типа с кодом `dkr`;
|
|
|
|
|
+- тип рекламации определяется через справочник `reclamation_types`;
|
|
|
|
|
+- при создании рекламации из площадки назначается тип `dkr` (`ДКР`);
|
|
|
|
|
+- при создании рекламации не из площадки, включая создание из графика заказов, назначается тип `other` (`Прочее`);
|
|
|
|
|
+- рекламации типа `Прочее` не выводятся во вкладке `ДКР`;
|
|
|
|
|
+- формирование документации для оплаты разрешено только для рекламаций типа `ДКР`.
|
|
|
|
|
|
|
|
-## 7. Карточка рекламации
|
|
|
|
|
|
|
+## 8. Карточка рекламации
|
|
|
|
|
|
|
|
Карточка должна сохранить текущий функционал:
|
|
Карточка должна сохранить текущий функционал:
|
|
|
|
|
|
|
@@ -150,12 +201,12 @@
|
|
|
Изменения на первом этапе:
|
|
Изменения на первом этапе:
|
|
|
|
|
|
|
|
- не менять структуру карточки;
|
|
- не менять структуру карточки;
|
|
|
-- добавить/использовать отображение источника рекламации `ДКР` / `Прочее`;
|
|
|
|
|
-- для источника `Прочее` скрыть и запретить серверной проверкой формирование документации для оплаты;
|
|
|
|
|
-- для источника `ДКР` сохранить текущую возможность формирования документации для оплаты;
|
|
|
|
|
|
|
+- отображать тип рекламации из справочника `ДКР` / `Прочее`;
|
|
|
|
|
+- для типа `Прочее` скрыть и запретить серверной проверкой формирование документации для оплаты;
|
|
|
|
|
+- для типа `ДКР` сохранить текущую возможность формирования документации для оплаты;
|
|
|
- сохранить текущие маршруты и формы.
|
|
- сохранить текущие маршруты и формы.
|
|
|
|
|
|
|
|
-## 8. Создание из графика заказов
|
|
|
|
|
|
|
+## 9. Создание из графика заказов
|
|
|
|
|
|
|
|
Сценарий:
|
|
Сценарий:
|
|
|
|
|
|
|
@@ -171,49 +222,53 @@
|
|
|
- использовать существующую форму создания рекламации;
|
|
- использовать существующую форму создания рекламации;
|
|
|
- поддержать выбор одного или нескольких МАФ;
|
|
- поддержать выбор одного или нескольких МАФ;
|
|
|
- привязать созданную рекламацию к заказу и выбранным МАФ;
|
|
- привязать созданную рекламацию к заказу и выбранным МАФ;
|
|
|
-- источник созданной рекламации установить `Прочее`;
|
|
|
|
|
|
|
+- назначить созданной рекламации тип `other` (`Прочее`);
|
|
|
- созданная рекламация отображается во вкладке `Все`;
|
|
- созданная рекламация отображается во вкладке `Все`;
|
|
|
- созданная рекламация не отображается во вкладке `ДКР`;
|
|
- созданная рекламация не отображается во вкладке `ДКР`;
|
|
|
- для нее недоступно формирование документации для оплаты;
|
|
- для нее недоступно формирование документации для оплаты;
|
|
|
- остальные функции карточки рекламации работают по текущим правилам.
|
|
- остальные функции карточки рекламации работают по текущим правилам.
|
|
|
|
|
|
|
|
-## 9. Связи
|
|
|
|
|
|
|
+## 10. Связи
|
|
|
|
|
|
|
|
| Модуль | Связь | Требование |
|
|
| Модуль | Связь | Требование |
|
|
|
|---|---|---|
|
|
|---|---|---|
|
|
|
| ДКР / Площадки | Используется при создании рекламации типа `ДКР` | Сохранить текущую связь. |
|
|
| ДКР / Площадки | Используется при создании рекламации типа `ДКР` | Сохранить текущую связь. |
|
|
|
| Каталог общий | Данные по позициям | Использовать общий каталог как источник номенклатуры. |
|
|
| Каталог общий | Данные по позициям | Использовать общий каталог как источник номенклатуры. |
|
|
|
-| График заказов | Из заказа создается рекламация по одному или нескольким МАФ | Открывать текущую форму создания с предзаполненным заказом и выбранными МАФ; источник `Прочее`. |
|
|
|
|
|
|
|
+| График заказов | Из заказа создается рекламация по одному или нескольким МАФ | Открывать текущую форму создания с предзаполненным заказом и выбранными МАФ; назначать тип `other` (`Прочее`). |
|
|
|
| График монтажей | Рекламация может попасть в монтажный график | Сохранить текущую связь. |
|
|
| График монтажей | Рекламация может попасть в монтажный график | Сохранить текущую связь. |
|
|
|
| Запчасти | Из рекламации формируется запрос на запчасть | Сохранить текущую связь и резервы. |
|
|
| Запчасти | Из рекламации формируется запрос на запчасть | Сохранить текущую связь и резервы. |
|
|
|
|
|
|
|
|
-## 10. Что не входит в первый этап
|
|
|
|
|
|
|
+## 11. Что не входит в первый этап
|
|
|
|
|
|
|
|
- изменение текущих маршрутов `reclamations.*`;
|
|
- изменение текущих маршрутов `reclamations.*`;
|
|
|
-- переработка модели `Reclamation` сверх добавления поля источника и связей с заказом/выбранными МАФ;
|
|
|
|
|
|
|
+- переработка модели `Reclamation` сверх добавления типа рекламации и связей с заказом/выбранными МАФ;
|
|
|
- изменение логики резервов запчастей;
|
|
- изменение логики резервов запчастей;
|
|
|
- изменение состава и шаблонов документации для оплаты;
|
|
- изменение состава и шаблонов документации для оплаты;
|
|
|
- разработка графика заказов;
|
|
- разработка графика заказов;
|
|
|
- внедрение новых прав доступа.
|
|
- внедрение новых прав доступа.
|
|
|
|
|
|
|
|
-## 11. Этапы реализации
|
|
|
|
|
|
|
+## 12. Этапы реализации
|
|
|
|
|
|
|
|
- [ ] Проверить текущие маршруты `reclamations.*`.
|
|
- [ ] Проверить текущие маршруты `reclamations.*`.
|
|
|
- [ ] Проверить текущие permissions рекламаций.
|
|
- [ ] Проверить текущие permissions рекламаций.
|
|
|
- [ ] Добавить верхнюю группу меню `Рекламации`.
|
|
- [ ] Добавить верхнюю группу меню `Рекламации`.
|
|
|
- [ ] Добавить отдельные вкладки `Все` и `ДКР`.
|
|
- [ ] Добавить отдельные вкладки `Все` и `ДКР`.
|
|
|
-- [ ] Реализовать вкладку `ДКР` на текущем списке с обязательным фильтром по источнику.
|
|
|
|
|
-- [ ] Добавить отдельное поле источника рекламации `ДКР` / `Прочее`.
|
|
|
|
|
|
|
+- [ ] Создать таблицу `reclamation_types` и модель `ReclamationType`.
|
|
|
|
|
+- [ ] Создать и зарегистрировать `ReclamationTypeSeeder` с типами `dkr` (`ДКР`) и `other` (`Прочее`).
|
|
|
|
|
+- [ ] Добавить `reclamations.reclamation_type_id`, внешний ключ, индекс и связи моделей.
|
|
|
|
|
+- [ ] Назначить существующим рекламациям тип `dkr` и сделать поле типа обязательным.
|
|
|
|
|
+- [ ] Реализовать вкладку `ДКР` на текущем списке с обязательным фильтром по типу `dkr`.
|
|
|
- [ ] Проверить открытие карточки рекламации.
|
|
- [ ] Проверить открытие карточки рекламации.
|
|
|
- [ ] Проверить создание рекламации по площадке ДКР.
|
|
- [ ] Проверить создание рекламации по площадке ДКР.
|
|
|
- [ ] Реализовать создание рекламации из графика заказов с выбором одного или нескольких МАФ.
|
|
- [ ] Реализовать создание рекламации из графика заказов с выбором одного или нескольких МАФ.
|
|
|
- [ ] Передавать заказ и выбранные МАФ в текущую форму создания рекламации.
|
|
- [ ] Передавать заказ и выбранные МАФ в текущую форму создания рекламации.
|
|
|
-- [ ] Запретить формирование документации для оплаты для источника `Прочее`.
|
|
|
|
|
|
|
+- [ ] Автоматически назначать тип рекламации в зависимости от сценария создания.
|
|
|
|
|
+- [ ] Запретить формирование документации для оплаты для типа `Прочее`.
|
|
|
- [ ] Проверить связь с графиком монтажей.
|
|
- [ ] Проверить связь с графиком монтажей.
|
|
|
- [ ] Проверить блок запчастей и резервов.
|
|
- [ ] Проверить блок запчастей и резервов.
|
|
|
- [ ] Проверить экспорт рекламаций.
|
|
- [ ] Проверить экспорт рекламаций.
|
|
|
|
|
|
|
|
-## 12. Критерии приемки
|
|
|
|
|
|
|
+## 13. Критерии приемки
|
|
|
|
|
|
|
|
- В меню есть группа `Рекламации`.
|
|
- В меню есть группа `Рекламации`.
|
|
|
- Внутри есть отдельные вкладки `Все` и `ДКР`.
|
|
- Внутри есть отдельные вкладки `Все` и `ДКР`.
|
|
@@ -221,13 +276,17 @@
|
|
|
- Текущие маршруты рекламаций сохранены.
|
|
- Текущие маршруты рекламаций сохранены.
|
|
|
- Пользователи с прежним доступом сохраняют доступ.
|
|
- Пользователи с прежним доступом сохраняют доступ.
|
|
|
- Рекламации типа `ДКР` связаны с площадками ДКР.
|
|
- Рекламации типа `ДКР` связаны с площадками ДКР.
|
|
|
-- При создании рекламации из площадки источник автоматически устанавливается `ДКР`.
|
|
|
|
|
-- При создании рекламации не из площадки источник устанавливается `Прочее`.
|
|
|
|
|
-- Вкладка `ДКР` открывает текущий список с обязательным фильтром по источнику `ДКР`.
|
|
|
|
|
|
|
+- Типы рекламаций хранятся в отдельной таблице `reclamation_types`.
|
|
|
|
|
+- Сидер создает типы `dkr` (`ДКР`) и `other` (`Прочее`) без дублирования при повторном запуске.
|
|
|
|
|
+- Каждая рекламация имеет обязательную ссылку `reclamation_type_id` на справочник типов.
|
|
|
|
|
+- Существующие рекламации после миграции имеют тип `ДКР`.
|
|
|
|
|
+- При создании рекламации из площадки автоматически назначается тип `dkr` (`ДКР`).
|
|
|
|
|
+- При создании рекламации не из площадки назначается тип `other` (`Прочее`).
|
|
|
|
|
+- Вкладка `ДКР` открывает текущий список с обязательным фильтром по типу `dkr`.
|
|
|
- Рекламации из графика заказов не попадают во вкладку `ДКР`.
|
|
- Рекламации из графика заказов не попадают во вкладку `ДКР`.
|
|
|
- Из графика заказов можно выбрать один или несколько МАФ и открыть текущую форму создания рекламации.
|
|
- Из графика заказов можно выбрать один или несколько МАФ и открыть текущую форму создания рекламации.
|
|
|
- Созданная из графика заказов рекламация привязана к заказу и выбранным МАФ.
|
|
- Созданная из графика заказов рекламация привязана к заказу и выбранным МАФ.
|
|
|
-- Документация для оплаты формируется только для рекламаций источника `ДКР`.
|
|
|
|
|
-- Для рекламаций источника `Прочее` действие формирования платежных документов отсутствует и блокируется на сервере.
|
|
|
|
|
|
|
+- Документация для оплаты формируется только для рекламаций типа `ДКР`.
|
|
|
|
|
+- Для рекламаций типа `Прочее` действие формирования платежных документов отсутствует и блокируется на сервере.
|
|
|
- Из рекламации по-прежнему можно работать с запчастями.
|
|
- Из рекламации по-прежнему можно работать с запчастями.
|
|
|
- Перенос рекламации в график монтажей работает как раньше.
|
|
- Перенос рекламации в график монтажей работает как раньше.
|