fix(signals): обновление Stock после удаления партии Output в процессе отмены трансформации
This commit is contained in:
@@ -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'])
|
||||
|
||||
|
||||
Reference in New Issue
Block a user