Добавлено сохранение snapshot-значений для проведенных инвентаризаций
- Добавлены поля snapshot_* в модель InventoryLine для фиксации значений на момент завершения - Обновлен InventoryProcessor для сохранения snapshot перед обработкой - Обновлен InventoryDetailView для отображения snapshot-значений в проведенных инвентаризациях - Добавлена миграция 0018 для новых полей - Теперь в проведенных инвентаризациях отображаются оригинальные значения и правильная разница, а не текущие скорректированные остатки
This commit is contained in:
@@ -338,8 +338,14 @@ class Inventory(models.Model):
|
||||
date = models.DateTimeField(auto_now_add=True, verbose_name="Дата инвентаризации")
|
||||
status = models.CharField(max_length=20, choices=STATUS_CHOICES,
|
||||
default='draft', verbose_name="Статус")
|
||||
conducted_by = models.CharField(max_length=200, blank=True, null=True,
|
||||
verbose_name="Провел инвентаризацию")
|
||||
conducted_by = models.ForeignKey(
|
||||
'user_roles.UserRole',
|
||||
on_delete=models.SET_NULL,
|
||||
blank=True,
|
||||
null=True,
|
||||
related_name='inventories',
|
||||
verbose_name="Провел инвентаризацию"
|
||||
)
|
||||
notes = models.TextField(blank=True, null=True, verbose_name="Примечания")
|
||||
|
||||
class Meta:
|
||||
@@ -375,6 +381,28 @@ class InventoryLine(models.Model):
|
||||
editable=False)
|
||||
processed = models.BooleanField(default=False,
|
||||
verbose_name="Обработана (создана операция)")
|
||||
|
||||
# Snapshot-значения на момент завершения инвентаризации
|
||||
snapshot_quantity_available = models.DecimalField(
|
||||
max_digits=10, decimal_places=3, null=True, blank=True,
|
||||
verbose_name="Всего на складе (snapshot)",
|
||||
help_text="Всего на складе на момент завершения инвентаризации"
|
||||
)
|
||||
snapshot_quantity_reserved = models.DecimalField(
|
||||
max_digits=10, decimal_places=3, null=True, blank=True,
|
||||
verbose_name="В резервах (snapshot)",
|
||||
help_text="В резервах на момент завершения инвентаризации"
|
||||
)
|
||||
snapshot_quantity_system = models.DecimalField(
|
||||
max_digits=10, decimal_places=3, null=True, blank=True,
|
||||
verbose_name="В системе свободно (snapshot)",
|
||||
help_text="В системе свободно на момент завершения инвентаризации"
|
||||
)
|
||||
snapshot_difference = models.DecimalField(
|
||||
max_digits=10, decimal_places=3, null=True, blank=True,
|
||||
verbose_name="Итоговая разница (snapshot)",
|
||||
help_text="Итоговая разница на момент завершения инвентаризации"
|
||||
)
|
||||
|
||||
class Meta:
|
||||
verbose_name = "Строка инвентаризации"
|
||||
|
||||
Reference in New Issue
Block a user