mirror of
https://github.com/nottinghamtec/PyRIGS.git
synced 2026-01-17 05:22:16 +00:00
Allow deleting invoices, if there are no payments yet
This commit is contained in:
@@ -94,6 +94,25 @@ class InvoiceVoid(generic.View):
|
|||||||
return HttpResponseRedirect(reverse_lazy('invoice_list'))
|
return HttpResponseRedirect(reverse_lazy('invoice_list'))
|
||||||
return HttpResponseRedirect(reverse_lazy('invoice_detail', kwargs={'pk': object.pk}))
|
return HttpResponseRedirect(reverse_lazy('invoice_detail', kwargs={'pk': object.pk}))
|
||||||
|
|
||||||
|
class InvoiceDelete(generic.DeleteView):
|
||||||
|
model = models.Invoice
|
||||||
|
|
||||||
|
def get(self, request, pk):
|
||||||
|
obj = self.get_object()
|
||||||
|
if obj.payment_set.all().count() > 0:
|
||||||
|
messages.info(self.request, 'To delete an invoice, delete the payments first.')
|
||||||
|
return HttpResponseRedirect(reverse_lazy('invoice_detail', kwargs={'pk': obj.pk}))
|
||||||
|
return super(InvoiceDelete, self).get(pk)
|
||||||
|
|
||||||
|
def post(self, request, pk):
|
||||||
|
obj = self.get_object()
|
||||||
|
if obj.payment_set.all().count() > 0:
|
||||||
|
messages.info(self.request, 'To delete an invoice, delete the payments first.')
|
||||||
|
return HttpResponseRedirect(reverse_lazy('invoice_detail', kwargs={'pk': obj.pk}))
|
||||||
|
return super(InvoiceDelete, self).post(pk)
|
||||||
|
|
||||||
|
def get_success_url(self):
|
||||||
|
return self.request.POST.get('next')
|
||||||
|
|
||||||
class InvoiceArchive(generic.ListView):
|
class InvoiceArchive(generic.ListView):
|
||||||
model = models.Invoice
|
model = models.Invoice
|
||||||
|
|||||||
35
RIGS/templates/RIGS/invoice_confirm_delete.html
Normal file
35
RIGS/templates/RIGS/invoice_confirm_delete.html
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
{% extends 'base.html' %}
|
||||||
|
|
||||||
|
{% block title %}Delete payment on invoice {{ object.invoice.pk }}{% endblock %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
<div class="col-sm-offset-2 col-sm-8">
|
||||||
|
<div class="alert alert-danger" role="alert">
|
||||||
|
<h2>Delete invoice {{ object.pk }}</h2>
|
||||||
|
|
||||||
|
<p>Are you sure you wish to delete invoice {{ object.pk }}?</p>
|
||||||
|
|
||||||
|
<p class="text-center"><strong>This action cannot be undone!</strong></p>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-sm-12">
|
||||||
|
<form action="{{ action_link }}" method="post">{% csrf_token %}
|
||||||
|
<input type="hidden" name="next" value="{% url 'invoice_list' %}"/>
|
||||||
|
<a href="{% url 'invoice_detail' object.pk %}" class="btn btn-default col-sm-1">No</a>
|
||||||
|
<a href="{% url 'invoice_detail' object.pk %}" class="btn btn-default col-sm-1">No</a>
|
||||||
|
<a href="{% url 'invoice_detail' object.pk %}" class="btn btn-default col-sm-1">No</a>
|
||||||
|
<input type="submit" value="Yes" class="btn btn-danger col-sm-1"/>
|
||||||
|
<a href="{% url 'invoice_detail' object.pk %}" class="btn btn-default col-sm-1">No</a>
|
||||||
|
<a href="{% url 'invoice_detail' object.pk %}" class="btn btn-default col-sm-1">No</a>
|
||||||
|
<a href="{% url 'invoice_detail' object.pk %}" class="btn btn-default col-sm-1">No</a>
|
||||||
|
<a href="{% url 'invoice_detail' object.pk %}" class="btn btn-default col-sm-1">No</a>
|
||||||
|
<a href="{% url 'invoice_detail' object.pk %}" class="btn btn-default col-sm-1">No</a>
|
||||||
|
<a href="{% url 'invoice_detail' object.pk %}" class="btn btn-default col-sm-1">No</a>
|
||||||
|
<a href="{% url 'invoice_detail' object.pk %}" class="btn btn-default col-sm-1">No</a>
|
||||||
|
<a href="{% url 'invoice_detail' object.pk %}" class="btn btn-default col-sm-1">No</a>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% endblock %}
|
||||||
@@ -11,6 +11,10 @@
|
|||||||
|
|
||||||
<div class="col-sm-4 text-right">
|
<div class="col-sm-4 text-right">
|
||||||
<div class="btn-group btn-page">
|
<div class="btn-group btn-page">
|
||||||
|
<a href="{% url 'invoice_delete' object.pk %}" class="btn btn-default" title="Void Invoice">
|
||||||
|
<span class="glyphicon glyphicon-remove"></span> <span
|
||||||
|
class="hidden-xs">Delete</span>
|
||||||
|
</a>
|
||||||
<a href="{% url 'invoice_void' object.pk %}" class="btn btn-default" title="Void Invoice">
|
<a href="{% url 'invoice_void' object.pk %}" class="btn btn-default" title="Void Invoice">
|
||||||
<span class="glyphicon glyphicon-ban-circle"></span> <span
|
<span class="glyphicon glyphicon-ban-circle"></span> <span
|
||||||
class="hidden-xs">Void</span>
|
class="hidden-xs">Void</span>
|
||||||
|
|||||||
@@ -127,6 +127,9 @@ urlpatterns = patterns('',
|
|||||||
url(r'^invoice/(?P<pk>\d+)/void/$',
|
url(r'^invoice/(?P<pk>\d+)/void/$',
|
||||||
permission_required_with_403('RIGS.change_invoice')(finance.InvoiceVoid.as_view()),
|
permission_required_with_403('RIGS.change_invoice')(finance.InvoiceVoid.as_view()),
|
||||||
name='invoice_void'),
|
name='invoice_void'),
|
||||||
|
url(r'^invoice/(?P<pk>\d+)/delete/$',
|
||||||
|
permission_required_with_403('RIGS.change_invoice')(finance.InvoiceDelete.as_view()),
|
||||||
|
name='invoice_delete'),
|
||||||
url(r'^payment/create/$',
|
url(r'^payment/create/$',
|
||||||
permission_required_with_403('RIGS.add_payment')(finance.PaymentCreate.as_view()),
|
permission_required_with_403('RIGS.add_payment')(finance.PaymentCreate.as_view()),
|
||||||
name='payment_create'),
|
name='payment_create'),
|
||||||
|
|||||||
Reference in New Issue
Block a user