ПРОБЛЕМА: При оплате заказа с переплатой (например, 15000 руб за заказ 7770 руб), сдача возвращалась в кошелек клиента дважды: - 1 раз: 7230 руб (правильно) - 2 раз: 7230 руб (дубль!) - ИТОГО: 14460 руб вместо 7230 руб ПРИЧИНА: Обработка переплаты вызывалась в двух местах: 1. Payment.save() → вызывал WalletService.add_overpayment() ✓ 2. order_create/order_update в views.py → еще раз вызывал add_overpayment() ✗ РЕШЕНИЕ: Убраны дублирующие вызовы WalletService.add_overpayment() из views.py. Теперь переплата обрабатывается ТОЛЬКО в Payment.save() - это правильное место, т.к. переплата появляется именно при сохранении нового платежа. ИЗМЕНЕНИЯ: - orders/views.py (order_create): убран вызов add_overpayment - orders/views.py (order_update): убран вызов add_overpayment Теперь при переплате сдача возвращается ровно 1 раз.
21 KiB
21 KiB