Производство — бизнес-логика
Документ выпуска готового изделия из компонентов — единственный тип
документа, где приход и расход происходят одновременно, одним действием:
компоненты списываются со склада по рецептуре (спецификации), готовое
изделие приходуется. Изделие — это товар, который сам состоит из других
товаров (см. Концепцию работы, «Изделия — рецептура»).
Компонент выбирается из реального остатка
Как и на расходе, компонент списывается с конкретной партии склада —
выбор фиксирует товар, количество и цену на момент добавления строки.
Добавление изделия по спецификации разворачивает рецептуру разом: строка
изделия (приход) и все его компоненты (расход) добавляются одним
действием. Повторное добавление того же изделия в тот же документ не
плодит дубли — старый набор компонентов удаляется и собирается заново по
актуальной рецептуре.
Нехватка не блокирует выпуск
Если компонентов недостаточно на складе — производство всё равно
допускается. Система не отказывает в обработке, а лишь регистрирует факт
нехватки; решение о доборе компонентов остаётся за пользователем. Это
согласуется с общим принципом системы — регистрировать реальность, а не
навязывать «правильный» порядок действий (см.
Концепцию работы
про производство из компонентов, которых нет на складе).
Что происходит при обработке
- Приход изделия. Каждая строка-изделие приходуется на склад. Если
цена изделия не задана явно, она считается автоматически из
себестоимости списанных компонентов плюс дополнительные расходы — с
предупреждением пользователю, но без блокировки обработки. - Расход компонентов. Каждый компонент списывается с той партии
склада, что была выбрана при добавлении строки — та же механика, что и
на обычном расходе. - Поставщик изделия наследуется от компонентов. Если все компоненты
списаны от одного поставщика — выпущенное изделие считается его; если
компоненты от разных поставщиков — изделие считается собственностью
основной фирмы. Явного «поставщика изделия» пользователь не указывает —
это вычисляемое следствие того, откуда фактически взялись компоненты.
Режим цены фиксируется на весь документ
Первое добавленное в документ изделие определяет режим цены для всего
документа, а не для отдельной строки:
- Ручной режим — цена изделия введена пользователем и автоматическим
расчётом не трогается; все последующие изделия документа тоже обязаны
иметь цену, введённую вручную. - Авто-режим — цена считается из компонентов и дополнительных
расходов, при расчёте или автоматически при обработке, если явно не
задана.
Режим не сбрасывается, даже если все изделия документа удалить и добавить
заново — иначе правило ручного режима можно было бы обойти, пересоздав
строку с той же ценой другим путём.