feat(inventory): учитывать коэффициент конверсии при резервировании компонентов комплектов

Добавлены поля original_sales_unit и conversion_factor в KitItemSnapshot для хранения
единиц продажи и коэффициентов конверсии на момент создания снимка. Обновлена логика
резервирования запасов для корректного расчета количества в базовых единицах.

Изменения в шаблоне редактирования комплектов для сохранения выбранных единиц продажи
при обновлении списка опций.

BREAKING CHANGE: Изменена структура данных в KitItemSnapshot, требуется миграция базы данных.
This commit is contained in:
2026-01-21 11:05:00 +03:00
parent e138a28475
commit ffc5f4cfc1
6 changed files with 93 additions and 3 deletions

View File

@@ -140,6 +140,25 @@ class KitItemSnapshot(models.Model):
verbose_name="Группа вариантов"
)
original_sales_unit = models.ForeignKey(
'products.ProductSalesUnit',
on_delete=models.SET_NULL,
null=True,
blank=True,
related_name='kit_item_snapshots',
verbose_name="Единица продажи",
help_text="Единица продажи на момент создания снимка"
)
conversion_factor = models.DecimalField(
max_digits=15,
decimal_places=6,
null=True,
blank=True,
verbose_name="Коэффициент конверсии",
help_text="Сколько единиц продажи в 1 базовой единице товара"
)
quantity = models.DecimalField(
max_digits=10,
decimal_places=3,