diff options
Diffstat (limited to 'servo')
-rw-r--r-- | servo/forms/invoices.py | 6 | ||||
-rwxr-xr-x | servo/templates/orders/dispatch.html | 5 | ||||
-rw-r--r-- | servo/views/invoices.py | 5 |
3 files changed, 16 insertions, 0 deletions
diff --git a/servo/forms/invoices.py b/servo/forms/invoices.py index 509b291..dbff182 100644 --- a/servo/forms/invoices.py +++ b/servo/forms/invoices.py @@ -34,6 +34,12 @@ class InvoiceForm(forms.ModelForm): } localized_fields = ('total_net', 'total_tax', 'total_gross') + close = forms.BooleanField( + initial=False, + required=False, + widget=forms.HiddenInput + ) + class InvoiceSearchForm(forms.Form): state = forms.ChoiceField( diff --git a/servo/templates/orders/dispatch.html b/servo/templates/orders/dispatch.html index 41126c7..8802dca 100755 --- a/servo/templates/orders/dispatch.html +++ b/servo/templates/orders/dispatch.html @@ -12,6 +12,7 @@ </div> <form method="post" action="" accept-charset="utf8"> {% csrf_token %} + {{ form.close }} {{ formset.management_form }} <div class="row-fluid"> <div class="span3"> @@ -92,6 +93,7 @@ <div class="form-actions"> <div class="pull-right"> <a class="btn btn-default" href="{{ order.get_absolute_url }}">{% trans "Cancel" %}</a> + <button type="submit" class="btn btn-default" id="btn_dispatch_close">{% trans "Dispatch and Close" %}</button> <button type="submit" class="btn btn-primary">{% trans "Dispatch" %}</button> </div> </div> @@ -108,6 +110,9 @@ {% block media %} <script type="text/javascript"> + $('#btn_dispatch_close').click(function(){ + $('#id_invoice-close').val('True'); + }) $('.clonerow').click(function() { cloneMore('.formrow:last', 'payment', true); }); diff --git a/servo/views/invoices.py b/servo/views/invoices.py index 2fb7b26..6b77c8b 100644 --- a/servo/views/invoices.py +++ b/servo/views/invoices.py @@ -159,6 +159,11 @@ def create_invoice(request, order_id=None, numbers=None): messages.success(request, _(u'Order %s dispatched') % order.code) except Exception as e: messages.error(request, e) + + if form.cleaned_data.get('close'): + order.close(request.user) + messages.success(request, _(u'Order %s closed') % order.code) + return redirect(order) else: messages.error(request, form.errors) |