Don't crash if an order can't be paid manually

Fixes PRETIXEU-5Q6
This commit is contained in:
Raphael Michel
2022-08-01 19:12:56 +02:00
parent 9ce519bb0b
commit bddeb35520

View File

@@ -1186,13 +1186,17 @@ class OrderTransition(OrderView):
if ps == Decimal('0.00') and self.order.pending_sum <= Decimal('0.00'): if ps == Decimal('0.00') and self.order.pending_sum <= Decimal('0.00'):
p = self.order.payments.filter(state=OrderPayment.PAYMENT_STATE_CONFIRMED).last() p = self.order.payments.filter(state=OrderPayment.PAYMENT_STATE_CONFIRMED).last()
if p: if p:
p._mark_order_paid( try:
user=self.request.user, p._mark_order_paid(
send_mail=self.mark_paid_form.cleaned_data['send_email'], user=self.request.user,
force=self.mark_paid_form.cleaned_data.get('force', False), send_mail=self.mark_paid_form.cleaned_data['send_email'],
payment_refund_sum=self.order.payment_refund_sum, force=self.mark_paid_form.cleaned_data.get('force', False),
) payment_refund_sum=self.order.payment_refund_sum,
messages.success(self.request, _('The order has been marked as paid.')) )
except Quota.QuotaExceededException as e:
messages.error(self.request, str(e))
else:
messages.success(self.request, _('The order has been marked as paid.'))
return redirect(self.get_order_url()) return redirect(self.get_order_url())
try: try: