Связанные документы:
Каталог общий — центральный справочник позиций платформы Manager 2.0.
Он является базовым источником данных для модулей:
Графики;Рекламации;Склад;Технич. описание;Калькуляции.Каталог общий и каталог ДКР — разные сущности. Текущий каталог ДКР остается внутри модуля ДКР; общий каталог проектируется отдельно.
Статус модуля: ядро реализовано и проверено пользователем; переход на актуальный 30-колоночный формат с ценами реализован и ожидает пользовательской проверки.
Проверены создание и редактирование позиций, импорт и экспорт каталога.
Реализация использует ключ модуля, маршрутов и прав common-catalog. Физические
SQL-таблицы названы common_catalog_items и common_catalog_item_documents по
принятому в Laravel соглашению snake_case.
В текущей CRM уже есть раздел Каталог ДКР:
catalog.index;catalog.show;ProductController;Product;Эта реализация относится к каталогу ДКР и не становится автоматически Каталогом общим. Ее можно использовать как источник UI/технических паттернов, но данные и назначение общего каталога должны быть отделены.
Целевое меню:
Каталог общий
├── Позиции
└── Карточка позиции
Требования:
Каталог общий должен быть отдельным верхним пунктом меню;Каталог должен остаться внутри меню ДКР;catalog.index и catalog.show остаются маршрутами каталога ДКР;Каталог общий должны использовать префикс common-catalog/...;Каталог общий должны использовать техническое имя common-catalog;На первом этапе для заглушки используем доступ для всех авторизованных пользователей.
| Действие | Permission |
|---|---|
| Просмотр заглушки | Любой авторизованный пользователь |
| Просмотр общего каталога после реализации | common-catalog.view |
| Создание/редактирование/удаление | Права с префиксом common-catalog.* |
| Импорт | common-catalog.import |
| Экспорт | common-catalog.export, по умолчанию только администратор |
| Просмотр/редактирование отдельного поля | common-catalog.fields.{field}.view/update |
Требования:
catalog.view автоматически, потому что это право относится к каталогу ДКР;common-catalog;Каталог общий показывать всем авторизованным пользователям.Базовая сущность: позиция каталога.
Возможная техническая основа для анализа:
Product;catalog.show;Эти сущности относятся к каталогу ДКР и не должны смешиваться с общим каталогом без отдельной миграции или синхронизации.
Целевая роль позиции:
Список позиций должен поддерживать базовую функциональность справочника и быть подготовлен к расширению. Текущий каталог ДКР можно использовать как референс интерфейса, но не как источник данных общего каталога.
Функционал:
Источник полей и данных: файл Каталог общий.xlsx, лист Общие сведения. Заголовок занимает строки 1–2, данные начинаются со строки 3. Файл содержит реальные позиции, изображения и цены.
Колонки:
Артикул;Наименование;Вид;
4–6. Габариты: длина, ширина, высота;
7–8. Размер участка: длина, ширина;Высота падения;Дополнительные сведения;Единица измерения габаритов;Вес, кг.;Объем, м3;Места;Состав;Возрастная группа;Макс.кол-во пользователей;Ед.;Внешний вид;Серия;ТМ;Калькулятор;
23–30. цены строители, опт, рек, розница, проект, проект+м, пик, рек+10.Требования к колонкам:
Единица измерения габаритов в формате шаблона с переносом строки между словами измерения и габаритов;Артикул хранить строкой, чтобы сохранять ведущие нули;Внешний вид отображает фото позиции;от 180, 0,19-0,72);Предварительная модель полей по шаблону:
| Колонка | Поле | Тип данных | Примечание |
|---|---|---|---|
| A | article |
string | Сохранять ведущие нули, пример: 0254. |
| B | calculator_name |
text | Наименование; внутреннее имя поля сохранено для совместимости. |
| C | kind |
string nullable | Категория/вид позиции. |
| D–F | dimension_length, dimension_width, dimension_height |
string nullable | Отдельные размеры; допускают диапазоны и текст. |
| G–H | site_length, site_width |
string nullable | Размеры участка. |
| I | fall_height |
decimal nullable | Высота падения. |
| J | additional_info |
text nullable | Дополнительное описание. |
| K | dimension_unit |
string nullable | Единица измерения габаритов. |
| L–M | weight, volume |
decimal nullable | Вес и объём. |
| N | places |
integer nullable | Количество мест. |
| O | composition |
text nullable | Состав комплекта/позиции. |
| P | age_group |
string nullable | Возрастная группа. |
| Q | max_users |
integer nullable | Максимальное количество пользователей. |
| R | unit |
string nullable | Единица учета. |
| S | image_file_id |
image/file nullable | Встроенное изображение импортируется через файловый механизм CRM. |
| T–U | series, trademark |
string nullable | Серия и торговая марка. |
| V | calculator_enabled |
boolean nullable | Значения да / нет / пусто. |
| W–AD | восемь полей *_price |
money nullable | Цены хранятся в копейках, в UI и XLSX отображаются в рублях. |
Карточка позиции должна стать центральной карточкой товара/МАФ.
Функционал карточки:
Калькуляции;Текущие возможности каталога ДКР, которые можно использовать как паттерн:
catalog.upload-thumbnail — использовать как основу загрузки фото;catalog.upload-certificate — использовать как основу загрузки документов, но расширить модель до нескольких произвольных документов, если текущая реализация ограничена сертификатом.Фото:
Склад;Документы:
Документы;Требования:
Артикул + Наименование;S;| Модуль | Связь | Требование |
|---|---|---|
| ДКР | Имеет собственный каталог | Не смешивать каталог ДКР с общим каталогом. |
| Склад | Использует картинку, артикул, наименование, характеристики и ед. изм. | Цены принадлежат общему каталогу и не хранятся в складских партиях. |
| Графики | Используют данные по позициям | При разработке графиков опираться на общий каталог. |
| Рекламации | Используют данные по позициям | Сохранить/добавить связь рекламаций с позициями общего каталога. |
| Технич. описание | Является частью общего каталога | Описательные поля и DOCX-экспорты переносятся в карточку; согласованный вид цены читается из этой же позиции каталога. |
| Калькуляции | Открываются из карточки позиции | Финальное поведение кнопки и способ реализации определяются отдельным ТЗ; исходный calc.stroyprofit.com используется как референс. |
В первый этап общего каталога не входит:
catalog.*;Product;Склад;Технич. описание;catalog.*.catalog.* относятся к каталогу ДКР.common-catalog/... для Каталог общий.common-catalog для модуля и прав, SQL-префикс common_catalog — для таблиц.Каталог общий.Каталог общий.Технич. описание включается внутрь карточки общего каталога.Калькуляции.common_catalog_items.id как внешний ключ для будущих связей модулей; добавление связей выполняется вместе с соответствующими модулями.common-catalog.view для основных авторизованных ролей и отдельные права на изменение, файлы, импорт и экспорт.Каталог общий.ДКР остается пункт Каталог.catalog.index и catalog.show сохранены как маршруты каталога ДКР.Каталог общий доступен основным авторизованным ролям через право common-catalog.view.docs/refactor/Каталог общий.xlsx.common_catalog_items после переноса источника?