diff --git a/myproject/orders/models/order.py b/myproject/orders/models/order.py index 4f1eb70..c11a2cc 100644 --- a/myproject/orders/models/order.py +++ b/myproject/orders/models/order.py @@ -323,20 +323,11 @@ class Order(models.Model): # Пересчитываем стоимость доставки если она автоматическая self.recalculate_delivery_cost() - # Сохраняем старую сумму для проверки изменений - old_total = self.total_amount self.total_amount = items_total + self.delivery_cost # Сохраняем изменения в БД self.save(update_fields=['total_amount', 'delivery_cost', 'is_custom_delivery_cost']) - # Проверяем переплату ТОЛЬКО если сумма заказа уменьшилась - # (чтобы избежать двойной обработки при первоначальной оплате) - if old_total > 0 and self.total_amount < old_total and self.amount_paid > self.total_amount: - from customers.services.wallet_service import WalletService - # Переносим переплату в кошелёк (пользователь - modified_by или None) - WalletService.add_overpayment(self, self.modified_by) - return self.total_amount def recalculate_amount_paid(self): diff --git a/myproject/orders/templates/orders/order_form.html b/myproject/orders/templates/orders/order_form.html index b98e282..4a27da6 100644 --- a/myproject/orders/templates/orders/order_form.html +++ b/myproject/orders/templates/orders/order_form.html @@ -609,6 +609,22 @@ {% if order.pk %} + + + {% if order.amount_paid > order.total_amount %} + {% with overpayment=order.amount_paid|add:"-"|add:order.total_amount %} +
+ Обнаружена переплата!
+ + Оплачено {{ order.amount_paid|floatformat:2 }} руб., + сумма заказа {{ order.total_amount|floatformat:2 }} руб.
+ Переплата: {{ overpayment|floatformat:2 }} руб.
+ Создайте возврат в кошелёк клиента во вкладке «Создать возврат» ниже. +
+
+ {% endwith %} + {% endif %} +