forked from CGM_Public/pretix_original
Add safeguards and tests against duplicate cancellations
This commit is contained in:
@@ -210,6 +210,8 @@ def build_cancellation(invoice: Invoice):
|
||||
|
||||
|
||||
def generate_cancellation(invoice: Invoice, trigger_pdf=True):
|
||||
if invoice.refered.exists():
|
||||
raise ValueError("Invoice should not be canceled twice.")
|
||||
cancellation = modelcopy(invoice)
|
||||
cancellation.pk = None
|
||||
cancellation.invoice_no = None
|
||||
|
||||
@@ -156,7 +156,7 @@ def mark_order_expired(order, user=None, auth=None):
|
||||
|
||||
order.log_action('pretix.event.order.expired', user=user, auth=auth)
|
||||
i = order.invoices.filter(is_cancellation=False).last()
|
||||
if i:
|
||||
if i and not i.refered.exists():
|
||||
generate_cancellation(i)
|
||||
|
||||
order_expired.send(order.event, order=order)
|
||||
|
||||
Reference in New Issue
Block a user