Files
octopus/myproject
Andrey Smakotin d65a69e2bb Исправлен поиск витринных резервов при создании Sale из отменённого заказа
Проблема:
- При переходе cancelled → completed резервы витринных букетов отвязаны от order_item (order_item=None)
- В create_sale_on_order_completion поиск резервов по order_item не находит их
- Sale не создаются → букет освобождается вместо продажи

Решение:
- inventory/signals.py: в create_sale_on_order_completion добавлена fallback-логика для витринных комплектов
- Если резервы не найдены по order_item=item, проверяем: витринный комплект?
- Для витринных: ищем резервы через product_kit + showcase__isnull=False + status='reserved'
- Найденные резервы привязываем к order_item перед созданием Sale
- Затем создаются Sale и ShowcaseItem корректно переходит в sold

Flow теперь работает полностью:
1. cancelled: ShowcaseItem → available, Reservation order_item=None
2. cancelled → completed:
   - create_sale_on_order_completion находит резервы через product_kit 
   - Привязывает их к order_item 
   - Создаёт Sale для компонентов 
   - Финализирует ShowcaseItem: available → sold 

Гарантирует создание Sale даже если порядок срабатывания сигналов не предсказуем.
2026-01-05 09:45:18 +03:00
..