diff --git a/InvenTree/InvenTree/static/css/inventree.css b/InvenTree/InvenTree/static/css/inventree.css
index 2a1215d7a8..a1358341cc 100644
--- a/InvenTree/InvenTree/static/css/inventree.css
+++ b/InvenTree/InvenTree/static/css/inventree.css
@@ -384,6 +384,10 @@
padding-bottom: 2px;
}
+.action-button {
+ font-size: 125%;
+}
+
.action-buttons .btn {
font-size: 175%;
align-content: center;
diff --git a/InvenTree/InvenTree/static/script/inventree/bom.js b/InvenTree/InvenTree/static/script/inventree/bom.js
index def3910999..55337e3fa8 100644
--- a/InvenTree/InvenTree/static/script/inventree/bom.js
+++ b/InvenTree/InvenTree/static/script/inventree/bom.js
@@ -237,11 +237,11 @@ function loadBomTable(table, options) {
cols.push({
formatter: function(value, row, index, field) {
- var bValidate = " ";
- var bValid = " ";
+ var bValidate = " ";
+ var bValid = " ";
- var bEdit = " ";
- var bDelt = " ";
+ var bEdit = " ";
+ var bDelt = " ";
var html = "
";
diff --git a/InvenTree/InvenTree/static/script/inventree/build.js b/InvenTree/InvenTree/static/script/inventree/build.js
index 28767c99b4..bb2de7fb81 100644
--- a/InvenTree/InvenTree/static/script/inventree/build.js
+++ b/InvenTree/InvenTree/static/script/inventree/build.js
@@ -119,8 +119,8 @@ function loadAllocationTable(table, part_id, part, url, required, button) {
formatter: function(value, row, index, field) {
var html = parseFloat(value);
- var bEdit = "
";
- var bDel = "
";
+ var bEdit = "
";
+ var bDel = "
";
html += "
" + bEdit + bDel + "
";
diff --git a/InvenTree/InvenTree/static/script/inventree/company.js b/InvenTree/InvenTree/static/script/inventree/company.js
index 86974630ef..d5c37ce363 100644
--- a/InvenTree/InvenTree/static/script/inventree/company.js
+++ b/InvenTree/InvenTree/static/script/inventree/company.js
@@ -148,7 +148,7 @@ function loadSupplierPartTable(table, url, options) {
field: 'SKU',
title: "Supplier Part",
formatter: function(value, row, index, field) {
- return renderLink(value, row.url);
+ return renderLink(value, `/supplier-part/${row.pk}/`);
}
},
{
diff --git a/InvenTree/InvenTree/static/script/inventree/stock.js b/InvenTree/InvenTree/static/script/inventree/stock.js
index e21971bb0f..4e4b61aa93 100644
--- a/InvenTree/InvenTree/static/script/inventree/stock.js
+++ b/InvenTree/InvenTree/static/script/inventree/stock.js
@@ -475,8 +475,8 @@ function loadStockTrackingTable(table, options) {
formatter: function(value, row, index, field) {
// Manually created entries can be edited or deleted
if (!row.system) {
- var bEdit = "
";
- var bDel = "
";
+ var bEdit = "
";
+ var bDel = "
";
return "
" + bEdit + bDel + "
";
} else {
diff --git a/InvenTree/build/models.py b/InvenTree/build/models.py
index 8a00f0ad63..54094632c1 100644
--- a/InvenTree/build/models.py
+++ b/InvenTree/build/models.py
@@ -25,8 +25,8 @@ from InvenTree.status_codes import BuildStatus, StockStatus
from InvenTree.fields import InvenTreeURLField
from InvenTree.helpers import decimal2string
-from stock.models import StockItem
-from part.models import Part, BomItem
+from stock import models as StockModels
+from part import models as PartModels
class Build(MPTTModel):
@@ -189,7 +189,11 @@ class Build(MPTTModel):
# How many parts required for this build?
q_required = item.quantity * self.quantity
- stock = StockItem.objects.filter(part=item.sub_part)
+ # Grab a list of StockItem objects which are "in stock"
+ stock = StockModels.StockItem.objects.filter(StockModels.StockItem.IN_STOCK_FILTER)
+
+ # Filter by part reference
+ stock = stock.filter(part=item.sub_part)
# Ensure that the available stock items are in the correct location
if self.take_from is not None:
@@ -278,7 +282,7 @@ class Build(MPTTModel):
if self.part.trackable and serial_numbers:
# Add new serial numbers
for serial in serial_numbers:
- item = StockItem.objects.create(
+ item = StockModels.StockItem.objects.create(
part=self.part,
build=self,
location=location,
@@ -292,7 +296,7 @@ class Build(MPTTModel):
else:
# Add stock of the newly created item
- item = StockItem.objects.create(
+ item = StockModels.StockItem.objects.create(
part=self.part,
build=self,
location=location,
@@ -338,9 +342,9 @@ class Build(MPTTModel):
"""
try:
- item = BomItem.objects.get(part=self.part.id, sub_part=part.id)
+ item = PartModels.BomItem.objects.get(part=self.part.id, sub_part=part.id)
q = item.quantity
- except BomItem.DoesNotExist:
+ except PartModels.BomItem.DoesNotExist:
q = 0
return q * self.quantity
@@ -461,7 +465,7 @@ class BuildItem(models.Model):
if self.stock_item.serial and not self.quantity == 1:
errors['quantity'] = _('Quantity must be 1 for serialized stock')
- except (StockItem.DoesNotExist, Part.DoesNotExist):
+ except (StockModels.StockItem.DoesNotExist, PartModels.Part.DoesNotExist):
pass
if len(errors) > 0:
diff --git a/InvenTree/build/templates/build/index.html b/InvenTree/build/templates/build/index.html
index 9edfecfc45..d72807f9f1 100644
--- a/InvenTree/build/templates/build/index.html
+++ b/InvenTree/build/templates/build/index.html
@@ -1,8 +1,9 @@
{% extends "base.html" %}
{% load static %}
+{% load i18n %}
{% block page_title %}
-InvenTree | Build List
+InvenTree | {% trans "Build Orders" %}
{% endblock %}
{% block content %}
@@ -10,7 +11,7 @@ InvenTree | Build List
-
Part Builds
+ {% trans "Build Orders" %}
@@ -20,7 +21,7 @@ InvenTree | Build List
diff --git a/InvenTree/build/templates/build/tabs.html b/InvenTree/build/templates/build/tabs.html
index 24b1e53a15..ca2e92f290 100644
--- a/InvenTree/build/templates/build/tabs.html
+++ b/InvenTree/build/templates/build/tabs.html
@@ -11,6 +11,6 @@
{% trans "Build Outputs" %}{% if build.output_count > 0%}{{ build.output_count }} {% endif %}
- {% trans "Notes" %}{% if build.notes %} {% endif %}
+ {% trans "Notes" %}{% if build.notes %} {% endif %}
\ No newline at end of file
diff --git a/InvenTree/build/tests.py b/InvenTree/build/tests.py
index 42b953fe20..9b6d51c33a 100644
--- a/InvenTree/build/tests.py
+++ b/InvenTree/build/tests.py
@@ -141,10 +141,6 @@ class TestBuildViews(TestCase):
response = self.client.get(reverse('build-index'))
self.assertEqual(response.status_code, 200)
- content = str(response.content)
-
- self.assertIn("Part Builds", content)
-
def test_build_detail(self):
""" Test the detail view for a Build object """
diff --git a/InvenTree/company/templates/company/notes.html b/InvenTree/company/templates/company/notes.html
index 467bf49d2d..5ee1706acd 100644
--- a/InvenTree/company/templates/company/notes.html
+++ b/InvenTree/company/templates/company/notes.html
@@ -27,7 +27,7 @@
{% trans "Company Notes" %}
-
+
diff --git a/InvenTree/company/templates/company/supplier_part_base.html b/InvenTree/company/templates/company/supplier_part_base.html
index 5083af4f3a..5a3d49a10e 100644
--- a/InvenTree/company/templates/company/supplier_part_base.html
+++ b/InvenTree/company/templates/company/supplier_part_base.html
@@ -19,12 +19,12 @@ src="{% static 'img/blank_image.png' %}"
{% trans "Supplier Part" %}
{{ part.supplier.name }} - {{ part.SKU }}
-
diff --git a/InvenTree/company/templates/company/supplier_part_pricing.html b/InvenTree/company/templates/company/supplier_part_pricing.html
index bed8d9ed35..080871ace7 100644
--- a/InvenTree/company/templates/company/supplier_part_pricing.html
+++ b/InvenTree/company/templates/company/supplier_part_pricing.html
@@ -36,8 +36,8 @@
{% decimal pb.cost %}
{% if pb.currency %}{{ pb.currency.suffix }}{% endif %}
-
-
+
+
diff --git a/InvenTree/company/templates/company/tabs.html b/InvenTree/company/templates/company/tabs.html
index 8e01bf30c0..9fd00ceb11 100644
--- a/InvenTree/company/templates/company/tabs.html
+++ b/InvenTree/company/templates/company/tabs.html
@@ -23,6 +23,6 @@
{% endif %}
- {% trans "Notes" %}{% if company.notes %} {% endif %}
+ {% trans "Notes" %}{% if company.notes %} {% endif %}
diff --git a/InvenTree/locale/de/LC_MESSAGES/django.mo b/InvenTree/locale/de/LC_MESSAGES/django.mo
index 6cd6ed477e..84a39a22c6 100644
Binary files a/InvenTree/locale/de/LC_MESSAGES/django.mo and b/InvenTree/locale/de/LC_MESSAGES/django.mo differ
diff --git a/InvenTree/locale/de/LC_MESSAGES/django.po b/InvenTree/locale/de/LC_MESSAGES/django.po
index 85fc571d46..988db9375c 100644
--- a/InvenTree/locale/de/LC_MESSAGES/django.po
+++ b/InvenTree/locale/de/LC_MESSAGES/django.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-04-22 23:17+0000\n"
+"POT-Creation-Date: 2020-04-28 00:43+0000\n"
"PO-Revision-Date: 2020-02-02 08:07+0100\n"
"Last-Translator: Christian Schlüter
\n"
"Language-Team: C \n"
@@ -43,7 +43,7 @@ msgstr ""
msgid "Unknown barcode format"
msgstr ""
-#: InvenTree/helpers.py:258 order/models.py:173 order/models.py:224
+#: InvenTree/helpers.py:258 order/models.py:150 order/models.py:224
msgid "Invalid quantity provided"
msgstr "Keine gültige Menge"
@@ -81,68 +81,83 @@ msgstr "Datei zum Anhängen auswählen"
msgid "File comment"
msgstr "Datei-Kommentar"
-#: InvenTree/settings.py:270
+#: InvenTree/settings.py:274
msgid "English"
msgstr "Englisch"
-#: InvenTree/settings.py:271
+#: InvenTree/settings.py:275
msgid "German"
msgstr "Deutsch"
-#: InvenTree/settings.py:272
+#: InvenTree/settings.py:276
msgid "French"
msgstr "Französisch"
-#: InvenTree/settings.py:273
+#: InvenTree/settings.py:277
msgid "Polish"
msgstr "Polnisch"
-#: InvenTree/status_codes.py:84 InvenTree/status_codes.py:172
+#: InvenTree/status_codes.py:90 InvenTree/status_codes.py:131
+#: InvenTree/status_codes.py:213
msgid "Pending"
msgstr "Ausstehend"
-#: InvenTree/status_codes.py:85
+#: InvenTree/status_codes.py:91
msgid "Placed"
msgstr "Platziert"
-#: InvenTree/status_codes.py:86 InvenTree/status_codes.py:175
+#: InvenTree/status_codes.py:92 InvenTree/status_codes.py:216
msgid "Complete"
msgstr "Fertig"
-#: InvenTree/status_codes.py:87 InvenTree/status_codes.py:174
+#: InvenTree/status_codes.py:93 InvenTree/status_codes.py:133
+#: InvenTree/status_codes.py:215
msgid "Cancelled"
msgstr "Storniert"
-#: InvenTree/status_codes.py:88 InvenTree/status_codes.py:135
+#: InvenTree/status_codes.py:94 InvenTree/status_codes.py:134
+#: InvenTree/status_codes.py:169
msgid "Lost"
msgstr "Verloren"
-#: InvenTree/status_codes.py:89 InvenTree/status_codes.py:137
+#: InvenTree/status_codes.py:95 InvenTree/status_codes.py:135
+#: InvenTree/status_codes.py:170
msgid "Returned"
msgstr "Zurückgegeben"
-#: InvenTree/status_codes.py:131
-msgid "OK"
-msgstr "OK"
-
-#: InvenTree/status_codes.py:132
-msgid "Attention needed"
-msgstr "erfordert Eingriff"
-
-#: InvenTree/status_codes.py:133
-msgid "Damaged"
-msgstr "Beschädigt"
-
-#: InvenTree/status_codes.py:134
-msgid "Destroyed"
-msgstr "Zerstört"
-
-#: InvenTree/status_codes.py:136
+#: InvenTree/status_codes.py:132 InvenTree/status_codes.py:171
+#: order/templates/order/sales_order_base.html:98
msgid "Shipped"
msgstr ""
-#: InvenTree/status_codes.py:173 build/templates/build/allocate_edit.html:28
-#: build/templates/build/allocate_view.html:21
+#: InvenTree/status_codes.py:165
+msgid "OK"
+msgstr "OK"
+
+#: InvenTree/status_codes.py:166
+msgid "Attention needed"
+msgstr "erfordert Eingriff"
+
+#: InvenTree/status_codes.py:167
+msgid "Damaged"
+msgstr "Beschädigt"
+
+#: InvenTree/status_codes.py:168
+msgid "Destroyed"
+msgstr "Zerstört"
+
+#: InvenTree/status_codes.py:172
+msgid "Used for Build"
+msgstr ""
+
+#: InvenTree/status_codes.py:173
+#, fuzzy
+#| msgid "Edit Stock Item"
+msgid "Installed in Stock Item"
+msgstr "Lagerobjekt bearbeiten"
+
+#: InvenTree/status_codes.py:214 build/templates/build/allocate.html:349
+#: order/templates/order/sales_order_detail.html:220
#: part/templates/part/part_base.html:114 part/templates/part/tabs.html:21
msgid "Allocated"
msgstr "Zugeordnet"
@@ -176,27 +191,70 @@ msgstr "Überschuss muss eine Ganzzahl oder ein Prozentwert sein"
msgid "Database Statistics"
msgstr ""
-#: build/forms.py:35
+#: build/forms.py:37
msgid "Confirm"
msgstr "Bestätigen"
-#: build/forms.py:52 stock/forms.py:34
+#: build/forms.py:54 stock/forms.py:34
msgid "Enter unique serial numbers (or leave blank)"
msgstr "Eindeutige Seriennummern eingeben (oder leer lassen)"
-#: build/forms.py:54
+#: build/forms.py:56
msgid "Confirm build completion"
msgstr "Bau-Fertigstellung bestätigen"
-#: build/models.py:54
+#: build/models.py:57 build/templates/build/build_base.html:65
+#, fuzzy
+#| msgid "Build Notes"
+msgid "Build Title"
+msgstr "Bau-Bemerkungen"
+
+#: build/models.py:60
msgid "Brief description of the build"
msgstr "Kurze Beschreibung des Baus"
-#: build/models.py:64
+#: build/models.py:68 build/templates/build/build_base.html:86
+#, fuzzy
+#| msgid "Can Build"
+msgid "Parent Build"
+msgstr "Herstellbar?"
+
+#: build/models.py:69
+msgid "Parent build to which this build is allocated"
+msgstr ""
+
+#: build/models.py:74 build/templates/build/allocate.html:320
+#: build/templates/build/auto_allocate.html:18
+#: build/templates/build/build_base.html:70
+#: build/templates/build/detail.html:22 order/models.py:462
+#: order/templates/order/order_wizard/select_parts.html:30
+#: order/templates/order/purchase_order_detail.html:145
+#: part/templates/part/part_app_base.html:7
+#: part/templates/part/set_category.html:13
+msgid "Part"
+msgstr "Teil"
+
+#: build/models.py:83
msgid "Select part to build"
msgstr "Teil für den Bau wählen"
-#: build/models.py:70
+#: build/models.py:88
+#, fuzzy
+#| msgid "Order reference"
+msgid "Sales Order Reference"
+msgstr "Bestell-Referenz"
+
+#: build/models.py:92
+msgid "SalesOrder to which this build is allocated"
+msgstr ""
+
+#: build/models.py:97
+#, fuzzy
+#| msgid "Stock Locations"
+msgid "Source Location"
+msgstr "Lagerobjekt-Standorte"
+
+#: build/models.py:101
msgid ""
"Select location to take stock from for this build (leave blank to take from "
"any stock location)"
@@ -204,178 +262,340 @@ msgstr ""
"Lager-Entnahmestandort für diesen Bau wählen (oder leer lassen für einen "
"beliebigen Lager-Standort)"
-#: build/models.py:76
+#: build/models.py:105
+#, fuzzy
+#| msgid "Quantity"
+msgid "Build Quantity"
+msgstr "Anzahl"
+
+#: build/models.py:108
msgid "Number of parts to build"
msgstr "Anzahl der zu bauenden Teile"
-#: build/models.py:82 templates/table_filters.html:47
-msgid "Build status"
+#: build/models.py:112 part/templates/part/part_base.html:131
+msgid "Build Status"
msgstr "Bau-Status"
-#: build/models.py:85
+#: build/models.py:116
+#, fuzzy
+#| msgid "Build status"
+msgid "Build status code"
+msgstr "Bau-Status"
+
+#: build/models.py:120 stock/models.py:378
+#, fuzzy
+#| msgid "Batch"
+msgid "Batch Code"
+msgstr "Los"
+
+#: build/models.py:124
msgid "Batch code for this build output"
msgstr "Chargennummer für diese Bau-Ausgabe"
-#: build/models.py:97 stock/models.py:336
+#: build/models.py:139 build/templates/build/detail.html:55
+#: company/templates/company/supplier_part_base.html:57
+#: company/templates/company/supplier_part_detail.html:24
+#: part/templates/part/detail.html:67 part/templates/part/part_base.html:85
+#: stock/models.py:372 stock/templates/stock/item_base.html:190
+msgid "External Link"
+msgstr ""
+
+#: build/models.py:140 stock/models.py:374
msgid "Link to external URL"
msgstr "Link zu einer externen URL"
-#: build/models.py:99
+#: build/models.py:144 build/templates/build/tabs.html:14 company/models.py:302
+#: company/templates/company/tabs.html:26 order/templates/order/po_tabs.html:15
+#: order/templates/order/purchase_order_detail.html:200
+#: order/templates/order/so_tabs.html:23 part/templates/part/tabs.html:63
+#: stock/models.py:440 stock/templates/stock/tabs.html:17
+msgid "Notes"
+msgstr "Notizen"
+
+#: build/models.py:145
msgid "Extra build notes"
msgstr "Notizen für den Bau"
-#: build/models.py:388
+#: build/models.py:451
#, python-brace-format
msgid "Selected stock item not found in BOM for part '{p}'"
msgstr "Ausgewähltes Lagerobjekt nicht in BOM für Teil '{p}' gefunden"
-#: build/models.py:391
+#: build/models.py:454
#, python-brace-format
msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
msgstr ""
"zugewiesene Anzahl ({n}) darf nicht die verfügbare ({q}) Anzahl überschreiten"
-#: build/models.py:397 order/models.py:448
+#: build/models.py:460 order/models.py:546
#, fuzzy
#| msgid "Stock Item to allocate to build"
msgid "StockItem is over-allocated"
msgstr "Lagerobjekt dem Bau zuweisen"
-#: build/models.py:400 order/models.py:451
+#: build/models.py:463 order/models.py:549
#, fuzzy
#| msgid "Quantity must be greater than zero"
msgid "Allocation quantity must be greater than zero"
msgstr "Anzahl muss größer Null sein"
-#: build/models.py:403
+#: build/models.py:466
#, fuzzy
#| msgid "Quantity must be 1 for item with a serial number"
msgid "Quantity must be 1 for serialized stock"
msgstr "Anzahl muss für Objekte mit Seriennummer \"1\" sein"
-#: build/models.py:418
+#: build/models.py:496
msgid "Build to allocate parts"
msgstr "Bau starten um Teile zuzuweisen"
-#: build/models.py:425
+#: build/models.py:503
msgid "Stock Item to allocate to build"
msgstr "Lagerobjekt dem Bau zuweisen"
-#: build/models.py:433
+#: build/models.py:516
msgid "Stock quantity to allocate to build"
msgstr "Lagerobjekt-Anzahl dem Bau zuweisen"
-#: build/templates/build/allocate_edit.html:5
-msgid "Allocate Stock to Build"
-msgstr "Lagerbestand dem Bau zuweisen"
-
-#: build/templates/build/allocate_edit.html:10
-msgid "Auto Allocate"
-msgstr "Automatisches Zuweisen"
-
-#: build/templates/build/allocate_edit.html:11
-msgid "Unallocate"
-msgstr "Zuweisung aufheben"
-
-#: build/templates/build/allocate_edit.html:19
-#: build/templates/build/allocate_view.html:17
-#: build/templates/build/detail.html:22 order/models.py:385
-#: order/templates/order/order_wizard/select_parts.html:30
-#: order/templates/order/purchase_order_detail.html:26
-#: part/templates/part/part_app_base.html:7
-msgid "Part"
-msgstr "Teil"
-
-#: build/templates/build/allocate_edit.html:22
-#: build/templates/build/allocate_view.html:19
-msgid "Available"
-msgstr "verfügbar"
-
-#: build/templates/build/allocate_edit.html:25
-#: build/templates/build/allocate_view.html:20
-msgid "Required"
-msgstr "benötigt"
-
-#: build/templates/build/allocate_view.html:4
-msgid "Required Parts"
-msgstr "benötigte Teile"
-
-#: build/templates/build/allocate_view.html:9
-msgid "Allocate"
-msgstr "zuweisen"
-
-#: build/templates/build/allocate_view.html:10
-#: company/templates/company/detail_part.html:18 order/views.py:671
+#: build/templates/build/allocate.html:17
+#: company/templates/company/detail_part.html:18 order/views.py:743
msgid "Order Parts"
msgstr "Teile bestellen"
-#: build/templates/build/allocate_view.html:18
-#: company/templates/company/supplier_part_base.html:50
-#: company/templates/company/supplier_part_detail.html:27
-#: order/templates/order/purchase_order_detail.html:27
-#: part/templates/part/detail.html:38
-msgid "Description"
-msgstr "Beschreibung"
-
-#: build/templates/build/allocate_view.html:22
-#: part/templates/part/part_base.html:121
-msgid "On Order"
-msgstr "bestellt"
-
-#: build/templates/build/build_base.html:8
-#: build/templates/build/build_base.html:21 part/templates/part/tabs.html:28
-#: stock/templates/stock/item_base.html:159 templates/navbar.html:12
-msgid "Build"
-msgstr "Bau"
-
-#: build/templates/build/build_base.html:48 build/templates/build/detail.html:9
-msgid "Build Details"
-msgstr "Bau-Status"
-
-#: build/templates/build/build_base.html:52
+#: build/templates/build/allocate.html:18
#, fuzzy
-#| msgid "Build Notes"
-msgid "Build Title"
-msgstr "Bau-Bemerkungen"
+#| msgid "Allocate Stock to Build"
+msgid "Automatically allocate stock"
+msgstr "Lagerbestand dem Bau zuweisen"
-#: build/templates/build/build_base.html:62
+#: build/templates/build/allocate.html:18
+msgid "Auto Allocate"
+msgstr "Automatisches Zuweisen"
+
+#: build/templates/build/allocate.html:19
+msgid "Unallocate"
+msgstr "Zuweisung aufheben"
+
+#: build/templates/build/allocate.html:78 templates/stock_table.html:8
+#, fuzzy
+#| msgid "Stock Item"
+msgid "New Stock Item"
+msgstr "Lagerobjekt"
+
+#: build/templates/build/allocate.html:161
+#: order/templates/order/sales_order_detail.html:68
+#: order/templates/order/sales_order_detail.html:150 stock/models.py:366
+#: stock/templates/stock/item_base.html:149
+msgid "Serial Number"
+msgstr "Seriennummer"
+
+#: build/templates/build/allocate.html:163
+#: build/templates/build/auto_allocate.html:19
+#: build/templates/build/build_base.html:75
#: build/templates/build/detail.html:27
#: company/templates/company/supplier_part_pricing.html:27
#: order/templates/order/order_wizard/select_parts.html:32
-#: order/templates/order/purchase_order_detail.html:30
+#: order/templates/order/purchase_order_detail.html:175
+#: order/templates/order/sales_order_detail.html:70
+#: order/templates/order/sales_order_detail.html:152
+#: part/templates/part/allocation.html:16
+#: part/templates/part/allocation.html:49
#: stock/templates/stock/item_base.html:20
#: stock/templates/stock/item_base.html:26
-#: stock/templates/stock/item_base.html:145
+#: stock/templates/stock/item_base.html:155
#: stock/templates/stock/stock_adjust.html:18
msgid "Quantity"
msgstr "Anzahl"
-#: build/templates/build/build_base.html:67
+#: build/templates/build/allocate.html:177
+#: build/templates/build/auto_allocate.html:20
+#: stock/templates/stock/item_base.html:135
+#: stock/templates/stock/stock_adjust.html:17
+msgid "Location"
+msgstr "Standort"
+
+#: build/templates/build/allocate.html:201
+#: order/templates/order/sales_order_detail.html:92
+#, fuzzy
+#| msgid "Edit Stock Location"
+msgid "Edit stock allocation"
+msgstr "Lagerobjekt-Standort bearbeiten"
+
+#: build/templates/build/allocate.html:202
+#: order/templates/order/sales_order_detail.html:93
+#, fuzzy
+#| msgid "Delete Stock Location"
+msgid "Delete stock allocation"
+msgstr "Standort löschen"
+
+#: build/templates/build/allocate.html:229
+#, fuzzy
+#| msgid "No serial numbers found"
+msgid "No BOM items found"
+msgstr "Keine Seriennummern gefunden"
+
+#: build/templates/build/allocate.html:328
+#: company/templates/company/supplier_part_base.html:50
+#: company/templates/company/supplier_part_detail.html:27
+#: order/templates/order/purchase_order_detail.html:157
+#: part/templates/part/detail.html:38 part/templates/part/set_category.html:14
+msgid "Description"
+msgstr "Beschreibung"
+
+#: build/templates/build/allocate.html:333
+#: order/templates/order/purchase_order_detail.html:170
+msgid "Reference"
+msgstr "Referenz"
+
+#: build/templates/build/allocate.html:338
+msgid "Required"
+msgstr "benötigt"
+
+#: build/templates/build/allocate.html:347
+#, fuzzy
+#| msgid "Assign Parts"
+msgid "Assigned"
+msgstr "Teile zuweisen"
+
+#: build/templates/build/allocate.html:385
+#: order/templates/order/sales_order_detail.html:270
+#, fuzzy
+#| msgid "All parts"
+msgid "Buy parts"
+msgstr "Alle Teile"
+
+#: build/templates/build/allocate.html:389
+#: order/templates/order/sales_order_detail.html:274
+#, fuzzy
+#| msgid "Build status"
+msgid "Build parts"
+msgstr "Bau-Status"
+
+#: build/templates/build/allocate.html:392
+#, fuzzy
+#| msgid "Allocate Stock to Build"
+msgid "Allocate stock"
+msgstr "Lagerbestand dem Bau zuweisen"
+
+#: build/templates/build/auto_allocate.html:8
+#, fuzzy
+#| msgid "Allocate Stock to Build"
+msgid "Automatically Allocate Stock"
+msgstr "Lagerbestand dem Bau zuweisen"
+
+#: build/templates/build/auto_allocate.html:9
+msgid ""
+"Stock Items are selected for automatic allocation if there is only a single "
+"stock item available."
+msgstr ""
+
+#: build/templates/build/auto_allocate.html:10
+#, fuzzy
+#| msgid "Stock Item to allocate to build"
+msgid "The following stock items will be allocated to the build:"
+msgstr "Lagerobjekt dem Bau zuweisen"
+
+#: build/templates/build/auto_allocate.html:39
+#, fuzzy
+#| msgid "Stock Item to allocate to build"
+msgid "No stock items found that can be allocated to this build"
+msgstr "Lagerobjekt dem Bau zuweisen"
+
+#: build/templates/build/build_base.html:8
+#: build/templates/build/build_base.html:34
+#: build/templates/build/complete.html:6
+#: stock/templates/stock/item_base.html:169 templates/navbar.html:12
+msgid "Build"
+msgstr "Bau"
+
+#: build/templates/build/build_base.html:14
+#, fuzzy
+#| msgid "Stock Item to allocate to build"
+msgid "This build is allocated to Sales Order"
+msgstr "Lagerobjekt dem Bau zuweisen"
+
+#: build/templates/build/build_base.html:19
+#, fuzzy
+#| msgid "Stock Item to allocate to build"
+msgid "This build is a child of Build"
+msgstr "Lagerobjekt dem Bau zuweisen"
+
+#: build/templates/build/build_base.html:61 build/templates/build/detail.html:9
+msgid "Build Details"
+msgstr "Bau-Status"
+
+#: build/templates/build/build_base.html:80
#: build/templates/build/detail.html:42
-#: stock/templates/stock/item_base.html:212
+#: stock/templates/stock/item_base.html:222
msgid "Status"
msgstr "Status"
-#: build/templates/build/build_base.html:72
+#: build/templates/build/build_base.html:93 order/models.py:460
+#: order/templates/order/sales_order_base.html:9
+#: order/templates/order/sales_order_base.html:33
+#: order/templates/order/sales_order_notes.html:10
+#: order/templates/order/sales_order_ship.html:25
+#: part/templates/part/allocation.html:27
+#: stock/templates/stock/item_base.html:123
+#, fuzzy
+#| msgid "Sales Orders"
+msgid "Sales Order"
+msgstr "Bestellungen"
+
+#: build/templates/build/build_base.html:99
msgid "BOM Price"
msgstr ""
-#: build/templates/build/build_base.html:77
+#: build/templates/build/build_base.html:104
msgid "BOM pricing is incomplete"
msgstr ""
-#: build/templates/build/build_base.html:80
+#: build/templates/build/build_base.html:107
#, fuzzy
#| msgid "Show pricing information"
msgid "No pricing information"
msgstr "Kosteninformationen ansehen"
-#: build/templates/build/build_output.html:9
+#: build/templates/build/build_output.html:9 build/templates/build/tabs.html:11
#, fuzzy
#| msgid "Build status"
msgid "Build Outputs"
msgstr "Bau-Status"
+#: build/templates/build/complete.html:10
+#, fuzzy
+#| msgid "Mark order as complete"
+msgid "Build order allocation is complete"
+msgstr "Bestellung als vollständig markieren"
+
+#: build/templates/build/complete.html:14
+msgid "Warning: Build order allocation is not complete"
+msgstr ""
+
+#: build/templates/build/complete.html:15
+msgid ""
+"Build Order has not been fully allocated. Ensure that all Stock Items have "
+"been allocated to the Build"
+msgstr ""
+
+#: build/templates/build/complete.html:20
+msgid "The following actions will be performed:"
+msgstr ""
+
+#: build/templates/build/complete.html:22
+#, fuzzy
+#| msgid "Receive parts to this location"
+msgid "Remove allocated items from stock"
+msgstr "Teile in diesen Ort empfangen"
+
+#: build/templates/build/complete.html:23
+msgid "Add completed items to stock"
+msgstr ""
+
+#: build/templates/build/complete.html:29
+msgid "The following items will be created"
+msgstr ""
+
#: build/templates/build/delete_build_item.html:6
#, fuzzy
#| msgid "Are you sure you want to delete the following Supplier Parts?"
@@ -396,21 +616,13 @@ msgid "Stock can be taken from any available location."
msgstr "Bestand kann jedem verfügbaren Lagerort entnommen werden."
#: build/templates/build/detail.html:48
-#: stock/templates/stock/item_base.html:152
+#: stock/templates/stock/item_base.html:162
msgid "Batch"
msgstr "Los"
-#: build/templates/build/detail.html:55
-#: company/templates/company/supplier_part_base.html:57
-#: company/templates/company/supplier_part_detail.html:24
-#: part/templates/part/detail.html:67 part/templates/part/part_base.html:85
-#: stock/templates/stock/item_base.html:180
-msgid "External Link"
-msgstr ""
-
#: build/templates/build/detail.html:61
#: order/templates/order/order_base.html:93
-#: order/templates/order/sales_order_base.html:82
+#: order/templates/order/sales_order_base.html:92
msgid "Created"
msgstr "Erstellt"
@@ -430,6 +642,20 @@ msgstr "Nein"
msgid "Completed"
msgstr "Fertig"
+#: build/templates/build/index.html:6 build/templates/build/index.html:14
+#: order/templates/order/so_builds.html:11 order/templates/order/so_tabs.html:9
+#: part/templates/part/tabs.html:28
+#, fuzzy
+#| msgid "Build Notes"
+msgid "Build Orders"
+msgstr "Bau-Bemerkungen"
+
+#: build/templates/build/index.html:24
+#, fuzzy
+#| msgid "Build Notes"
+msgid "New Build Order"
+msgstr "Bau-Bemerkungen"
+
#: build/templates/build/notes.html:13 build/templates/build/notes.html:30
msgid "Build Notes"
msgstr "Bau-Bemerkungen"
@@ -454,19 +680,10 @@ msgid "Details"
msgstr "Details"
#: build/templates/build/tabs.html:8
-msgid "Outputs"
-msgstr ""
-
-#: build/templates/build/tabs.html:11 company/models.py:302
-#: company/templates/company/tabs.html:26 order/templates/order/po_tabs.html:15
-#: order/templates/order/so_tabs.html:15 part/templates/part/tabs.html:63
-#: stock/templates/stock/tabs.html:17
-msgid "Notes"
-msgstr "Notizen"
-
-#: build/templates/build/tabs.html:14
-msgid "Assign Parts"
-msgstr "Teile zuweisen"
+#, fuzzy
+#| msgid "All parts"
+msgid "Allocated Parts"
+msgstr "Alle Teile"
#: build/templates/build/unallocate.html:8
msgid "Are you sure you wish to unallocate all stock for this build?"
@@ -508,7 +725,7 @@ msgstr "Bestell-Stornierung bestätigen"
msgid "Check the confirmation box at the bottom of the list"
msgstr ""
-#: build/views.py:148 build/views.py:442
+#: build/views.py:148 build/views.py:446
#, fuzzy
#| msgid "Unallocate"
msgid "Unallocate Stock"
@@ -540,60 +757,60 @@ msgstr "Bau-Fertigstellung bestätigen"
msgid "Invalid location selected"
msgstr "Ungültige Teileauswahl"
-#: build/views.py:290 stock/views.py:916
+#: build/views.py:290 stock/views.py:917
#, python-brace-format
msgid "The following serial numbers already exist: ({sn})"
msgstr "Die folgende Seriennummer existiert bereits: ({sn})"
-#: build/views.py:309
+#: build/views.py:311
msgid "Build marked as COMPLETE"
msgstr ""
-#: build/views.py:385
+#: build/views.py:387
#, fuzzy
#| msgid "Can Build"
msgid "Start new Build"
msgstr "Herstellbar?"
-#: build/views.py:408
+#: build/views.py:412
#, fuzzy
#| msgid "Created new stock item"
msgid "Created new build"
msgstr "Neues Lagerobjekt erstellt"
-#: build/views.py:418
+#: build/views.py:422
#, fuzzy
#| msgid "Build Details"
msgid "Edit Build Details"
msgstr "Bau-Status"
-#: build/views.py:423
+#: build/views.py:427
msgid "Edited build"
msgstr ""
-#: build/views.py:432
+#: build/views.py:436
msgid "Delete Build"
msgstr ""
-#: build/views.py:447
+#: build/views.py:451
#, fuzzy
#| msgid "Receive parts to this location"
msgid "Removed parts from build allocation"
msgstr "Teile in diesen Ort empfangen"
-#: build/views.py:457
+#: build/views.py:461
#, fuzzy
#| msgid "Create new Stock Item"
msgid "Allocate new Part"
msgstr "Neues Lagerobjekt hinzufügen"
-#: build/views.py:573
+#: build/views.py:614
#, fuzzy
#| msgid "Edit Stock Location"
msgid "Edit Stock Allocation"
msgstr "Lagerobjekt-Standort bearbeiten"
-#: build/views.py:577
+#: build/views.py:618
msgid "Updated Build Item"
msgstr ""
@@ -773,16 +990,15 @@ msgstr "Hersteller"
#: company/templates/company/detail.html:21
#: company/templates/company/supplier_part_base.html:63
-#: company/templates/company/supplier_part_detail.html:21 order/models.py:138
+#: company/templates/company/supplier_part_detail.html:21 order/models.py:111
#: order/templates/order/order_base.html:74
#: order/templates/order/order_wizard/select_pos.html:30
-#: stock/templates/stock/item_base.html:187
+#: stock/templates/stock/item_base.html:197
msgid "Supplier"
msgstr "Zulieferer"
#: company/templates/company/detail.html:26 order/models.py:275
-#: order/templates/order/sales_order_base.html:63
-#: stock/templates/stock/item_base.html:173
+#: order/templates/order/sales_order_base.html:73
msgid "Customer"
msgstr "Kunde"
@@ -791,7 +1007,8 @@ msgid "Supplier Parts"
msgstr "Zulieferer-Teile"
#: company/templates/company/detail_part.html:13
-#: part/templates/part/stock.html:81
+#: order/templates/order/purchase_order_detail.html:67
+#: part/templates/part/stock.html:82
#, fuzzy
#| msgid "Supplier Part"
msgid "New Supplier Part"
@@ -808,7 +1025,7 @@ msgid "Delete Parts"
msgstr "Anhang löschen"
#: company/templates/company/detail_part.html:43
-#: part/templates/part/stock.html:75
+#: part/templates/part/stock.html:76
#, fuzzy
#| msgid "Part"
msgid "New Part"
@@ -820,25 +1037,25 @@ msgstr "Teil"
msgid "Create new Part"
msgstr "Neues Lagerobjekt hinzufügen"
-#: company/templates/company/detail_part.html:49 company/views.py:52
+#: company/templates/company/detail_part.html:49 company/views.py:51
#, fuzzy
#| msgid "Supplier"
msgid "New Supplier"
msgstr "Zulieferer"
-#: company/templates/company/detail_part.html:50 company/views.py:184
+#: company/templates/company/detail_part.html:50 company/views.py:182
#, fuzzy
#| msgid "Supplier Part"
msgid "Create new Supplier"
msgstr "Zulieferer-Teil"
-#: company/templates/company/detail_part.html:55 company/views.py:58
+#: company/templates/company/detail_part.html:55 company/views.py:57
#, fuzzy
#| msgid "Manufacturer"
msgid "New Manufacturer"
msgstr "Hersteller"
-#: company/templates/company/detail_part.html:56 company/views.py:187
+#: company/templates/company/detail_part.html:56 company/views.py:185
#, fuzzy
#| msgid "Manufacturer"
msgid "Create new Manufacturer"
@@ -852,7 +1069,7 @@ msgstr "Zulieferer-Teil"
#: company/templates/company/detail_stock.html:34
#: company/templates/company/supplier_part_stock.html:38
-#: part/templates/part/stock.html:53 templates/stock_table.html:5
+#: part/templates/part/stock.html:54 templates/stock_table.html:5
msgid "Export"
msgstr ""
@@ -919,11 +1136,23 @@ msgid "New Sales Order"
msgstr "Bestellungen"
#: company/templates/company/supplier_part_base.html:6
-#: company/templates/company/supplier_part_base.html:19
-#: stock/templates/stock/item_base.html:192
+#: company/templates/company/supplier_part_base.html:19 stock/models.py:345
+#: stock/templates/stock/item_base.html:202
msgid "Supplier Part"
msgstr "Zulieferer-Teil"
+#: company/templates/company/supplier_part_base.html:23
+#, fuzzy
+#| msgid "Supplier Part"
+msgid "Edit supplier part"
+msgstr "Zulieferer-Teil"
+
+#: company/templates/company/supplier_part_base.html:26
+#, fuzzy
+#| msgid "Supplier Part"
+msgid "Delete supplier part"
+msgstr "Zulieferer-Teil"
+
#: company/templates/company/supplier_part_base.html:35
#: company/templates/company/supplier_part_detail.html:11
#, fuzzy
@@ -952,7 +1181,6 @@ msgstr "IPN (Interne Produktnummer)"
#: company/templates/company/supplier_part_base.html:84
#: company/templates/company/supplier_part_detail.html:34
-#: order/templates/order/purchase_order_detail.html:34
msgid "Note"
msgstr "Notiz"
@@ -1001,14 +1229,16 @@ msgid "Supplier Part Stock"
msgstr "Zulieferer-Teil"
#: company/templates/company/supplier_part_stock.html:61
-#: part/templates/part/stock.html:90
+#: order/templates/order/purchase_order_detail.html:38
+#: order/templates/order/purchase_order_detail.html:118
+#: part/templates/part/stock.html:91
#, fuzzy
#| msgid "Location"
msgid "New Location"
msgstr "Standort"
#: company/templates/company/supplier_part_stock.html:62
-#: part/templates/part/stock.html:91
+#: part/templates/part/stock.html:92
#, fuzzy
#| msgid "Create new Stock Location"
msgid "Create New Location"
@@ -1022,7 +1252,7 @@ msgstr "Teile-Packaging"
#: company/templates/company/supplier_part_tabs.html:8
#: company/templates/company/tabs.html:12 part/templates/part/tabs.html:17
-#: templates/navbar.html:11
+#: stock/templates/stock/location.html:12 templates/navbar.html:11
msgid "Stock"
msgstr "Lagerbestand"
@@ -1037,120 +1267,120 @@ msgstr "bestellt"
msgid "Parts"
msgstr "Teile"
-#: company/views.py:51 part/templates/part/tabs.html:37
+#: company/views.py:50 part/templates/part/tabs.html:37
#: templates/navbar.html:16
msgid "Suppliers"
msgstr "Zulieferer"
-#: company/views.py:57 templates/navbar.html:17
+#: company/views.py:56 templates/navbar.html:17
#, fuzzy
#| msgid "Manufacturer"
msgid "Manufacturers"
msgstr "Hersteller"
-#: company/views.py:63 templates/navbar.html:24
+#: company/views.py:62 templates/navbar.html:24
#, fuzzy
#| msgid "Customer"
msgid "Customers"
msgstr "Kunde"
-#: company/views.py:64
+#: company/views.py:63
#, fuzzy
#| msgid "Customer"
msgid "New Customer"
msgstr "Kunde"
-#: company/views.py:71
+#: company/views.py:70
#, fuzzy
#| msgid "Company"
msgid "Companies"
msgstr "Firma"
-#: company/views.py:72
+#: company/views.py:71
#, fuzzy
#| msgid "Company"
msgid "New Company"
msgstr "Firma"
-#: company/views.py:149
+#: company/views.py:147
#, fuzzy
#| msgid "Company name"
msgid "Update Company Image"
msgstr "Firmenname"
-#: company/views.py:154
+#: company/views.py:152
msgid "Updated company image"
msgstr ""
-#: company/views.py:164
+#: company/views.py:162
#, fuzzy
#| msgid "Company"
msgid "Edit Company"
msgstr "Firma"
-#: company/views.py:168
+#: company/views.py:166
#, fuzzy
#| msgid "Link to external company information"
msgid "Edited company information"
msgstr "Link auf externe Firmeninformation"
-#: company/views.py:190
+#: company/views.py:188
#, fuzzy
#| msgid "Create new Stock Item"
msgid "Create new Customer"
msgstr "Neues Lagerobjekt hinzufügen"
-#: company/views.py:192
+#: company/views.py:190
#, fuzzy
#| msgid "Create new Stock Item"
msgid "Create new Company"
msgstr "Neues Lagerobjekt hinzufügen"
-#: company/views.py:219
+#: company/views.py:217
#, fuzzy
#| msgid "Created new stock item"
msgid "Created new company"
msgstr "Neues Lagerobjekt erstellt"
-#: company/views.py:229
+#: company/views.py:227
#, fuzzy
#| msgid "Company"
msgid "Delete Company"
msgstr "Firma"
-#: company/views.py:234
+#: company/views.py:232
#, fuzzy
#| msgid "Company address"
msgid "Company was deleted"
msgstr "Firmenadresse"
-#: company/views.py:259
+#: company/views.py:256
#, fuzzy
#| msgid "Supplier Part"
msgid "Edit Supplier Part"
msgstr "Zulieferer-Teil"
-#: company/views.py:268 part/templates/part/stock.html:82
+#: company/views.py:265 part/templates/part/stock.html:83
#, fuzzy
#| msgid "Supplier Part"
msgid "Create new Supplier Part"
msgstr "Zulieferer-Teil"
-#: company/views.py:328
+#: company/views.py:325
#, fuzzy
#| msgid "Supplier Part"
msgid "Delete Supplier Part"
msgstr "Zulieferer-Teil"
-#: company/views.py:398
+#: company/views.py:395
msgid "Add Price Break"
msgstr ""
-#: company/views.py:440
+#: company/views.py:437
msgid "Edit Price Break"
msgstr ""
-#: company/views.py:455
+#: company/views.py:452
#, fuzzy
#| msgid "Delete attachment"
msgid "Delete Price Break"
@@ -1164,11 +1394,16 @@ msgstr "Bestellung aufgeben"
msgid "Mark order as complete"
msgstr "Bestellung als vollständig markieren"
-#: order/forms.py:46
+#: order/forms.py:46 order/forms.py:57
+#: order/templates/order/sales_order_base.html:49
msgid "Cancel order"
msgstr "Bestellung stornieren"
-#: order/forms.py:57
+#: order/forms.py:68 order/templates/order/sales_order_base.html:46
+msgid "Ship order"
+msgstr ""
+
+#: order/forms.py:79
msgid "Receive parts to this location"
msgstr "Teile in diesen Ort empfangen"
@@ -1184,22 +1419,22 @@ msgstr "Bestellungs-Beschreibung"
msgid "Link to external page"
msgstr "Link auf externe Seite"
-#: order/models.py:92
+#: order/models.py:85
msgid "Order notes"
msgstr "Bestell-Notizen"
-#: order/models.py:141
+#: order/models.py:114
#, fuzzy
#| msgid "Order reference"
msgid "Supplier order reference code"
msgstr "Bestell-Referenz"
-#: order/models.py:171 order/models.py:222 part/views.py:1119
-#: stock/models.py:519
+#: order/models.py:148 order/models.py:222 part/views.py:1113
+#: stock/models.py:608
msgid "Quantity must be greater than zero"
msgstr "Anzahl muss größer Null sein"
-#: order/models.py:176
+#: order/models.py:153
msgid "Part supplier must match PO supplier"
msgstr "Teile-Zulieferer muss dem Zulieferer des Kaufvertrags entsprechen"
@@ -1207,74 +1442,70 @@ msgstr "Teile-Zulieferer muss dem Zulieferer des Kaufvertrags entsprechen"
msgid "Lines can only be received against an order marked as 'Placed'"
msgstr "Nur Teile aufgegebener Bestllungen können empfangen werden"
-#: order/models.py:278
+#: order/models.py:281
#, fuzzy
#| msgid "Order reference"
msgid "Customer order reference code"
msgstr "Bestell-Referenz"
-#: order/models.py:324
+#: order/models.py:320
+msgid "SalesOrder cannot be shipped as it is not currently pending"
+msgstr ""
+
+#: order/models.py:397
msgid "Item quantity"
msgstr "Anzahl"
-#: order/models.py:326
+#: order/models.py:399
msgid "Line item reference"
msgstr "Position - Referenz"
-#: order/models.py:328
+#: order/models.py:401
msgid "Line item notes"
msgstr "Position - Notizen"
-#: order/models.py:354 order/templates/order/order_base.html:9
+#: order/models.py:427 order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:23
-#: stock/templates/stock/item_base.html:166
+#: stock/templates/stock/item_base.html:176
msgid "Purchase Order"
msgstr "Kaufvertrag"
-#: order/models.py:363
+#: order/models.py:440
msgid "Supplier part"
msgstr "Zulieferer-Teil"
-#: order/models.py:366
+#: order/models.py:443
msgid "Number of items received"
msgstr "Empfangene Objekt-Anzahl"
-#: order/models.py:383 order/templates/order/sales_order_base.html:9
-#: order/templates/order/sales_order_base.html:31
-#: order/templates/order/sales_order_notes.html:10
-#, fuzzy
-#| msgid "Sales Orders"
-msgid "Sales Order"
-msgstr "Bestellungen"
-
-#: order/models.py:440
+#: order/models.py:537
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:442
+#: order/models.py:539
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:445
+#: order/models.py:542
#, fuzzy
#| msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
"zugewiesene Anzahl ({n}) darf nicht die verfügbare ({q}) Anzahl überschreiten"
-#: order/models.py:454
+#: order/models.py:552
#, fuzzy
#| msgid "Quantity must be 1 for item with a serial number"
msgid "Quantity must be 1 for serialized stock item"
msgstr "Anzahl muss für Objekte mit Seriennummer \"1\" sein"
-#: order/models.py:466
+#: order/models.py:569
#, fuzzy
#| msgid "Stock Item to allocate to build"
msgid "Select stock item to allocate"
msgstr "Lagerobjekt dem Bau zuweisen"
-#: order/models.py:469
+#: order/models.py:572
#, fuzzy
#| msgid "Enter a valid quantity"
msgid "Enter stock allocation quantity"
@@ -1293,14 +1524,14 @@ msgid "Purchase Order Details"
msgstr "Bestelldetails"
#: order/templates/order/order_base.html:64
-#: order/templates/order/sales_order_base.html:53
+#: order/templates/order/sales_order_base.html:63
#, fuzzy
#| msgid "Order reference"
msgid "Order Reference"
msgstr "Bestell-Referenz"
#: order/templates/order/order_base.html:69
-#: order/templates/order/sales_order_base.html:58
+#: order/templates/order/sales_order_base.html:68
#, fuzzy
#| msgid "Order Parts"
msgid "Order Status"
@@ -1313,16 +1544,20 @@ msgid "Supplier Reference"
msgstr "Referenz"
#: order/templates/order/order_base.html:99
-#: order/templates/order/sales_order_base.html:88
msgid "Issued"
msgstr "Aufgegeben"
#: order/templates/order/order_base.html:106
-#: order/templates/order/purchase_order_detail.html:32
-#: order/templates/order/sales_order_base.html:95
+#: order/templates/order/purchase_order_detail.html:180
+#: order/templates/order/sales_order_base.html:105
msgid "Received"
msgstr "Empfangen"
+#: order/templates/order/order_cancel.html:7
+#: order/templates/order/sales_order_cancel.html:9
+msgid "Cancelling this order means that the order will no longer be editable."
+msgstr ""
+
#: order/templates/order/order_notes.html:13
#: order/templates/order/order_notes.html:29
#: order/templates/order/sales_order_notes.html:18
@@ -1367,7 +1602,7 @@ msgid "Select existing purchase orders, or create new orders."
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:31
-#: order/templates/order/po_tabs.html:5 order/templates/order/so_tabs.html:5
+#: order/templates/order/po_tabs.html:5
msgid "Items"
msgstr "Positionen"
@@ -1409,7 +1644,7 @@ msgstr "Kommentar"
#: order/templates/order/po_attachments.html:36
#: order/templates/order/so_attachments.html:36
-#: part/templates/part/attachments.html:34 part/views.py:119
+#: part/templates/part/attachments.html:34 part/views.py:118
msgid "Edit attachment"
msgstr "Anhang bearbeiten"
@@ -1419,14 +1654,14 @@ msgstr "Anhang bearbeiten"
msgid "Delete attachment"
msgstr "Anhang löschen"
-#: order/templates/order/po_tabs.html:8 order/templates/order/so_tabs.html:8
+#: order/templates/order/po_tabs.html:8 order/templates/order/so_tabs.html:16
#: part/templates/part/tabs.html:60
msgid "Attachments"
msgstr "Anhänge"
#: order/templates/order/purchase_order_detail.html:16
-#: order/templates/order/sales_order_detail.html:17 order/views.py:970
-#: order/views.py:1084
+#: order/templates/order/sales_order_detail.html:17 order/views.py:1042
+#: order/views.py:1156
msgid "Add Line Item"
msgstr "Position hinzufügen"
@@ -1436,255 +1671,330 @@ msgstr "Position hinzufügen"
msgid "Purchase Order Items"
msgstr "Bestellungen"
-#: order/templates/order/purchase_order_detail.html:25
-msgid "Line"
-msgstr "Position"
+#: order/templates/order/purchase_order_detail.html:39
+#: order/templates/order/purchase_order_detail.html:119
+#: stock/templates/stock/location.html:17
+#, fuzzy
+#| msgid "Create new Stock Location"
+msgid "Create new stock location"
+msgstr "Neuen Lager-Standort erstellen"
-#: order/templates/order/purchase_order_detail.html:28
+#: order/templates/order/purchase_order_detail.html:68
+#, fuzzy
+#| msgid "Supplier Part"
+msgid "Create new supplier part"
+msgstr "Zulieferer-Teil"
+
+#: order/templates/order/purchase_order_detail.html:130
+#, fuzzy
+#| msgid "No serial numbers found"
+msgid "No line items found"
+msgstr "Keine Seriennummern gefunden"
+
+#: order/templates/order/purchase_order_detail.html:162
msgid "Order Code"
msgstr "Bestellnummer"
-#: order/templates/order/purchase_order_detail.html:29
-msgid "Reference"
-msgstr "Referenz"
+#: order/templates/order/purchase_order_detail.html:211
+#: order/templates/order/sales_order_detail.html:280
+#, fuzzy
+#| msgid "Add Line Item"
+msgid "Edit line item"
+msgstr "Position hinzufügen"
+
+#: order/templates/order/purchase_order_detail.html:212
+#, fuzzy
+#| msgid "Deleted {n} stock items"
+msgid "Delete line item"
+msgstr "{n} Teile im Lager gelöscht"
+
+#: order/templates/order/purchase_order_detail.html:217
+#, fuzzy
+#| msgid "Deleted {n} stock items"
+msgid "Receive line item"
+msgstr "{n} Teile im Lager gelöscht"
#: order/templates/order/sales_order_base.html:15
msgid "This SalesOrder has not been fully allocated"
msgstr ""
-#: order/templates/order/sales_order_base.html:40
+#: order/templates/order/sales_order_base.html:42
#, fuzzy
#| msgid "Parts"
msgid "Packing List"
msgstr "Teile"
-#: order/templates/order/sales_order_base.html:48
+#: order/templates/order/sales_order_base.html:58
#, fuzzy
#| msgid "Purchase Order Details"
msgid "Sales Order Details"
msgstr "Bestelldetails"
-#: order/templates/order/sales_order_base.html:69
+#: order/templates/order/sales_order_base.html:79
#, fuzzy
#| msgid "Reference"
msgid "Customer Reference"
msgstr "Referenz"
+#: order/templates/order/sales_order_cancel.html:8
+#: order/templates/order/sales_order_ship.html:9
+msgid "Warning"
+msgstr ""
+
#: order/templates/order/sales_order_detail.html:14
#, fuzzy
#| msgid "Sales Orders"
msgid "Sales Order Items"
msgstr "Bestellungen"
-#: order/templates/order/sales_order_detail.html:90
-#, fuzzy
-#| msgid "Edit Stock Location"
-msgid "Edit stock allocation"
-msgstr "Lagerobjekt-Standort bearbeiten"
+#: order/templates/order/sales_order_detail.html:222
+msgid "Fulfilled"
+msgstr ""
-#: order/templates/order/sales_order_detail.html:91
-#, fuzzy
-#| msgid "Delete Stock Location"
-msgid "Delete stock allocation"
-msgstr "Standort löschen"
-
-#: order/templates/order/sales_order_detail.html:178
-#, fuzzy
-#| msgid "All parts"
-msgid "Buy parts"
-msgstr "Alle Teile"
-
-#: order/templates/order/sales_order_detail.html:182
-#, fuzzy
-#| msgid "Build status"
-msgid "Build parts"
-msgstr "Bau-Status"
-
-#: order/templates/order/sales_order_detail.html:185
+#: order/templates/order/sales_order_detail.html:277
#, fuzzy
#| msgid "All parts"
msgid "Allocate parts"
msgstr "Alle Teile"
-#: order/templates/order/sales_order_detail.html:189
-#, fuzzy
-#| msgid "Add Line Item"
-msgid "Edit line item"
-msgstr "Position hinzufügen"
-
-#: order/templates/order/sales_order_detail.html:190
+#: order/templates/order/sales_order_detail.html:281
#, fuzzy
#| msgid "Deleted {n} stock items"
msgid "Delete line item "
msgstr "{n} Teile im Lager gelöscht"
+#: order/templates/order/sales_order_ship.html:10
+msgid ""
+"This order has not been fully allocated. If the order is marked as shipped, "
+"it can no longer be adjusted."
+msgstr ""
+
+#: order/templates/order/sales_order_ship.html:12
+msgid "Ensure that the order allocation is correct before shipping the order."
+msgstr ""
+
+#: order/templates/order/sales_order_ship.html:18
+msgid "Some line items in this order have been over-allocated"
+msgstr ""
+
+#: order/templates/order/sales_order_ship.html:20
+msgid "Ensure that this is correct before shipping the order."
+msgstr ""
+
+#: order/templates/order/sales_order_ship.html:27
+msgid "Shipping this order means that the order will no longer be editable."
+msgstr ""
+
+#: order/templates/order/so_allocation_delete.html:7
+msgid "This action will unallocate the following stock from the Sales Order"
+msgstr ""
+
#: order/templates/order/so_attachments.html:11
#, fuzzy
#| msgid "Purchase Order Details"
msgid "Sales Order Attachments"
msgstr "Bestelldetails"
-#: order/views.py:97
+#: order/templates/order/so_lineitem_delete.html:5
+#, fuzzy
+#| msgid "Are you sure you want to delete the following Supplier Parts?"
+msgid "Are you sure you wish to delete this line item?"
+msgstr ""
+"Sind Sie sicher, dass sie die folgenden Zulieferer-Teile löschen möchten?"
+
+#: order/templates/order/so_tabs.html:5
+msgid "Order Items"
+msgstr "Bestellungspositionen"
+
+#: order/views.py:93
#, fuzzy
#| msgid "Purchase Order Details"
msgid "Add Purchase Order Attachment"
msgstr "Bestelldetails"
-#: order/views.py:102 order/views.py:142 part/views.py:80
+#: order/views.py:98 order/views.py:138 part/views.py:79
#, fuzzy
#| msgid "Add Attachment"
msgid "Added attachment"
msgstr "Anhang hinzufügen"
-#: order/views.py:138
+#: order/views.py:134
#, fuzzy
#| msgid "Purchase Order Details"
msgid "Add Sales Order Attachment"
msgstr "Bestelldetails"
-#: order/views.py:166 order/views.py:187
+#: order/views.py:162 order/views.py:183
#, fuzzy
#| msgid "Edit attachment"
msgid "Edit Attachment"
msgstr "Anhang bearbeiten"
-#: order/views.py:170 order/views.py:191
+#: order/views.py:166 order/views.py:187
#, fuzzy
#| msgid "Part Attachments"
msgid "Attachment updated"
msgstr "Anhänge"
-#: order/views.py:206 order/views.py:220
+#: order/views.py:202 order/views.py:216
#, fuzzy
#| msgid "Delete attachment"
msgid "Delete Attachment"
msgstr "Anhang löschen"
-#: order/views.py:212 order/views.py:226
+#: order/views.py:208 order/views.py:222
#, fuzzy
#| msgid "Delete attachment"
msgid "Deleted attachment"
msgstr "Anhang löschen"
-#: order/views.py:277
+#: order/views.py:273
#, fuzzy
#| msgid "Purchase Order"
msgid "Create Purchase Order"
msgstr "Kaufvertrag"
-#: order/views.py:307
+#: order/views.py:303
#, fuzzy
#| msgid "Purchase Order"
msgid "Create Sales Order"
msgstr "Kaufvertrag"
-#: order/views.py:336
+#: order/views.py:332
#, fuzzy
#| msgid "Purchase Order"
msgid "Edit Purchase Order"
msgstr "Kaufvertrag"
-#: order/views.py:356
+#: order/views.py:352
#, fuzzy
#| msgid "Sales Orders"
msgid "Edit Sales Order"
msgstr "Bestellungen"
-#: order/views.py:372
+#: order/views.py:368
#, fuzzy
#| msgid "Cancel order"
msgid "Cancel Order"
msgstr "Bestellung stornieren"
-#: order/views.py:387
+#: order/views.py:383 order/views.py:415
msgid "Confirm order cancellation"
msgstr "Bestell-Stornierung bestätigen"
-#: order/views.py:405
+#: order/views.py:401
+#, fuzzy
+#| msgid "Create new Stock Item"
+msgid "Cancel sales order"
+msgstr "Neues Lagerobjekt hinzufügen"
+
+#: order/views.py:421
+#, fuzzy
+#| msgid "Cancel order"
+msgid "Could not cancel order"
+msgstr "Bestellung stornieren"
+
+#: order/views.py:435
#, fuzzy
#| msgid "Issued"
msgid "Issue Order"
msgstr "Aufgegeben"
-#: order/views.py:420
+#: order/views.py:450
msgid "Confirm order placement"
msgstr "Bestellungstätigung bestätigen"
-#: order/views.py:441
+#: order/views.py:471
#, fuzzy
#| msgid "Completed"
msgid "Complete Order"
msgstr "Fertig"
-#: order/views.py:507
+#: order/views.py:506
+#, fuzzy
+#| msgid "On Order"
+msgid "Ship Order"
+msgstr "bestellt"
+
+#: order/views.py:522
+#, fuzzy
+#| msgid "Confirm order placement"
+msgid "Confirm order shipment"
+msgstr "Bestellungstätigung bestätigen"
+
+#: order/views.py:528
+msgid "Could not ship order"
+msgstr ""
+
+#: order/views.py:579
#, fuzzy
#| msgid "Required Parts"
msgid "Receive Parts"
msgstr "benötigte Teile"
-#: order/views.py:574
+#: order/views.py:646
msgid "Items received"
msgstr "Anzahl empfangener Positionen"
-#: order/views.py:588
+#: order/views.py:660
msgid "No destination set"
msgstr "Kein Ziel gesetzt"
-#: order/views.py:619
+#: order/views.py:691
msgid "Error converting quantity to number"
msgstr "Fehler beim Konvertieren zu Zahl"
-#: order/views.py:625
+#: order/views.py:697
msgid "Receive quantity less than zero"
msgstr "Anzahl kleiner null empfangen"
-#: order/views.py:631
+#: order/views.py:703
msgid "No lines specified"
msgstr "Keine Zeilen angegeben"
-#: order/views.py:990
+#: order/views.py:1062
msgid "Invalid Purchase Order"
msgstr "Ungültige Bestellung"
-#: order/views.py:998
+#: order/views.py:1070
msgid "Supplier must match for Part and Order"
msgstr "Zulieferer muss zum Teil und zur Bestellung passen"
-#: order/views.py:1003
+#: order/views.py:1075
msgid "Invalid SupplierPart selection"
msgstr "Ungültige Wahl des Zulieferer-Teils"
-#: order/views.py:1123 order/views.py:1141
+#: order/views.py:1207 order/views.py:1225
#, fuzzy
#| msgid "Add Line Item"
msgid "Edit Line Item"
msgstr "Position hinzufügen"
-#: order/views.py:1157 order/views.py:1169
+#: order/views.py:1241 order/views.py:1253
#, fuzzy
#| msgid "Delete Stock Item"
msgid "Delete Line Item"
msgstr "Lagerobjekt löschen"
-#: order/views.py:1162 order/views.py:1174
+#: order/views.py:1246 order/views.py:1258
#, fuzzy
#| msgid "Deleted {n} stock items"
msgid "Deleted line item"
msgstr "{n} Teile im Lager gelöscht"
-#: order/views.py:1183
+#: order/views.py:1267
#, fuzzy
#| msgid "Allocate Stock to Build"
msgid "Allocate Stock to Order"
msgstr "Lagerbestand dem Bau zuweisen"
-#: order/views.py:1252
+#: order/views.py:1336
#, fuzzy
#| msgid "Edit Stock Location"
msgid "Edit Allocation Quantity"
msgstr "Lagerobjekt-Standort bearbeiten"
-#: order/views.py:1267
+#: order/views.py:1351
#, fuzzy
#| msgid "Receive parts to this location"
msgid "Remove allocation"
@@ -1749,181 +2059,250 @@ msgstr "Eintragsmenge zur Preisberechnung"
msgid "Select currency for price calculation"
msgstr "Währung zur Preisberechnung wählen"
-#: part/models.py:61
+#: part/models.py:64
msgid "Default location for parts in this category"
msgstr "Standard-Standort für Teile dieser Kategorie"
-#: part/models.py:64
+#: part/models.py:67
msgid "Default keywords for parts in this category"
msgstr "Standard-Stichworte für Teile dieser Kategorie"
-#: part/models.py:338
+#: part/models.py:341
msgid "Part must be unique for name, IPN and revision"
msgstr "Namen, Teile- und Revisionsnummern müssen eindeutig sein"
-#: part/models.py:352
+#: part/models.py:355
msgid "Part cannot be a template part if it is a variant of another part"
msgstr "Teil kann keine Vorlage sein wenn es Variante eines anderen Teils ist"
-#: part/models.py:353
+#: part/models.py:356
msgid "Part cannot be a variant of another part if it is already a template"
msgstr ""
"Teil kann keine Variante eines anderen Teils sein wenn es bereits eine "
"Vorlage ist"
-#: part/models.py:357 part/templates/part/detail.html:19
+#: part/models.py:360 part/templates/part/detail.html:19
msgid "Part name"
msgstr "Name des Teils"
-#: part/models.py:361
+#: part/models.py:364
msgid "Is this part a template part?"
msgstr "Ist dieses Teil eine Vorlage?"
-#: part/models.py:370
+#: part/models.py:373
msgid "Is this part a variant of another part?"
msgstr "Ist dieses Teil eine Variante eines anderen Teils?"
-#: part/models.py:372
+#: part/models.py:375
msgid "Part description"
msgstr "Beschreibung des Teils"
-#: part/models.py:374
+#: part/models.py:377
msgid "Part keywords to improve visibility in search results"
msgstr "Schlüsselworte um die Sichtbarkeit in Suchergebnissen zu verbessern"
-#: part/models.py:379
+#: part/models.py:382
msgid "Part category"
msgstr "Teile-Kategorie"
-#: part/models.py:381
+#: part/models.py:384
msgid "Internal Part Number"
msgstr "Interne Teilenummer"
-#: part/models.py:383
+#: part/models.py:386
msgid "Part revision or version number"
msgstr "Revisions- oder Versionsnummer"
-#: part/models.py:385
+#: part/models.py:388
msgid "Link to extenal URL"
msgstr "Link zu einer Externen URL"
-#: part/models.py:397
+#: part/models.py:400
msgid "Where is this item normally stored?"
msgstr "Wo wird dieses Teil normalerweise gelagert?"
-#: part/models.py:441
+#: part/models.py:444
msgid "Default supplier part"
msgstr "Standard-Zulieferer?"
-#: part/models.py:444
+#: part/models.py:447
msgid "Minimum allowed stock level"
msgstr "Minimal zulässiger Lagerbestand"
-#: part/models.py:446
+#: part/models.py:449
msgid "Stock keeping units for this part"
msgstr "Stock Keeping Units (SKU) für dieses Teil"
-#: part/models.py:448
+#: part/models.py:451
msgid "Can this part be built from other parts?"
msgstr "Kann dieses Teil aus anderen Teilen angefertigt werden?"
-#: part/models.py:450
+#: part/models.py:453
msgid "Can this part be used to build other parts?"
msgstr "Kann dieses Teil zum Bau von anderen genutzt werden?"
-#: part/models.py:452
+#: part/models.py:455
msgid "Does this part have tracking for unique items?"
msgstr "Hat dieses Teil Tracking für einzelne Objekte?"
-#: part/models.py:454
+#: part/models.py:457
msgid "Can this part be purchased from external suppliers?"
msgstr "Kann dieses Teil von externen Zulieferern gekauft werden?"
-#: part/models.py:456
+#: part/models.py:459
msgid "Can this part be sold to customers?"
msgstr "Kann dieses Teil an Kunden verkauft werden?"
-#: part/models.py:458
+#: part/models.py:461
msgid "Is this part active?"
msgstr "Ist dieses Teil aktiv?"
-#: part/models.py:460
+#: part/models.py:463
msgid "Is this a virtual part, such as a software product or license?"
msgstr "Ist dieses Teil virtuell, wie zum Beispiel eine Software oder Lizenz?"
-#: part/models.py:462
+#: part/models.py:465
msgid "Part notes - supports Markdown formatting"
msgstr "Bemerkungen - unterstüzt Markdown-Formatierung"
-#: part/models.py:464
+#: part/models.py:467
msgid "Stored BOM checksum"
msgstr "Prüfsumme der Stückliste gespeichert"
-#: part/models.py:1065
+#: part/models.py:1069
msgid "Parameter template name must be unique"
msgstr "Vorlagen-Name des Parameters muss eindeutig sein"
-#: part/models.py:1070
+#: part/models.py:1074
msgid "Parameter Name"
msgstr "Name des Parameters"
-#: part/models.py:1072
+#: part/models.py:1076
msgid "Parameter Units"
msgstr "Parameter Einheit"
-#: part/models.py:1098
+#: part/models.py:1102
msgid "Parent Part"
msgstr "Ausgangsteil"
-#: part/models.py:1100
+#: part/models.py:1104
msgid "Parameter Template"
msgstr "Parameter Vorlage"
-#: part/models.py:1102
+#: part/models.py:1106
msgid "Parameter Value"
msgstr "Parameter Wert"
-#: part/models.py:1126
+#: part/models.py:1130
msgid "Select parent part"
msgstr "Ausgangsteil auswählen"
-#: part/models.py:1135
+#: part/models.py:1139
msgid "Select part to be used in BOM"
msgstr "Teil für die Nutzung in der Stückliste auswählen"
-#: part/models.py:1142
+#: part/models.py:1146
msgid "BOM quantity for this BOM item"
msgstr "Stücklisten-Anzahl für dieses Stücklisten-Teil"
-#: part/models.py:1145
+#: part/models.py:1149
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr "Geschätzter Ausschuss (absolut oder prozentual)"
-#: part/models.py:1148
+#: part/models.py:1152
msgid "BOM item reference"
msgstr "Referenz des Objekts auf der Stückliste"
-#: part/models.py:1151
+#: part/models.py:1155
msgid "BOM item notes"
msgstr "Notizen zum Stücklisten-Objekt"
-#: part/models.py:1153
+#: part/models.py:1157
msgid "BOM line checksum"
msgstr "Prüfsumme der Stückliste"
-#: part/models.py:1216
+#: part/models.py:1220
msgid "Part cannot be added to its own Bill of Materials"
msgstr "Teil kann nicht zu seiner eigenen Stückliste hinzugefügt werden"
-#: part/models.py:1223
+#: part/models.py:1227
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr "Teil '{p1}' wird in Stückliste für Teil '{p2}' benutzt (rekursiv)"
+#: part/templates/part/allocation.html:10
+#, fuzzy
+#| msgid "Edit Stock Location"
+msgid "Part Stock Allocations"
+msgstr "Lagerobjekt-Standort bearbeiten"
+
+#: part/templates/part/allocation.html:14
+#: part/templates/part/allocation.html:41
+#, fuzzy
+#| msgid "On Order"
+msgid "Order"
+msgstr "bestellt"
+
+#: part/templates/part/allocation.html:15
+#: part/templates/part/allocation.html:21
+#: part/templates/part/allocation.html:28
+#: part/templates/part/allocation.html:45
+#: stock/templates/stock/item_base.html:8
+#: stock/templates/stock/item_base.html:52
+#: stock/templates/stock/item_base.html:184
+#: stock/templates/stock/stock_adjust.html:16
+msgid "Stock Item"
+msgstr "Lagerobjekt"
+
+#: part/templates/part/allocation.html:20
+#: stock/templates/stock/item_base.html:129
+#, fuzzy
+#| msgid "Build Notes"
+msgid "Build Order"
+msgstr "Bau-Bemerkungen"
+
#: part/templates/part/attachments.html:8
msgid "Part Attachments"
msgstr "Anhänge"
+#: part/templates/part/bom.html:13
+msgid "Bill of Materials"
+msgstr ""
+
+#: part/templates/part/bom.html:37
+#, fuzzy
+#| msgid "Removed stock from {n} items"
+msgid "Remove selected BOM items"
+msgstr "Vorrat von {n} Lagerobjekten entfernt"
+
+#: part/templates/part/bom.html:38
+msgid "Import BOM data"
+msgstr ""
+
+#: part/templates/part/bom.html:39
+#, fuzzy
+#| msgid "Stock Item"
+msgid "New BOM Item"
+msgstr "Lagerobjekt"
+
+#: part/templates/part/bom.html:40
+msgid "Finish Editing"
+msgstr ""
+
+#: part/templates/part/bom.html:42
+#, fuzzy
+#| msgid "Edit Stock Item"
+msgid "Edit BOM"
+msgstr "Lagerobjekt bearbeiten"
+
+#: part/templates/part/bom.html:44
+msgid "Validate Bill of Materials"
+msgstr ""
+
+#: part/templates/part/bom.html:46 part/views.py:1358
+msgid "Export Bill of Materials"
+msgstr ""
+
#: part/templates/part/category.html:13 part/templates/part/category.html:78
#: templates/stats.html:12
msgid "Part Categories"
@@ -1977,7 +2356,7 @@ msgstr "Revision"
msgid "Variant Of"
msgstr "Variante von"
-#: part/templates/part/detail.html:57
+#: part/templates/part/detail.html:57 part/templates/part/set_category.html:15
msgid "Category"
msgstr "Kategorie"
@@ -1985,7 +2364,7 @@ msgstr "Kategorie"
msgid "Default Supplier"
msgstr "Standard-Zulieferer"
-#: part/templates/part/detail.html:89
+#: part/templates/part/detail.html:89 part/templates/part/params.html:22
msgid "Units"
msgstr "Einheiten"
@@ -2021,7 +2400,7 @@ msgstr "Teil ist virtuell (kein physisches Teil)"
msgid "Part is not a virtual part"
msgstr "Teil ist nicht virtuell"
-#: part/templates/part/detail.html:132 templates/table_filters.html:91
+#: part/templates/part/detail.html:132 templates/table_filters.html:99
msgid "Assembly"
msgstr "Baugruppe"
@@ -2033,7 +2412,7 @@ msgstr "Teil kann aus anderen Teilen angefertigt werden"
msgid "Part cannot be assembled from other parts"
msgstr "Teil kann nicht aus anderen Teilen angefertigt werden"
-#: part/templates/part/detail.html:141 templates/table_filters.html:95
+#: part/templates/part/detail.html:141 templates/table_filters.html:103
msgid "Component"
msgstr "Komponente"
@@ -2065,7 +2444,7 @@ msgstr "Kaufbar"
msgid "Part can be purchased from external suppliers"
msgstr "Teil kann von externen Zulieferern gekauft werden"
-#: part/templates/part/detail.html:168 templates/table_filters.html:103
+#: part/templates/part/detail.html:168 templates/table_filters.html:111
#, fuzzy
#| msgid "Sellable"
msgid "Salable"
@@ -2095,6 +2474,42 @@ msgstr "Teile bestellen"
msgid "Order Part"
msgstr "Teile bestellen"
+#: part/templates/part/params.html:8
+#, fuzzy
+#| msgid "Edit attachment"
+msgid "Part Parameters"
+msgstr "Anhang bearbeiten"
+
+#: part/templates/part/params.html:13
+#, fuzzy
+#| msgid "Edit attachment"
+msgid "Add new parameter"
+msgstr "Anhang bearbeiten"
+
+#: part/templates/part/params.html:13 templates/InvenTree/settings/part.html:12
+#, fuzzy
+#| msgid "Parameters"
+msgid "New Parameter"
+msgstr "Parameter"
+
+#: part/templates/part/params.html:20
+msgid "Name"
+msgstr ""
+
+#: part/templates/part/params.html:21
+msgid "Value"
+msgstr ""
+
+#: part/templates/part/params.html:33
+msgid "Edit"
+msgstr ""
+
+#: part/templates/part/params.html:34
+#, fuzzy
+#| msgid "Delete attachment"
+msgid "Delete"
+msgstr "Anhang löschen"
+
#: part/templates/part/part_app_base.html:9
#, fuzzy
#| msgid "Part category"
@@ -2108,25 +2523,25 @@ msgid "Part List"
msgstr "Teile"
#: part/templates/part/part_base.html:11
-msgid "This part is not active"
-msgstr "Dieses Teil ist nicht aktiv"
-
-#: part/templates/part/part_base.html:16
#, fuzzy
#| msgid "Is this part a template part?"
msgid "This part is a template part."
msgstr "Ist dieses Teil eine Vorlage?"
-#: part/templates/part/part_base.html:18
+#: part/templates/part/part_base.html:13
msgid "It is not a real part, but real parts can be based on this template."
msgstr ""
-#: part/templates/part/part_base.html:23
+#: part/templates/part/part_base.html:18
#, fuzzy
#| msgid "This part is not active"
msgid "This part is a variant of"
msgstr "Dieses Teil ist nicht aktiv"
+#: part/templates/part/part_base.html:30
+msgid "Inactive"
+msgstr ""
+
#: part/templates/part/part_base.html:38
msgid "Star this part"
msgstr "Teil favorisieren"
@@ -2143,9 +2558,9 @@ msgstr "Verfügbarer Lagerbestand"
msgid "In Stock"
msgstr "Auf Lager"
-#: part/templates/part/part_base.html:131
-msgid "Build Status"
-msgstr "Bau-Status"
+#: part/templates/part/part_base.html:121
+msgid "On Order"
+msgstr "bestellt"
#: part/templates/part/part_base.html:136
msgid "Can Build"
@@ -2177,7 +2592,25 @@ msgstr "Bestellungen"
msgid "New Order"
msgstr "bestellt"
-#: part/templates/part/stock.html:76
+#: part/templates/part/set_category.html:9
+#, fuzzy
+#| msgid "Set category for {n} parts"
+msgid "Set category for the following parts"
+msgstr "Kategorie für {n} Teile setzen"
+
+#: part/templates/part/set_category.html:32
+#, fuzzy
+#| msgid "Remove From Stock"
+msgid "Remove part"
+msgstr "Aus Lagerbestand entfernen"
+
+#: part/templates/part/stock.html:8
+#, fuzzy
+#| msgid "Supplier part"
+msgid "Part Stock"
+msgstr "Zulieferer-Teil"
+
+#: part/templates/part/stock.html:77
#, fuzzy
#| msgid "Create new Stock Item"
msgid "Create New Part"
@@ -2215,220 +2648,222 @@ msgstr "Benutzt in"
msgid "Tracking"
msgstr "Tracking"
-#: part/views.py:75
+#: part/templates/part/track.html:8
+#, fuzzy
+#| msgid "Part packaging"
+msgid "Part Tracking"
+msgstr "Teile-Packaging"
+
+#: part/views.py:74
#, fuzzy
#| msgid "Add Attachment"
msgid "Add part attachment"
msgstr "Anhang hinzufügen"
-#: part/views.py:123
+#: part/views.py:122
#, fuzzy
#| msgid "Part Attachments"
msgid "Part attachment updated"
msgstr "Anhänge"
-#: part/views.py:138
+#: part/views.py:137
#, fuzzy
#| msgid "Delete attachment"
msgid "Delete Part Attachment"
msgstr "Anhang löschen"
-#: part/views.py:144
+#: part/views.py:143
#, fuzzy
#| msgid "Delete attachment"
msgid "Deleted part attachment"
msgstr "Anhang löschen"
-#: part/views.py:152
+#: part/views.py:151
#, fuzzy
#| msgid "Select part category"
msgid "Set Part Category"
msgstr "Teilekategorie wählen"
-#: part/views.py:200
+#: part/views.py:199
#, python-brace-format
msgid "Set category for {n} parts"
msgstr "Kategorie für {n} Teile setzen"
-#: part/views.py:235
+#: part/views.py:234
#, fuzzy
#| msgid "Create new Stock Item"
msgid "Create Variant"
msgstr "Neues Lagerobjekt hinzufügen"
-#: part/views.py:305
+#: part/views.py:304
#, fuzzy
#| msgid "Supplier Part"
msgid "Duplicate Part"
msgstr "Zulieferer-Teil"
-#: part/views.py:310
+#: part/views.py:309
#, fuzzy
#| msgid "Supplier part"
msgid "Copied part"
msgstr "Zulieferer-Teil"
-#: part/views.py:421
+#: part/views.py:420
#, fuzzy
#| msgid "Create new Stock Item"
msgid "Create new part"
msgstr "Neues Lagerobjekt hinzufügen"
-#: part/views.py:426
+#: part/views.py:425
#, fuzzy
#| msgid "Created new stock item"
msgid "Created new part"
msgstr "Neues Lagerobjekt erstellt"
-#: part/views.py:605
+#: part/views.py:599
#, fuzzy
#| msgid "Part Notes"
msgid "Part QR Code"
msgstr "Teil-Bemerkungen"
-#: part/views.py:622
+#: part/views.py:616
msgid "Upload Part Image"
msgstr ""
-#: part/views.py:627 part/views.py:662
+#: part/views.py:621 part/views.py:656
msgid "Updated part image"
msgstr ""
-#: part/views.py:636
+#: part/views.py:630
#, fuzzy
#| msgid "Select part"
msgid "Select Part Image"
msgstr "Teil auswählen"
-#: part/views.py:665
+#: part/views.py:659
msgid "Part image not found"
msgstr ""
-#: part/views.py:676
+#: part/views.py:670
#, fuzzy
#| msgid "Edit notes"
msgid "Edit Part Properties"
msgstr "Bermerkungen bearbeiten"
-#: part/views.py:698
+#: part/views.py:692
msgid "Validate BOM"
msgstr ""
-#: part/views.py:860
+#: part/views.py:854
msgid "No BOM file provided"
msgstr "Keine Stückliste angegeben"
-#: part/views.py:1121
+#: part/views.py:1115
msgid "Enter a valid quantity"
msgstr "Bitte eine gültige Anzahl eingeben"
-#: part/views.py:1145 part/views.py:1148
+#: part/views.py:1139 part/views.py:1142
msgid "Select valid part"
msgstr "Bitte ein gültiges Teil auswählen"
-#: part/views.py:1154
+#: part/views.py:1148
msgid "Duplicate part selected"
msgstr "Teil doppelt ausgewählt"
-#: part/views.py:1182
+#: part/views.py:1176
msgid "Select a part"
msgstr "Teil auswählen"
-#: part/views.py:1186
+#: part/views.py:1180
msgid "Specify quantity"
msgstr "Anzahl angeben"
-#: part/views.py:1364
-msgid "Export Bill of Materials"
-msgstr ""
-
-#: part/views.py:1402
+#: part/views.py:1396
#, fuzzy
#| msgid "Confirm part creation"
msgid "Confirm Part Deletion"
msgstr "Erstellen des Teils bestätigen"
-#: part/views.py:1409
+#: part/views.py:1403
msgid "Part was deleted"
msgstr ""
-#: part/views.py:1418
+#: part/views.py:1412
#, fuzzy
#| msgid "Part packaging"
msgid "Part Pricing"
msgstr "Teile-Packaging"
-#: part/views.py:1540
+#: part/views.py:1534
#, fuzzy
#| msgid "Parameter Template"
msgid "Create Part Parameter Template"
msgstr "Parameter Vorlage"
-#: part/views.py:1548
+#: part/views.py:1542
#, fuzzy
#| msgid "Parameter Template"
msgid "Edit Part Parameter Template"
msgstr "Parameter Vorlage"
-#: part/views.py:1555
+#: part/views.py:1549
#, fuzzy
#| msgid "Parameter Template"
msgid "Delete Part Parameter Template"
msgstr "Parameter Vorlage"
-#: part/views.py:1563
+#: part/views.py:1557
msgid "Create Part Parameter"
msgstr ""
-#: part/views.py:1613
+#: part/views.py:1607
#, fuzzy
#| msgid "Edit attachment"
msgid "Edit Part Parameter"
msgstr "Anhang bearbeiten"
-#: part/views.py:1627
+#: part/views.py:1621
#, fuzzy
#| msgid "Delete attachment"
msgid "Delete Part Parameter"
msgstr "Anhang löschen"
-#: part/views.py:1643
+#: part/views.py:1637
#, fuzzy
#| msgid "Part category"
msgid "Edit Part Category"
msgstr "Teile-Kategorie"
-#: part/views.py:1678
+#: part/views.py:1672
#, fuzzy
#| msgid "Select part category"
msgid "Delete Part Category"
msgstr "Teilekategorie wählen"
-#: part/views.py:1684
+#: part/views.py:1678
#, fuzzy
#| msgid "Part category"
msgid "Part category was deleted"
msgstr "Teile-Kategorie"
-#: part/views.py:1692
+#: part/views.py:1686
#, fuzzy
#| msgid "Select part category"
msgid "Create new part category"
msgstr "Teilekategorie wählen"
-#: part/views.py:1743
+#: part/views.py:1737
#, fuzzy
#| msgid "Created new stock item"
msgid "Create BOM item"
msgstr "Neues Lagerobjekt erstellt"
-#: part/views.py:1809
+#: part/views.py:1803
#, fuzzy
#| msgid "Edit Stock Item"
msgid "Edit BOM item"
msgstr "Lagerobjekt bearbeiten"
-#: part/views.py:1857
+#: part/views.py:1851
#, fuzzy
#| msgid "Confirm build completion"
msgid "Confim BOM item deletion"
@@ -2472,7 +2907,7 @@ msgstr "Bewegung der Lagerobjekte bestätigen"
msgid "Set the destination as the default location for selected parts"
msgstr "Setze das Ziel als Standard-Ziel für ausgewählte Teile"
-#: stock/models.py:210
+#: stock/models.py:218
#, python-brace-format
msgid ""
"A stock item with this serial number already exists for template part {part}"
@@ -2480,116 +2915,170 @@ msgstr ""
"Ein Teil mit dieser Seriennummer existiert bereits für die Teilevorlage "
"{part}"
-#: stock/models.py:215
+#: stock/models.py:223
msgid "A stock item with this serial number already exists"
msgstr "Ein Teil mit dieser Seriennummer existiert bereits"
-#: stock/models.py:234
+#: stock/models.py:254
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr "Teile-Typ ('{pf}') muss {pe} sein"
-#: stock/models.py:244 stock/models.py:253
+#: stock/models.py:264 stock/models.py:273
msgid "Quantity must be 1 for item with a serial number"
msgstr "Anzahl muss für Objekte mit Seriennummer \"1\" sein"
-#: stock/models.py:245
+#: stock/models.py:265
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
"Seriennummer kann nicht gesetzt werden wenn die Anzahl größer als \"1\" ist"
-#: stock/models.py:261
+#: stock/models.py:281
msgid "Stock item cannot be created for a template Part"
msgstr "Lagerobjekt kann nicht für Vorlagen-Teile angelegt werden"
-#: stock/models.py:270
+#: stock/models.py:290
msgid "Item cannot belong to itself"
msgstr "Teil kann nicht zu sich selbst gehören"
-#: stock/models.py:311
+#: stock/models.py:327
+#, fuzzy
+#| msgid "Stock Item"
+msgid "Parent Stock Item"
+msgstr "Lagerobjekt"
+
+#: stock/models.py:335
+#, fuzzy
+#| msgid "Base part"
+msgid "Base Part"
+msgstr "Basis-Teil"
+
+#: stock/models.py:336
msgid "Base part"
msgstr "Basis-Teil"
-#: stock/models.py:319
+#: stock/models.py:346
msgid "Select a matching supplier part for this stock item"
msgstr "Passenden Zulieferer für dieses Lagerobjekt auswählen"
-#: stock/models.py:323
+#: stock/models.py:351 stock/templates/stock/stock_app_base.html:7
+#, fuzzy
+#| msgid "Stock Locations"
+msgid "Stock Location"
+msgstr "Lagerobjekt-Standorte"
+
+#: stock/models.py:354
msgid "Where is this stock item located?"
msgstr "Wo wird dieses Teil normalerweise gelagert?"
-#: stock/models.py:327
+#: stock/models.py:359
+#, fuzzy
+#| msgid "Used In"
+msgid "Installed In"
+msgstr "Benutzt in"
+
+#: stock/models.py:362
msgid "Is this item installed in another item?"
msgstr "Ist dieses Teil in einem anderen verbaut?"
-#: stock/models.py:331
-msgid "Item assigned to customer?"
-msgstr "Ist dieses Objekt einem Kunden zugeteilt?"
-
-#: stock/models.py:334
+#: stock/models.py:368
msgid "Serial number for this item"
msgstr "Seriennummer für dieses Teil"
-#: stock/models.py:339
+#: stock/models.py:380
msgid "Batch code for this stock item"
msgstr "Losnummer für dieses Lagerobjekt"
-#: stock/models.py:348
+#: stock/models.py:384
+#, fuzzy
+#| msgid "Quantity"
+msgid "Stock Quantity"
+msgstr "Anzahl"
+
+#: stock/models.py:393
+#, fuzzy
+#| msgid "Can Build"
+msgid "Source Build"
+msgstr "Herstellbar?"
+
+#: stock/models.py:395
msgid "Build for this stock item"
msgstr "Bau für dieses Lagerobjekt"
-#: stock/models.py:357
+#: stock/models.py:402
+#, fuzzy
+#| msgid "Purchase Order"
+msgid "Source Purchase Order"
+msgstr "Kaufvertrag"
+
+#: stock/models.py:405
msgid "Purchase order for this stock item"
msgstr "Bestellung für dieses Teil"
-#: stock/models.py:374
+#: stock/models.py:411
+#, fuzzy
+#| msgid "Purchase Order"
+msgid "Destination Sales Order"
+msgstr "Kaufvertrag"
+
+#: stock/models.py:418
+msgid "Destination Build Order"
+msgstr ""
+
+#: stock/models.py:431
msgid "Delete this Stock Item when stock is depleted"
msgstr "Objekt löschen wenn Lagerbestand aufgebraucht"
-#: stock/models.py:381 stock/templates/stock/item_notes.html:13
+#: stock/models.py:441 stock/templates/stock/item_notes.html:13
#: stock/templates/stock/item_notes.html:29
msgid "Stock Item Notes"
msgstr "Lagerobjekt-Notizen"
-#: stock/models.py:516
+#: stock/models.py:605
msgid "Quantity must be integer"
msgstr "Anzahl muss eine Ganzzahl sein"
-#: stock/models.py:522
+#: stock/models.py:611
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr "Anzahl darf nicht die verfügbare Anzahl überschreiten ({n})"
-#: stock/models.py:525 stock/models.py:528
+#: stock/models.py:614 stock/models.py:617
msgid "Serial numbers must be a list of integers"
msgstr "Seriennummern muss eine Liste von Ganzzahlen sein"
-#: stock/models.py:531
+#: stock/models.py:620
msgid "Quantity does not match serial numbers"
msgstr "Anzahl stimmt nicht mit den Seriennummern überein"
-#: stock/models.py:541
+#: stock/models.py:630
msgid "Serial numbers already exist: "
msgstr "Seriennummern existieren bereits:"
-#: stock/models.py:563
+#: stock/models.py:652
msgid "Add serial number"
msgstr "Seriennummer hinzufügen"
-#: stock/models.py:566
+#: stock/models.py:655
#, python-brace-format
msgid "Serialized {n} items"
msgstr "{n} Teile serialisiert"
-#: stock/models.py:866
+#: stock/models.py:752
+#, fuzzy
+#| msgid "Stock item cannot be created for a template Part"
+msgid "StockItem cannot be moved as it is not in stock"
+msgstr "Lagerobjekt kann nicht für Vorlagen-Teile angelegt werden"
+
+#: stock/models.py:961
msgid "Tracking entry title"
msgstr "Name des Eintrags-Trackings"
-#: stock/models.py:868
+#: stock/models.py:963
msgid "Entry notes"
msgstr "Eintrags-Notizen"
-#: stock/models.py:870
+#: stock/models.py:965
msgid "Link to external page for further information"
msgstr "Link auf externe Seite für weitere Informationen"
@@ -2597,12 +3086,6 @@ msgstr "Link auf externe Seite für weitere Informationen"
msgid "Stock Tracking Information"
msgstr "Informationen zum Lagerbestands-Tracking"
-#: stock/templates/stock/item_base.html:8
-#: stock/templates/stock/item_base.html:56
-#: stock/templates/stock/stock_adjust.html:16
-msgid "Stock Item"
-msgstr "Lagerobjekt"
-
#: stock/templates/stock/item_base.html:20
#, fuzzy
#| msgid "Stock Item to allocate to build"
@@ -2636,40 +3119,33 @@ msgstr ""
"Dieses Lagerobjekt wird automatisch gelöscht wenn der Lagerbestand "
"aufgebraucht ist."
-#: stock/templates/stock/item_base.html:45
-msgid "This stock item was split from "
-msgstr ""
-
-#: stock/templates/stock/item_base.html:105
+#: stock/templates/stock/item_base.html:103
msgid "Stock Item Details"
msgstr "Lagerbestands-Details"
-#: stock/templates/stock/item_base.html:119
+#: stock/templates/stock/item_base.html:117
msgid "Belongs To"
msgstr "Gehört zu"
-#: stock/templates/stock/item_base.html:125
-#: stock/templates/stock/stock_adjust.html:17
-msgid "Location"
-msgstr "Standort"
-
-#: stock/templates/stock/item_base.html:132
+#: stock/templates/stock/item_base.html:142
msgid "Unique Identifier"
msgstr ""
-#: stock/templates/stock/item_base.html:139
-msgid "Serial Number"
-msgstr "Seriennummer"
+#: stock/templates/stock/item_base.html:183
+#, fuzzy
+#| msgid "Parent Part"
+msgid "Parent Item"
+msgstr "Ausgangsteil"
-#: stock/templates/stock/item_base.html:198
+#: stock/templates/stock/item_base.html:208
msgid "Last Updated"
msgstr "Zuletzt aktualisiert"
-#: stock/templates/stock/item_base.html:203
+#: stock/templates/stock/item_base.html:213
msgid "Last Stocktake"
msgstr "Letzte Inventur"
-#: stock/templates/stock/item_base.html:207
+#: stock/templates/stock/item_base.html:217
msgid "No stocktake performed"
msgstr "Keine Inventur ausgeführt"
@@ -2683,6 +3159,30 @@ msgstr "Lagerobjekte hinzufügen"
msgid "This stock item does not have any child items"
msgstr ""
+#: stock/templates/stock/location.html:13
+#, fuzzy
+#| msgid "Add Stock Items"
+msgid "All stock items"
+msgstr "Lagerobjekte hinzufügen"
+
+#: stock/templates/stock/location.html:22
+#, fuzzy
+#| msgid "Count Stock Items"
+msgid "Count stock items"
+msgstr "Lagerobjekte zählen"
+
+#: stock/templates/stock/location.html:25
+#, fuzzy
+#| msgid "Edit Stock Location"
+msgid "Edit stock location"
+msgstr "Lagerobjekt-Standort bearbeiten"
+
+#: stock/templates/stock/location.html:28
+#, fuzzy
+#| msgid "Delete Stock Location"
+msgid "Delete stock location"
+msgstr "Standort löschen"
+
#: stock/templates/stock/location.html:37
msgid "Location Details"
msgstr "Standort-Details"
@@ -2714,12 +3214,6 @@ msgstr "Objekt-Details"
msgid "Stock Locations"
msgstr "Lagerobjekt-Standorte"
-#: stock/templates/stock/stock_app_base.html:7
-#, fuzzy
-#| msgid "Stock Locations"
-msgid "Stock Location"
-msgstr "Lagerobjekt-Standorte"
-
#: stock/templates/stock/tabs.html:8
msgid "Children"
msgstr ""
@@ -2740,135 +3234,135 @@ msgstr "QR-Code für diesen Standort"
msgid "Stock Export Options"
msgstr "Lagerbestandsexportoptionen"
-#: stock/views.py:278
+#: stock/views.py:276
msgid "Stock Item QR Code"
msgstr "Lagerobjekt-QR-Code"
-#: stock/views.py:301
+#: stock/views.py:299
msgid "Adjust Stock"
msgstr "Lagerbestand anpassen"
-#: stock/views.py:410
+#: stock/views.py:408
msgid "Move Stock Items"
msgstr "Lagerobjekte bewegen"
-#: stock/views.py:411
+#: stock/views.py:409
msgid "Count Stock Items"
msgstr "Lagerobjekte zählen"
-#: stock/views.py:412
+#: stock/views.py:410
msgid "Remove From Stock"
msgstr "Aus Lagerbestand entfernen"
-#: stock/views.py:413
+#: stock/views.py:411
msgid "Add Stock Items"
msgstr "Lagerobjekte hinzufügen"
-#: stock/views.py:414
+#: stock/views.py:412
msgid "Delete Stock Items"
msgstr "Lagerobjekte löschen"
-#: stock/views.py:442
+#: stock/views.py:440
msgid "Must enter integer value"
msgstr "Nur Ganzzahl eingeben"
-#: stock/views.py:447
+#: stock/views.py:445
msgid "Quantity must be positive"
msgstr "Anzahl muss positiv sein"
-#: stock/views.py:454
+#: stock/views.py:452
#, python-brace-format
msgid "Quantity must not exceed {x}"
msgstr "Anzahl darf {x} nicht überschreiten"
-#: stock/views.py:462
+#: stock/views.py:460
msgid "Confirm stock adjustment"
msgstr "Bestands-Anpassung bestätigen"
-#: stock/views.py:533
+#: stock/views.py:531
#, python-brace-format
msgid "Added stock to {n} items"
msgstr "Vorrat zu {n} Lagerobjekten hinzugefügt"
-#: stock/views.py:548
+#: stock/views.py:546
#, python-brace-format
msgid "Removed stock from {n} items"
msgstr "Vorrat von {n} Lagerobjekten entfernt"
-#: stock/views.py:561
+#: stock/views.py:559
#, python-brace-format
msgid "Counted stock for {n} items"
msgstr "Bestand für {n} Objekte erfasst"
-#: stock/views.py:589
+#: stock/views.py:587
msgid "No items were moved"
msgstr "Keine Lagerobjekte wurden bewegt"
-#: stock/views.py:592
+#: stock/views.py:590
#, python-brace-format
msgid "Moved {n} items to {dest}"
msgstr "{n} Teile nach {dest} bewegt"
-#: stock/views.py:611
+#: stock/views.py:609
#, python-brace-format
msgid "Deleted {n} stock items"
msgstr "{n} Teile im Lager gelöscht"
-#: stock/views.py:623
+#: stock/views.py:621
msgid "Edit Stock Item"
msgstr "Lagerobjekt bearbeiten"
-#: stock/views.py:659
+#: stock/views.py:657
msgid "Create new Stock Location"
msgstr "Neuen Lager-Standort erstellen"
-#: stock/views.py:680
+#: stock/views.py:678
msgid "Serialize Stock"
msgstr "Lagerbestand erfassen"
-#: stock/views.py:760
+#: stock/views.py:758
msgid "Create new Stock Item"
msgstr "Neues Lagerobjekt hinzufügen"
-#: stock/views.py:824
+#: stock/views.py:822
msgid "Copy Stock Item"
msgstr "Lagerobjekt kopieren"
-#: stock/views.py:892
+#: stock/views.py:893
msgid "Invalid quantity"
msgstr "Ungültige Menge"
-#: stock/views.py:895
+#: stock/views.py:896
msgid "Invalid part selection"
msgstr "Ungültige Teileauswahl"
-#: stock/views.py:942
+#: stock/views.py:943
#, fuzzy, python-brace-format
#| msgid "Created new stock item"
msgid "Created {n} new stock items"
msgstr "Neues Lagerobjekt erstellt"
-#: stock/views.py:959 stock/views.py:972
+#: stock/views.py:960 stock/views.py:973
msgid "Created new stock item"
msgstr "Neues Lagerobjekt erstellt"
-#: stock/views.py:989
+#: stock/views.py:990
msgid "Delete Stock Location"
msgstr "Standort löschen"
-#: stock/views.py:1002
+#: stock/views.py:1003
msgid "Delete Stock Item"
msgstr "Lagerobjekt löschen"
-#: stock/views.py:1013
+#: stock/views.py:1014
msgid "Delete Stock Tracking Entry"
msgstr "Lagerbestands-Tracking-Eintrag löschen"
-#: stock/views.py:1030
+#: stock/views.py:1031
msgid "Edit Stock Tracking Entry"
msgstr "Lagerbestands-Tracking-Eintrag bearbeiten"
-#: stock/views.py:1039
+#: stock/views.py:1040
msgid "Add Stock Tracking Entry"
msgstr "Lagerbestands-Tracking-Eintrag hinzufügen"
@@ -2882,6 +3376,24 @@ msgstr ""
msgid "No results found"
msgstr "Keine Seriennummern gefunden"
+#: templates/InvenTree/settings/part.html:28
+#, fuzzy
+#| msgid "Parameter Template"
+msgid "No part parameter templates found"
+msgstr "Parameter Vorlage"
+
+#: templates/InvenTree/settings/part.html:47
+#, fuzzy
+#| msgid "Parameter Template"
+msgid "Edit Template"
+msgstr "Parameter Vorlage"
+
+#: templates/InvenTree/settings/part.html:48
+#, fuzzy
+#| msgid "Parameter Template"
+msgid "Delete Template"
+msgstr "Parameter Vorlage"
+
#: templates/InvenTree/starred_parts.html:7
#, fuzzy
#| msgid "Required Parts"
@@ -2970,12 +3482,6 @@ msgstr "Status"
msgid "Search"
msgstr ""
-#: templates/stock_table.html:8
-#, fuzzy
-#| msgid "Stock Item"
-msgid "New Stock Item"
-msgstr "Lagerobjekt"
-
#: templates/stock_table.html:12
#, fuzzy
#| msgid "Add Stock Items"
@@ -3012,102 +3518,124 @@ msgstr "bestellt"
msgid "Delete Stock"
msgstr "Lagerobjekt löschen"
-#: templates/table_filters.html:22
+#: templates/table_filters.html:21
#, fuzzy
#| msgid "Include stock items in sub locations"
msgid "Include sublocations"
msgstr "Lagerobjekte in untergeordneten Lagerorten einschließen"
-#: templates/table_filters.html:23
+#: templates/table_filters.html:22
#, fuzzy
#| msgid "Include stock items in sub locations"
msgid "Include stock in sublocations"
msgstr "Lagerobjekte in untergeordneten Lagerorten einschließen"
-#: templates/table_filters.html:27
+#: templates/table_filters.html:26
#, fuzzy
#| msgid "Required Parts"
msgid "Active parts"
msgstr "benötigte Teile"
-#: templates/table_filters.html:28
+#: templates/table_filters.html:27
msgid "Show stock for active parts"
msgstr ""
-#: templates/table_filters.html:32 templates/table_filters.html:33
+#: templates/table_filters.html:31 templates/table_filters.html:32
#, fuzzy
#| msgid "Stock Details"
msgid "Stock status"
msgstr "Objekt-Details"
-#: templates/table_filters.html:37
+#: templates/table_filters.html:36
#, fuzzy
#| msgid "Allocated"
msgid "Is allocated"
msgstr "Zugeordnet"
-#: templates/table_filters.html:38
+#: templates/table_filters.html:37
msgid "Item has been alloacted"
msgstr ""
-#: templates/table_filters.html:58
+#: templates/table_filters.html:46
+msgid "Build status"
+msgstr "Bau-Status"
+
+#: templates/table_filters.html:57 templates/table_filters.html:66
#, fuzzy
#| msgid "Order Parts"
msgid "Order status"
msgstr "Teile bestellen"
-#: templates/table_filters.html:69
+#: templates/table_filters.html:77
#, fuzzy
#| msgid "Parts (Including subcategories)"
msgid "Include subcategories"
msgstr "Teile (inklusive Unter-Kategorien)"
-#: templates/table_filters.html:70
+#: templates/table_filters.html:78
#, fuzzy
#| msgid "Parts (Including subcategories)"
msgid "Include parts in subcategories"
msgstr "Teile (inklusive Unter-Kategorien)"
-#: templates/table_filters.html:74
+#: templates/table_filters.html:82
msgid "Active"
msgstr ""
-#: templates/table_filters.html:75
+#: templates/table_filters.html:83
#, fuzzy
#| msgid "Build to allocate parts"
msgid "Show active parts"
msgstr "Bau starten um Teile zuzuweisen"
-#: templates/table_filters.html:79
+#: templates/table_filters.html:87
#, fuzzy
#| msgid "Parameter Template"
msgid "Template"
msgstr "Parameter Vorlage"
-#: templates/table_filters.html:83
+#: templates/table_filters.html:91
#, fuzzy
#| msgid "Available"
msgid "Stock available"
msgstr "verfügbar"
-#: templates/table_filters.html:87
+#: templates/table_filters.html:95
#, fuzzy
#| msgid "Stock"
msgid "Low stock"
msgstr "Lagerbestand"
-#: templates/table_filters.html:99
+#: templates/table_filters.html:107
msgid "Starred"
msgstr ""
-#: templates/table_filters.html:107
+#: templates/table_filters.html:115
#, fuzzy
#| msgid "Purchaseable"
msgid "Purchasable"
msgstr "Kaufbar"
-#~ msgid "Order Items"
-#~ msgstr "Bestellungspositionen"
+#~ msgid "Allocate Stock to Build"
+#~ msgstr "Lagerbestand dem Bau zuweisen"
+
+#~ msgid "Available"
+#~ msgstr "verfügbar"
+
+#~ msgid "Required Parts"
+#~ msgstr "benötigte Teile"
+
+#~ msgid "Allocate"
+#~ msgstr "zuweisen"
+
+#~ msgid "Line"
+#~ msgstr "Position"
+
+#~ msgid "This part is not active"
+#~ msgstr "Dieses Teil ist nicht aktiv"
+
+#~ msgid "Item assigned to customer?"
+#~ msgstr "Ist dieses Objekt einem Kunden zugeteilt?"
#~ msgid "URL"
#~ msgstr "URL"
diff --git a/InvenTree/locale/en/LC_MESSAGES/django.po b/InvenTree/locale/en/LC_MESSAGES/django.po
index ee9168f369..661f3e1f01 100644
--- a/InvenTree/locale/en/LC_MESSAGES/django.po
+++ b/InvenTree/locale/en/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-04-22 23:17+0000\n"
+"POT-Creation-Date: 2020-04-28 00:43+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -42,7 +42,7 @@ msgstr ""
msgid "Unknown barcode format"
msgstr ""
-#: InvenTree/helpers.py:258 order/models.py:173 order/models.py:224
+#: InvenTree/helpers.py:258 order/models.py:150 order/models.py:224
msgid "Invalid quantity provided"
msgstr ""
@@ -78,68 +78,81 @@ msgstr ""
msgid "File comment"
msgstr ""
-#: InvenTree/settings.py:270
+#: InvenTree/settings.py:274
msgid "English"
msgstr ""
-#: InvenTree/settings.py:271
+#: InvenTree/settings.py:275
msgid "German"
msgstr ""
-#: InvenTree/settings.py:272
+#: InvenTree/settings.py:276
msgid "French"
msgstr ""
-#: InvenTree/settings.py:273
+#: InvenTree/settings.py:277
msgid "Polish"
msgstr ""
-#: InvenTree/status_codes.py:84 InvenTree/status_codes.py:172
+#: InvenTree/status_codes.py:90 InvenTree/status_codes.py:131
+#: InvenTree/status_codes.py:213
msgid "Pending"
msgstr ""
-#: InvenTree/status_codes.py:85
+#: InvenTree/status_codes.py:91
msgid "Placed"
msgstr ""
-#: InvenTree/status_codes.py:86 InvenTree/status_codes.py:175
+#: InvenTree/status_codes.py:92 InvenTree/status_codes.py:216
msgid "Complete"
msgstr ""
-#: InvenTree/status_codes.py:87 InvenTree/status_codes.py:174
+#: InvenTree/status_codes.py:93 InvenTree/status_codes.py:133
+#: InvenTree/status_codes.py:215
msgid "Cancelled"
msgstr ""
-#: InvenTree/status_codes.py:88 InvenTree/status_codes.py:135
+#: InvenTree/status_codes.py:94 InvenTree/status_codes.py:134
+#: InvenTree/status_codes.py:169
msgid "Lost"
msgstr ""
-#: InvenTree/status_codes.py:89 InvenTree/status_codes.py:137
+#: InvenTree/status_codes.py:95 InvenTree/status_codes.py:135
+#: InvenTree/status_codes.py:170
msgid "Returned"
msgstr ""
-#: InvenTree/status_codes.py:131
-msgid "OK"
-msgstr ""
-
-#: InvenTree/status_codes.py:132
-msgid "Attention needed"
-msgstr ""
-
-#: InvenTree/status_codes.py:133
-msgid "Damaged"
-msgstr ""
-
-#: InvenTree/status_codes.py:134
-msgid "Destroyed"
-msgstr ""
-
-#: InvenTree/status_codes.py:136
+#: InvenTree/status_codes.py:132 InvenTree/status_codes.py:171
+#: order/templates/order/sales_order_base.html:98
msgid "Shipped"
msgstr ""
-#: InvenTree/status_codes.py:173 build/templates/build/allocate_edit.html:28
-#: build/templates/build/allocate_view.html:21
+#: InvenTree/status_codes.py:165
+msgid "OK"
+msgstr ""
+
+#: InvenTree/status_codes.py:166
+msgid "Attention needed"
+msgstr ""
+
+#: InvenTree/status_codes.py:167
+msgid "Damaged"
+msgstr ""
+
+#: InvenTree/status_codes.py:168
+msgid "Destroyed"
+msgstr ""
+
+#: InvenTree/status_codes.py:172
+msgid "Used for Build"
+msgstr ""
+
+#: InvenTree/status_codes.py:173
+msgid "Installed in Stock Item"
+msgstr ""
+
+#: InvenTree/status_codes.py:214 build/templates/build/allocate.html:349
+#: order/templates/order/sales_order_detail.html:220
#: part/templates/part/part_base.html:114 part/templates/part/tabs.html:21
msgid "Allocated"
msgstr ""
@@ -173,191 +186,350 @@ msgstr ""
msgid "Database Statistics"
msgstr ""
-#: build/forms.py:35
+#: build/forms.py:37
msgid "Confirm"
msgstr ""
-#: build/forms.py:52 stock/forms.py:34
+#: build/forms.py:54 stock/forms.py:34
msgid "Enter unique serial numbers (or leave blank)"
msgstr ""
-#: build/forms.py:54
+#: build/forms.py:56
msgid "Confirm build completion"
msgstr ""
-#: build/models.py:54
+#: build/models.py:57 build/templates/build/build_base.html:65
+msgid "Build Title"
+msgstr ""
+
+#: build/models.py:60
msgid "Brief description of the build"
msgstr ""
-#: build/models.py:64
+#: build/models.py:68 build/templates/build/build_base.html:86
+msgid "Parent Build"
+msgstr ""
+
+#: build/models.py:69
+msgid "Parent build to which this build is allocated"
+msgstr ""
+
+#: build/models.py:74 build/templates/build/allocate.html:320
+#: build/templates/build/auto_allocate.html:18
+#: build/templates/build/build_base.html:70
+#: build/templates/build/detail.html:22 order/models.py:462
+#: order/templates/order/order_wizard/select_parts.html:30
+#: order/templates/order/purchase_order_detail.html:145
+#: part/templates/part/part_app_base.html:7
+#: part/templates/part/set_category.html:13
+msgid "Part"
+msgstr ""
+
+#: build/models.py:83
msgid "Select part to build"
msgstr ""
-#: build/models.py:70
+#: build/models.py:88
+msgid "Sales Order Reference"
+msgstr ""
+
+#: build/models.py:92
+msgid "SalesOrder to which this build is allocated"
+msgstr ""
+
+#: build/models.py:97
+msgid "Source Location"
+msgstr ""
+
+#: build/models.py:101
msgid ""
"Select location to take stock from for this build (leave blank to take from "
"any stock location)"
msgstr ""
-#: build/models.py:76
+#: build/models.py:105
+msgid "Build Quantity"
+msgstr ""
+
+#: build/models.py:108
msgid "Number of parts to build"
msgstr ""
-#: build/models.py:82 templates/table_filters.html:47
-msgid "Build status"
+#: build/models.py:112 part/templates/part/part_base.html:131
+msgid "Build Status"
msgstr ""
-#: build/models.py:85
+#: build/models.py:116
+msgid "Build status code"
+msgstr ""
+
+#: build/models.py:120 stock/models.py:378
+msgid "Batch Code"
+msgstr ""
+
+#: build/models.py:124
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:97 stock/models.py:336
+#: build/models.py:139 build/templates/build/detail.html:55
+#: company/templates/company/supplier_part_base.html:57
+#: company/templates/company/supplier_part_detail.html:24
+#: part/templates/part/detail.html:67 part/templates/part/part_base.html:85
+#: stock/models.py:372 stock/templates/stock/item_base.html:190
+msgid "External Link"
+msgstr ""
+
+#: build/models.py:140 stock/models.py:374
msgid "Link to external URL"
msgstr ""
-#: build/models.py:99
+#: build/models.py:144 build/templates/build/tabs.html:14 company/models.py:302
+#: company/templates/company/tabs.html:26 order/templates/order/po_tabs.html:15
+#: order/templates/order/purchase_order_detail.html:200
+#: order/templates/order/so_tabs.html:23 part/templates/part/tabs.html:63
+#: stock/models.py:440 stock/templates/stock/tabs.html:17
+msgid "Notes"
+msgstr ""
+
+#: build/models.py:145
msgid "Extra build notes"
msgstr ""
-#: build/models.py:388
+#: build/models.py:451
#, python-brace-format
msgid "Selected stock item not found in BOM for part '{p}'"
msgstr ""
-#: build/models.py:391
+#: build/models.py:454
#, python-brace-format
msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
msgstr ""
-#: build/models.py:397 order/models.py:448
+#: build/models.py:460 order/models.py:546
msgid "StockItem is over-allocated"
msgstr ""
-#: build/models.py:400 order/models.py:451
+#: build/models.py:463 order/models.py:549
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:403
+#: build/models.py:466
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:418
+#: build/models.py:496
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:425
+#: build/models.py:503
msgid "Stock Item to allocate to build"
msgstr ""
-#: build/models.py:433
+#: build/models.py:516
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/templates/build/allocate_edit.html:5
-msgid "Allocate Stock to Build"
-msgstr ""
-
-#: build/templates/build/allocate_edit.html:10
-msgid "Auto Allocate"
-msgstr ""
-
-#: build/templates/build/allocate_edit.html:11
-msgid "Unallocate"
-msgstr ""
-
-#: build/templates/build/allocate_edit.html:19
-#: build/templates/build/allocate_view.html:17
-#: build/templates/build/detail.html:22 order/models.py:385
-#: order/templates/order/order_wizard/select_parts.html:30
-#: order/templates/order/purchase_order_detail.html:26
-#: part/templates/part/part_app_base.html:7
-msgid "Part"
-msgstr ""
-
-#: build/templates/build/allocate_edit.html:22
-#: build/templates/build/allocate_view.html:19
-msgid "Available"
-msgstr ""
-
-#: build/templates/build/allocate_edit.html:25
-#: build/templates/build/allocate_view.html:20
-msgid "Required"
-msgstr ""
-
-#: build/templates/build/allocate_view.html:4
-msgid "Required Parts"
-msgstr ""
-
-#: build/templates/build/allocate_view.html:9
-msgid "Allocate"
-msgstr ""
-
-#: build/templates/build/allocate_view.html:10
-#: company/templates/company/detail_part.html:18 order/views.py:671
+#: build/templates/build/allocate.html:17
+#: company/templates/company/detail_part.html:18 order/views.py:743
msgid "Order Parts"
msgstr ""
-#: build/templates/build/allocate_view.html:18
-#: company/templates/company/supplier_part_base.html:50
-#: company/templates/company/supplier_part_detail.html:27
-#: order/templates/order/purchase_order_detail.html:27
-#: part/templates/part/detail.html:38
-msgid "Description"
+#: build/templates/build/allocate.html:18
+msgid "Automatically allocate stock"
msgstr ""
-#: build/templates/build/allocate_view.html:22
-#: part/templates/part/part_base.html:121
-msgid "On Order"
+#: build/templates/build/allocate.html:18
+msgid "Auto Allocate"
msgstr ""
-#: build/templates/build/build_base.html:8
-#: build/templates/build/build_base.html:21 part/templates/part/tabs.html:28
-#: stock/templates/stock/item_base.html:159 templates/navbar.html:12
-msgid "Build"
+#: build/templates/build/allocate.html:19
+msgid "Unallocate"
msgstr ""
-#: build/templates/build/build_base.html:48 build/templates/build/detail.html:9
-msgid "Build Details"
+#: build/templates/build/allocate.html:78 templates/stock_table.html:8
+msgid "New Stock Item"
msgstr ""
-#: build/templates/build/build_base.html:52
-msgid "Build Title"
+#: build/templates/build/allocate.html:161
+#: order/templates/order/sales_order_detail.html:68
+#: order/templates/order/sales_order_detail.html:150 stock/models.py:366
+#: stock/templates/stock/item_base.html:149
+msgid "Serial Number"
msgstr ""
-#: build/templates/build/build_base.html:62
+#: build/templates/build/allocate.html:163
+#: build/templates/build/auto_allocate.html:19
+#: build/templates/build/build_base.html:75
#: build/templates/build/detail.html:27
#: company/templates/company/supplier_part_pricing.html:27
#: order/templates/order/order_wizard/select_parts.html:32
-#: order/templates/order/purchase_order_detail.html:30
+#: order/templates/order/purchase_order_detail.html:175
+#: order/templates/order/sales_order_detail.html:70
+#: order/templates/order/sales_order_detail.html:152
+#: part/templates/part/allocation.html:16
+#: part/templates/part/allocation.html:49
#: stock/templates/stock/item_base.html:20
#: stock/templates/stock/item_base.html:26
-#: stock/templates/stock/item_base.html:145
+#: stock/templates/stock/item_base.html:155
#: stock/templates/stock/stock_adjust.html:18
msgid "Quantity"
msgstr ""
-#: build/templates/build/build_base.html:67
-#: build/templates/build/detail.html:42
-#: stock/templates/stock/item_base.html:212
-msgid "Status"
+#: build/templates/build/allocate.html:177
+#: build/templates/build/auto_allocate.html:20
+#: stock/templates/stock/item_base.html:135
+#: stock/templates/stock/stock_adjust.html:17
+msgid "Location"
msgstr ""
-#: build/templates/build/build_base.html:72
-msgid "BOM Price"
+#: build/templates/build/allocate.html:201
+#: order/templates/order/sales_order_detail.html:92
+msgid "Edit stock allocation"
msgstr ""
-#: build/templates/build/build_base.html:77
-msgid "BOM pricing is incomplete"
+#: build/templates/build/allocate.html:202
+#: order/templates/order/sales_order_detail.html:93
+msgid "Delete stock allocation"
+msgstr ""
+
+#: build/templates/build/allocate.html:229
+msgid "No BOM items found"
+msgstr ""
+
+#: build/templates/build/allocate.html:328
+#: company/templates/company/supplier_part_base.html:50
+#: company/templates/company/supplier_part_detail.html:27
+#: order/templates/order/purchase_order_detail.html:157
+#: part/templates/part/detail.html:38 part/templates/part/set_category.html:14
+msgid "Description"
+msgstr ""
+
+#: build/templates/build/allocate.html:333
+#: order/templates/order/purchase_order_detail.html:170
+msgid "Reference"
+msgstr ""
+
+#: build/templates/build/allocate.html:338
+msgid "Required"
+msgstr ""
+
+#: build/templates/build/allocate.html:347
+msgid "Assigned"
+msgstr ""
+
+#: build/templates/build/allocate.html:385
+#: order/templates/order/sales_order_detail.html:270
+msgid "Buy parts"
+msgstr ""
+
+#: build/templates/build/allocate.html:389
+#: order/templates/order/sales_order_detail.html:274
+msgid "Build parts"
+msgstr ""
+
+#: build/templates/build/allocate.html:392
+msgid "Allocate stock"
+msgstr ""
+
+#: build/templates/build/auto_allocate.html:8
+msgid "Automatically Allocate Stock"
+msgstr ""
+
+#: build/templates/build/auto_allocate.html:9
+msgid ""
+"Stock Items are selected for automatic allocation if there is only a single "
+"stock item available."
+msgstr ""
+
+#: build/templates/build/auto_allocate.html:10
+msgid "The following stock items will be allocated to the build:"
+msgstr ""
+
+#: build/templates/build/auto_allocate.html:39
+msgid "No stock items found that can be allocated to this build"
+msgstr ""
+
+#: build/templates/build/build_base.html:8
+#: build/templates/build/build_base.html:34
+#: build/templates/build/complete.html:6
+#: stock/templates/stock/item_base.html:169 templates/navbar.html:12
+msgid "Build"
+msgstr ""
+
+#: build/templates/build/build_base.html:14
+msgid "This build is allocated to Sales Order"
+msgstr ""
+
+#: build/templates/build/build_base.html:19
+msgid "This build is a child of Build"
+msgstr ""
+
+#: build/templates/build/build_base.html:61 build/templates/build/detail.html:9
+msgid "Build Details"
msgstr ""
#: build/templates/build/build_base.html:80
+#: build/templates/build/detail.html:42
+#: stock/templates/stock/item_base.html:222
+msgid "Status"
+msgstr ""
+
+#: build/templates/build/build_base.html:93 order/models.py:460
+#: order/templates/order/sales_order_base.html:9
+#: order/templates/order/sales_order_base.html:33
+#: order/templates/order/sales_order_notes.html:10
+#: order/templates/order/sales_order_ship.html:25
+#: part/templates/part/allocation.html:27
+#: stock/templates/stock/item_base.html:123
+msgid "Sales Order"
+msgstr ""
+
+#: build/templates/build/build_base.html:99
+msgid "BOM Price"
+msgstr ""
+
+#: build/templates/build/build_base.html:104
+msgid "BOM pricing is incomplete"
+msgstr ""
+
+#: build/templates/build/build_base.html:107
msgid "No pricing information"
msgstr ""
-#: build/templates/build/build_output.html:9
+#: build/templates/build/build_output.html:9 build/templates/build/tabs.html:11
msgid "Build Outputs"
msgstr ""
+#: build/templates/build/complete.html:10
+msgid "Build order allocation is complete"
+msgstr ""
+
+#: build/templates/build/complete.html:14
+msgid "Warning: Build order allocation is not complete"
+msgstr ""
+
+#: build/templates/build/complete.html:15
+msgid ""
+"Build Order has not been fully allocated. Ensure that all Stock Items have "
+"been allocated to the Build"
+msgstr ""
+
+#: build/templates/build/complete.html:20
+msgid "The following actions will be performed:"
+msgstr ""
+
+#: build/templates/build/complete.html:22
+msgid "Remove allocated items from stock"
+msgstr ""
+
+#: build/templates/build/complete.html:23
+msgid "Add completed items to stock"
+msgstr ""
+
+#: build/templates/build/complete.html:29
+msgid "The following items will be created"
+msgstr ""
+
#: build/templates/build/delete_build_item.html:6
msgid "Are you sure you want to unallocate these parts?"
msgstr ""
@@ -375,21 +547,13 @@ msgid "Stock can be taken from any available location."
msgstr ""
#: build/templates/build/detail.html:48
-#: stock/templates/stock/item_base.html:152
+#: stock/templates/stock/item_base.html:162
msgid "Batch"
msgstr ""
-#: build/templates/build/detail.html:55
-#: company/templates/company/supplier_part_base.html:57
-#: company/templates/company/supplier_part_detail.html:24
-#: part/templates/part/detail.html:67 part/templates/part/part_base.html:85
-#: stock/templates/stock/item_base.html:180
-msgid "External Link"
-msgstr ""
-
#: build/templates/build/detail.html:61
#: order/templates/order/order_base.html:93
-#: order/templates/order/sales_order_base.html:82
+#: order/templates/order/sales_order_base.html:92
msgid "Created"
msgstr ""
@@ -409,6 +573,16 @@ msgstr ""
msgid "Completed"
msgstr ""
+#: build/templates/build/index.html:6 build/templates/build/index.html:14
+#: order/templates/order/so_builds.html:11 order/templates/order/so_tabs.html:9
+#: part/templates/part/tabs.html:28
+msgid "Build Orders"
+msgstr ""
+
+#: build/templates/build/index.html:24
+msgid "New Build Order"
+msgstr ""
+
#: build/templates/build/notes.html:13 build/templates/build/notes.html:30
msgid "Build Notes"
msgstr ""
@@ -433,18 +607,7 @@ msgid "Details"
msgstr ""
#: build/templates/build/tabs.html:8
-msgid "Outputs"
-msgstr ""
-
-#: build/templates/build/tabs.html:11 company/models.py:302
-#: company/templates/company/tabs.html:26 order/templates/order/po_tabs.html:15
-#: order/templates/order/so_tabs.html:15 part/templates/part/tabs.html:63
-#: stock/templates/stock/tabs.html:17
-msgid "Notes"
-msgstr ""
-
-#: build/templates/build/tabs.html:14
-msgid "Assign Parts"
+msgid "Allocated Parts"
msgstr ""
#: build/templates/build/unallocate.html:8
@@ -479,7 +642,7 @@ msgstr ""
msgid "Check the confirmation box at the bottom of the list"
msgstr ""
-#: build/views.py:148 build/views.py:442
+#: build/views.py:148 build/views.py:446
msgid "Unallocate Stock"
msgstr ""
@@ -503,48 +666,48 @@ msgstr ""
msgid "Invalid location selected"
msgstr ""
-#: build/views.py:290 stock/views.py:916
+#: build/views.py:290 stock/views.py:917
#, python-brace-format
msgid "The following serial numbers already exist: ({sn})"
msgstr ""
-#: build/views.py:309
+#: build/views.py:311
msgid "Build marked as COMPLETE"
msgstr ""
-#: build/views.py:385
+#: build/views.py:387
msgid "Start new Build"
msgstr ""
-#: build/views.py:408
+#: build/views.py:412
msgid "Created new build"
msgstr ""
-#: build/views.py:418
+#: build/views.py:422
msgid "Edit Build Details"
msgstr ""
-#: build/views.py:423
+#: build/views.py:427
msgid "Edited build"
msgstr ""
-#: build/views.py:432
+#: build/views.py:436
msgid "Delete Build"
msgstr ""
-#: build/views.py:447
+#: build/views.py:451
msgid "Removed parts from build allocation"
msgstr ""
-#: build/views.py:457
+#: build/views.py:461
msgid "Allocate new Part"
msgstr ""
-#: build/views.py:573
+#: build/views.py:614
msgid "Edit Stock Allocation"
msgstr ""
-#: build/views.py:577
+#: build/views.py:618
msgid "Updated Build Item"
msgstr ""
@@ -714,16 +877,15 @@ msgstr ""
#: company/templates/company/detail.html:21
#: company/templates/company/supplier_part_base.html:63
-#: company/templates/company/supplier_part_detail.html:21 order/models.py:138
+#: company/templates/company/supplier_part_detail.html:21 order/models.py:111
#: order/templates/order/order_base.html:74
#: order/templates/order/order_wizard/select_pos.html:30
-#: stock/templates/stock/item_base.html:187
+#: stock/templates/stock/item_base.html:197
msgid "Supplier"
msgstr ""
#: company/templates/company/detail.html:26 order/models.py:275
-#: order/templates/order/sales_order_base.html:63
-#: stock/templates/stock/item_base.html:173
+#: order/templates/order/sales_order_base.html:73
msgid "Customer"
msgstr ""
@@ -732,7 +894,8 @@ msgid "Supplier Parts"
msgstr ""
#: company/templates/company/detail_part.html:13
-#: part/templates/part/stock.html:81
+#: order/templates/order/purchase_order_detail.html:67
+#: part/templates/part/stock.html:82
msgid "New Supplier Part"
msgstr ""
@@ -745,7 +908,7 @@ msgid "Delete Parts"
msgstr ""
#: company/templates/company/detail_part.html:43
-#: part/templates/part/stock.html:75
+#: part/templates/part/stock.html:76
msgid "New Part"
msgstr ""
@@ -753,19 +916,19 @@ msgstr ""
msgid "Create new Part"
msgstr ""
-#: company/templates/company/detail_part.html:49 company/views.py:52
+#: company/templates/company/detail_part.html:49 company/views.py:51
msgid "New Supplier"
msgstr ""
-#: company/templates/company/detail_part.html:50 company/views.py:184
+#: company/templates/company/detail_part.html:50 company/views.py:182
msgid "Create new Supplier"
msgstr ""
-#: company/templates/company/detail_part.html:55 company/views.py:58
+#: company/templates/company/detail_part.html:55 company/views.py:57
msgid "New Manufacturer"
msgstr ""
-#: company/templates/company/detail_part.html:56 company/views.py:187
+#: company/templates/company/detail_part.html:56 company/views.py:185
msgid "Create new Manufacturer"
msgstr ""
@@ -775,7 +938,7 @@ msgstr ""
#: company/templates/company/detail_stock.html:34
#: company/templates/company/supplier_part_stock.html:38
-#: part/templates/part/stock.html:53 templates/stock_table.html:5
+#: part/templates/part/stock.html:54 templates/stock_table.html:5
msgid "Export"
msgstr ""
@@ -831,11 +994,19 @@ msgid "New Sales Order"
msgstr ""
#: company/templates/company/supplier_part_base.html:6
-#: company/templates/company/supplier_part_base.html:19
-#: stock/templates/stock/item_base.html:192
+#: company/templates/company/supplier_part_base.html:19 stock/models.py:345
+#: stock/templates/stock/item_base.html:202
msgid "Supplier Part"
msgstr ""
+#: company/templates/company/supplier_part_base.html:23
+msgid "Edit supplier part"
+msgstr ""
+
+#: company/templates/company/supplier_part_base.html:26
+msgid "Delete supplier part"
+msgstr ""
+
#: company/templates/company/supplier_part_base.html:35
#: company/templates/company/supplier_part_detail.html:11
msgid "Supplier Part Details"
@@ -858,7 +1029,6 @@ msgstr ""
#: company/templates/company/supplier_part_base.html:84
#: company/templates/company/supplier_part_detail.html:34
-#: order/templates/order/purchase_order_detail.html:34
msgid "Note"
msgstr ""
@@ -899,12 +1069,14 @@ msgid "Supplier Part Stock"
msgstr ""
#: company/templates/company/supplier_part_stock.html:61
-#: part/templates/part/stock.html:90
+#: order/templates/order/purchase_order_detail.html:38
+#: order/templates/order/purchase_order_detail.html:118
+#: part/templates/part/stock.html:91
msgid "New Location"
msgstr ""
#: company/templates/company/supplier_part_stock.html:62
-#: part/templates/part/stock.html:91
+#: part/templates/part/stock.html:92
msgid "Create New Location"
msgstr ""
@@ -914,7 +1086,7 @@ msgstr ""
#: company/templates/company/supplier_part_tabs.html:8
#: company/templates/company/tabs.html:12 part/templates/part/tabs.html:17
-#: templates/navbar.html:11
+#: stock/templates/stock/location.html:12 templates/navbar.html:11
msgid "Stock"
msgstr ""
@@ -927,88 +1099,88 @@ msgstr ""
msgid "Parts"
msgstr ""
-#: company/views.py:51 part/templates/part/tabs.html:37
+#: company/views.py:50 part/templates/part/tabs.html:37
#: templates/navbar.html:16
msgid "Suppliers"
msgstr ""
-#: company/views.py:57 templates/navbar.html:17
+#: company/views.py:56 templates/navbar.html:17
msgid "Manufacturers"
msgstr ""
-#: company/views.py:63 templates/navbar.html:24
+#: company/views.py:62 templates/navbar.html:24
msgid "Customers"
msgstr ""
-#: company/views.py:64
+#: company/views.py:63
msgid "New Customer"
msgstr ""
-#: company/views.py:71
+#: company/views.py:70
msgid "Companies"
msgstr ""
-#: company/views.py:72
+#: company/views.py:71
msgid "New Company"
msgstr ""
-#: company/views.py:149
+#: company/views.py:147
msgid "Update Company Image"
msgstr ""
-#: company/views.py:154
+#: company/views.py:152
msgid "Updated company image"
msgstr ""
-#: company/views.py:164
+#: company/views.py:162
msgid "Edit Company"
msgstr ""
-#: company/views.py:168
+#: company/views.py:166
msgid "Edited company information"
msgstr ""
-#: company/views.py:190
+#: company/views.py:188
msgid "Create new Customer"
msgstr ""
-#: company/views.py:192
+#: company/views.py:190
msgid "Create new Company"
msgstr ""
-#: company/views.py:219
+#: company/views.py:217
msgid "Created new company"
msgstr ""
-#: company/views.py:229
+#: company/views.py:227
msgid "Delete Company"
msgstr ""
-#: company/views.py:234
+#: company/views.py:232
msgid "Company was deleted"
msgstr ""
-#: company/views.py:259
+#: company/views.py:256
msgid "Edit Supplier Part"
msgstr ""
-#: company/views.py:268 part/templates/part/stock.html:82
+#: company/views.py:265 part/templates/part/stock.html:83
msgid "Create new Supplier Part"
msgstr ""
-#: company/views.py:328
+#: company/views.py:325
msgid "Delete Supplier Part"
msgstr ""
-#: company/views.py:398
+#: company/views.py:395
msgid "Add Price Break"
msgstr ""
-#: company/views.py:440
+#: company/views.py:437
msgid "Edit Price Break"
msgstr ""
-#: company/views.py:455
+#: company/views.py:452
msgid "Delete Price Break"
msgstr ""
@@ -1020,11 +1192,16 @@ msgstr ""
msgid "Mark order as complete"
msgstr ""
-#: order/forms.py:46
+#: order/forms.py:46 order/forms.py:57
+#: order/templates/order/sales_order_base.html:49
msgid "Cancel order"
msgstr ""
-#: order/forms.py:57
+#: order/forms.py:68 order/templates/order/sales_order_base.html:46
+msgid "Ship order"
+msgstr ""
+
+#: order/forms.py:79
msgid "Receive parts to this location"
msgstr ""
@@ -1040,20 +1217,20 @@ msgstr ""
msgid "Link to external page"
msgstr ""
-#: order/models.py:92
+#: order/models.py:85
msgid "Order notes"
msgstr ""
-#: order/models.py:141
+#: order/models.py:114
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:171 order/models.py:222 part/views.py:1119
-#: stock/models.py:519
+#: order/models.py:148 order/models.py:222 part/views.py:1113
+#: stock/models.py:608
msgid "Quantity must be greater than zero"
msgstr ""
-#: order/models.py:176
+#: order/models.py:153
msgid "Part supplier must match PO supplier"
msgstr ""
@@ -1061,63 +1238,61 @@ msgstr ""
msgid "Lines can only be received against an order marked as 'Placed'"
msgstr ""
-#: order/models.py:278
+#: order/models.py:281
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:324
+#: order/models.py:320
+msgid "SalesOrder cannot be shipped as it is not currently pending"
+msgstr ""
+
+#: order/models.py:397
msgid "Item quantity"
msgstr ""
-#: order/models.py:326
+#: order/models.py:399
msgid "Line item reference"
msgstr ""
-#: order/models.py:328
+#: order/models.py:401
msgid "Line item notes"
msgstr ""
-#: order/models.py:354 order/templates/order/order_base.html:9
+#: order/models.py:427 order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:23
-#: stock/templates/stock/item_base.html:166
+#: stock/templates/stock/item_base.html:176
msgid "Purchase Order"
msgstr ""
-#: order/models.py:363
+#: order/models.py:440
msgid "Supplier part"
msgstr ""
-#: order/models.py:366
+#: order/models.py:443
msgid "Number of items received"
msgstr ""
-#: order/models.py:383 order/templates/order/sales_order_base.html:9
-#: order/templates/order/sales_order_base.html:31
-#: order/templates/order/sales_order_notes.html:10
-msgid "Sales Order"
-msgstr ""
-
-#: order/models.py:440
+#: order/models.py:537
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:442
+#: order/models.py:539
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:445
+#: order/models.py:542
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:454
+#: order/models.py:552
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:466
+#: order/models.py:569
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:469
+#: order/models.py:572
msgid "Enter stock allocation quantity"
msgstr ""
@@ -1131,12 +1306,12 @@ msgid "Purchase Order Details"
msgstr ""
#: order/templates/order/order_base.html:64
-#: order/templates/order/sales_order_base.html:53
+#: order/templates/order/sales_order_base.html:63
msgid "Order Reference"
msgstr ""
#: order/templates/order/order_base.html:69
-#: order/templates/order/sales_order_base.html:58
+#: order/templates/order/sales_order_base.html:68
msgid "Order Status"
msgstr ""
@@ -1145,16 +1320,20 @@ msgid "Supplier Reference"
msgstr ""
#: order/templates/order/order_base.html:99
-#: order/templates/order/sales_order_base.html:88
msgid "Issued"
msgstr ""
#: order/templates/order/order_base.html:106
-#: order/templates/order/purchase_order_detail.html:32
-#: order/templates/order/sales_order_base.html:95
+#: order/templates/order/purchase_order_detail.html:180
+#: order/templates/order/sales_order_base.html:105
msgid "Received"
msgstr ""
+#: order/templates/order/order_cancel.html:7
+#: order/templates/order/sales_order_cancel.html:9
+msgid "Cancelling this order means that the order will no longer be editable."
+msgstr ""
+
#: order/templates/order/order_notes.html:13
#: order/templates/order/order_notes.html:29
#: order/templates/order/sales_order_notes.html:18
@@ -1191,7 +1370,7 @@ msgid "Select existing purchase orders, or create new orders."
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:31
-#: order/templates/order/po_tabs.html:5 order/templates/order/so_tabs.html:5
+#: order/templates/order/po_tabs.html:5
msgid "Items"
msgstr ""
@@ -1227,7 +1406,7 @@ msgstr ""
#: order/templates/order/po_attachments.html:36
#: order/templates/order/so_attachments.html:36
-#: part/templates/part/attachments.html:34 part/views.py:119
+#: part/templates/part/attachments.html:34 part/views.py:118
msgid "Edit attachment"
msgstr ""
@@ -1237,14 +1416,14 @@ msgstr ""
msgid "Delete attachment"
msgstr ""
-#: order/templates/order/po_tabs.html:8 order/templates/order/so_tabs.html:8
+#: order/templates/order/po_tabs.html:8 order/templates/order/so_tabs.html:16
#: part/templates/part/tabs.html:60
msgid "Attachments"
msgstr ""
#: order/templates/order/purchase_order_detail.html:16
-#: order/templates/order/sales_order_detail.html:17 order/views.py:970
-#: order/views.py:1084
+#: order/templates/order/sales_order_detail.html:17 order/views.py:1042
+#: order/views.py:1156
msgid "Add Line Item"
msgstr ""
@@ -1252,191 +1431,253 @@ msgstr ""
msgid "Purchase Order Items"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:25
-msgid "Line"
+#: order/templates/order/purchase_order_detail.html:39
+#: order/templates/order/purchase_order_detail.html:119
+#: stock/templates/stock/location.html:17
+msgid "Create new stock location"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:28
+#: order/templates/order/purchase_order_detail.html:68
+msgid "Create new supplier part"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:130
+msgid "No line items found"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:162
msgid "Order Code"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:29
-msgid "Reference"
+#: order/templates/order/purchase_order_detail.html:211
+#: order/templates/order/sales_order_detail.html:280
+msgid "Edit line item"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:212
+msgid "Delete line item"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:217
+msgid "Receive line item"
msgstr ""
#: order/templates/order/sales_order_base.html:15
msgid "This SalesOrder has not been fully allocated"
msgstr ""
-#: order/templates/order/sales_order_base.html:40
+#: order/templates/order/sales_order_base.html:42
msgid "Packing List"
msgstr ""
-#: order/templates/order/sales_order_base.html:48
+#: order/templates/order/sales_order_base.html:58
msgid "Sales Order Details"
msgstr ""
-#: order/templates/order/sales_order_base.html:69
+#: order/templates/order/sales_order_base.html:79
msgid "Customer Reference"
msgstr ""
+#: order/templates/order/sales_order_cancel.html:8
+#: order/templates/order/sales_order_ship.html:9
+msgid "Warning"
+msgstr ""
+
#: order/templates/order/sales_order_detail.html:14
msgid "Sales Order Items"
msgstr ""
-#: order/templates/order/sales_order_detail.html:90
-msgid "Edit stock allocation"
+#: order/templates/order/sales_order_detail.html:222
+msgid "Fulfilled"
msgstr ""
-#: order/templates/order/sales_order_detail.html:91
-msgid "Delete stock allocation"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:178
-msgid "Buy parts"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:182
-msgid "Build parts"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:185
+#: order/templates/order/sales_order_detail.html:277
msgid "Allocate parts"
msgstr ""
-#: order/templates/order/sales_order_detail.html:189
-msgid "Edit line item"
+#: order/templates/order/sales_order_detail.html:281
+msgid "Delete line item "
msgstr ""
-#: order/templates/order/sales_order_detail.html:190
-msgid "Delete line item "
+#: order/templates/order/sales_order_ship.html:10
+msgid ""
+"This order has not been fully allocated. If the order is marked as shipped, "
+"it can no longer be adjusted."
+msgstr ""
+
+#: order/templates/order/sales_order_ship.html:12
+msgid "Ensure that the order allocation is correct before shipping the order."
+msgstr ""
+
+#: order/templates/order/sales_order_ship.html:18
+msgid "Some line items in this order have been over-allocated"
+msgstr ""
+
+#: order/templates/order/sales_order_ship.html:20
+msgid "Ensure that this is correct before shipping the order."
+msgstr ""
+
+#: order/templates/order/sales_order_ship.html:27
+msgid "Shipping this order means that the order will no longer be editable."
+msgstr ""
+
+#: order/templates/order/so_allocation_delete.html:7
+msgid "This action will unallocate the following stock from the Sales Order"
msgstr ""
#: order/templates/order/so_attachments.html:11
msgid "Sales Order Attachments"
msgstr ""
-#: order/views.py:97
+#: order/templates/order/so_lineitem_delete.html:5
+msgid "Are you sure you wish to delete this line item?"
+msgstr ""
+
+#: order/templates/order/so_tabs.html:5
+msgid "Order Items"
+msgstr ""
+
+#: order/views.py:93
msgid "Add Purchase Order Attachment"
msgstr ""
-#: order/views.py:102 order/views.py:142 part/views.py:80
+#: order/views.py:98 order/views.py:138 part/views.py:79
msgid "Added attachment"
msgstr ""
-#: order/views.py:138
+#: order/views.py:134
msgid "Add Sales Order Attachment"
msgstr ""
-#: order/views.py:166 order/views.py:187
+#: order/views.py:162 order/views.py:183
msgid "Edit Attachment"
msgstr ""
-#: order/views.py:170 order/views.py:191
+#: order/views.py:166 order/views.py:187
msgid "Attachment updated"
msgstr ""
-#: order/views.py:206 order/views.py:220
+#: order/views.py:202 order/views.py:216
msgid "Delete Attachment"
msgstr ""
-#: order/views.py:212 order/views.py:226
+#: order/views.py:208 order/views.py:222
msgid "Deleted attachment"
msgstr ""
-#: order/views.py:277
+#: order/views.py:273
msgid "Create Purchase Order"
msgstr ""
-#: order/views.py:307
+#: order/views.py:303
msgid "Create Sales Order"
msgstr ""
-#: order/views.py:336
+#: order/views.py:332
msgid "Edit Purchase Order"
msgstr ""
-#: order/views.py:356
+#: order/views.py:352
msgid "Edit Sales Order"
msgstr ""
-#: order/views.py:372
+#: order/views.py:368
msgid "Cancel Order"
msgstr ""
-#: order/views.py:387
+#: order/views.py:383 order/views.py:415
msgid "Confirm order cancellation"
msgstr ""
-#: order/views.py:405
+#: order/views.py:401
+msgid "Cancel sales order"
+msgstr ""
+
+#: order/views.py:421
+msgid "Could not cancel order"
+msgstr ""
+
+#: order/views.py:435
msgid "Issue Order"
msgstr ""
-#: order/views.py:420
+#: order/views.py:450
msgid "Confirm order placement"
msgstr ""
-#: order/views.py:441
+#: order/views.py:471
msgid "Complete Order"
msgstr ""
-#: order/views.py:507
+#: order/views.py:506
+msgid "Ship Order"
+msgstr ""
+
+#: order/views.py:522
+msgid "Confirm order shipment"
+msgstr ""
+
+#: order/views.py:528
+msgid "Could not ship order"
+msgstr ""
+
+#: order/views.py:579
msgid "Receive Parts"
msgstr ""
-#: order/views.py:574
+#: order/views.py:646
msgid "Items received"
msgstr ""
-#: order/views.py:588
+#: order/views.py:660
msgid "No destination set"
msgstr ""
-#: order/views.py:619
+#: order/views.py:691
msgid "Error converting quantity to number"
msgstr ""
-#: order/views.py:625
+#: order/views.py:697
msgid "Receive quantity less than zero"
msgstr ""
-#: order/views.py:631
+#: order/views.py:703
msgid "No lines specified"
msgstr ""
-#: order/views.py:990
+#: order/views.py:1062
msgid "Invalid Purchase Order"
msgstr ""
-#: order/views.py:998
+#: order/views.py:1070
msgid "Supplier must match for Part and Order"
msgstr ""
-#: order/views.py:1003
+#: order/views.py:1075
msgid "Invalid SupplierPart selection"
msgstr ""
-#: order/views.py:1123 order/views.py:1141
+#: order/views.py:1207 order/views.py:1225
msgid "Edit Line Item"
msgstr ""
-#: order/views.py:1157 order/views.py:1169
+#: order/views.py:1241 order/views.py:1253
msgid "Delete Line Item"
msgstr ""
-#: order/views.py:1162 order/views.py:1174
+#: order/views.py:1246 order/views.py:1258
msgid "Deleted line item"
msgstr ""
-#: order/views.py:1183
+#: order/views.py:1267
msgid "Allocate Stock to Order"
msgstr ""
-#: order/views.py:1252
+#: order/views.py:1336
msgid "Edit Allocation Quantity"
msgstr ""
-#: order/views.py:1267
+#: order/views.py:1351
msgid "Remove allocation"
msgstr ""
@@ -1497,179 +1738,236 @@ msgstr ""
msgid "Select currency for price calculation"
msgstr ""
-#: part/models.py:61
+#: part/models.py:64
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:64
+#: part/models.py:67
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:338
+#: part/models.py:341
msgid "Part must be unique for name, IPN and revision"
msgstr ""
-#: part/models.py:352
+#: part/models.py:355
msgid "Part cannot be a template part if it is a variant of another part"
msgstr ""
-#: part/models.py:353
+#: part/models.py:356
msgid "Part cannot be a variant of another part if it is already a template"
msgstr ""
-#: part/models.py:357 part/templates/part/detail.html:19
+#: part/models.py:360 part/templates/part/detail.html:19
msgid "Part name"
msgstr ""
-#: part/models.py:361
+#: part/models.py:364
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:370
+#: part/models.py:373
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:372
+#: part/models.py:375
msgid "Part description"
msgstr ""
-#: part/models.py:374
+#: part/models.py:377
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:379
+#: part/models.py:382
msgid "Part category"
msgstr ""
-#: part/models.py:381
+#: part/models.py:384
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:383
+#: part/models.py:386
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:385
+#: part/models.py:388
msgid "Link to extenal URL"
msgstr ""
-#: part/models.py:397
+#: part/models.py:400
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:441
+#: part/models.py:444
msgid "Default supplier part"
msgstr ""
-#: part/models.py:444
+#: part/models.py:447
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:446
+#: part/models.py:449
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:448
+#: part/models.py:451
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:450
+#: part/models.py:453
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:452
+#: part/models.py:455
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:454
+#: part/models.py:457
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:456
+#: part/models.py:459
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:458
+#: part/models.py:461
msgid "Is this part active?"
msgstr ""
-#: part/models.py:460
+#: part/models.py:463
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:462
+#: part/models.py:465
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:464
+#: part/models.py:467
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:1065
+#: part/models.py:1069
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:1070
+#: part/models.py:1074
msgid "Parameter Name"
msgstr ""
-#: part/models.py:1072
+#: part/models.py:1076
msgid "Parameter Units"
msgstr ""
-#: part/models.py:1098
+#: part/models.py:1102
msgid "Parent Part"
msgstr ""
-#: part/models.py:1100
+#: part/models.py:1104
msgid "Parameter Template"
msgstr ""
-#: part/models.py:1102
+#: part/models.py:1106
msgid "Parameter Value"
msgstr ""
-#: part/models.py:1126
+#: part/models.py:1130
msgid "Select parent part"
msgstr ""
-#: part/models.py:1135
+#: part/models.py:1139
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:1142
+#: part/models.py:1146
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:1145
+#: part/models.py:1149
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:1148
+#: part/models.py:1152
msgid "BOM item reference"
msgstr ""
-#: part/models.py:1151
+#: part/models.py:1155
msgid "BOM item notes"
msgstr ""
-#: part/models.py:1153
+#: part/models.py:1157
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:1216
+#: part/models.py:1220
msgid "Part cannot be added to its own Bill of Materials"
msgstr ""
-#: part/models.py:1223
+#: part/models.py:1227
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
+#: part/templates/part/allocation.html:10
+msgid "Part Stock Allocations"
+msgstr ""
+
+#: part/templates/part/allocation.html:14
+#: part/templates/part/allocation.html:41
+msgid "Order"
+msgstr ""
+
+#: part/templates/part/allocation.html:15
+#: part/templates/part/allocation.html:21
+#: part/templates/part/allocation.html:28
+#: part/templates/part/allocation.html:45
+#: stock/templates/stock/item_base.html:8
+#: stock/templates/stock/item_base.html:52
+#: stock/templates/stock/item_base.html:184
+#: stock/templates/stock/stock_adjust.html:16
+msgid "Stock Item"
+msgstr ""
+
+#: part/templates/part/allocation.html:20
+#: stock/templates/stock/item_base.html:129
+msgid "Build Order"
+msgstr ""
+
#: part/templates/part/attachments.html:8
msgid "Part Attachments"
msgstr ""
+#: part/templates/part/bom.html:13
+msgid "Bill of Materials"
+msgstr ""
+
+#: part/templates/part/bom.html:37
+msgid "Remove selected BOM items"
+msgstr ""
+
+#: part/templates/part/bom.html:38
+msgid "Import BOM data"
+msgstr ""
+
+#: part/templates/part/bom.html:39
+msgid "New BOM Item"
+msgstr ""
+
+#: part/templates/part/bom.html:40
+msgid "Finish Editing"
+msgstr ""
+
+#: part/templates/part/bom.html:42
+msgid "Edit BOM"
+msgstr ""
+
+#: part/templates/part/bom.html:44
+msgid "Validate Bill of Materials"
+msgstr ""
+
+#: part/templates/part/bom.html:46 part/views.py:1358
+msgid "Export Bill of Materials"
+msgstr ""
+
#: part/templates/part/category.html:13 part/templates/part/category.html:78
#: templates/stats.html:12
msgid "Part Categories"
@@ -1723,7 +2021,7 @@ msgstr ""
msgid "Variant Of"
msgstr ""
-#: part/templates/part/detail.html:57
+#: part/templates/part/detail.html:57 part/templates/part/set_category.html:15
msgid "Category"
msgstr ""
@@ -1731,7 +2029,7 @@ msgstr ""
msgid "Default Supplier"
msgstr ""
-#: part/templates/part/detail.html:89
+#: part/templates/part/detail.html:89 part/templates/part/params.html:22
msgid "Units"
msgstr ""
@@ -1763,7 +2061,7 @@ msgstr ""
msgid "Part is not a virtual part"
msgstr ""
-#: part/templates/part/detail.html:132 templates/table_filters.html:91
+#: part/templates/part/detail.html:132 templates/table_filters.html:99
msgid "Assembly"
msgstr ""
@@ -1775,7 +2073,7 @@ msgstr ""
msgid "Part cannot be assembled from other parts"
msgstr ""
-#: part/templates/part/detail.html:141 templates/table_filters.html:95
+#: part/templates/part/detail.html:141 templates/table_filters.html:103
msgid "Component"
msgstr ""
@@ -1807,7 +2105,7 @@ msgstr ""
msgid "Part can be purchased from external suppliers"
msgstr ""
-#: part/templates/part/detail.html:168 templates/table_filters.html:103
+#: part/templates/part/detail.html:168 templates/table_filters.html:111
msgid "Salable"
msgstr ""
@@ -1831,6 +2129,34 @@ msgstr ""
msgid "Order Part"
msgstr ""
+#: part/templates/part/params.html:8
+msgid "Part Parameters"
+msgstr ""
+
+#: part/templates/part/params.html:13
+msgid "Add new parameter"
+msgstr ""
+
+#: part/templates/part/params.html:13 templates/InvenTree/settings/part.html:12
+msgid "New Parameter"
+msgstr ""
+
+#: part/templates/part/params.html:20
+msgid "Name"
+msgstr ""
+
+#: part/templates/part/params.html:21
+msgid "Value"
+msgstr ""
+
+#: part/templates/part/params.html:33
+msgid "Edit"
+msgstr ""
+
+#: part/templates/part/params.html:34
+msgid "Delete"
+msgstr ""
+
#: part/templates/part/part_app_base.html:9
msgid "Part Category"
msgstr ""
@@ -1840,21 +2166,21 @@ msgid "Part List"
msgstr ""
#: part/templates/part/part_base.html:11
-msgid "This part is not active"
-msgstr ""
-
-#: part/templates/part/part_base.html:16
msgid "This part is a template part."
msgstr ""
-#: part/templates/part/part_base.html:18
+#: part/templates/part/part_base.html:13
msgid "It is not a real part, but real parts can be based on this template."
msgstr ""
-#: part/templates/part/part_base.html:23
+#: part/templates/part/part_base.html:18
msgid "This part is a variant of"
msgstr ""
+#: part/templates/part/part_base.html:30
+msgid "Inactive"
+msgstr ""
+
#: part/templates/part/part_base.html:38
msgid "Star this part"
msgstr ""
@@ -1871,8 +2197,8 @@ msgstr ""
msgid "In Stock"
msgstr ""
-#: part/templates/part/part_base.html:131
-msgid "Build Status"
+#: part/templates/part/part_base.html:121
+msgid "On Order"
msgstr ""
#: part/templates/part/part_base.html:136
@@ -1899,7 +2225,19 @@ msgstr ""
msgid "New Order"
msgstr ""
-#: part/templates/part/stock.html:76
+#: part/templates/part/set_category.html:9
+msgid "Set category for the following parts"
+msgstr ""
+
+#: part/templates/part/set_category.html:32
+msgid "Remove part"
+msgstr ""
+
+#: part/templates/part/stock.html:8
+msgid "Part Stock"
+msgstr ""
+
+#: part/templates/part/stock.html:77
msgid "Create New Part"
msgstr ""
@@ -1931,168 +2269,168 @@ msgstr ""
msgid "Tracking"
msgstr ""
-#: part/views.py:75
+#: part/templates/part/track.html:8
+msgid "Part Tracking"
+msgstr ""
+
+#: part/views.py:74
msgid "Add part attachment"
msgstr ""
-#: part/views.py:123
+#: part/views.py:122
msgid "Part attachment updated"
msgstr ""
-#: part/views.py:138
+#: part/views.py:137
msgid "Delete Part Attachment"
msgstr ""
-#: part/views.py:144
+#: part/views.py:143
msgid "Deleted part attachment"
msgstr ""
-#: part/views.py:152
+#: part/views.py:151
msgid "Set Part Category"
msgstr ""
-#: part/views.py:200
+#: part/views.py:199
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
-#: part/views.py:235
+#: part/views.py:234
msgid "Create Variant"
msgstr ""
-#: part/views.py:305
+#: part/views.py:304
msgid "Duplicate Part"
msgstr ""
-#: part/views.py:310
+#: part/views.py:309
msgid "Copied part"
msgstr ""
-#: part/views.py:421
+#: part/views.py:420
msgid "Create new part"
msgstr ""
-#: part/views.py:426
+#: part/views.py:425
msgid "Created new part"
msgstr ""
-#: part/views.py:605
+#: part/views.py:599
msgid "Part QR Code"
msgstr ""
-#: part/views.py:622
+#: part/views.py:616
msgid "Upload Part Image"
msgstr ""
-#: part/views.py:627 part/views.py:662
+#: part/views.py:621 part/views.py:656
msgid "Updated part image"
msgstr ""
-#: part/views.py:636
+#: part/views.py:630
msgid "Select Part Image"
msgstr ""
-#: part/views.py:665
+#: part/views.py:659
msgid "Part image not found"
msgstr ""
-#: part/views.py:676
+#: part/views.py:670
msgid "Edit Part Properties"
msgstr ""
-#: part/views.py:698
+#: part/views.py:692
msgid "Validate BOM"
msgstr ""
-#: part/views.py:860
+#: part/views.py:854
msgid "No BOM file provided"
msgstr ""
-#: part/views.py:1121
+#: part/views.py:1115
msgid "Enter a valid quantity"
msgstr ""
-#: part/views.py:1145 part/views.py:1148
+#: part/views.py:1139 part/views.py:1142
msgid "Select valid part"
msgstr ""
-#: part/views.py:1154
+#: part/views.py:1148
msgid "Duplicate part selected"
msgstr ""
-#: part/views.py:1182
+#: part/views.py:1176
msgid "Select a part"
msgstr ""
-#: part/views.py:1186
+#: part/views.py:1180
msgid "Specify quantity"
msgstr ""
-#: part/views.py:1364
-msgid "Export Bill of Materials"
-msgstr ""
-
-#: part/views.py:1402
+#: part/views.py:1396
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:1409
+#: part/views.py:1403
msgid "Part was deleted"
msgstr ""
-#: part/views.py:1418
+#: part/views.py:1412
msgid "Part Pricing"
msgstr ""
-#: part/views.py:1540
+#: part/views.py:1534
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:1548
+#: part/views.py:1542
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:1555
+#: part/views.py:1549
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1563
+#: part/views.py:1557
msgid "Create Part Parameter"
msgstr ""
-#: part/views.py:1613
+#: part/views.py:1607
msgid "Edit Part Parameter"
msgstr ""
-#: part/views.py:1627
+#: part/views.py:1621
msgid "Delete Part Parameter"
msgstr ""
-#: part/views.py:1643
+#: part/views.py:1637
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:1678
+#: part/views.py:1672
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1684
+#: part/views.py:1678
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1692
+#: part/views.py:1686
msgid "Create new part category"
msgstr ""
-#: part/views.py:1743
+#: part/views.py:1737
msgid "Create BOM item"
msgstr ""
-#: part/views.py:1809
+#: part/views.py:1803
msgid "Edit BOM item"
msgstr ""
-#: part/views.py:1857
+#: part/views.py:1851
msgid "Confim BOM item deletion"
msgstr ""
@@ -2128,121 +2466,157 @@ msgstr ""
msgid "Set the destination as the default location for selected parts"
msgstr ""
-#: stock/models.py:210
+#: stock/models.py:218
#, python-brace-format
msgid ""
"A stock item with this serial number already exists for template part {part}"
msgstr ""
-#: stock/models.py:215
+#: stock/models.py:223
msgid "A stock item with this serial number already exists"
msgstr ""
-#: stock/models.py:234
+#: stock/models.py:254
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:244 stock/models.py:253
+#: stock/models.py:264 stock/models.py:273
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:245
+#: stock/models.py:265
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:261
+#: stock/models.py:281
msgid "Stock item cannot be created for a template Part"
msgstr ""
-#: stock/models.py:270
+#: stock/models.py:290
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:311
+#: stock/models.py:327
+msgid "Parent Stock Item"
+msgstr ""
+
+#: stock/models.py:335
+msgid "Base Part"
+msgstr ""
+
+#: stock/models.py:336
msgid "Base part"
msgstr ""
-#: stock/models.py:319
+#: stock/models.py:346
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:323
+#: stock/models.py:351 stock/templates/stock/stock_app_base.html:7
+msgid "Stock Location"
+msgstr ""
+
+#: stock/models.py:354
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:327
+#: stock/models.py:359
+msgid "Installed In"
+msgstr ""
+
+#: stock/models.py:362
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:331
-msgid "Item assigned to customer?"
-msgstr ""
-
-#: stock/models.py:334
+#: stock/models.py:368
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:339
+#: stock/models.py:380
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:348
+#: stock/models.py:384
+msgid "Stock Quantity"
+msgstr ""
+
+#: stock/models.py:393
+msgid "Source Build"
+msgstr ""
+
+#: stock/models.py:395
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:357
+#: stock/models.py:402
+msgid "Source Purchase Order"
+msgstr ""
+
+#: stock/models.py:405
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:374
+#: stock/models.py:411
+msgid "Destination Sales Order"
+msgstr ""
+
+#: stock/models.py:418
+msgid "Destination Build Order"
+msgstr ""
+
+#: stock/models.py:431
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:381 stock/templates/stock/item_notes.html:13
+#: stock/models.py:441 stock/templates/stock/item_notes.html:13
#: stock/templates/stock/item_notes.html:29
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:516
+#: stock/models.py:605
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:522
+#: stock/models.py:611
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:525 stock/models.py:528
+#: stock/models.py:614 stock/models.py:617
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:531
+#: stock/models.py:620
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:541
+#: stock/models.py:630
msgid "Serial numbers already exist: "
msgstr ""
-#: stock/models.py:563
+#: stock/models.py:652
msgid "Add serial number"
msgstr ""
-#: stock/models.py:566
+#: stock/models.py:655
#, python-brace-format
msgid "Serialized {n} items"
msgstr ""
-#: stock/models.py:866
+#: stock/models.py:752
+msgid "StockItem cannot be moved as it is not in stock"
+msgstr ""
+
+#: stock/models.py:961
msgid "Tracking entry title"
msgstr ""
-#: stock/models.py:868
+#: stock/models.py:963
msgid "Entry notes"
msgstr ""
-#: stock/models.py:870
+#: stock/models.py:965
msgid "Link to external page for further information"
msgstr ""
@@ -2250,12 +2624,6 @@ msgstr ""
msgid "Stock Tracking Information"
msgstr ""
-#: stock/templates/stock/item_base.html:8
-#: stock/templates/stock/item_base.html:56
-#: stock/templates/stock/stock_adjust.html:16
-msgid "Stock Item"
-msgstr ""
-
#: stock/templates/stock/item_base.html:20
msgid "This stock item is allocated to Sales Order"
msgstr ""
@@ -2279,40 +2647,31 @@ msgid ""
"This stock item will be automatically deleted when all stock is depleted."
msgstr ""
-#: stock/templates/stock/item_base.html:45
-msgid "This stock item was split from "
-msgstr ""
-
-#: stock/templates/stock/item_base.html:105
+#: stock/templates/stock/item_base.html:103
msgid "Stock Item Details"
msgstr ""
-#: stock/templates/stock/item_base.html:119
+#: stock/templates/stock/item_base.html:117
msgid "Belongs To"
msgstr ""
-#: stock/templates/stock/item_base.html:125
-#: stock/templates/stock/stock_adjust.html:17
-msgid "Location"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:132
+#: stock/templates/stock/item_base.html:142
msgid "Unique Identifier"
msgstr ""
-#: stock/templates/stock/item_base.html:139
-msgid "Serial Number"
+#: stock/templates/stock/item_base.html:183
+msgid "Parent Item"
msgstr ""
-#: stock/templates/stock/item_base.html:198
+#: stock/templates/stock/item_base.html:208
msgid "Last Updated"
msgstr ""
-#: stock/templates/stock/item_base.html:203
+#: stock/templates/stock/item_base.html:213
msgid "Last Stocktake"
msgstr ""
-#: stock/templates/stock/item_base.html:207
+#: stock/templates/stock/item_base.html:217
msgid "No stocktake performed"
msgstr ""
@@ -2324,6 +2683,22 @@ msgstr ""
msgid "This stock item does not have any child items"
msgstr ""
+#: stock/templates/stock/location.html:13
+msgid "All stock items"
+msgstr ""
+
+#: stock/templates/stock/location.html:22
+msgid "Count stock items"
+msgstr ""
+
+#: stock/templates/stock/location.html:25
+msgid "Edit stock location"
+msgstr ""
+
+#: stock/templates/stock/location.html:28
+msgid "Delete stock location"
+msgstr ""
+
#: stock/templates/stock/location.html:37
msgid "Location Details"
msgstr ""
@@ -2355,10 +2730,6 @@ msgstr ""
msgid "Stock Locations"
msgstr ""
-#: stock/templates/stock/stock_app_base.html:7
-msgid "Stock Location"
-msgstr ""
-
#: stock/templates/stock/tabs.html:8
msgid "Children"
msgstr ""
@@ -2379,134 +2750,134 @@ msgstr ""
msgid "Stock Export Options"
msgstr ""
-#: stock/views.py:278
+#: stock/views.py:276
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:301
+#: stock/views.py:299
msgid "Adjust Stock"
msgstr ""
-#: stock/views.py:410
+#: stock/views.py:408
msgid "Move Stock Items"
msgstr ""
-#: stock/views.py:411
+#: stock/views.py:409
msgid "Count Stock Items"
msgstr ""
-#: stock/views.py:412
+#: stock/views.py:410
msgid "Remove From Stock"
msgstr ""
-#: stock/views.py:413
+#: stock/views.py:411
msgid "Add Stock Items"
msgstr ""
-#: stock/views.py:414
+#: stock/views.py:412
msgid "Delete Stock Items"
msgstr ""
-#: stock/views.py:442
+#: stock/views.py:440
msgid "Must enter integer value"
msgstr ""
-#: stock/views.py:447
+#: stock/views.py:445
msgid "Quantity must be positive"
msgstr ""
-#: stock/views.py:454
+#: stock/views.py:452
#, python-brace-format
msgid "Quantity must not exceed {x}"
msgstr ""
-#: stock/views.py:462
+#: stock/views.py:460
msgid "Confirm stock adjustment"
msgstr ""
-#: stock/views.py:533
+#: stock/views.py:531
#, python-brace-format
msgid "Added stock to {n} items"
msgstr ""
-#: stock/views.py:548
+#: stock/views.py:546
#, python-brace-format
msgid "Removed stock from {n} items"
msgstr ""
-#: stock/views.py:561
+#: stock/views.py:559
#, python-brace-format
msgid "Counted stock for {n} items"
msgstr ""
-#: stock/views.py:589
+#: stock/views.py:587
msgid "No items were moved"
msgstr ""
-#: stock/views.py:592
+#: stock/views.py:590
#, python-brace-format
msgid "Moved {n} items to {dest}"
msgstr ""
-#: stock/views.py:611
+#: stock/views.py:609
#, python-brace-format
msgid "Deleted {n} stock items"
msgstr ""
-#: stock/views.py:623
+#: stock/views.py:621
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:659
+#: stock/views.py:657
msgid "Create new Stock Location"
msgstr ""
-#: stock/views.py:680
+#: stock/views.py:678
msgid "Serialize Stock"
msgstr ""
-#: stock/views.py:760
+#: stock/views.py:758
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:824
+#: stock/views.py:822
msgid "Copy Stock Item"
msgstr ""
-#: stock/views.py:892
+#: stock/views.py:893
msgid "Invalid quantity"
msgstr ""
-#: stock/views.py:895
+#: stock/views.py:896
msgid "Invalid part selection"
msgstr ""
-#: stock/views.py:942
+#: stock/views.py:943
#, python-brace-format
msgid "Created {n} new stock items"
msgstr ""
-#: stock/views.py:959 stock/views.py:972
+#: stock/views.py:960 stock/views.py:973
msgid "Created new stock item"
msgstr ""
-#: stock/views.py:989
+#: stock/views.py:990
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:1002
+#: stock/views.py:1003
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1013
+#: stock/views.py:1014
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1030
+#: stock/views.py:1031
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1039
+#: stock/views.py:1040
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -2518,6 +2889,18 @@ msgstr ""
msgid "No results found"
msgstr ""
+#: templates/InvenTree/settings/part.html:28
+msgid "No part parameter templates found"
+msgstr ""
+
+#: templates/InvenTree/settings/part.html:47
+msgid "Edit Template"
+msgstr ""
+
+#: templates/InvenTree/settings/part.html:48
+msgid "Delete Template"
+msgstr ""
+
#: templates/InvenTree/starred_parts.html:7
msgid "Starred Parts"
msgstr ""
@@ -2594,10 +2977,6 @@ msgstr ""
msgid "Search"
msgstr ""
-#: templates/stock_table.html:8
-msgid "New Stock Item"
-msgstr ""
-
#: templates/stock_table.html:12
msgid "Add stock"
msgstr ""
@@ -2622,70 +3001,74 @@ msgstr ""
msgid "Delete Stock"
msgstr ""
-#: templates/table_filters.html:22
+#: templates/table_filters.html:21
msgid "Include sublocations"
msgstr ""
-#: templates/table_filters.html:23
+#: templates/table_filters.html:22
msgid "Include stock in sublocations"
msgstr ""
-#: templates/table_filters.html:27
+#: templates/table_filters.html:26
msgid "Active parts"
msgstr ""
-#: templates/table_filters.html:28
+#: templates/table_filters.html:27
msgid "Show stock for active parts"
msgstr ""
-#: templates/table_filters.html:32 templates/table_filters.html:33
+#: templates/table_filters.html:31 templates/table_filters.html:32
msgid "Stock status"
msgstr ""
-#: templates/table_filters.html:37
+#: templates/table_filters.html:36
msgid "Is allocated"
msgstr ""
-#: templates/table_filters.html:38
+#: templates/table_filters.html:37
msgid "Item has been alloacted"
msgstr ""
-#: templates/table_filters.html:58
+#: templates/table_filters.html:46
+msgid "Build status"
+msgstr ""
+
+#: templates/table_filters.html:57 templates/table_filters.html:66
msgid "Order status"
msgstr ""
-#: templates/table_filters.html:69
+#: templates/table_filters.html:77
msgid "Include subcategories"
msgstr ""
-#: templates/table_filters.html:70
+#: templates/table_filters.html:78
msgid "Include parts in subcategories"
msgstr ""
-#: templates/table_filters.html:74
+#: templates/table_filters.html:82
msgid "Active"
msgstr ""
-#: templates/table_filters.html:75
+#: templates/table_filters.html:83
msgid "Show active parts"
msgstr ""
-#: templates/table_filters.html:79
+#: templates/table_filters.html:87
msgid "Template"
msgstr ""
-#: templates/table_filters.html:83
+#: templates/table_filters.html:91
msgid "Stock available"
msgstr ""
-#: templates/table_filters.html:87
+#: templates/table_filters.html:95
msgid "Low stock"
msgstr ""
-#: templates/table_filters.html:99
+#: templates/table_filters.html:107
msgid "Starred"
msgstr ""
-#: templates/table_filters.html:107
+#: templates/table_filters.html:115
msgid "Purchasable"
msgstr ""
diff --git a/InvenTree/locale/es/LC_MESSAGES/django.po b/InvenTree/locale/es/LC_MESSAGES/django.po
index ee9168f369..661f3e1f01 100644
--- a/InvenTree/locale/es/LC_MESSAGES/django.po
+++ b/InvenTree/locale/es/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-04-22 23:17+0000\n"
+"POT-Creation-Date: 2020-04-28 00:43+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -42,7 +42,7 @@ msgstr ""
msgid "Unknown barcode format"
msgstr ""
-#: InvenTree/helpers.py:258 order/models.py:173 order/models.py:224
+#: InvenTree/helpers.py:258 order/models.py:150 order/models.py:224
msgid "Invalid quantity provided"
msgstr ""
@@ -78,68 +78,81 @@ msgstr ""
msgid "File comment"
msgstr ""
-#: InvenTree/settings.py:270
+#: InvenTree/settings.py:274
msgid "English"
msgstr ""
-#: InvenTree/settings.py:271
+#: InvenTree/settings.py:275
msgid "German"
msgstr ""
-#: InvenTree/settings.py:272
+#: InvenTree/settings.py:276
msgid "French"
msgstr ""
-#: InvenTree/settings.py:273
+#: InvenTree/settings.py:277
msgid "Polish"
msgstr ""
-#: InvenTree/status_codes.py:84 InvenTree/status_codes.py:172
+#: InvenTree/status_codes.py:90 InvenTree/status_codes.py:131
+#: InvenTree/status_codes.py:213
msgid "Pending"
msgstr ""
-#: InvenTree/status_codes.py:85
+#: InvenTree/status_codes.py:91
msgid "Placed"
msgstr ""
-#: InvenTree/status_codes.py:86 InvenTree/status_codes.py:175
+#: InvenTree/status_codes.py:92 InvenTree/status_codes.py:216
msgid "Complete"
msgstr ""
-#: InvenTree/status_codes.py:87 InvenTree/status_codes.py:174
+#: InvenTree/status_codes.py:93 InvenTree/status_codes.py:133
+#: InvenTree/status_codes.py:215
msgid "Cancelled"
msgstr ""
-#: InvenTree/status_codes.py:88 InvenTree/status_codes.py:135
+#: InvenTree/status_codes.py:94 InvenTree/status_codes.py:134
+#: InvenTree/status_codes.py:169
msgid "Lost"
msgstr ""
-#: InvenTree/status_codes.py:89 InvenTree/status_codes.py:137
+#: InvenTree/status_codes.py:95 InvenTree/status_codes.py:135
+#: InvenTree/status_codes.py:170
msgid "Returned"
msgstr ""
-#: InvenTree/status_codes.py:131
-msgid "OK"
-msgstr ""
-
-#: InvenTree/status_codes.py:132
-msgid "Attention needed"
-msgstr ""
-
-#: InvenTree/status_codes.py:133
-msgid "Damaged"
-msgstr ""
-
-#: InvenTree/status_codes.py:134
-msgid "Destroyed"
-msgstr ""
-
-#: InvenTree/status_codes.py:136
+#: InvenTree/status_codes.py:132 InvenTree/status_codes.py:171
+#: order/templates/order/sales_order_base.html:98
msgid "Shipped"
msgstr ""
-#: InvenTree/status_codes.py:173 build/templates/build/allocate_edit.html:28
-#: build/templates/build/allocate_view.html:21
+#: InvenTree/status_codes.py:165
+msgid "OK"
+msgstr ""
+
+#: InvenTree/status_codes.py:166
+msgid "Attention needed"
+msgstr ""
+
+#: InvenTree/status_codes.py:167
+msgid "Damaged"
+msgstr ""
+
+#: InvenTree/status_codes.py:168
+msgid "Destroyed"
+msgstr ""
+
+#: InvenTree/status_codes.py:172
+msgid "Used for Build"
+msgstr ""
+
+#: InvenTree/status_codes.py:173
+msgid "Installed in Stock Item"
+msgstr ""
+
+#: InvenTree/status_codes.py:214 build/templates/build/allocate.html:349
+#: order/templates/order/sales_order_detail.html:220
#: part/templates/part/part_base.html:114 part/templates/part/tabs.html:21
msgid "Allocated"
msgstr ""
@@ -173,191 +186,350 @@ msgstr ""
msgid "Database Statistics"
msgstr ""
-#: build/forms.py:35
+#: build/forms.py:37
msgid "Confirm"
msgstr ""
-#: build/forms.py:52 stock/forms.py:34
+#: build/forms.py:54 stock/forms.py:34
msgid "Enter unique serial numbers (or leave blank)"
msgstr ""
-#: build/forms.py:54
+#: build/forms.py:56
msgid "Confirm build completion"
msgstr ""
-#: build/models.py:54
+#: build/models.py:57 build/templates/build/build_base.html:65
+msgid "Build Title"
+msgstr ""
+
+#: build/models.py:60
msgid "Brief description of the build"
msgstr ""
-#: build/models.py:64
+#: build/models.py:68 build/templates/build/build_base.html:86
+msgid "Parent Build"
+msgstr ""
+
+#: build/models.py:69
+msgid "Parent build to which this build is allocated"
+msgstr ""
+
+#: build/models.py:74 build/templates/build/allocate.html:320
+#: build/templates/build/auto_allocate.html:18
+#: build/templates/build/build_base.html:70
+#: build/templates/build/detail.html:22 order/models.py:462
+#: order/templates/order/order_wizard/select_parts.html:30
+#: order/templates/order/purchase_order_detail.html:145
+#: part/templates/part/part_app_base.html:7
+#: part/templates/part/set_category.html:13
+msgid "Part"
+msgstr ""
+
+#: build/models.py:83
msgid "Select part to build"
msgstr ""
-#: build/models.py:70
+#: build/models.py:88
+msgid "Sales Order Reference"
+msgstr ""
+
+#: build/models.py:92
+msgid "SalesOrder to which this build is allocated"
+msgstr ""
+
+#: build/models.py:97
+msgid "Source Location"
+msgstr ""
+
+#: build/models.py:101
msgid ""
"Select location to take stock from for this build (leave blank to take from "
"any stock location)"
msgstr ""
-#: build/models.py:76
+#: build/models.py:105
+msgid "Build Quantity"
+msgstr ""
+
+#: build/models.py:108
msgid "Number of parts to build"
msgstr ""
-#: build/models.py:82 templates/table_filters.html:47
-msgid "Build status"
+#: build/models.py:112 part/templates/part/part_base.html:131
+msgid "Build Status"
msgstr ""
-#: build/models.py:85
+#: build/models.py:116
+msgid "Build status code"
+msgstr ""
+
+#: build/models.py:120 stock/models.py:378
+msgid "Batch Code"
+msgstr ""
+
+#: build/models.py:124
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:97 stock/models.py:336
+#: build/models.py:139 build/templates/build/detail.html:55
+#: company/templates/company/supplier_part_base.html:57
+#: company/templates/company/supplier_part_detail.html:24
+#: part/templates/part/detail.html:67 part/templates/part/part_base.html:85
+#: stock/models.py:372 stock/templates/stock/item_base.html:190
+msgid "External Link"
+msgstr ""
+
+#: build/models.py:140 stock/models.py:374
msgid "Link to external URL"
msgstr ""
-#: build/models.py:99
+#: build/models.py:144 build/templates/build/tabs.html:14 company/models.py:302
+#: company/templates/company/tabs.html:26 order/templates/order/po_tabs.html:15
+#: order/templates/order/purchase_order_detail.html:200
+#: order/templates/order/so_tabs.html:23 part/templates/part/tabs.html:63
+#: stock/models.py:440 stock/templates/stock/tabs.html:17
+msgid "Notes"
+msgstr ""
+
+#: build/models.py:145
msgid "Extra build notes"
msgstr ""
-#: build/models.py:388
+#: build/models.py:451
#, python-brace-format
msgid "Selected stock item not found in BOM for part '{p}'"
msgstr ""
-#: build/models.py:391
+#: build/models.py:454
#, python-brace-format
msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
msgstr ""
-#: build/models.py:397 order/models.py:448
+#: build/models.py:460 order/models.py:546
msgid "StockItem is over-allocated"
msgstr ""
-#: build/models.py:400 order/models.py:451
+#: build/models.py:463 order/models.py:549
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:403
+#: build/models.py:466
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:418
+#: build/models.py:496
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:425
+#: build/models.py:503
msgid "Stock Item to allocate to build"
msgstr ""
-#: build/models.py:433
+#: build/models.py:516
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/templates/build/allocate_edit.html:5
-msgid "Allocate Stock to Build"
-msgstr ""
-
-#: build/templates/build/allocate_edit.html:10
-msgid "Auto Allocate"
-msgstr ""
-
-#: build/templates/build/allocate_edit.html:11
-msgid "Unallocate"
-msgstr ""
-
-#: build/templates/build/allocate_edit.html:19
-#: build/templates/build/allocate_view.html:17
-#: build/templates/build/detail.html:22 order/models.py:385
-#: order/templates/order/order_wizard/select_parts.html:30
-#: order/templates/order/purchase_order_detail.html:26
-#: part/templates/part/part_app_base.html:7
-msgid "Part"
-msgstr ""
-
-#: build/templates/build/allocate_edit.html:22
-#: build/templates/build/allocate_view.html:19
-msgid "Available"
-msgstr ""
-
-#: build/templates/build/allocate_edit.html:25
-#: build/templates/build/allocate_view.html:20
-msgid "Required"
-msgstr ""
-
-#: build/templates/build/allocate_view.html:4
-msgid "Required Parts"
-msgstr ""
-
-#: build/templates/build/allocate_view.html:9
-msgid "Allocate"
-msgstr ""
-
-#: build/templates/build/allocate_view.html:10
-#: company/templates/company/detail_part.html:18 order/views.py:671
+#: build/templates/build/allocate.html:17
+#: company/templates/company/detail_part.html:18 order/views.py:743
msgid "Order Parts"
msgstr ""
-#: build/templates/build/allocate_view.html:18
-#: company/templates/company/supplier_part_base.html:50
-#: company/templates/company/supplier_part_detail.html:27
-#: order/templates/order/purchase_order_detail.html:27
-#: part/templates/part/detail.html:38
-msgid "Description"
+#: build/templates/build/allocate.html:18
+msgid "Automatically allocate stock"
msgstr ""
-#: build/templates/build/allocate_view.html:22
-#: part/templates/part/part_base.html:121
-msgid "On Order"
+#: build/templates/build/allocate.html:18
+msgid "Auto Allocate"
msgstr ""
-#: build/templates/build/build_base.html:8
-#: build/templates/build/build_base.html:21 part/templates/part/tabs.html:28
-#: stock/templates/stock/item_base.html:159 templates/navbar.html:12
-msgid "Build"
+#: build/templates/build/allocate.html:19
+msgid "Unallocate"
msgstr ""
-#: build/templates/build/build_base.html:48 build/templates/build/detail.html:9
-msgid "Build Details"
+#: build/templates/build/allocate.html:78 templates/stock_table.html:8
+msgid "New Stock Item"
msgstr ""
-#: build/templates/build/build_base.html:52
-msgid "Build Title"
+#: build/templates/build/allocate.html:161
+#: order/templates/order/sales_order_detail.html:68
+#: order/templates/order/sales_order_detail.html:150 stock/models.py:366
+#: stock/templates/stock/item_base.html:149
+msgid "Serial Number"
msgstr ""
-#: build/templates/build/build_base.html:62
+#: build/templates/build/allocate.html:163
+#: build/templates/build/auto_allocate.html:19
+#: build/templates/build/build_base.html:75
#: build/templates/build/detail.html:27
#: company/templates/company/supplier_part_pricing.html:27
#: order/templates/order/order_wizard/select_parts.html:32
-#: order/templates/order/purchase_order_detail.html:30
+#: order/templates/order/purchase_order_detail.html:175
+#: order/templates/order/sales_order_detail.html:70
+#: order/templates/order/sales_order_detail.html:152
+#: part/templates/part/allocation.html:16
+#: part/templates/part/allocation.html:49
#: stock/templates/stock/item_base.html:20
#: stock/templates/stock/item_base.html:26
-#: stock/templates/stock/item_base.html:145
+#: stock/templates/stock/item_base.html:155
#: stock/templates/stock/stock_adjust.html:18
msgid "Quantity"
msgstr ""
-#: build/templates/build/build_base.html:67
-#: build/templates/build/detail.html:42
-#: stock/templates/stock/item_base.html:212
-msgid "Status"
+#: build/templates/build/allocate.html:177
+#: build/templates/build/auto_allocate.html:20
+#: stock/templates/stock/item_base.html:135
+#: stock/templates/stock/stock_adjust.html:17
+msgid "Location"
msgstr ""
-#: build/templates/build/build_base.html:72
-msgid "BOM Price"
+#: build/templates/build/allocate.html:201
+#: order/templates/order/sales_order_detail.html:92
+msgid "Edit stock allocation"
msgstr ""
-#: build/templates/build/build_base.html:77
-msgid "BOM pricing is incomplete"
+#: build/templates/build/allocate.html:202
+#: order/templates/order/sales_order_detail.html:93
+msgid "Delete stock allocation"
+msgstr ""
+
+#: build/templates/build/allocate.html:229
+msgid "No BOM items found"
+msgstr ""
+
+#: build/templates/build/allocate.html:328
+#: company/templates/company/supplier_part_base.html:50
+#: company/templates/company/supplier_part_detail.html:27
+#: order/templates/order/purchase_order_detail.html:157
+#: part/templates/part/detail.html:38 part/templates/part/set_category.html:14
+msgid "Description"
+msgstr ""
+
+#: build/templates/build/allocate.html:333
+#: order/templates/order/purchase_order_detail.html:170
+msgid "Reference"
+msgstr ""
+
+#: build/templates/build/allocate.html:338
+msgid "Required"
+msgstr ""
+
+#: build/templates/build/allocate.html:347
+msgid "Assigned"
+msgstr ""
+
+#: build/templates/build/allocate.html:385
+#: order/templates/order/sales_order_detail.html:270
+msgid "Buy parts"
+msgstr ""
+
+#: build/templates/build/allocate.html:389
+#: order/templates/order/sales_order_detail.html:274
+msgid "Build parts"
+msgstr ""
+
+#: build/templates/build/allocate.html:392
+msgid "Allocate stock"
+msgstr ""
+
+#: build/templates/build/auto_allocate.html:8
+msgid "Automatically Allocate Stock"
+msgstr ""
+
+#: build/templates/build/auto_allocate.html:9
+msgid ""
+"Stock Items are selected for automatic allocation if there is only a single "
+"stock item available."
+msgstr ""
+
+#: build/templates/build/auto_allocate.html:10
+msgid "The following stock items will be allocated to the build:"
+msgstr ""
+
+#: build/templates/build/auto_allocate.html:39
+msgid "No stock items found that can be allocated to this build"
+msgstr ""
+
+#: build/templates/build/build_base.html:8
+#: build/templates/build/build_base.html:34
+#: build/templates/build/complete.html:6
+#: stock/templates/stock/item_base.html:169 templates/navbar.html:12
+msgid "Build"
+msgstr ""
+
+#: build/templates/build/build_base.html:14
+msgid "This build is allocated to Sales Order"
+msgstr ""
+
+#: build/templates/build/build_base.html:19
+msgid "This build is a child of Build"
+msgstr ""
+
+#: build/templates/build/build_base.html:61 build/templates/build/detail.html:9
+msgid "Build Details"
msgstr ""
#: build/templates/build/build_base.html:80
+#: build/templates/build/detail.html:42
+#: stock/templates/stock/item_base.html:222
+msgid "Status"
+msgstr ""
+
+#: build/templates/build/build_base.html:93 order/models.py:460
+#: order/templates/order/sales_order_base.html:9
+#: order/templates/order/sales_order_base.html:33
+#: order/templates/order/sales_order_notes.html:10
+#: order/templates/order/sales_order_ship.html:25
+#: part/templates/part/allocation.html:27
+#: stock/templates/stock/item_base.html:123
+msgid "Sales Order"
+msgstr ""
+
+#: build/templates/build/build_base.html:99
+msgid "BOM Price"
+msgstr ""
+
+#: build/templates/build/build_base.html:104
+msgid "BOM pricing is incomplete"
+msgstr ""
+
+#: build/templates/build/build_base.html:107
msgid "No pricing information"
msgstr ""
-#: build/templates/build/build_output.html:9
+#: build/templates/build/build_output.html:9 build/templates/build/tabs.html:11
msgid "Build Outputs"
msgstr ""
+#: build/templates/build/complete.html:10
+msgid "Build order allocation is complete"
+msgstr ""
+
+#: build/templates/build/complete.html:14
+msgid "Warning: Build order allocation is not complete"
+msgstr ""
+
+#: build/templates/build/complete.html:15
+msgid ""
+"Build Order has not been fully allocated. Ensure that all Stock Items have "
+"been allocated to the Build"
+msgstr ""
+
+#: build/templates/build/complete.html:20
+msgid "The following actions will be performed:"
+msgstr ""
+
+#: build/templates/build/complete.html:22
+msgid "Remove allocated items from stock"
+msgstr ""
+
+#: build/templates/build/complete.html:23
+msgid "Add completed items to stock"
+msgstr ""
+
+#: build/templates/build/complete.html:29
+msgid "The following items will be created"
+msgstr ""
+
#: build/templates/build/delete_build_item.html:6
msgid "Are you sure you want to unallocate these parts?"
msgstr ""
@@ -375,21 +547,13 @@ msgid "Stock can be taken from any available location."
msgstr ""
#: build/templates/build/detail.html:48
-#: stock/templates/stock/item_base.html:152
+#: stock/templates/stock/item_base.html:162
msgid "Batch"
msgstr ""
-#: build/templates/build/detail.html:55
-#: company/templates/company/supplier_part_base.html:57
-#: company/templates/company/supplier_part_detail.html:24
-#: part/templates/part/detail.html:67 part/templates/part/part_base.html:85
-#: stock/templates/stock/item_base.html:180
-msgid "External Link"
-msgstr ""
-
#: build/templates/build/detail.html:61
#: order/templates/order/order_base.html:93
-#: order/templates/order/sales_order_base.html:82
+#: order/templates/order/sales_order_base.html:92
msgid "Created"
msgstr ""
@@ -409,6 +573,16 @@ msgstr ""
msgid "Completed"
msgstr ""
+#: build/templates/build/index.html:6 build/templates/build/index.html:14
+#: order/templates/order/so_builds.html:11 order/templates/order/so_tabs.html:9
+#: part/templates/part/tabs.html:28
+msgid "Build Orders"
+msgstr ""
+
+#: build/templates/build/index.html:24
+msgid "New Build Order"
+msgstr ""
+
#: build/templates/build/notes.html:13 build/templates/build/notes.html:30
msgid "Build Notes"
msgstr ""
@@ -433,18 +607,7 @@ msgid "Details"
msgstr ""
#: build/templates/build/tabs.html:8
-msgid "Outputs"
-msgstr ""
-
-#: build/templates/build/tabs.html:11 company/models.py:302
-#: company/templates/company/tabs.html:26 order/templates/order/po_tabs.html:15
-#: order/templates/order/so_tabs.html:15 part/templates/part/tabs.html:63
-#: stock/templates/stock/tabs.html:17
-msgid "Notes"
-msgstr ""
-
-#: build/templates/build/tabs.html:14
-msgid "Assign Parts"
+msgid "Allocated Parts"
msgstr ""
#: build/templates/build/unallocate.html:8
@@ -479,7 +642,7 @@ msgstr ""
msgid "Check the confirmation box at the bottom of the list"
msgstr ""
-#: build/views.py:148 build/views.py:442
+#: build/views.py:148 build/views.py:446
msgid "Unallocate Stock"
msgstr ""
@@ -503,48 +666,48 @@ msgstr ""
msgid "Invalid location selected"
msgstr ""
-#: build/views.py:290 stock/views.py:916
+#: build/views.py:290 stock/views.py:917
#, python-brace-format
msgid "The following serial numbers already exist: ({sn})"
msgstr ""
-#: build/views.py:309
+#: build/views.py:311
msgid "Build marked as COMPLETE"
msgstr ""
-#: build/views.py:385
+#: build/views.py:387
msgid "Start new Build"
msgstr ""
-#: build/views.py:408
+#: build/views.py:412
msgid "Created new build"
msgstr ""
-#: build/views.py:418
+#: build/views.py:422
msgid "Edit Build Details"
msgstr ""
-#: build/views.py:423
+#: build/views.py:427
msgid "Edited build"
msgstr ""
-#: build/views.py:432
+#: build/views.py:436
msgid "Delete Build"
msgstr ""
-#: build/views.py:447
+#: build/views.py:451
msgid "Removed parts from build allocation"
msgstr ""
-#: build/views.py:457
+#: build/views.py:461
msgid "Allocate new Part"
msgstr ""
-#: build/views.py:573
+#: build/views.py:614
msgid "Edit Stock Allocation"
msgstr ""
-#: build/views.py:577
+#: build/views.py:618
msgid "Updated Build Item"
msgstr ""
@@ -714,16 +877,15 @@ msgstr ""
#: company/templates/company/detail.html:21
#: company/templates/company/supplier_part_base.html:63
-#: company/templates/company/supplier_part_detail.html:21 order/models.py:138
+#: company/templates/company/supplier_part_detail.html:21 order/models.py:111
#: order/templates/order/order_base.html:74
#: order/templates/order/order_wizard/select_pos.html:30
-#: stock/templates/stock/item_base.html:187
+#: stock/templates/stock/item_base.html:197
msgid "Supplier"
msgstr ""
#: company/templates/company/detail.html:26 order/models.py:275
-#: order/templates/order/sales_order_base.html:63
-#: stock/templates/stock/item_base.html:173
+#: order/templates/order/sales_order_base.html:73
msgid "Customer"
msgstr ""
@@ -732,7 +894,8 @@ msgid "Supplier Parts"
msgstr ""
#: company/templates/company/detail_part.html:13
-#: part/templates/part/stock.html:81
+#: order/templates/order/purchase_order_detail.html:67
+#: part/templates/part/stock.html:82
msgid "New Supplier Part"
msgstr ""
@@ -745,7 +908,7 @@ msgid "Delete Parts"
msgstr ""
#: company/templates/company/detail_part.html:43
-#: part/templates/part/stock.html:75
+#: part/templates/part/stock.html:76
msgid "New Part"
msgstr ""
@@ -753,19 +916,19 @@ msgstr ""
msgid "Create new Part"
msgstr ""
-#: company/templates/company/detail_part.html:49 company/views.py:52
+#: company/templates/company/detail_part.html:49 company/views.py:51
msgid "New Supplier"
msgstr ""
-#: company/templates/company/detail_part.html:50 company/views.py:184
+#: company/templates/company/detail_part.html:50 company/views.py:182
msgid "Create new Supplier"
msgstr ""
-#: company/templates/company/detail_part.html:55 company/views.py:58
+#: company/templates/company/detail_part.html:55 company/views.py:57
msgid "New Manufacturer"
msgstr ""
-#: company/templates/company/detail_part.html:56 company/views.py:187
+#: company/templates/company/detail_part.html:56 company/views.py:185
msgid "Create new Manufacturer"
msgstr ""
@@ -775,7 +938,7 @@ msgstr ""
#: company/templates/company/detail_stock.html:34
#: company/templates/company/supplier_part_stock.html:38
-#: part/templates/part/stock.html:53 templates/stock_table.html:5
+#: part/templates/part/stock.html:54 templates/stock_table.html:5
msgid "Export"
msgstr ""
@@ -831,11 +994,19 @@ msgid "New Sales Order"
msgstr ""
#: company/templates/company/supplier_part_base.html:6
-#: company/templates/company/supplier_part_base.html:19
-#: stock/templates/stock/item_base.html:192
+#: company/templates/company/supplier_part_base.html:19 stock/models.py:345
+#: stock/templates/stock/item_base.html:202
msgid "Supplier Part"
msgstr ""
+#: company/templates/company/supplier_part_base.html:23
+msgid "Edit supplier part"
+msgstr ""
+
+#: company/templates/company/supplier_part_base.html:26
+msgid "Delete supplier part"
+msgstr ""
+
#: company/templates/company/supplier_part_base.html:35
#: company/templates/company/supplier_part_detail.html:11
msgid "Supplier Part Details"
@@ -858,7 +1029,6 @@ msgstr ""
#: company/templates/company/supplier_part_base.html:84
#: company/templates/company/supplier_part_detail.html:34
-#: order/templates/order/purchase_order_detail.html:34
msgid "Note"
msgstr ""
@@ -899,12 +1069,14 @@ msgid "Supplier Part Stock"
msgstr ""
#: company/templates/company/supplier_part_stock.html:61
-#: part/templates/part/stock.html:90
+#: order/templates/order/purchase_order_detail.html:38
+#: order/templates/order/purchase_order_detail.html:118
+#: part/templates/part/stock.html:91
msgid "New Location"
msgstr ""
#: company/templates/company/supplier_part_stock.html:62
-#: part/templates/part/stock.html:91
+#: part/templates/part/stock.html:92
msgid "Create New Location"
msgstr ""
@@ -914,7 +1086,7 @@ msgstr ""
#: company/templates/company/supplier_part_tabs.html:8
#: company/templates/company/tabs.html:12 part/templates/part/tabs.html:17
-#: templates/navbar.html:11
+#: stock/templates/stock/location.html:12 templates/navbar.html:11
msgid "Stock"
msgstr ""
@@ -927,88 +1099,88 @@ msgstr ""
msgid "Parts"
msgstr ""
-#: company/views.py:51 part/templates/part/tabs.html:37
+#: company/views.py:50 part/templates/part/tabs.html:37
#: templates/navbar.html:16
msgid "Suppliers"
msgstr ""
-#: company/views.py:57 templates/navbar.html:17
+#: company/views.py:56 templates/navbar.html:17
msgid "Manufacturers"
msgstr ""
-#: company/views.py:63 templates/navbar.html:24
+#: company/views.py:62 templates/navbar.html:24
msgid "Customers"
msgstr ""
-#: company/views.py:64
+#: company/views.py:63
msgid "New Customer"
msgstr ""
-#: company/views.py:71
+#: company/views.py:70
msgid "Companies"
msgstr ""
-#: company/views.py:72
+#: company/views.py:71
msgid "New Company"
msgstr ""
-#: company/views.py:149
+#: company/views.py:147
msgid "Update Company Image"
msgstr ""
-#: company/views.py:154
+#: company/views.py:152
msgid "Updated company image"
msgstr ""
-#: company/views.py:164
+#: company/views.py:162
msgid "Edit Company"
msgstr ""
-#: company/views.py:168
+#: company/views.py:166
msgid "Edited company information"
msgstr ""
-#: company/views.py:190
+#: company/views.py:188
msgid "Create new Customer"
msgstr ""
-#: company/views.py:192
+#: company/views.py:190
msgid "Create new Company"
msgstr ""
-#: company/views.py:219
+#: company/views.py:217
msgid "Created new company"
msgstr ""
-#: company/views.py:229
+#: company/views.py:227
msgid "Delete Company"
msgstr ""
-#: company/views.py:234
+#: company/views.py:232
msgid "Company was deleted"
msgstr ""
-#: company/views.py:259
+#: company/views.py:256
msgid "Edit Supplier Part"
msgstr ""
-#: company/views.py:268 part/templates/part/stock.html:82
+#: company/views.py:265 part/templates/part/stock.html:83
msgid "Create new Supplier Part"
msgstr ""
-#: company/views.py:328
+#: company/views.py:325
msgid "Delete Supplier Part"
msgstr ""
-#: company/views.py:398
+#: company/views.py:395
msgid "Add Price Break"
msgstr ""
-#: company/views.py:440
+#: company/views.py:437
msgid "Edit Price Break"
msgstr ""
-#: company/views.py:455
+#: company/views.py:452
msgid "Delete Price Break"
msgstr ""
@@ -1020,11 +1192,16 @@ msgstr ""
msgid "Mark order as complete"
msgstr ""
-#: order/forms.py:46
+#: order/forms.py:46 order/forms.py:57
+#: order/templates/order/sales_order_base.html:49
msgid "Cancel order"
msgstr ""
-#: order/forms.py:57
+#: order/forms.py:68 order/templates/order/sales_order_base.html:46
+msgid "Ship order"
+msgstr ""
+
+#: order/forms.py:79
msgid "Receive parts to this location"
msgstr ""
@@ -1040,20 +1217,20 @@ msgstr ""
msgid "Link to external page"
msgstr ""
-#: order/models.py:92
+#: order/models.py:85
msgid "Order notes"
msgstr ""
-#: order/models.py:141
+#: order/models.py:114
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:171 order/models.py:222 part/views.py:1119
-#: stock/models.py:519
+#: order/models.py:148 order/models.py:222 part/views.py:1113
+#: stock/models.py:608
msgid "Quantity must be greater than zero"
msgstr ""
-#: order/models.py:176
+#: order/models.py:153
msgid "Part supplier must match PO supplier"
msgstr ""
@@ -1061,63 +1238,61 @@ msgstr ""
msgid "Lines can only be received against an order marked as 'Placed'"
msgstr ""
-#: order/models.py:278
+#: order/models.py:281
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:324
+#: order/models.py:320
+msgid "SalesOrder cannot be shipped as it is not currently pending"
+msgstr ""
+
+#: order/models.py:397
msgid "Item quantity"
msgstr ""
-#: order/models.py:326
+#: order/models.py:399
msgid "Line item reference"
msgstr ""
-#: order/models.py:328
+#: order/models.py:401
msgid "Line item notes"
msgstr ""
-#: order/models.py:354 order/templates/order/order_base.html:9
+#: order/models.py:427 order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:23
-#: stock/templates/stock/item_base.html:166
+#: stock/templates/stock/item_base.html:176
msgid "Purchase Order"
msgstr ""
-#: order/models.py:363
+#: order/models.py:440
msgid "Supplier part"
msgstr ""
-#: order/models.py:366
+#: order/models.py:443
msgid "Number of items received"
msgstr ""
-#: order/models.py:383 order/templates/order/sales_order_base.html:9
-#: order/templates/order/sales_order_base.html:31
-#: order/templates/order/sales_order_notes.html:10
-msgid "Sales Order"
-msgstr ""
-
-#: order/models.py:440
+#: order/models.py:537
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:442
+#: order/models.py:539
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:445
+#: order/models.py:542
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:454
+#: order/models.py:552
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:466
+#: order/models.py:569
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:469
+#: order/models.py:572
msgid "Enter stock allocation quantity"
msgstr ""
@@ -1131,12 +1306,12 @@ msgid "Purchase Order Details"
msgstr ""
#: order/templates/order/order_base.html:64
-#: order/templates/order/sales_order_base.html:53
+#: order/templates/order/sales_order_base.html:63
msgid "Order Reference"
msgstr ""
#: order/templates/order/order_base.html:69
-#: order/templates/order/sales_order_base.html:58
+#: order/templates/order/sales_order_base.html:68
msgid "Order Status"
msgstr ""
@@ -1145,16 +1320,20 @@ msgid "Supplier Reference"
msgstr ""
#: order/templates/order/order_base.html:99
-#: order/templates/order/sales_order_base.html:88
msgid "Issued"
msgstr ""
#: order/templates/order/order_base.html:106
-#: order/templates/order/purchase_order_detail.html:32
-#: order/templates/order/sales_order_base.html:95
+#: order/templates/order/purchase_order_detail.html:180
+#: order/templates/order/sales_order_base.html:105
msgid "Received"
msgstr ""
+#: order/templates/order/order_cancel.html:7
+#: order/templates/order/sales_order_cancel.html:9
+msgid "Cancelling this order means that the order will no longer be editable."
+msgstr ""
+
#: order/templates/order/order_notes.html:13
#: order/templates/order/order_notes.html:29
#: order/templates/order/sales_order_notes.html:18
@@ -1191,7 +1370,7 @@ msgid "Select existing purchase orders, or create new orders."
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:31
-#: order/templates/order/po_tabs.html:5 order/templates/order/so_tabs.html:5
+#: order/templates/order/po_tabs.html:5
msgid "Items"
msgstr ""
@@ -1227,7 +1406,7 @@ msgstr ""
#: order/templates/order/po_attachments.html:36
#: order/templates/order/so_attachments.html:36
-#: part/templates/part/attachments.html:34 part/views.py:119
+#: part/templates/part/attachments.html:34 part/views.py:118
msgid "Edit attachment"
msgstr ""
@@ -1237,14 +1416,14 @@ msgstr ""
msgid "Delete attachment"
msgstr ""
-#: order/templates/order/po_tabs.html:8 order/templates/order/so_tabs.html:8
+#: order/templates/order/po_tabs.html:8 order/templates/order/so_tabs.html:16
#: part/templates/part/tabs.html:60
msgid "Attachments"
msgstr ""
#: order/templates/order/purchase_order_detail.html:16
-#: order/templates/order/sales_order_detail.html:17 order/views.py:970
-#: order/views.py:1084
+#: order/templates/order/sales_order_detail.html:17 order/views.py:1042
+#: order/views.py:1156
msgid "Add Line Item"
msgstr ""
@@ -1252,191 +1431,253 @@ msgstr ""
msgid "Purchase Order Items"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:25
-msgid "Line"
+#: order/templates/order/purchase_order_detail.html:39
+#: order/templates/order/purchase_order_detail.html:119
+#: stock/templates/stock/location.html:17
+msgid "Create new stock location"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:28
+#: order/templates/order/purchase_order_detail.html:68
+msgid "Create new supplier part"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:130
+msgid "No line items found"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:162
msgid "Order Code"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:29
-msgid "Reference"
+#: order/templates/order/purchase_order_detail.html:211
+#: order/templates/order/sales_order_detail.html:280
+msgid "Edit line item"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:212
+msgid "Delete line item"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:217
+msgid "Receive line item"
msgstr ""
#: order/templates/order/sales_order_base.html:15
msgid "This SalesOrder has not been fully allocated"
msgstr ""
-#: order/templates/order/sales_order_base.html:40
+#: order/templates/order/sales_order_base.html:42
msgid "Packing List"
msgstr ""
-#: order/templates/order/sales_order_base.html:48
+#: order/templates/order/sales_order_base.html:58
msgid "Sales Order Details"
msgstr ""
-#: order/templates/order/sales_order_base.html:69
+#: order/templates/order/sales_order_base.html:79
msgid "Customer Reference"
msgstr ""
+#: order/templates/order/sales_order_cancel.html:8
+#: order/templates/order/sales_order_ship.html:9
+msgid "Warning"
+msgstr ""
+
#: order/templates/order/sales_order_detail.html:14
msgid "Sales Order Items"
msgstr ""
-#: order/templates/order/sales_order_detail.html:90
-msgid "Edit stock allocation"
+#: order/templates/order/sales_order_detail.html:222
+msgid "Fulfilled"
msgstr ""
-#: order/templates/order/sales_order_detail.html:91
-msgid "Delete stock allocation"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:178
-msgid "Buy parts"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:182
-msgid "Build parts"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:185
+#: order/templates/order/sales_order_detail.html:277
msgid "Allocate parts"
msgstr ""
-#: order/templates/order/sales_order_detail.html:189
-msgid "Edit line item"
+#: order/templates/order/sales_order_detail.html:281
+msgid "Delete line item "
msgstr ""
-#: order/templates/order/sales_order_detail.html:190
-msgid "Delete line item "
+#: order/templates/order/sales_order_ship.html:10
+msgid ""
+"This order has not been fully allocated. If the order is marked as shipped, "
+"it can no longer be adjusted."
+msgstr ""
+
+#: order/templates/order/sales_order_ship.html:12
+msgid "Ensure that the order allocation is correct before shipping the order."
+msgstr ""
+
+#: order/templates/order/sales_order_ship.html:18
+msgid "Some line items in this order have been over-allocated"
+msgstr ""
+
+#: order/templates/order/sales_order_ship.html:20
+msgid "Ensure that this is correct before shipping the order."
+msgstr ""
+
+#: order/templates/order/sales_order_ship.html:27
+msgid "Shipping this order means that the order will no longer be editable."
+msgstr ""
+
+#: order/templates/order/so_allocation_delete.html:7
+msgid "This action will unallocate the following stock from the Sales Order"
msgstr ""
#: order/templates/order/so_attachments.html:11
msgid "Sales Order Attachments"
msgstr ""
-#: order/views.py:97
+#: order/templates/order/so_lineitem_delete.html:5
+msgid "Are you sure you wish to delete this line item?"
+msgstr ""
+
+#: order/templates/order/so_tabs.html:5
+msgid "Order Items"
+msgstr ""
+
+#: order/views.py:93
msgid "Add Purchase Order Attachment"
msgstr ""
-#: order/views.py:102 order/views.py:142 part/views.py:80
+#: order/views.py:98 order/views.py:138 part/views.py:79
msgid "Added attachment"
msgstr ""
-#: order/views.py:138
+#: order/views.py:134
msgid "Add Sales Order Attachment"
msgstr ""
-#: order/views.py:166 order/views.py:187
+#: order/views.py:162 order/views.py:183
msgid "Edit Attachment"
msgstr ""
-#: order/views.py:170 order/views.py:191
+#: order/views.py:166 order/views.py:187
msgid "Attachment updated"
msgstr ""
-#: order/views.py:206 order/views.py:220
+#: order/views.py:202 order/views.py:216
msgid "Delete Attachment"
msgstr ""
-#: order/views.py:212 order/views.py:226
+#: order/views.py:208 order/views.py:222
msgid "Deleted attachment"
msgstr ""
-#: order/views.py:277
+#: order/views.py:273
msgid "Create Purchase Order"
msgstr ""
-#: order/views.py:307
+#: order/views.py:303
msgid "Create Sales Order"
msgstr ""
-#: order/views.py:336
+#: order/views.py:332
msgid "Edit Purchase Order"
msgstr ""
-#: order/views.py:356
+#: order/views.py:352
msgid "Edit Sales Order"
msgstr ""
-#: order/views.py:372
+#: order/views.py:368
msgid "Cancel Order"
msgstr ""
-#: order/views.py:387
+#: order/views.py:383 order/views.py:415
msgid "Confirm order cancellation"
msgstr ""
-#: order/views.py:405
+#: order/views.py:401
+msgid "Cancel sales order"
+msgstr ""
+
+#: order/views.py:421
+msgid "Could not cancel order"
+msgstr ""
+
+#: order/views.py:435
msgid "Issue Order"
msgstr ""
-#: order/views.py:420
+#: order/views.py:450
msgid "Confirm order placement"
msgstr ""
-#: order/views.py:441
+#: order/views.py:471
msgid "Complete Order"
msgstr ""
-#: order/views.py:507
+#: order/views.py:506
+msgid "Ship Order"
+msgstr ""
+
+#: order/views.py:522
+msgid "Confirm order shipment"
+msgstr ""
+
+#: order/views.py:528
+msgid "Could not ship order"
+msgstr ""
+
+#: order/views.py:579
msgid "Receive Parts"
msgstr ""
-#: order/views.py:574
+#: order/views.py:646
msgid "Items received"
msgstr ""
-#: order/views.py:588
+#: order/views.py:660
msgid "No destination set"
msgstr ""
-#: order/views.py:619
+#: order/views.py:691
msgid "Error converting quantity to number"
msgstr ""
-#: order/views.py:625
+#: order/views.py:697
msgid "Receive quantity less than zero"
msgstr ""
-#: order/views.py:631
+#: order/views.py:703
msgid "No lines specified"
msgstr ""
-#: order/views.py:990
+#: order/views.py:1062
msgid "Invalid Purchase Order"
msgstr ""
-#: order/views.py:998
+#: order/views.py:1070
msgid "Supplier must match for Part and Order"
msgstr ""
-#: order/views.py:1003
+#: order/views.py:1075
msgid "Invalid SupplierPart selection"
msgstr ""
-#: order/views.py:1123 order/views.py:1141
+#: order/views.py:1207 order/views.py:1225
msgid "Edit Line Item"
msgstr ""
-#: order/views.py:1157 order/views.py:1169
+#: order/views.py:1241 order/views.py:1253
msgid "Delete Line Item"
msgstr ""
-#: order/views.py:1162 order/views.py:1174
+#: order/views.py:1246 order/views.py:1258
msgid "Deleted line item"
msgstr ""
-#: order/views.py:1183
+#: order/views.py:1267
msgid "Allocate Stock to Order"
msgstr ""
-#: order/views.py:1252
+#: order/views.py:1336
msgid "Edit Allocation Quantity"
msgstr ""
-#: order/views.py:1267
+#: order/views.py:1351
msgid "Remove allocation"
msgstr ""
@@ -1497,179 +1738,236 @@ msgstr ""
msgid "Select currency for price calculation"
msgstr ""
-#: part/models.py:61
+#: part/models.py:64
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:64
+#: part/models.py:67
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:338
+#: part/models.py:341
msgid "Part must be unique for name, IPN and revision"
msgstr ""
-#: part/models.py:352
+#: part/models.py:355
msgid "Part cannot be a template part if it is a variant of another part"
msgstr ""
-#: part/models.py:353
+#: part/models.py:356
msgid "Part cannot be a variant of another part if it is already a template"
msgstr ""
-#: part/models.py:357 part/templates/part/detail.html:19
+#: part/models.py:360 part/templates/part/detail.html:19
msgid "Part name"
msgstr ""
-#: part/models.py:361
+#: part/models.py:364
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:370
+#: part/models.py:373
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:372
+#: part/models.py:375
msgid "Part description"
msgstr ""
-#: part/models.py:374
+#: part/models.py:377
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:379
+#: part/models.py:382
msgid "Part category"
msgstr ""
-#: part/models.py:381
+#: part/models.py:384
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:383
+#: part/models.py:386
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:385
+#: part/models.py:388
msgid "Link to extenal URL"
msgstr ""
-#: part/models.py:397
+#: part/models.py:400
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:441
+#: part/models.py:444
msgid "Default supplier part"
msgstr ""
-#: part/models.py:444
+#: part/models.py:447
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:446
+#: part/models.py:449
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:448
+#: part/models.py:451
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:450
+#: part/models.py:453
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:452
+#: part/models.py:455
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:454
+#: part/models.py:457
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:456
+#: part/models.py:459
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:458
+#: part/models.py:461
msgid "Is this part active?"
msgstr ""
-#: part/models.py:460
+#: part/models.py:463
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:462
+#: part/models.py:465
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:464
+#: part/models.py:467
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:1065
+#: part/models.py:1069
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:1070
+#: part/models.py:1074
msgid "Parameter Name"
msgstr ""
-#: part/models.py:1072
+#: part/models.py:1076
msgid "Parameter Units"
msgstr ""
-#: part/models.py:1098
+#: part/models.py:1102
msgid "Parent Part"
msgstr ""
-#: part/models.py:1100
+#: part/models.py:1104
msgid "Parameter Template"
msgstr ""
-#: part/models.py:1102
+#: part/models.py:1106
msgid "Parameter Value"
msgstr ""
-#: part/models.py:1126
+#: part/models.py:1130
msgid "Select parent part"
msgstr ""
-#: part/models.py:1135
+#: part/models.py:1139
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:1142
+#: part/models.py:1146
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:1145
+#: part/models.py:1149
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:1148
+#: part/models.py:1152
msgid "BOM item reference"
msgstr ""
-#: part/models.py:1151
+#: part/models.py:1155
msgid "BOM item notes"
msgstr ""
-#: part/models.py:1153
+#: part/models.py:1157
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:1216
+#: part/models.py:1220
msgid "Part cannot be added to its own Bill of Materials"
msgstr ""
-#: part/models.py:1223
+#: part/models.py:1227
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
+#: part/templates/part/allocation.html:10
+msgid "Part Stock Allocations"
+msgstr ""
+
+#: part/templates/part/allocation.html:14
+#: part/templates/part/allocation.html:41
+msgid "Order"
+msgstr ""
+
+#: part/templates/part/allocation.html:15
+#: part/templates/part/allocation.html:21
+#: part/templates/part/allocation.html:28
+#: part/templates/part/allocation.html:45
+#: stock/templates/stock/item_base.html:8
+#: stock/templates/stock/item_base.html:52
+#: stock/templates/stock/item_base.html:184
+#: stock/templates/stock/stock_adjust.html:16
+msgid "Stock Item"
+msgstr ""
+
+#: part/templates/part/allocation.html:20
+#: stock/templates/stock/item_base.html:129
+msgid "Build Order"
+msgstr ""
+
#: part/templates/part/attachments.html:8
msgid "Part Attachments"
msgstr ""
+#: part/templates/part/bom.html:13
+msgid "Bill of Materials"
+msgstr ""
+
+#: part/templates/part/bom.html:37
+msgid "Remove selected BOM items"
+msgstr ""
+
+#: part/templates/part/bom.html:38
+msgid "Import BOM data"
+msgstr ""
+
+#: part/templates/part/bom.html:39
+msgid "New BOM Item"
+msgstr ""
+
+#: part/templates/part/bom.html:40
+msgid "Finish Editing"
+msgstr ""
+
+#: part/templates/part/bom.html:42
+msgid "Edit BOM"
+msgstr ""
+
+#: part/templates/part/bom.html:44
+msgid "Validate Bill of Materials"
+msgstr ""
+
+#: part/templates/part/bom.html:46 part/views.py:1358
+msgid "Export Bill of Materials"
+msgstr ""
+
#: part/templates/part/category.html:13 part/templates/part/category.html:78
#: templates/stats.html:12
msgid "Part Categories"
@@ -1723,7 +2021,7 @@ msgstr ""
msgid "Variant Of"
msgstr ""
-#: part/templates/part/detail.html:57
+#: part/templates/part/detail.html:57 part/templates/part/set_category.html:15
msgid "Category"
msgstr ""
@@ -1731,7 +2029,7 @@ msgstr ""
msgid "Default Supplier"
msgstr ""
-#: part/templates/part/detail.html:89
+#: part/templates/part/detail.html:89 part/templates/part/params.html:22
msgid "Units"
msgstr ""
@@ -1763,7 +2061,7 @@ msgstr ""
msgid "Part is not a virtual part"
msgstr ""
-#: part/templates/part/detail.html:132 templates/table_filters.html:91
+#: part/templates/part/detail.html:132 templates/table_filters.html:99
msgid "Assembly"
msgstr ""
@@ -1775,7 +2073,7 @@ msgstr ""
msgid "Part cannot be assembled from other parts"
msgstr ""
-#: part/templates/part/detail.html:141 templates/table_filters.html:95
+#: part/templates/part/detail.html:141 templates/table_filters.html:103
msgid "Component"
msgstr ""
@@ -1807,7 +2105,7 @@ msgstr ""
msgid "Part can be purchased from external suppliers"
msgstr ""
-#: part/templates/part/detail.html:168 templates/table_filters.html:103
+#: part/templates/part/detail.html:168 templates/table_filters.html:111
msgid "Salable"
msgstr ""
@@ -1831,6 +2129,34 @@ msgstr ""
msgid "Order Part"
msgstr ""
+#: part/templates/part/params.html:8
+msgid "Part Parameters"
+msgstr ""
+
+#: part/templates/part/params.html:13
+msgid "Add new parameter"
+msgstr ""
+
+#: part/templates/part/params.html:13 templates/InvenTree/settings/part.html:12
+msgid "New Parameter"
+msgstr ""
+
+#: part/templates/part/params.html:20
+msgid "Name"
+msgstr ""
+
+#: part/templates/part/params.html:21
+msgid "Value"
+msgstr ""
+
+#: part/templates/part/params.html:33
+msgid "Edit"
+msgstr ""
+
+#: part/templates/part/params.html:34
+msgid "Delete"
+msgstr ""
+
#: part/templates/part/part_app_base.html:9
msgid "Part Category"
msgstr ""
@@ -1840,21 +2166,21 @@ msgid "Part List"
msgstr ""
#: part/templates/part/part_base.html:11
-msgid "This part is not active"
-msgstr ""
-
-#: part/templates/part/part_base.html:16
msgid "This part is a template part."
msgstr ""
-#: part/templates/part/part_base.html:18
+#: part/templates/part/part_base.html:13
msgid "It is not a real part, but real parts can be based on this template."
msgstr ""
-#: part/templates/part/part_base.html:23
+#: part/templates/part/part_base.html:18
msgid "This part is a variant of"
msgstr ""
+#: part/templates/part/part_base.html:30
+msgid "Inactive"
+msgstr ""
+
#: part/templates/part/part_base.html:38
msgid "Star this part"
msgstr ""
@@ -1871,8 +2197,8 @@ msgstr ""
msgid "In Stock"
msgstr ""
-#: part/templates/part/part_base.html:131
-msgid "Build Status"
+#: part/templates/part/part_base.html:121
+msgid "On Order"
msgstr ""
#: part/templates/part/part_base.html:136
@@ -1899,7 +2225,19 @@ msgstr ""
msgid "New Order"
msgstr ""
-#: part/templates/part/stock.html:76
+#: part/templates/part/set_category.html:9
+msgid "Set category for the following parts"
+msgstr ""
+
+#: part/templates/part/set_category.html:32
+msgid "Remove part"
+msgstr ""
+
+#: part/templates/part/stock.html:8
+msgid "Part Stock"
+msgstr ""
+
+#: part/templates/part/stock.html:77
msgid "Create New Part"
msgstr ""
@@ -1931,168 +2269,168 @@ msgstr ""
msgid "Tracking"
msgstr ""
-#: part/views.py:75
+#: part/templates/part/track.html:8
+msgid "Part Tracking"
+msgstr ""
+
+#: part/views.py:74
msgid "Add part attachment"
msgstr ""
-#: part/views.py:123
+#: part/views.py:122
msgid "Part attachment updated"
msgstr ""
-#: part/views.py:138
+#: part/views.py:137
msgid "Delete Part Attachment"
msgstr ""
-#: part/views.py:144
+#: part/views.py:143
msgid "Deleted part attachment"
msgstr ""
-#: part/views.py:152
+#: part/views.py:151
msgid "Set Part Category"
msgstr ""
-#: part/views.py:200
+#: part/views.py:199
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
-#: part/views.py:235
+#: part/views.py:234
msgid "Create Variant"
msgstr ""
-#: part/views.py:305
+#: part/views.py:304
msgid "Duplicate Part"
msgstr ""
-#: part/views.py:310
+#: part/views.py:309
msgid "Copied part"
msgstr ""
-#: part/views.py:421
+#: part/views.py:420
msgid "Create new part"
msgstr ""
-#: part/views.py:426
+#: part/views.py:425
msgid "Created new part"
msgstr ""
-#: part/views.py:605
+#: part/views.py:599
msgid "Part QR Code"
msgstr ""
-#: part/views.py:622
+#: part/views.py:616
msgid "Upload Part Image"
msgstr ""
-#: part/views.py:627 part/views.py:662
+#: part/views.py:621 part/views.py:656
msgid "Updated part image"
msgstr ""
-#: part/views.py:636
+#: part/views.py:630
msgid "Select Part Image"
msgstr ""
-#: part/views.py:665
+#: part/views.py:659
msgid "Part image not found"
msgstr ""
-#: part/views.py:676
+#: part/views.py:670
msgid "Edit Part Properties"
msgstr ""
-#: part/views.py:698
+#: part/views.py:692
msgid "Validate BOM"
msgstr ""
-#: part/views.py:860
+#: part/views.py:854
msgid "No BOM file provided"
msgstr ""
-#: part/views.py:1121
+#: part/views.py:1115
msgid "Enter a valid quantity"
msgstr ""
-#: part/views.py:1145 part/views.py:1148
+#: part/views.py:1139 part/views.py:1142
msgid "Select valid part"
msgstr ""
-#: part/views.py:1154
+#: part/views.py:1148
msgid "Duplicate part selected"
msgstr ""
-#: part/views.py:1182
+#: part/views.py:1176
msgid "Select a part"
msgstr ""
-#: part/views.py:1186
+#: part/views.py:1180
msgid "Specify quantity"
msgstr ""
-#: part/views.py:1364
-msgid "Export Bill of Materials"
-msgstr ""
-
-#: part/views.py:1402
+#: part/views.py:1396
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:1409
+#: part/views.py:1403
msgid "Part was deleted"
msgstr ""
-#: part/views.py:1418
+#: part/views.py:1412
msgid "Part Pricing"
msgstr ""
-#: part/views.py:1540
+#: part/views.py:1534
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:1548
+#: part/views.py:1542
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:1555
+#: part/views.py:1549
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1563
+#: part/views.py:1557
msgid "Create Part Parameter"
msgstr ""
-#: part/views.py:1613
+#: part/views.py:1607
msgid "Edit Part Parameter"
msgstr ""
-#: part/views.py:1627
+#: part/views.py:1621
msgid "Delete Part Parameter"
msgstr ""
-#: part/views.py:1643
+#: part/views.py:1637
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:1678
+#: part/views.py:1672
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1684
+#: part/views.py:1678
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1692
+#: part/views.py:1686
msgid "Create new part category"
msgstr ""
-#: part/views.py:1743
+#: part/views.py:1737
msgid "Create BOM item"
msgstr ""
-#: part/views.py:1809
+#: part/views.py:1803
msgid "Edit BOM item"
msgstr ""
-#: part/views.py:1857
+#: part/views.py:1851
msgid "Confim BOM item deletion"
msgstr ""
@@ -2128,121 +2466,157 @@ msgstr ""
msgid "Set the destination as the default location for selected parts"
msgstr ""
-#: stock/models.py:210
+#: stock/models.py:218
#, python-brace-format
msgid ""
"A stock item with this serial number already exists for template part {part}"
msgstr ""
-#: stock/models.py:215
+#: stock/models.py:223
msgid "A stock item with this serial number already exists"
msgstr ""
-#: stock/models.py:234
+#: stock/models.py:254
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:244 stock/models.py:253
+#: stock/models.py:264 stock/models.py:273
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:245
+#: stock/models.py:265
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:261
+#: stock/models.py:281
msgid "Stock item cannot be created for a template Part"
msgstr ""
-#: stock/models.py:270
+#: stock/models.py:290
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:311
+#: stock/models.py:327
+msgid "Parent Stock Item"
+msgstr ""
+
+#: stock/models.py:335
+msgid "Base Part"
+msgstr ""
+
+#: stock/models.py:336
msgid "Base part"
msgstr ""
-#: stock/models.py:319
+#: stock/models.py:346
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:323
+#: stock/models.py:351 stock/templates/stock/stock_app_base.html:7
+msgid "Stock Location"
+msgstr ""
+
+#: stock/models.py:354
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:327
+#: stock/models.py:359
+msgid "Installed In"
+msgstr ""
+
+#: stock/models.py:362
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:331
-msgid "Item assigned to customer?"
-msgstr ""
-
-#: stock/models.py:334
+#: stock/models.py:368
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:339
+#: stock/models.py:380
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:348
+#: stock/models.py:384
+msgid "Stock Quantity"
+msgstr ""
+
+#: stock/models.py:393
+msgid "Source Build"
+msgstr ""
+
+#: stock/models.py:395
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:357
+#: stock/models.py:402
+msgid "Source Purchase Order"
+msgstr ""
+
+#: stock/models.py:405
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:374
+#: stock/models.py:411
+msgid "Destination Sales Order"
+msgstr ""
+
+#: stock/models.py:418
+msgid "Destination Build Order"
+msgstr ""
+
+#: stock/models.py:431
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:381 stock/templates/stock/item_notes.html:13
+#: stock/models.py:441 stock/templates/stock/item_notes.html:13
#: stock/templates/stock/item_notes.html:29
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:516
+#: stock/models.py:605
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:522
+#: stock/models.py:611
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:525 stock/models.py:528
+#: stock/models.py:614 stock/models.py:617
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:531
+#: stock/models.py:620
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:541
+#: stock/models.py:630
msgid "Serial numbers already exist: "
msgstr ""
-#: stock/models.py:563
+#: stock/models.py:652
msgid "Add serial number"
msgstr ""
-#: stock/models.py:566
+#: stock/models.py:655
#, python-brace-format
msgid "Serialized {n} items"
msgstr ""
-#: stock/models.py:866
+#: stock/models.py:752
+msgid "StockItem cannot be moved as it is not in stock"
+msgstr ""
+
+#: stock/models.py:961
msgid "Tracking entry title"
msgstr ""
-#: stock/models.py:868
+#: stock/models.py:963
msgid "Entry notes"
msgstr ""
-#: stock/models.py:870
+#: stock/models.py:965
msgid "Link to external page for further information"
msgstr ""
@@ -2250,12 +2624,6 @@ msgstr ""
msgid "Stock Tracking Information"
msgstr ""
-#: stock/templates/stock/item_base.html:8
-#: stock/templates/stock/item_base.html:56
-#: stock/templates/stock/stock_adjust.html:16
-msgid "Stock Item"
-msgstr ""
-
#: stock/templates/stock/item_base.html:20
msgid "This stock item is allocated to Sales Order"
msgstr ""
@@ -2279,40 +2647,31 @@ msgid ""
"This stock item will be automatically deleted when all stock is depleted."
msgstr ""
-#: stock/templates/stock/item_base.html:45
-msgid "This stock item was split from "
-msgstr ""
-
-#: stock/templates/stock/item_base.html:105
+#: stock/templates/stock/item_base.html:103
msgid "Stock Item Details"
msgstr ""
-#: stock/templates/stock/item_base.html:119
+#: stock/templates/stock/item_base.html:117
msgid "Belongs To"
msgstr ""
-#: stock/templates/stock/item_base.html:125
-#: stock/templates/stock/stock_adjust.html:17
-msgid "Location"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:132
+#: stock/templates/stock/item_base.html:142
msgid "Unique Identifier"
msgstr ""
-#: stock/templates/stock/item_base.html:139
-msgid "Serial Number"
+#: stock/templates/stock/item_base.html:183
+msgid "Parent Item"
msgstr ""
-#: stock/templates/stock/item_base.html:198
+#: stock/templates/stock/item_base.html:208
msgid "Last Updated"
msgstr ""
-#: stock/templates/stock/item_base.html:203
+#: stock/templates/stock/item_base.html:213
msgid "Last Stocktake"
msgstr ""
-#: stock/templates/stock/item_base.html:207
+#: stock/templates/stock/item_base.html:217
msgid "No stocktake performed"
msgstr ""
@@ -2324,6 +2683,22 @@ msgstr ""
msgid "This stock item does not have any child items"
msgstr ""
+#: stock/templates/stock/location.html:13
+msgid "All stock items"
+msgstr ""
+
+#: stock/templates/stock/location.html:22
+msgid "Count stock items"
+msgstr ""
+
+#: stock/templates/stock/location.html:25
+msgid "Edit stock location"
+msgstr ""
+
+#: stock/templates/stock/location.html:28
+msgid "Delete stock location"
+msgstr ""
+
#: stock/templates/stock/location.html:37
msgid "Location Details"
msgstr ""
@@ -2355,10 +2730,6 @@ msgstr ""
msgid "Stock Locations"
msgstr ""
-#: stock/templates/stock/stock_app_base.html:7
-msgid "Stock Location"
-msgstr ""
-
#: stock/templates/stock/tabs.html:8
msgid "Children"
msgstr ""
@@ -2379,134 +2750,134 @@ msgstr ""
msgid "Stock Export Options"
msgstr ""
-#: stock/views.py:278
+#: stock/views.py:276
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:301
+#: stock/views.py:299
msgid "Adjust Stock"
msgstr ""
-#: stock/views.py:410
+#: stock/views.py:408
msgid "Move Stock Items"
msgstr ""
-#: stock/views.py:411
+#: stock/views.py:409
msgid "Count Stock Items"
msgstr ""
-#: stock/views.py:412
+#: stock/views.py:410
msgid "Remove From Stock"
msgstr ""
-#: stock/views.py:413
+#: stock/views.py:411
msgid "Add Stock Items"
msgstr ""
-#: stock/views.py:414
+#: stock/views.py:412
msgid "Delete Stock Items"
msgstr ""
-#: stock/views.py:442
+#: stock/views.py:440
msgid "Must enter integer value"
msgstr ""
-#: stock/views.py:447
+#: stock/views.py:445
msgid "Quantity must be positive"
msgstr ""
-#: stock/views.py:454
+#: stock/views.py:452
#, python-brace-format
msgid "Quantity must not exceed {x}"
msgstr ""
-#: stock/views.py:462
+#: stock/views.py:460
msgid "Confirm stock adjustment"
msgstr ""
-#: stock/views.py:533
+#: stock/views.py:531
#, python-brace-format
msgid "Added stock to {n} items"
msgstr ""
-#: stock/views.py:548
+#: stock/views.py:546
#, python-brace-format
msgid "Removed stock from {n} items"
msgstr ""
-#: stock/views.py:561
+#: stock/views.py:559
#, python-brace-format
msgid "Counted stock for {n} items"
msgstr ""
-#: stock/views.py:589
+#: stock/views.py:587
msgid "No items were moved"
msgstr ""
-#: stock/views.py:592
+#: stock/views.py:590
#, python-brace-format
msgid "Moved {n} items to {dest}"
msgstr ""
-#: stock/views.py:611
+#: stock/views.py:609
#, python-brace-format
msgid "Deleted {n} stock items"
msgstr ""
-#: stock/views.py:623
+#: stock/views.py:621
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:659
+#: stock/views.py:657
msgid "Create new Stock Location"
msgstr ""
-#: stock/views.py:680
+#: stock/views.py:678
msgid "Serialize Stock"
msgstr ""
-#: stock/views.py:760
+#: stock/views.py:758
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:824
+#: stock/views.py:822
msgid "Copy Stock Item"
msgstr ""
-#: stock/views.py:892
+#: stock/views.py:893
msgid "Invalid quantity"
msgstr ""
-#: stock/views.py:895
+#: stock/views.py:896
msgid "Invalid part selection"
msgstr ""
-#: stock/views.py:942
+#: stock/views.py:943
#, python-brace-format
msgid "Created {n} new stock items"
msgstr ""
-#: stock/views.py:959 stock/views.py:972
+#: stock/views.py:960 stock/views.py:973
msgid "Created new stock item"
msgstr ""
-#: stock/views.py:989
+#: stock/views.py:990
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:1002
+#: stock/views.py:1003
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1013
+#: stock/views.py:1014
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1030
+#: stock/views.py:1031
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1039
+#: stock/views.py:1040
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -2518,6 +2889,18 @@ msgstr ""
msgid "No results found"
msgstr ""
+#: templates/InvenTree/settings/part.html:28
+msgid "No part parameter templates found"
+msgstr ""
+
+#: templates/InvenTree/settings/part.html:47
+msgid "Edit Template"
+msgstr ""
+
+#: templates/InvenTree/settings/part.html:48
+msgid "Delete Template"
+msgstr ""
+
#: templates/InvenTree/starred_parts.html:7
msgid "Starred Parts"
msgstr ""
@@ -2594,10 +2977,6 @@ msgstr ""
msgid "Search"
msgstr ""
-#: templates/stock_table.html:8
-msgid "New Stock Item"
-msgstr ""
-
#: templates/stock_table.html:12
msgid "Add stock"
msgstr ""
@@ -2622,70 +3001,74 @@ msgstr ""
msgid "Delete Stock"
msgstr ""
-#: templates/table_filters.html:22
+#: templates/table_filters.html:21
msgid "Include sublocations"
msgstr ""
-#: templates/table_filters.html:23
+#: templates/table_filters.html:22
msgid "Include stock in sublocations"
msgstr ""
-#: templates/table_filters.html:27
+#: templates/table_filters.html:26
msgid "Active parts"
msgstr ""
-#: templates/table_filters.html:28
+#: templates/table_filters.html:27
msgid "Show stock for active parts"
msgstr ""
-#: templates/table_filters.html:32 templates/table_filters.html:33
+#: templates/table_filters.html:31 templates/table_filters.html:32
msgid "Stock status"
msgstr ""
-#: templates/table_filters.html:37
+#: templates/table_filters.html:36
msgid "Is allocated"
msgstr ""
-#: templates/table_filters.html:38
+#: templates/table_filters.html:37
msgid "Item has been alloacted"
msgstr ""
-#: templates/table_filters.html:58
+#: templates/table_filters.html:46
+msgid "Build status"
+msgstr ""
+
+#: templates/table_filters.html:57 templates/table_filters.html:66
msgid "Order status"
msgstr ""
-#: templates/table_filters.html:69
+#: templates/table_filters.html:77
msgid "Include subcategories"
msgstr ""
-#: templates/table_filters.html:70
+#: templates/table_filters.html:78
msgid "Include parts in subcategories"
msgstr ""
-#: templates/table_filters.html:74
+#: templates/table_filters.html:82
msgid "Active"
msgstr ""
-#: templates/table_filters.html:75
+#: templates/table_filters.html:83
msgid "Show active parts"
msgstr ""
-#: templates/table_filters.html:79
+#: templates/table_filters.html:87
msgid "Template"
msgstr ""
-#: templates/table_filters.html:83
+#: templates/table_filters.html:91
msgid "Stock available"
msgstr ""
-#: templates/table_filters.html:87
+#: templates/table_filters.html:95
msgid "Low stock"
msgstr ""
-#: templates/table_filters.html:99
+#: templates/table_filters.html:107
msgid "Starred"
msgstr ""
-#: templates/table_filters.html:107
+#: templates/table_filters.html:115
msgid "Purchasable"
msgstr ""
diff --git a/InvenTree/order/templates/order/order_notes.html b/InvenTree/order/templates/order/order_notes.html
index 1d2c19c6cb..237098e10d 100644
--- a/InvenTree/order/templates/order/order_notes.html
+++ b/InvenTree/order/templates/order/order_notes.html
@@ -29,7 +29,7 @@
{% trans "Order Notes" %}
-
+
diff --git a/InvenTree/order/templates/order/order_wizard/select_parts.html b/InvenTree/order/templates/order/order_wizard/select_parts.html
index d0e65e8f22..9c7c90ac26 100644
--- a/InvenTree/order/templates/order/order_wizard/select_parts.html
+++ b/InvenTree/order/templates/order/order_wizard/select_parts.html
@@ -40,7 +40,7 @@
-
+
@@ -67,7 +67,7 @@
-
+
diff --git a/InvenTree/order/templates/order/order_wizard/select_pos.html b/InvenTree/order/templates/order/order_wizard/select_pos.html
index bd6c30f71b..a24c342e0f 100644
--- a/InvenTree/order/templates/order/order_wizard/select_pos.html
+++ b/InvenTree/order/templates/order/order_wizard/select_pos.html
@@ -45,7 +45,7 @@
title='Create new purchase order for {{ supplier.name }}'
type='button'
onclick='newPurchaseOrderFromOrderWizard()'>
-
+
diff --git a/InvenTree/order/templates/order/po_attachments.html b/InvenTree/order/templates/order/po_attachments.html
index e8e2b4bbff..388b7197b6 100644
--- a/InvenTree/order/templates/order/po_attachments.html
+++ b/InvenTree/order/templates/order/po_attachments.html
@@ -8,7 +8,7 @@
{% include 'order/po_tabs.html' with tab='attachments' %}
-{% trans "Purchase Order Attachments" %}
+{% trans "Purchase Order Attachments" %}
@@ -34,10 +34,10 @@
-
+
-
+
diff --git a/InvenTree/order/templates/order/po_tabs.html b/InvenTree/order/templates/order/po_tabs.html
index a04c97eba5..d5c7286c3f 100644
--- a/InvenTree/order/templates/order/po_tabs.html
+++ b/InvenTree/order/templates/order/po_tabs.html
@@ -12,6 +12,6 @@
- {% trans "Notes" %}{% if order.notes %} {% endif %}
+ {% trans "Notes" %}{% if order.notes %} {% endif %}
diff --git a/InvenTree/order/templates/order/receive_parts.html b/InvenTree/order/templates/order/receive_parts.html
index 3ebaa66889..f71959cdc0 100644
--- a/InvenTree/order/templates/order/receive_parts.html
+++ b/InvenTree/order/templates/order/receive_parts.html
@@ -41,7 +41,7 @@ Receive outstanding parts for {{ order }} - {{ order.description }}
-
+
diff --git a/InvenTree/order/templates/order/sales_order_notes.html b/InvenTree/order/templates/order/sales_order_notes.html
index 671b592569..959746667b 100644
--- a/InvenTree/order/templates/order/sales_order_notes.html
+++ b/InvenTree/order/templates/order/sales_order_notes.html
@@ -34,7 +34,7 @@ InvenTree | {% trans "Sales Order" %}
{% trans "Order Notes" %}
-
+
diff --git a/InvenTree/order/templates/order/so_attachments.html b/InvenTree/order/templates/order/so_attachments.html
index 82248fd5eb..ca4170beff 100644
--- a/InvenTree/order/templates/order/so_attachments.html
+++ b/InvenTree/order/templates/order/so_attachments.html
@@ -34,10 +34,10 @@
-
+
-
+
diff --git a/InvenTree/order/templates/order/so_tabs.html b/InvenTree/order/templates/order/so_tabs.html
index cb3740a073..95ccac7933 100644
--- a/InvenTree/order/templates/order/so_tabs.html
+++ b/InvenTree/order/templates/order/so_tabs.html
@@ -20,6 +20,6 @@
- {% trans "Notes" %}{% if order.notes %} {% endif %}
+ {% trans "Notes" %}{% if order.notes %} {% endif %}
\ No newline at end of file
diff --git a/InvenTree/order/views.py b/InvenTree/order/views.py
index 476a61b5e3..e68dca16ae 100644
--- a/InvenTree/order/views.py
+++ b/InvenTree/order/views.py
@@ -234,7 +234,7 @@ class PurchaseOrderNotes(UpdateView):
def get_success_url(self):
- return reverse('purchase-order-notes', kwargs={'pk': self.get_object().id})
+ return reverse('po-notes', kwargs={'pk': self.get_object().id})
def get_context_data(self, **kwargs):
diff --git a/InvenTree/part/models.py b/InvenTree/part/models.py
index a03f11cbfa..021695f9bf 100644
--- a/InvenTree/part/models.py
+++ b/InvenTree/part/models.py
@@ -13,7 +13,7 @@ from django.urls import reverse
from django.db import models, transaction
from django.db.models import Sum
-from django.db.models import prefetch_related_objects
+from django.db.models.functions import Coalesce
from django.core.validators import MinValueValidator
from django.contrib.auth.models import User
@@ -41,6 +41,8 @@ from InvenTree.helpers import decimal2string, normalize
from InvenTree.status_codes import BuildStatus, StockStatus, PurchaseOrderStatus
+from build import models as BuildModels
+from order import models as OrderModels
from company.models import SupplierPart
from stock import models as StockModels
@@ -502,8 +504,7 @@ class Part(models.Model):
"""
total = self.total_stock
-
- total -= self.allocation_count
+ total -= self.allocation_count()
return max(total, 0)
@@ -594,46 +595,47 @@ class Part(models.Model):
return quantity
- @property
- def build_allocation(self):
- """ Return list of builds to which this part is allocated
+ def build_order_allocations(self):
+ """
+ Return all 'BuildItem' objects which allocate this part to Build objects
"""
- builds = []
+ return BuildModels.BuildItem.objects.filter(stock_item__part__id=self.id)
- for item in self.used_in.all().prefetch_related('part__builds'):
-
- active = item.part.active_builds
-
- for build in active:
- b = {}
-
- b['build'] = build
- b['quantity'] = item.quantity * build.quantity
-
- builds.append(b)
-
- prefetch_related_objects(builds, 'build_items')
-
- return builds
-
- @property
- def allocated_build_count(self):
- """ Return the total number of this part that are allocated for builds
+ def build_order_allocation_count(self):
+ """
+ Return the total amount of this part allocated to build orders
"""
- return sum([a['quantity'] for a in self.build_allocation])
+ query = self.build_order_allocations().aggregate(total=Coalesce(Sum('quantity'), 0))
+
+ return query['total']
+
+ def sales_order_allocations(self):
+ """
+ Return all sales-order-allocation objects which allocate this part to a SalesOrder
+ """
+
+ return OrderModels.SalesOrderAllocation.objects.filter(item__part__id=self.id)
+
+ def sales_order_allocation_count(self):
+ """
+ Return the tutal quantity of this part allocated to sales orders
+ """
+
+ query = self.sales_order_allocations().aggregate(total=Coalesce(Sum('quantity'), 0))
+
+ return query['total']
- @property
def allocation_count(self):
- """ Return true if any of this part is allocated:
-
- - To another build
- - To a customer order
+ """
+ Return the total quantity of stock allocated for this part,
+ against both build orders and sales orders.
"""
return sum([
- self.allocated_build_count,
+ self.build_order_allocation_count(),
+ self.sales_order_allocation_count(),
])
@property
@@ -645,7 +647,7 @@ class Part(models.Model):
- belongs_to is None
"""
- return self.stock_items.filter(StockModels.StockItem.IN_STOCK_FILTER).exclude(status__in=StockStatus.UNAVAILABLE_CODES)
+ return self.stock_items.filter(StockModels.StockItem.IN_STOCK_FILTER)
@property
def total_stock(self):
diff --git a/InvenTree/part/templates/part/allocation.html b/InvenTree/part/templates/part/allocation.html
index 77fa720403..7892fe30e5 100644
--- a/InvenTree/part/templates/part/allocation.html
+++ b/InvenTree/part/templates/part/allocation.html
@@ -1,24 +1,32 @@
{% extends "part/part_base.html" %}
-{% block details %}
{% load status_codes %}
+{% load i18n %}
+{% load inventree_extras %}
+
+{% block details %}
{% include "part/tabs.html" with tab="allocation" %}
-Part Allocation
+{% trans "Part Stock Allocations" %}
@@ -30,23 +38,16 @@
$("#build-table").inventreeTable({
columns: [
{
- title: 'Build',
+ title: '{% trans "Order" %}',
sortable: true,
},
{
- title: 'Making',
+ title: '{% trans "Stock Item" %}',
sortable: true,
},
{
- title: 'Allocated',
- sortable: false,
- formatter: function(value, row, index, field) {
- return parseFloat(value);
- },
- },
- {
- title: 'Status',
- sortable: false,
+ title: '{% trans "Quantity" %}',
+ sortable: true,
}
]
});
diff --git a/InvenTree/part/templates/part/attachments.html b/InvenTree/part/templates/part/attachments.html
index 88cb965eeb..b89a40e654 100644
--- a/InvenTree/part/templates/part/attachments.html
+++ b/InvenTree/part/templates/part/attachments.html
@@ -32,10 +32,10 @@
-
+
-
+
diff --git a/InvenTree/part/templates/part/bom.html b/InvenTree/part/templates/part/bom.html
index 374acc94fd..b35a0f1b5a 100644
--- a/InvenTree/part/templates/part/bom.html
+++ b/InvenTree/part/templates/part/bom.html
@@ -1,5 +1,6 @@
{% extends "part/part_base.html" %}
{% load static %}
+{% load i18n %}
{% block css %}
@@ -9,7 +10,7 @@
{% include 'part/tabs.html' with tab='bom' %}
-Bill of Materials
+{% trans "Bill of Materials" %}
{% if part.has_complete_bom_pricing == False %}
@@ -33,18 +34,16 @@
@@ -76,6 +75,10 @@
location.href = "{% url 'part-bom' part.id %}";
});
+ $('#bom-upload').click(function() {
+ location.href = "{% url 'upload-bom' part.id %}";
+ });
+
$("#bom-item-new").click(function () {
launchModalForm(
"{% url 'bom-item-create' %}?parent={{ part.id }}",
diff --git a/InvenTree/part/templates/part/bom_upload/select_fields.html b/InvenTree/part/templates/part/bom_upload/select_fields.html
index 21849f31f8..d49b1c12ce 100644
--- a/InvenTree/part/templates/part/bom_upload/select_fields.html
+++ b/InvenTree/part/templates/part/bom_upload/select_fields.html
@@ -38,7 +38,7 @@
{{ col.name }}
-
+
@@ -67,7 +67,7 @@
-
+
{{ forloop.counter }}
diff --git a/InvenTree/part/templates/part/bom_upload/select_parts.html b/InvenTree/part/templates/part/bom_upload/select_parts.html
index 9faeacc3ea..f5851e5d43 100644
--- a/InvenTree/part/templates/part/bom_upload/select_parts.html
+++ b/InvenTree/part/templates/part/bom_upload/select_parts.html
@@ -48,7 +48,7 @@
-
+
@@ -58,7 +58,7 @@
{% if item.column.guess == 'Part' %}
-
+
diff --git a/InvenTree/part/templates/part/notes.html b/InvenTree/part/templates/part/notes.html
index 4aace0fdae..afa215600d 100644
--- a/InvenTree/part/templates/part/notes.html
+++ b/InvenTree/part/templates/part/notes.html
@@ -29,7 +29,7 @@
{% trans "Part Notes" %}
-
+
diff --git a/InvenTree/part/templates/part/params.html b/InvenTree/part/templates/part/params.html
index f1d575d2b7..8ad4f61252 100644
--- a/InvenTree/part/templates/part/params.html
+++ b/InvenTree/part/templates/part/params.html
@@ -1,24 +1,25 @@
{% extends "part/part_base.html" %}
{% load static %}
+{% load i18n %}
{% block details %}
{% include "part/tabs.html" with tab='params' %}
-Part Parameters
+{% trans "Part Parameters" %}
- Name
- Value
- Units
+ {% trans "Name" %}
+ {% trans "Value" %}
+ {% trans "Units" %}
@@ -29,8 +30,8 @@
{{ param.template.units }}
-
-
+
+
diff --git a/InvenTree/part/templates/part/part_thumb.html b/InvenTree/part/templates/part/part_thumb.html
index 04efdd383f..e0314b1c7e 100644
--- a/InvenTree/part/templates/part/part_thumb.html
+++ b/InvenTree/part/templates/part/part_thumb.html
@@ -13,8 +13,8 @@
\ No newline at end of file
diff --git a/InvenTree/part/templates/part/set_category.html b/InvenTree/part/templates/part/set_category.html
index 71c8cc9975..36898762b4 100644
--- a/InvenTree/part/templates/part/set_category.html
+++ b/InvenTree/part/templates/part/set_category.html
@@ -1,17 +1,18 @@
{% extends "modal_form.html" %}
+{% load i18n %}
{% block form %}