# Карточка объекта: A8 Товар (детально)

- **Домен / источник данных:** Grace. OpenSearch (89): `itech_orders` (шапка заказа), `itech_order_items` (позиции), `itech_bom_components` (фактический BOM), `itech_calculations` (расчёт / КП → спецификация). 
- **Бизнес-объект CoreStream:** A8 Товар — конкретный ЭКЗЕМПЛЯР, «что делаем **сейчас** по заказу» (в отличие от A3 — конструкции).
- **Экземпляр объекта =** позиция заказа (конкретное изделие в производстве); заказ — агрегат позиций.

## 1. Атрибуты (по реальным полям)

| Категория | Атрибут | Поле-источник | Замечание |
|---|---|---|---|
| Идентификаторы | Номер заказа, позиция | `orders.order_number`, `order_items.id` | |
| Идентификаторы | Артикул | `order_items.article` | → A3 Продукт |
| Состояния | Статус заказа / производства | `status_id`, `status_production_id` | производственные состояния — ЕСТЬ |
| Состояния | Отгружен | `is_shipped` | флаг финальной фазы |
| Количественные | Кол-во, цена, сумма | `quantity`, `price`, `amount`, `amount_wo_vat` | |
| Количественные | Плановая себестоимость | `purchase_plan` | план |
| Количественные | Прибыль, часы | `profit_amount`, `hours_plan`, `hours_estimation` | |
| Количественные | Итог / себест. заказа | `orders.total_cost`, `general_purchase` | агрегат |
| Качественные | Тип счёта, тип продукта | `bill_type`, `product_type_name` | |
| Качественные | Гарантийный / внутр. / перепаковка / приоритет | `is_guarantee`, `is_inner`, `is_repack`, `is_priority` | |
| Временные | Создан, запуск | `created_at`, `run_date` | маркеры A8.1 |
| Временные | Отгрузка план / факт / договор | `shipping_date_plan` / `_fact` / `_by_contract` | A8.6 |

Внешние (связи): `account_id` → A7 Потребитель; `project_id` → Проект (фаза A7); `manager_id` → A5; `article` → A3 Продукт.

## 2. Жизненный цикл — 6 фаз (A8.1 → A8.6)

| # | Фаза | Состояние | Событие перехода | Подтверждено |
|---|---|---|---|---|
| 1 | A8.1 Формирование произв. программы | заказ создан, в плане | запуск | `run_date`, `in_plan`, `status_production_id` |
| 2 | A8.2 Подготовка производства | BOM, закупка | старт цикла | `bom_components`, `purchase_items` |
| 3 | A8.3 Выполнение произв. цикла | в производстве | передача на ОТК | `status_production_id` |
| 4 | A8.4 Контроль качества (ОТК) | на контроле | принято / возврат | ⚠️ `status_production_id` частично; типы несоответствий — в комментариях, не структурно |
| 5 | A8.5 Обработка несоответствий | возврат / перепаковка | устранено | `is_repack` (только флаг) ⚠️ |
| 6 | A8.6 Обработка готовой / отгрузка | отгружен | — | `is_shipped`, `shipping_date_fact`, `shipped_year` |

## 3. Методы

| Вид | Метод | Код | След в данных |
|---|---|---|---|
| Конструктор | Создание заказа | A8.1 | insert `orders` + `run_date` |
| Адаптация | Подготовка, BOM, закупка | A8.2 | `bom_components`, `purchase_items` |
| Использование | Производственный цикл | A8.3 | `status_production_id` |
| Валидация | Контроль ОТК | A8.4 | чек-лист в CRM ⚠️ слабо в данных |
| Воспроизводство | Обработка несоответствий | A8.5 | `is_repack` |
| Деструктор | Отгрузка / передача | A8.6 | `is_shipped`, `shipping_date_fact` |

## 4. Связи

| С объектом | Тип | Поле/механизм | Атрибуты связи |
|---|---|---|---|
| A7 Потребитель | ассоциация | `orders.account_id` | сумма |
| Проект (связь, фаза A7) | ассоциация | `orders.project_id` | |
| A3 Продукт | ассоциация (что производим) | `article` → `nomenclatures` | |
| Позиции / BOM | композиция | заказ ◆ позиции ◆ компоненты | кол-во, стоимость |
| A10 Капитал | ассоциация | `expected_payments.order_id` | оплата / долг |
| A5 Сотрудник | ассоциация | `manager_id` | |

## 5. Пробелы

- **ОТК (A8.4) и брак (A8.5) слабо структурированы** — типы несоответствий в комментариях и флагах (`is_repack`), не отдельными полями.
- **Фактическая себестоимость по компоненту:** `bom_components.cost` (план?) vs фактическая закупка (`purchase_items.received_quantity`) — разрыв план/факт = та же ERP-боль ценообразования.
- **`status_production_id`** — числовой код без расшифровки переходов в индексе.