diff --git a/src/pretix/base/services/invoices.py b/src/pretix/base/services/invoices.py index df47b5ff5..a888bfd63 100644 --- a/src/pretix/base/services/invoices.py +++ b/src/pretix/base/services/invoices.py @@ -203,7 +203,7 @@ def build_cancellation(invoice: Invoice): def generate_cancellation(invoice: Invoice, trigger_pdf=True): - if invoice.refered.exists(): + if invoice.canceled: raise ValueError("Invoice should not be canceled twice.") cancellation = modelcopy(invoice) cancellation.pk = None diff --git a/src/pretix/base/services/orders.py b/src/pretix/base/services/orders.py index d78aa1217..73cb8aefe 100644 --- a/src/pretix/base/services/orders.py +++ b/src/pretix/base/services/orders.py @@ -1753,7 +1753,7 @@ def change_payment_provider(order: Order, payment_provider, amount=None, new_pay if recreate_invoices: i = order.invoices.filter(is_cancellation=False).last() - if i and order.total != oldtotal: + if i and order.total != oldtotal and not i.canceled: generate_cancellation(i) generate_invoice(order)