Исправлено: сохранение флага is_returned при отмене ранее проданного заказа
This commit is contained in:
@@ -610,6 +610,29 @@ def release_reservations_on_cancellation(sender, instance, created, **kwargs):
|
|||||||
f"ℹ️ Для заказа {instance.order_number} нет резервов в статусе 'reserved'"
|
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)
|
@receiver(post_save, sender=Order)
|
||||||
@transaction.atomic
|
@transaction.atomic
|
||||||
|
|||||||
Reference in New Issue
Block a user