ТЗ: Технич. описание
Связанные документы:
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 отсутствуют готовые поля для названия печатной формы, текстовых характеристик, полного и краткого технического описания. Эти описательные поля должны дополнять общий каталог.
Техописание не хранит собственную копию цены. При формировании DOCX оно читает согласованный вид цены непосредственно из позиции Каталог общий. Старое одиночное поле price переносится только после сопоставления с одним из восьми новых видов цены.
8. Этапы реализации
9. Критерии приемки
- Техническое описание доступно из карточки позиции общего каталога.
- Данные техописания не дублируют общий каталог без необходимости.
- Цена не дублируется в техописании и берётся из позиции общего каталога.
- Экспорт техописания работает в согласованном формате.
- Готовый Laravel-модуль использован как источник экспортной логики.
- Права просмотра/редактирования согласованы с правами общего каталога.
10. Открытые вопросы
- Переносить все 938 позиций как источник данных или только обогащать артикулы, уже существующие в общем каталоге?
- Сохраняются ли оба текущих DOCX-шаблона без визуальных изменений?
- Нужна ли история изменения текстов технического описания?
- Какому из восьми видов цены общего каталога соответствует старое поле
price?