Добавлено сохранение snapshot-значений для проведенных инвентаризаций

- Добавлены поля snapshot_* в модель InventoryLine для фиксации значений на момент завершения
- Обновлен InventoryProcessor для сохранения snapshot перед обработкой
- Обновлен InventoryDetailView для отображения snapshot-значений в проведенных инвентаризациях
- Добавлена миграция 0018 для новых полей
- Теперь в проведенных инвентаризациях отображаются оригинальные значения и правильная разница, а не текущие скорректированные остатки
This commit is contained in:
2025-12-22 13:43:35 +03:00
parent 9b430c7eb0
commit c476eafd4a
4 changed files with 234 additions and 22 deletions

View File

@@ -0,0 +1,43 @@
# Generated by Django 5.0.10 on 2025-12-22 10:11
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('inventory', '0017_change_conducted_by_to_fk'),
]
operations = [
migrations.AddField(
model_name='inventoryline',
name='snapshot_difference',
field=models.DecimalField(blank=True, decimal_places=3, help_text='Итоговая разница на момент завершения инвентаризации', max_digits=10, null=True, verbose_name='Итоговая разница (snapshot)'),
),
migrations.AddField(
model_name='inventoryline',
name='snapshot_quantity_available',
field=models.DecimalField(blank=True, decimal_places=3, help_text='Всего на складе на момент завершения инвентаризации', max_digits=10, null=True, verbose_name='Всего на складе (snapshot)'),
),
migrations.AddField(
model_name='inventoryline',
name='snapshot_quantity_reserved',
field=models.DecimalField(blank=True, decimal_places=3, help_text='В резервах на момент завершения инвентаризации', max_digits=10, null=True, verbose_name='В резервах (snapshot)'),
),
migrations.AddField(
model_name='inventoryline',
name='snapshot_quantity_system',
field=models.DecimalField(blank=True, decimal_places=3, help_text='В системе свободно на момент завершения инвентаризации', max_digits=10, null=True, verbose_name='В системе свободно (snapshot)'),
),
migrations.AlterField(
model_name='inventoryline',
name='difference',
field=models.DecimalField(decimal_places=3, default=0, editable=False, help_text='(Подсчитано + Зарезервировано) - Всего на складе', max_digits=10, verbose_name='Итоговая разница'),
),
migrations.AlterField(
model_name='inventoryline',
name='quantity_fact',
field=models.DecimalField(decimal_places=3, help_text='Количество свободных товаров, подсчитанных физически', max_digits=10, verbose_name='Подсчитано (факт, свободные)'),
),
]