From d2384394c8f61161317f02c03007defc51c2c845 Mon Sep 17 00:00:00 2001 From: Andrey Smakotin Date: Fri, 26 Dec 2025 16:02:54 +0300 Subject: [PATCH] =?UTF-8?q?fix(signals):=20=D0=BE=D0=B1=D0=BD=D0=BE=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5=20Stock=20=D0=BF=D0=BE=D1=81?= =?UTF-8?q?=D0=BB=D0=B5=20=D1=83=D0=B4=D0=B0=D0=BB=D0=B5=D0=BD=D0=B8=D1=8F?= =?UTF-8?q?=20=D0=BF=D0=B0=D1=80=D1=82=D0=B8=D0=B8=20Output=20=D0=B2=20?= =?UTF-8?q?=D0=BF=D1=80=D0=BE=D1=86=D0=B5=D1=81=D1=81=D0=B5=20=D0=BE=D1=82?= =?UTF-8?q?=D0=BC=D0=B5=D0=BD=D1=8B=20=D1=82=D1=80=D0=B0=D0=BD=D1=81=D1=84?= =?UTF-8?q?=D0=BE=D1=80=D0=BC=D0=B0=D1=86=D0=B8=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- myproject/inventory/signals.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/myproject/inventory/signals.py b/myproject/inventory/signals.py index e027c66..c619720 100644 --- a/myproject/inventory/signals.py +++ b/myproject/inventory/signals.py @@ -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'])