|
@@ -36,7 +36,7 @@
|
|
|
- [x] Реорганизацию меню делаем сразу общей для всей платформы Manager 2.0.
|
|
- [x] Реорганизацию меню делаем сразу общей для всей платформы Manager 2.0.
|
|
|
- [x] Заглушки новых модулей показываем всем авторизованным пользователям.
|
|
- [x] Заглушки новых модулей показываем всем авторизованным пользователям.
|
|
|
- [x] На новые модули выбранный год не влияет.
|
|
- [x] На новые модули выбранный год не влияет.
|
|
|
-- [x] `Технич. описание`, вероятно, будет поглощено модулем `Каталог общий`; готовый Laravel-модуль используем как источник экспорта.
|
|
|
|
|
|
|
+- [x] `Технич. описание` встроено в модуль `Каталог общий`; готовый Laravel-модуль используем как источник экспорта.
|
|
|
- [x] `Калькуляции` работают через внешний API: запрос по артикулу, возврат калькуляции при наличии.
|
|
- [x] `Калькуляции` работают через внешний API: запрос по артикулу, возврат калькуляции при наличии.
|
|
|
- [x] `Рекламации -> ДКР` реализуется как отдельная вкладка на основе текущего списка с обязательным фильтром по источнику.
|
|
- [x] `Рекламации -> ДКР` реализуется как отдельная вкладка на основе текущего списка с обязательным фильтром по источнику.
|
|
|
- [x] Источник рекламации хранится отдельным полем: при создании из площадки — `ДКР`, иначе `Прочее`.
|
|
- [x] Источник рекламации хранится отдельным полем: при создании из площадки — `ДКР`, иначе `Прочее`.
|
|
@@ -65,7 +65,24 @@
|
|
|
- [x] Написать отдельное ТЗ для модуля `Калькуляции`: [tz-calculations.md](tz-calculations.md).
|
|
- [x] Написать отдельное ТЗ для модуля `Калькуляции`: [tz-calculations.md](tz-calculations.md).
|
|
|
- [x] Написать отдельное ТЗ для модуля `Администратор`: [tz-admin.md](tz-admin.md).
|
|
- [x] Написать отдельное ТЗ для модуля `Администратор`: [tz-admin.md](tz-admin.md).
|
|
|
|
|
|
|
|
-## Этап 1. Реорганизация меню
|
|
|
|
|
|
|
+## Статус готовности этапов
|
|
|
|
|
+
|
|
|
|
|
+| Этап | Статус | Почему |
|
|
|
|
|
+|---|---|---|
|
|
|
|
|
+| 1. Реорганизация меню и заглушки | Готов к реализации | Решены структура меню, права для заглушек и сохранение текущих маршрутов. |
|
|
|
|
|
+| 2. Адаптация существующих разделов после переноса | Готов к реализации | ДКР, запчасти, администратор и текущий график монтажей уже существуют; нужны проверки и точечные правки без смены логики. |
|
|
|
|
|
+| 3. Рекламации: вкладки и источник | Готов к реализации | Решены вкладки `Все`/`ДКР`, поле источника и запрет платежных документов для `Прочее`. |
|
|
|
|
|
+| 4. Общий каталог: ядро | Готов к реализации | Есть маршрутный префикс, техническое имя, шаблон Excel, состав колонок и предварительные типы данных. |
|
|
|
|
|
+| 5. Документация | Готов к реализации | Решены дерево папок, наследование прав, версии и хранение файлов. |
|
|
|
|
|
+| 6. Склад наличие: ядро | Готов после ядра общего каталога | Логика берется из `Запчасти`, но позиции должны браться из `Каталог общий`. PDF-экспорт остается отдельным открытым подпунктом. |
|
|
|
|
|
+| 7. Техническое описание | Готово после ядра общего каталога и анализа готового Laravel-модуля | Функция встроена в карточку общего каталога, но нужно получить модуль и форматы выгрузки. |
|
|
|
|
|
+| 8. Калькуляции | Не готово к полной реализации | Нужен контракт внешнего API. Можно сделать только место/кнопку в карточке общего каталога. |
|
|
|
|
|
+| 9. Графики заказов и доставок | Не готово к полной реализации | Нужны формат обмена с 1С, поля, статусы и правила доставок/отгрузок. |
|
|
|
|
|
+| 10. Рекламации из графика заказов | Готово только после графика заказов | Сценарий согласован, но точка входа зависит от карточки заказа в графике. |
|
|
|
|
|
+
|
|
|
|
|
+## Этап 1. Реорганизация меню и заглушки
|
|
|
|
|
+
|
|
|
|
|
+Статус: **готов к реализации**.
|
|
|
|
|
|
|
|
- [ ] Проверить текущие permissions для всех существующих пунктов меню.
|
|
- [ ] Проверить текущие permissions для всех существующих пунктов меню.
|
|
|
- [ ] Для новых пунктов-заглушек открыть доступ всем авторизованным пользователям.
|
|
- [ ] Для новых пунктов-заглушек открыть доступ всем авторизованным пользователям.
|
|
@@ -80,26 +97,80 @@
|
|
|
- [ ] Разложить `Рекламации` на `Все` и `ДКР`.
|
|
- [ ] Разложить `Рекламации` на `Все` и `ДКР`.
|
|
|
- [ ] Оставить `Запчасти` отдельной верхней группой с текущими вкладками.
|
|
- [ ] Оставить `Запчасти` отдельной верхней группой с текущими вкладками.
|
|
|
- [ ] Добавить заглушки `Склад наличие -> Наличие` и `Склад наличие -> Заказы`.
|
|
- [ ] Добавить заглушки `Склад наличие -> Наличие` и `Склад наличие -> Заказы`.
|
|
|
-- [ ] Добавить заглушки `Документация`, `Каталог общий`, `Технич. описание`, `Калькуляции`.
|
|
|
|
|
|
|
+- [ ] Добавить заглушки `Документация`, `Каталог общий`, `Калькуляции`.
|
|
|
- [ ] Проверить, что выбранный год не скрывает и не фильтрует новые модули.
|
|
- [ ] Проверить, что выбранный год не скрывает и не фильтрует новые модули.
|
|
|
- [ ] Переименовать группу `Администрирование` в `Администратор`.
|
|
- [ ] Переименовать группу `Администрирование` в `Администратор`.
|
|
|
- [ ] Проверить отображение меню для основных ролей.
|
|
- [ ] Проверить отображение меню для основных ролей.
|
|
|
|
|
|
|
|
-## Этап 2. Каталог общий
|
|
|
|
|
|
|
+## Этап 2. Адаптация существующих разделов после переноса
|
|
|
|
|
+
|
|
|
|
|
+Статус: **готов к реализации**.
|
|
|
|
|
+
|
|
|
|
|
+Задача этапа — проверить существующие рабочие разделы после изменения меню и внести точечные правки без изменения бизнес-логики.
|
|
|
|
|
+
|
|
|
|
|
+- [ ] Проверить, что разделы ДКР открываются из группы `ДКР`.
|
|
|
|
|
+- [ ] Проверить, что каталог ДКР остался внутри группы `ДКР`.
|
|
|
|
|
+- [ ] Проверить, что текущий `График монтажей` открывается из группы `Графики`.
|
|
|
|
|
+- [ ] Проверить, что раздел `Запчасти` работает в новой структуре меню без изменения бизнес-логики.
|
|
|
|
|
+- [ ] Проверить вкладки `Каталог`, `Заказы запчастей`, `Контроль наличия`, `Справочник расшифровок`, `Справка`.
|
|
|
|
|
+- [ ] Проверить, что `Запчасти` используются как общий модуль, включая ДКР.
|
|
|
|
|
+- [ ] Проверить, что меню `Администратор` содержит текущие пункты администрирования.
|
|
|
|
|
+- [ ] Проверить, что `Подрядчики` всегда отображаются внутри группы `Администратор`.
|
|
|
|
|
+- [ ] Проверить доступы для пользователей, ролей и настроек.
|
|
|
|
|
+- [ ] При необходимости добавить права для новых разделов Manager 2.0.
|
|
|
|
|
+
|
|
|
|
|
+## Этап 3. Рекламации: вкладки и источник
|
|
|
|
|
+
|
|
|
|
|
+Статус: **готов к реализации для текущих рекламаций**.
|
|
|
|
|
+
|
|
|
|
|
+Создание рекламации из графика заказов вынесено в отдельный этап, потому что зависит от реализации графика заказов.
|
|
|
|
|
+
|
|
|
|
|
+- [ ] Реализовать отдельные вкладки `Все` и `ДКР`.
|
|
|
|
|
+- [ ] Реализовать вкладку `ДКР` на текущем списке с обязательным фильтром по источнику.
|
|
|
|
|
+- [ ] Добавить отдельное поле источника рекламации: `ДКР` / `Прочее`.
|
|
|
|
|
+- [ ] Проверить создание рекламаций по площадкам ДКР.
|
|
|
|
|
+- [ ] Запретить формирование документации для оплаты для рекламаций источника `Прочее`.
|
|
|
|
|
+- [ ] Проверить формирование запросов на запчасти из рекламации.
|
|
|
|
|
+- [ ] Сохранить текущую рабочую логику рекламаций.
|
|
|
|
|
+
|
|
|
|
|
+## Этап 4. Каталог общий: ядро
|
|
|
|
|
+
|
|
|
|
|
+Статус: **готов к реализации ядра**.
|
|
|
|
|
+
|
|
|
|
|
+В этот этап не входят внешняя API-интеграция калькуляций и перенос экспорта техописаний. Для них нужны отдельные вводные.
|
|
|
|
|
|
|
|
- [ ] Зафиксировать, что текущий `catalog.*` относится к каталогу ДКР.
|
|
- [ ] Зафиксировать, что текущий `catalog.*` относится к каталогу ДКР.
|
|
|
- [ ] Спроектировать маршруты с префиксом `common-catalog/...`, таблицы и права с техническим именем `common-catalog`.
|
|
- [ ] Спроектировать маршруты с префиксом `common-catalog/...`, таблицы и права с техническим именем `common-catalog`.
|
|
|
- [ ] Сверить текущую модель каталога ДКР с требованиями общего каталога как источник паттернов, без смешивания данных.
|
|
- [ ] Сверить текущую модель каталога ДКР с требованиями общего каталога как источник паттернов, без смешивания данных.
|
|
|
- [x] Зафиксировать состав и порядок колонок общего каталога.
|
|
- [x] Зафиксировать состав и порядок колонок общего каталога.
|
|
|
-- [ ] Спроектировать типы данных, обязательность и валидацию утвержденных полей.
|
|
|
|
|
|
|
+- [x] Зафиксировать файл `docs/refactor/Шаблон Каталог ощий.xlsx` как источник колонок общего каталога.
|
|
|
|
|
+- [x] Зафиксировать предварительные типы данных по шаблону общего каталога.
|
|
|
|
|
+- [ ] Спроектировать обязательность и валидацию утвержденных полей.
|
|
|
- [ ] Использовать текущий файловый механизм для хранения фото и документов позиции.
|
|
- [ ] Использовать текущий файловый механизм для хранения фото и документов позиции.
|
|
|
- [ ] Доработать импорт/экспорт позиций.
|
|
- [ ] Доработать импорт/экспорт позиций.
|
|
|
- [ ] Доработать карточку позиции.
|
|
- [ ] Доработать карточку позиции.
|
|
|
-- [ ] Определить встраивание `Технич. описание` в карточку общего каталога.
|
|
|
|
|
-- [ ] Добавить интеграцию с `Калькуляции` через внешний API по артикулу.
|
|
|
|
|
|
|
+- [x] Зафиксировать встраивание `Технич. описание` в карточку общего каталога.
|
|
|
|
|
+- [ ] Добавить в карточку место под будущую кнопку/блок `Калькуляции`.
|
|
|
- [ ] Проверить связи с графиками, рекламациями и складом наличия.
|
|
- [ ] Проверить связи с графиками, рекламациями и складом наличия.
|
|
|
|
|
|
|
|
-## Этап 3. Склад наличие
|
|
|
|
|
|
|
+## Этап 5. Документация
|
|
|
|
|
+
|
|
|
|
|
+Статус: **готов к реализации**.
|
|
|
|
|
+
|
|
|
|
|
+- [ ] Реализовать дерево папок.
|
|
|
|
|
+- [ ] Разрешить создание корневых папок только админу.
|
|
|
|
|
+- [ ] Реализовать права чтения и записи на папки для всех, ролей и отдельных пользователей.
|
|
|
|
|
+- [ ] Реализовать наследование прав от родительской папки при создании подпапок.
|
|
|
|
|
+- [ ] Реализовать создание, просмотр, редактирование и удаление документов.
|
|
|
|
|
+- [ ] Реализовать версионность документов.
|
|
|
|
|
+- [ ] Реализовать полное удаление отдельных версий.
|
|
|
|
|
+- [ ] Использовать текущий механизм хранения файлов.
|
|
|
|
|
+
|
|
|
|
|
+## Этап 6. Склад наличие: ядро
|
|
|
|
|
+
|
|
|
|
|
+Статус: **готов после этапа 4**.
|
|
|
|
|
+
|
|
|
|
|
+Ядро склада можно реализовывать после появления позиций общего каталога. PDF-экспорт по шаблону вынесен отдельным подпунктом, потому что точный шаблон еще не согласован.
|
|
|
|
|
|
|
|
- [ ] Разобрать текущую реализацию `Запчасти` как эталон.
|
|
- [ ] Разобрать текущую реализацию `Запчасти` как эталон.
|
|
|
- [ ] Зафиксировать соответствие сущностей `Запчасти` -> `Склад наличие`.
|
|
- [ ] Зафиксировать соответствие сущностей `Запчасти` -> `Склад наличие`.
|
|
@@ -112,11 +183,40 @@
|
|
|
- [ ] Реализовать отмену брони.
|
|
- [ ] Реализовать отмену брони.
|
|
|
- [ ] Реализовать историю движений.
|
|
- [ ] Реализовать историю движений.
|
|
|
- [ ] Реализовать импорт заказов/остатков.
|
|
- [ ] Реализовать импорт заказов/остатков.
|
|
|
-- [ ] Реализовать экспорт наличия в PDF по шаблону.
|
|
|
|
|
- [ ] Настроить права: `Наличие` всем, `Заказы` админу и роли `assistant_head`.
|
|
- [ ] Настроить права: `Наличие` всем, `Заказы` админу и роли `assistant_head`.
|
|
|
- [ ] Покрыть критичную логику расчетов тестами.
|
|
- [ ] Покрыть критичную логику расчетов тестами.
|
|
|
|
|
+- [ ] После согласования шаблона реализовать экспорт наличия в PDF.
|
|
|
|
|
+
|
|
|
|
|
+## Этап 7. Техническое описание в общем каталоге
|
|
|
|
|
+
|
|
|
|
|
+Статус: **готово после этапа 4 и анализа готового Laravel-модуля**.
|
|
|
|
|
+
|
|
|
|
|
+- [ ] Получить и изучить готовый Laravel-модуль техописаний.
|
|
|
|
|
+- [ ] Составить карту данных модуля техописаний.
|
|
|
|
|
+- [ ] Составить карту экспортов и форматов выгрузки.
|
|
|
|
|
+- [ ] Сопоставить данные техописаний с полями `Каталог общий`.
|
|
|
|
|
+- [ ] Решить, какие данные хранятся прямо в карточке позиции, а какие требуют связанных таблиц.
|
|
|
|
|
+- [ ] Встроить просмотр/редактирование техописания в карточку общего каталога.
|
|
|
|
|
+- [ ] Перенести или адаптировать экспорт из готового Laravel-модуля.
|
|
|
|
|
+
|
|
|
|
|
+## Этап 8. Калькуляции
|
|
|
|
|
+
|
|
|
|
|
+Статус: **не готово к полной реализации**.
|
|
|
|
|
+
|
|
|
|
|
+До получения контракта API можно реализовать только место под кнопку/блок в карточке общего каталога.
|
|
|
|
|
|
|
|
-## Этап 4. Графики
|
|
|
|
|
|
|
+- [ ] Получить подробное описание внешнего API калькуляций.
|
|
|
|
|
+- [ ] Согласовать endpoint, HTTP-метод, авторизацию, параметры запроса и формат ответа.
|
|
|
|
|
+- [ ] Реализовать запрос по артикулу позиции общего каталога.
|
|
|
|
|
+- [ ] Реализовать отображение найденной калькуляции.
|
|
|
|
|
+- [ ] Реализовать состояние, когда калькуляция по артикулу не найдена.
|
|
|
|
|
+- [ ] Реализовать обработку ошибок API.
|
|
|
|
|
+
|
|
|
|
|
+## Этап 9. Графики заказов и доставок
|
|
|
|
|
+
|
|
|
|
|
+Статус: **не готово к полной реализации**.
|
|
|
|
|
+
|
|
|
|
|
+Текущий `График монтажей` переносится на этапе 2. Новые графики требуют уточнения обмена с 1С, полей, статусов и правил доставок.
|
|
|
|
|
|
|
|
- [ ] Описать источник данных для `График заказов`.
|
|
- [ ] Описать источник данных для `График заказов`.
|
|
|
- [ ] Спроектировать загрузку данных через 1С.
|
|
- [ ] Спроектировать загрузку данных через 1С.
|
|
@@ -126,44 +226,19 @@
|
|
|
- [ ] Реализовать `График доставок` в виде недельного списка.
|
|
- [ ] Реализовать `График доставок` в виде недельного списка.
|
|
|
- [ ] Добавить ручное планирование занятости водителей.
|
|
- [ ] Добавить ручное планирование занятости водителей.
|
|
|
- [ ] Связать доставки с адресами из графика заказов.
|
|
- [ ] Связать доставки с адресами из графика заказов.
|
|
|
-- [ ] Перенести текущий `График монтажей` в новую группу без потери логики.
|
|
|
|
|
- [ ] Проверить связи монтажей с ДКР-площадками и графиком заказов.
|
|
- [ ] Проверить связи монтажей с ДКР-площадками и графиком заказов.
|
|
|
|
|
|
|
|
-## Этап 5. Рекламации
|
|
|
|
|
-
|
|
|
|
|
-- [ ] Реализовать отдельные вкладки `Все` и `ДКР`.
|
|
|
|
|
-- [ ] Реализовать вкладку `ДКР` на текущем списке с обязательным фильтром по источнику.
|
|
|
|
|
-- [ ] Добавить отдельное поле источника рекламации: `ДКР` / `Прочее`.
|
|
|
|
|
-- [ ] Проверить создание рекламаций по площадкам ДКР.
|
|
|
|
|
-- [ ] Реализовать создание рекламации из графика заказов по выбранным МАФ с источником `Прочее`.
|
|
|
|
|
-- [ ] Запретить формирование документации для оплаты для рекламаций источника `Прочее`.
|
|
|
|
|
-- [ ] Проверить формирование запросов на запчасти из рекламации.
|
|
|
|
|
-- [ ] Сохранить текущую рабочую логику рекламаций.
|
|
|
|
|
-
|
|
|
|
|
-## Этап 6. Запчасти
|
|
|
|
|
-
|
|
|
|
|
-- [ ] Перенести раздел в новую структуру меню без изменения бизнес-логики.
|
|
|
|
|
-- [ ] Проверить вкладки `Каталог`, `Заказы запчастей`, `Контроль наличия`, `Справочник расшифровок`, `Справка`.
|
|
|
|
|
-- [ ] Проверить, что `Запчасти` используются как общий модуль, включая ДКР.
|
|
|
|
|
-- [ ] Использовать реализацию раздела как эталон для `Склад наличие`.
|
|
|
|
|
-- [ ] После внедрения склада проверить, что логика запчастей не изменилась.
|
|
|
|
|
-
|
|
|
|
|
-## Этап 7. Информационные разделы
|
|
|
|
|
-
|
|
|
|
|
-- [ ] Реализовать модуль `Документация`: папки и файлы.
|
|
|
|
|
-- [ ] Изучить готовый Laravel-модуль техописаний.
|
|
|
|
|
-- [ ] Перенести/адаптировать экспорт техописаний в карточку общего каталога.
|
|
|
|
|
-- [ ] Подготовить заглушку для `Калькуляции`.
|
|
|
|
|
-- [ ] После получения подробного описания API калькуляций реализовать запрос из карточки позиции по артикулу.
|
|
|
|
|
|
|
+## Этап 10. Рекламации из графика заказов
|
|
|
|
|
|
|
|
-## Этап 8. Администратор
|
|
|
|
|
|
|
+Статус: **готово после этапа 9**.
|
|
|
|
|
|
|
|
-- [ ] Переименовать меню `Администрирование` в `Администратор`.
|
|
|
|
|
-- [ ] Сохранить текущие пункты администрирования.
|
|
|
|
|
-- [ ] Проверить доступы для пользователей, ролей и настроек.
|
|
|
|
|
-- [ ] При необходимости добавить права для новых разделов Manager 2.0.
|
|
|
|
|
|
|
+- [ ] Реализовать создание рекламации из графика заказов по выбранным МАФ с источником `Прочее`.
|
|
|
|
|
+- [ ] В карточке заказа дать выбор одного или нескольких МАФ.
|
|
|
|
|
+- [ ] Открывать текущую форму создания рекламации с предзаполненными данными.
|
|
|
|
|
+- [ ] Проверить, что рекламация попадает во вкладку `Все` и не попадает во вкладку `ДКР`.
|
|
|
|
|
+- [ ] Проверить, что платежные документы для такой рекламации недоступны.
|
|
|
|
|
|
|
|
-## Этап 9. Проверка
|
|
|
|
|
|
|
+## Этап 11. Проверка
|
|
|
|
|
|
|
|
- [ ] Запустить `make test` внутри контейнеров.
|
|
- [ ] Запустить `make test` внутри контейнеров.
|
|
|
- [ ] Проверить меню в браузере под админом.
|
|
- [ ] Проверить меню в браузере под админом.
|
|
@@ -177,5 +252,9 @@
|
|
|
|
|
|
|
|
## Открытые вопросы
|
|
## Открытые вопросы
|
|
|
|
|
|
|
|
-- [ ] Оставлять ли `Технич. описание` отдельным пунктом меню или полностью встроить в `Каталог общий`?
|
|
|
|
|
- [ ] Какой точный контракт внешнего API калькуляций?
|
|
- [ ] Какой точный контракт внешнего API калькуляций?
|
|
|
|
|
+- [ ] Где находится готовый Laravel-модуль техописаний и какие форматы выгрузки из него переносим?
|
|
|
|
|
+- [ ] Какой точный PDF-шаблон нужен для экспорта `Склад наличие`?
|
|
|
|
|
+- [ ] Какой формат обмена с 1С для `График заказов`?
|
|
|
|
|
+- [ ] Какие поля, статусы и правила ручного редактирования нужны для `График заказов`?
|
|
|
|
|
+- [ ] Какие поля, статусы, правила отгрузок и связи с заказами нужны для `График доставок`?
|