|
|
@@ -0,0 +1,285 @@
|
|
|
+# ТЗ: Модуль Графики
|
|
|
+
|
|
|
+Связанные документы:
|
|
|
+
|
|
|
+- [План реорганизации](plan.md)
|
|
|
+- [Карта нового меню](menu.md)
|
|
|
+- [ТЗ: Каталог общий](tz-catalog-common.md)
|
|
|
+- [ТЗ: Модуль ДКР](tz-dkr.md)
|
|
|
+
|
|
|
+## 1. Назначение
|
|
|
+
|
|
|
+Модуль `Графики` объединяет календарные и производственные представления Manager 2.0:
|
|
|
+
|
|
|
+- график заказов на производстве;
|
|
|
+- график доставок;
|
|
|
+- график монтажей.
|
|
|
+
|
|
|
+Цель модуля — дать единый раздел для планирования производства, доставки и монтажных работ, сохранив текущую рабочую реализацию графика монтажей.
|
|
|
+
|
|
|
+## 2. Статус
|
|
|
+
|
|
|
+Статус модуля: **частично реализован**.
|
|
|
+
|
|
|
+В текущей CRM реализован:
|
|
|
+
|
|
|
+- `График монтажей`;
|
|
|
+- маршрут: `schedule.index`;
|
|
|
+- контроллер: `ScheduleController`;
|
|
|
+- модель: `Schedule`;
|
|
|
+- создание записей из площадок/заказов;
|
|
|
+- создание записей из рекламаций;
|
|
|
+- экспорт графика;
|
|
|
+- недельное/месячное представление, если доступно в текущей реализации.
|
|
|
+
|
|
|
+Нужно реализовать:
|
|
|
+
|
|
|
+- `График заказов`;
|
|
|
+- `График доставок`;
|
|
|
+- новую верхнюю группу меню `Графики`;
|
|
|
+- связи между графиками.
|
|
|
+
|
|
|
+## 3. Место в меню
|
|
|
+
|
|
|
+Целевое меню:
|
|
|
+
|
|
|
+```text
|
|
|
+Графики
|
|
|
+├── График заказов
|
|
|
+├── График доставок
|
|
|
+└── График монтажей
|
|
|
+```
|
|
|
+
|
|
|
+Требования:
|
|
|
+
|
|
|
+- добавить верхний пункт меню `Графики`;
|
|
|
+- перенести текущий пункт `График монтажей` внутрь `Графики`;
|
|
|
+- текущий маршрут `schedule.index` оставить без переименования;
|
|
|
+- для `График заказов` и `График доставок` на первом этапе добавить страницы-заглушки `В разработке`;
|
|
|
+- выбранный год в CRM не влияет на новые модули `График заказов` и `График доставок`;
|
|
|
+- реорганизация меню выполняется сразу общей для всей платформы Manager 2.0.
|
|
|
+
|
|
|
+## 4. Права доступа
|
|
|
+
|
|
|
+На первом этапе оставляем текущие права.
|
|
|
+
|
|
|
+| Раздел | Permission |
|
|
|
+|---|---|
|
|
|
+| График монтажей | `schedule.view` |
|
|
|
+| График заказов | Заглушка доступна всем авторизованным пользователям |
|
|
|
+| График доставок | Заглушка доступна всем авторизованным пользователям |
|
|
|
+
|
|
|
+Требования:
|
|
|
+
|
|
|
+- не переименовывать текущие права;
|
|
|
+- не вводить новую систему прав на первом этапе;
|
|
|
+- верхний пункт `Графики` показывать, если пользователю доступен хотя бы один дочерний пункт.
|
|
|
+
|
|
|
+## 5. График заказов
|
|
|
+
|
|
|
+Статус: **нужно реализовать**.
|
|
|
+
|
|
|
+Назначение:
|
|
|
+
|
|
|
+- отображать график заказов на производстве;
|
|
|
+- быть основным источником данных для доставок;
|
|
|
+- быть связанным с монтажами;
|
|
|
+- использовать позиции из `Каталог общий`.
|
|
|
+
|
|
|
+Требования по ТЗ Manager 2.0:
|
|
|
+
|
|
|
+- таблица с графиком заказов на производстве;
|
|
|
+- перенос функционала `график отгрузок` из старого manager с адаптацией под текущие реалии;
|
|
|
+- загрузка данных через 1С;
|
|
|
+- связь с `Каталог общий`;
|
|
|
+- связь с `График монтажей`.
|
|
|
+
|
|
|
+Предварительный функционал:
|
|
|
+
|
|
|
+- список заказов/позиций в производственном графике;
|
|
|
+- дата/период производства;
|
|
|
+- адрес/объект, если приходит из источника данных;
|
|
|
+- позиции заказа из общего каталога;
|
|
|
+- статусы или этапы производства, если они есть в источнике;
|
|
|
+- фильтры по дате, заказу, позиции, статусу;
|
|
|
+- импорт/обновление данных из 1С;
|
|
|
+- история последней загрузки;
|
|
|
+- обработка ошибок загрузки.
|
|
|
+
|
|
|
+Открытые вопросы:
|
|
|
+
|
|
|
+- какой источник данных 1С и формат обмена;
|
|
|
+- какие поля приходят из 1С;
|
|
|
+- нужен ли ручной ввод/редактирование или график полностью загружается;
|
|
|
+- что именно в текущем/старом manager называется `график отгрузок`;
|
|
|
+- какие статусы производства должны отображаться;
|
|
|
+- как связывать строку графика с позицией `Каталог общий`.
|
|
|
+
|
|
|
+## 6. График доставок
|
|
|
+
|
|
|
+Статус: **нужно реализовать**.
|
|
|
+
|
|
|
+Назначение:
|
|
|
+
|
|
|
+- показывать недельный список доставок;
|
|
|
+- позволять вручную планировать занятость водителей;
|
|
|
+- брать адреса автоматически из `График заказов`.
|
|
|
+
|
|
|
+Требования по ТЗ Manager 2.0:
|
|
|
+
|
|
|
+- отображение в виде недельного списка;
|
|
|
+- адреса добавляются автоматически из `График заказов`;
|
|
|
+- вручную указывается занятость водителей: какой заказ и когда везут;
|
|
|
+- добавление через модальное окно;
|
|
|
+- возможная связь с вкладкой `Отгрузки` требует уточнения.
|
|
|
+
|
|
|
+Предварительный функционал:
|
|
|
+
|
|
|
+- недельный календарь доставок;
|
|
|
+- список заказов/адресов, доступных для доставки;
|
|
|
+- добавление доставки через модальное окно;
|
|
|
+- выбор даты и времени доставки;
|
|
|
+- выбор водителя или ответственного за доставку;
|
|
|
+- выбор заказа/адреса из графика заказов;
|
|
|
+- комментарий;
|
|
|
+- изменение и удаление записи доставки при наличии прав;
|
|
|
+- фильтры по неделе, водителю, заказу;
|
|
|
+- визуальное отображение занятости водителей.
|
|
|
+
|
|
|
+Открытые вопросы:
|
|
|
+
|
|
|
+- где хранится список водителей;
|
|
|
+- нужна ли отдельная сущность `Водитель`;
|
|
|
+- какие статусы есть у доставки;
|
|
|
+- нужна ли связь с отдельным разделом `Отгрузки`;
|
|
|
+- требуется ли печатная форма или экспорт недельного списка;
|
|
|
+- как обрабатывать несколько доставок по одному заказу.
|
|
|
+
|
|
|
+## 7. График монтажей
|
|
|
+
|
|
|
+Статус: **есть, переносится в новую группу меню**.
|
|
|
+
|
|
|
+Текущая основа:
|
|
|
+
|
|
|
+- маршрут: `schedule.index`;
|
|
|
+- контроллер: `ScheduleController`;
|
|
|
+- создание записи из заказа/площадки;
|
|
|
+- создание записи из рекламации;
|
|
|
+- обновление записи;
|
|
|
+- удаление записи;
|
|
|
+- экспорт;
|
|
|
+- недельное/месячное представление.
|
|
|
+
|
|
|
+Требования:
|
|
|
+
|
|
|
+- сохранить текущую бизнес-логику;
|
|
|
+- сохранить текущий маршрут `schedule.index`;
|
|
|
+- перенести пункт меню внутрь `Графики`;
|
|
|
+- сохранить текущие права `schedule.view` и связанные права обновления/экспорта;
|
|
|
+- сохранить связь с площадками ДКР;
|
|
|
+- сохранить связь с рекламациями;
|
|
|
+- добавить/подготовить связь с `График заказов`, когда он будет реализован.
|
|
|
+
|
|
|
+Что не менять на первом этапе:
|
|
|
+
|
|
|
+- структуру таблиц графика монтажей;
|
|
|
+- существующие маршруты `schedule.*`;
|
|
|
+- текущие правила создания записей из заказов и рекламаций;
|
|
|
+- текущий UI графика, кроме положения в меню.
|
|
|
+
|
|
|
+## 8. Связи между графиками
|
|
|
+
|
|
|
+Целевая логика связей:
|
|
|
+
|
|
|
+| Источник | Получатель | Связь |
|
|
|
+|---|---|---|
|
|
|
+| Каталог общий | График заказов | Позиции заказа и справочные данные по номенклатуре. |
|
|
|
+| График заказов | График доставок | Адреса и заказы для планирования доставки. |
|
|
|
+| График заказов | График монтажей | Связь производственного графика с монтажом. |
|
|
|
+| ДКР / Площадки | График монтажей | Площадки для монтажных работ. |
|
|
|
+| Рекламации | График монтажей | Работы по рекламациям. |
|
|
|
+
|
|
|
+Требования:
|
|
|
+
|
|
|
+- связи не должны ломать автономность ДКР;
|
|
|
+- текущий график монтажей должен работать до реализации графика заказов;
|
|
|
+- новые графики должны опираться на `Каталог общий`, а не на каталог внутри ДКР.
|
|
|
+
|
|
|
+## 9. Данные и модели
|
|
|
+
|
|
|
+Для `График монтажей` использовать текущие модели и таблицы.
|
|
|
+
|
|
|
+Для `График заказов` и `График доставок` модели проектируются отдельно после уточнения данных.
|
|
|
+
|
|
|
+Предварительно потребуются сущности:
|
|
|
+
|
|
|
+- производственная запись графика заказов;
|
|
|
+- строка/позиция производственного заказа;
|
|
|
+- запись доставки;
|
|
|
+- водитель или ответственный доставки;
|
|
|
+- журнал загрузок из 1С.
|
|
|
+
|
|
|
+Открыто:
|
|
|
+
|
|
|
+- точные имена таблиц и моделей;
|
|
|
+- структура полей;
|
|
|
+- необходимость истории изменений;
|
|
|
+- связь с существующими `Order`, `Product`, `ProductSKU`.
|
|
|
+
|
|
|
+## 10. Первый этап реализации
|
|
|
+
|
|
|
+В первый этап модуля `Графики` входит:
|
|
|
+
|
|
|
+- общая реорганизация меню;
|
|
|
+- перенос `График монтажей` внутрь группы `Графики`;
|
|
|
+- сохранение текущего маршрута `schedule.index`;
|
|
|
+- добавление заглушки `График заказов`;
|
|
|
+- добавление заглушки `График доставок`;
|
|
|
+- сохранение текущих прав;
|
|
|
+- проверка доступности текущего графика монтажей.
|
|
|
+
|
|
|
+В первый этап не входит:
|
|
|
+
|
|
|
+- разработка обмена с 1С;
|
|
|
+- проектирование БД графика заказов;
|
|
|
+- проектирование БД графика доставок;
|
|
|
+- реализация недельного календаря доставок;
|
|
|
+- изменение текущей логики графика монтажей.
|
|
|
+
|
|
|
+## 11. Этапы реализации
|
|
|
+
|
|
|
+- [ ] Проверить текущие маршруты `schedule.*`.
|
|
|
+- [ ] Проверить текущие permissions графика монтажей.
|
|
|
+- [ ] Добавить верхнюю группу меню `Графики`.
|
|
|
+- [ ] Перенести текущий пункт `График монтажей` внутрь `Графики`.
|
|
|
+- [ ] Оставить маршрут `schedule.index` без переименования.
|
|
|
+- [ ] Добавить страницу-заглушку `График заказов`.
|
|
|
+- [ ] Добавить страницу-заглушку `График доставок`.
|
|
|
+- [ ] Проверить активное состояние меню для `Графики`.
|
|
|
+- [ ] Проверить, что текущий график монтажей открывается и работает.
|
|
|
+- [ ] Проверить создание записи графика из площадки/заказа.
|
|
|
+- [ ] Проверить создание записи графика из рекламации.
|
|
|
+- [ ] Проверить экспорт графика монтажей.
|
|
|
+- [ ] Составить отдельный список полей для будущего графика заказов.
|
|
|
+- [ ] Составить отдельный список полей для будущего графика доставок.
|
|
|
+
|
|
|
+## 12. Критерии приемки
|
|
|
+
|
|
|
+- В верхнем меню есть группа `Графики`.
|
|
|
+- Внутри группы есть пункты `График заказов`, `График доставок`, `График монтажей`.
|
|
|
+- `График монтажей` открывается по текущему маршруту `schedule.index`.
|
|
|
+- Текущая логика графика монтажей не изменилась.
|
|
|
+- Заглушки `График заказов` и `График доставок` открываются без 404/403 у авторизованных пользователей.
|
|
|
+- Пользователи с текущим доступом к графику монтажей сохраняют доступ.
|
|
|
+- График монтажей продолжает работать с площадками ДКР.
|
|
|
+- График монтажей продолжает работать с рекламациями.
|
|
|
+
|
|
|
+## 13. Открытые вопросы
|
|
|
+
|
|
|
+- Какой формат обмена с 1С для графика заказов?
|
|
|
+- Какие поля должны отображаться в графике заказов?
|
|
|
+- Нужен ли ручной ввод в графике заказов?
|
|
|
+- Где хранить список водителей для графика доставок?
|
|
|
+- Нужен ли отдельный модуль `Отгрузки`, или график доставок закрывает эту задачу?
|
|
|
+- Какие статусы нужны для доставок?
|
|
|
+- Как должна выглядеть связь между графиком заказов и графиком монтажей?
|