diff --git a/myproject/orders/templates/orders/order_detail.html b/myproject/orders/templates/orders/order_detail.html
index 232986f..3283771 100644
--- a/myproject/orders/templates/orders/order_detail.html
+++ b/myproject/orders/templates/orders/order_detail.html
@@ -26,7 +26,7 @@
Редактировать
- {% if order.status and order.status.code == 'draft' and order.amount_paid == 0 %}
+ {% if order.status and order.status.code == 'draft' and order.amount_paid == 0 and not order.wallet_transactions.exists %}
Удалить
diff --git a/myproject/orders/views.py b/myproject/orders/views.py
index 26cfc08..d502432 100644
--- a/myproject/orders/views.py
+++ b/myproject/orders/views.py
@@ -434,6 +434,15 @@ def order_delete(request, order_number):
)
return redirect('orders:order-detail', order_number=order.order_number)
+ # Проверка: нельзя удалять заказы с транзакциями кошелька
+ if order.wallet_transactions.exists():
+ messages.error(
+ request,
+ 'Удаление невозможно. Заказ имеет транзакции кошелька клиента. '
+ 'Сначала удалите связанные транзакции.'
+ )
+ return redirect('orders:order-detail', order_number=order.order_number)
+
if request.method == 'POST':
order_number_saved = order.order_number
order.delete()