|
|
@@ -36,10 +36,13 @@
|
|
|
- [x] Реорганизацию меню делаем сразу общей для всей платформы Manager 2.0.
|
|
|
- [x] Заглушки новых модулей показываем всем авторизованным пользователям.
|
|
|
- [x] На новые модули выбранный год не влияет.
|
|
|
-- [x] `Технич. описание`, вероятно, будет поглощено модулем `Каталог общий`; готовый Laravel-модуль используем как источник экспорта.
|
|
|
+- [x] `Технич. описание` встроено в модуль `Каталог общий`; готовый Laravel-модуль используем как источник экспорта.
|
|
|
- [x] `Калькуляции` работают через внешний API: запрос по артикулу, возврат калькуляции при наличии.
|
|
|
-- [x] `Рекламации -> ДКР` реализуется как фильтр текущего списка.
|
|
|
-- [x] Источник рекламации хранится отдельным полем: при создании из площадки — `ДКР`, иначе `Прочее`.
|
|
|
+- [x] `Рекламации -> ДКР` реализуется как отдельная вкладка на основе текущего списка с обязательным фильтром по типу `dkr`.
|
|
|
+- [x] Тип рекламации хранится через обязательную связь со справочником `reclamation_types`; начальные типы `ДКР` и `Прочее` создаются сидером.
|
|
|
+- [x] В интерфейсе рекламаций обязательны отдельные вкладки `Все` и `ДКР`.
|
|
|
+- [x] Из графика заказов рекламация создается по выбранным МАФ через текущую форму и получает тип `other` (`Прочее`).
|
|
|
+- [x] Документация для оплаты доступна только для рекламаций типа `ДКР`.
|
|
|
- [x] Маршруты `Каталог общий` используют префикс `common-catalog/...`.
|
|
|
- [x] Таблицы и права `Каталог общий` используют техническое имя `common-catalog`.
|
|
|
- [x] Техническое имя модуля `Склад наличие`: `stock`.
|
|
|
@@ -62,40 +65,113 @@
|
|
|
- [x] Написать отдельное ТЗ для модуля `Калькуляции`: [tz-calculations.md](tz-calculations.md).
|
|
|
- [x] Написать отдельное ТЗ для модуля `Администратор`: [tz-admin.md](tz-admin.md).
|
|
|
|
|
|
-## Этап 1. Реорганизация меню
|
|
|
-
|
|
|
-- [ ] Проверить текущие permissions для всех существующих пунктов меню.
|
|
|
-- [ ] Для новых пунктов-заглушек открыть доступ всем авторизованным пользователям.
|
|
|
-- [ ] Добавить общий механизм страницы `В разработке`.
|
|
|
-- [ ] Добавить маршруты для новых разделов-заглушек.
|
|
|
-- [ ] Перестроить `resources/views/layouts/menu.blade.php` под новую древовидную структуру.
|
|
|
-- [ ] Сгруппировать существующие пункты ДКР внутрь верхнего меню `ДКР`.
|
|
|
-- [ ] Оставить `Каталог` внутри меню `ДКР`.
|
|
|
-- [ ] Добавить отдельный верхний пункт `Каталог общий`.
|
|
|
-- [ ] Сгруппировать `График монтажей` внутрь верхнего меню `Графики`.
|
|
|
-- [ ] Добавить заглушки `График заказов` и `График доставок`.
|
|
|
-- [ ] Разложить `Рекламации` на `Все` и `ДКР`.
|
|
|
-- [ ] Оставить `Запчасти` отдельной верхней группой с текущими вкладками.
|
|
|
-- [ ] Добавить заглушки `Склад наличие -> Наличие` и `Склад наличие -> Заказы`.
|
|
|
-- [ ] Добавить заглушки `Документация`, `Каталог общий`, `Технич. описание`, `Калькуляции`.
|
|
|
-- [ ] Проверить, что выбранный год не скрывает и не фильтрует новые модули.
|
|
|
-- [ ] Переименовать группу `Администрирование` в `Администратор`.
|
|
|
-- [ ] Проверить отображение меню для основных ролей.
|
|
|
-
|
|
|
-## Этап 2. Каталог общий
|
|
|
+## Статус готовности этапов
|
|
|
+
|
|
|
+| Этап | Статус | Почему |
|
|
|
+|---|---|---|
|
|
|
+| 1. Реорганизация меню и заглушки | Реализован и проверен | Новое меню и заглушки приняты по результатам пользовательской проверки. |
|
|
|
+| 2. Адаптация существующих разделов после переноса | Реализован, ожидает пользовательской проверки | Рабочие разделы проверены, навигация запчастей и доступ к справочнику уточнены, регрессионные тесты проходят. |
|
|
|
+| 3. Рекламации: вкладки и тип | Готов к реализации | Решены вкладки `Все`/`ДКР`, справочник типов, начальные значения и запрет платежных документов для `Прочее`. |
|
|
|
+| 4. Общий каталог: ядро | Готов к реализации | Есть маршрутный префикс, техническое имя, шаблон Excel, состав колонок и предварительные типы данных. |
|
|
|
+| 5. Документация | Готов к реализации | Решены дерево папок, наследование прав, версии и хранение файлов. |
|
|
|
+| 6. Склад наличие: ядро | Готов после ядра общего каталога | Логика берется из `Запчасти`, но позиции должны браться из `Каталог общий`. PDF-экспорт остается отдельным открытым подпунктом. |
|
|
|
+| 7. Техническое описание | Готово после ядра общего каталога и анализа готового Laravel-модуля | Функция встроена в карточку общего каталога, но нужно получить модуль и форматы выгрузки. |
|
|
|
+| 8. Калькуляции | Не готово к полной реализации | Нужен контракт внешнего API. Можно сделать только место/кнопку в карточке общего каталога. |
|
|
|
+| 9. Графики заказов и доставок | Не готово к полной реализации | Нужны формат обмена с 1С, поля, статусы и правила доставок/отгрузок. |
|
|
|
+| 10. Рекламации из графика заказов | Готово только после графика заказов | Сценарий согласован, но точка входа зависит от карточки заказа в графике. |
|
|
|
+
|
|
|
+## Этап 1. Реорганизация меню и заглушки
|
|
|
+
|
|
|
+Статус: **реализован и проверен пользователем**.
|
|
|
+
|
|
|
+- [x] Проверить текущие permissions для всех существующих пунктов меню.
|
|
|
+- [x] Для новых пунктов-заглушек открыть доступ всем авторизованным пользователям.
|
|
|
+- [x] Добавить общий механизм страницы `В разработке`.
|
|
|
+- [x] Добавить маршруты для новых разделов-заглушек.
|
|
|
+- [x] Перестроить `resources/views/layouts/menu.blade.php` под новую древовидную структуру.
|
|
|
+- [x] Сгруппировать существующие пункты ДКР внутрь верхнего меню `ДКР`.
|
|
|
+- [x] Оставить `Каталог` внутри меню `ДКР`.
|
|
|
+- [x] Добавить отдельный верхний пункт `Каталог общий`.
|
|
|
+- [x] Сгруппировать `График монтажей` внутрь верхнего меню `Графики`.
|
|
|
+- [x] Добавить заглушки `График заказов` и `График доставок`.
|
|
|
+- [x] Разложить `Рекламации` на `Все` и `ДКР`.
|
|
|
+- [x] Оставить `Запчасти` отдельной верхней группой с текущими вкладками.
|
|
|
+- [x] Добавить заглушки `Склад наличие -> Наличие` и `Склад наличие -> Заказы`.
|
|
|
+- [x] Добавить заглушки `Документация`, `Каталог общий`, `Калькуляции`.
|
|
|
+- [x] Проверить, что выбранный год не скрывает и не фильтрует новые модули.
|
|
|
+- [x] Переименовать группу `Администрирование` в `Администратор`.
|
|
|
+- [x] Проверить отображение меню для основных ролей.
|
|
|
+
|
|
|
+## Этап 2. Адаптация существующих разделов после переноса
|
|
|
+
|
|
|
+Статус: **реализован, ожидает пользовательской проверки**.
|
|
|
+
|
|
|
+Задача этапа — проверить существующие рабочие разделы после изменения меню и внести точечные правки без изменения бизнес-логики.
|
|
|
+
|
|
|
+- [x] Проверить, что разделы ДКР открываются из группы `ДКР`.
|
|
|
+- [x] Проверить, что каталог ДКР остался внутри группы `ДКР`.
|
|
|
+- [x] Проверить, что текущий `График монтажей` открывается из группы `Графики`.
|
|
|
+- [x] Проверить, что раздел `Запчасти` работает в новой структуре меню без изменения бизнес-логики.
|
|
|
+- [x] Проверить вкладки `Каталог`, `Заказы запчастей`, `Контроль наличия`, `Справочник расшифровок`, `Справка`.
|
|
|
+- [x] Проверить, что `Запчасти` используются как общий модуль, включая ДКР.
|
|
|
+- [x] Проверить, что меню `Администратор` содержит текущие пункты администрирования.
|
|
|
+- [x] Проверить, что `Подрядчики` всегда отображаются внутри группы `Администратор`.
|
|
|
+- [x] Проверить доступы для пользователей, ролей и настроек.
|
|
|
+- [x] Проверить необходимость новых прав: на этом этапе новые права не потребовались.
|
|
|
+
|
|
|
+## Этап 3. Рекламации: вкладки и тип
|
|
|
+
|
|
|
+Статус: **готов к реализации для текущих рекламаций**.
|
|
|
+
|
|
|
+Создание рекламации из графика заказов вынесено в отдельный этап, потому что зависит от реализации графика заказов.
|
|
|
+
|
|
|
+- [ ] Реализовать отдельные вкладки `Все` и `ДКР`.
|
|
|
+- [ ] Создать справочник `reclamation_types` и заполнить его типами `ДКР` / `Прочее` через сидер.
|
|
|
+- [ ] Добавить обязательную связь `reclamations.reclamation_type_id` и перенести существующие записи на тип `ДКР`.
|
|
|
+- [ ] Реализовать вкладку `ДКР` на текущем списке с обязательным фильтром по типу `dkr`.
|
|
|
+- [ ] Проверить создание рекламаций по площадкам ДКР.
|
|
|
+- [ ] Запретить формирование документации для оплаты для рекламаций типа `Прочее`.
|
|
|
+- [ ] Проверить формирование запросов на запчасти из рекламации.
|
|
|
+- [ ] Сохранить текущую рабочую логику рекламаций.
|
|
|
+
|
|
|
+## Этап 4. Каталог общий: ядро
|
|
|
+
|
|
|
+Статус: **готов к реализации ядра**.
|
|
|
+
|
|
|
+В этот этап не входят внешняя API-интеграция калькуляций и перенос экспорта техописаний. Для них нужны отдельные вводные.
|
|
|
|
|
|
- [ ] Зафиксировать, что текущий `catalog.*` относится к каталогу ДКР.
|
|
|
- [ ] Спроектировать маршруты с префиксом `common-catalog/...`, таблицы и права с техническим именем `common-catalog`.
|
|
|
- [ ] Сверить текущую модель каталога ДКР с требованиями общего каталога как источник паттернов, без смешивания данных.
|
|
|
-- [ ] Определить недостающие поля по шаблону калькулятора.
|
|
|
+- [x] Зафиксировать состав и порядок колонок общего каталога.
|
|
|
+- [x] Зафиксировать файл `docs/refactor/Шаблон Каталог ощий.xlsx` как источник колонок общего каталога.
|
|
|
+- [x] Зафиксировать предварительные типы данных по шаблону общего каталога.
|
|
|
+- [ ] Спроектировать обязательность и валидацию утвержденных полей.
|
|
|
- [ ] Использовать текущий файловый механизм для хранения фото и документов позиции.
|
|
|
- [ ] Доработать импорт/экспорт позиций.
|
|
|
- [ ] Доработать карточку позиции.
|
|
|
-- [ ] Определить встраивание `Технич. описание` в карточку общего каталога.
|
|
|
-- [ ] Добавить интеграцию с `Калькуляции` через внешний API по артикулу.
|
|
|
+- [x] Зафиксировать встраивание `Технич. описание` в карточку общего каталога.
|
|
|
+- [ ] Добавить в карточку место под будущую кнопку/блок `Калькуляции`.
|
|
|
- [ ] Проверить связи с графиками, рекламациями и складом наличия.
|
|
|
|
|
|
-## Этап 3. Склад наличие
|
|
|
+## Этап 5. Документация
|
|
|
+
|
|
|
+Статус: **готов к реализации**.
|
|
|
+
|
|
|
+- [ ] Реализовать дерево папок.
|
|
|
+- [ ] Разрешить создание корневых папок только админу.
|
|
|
+- [ ] Реализовать права чтения и записи на папки для всех, ролей и отдельных пользователей.
|
|
|
+- [ ] Реализовать наследование прав от родительской папки при создании подпапок.
|
|
|
+- [ ] Реализовать создание, просмотр, редактирование и удаление документов.
|
|
|
+- [ ] Реализовать версионность документов.
|
|
|
+- [ ] Реализовать полное удаление отдельных версий.
|
|
|
+- [ ] Использовать текущий механизм хранения файлов.
|
|
|
+
|
|
|
+## Этап 6. Склад наличие: ядро
|
|
|
+
|
|
|
+Статус: **готов после этапа 4**.
|
|
|
+
|
|
|
+Ядро склада можно реализовывать после появления позиций общего каталога. PDF-экспорт по шаблону вынесен отдельным подпунктом, потому что точный шаблон еще не согласован.
|
|
|
|
|
|
- [ ] Разобрать текущую реализацию `Запчасти` как эталон.
|
|
|
- [ ] Зафиксировать соответствие сущностей `Запчасти` -> `Склад наличие`.
|
|
|
@@ -108,55 +184,62 @@
|
|
|
- [ ] Реализовать отмену брони.
|
|
|
- [ ] Реализовать историю движений.
|
|
|
- [ ] Реализовать импорт заказов/остатков.
|
|
|
-- [ ] Реализовать экспорт наличия в PDF по шаблону.
|
|
|
- [ ] Настроить права: `Наличие` всем, `Заказы` админу и роли `assistant_head`.
|
|
|
- [ ] Покрыть критичную логику расчетов тестами.
|
|
|
+- [ ] После согласования шаблона реализовать экспорт наличия в PDF.
|
|
|
+
|
|
|
+## Этап 7. Техническое описание в общем каталоге
|
|
|
+
|
|
|
+Статус: **готово после этапа 4 и анализа готового Laravel-модуля**.
|
|
|
+
|
|
|
+- [ ] Получить и изучить готовый Laravel-модуль техописаний.
|
|
|
+- [ ] Составить карту данных модуля техописаний.
|
|
|
+- [ ] Составить карту экспортов и форматов выгрузки.
|
|
|
+- [ ] Сопоставить данные техописаний с полями `Каталог общий`.
|
|
|
+- [ ] Решить, какие данные хранятся прямо в карточке позиции, а какие требуют связанных таблиц.
|
|
|
+- [ ] Встроить просмотр/редактирование техописания в карточку общего каталога.
|
|
|
+- [ ] Перенести или адаптировать экспорт из готового Laravel-модуля.
|
|
|
+
|
|
|
+## Этап 8. Калькуляции
|
|
|
+
|
|
|
+Статус: **не готово к полной реализации**.
|
|
|
+
|
|
|
+До получения контракта API можно реализовать только место под кнопку/блок в карточке общего каталога.
|
|
|
+
|
|
|
+- [ ] Получить подробное описание внешнего API калькуляций.
|
|
|
+- [ ] Согласовать endpoint, HTTP-метод, авторизацию, параметры запроса и формат ответа.
|
|
|
+- [ ] Реализовать запрос по артикулу позиции общего каталога.
|
|
|
+- [ ] Реализовать отображение найденной калькуляции.
|
|
|
+- [ ] Реализовать состояние, когда калькуляция по артикулу не найдена.
|
|
|
+- [ ] Реализовать обработку ошибок API.
|
|
|
|
|
|
-## Этап 4. Графики
|
|
|
+## Этап 9. Графики заказов и доставок
|
|
|
+
|
|
|
+Статус: **не готово к полной реализации**.
|
|
|
+
|
|
|
+Текущий `График монтажей` переносится на этапе 2. Новые графики требуют уточнения обмена с 1С, полей, статусов и правил доставок.
|
|
|
|
|
|
- [ ] Описать источник данных для `График заказов`.
|
|
|
- [ ] Спроектировать загрузку данных через 1С.
|
|
|
- [ ] Реализовать или перенести `График заказов`.
|
|
|
+- [ ] Добавить карточку заказа с выбором одного или нескольких МАФ.
|
|
|
+- [ ] Добавить создание рекламации из заказа через текущую форму.
|
|
|
- [ ] Реализовать `График доставок` в виде недельного списка.
|
|
|
- [ ] Добавить ручное планирование занятости водителей.
|
|
|
- [ ] Связать доставки с адресами из графика заказов.
|
|
|
-- [ ] Перенести текущий `График монтажей` в новую группу без потери логики.
|
|
|
- [ ] Проверить связи монтажей с ДКР-площадками и графиком заказов.
|
|
|
|
|
|
-## Этап 5. Рекламации
|
|
|
-
|
|
|
-- [ ] Разделить представление на `Все` и `ДКР`.
|
|
|
-- [ ] Реализовать `ДКР` как фильтр текущего списка.
|
|
|
-- [ ] Добавить отдельное поле источника рекламации: `ДКР` / `Прочее`.
|
|
|
-- [ ] Проверить создание рекламаций по площадкам ДКР.
|
|
|
-- [ ] Проверить связь рекламаций с графиком заказов.
|
|
|
-- [ ] Проверить формирование запросов на запчасти из рекламации.
|
|
|
-- [ ] Сохранить текущую рабочую логику рекламаций.
|
|
|
-
|
|
|
-## Этап 6. Запчасти
|
|
|
-
|
|
|
-- [ ] Перенести раздел в новую структуру меню без изменения бизнес-логики.
|
|
|
-- [ ] Проверить вкладки `Каталог`, `Заказы запчастей`, `Контроль наличия`, `Справочник расшифровок`, `Справка`.
|
|
|
-- [ ] Проверить, что `Запчасти` используются как общий модуль, включая ДКР.
|
|
|
-- [ ] Использовать реализацию раздела как эталон для `Склад наличие`.
|
|
|
-- [ ] После внедрения склада проверить, что логика запчастей не изменилась.
|
|
|
-
|
|
|
-## Этап 7. Информационные разделы
|
|
|
-
|
|
|
-- [ ] Реализовать модуль `Документация`: папки и файлы.
|
|
|
-- [ ] Изучить готовый Laravel-модуль техописаний.
|
|
|
-- [ ] Перенести/адаптировать экспорт техописаний в карточку общего каталога.
|
|
|
-- [ ] Подготовить заглушку для `Калькуляции`.
|
|
|
-- [ ] После получения подробного описания API калькуляций реализовать запрос из карточки позиции по артикулу.
|
|
|
+## Этап 10. Рекламации из графика заказов
|
|
|
|
|
|
-## Этап 8. Администратор
|
|
|
+Статус: **готово после этапа 9**.
|
|
|
|
|
|
-- [ ] Переименовать меню `Администрирование` в `Администратор`.
|
|
|
-- [ ] Сохранить текущие пункты администрирования.
|
|
|
-- [ ] Проверить доступы для пользователей, ролей и настроек.
|
|
|
-- [ ] При необходимости добавить права для новых разделов Manager 2.0.
|
|
|
+- [ ] Реализовать создание рекламации из графика заказов по выбранным МАФ с типом `other` (`Прочее`).
|
|
|
+- [ ] В карточке заказа дать выбор одного или нескольких МАФ.
|
|
|
+- [ ] Открывать текущую форму создания рекламации с предзаполненными данными.
|
|
|
+- [ ] Проверить, что рекламация попадает во вкладку `Все` и не попадает во вкладку `ДКР`.
|
|
|
+- [ ] Проверить, что платежные документы для такой рекламации недоступны.
|
|
|
|
|
|
-## Этап 9. Проверка
|
|
|
+## Этап 11. Проверка
|
|
|
|
|
|
- [ ] Запустить `make test` внутри контейнеров.
|
|
|
- [ ] Проверить меню в браузере под админом.
|
|
|
@@ -170,5 +253,9 @@
|
|
|
|
|
|
## Открытые вопросы
|
|
|
|
|
|
-- [ ] Оставлять ли `Технич. описание` отдельным пунктом меню или полностью встроить в `Каталог общий`?
|
|
|
- [ ] Какой точный контракт внешнего API калькуляций?
|
|
|
+- [ ] Где находится готовый Laravel-модуль техописаний и какие форматы выгрузки из него переносим?
|
|
|
+- [ ] Какой точный PDF-шаблон нужен для экспорта `Склад наличие`?
|
|
|
+- [ ] Какой формат обмена с 1С для `График заказов`?
|
|
|
+- [ ] Какие поля, статусы и правила ручного редактирования нужны для `График заказов`?
|
|
|
+- [ ] Какие поля, статусы, правила отгрузок и связи с заказами нужны для `График доставок`?
|