а# План реорганизации Manager 2.0
Рабочая папка рефакторинга: docs/refactor/.
Связанные документы:
Перевести текущую CRM в структуру Manager 2.0: реорганизовать верхнее меню, сохранить самостоятельный модуль ДКР с его собственным каталогом, добавить отдельный Каталог общий, добавить заглушки для новых модулей и подготовить отдельные ТЗ по каждому разделу перед глубокой разработкой.
Каталог общий — разные сущности.Каталог общий реализуется отдельно как общий справочник платформы.Запчасти — общий модуль для всей платформы, включая ДКР.Склад должен быть реализован полностью по образцу раздела Запчасти, с адаптацией под МАФ/позиции из Каталог общий.В разработке.Технич. описание встроено в модуль Каталог общий; готовый Laravel-модуль используем как источник экспорта.to.stroyprofit.com изучен: его данные и DOCX-экспорты переносятся в Каталог общий без отдельного раздела.Каталог общий и хранятся непосредственно у позиции; актуальный формат и реальные значения определены файлом docs/refactor/Каталог общий.xlsx.строители, опт, рек, розница, проект, проект+м, пик, рек+10.calc.stroyprofit.com используется как источник модели данных, формул и экспортов, но его код и текущие формулы не переносятся без проверки.Калькуляций определяются отдельным ТЗ; допустимы внутренняя реализация в Laravel и интеграционный вариант.График отгрузок и действующий обработчик 1С в manager.stroyprofit.com изучены как исходная система для Графика заказов.График заказов проектируется максимально нормализованно: заказ, позиции, доставки и загрузки 1С хранятся отдельными сущностями, без сериализованных полей и фиксированных колонок для нескольких доставок.Графика заказов определяются отдельным ТЗ заказчика.Рекламации -> ДКР реализуется как отдельная вкладка на основе текущего списка с обязательным фильтром по типу dkr.reclamation_types; начальные типы ДКР и Прочее создаются сидером.Все и ДКР.other (Прочее).ДКР.Каталог общий используют префикс common-catalog/....Каталог общий используют техническое имя common-catalog.Склад: stock.помощник руководителя: assistant_head.docs/refactor/menu.md.docs/refactor/plan.md.ДКР: tz-dkr.md.Каталог общий: tz-catalog-common.md.Графики: tz-schedules.md.Рекламации: tz-reclamations.md.Запчасти: tz-spare-parts.md.Склад: tz-stock-availability.md.Документация: tz-documents.md.Технич. описание: tz-technical-description.md.Калькуляции: tz-calculations.md.Администратор: tz-admin.md.| Этап | Статус | Почему |
|---|---|---|
| 1. Реорганизация меню и заглушки | Реализован и проверен | Новое меню и заглушки приняты по результатам пользовательской проверки. |
| 2. Адаптация существующих разделов после переноса | Реализован и проверен | Рабочие разделы и их отображение приняты по результатам пользовательской проверки. |
| 3. Рекламации: вкладки и тип | Реализован, ожидает пользовательской проверки | Добавлены вкладки, справочник типов, перенос существующих данных и запрет платежных документов для Прочее; создание из графика остается в этапе 10. |
| 4. Общий каталог | Реализован и проверен | Создание, редактирование, импорт и экспорт фактического формата Каталог общий.xlsx приняты по результатам пользовательской проверки; добавлены восемь цен и ограничения доступа. |
| 5. Документация | Реализован и проверен | Пользователь проверил дерево папок, работу с документами и версиями; права и приватное хранение дополнительно покрыты автоматическими тестами. |
| 6. Склад: ядро | Реализован и проверен | Ядро склада принято после пользовательской проверки. Цены относятся к общему каталогу; для склада остаётся отдельной задачей только PDF-экспорт после согласования шаблона. |
| 7. Техническое описание | Реализован и проверен | Данные встроены в общий каталог, вид цены выбирается администратором (по умолчанию проект), одиночный DOCX и массовый DOCX/ZIP приняты по результатам пользовательской проверки. |
| 8. Калькуляции | Исходник изучен, ожидается отдельное ТЗ | Восстановлены сущности, формулы и экспорты calc.stroyprofit.com; финальная архитектура, формулы и сценарии не фиксируются до ТЗ. Рабочая база источника сейчас не содержит расчётных данных. |
| 9. Графики заказов и доставок | Ручной контур и XLS реализованы; интеграция в работе | Нормализованное ядро, таблица и карточка заказа по ТЗ, несколько доставок/монтажей, недельный график доставок, файлы, уведомления, документы, экспорт и рекламации приняты пользователем. XLS-импорт реализован и покрыт автотестами; 1С и перенос истории ожидают согласования интеграционного контракта. |
| 10. Рекламации из графика заказов | Реализован и проверен | Из карточки заказа создаётся рекламация типа Прочее по выбранным экземплярам МАФ; она доступна во вкладке Все, исключена из ДКР и не имеет платёжных документов. Сценарий принят пользователем вместе с ручным контуром графика заказов. |
Статус: реализован и проверен пользователем.
В разработке.resources/views/layouts/menu.blade.php под новую древовидную структуру.ДКР.Каталог внутри меню ДКР.Каталог общий.График монтажей внутрь верхнего меню Графики.График заказов и График доставок.Рекламации на Все и ДКР.Запчасти отдельной верхней группой с текущими вкладками.Склад -> Наличие и Склад -> Заказы.Документация, Каталог общий, Калькуляции.Администрирование в Администратор.Статус: реализован и проверен пользователем.
Задача этапа — проверить существующие рабочие разделы после изменения меню и внести точечные правки без изменения бизнес-логики.
ДКР.ДКР.График монтажей открывается из группы Графики.Запчасти работает в новой структуре меню без изменения бизнес-логики.Каталог, Заказы запчастей, Контроль наличия, Справочник расшифровок, Справка.Запчасти используются как общий модуль, включая ДКР.Администратор содержит текущие пункты администрирования.Подрядчики всегда отображаются внутри группы Администратор.Статус: реализован для текущих рекламаций, ожидает пользовательской проверки.
Создание рекламации из графика заказов вынесено в отдельный этап, потому что зависит от реализации графика заказов.
Все и ДКР.reclamation_types и заполнить его типами ДКР / Прочее через сидер.reclamations.reclamation_type_id и перенести существующие записи на тип ДКР.ДКР на текущем списке с обязательным фильтром по типу dkr.Прочее.Статус: реализован и проверен пользователем.
Пользовательская проверка пройдена для создания и редактирования позиций, импорта и экспорта.
В этот этап не входят внешняя API-интеграция калькуляций и перенос экспорта техописаний. Для них нужны отдельные вводные.
catalog.* относится к каталогу ДКР.common-catalog/..., таблицы и права с техническим именем common-catalog.docs/refactor/Каталог общий.xlsx как актуальный источник колонок и реальных данных общего каталога; старый шаблон оставить историческим референсом.Технич. описание в карточку общего каталога.Калькуляции.common_catalog_items.id для будущих связей с графиками, рекламациями и складом наличия; сами связи реализуются в этапах этих модулей.docs/refactor/Каталог общий.xlsx из 30 колонок и двух строк заголовка.common_catalog_items.Статус: реализован и проверен пользователем.
Статус: ядро реализовано и проверено пользователем.
Ядро склада можно реализовывать после появления позиций общего каталога. PDF-экспорт по шаблону вынесен отдельным подпунктом, потому что точный шаблон еще не согласован.
Запчасти как эталон.Запчасти -> Склад.stock для заказов, остатков, броней, списаний и истории.Наличие.Заказы.Наличие всем, Заказы админу и роли assistant_head.Статус: реализован и проверен пользователем.
to.stroyprofit.com.Каталог общий.common_catalog_items, а не образуют отдельный модуль каталога.Каталог общий.Каталог общий с безопасной миграцией.проект.Каталог общий, не сохраняя отдельную копию в данных техописания.Статус: исходный Python-модуль изучен, ожидается отдельное ТЗ.
Текущий calc.stroyprofit.com рассматривается как источник предметной модели и экспортов. Финальное решение — перенос расчётного движка в Laravel либо интеграция — принимается после отдельного ТЗ. Формулы источника не считаются согласованными автоматически.
Калькуляции.Калькуляция в карточке общего каталога.calc.stroyprofit.com.backup.sql.Статус: ручной контур реализован и проверен пользователем; XLS-импорт реализован и покрыт автотестами; в работе остаются обмен с 1С и перенос истории.
Старый График отгрузок является источником существующих данных и сценариев, но не переносится одной таблицей. Архитектура нового модуля должна оставаться нормализованной и расширяемой под дополнительные требования заказчика.
production_orders — заголовок производственного заказа; не смешивается с ДКР-orders.production_order_items — отдельный экземпляр МАФ со ссылкой на common_catalog_items и собственным паспортом.production_order_deliveries — неограниченное число доставок с водителем и данными заявки.production_order_installations — неограниченное число этапов монтажа с бригадиром.production_order_activities — журнал только согласованных значимых событий.production_calendar_days — переносы и исключения производственного календаря; базовое правило без исключений — понедельник–пятница.driver, permissions и расчёт даты отгрузки.Текущий подэтап: 9.6. Обмен данными; фоновый экспорт списка и атомарный XLS-импорт реализованы, а 1С и перенос истории ожидают согласования контракта. Подэтап 9.7 реализован и принят пользователем.
driver, действия и permissions отдельных полей.[x] 9.7. Рекламации и автопроверка: этап 10 связан с заказами, полный набор автоматических тестов пройден, интерфейс принят пользователем.
[x] Изучить старый График отгрузок в manager.stroyprofit.com.
[x] Описать найденный HTTP-обмен с 1С и состав текущего payload.
[x] Проанализировать существующие статусы, ручные поля, вложения и несколько доставок по заказу.
[x] Зафиксировать обязательную нормализацию заказов, позиций, доставок и загрузок 1С.
[x] Получить отдельное ТЗ на График заказов.
[x] Конвертировать ТЗ в tz-order-schedule.md, сохранить значимый референс карточки и сопоставить требования с планом и текущим кодом.
[x] Получить и конвертировать ответы заказчика в tz-order-schedule-answers.md.
[x] Получить и разобрать шаблон заявки на доставку templates/DeliveryRequest.xls.
[x] Согласовать даты отгрузки, производственный календарь, несколько доставок/монтажей, роль водителя, права, уведомления и аудит.
[ ] Согласовать со специалистом 1С оставшиеся вопросы интеграции.
[ ] Уточнить стабильный внешний идентификатор заказа и передачу артикула каждой позиции из 1С.
[ ] Согласовать принадлежность полей источнику или ручному редактированию, чтобы повторная загрузка не уничтожала плановые данные.
[x] Согласовать календарь рабочих дней и значения полей дат отгрузки.
[x] Зафиксировать Водитель как отдельную роль в ролевой модели.
[x] Спроектировать нормализованные таблицы и связи после получения ТЗ.
[ ] Спроектировать загрузку данных через 1С.
[ ] Реализовать безопасный идемпотентный импорт с журналом запусков и ошибок.
[x] Реализовать График заказов без прямого копирования устаревшей таблицы graf1.
[ ] Подготовить отдельную миграцию исторических данных старого Manager с отчётом о конфликтах и дублях.
[x] Добавить карточку заказа с выбором одного или нескольких МАФ.
[x] Добавить ручное создание заказа, файлы, фотографии, чат, паспорт каждого МАФ и журнал согласованных действий.
[x] Добавить статусы, типы исполнения, цветовую индикацию и настраиваемые уведомления.
[x] Реализовать экспорт списка заказов с активными фильтрами и экспорт МАФ одного заказа.
[x] Реализовать ручной XLS-импорт: обновление по ID, создание при пустом ID, ошибка при неизвестном ID; экземпляры МАФ принимать с отдельного листа.
[x] Реализовать пакеты документов для монтажа, доставки и технической документации.
[x] Добавить создание рекламации из заказа через текущую форму.
[x] Получить базовые требования и шаблон заявки для Графика доставок.
[x] Реализовать График доставок в виде недельного списка.
[x] Добавить ручное планирование занятости водителей.
[x] Связать доставки с адресами из графика заказов.
[x] Проверить связи монтажей с ДКР-площадками и графиком заказов.
Статус: реализован и проверен пользователем.
other (Прочее).Все и не попадает во вкладку ДКР.make test внутри контейнеров (1104 теста, 3037 проверок; функциональных ошибок нет, отсутствует только драйвер покрытия).Каталог общий открыт как отдельный рабочий раздел.Калькуляции и выберет ли оно внутренний расчёт в Laravel или интеграцию?calc.stroyprofit.com?to.stroyprofit.com как исходные или только обогащать совпавшие артикулы?price?Склад?График доставок?