fix(signals): обновление Stock после удаления партии Output в процессе отмены трансформации

This commit is contained in:
2025-12-26 16:02:54 +03:00
parent 131d078ac4
commit d2384394c8

View File

@@ -1652,10 +1652,20 @@ def rollback_transformation_on_cancel(sender, instance, **kwargs):
# 1. Удаляем партии Output
for trans_output in instance.outputs.all():
if trans_output.stock_batch:
# Восстанавливаем количество из партии в Stock (автоматически через сигналы)
# Просто удаляем партию - остатки пересчитаются
# Сохраняем ссылки на товар и склад перед удалением партии
output_product = trans_output.product
output_warehouse = instance.warehouse
batch = trans_output.stock_batch
batch.delete()
# ВАЖНО: Обновляем Stock после удаления партии Output
# Сигнал post_delete для StockBatch не обновляет Stock, только себестоимость
stock, _ = Stock.objects.get_or_create(
product=output_product,
warehouse=output_warehouse
)
stock.refresh_from_batches()
trans_output.stock_batch = None
trans_output.save(update_fields=['stock_batch'])