From a244d82e4929e17363402b6142648956db8e9fb1 Mon Sep 17 00:00:00 2001 From: Andrey Smakotin Date: Mon, 8 Dec 2025 18:40:05 +0300 Subject: [PATCH] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=BE:=20=D1=81=D0=BE=D1=85=D1=80=D0=B0=D0=BD?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D1=84=D0=BB=D0=B0=D0=B3=D0=B0=20is?= =?UTF-8?q?=5Freturned=20=D0=BF=D1=80=D0=B8=20=D0=BE=D1=82=D0=BC=D0=B5?= =?UTF-8?q?=D0=BD=D0=B5=20=D1=80=D0=B0=D0=BD=D0=B5=D0=B5=20=D0=BF=D1=80?= =?UTF-8?q?=D0=BE=D0=B4=D0=B0=D0=BD=D0=BD=D0=BE=D0=B3=D0=BE=20=D0=B7=D0=B0?= =?UTF-8?q?=D0=BA=D0=B0=D0=B7=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- myproject/inventory/signals.py | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/myproject/inventory/signals.py b/myproject/inventory/signals.py index a92d1a0..f15411d 100644 --- a/myproject/inventory/signals.py +++ b/myproject/inventory/signals.py @@ -609,6 +609,29 @@ def release_reservations_on_cancellation(sender, instance, created, **kwargs): logger.debug( f"ℹ️ Для заказа {instance.order_number} нет резервов в статусе 'reserved'" ) + + # === Обновляем is_returned === + # Проверяем: был ли заказ когда-либо в статусе completed (продан)? + # Если да, то это возврат/отмена проданного товара + try: + from orders.models import OrderStatus + + # Проверяем всю историю заказа + was_completed = instance.history.filter( + status__is_positive_end=True + ).exists() + + if was_completed: + # Заказ был продан → это возврат + Order.objects.filter(pk=instance.pk).update(is_returned=True) + logger.info( + f"✓ Заказ {instance.order_number} был продан ранее. " + f"Установлен флаг is_returned = True" + ) + except Exception as e: + logger.warning( + f"⚠ Не удалось проверить историю заказа {instance.order_number}: {e}" + ) @receiver(post_save, sender=Order)