Files
octopus/myproject
Andrey Smakotin 575c5d0c2f Исправлена двойная обработка переплаты при изменении суммы заказа
Проблема:
- add_overpayment вызывался дважды:
  1. При оплате 300 руб (заказ 150) → +150 в кошелёк
  2. При изменении суммы до 100 → +200 в кошелёк
- Итого: 350 руб вместо правильных 200 руб

Причина:
- calculate_total() вызывал add_overpayment при любой переплате
- Не учитывалось, что переплата уже была обработана при оплате

Решение:
- Сохраняем old_total перед пересчётом
- Вызываем add_overpayment ТОЛЬКО если:
  - old_total > 0 (заказ уже существовал)
  - total_amount < old_total (сумма УМЕНЬШИЛАСЬ)
  - amount_paid > total_amount (есть переплата)
- Это предотвращает двойную обработку при первичной оплате

Теперь переплата обрабатывается корректно только при изменении суммы заказа
2025-11-29 20:28:00 +03:00
..