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/notes.html b/InvenTree/build/templates/build/notes.html index 6e05a40c95..f54172ac21 100644 --- a/InvenTree/build/templates/build/notes.html +++ b/InvenTree/build/templates/build/notes.html @@ -30,7 +30,7 @@

{% trans "Build Notes" %}

- +

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" %}

- - - - + + + -{% for allocation in part.build_allocation %} +{% for allocation in part.build_order_allocations %} - - - - + + + + +{% endfor %} +{% for allocation in part.sales_order_allocations %} + + + + {% endfor %}
BuildMakingAllocatedStatus{% trans "Order" %}{% trans "Stock Item" %}{% trans "Quantity" %}
{{ allocation.build.title }}{{ allocation.build.quantity }} × {{ allocation.build.part.full_name }}{{ allocation.quantity }}{% build_status_label allocation.build.status %}{% trans "Build Order" %}: {{ allocation.build.pk }}{% trans "Stock Item" %}: {{ allocation.stock_item.id }}{% decimal allocation.quantity %}
{% trans "Sales Order" %}: {{ allocation.line.order.pk }}{% trans "Stock Item" %}: {{ allocation.item.id }}{% decimal allocation.quantity %}
@@ -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 @@
{% if editing_enabled %} - - - - - - + + + + {% elif part.active %} - + {% if part.is_bom_valid == False %} - + {% endif %} - + {% endif %}
@@ -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' %} {% endif %} - + {% endfor %} diff --git a/InvenTree/stock/templates/stock/tabs.html b/InvenTree/stock/templates/stock/tabs.html index 378f74e28e..62ee68bc4b 100644 --- a/InvenTree/stock/templates/stock/tabs.html +++ b/InvenTree/stock/templates/stock/tabs.html @@ -14,6 +14,6 @@ {% endif %} - {% trans "Notes" %}{% if item.notes %} {% endif %} + {% trans "Notes" %}{% if item.notes %} {% endif %} \ No newline at end of file diff --git a/InvenTree/templates/InvenTree/settings/currency.html b/InvenTree/templates/InvenTree/settings/currency.html index 4eb9420f05..9c602a67fc 100644 --- a/InvenTree/templates/InvenTree/settings/currency.html +++ b/InvenTree/templates/InvenTree/settings/currency.html @@ -67,8 +67,8 @@ { formatter: function(value, row, index, field) { - var bEdit = ""; - var bDel = ""; + var bEdit = ""; + var bDel = ""; var html = "
" + bEdit + bDel + "
"; diff --git a/InvenTree/templates/InvenTree/settings/part.html b/InvenTree/templates/InvenTree/settings/part.html index 2bbfaf2b03..96507c7ec6 100644 --- a/InvenTree/templates/InvenTree/settings/part.html +++ b/InvenTree/templates/InvenTree/settings/part.html @@ -1,14 +1,15 @@ {% extends "InvenTree/settings/settings.html" %} +{% load i18n %} {% block tabs %} {% include "InvenTree/settings/tabs.html" with tab='part' %} {% endblock %} {% block settings %} -

Part Parameter Templates

+

{% transa "Part Parameter Templates" %}

- +
@@ -24,7 +25,7 @@ queryParams: { ordering: 'name', }, - formatNoMatches: function() { return "No part parameter templates found"; }, + formatNoMatches: function() { return '{% trans "No part parameter templates found" %}'; }, columns: [ { field: 'pk', @@ -43,8 +44,8 @@ }, { formatter: function(value, row, index, field) { - var bEdit = ""; - var bDel = ""; + var bEdit = ""; + var bDel = ""; var html = "
" + bEdit + bDel + "
"; diff --git a/InvenTree/templates/InvenTree/settings/tabs.html b/InvenTree/templates/InvenTree/settings/tabs.html index c33f823be2..7b049e4fc6 100644 --- a/InvenTree/templates/InvenTree/settings/tabs.html +++ b/InvenTree/templates/InvenTree/settings/tabs.html @@ -1,16 +1,16 @@ \ No newline at end of file