Проблема: - Создан заказ на 150 руб, оплачено 300 руб → 150 руб в кошелёк - Изменены товары, сумма стала 100 руб - amount_paid остался 300, total_amount стал 100 - Новая переплата 200 руб НЕ переносилась в кошелёк автоматически Решение: - В Order.calculate_total() добавлена проверка переплаты после пересчёта суммы - Если amount_paid > total_amount, вызывается WalletService.add_overpayment() - Излишек автоматически переносится в кошелёк, amount_paid нормализуется до total_amount - Создаётся WalletTransaction для аудита Теперь при уменьшении суммы заказа переплата корректно возвращается клиенту
16 KiB
16 KiB