Order detail page: Don't offer invoice generation for expired orders

This commit is contained in:
Raphael Michel
2023-10-04 12:42:48 +02:00
parent 1d0dbae77a
commit c1c828d8a2

View File

@@ -441,12 +441,9 @@ class OrderView(EventPermissionRequiredMixin, DetailView):
ctx = super().get_context_data(**kwargs) ctx = super().get_context_data(**kwargs)
ctx['can_generate_invoice'] = invoice_qualified(self.order) and ( ctx['can_generate_invoice'] = invoice_qualified(self.order) and (
self.request.event.settings.invoice_generate in ('admin', 'user', 'paid', 'True') self.request.event.settings.invoice_generate in ('admin', 'user', 'paid', 'True')
) and ( ) and self.order.status in (Order.STATUS_PAID, Order.STATUS_PENDING) and (
not self.order.invoices.exists() not self.order.invoices.exists()
or ( or self.order.invoices.filter(is_cancellation=True).count() >= self.order.invoices.filter(is_cancellation=False).count()
self.order.status in (Order.STATUS_PAID, Order.STATUS_PENDING)
and self.order.invoices.filter(is_cancellation=True).count() >= self.order.invoices.filter(is_cancellation=False).count()
)
) )
return ctx return ctx
@@ -1612,7 +1609,7 @@ class OrderInvoiceReissue(OrderView):
messages.error(self.request, _('The invoice has been cleaned of personal data.')) messages.error(self.request, _('The invoice has been cleaned of personal data.'))
else: else:
c = generate_cancellation(inv) c = generate_cancellation(inv)
if self.order.status != Order.STATUS_CANCELED: if self.order.status not in (Order.STATUS_CANCELED, Order.STATUS_EXPIRED):
inv = generate_invoice(self.order) inv = generate_invoice(self.order)
else: else:
inv = c inv = c