Files
octopus/myproject/inventory
Andrey Smakotin 6095729409 Исправлен поиск ShowcaseItem при переходе cancelled → completed
Проблема:
- При отмене (cancelled) метод return_to_available() сбрасывает sold_order_item = None
- При переходе cancelled → completed поиск ShowcaseItem по sold_order_item__order не находит букеты
- Букеты оставались в статусе 'available' вместо 'sold'

Решение:
- inventory/signals.py: в сигнале create_sale_on_order_completion изменена логика поиска
- Разделён поиск на два этапа:
  1. Поиск по sold_order_item для букетов в 'reserved' (обычный flow)
  2. Поиск по product_kit для букетов в 'available' (переход из cancelled)
- Для букетов в 'available': ищем через product_kit + status='available' + sold_order_item__isnull=True
- Вызываем mark_sold(order_item) для каждого найденного букета
- Букет корректно переходит available → sold и привязывается к OrderItem

Flow теперь работает:
1. draft → completed: ShowcaseItem reserved → sold 
2. cancelled → completed: ShowcaseItem available → sold  (ИСПРАВЛЕНО!)

Защита от двойной продажи работает корректно.
2026-01-05 09:30:00 +03:00
..