ТЗ: Технич. описание
Связанные документы:
1. Назначение
Технич. описание описывает технические данные позиции общего каталога и выгрузки этих данных в заданном формате.
По новым вводным это не отдельный самостоятельный модуль, а часть модуля Каталог общий: по сути это те же данные позиции, только представленные и выгружаемые в определенном формате.
2. Статус
Статус: источник изучен, встроить в модуль Каталог общий.
Laravel-модуль to.stroyprofit.com изучен и используется как источник:
- структуры данных технического описания;
- правил формирования выгрузок;
- шаблонов/форматов экспорта;
- возможных UI-решений, если они применимы к текущей CRM.
В источнике находятся 938 позиций из 24 серий. Для всех позиций заполнены цена, характеристики, полное и краткое техническое описание, группа, название для формы и изображение. Наличие цены в старом модуле зафиксировано как факт анализа, но цена не считается частью техописания в новой CRM.
3. Место в меню
Отдельный пункт меню Технич. описание не нужен. Целевая модель:
Каталог общий
└── Карточка позиции
└── Технич. описание / экспорт
Требования:
- не проектировать отдельную сущность техописания, если достаточно данных карточки общего каталога;
- открыть техописание из карточки позиции общего каталога;
- обеспечить выгрузку технического описания в требуемом формате;
- использовать готовый Laravel-модуль как источник логики экспорта.
- выбранный год в CRM не влияет на техописания и их выгрузки.
4. Права доступа
Отдельная заглушка для техописания не требуется, потому что функциональность встраивается в карточку общего каталога.
Целевая модель:
- просмотр техописания наследует доступ к позиции общего каталога;
- экспорт техописания наследует доступ к позиции общего каталога;
- редактирование данных техописания наследует права редактирования позиции общего каталога.
5. Функциональные требования
Целевой функционал:
- просмотр технических данных из карточки позиции общего каталога;
- редактирование технических данных вместе с карточкой позиции или в отдельной вкладке карточки;
- формирование выгрузки технического описания в установленном формате;
- использование готового Laravel-модуля как основы для экспорта;
- хранение данных в структуре общего каталога или связанной таблице, если данные нельзя уложить в основную карточку позиции.
- получение актуальной цены для DOCX из модуля
Склад без собственной копии цены в техописании.
6. Что не переносим из готового модуля
- отдельный самостоятельный раздел техописаний;
- отдельная модель прав, не связанная с каталогом;
- прямое копирование устаревшего механизма авторизации и публичного хранения экспортов;
- перезапись актуальных данных общего каталога без сопоставления по артикулу.
- поле цены в таблицах общего каталога или техописания.
7. Результаты анализа
Источник хранит:
- артикул;
- серию;
- наименование;
- наименование для печатной формы;
- группу;
- цену;
- характеристики;
- полное техническое описание;
- краткое техническое описание;
- изображение.
Экспорт поддерживает:
- выбор нескольких позиций;
- общий DOCX;
- отдельный DOCX для каждой позиции в ZIP;
- выбор полного, краткого или комбинированного описания;
- отдельный и массовый DOCX-шаблоны.
В текущем common_catalog_items отсутствуют готовые поля для названия печатной формы, текстовых характеристик, полного и краткого технического описания. Эти описательные поля должны дополнять общий каталог.
Цена обрабатывается отдельно: единственным источником актуального значения является Склад. Значение из to.stroyprofit.com можно использовать только для начального заполнения складской цены после подтверждения её назначения. Техописание читает актуальную цену при формировании DOCX и не хранит собственную копию.
8. Этапы реализации
9. Критерии приемки
- Техническое описание доступно из карточки позиции общего каталога.
- Данные техописания не дублируют общий каталог без необходимости.
- Цена не хранится в техописании и берётся из единого источника модуля
Склад.
- Экспорт техописания работает в согласованном формате.
- Готовый Laravel-модуль использован как источник экспортной логики.
- Права просмотра/редактирования согласованы с правами общего каталога.
10. Открытые вопросы
- Переносить все 938 позиций как источник данных или только обогащать артикулы, уже существующие в общем каталоге?
- Сохраняются ли оба текущих DOCX-шаблона без визуальных изменений?
- Нужна ли история изменения текстов технического описания?
- Какой вид цены хранится в старом модуле и зависит ли она от конкретного складского заказа/партии?