Explorar el Código

refactoring documentation

Alexander Musikhin hace 1 mes
padre
commit
e93d90b803

+ 6 - 4
docs/refactor/menu.md

@@ -91,12 +91,14 @@ Manager
 
 Статус: **Частично**.
 
-Текущий раздел рекламаций есть, но в новом меню должен иметь внутренние вкладки/подпункты `Все` и `ДКР`.
+Текущий раздел рекламаций есть, но в новом интерфейсе должен иметь отдельные вкладки `Все` и `ДКР`. Вкладка `ДКР` обязательна для отделения рекламаций, по которым формируется документация для оплаты.
 
 | Пункт | Статус | Текущий маршрут | Комментарий |
 |---|---|---|---|
-| Все | Есть | `reclamations.index` | Текущий общий список рекламаций. |
-| ДКР | Частично | `reclamations.index` | Текущий список с предустановленным фильтром по источнику `ДКР`. |
+| Все | Есть | `reclamations.index` | Общий список всех рекламаций. |
+| ДКР | Частично | `reclamations.index` | Отдельная вкладка текущего списка с обязательным фильтром по источнику `ДКР`; только здесь доступны рекламации для формирования платежных документов. |
+
+Рекламации из `График заказов` создаются из карточки заказа после выбора одного или нескольких МАФ. Открывается текущая форма создания, источник устанавливается `Прочее`; такие рекламации не выводятся во вкладке `ДКР`, и для них недоступна документация для оплаты.
 
 ### Запчасти
 
@@ -143,7 +145,7 @@ Manager
 
 | Пункт | Статус | Текущий маршрут | Комментарий |
 |---|---|---|---|
-| Позиции | Нужно реализовать | - | Новый общий справочник. Нужны колонки по шаблону калькулятора, импорт/экспорт. |
+| Позиции | Нужно реализовать | - | Новый общий справочник. Состав и порядок колонок утверждены в ТЗ, нужны импорт/экспорт. |
 | Карточка позиции | Нужно реализовать | - | Центральная карточка общей позиции/МАФ. |
 | Фото МАФ | Нужно реализовать | - | Фото позиции общего каталога. |
 | Документы | Нужно реализовать | - | Сопутствующие документы позиции через текущий файловый механизм. |

+ 12 - 5
docs/refactor/plan.md

@@ -38,8 +38,11 @@
 - [x] На новые модули выбранный год не влияет.
 - [x] `Технич. описание`, вероятно, будет поглощено модулем `Каталог общий`; готовый Laravel-модуль используем как источник экспорта.
 - [x] `Калькуляции` работают через внешний API: запрос по артикулу, возврат калькуляции при наличии.
-- [x] `Рекламации -> ДКР` реализуется как фильтр текущего списка.
+- [x] `Рекламации -> ДКР` реализуется как отдельная вкладка на основе текущего списка с обязательным фильтром по источнику.
 - [x] Источник рекламации хранится отдельным полем: при создании из площадки — `ДКР`, иначе `Прочее`.
+- [x] В интерфейсе рекламаций обязательны отдельные вкладки `Все` и `ДКР`.
+- [x] Из графика заказов рекламация создается по выбранным МАФ через текущую форму и получает источник `Прочее`.
+- [x] Документация для оплаты доступна только для рекламаций источника `ДКР`.
 - [x] Маршруты `Каталог общий` используют префикс `common-catalog/...`.
 - [x] Таблицы и права `Каталог общий` используют техническое имя `common-catalog`.
 - [x] Техническое имя модуля `Склад наличие`: `stock`.
@@ -87,7 +90,8 @@
 - [ ] Зафиксировать, что текущий `catalog.*` относится к каталогу ДКР.
 - [ ] Спроектировать маршруты с префиксом `common-catalog/...`, таблицы и права с техническим именем `common-catalog`.
 - [ ] Сверить текущую модель каталога ДКР с требованиями общего каталога как источник паттернов, без смешивания данных.
-- [ ] Определить недостающие поля по шаблону калькулятора.
+- [x] Зафиксировать состав и порядок колонок общего каталога.
+- [ ] Спроектировать типы данных, обязательность и валидацию утвержденных полей.
 - [ ] Использовать текущий файловый механизм для хранения фото и документов позиции.
 - [ ] Доработать импорт/экспорт позиций.
 - [ ] Доработать карточку позиции.
@@ -117,6 +121,8 @@
 - [ ] Описать источник данных для `График заказов`.
 - [ ] Спроектировать загрузку данных через 1С.
 - [ ] Реализовать или перенести `График заказов`.
+- [ ] Добавить карточку заказа с выбором одного или нескольких МАФ.
+- [ ] Добавить создание рекламации из заказа через текущую форму.
 - [ ] Реализовать `График доставок` в виде недельного списка.
 - [ ] Добавить ручное планирование занятости водителей.
 - [ ] Связать доставки с адресами из графика заказов.
@@ -125,11 +131,12 @@
 
 ## Этап 5. Рекламации
 
-- [ ] Разделить представление на `Все` и `ДКР`.
-- [ ] Реализовать `ДКР` как фильтр текущего списка.
+- [ ] Реализовать отдельные вкладки `Все` и `ДКР`.
+- [ ] Реализовать вкладку `ДКР` на текущем списке с обязательным фильтром по источнику.
 - [ ] Добавить отдельное поле источника рекламации: `ДКР` / `Прочее`.
 - [ ] Проверить создание рекламаций по площадкам ДКР.
-- [ ] Проверить связь рекламаций с графиком заказов.
+- [ ] Реализовать создание рекламации из графика заказов по выбранным МАФ с источником `Прочее`.
+- [ ] Запретить формирование документации для оплаты для рекламаций источника `Прочее`.
 - [ ] Проверить формирование запросов на запчасти из рекламации.
 - [ ] Сохранить текущую рабочую логику рекламаций.
 

+ 31 - 12
docs/refactor/tz-catalog-common.md

@@ -109,9 +109,32 @@
 
 Колонки:
 
-- взять текущие колонки каталога ДКР как ориентир для анализа;
-- дополнительно сверить с шаблоном калькулятора;
-- недостающие поля вынести в отдельный список доработок после анализа шаблона.
+1. `ID`;
+2. `Внешний вид`;
+3. `Артикул`;
+4. `Наименование по калькулятору`;
+5. `Вид`;
+6. `Габаритные размеры`;
+7. `Высота падения`;
+8. `Дополнительные сведения`;
+9. `Единица измерения габаритов`;
+10. `Вес, кг.`;
+11. `Объем, м3`;
+12. `Места`;
+13. `Состав`;
+14. `Возрастная группа`;
+15. `Макс. кол-во пользователей`;
+16. `Ед.`;
+17. `Серия`;
+18. `ТМ`;
+19. `Примечание`.
+
+Требования к колонкам:
+
+- указанный перечень и порядок являются целевым форматом общего каталога;
+- `Внешний вид` отображает фото позиции;
+- состав полей общего каталога не зависит от состава полей каталога ДКР;
+- типы данных, обязательность заполнения и правила валидации полей уточняются при проектировании модели данных.
 
 ## 7. Карточка позиции
 
@@ -155,14 +178,10 @@
 
 - спроектировать импорт и экспорт общего каталога;
 - использовать текущий импорт/экспорт каталога ДКР как технический референс, если это ускорит реализацию;
-- привести состав колонок к шаблону калькулятора после анализа шаблона;
+- использовать утвержденные колонки общего каталога в заданном порядке;
 - при импорте обновлять существующие позиции по стабильному ключу;
 - ошибки импорта должны быть понятны пользователю.
 
-Открытая доработка:
-
-- отдельно сверить шаблон калькулятора и текущие поля каталога ДКР как референс.
-
 ## 10. Связи с другими модулями
 
 | Модуль | Связь | Требование |
@@ -197,9 +216,9 @@
 - [ ] Спроектировать карточку позиции общего каталога.
 - [ ] Проверить загрузку фото позиции.
 - [ ] Спроектировать загрузку документов позиции через текущий файловый механизм.
-- [ ] Составить список текущих полей каталога ДКР как источник для анализа.
-- [ ] Сверить поля с шаблоном калькулятора.
-- [ ] Описать недостающие поля для доработки.
+- [x] Зафиксировать состав и порядок колонок общего каталога.
+- [ ] Спроектировать типы данных, обязательность и валидацию утвержденных полей.
+- [ ] Реализовать утвержденные поля в списке и карточке позиции.
 - [ ] Подготовить расширение блока документов до набора файлов, если нужно.
 - [ ] Определить, включается ли `Технич. описание` внутрь карточки общего каталога.
 - [ ] Добавить в карточку место под API-запрос `Калькуляции`.
@@ -213,12 +232,12 @@
 - Текущие маршруты `catalog.index` и `catalog.show` сохранены как маршруты каталога ДКР.
 - Заглушка `Каталог общий` доступна всем авторизованным пользователям.
 - После реализации общий каталог не смешивает данные с каталогом ДКР без отдельной миграции/синхронизации.
+- Список, импорт и экспорт общего каталога используют утвержденный состав и порядок колонок.
 - Карточка позиции общего каталога поддерживает фото, документы, техописание/выгрузку и калькуляцию по артикулу.
 - ДКР продолжает использовать свой каталог без поломки существующих связей.
 - Реорганизация меню выполнена как часть общей структуры Manager 2.0.
 
 ## 14. Открытые вопросы
 
-- Какие точные колонки должны быть добавлены по шаблону калькулятора?
 - Как именно включить готовый Laravel-модуль техописаний в общий каталог и какие экспорты оттуда переносить?
 - Какой точный формат API калькуляций: endpoint, параметры, авторизация, структура ответа?

+ 58 - 23
docs/refactor/tz-reclamations.md

@@ -44,7 +44,7 @@
 - связь с запчастями и резервами;
 - создание записи в графике монтажей из рекламации.
 
-На первом этапе бизнес-логика не меняется, выполняется только реорганизация меню и подготовка разделения `Все` / `ДКР`.
+На первом этапе сохраняется текущая бизнес-логика рекламаций и добавляется явное разделение интерфейса на вкладки `Все` / `ДКР`.
 
 ## 3. Место в меню
 
@@ -59,10 +59,10 @@
 Требования:
 
 - добавить верхний пункт меню `Рекламации`;
-- внутри разместить пункты `Все` и `ДКР`;
+- внутри раздела реализовать отдельные вкладки `Все` и `ДКР`;
 - текущий маршрут `reclamations.index` оставить без переименования;
 - текущий маршрут `reclamations.show` оставить без переименования;
-- для пункта `ДКР` использовать фильтр текущего списка;
+- вкладку `ДКР` реализовать на текущем списке с обязательным фильтром по источнику `ДКР`;
 - реорганизация меню выполняется в общем этапе Manager 2.0.
 
 ## 4. Права доступа
@@ -95,6 +95,8 @@
 - переход в карточку;
 - отображение статусов;
 - отображение рекламаций по ДКР и прочих рекламаций.
+- вкладка содержит все рекламации независимо от источника;
+- наличие рекламации во вкладке `Все` не дает права формировать платежные документы, если источник не `ДКР`.
 
 Текущая основа:
 
@@ -110,19 +112,23 @@
 Функционал:
 
 - отображение только рекламаций типа `ДКР`;
-- реализация через текущий список рекламаций с предустановленным фильтром по источнику;
+- отдельная вкладка интерфейса на основе текущего списка с обязательным фильтром по источнику;
 - создание рекламации с привязкой к площадке ДКР;
 - сохранение текущей карточки рекламации;
 - связь с графиком монтажей;
-- формирование запросов на запчасти.
+- формирование запросов на запчасти;
+- формирование документации для оплаты только по рекламациям источника `ДКР`.
 
 Принятое решение:
 
-- отдельный URL для списка `ДКР` не нужен;
-- используется текущий список с фильтром по источнику рекламации;
+- отдельный URL для списка `ДКР` не обязателен;
+- в интерфейсе обязательно отдельное разделение на вкладки `Все` и `ДКР`;
+- вкладка `ДКР` использует текущий список с обязательным фильтром по источнику рекламации;
 - для определения источника рекламации добавляется отдельное поле;
 - при создании рекламации из площадки источник устанавливается `ДКР`;
-- при создании рекламации не из площадки источник устанавливается `Прочее`.
+- при создании рекламации не из площадки, включая создание из графика заказов, источник устанавливается `Прочее`;
+- рекламации источника `Прочее` не выводятся во вкладке `ДКР`;
+- формирование документации для оплаты разрешено только для рекламаций источника `ДКР`.
 
 ## 7. Карточка рекламации
 
@@ -145,54 +151,83 @@
 
 - не менять структуру карточки;
 - добавить/использовать отображение источника рекламации `ДКР` / `Прочее`;
+- для источника `Прочее` скрыть и запретить серверной проверкой формирование документации для оплаты;
+- для источника `ДКР` сохранить текущую возможность формирования документации для оплаты;
 - сохранить текущие маршруты и формы.
 
-## 8. Связи
+## 8. Создание из графика заказов
+
+Сценарий:
+
+1. Пользователь открывает заказ в `График заказов`.
+2. Пользователь выбирает один или несколько МАФ заказа.
+3. Пользователь нажимает `Добавить рекламацию`.
+4. Открывается текущая форма создания рекламации.
+5. В форму передаются заказ и выбранные МАФ.
+6. Пользователь заполняет форму по текущему процессу и сохраняет рекламацию.
+
+Требования:
+
+- использовать существующую форму создания рекламации;
+- поддержать выбор одного или нескольких МАФ;
+- привязать созданную рекламацию к заказу и выбранным МАФ;
+- источник созданной рекламации установить `Прочее`;
+- созданная рекламация отображается во вкладке `Все`;
+- созданная рекламация не отображается во вкладке `ДКР`;
+- для нее недоступно формирование документации для оплаты;
+- остальные функции карточки рекламации работают по текущим правилам.
+
+## 9. Связи
 
 | Модуль | Связь | Требование |
 |---|---|---|
 | ДКР / Площадки | Используется при создании рекламации типа `ДКР` | Сохранить текущую связь. |
 | Каталог общий | Данные по позициям | Использовать общий каталог как источник номенклатуры. |
-| График заказов | Используется при создании рекламации | Реализовать после появления графика заказов. |
+| График заказов | Из заказа создается рекламация по одному или нескольким МАФ | Открывать текущую форму создания с предзаполненным заказом и выбранными МАФ; источник `Прочее`. |
 | График монтажей | Рекламация может попасть в монтажный график | Сохранить текущую связь. |
 | Запчасти | Из рекламации формируется запрос на запчасть | Сохранить текущую связь и резервы. |
 
-## 9. Что не входит в первый этап
+## 10. Что не входит в первый этап
 
 - изменение текущих маршрутов `reclamations.*`;
-- переработка модели `Reclamation`;
+- переработка модели `Reclamation` сверх добавления поля источника и связей с заказом/выбранными МАФ;
 - изменение логики резервов запчастей;
-- изменение генерации документов;
+- изменение состава и шаблонов документации для оплаты;
 - разработка графика заказов;
 - внедрение новых прав доступа.
 
-## 10. Этапы реализации
+## 11. Этапы реализации
 
 - [ ] Проверить текущие маршруты `reclamations.*`.
 - [ ] Проверить текущие permissions рекламаций.
 - [ ] Добавить верхнюю группу меню `Рекламации`.
-- [ ] Добавить пункт `Все`, ведущий на текущий список.
-- [ ] Добавить пункт `ДКР` как отдельный URL или фильтр после решения.
+- [ ] Добавить отдельные вкладки `Все` и `ДКР`.
+- [ ] Реализовать вкладку `ДКР` на текущем списке с обязательным фильтром по источнику.
+- [ ] Добавить отдельное поле источника рекламации `ДКР` / `Прочее`.
 - [ ] Проверить открытие карточки рекламации.
 - [ ] Проверить создание рекламации по площадке ДКР.
+- [ ] Реализовать создание рекламации из графика заказов с выбором одного или нескольких МАФ.
+- [ ] Передавать заказ и выбранные МАФ в текущую форму создания рекламации.
+- [ ] Запретить формирование документации для оплаты для источника `Прочее`.
 - [ ] Проверить связь с графиком монтажей.
 - [ ] Проверить блок запчастей и резервов.
 - [ ] Проверить экспорт рекламаций.
 
-## 11. Критерии приемки
+## 12. Критерии приемки
 
 - В меню есть группа `Рекламации`.
-- Внутри есть пункты `Все` и `ДКР`.
+- Внутри есть отдельные вкладки `Все` и `ДКР`.
 - `Все` открывает текущий общий список рекламаций.
 - Текущие маршруты рекламаций сохранены.
 - Пользователи с прежним доступом сохраняют доступ.
 - Рекламации типа `ДКР` связаны с площадками ДКР.
 - При создании рекламации из площадки источник автоматически устанавливается `ДКР`.
 - При создании рекламации не из площадки источник устанавливается `Прочее`.
-- Пункт `Рекламации -> ДКР` открывает текущий список с фильтром по источнику `ДКР`.
+- Вкладка `ДКР` открывает текущий список с обязательным фильтром по источнику `ДКР`.
+- Рекламации из графика заказов не попадают во вкладку `ДКР`.
+- Из графика заказов можно выбрать один или несколько МАФ и открыть текущую форму создания рекламации.
+- Созданная из графика заказов рекламация привязана к заказу и выбранным МАФ.
+- Документация для оплаты формируется только для рекламаций источника `ДКР`.
+- Для рекламаций источника `Прочее` действие формирования платежных документов отсутствует и блокируется на сервере.
 - Из рекламации по-прежнему можно работать с запчастями.
 - Перенос рекламации в график монтажей работает как раньше.
-
-## 12. Открытые вопросы
-
-- Как будет использоваться связь с будущим `График заказов` при создании рекламации?

+ 25 - 2
docs/refactor/tz-schedules.md

@@ -104,7 +104,21 @@
 - фильтры по дате, заказу, позиции, статусу;
 - импорт/обновление данных из 1С;
 - история последней загрузки;
-- обработка ошибок загрузки.
+- обработка ошибок загрузки;
+- переход в карточку заказа;
+- выбор одного или нескольких МАФ заказа;
+- действие `Добавить рекламацию` для выбранных МАФ;
+- открытие существующей формы создания рекламации с передачей заказа и выбранных МАФ.
+
+Требования к созданию рекламации:
+
+- рекламация создается из карточки заказа, а не напрямую из строки списка;
+- пользователь должен выбрать минимум один МАФ;
+- допускается выбор нескольких МАФ;
+- после нажатия `Добавить рекламацию` открывается текущая форма создания рекламации;
+- источник рекламации устанавливается `Прочее`;
+- рекламация отображается в общей вкладке рекламаций и не отображается во вкладке `ДКР`;
+- для такой рекламации не формируется документация для оплаты.
 
 Открытые вопросы:
 
@@ -196,6 +210,7 @@
 | Каталог общий | График заказов | Позиции заказа и справочные данные по номенклатуре. |
 | График заказов | График доставок | Адреса и заказы для планирования доставки. |
 | График заказов | График монтажей | Связь производственного графика с монтажом. |
+| График заказов | Рекламации | Создание рекламации из заказа по выбранным МАФ через текущую форму. |
 | ДКР / Площадки | График монтажей | Площадки для монтажных работ. |
 | Рекламации | График монтажей | Работы по рекламациям. |
 
@@ -203,7 +218,8 @@
 
 - связи не должны ломать автономность ДКР;
 - текущий график монтажей должен работать до реализации графика заказов;
-- новые графики должны опираться на `Каталог общий`, а не на каталог внутри ДКР.
+- новые графики должны опираться на `Каталог общий`, а не на каталог внутри ДКР;
+- рекламация из графика заказов должна получать источник `Прочее`.
 
 ## 9. Данные и модели
 
@@ -262,6 +278,10 @@
 - [ ] Проверить экспорт графика монтажей.
 - [ ] Составить отдельный список полей для будущего графика заказов.
 - [ ] Составить отдельный список полей для будущего графика доставок.
+- [ ] Реализовать карточку заказа с выбором одного или нескольких МАФ.
+- [ ] Добавить действие `Добавить рекламацию`.
+- [ ] Открывать текущую форму рекламации с переданными заказом и выбранными МАФ.
+- [ ] Устанавливать источник созданной рекламации `Прочее`.
 
 ## 12. Критерии приемки
 
@@ -273,6 +293,9 @@
 - Пользователи с текущим доступом к графику монтажей сохраняют доступ.
 - График монтажей продолжает работать с площадками ДКР.
 - График монтажей продолжает работать с рекламациями.
+- Из карточки заказа можно выбрать один или несколько МАФ и открыть форму создания рекламации.
+- Созданная рекламация связана с заказом и выбранными МАФ.
+- Созданная рекламация имеет источник `Прочее`, не попадает во вкладку `ДКР` и не позволяет формировать документацию для оплаты.
 
 ## 13. Открытые вопросы