diff --git a/InvenTree/order/forms.py b/InvenTree/order/forms.py
index 6f0bc43c46..a5a3ddc0f1 100644
--- a/InvenTree/order/forms.py
+++ b/InvenTree/order/forms.py
@@ -65,17 +65,6 @@ class CancelSalesOrderForm(HelperForm):
]
-class ShipSalesOrderForm(HelperForm):
-
- confirm = forms.BooleanField(required=True, label=_('Confirm'), help_text=_('Ship order'))
-
- class Meta:
- model = SalesOrder
- fields = [
- 'confirm',
- ]
-
-
class AllocateSerialsToSalesOrderForm(forms.Form):
"""
Form for assigning stock to a sales order,
diff --git a/InvenTree/order/templates/order/sales_order_ship.html b/InvenTree/order/templates/order/sales_order_ship.html
deleted file mode 100644
index 763d3fca57..0000000000
--- a/InvenTree/order/templates/order/sales_order_ship.html
+++ /dev/null
@@ -1,30 +0,0 @@
-{% extends "modal_form.html" %}
-
-{% load i18n %}
-
-{% block pre_form_content %}
-
-{% if not order.is_fully_allocated %}
-
-
{% trans "Warning" %}
- {% trans "This order has not been fully allocated. If the order is marked as shipped, it can no longer be adjusted." %}
-
- {% trans "Ensure that the order allocation is correct before shipping the order." %}
-
-{% endif %}
-
-{% if order.is_over_allocated %}
-
- {% trans "Some line items in this order have been over-allocated" %}
-
- {% trans "Ensure that this is correct before shipping the order." %}
-
-{% endif %}
-
-
- {% trans "Sales Order" %} {{ order.reference }} - {{ order.customer.name }}
-
- {% trans "Shipping this order means that the order will no longer be editable." %}
-
-
-{% endblock %}
\ No newline at end of file
diff --git a/InvenTree/order/urls.py b/InvenTree/order/urls.py
index afc689cc23..8cf472e0ae 100644
--- a/InvenTree/order/urls.py
+++ b/InvenTree/order/urls.py
@@ -35,7 +35,6 @@ purchase_order_urls = [
sales_order_detail_urls = [
url(r'^cancel/', views.SalesOrderCancel.as_view(), name='so-cancel'),
- url(r'^ship/', views.SalesOrderShip.as_view(), name='so-ship'),
url(r'^export/', views.SalesOrderExport.as_view(), name='so-export'),
url(r'^.*$', views.SalesOrderDetail.as_view(), name='so-detail'),
diff --git a/InvenTree/order/views.py b/InvenTree/order/views.py
index 8aea60f694..2c3e125dc0 100644
--- a/InvenTree/order/views.py
+++ b/InvenTree/order/views.py
@@ -213,48 +213,6 @@ class PurchaseOrderComplete(AjaxUpdateView):
}
-class SalesOrderShip(AjaxUpdateView):
- """ View for 'shipping' a SalesOrder """
- form_class = order_forms.ShipSalesOrderForm
- model = SalesOrder
- context_object_name = 'order'
- ajax_template_name = 'order/sales_order_ship.html'
- ajax_form_title = _('Ship Order')
-
- def post(self, request, *args, **kwargs):
-
- self.request = request
-
- order = self.get_object()
- self.object = order
-
- form = self.get_form()
-
- confirm = str2bool(request.POST.get('confirm', False))
-
- valid = False
-
- if not confirm:
- form.add_error('confirm', _('Confirm order shipment'))
- else:
- valid = True
-
- if valid:
- if not order.ship_order(request.user):
- form.add_error(None, _('Could not ship order'))
- valid = False
-
- data = {
- 'form_valid': valid,
- }
-
- context = self.get_context_data()
-
- context['order'] = order
-
- return self.renderJsonResponse(request, form, data, context)
-
-
class PurchaseOrderUpload(FileManagementFormView):
''' PurchaseOrder: Upload file, match to fields and parts (using multi-Step form) '''
@@ -834,6 +792,9 @@ class OrderParts(AjaxView):
order.add_line_item(supplier_part, quantity, purchase_price=purchase_price)
+
+#### TODO: This class MUST be converted to the API forms!
+#### TODO: We MUST select the shipment
class SalesOrderAssignSerials(AjaxView, FormMixin):
"""
View for assigning stock items to a sales order,