tz-schedules.md 15 KB

ТЗ: Модуль Графики

Связанные документы:

1. Назначение

Модуль Графики объединяет календарные и производственные представления Manager 2.0:

  • график заказов на производстве;
  • график доставок;
  • график монтажей.

Цель модуля — дать единый раздел для планирования производства, доставки и монтажных работ, сохранив текущую рабочую реализацию графика монтажей.

2. Статус

Статус модуля: частично реализован.

В текущей CRM реализован:

  • График монтажей;
  • маршрут: schedule.index;
  • контроллер: ScheduleController;
  • модель: Schedule;
  • создание записей из площадок/заказов;
  • создание записей из рекламаций;
  • экспорт графика;
  • недельное/месячное представление, если доступно в текущей реализации.

Нужно реализовать:

  • График заказов;
  • График доставок;
  • новую верхнюю группу меню Графики;
  • связи между графиками.

3. Место в меню

Целевое меню:

Графики
├── График заказов
├── График доставок
└── График монтажей

Требования:

  • добавить верхний пункт меню Графики;
  • перенести текущий пункт График монтажей внутрь Графики;
  • текущий маршрут 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С для графика заказов?
  • Какие поля должны отображаться в графике заказов?
  • Нужен ли ручной ввод в графике заказов?
  • Где хранить список водителей для графика доставок?
  • Нужен ли отдельный модуль Отгрузки, или график доставок закрывает эту задачу?
  • Какие статусы нужны для доставок?
  • Как должна выглядеть связь между графиком заказов и графиком монтажей?