a5a983b198e024550e243309ef88c8a0c610865b
Проблема: - При откате заказа из статуса 'completed' в 'возврат' или другой статус - Резервы правильно обновлялись на 'reserved' или 'released' - НО Stock.quantity_reserved не обновлялся - В результате товар показывался как полностью свободный, хотя был резерв Причина: - В сигнале rollback_sale_on_status_change использовался .update() - Это не вызывало сигнал update_stock_on_reservation_change - Stock не пересчитывался автоматически Решение: - Заменен .update() на .save(update_fields=[...]) в сигнале отката - Теперь при изменении резервов автоматически срабатывает сигнал - Stock корректно обновляется в обоих направлениях: * completed → резервы converted_to_sale → Stock обновляется * откат → резервы reserved/released → Stock обновляется - Убран костыль с ручным вызовом refresh_from_batches() Результат: - Элегантное единообразное решение для всех сценариев - Stock автоматически синхронизируется с резервами - Работает корректно при любых изменениях статуса заказа
Description
No description provided
Languages
Python
57%
HTML
32%
JavaScript
9.5%
CSS
1.1%
Shell
0.4%