forked from CGM_Public/pretix_original
Refs #131 -- Allow manual reissuing of invoices
This commit is contained in:
@@ -18,7 +18,8 @@ from pretix.base.models import (
|
||||
from pretix.base.services import tickets
|
||||
from pretix.base.services.export import export
|
||||
from pretix.base.services.invoices import (
|
||||
generate_invoice, invoice_pdf, invoice_qualified, regenerate_invoice,
|
||||
generate_cancellation, generate_invoice, invoice_pdf, invoice_qualified,
|
||||
regenerate_invoice,
|
||||
)
|
||||
from pretix.base.services.mail import mail
|
||||
from pretix.base.services.orders import cancel_order, mark_order_paid
|
||||
@@ -229,7 +230,7 @@ class OrderInvoiceCreate(OrderView):
|
||||
messages.error(self.request, _('An invoice for this order already exists.'))
|
||||
else:
|
||||
inv = generate_invoice(self.order)
|
||||
self.order.log_action('pretix.event.order.invoice.generate', user=self.request.user, data={
|
||||
self.order.log_action('pretix.event.order.invoice.generated', user=self.request.user, data={
|
||||
'invoice': inv.pk
|
||||
})
|
||||
messages.success(self.request, _('The invoice has been generated.'))
|
||||
@@ -247,12 +248,39 @@ class OrderInvoiceRegenerate(OrderView):
|
||||
inv = self.order.invoices.get(pk=kwargs.get('id'))
|
||||
except Order.DoesNotExist:
|
||||
messages.error(self.request, _('Unknown invoice.'))
|
||||
else:
|
||||
if inv.canceled:
|
||||
messages.error(self.request, _('The invoice has already been canceled.'))
|
||||
else:
|
||||
inv = regenerate_invoice(inv)
|
||||
self.order.log_action('pretix.event.order.invoice.regenerated', user=self.request.user, data={
|
||||
'invoice': inv.pk
|
||||
})
|
||||
messages.success(self.request, _('The invoice has been regenerated.'))
|
||||
return redirect(self.get_order_url())
|
||||
|
||||
inv = regenerate_invoice(inv)
|
||||
self.order.log_action('pretix.event.order.invoice.regenerate', user=self.request.user, data={
|
||||
'invoice': inv.pk
|
||||
})
|
||||
messages.success(self.request, _('The invoice has been regenerated.'))
|
||||
def get(self, *args, **kwargs):
|
||||
return HttpResponseNotAllowed(['POST'])
|
||||
|
||||
|
||||
class OrderInvoiceReissue(OrderView):
|
||||
permission = 'can_change_orders'
|
||||
|
||||
def post(self, *args, **kwargs):
|
||||
try:
|
||||
inv = self.order.invoices.get(pk=kwargs.get('id'))
|
||||
except Order.DoesNotExist:
|
||||
messages.error(self.request, _('Unknown invoice.'))
|
||||
else:
|
||||
if inv.canceled:
|
||||
messages.error(self.request, _('The invoice has already been canceled.'))
|
||||
else:
|
||||
generate_cancellation(inv)
|
||||
inv = generate_invoice(self.order)
|
||||
self.order.log_action('pretix.event.order.invoice.reissued', user=self.request.user, data={
|
||||
'invoice': inv.pk
|
||||
})
|
||||
messages.success(self.request, _('The invoice has been reissued.'))
|
||||
return redirect(self.get_order_url())
|
||||
|
||||
def get(self, *args, **kwargs):
|
||||
|
||||
Reference in New Issue
Block a user