Files
octopus/myproject/inventory
Andrey Smakotin 6c497bbde3 Исправлен баг: ShowcaseItem теперь корректно переходит available → sold при cancelled → completed
Проблема:
- При переходе заказа cancelled → completed витринный букет оставался в статусе 'available'
- Логика финализации искала только ShowcaseItem в статусе 'reserved'
- НО при отмене (cancelled) ShowcaseItem переходит в 'available', а не остаётся в 'reserved'
- Итог: букет не финализировался, оставался свободным вместо проданного

Решение:
- inventory/signals.py: в сигнале create_sale_on_order_completion обновлена логика финализации
- Теперь ищем ShowcaseItem в статусах ['reserved', 'available']
- Для статуса 'reserved': вызываем mark_sold_from_reserved() (обычный flow)
- Для статуса 'available': вызываем mark_sold() (переход из отмены cancelled → completed)
- Оба метода корректно переводят букет в 'sold' и устанавливают sold_at

Flow переходов:
1. Обычный: draft → completed: ShowcaseItem reserved → sold 
2. Из отмены: cancelled → completed: ShowcaseItem available → sold  (ИСПРАВЛЕНО)
2026-01-05 09:23:50 +03:00
..