diff --git a/InvenTree/InvenTree/settings.py b/InvenTree/InvenTree/settings.py index 7247caa8d9..42f4ba4660 100644 --- a/InvenTree/InvenTree/settings.py +++ b/InvenTree/InvenTree/settings.py @@ -11,17 +11,20 @@ database setup in this file. """ -import sys -import os import logging +import os +import sys import tempfile -import yaml - from datetime import datetime +import yaml from django.utils.translation import gettext_lazy as _ +def _is_true(x): + return x in [True, "True", "true", "Y", "y", "1"] + + # Build paths inside the project like this: os.path.join(BASE_DIR, ...) BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) @@ -36,11 +39,14 @@ with open(cfg_filename, 'r') as cfg: # Default action is to run the system in Debug mode # SECURITY WARNING: don't run with debug turned on in production! -DEBUG = CONFIG.get('debug', True) +DEBUG = _is_true(os.getenv("INVENTREE_DEBUG", CONFIG.get("debug", True))) # Configure logging settings - log_level = CONFIG.get('log_level', 'DEBUG').upper() +logging.basicConfig( + level=log_level, + format="%(asctime)s %(levelname)s %(message)s", +) if log_level not in ['DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL']: log_level = 'WARNING' @@ -59,20 +65,31 @@ LOGGING = { }, } -logging.basicConfig( - level=log_level, - format='%(asctime)s %(levelname)s %(message)s', -) - # Get a logger instance for this setup file logger = logging.getLogger(__name__) -# Read the autogenerated key-file -key_file_name = os.path.join(BASE_DIR, 'secret_key.txt') -logger.info(f'Loading SECRET_KEY from {key_file_name}') -key_file = open(key_file_name, 'r') - -SECRET_KEY = key_file.read().strip() +if os.getenv("INVENTREE_SECRET_KEY"): + # Secret key passed in directly + SECRET_KEY = os.getenv("INVENTREE_SECRET_KEY").strip() + logger.info("SECRET_KEY loaded by INVENTREE_SECRET_KEY") +else: + # Secret key passed in by file location + key_file = os.getenv("INVENTREE_SECRET_KEY_FILE") + if key_file: + if os.path.isfile(key_file): + logger.info("SECRET_KEY loaded by INVENTREE_SECRET_KEY_FILE") + else: + logger.error(f"Secret key file {key_file} not found") + exit(-1) + else: + # default secret key location + key_file = os.path.join(BASE_DIR, "secret_key.txt") + logger.info(f"SECRET_KEY loaded from {key_file}") + try: + SECRET_KEY = open(key_file, "r").read().strip() + except Exception: + logger.exception(f"Couldn't load keyfile {key_file}") + sys.exit(-1) # List of allowed hosts (default = allow all) ALLOWED_HOSTS = CONFIG.get('allowed_hosts', ['*']) @@ -112,7 +129,7 @@ MEDIA_ROOT = os.path.abspath(CONFIG.get('media_root', os.path.join(BASE_DIR, 'me if DEBUG: logger.info("InvenTree running in DEBUG mode") - + logger.info(f"MEDIA_ROOT: '{MEDIA_ROOT}'") logger.info(f"STATIC_ROOT: '{STATIC_ROOT}'") @@ -315,7 +332,7 @@ else: - However there may be reason to configure the DB via environmental variables - The following code lets the user "mix and match" database configuration """ - + logger.info("Configuring database backend:") # Extract database configuration from the config.yaml file @@ -341,7 +358,7 @@ else: # Check that required database configuration options are specified reqiured_keys = ['ENGINE', 'NAME'] - + for key in reqiured_keys: if key not in db_config: error_msg = f'Missing required database configuration value {key} in config.yaml' diff --git a/InvenTree/InvenTree/static/script/inventree/tables.js b/InvenTree/InvenTree/static/script/inventree/tables.js index 1a50780393..4d868f94b4 100644 --- a/InvenTree/InvenTree/static/script/inventree/tables.js +++ b/InvenTree/InvenTree/static/script/inventree/tables.js @@ -131,8 +131,7 @@ $.fn.inventreeTable = function(options) { // Callback when a column is changed options.onColumnSwitch = function(field, checked) { - console.log(`${field} -> ${checked}`); - + var columns = table.bootstrapTable('getVisibleColumns'); var text = visibleColumnString(columns); diff --git a/InvenTree/common/models.py b/InvenTree/common/models.py index 1e9c91ab68..0fd924a77a 100644 --- a/InvenTree/common/models.py +++ b/InvenTree/common/models.py @@ -160,6 +160,13 @@ class InvenTreeSetting(models.Model): 'validator': bool, }, + 'PART_SHOW_QUANTITY_IN_FORMS': { + 'name': _('Show Quantity in Forms'), + 'description': _('Display available part quantity in some forms'), + 'default': True, + 'validator': bool, + }, + 'STOCK_ENABLE_EXPIRY': { 'name': _('Stock Expiry'), 'description': _('Enable stock expiry functionality'), diff --git a/InvenTree/company/fixtures/company.yaml b/InvenTree/company/fixtures/company.yaml index 69edee693a..8301eb0f5e 100644 --- a/InvenTree/company/fixtures/company.yaml +++ b/InvenTree/company/fixtures/company.yaml @@ -5,20 +5,29 @@ fields: name: ACME description: A Cool Military Enterprise + - model: company.company pk: 2 fields: name: Appel Computers description: Think more differenter + - model: company.company pk: 3 fields: name: Zerg Corp description: We eat the competition + - model: company.company pk: 4 fields: name: A customer description: A company that we sell things to! is_customer: True - \ No newline at end of file + +- model: company.company + pk: 5 + fields: + name: Another customer! + description: Yet another company + is_customer: True diff --git a/InvenTree/locale/de/LC_MESSAGES/django.mo b/InvenTree/locale/de/LC_MESSAGES/django.mo index b2a1691aac..71cbdf3e9d 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 388233e51c..7ddbe1b10f 100644 --- a/InvenTree/locale/de/LC_MESSAGES/django.po +++ b/InvenTree/locale/de/LC_MESSAGES/django.po @@ -1,51 +1,46 @@ +# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. # -# Christian Schlüter , 2020. +#, fuzzy msgid "" msgstr "" -"Project-Id-Version: \n" +"Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-01-13 16:37+0000\n" -"PO-Revision-Date: 2020-05-03 11:32+0200\n" -"Last-Translator: Christian Schlüter \n" -"Language-Team: C \n" -"Language: de\n" +"POT-Creation-Date: 2021-01-14 13:51+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Lokalize 19.12.0\n" #: InvenTree/api.py:90 msgid "No action specified" -msgstr "Keine Aktion angegeben" +msgstr "" #: InvenTree/api.py:104 msgid "No matching action found" -msgstr "Keine passende Aktion gefunden" +msgstr "" #: InvenTree/fields.py:44 -#, fuzzy -#| msgid "Entry notes" msgid "Enter date" -msgstr "Eintrags-Notizen" +msgstr "" #: InvenTree/forms.py:110 build/forms.py:90 build/forms.py:178 msgid "Confirm" -msgstr "Bestätigen" +msgstr "" #: InvenTree/forms.py:126 -#, fuzzy -#| msgid "Confim BOM item deletion" msgid "Confirm item deletion" -msgstr "Löschung von BOM-Position bestätigen" +msgstr "" #: InvenTree/forms.py:158 -#, fuzzy -#| msgid "Create new part" msgid "Enter new password" -msgstr "Neues Teil anlegen" +msgstr "" #: InvenTree/forms.py:165 msgid "Confirm new password" @@ -56,154 +51,143 @@ msgid "Apply Theme" msgstr "" #: InvenTree/forms.py:230 -#, fuzzy -#| msgid "Set Part Category" msgid "Select Category" -msgstr "Teilkategorie auswählen" +msgstr "" -#: InvenTree/helpers.py:361 order/models.py:216 order/models.py:298 +#: InvenTree/helpers.py:361 order/models.py:232 order/models.py:330 #: stock/views.py:1952 msgid "Invalid quantity provided" -msgstr "Keine gültige Menge" +msgstr "" #: InvenTree/helpers.py:364 msgid "Empty serial number string" -msgstr "Keine Seriennummer angegeben" +msgstr "" #: InvenTree/helpers.py:385 #, python-brace-format msgid "Duplicate serial: {n}" -msgstr "Doppelte Seriennummer: {n}" +msgstr "" #: InvenTree/helpers.py:389 InvenTree/helpers.py:392 InvenTree/helpers.py:395 #, python-brace-format msgid "Invalid group: {g}" -msgstr "Ungültige Gruppe: {g}" +msgstr "" #: InvenTree/helpers.py:400 -#, fuzzy, python-brace-format -#| msgid "Duplicate serial: {n}" +#, python-brace-format msgid "Duplicate serial: {g}" -msgstr "Doppelte Seriennummer: {n}" +msgstr "" #: InvenTree/helpers.py:408 msgid "No serial numbers found" -msgstr "Keine Seriennummern gefunden" +msgstr "" #: InvenTree/helpers.py:412 #, python-brace-format msgid "Number of unique serial number ({s}) must match quantity ({q})" msgstr "" -"Anzahl der eindeutigen Seriennummern ({s}) muss mit der Anzahl ({q}) " -"übereinstimmen" #: InvenTree/models.py:60 msgid "Select file to attach" -msgstr "Datei zum Anhängen auswählen" +msgstr "" #: InvenTree/models.py:62 msgid "File comment" -msgstr "Datei-Kommentar" +msgstr "" -#: InvenTree/models.py:68 templates/js/stock.js:759 +#: InvenTree/models.py:68 templates/js/stock.js:861 msgid "User" -msgstr "Benutzer" +msgstr "" #: InvenTree/models.py:106 part/models.py:647 #: part/templates/part/params.html:24 templates/js/part.js:129 msgid "Name" -msgstr "Name" +msgstr "" #: InvenTree/models.py:112 -#, fuzzy -#| msgid "Description of the company" msgid "Description (optional)" -msgstr "Firmenbeschreibung" +msgstr "" -#: InvenTree/settings.py:422 +#: InvenTree/settings.py:439 msgid "English" -msgstr "Englisch" +msgstr "" -#: InvenTree/settings.py:423 +#: InvenTree/settings.py:440 msgid "German" -msgstr "Deutsch" +msgstr "" -#: InvenTree/settings.py:424 +#: InvenTree/settings.py:441 msgid "French" -msgstr "Französisch" +msgstr "" -#: InvenTree/settings.py:425 +#: InvenTree/settings.py:442 msgid "Polish" -msgstr "Polnisch" +msgstr "" #: InvenTree/status.py:24 msgid "Celery worker check failed" msgstr "" #: InvenTree/status.py:27 -#, fuzzy -#| msgid "Instance Name" msgid "InvenTree system health checks failed" -msgstr "Instanzname" +msgstr "" #: InvenTree/status_codes.py:94 InvenTree/status_codes.py:135 #: InvenTree/status_codes.py:228 msgid "Pending" -msgstr "Ausstehend" +msgstr "" #: InvenTree/status_codes.py:95 msgid "Placed" -msgstr "Platziert" +msgstr "" #: InvenTree/status_codes.py:96 InvenTree/status_codes.py:231 msgid "Complete" -msgstr "Fertig" +msgstr "" #: InvenTree/status_codes.py:97 InvenTree/status_codes.py:137 #: InvenTree/status_codes.py:230 msgid "Cancelled" -msgstr "Storniert" +msgstr "" #: InvenTree/status_codes.py:98 InvenTree/status_codes.py:138 #: InvenTree/status_codes.py:180 msgid "Lost" -msgstr "Verloren" +msgstr "" #: InvenTree/status_codes.py:99 InvenTree/status_codes.py:139 #: InvenTree/status_codes.py:182 msgid "Returned" -msgstr "Zurückgegeben" +msgstr "" #: InvenTree/status_codes.py:136 #: order/templates/order/sales_order_base.html:121 msgid "Shipped" -msgstr "Versendet" +msgstr "" #: InvenTree/status_codes.py:176 msgid "OK" -msgstr "OK" +msgstr "" #: InvenTree/status_codes.py:177 msgid "Attention needed" -msgstr "erfordert Eingriff" +msgstr "" #: InvenTree/status_codes.py:178 msgid "Damaged" -msgstr "Beschädigt" +msgstr "" #: InvenTree/status_codes.py:179 msgid "Destroyed" -msgstr "Zerstört" +msgstr "" #: InvenTree/status_codes.py:181 msgid "Rejected" msgstr "" #: InvenTree/status_codes.py:229 -#, fuzzy -#| msgid "Location" msgid "Production" -msgstr "Standort" +msgstr "" #: InvenTree/validators.py:22 msgid "Not a valid currency code" @@ -211,69 +195,57 @@ msgstr "" #: InvenTree/validators.py:50 msgid "Invalid character in part name" -msgstr "Ungültiger Buchstabe im Teilenamen" +msgstr "" #: InvenTree/validators.py:63 msgid "IPN must match regex pattern" -msgstr "IPN muss zu Regex-Muster passen" +msgstr "" #: InvenTree/validators.py:77 InvenTree/validators.py:91 #: InvenTree/validators.py:105 -#, fuzzy -#| msgid "IPN must match regex pattern" msgid "Reference must match pattern" -msgstr "IPN muss zu Regex-Muster passen" +msgstr "" #: InvenTree/validators.py:113 #, python-brace-format msgid "Illegal character in name ({x})" -msgstr "Ungültiges Zeichen im Namen ({x})" +msgstr "" #: InvenTree/validators.py:132 InvenTree/validators.py:148 msgid "Overage value must not be negative" -msgstr "Überschuss-Wert darf nicht negativ sein" +msgstr "" #: InvenTree/validators.py:150 msgid "Overage must not exceed 100%" -msgstr "Überschuss darf 100% nicht überschreiten" +msgstr "" #: InvenTree/validators.py:157 msgid "Overage must be an integer value or a percentage" -msgstr "Überschuss muss eine Ganzzahl oder ein Prozentwert sein" +msgstr "" #: InvenTree/views.py:495 -#, fuzzy -#| msgid "Delete BOM Item" msgid "Delete Item" -msgstr "BOM-Position löschen" +msgstr "" #: InvenTree/views.py:544 -#, fuzzy -#| msgid "Confim BOM item deletion" msgid "Check box to confirm item deletion" -msgstr "Löschung von BOM-Position bestätigen" +msgstr "" #: InvenTree/views.py:559 templates/InvenTree/settings/user.html:18 -#, fuzzy -#| msgid "No user information" msgid "Edit User Information" -msgstr "Keine Benutzerinformation" +msgstr "" #: InvenTree/views.py:570 templates/InvenTree/settings/user.html:22 -#, fuzzy -#| msgid "Select part" msgid "Set Password" -msgstr "Teil auswählen" +msgstr "" #: InvenTree/views.py:589 msgid "Password fields must match" msgstr "" #: InvenTree/views.py:795 templates/navbar.html:78 -#, fuzzy -#| msgid "No user information" msgid "System Information" -msgstr "Keine Benutzerinformation" +msgstr "" #: barcode/api.py:53 barcode/api.py:150 msgid "Must provide barcode_data parameter" @@ -292,10 +264,8 @@ msgid "Must provide stockitem parameter" msgstr "" #: barcode/api.py:160 -#, fuzzy -#| msgid "No matching action found" msgid "No matching stock item found" -msgstr "Keine passende Aktion gefunden" +msgstr "" #: barcode/api.py:190 msgid "Barcode already matches StockItem object" @@ -314,22 +284,16 @@ msgid "Barcode hash already matches StockItem object" msgstr "" #: barcode/api.py:222 -#, fuzzy -#| msgid "Create new Stock Item" msgid "Barcode associated with StockItem" -msgstr "Neues Lagerobjekt hinzufügen" +msgstr "" #: build/forms.py:34 -#, fuzzy -#| msgid "Order reference" msgid "Build Order reference" -msgstr "Bestell-Referenz" +msgstr "" #: build/forms.py:35 -#, fuzzy -#| msgid "No destination set" msgid "Order target date" -msgstr "Kein Ziel gesetzt" +msgstr "" #: build/forms.py:39 build/models.py:206 msgid "" @@ -338,7 +302,7 @@ msgstr "" #: build/forms.py:78 build/templates/build/auto_allocate.html:17 #: build/templates/build/build_base.html:83 -#: build/templates/build/detail.html:29 common/models.py:596 +#: build/templates/build/detail.html:29 common/models.py:603 #: company/forms.py:112 company/templates/company/supplier_part_pricing.html:75 #: order/templates/order/order_wizard/select_parts.html:32 #: order/templates/order/purchase_order_detail.html:179 @@ -351,106 +315,84 @@ msgstr "" #: stock/templates/stock/item_base.html:57 #: stock/templates/stock/item_base.html:234 #: stock/templates/stock/stock_adjust.html:18 templates/js/barcode.js:338 -#: templates/js/bom.js:195 templates/js/build.js:420 templates/js/stock.js:750 -#: templates/js/stock.js:989 +#: templates/js/bom.js:195 templates/js/build.js:420 templates/js/stock.js:852 +#: templates/js/stock.js:1091 msgid "Quantity" -msgstr "Anzahl" +msgstr "" #: build/forms.py:79 -#, fuzzy -#| msgid "Serial number for this item" msgid "Enter quantity for build output" -msgstr "Seriennummer für dieses Teil" +msgstr "" #: build/forms.py:83 stock/forms.py:117 -#, fuzzy -#| msgid "Serial Number" msgid "Serial numbers" -msgstr "Seriennummer" +msgstr "" #: build/forms.py:85 -#, fuzzy -#| msgid "Serial number for this item" msgid "Enter serial numbers for build outputs" -msgstr "Seriennummer für dieses Teil" +msgstr "" #: build/forms.py:91 -#, fuzzy -#| msgid "Confirm completion of build" msgid "Confirm creation of build outut" -msgstr "Baufertigstellung bestätigen" +msgstr "" #: build/forms.py:111 -#, fuzzy -#| msgid "Confirm completion of build" msgid "Confirm deletion of build output" -msgstr "Baufertigstellung bestätigen" +msgstr "" #: build/forms.py:132 -#, fuzzy -#| msgid "Confirm unallocation of build stock" msgid "Confirm unallocation of stock" -msgstr "Zuweisungsaufhebung bestätigen" +msgstr "" #: build/forms.py:156 msgid "Confirm stock allocation" -msgstr "Lagerbestandszuordnung bestätigen" +msgstr "" #: build/forms.py:179 -#, fuzzy -#| msgid "Mark order as complete" msgid "Mark build as complete" -msgstr "Bestellung als vollständig markieren" +msgstr "" #: build/forms.py:203 -#, fuzzy -#| msgid "Location Details" msgid "Location of completed parts" -msgstr "Standort-Details" +msgstr "" #: build/forms.py:208 -#, fuzzy -#| msgid "Confirm stock allocation" msgid "Confirm completion with incomplete stock allocation" -msgstr "Lagerbestandszuordnung bestätigen" +msgstr "" #: build/forms.py:211 msgid "Confirm build completion" -msgstr "Bau-Fertigstellung bestätigen" +msgstr "" #: build/forms.py:231 build/views.py:68 msgid "Confirm build cancellation" -msgstr "Bauabbruch bestätigen" +msgstr "" #: build/forms.py:245 -#, fuzzy -#| msgid "Select stock item to allocate" msgid "Select quantity of stock to allocate" -msgstr "Lagerobjekt für Zuordnung auswählen" +msgstr "" #: build/models.py:61 build/templates/build/build_base.html:8 #: build/templates/build/build_base.html:35 #: part/templates/part/allocation.html:20 msgid "Build Order" -msgstr "Bauauftrag" +msgstr "" #: build/models.py:62 build/templates/build/index.html:8 #: build/templates/build/index.html:15 order/templates/order/so_builds.html:11 #: order/templates/order/so_tabs.html:9 part/templates/part/tabs.html:31 -#: templates/InvenTree/settings/tabs.html:28 users/models.py:34 +#: templates/InvenTree/settings/tabs.html:28 users/models.py:36 msgid "Build Orders" -msgstr "Bauaufträge" +msgstr "" #: build/models.py:108 -#, fuzzy -#| msgid "Order Reference" msgid "Build Order Reference" -msgstr "Bestellreferenz" +msgstr "" #: build/models.py:109 order/templates/order/purchase_order_detail.html:174 #: templates/js/bom.js:187 templates/js/build.js:509 msgid "Reference" -msgstr "Referenz" +msgstr "" #: build/models.py:116 build/templates/build/detail.html:19 #: company/models.py:359 company/templates/company/detail.html:23 @@ -460,72 +402,66 @@ msgstr "Referenz" #: part/templates/part/detail.html:51 part/templates/part/set_category.html:14 #: templates/InvenTree/search.html:147 #: templates/InvenTree/settings/header.html:9 templates/js/bom.js:180 -#: templates/js/bom.js:517 templates/js/build.js:664 templates/js/company.js:56 -#: templates/js/order.js:175 templates/js/order.js:263 templates/js/part.js:188 +#: templates/js/bom.js:549 templates/js/build.js:664 templates/js/company.js:56 +#: templates/js/order.js:180 templates/js/order.js:274 templates/js/part.js:188 #: templates/js/part.js:271 templates/js/part.js:391 templates/js/part.js:572 -#: templates/js/stock.js:501 templates/js/stock.js:731 +#: templates/js/stock.js:511 templates/js/stock.js:833 msgid "Description" -msgstr "Beschreibung" +msgstr "" #: build/models.py:119 msgid "Brief description of the build" -msgstr "Kurze Beschreibung des Baus" +msgstr "" #: build/models.py:128 build/templates/build/build_base.html:113 #: build/templates/build/detail.html:75 msgid "Parent Build" -msgstr "Eltern-Bau" +msgstr "" #: build/models.py:129 -#, fuzzy -#| msgid "SalesOrder to which this build is allocated" msgid "BuildOrder to which this build is allocated" -msgstr "Bestellung, die diesem Bau zugwiesen ist" +msgstr "" #: build/models.py:134 build/templates/build/auto_allocate.html:16 #: build/templates/build/build_base.html:78 -#: build/templates/build/detail.html:24 order/models.py:623 +#: build/templates/build/detail.html:24 order/models.py:651 #: order/templates/order/order_wizard/select_parts.html:30 #: order/templates/order/purchase_order_detail.html:148 #: order/templates/order/receive_parts.html:19 part/models.py:316 #: part/templates/part/part_app_base.html:7 part/templates/part/related.html:26 #: part/templates/part/set_category.html:13 templates/InvenTree/search.html:133 -#: templates/js/barcode.js:336 templates/js/bom.js:153 templates/js/bom.js:502 +#: templates/js/barcode.js:336 templates/js/bom.js:153 templates/js/bom.js:534 #: templates/js/build.js:669 templates/js/company.js:138 -#: templates/js/part.js:252 templates/js/part.js:357 templates/js/stock.js:475 -#: templates/js/stock.js:1061 +#: templates/js/part.js:252 templates/js/part.js:357 templates/js/stock.js:485 +#: templates/js/stock.js:1163 msgid "Part" -msgstr "Teil" +msgstr "" #: build/models.py:142 msgid "Select part to build" -msgstr "Teil für den Bau wählen" +msgstr "" #: build/models.py:147 msgid "Sales Order Reference" -msgstr "Bestellungsreferenz" +msgstr "" #: build/models.py:151 msgid "SalesOrder to which this build is allocated" -msgstr "Bestellung, die diesem Bau zugwiesen ist" +msgstr "" #: build/models.py:156 msgid "Source Location" -msgstr "Quell-Standort" +msgstr "" #: build/models.py:160 msgid "" "Select location to take stock from for this build (leave blank to take from " "any stock location)" msgstr "" -"Lager-Entnahmestandort für diesen Bau wählen (oder leer lassen für einen " -"beliebigen Lager-Standort)" #: build/models.py:165 -#, fuzzy -#| msgid "Destination stock location" msgid "Destination Location" -msgstr "Ziel-Lagerbestand" +msgstr "" #: build/models.py:169 msgid "Select location where the completed items will be stored" @@ -533,43 +469,37 @@ msgstr "" #: build/models.py:173 msgid "Build Quantity" -msgstr "Bau-Anzahl" +msgstr "" #: build/models.py:176 -#, fuzzy -#| msgid "Number of parts to build" msgid "Number of stock items to build" -msgstr "Anzahl der zu bauenden Teile" +msgstr "" #: build/models.py:180 -#, fuzzy -#| msgid "Completed" msgid "Completed items" -msgstr "Fertig" +msgstr "" #: build/models.py:182 -#, fuzzy -#| msgid "Delete this Stock Item when stock is depleted" msgid "Number of stock items which have been completed" -msgstr "Objekt löschen wenn Lagerbestand aufgebraucht" +msgstr "" #: build/models.py:186 part/templates/part/part_base.html:155 msgid "Build Status" -msgstr "Bau-Status" +msgstr "" #: build/models.py:190 msgid "Build status code" -msgstr "Bau-Statuscode" +msgstr "" #: build/models.py:194 stock/models.py:403 msgid "Batch Code" -msgstr "Losnummer" +msgstr "" #: build/models.py:198 msgid "Batch code for this build output" -msgstr "Chargennummer für diese Bau-Ausgabe" +msgstr "" -#: build/models.py:205 order/models.py:404 +#: build/models.py:205 order/models.py:436 msgid "Target completion date" msgstr "" @@ -579,11 +509,11 @@ msgstr "" #: part/templates/part/detail.html:80 part/templates/part/part_base.html:102 #: stock/models.py:397 stock/templates/stock/item_base.html:317 msgid "External Link" -msgstr "Externer Link" +msgstr "" #: build/models.py:220 part/models.py:705 stock/models.py:399 msgid "Link to external URL" -msgstr "Link zu einer externen URL" +msgstr "" #: build/models.py:224 build/templates/build/tabs.html:23 company/models.py:366 #: company/templates/company/tabs.html:33 order/templates/order/po_tabs.html:18 @@ -592,146 +522,117 @@ msgstr "Link zu einer externen URL" #: part/templates/part/tabs.html:73 stock/forms.py:315 stock/forms.py:347 #: stock/forms.py:375 stock/models.py:469 stock/models.py:1522 #: stock/templates/stock/tabs.html:26 templates/js/barcode.js:391 -#: templates/js/bom.js:263 templates/js/stock.js:117 templates/js/stock.js:603 +#: templates/js/bom.js:295 templates/js/stock.js:127 templates/js/stock.js:618 msgid "Notes" -msgstr "Notizen" +msgstr "" #: build/models.py:225 msgid "Extra build notes" -msgstr "Notizen für den Bau" +msgstr "" #: build/models.py:610 -#, fuzzy -#| msgid "No action specified" msgid "No build output specified" -msgstr "Keine Aktion angegeben" +msgstr "" #: build/models.py:613 msgid "Build output is already completed" msgstr "" #: build/models.py:616 -#, fuzzy -#| msgid "Quantity does not match serial numbers" msgid "Build output does not match Build Order" -msgstr "Anzahl stimmt nicht mit den Seriennummern überein" +msgstr "" #: build/models.py:691 -#, fuzzy -#| msgid "Complete Build" msgid "Completed build output" -msgstr "Bau fertigstellen" +msgstr "" #: build/models.py:933 msgid "BuildItem must be unique for build, stock_item and install_into" msgstr "" #: build/models.py:955 -#, fuzzy -#| msgid "Allocate Stock to Build" msgid "Build item must specify a build output" -msgstr "Lagerbestand dem Bau zuweisen" +msgstr "" #: build/models.py:960 #, 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" +msgstr "" #: build/models.py:964 #, 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:971 order/models.py:707 +#: build/models.py:971 order/models.py:735 msgid "StockItem is over-allocated" -msgstr "Zu viele Lagerobjekte zugewiesen" +msgstr "" -#: build/models.py:975 order/models.py:710 +#: build/models.py:975 order/models.py:738 msgid "Allocation quantity must be greater than zero" -msgstr "Anzahl muss größer null sein" +msgstr "" #: build/models.py:979 msgid "Quantity must be 1 for serialized stock" -msgstr "Anzahl muss 1 für Objekte mit Seriennummer sein" +msgstr "" #: build/models.py:1019 msgid "Build to allocate parts" -msgstr "Bau starten um Teile zuzuweisen" +msgstr "" #: build/models.py:1026 -#, fuzzy -#| msgid "Remove stock" msgid "Source stock item" -msgstr "Bestand entfernen" +msgstr "" #: build/models.py:1038 msgid "Stock quantity to allocate to build" -msgstr "Lagerobjekt-Anzahl dem Bau zuweisen" +msgstr "" #: build/models.py:1046 -#, fuzzy -#| msgid "Destination stock location" msgid "Destination stock item" -msgstr "Ziel-Lagerbestand" +msgstr "" #: build/templates/build/allocate.html:14 -#, fuzzy -#| msgid "Complete Build" msgid "Incomplete Build Ouputs" -msgstr "Bau fertigstellen" +msgstr "" #: build/templates/build/allocate.html:20 -#, fuzzy -#| msgid "Build order allocation is complete" msgid "Build order has been completed" -msgstr "Bau-Zuweisung ist vollständig" +msgstr "" #: build/templates/build/allocate.html:25 -#, fuzzy -#| msgid "Created new build" msgid "Create new build output" -msgstr "Neuen Bau angelegt" +msgstr "" #: build/templates/build/allocate.html:26 -#, fuzzy -#| msgid "Create New Part" msgid "Create New Output" -msgstr "Neues Teil anlegen" +msgstr "" #: build/templates/build/allocate.html:29 -#, fuzzy -#| msgid "Order part" msgid "Order required parts" -msgstr "Teil bestellen" +msgstr "" #: build/templates/build/allocate.html:30 #: company/templates/company/detail_part.html:28 order/views.py:805 #: part/templates/part/category.html:125 msgid "Order Parts" -msgstr "Teile bestellen" +msgstr "" #: build/templates/build/allocate.html:33 templates/js/build.js:590 -#, fuzzy -#| msgid "Unallocate Stock" msgid "Unallocate stock" -msgstr "Zuweisung aufheben" +msgstr "" #: build/templates/build/allocate.html:34 build/views.py:341 build/views.py:778 msgid "Unallocate Stock" -msgstr "Zuweisung aufheben" +msgstr "" #: build/templates/build/allocate.html:48 -#, fuzzy -#| msgid "Created new build" msgid "Create a new build output" -msgstr "Neuen Bau angelegt" +msgstr "" #: build/templates/build/allocate.html:49 -#, fuzzy -#| msgid "Complete Build" msgid "No incomplete build outputs remain." -msgstr "Bau fertigstellen" +msgstr "" #: build/templates/build/allocate.html:50 msgid "Create a new build output using the button above" @@ -741,50 +642,40 @@ msgstr "" #: order/templates/order/po_tabs.html:11 order/templates/order/so_tabs.html:16 #: part/templates/part/tabs.html:70 stock/templates/stock/tabs.html:32 msgid "Attachments" -msgstr "Anhänge" +msgstr "" #: build/templates/build/auto_allocate.html:9 msgid "Automatically Allocate Stock" -msgstr "Lagerbestand automatisch zuweisen" +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 specified build output" -msgstr "Lagerobjekt dem Bau zuweisen" +msgstr "" #: build/templates/build/auto_allocate.html:18 stock/forms.py:345 #: stock/templates/stock/item_base.html:264 #: stock/templates/stock/stock_adjust.html:17 #: templates/InvenTree/search.html:183 templates/js/barcode.js:337 -#: templates/js/build.js:434 templates/js/stock.js:587 +#: templates/js/build.js:434 templates/js/stock.js:597 msgid "Location" -msgstr "Standort" +msgstr "" #: build/templates/build/auto_allocate.html:37 -#, fuzzy -#| msgid "No stock items found that can be allocated to this build" msgid "No stock items found that can be automatically allocated to this build" -msgstr "Keine Lagerobjekt gefunden, die diesem Bau zugewiesen werden können" +msgstr "" #: build/templates/build/auto_allocate.html:39 -#, fuzzy -#| msgid "StockItem has been allocated" msgid "Stock items will have to be manually allocated" -msgstr "Lagerobjekt wurde zugewiesen" +msgstr "" #: build/templates/build/build_base.html:14 -#, fuzzy -#| msgid "This build is allocated to Sales Order" msgid "This Build Order is allocated to Sales Order" -msgstr "Dieser Bau ist der Bestellung zugeordnet" +msgstr "" #: build/templates/build/build_base.html:19 -#, fuzzy -#| msgid "This build is a child of Build" msgid "This Build Order is a child of Build Order" -msgstr "Dieser Bau ist Kind von Bau" +msgstr "" #: build/templates/build/build_base.html:37 #: company/templates/company/company_base.html:27 @@ -793,59 +684,57 @@ msgstr "Dieser Bau ist Kind von Bau" #: part/templates/part/category.html:13 part/templates/part/part_base.html:32 #: stock/templates/stock/item_base.html:114 #: stock/templates/stock/location.html:24 -#, fuzzy -#| msgid "Admin" msgid "Admin view" -msgstr "Admin" +msgstr "" #: build/templates/build/build_base.html:43 #: build/templates/build/build_base.html:100 +#: order/templates/order/order_base.html:32 +#: order/templates/order/order_base.html:83 #: order/templates/order/sales_order_base.html:41 #: order/templates/order/sales_order_base.html:83 -#: templates/js/table_filters.js:200 templates/js/table_filters.js:232 +#: templates/js/table_filters.js:200 templates/js/table_filters.js:219 +#: templates/js/table_filters.js:236 msgid "Overdue" msgstr "" #: build/templates/build/build_base.html:51 -#, fuzzy -#| msgid "Edited build" msgid "Edit Build" -msgstr "Bau bearbeitet" +msgstr "" #: build/templates/build/build_base.html:55 msgid "Complete Build" -msgstr "Bau fertigstellen" +msgstr "" #: build/templates/build/build_base.html:58 build/views.py:58 msgid "Cancel Build" -msgstr "Bau abbrechen" +msgstr "" #: build/templates/build/build_base.html:64 msgid "Delete Build" -msgstr "Bau entfernt" +msgstr "" #: build/templates/build/build_base.html:74 build/templates/build/detail.html:9 msgid "Build Details" -msgstr "Bau-Status" +msgstr "" #: build/templates/build/build_base.html:88 #: build/templates/build/detail.html:57 #: order/templates/order/receive_parts.html:24 #: stock/templates/stock/item_base.html:363 templates/InvenTree/search.html:175 #: templates/js/barcode.js:42 templates/js/build.js:697 -#: templates/js/order.js:180 templates/js/order.js:268 -#: templates/js/stock.js:574 templates/js/stock.js:997 +#: templates/js/order.js:185 templates/js/order.js:279 +#: templates/js/stock.js:584 templates/js/stock.js:1099 msgid "Status" -msgstr "Status" +msgstr "" #: build/templates/build/build_base.html:96 #: build/templates/build/detail.html:100 +#: order/templates/order/order_base.html:121 #: order/templates/order/sales_order_base.html:114 templates/js/build.js:710 -#: templates/js/order.js:281 -#, fuzzy -#| msgid "Shipment Date" +#: templates/js/order.js:198 templates/js/order.js:292 msgid "Target Date" -msgstr "Versanddatum" +msgstr "" #: build/templates/build/build_base.html:100 msgid "This build was due on" @@ -857,19 +746,19 @@ msgid "Progress" msgstr "" #: build/templates/build/build_base.html:120 -#: build/templates/build/detail.html:82 order/models.py:621 +#: build/templates/build/detail.html:82 order/models.py:649 #: 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:258 templates/js/order.js:229 +#: stock/templates/stock/item_base.html:258 templates/js/order.js:240 msgid "Sales Order" -msgstr "Bestellung" +msgstr "" #: build/templates/build/build_output.html:9 build/templates/build/tabs.html:17 msgid "Build Outputs" -msgstr "Bau-Ausgabe" +msgstr "" #: build/templates/build/build_output_create.html:7 msgid "The Bill of Materials contains trackable parts" @@ -888,153 +777,114 @@ msgid "Trackable parts can have serial numbers specified" msgstr "" #: build/templates/build/build_output_create.html:16 -#, fuzzy -#| msgid "Serial number for this item" msgid "Enter serial numbers to generate multiple single build outputs" -msgstr "Seriennummer für dieses Teil" +msgstr "" #: build/templates/build/cancel.html:5 -#, fuzzy -#| msgid "Are you sure you wish to unallocate all stock for this build?" msgid "Are you sure you wish to cancel this build?" msgstr "" -"Sind Sie sicher, dass sie alle Lagerobjekte von diesem Bau entfernen möchten?" #: build/templates/build/complete.html:8 -#, fuzzy -#| msgid "Build order allocation is complete" msgid "Build can be completed" -msgstr "Bau-Zuweisung ist vollständig" +msgstr "" #: build/templates/build/complete.html:12 -#, fuzzy -#| msgid "Build order allocation is complete" msgid "Build cannot be completed" -msgstr "Bau-Zuweisung ist vollständig" +msgstr "" #: build/templates/build/complete.html:15 -#, fuzzy -#| msgid "Complete Build" msgid "Incompleted build outputs remain" -msgstr "Bau fertigstellen" +msgstr "" #: build/templates/build/complete.html:18 -#, fuzzy -#| msgid "Build order allocation is complete" msgid "Required build quantity has not been completed" -msgstr "Bau-Zuweisung ist vollständig" +msgstr "" #: build/templates/build/complete_output.html:9 -#, fuzzy -#| msgid "Build order allocation is complete" msgid "Stock allocation is complete" -msgstr "Bau-Zuweisung ist vollständig" +msgstr "" #: build/templates/build/complete_output.html:13 -#, fuzzy -#| msgid "Build order allocation is complete" msgid "Stock allocation is incomplete" -msgstr "Bau-Zuweisung ist vollständig" +msgstr "" #: build/templates/build/complete_output.html:19 -#, fuzzy -#| msgid "This SalesOrder has not been fully allocated" msgid "parts have not been fully allocated" -msgstr "Dieser Auftrag ist nicht vollständig zugeordnet" +msgstr "" #: build/templates/build/complete_output.html:40 msgid "The following items will be created" -msgstr "Die folgenden Objekte werden erstellt" +msgstr "" #: build/templates/build/create_build_item.html:7 -#, fuzzy -#| msgid "Stock Item to allocate to build" msgid "Select a stock item to allocate to the selected build output" -msgstr "Lagerobjekt dem Bau zuweisen" +msgstr "" #: build/templates/build/create_build_item.html:11 -#, fuzzy -#| msgid "The following stock items will be allocated to the build:" msgid "The allocated stock will be installed into the following build output:" -msgstr "Folgende Lagerobjekte werden dem Bau automatisch zugewiesen:" +msgstr "" #: build/templates/build/create_build_item.html:19 -#, fuzzy -#| msgid "Stock available" msgid "No stock available for" -msgstr "Bestand verfügbar" +msgstr "" #: build/templates/build/delete_build_item.html:8 -#, fuzzy -#| msgid "Are you sure you want to unallocate these parts?" msgid "Are you sure you want to unallocate this stock?" -msgstr "Sind Sie sicher, dass sie die folgenden Teile entfernen möchten?" +msgstr "" #: build/templates/build/delete_build_item.html:11 -#, fuzzy -#| msgid "The following stock items will be allocated to the build:" msgid "The selected stock will be unallocated from the build output" -msgstr "Folgende Lagerobjekte werden dem Bau automatisch zugewiesen:" +msgstr "" #: build/templates/build/detail.html:33 msgid "Stock Source" -msgstr "Lagerobjekt" +msgstr "" #: build/templates/build/detail.html:38 msgid "Stock can be taken from any available location." -msgstr "Bestand kann jedem verfügbaren Lagerort entnommen werden." +msgstr "" #: build/templates/build/detail.html:44 stock/forms.py:373 -#, fuzzy -#| msgid "Description" msgid "Destination" -msgstr "Beschreibung" +msgstr "" #: build/templates/build/detail.html:51 -#, fuzzy -#| msgid "Does this part have tracking for unique items?" msgid "Destination location not specified" -msgstr "Hat dieses Teil Tracking für einzelne Objekte?" +msgstr "" #: build/templates/build/detail.html:68 -#: stock/templates/stock/item_base.html:282 templates/js/stock.js:582 -#: templates/js/stock.js:1004 templates/js/table_filters.js:80 +#: stock/templates/stock/item_base.html:282 templates/js/stock.js:592 +#: templates/js/stock.js:1106 templates/js/table_filters.js:80 #: templates/js/table_filters.js:161 msgid "Batch" -msgstr "Los" +msgstr "" #: build/templates/build/detail.html:95 -#: order/templates/order/order_base.html:98 +#: order/templates/order/order_base.html:108 #: order/templates/order/sales_order_base.html:108 templates/js/build.js:705 msgid "Created" -msgstr "Erstellt" +msgstr "" #: build/templates/build/detail.html:106 -#, fuzzy -#| msgid "No destination set" msgid "No target date set" -msgstr "Kein Ziel gesetzt" +msgstr "" #: build/templates/build/detail.html:111 templates/js/build.js:683 #: templates/js/build.js:715 msgid "Completed" -msgstr "Fertig" +msgstr "" #: build/templates/build/detail.html:115 -#, fuzzy -#| msgid "Build order allocation is complete" msgid "Build not complete" -msgstr "Bau-Zuweisung ist vollständig" +msgstr "" #: build/templates/build/edit_build_item.html:7 -#, fuzzy -#| msgid "Stock quantity to allocate to build" msgid "Alter the quantity of stock allocated to the build output" -msgstr "Lagerobjekt-Anzahl dem Bau zuweisen" +msgstr "" #: build/templates/build/index.html:27 build/views.py:658 msgid "New Build Order" -msgstr "Neuer Bauauftrag" +msgstr "" #: build/templates/build/index.html:30 #: order/templates/order/purchase_orders.html:22 @@ -1050,271 +900,212 @@ msgstr "" #: build/templates/build/notes.html:13 build/templates/build/notes.html:30 msgid "Build Notes" -msgstr "Bau-Bemerkungen" +msgstr "" #: build/templates/build/notes.html:20 company/templates/company/notes.html:17 #: order/templates/order/order_notes.html:21 #: order/templates/order/sales_order_notes.html:26 #: part/templates/part/notes.html:20 stock/templates/stock/item_notes.html:22 msgid "Save" -msgstr "Speichern" +msgstr "" #: build/templates/build/notes.html:33 company/templates/company/notes.html:30 #: order/templates/order/order_notes.html:33 #: order/templates/order/sales_order_notes.html:37 #: part/templates/part/notes.html:33 stock/templates/stock/item_notes.html:33 msgid "Edit notes" -msgstr "Bermerkungen bearbeiten" +msgstr "" #: build/templates/build/tabs.html:5 company/templates/company/tabs.html:5 #: part/templates/part/tabs.html:6 msgid "Details" -msgstr "Details" +msgstr "" #: build/templates/build/tabs.html:10 -#, fuzzy -#| msgid "Complete" msgid "Incomplete" -msgstr "Fertig" +msgstr "" #: build/templates/build/unallocate.html:10 msgid "Are you sure you wish to unallocate all stock for this build?" msgstr "" -"Sind Sie sicher, dass sie alle Lagerobjekte von diesem Bau entfernen möchten?" #: build/templates/build/unallocate.html:12 -#, fuzzy -#| msgid "The following stock items will be allocated to the build:" msgid "All incomplete stock allocations will be removed from the build" -msgstr "Folgende Lagerobjekte werden dem Bau automatisch zugewiesen:" +msgstr "" #: build/views.py:79 msgid "Build was cancelled" -msgstr "Bau wurde abgebrochen" +msgstr "" #: build/views.py:93 msgid "Allocate Stock" -msgstr "Lagerbestand zuweisen" +msgstr "" #: build/views.py:157 build/views.py:317 build/views.py:490 -#, fuzzy -#| msgid "No action specified" msgid "Build output must be specified" -msgstr "Keine Aktion angegeben" +msgstr "" #: build/views.py:171 -#, fuzzy -#| msgid "Allocate Stock to Build" msgid "Allocated stock to build output" -msgstr "Lagerbestand dem Bau zuweisen" +msgstr "" #: build/views.py:183 -#, fuzzy -#| msgid "Build Outputs" msgid "Create Build Output" -msgstr "Bau-Ausgabe" +msgstr "" #: build/views.py:207 stock/models.py:882 stock/views.py:1973 -#, fuzzy -#| msgid "Serial numbers already exist: " msgid "Serial numbers already exist" -msgstr "Seriennummern existieren bereits:" +msgstr "" #: build/views.py:216 -#, fuzzy -#| msgid "Serial number for this item" msgid "Serial numbers required for trackable build output" -msgstr "Seriennummer für dieses Teil" +msgstr "" #: build/views.py:282 -#, fuzzy -#| msgid "Delete Build" msgid "Delete Build Output" -msgstr "Bau entfernt" +msgstr "" #: build/views.py:302 build/views.py:387 msgid "Confirm unallocation of build stock" -msgstr "Zuweisungsaufhebung bestätigen" +msgstr "" #: build/views.py:303 build/views.py:388 stock/views.py:519 msgid "Check the confirmation box" -msgstr "Bestätigungsbox bestätigen" +msgstr "" #: build/views.py:315 -#, fuzzy -#| msgid "Quantity does not match serial numbers" msgid "Build output does not match build" -msgstr "Anzahl stimmt nicht mit den Seriennummern überein" +msgstr "" #: build/views.py:329 -#, fuzzy -#| msgid "No action specified" msgid "Build output deleted" -msgstr "Keine Aktion angegeben" +msgstr "" #: build/views.py:412 -#, fuzzy -#| msgid "Complete Build" msgid "Complete Build Order" -msgstr "Bau fertigstellen" +msgstr "" #: build/views.py:418 -#, fuzzy -#| msgid "Build order allocation is complete" msgid "Build order cannot be completed" -msgstr "Bau-Zuweisung ist vollständig" +msgstr "" #: build/views.py:429 -#, fuzzy -#| msgid "Complete Build" msgid "Completed build order" -msgstr "Bau fertigstellen" +msgstr "" #: build/views.py:445 -#, fuzzy -#| msgid "Complete Build" msgid "Complete Build Output" -msgstr "Bau fertigstellen" +msgstr "" #: build/views.py:481 -#, fuzzy -#| msgid "Quantity must not exceed available stock quantity ({n})" msgid "Quantity to complete cannot exceed build output quantity" -msgstr "Anzahl darf nicht die verfügbare Anzahl überschreiten ({n})" +msgstr "" #: build/views.py:487 -#, fuzzy -#| msgid "Confirm completion of build" msgid "Confirm completion of incomplete build" -msgstr "Baufertigstellung bestätigen" +msgstr "" #: build/views.py:578 -#, fuzzy -#| msgid "Build order allocation is complete" msgid "Build output completed" -msgstr "Bau-Zuweisung ist vollständig" +msgstr "" #: build/views.py:703 msgid "Created new build" -msgstr "Neuen Bau angelegt" +msgstr "" #: build/views.py:724 -#, fuzzy -#| msgid "Edit Build Details" msgid "Edit Build Order Details" -msgstr "Baudetails bearbeiten" +msgstr "" #: build/views.py:758 msgid "Edited build" -msgstr "Bau bearbeitet" +msgstr "" #: build/views.py:767 -#, fuzzy -#| msgid "Complete Build" msgid "Delete Build Order" -msgstr "Bau fertigstellen" +msgstr "" #: build/views.py:784 msgid "Removed parts from build allocation" -msgstr "Teile von Bauzuordnung entfernt" +msgstr "" #: build/views.py:796 -#, fuzzy -#| msgid "Allocate Stock to Build" msgid "Allocate stock to build output" -msgstr "Lagerbestand dem Bau zuweisen" +msgstr "" #: build/views.py:840 -#, fuzzy -#| msgid "This stock item is allocated to Build" msgid "Item must be currently in stock" -msgstr "Dieses Lagerobjekt ist dem Bau zugewiesen" +msgstr "" #: build/views.py:846 -#, fuzzy -#| msgid "StockItem is over-allocated" msgid "Stock item is over-allocated" -msgstr "Zu viele Lagerobjekte zugewiesen" +msgstr "" #: build/views.py:847 templates/js/bom.js:221 templates/js/build.js:519 #: templates/js/build.js:758 msgid "Available" -msgstr "verfügbar" +msgstr "" #: build/views.py:849 -#, fuzzy -#| msgid "StockItem has been allocated" msgid "Stock item must be selected" -msgstr "Lagerobjekt wurde zugewiesen" +msgstr "" #: build/views.py:1012 msgid "Edit Stock Allocation" -msgstr "Teilzuordnung bearbeiten" +msgstr "" #: build/views.py:1017 msgid "Updated Build Item" -msgstr "Bauobjekt aktualisiert" +msgstr "" #: build/views.py:1046 -#, fuzzy -#| msgid "Add Sales Order Attachment" msgid "Add Build Order Attachment" -msgstr "Auftragsanhang hinzufügen" +msgstr "" #: build/views.py:1060 order/views.py:113 order/views.py:166 part/views.py:170 #: stock/views.py:282 msgid "Added attachment" -msgstr "Anhang hinzugefügt" +msgstr "" #: build/views.py:1096 order/views.py:193 order/views.py:215 msgid "Edit Attachment" -msgstr "Anhang bearbeiten" +msgstr "" #: build/views.py:1107 order/views.py:198 order/views.py:220 msgid "Attachment updated" -msgstr "Anhang aktualisiert" +msgstr "" #: build/views.py:1117 order/views.py:235 order/views.py:250 msgid "Delete Attachment" -msgstr "Anhang löschen" +msgstr "" #: build/views.py:1123 order/views.py:242 order/views.py:257 stock/views.py:340 msgid "Deleted attachment" -msgstr "Anhang gelöscht" +msgstr "" #: common/models.py:56 -#, fuzzy -#| msgid "Instance Name" msgid "InvenTree Instance Name" -msgstr "Instanzname" +msgstr "" #: common/models.py:58 -#, fuzzy -#| msgid "Brief description of the build" msgid "String descriptor for the server instance" -msgstr "Kurze Beschreibung des Baus" +msgstr "" #: common/models.py:62 company/models.py:95 company/models.py:96 msgid "Company name" -msgstr "Firmenname" +msgstr "" #: common/models.py:63 -#, fuzzy -#| msgid "Company name" msgid "Internal company name" -msgstr "Firmenname" +msgstr "" #: common/models.py:68 -#, fuzzy -#| msgid "Delete Currency" msgid "Default Currency" -msgstr "Währung entfernen" +msgstr "" #: common/models.py:69 -#, fuzzy -#| msgid "Delete Currency" msgid "Default currency" -msgstr "Währung entfernen" +msgstr "" #: common/models.py:75 msgid "IPN Regex" @@ -1325,109 +1116,93 @@ msgid "Regular expression pattern for matching Part IPN" msgstr "" #: common/models.py:80 -#, fuzzy -#| msgid "Duplicate Part" msgid "Allow Duplicate IPN" -msgstr "Teil duplizieren" +msgstr "" #: common/models.py:81 msgid "Allow multiple parts to share the same IPN" msgstr "" #: common/models.py:87 -#, fuzzy -#| msgid "Import BOM data" msgid "Copy Part BOM Data" -msgstr "Stückliste importieren" +msgstr "" #: common/models.py:88 msgid "Copy BOM data by default when duplicating a part" msgstr "" #: common/models.py:94 -#, fuzzy -#| msgid "Parameters" msgid "Copy Part Parameter Data" -msgstr "Parameter" +msgstr "" #: common/models.py:95 msgid "Copy parameter data by default when duplicating a part" msgstr "" #: common/models.py:101 -#, fuzzy -#| msgid "Parameters" msgid "Copy Part Test Data" -msgstr "Parameter" +msgstr "" #: common/models.py:102 msgid "Copy test data by default when duplicating a part" msgstr "" #: common/models.py:108 -#, fuzzy -#| msgid "Edit Part Parameter Template" msgid "Copy Category Parameter Templates" -msgstr "Teilparametervorlage bearbeiten" +msgstr "" #: common/models.py:109 msgid "Copy category parameter templates when creating a part" msgstr "" #: common/models.py:115 part/templates/part/detail.html:155 stock/forms.py:257 -#: templates/js/table_filters.js:23 templates/js/table_filters.js:266 +#: templates/js/table_filters.js:23 templates/js/table_filters.js:270 msgid "Template" -msgstr "Vorlage" +msgstr "" #: common/models.py:116 -#, fuzzy -#| msgid "Part is not a virtual part" msgid "Parts are templates by default" -msgstr "Teil ist nicht virtuell" +msgstr "" #: common/models.py:122 part/models.py:794 part/templates/part/detail.html:165 -#: templates/js/table_filters.js:278 +#: templates/js/table_filters.js:282 msgid "Assembly" -msgstr "Baugruppe" +msgstr "" #: common/models.py:123 -#, fuzzy -#| msgid "Part can be assembled from other parts" msgid "Parts can be assembled from other components by default" -msgstr "Teil kann aus anderen Teilen angefertigt werden" +msgstr "" #: common/models.py:129 part/models.py:800 part/templates/part/detail.html:175 -#: templates/js/table_filters.js:282 +#: templates/js/table_filters.js:286 msgid "Component" -msgstr "Komponente" +msgstr "" #: common/models.py:130 -#, fuzzy -#| msgid "Part can be used in assemblies" msgid "Parts can be used as sub-components by default" -msgstr "Teil kann in Baugruppen benutzt werden" +msgstr "" #: common/models.py:136 part/models.py:811 part/templates/part/detail.html:195 msgid "Purchaseable" -msgstr "Kaufbar" +msgstr "" #: common/models.py:137 msgid "Parts are purchaseable by default" msgstr "" #: common/models.py:143 part/models.py:816 part/templates/part/detail.html:205 -#: templates/js/table_filters.js:290 +#: templates/js/table_filters.js:294 msgid "Salable" -msgstr "Verkäuflich" +msgstr "" #: common/models.py:144 msgid "Parts are salable by default" msgstr "" #: common/models.py:150 part/models.py:806 part/templates/part/detail.html:185 -#: templates/js/table_filters.js:31 templates/js/table_filters.js:294 +#: templates/js/table_filters.js:31 templates/js/table_filters.js:298 msgid "Trackable" -msgstr "nachverfolgbar" +msgstr "" #: common/models.py:151 msgid "Parts are trackable by default" @@ -1436,466 +1211,410 @@ msgstr "" #: common/models.py:157 part/models.py:826 part/templates/part/detail.html:145 #: templates/js/table_filters.js:27 msgid "Virtual" -msgstr "Virtuell" +msgstr "" #: common/models.py:158 -#, fuzzy -#| msgid "Part is not a virtual part" msgid "Parts are virtual by default" -msgstr "Teil ist nicht virtuell" +msgstr "" #: common/models.py:164 -#, fuzzy -#| msgid "Stock Export Options" -msgid "Stock Expiry" -msgstr "Lagerbestandsexportoptionen" +msgid "Show Quantity in Forms" +msgstr "" #: common/models.py:165 -msgid "Enable stock expiry functionality" +msgid "Display available part quantity in some forms" msgstr "" #: common/models.py:171 -#, fuzzy -#| msgid "Serialize Stock" -msgid "Sell Expired Stock" -msgstr "Lagerbestand erfassen" +msgid "Stock Expiry" +msgstr "" #: common/models.py:172 -msgid "Allow sale of expired stock" +msgid "Enable stock expiry functionality" msgstr "" #: common/models.py:178 -#, fuzzy -#| msgid "Stock Item" -msgid "Stock Stale Time" -msgstr "Lagerobjekt" - -#: common/models.py:179 -msgid "Number of days stock items are considered stale before expiring" +msgid "Sell Expired Stock" msgstr "" -#: common/models.py:181 part/templates/part/detail.html:116 -msgid "days" +#: common/models.py:179 +msgid "Allow sale of expired stock" +msgstr "" + +#: common/models.py:185 +msgid "Stock Stale Time" msgstr "" #: common/models.py:186 -#, fuzzy -#| msgid "Builds" -msgid "Build Expired Stock" -msgstr "Baue" +msgid "Number of days stock items are considered stale before expiring" +msgstr "" -#: common/models.py:187 -msgid "Allow building with expired stock" +#: common/models.py:188 part/templates/part/detail.html:116 +msgid "days" msgstr "" #: common/models.py:193 -msgid "Stock Ownership Control" +msgid "Build Expired Stock" msgstr "" #: common/models.py:194 -msgid "Enable ownership control over stock locations and items" +msgid "Allow building with expired stock" msgstr "" #: common/models.py:200 -#, fuzzy -#| msgid "Order Reference" -msgid "Build Order Reference Prefix" -msgstr "Bestellreferenz" +msgid "Stock Ownership Control" +msgstr "" #: common/models.py:201 -#, fuzzy -#| msgid "Order reference" -msgid "Prefix value for build order reference" -msgstr "Bestell-Referenz" - -#: common/models.py:206 -#, fuzzy -#| msgid "Order Reference" -msgid "Build Order Reference Regex" -msgstr "Bestellreferenz" +msgid "Enable ownership control over stock locations and items" +msgstr "" #: common/models.py:207 +msgid "Build Order Reference Prefix" +msgstr "" + +#: common/models.py:208 +msgid "Prefix value for build order reference" +msgstr "" + +#: common/models.py:213 +msgid "Build Order Reference Regex" +msgstr "" + +#: common/models.py:214 msgid "Regular expression pattern for matching build order reference" msgstr "" -#: common/models.py:211 -#, fuzzy -#| msgid "Sales Order Reference" -msgid "Sales Order Reference Prefix" -msgstr "Bestellungsreferenz" - -#: common/models.py:212 -#, fuzzy -#| msgid "Order reference" -msgid "Prefix value for sales order reference" -msgstr "Bestell-Referenz" - -#: common/models.py:217 -#, fuzzy -#| msgid "Order reference" -msgid "Purchase Order Reference Prefix" -msgstr "Bestell-Referenz" - #: common/models.py:218 -#, fuzzy -#| msgid "Order reference" -msgid "Prefix value for purchase order reference" -msgstr "Bestell-Referenz" +msgid "Sales Order Reference Prefix" +msgstr "" -#: common/models.py:441 +#: common/models.py:219 +msgid "Prefix value for sales order reference" +msgstr "" + +#: common/models.py:224 +msgid "Purchase Order Reference Prefix" +msgstr "" + +#: common/models.py:225 +msgid "Prefix value for purchase order reference" +msgstr "" + +#: common/models.py:448 msgid "Settings key (must be unique - case insensitive" msgstr "" -"Einstellungs-Schlüssel (muss einzigartig sein, Groß-/ Kleinschreibung wird " -"nicht beachtet)" -#: common/models.py:443 +#: common/models.py:450 msgid "Settings value" -msgstr "Einstellungs-Wert" +msgstr "" -#: common/models.py:500 +#: common/models.py:507 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:510 -#, fuzzy -#| msgid "Must enter integer value" +#: common/models.py:517 msgid "Value must be an integer value" -msgstr "Nur Ganzzahl eingeben" +msgstr "" -#: common/models.py:524 +#: common/models.py:531 msgid "Key string must be unique" -msgstr "Schlüsseltext muss eindeutig sein" +msgstr "" -#: common/models.py:597 company/forms.py:113 -#, fuzzy -#| msgid "Price Breaks" +#: common/models.py:604 company/forms.py:113 msgid "Price break quantity" -msgstr "Preisstaffelung" +msgstr "" -#: common/models.py:605 company/templates/company/supplier_part_pricing.html:80 +#: common/models.py:612 company/templates/company/supplier_part_pricing.html:80 #: part/templates/part/sale_prices.html:87 templates/js/bom.js:246 msgid "Price" -msgstr "Preis" +msgstr "" -#: common/models.py:606 -#, fuzzy -#| msgid "Enter a valid quantity" +#: common/models.py:613 msgid "Unit price at specified quantity" -msgstr "Bitte eine gültige Anzahl eingeben" +msgstr "" -#: common/models.py:629 -#, fuzzy -#| msgid "Default Location" +#: common/models.py:636 msgid "Default" -msgstr "Standard-Lagerort" +msgstr "" #: common/templates/common/edit_setting.html:11 -#, fuzzy -#| msgid "Currency Value" msgid "Current value" -msgstr "Währungs-Wert" +msgstr "" #: common/views.py:25 -#, fuzzy -#| msgid "Settings" msgid "Change Setting" -msgstr "Einstellungen" +msgstr "" #: common/views.py:94 msgid "Supplied value is not allowed" msgstr "" #: common/views.py:103 -#, fuzzy -#| msgid "Supplier part description" msgid "Supplied value must be a boolean" -msgstr "Zuliefererbeschreibung des Teils" +msgstr "" #: company/forms.py:37 company/models.py:139 -#, fuzzy -#| msgid "Do you purchase items from this company?" msgid "Default currency used for this company" -msgstr "Kaufen Sie Teile von dieser Firma?" +msgstr "" #: company/forms.py:80 -#, fuzzy -#| msgid "Price" msgid "Single Price" -msgstr "Preis" +msgstr "" #: company/forms.py:82 -#, fuzzy -#| msgid "Invalid quantity provided" msgid "Single quantity price" -msgstr "Keine gültige Menge" +msgstr "" #: company/models.py:98 -#, fuzzy -#| msgid "Part description" msgid "Company description" -msgstr "Beschreibung des Teils" +msgstr "" #: company/models.py:98 msgid "Description of the company" -msgstr "Firmenbeschreibung" +msgstr "" #: company/models.py:100 company/templates/company/company_base.html:57 #: company/templates/company/detail.html:28 templates/js/company.js:61 msgid "Website" -msgstr "Website" +msgstr "" #: company/models.py:100 msgid "Company website URL" -msgstr "Firmenwebsite" +msgstr "" #: company/models.py:103 company/templates/company/company_base.html:64 msgid "Address" -msgstr "Adresse" +msgstr "" #: company/models.py:104 msgid "Company address" -msgstr "Firmenadresse" +msgstr "" #: company/models.py:107 -#, fuzzy -#| msgid "Contact phone number" msgid "Phone number" -msgstr "Kontakt-Tel." +msgstr "" #: company/models.py:108 msgid "Contact phone number" -msgstr "Kontakt-Tel." +msgstr "" #: company/models.py:111 company/templates/company/company_base.html:78 msgid "Email" -msgstr "Email" +msgstr "" #: company/models.py:111 msgid "Contact email address" -msgstr "Kontakt-Email" +msgstr "" #: company/models.py:114 company/templates/company/company_base.html:85 msgid "Contact" -msgstr "Kontakt" +msgstr "" #: company/models.py:115 msgid "Point of contact" -msgstr "Anlaufstelle" +msgstr "" #: company/models.py:117 msgid "Link to external company information" -msgstr "Link auf externe Firmeninformation" +msgstr "" #: company/models.py:129 msgid "Do you sell items to this company?" -msgstr "Verkaufen Sie Teile an diese Firma?" +msgstr "" #: company/models.py:131 msgid "Do you purchase items from this company?" -msgstr "Kaufen Sie Teile von dieser Firma?" +msgstr "" #: company/models.py:133 msgid "Does this company manufacture parts?" -msgstr "Produziert diese Firma Teile?" +msgstr "" #: company/models.py:137 company/templates/company/detail.html:37 -#, fuzzy -#| msgid "Edit Currency" msgid "Currency" -msgstr "Währung bearbeiten" +msgstr "" #: company/models.py:313 stock/models.py:351 #: stock/templates/stock/item_base.html:214 msgid "Base Part" -msgstr "Basisteil" +msgstr "" #: company/models.py:317 msgid "Select part" -msgstr "Teil auswählen" +msgstr "" #: company/models.py:323 company/templates/company/detail.html:57 #: company/templates/company/supplier_part_base.html:74 #: company/templates/company/supplier_part_detail.html:21 -#: order/templates/order/order_base.html:79 +#: order/templates/order/order_base.html:89 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:170 #: stock/templates/stock/item_base.html:324 templates/js/company.js:48 -#: templates/js/company.js:164 templates/js/order.js:162 +#: templates/js/company.js:164 templates/js/order.js:167 msgid "Supplier" -msgstr "Zulieferer" +msgstr "" #: company/models.py:324 msgid "Select supplier" -msgstr "Zulieferer auswählen" +msgstr "" #: company/models.py:329 company/templates/company/supplier_part_base.html:78 #: company/templates/company/supplier_part_detail.html:22 part/bom.py:171 msgid "SKU" -msgstr "SKU" +msgstr "" #: company/models.py:330 msgid "Supplier stock keeping unit" -msgstr "Stock Keeping Units (SKU) des Zulieferers" +msgstr "" #: company/models.py:340 company/templates/company/detail.html:52 #: company/templates/company/supplier_part_base.html:84 #: company/templates/company/supplier_part_detail.html:30 part/bom.py:172 #: templates/js/company.js:44 templates/js/company.js:188 msgid "Manufacturer" -msgstr "Hersteller" +msgstr "" #: company/models.py:341 msgid "Select manufacturer" -msgstr "Hersteller auswählen" +msgstr "" #: company/models.py:347 company/templates/company/supplier_part_base.html:88 #: company/templates/company/supplier_part_detail.html:31 part/bom.py:173 #: templates/js/company.js:204 msgid "MPN" -msgstr "MPN" +msgstr "" #: company/models.py:348 msgid "Manufacturer part number" -msgstr "Hersteller-Teilenummer" +msgstr "" #: company/models.py:353 part/models.py:704 templates/js/company.js:208 msgid "Link" -msgstr "Link" +msgstr "" #: company/models.py:354 msgid "URL for external supplier part link" -msgstr "Teil-URL des Zulieferers" +msgstr "" #: company/models.py:360 msgid "Supplier part description" -msgstr "Zuliefererbeschreibung des Teils" +msgstr "" #: company/models.py:365 company/templates/company/supplier_part_base.html:95 #: company/templates/company/supplier_part_detail.html:34 msgid "Note" -msgstr "Notiz" +msgstr "" #: company/models.py:369 msgid "Minimum charge (e.g. stocking fee)" -msgstr "Mindestpreis" +msgstr "" #: company/models.py:371 msgid "Part packaging" -msgstr "Teile-Packaging" +msgstr "" #: company/templates/company/assigned_stock.html:9 #: company/templates/company/tabs.html:25 templates/js/build.js:411 -#, fuzzy -#| msgid "Assigned" msgid "Assigned Stock" -msgstr "Zugewiesen" +msgstr "" #: company/templates/company/company_base.html:7 #: company/templates/company/company_base.html:22 templates/js/company.js:33 msgid "Company" -msgstr "Firma" +msgstr "" #: company/templates/company/company_base.html:51 #: company/templates/company/detail.html:8 msgid "Company Details" -msgstr "Firmendetails" +msgstr "" #: company/templates/company/company_base.html:71 msgid "Phone" -msgstr "Telefon" +msgstr "" #: company/templates/company/detail.html:18 -#, fuzzy -#| msgid "Company name" msgid "Company Name" -msgstr "Firmenname" +msgstr "" #: company/templates/company/detail.html:31 -#, fuzzy -#| msgid "No lines specified" msgid "No website specified" -msgstr "Keine Zeilen angegeben" +msgstr "" #: company/templates/company/detail.html:40 -#, fuzzy -#| msgid "Delete Currency" msgid "Uses default currency" -msgstr "Währung entfernen" +msgstr "" #: company/templates/company/detail.html:62 #: order/templates/order/sales_order_base.html:89 stock/models.py:386 #: stock/models.py:387 stock/templates/stock/item_base.html:241 -#: templates/js/company.js:40 templates/js/order.js:250 +#: templates/js/company.js:40 templates/js/order.js:261 msgid "Customer" -msgstr "Kunde" +msgstr "" #: company/templates/company/detail_part.html:8 msgid "Supplier Parts" -msgstr "Zulieferer-Teile" +msgstr "" #: company/templates/company/detail_part.html:17 #: order/templates/order/purchase_order_detail.html:69 msgid "Create new supplier part" -msgstr "Neues Zuliefererteil anlegen" +msgstr "" #: company/templates/company/detail_part.html:18 #: order/templates/order/purchase_order_detail.html:68 -#: part/templates/part/supplier.html:14 templates/js/stock.js:881 +#: part/templates/part/supplier.html:14 templates/js/stock.js:983 msgid "New Supplier Part" -msgstr "Neues Zulieferer-Teil" +msgstr "" #: company/templates/company/detail_part.html:23 #: part/templates/part/category.html:120 part/templates/part/supplier.html:17 #: templates/stock_table.html:26 msgid "Options" -msgstr "Optionen" +msgstr "" #: company/templates/company/detail_part.html:28 #: part/templates/part/category.html:125 -#, fuzzy -#| msgid "Order part" msgid "Order parts" -msgstr "Teil bestellen" +msgstr "" #: company/templates/company/detail_part.html:31 -#, fuzzy -#| msgid "Delete Parts" msgid "Delete parts" -msgstr "Teile löschen" +msgstr "" #: company/templates/company/detail_part.html:31 msgid "Delete Parts" -msgstr "Teile löschen" +msgstr "" #: company/templates/company/detail_part.html:63 -#: part/templates/part/category.html:116 templates/js/stock.js:875 +#: part/templates/part/category.html:116 templates/js/stock.js:977 msgid "New Part" -msgstr "Neues Teil" +msgstr "" #: company/templates/company/detail_part.html:64 msgid "Create new Part" -msgstr "Neues Teil hinzufügen" +msgstr "" #: company/templates/company/detail_part.html:69 company/views.py:56 #: part/templates/part/supplier.html:47 msgid "New Supplier" -msgstr "Neuer Zulieferer" +msgstr "" #: company/templates/company/detail_part.html:70 company/views.py:195 msgid "Create new Supplier" -msgstr "Neuen Zulieferer anlegen" +msgstr "" #: company/templates/company/detail_part.html:75 company/views.py:63 #: part/templates/part/supplier.html:53 msgid "New Manufacturer" -msgstr "Neuer Hersteller" +msgstr "" #: company/templates/company/detail_part.html:76 company/views.py:198 msgid "Create new Manufacturer" -msgstr "Neuen Hersteller anlegen" +msgstr "" #: company/templates/company/detail_stock.html:9 msgid "Supplier Stock" -msgstr "Zuliefererbestand" +msgstr "" #: company/templates/company/detail_stock.html:35 #: company/templates/company/supplier_part_stock.html:33 @@ -1903,21 +1622,20 @@ msgstr "Zuliefererbestand" #: part/templates/part/category.html:126 part/templates/part/stock.html:51 #: templates/stock_table.html:13 msgid "Export" -msgstr "Exportieren" +msgstr "" #: company/templates/company/index.html:7 msgid "Supplier List" -msgstr "Zuliefererliste" +msgstr "" #: company/templates/company/notes.html:10 #: company/templates/company/notes.html:27 msgid "Company Notes" -msgstr "Firmenbemerkungen" +msgstr "" #: company/templates/company/partdelete.html:5 msgid "Are you sure you want to delete the following Supplier Parts?" msgstr "" -"Sind Sie sicher, dass sie die folgenden Zulieferer-Teile löschen möchten?" #: company/templates/company/purchase_orders.html:9 #: company/templates/company/tabs.html:17 @@ -1925,19 +1643,19 @@ msgstr "" #: order/templates/order/purchase_orders.html:13 #: part/templates/part/orders.html:9 part/templates/part/tabs.html:48 #: templates/InvenTree/settings/tabs.html:31 templates/navbar.html:33 -#: users/models.py:35 +#: users/models.py:37 msgid "Purchase Orders" -msgstr "Bestellungen" +msgstr "" #: company/templates/company/purchase_orders.html:15 #: order/templates/order/purchase_orders.html:19 msgid "Create new purchase order" -msgstr "Neue Bestellung anlegen" +msgstr "" #: company/templates/company/purchase_orders.html:16 #: order/templates/order/purchase_orders.html:20 msgid "New Purchase Order" -msgstr "Neue Bestellung" +msgstr "" #: company/templates/company/sales_orders.html:9 #: company/templates/company/tabs.html:22 @@ -1945,216 +1663,203 @@ msgstr "Neue Bestellung" #: order/templates/order/sales_orders.html:13 #: part/templates/part/sales_orders.html:9 part/templates/part/tabs.html:56 #: templates/InvenTree/settings/tabs.html:34 templates/navbar.html:42 -#: users/models.py:36 +#: users/models.py:38 msgid "Sales Orders" -msgstr "Bestellungen" +msgstr "" #: company/templates/company/sales_orders.html:15 #: order/templates/order/sales_orders.html:19 msgid "Create new sales order" -msgstr "Neuen Auftrag anlegen" +msgstr "" #: company/templates/company/sales_orders.html:16 #: order/templates/order/sales_orders.html:20 msgid "New Sales Order" -msgstr "Neuer Auftrag" +msgstr "" #: company/templates/company/supplier_part_base.html:6 #: company/templates/company/supplier_part_base.html:19 stock/models.py:360 #: stock/templates/stock/item_base.html:329 templates/js/company.js:180 msgid "Supplier Part" -msgstr "Zulieferer-Teil" +msgstr "" #: company/templates/company/supplier_part_base.html:26 #: part/templates/part/orders.html:14 part/templates/part/part_base.html:66 msgid "Order part" -msgstr "Teil bestellen" +msgstr "" #: company/templates/company/supplier_part_base.html:30 msgid "Edit supplier part" -msgstr "Zuliefererteil bearbeiten" +msgstr "" #: company/templates/company/supplier_part_base.html:34 msgid "Delete supplier part" -msgstr "Zuliefererteil entfernen" +msgstr "" #: company/templates/company/supplier_part_base.html:46 #: company/templates/company/supplier_part_detail.html:11 msgid "Supplier Part Details" -msgstr "Zuliefererteildetails" +msgstr "" #: company/templates/company/supplier_part_base.html:51 #: company/templates/company/supplier_part_detail.html:14 msgid "Internal Part" -msgstr "Internes Teil" +msgstr "" #: company/templates/company/supplier_part_orders.html:9 msgid "Supplier Part Orders" -msgstr "Zuliefererbestellungen" +msgstr "" #: company/templates/company/supplier_part_orders.html:17 #: part/templates/part/orders.html:15 msgid "Order Part" -msgstr "Teil bestellen" +msgstr "" #: company/templates/company/supplier_part_pricing.html:10 msgid "Pricing Information" -msgstr "Preisinformationen ansehen" +msgstr "" #: company/templates/company/supplier_part_pricing.html:17 company/views.py:486 #: part/templates/part/sale_prices.html:14 part/views.py:2565 msgid "Add Price Break" -msgstr "Preisstaffel hinzufügen" +msgstr "" #: company/templates/company/supplier_part_pricing.html:36 #: part/templates/part/sale_prices.html:43 -#, fuzzy -#| msgid "No company information found" msgid "No price break information found" -msgstr "Keine Firmeninformation gefunden" +msgstr "" #: company/templates/company/supplier_part_pricing.html:87 #: part/templates/part/sale_prices.html:94 -#, fuzzy -#| msgid "Edit Price Break" msgid "Edit price break" -msgstr "Preisstaffel bearbeiten" +msgstr "" #: company/templates/company/supplier_part_pricing.html:88 #: part/templates/part/sale_prices.html:95 -#, fuzzy -#| msgid "Delete Price Break" msgid "Delete price break" -msgstr "Preisstaffel löschen" +msgstr "" #: company/templates/company/supplier_part_stock.html:9 msgid "Supplier Part Stock" -msgstr "Zuliefererbestand" +msgstr "" #: company/templates/company/supplier_part_tabs.html:5 msgid "Pricing" -msgstr "Bepreisung" +msgstr "" #: company/templates/company/supplier_part_tabs.html:8 #: company/templates/company/tabs.html:12 part/templates/part/tabs.html:18 #: stock/templates/stock/location.html:29 templates/InvenTree/search.html:155 #: templates/InvenTree/settings/tabs.html:25 templates/js/part.js:192 -#: templates/js/part.js:418 templates/js/stock.js:509 templates/navbar.html:22 -#: users/models.py:33 +#: templates/js/part.js:418 templates/js/stock.js:519 templates/navbar.html:22 msgid "Stock" -msgstr "Lagerbestand" +msgstr "" #: company/templates/company/supplier_part_tabs.html:11 msgid "Orders" -msgstr "Bestellungen" +msgstr "" #: company/templates/company/tabs.html:9 #: order/templates/order/receive_parts.html:14 part/models.py:317 #: part/templates/part/cat_link.html:7 part/templates/part/category.html:94 #: part/templates/part/category_tabs.html:6 #: templates/InvenTree/settings/tabs.html:22 templates/navbar.html:19 -#: templates/stats.html:35 templates/stats.html:44 users/models.py:32 +#: templates/stats.html:35 templates/stats.html:44 users/models.py:33 msgid "Parts" -msgstr "Teile" +msgstr "" #: company/views.py:55 part/templates/part/tabs.html:42 #: templates/navbar.html:31 msgid "Suppliers" -msgstr "Zulieferer" +msgstr "" #: company/views.py:62 templates/navbar.html:32 msgid "Manufacturers" -msgstr "Hersteller" +msgstr "" #: company/views.py:69 templates/navbar.html:41 msgid "Customers" -msgstr "Kunden" +msgstr "" #: company/views.py:70 msgid "New Customer" -msgstr "Neuer Kunde" +msgstr "" #: company/views.py:78 msgid "Companies" -msgstr "Firmen" +msgstr "" #: company/views.py:79 msgid "New Company" -msgstr "Neue Firma" +msgstr "" #: company/views.py:157 msgid "Update Company Image" -msgstr "Firmenbild aktualisieren" +msgstr "" #: company/views.py:163 msgid "Updated company image" -msgstr "Aktualisiertes Firmenbild" +msgstr "" #: company/views.py:173 msgid "Edit Company" -msgstr "Firma bearbeiten" +msgstr "" #: company/views.py:178 msgid "Edited company information" -msgstr "Firmeninformation bearbeitet" +msgstr "" #: company/views.py:201 msgid "Create new Customer" -msgstr "Neuen Kunden anlegen" +msgstr "" #: company/views.py:203 msgid "Create new Company" -msgstr "Neue Firma anlegen" +msgstr "" #: company/views.py:230 msgid "Created new company" -msgstr "Neue Firma angelegt" +msgstr "" #: company/views.py:240 msgid "Delete Company" -msgstr "Firma löschen" +msgstr "" #: company/views.py:246 msgid "Company was deleted" -msgstr "Firma gelöscht" +msgstr "" #: company/views.py:271 msgid "Edit Supplier Part" -msgstr "Zuliefererteil bearbeiten" +msgstr "" -#: company/views.py:295 templates/js/stock.js:882 +#: company/views.py:295 templates/js/stock.js:984 msgid "Create new Supplier Part" -msgstr "Neues Zuliefererteil anlegen" +msgstr "" #: company/views.py:415 msgid "Delete Supplier Part" -msgstr "Zuliefererteil entfernen" +msgstr "" #: company/views.py:492 part/views.py:2571 -#, fuzzy -#| msgid "Add Price Break" msgid "Added new price break" -msgstr "Preisstaffel hinzufügen" +msgstr "" #: company/views.py:548 part/views.py:2615 msgid "Edit Price Break" -msgstr "Preisstaffel bearbeiten" +msgstr "" #: company/views.py:564 part/views.py:2631 msgid "Delete Price Break" -msgstr "Preisstaffel löschen" +msgstr "" #: label/models.py:55 -#, fuzzy -#| msgid "Part name" msgid "Label name" -msgstr "Name des Teils" +msgstr "" #: label/models.py:58 -#, fuzzy -#| msgid "Part description" msgid "Label description" -msgstr "Beschreibung des Teils" +msgstr "" #: label/models.py:63 msgid "Label template file" @@ -2172,348 +1877,342 @@ msgstr "" msgid "Enabled" msgstr "" -#: order/forms.py:25 order/templates/order/order_base.html:39 +#: order/forms.py:25 order/templates/order/order_base.html:44 msgid "Place order" -msgstr "Bestellung aufgeben" +msgstr "" -#: order/forms.py:36 order/templates/order/order_base.html:46 +#: order/forms.py:36 order/templates/order/order_base.html:51 msgid "Mark order as complete" -msgstr "Bestellung als vollständig markieren" +msgstr "" -#: order/forms.py:47 order/forms.py:58 order/templates/order/order_base.html:51 +#: order/forms.py:47 order/forms.py:58 order/templates/order/order_base.html:56 #: order/templates/order/sales_order_base.html:56 msgid "Cancel order" -msgstr "Bestellung stornieren" +msgstr "" #: order/forms.py:69 order/templates/order/sales_order_base.html:53 msgid "Ship order" -msgstr "Bestellung versenden" +msgstr "" #: order/forms.py:80 msgid "Receive parts to this location" -msgstr "Teile in diesen Ort empfangen" +msgstr "" -#: order/forms.py:100 -#, fuzzy -#| msgid "Order reference" +#: order/forms.py:101 msgid "Purchase Order reference" -msgstr "Bestell-Referenz" +msgstr "" -#: order/forms.py:128 -#, fuzzy -#| msgid "Cancel sales order" +#: order/forms.py:107 +msgid "Target date for order delivery. Order will be overdue after this date." +msgstr "" + +#: order/forms.py:134 msgid "Enter sales order number" -msgstr "Auftrag stornieren" +msgstr "" -#: order/forms.py:134 order/models.py:405 +#: order/forms.py:140 order/models.py:437 msgid "" "Target date for order completion. Order will be overdue after this date." msgstr "" #: order/models.py:98 msgid "Order reference" -msgstr "Bestell-Referenz" +msgstr "" #: order/models.py:100 msgid "Order description" -msgstr "Bestellungs-Beschreibung" +msgstr "" #: order/models.py:102 msgid "Link to external page" -msgstr "Link auf externe Seite" +msgstr "" #: order/models.py:112 msgid "Order notes" -msgstr "Bestell-Notizen" +msgstr "" -#: order/models.py:169 order/models.py:398 -#, fuzzy -#| msgid "Purchase Order Details" +#: order/models.py:171 order/models.py:430 msgid "Purchase order status" -msgstr "Bestelldetails" +msgstr "" -#: order/models.py:177 +#: order/models.py:179 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:180 +#: order/models.py:182 msgid "Supplier order reference code" -msgstr "Bestellreferenz" +msgstr "" -#: order/models.py:189 +#: order/models.py:193 +msgid "Issue Date" +msgstr "" + +#: order/models.py:194 msgid "Date order was issued" msgstr "" -#: order/models.py:191 -#, fuzzy -#| msgid "Mark order as complete" -msgid "Date order was completed" -msgstr "Bestellung als vollständig markieren" +#: order/models.py:199 +msgid "Target Delivery Date" +msgstr "" -#: order/models.py:214 order/models.py:296 part/views.py:1504 +#: order/models.py:200 +msgid "" +"Expected date for order delivery. Order will be overdue after this date." +msgstr "" + +#: order/models.py:205 +msgid "Completion Date" +msgstr "" + +#: order/models.py:206 +msgid "Date order was completed" +msgstr "" + +#: order/models.py:230 order/models.py:328 part/views.py:1504 #: stock/models.py:257 stock/models.py:866 msgid "Quantity must be greater than zero" -msgstr "Anzahl muss größer Null sein" +msgstr "" -#: order/models.py:219 +#: order/models.py:235 msgid "Part supplier must match PO supplier" -msgstr "Teile-Zulieferer muss dem Zulieferer des Kaufvertrags entsprechen" +msgstr "" -#: order/models.py:291 +#: order/models.py:323 msgid "Lines can only be received against an order marked as 'Placed'" -msgstr "Nur Teile aufgegebener Bestllungen können empfangen werden" +msgstr "" -#: order/models.py:394 +#: order/models.py:426 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:400 +#: order/models.py:432 msgid "Customer order reference code" -msgstr "Bestellreferenz" +msgstr "" -#: order/models.py:462 +#: order/models.py:490 msgid "SalesOrder cannot be shipped as it is not currently pending" -msgstr "Bestellung kann nicht versendet werden weil sie nicht anhängig ist" +msgstr "" -#: order/models.py:549 +#: order/models.py:577 msgid "Item quantity" -msgstr "Anzahl" +msgstr "" -#: order/models.py:551 +#: order/models.py:579 msgid "Line item reference" -msgstr "Position - Referenz" +msgstr "" -#: order/models.py:553 +#: order/models.py:581 msgid "Line item notes" -msgstr "Position - Notizen" +msgstr "" -#: order/models.py:579 order/templates/order/order_base.html:9 +#: order/models.py:607 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:24 -#: stock/templates/stock/item_base.html:296 templates/js/order.js:146 +#: stock/templates/stock/item_base.html:296 templates/js/order.js:145 msgid "Purchase Order" -msgstr "Kaufvertrag" +msgstr "" -#: order/models.py:592 +#: order/models.py:620 msgid "Supplier part" -msgstr "Zulieferer-Teil" +msgstr "" -#: order/models.py:595 +#: order/models.py:623 msgid "Number of items received" -msgstr "Empfangene Objekt-Anzahl" +msgstr "" -#: order/models.py:602 stock/models.py:479 +#: order/models.py:630 stock/models.py:479 #: stock/templates/stock/item_base.html:303 -#, fuzzy -#| msgid "Purchase Order" msgid "Purchase Price" -msgstr "Kaufvertrag" +msgstr "" -#: order/models.py:603 -#, fuzzy -#| msgid "Purchase Order" +#: order/models.py:631 msgid "Unit purchase price" -msgstr "Kaufvertrag" +msgstr "" -#: order/models.py:698 +#: order/models.py:726 msgid "Cannot allocate stock item to a line with a different part" -msgstr "Kann Lagerobjekt keiner Zeile mit einem anderen Teil hinzufügen" +msgstr "" -#: order/models.py:700 +#: order/models.py:728 msgid "Cannot allocate stock to a line without a part" -msgstr "Kann Lagerobjekt keiner Zeile ohne Teil hinzufügen" +msgstr "" -#: order/models.py:703 +#: order/models.py:731 msgid "Allocation quantity cannot exceed stock quantity" -msgstr "zugewiesene Anzahl darf nicht die verfügbare Anzahl überschreiten" +msgstr "" -#: order/models.py:713 +#: order/models.py:741 msgid "Quantity must be 1 for serialized stock item" -msgstr "Anzahl muss 1 für Objekte mit Seriennummer sein" +msgstr "" -#: order/models.py:729 +#: order/models.py:757 msgid "Select stock item to allocate" -msgstr "Lagerobjekt für Zuordnung auswählen" +msgstr "" -#: order/models.py:732 +#: order/models.py:760 msgid "Enter stock allocation quantity" -msgstr "Zuordnungsanzahl eingeben" +msgstr "" #: order/templates/order/delete_attachment.html:5 #: stock/templates/stock/attachment_delete.html:5 #: templates/attachment_delete.html:5 msgid "Are you sure you want to delete this attachment?" -msgstr "Sind Sie sicher, dass Sie diesen Anhang löschen wollen?" +msgstr "" -#: order/templates/order/order_base.html:35 -#, fuzzy -#| msgid "Edited company information" +#: order/templates/order/order_base.html:40 msgid "Edit order information" -msgstr "Firmeninformation bearbeitet" +msgstr "" -#: order/templates/order/order_base.html:43 -#, fuzzy -#| msgid "Receive line item" +#: order/templates/order/order_base.html:48 msgid "Receive items" -msgstr "Position empfangen" +msgstr "" -#: order/templates/order/order_base.html:56 +#: order/templates/order/order_base.html:61 msgid "Export order to file" msgstr "" -#: order/templates/order/order_base.html:64 -msgid "Purchase Order Details" -msgstr "Bestelldetails" - #: order/templates/order/order_base.html:69 -#: order/templates/order/sales_order_base.html:74 -msgid "Order Reference" -msgstr "Bestellreferenz" +msgid "Purchase Order Details" +msgstr "" #: order/templates/order/order_base.html:74 +#: order/templates/order/sales_order_base.html:74 +msgid "Order Reference" +msgstr "" + +#: order/templates/order/order_base.html:79 #: order/templates/order/sales_order_base.html:79 msgid "Order Status" -msgstr "Bestellstatus" +msgstr "" -#: order/templates/order/order_base.html:85 templates/js/order.js:169 +#: order/templates/order/order_base.html:95 templates/js/order.js:175 msgid "Supplier Reference" -msgstr "Zuliefererreferenz" +msgstr "" -#: order/templates/order/order_base.html:104 +#: order/templates/order/order_base.html:114 msgid "Issued" -msgstr "Aufgegeben" +msgstr "" -#: order/templates/order/order_base.html:111 +#: order/templates/order/order_base.html:128 #: order/templates/order/purchase_order_detail.html:193 #: order/templates/order/receive_parts.html:22 #: order/templates/order/sales_order_base.html:128 msgid "Received" -msgstr "Empfangen" +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 "" -"Abbruch dieser Bestellung bedeutet, dass sie nicht länger bearbeitbar ist." #: order/templates/order/order_notes.html:13 #: order/templates/order/order_notes.html:29 #: order/templates/order/sales_order_notes.html:18 #: order/templates/order/sales_order_notes.html:34 msgid "Order Notes" -msgstr "Bestellungsbemerkungen" +msgstr "" #: order/templates/order/order_wizard/select_parts.html:9 msgid "Step 1 of 2 - Select Part Suppliers" -msgstr "Schritt 1 von 2 - Zulieferer auswählen" +msgstr "" #: order/templates/order/order_wizard/select_parts.html:14 -#, fuzzy -#| msgid "Select suppliers." msgid "Select suppliers" -msgstr "Zulieferer auswählen." +msgstr "" #: order/templates/order/order_wizard/select_parts.html:18 -#, fuzzy -#| msgid "No purchaseable parts selected." msgid "No purchaseable parts selected" -msgstr "Keine kaufbaren Teile ausgewählt." +msgstr "" #: order/templates/order/order_wizard/select_parts.html:31 msgid "Select Supplier" -msgstr "Zulieferer auswählen" +msgstr "" #: order/templates/order/order_wizard/select_parts.html:57 msgid "Select a supplier for" -msgstr "Zulieferer auswählen für" +msgstr "" #: order/templates/order/order_wizard/select_pos.html:8 msgid "Step 2 of 2 - Select Purchase Orders" -msgstr "Schritt 2 von 2 - Bestellung auswählen" +msgstr "" #: order/templates/order/order_wizard/select_pos.html:12 msgid "Select existing purchase orders, or create new orders." -msgstr "Bestellungen auswählen oder anlegen." +msgstr "" #: order/templates/order/order_wizard/select_pos.html:31 -#: templates/js/order.js:193 templates/js/order.js:291 +#: templates/js/order.js:203 templates/js/order.js:302 msgid "Items" -msgstr "Positionen" +msgstr "" #: order/templates/order/order_wizard/select_pos.html:32 msgid "Select Purchase Order" -msgstr "Bestellung auswählen" +msgstr "" #: order/templates/order/order_wizard/select_pos.html:67 msgid "Select a purchase order for" -msgstr "Bestellung auswählen für" +msgstr "" #: order/templates/order/po_attachments.html:11 msgid "Purchase Order Attachments" -msgstr "Bestellanhänge" +msgstr "" #: order/templates/order/po_received_items.html:11 #: order/templates/order/po_tabs.html:8 -#, fuzzy -#| msgid "Receive line item" msgid "Received Items" -msgstr "Position empfangen" +msgstr "" #: order/templates/order/po_tabs.html:5 -#, fuzzy -#| msgid "Add Line Item" msgid "Line Items" -msgstr "Position hinzufügen" +msgstr "" #: order/templates/order/purchase_order_detail.html:17 #: order/templates/order/sales_order_detail.html:19 order/views.py:1119 #: order/views.py:1203 msgid "Add Line Item" -msgstr "Position hinzufügen" +msgstr "" #: order/templates/order/purchase_order_detail.html:21 msgid "Purchase Order Items" -msgstr "Bestellpositionen" +msgstr "" #: order/templates/order/purchase_order_detail.html:39 #: order/templates/order/purchase_order_detail.html:119 #: part/templates/part/category.html:173 part/templates/part/category.html:215 -#: templates/js/stock.js:627 templates/js/stock.js:887 +#: templates/js/stock.js:642 templates/js/stock.js:989 msgid "New Location" -msgstr "Neuer Standort" +msgstr "" #: order/templates/order/purchase_order_detail.html:40 #: order/templates/order/purchase_order_detail.html:120 #: stock/templates/stock/location.html:35 msgid "Create new stock location" -msgstr "Neuen Lagerort anlegen" +msgstr "" #: order/templates/order/purchase_order_detail.html:132 msgid "No line items found" -msgstr "Keine Positionen gefunden" +msgstr "" #: order/templates/order/purchase_order_detail.html:166 #: order/templates/order/receive_parts.html:20 msgid "Order Code" -msgstr "Bestellnummer" +msgstr "" #: order/templates/order/purchase_order_detail.html:184 -#, fuzzy -#| msgid "Price" msgid "Unit Price" -msgstr "Preis" +msgstr "" #: order/templates/order/purchase_order_detail.html:225 #: order/templates/order/sales_order_detail.html:285 msgid "Edit line item" -msgstr "Position bearbeiten" +msgstr "" #: order/templates/order/purchase_order_detail.html:226 msgid "Delete line item" -msgstr "Position löschen" +msgstr "" #: order/templates/order/purchase_order_detail.html:231 msgid "Receive line item" -msgstr "Position empfangen" +msgstr "" #: order/templates/order/receive_parts.html:8 msgid "Receive outstanding parts for" @@ -2526,13 +2225,11 @@ msgstr "" #: order/templates/order/receive_parts.html:21 #: part/templates/part/part_base.html:145 templates/js/part.js:434 msgid "On Order" -msgstr "bestellt" +msgstr "" #: order/templates/order/receive_parts.html:23 -#, fuzzy -#| msgid "Received" msgid "Receive" -msgstr "Empfangen" +msgstr "" #: order/templates/order/receive_parts.html:36 msgid "Error: Referenced part has been removed" @@ -2540,469 +2237,420 @@ msgstr "" #: order/templates/order/sales_order_base.html:15 msgid "This SalesOrder has not been fully allocated" -msgstr "Dieser Auftrag ist nicht vollständig zugeordnet" +msgstr "" #: order/templates/order/sales_order_base.html:61 msgid "Packing List" -msgstr "Packliste" +msgstr "" #: order/templates/order/sales_order_base.html:69 msgid "Sales Order Details" -msgstr "Auftragsdetails" +msgstr "" -#: order/templates/order/sales_order_base.html:95 templates/js/order.js:257 +#: order/templates/order/sales_order_base.html:95 templates/js/order.js:268 msgid "Customer Reference" -msgstr "Kundenreferenz" +msgstr "" #: order/templates/order/sales_order_cancel.html:8 #: order/templates/order/sales_order_ship.html:9 #: part/templates/part/bom_duplicate.html:12 #: stock/templates/stock/stockitem_convert.html:13 msgid "Warning" -msgstr "Warnung" +msgstr "" #: order/templates/order/sales_order_detail.html:14 msgid "Sales Order Items" -msgstr "Auftragspositionen" +msgstr "" #: order/templates/order/sales_order_detail.html:72 #: order/templates/order/sales_order_detail.html:154 stock/models.py:391 #: stock/templates/stock/item_base.html:228 templates/js/build.js:418 msgid "Serial Number" -msgstr "Seriennummer" +msgstr "" #: order/templates/order/sales_order_detail.html:96 templates/js/build.js:459 #: templates/js/build.js:769 msgid "Edit stock allocation" -msgstr "Lagerobjekt-Standort bearbeiten" +msgstr "" #: order/templates/order/sales_order_detail.html:97 templates/js/build.js:461 #: templates/js/build.js:770 msgid "Delete stock allocation" -msgstr "Zuweisung löschen" +msgstr "" #: order/templates/order/sales_order_detail.html:225 #: part/templates/part/tabs.html:23 templates/js/build.js:523 #: templates/js/build.js:765 msgid "Allocated" -msgstr "Zugeordnet" +msgstr "" #: order/templates/order/sales_order_detail.html:227 msgid "Fulfilled" -msgstr "Erledigt" +msgstr "" #: order/templates/order/sales_order_detail.html:275 msgid "Buy parts" -msgstr "Teile kaufen" +msgstr "" #: order/templates/order/sales_order_detail.html:279 msgid "Build parts" -msgstr "Bauteile" +msgstr "" #: order/templates/order/sales_order_detail.html:282 msgid "Allocate parts" -msgstr "Teile zuordnen" +msgstr "" #: order/templates/order/sales_order_detail.html:286 msgid "Delete line item " -msgstr "Position löschen" +msgstr "" #: 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 "" -"Dieser Auftrag ist nicht vollständig zugeordnet. Wenn der Auftrag als " -"versendet markiert wird, kann er nicht mehr geändert werden." #: order/templates/order/sales_order_ship.html:12 msgid "Ensure that the order allocation is correct before shipping the order." -msgstr "Vor dem Versand sicherstellen, dass die Zuordnung richtig ist." +msgstr "" #: order/templates/order/sales_order_ship.html:18 msgid "Some line items in this order have been over-allocated" -msgstr "Einige Positionen dieses Auftrags sind überzugeordnet" +msgstr "" #: order/templates/order/sales_order_ship.html:20 msgid "Ensure that this is correct before shipping the order." -msgstr "Vor dem Versand sicherstellen, dass dies richtig ist" +msgstr "" #: order/templates/order/sales_order_ship.html:27 msgid "Shipping this order means that the order will no longer be editable." msgstr "" -"Versenden dieses Auftrags bedeutet, dass der Auftrag nicht mehr bearbeitbar " -"ist." #: order/templates/order/so_allocation_delete.html:7 msgid "This action will unallocate the following stock from the Sales Order" -msgstr "Diese Aktion wird die folgenden Lagerobjekte vom Auftrag entfernen" +msgstr "" #: order/templates/order/so_attachments.html:11 msgid "Sales Order Attachments" -msgstr "Auftragsanhänge" +msgstr "" #: order/templates/order/so_lineitem_delete.html:5 msgid "Are you sure you wish to delete this line item?" -msgstr "Sind Sie sicher, dass Sie diese Position löschen möchten?" +msgstr "" #: order/templates/order/so_tabs.html:5 msgid "Order Items" -msgstr "Bestellungspositionen" +msgstr "" #: order/views.py:101 msgid "Add Purchase Order Attachment" -msgstr "Bestellanhang hinzufügen" +msgstr "" #: order/views.py:152 msgid "Add Sales Order Attachment" -msgstr "Auftragsanhang hinzufügen" +msgstr "" #: order/views.py:312 msgid "Create Purchase Order" -msgstr "Bestellung anlegen" +msgstr "" #: order/views.py:348 msgid "Create Sales Order" -msgstr "Auftrag anlegen" +msgstr "" #: order/views.py:384 msgid "Edit Purchase Order" -msgstr "Bestellung bearbeiten" +msgstr "" #: order/views.py:405 msgid "Edit Sales Order" -msgstr "Auftrag bearbeiten" +msgstr "" #: order/views.py:422 msgid "Cancel Order" -msgstr "Bestellung stornieren" +msgstr "" #: order/views.py:432 order/views.py:459 msgid "Confirm order cancellation" -msgstr "Bestellstornierung bestätigen" +msgstr "" -#: order/views.py:435 -msgid "Order cannot be cancelled as either pending or placed" +#: order/views.py:435 order/views.py:462 +msgid "Order cannot be cancelled" msgstr "" #: order/views.py:449 msgid "Cancel sales order" -msgstr "Auftrag stornieren" - -#: order/views.py:462 -msgid "Order cannot be cancelled" msgstr "" #: order/views.py:476 msgid "Issue Order" -msgstr "Bestellung aufgeben" +msgstr "" #: order/views.py:486 msgid "Confirm order placement" -msgstr "Bestellungstätigung bestätigen" +msgstr "" #: order/views.py:496 -#, fuzzy -#| msgid "Purchase Order Details" msgid "Purchase order issued" -msgstr "Bestelldetails" +msgstr "" #: order/views.py:507 msgid "Complete Order" -msgstr "Auftrag fertigstellen" +msgstr "" #: order/views.py:524 -#, fuzzy -#| msgid "Confirm build completion" msgid "Confirm order completion" -msgstr "Bau-Fertigstellung bestätigen" +msgstr "" #: order/views.py:535 -#, fuzzy -#| msgid "Mark order as complete" msgid "Purchase order completed" -msgstr "Bestellung als vollständig markieren" +msgstr "" #: order/views.py:545 msgid "Ship Order" -msgstr "Versenden" +msgstr "" #: order/views.py:562 msgid "Confirm order shipment" -msgstr "Versand bestätigen" +msgstr "" #: order/views.py:568 msgid "Could not ship order" -msgstr "Versand fehlgeschlagen" +msgstr "" #: order/views.py:620 msgid "Receive Parts" -msgstr "Teile empfangen" +msgstr "" #: order/views.py:688 msgid "Items received" -msgstr "Anzahl empfangener Positionen" +msgstr "" #: order/views.py:702 msgid "No destination set" -msgstr "Kein Ziel gesetzt" +msgstr "" #: order/views.py:747 msgid "Error converting quantity to number" -msgstr "Fehler beim Konvertieren zu Zahl" +msgstr "" #: order/views.py:753 msgid "Receive quantity less than zero" -msgstr "Anzahl kleiner null empfangen" +msgstr "" #: order/views.py:759 msgid "No lines specified" -msgstr "Keine Zeilen angegeben" +msgstr "" #: order/views.py:1129 -#, fuzzy -#| msgid "Supplier part description" msgid "Supplier part must be specified" -msgstr "Zuliefererbeschreibung des Teils" +msgstr "" #: order/views.py:1135 msgid "Supplier must match for Part and Order" -msgstr "Zulieferer muss zum Teil und zur Bestellung passen" +msgstr "" #: order/views.py:1255 order/views.py:1274 msgid "Edit Line Item" -msgstr "Position bearbeiten" +msgstr "" #: order/views.py:1291 order/views.py:1304 msgid "Delete Line Item" -msgstr "Position löschen" +msgstr "" #: order/views.py:1297 order/views.py:1310 msgid "Deleted line item" -msgstr "Position gelöscht" +msgstr "" #: order/views.py:1319 msgid "Allocate Stock to Order" -msgstr "Lagerbestand dem Auftrag zuweisen" +msgstr "" #: order/views.py:1394 msgid "Edit Allocation Quantity" -msgstr "Zuordnung bearbeiten" +msgstr "" #: order/views.py:1410 msgid "Remove allocation" -msgstr "Zuordnung entfernen" +msgstr "" #: part/bom.py:138 part/models.py:722 part/templates/part/category.html:61 #: part/templates/part/detail.html:87 msgid "Default Location" -msgstr "Standard-Lagerort" +msgstr "" #: part/bom.py:139 part/templates/part/part_base.html:118 msgid "Available Stock" -msgstr "Verfügbarer Lagerbestand" +msgstr "" #: part/bom.py:274 #, python-brace-format msgid "Unsupported file format: {f}" -msgstr "Nicht unterstütztes Dateiformat: {f}" +msgstr "" #: part/bom.py:279 msgid "Error reading BOM file (invalid data)" -msgstr "Fehler beim Lesen der Stückliste (ungültige Daten)" +msgstr "" #: part/bom.py:281 msgid "Error reading BOM file (incorrect row size)" -msgstr "Fehler beim Lesen der Stückliste (ungültige Zeilengröße)" +msgstr "" -#: part/forms.py:61 stock/forms.py:263 +#: part/forms.py:71 stock/forms.py:263 msgid "File Format" -msgstr "Dateiformat" +msgstr "" -#: part/forms.py:61 stock/forms.py:263 +#: part/forms.py:71 stock/forms.py:263 msgid "Select output file format" -msgstr "Ausgabe-Dateiformat auswählen" +msgstr "" -#: part/forms.py:63 +#: part/forms.py:73 msgid "Cascading" -msgstr "Kaskadierend" +msgstr "" -#: part/forms.py:63 +#: part/forms.py:73 msgid "Download cascading / multi-level BOM" -msgstr "Kaskadierende Stückliste herunterladen" +msgstr "" -#: part/forms.py:65 +#: part/forms.py:75 msgid "Levels" msgstr "" -#: part/forms.py:65 +#: part/forms.py:75 msgid "Select maximum number of BOM levels to export (0 = all levels)" msgstr "" -#: part/forms.py:67 -#, fuzzy -#| msgid "New Parameter" +#: part/forms.py:77 msgid "Include Parameter Data" -msgstr "Neuer Parameter" +msgstr "" -#: part/forms.py:67 +#: part/forms.py:77 msgid "Include part parameters data in exported BOM" msgstr "" -#: part/forms.py:69 -#, fuzzy -#| msgid "Include stock in sublocations" +#: part/forms.py:79 msgid "Include Stock Data" -msgstr "Bestand in Unterlagerorten einschließen" +msgstr "" -#: part/forms.py:69 -#, fuzzy -#| msgid "Include parts in subcategories" +#: part/forms.py:79 msgid "Include part stock data in exported BOM" -msgstr "Teile in Unterkategorien einschließen" +msgstr "" -#: part/forms.py:71 -#, fuzzy -#| msgid "New Supplier Part" +#: part/forms.py:81 msgid "Include Supplier Data" -msgstr "Neues Zulieferer-Teil" +msgstr "" -#: part/forms.py:71 +#: part/forms.py:81 msgid "Include part supplier data in exported BOM" msgstr "" -#: part/forms.py:92 part/models.py:1781 +#: part/forms.py:102 part/models.py:1781 msgid "Parent Part" -msgstr "Ausgangsteil" +msgstr "" -#: part/forms.py:93 part/templates/part/bom_duplicate.html:7 -#, fuzzy -#| msgid "Select parent part" +#: part/forms.py:103 part/templates/part/bom_duplicate.html:7 msgid "Select parent part to copy BOM from" -msgstr "Ausgangsteil auswählen" +msgstr "" -#: part/forms.py:99 -#, fuzzy -#| msgid "Select from existing images" +#: part/forms.py:109 msgid "Clear existing BOM items" -msgstr "Aus vorhandenen Bildern auswählen" +msgstr "" -#: part/forms.py:104 -#, fuzzy -#| msgid "Confim BOM item deletion" +#: part/forms.py:114 msgid "Confirm BOM duplication" -msgstr "Löschung von BOM-Position bestätigen" +msgstr "" -#: part/forms.py:122 +#: part/forms.py:132 msgid "Confirm that the BOM is correct" -msgstr "Bestätigen, dass die Stückliste korrekt ist" +msgstr "" -#: part/forms.py:134 +#: part/forms.py:144 msgid "Select BOM file to upload" -msgstr "Stücklisten-Datei zum Upload auswählen" +msgstr "" -#: part/forms.py:153 -#, fuzzy -#| msgid "Delete Parts" +#: part/forms.py:163 msgid "Related Part" -msgstr "Teile löschen" +msgstr "" -#: part/forms.py:172 +#: part/forms.py:182 msgid "Select part category" -msgstr "Teilekategorie wählen" +msgstr "" -#: part/forms.py:189 -#, fuzzy -#| msgid "Perform 'deep copy' which will duplicate all BOM data for this part" +#: part/forms.py:199 msgid "Duplicate all BOM data for this part" msgstr "" -"Tiefe Kopie ausführen. Dies wird alle Daten der Stückliste für dieses Teil " -"duplizieren" -#: part/forms.py:190 +#: part/forms.py:200 msgid "Copy BOM" msgstr "" -#: part/forms.py:195 +#: part/forms.py:205 msgid "Duplicate all parameter data for this part" msgstr "" -#: part/forms.py:196 -#, fuzzy -#| msgid "Parameters" -msgid "Copy Parameters" -msgstr "Parameter" - -#: part/forms.py:201 -msgid "Confirm part creation" -msgstr "Erstellen des Teils bestätigen" - #: part/forms.py:206 -#, fuzzy -#| msgid "No part parameter templates found" -msgid "Include category parameter templates" -msgstr "Keine Teilparametervorlagen gefunden" +msgid "Copy Parameters" +msgstr "" #: part/forms.py:211 -#, fuzzy -#| msgid "No part parameter templates found" +msgid "Confirm part creation" +msgstr "" + +#: part/forms.py:216 +msgid "Include category parameter templates" +msgstr "" + +#: part/forms.py:221 msgid "Include parent categories parameter templates" -msgstr "Keine Teilparametervorlagen gefunden" +msgstr "" -#: part/forms.py:291 -#, fuzzy -#| msgid "Parameter template name must be unique" +#: part/forms.py:301 msgid "Add parameter template to same level categories" -msgstr "Vorlagen-Name des Parameters muss eindeutig sein" +msgstr "" -#: part/forms.py:295 -#, fuzzy -#| msgid "Parameter template name must be unique" +#: part/forms.py:305 msgid "Add parameter template to all categories" -msgstr "Vorlagen-Name des Parameters muss eindeutig sein" +msgstr "" -#: part/forms.py:339 +#: part/forms.py:349 msgid "Input quantity for price calculation" -msgstr "Eintragsmenge zur Preisberechnung" +msgstr "" #: part/models.py:68 msgid "Default location for parts in this category" -msgstr "Standard-Standort für Teile dieser Kategorie" +msgstr "" #: part/models.py:71 msgid "Default keywords for parts in this category" -msgstr "Standard-Stichworte für Teile dieser Kategorie" +msgstr "" #: part/models.py:77 part/models.py:1826 #: part/templates/part/part_app_base.html:9 msgid "Part Category" -msgstr "Teilkategorie" +msgstr "" #: part/models.py:78 part/templates/part/category.html:18 #: part/templates/part/category.html:89 templates/stats.html:39 +#: users/models.py:32 msgid "Part Categories" -msgstr "Teile-Kategorien" +msgstr "" #: part/models.py:409 part/models.py:419 #, 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)" +msgstr "" #: part/models.py:516 -#, fuzzy -#| msgid "No serial numbers found" msgid "Next available serial numbers are" -msgstr "Keine Seriennummern gefunden" +msgstr "" #: part/models.py:520 msgid "Next available serial number is" msgstr "" #: part/models.py:525 -#, fuzzy -#| msgid "Empty serial number string" msgid "Most recent serial number is" -msgstr "Keine Seriennummer angegeben" +msgstr "" #: part/models.py:604 msgid "Duplicate IPN not allowed in part settings" @@ -3010,87 +2658,83 @@ msgstr "" #: part/models.py:615 msgid "Part must be unique for name, IPN and revision" -msgstr "Namen, Teile- und Revisionsnummern müssen eindeutig sein" +msgstr "" #: part/models.py:646 part/templates/part/detail.html:19 msgid "Part name" -msgstr "Name des Teils" +msgstr "" #: part/models.py:653 -#, fuzzy -#| msgid "Template" msgid "Is Template" -msgstr "Vorlage" +msgstr "" #: part/models.py:654 msgid "Is this part a template part?" -msgstr "Ist dieses Teil eine Vorlage?" +msgstr "" #: part/models.py:665 msgid "Is this part a variant of another part?" -msgstr "Ist dieses Teil eine Variante eines anderen Teils?" +msgstr "" #: part/models.py:666 part/templates/part/detail.html:57 msgid "Variant Of" -msgstr "Variante von" +msgstr "" #: part/models.py:672 msgid "Part description" -msgstr "Beschreibung des Teils" +msgstr "" #: part/models.py:677 part/templates/part/category.html:68 #: part/templates/part/detail.html:64 msgid "Keywords" -msgstr "Schlüsselwörter" +msgstr "" #: part/models.py:678 msgid "Part keywords to improve visibility in search results" -msgstr "Schlüsselworte um die Sichtbarkeit in Suchergebnissen zu verbessern" +msgstr "" #: part/models.py:685 part/templates/part/detail.html:70 #: part/templates/part/set_category.html:15 templates/js/part.js:405 msgid "Category" -msgstr "Kategorie" +msgstr "" #: part/models.py:686 msgid "Part category" -msgstr "Teile-Kategorie" +msgstr "" #: part/models.py:691 part/templates/part/detail.html:25 #: part/templates/part/part_base.html:95 templates/js/part.js:180 msgid "IPN" -msgstr "IPN (Interne Produktnummer)" +msgstr "" #: part/models.py:692 msgid "Internal Part Number" -msgstr "Interne Teilenummer" +msgstr "" #: part/models.py:698 msgid "Part revision or version number" -msgstr "Revisions- oder Versionsnummer" +msgstr "" #: part/models.py:699 part/templates/part/detail.html:32 #: templates/js/part.js:184 msgid "Revision" -msgstr "Revision" +msgstr "" #: part/models.py:720 msgid "Where is this item normally stored?" -msgstr "Wo wird dieses Teil normalerweise gelagert?" +msgstr "" #: part/models.py:767 part/templates/part/detail.html:94 msgid "Default Supplier" -msgstr "Standard-Zulieferer" +msgstr "" #: part/models.py:768 msgid "Default supplier part" -msgstr "Standard-Zulieferer?" +msgstr "" #: part/models.py:775 -#, fuzzy -#| msgid "Default Supplier" msgid "Default Expiry" -msgstr "Standard-Zulieferer" +msgstr "" #: part/models.py:776 msgid "Expiry time (in days) for stock items of this part" @@ -3098,127 +2742,107 @@ msgstr "" #: part/models.py:781 part/templates/part/detail.html:108 msgid "Minimum Stock" -msgstr "Minimaler Lagerbestand" +msgstr "" #: part/models.py:782 msgid "Minimum allowed stock level" -msgstr "Minimal zulässiger Lagerbestand" +msgstr "" #: part/models.py:788 part/templates/part/detail.html:102 #: part/templates/part/params.html:26 msgid "Units" -msgstr "Einheiten" +msgstr "" #: part/models.py:789 msgid "Stock keeping units for this part" -msgstr "Stock Keeping Units (SKU) für dieses Teil" +msgstr "" #: part/models.py:795 msgid "Can this part be built from other parts?" -msgstr "Kann dieses Teil aus anderen Teilen angefertigt werden?" +msgstr "" #: part/models.py:801 msgid "Can this part be used to build other parts?" -msgstr "Kann dieses Teil zum Bau von anderen genutzt werden?" +msgstr "" #: part/models.py:807 msgid "Does this part have tracking for unique items?" -msgstr "Hat dieses Teil Tracking für einzelne Objekte?" +msgstr "" #: part/models.py:812 msgid "Can this part be purchased from external suppliers?" -msgstr "Kann dieses Teil von externen Zulieferern gekauft werden?" +msgstr "" #: part/models.py:817 msgid "Can this part be sold to customers?" -msgstr "Kann dieses Teil an Kunden verkauft werden?" +msgstr "" #: part/models.py:821 part/templates/part/detail.html:222 #: templates/js/table_filters.js:19 templates/js/table_filters.js:55 -#: templates/js/table_filters.js:196 templates/js/table_filters.js:261 +#: templates/js/table_filters.js:196 templates/js/table_filters.js:265 msgid "Active" -msgstr "Aktiv" +msgstr "" #: part/models.py:822 msgid "Is this part active?" -msgstr "Ist dieses Teil aktiv?" +msgstr "" #: part/models.py:827 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?" +msgstr "" #: part/models.py:832 msgid "Part notes - supports Markdown formatting" -msgstr "Bemerkungen - unterstüzt Markdown-Formatierung" +msgstr "" #: part/models.py:835 msgid "Stored BOM checksum" -msgstr "Prüfsumme der Stückliste gespeichert" +msgstr "" #: part/models.py:1654 -#, fuzzy -#| msgid "Stock item cannot be created for a template Part" msgid "Test templates can only be created for trackable parts" -msgstr "Lagerobjekt kann nicht für Vorlagen-Teile angelegt werden" +msgstr "" #: part/models.py:1671 -#, fuzzy -#| msgid "" -#| "A stock item with this serial number already exists for template part " -#| "{part}" msgid "Test with this name already exists for this part" msgstr "" -"Ein Teil mit dieser Seriennummer existiert bereits für die Teilevorlage " -"{part}" -#: part/models.py:1690 templates/js/part.js:567 templates/js/stock.js:93 -#, fuzzy -#| msgid "Instance Name" +#: part/models.py:1690 templates/js/part.js:567 templates/js/stock.js:103 msgid "Test Name" -msgstr "Instanzname" +msgstr "" #: part/models.py:1691 -#, fuzzy -#| msgid "Serial number for this item" msgid "Enter a name for the test" -msgstr "Seriennummer für dieses Teil" +msgstr "" #: part/models.py:1696 -#, fuzzy -#| msgid "Description" msgid "Test Description" -msgstr "Beschreibung" +msgstr "" #: part/models.py:1697 -#, fuzzy -#| msgid "Brief description of the build" msgid "Enter description for this test" -msgstr "Kurze Beschreibung des Baus" +msgstr "" #: part/models.py:1702 templates/js/part.js:576 #: templates/js/table_filters.js:182 msgid "Required" -msgstr "benötigt" +msgstr "" #: part/models.py:1703 msgid "Is this test required to pass?" msgstr "" #: part/models.py:1708 templates/js/part.js:584 -#, fuzzy -#| msgid "Required Parts" msgid "Requires Value" -msgstr "benötigte Teile" +msgstr "" #: part/models.py:1709 msgid "Does this test require a value when adding a test result?" msgstr "" #: part/models.py:1714 templates/js/part.js:591 -#, fuzzy -#| msgid "Delete Attachment" msgid "Requires Attachment" -msgstr "Anhang löschen" +msgstr "" #: part/models.py:1715 msgid "Does this test require a file attachment when adding a test result?" @@ -3226,91 +2850,79 @@ msgstr "" #: part/models.py:1748 msgid "Parameter template name must be unique" -msgstr "Vorlagen-Name des Parameters muss eindeutig sein" +msgstr "" #: part/models.py:1753 msgid "Parameter Name" -msgstr "Name des Parameters" +msgstr "" #: part/models.py:1755 msgid "Parameter Units" -msgstr "Parameter Einheit" +msgstr "" #: part/models.py:1783 part/models.py:1831 #: templates/InvenTree/settings/category.html:62 msgid "Parameter Template" -msgstr "Parameter Vorlage" +msgstr "" #: part/models.py:1785 msgid "Parameter Value" -msgstr "Parameter Wert" +msgstr "" #: part/models.py:1835 -#, fuzzy -#| msgid "Parameter Value" msgid "Default Parameter Value" -msgstr "Parameter Wert" +msgstr "" #: part/models.py:1865 msgid "Select parent part" -msgstr "Ausgangsteil auswählen" +msgstr "" #: part/models.py:1873 msgid "Select part to be used in BOM" -msgstr "Teil für die Nutzung in der Stückliste auswählen" +msgstr "" #: part/models.py:1879 msgid "BOM quantity for this BOM item" -msgstr "Stücklisten-Anzahl für dieses Stücklisten-Teil" +msgstr "" #: part/models.py:1881 -#, fuzzy -#| msgid "Confim BOM item deletion" msgid "This BOM item is optional" -msgstr "Löschung von BOM-Position bestätigen" +msgstr "" #: part/models.py:1884 msgid "Estimated build wastage quantity (absolute or percentage)" -msgstr "Geschätzter Ausschuss (absolut oder prozentual)" +msgstr "" #: part/models.py:1887 msgid "BOM item reference" -msgstr "Referenz des Objekts auf der Stückliste" +msgstr "" #: part/models.py:1890 msgid "BOM item notes" -msgstr "Notizen zum Stücklisten-Objekt" +msgstr "" #: part/models.py:1892 msgid "BOM line checksum" -msgstr "Prüfsumme der Stückliste" +msgstr "" #: part/models.py:1963 part/views.py:1510 part/views.py:1562 #: stock/models.py:247 -#, fuzzy -#| msgid "Overage must be an integer value or a percentage" msgid "Quantity must be integer value for trackable parts" -msgstr "Überschuss muss eine Ganzzahl oder ein Prozentwert sein" +msgstr "" #: part/models.py:1972 part/models.py:1974 -#, fuzzy -#| msgid "Supplier part description" msgid "Sub part must be specified" -msgstr "Zuliefererbeschreibung des Teils" +msgstr "" #: part/models.py:1977 -#, fuzzy -#| msgid "New BOM Item" msgid "BOM Item" -msgstr "Neue Stücklistenposition" +msgstr "" -#: part/models.py:2092 -#, fuzzy -#| msgid "Select a part" +#: part/models.py:2098 msgid "Select Related Part" -msgstr "Teil auswählen" +msgstr "" -#: part/models.py:2124 +#: part/models.py:2130 msgid "" "Error creating relationship: check that the part is not related to itself " "and that the relationship is unique" @@ -3318,12 +2930,12 @@ msgstr "" #: part/templates/part/allocation.html:10 msgid "Part Stock Allocations" -msgstr "Teilbestandszuordnungen" +msgstr "" #: part/templates/part/allocation.html:14 #: part/templates/part/allocation.html:41 msgid "Order" -msgstr "Bestellung" +msgstr "" #: part/templates/part/allocation.html:15 #: part/templates/part/allocation.html:21 @@ -3333,25 +2945,25 @@ msgstr "Bestellung" #: stock/templates/stock/item_base.html:89 #: stock/templates/stock/item_base.html:311 #: stock/templates/stock/stock_adjust.html:16 templates/js/build.js:751 -#: templates/js/stock.js:720 templates/js/stock.js:980 +#: templates/js/stock.js:822 templates/js/stock.js:1082 msgid "Stock Item" -msgstr "Lagerobjekt" +msgstr "" #: part/templates/part/attachments.html:8 msgid "Part Attachments" -msgstr "Anhänge" +msgstr "" #: part/templates/part/bom.html:13 msgid "Bill of Materials" -msgstr "Stückliste" +msgstr "" #: part/templates/part/bom.html:34 msgid "Remove selected BOM items" -msgstr "Ausgewählte Stücklistenpositionen entfernen" +msgstr "" #: part/templates/part/bom.html:37 msgid "Import BOM data" -msgstr "Stückliste importieren" +msgstr "" #: part/templates/part/bom.html:38 msgid "Import from File" @@ -3362,95 +2974,75 @@ msgid "Copy BOM from parent part" msgstr "" #: part/templates/part/bom.html:42 -#, fuzzy -#| msgid "Parameters" msgid "Copy from Parent" -msgstr "Parameter" +msgstr "" #: part/templates/part/bom.html:45 msgid "New BOM Item" -msgstr "Neue Stücklistenposition" +msgstr "" #: part/templates/part/bom.html:46 -#, fuzzy -#| msgid "Add Line Item" msgid "Add Item" -msgstr "Position hinzufügen" +msgstr "" #: part/templates/part/bom.html:48 msgid "Finish Editing" -msgstr "Bearbeitung beenden" +msgstr "" #: part/templates/part/bom.html:49 -#, fuzzy -#| msgid "Finish Editing" msgid "Finished" -msgstr "Bearbeitung beenden" +msgstr "" #: part/templates/part/bom.html:53 msgid "Edit BOM" -msgstr "Stückliste bearbeiten" +msgstr "" #: part/templates/part/bom.html:54 part/templates/part/params.html:38 #: templates/InvenTree/settings/user.html:19 msgid "Edit" -msgstr "Bearbeiten" +msgstr "" #: part/templates/part/bom.html:57 msgid "Validate Bill of Materials" -msgstr "Stückliste validieren" +msgstr "" #: part/templates/part/bom.html:58 -#, fuzzy -#| msgid "Validate BOM" msgid "Validate" -msgstr "BOM validieren" +msgstr "" #: part/templates/part/bom.html:62 part/views.py:1801 msgid "Export Bill of Materials" -msgstr "Stückliste exportieren" +msgstr "" #: part/templates/part/bom.html:123 -#, fuzzy -#| msgid "Remove selected BOM items" msgid "Delete selected BOM items?" -msgstr "Ausgewählte Stücklistenpositionen entfernen" +msgstr "" #: part/templates/part/bom.html:124 -#, fuzzy -#| msgid "Remove selected BOM items" msgid "All selected BOM items will be deleted" -msgstr "Ausgewählte Stücklistenpositionen entfernen" +msgstr "" #: part/templates/part/bom_duplicate.html:13 -#, fuzzy -#| msgid "Export Bill of Materials" msgid "This part already has a Bill of Materials" -msgstr "Stückliste exportieren" +msgstr "" #: part/templates/part/bom_upload/select_fields.html:8 #: part/templates/part/bom_upload/select_parts.html:8 #: part/templates/part/bom_upload/upload_file.html:10 -#, fuzzy -#| msgid "Export Bill of Materials" msgid "Upload Bill of Materials" -msgstr "Stückliste exportieren" +msgstr "" #: part/templates/part/bom_upload/select_fields.html:10 -#, fuzzy -#| msgid "Step 1 of 2 - Select Part Suppliers" msgid "Step 2 - Select Fields" -msgstr "Schritt 1 von 2 - Zulieferer auswählen" +msgstr "" #: part/templates/part/bom_upload/select_fields.html:15 msgid "Missing selections for the following required columns" msgstr "" #: part/templates/part/bom_upload/select_fields.html:26 -#, fuzzy -#| msgid "Sublocations" msgid "Submit Selections" -msgstr "Sub-Standorte" +msgstr "" #: part/templates/part/bom_upload/select_fields.html:35 msgid "File Fields" @@ -3461,26 +3053,20 @@ msgid "Match Fields" msgstr "" #: part/templates/part/bom_upload/select_fields.html:62 -#, fuzzy -#| msgid "Duplicate part selected" msgid "Duplicate column selection" -msgstr "Teil doppelt ausgewählt" +msgstr "" #: part/templates/part/bom_upload/select_parts.html:10 -#, fuzzy -#| msgid "Step 1 of 2 - Select Part Suppliers" msgid "Step 3 - Select Parts" -msgstr "Schritt 1 von 2 - Zulieferer auswählen" +msgstr "" #: part/templates/part/bom_upload/select_parts.html:15 msgid "Errors exist in the submitted data" msgstr "" #: part/templates/part/bom_upload/select_parts.html:21 -#, fuzzy -#| msgid "Edit BOM" msgid "Submit BOM" -msgstr "Stückliste bearbeiten" +msgstr "" #: part/templates/part/bom_upload/select_parts.html:33 msgid "Row" @@ -3488,16 +3074,12 @@ msgstr "" #: part/templates/part/bom_upload/select_parts.html:34 #: part/templates/part/bom_upload/select_parts.html:63 -#, fuzzy -#| msgid "Select part" msgid "Select Part" -msgstr "Teil auswählen" +msgstr "" #: part/templates/part/bom_upload/upload_file.html:13 -#, fuzzy -#| msgid "Step 1 of 2 - Select Part Suppliers" msgid "Step 1 - Select BOM File" -msgstr "Schritt 1 von 2 - Zulieferer auswählen" +msgstr "" #: part/templates/part/bom_upload/upload_file.html:16 msgid "Requirements for BOM upload" @@ -3509,66 +3091,56 @@ msgid "" msgstr "" #: part/templates/part/bom_upload/upload_file.html:18 -#, fuzzy -#| msgid "Upload new image" msgid "BOM Upload Template" -msgstr "Neues Bild hochladen" +msgstr "" #: part/templates/part/bom_upload/upload_file.html:19 msgid "Each part must already exist in the database" msgstr "" #: part/templates/part/build.html:8 -#, fuzzy -#| msgid "Parent Build" msgid "Part Builds" -msgstr "Eltern-Bau" +msgstr "" #: part/templates/part/build.html:15 -#, fuzzy -#| msgid "Start new Build" msgid "Start New Build" -msgstr "Neuen Bau beginnen" +msgstr "" #: part/templates/part/category.html:19 msgid "All parts" -msgstr "Alle Teile" +msgstr "" #: part/templates/part/category.html:24 part/views.py:2192 msgid "Create new part category" -msgstr "Teilkategorie anlegen" +msgstr "" #: part/templates/part/category.html:30 -#, fuzzy -#| msgid "Edit Part Category" msgid "Edit part category" -msgstr "Teilkategorie bearbeiten" +msgstr "" #: part/templates/part/category.html:35 -#, fuzzy -#| msgid "Select part category" msgid "Delete part category" -msgstr "Teilekategorie wählen" +msgstr "" #: part/templates/part/category.html:45 part/templates/part/category.html:84 msgid "Category Details" -msgstr "Kategorie-Details" +msgstr "" #: part/templates/part/category.html:50 msgid "Category Path" -msgstr "Pfad zur Kategorie" +msgstr "" #: part/templates/part/category.html:55 msgid "Category Description" -msgstr "Kategorie-Beschreibung" +msgstr "" #: part/templates/part/category.html:74 msgid "Subcategories" -msgstr "Unter-Kategorien" +msgstr "" #: part/templates/part/category.html:79 msgid "Parts (Including subcategories)" -msgstr "Teile (inklusive Unter-Kategorien)" +msgstr "" #: part/templates/part/category.html:111 msgid "Export Part Data" @@ -3576,248 +3148,208 @@ msgstr "" #: part/templates/part/category.html:115 msgid "Create new part" -msgstr "Neues Teil anlegen" +msgstr "" #: part/templates/part/category.html:123 -#, fuzzy -#| msgid "Part category" msgid "Set category" -msgstr "Teile-Kategorie" +msgstr "" #: part/templates/part/category.html:123 -#, fuzzy -#| msgid "Set Part Category" msgid "Set Category" -msgstr "Teilkategorie auswählen" +msgstr "" #: part/templates/part/category.html:126 -#, fuzzy -#| msgid "Export" msgid "Export Data" -msgstr "Exportieren" +msgstr "" -#: part/templates/part/category.html:174 templates/js/stock.js:628 -#, fuzzy -#| msgid "Create New Location" +#: part/templates/part/category.html:174 templates/js/stock.js:643 msgid "Create new location" -msgstr "Neuen Standort anlegen" +msgstr "" #: part/templates/part/category.html:179 part/templates/part/category.html:209 -#, fuzzy -#| msgid "Category" msgid "New Category" -msgstr "Kategorie" +msgstr "" #: part/templates/part/category.html:180 -#, fuzzy -#| msgid "Create new part category" msgid "Create new category" -msgstr "Teilkategorie anlegen" +msgstr "" #: part/templates/part/category.html:210 -#, fuzzy -#| msgid "Create new part category" msgid "Create new Part Category" -msgstr "Teilkategorie anlegen" +msgstr "" #: part/templates/part/category.html:216 stock/views.py:1545 msgid "Create new Stock Location" -msgstr "Neuen Lager-Standort erstellen" +msgstr "" #: part/templates/part/category_tabs.html:9 -#, fuzzy -#| msgid "Parameter Value" msgid "Parametric Table" -msgstr "Parameter Wert" +msgstr "" #: part/templates/part/create_part.html:11 -#, fuzzy -#| msgid "No matching data" msgid "Possible Matching Parts" -msgstr "Keine passenden Daten" +msgstr "" #: part/templates/part/create_part.html:12 msgid "The new part may be a duplicate of these existing parts" msgstr "" #: part/templates/part/create_part.html:16 -#, fuzzy -#| msgid "Batch" msgid "match" -msgstr "Los" +msgstr "" #: part/templates/part/detail.html:9 msgid "Part Details" -msgstr "Teile-Details" +msgstr "" #: part/templates/part/detail.html:39 -#, fuzzy -#| msgid "Serial Number" msgid "Latest Serial Number" -msgstr "Seriennummer" +msgstr "" #: part/templates/part/detail.html:44 -#, fuzzy -#| msgid "No serial numbers found" msgid "No serial numbers recorded" -msgstr "Keine Seriennummern gefunden" +msgstr "" #: part/templates/part/detail.html:115 -#, fuzzy -#| msgid "Stock Export Options" msgid "Stock Expiry Time" -msgstr "Lagerbestandsexportoptionen" +msgstr "" -#: part/templates/part/detail.html:121 templates/js/order.js:276 +#: part/templates/part/detail.html:121 templates/js/order.js:287 msgid "Creation Date" -msgstr "Erstelldatum" +msgstr "" #: part/templates/part/detail.html:127 msgid "Created By" -msgstr "Erstellt von" +msgstr "" #: part/templates/part/detail.html:134 msgid "Responsible User" -msgstr "Verantwortlicher Benutzer" +msgstr "" #: part/templates/part/detail.html:148 msgid "Part is virtual (not a physical part)" -msgstr "Teil ist virtuell (kein physisches Teil)" +msgstr "" #: part/templates/part/detail.html:150 msgid "Part is not a virtual part" -msgstr "Teil ist nicht virtuell" +msgstr "" #: part/templates/part/detail.html:158 -#, fuzzy -#| msgid "Part cannot be a template part if it is a variant of another part" msgid "Part is a template part (variants can be made from this part)" -msgstr "Teil kann keine Vorlage sein wenn es Variante eines anderen Teils ist" +msgstr "" #: part/templates/part/detail.html:160 -#, fuzzy -#| msgid "Part is not a virtual part" msgid "Part is not a template part" -msgstr "Teil ist nicht virtuell" +msgstr "" #: part/templates/part/detail.html:168 msgid "Part can be assembled from other parts" -msgstr "Teil kann aus anderen Teilen angefertigt werden" +msgstr "" #: part/templates/part/detail.html:170 msgid "Part cannot be assembled from other parts" -msgstr "Teil kann nicht aus anderen Teilen angefertigt werden" +msgstr "" #: part/templates/part/detail.html:178 msgid "Part can be used in assemblies" -msgstr "Teil kann in Baugruppen benutzt werden" +msgstr "" #: part/templates/part/detail.html:180 msgid "Part cannot be used in assemblies" -msgstr "Teil kann nicht in Baugruppen benutzt werden" +msgstr "" #: part/templates/part/detail.html:188 msgid "Part stock is tracked by serial number" -msgstr "Teilebestand in der Seriennummer hinterlegt" +msgstr "" #: part/templates/part/detail.html:190 msgid "Part stock is not tracked by serial number" -msgstr "Teilebestand ist nicht in der Seriennummer hinterlegt" +msgstr "" #: part/templates/part/detail.html:198 part/templates/part/detail.html:200 msgid "Part can be purchased from external suppliers" -msgstr "Teil kann von externen Zulieferern gekauft werden" +msgstr "" #: part/templates/part/detail.html:208 msgid "Part can be sold to customers" -msgstr "Teil kann an Kunden verkauft werden" +msgstr "" #: part/templates/part/detail.html:210 msgid "Part cannot be sold to customers" -msgstr "Teil kann nicht an Kunden verkauft werden" +msgstr "" #: part/templates/part/detail.html:225 -#, fuzzy -#| msgid "This part is not active" msgid "Part is active" -msgstr "Dieses Teil ist nicht aktiv" +msgstr "" #: part/templates/part/detail.html:227 -#, fuzzy -#| msgid "This part is not active" msgid "Part is not active" -msgstr "Dieses Teil ist nicht aktiv" +msgstr "" #: part/templates/part/notes.html:13 part/templates/part/notes.html:29 msgid "Part Notes" -msgstr "Teil-Bemerkungen" +msgstr "" #: part/templates/part/params.html:8 msgid "Part Parameters" -msgstr "Teilparameter" +msgstr "" #: part/templates/part/params.html:14 msgid "Add new parameter" -msgstr "Parameter hinzufügen" +msgstr "" #: part/templates/part/params.html:15 #: templates/InvenTree/settings/category.html:29 -#: templates/InvenTree/settings/part.html:41 +#: templates/InvenTree/settings/part.html:42 msgid "New Parameter" -msgstr "Neuer Parameter" +msgstr "" #: part/templates/part/params.html:25 stock/models.py:1509 -#: templates/InvenTree/settings/header.html:8 templates/js/stock.js:113 +#: templates/InvenTree/settings/header.html:8 templates/js/stock.js:123 msgid "Value" -msgstr "Wert" +msgstr "" #: part/templates/part/params.html:41 part/templates/part/related.html:41 -#: part/templates/part/supplier.html:19 users/models.py:157 +#: part/templates/part/supplier.html:19 users/models.py:163 msgid "Delete" -msgstr "Löschen" +msgstr "" #: part/templates/part/part_app_base.html:11 msgid "Part List" -msgstr "Teileliste" +msgstr "" #: part/templates/part/part_base.html:11 -#, fuzzy -#| msgid "Part is not a virtual part" msgid "This part is a virtual part" -msgstr "Teil ist nicht virtuell" +msgstr "" #: part/templates/part/part_base.html:16 msgid "This part is a template part." -msgstr "Dieses Teil ist eine Vorlage." +msgstr "" #: part/templates/part/part_base.html:21 msgid "This part is a variant of" -msgstr "Dieses Teil ist eine Variante von" +msgstr "" #: part/templates/part/part_base.html:36 templates/js/company.js:155 #: templates/js/part.js:95 templates/js/part.js:172 msgid "Inactive" -msgstr "Inaktiv" +msgstr "" #: part/templates/part/part_base.html:43 msgid "Star this part" -msgstr "Teil favorisieren" +msgstr "" #: part/templates/part/part_base.html:49 #: stock/templates/stock/item_base.html:125 #: stock/templates/stock/location.html:43 -#, fuzzy -#| msgid "Source Location" msgid "Barcode actions" -msgstr "Quell-Standort" +msgstr "" #: part/templates/part/part_base.html:51 #: stock/templates/stock/item_base.html:127 #: stock/templates/stock/location.html:45 -#, fuzzy -#| msgid "Part QR Code" msgid "Show QR Code" -msgstr "Teil-QR-Code" +msgstr "" #: part/templates/part/part_base.html:52 #: stock/templates/stock/item_base.html:143 @@ -3827,467 +3359,397 @@ msgstr "" #: part/templates/part/part_base.html:56 msgid "Show pricing information" -msgstr "Kosteninformationen ansehen" +msgstr "" #: part/templates/part/part_base.html:60 -#, fuzzy -#| msgid "Count stock" msgid "Count part stock" -msgstr "Bestand zählen" +msgstr "" #: part/templates/part/part_base.html:75 -#, fuzzy -#| msgid "Source Location" msgid "Part actions" -msgstr "Quell-Standort" +msgstr "" #: part/templates/part/part_base.html:78 -#, fuzzy -#| msgid "Duplicate Part" msgid "Duplicate part" -msgstr "Teil duplizieren" +msgstr "" #: part/templates/part/part_base.html:81 -#, fuzzy -#| msgid "Edit Template" msgid "Edit part" -msgstr "Vorlage bearbeiten" +msgstr "" #: part/templates/part/part_base.html:84 -#, fuzzy -#| msgid "Delete Parts" msgid "Delete part" -msgstr "Teile löschen" +msgstr "" #: part/templates/part/part_base.html:124 templates/js/table_filters.js:121 msgid "In Stock" -msgstr "Auf Lager" +msgstr "" #: part/templates/part/part_base.html:131 msgid "Allocated to Build Orders" -msgstr "Zu Bauaufträgen zugeordnet" +msgstr "" #: part/templates/part/part_base.html:138 msgid "Allocated to Sales Orders" -msgstr "Zu Aufträgen zugeordnet" +msgstr "" -#: part/templates/part/part_base.html:160 +#: part/templates/part/part_base.html:160 templates/js/bom.js:262 msgid "Can Build" -msgstr "Herstellbar?" +msgstr "" #: part/templates/part/part_base.html:166 msgid "Underway" -msgstr "unterwegs" +msgstr "" #: part/templates/part/part_tests.html:8 -#, fuzzy -#| msgid "Parameter Template" msgid "Part Test Templates" -msgstr "Parameter Vorlage" +msgstr "" #: part/templates/part/part_tests.html:14 -#, fuzzy -#| msgid "Edit Template" msgid "Add Test Template" -msgstr "Vorlage bearbeiten" +msgstr "" #: part/templates/part/part_thumb.html:16 msgid "Select from existing images" -msgstr "Aus vorhandenen Bildern auswählen" +msgstr "" #: part/templates/part/part_thumb.html:17 msgid "Upload new image" -msgstr "Neues Bild hochladen" +msgstr "" #: part/templates/part/related.html:9 -#, fuzzy -#| msgid "Delete Parts" msgid "Related Parts" -msgstr "Teile löschen" +msgstr "" #: part/templates/part/related.html:15 -#, fuzzy -#| msgid "Edit Template" msgid "Add Related" -msgstr "Vorlage bearbeiten" +msgstr "" #: part/templates/part/sale_prices.html:9 part/templates/part/tabs.html:53 -#, fuzzy -#| msgid "Price" msgid "Sale Price" -msgstr "Preis" +msgstr "" #: part/templates/part/sales_orders.html:15 msgid "New sales order" -msgstr "Neuer Auftrag" +msgstr "" #: part/templates/part/sales_orders.html:15 msgid "New Order" -msgstr "Neue Bestellung" +msgstr "" #: part/templates/part/set_category.html:9 msgid "Set category for the following parts" -msgstr "Kategorie für Teile setzen" +msgstr "" #: part/templates/part/set_category.html:32 msgid "Remove part" -msgstr "Teil entfernen" +msgstr "" #: part/templates/part/stock.html:8 msgid "Part Stock" -msgstr "Teilbestand" +msgstr "" #: part/templates/part/stock_count.html:7 templates/js/bom.js:230 #: templates/js/part.js:442 msgid "No Stock" -msgstr "Kein Bestand" +msgstr "" #: part/templates/part/stock_count.html:9 templates/InvenTree/low_stock.html:7 msgid "Low Stock" -msgstr "Niedriger Bestand" +msgstr "" #: part/templates/part/supplier.html:8 -#, fuzzy -#| msgid "Suppliers" msgid "Part Suppliers" -msgstr "Zulieferer" +msgstr "" #: part/templates/part/supplier.html:19 -#, fuzzy -#| msgid "Delete supplier part" msgid "Delete supplier parts" -msgstr "Zuliefererteil entfernen" +msgstr "" #: part/templates/part/supplier.html:48 -#, fuzzy -#| msgid "Create new Supplier" msgid "Create new supplier" -msgstr "Neuen Zulieferer anlegen" +msgstr "" #: part/templates/part/supplier.html:54 -#, fuzzy -#| msgid "Create new Manufacturer" msgid "Create new manufacturer" -msgstr "Neuen Hersteller anlegen" +msgstr "" #: part/templates/part/tabs.html:9 msgid "Parameters" -msgstr "Parameter" +msgstr "" #: part/templates/part/tabs.html:13 msgid "Variants" -msgstr "Varianten" +msgstr "" #: part/templates/part/tabs.html:28 msgid "BOM" -msgstr "Stückliste" +msgstr "" #: part/templates/part/tabs.html:37 msgid "Used In" -msgstr "Benutzt in" +msgstr "" #: part/templates/part/tabs.html:61 stock/templates/stock/item_base.html:369 msgid "Tests" msgstr "" #: part/templates/part/tabs.html:67 -#, fuzzy -#| msgid "Created" msgid "Related" -msgstr "Erstellt" +msgstr "" #: part/templates/part/track.html:8 msgid "Part Tracking" -msgstr "Teilverfolgung" +msgstr "" #: part/templates/part/used_in.html:7 msgid "Assemblies" -msgstr "Baugruppen" +msgstr "" #: part/templates/part/variants.html:11 -#, fuzzy -#| msgid "Variants" msgid "Part Variants" -msgstr "Varianten" +msgstr "" #: part/templates/part/variants.html:22 -#, fuzzy -#| msgid "Create new Part" msgid "Create new variant" -msgstr "Neues Teil hinzufügen" +msgstr "" #: part/templates/part/variants.html:23 -#, fuzzy -#| msgid "Variants" msgid "New Variant" -msgstr "Varianten" +msgstr "" #: part/views.py:86 -#, fuzzy -#| msgid "Allocated Parts" msgid "Add Related Part" -msgstr "Zugeordnete Teile" +msgstr "" #: part/views.py:142 -#, fuzzy -#| msgid "Delete Supplier Part" msgid "Delete Related Part" -msgstr "Zuliefererteil entfernen" +msgstr "" #: part/views.py:154 msgid "Add part attachment" -msgstr "Teilanhang hinzufügen" +msgstr "" #: part/views.py:209 templates/attachment_table.html:32 msgid "Edit attachment" -msgstr "Anhang bearbeiten" +msgstr "" #: part/views.py:215 msgid "Part attachment updated" -msgstr "Teilanhang aktualisiert" +msgstr "" #: part/views.py:230 msgid "Delete Part Attachment" -msgstr "Teilanhang löschen" +msgstr "" #: part/views.py:238 msgid "Deleted part attachment" -msgstr "Teilanhang gelöscht" +msgstr "" #: part/views.py:247 -#, fuzzy -#| msgid "Create Part Parameter Template" msgid "Create Test Template" -msgstr "Teilparametervorlage anlegen" +msgstr "" #: part/views.py:276 -#, fuzzy -#| msgid "Edit Template" msgid "Edit Test Template" -msgstr "Vorlage bearbeiten" +msgstr "" #: part/views.py:292 -#, fuzzy -#| msgid "Delete Template" msgid "Delete Test Template" -msgstr "Vorlage löschen" +msgstr "" #: part/views.py:301 msgid "Set Part Category" -msgstr "Teilkategorie auswählen" +msgstr "" #: part/views.py:351 #, python-brace-format msgid "Set category for {n} parts" -msgstr "Kategorie für {n} Teile setzen" +msgstr "" #: part/views.py:386 msgid "Create Variant" -msgstr "Variante anlegen" +msgstr "" #: part/views.py:468 msgid "Duplicate Part" -msgstr "Teil duplizieren" +msgstr "" #: part/views.py:475 msgid "Copied part" -msgstr "Teil kopiert" +msgstr "" #: part/views.py:529 part/views.py:667 msgid "Possible matches exist - confirm creation of new part" msgstr "" -#: part/views.py:594 templates/js/stock.js:876 +#: part/views.py:594 templates/js/stock.js:978 msgid "Create New Part" -msgstr "Neues Teil anlegen" +msgstr "" #: part/views.py:601 msgid "Created new part" -msgstr "Neues Teil angelegt" +msgstr "" #: part/views.py:836 msgid "Part QR Code" -msgstr "Teil-QR-Code" +msgstr "" #: part/views.py:855 msgid "Upload Part Image" -msgstr "Teilbild hochladen" +msgstr "" #: part/views.py:863 part/views.py:900 msgid "Updated part image" -msgstr "Teilbild aktualisiert" +msgstr "" #: part/views.py:872 msgid "Select Part Image" -msgstr "Teilbild auswählen" +msgstr "" #: part/views.py:903 msgid "Part image not found" -msgstr "Teilbild nicht gefunden" +msgstr "" #: part/views.py:914 msgid "Edit Part Properties" -msgstr "Teileigenschaften bearbeiten" +msgstr "" #: part/views.py:945 -#, fuzzy -#| msgid "Duplicate Part" msgid "Duplicate BOM" -msgstr "Teil duplizieren" +msgstr "" #: part/views.py:976 -#, fuzzy -#| msgid "Confirm unallocation of build stock" msgid "Confirm duplication of BOM from parent" -msgstr "Zuweisungsaufhebung bestätigen" +msgstr "" #: part/views.py:997 msgid "Validate BOM" -msgstr "BOM validieren" +msgstr "" #: part/views.py:1020 -#, fuzzy -#| msgid "Confirm that the BOM is correct" msgid "Confirm that the BOM is valid" -msgstr "Bestätigen, dass die Stückliste korrekt ist" +msgstr "" #: part/views.py:1031 -#, fuzzy -#| msgid "Validate Bill of Materials" msgid "Validated Bill of Materials" -msgstr "Stückliste validieren" +msgstr "" #: part/views.py:1165 msgid "No BOM file provided" -msgstr "Keine Stückliste angegeben" +msgstr "" #: part/views.py:1513 msgid "Enter a valid quantity" -msgstr "Bitte eine gültige Anzahl eingeben" +msgstr "" #: part/views.py:1538 part/views.py:1541 msgid "Select valid part" -msgstr "Bitte ein gültiges Teil auswählen" +msgstr "" #: part/views.py:1547 msgid "Duplicate part selected" -msgstr "Teil doppelt ausgewählt" +msgstr "" #: part/views.py:1585 msgid "Select a part" -msgstr "Teil auswählen" +msgstr "" #: part/views.py:1591 -#, fuzzy -#| msgid "Select part to be used in BOM" msgid "Selected part creates a circular BOM" -msgstr "Teil für die Nutzung in der Stückliste auswählen" +msgstr "" #: part/views.py:1595 msgid "Specify quantity" -msgstr "Anzahl angeben" +msgstr "" #: part/views.py:1851 msgid "Confirm Part Deletion" -msgstr "Löschen des Teils bestätigen" +msgstr "" #: part/views.py:1860 msgid "Part was deleted" -msgstr "Teil wurde gelöscht" +msgstr "" #: part/views.py:1869 msgid "Part Pricing" -msgstr "Teilbepreisung" +msgstr "" #: part/views.py:1983 msgid "Create Part Parameter Template" -msgstr "Teilparametervorlage anlegen" +msgstr "" #: part/views.py:1993 msgid "Edit Part Parameter Template" -msgstr "Teilparametervorlage bearbeiten" +msgstr "" #: part/views.py:2002 msgid "Delete Part Parameter Template" -msgstr "Teilparametervorlage löschen" +msgstr "" #: part/views.py:2012 msgid "Create Part Parameter" -msgstr "Teilparameter anlegen" +msgstr "" #: part/views.py:2064 msgid "Edit Part Parameter" -msgstr "Teilparameter bearbeiten" +msgstr "" #: part/views.py:2080 msgid "Delete Part Parameter" -msgstr "Teilparameter löschen" +msgstr "" #: part/views.py:2139 msgid "Edit Part Category" -msgstr "Teilkategorie bearbeiten" +msgstr "" #: part/views.py:2176 msgid "Delete Part Category" -msgstr "Teilkategorie löschen" +msgstr "" #: part/views.py:2184 msgid "Part category was deleted" -msgstr "Teilekategorie wurde gelöscht" +msgstr "" #: part/views.py:2240 -#, fuzzy -#| msgid "Create Part Parameter Template" msgid "Create Category Parameter Template" -msgstr "Teilparametervorlage anlegen" +msgstr "" #: part/views.py:2343 -#, fuzzy -#| msgid "Edit Part Parameter Template" msgid "Edit Category Parameter Template" -msgstr "Teilparametervorlage bearbeiten" +msgstr "" #: part/views.py:2401 -#, fuzzy -#| msgid "Delete Part Parameter Template" msgid "Delete Category Parameter Template" -msgstr "Teilparametervorlage löschen" +msgstr "" #: part/views.py:2426 -#, fuzzy -#| msgid "Create BOM item" msgid "Create BOM Item" -msgstr "BOM-Position anlegen" +msgstr "" #: part/views.py:2498 msgid "Edit BOM item" -msgstr "BOM-Position beaarbeiten" +msgstr "" #: part/views.py:2555 msgid "Confim BOM item deletion" -msgstr "Löschung von BOM-Position bestätigen" +msgstr "" #: report/models.py:147 -#, fuzzy -#| msgid "Template part" msgid "Template name" -msgstr "Vorlagenteil" +msgstr "" #: report/models.py:153 msgid "Report template file" msgstr "" #: report/models.py:157 -#, fuzzy -#| msgid "Supplier part description" msgid "Report template description" -msgstr "Zuliefererbeschreibung des Teils" +msgstr "" #: report/models.py:161 -#, fuzzy -#| msgid "Supplier part description" msgid "Report template is enabled" -msgstr "Zuliefererbeschreibung des Teils" +msgstr "" #: report/models.py:168 msgid "Part query filters (comma-separated list of key=value pairs)" @@ -4298,74 +3760,56 @@ msgid "Report asset file" msgstr "" #: report/models.py:233 -#, fuzzy -#| msgid "Settings description" msgid "Asset file description" -msgstr "Einstellungs-Beschreibung" +msgstr "" #: stock/forms.py:117 msgid "Enter unique serial numbers (or leave blank)" -msgstr "Eindeutige Seriennummern eingeben (oder leer lassen)" +msgstr "" #: stock/forms.py:200 msgid "Label" msgstr "" #: stock/forms.py:201 stock/forms.py:257 -#, fuzzy -#| msgid "Select stock item to allocate" msgid "Select test report template" -msgstr "Lagerobjekt für Zuordnung auswählen" +msgstr "" #: stock/forms.py:265 msgid "Include stock items in sub locations" -msgstr "Lagerobjekte in untergeordneten Lagerorten einschließen" +msgstr "" #: stock/forms.py:300 -#, fuzzy -#| msgid "No stock items matching query" msgid "Stock item to install" -msgstr "Keine zur Anfrage passenden Lagerobjekte" +msgstr "" #: stock/forms.py:307 -#, fuzzy -#| msgid "Stock Quantity" msgid "Stock quantity to assign" -msgstr "Bestand" +msgstr "" #: stock/forms.py:335 -#, fuzzy -#| msgid "Quantity must not exceed available stock quantity ({n})" msgid "Must not exceed available quantity" -msgstr "Anzahl darf nicht die verfügbare Anzahl überschreiten ({n})" +msgstr "" #: stock/forms.py:345 -#, fuzzy -#| msgid "Does this part have tracking for unique items?" msgid "Destination location for uninstalled items" -msgstr "Hat dieses Teil Tracking für einzelne Objekte?" +msgstr "" #: stock/forms.py:347 -#, fuzzy -#| msgid "Description of the company" msgid "Add transaction note (optional)" -msgstr "Firmenbeschreibung" +msgstr "" #: stock/forms.py:349 -#, fuzzy -#| msgid "Confirm stock allocation" msgid "Confirm uninstall" -msgstr "Lagerbestandszuordnung bestätigen" +msgstr "" #: stock/forms.py:349 -#, fuzzy -#| msgid "Confirm movement of stock items" msgid "Confirm removal of installed stock items" -msgstr "Bewegung der Lagerobjekte bestätigen" +msgstr "" #: stock/forms.py:373 msgid "Destination stock location" -msgstr "Ziel-Lagerbestand" +msgstr "" #: stock/forms.py:375 msgid "Add note (required)" @@ -4373,51 +3817,44 @@ msgstr "" #: stock/forms.py:379 stock/views.py:1037 stock/views.py:1235 msgid "Confirm stock adjustment" -msgstr "Bestands-Anpassung bestätigen" +msgstr "" #: stock/forms.py:379 msgid "Confirm movement of stock items" -msgstr "Bewegung der Lagerobjekte bestätigen" +msgstr "" #: stock/forms.py:381 -#, fuzzy -#| msgid "Default Location" msgid "Set Default Location" -msgstr "Standard-Lagerort" +msgstr "" #: stock/forms.py:381 msgid "Set the destination as the default location for selected parts" -msgstr "Setze das Ziel als Standard-Ziel für ausgewählte Teile" +msgstr "" #: stock/models.py:192 -#, fuzzy -#| msgid "Created new stock item" msgid "Created stock item" -msgstr "Neues Lagerobjekt erstellt" +msgstr "" #: stock/models.py:228 -#, fuzzy -#| msgid "A stock item with this serial number already exists" msgid "StockItem with this serial number already exists" -msgstr "Ein Teil mit dieser Seriennummer existiert bereits" +msgstr "" #: stock/models.py:264 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" -msgstr "Teile-Typ ('{pf}') muss {pe} sein" +msgstr "" #: stock/models.py:274 stock/models.py:283 msgid "Quantity must be 1 for item with a serial number" -msgstr "Anzahl muss für Objekte mit Seriennummer \"1\" sein" +msgstr "" #: stock/models.py:275 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:297 msgid "Item cannot belong to itself" -msgstr "Teil kann nicht zu sich selbst gehören" +msgstr "" #: stock/models.py:303 msgid "Item must have a build reference if is_building=True" @@ -4429,70 +3866,68 @@ msgstr "" #: stock/models.py:343 msgid "Parent Stock Item" -msgstr "Eltern-Lagerobjekt" +msgstr "" #: stock/models.py:352 msgid "Base part" -msgstr "Basis-Teil" +msgstr "" #: stock/models.py:361 msgid "Select a matching supplier part for this stock item" -msgstr "Passenden Zulieferer für dieses Lagerobjekt auswählen" +msgstr "" #: stock/models.py:366 stock/templates/stock/stock_app_base.html:7 msgid "Stock Location" -msgstr "Lagerort" +msgstr "" #: stock/models.py:369 msgid "Where is this stock item located?" -msgstr "Wo wird dieses Teil normalerweise gelagert?" +msgstr "" #: stock/models.py:374 stock/templates/stock/item_base.html:249 msgid "Installed In" -msgstr "Installiert in" +msgstr "" #: stock/models.py:377 msgid "Is this item installed in another item?" -msgstr "Ist dieses Teil in einem anderen verbaut?" +msgstr "" #: stock/models.py:393 msgid "Serial number for this item" -msgstr "Seriennummer für dieses Teil" +msgstr "" #: stock/models.py:405 msgid "Batch code for this stock item" -msgstr "Losnummer für dieses Lagerobjekt" +msgstr "" #: stock/models.py:409 msgid "Stock Quantity" -msgstr "Bestand" +msgstr "" #: stock/models.py:418 msgid "Source Build" -msgstr "Quellbau" +msgstr "" #: stock/models.py:420 msgid "Build for this stock item" -msgstr "Bau für dieses Lagerobjekt" +msgstr "" #: stock/models.py:431 msgid "Source Purchase Order" -msgstr "Quellbestellung" +msgstr "" #: stock/models.py:434 msgid "Purchase order for this stock item" -msgstr "Bestellung für dieses Teil" +msgstr "" #: stock/models.py:440 msgid "Destination Sales Order" -msgstr "Zielauftrag" +msgstr "" #: stock/models.py:446 stock/templates/stock/item_base.html:336 -#: templates/js/stock.js:597 -#, fuzzy -#| msgid "Export" +#: templates/js/stock.js:612 msgid "Expiry Date" -msgstr "Exportieren" +msgstr "" #: stock/models.py:447 msgid "" @@ -4501,118 +3936,98 @@ msgstr "" #: stock/models.py:460 msgid "Delete this Stock Item when stock is depleted" -msgstr "Objekt löschen wenn Lagerbestand aufgebraucht" +msgstr "" #: stock/models.py:470 stock/templates/stock/item_notes.html:14 #: stock/templates/stock/item_notes.html:30 msgid "Stock Item Notes" -msgstr "Lagerobjekt-Notizen" +msgstr "" #: stock/models.py:480 msgid "Single unit purchase price at time of purchase" msgstr "" #: stock/models.py:584 -#, fuzzy -#| msgid "Item assigned to customer?" msgid "Assigned to Customer" -msgstr "Ist dieses Objekt einem Kunden zugeteilt?" +msgstr "" #: stock/models.py:586 -#, fuzzy -#| msgid "Item assigned to customer?" msgid "Manually assigned to customer" -msgstr "Ist dieses Objekt einem Kunden zugeteilt?" +msgstr "" #: stock/models.py:599 -#, fuzzy -#| msgid "Item assigned to customer?" msgid "Returned from customer" -msgstr "Ist dieses Objekt einem Kunden zugeteilt?" +msgstr "" #: stock/models.py:601 -#, fuzzy -#| msgid "Create new stock location" msgid "Returned to location" -msgstr "Neuen Lagerort anlegen" +msgstr "" #: stock/models.py:726 -#, fuzzy -#| msgid "Installed in Stock Item" msgid "Installed into stock item" -msgstr "In Lagerobjekt installiert" +msgstr "" #: stock/models.py:734 -#, fuzzy -#| msgid "Installed in Stock Item" msgid "Installed stock item" -msgstr "In Lagerobjekt installiert" +msgstr "" #: stock/models.py:758 -#, fuzzy -#| msgid "Installed in Stock Item" msgid "Uninstalled stock item" -msgstr "In Lagerobjekt installiert" +msgstr "" #: stock/models.py:777 -#, fuzzy -#| msgid "Include sublocations" msgid "Uninstalled into location" -msgstr "Unterlagerorte einschließen" +msgstr "" #: stock/models.py:857 -#, fuzzy -#| msgid "Part is not a virtual part" msgid "Part is not set as trackable" -msgstr "Teil ist nicht virtuell" +msgstr "" #: stock/models.py:863 msgid "Quantity must be integer" -msgstr "Anzahl muss eine Ganzzahl sein" +msgstr "" #: stock/models.py:869 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" -msgstr "Anzahl darf nicht die verfügbare Anzahl überschreiten ({n})" +msgstr "" #: stock/models.py:872 msgid "Serial numbers must be a list of integers" -msgstr "Seriennummern muss eine Liste von Ganzzahlen sein" +msgstr "" #: stock/models.py:875 msgid "Quantity does not match serial numbers" -msgstr "Anzahl stimmt nicht mit den Seriennummern überein" +msgstr "" #: stock/models.py:907 msgid "Add serial number" -msgstr "Seriennummer hinzufügen" +msgstr "" #: stock/models.py:910 #, python-brace-format msgid "Serialized {n} items" -msgstr "{n} Teile serialisiert" +msgstr "" #: stock/models.py:1021 msgid "StockItem cannot be moved as it is not in stock" -msgstr "Lagerobjekt kann nicht bewegt werden, da kein Bestand vorhanden ist" +msgstr "" #: stock/models.py:1410 msgid "Tracking entry title" -msgstr "Name des Eintrags-Trackings" +msgstr "" #: stock/models.py:1412 msgid "Entry notes" -msgstr "Eintrags-Notizen" +msgstr "" #: stock/models.py:1414 msgid "Link to external page for further information" -msgstr "Link auf externe Seite für weitere Informationen" +msgstr "" #: stock/models.py:1474 -#, fuzzy -#| msgid "Serial number for this item" msgid "Value must be provided for this test" -msgstr "Seriennummer für dieses Teil" +msgstr "" #: stock/models.py:1480 msgid "Attachment must be uploaded for this test" @@ -4623,16 +4038,12 @@ msgid "Test" msgstr "" #: stock/models.py:1498 -#, fuzzy -#| msgid "Part name" msgid "Test name" -msgstr "Name des Teils" +msgstr "" #: stock/models.py:1503 -#, fuzzy -#| msgid "Search Results" msgid "Result" -msgstr "Suchergebnisse" +msgstr "" #: stock/models.py:1504 templates/js/table_filters.js:172 msgid "Test result" @@ -4643,38 +4054,28 @@ msgid "Test output value" msgstr "" #: stock/models.py:1516 -#, fuzzy -#| msgid "Attachments" msgid "Attachment" -msgstr "Anhänge" +msgstr "" #: stock/models.py:1517 -#, fuzzy -#| msgid "Delete attachment" msgid "Test result attachment" -msgstr "Anhang löschen" +msgstr "" #: stock/models.py:1523 -#, fuzzy -#| msgid "Edit notes" msgid "Test notes" -msgstr "Bermerkungen bearbeiten" +msgstr "" #: stock/templates/stock/item.html:16 msgid "Stock Tracking Information" -msgstr "Informationen zum Lagerbestands-Tracking" +msgstr "" #: stock/templates/stock/item.html:25 -#, fuzzy -#| msgid "Category" msgid "New Entry" -msgstr "Kategorie" +msgstr "" #: stock/templates/stock/item_attachments.html:10 -#, fuzzy -#| msgid "Stock Item Notes" msgid "Stock Item Attachments" -msgstr "Lagerobjekt-Notizen" +msgstr "" #: stock/templates/stock/item_base.html:24 msgid "" @@ -4683,47 +4084,39 @@ msgid "" msgstr "" #: stock/templates/stock/item_base.html:31 -#, fuzzy -#| msgid "This stock item does not have any child items" msgid "This stock item is in production and cannot be edited." -msgstr "Dieses Lagerobjekt hat keine Kinder" +msgstr "" #: stock/templates/stock/item_base.html:32 msgid "Edit the stock item from the build view." msgstr "" #: stock/templates/stock/item_base.html:45 -#, fuzzy -#| msgid "This stock item does not have any child items" msgid "This stock item has not passed all required tests" -msgstr "Dieses Lagerobjekt hat keine Kinder" +msgstr "" #: stock/templates/stock/item_base.html:51 msgid "This stock item is allocated to Sales Order" -msgstr "Dieses Lagerobjekt ist dem Auftrag zugewiesen" +msgstr "" #: stock/templates/stock/item_base.html:57 msgid "This stock item is allocated to Build" -msgstr "Dieses Lagerobjekt ist dem Bau zugewiesen" +msgstr "" #: stock/templates/stock/item_base.html:63 msgid "" "This stock item is serialized - it has a unique serial number and the " "quantity cannot be adjusted." msgstr "" -"Dieses Lagerobjekt ist serialisiert. Es hat eine eindeutige Seriennummer und " -"die Anzahl kann nicht angepasst werden." #: stock/templates/stock/item_base.html:67 msgid "This stock item cannot be deleted as it has child items" -msgstr "Dieses Lagerobjekt kann nicht gelöscht werden, da es Kinder besitzt" +msgstr "" #: stock/templates/stock/item_base.html:71 msgid "" "This stock item will be automatically deleted when all stock is depleted." msgstr "" -"Dieses Lagerobjekt wird automatisch gelöscht wenn der Lagerbestand " -"aufgebraucht ist." #: stock/templates/stock/item_base.html:91 #: stock/templates/stock/item_base.html:340 templates/js/table_filters.js:111 @@ -4745,10 +4138,8 @@ msgid "Link Barcode" msgstr "" #: stock/templates/stock/item_base.html:140 -#, fuzzy -#| msgid "Confirm stock adjustment" msgid "Document actions" -msgstr "Bestands-Anpassung bestätigen" +msgstr "" #: stock/templates/stock/item_base.html:146 #: stock/templates/stock/item_tests.html:25 @@ -4756,53 +4147,41 @@ msgid "Test Report" msgstr "" #: stock/templates/stock/item_base.html:156 -#, fuzzy -#| msgid "Confirm stock adjustment" msgid "Stock adjustment actions" -msgstr "Bestands-Anpassung bestätigen" +msgstr "" #: stock/templates/stock/item_base.html:160 #: stock/templates/stock/location.html:57 templates/stock_table.html:31 msgid "Count stock" -msgstr "Bestand zählen" +msgstr "" #: stock/templates/stock/item_base.html:161 templates/stock_table.html:29 msgid "Add stock" -msgstr "Bestand hinzufügen" +msgstr "" #: stock/templates/stock/item_base.html:162 templates/stock_table.html:30 msgid "Remove stock" -msgstr "Bestand entfernen" +msgstr "" #: stock/templates/stock/item_base.html:164 -#, fuzzy -#| msgid "Order stock" msgid "Transfer stock" -msgstr "Bestand bestellen" +msgstr "" #: stock/templates/stock/item_base.html:166 -#, fuzzy -#| msgid "Serialize Stock" msgid "Serialize stock" -msgstr "Lagerbestand erfassen" +msgstr "" #: stock/templates/stock/item_base.html:170 -#, fuzzy -#| msgid "Item assigned to customer?" msgid "Assign to customer" -msgstr "Ist dieses Objekt einem Kunden zugeteilt?" +msgstr "" #: stock/templates/stock/item_base.html:173 -#, fuzzy -#| msgid "Count stock" msgid "Return to stock" -msgstr "Bestand zählen" +msgstr "" -#: stock/templates/stock/item_base.html:177 templates/js/stock.js:1017 -#, fuzzy -#| msgid "Installed in Stock Item" +#: stock/templates/stock/item_base.html:177 templates/js/stock.js:1119 msgid "Uninstall stock item" -msgstr "In Lagerobjekt installiert" +msgstr "" #: stock/templates/stock/item_base.html:177 msgid "Uninstall" @@ -4810,103 +4189,81 @@ msgstr "" #: stock/templates/stock/item_base.html:186 #: stock/templates/stock/location.html:54 -#, fuzzy -#| msgid "Stock Locations" msgid "Stock actions" -msgstr "Lagerobjekt-Standorte" +msgstr "" #: stock/templates/stock/item_base.html:189 -#, fuzzy -#| msgid "Count stock items" msgid "Convert to variant" -msgstr "Lagerobjekte zählen" +msgstr "" #: stock/templates/stock/item_base.html:192 -#, fuzzy -#| msgid "Count stock items" msgid "Duplicate stock item" -msgstr "Lagerobjekte zählen" +msgstr "" #: stock/templates/stock/item_base.html:194 -#, fuzzy -#| msgid "Edit Stock Item" msgid "Edit stock item" -msgstr "Lagerobjekt bearbeiten" +msgstr "" #: stock/templates/stock/item_base.html:197 -#, fuzzy -#| msgid "Delete Stock Item" msgid "Delete stock item" -msgstr "Lagerobjekt löschen" +msgstr "" #: stock/templates/stock/item_base.html:209 msgid "Stock Item Details" -msgstr "Lagerbestands-Details" +msgstr "" #: stock/templates/stock/item_base.html:268 templates/js/build.js:442 -#, fuzzy -#| msgid "No stock location set" msgid "No location set" -msgstr "Kein Lagerort gesetzt" +msgstr "" #: stock/templates/stock/item_base.html:275 -#, fuzzy -#| msgid "Unique Identifier" msgid "Barcode Identifier" -msgstr "Eindeutiger Bezeichner" +msgstr "" #: stock/templates/stock/item_base.html:289 templates/js/build.js:642 #: templates/navbar.html:25 msgid "Build" -msgstr "Bau" +msgstr "" #: stock/templates/stock/item_base.html:310 msgid "Parent Item" -msgstr "Elternposition" +msgstr "" #: stock/templates/stock/item_base.html:340 -#, fuzzy -#| msgid "This stock item is allocated to Build" msgid "This StockItem expired on" -msgstr "Dieses Lagerobjekt ist dem Bau zugewiesen" +msgstr "" #: stock/templates/stock/item_base.html:342 -#, fuzzy -#| msgid "Child Stock Items" msgid "This StockItem expires on" -msgstr "Kind-Lagerobjekte" +msgstr "" #: stock/templates/stock/item_base.html:349 msgid "Last Updated" -msgstr "Zuletzt aktualisiert" +msgstr "" #: stock/templates/stock/item_base.html:354 msgid "Last Stocktake" -msgstr "Letzte Inventur" +msgstr "" #: stock/templates/stock/item_base.html:358 msgid "No stocktake performed" -msgstr "Keine Inventur ausgeführt" +msgstr "" #: stock/templates/stock/item_childs.html:12 msgid "Child Stock Items" -msgstr "Kind-Lagerobjekte" +msgstr "" #: stock/templates/stock/item_childs.html:18 msgid "This stock item does not have any child items" -msgstr "Dieses Lagerobjekt hat keine Kinder" +msgstr "" #: stock/templates/stock/item_delete.html:9 -#, fuzzy -#| msgid "Are you sure you want to delete this attachment?" msgid "Are you sure you want to delete this stock item?" -msgstr "Sind Sie sicher, dass Sie diesen Anhang löschen wollen?" +msgstr "" #: stock/templates/stock/item_install.html:7 -#, fuzzy -#| msgid "Installed in Stock Item" msgid "Install another StockItem into this item." -msgstr "In Lagerobjekt installiert" +msgstr "" #: stock/templates/stock/item_install.html:10 msgid "Stock items can only be installed if they meet the following criteria" @@ -4917,22 +4274,16 @@ msgid "The StockItem links to a Part which is in the BOM for this StockItem" msgstr "" #: stock/templates/stock/item_install.html:14 -#, fuzzy -#| msgid "This stock item is allocated to Build" msgid "The StockItem is currently in stock" -msgstr "Dieses Lagerobjekt ist dem Bau zugewiesen" +msgstr "" #: stock/templates/stock/item_installed.html:10 -#, fuzzy -#| msgid "Installed in Stock Item" msgid "Installed Stock Items" -msgstr "In Lagerobjekt installiert" +msgstr "" #: stock/templates/stock/item_serialize.html:5 -#, fuzzy -#| msgid "Purchase order for this stock item" msgid "Create serialized items from this stock item." -msgstr "Bestellung für dieses Teil" +msgstr "" #: stock/templates/stock/item_serialize.html:7 msgid "Select quantity to serialize, and unique serial numbers." @@ -4943,10 +4294,8 @@ msgid "Test Data" msgstr "" #: stock/templates/stock/item_tests.html:18 -#, fuzzy -#| msgid "Delete Template" msgid "Delete Test Data" -msgstr "Vorlage löschen" +msgstr "" #: stock/templates/stock/item_tests.html:22 msgid "Add Test Data" @@ -4960,87 +4309,72 @@ msgstr "" #: stock/templates/stock/location.html:30 msgid "All stock items" -msgstr "Alle Lagerobjekte" +msgstr "" #: stock/templates/stock/location.html:47 -#, fuzzy -#| msgid "Child Stock Items" msgid "Check-in Items" -msgstr "Kind-Lagerobjekte" - -#: stock/templates/stock/location.html:61 -#, fuzzy -#| msgid "Location Description" -msgid "Location actions" -msgstr "Standort-Beschreibung" +msgstr "" #: stock/templates/stock/location.html:63 -#, fuzzy -#| msgid "Edit stock location" -msgid "Edit location" -msgstr "Lagerort bearbeiten" +msgid "Location actions" +msgstr "" #: stock/templates/stock/location.html:65 -#, fuzzy -#| msgid "Delete stock location" +msgid "Edit location" +msgstr "" + +#: stock/templates/stock/location.html:67 msgid "Delete location" -msgstr "Lagerort löschen" +msgstr "" -#: stock/templates/stock/location.html:76 +#: stock/templates/stock/location.html:78 msgid "Location Details" -msgstr "Standort-Details" +msgstr "" -#: stock/templates/stock/location.html:81 +#: stock/templates/stock/location.html:83 msgid "Location Path" -msgstr "Standord-Pfad" +msgstr "" -#: stock/templates/stock/location.html:86 +#: stock/templates/stock/location.html:88 msgid "Location Description" -msgstr "Standort-Beschreibung" +msgstr "" -#: stock/templates/stock/location.html:91 +#: stock/templates/stock/location.html:93 msgid "Sublocations" -msgstr "Sub-Standorte" +msgstr "" -#: stock/templates/stock/location.html:96 -#: stock/templates/stock/location.html:111 +#: stock/templates/stock/location.html:98 +#: stock/templates/stock/location.html:113 #: templates/InvenTree/search_stock_items.html:6 templates/stats.html:48 -#: templates/stats.html:57 +#: templates/stats.html:57 users/models.py:35 msgid "Stock Items" -msgstr "Lagerobjekte" +msgstr "" -#: stock/templates/stock/location.html:101 +#: stock/templates/stock/location.html:103 msgid "Stock Details" -msgstr "Objekt-Details" +msgstr "" -#: stock/templates/stock/location.html:106 +#: stock/templates/stock/location.html:108 #: templates/InvenTree/search_stock_location.html:6 templates/stats.html:52 +#: users/models.py:34 msgid "Stock Locations" -msgstr "Lagerobjekt-Standorte" +msgstr "" #: stock/templates/stock/location_delete.html:7 -#, fuzzy -#| msgid "Are you sure you want to delete this attachment?" msgid "Are you sure you want to delete this stock location?" -msgstr "Sind Sie sicher, dass Sie diesen Anhang löschen wollen?" +msgstr "" #: stock/templates/stock/stock_uninstall.html:8 -#, fuzzy -#| msgid "The following items will be created" msgid "The following stock items will be uninstalled" -msgstr "Die folgenden Objekte werden erstellt" +msgstr "" #: stock/templates/stock/stockitem_convert.html:7 stock/views.py:1517 -#, fuzzy -#| msgid "Count Stock Items" msgid "Convert Stock Item" -msgstr "Lagerobjekte zählen" +msgstr "" #: stock/templates/stock/stockitem_convert.html:8 -#, fuzzy -#| msgid "This stock item is allocated to Build" msgid "This stock item is current an instance of " -msgstr "Dieses Lagerobjekt ist dem Bau zugewiesen" +msgstr "" #: stock/templates/stock/stockitem_convert.html:9 msgid "It can be converted to one of the part variants listed below." @@ -5052,25 +4386,23 @@ msgstr "" #: stock/templates/stock/tabs.html:6 msgid "Tracking" -msgstr "Tracking" +msgstr "" #: stock/templates/stock/tabs.html:21 msgid "Builds" -msgstr "Baue" +msgstr "" #: stock/templates/stock/tabs.html:38 msgid "Children" -msgstr "Kinder" +msgstr "" #: stock/templates/stock/tabs.html:44 -#, fuzzy -#| msgid "Installed In" msgid "Installed Items" -msgstr "Installiert in" +msgstr "" #: stock/views.py:127 msgid "Edit Stock Location" -msgstr "Lagerobjekt-Standort bearbeiten" +msgstr "" #: stock/views.py:235 stock/views.py:1507 stock/views.py:1620 #: stock/views.py:1982 @@ -5079,239 +4411,201 @@ msgstr "" #: stock/views.py:250 msgid "Stock Location QR code" -msgstr "QR-Code für diesen Standort" +msgstr "" #: stock/views.py:269 -#, fuzzy -#| msgid "Add Attachment" msgid "Add Stock Item Attachment" -msgstr "Anhang hinzufügen" +msgstr "" #: stock/views.py:316 -#, fuzzy -#| msgid "Edit Stock Item" msgid "Edit Stock Item Attachment" -msgstr "Lagerobjekt bearbeiten" +msgstr "" #: stock/views.py:333 -#, fuzzy -#| msgid "Delete Part Attachment" msgid "Delete Stock Item Attachment" -msgstr "Teilanhang löschen" +msgstr "" #: stock/views.py:350 -#, fuzzy -#| msgid "Item assigned to customer?" msgid "Assign to Customer" -msgstr "Ist dieses Objekt einem Kunden zugeteilt?" +msgstr "" #: stock/views.py:360 msgid "Customer must be specified" msgstr "" #: stock/views.py:384 -#, fuzzy -#| msgid "Part Stock" msgid "Return to Stock" -msgstr "Teilbestand" +msgstr "" #: stock/views.py:394 -#, fuzzy -#| msgid "Include sublocations" msgid "Specify a valid location" -msgstr "Unterlagerorte einschließen" +msgstr "" #: stock/views.py:405 msgid "Stock item returned from customer" msgstr "" #: stock/views.py:415 -#, fuzzy -#| msgid "Select valid part" msgid "Select Label Template" -msgstr "Bitte ein gültiges Teil auswählen" +msgstr "" #: stock/views.py:438 -#, fuzzy -#| msgid "Select valid part" msgid "Select valid label" -msgstr "Bitte ein gültiges Teil auswählen" +msgstr "" #: stock/views.py:502 -#, fuzzy -#| msgid "Delete Template" msgid "Delete All Test Data" -msgstr "Vorlage löschen" +msgstr "" #: stock/views.py:518 -#, fuzzy -#| msgid "Confirm Part Deletion" msgid "Confirm test data deletion" -msgstr "Löschen des Teils bestätigen" +msgstr "" #: stock/views.py:538 msgid "Add Test Result" msgstr "" #: stock/views.py:579 -#, fuzzy -#| msgid "Edit Template" msgid "Edit Test Result" -msgstr "Vorlage bearbeiten" +msgstr "" #: stock/views.py:597 -#, fuzzy -#| msgid "Delete Template" msgid "Delete Test Result" -msgstr "Vorlage löschen" +msgstr "" #: stock/views.py:609 -#, fuzzy -#| msgid "Delete Template" msgid "Select Test Report Template" -msgstr "Vorlage löschen" +msgstr "" #: stock/views.py:639 -#, fuzzy -#| msgid "Select valid part" msgid "Select valid template" -msgstr "Bitte ein gültiges Teil auswählen" +msgstr "" #: stock/views.py:692 msgid "Stock Export Options" -msgstr "Lagerbestandsexportoptionen" +msgstr "" #: stock/views.py:814 msgid "Stock Item QR Code" -msgstr "Lagerobjekt-QR-Code" +msgstr "" #: stock/views.py:840 -#, fuzzy -#| msgid "Installed in Stock Item" msgid "Install Stock Item" -msgstr "In Lagerobjekt installiert" +msgstr "" #: stock/views.py:940 -#, fuzzy -#| msgid "Installed in Stock Item" msgid "Uninstall Stock Items" -msgstr "In Lagerobjekt installiert" +msgstr "" #: stock/views.py:1048 -#, fuzzy -#| msgid "Installed in Stock Item" msgid "Uninstalled stock items" -msgstr "In Lagerobjekt installiert" +msgstr "" #: stock/views.py:1073 msgid "Adjust Stock" -msgstr "Lagerbestand anpassen" +msgstr "" #: stock/views.py:1183 msgid "Move Stock Items" -msgstr "Lagerobjekte bewegen" +msgstr "" #: stock/views.py:1184 msgid "Count Stock Items" -msgstr "Lagerobjekte zählen" +msgstr "" #: stock/views.py:1185 msgid "Remove From Stock" -msgstr "Aus Lagerbestand entfernen" +msgstr "" #: stock/views.py:1186 msgid "Add Stock Items" -msgstr "Lagerobjekte hinzufügen" +msgstr "" #: stock/views.py:1187 msgid "Delete Stock Items" -msgstr "Lagerobjekte löschen" +msgstr "" #: stock/views.py:1215 msgid "Must enter integer value" -msgstr "Nur Ganzzahl eingeben" +msgstr "" #: stock/views.py:1220 msgid "Quantity must be positive" -msgstr "Anzahl muss positiv sein" +msgstr "" #: stock/views.py:1227 #, python-brace-format msgid "Quantity must not exceed {x}" -msgstr "Anzahl darf {x} nicht überschreiten" +msgstr "" #: stock/views.py:1306 #, python-brace-format msgid "Added stock to {n} items" -msgstr "Vorrat zu {n} Lagerobjekten hinzugefügt" +msgstr "" #: stock/views.py:1321 #, python-brace-format msgid "Removed stock from {n} items" -msgstr "Vorrat von {n} Lagerobjekten entfernt" +msgstr "" #: stock/views.py:1334 #, python-brace-format msgid "Counted stock for {n} items" -msgstr "Bestand für {n} Objekte erfasst" +msgstr "" #: stock/views.py:1374 msgid "No items were moved" -msgstr "Keine Lagerobjekte wurden bewegt" +msgstr "" #: stock/views.py:1377 #, python-brace-format msgid "Moved {n} items to {dest}" -msgstr "{n} Teile nach {dest} bewegt" +msgstr "" #: stock/views.py:1396 #, python-brace-format msgid "Deleted {n} stock items" -msgstr "{n} Teile im Lager gelöscht" +msgstr "" #: stock/views.py:1408 msgid "Edit Stock Item" -msgstr "Lagerobjekt bearbeiten" +msgstr "" #: stock/views.py:1637 msgid "Serialize Stock" -msgstr "Lagerbestand erfassen" +msgstr "" #: stock/views.py:1731 templates/js/build.js:210 msgid "Create new Stock Item" -msgstr "Neues Lagerobjekt hinzufügen" +msgstr "" #: stock/views.py:1874 -#, fuzzy -#| msgid "Count stock items" msgid "Duplicate Stock Item" -msgstr "Lagerobjekte zählen" +msgstr "" #: stock/views.py:1956 -#, fuzzy -#| msgid "Quantity must be greater than zero" msgid "Quantity cannot be negative" -msgstr "Anzahl muss größer Null sein" +msgstr "" #: stock/views.py:2051 msgid "Delete Stock Location" -msgstr "Standort löschen" +msgstr "" #: stock/views.py:2065 msgid "Delete Stock Item" -msgstr "Lagerobjekt löschen" +msgstr "" #: stock/views.py:2077 msgid "Delete Stock Tracking Entry" -msgstr "Lagerbestands-Tracking-Eintrag löschen" +msgstr "" #: stock/views.py:2096 msgid "Edit Stock Tracking Entry" -msgstr "Lagerbestands-Tracking-Eintrag bearbeiten" +msgstr "" #: stock/views.py:2106 msgid "Add Stock Tracking Entry" -msgstr "Lagerbestands-Tracking-Eintrag hinzufügen" +msgstr "" #: templates/403.html:5 templates/403.html:11 msgid "Permission Denied" @@ -5322,212 +4616,160 @@ msgid "You do not have permission to view this page." msgstr "" #: templates/404.html:5 templates/404.html:11 -#, fuzzy -#| msgid "Part image not found" msgid "Page Not Found" -msgstr "Teilbild nicht gefunden" +msgstr "" #: templates/404.html:14 -#, fuzzy -#| msgid "Part does not exist" msgid "The requested page does not exist" -msgstr "Teil existiert nicht" +msgstr "" #: templates/InvenTree/bom_invalid.html:7 msgid "BOM Waiting Validation" msgstr "" #: templates/InvenTree/build_overdue.html:7 -#, fuzzy -#| msgid "Parent Build" msgid "Overdue Builds" -msgstr "Eltern-Bau" +msgstr "" #: templates/InvenTree/build_pending.html:7 -#, fuzzy -#| msgid "Parent Build" msgid "Pending Builds" -msgstr "Eltern-Bau" +msgstr "" #: templates/InvenTree/expired_stock.html:7 -#, fuzzy -#| msgid "Assigned" msgid "Expired Stock" -msgstr "Zugewiesen" +msgstr "" #: templates/InvenTree/index.html:5 msgid "Index" msgstr "" #: templates/InvenTree/latest_parts.html:7 -#, fuzzy -#| msgid "Parent Part" msgid "Latest Parts" -msgstr "Ausgangsteil" +msgstr "" #: templates/InvenTree/po_outstanding.html:7 -#, fuzzy -#| msgid "Edit Purchase Order" msgid "Outstanding Purchase Orders" -msgstr "Bestellung bearbeiten" +msgstr "" + +#: templates/InvenTree/po_overdue.html:7 +msgid "Overdue Purchase Orders" +msgstr "" #: templates/InvenTree/required_stock_build.html:7 -#, fuzzy -#| msgid "Complete Build" msgid "Require Stock To Complete Build" -msgstr "Bau fertigstellen" +msgstr "" #: templates/InvenTree/search.html:7 templates/InvenTree/search.html:12 msgid "Search Results" -msgstr "Suchergebnisse" +msgstr "" #: templates/InvenTree/search.html:24 -#, fuzzy -#| msgid "No results found" msgid "No results found for " -msgstr "Keine Ergebnisse gefunden" +msgstr "" #: templates/InvenTree/search.html:42 -#, fuzzy -#| msgid "Cancel sales order" msgid "Enter a search query" -msgstr "Auftrag stornieren" +msgstr "" -#: templates/InvenTree/search.html:191 templates/js/stock.js:290 -#, fuzzy -#| msgid "Item assigned to customer?" +#: templates/InvenTree/search.html:191 templates/js/stock.js:300 msgid "Shipped to customer" -msgstr "Ist dieses Objekt einem Kunden zugeteilt?" +msgstr "" -#: templates/InvenTree/search.html:194 templates/js/stock.js:300 +#: templates/InvenTree/search.html:194 templates/js/stock.js:310 msgid "No stock location set" -msgstr "Kein Lagerort gesetzt" +msgstr "" #: templates/InvenTree/searching.html:3 -#, fuzzy -#| msgid "Search" msgid "Searching" -msgstr "Suche" +msgstr "" #: templates/InvenTree/settings/build.html:10 -#, fuzzy -#| msgid "Build Orders" msgid "Build Order Settings" -msgstr "Bauaufträge" +msgstr "" #: templates/InvenTree/settings/category.html:9 -#, fuzzy -#| msgid "Category Details" msgid "Category Settings" -msgstr "Kategorie-Details" +msgstr "" #: templates/InvenTree/settings/category.html:25 -#, fuzzy -#| msgid "Edit Part Parameter Template" msgid "Category Parameter Templates" -msgstr "Teilparametervorlage bearbeiten" +msgstr "" #: templates/InvenTree/settings/category.html:52 -#, fuzzy -#| msgid "No part parameter templates found" msgid "No category parameter templates found" -msgstr "Keine Teilparametervorlagen gefunden" +msgstr "" #: templates/InvenTree/settings/category.html:67 -#, fuzzy -#| msgid "Default Location" msgid "Default Value" -msgstr "Standard-Lagerort" +msgstr "" #: templates/InvenTree/settings/category.html:70 -#: templates/InvenTree/settings/part.html:78 +#: templates/InvenTree/settings/part.html:79 msgid "Edit Template" -msgstr "Vorlage bearbeiten" +msgstr "" #: templates/InvenTree/settings/category.html:71 -#: templates/InvenTree/settings/part.html:79 +#: templates/InvenTree/settings/part.html:80 msgid "Delete Template" -msgstr "Vorlage löschen" +msgstr "" #: templates/InvenTree/settings/global.html:10 -#, fuzzy -#| msgid "InvenTree Version" msgid "Global InvenTree Settings" -msgstr "InvenTree-Version" +msgstr "" #: templates/InvenTree/settings/header.html:7 -#, fuzzy -#| msgid "Settings" msgid "Setting" -msgstr "Einstellungen" +msgstr "" #: templates/InvenTree/settings/part.html:9 -#, fuzzy -#| msgid "Settings" msgid "Part Settings" -msgstr "Einstellungen" +msgstr "" #: templates/InvenTree/settings/part.html:14 -#, fuzzy -#| msgid "Source Location" msgid "Part Options" -msgstr "Quell-Standort" +msgstr "" -#: templates/InvenTree/settings/part.html:37 -#, fuzzy -#| msgid "Edit Part Parameter Template" +#: templates/InvenTree/settings/part.html:38 msgid "Part Parameter Templates" -msgstr "Teilparametervorlage bearbeiten" +msgstr "" -#: templates/InvenTree/settings/part.html:58 +#: templates/InvenTree/settings/part.html:59 msgid "No part parameter templates found" -msgstr "Keine Teilparametervorlagen gefunden" +msgstr "" #: templates/InvenTree/settings/po.html:9 -#, fuzzy -#| msgid "Purchase Order Details" msgid "Purchase Order Settings" -msgstr "Bestelldetails" +msgstr "" #: templates/InvenTree/settings/setting.html:23 msgid "No value set" msgstr "" #: templates/InvenTree/settings/setting.html:31 -#, fuzzy -#| msgid "Settings" msgid "Edit setting" -msgstr "Einstellungen" +msgstr "" #: templates/InvenTree/settings/settings.html:7 #: templates/InvenTree/settings/settings.html:13 templates/navbar.html:66 msgid "Settings" -msgstr "Einstellungen" +msgstr "" #: templates/InvenTree/settings/so.html:9 -#, fuzzy -#| msgid "Sales Order Details" msgid "Sales Order Settings" -msgstr "Auftragsdetails" +msgstr "" #: templates/InvenTree/settings/stock.html:9 -#, fuzzy -#| msgid "Stock Locations" msgid "Stock Settings" -msgstr "Lagerobjekt-Standorte" +msgstr "" #: templates/InvenTree/settings/stock.html:13 -#, fuzzy -#| msgid "Stock Locations" msgid "Stock Options" -msgstr "Lagerobjekt-Standorte" +msgstr "" #: templates/InvenTree/settings/tabs.html:3 #: templates/InvenTree/settings/user.html:10 -#, fuzzy -#| msgid "Settings" msgid "User Settings" -msgstr "Einstellungen" +msgstr "" #: templates/InvenTree/settings/tabs.html:6 msgid "Account" @@ -5538,26 +4780,20 @@ msgid "Theme" msgstr "" #: templates/InvenTree/settings/tabs.html:13 -#, fuzzy -#| msgid "InvenTree Version" msgid "InvenTree Settings" -msgstr "InvenTree-Version" +msgstr "" #: templates/InvenTree/settings/tabs.html:16 msgid "Global" msgstr "" #: templates/InvenTree/settings/tabs.html:19 -#, fuzzy -#| msgid "Part Categories" msgid "Categories" -msgstr "Teile-Kategorien" +msgstr "" #: templates/InvenTree/settings/theme.html:10 -#, fuzzy -#| msgid "Settings" msgid "Theme Settings" -msgstr "Einstellungen" +msgstr "" #: templates/InvenTree/settings/theme.html:17 msgid "Color Themes" @@ -5574,106 +4810,88 @@ msgid "" msgstr "" #: templates/InvenTree/settings/user.html:16 -#, fuzzy -#| msgid "No user information" msgid "User Information" -msgstr "Keine Benutzerinformation" +msgstr "" #: templates/InvenTree/settings/user.html:21 -#, fuzzy -#| msgid "Create new part" msgid "Change Password" -msgstr "Neues Teil anlegen" +msgstr "" #: templates/InvenTree/settings/user.html:28 -#, fuzzy -#| msgid "User" msgid "Username" -msgstr "Benutzer" +msgstr "" #: templates/InvenTree/settings/user.html:32 -#, fuzzy -#| msgid "Instance Name" msgid "First Name" -msgstr "Instanzname" +msgstr "" #: templates/InvenTree/settings/user.html:36 -#, fuzzy -#| msgid "Instance Name" msgid "Last Name" -msgstr "Instanzname" +msgstr "" #: templates/InvenTree/settings/user.html:40 -#, fuzzy -#| msgid "Address" msgid "Email Address" -msgstr "Adresse" +msgstr "" #: templates/InvenTree/so_outstanding.html:7 -#, fuzzy -#| msgid "Destination Sales Order" msgid "Outstanding Sales Orders" -msgstr "Zielauftrag" +msgstr "" #: templates/InvenTree/so_overdue.html:7 -#, fuzzy -#| msgid "Sales Orders" msgid "Overdue Sales Orders" -msgstr "Bestellungen" +msgstr "" #: templates/InvenTree/stale_stock.html:7 -#, fuzzy -#| msgid "Serialize Stock" msgid "Stale Stock" -msgstr "Lagerbestand erfassen" +msgstr "" #: templates/InvenTree/starred_parts.html:7 msgid "Starred Parts" -msgstr "Teilfavoriten" +msgstr "" #: templates/about.html:13 msgid "InvenTree Version Information" -msgstr "InvenTree-Versionsinformationen" +msgstr "" #: templates/about.html:21 msgid "InvenTree Version" -msgstr "InvenTree-Version" +msgstr "" #: templates/about.html:25 msgid "Django Version" -msgstr "Django-Version" +msgstr "" #: templates/about.html:29 msgid "Commit Hash" -msgstr "Commit-Hash" +msgstr "" #: templates/about.html:33 msgid "Commit Date" -msgstr "Commit-Datum" +msgstr "" #: templates/about.html:37 msgid "InvenTree Documentation" -msgstr "InvenTree-Dokumentation" +msgstr "" #: templates/about.html:42 msgid "View Code on GitHub" -msgstr "Code auf GitHub ansehen" +msgstr "" #: templates/about.html:46 msgid "Submit Bug Report" -msgstr "Fehlerbericht senden" +msgstr "" #: templates/attachment_table.html:6 msgid "Add Attachment" -msgstr "Anhang hinzufügen" +msgstr "" #: templates/attachment_table.html:15 msgid "File" -msgstr "Datei" +msgstr "" #: templates/attachment_table.html:16 msgid "Comment" -msgstr "Kommentar" +msgstr "" #: templates/attachment_table.html:17 msgid "Uploaded" @@ -5681,47 +4899,35 @@ msgstr "" #: templates/attachment_table.html:35 msgid "Delete attachment" -msgstr "Anhang löschen" +msgstr "" #: templates/js/barcode.js:8 -#, fuzzy -#| msgid "No barcode data provided" msgid "Scan barcode data here using wedge scanner" -msgstr "Keine Strichcodedaten bereitgestellt" +msgstr "" #: templates/js/barcode.js:12 -#, fuzzy -#| msgid "Source Location" msgid "Barcode" -msgstr "Quell-Standort" +msgstr "" #: templates/js/barcode.js:20 -#, fuzzy -#| msgid "No barcode data provided" msgid "Enter barcode data" -msgstr "Keine Strichcodedaten bereitgestellt" +msgstr "" #: templates/js/barcode.js:42 msgid "Invalid server response" msgstr "" #: templates/js/barcode.js:143 -#, fuzzy -#| msgid "No barcode data provided" msgid "Scan barcode data below" -msgstr "Keine Strichcodedaten bereitgestellt" +msgstr "" #: templates/js/barcode.js:217 templates/js/barcode.js:263 -#, fuzzy -#| msgid "Unknown barcode format" msgid "Unknown response from server" -msgstr "Unbekanntes Strichcode-Format" +msgstr "" #: templates/js/barcode.js:239 -#, fuzzy -#| msgid "Parent Stock Item" msgid "Link Barcode to Stock Item" -msgstr "Eltern-Lagerobjekt" +msgstr "" #: templates/js/barcode.js:285 msgid "" @@ -5733,26 +4939,20 @@ msgid "Unlink" msgstr "" #: templates/js/barcode.js:350 -#, fuzzy -#| msgid "Remove stock" msgid "Remove stock item" -msgstr "Bestand entfernen" +msgstr "" #: templates/js/barcode.js:397 -#, fuzzy -#| msgid "Entry notes" msgid "Enter notes" -msgstr "Eintrags-Notizen" +msgstr "" #: templates/js/barcode.js:399 msgid "Enter optional notes for stock transfer" msgstr "" #: templates/js/barcode.js:404 -#, fuzzy -#| msgid "Include stock items in sub locations" msgid "Check Stock Items into Location" -msgstr "Lagerobjekte in untergeordneten Lagerorten einschließen" +msgstr "" #: templates/js/barcode.js:408 msgid "Check In" @@ -5763,247 +4963,205 @@ msgid "Server error" msgstr "" #: templates/js/barcode.js:485 -#, fuzzy -#| msgid "Stock Item Details" msgid "Stock Item already scanned" -msgstr "Lagerbestands-Details" +msgstr "" #: templates/js/barcode.js:489 -#, fuzzy -#| msgid "Include stock items in sub locations" msgid "Stock Item already in this location" -msgstr "Lagerobjekte in untergeordneten Lagerorten einschließen" +msgstr "" #: templates/js/barcode.js:496 -#, fuzzy -#| msgid "Added stock to {n} items" msgid "Added stock item" -msgstr "Vorrat zu {n} Lagerobjekten hinzugefügt" +msgstr "" #: templates/js/barcode.js:503 -#, fuzzy -#| msgid "Create new Stock Item" msgid "Barcode does not match Stock Item" -msgstr "Neues Lagerobjekt hinzufügen" +msgstr "" #: templates/js/bom.js:165 msgid "Open subassembly" -msgstr "Unterbaugruppe öffnen" +msgstr "" #: templates/js/bom.js:206 -#, fuzzy -#| msgid "Options" msgid "Optional" -msgstr "Optionen" +msgstr "" #: templates/js/bom.js:252 msgid "No pricing available" -msgstr "Keine Preisinformation verfügbar" +msgstr "" -#: templates/js/bom.js:272 templates/js/build.js:571 -#, fuzzy -#| msgid "Options" +#: templates/js/bom.js:304 templates/js/build.js:571 msgid "Actions" -msgstr "Optionen" +msgstr "" -#: templates/js/bom.js:280 +#: templates/js/bom.js:312 msgid "Validate BOM Item" -msgstr "BOM-Position validieren" +msgstr "" -#: templates/js/bom.js:282 +#: templates/js/bom.js:314 msgid "This line has been validated" -msgstr "Diese Position wurde validiert" +msgstr "" -#: templates/js/bom.js:284 +#: templates/js/bom.js:316 msgid "Edit BOM Item" -msgstr "BOM-Position bearbeiten" +msgstr "" -#: templates/js/bom.js:286 +#: templates/js/bom.js:318 msgid "Delete BOM Item" -msgstr "BOM-Position löschen" +msgstr "" -#: templates/js/bom.js:363 templates/js/build.js:305 +#: templates/js/bom.js:395 templates/js/build.js:305 msgid "No BOM items found" -msgstr "Keine BOM-Einträge gefunden" +msgstr "" -#: templates/js/bom.js:509 +#: templates/js/bom.js:541 msgid "INACTIVE" -msgstr "INAKTIV" +msgstr "" -#: templates/js/bom.js:523 +#: templates/js/bom.js:555 msgid "Uses" msgstr "" -#: templates/js/bom.js:534 -#, fuzzy -#| msgid "No matching action found" +#: templates/js/bom.js:566 msgid "No matching parts found" -msgstr "Keine passende Aktion gefunden" +msgstr "" #: templates/js/build.js:56 -#, fuzzy -#| msgid "Installed in Stock Item" msgid "Auto-allocate stock items to this output" -msgstr "In Lagerobjekt installiert" +msgstr "" #: templates/js/build.js:62 -#, fuzzy -#| msgid "Complete Build" msgid "Complete build output" -msgstr "Bau fertigstellen" +msgstr "" #: templates/js/build.js:71 -#, fuzzy -#| msgid "Allocate Stock to Build" msgid "Unallocate stock from build output" -msgstr "Lagerbestand dem Bau zuweisen" +msgstr "" #: templates/js/build.js:77 -#, fuzzy -#| msgid "Delete Build" msgid "Delete build output" -msgstr "Bau entfernt" +msgstr "" #: templates/js/build.js:209 templates/stock_table.html:21 msgid "New Stock Item" -msgstr "Neues Lagerobjekt" +msgstr "" #: templates/js/build.js:493 -#, fuzzy -#| msgid "Required" msgid "Required Part" -msgstr "benötigt" +msgstr "" #: templates/js/build.js:514 -#, fuzzy -#| msgid "Quantity" msgid "Quantity Per" -msgstr "Anzahl" +msgstr "" #: templates/js/build.js:578 -#, fuzzy -#| msgid "Builds" msgid "Build stock" -msgstr "Baue" +msgstr "" #: templates/js/build.js:582 templates/stock_table.html:33 msgid "Order stock" -msgstr "Bestand bestellen" +msgstr "" #: templates/js/build.js:585 msgid "Allocate stock" -msgstr "Lagerbestand zuweisen" +msgstr "" #: templates/js/build.js:626 msgid "No builds matching query" -msgstr "Keine Baue passen zur Anfrage" +msgstr "" #: templates/js/build.js:656 -#, fuzzy -#| msgid "Build order allocation is complete" msgid "Build order is overdue" -msgstr "Bau-Zuweisung ist vollständig" +msgstr "" #: templates/js/build.js:747 msgid "No parts allocated for" -msgstr "Keine Teile zugeordnet zu" +msgstr "" #: templates/js/company.js:75 -#, fuzzy -#| msgid "Suppliers" msgid "Parts Supplied" -msgstr "Zulieferer" +msgstr "" #: templates/js/company.js:84 -#, fuzzy -#| msgid "Manufacturer" msgid "Parts Manufactured" -msgstr "Hersteller" +msgstr "" #: templates/js/company.js:96 msgid "No company information found" -msgstr "Keine Firmeninformation gefunden" +msgstr "" #: templates/js/company.js:129 msgid "No supplier parts found" -msgstr "Keine Zuliefererteile gefunden" +msgstr "" #: templates/js/company.js:147 templates/js/part.js:79 templates/js/part.js:164 msgid "Template part" -msgstr "Vorlagenteil" +msgstr "" #: templates/js/company.js:151 templates/js/part.js:83 templates/js/part.js:168 msgid "Assembled part" -msgstr "Baugruppe" +msgstr "" #: templates/js/order.js:135 msgid "No purchase orders found" -msgstr "Keine Bestellungen gefunden" +msgstr "" -#: templates/js/order.js:188 templates/js/stock.js:702 -msgid "Date" -msgstr "Datum" - -#: templates/js/order.js:218 -msgid "No sales orders found" -msgstr "Keine Aufträge gefunden" - -#: templates/js/order.js:241 -#, fuzzy -#| msgid "Build order allocation is complete" +#: templates/js/order.js:159 templates/js/order.js:252 msgid "Order is overdue" -msgstr "Bau-Zuweisung ist vollständig" +msgstr "" -#: templates/js/order.js:286 +#: templates/js/order.js:193 templates/js/stock.js:804 +msgid "Date" +msgstr "" + +#: templates/js/order.js:229 +msgid "No sales orders found" +msgstr "" + +#: templates/js/order.js:297 msgid "Shipment Date" -msgstr "Versanddatum" +msgstr "" #: templates/js/part.js:71 templates/js/part.js:156 -#, fuzzy -#| msgid "Trackable" msgid "Trackable part" -msgstr "nachverfolgbar" +msgstr "" #: templates/js/part.js:75 templates/js/part.js:160 -#, fuzzy -#| msgid "Virtual" msgid "Virtual part" -msgstr "Virtuell" +msgstr "" #: templates/js/part.js:87 msgid "Starred part" -msgstr "Favoritenteil" +msgstr "" #: templates/js/part.js:91 msgid "Salable part" -msgstr "Verkäufliches Teil" +msgstr "" #: templates/js/part.js:205 -#, fuzzy -#| msgid "No parts found" msgid "No variants found" -msgstr "Keine Teile gefunden" +msgstr "" #: templates/js/part.js:291 templates/js/part.js:457 msgid "No parts found" -msgstr "Keine Teile gefunden" +msgstr "" -#: templates/js/part.js:343 templates/js/stock.js:463 -#: templates/js/stock.js:1049 +#: templates/js/part.js:343 templates/js/stock.js:473 +#: templates/js/stock.js:1151 msgid "Select" -msgstr "Auswählen" +msgstr "" #: templates/js/part.js:411 msgid "No category" -msgstr "Keine Kategorie" +msgstr "" -#: templates/js/part.js:429 templates/js/table_filters.js:274 +#: templates/js/part.js:429 templates/js/table_filters.js:278 msgid "Low stock" -msgstr "Bestand niedrig" +msgstr "" #: templates/js/part.js:438 msgid "Building" -msgstr "Im Bau" +msgstr "" #: templates/js/part.js:517 msgid "YES" @@ -6014,271 +5172,221 @@ msgid "NO" msgstr "" #: templates/js/part.js:553 -#, fuzzy -#| msgid "No stock items matching query" msgid "No test templates matching query" -msgstr "Keine zur Anfrage passenden Lagerobjekte" +msgstr "" -#: templates/js/part.js:604 templates/js/stock.js:64 -#, fuzzy -#| msgid "Edit Sales Order" +#: templates/js/part.js:604 templates/js/stock.js:74 msgid "Edit test result" -msgstr "Auftrag bearbeiten" +msgstr "" -#: templates/js/part.js:605 templates/js/stock.js:65 -#, fuzzy -#| msgid "Delete attachment" +#: templates/js/part.js:605 templates/js/stock.js:75 msgid "Delete test result" -msgstr "Anhang löschen" +msgstr "" #: templates/js/part.js:611 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/stock.js:27 +#: templates/js/stock.js:37 msgid "PASS" msgstr "" -#: templates/js/stock.js:29 +#: templates/js/stock.js:39 msgid "FAIL" msgstr "" -#: templates/js/stock.js:34 +#: templates/js/stock.js:44 msgid "NO RESULT" msgstr "" -#: templates/js/stock.js:60 -#, fuzzy -#| msgid "Edit Sales Order" +#: templates/js/stock.js:70 msgid "Add test result" -msgstr "Auftrag bearbeiten" +msgstr "" -#: templates/js/stock.js:79 -#, fuzzy -#| msgid "No results found" +#: templates/js/stock.js:89 msgid "No test results found" -msgstr "Keine Ergebnisse gefunden" +msgstr "" -#: templates/js/stock.js:121 -#, fuzzy -#| msgid "Shipment Date" +#: templates/js/stock.js:131 msgid "Test Date" -msgstr "Versanddatum" +msgstr "" -#: templates/js/stock.js:282 +#: templates/js/stock.js:292 msgid "In production" msgstr "" -#: templates/js/stock.js:286 -#, fuzzy -#| msgid "Installed in Stock Item" +#: templates/js/stock.js:296 msgid "Installed in Stock Item" -msgstr "In Lagerobjekt installiert" +msgstr "" -#: templates/js/stock.js:294 -#, fuzzy -#| msgid "Item assigned to customer?" +#: templates/js/stock.js:304 msgid "Assigned to Sales Order" -msgstr "Ist dieses Objekt einem Kunden zugeteilt?" +msgstr "" -#: templates/js/stock.js:314 +#: templates/js/stock.js:324 msgid "No stock items matching query" -msgstr "Keine zur Anfrage passenden Lagerobjekte" +msgstr "" -#: templates/js/stock.js:431 -#, fuzzy -#| msgid "Include sublocations" +#: templates/js/stock.js:441 msgid "Undefined location" -msgstr "Unterlagerorte einschließen" +msgstr "" -#: templates/js/stock.js:525 -#, fuzzy -#| msgid "StockItem is lost" +#: templates/js/stock.js:535 msgid "Stock item is in production" -msgstr "Lagerobjekt verloren" +msgstr "" -#: templates/js/stock.js:530 -#, fuzzy -#| msgid "This stock item is allocated to Sales Order" +#: templates/js/stock.js:540 msgid "Stock item assigned to sales order" -msgstr "Dieses Lagerobjekt ist dem Auftrag zugewiesen" - -#: templates/js/stock.js:533 -#, fuzzy -#| msgid "StockItem has been allocated" -msgid "Stock item assigned to customer" -msgstr "Lagerobjekt wurde zugewiesen" - -#: templates/js/stock.js:537 -#, fuzzy -#| msgid "StockItem has been allocated" -msgid "Stock item has expired" -msgstr "Lagerobjekt wurde zugewiesen" - -#: templates/js/stock.js:539 -#, fuzzy -#| msgid "StockItem is lost" -msgid "Stock item will expire soon" -msgstr "Lagerobjekt verloren" +msgstr "" #: templates/js/stock.js:543 -#, fuzzy -#| msgid "StockItem has been allocated" -msgid "Stock item has been allocated" -msgstr "Lagerobjekt wurde zugewiesen" +msgid "Stock item assigned to customer" +msgstr "" #: templates/js/stock.js:547 -#, fuzzy -#| msgid "Is this item installed in another item?" +msgid "Stock item has expired" +msgstr "" + +#: templates/js/stock.js:549 +msgid "Stock item will expire soon" +msgstr "" + +#: templates/js/stock.js:553 +msgid "Stock item has been allocated" +msgstr "" + +#: templates/js/stock.js:557 msgid "Stock item has been installed in another item" -msgstr "Ist dieses Teil in einem anderen verbaut?" +msgstr "" -#: templates/js/stock.js:555 -#, fuzzy -#| msgid "StockItem has been allocated" +#: templates/js/stock.js:565 msgid "Stock item has been rejected" -msgstr "Lagerobjekt wurde zugewiesen" +msgstr "" -#: templates/js/stock.js:559 -#, fuzzy -#| msgid "StockItem is lost" +#: templates/js/stock.js:569 msgid "Stock item is lost" -msgstr "Lagerobjekt verloren" +msgstr "" -#: templates/js/stock.js:562 -#, fuzzy -#| msgid "StockItem is lost" +#: templates/js/stock.js:572 msgid "Stock item is destroyed" -msgstr "Lagerobjekt verloren" +msgstr "" -#: templates/js/stock.js:566 templates/js/table_filters.js:106 -#, fuzzy -#| msgid "Delete" +#: templates/js/stock.js:576 templates/js/table_filters.js:106 msgid "Depleted" -msgstr "Löschen" +msgstr "" -#: templates/js/stock.js:768 +#: templates/js/stock.js:605 +msgid "Stocktake" +msgstr "" + +#: templates/js/stock.js:720 +msgid "Stock Status" +msgstr "" + +#: templates/js/stock.js:735 +msgid "Set Stock Status" +msgstr "" + +#: templates/js/stock.js:749 +msgid "Select Status Code" +msgstr "" + +#: templates/js/stock.js:750 +msgid "Status code must be selected" +msgstr "" + +#: templates/js/stock.js:870 msgid "No user information" -msgstr "Keine Benutzerinformation" +msgstr "" -#: templates/js/stock.js:888 +#: templates/js/stock.js:990 msgid "Create New Location" -msgstr "Neuen Standort anlegen" +msgstr "" -#: templates/js/stock.js:987 -#, fuzzy -#| msgid "Serial Number" +#: templates/js/stock.js:1089 msgid "Serial" -msgstr "Seriennummer" +msgstr "" -#: templates/js/stock.js:1080 templates/js/table_filters.js:131 -#, fuzzy -#| msgid "Installed In" +#: templates/js/stock.js:1182 templates/js/table_filters.js:131 msgid "Installed" -msgstr "Installiert in" +msgstr "" -#: templates/js/stock.js:1105 -#, fuzzy -#| msgid "Installed In" +#: templates/js/stock.js:1207 msgid "Install item" -msgstr "Installiert in" +msgstr "" #: templates/js/table_filters.js:41 -#, fuzzy -#| msgid "Trackable" msgid "Trackable Part" -msgstr "nachverfolgbar" +msgstr "" #: templates/js/table_filters.js:45 -#, fuzzy -#| msgid "Validate BOM" msgid "Validated" -msgstr "BOM validieren" +msgstr "" #: templates/js/table_filters.js:65 templates/js/table_filters.js:141 -#, fuzzy -#| msgid "Serialize Stock" msgid "Is Serialized" -msgstr "Lagerbestand erfassen" +msgstr "" #: templates/js/table_filters.js:68 templates/js/table_filters.js:148 -#, fuzzy -#| msgid "Serial Number" msgid "Serial number GTE" -msgstr "Seriennummer" +msgstr "" #: templates/js/table_filters.js:69 templates/js/table_filters.js:149 -#, fuzzy -#| msgid "Serial number for this item" msgid "Serial number greater than or equal to" -msgstr "Seriennummer für dieses Teil" +msgstr "" #: templates/js/table_filters.js:72 templates/js/table_filters.js:152 -#, fuzzy -#| msgid "Serial Number" msgid "Serial number LTE" -msgstr "Seriennummer" +msgstr "" #: templates/js/table_filters.js:73 templates/js/table_filters.js:153 -#, fuzzy -#| msgid "Serial numbers already exist: " msgid "Serial number less than or equal to" -msgstr "Seriennummern existieren bereits:" +msgstr "" #: templates/js/table_filters.js:76 templates/js/table_filters.js:77 #: templates/js/table_filters.js:144 templates/js/table_filters.js:145 -#, fuzzy -#| msgid "Serial Number" msgid "Serial number" -msgstr "Seriennummer" +msgstr "" #: templates/js/table_filters.js:81 templates/js/table_filters.js:162 -#, fuzzy -#| msgid "Batch Code" msgid "Batch code" -msgstr "Losnummer" +msgstr "" -#: templates/js/table_filters.js:91 templates/js/table_filters.js:241 +#: templates/js/table_filters.js:91 templates/js/table_filters.js:245 msgid "Active parts" -msgstr "Aktive Teile" +msgstr "" #: templates/js/table_filters.js:92 msgid "Show stock for active parts" -msgstr "Bestand aktiver Teile anzeigen" +msgstr "" #: templates/js/table_filters.js:96 msgid "Is allocated" -msgstr "Ist zugeordnet" +msgstr "" #: templates/js/table_filters.js:97 msgid "Item has been alloacted" -msgstr "Position wurde zugeordnet" +msgstr "" #: templates/js/table_filters.js:101 msgid "Include sublocations" -msgstr "Unterlagerorte einschließen" +msgstr "" #: templates/js/table_filters.js:102 msgid "Include stock in sublocations" -msgstr "Bestand in Unterlagerorten einschließen" +msgstr "" #: templates/js/table_filters.js:107 -#, fuzzy -#| msgid "Delete this Stock Item when stock is depleted" msgid "Show stock items which are depleted" -msgstr "Objekt löschen wenn Lagerbestand aufgebraucht" +msgstr "" #: templates/js/table_filters.js:112 -#, fuzzy -#| msgid "Delete this Stock Item when stock is depleted" msgid "Show stock items which have expired" -msgstr "Objekt löschen wenn Lagerbestand aufgebraucht" +msgstr "" #: templates/js/table_filters.js:117 -#, fuzzy -#| msgid "Delete this Stock Item when stock is depleted" msgid "Show stock which is close to expiring" -msgstr "Objekt löschen wenn Lagerbestand aufgebraucht" +msgstr "" #: templates/js/table_filters.js:122 msgid "Show items which are in stock" @@ -6289,22 +5397,16 @@ msgid "In Production" msgstr "" #: templates/js/table_filters.js:127 -#, fuzzy -#| msgid "Delete this Stock Item when stock is depleted" msgid "Show items which are in production" -msgstr "Objekt löschen wenn Lagerbestand aufgebraucht" +msgstr "" #: templates/js/table_filters.js:132 -#, fuzzy -#| msgid "Is this item installed in another item?" msgid "Show stock items which are installed in another item" -msgstr "Ist dieses Teil in einem anderen verbaut?" +msgstr "" #: templates/js/table_filters.js:136 -#, fuzzy -#| msgid "Item assigned to customer?" msgid "Sent to customer" -msgstr "Ist dieses Objekt einem Kunden zugeteilt?" +msgstr "" #: templates/js/table_filters.js:137 msgid "Show items which have been assigned to a customer" @@ -6312,55 +5414,51 @@ msgstr "" #: templates/js/table_filters.js:157 templates/js/table_filters.js:158 msgid "Stock status" -msgstr "Bestandsstatus" +msgstr "" #: templates/js/table_filters.js:191 msgid "Build status" -msgstr "Bau-Status" +msgstr "" -#: templates/js/table_filters.js:210 templates/js/table_filters.js:223 +#: templates/js/table_filters.js:210 templates/js/table_filters.js:227 msgid "Order status" -msgstr "Bestellstatus" +msgstr "" -#: templates/js/table_filters.js:215 templates/js/table_filters.js:228 -#, fuzzy -#| msgid "Cascading" +#: templates/js/table_filters.js:215 templates/js/table_filters.js:232 msgid "Outstanding" -msgstr "Kaskadierend" +msgstr "" -#: templates/js/table_filters.js:251 +#: templates/js/table_filters.js:255 msgid "Include subcategories" -msgstr "Unterkategorien einschließen" - -#: templates/js/table_filters.js:252 -msgid "Include parts in subcategories" -msgstr "Teile in Unterkategorien einschließen" +msgstr "" #: templates/js/table_filters.js:256 +msgid "Include parts in subcategories" +msgstr "" + +#: templates/js/table_filters.js:260 msgid "Has IPN" msgstr "" -#: templates/js/table_filters.js:257 -#, fuzzy -#| msgid "Internal Part Number" +#: templates/js/table_filters.js:261 msgid "Part has internal part number" -msgstr "Interne Teilenummer" +msgstr "" -#: templates/js/table_filters.js:262 +#: templates/js/table_filters.js:266 msgid "Show active parts" -msgstr "Aktive Teile anzeigen" +msgstr "" -#: templates/js/table_filters.js:270 +#: templates/js/table_filters.js:274 msgid "Stock available" -msgstr "Bestand verfügbar" +msgstr "" -#: templates/js/table_filters.js:286 +#: templates/js/table_filters.js:290 msgid "Starred" -msgstr "Favorit" +msgstr "" -#: templates/js/table_filters.js:298 +#: templates/js/table_filters.js:302 msgid "Purchasable" -msgstr "Käuflich" +msgstr "" #: templates/modals.html:13 templates/modals.html:35 msgid "Form errors exist" @@ -6371,18 +5469,16 @@ msgid "Close" msgstr "" #: templates/modals.html:19 templates/modals.html:41 -#, fuzzy -#| msgid "Edit BOM" msgid "Submit" -msgstr "Stückliste bearbeiten" +msgstr "" #: templates/navbar.html:29 msgid "Buy" -msgstr "Kaufen" +msgstr "" #: templates/navbar.html:39 msgid "Sell" -msgstr "Verkaufen" +msgstr "" #: templates/navbar.html:50 msgid "Scan Barcode" @@ -6394,23 +5490,23 @@ msgstr "" #: templates/navbar.html:63 users/models.py:31 msgid "Admin" -msgstr "Admin" +msgstr "" #: templates/navbar.html:67 msgid "Logout" -msgstr "Ausloggen" +msgstr "" #: templates/navbar.html:69 templates/registration/login.html:43 msgid "Login" -msgstr "Einloggen" +msgstr "" #: templates/navbar.html:80 msgid "About InvenTree" -msgstr "Über InvenBaum" +msgstr "" #: templates/search_form.html:6 templates/search_form.html:8 msgid "Search" -msgstr "Suche" +msgstr "" #: templates/stats.html:9 msgid "Server" @@ -6418,457 +5514,120 @@ msgstr "" #: templates/stats.html:13 msgid "Instance Name" -msgstr "Instanzname" +msgstr "" #: templates/stats.html:18 -#, fuzzy -#| msgid "Order status" msgid "Server status" -msgstr "Bestellstatus" +msgstr "" #: templates/stats.html:21 msgid "Healthy" msgstr "" #: templates/stats.html:23 -#, fuzzy -#| msgid "Issue Order" msgid "Issues detected" -msgstr "Bestellung aufgeben" +msgstr "" #: templates/stock_table.html:12 -#, fuzzy -#| msgid "Edit Stock Location" msgid "Export Stock Information" -msgstr "Lagerobjekt-Standort bearbeiten" +msgstr "" #: templates/stock_table.html:29 -#, fuzzy -#| msgid "Added stock to {n} items" msgid "Add to selected stock items" -msgstr "Vorrat zu {n} Lagerobjekten hinzugefügt" +msgstr "" #: templates/stock_table.html:30 -#, fuzzy -#| msgid "Remove selected BOM items" msgid "Remove from selected stock items" -msgstr "Ausgewählte Stücklistenpositionen entfernen" +msgstr "" #: templates/stock_table.html:31 -#, fuzzy -#| msgid "Delete Stock Item" msgid "Stocktake selected stock items" -msgstr "Lagerobjekt löschen" +msgstr "" #: templates/stock_table.html:32 -#, fuzzy -#| msgid "Delete Stock Item" msgid "Move selected stock items" -msgstr "Lagerobjekt löschen" +msgstr "" #: templates/stock_table.html:32 msgid "Move stock" -msgstr "Bestand bewegen" +msgstr "" #: templates/stock_table.html:33 -#, fuzzy -#| msgid "Remove selected BOM items" msgid "Order selected items" -msgstr "Ausgewählte Stücklistenpositionen entfernen" +msgstr "" -#: templates/stock_table.html:36 -#, fuzzy -#| msgid "Delete line item" +#: templates/stock_table.html:34 +msgid "Change status" +msgstr "" + +#: templates/stock_table.html:34 +msgid "Change stock status" +msgstr "" + +#: templates/stock_table.html:37 msgid "Delete selected items" -msgstr "Position löschen" +msgstr "" -#: templates/stock_table.html:36 +#: templates/stock_table.html:37 msgid "Delete Stock" -msgstr "Bestand löschen" +msgstr "" -#: users/admin.py:62 -#, fuzzy -#| msgid "User" +#: users/admin.py:64 msgid "Users" -msgstr "Benutzer" +msgstr "" -#: users/admin.py:63 +#: users/admin.py:65 msgid "Select which users are assigned to this group" msgstr "" -#: users/admin.py:178 +#: users/admin.py:187 msgid "The following users are members of multiple groups:" msgstr "" -#: users/admin.py:201 -#, fuzzy -#| msgid "External Link" +#: users/admin.py:210 msgid "Personal info" -msgstr "Externer Link" +msgstr "" -#: users/admin.py:202 -#, fuzzy -#| msgid "Revision" +#: users/admin.py:211 msgid "Permissions" -msgstr "Revision" +msgstr "" -#: users/admin.py:205 -#, fuzzy -#| msgid "Import BOM data" +#: users/admin.py:214 msgid "Important dates" -msgstr "Stückliste importieren" +msgstr "" -#: users/models.py:140 +#: users/models.py:146 msgid "Permission set" msgstr "" -#: users/models.py:148 +#: users/models.py:154 msgid "Group" msgstr "" -#: users/models.py:151 +#: users/models.py:157 msgid "View" msgstr "" -#: users/models.py:151 +#: users/models.py:157 msgid "Permission to view items" msgstr "" -#: users/models.py:153 -#, fuzzy -#| msgid "Address" +#: users/models.py:159 msgid "Add" -msgstr "Adresse" +msgstr "" -#: users/models.py:153 +#: users/models.py:159 msgid "Permission to add items" msgstr "" -#: users/models.py:155 +#: users/models.py:161 msgid "Change" msgstr "" -#: users/models.py:155 +#: users/models.py:161 msgid "Permissions to edit items" msgstr "" -#: users/models.py:157 -#, fuzzy -#| msgid "Remove selected BOM items" +#: users/models.py:163 msgid "Permission to delete items" -msgstr "Ausgewählte Stücklistenpositionen entfernen" - -#~ msgid "Database Statistics" -#~ msgstr "Datenbankstatistiken" - -#~ msgid "BOM Price" -#~ msgstr "Stücklistenpreis" - -#~ msgid "BOM pricing is incomplete" -#~ msgstr "Stücklistenbepreisung ist unvollständig" - -#~ msgid "No pricing information" -#~ msgstr "Keine Preisinformation" - -#~ msgid "Invalid quantity" -#~ msgstr "Ungültige Menge" - -#~ msgid "Invalid part selection" -#~ msgstr "Ungültige Teileauswahl" - -#~ msgid "Created {n} new stock items" -#~ msgstr "{n} neue Lagerobjekte erstellt" - -#~ msgid "Created new stock item" -#~ msgstr "Neues Lagerobjekt erstellt" - -#~ msgid "Statistics" -#~ msgstr "Statistiken" - -#~ msgid "Currency Symbol e.g. $" -#~ msgstr "Währungs-Symbol (z.B. €)" - -#~ msgid "Currency Suffix e.g. AUD" -#~ msgstr "Währungs-Suffix (z.B. EUR)" - -#~ msgid "Currency Description" -#~ msgstr "Währungs-Beschreibung" - -#~ msgid "Currency Value" -#~ msgstr "Währungs-Wert" - -#~ msgid "Use this currency as the base currency" -#~ msgstr "Benutze diese Währung als Basis-Währung" - -#~ msgid "Create new Currency" -#~ msgstr "Neues Währung hinzufügen" - -#~ msgid "Edit Currency" -#~ msgstr "Währung bearbeiten" - -#~ msgid "Select currency for price calculation" -#~ msgstr "Währung zur Preisberechnung wählen" - -#~ msgid "Destination Build Order" -#~ msgstr "Zielbauauftrag" - -#, fuzzy -#~| msgid "Settings" -#~ msgid "General Settings" -#~ msgstr "Einstellungen" - -#, fuzzy -#~| msgid "Currency Value" -#~ msgid "Currencies" -#~ msgstr "Währungs-Wert" - -#, fuzzy -#~| msgid "Delete Currency" -#~ msgid "New Currency" -#~ msgstr "Währung entfernen" - -#, fuzzy -#~| msgid "Serial Number" -#~ msgid "Serial Numbers" -#~ msgstr "Seriennummer" - -#~ msgid "Automatically allocate stock" -#~ msgstr "Lagerbestand automatisch zuweisen" - -#~ msgid "Auto Allocate" -#~ msgstr "Automatisches Zuweisen" - -#~ msgid "Unallocate" -#~ msgstr "Zuweisung aufheben" - -#~ msgid "Assigned" -#~ msgstr "Zugewiesen" - -#, fuzzy -#~| msgid "No stock items found that can be allocated to this build" -#~ msgid "" -#~ "Where the following conditions are met, stock will be automatically " -#~ "allocated to this build" -#~ msgstr "Keine Lagerobjekt gefunden, die diesem Bau zugewiesen werden können" - -#, fuzzy -#~| msgid "Part is not a virtual part" -#~ msgid "The part is not marked as trackable" -#~ msgstr "Teil ist nicht virtuell" - -#, fuzzy -#~| msgid "Installed in Stock Item" -#~ msgid "Only single stock items exists" -#~ msgstr "In Lagerobjekt installiert" - -#, fuzzy -#~| msgid "This stock item is allocated to Build" -#~ msgid "The stock item is not already allocated to this build" -#~ msgstr "Dieses Lagerobjekt ist dem Bau zugewiesen" - -#~ msgid "Warning: Build order allocation is not complete" -#~ msgstr "Warnung: Bau-Zuweisung ist unvollständig" - -#~ msgid "" -#~ "Build Order has not been fully allocated. Ensure that all Stock Items " -#~ "have been allocated to the Build" -#~ msgstr "" -#~ "Bau-Zuweisung ist unvollständig. Sicherstellen, dass alle Lagerobjekte " -#~ "dem Bau zugewiesen wurden" - -#~ msgid "The following actions will be performed:" -#~ msgstr "Die folgenden Aktionen werden ausgeführt:" - -#~ msgid "Remove allocated items from stock" -#~ msgstr "Zugewiesene Teile dem Lager entnehmen" - -#~ msgid "Add completed items to stock" -#~ msgstr "Komplettierte Teile dem Lager hinzufügen" - -#~ msgid "Enough Parts?" -#~ msgstr "Genügend Teile?" - -#~ msgid "Yes" -#~ msgstr "Ja" - -#~ msgid "No" -#~ msgstr "Nein" - -#~ msgid "No matching build found" -#~ msgstr "Kein passender Bau gefunden" - -#~ msgid "Check the confirmation box at the bottom of the list" -#~ msgstr "Bestätigunsbox am Ende der Liste bestätigen" - -#~ msgid "Invalid location selected" -#~ msgstr "Ungültige Ortsauswahl" - -#~ msgid "The following serial numbers already exist: ({sn})" -#~ msgstr "Die folgende Seriennummer existiert bereits: ({sn})" - -#~ msgid "Build marked as COMPLETE" -#~ msgstr "Bau als FERTIG markiert" - -#, fuzzy -#~| msgid "Available" -#~ msgid "Avaialabe" -#~ msgstr "verfügbar" - -#, fuzzy -#~| msgid "Overage must be an integer value or a percentage" -#~ msgid "Build quantity must be integer value for trackable parts" -#~ msgstr "Überschuss muss eine Ganzzahl oder ein Prozentwert sein" - -#~ msgid "Parent build to which this build is allocated" -#~ msgstr "Eltern-Bau, dem dieser Bau zugewiesen ist" - -#~ msgid "" -#~ "Stock Items are selected for automatic allocation if there is only a " -#~ "single stock item available." -#~ msgstr "" -#~ "Teile werden automatisch zugewiesen, wenn nur ein Lagerobjekt verfügbar " -#~ "ist" - -#~ msgid "Title" -#~ msgstr "Titel" - -#~ msgid "Allocate new Part" -#~ msgstr "Neues Teil zuordnen" - -#~ msgid "Could not cancel order" -#~ msgstr "Stornierung fehlgeschlagen" - -#~ msgid "Invalid Purchase Order" -#~ msgstr "Ungültige Bestellung" - -#~ msgid "Invalid SupplierPart selection" -#~ msgstr "Ungültige Wahl des Zulieferer-Teils" - -#, fuzzy -#~| msgid "This stock item is allocated to Sales Order" -#~ msgid "Stock item was assigned to a build order" -#~ msgstr "Dieses Lagerobjekt ist dem Auftrag zugewiesen" - -#, fuzzy -#~| msgid "Template part" -#~ msgid "Templat part" -#~ msgstr "Vorlagenteil" - -#~ msgid "Link to extenal URL" -#~ msgstr "Link zu einer Externen URL" - -#, fuzzy -#~| msgid "Reference" -#~ msgid "Reference Prefix" -#~ msgstr "Referenz" - -#, fuzzy -#~| msgid "Reference" -#~ msgid "Reference Regex" -#~ msgstr "Referenz" - -#~ msgid "Build Title" -#~ msgstr "Bau-Titel" - -#~ msgid "Start new Build" -#~ msgstr "Neuen Bau beginnen" - -#~ msgid "Settings description" -#~ msgstr "Einstellungs-Beschreibung" - -#, fuzzy -#~| msgid "Select a purchase order for" -#~ msgid "Enter purchase order number" -#~ msgstr "Bestellung auswählen für" - -#, fuzzy -#~| msgid "Created" -#~ msgid "Create" -#~ msgstr "Erstellt" - -#, fuzzy -#~| msgid "Last Updated" -#~ msgid "Update" -#~ msgstr "Zuletzt aktualisiert" - -#~ msgid "Belongs To" -#~ msgstr "Gehört zu" - -#, fuzzy -#~| msgid "Added stock to {n} items" -#~ msgid "Uninstall selected stock items" -#~ msgstr "Vorrat zu {n} Lagerobjekten hinzugefügt" - -#~ msgid "Order Multiple" -#~ msgstr "Bestellvielfaches" - -#~ msgid "Base Price (Flat Fee)" -#~ msgstr "Grundpreis" - -#~ msgid "New Price Break" -#~ msgstr "Neue Preisstaffelung" - -#~ msgid "No price breaks have been added for this part" -#~ msgstr "Keine Preisstaffelung für dieses Teil" - -#~ msgid "Part cannot be added to its own Bill of Materials" -#~ msgstr "Teil kann nicht zu seiner eigenen Stückliste hinzugefügt werden" - -#, fuzzy -#~| msgid "" -#~| "This stock item is serialized - it has a unique serial number and the " -#~| "quantity cannot be adjusted." -#~ msgid "Stock item is serialized and quantity cannot be adjusted" -#~ msgstr "" -#~ "Dieses Lagerobjekt ist serialisiert. Es hat eine eindeutige Seriennummer " -#~ "und die Anzahl kann nicht angepasst werden." - -#~ msgid "Used for Build" -#~ msgstr "Verwendet für Bau" - -#~ msgid "Count stock items" -#~ msgstr "Lagerobjekte zählen" - -#~ msgid "Barcode successfully decoded" -#~ msgstr "Strichcode erfolgreich dekodiert" - -#~ msgid "Barcode plugin returned incorrect response" -#~ msgstr "Ungültige Antwort vom Strichcode-Plugin" - -#~ msgid "StockLocation does not exist" -#~ msgstr "Lagerort existiert nicht" - -#~ msgid "StockItem does not exist" -#~ msgstr "Lagerobjekt existiert nicht" - -#, fuzzy -#~| msgid "Add stock" -#~ msgid "Add to stock" -#~ msgstr "Bestand hinzufügen" - -#, fuzzy -#~| msgid "Remove From Stock" -#~ msgid "Take from stock" -#~ msgstr "Aus Lagerbestand entfernen" - -#~ msgid "Copy Stock Item" -#~ msgstr "Lagerobjekt kopieren" - -#~ 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" - -#~ msgid "It is not a real part, but real parts can be based on this template." -#~ msgstr "" -#~ "Es ist kein echtes Teil, aber echte Teile können auf dieser Vorlage " -#~ "basieren." - -#~ msgid "Allocate" -#~ msgstr "zuweisen" - -#~ msgid "Line" -#~ msgstr "Position" - -#~ msgid "URL" -#~ msgstr "URL" +msgstr "" diff --git a/InvenTree/locale/en/LC_MESSAGES/django.po b/InvenTree/locale/en/LC_MESSAGES/django.po index 2c069c1a86..7ddbe1b10f 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: 2021-01-13 16:37+0000\n" +"POT-Creation-Date: 2021-01-14 13:51+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -54,7 +54,7 @@ msgstr "" msgid "Select Category" msgstr "" -#: InvenTree/helpers.py:361 order/models.py:216 order/models.py:298 +#: InvenTree/helpers.py:361 order/models.py:232 order/models.py:330 #: stock/views.py:1952 msgid "Invalid quantity provided" msgstr "" @@ -95,7 +95,7 @@ msgstr "" msgid "File comment" msgstr "" -#: InvenTree/models.py:68 templates/js/stock.js:759 +#: InvenTree/models.py:68 templates/js/stock.js:861 msgid "User" msgstr "" @@ -108,19 +108,19 @@ msgstr "" msgid "Description (optional)" msgstr "" -#: InvenTree/settings.py:422 +#: InvenTree/settings.py:439 msgid "English" msgstr "" -#: InvenTree/settings.py:423 +#: InvenTree/settings.py:440 msgid "German" msgstr "" -#: InvenTree/settings.py:424 +#: InvenTree/settings.py:441 msgid "French" msgstr "" -#: InvenTree/settings.py:425 +#: InvenTree/settings.py:442 msgid "Polish" msgstr "" @@ -302,7 +302,7 @@ msgstr "" #: build/forms.py:78 build/templates/build/auto_allocate.html:17 #: build/templates/build/build_base.html:83 -#: build/templates/build/detail.html:29 common/models.py:596 +#: build/templates/build/detail.html:29 common/models.py:603 #: company/forms.py:112 company/templates/company/supplier_part_pricing.html:75 #: order/templates/order/order_wizard/select_parts.html:32 #: order/templates/order/purchase_order_detail.html:179 @@ -315,8 +315,8 @@ msgstr "" #: stock/templates/stock/item_base.html:57 #: stock/templates/stock/item_base.html:234 #: stock/templates/stock/stock_adjust.html:18 templates/js/barcode.js:338 -#: templates/js/bom.js:195 templates/js/build.js:420 templates/js/stock.js:750 -#: templates/js/stock.js:989 +#: templates/js/bom.js:195 templates/js/build.js:420 templates/js/stock.js:852 +#: templates/js/stock.js:1091 msgid "Quantity" msgstr "" @@ -381,7 +381,7 @@ msgstr "" #: build/models.py:62 build/templates/build/index.html:8 #: build/templates/build/index.html:15 order/templates/order/so_builds.html:11 #: order/templates/order/so_tabs.html:9 part/templates/part/tabs.html:31 -#: templates/InvenTree/settings/tabs.html:28 users/models.py:34 +#: templates/InvenTree/settings/tabs.html:28 users/models.py:36 msgid "Build Orders" msgstr "" @@ -402,10 +402,10 @@ msgstr "" #: part/templates/part/detail.html:51 part/templates/part/set_category.html:14 #: templates/InvenTree/search.html:147 #: templates/InvenTree/settings/header.html:9 templates/js/bom.js:180 -#: templates/js/bom.js:517 templates/js/build.js:664 templates/js/company.js:56 -#: templates/js/order.js:175 templates/js/order.js:263 templates/js/part.js:188 +#: templates/js/bom.js:549 templates/js/build.js:664 templates/js/company.js:56 +#: templates/js/order.js:180 templates/js/order.js:274 templates/js/part.js:188 #: templates/js/part.js:271 templates/js/part.js:391 templates/js/part.js:572 -#: templates/js/stock.js:501 templates/js/stock.js:731 +#: templates/js/stock.js:511 templates/js/stock.js:833 msgid "Description" msgstr "" @@ -424,16 +424,16 @@ msgstr "" #: build/models.py:134 build/templates/build/auto_allocate.html:16 #: build/templates/build/build_base.html:78 -#: build/templates/build/detail.html:24 order/models.py:623 +#: build/templates/build/detail.html:24 order/models.py:651 #: order/templates/order/order_wizard/select_parts.html:30 #: order/templates/order/purchase_order_detail.html:148 #: order/templates/order/receive_parts.html:19 part/models.py:316 #: part/templates/part/part_app_base.html:7 part/templates/part/related.html:26 #: part/templates/part/set_category.html:13 templates/InvenTree/search.html:133 -#: templates/js/barcode.js:336 templates/js/bom.js:153 templates/js/bom.js:502 +#: templates/js/barcode.js:336 templates/js/bom.js:153 templates/js/bom.js:534 #: templates/js/build.js:669 templates/js/company.js:138 -#: templates/js/part.js:252 templates/js/part.js:357 templates/js/stock.js:475 -#: templates/js/stock.js:1061 +#: templates/js/part.js:252 templates/js/part.js:357 templates/js/stock.js:485 +#: templates/js/stock.js:1163 msgid "Part" msgstr "" @@ -499,7 +499,7 @@ msgstr "" msgid "Batch code for this build output" msgstr "" -#: build/models.py:205 order/models.py:404 +#: build/models.py:205 order/models.py:436 msgid "Target completion date" msgstr "" @@ -522,7 +522,7 @@ msgstr "" #: part/templates/part/tabs.html:73 stock/forms.py:315 stock/forms.py:347 #: stock/forms.py:375 stock/models.py:469 stock/models.py:1522 #: stock/templates/stock/tabs.html:26 templates/js/barcode.js:391 -#: templates/js/bom.js:263 templates/js/stock.js:117 templates/js/stock.js:603 +#: templates/js/bom.js:295 templates/js/stock.js:127 templates/js/stock.js:618 msgid "Notes" msgstr "" @@ -564,11 +564,11 @@ msgstr "" msgid "Allocated quantity ({n}) must not exceed available quantity ({q})" msgstr "" -#: build/models.py:971 order/models.py:707 +#: build/models.py:971 order/models.py:735 msgid "StockItem is over-allocated" msgstr "" -#: build/models.py:975 order/models.py:710 +#: build/models.py:975 order/models.py:738 msgid "Allocation quantity must be greater than zero" msgstr "" @@ -657,7 +657,7 @@ msgstr "" #: stock/templates/stock/item_base.html:264 #: stock/templates/stock/stock_adjust.html:17 #: templates/InvenTree/search.html:183 templates/js/barcode.js:337 -#: templates/js/build.js:434 templates/js/stock.js:587 +#: templates/js/build.js:434 templates/js/stock.js:597 msgid "Location" msgstr "" @@ -689,9 +689,12 @@ msgstr "" #: build/templates/build/build_base.html:43 #: build/templates/build/build_base.html:100 +#: order/templates/order/order_base.html:32 +#: order/templates/order/order_base.html:83 #: order/templates/order/sales_order_base.html:41 #: order/templates/order/sales_order_base.html:83 -#: templates/js/table_filters.js:200 templates/js/table_filters.js:232 +#: templates/js/table_filters.js:200 templates/js/table_filters.js:219 +#: templates/js/table_filters.js:236 msgid "Overdue" msgstr "" @@ -720,15 +723,16 @@ msgstr "" #: order/templates/order/receive_parts.html:24 #: stock/templates/stock/item_base.html:363 templates/InvenTree/search.html:175 #: templates/js/barcode.js:42 templates/js/build.js:697 -#: templates/js/order.js:180 templates/js/order.js:268 -#: templates/js/stock.js:574 templates/js/stock.js:997 +#: templates/js/order.js:185 templates/js/order.js:279 +#: templates/js/stock.js:584 templates/js/stock.js:1099 msgid "Status" msgstr "" #: build/templates/build/build_base.html:96 #: build/templates/build/detail.html:100 +#: order/templates/order/order_base.html:121 #: order/templates/order/sales_order_base.html:114 templates/js/build.js:710 -#: templates/js/order.js:281 +#: templates/js/order.js:198 templates/js/order.js:292 msgid "Target Date" msgstr "" @@ -742,13 +746,13 @@ msgid "Progress" msgstr "" #: build/templates/build/build_base.html:120 -#: build/templates/build/detail.html:82 order/models.py:621 +#: build/templates/build/detail.html:82 order/models.py:649 #: 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:258 templates/js/order.js:229 +#: stock/templates/stock/item_base.html:258 templates/js/order.js:240 msgid "Sales Order" msgstr "" @@ -849,14 +853,14 @@ msgid "Destination location not specified" msgstr "" #: build/templates/build/detail.html:68 -#: stock/templates/stock/item_base.html:282 templates/js/stock.js:582 -#: templates/js/stock.js:1004 templates/js/table_filters.js:80 +#: stock/templates/stock/item_base.html:282 templates/js/stock.js:592 +#: templates/js/stock.js:1106 templates/js/table_filters.js:80 #: templates/js/table_filters.js:161 msgid "Batch" msgstr "" #: build/templates/build/detail.html:95 -#: order/templates/order/order_base.html:98 +#: order/templates/order/order_base.html:108 #: order/templates/order/sales_order_base.html:108 templates/js/build.js:705 msgid "Created" msgstr "" @@ -1152,7 +1156,7 @@ msgid "Copy category parameter templates when creating a part" msgstr "" #: common/models.py:115 part/templates/part/detail.html:155 stock/forms.py:257 -#: templates/js/table_filters.js:23 templates/js/table_filters.js:266 +#: templates/js/table_filters.js:23 templates/js/table_filters.js:270 msgid "Template" msgstr "" @@ -1161,7 +1165,7 @@ msgid "Parts are templates by default" msgstr "" #: common/models.py:122 part/models.py:794 part/templates/part/detail.html:165 -#: templates/js/table_filters.js:278 +#: templates/js/table_filters.js:282 msgid "Assembly" msgstr "" @@ -1170,7 +1174,7 @@ msgid "Parts can be assembled from other components by default" msgstr "" #: common/models.py:129 part/models.py:800 part/templates/part/detail.html:175 -#: templates/js/table_filters.js:282 +#: templates/js/table_filters.js:286 msgid "Component" msgstr "" @@ -1187,7 +1191,7 @@ msgid "Parts are purchaseable by default" msgstr "" #: common/models.py:143 part/models.py:816 part/templates/part/detail.html:205 -#: templates/js/table_filters.js:290 +#: templates/js/table_filters.js:294 msgid "Salable" msgstr "" @@ -1196,7 +1200,7 @@ msgid "Parts are salable by default" msgstr "" #: common/models.py:150 part/models.py:806 part/templates/part/detail.html:185 -#: templates/js/table_filters.js:31 templates/js/table_filters.js:294 +#: templates/js/table_filters.js:31 templates/js/table_filters.js:298 msgid "Trackable" msgstr "" @@ -1214,115 +1218,123 @@ msgid "Parts are virtual by default" msgstr "" #: common/models.py:164 -msgid "Stock Expiry" +msgid "Show Quantity in Forms" msgstr "" #: common/models.py:165 -msgid "Enable stock expiry functionality" +msgid "Display available part quantity in some forms" msgstr "" #: common/models.py:171 -msgid "Sell Expired Stock" +msgid "Stock Expiry" msgstr "" #: common/models.py:172 -msgid "Allow sale of expired stock" +msgid "Enable stock expiry functionality" msgstr "" #: common/models.py:178 -msgid "Stock Stale Time" +msgid "Sell Expired Stock" msgstr "" #: common/models.py:179 -msgid "Number of days stock items are considered stale before expiring" +msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:181 part/templates/part/detail.html:116 -msgid "days" +#: common/models.py:185 +msgid "Stock Stale Time" msgstr "" #: common/models.py:186 -msgid "Build Expired Stock" +msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:187 -msgid "Allow building with expired stock" +#: common/models.py:188 part/templates/part/detail.html:116 +msgid "days" msgstr "" #: common/models.py:193 -msgid "Stock Ownership Control" +msgid "Build Expired Stock" msgstr "" #: common/models.py:194 -msgid "Enable ownership control over stock locations and items" +msgid "Allow building with expired stock" msgstr "" #: common/models.py:200 -msgid "Build Order Reference Prefix" +msgid "Stock Ownership Control" msgstr "" #: common/models.py:201 -msgid "Prefix value for build order reference" -msgstr "" - -#: common/models.py:206 -msgid "Build Order Reference Regex" +msgid "Enable ownership control over stock locations and items" msgstr "" #: common/models.py:207 +msgid "Build Order Reference Prefix" +msgstr "" + +#: common/models.py:208 +msgid "Prefix value for build order reference" +msgstr "" + +#: common/models.py:213 +msgid "Build Order Reference Regex" +msgstr "" + +#: common/models.py:214 msgid "Regular expression pattern for matching build order reference" msgstr "" -#: common/models.py:211 +#: common/models.py:218 msgid "Sales Order Reference Prefix" msgstr "" -#: common/models.py:212 +#: common/models.py:219 msgid "Prefix value for sales order reference" msgstr "" -#: common/models.py:217 +#: common/models.py:224 msgid "Purchase Order Reference Prefix" msgstr "" -#: common/models.py:218 +#: common/models.py:225 msgid "Prefix value for purchase order reference" msgstr "" -#: common/models.py:441 +#: common/models.py:448 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:443 +#: common/models.py:450 msgid "Settings value" msgstr "" -#: common/models.py:500 +#: common/models.py:507 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:510 +#: common/models.py:517 msgid "Value must be an integer value" msgstr "" -#: common/models.py:524 +#: common/models.py:531 msgid "Key string must be unique" msgstr "" -#: common/models.py:597 company/forms.py:113 +#: common/models.py:604 company/forms.py:113 msgid "Price break quantity" msgstr "" -#: common/models.py:605 company/templates/company/supplier_part_pricing.html:80 +#: common/models.py:612 company/templates/company/supplier_part_pricing.html:80 #: part/templates/part/sale_prices.html:87 templates/js/bom.js:246 msgid "Price" msgstr "" -#: common/models.py:606 +#: common/models.py:613 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:629 +#: common/models.py:636 msgid "Default" msgstr "" @@ -1435,10 +1447,10 @@ msgstr "" #: company/models.py:323 company/templates/company/detail.html:57 #: company/templates/company/supplier_part_base.html:74 #: company/templates/company/supplier_part_detail.html:21 -#: order/templates/order/order_base.html:79 +#: order/templates/order/order_base.html:89 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:170 #: stock/templates/stock/item_base.html:324 templates/js/company.js:48 -#: templates/js/company.js:164 templates/js/order.js:162 +#: templates/js/company.js:164 templates/js/order.js:167 msgid "Supplier" msgstr "" @@ -1535,7 +1547,7 @@ msgstr "" #: company/templates/company/detail.html:62 #: order/templates/order/sales_order_base.html:89 stock/models.py:386 #: stock/models.py:387 stock/templates/stock/item_base.html:241 -#: templates/js/company.js:40 templates/js/order.js:250 +#: templates/js/company.js:40 templates/js/order.js:261 msgid "Customer" msgstr "" @@ -1550,7 +1562,7 @@ msgstr "" #: company/templates/company/detail_part.html:18 #: order/templates/order/purchase_order_detail.html:68 -#: part/templates/part/supplier.html:14 templates/js/stock.js:881 +#: part/templates/part/supplier.html:14 templates/js/stock.js:983 msgid "New Supplier Part" msgstr "" @@ -1574,7 +1586,7 @@ msgid "Delete Parts" msgstr "" #: company/templates/company/detail_part.html:63 -#: part/templates/part/category.html:116 templates/js/stock.js:875 +#: part/templates/part/category.html:116 templates/js/stock.js:977 msgid "New Part" msgstr "" @@ -1631,7 +1643,7 @@ msgstr "" #: order/templates/order/purchase_orders.html:13 #: part/templates/part/orders.html:9 part/templates/part/tabs.html:48 #: templates/InvenTree/settings/tabs.html:31 templates/navbar.html:33 -#: users/models.py:35 +#: users/models.py:37 msgid "Purchase Orders" msgstr "" @@ -1651,7 +1663,7 @@ msgstr "" #: order/templates/order/sales_orders.html:13 #: part/templates/part/sales_orders.html:9 part/templates/part/tabs.html:56 #: templates/InvenTree/settings/tabs.html:34 templates/navbar.html:42 -#: users/models.py:36 +#: users/models.py:38 msgid "Sales Orders" msgstr "" @@ -1739,8 +1751,7 @@ msgstr "" #: company/templates/company/tabs.html:12 part/templates/part/tabs.html:18 #: stock/templates/stock/location.html:29 templates/InvenTree/search.html:155 #: templates/InvenTree/settings/tabs.html:25 templates/js/part.js:192 -#: templates/js/part.js:418 templates/js/stock.js:509 templates/navbar.html:22 -#: users/models.py:33 +#: templates/js/part.js:418 templates/js/stock.js:519 templates/navbar.html:22 msgid "Stock" msgstr "" @@ -1753,7 +1764,7 @@ msgstr "" #: part/templates/part/cat_link.html:7 part/templates/part/category.html:94 #: part/templates/part/category_tabs.html:6 #: templates/InvenTree/settings/tabs.html:22 templates/navbar.html:19 -#: templates/stats.html:35 templates/stats.html:44 users/models.py:32 +#: templates/stats.html:35 templates/stats.html:44 users/models.py:33 msgid "Parts" msgstr "" @@ -1822,7 +1833,7 @@ msgstr "" msgid "Edit Supplier Part" msgstr "" -#: company/views.py:295 templates/js/stock.js:882 +#: company/views.py:295 templates/js/stock.js:984 msgid "Create new Supplier Part" msgstr "" @@ -1866,15 +1877,15 @@ msgstr "" msgid "Enabled" msgstr "" -#: order/forms.py:25 order/templates/order/order_base.html:39 +#: order/forms.py:25 order/templates/order/order_base.html:44 msgid "Place order" msgstr "" -#: order/forms.py:36 order/templates/order/order_base.html:46 +#: order/forms.py:36 order/templates/order/order_base.html:51 msgid "Mark order as complete" msgstr "" -#: order/forms.py:47 order/forms.py:58 order/templates/order/order_base.html:51 +#: order/forms.py:47 order/forms.py:58 order/templates/order/order_base.html:56 #: order/templates/order/sales_order_base.html:56 msgid "Cancel order" msgstr "" @@ -1887,15 +1898,19 @@ msgstr "" msgid "Receive parts to this location" msgstr "" -#: order/forms.py:100 +#: order/forms.py:101 msgid "Purchase Order reference" msgstr "" -#: order/forms.py:128 +#: order/forms.py:107 +msgid "Target date for order delivery. Order will be overdue after this date." +msgstr "" + +#: order/forms.py:134 msgid "Enter sales order number" msgstr "" -#: order/forms.py:134 order/models.py:405 +#: order/forms.py:140 order/models.py:437 msgid "" "Target date for order completion. Order will be overdue after this date." msgstr "" @@ -1916,107 +1931,124 @@ msgstr "" msgid "Order notes" msgstr "" -#: order/models.py:169 order/models.py:398 +#: order/models.py:171 order/models.py:430 msgid "Purchase order status" msgstr "" -#: order/models.py:177 +#: order/models.py:179 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:180 +#: order/models.py:182 msgid "Supplier order reference code" msgstr "" -#: order/models.py:189 +#: order/models.py:193 +msgid "Issue Date" +msgstr "" + +#: order/models.py:194 msgid "Date order was issued" msgstr "" -#: order/models.py:191 +#: order/models.py:199 +msgid "Target Delivery Date" +msgstr "" + +#: order/models.py:200 +msgid "" +"Expected date for order delivery. Order will be overdue after this date." +msgstr "" + +#: order/models.py:205 +msgid "Completion Date" +msgstr "" + +#: order/models.py:206 msgid "Date order was completed" msgstr "" -#: order/models.py:214 order/models.py:296 part/views.py:1504 +#: order/models.py:230 order/models.py:328 part/views.py:1504 #: stock/models.py:257 stock/models.py:866 msgid "Quantity must be greater than zero" msgstr "" -#: order/models.py:219 +#: order/models.py:235 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:291 +#: order/models.py:323 msgid "Lines can only be received against an order marked as 'Placed'" msgstr "" -#: order/models.py:394 +#: order/models.py:426 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:400 +#: order/models.py:432 msgid "Customer order reference code" msgstr "" -#: order/models.py:462 +#: order/models.py:490 msgid "SalesOrder cannot be shipped as it is not currently pending" msgstr "" -#: order/models.py:549 +#: order/models.py:577 msgid "Item quantity" msgstr "" -#: order/models.py:551 +#: order/models.py:579 msgid "Line item reference" msgstr "" -#: order/models.py:553 +#: order/models.py:581 msgid "Line item notes" msgstr "" -#: order/models.py:579 order/templates/order/order_base.html:9 +#: order/models.py:607 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:24 -#: stock/templates/stock/item_base.html:296 templates/js/order.js:146 +#: stock/templates/stock/item_base.html:296 templates/js/order.js:145 msgid "Purchase Order" msgstr "" -#: order/models.py:592 +#: order/models.py:620 msgid "Supplier part" msgstr "" -#: order/models.py:595 +#: order/models.py:623 msgid "Number of items received" msgstr "" -#: order/models.py:602 stock/models.py:479 +#: order/models.py:630 stock/models.py:479 #: stock/templates/stock/item_base.html:303 msgid "Purchase Price" msgstr "" -#: order/models.py:603 +#: order/models.py:631 msgid "Unit purchase price" msgstr "" -#: order/models.py:698 +#: order/models.py:726 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:700 +#: order/models.py:728 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:703 +#: order/models.py:731 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:713 +#: order/models.py:741 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:729 +#: order/models.py:757 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:732 +#: order/models.py:760 msgid "Enter stock allocation quantity" msgstr "" @@ -2026,41 +2058,41 @@ msgstr "" msgid "Are you sure you want to delete this attachment?" msgstr "" -#: order/templates/order/order_base.html:35 +#: order/templates/order/order_base.html:40 msgid "Edit order information" msgstr "" -#: order/templates/order/order_base.html:43 +#: order/templates/order/order_base.html:48 msgid "Receive items" msgstr "" -#: order/templates/order/order_base.html:56 +#: order/templates/order/order_base.html:61 msgid "Export order to file" msgstr "" -#: order/templates/order/order_base.html:64 +#: order/templates/order/order_base.html:69 msgid "Purchase Order Details" msgstr "" -#: order/templates/order/order_base.html:69 +#: order/templates/order/order_base.html:74 #: order/templates/order/sales_order_base.html:74 msgid "Order Reference" msgstr "" -#: order/templates/order/order_base.html:74 +#: order/templates/order/order_base.html:79 #: order/templates/order/sales_order_base.html:79 msgid "Order Status" msgstr "" -#: order/templates/order/order_base.html:85 templates/js/order.js:169 +#: order/templates/order/order_base.html:95 templates/js/order.js:175 msgid "Supplier Reference" msgstr "" -#: order/templates/order/order_base.html:104 +#: order/templates/order/order_base.html:114 msgid "Issued" msgstr "" -#: order/templates/order/order_base.html:111 +#: order/templates/order/order_base.html:128 #: order/templates/order/purchase_order_detail.html:193 #: order/templates/order/receive_parts.html:22 #: order/templates/order/sales_order_base.html:128 @@ -2108,7 +2140,7 @@ msgid "Select existing purchase orders, or create new orders." msgstr "" #: order/templates/order/order_wizard/select_pos.html:31 -#: templates/js/order.js:193 templates/js/order.js:291 +#: templates/js/order.js:203 templates/js/order.js:302 msgid "Items" msgstr "" @@ -2146,7 +2178,7 @@ msgstr "" #: order/templates/order/purchase_order_detail.html:39 #: order/templates/order/purchase_order_detail.html:119 #: part/templates/part/category.html:173 part/templates/part/category.html:215 -#: templates/js/stock.js:627 templates/js/stock.js:887 +#: templates/js/stock.js:642 templates/js/stock.js:989 msgid "New Location" msgstr "" @@ -2215,7 +2247,7 @@ msgstr "" msgid "Sales Order Details" msgstr "" -#: order/templates/order/sales_order_base.html:95 templates/js/order.js:257 +#: order/templates/order/sales_order_base.html:95 templates/js/order.js:268 msgid "Customer Reference" msgstr "" @@ -2342,18 +2374,14 @@ msgstr "" msgid "Confirm order cancellation" msgstr "" -#: order/views.py:435 -msgid "Order cannot be cancelled as either pending or placed" +#: order/views.py:435 order/views.py:462 +msgid "Order cannot be cancelled" msgstr "" #: order/views.py:449 msgid "Cancel sales order" msgstr "" -#: order/views.py:462 -msgid "Order cannot be cancelled" -msgstr "" - #: order/views.py:476 msgid "Issue Order" msgstr "" @@ -2468,123 +2496,123 @@ msgstr "" msgid "Error reading BOM file (incorrect row size)" msgstr "" -#: part/forms.py:61 stock/forms.py:263 +#: part/forms.py:71 stock/forms.py:263 msgid "File Format" msgstr "" -#: part/forms.py:61 stock/forms.py:263 +#: part/forms.py:71 stock/forms.py:263 msgid "Select output file format" msgstr "" -#: part/forms.py:63 +#: part/forms.py:73 msgid "Cascading" msgstr "" -#: part/forms.py:63 +#: part/forms.py:73 msgid "Download cascading / multi-level BOM" msgstr "" -#: part/forms.py:65 +#: part/forms.py:75 msgid "Levels" msgstr "" -#: part/forms.py:65 +#: part/forms.py:75 msgid "Select maximum number of BOM levels to export (0 = all levels)" msgstr "" -#: part/forms.py:67 +#: part/forms.py:77 msgid "Include Parameter Data" msgstr "" -#: part/forms.py:67 +#: part/forms.py:77 msgid "Include part parameters data in exported BOM" msgstr "" -#: part/forms.py:69 +#: part/forms.py:79 msgid "Include Stock Data" msgstr "" -#: part/forms.py:69 +#: part/forms.py:79 msgid "Include part stock data in exported BOM" msgstr "" -#: part/forms.py:71 +#: part/forms.py:81 msgid "Include Supplier Data" msgstr "" -#: part/forms.py:71 +#: part/forms.py:81 msgid "Include part supplier data in exported BOM" msgstr "" -#: part/forms.py:92 part/models.py:1781 +#: part/forms.py:102 part/models.py:1781 msgid "Parent Part" msgstr "" -#: part/forms.py:93 part/templates/part/bom_duplicate.html:7 +#: part/forms.py:103 part/templates/part/bom_duplicate.html:7 msgid "Select parent part to copy BOM from" msgstr "" -#: part/forms.py:99 +#: part/forms.py:109 msgid "Clear existing BOM items" msgstr "" -#: part/forms.py:104 +#: part/forms.py:114 msgid "Confirm BOM duplication" msgstr "" -#: part/forms.py:122 +#: part/forms.py:132 msgid "Confirm that the BOM is correct" msgstr "" -#: part/forms.py:134 +#: part/forms.py:144 msgid "Select BOM file to upload" msgstr "" -#: part/forms.py:153 +#: part/forms.py:163 msgid "Related Part" msgstr "" -#: part/forms.py:172 +#: part/forms.py:182 msgid "Select part category" msgstr "" -#: part/forms.py:189 +#: part/forms.py:199 msgid "Duplicate all BOM data for this part" msgstr "" -#: part/forms.py:190 +#: part/forms.py:200 msgid "Copy BOM" msgstr "" -#: part/forms.py:195 +#: part/forms.py:205 msgid "Duplicate all parameter data for this part" msgstr "" -#: part/forms.py:196 +#: part/forms.py:206 msgid "Copy Parameters" msgstr "" -#: part/forms.py:201 +#: part/forms.py:211 msgid "Confirm part creation" msgstr "" -#: part/forms.py:206 +#: part/forms.py:216 msgid "Include category parameter templates" msgstr "" -#: part/forms.py:211 +#: part/forms.py:221 msgid "Include parent categories parameter templates" msgstr "" -#: part/forms.py:291 +#: part/forms.py:301 msgid "Add parameter template to same level categories" msgstr "" -#: part/forms.py:295 +#: part/forms.py:305 msgid "Add parameter template to all categories" msgstr "" -#: part/forms.py:339 +#: part/forms.py:349 msgid "Input quantity for price calculation" msgstr "" @@ -2603,6 +2631,7 @@ msgstr "" #: part/models.py:78 part/templates/part/category.html:18 #: part/templates/part/category.html:89 templates/stats.html:39 +#: users/models.py:32 msgid "Part Categories" msgstr "" @@ -2750,7 +2779,7 @@ msgstr "" #: part/models.py:821 part/templates/part/detail.html:222 #: templates/js/table_filters.js:19 templates/js/table_filters.js:55 -#: templates/js/table_filters.js:196 templates/js/table_filters.js:261 +#: templates/js/table_filters.js:196 templates/js/table_filters.js:265 msgid "Active" msgstr "" @@ -2778,7 +2807,7 @@ msgstr "" msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:1690 templates/js/part.js:567 templates/js/stock.js:93 +#: part/models.py:1690 templates/js/part.js:567 templates/js/stock.js:103 msgid "Test Name" msgstr "" @@ -2889,11 +2918,11 @@ msgstr "" msgid "BOM Item" msgstr "" -#: part/models.py:2092 +#: part/models.py:2098 msgid "Select Related Part" msgstr "" -#: part/models.py:2124 +#: part/models.py:2130 msgid "" "Error creating relationship: check that the part is not related to itself " "and that the relationship is unique" @@ -2916,7 +2945,7 @@ msgstr "" #: stock/templates/stock/item_base.html:89 #: stock/templates/stock/item_base.html:311 #: stock/templates/stock/stock_adjust.html:16 templates/js/build.js:751 -#: templates/js/stock.js:720 templates/js/stock.js:980 +#: templates/js/stock.js:822 templates/js/stock.js:1082 msgid "Stock Item" msgstr "" @@ -3133,7 +3162,7 @@ msgstr "" msgid "Export Data" msgstr "" -#: part/templates/part/category.html:174 templates/js/stock.js:628 +#: part/templates/part/category.html:174 templates/js/stock.js:643 msgid "Create new location" msgstr "" @@ -3185,7 +3214,7 @@ msgstr "" msgid "Stock Expiry Time" msgstr "" -#: part/templates/part/detail.html:121 templates/js/order.js:276 +#: part/templates/part/detail.html:121 templates/js/order.js:287 msgid "Creation Date" msgstr "" @@ -3271,17 +3300,17 @@ msgstr "" #: part/templates/part/params.html:15 #: templates/InvenTree/settings/category.html:29 -#: templates/InvenTree/settings/part.html:41 +#: templates/InvenTree/settings/part.html:42 msgid "New Parameter" msgstr "" #: part/templates/part/params.html:25 stock/models.py:1509 -#: templates/InvenTree/settings/header.html:8 templates/js/stock.js:113 +#: templates/InvenTree/settings/header.html:8 templates/js/stock.js:123 msgid "Value" msgstr "" #: part/templates/part/params.html:41 part/templates/part/related.html:41 -#: part/templates/part/supplier.html:19 users/models.py:157 +#: part/templates/part/supplier.html:19 users/models.py:163 msgid "Delete" msgstr "" @@ -3364,7 +3393,7 @@ msgstr "" msgid "Allocated to Sales Orders" msgstr "" -#: part/templates/part/part_base.html:160 +#: part/templates/part/part_base.html:160 templates/js/bom.js:262 msgid "Can Build" msgstr "" @@ -3554,7 +3583,7 @@ msgstr "" msgid "Possible matches exist - confirm creation of new part" msgstr "" -#: part/views.py:594 templates/js/stock.js:876 +#: part/views.py:594 templates/js/stock.js:978 msgid "Create New Part" msgstr "" @@ -3896,7 +3925,7 @@ msgid "Destination Sales Order" msgstr "" #: stock/models.py:446 stock/templates/stock/item_base.html:336 -#: templates/js/stock.js:597 +#: templates/js/stock.js:612 msgid "Expiry Date" msgstr "" @@ -4150,7 +4179,7 @@ msgstr "" msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:177 templates/js/stock.js:1017 +#: stock/templates/stock/item_base.html:177 templates/js/stock.js:1119 msgid "Uninstall stock item" msgstr "" @@ -4286,47 +4315,48 @@ msgstr "" msgid "Check-in Items" msgstr "" -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:63 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:65 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:65 +#: stock/templates/stock/location.html:67 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:76 +#: stock/templates/stock/location.html:78 msgid "Location Details" msgstr "" -#: stock/templates/stock/location.html:81 +#: stock/templates/stock/location.html:83 msgid "Location Path" msgstr "" -#: stock/templates/stock/location.html:86 +#: stock/templates/stock/location.html:88 msgid "Location Description" msgstr "" -#: stock/templates/stock/location.html:91 +#: stock/templates/stock/location.html:93 msgid "Sublocations" msgstr "" -#: stock/templates/stock/location.html:96 -#: stock/templates/stock/location.html:111 +#: stock/templates/stock/location.html:98 +#: stock/templates/stock/location.html:113 #: templates/InvenTree/search_stock_items.html:6 templates/stats.html:48 -#: templates/stats.html:57 +#: templates/stats.html:57 users/models.py:35 msgid "Stock Items" msgstr "" -#: stock/templates/stock/location.html:101 +#: stock/templates/stock/location.html:103 msgid "Stock Details" msgstr "" -#: stock/templates/stock/location.html:106 +#: stock/templates/stock/location.html:108 #: templates/InvenTree/search_stock_location.html:6 templates/stats.html:52 +#: users/models.py:34 msgid "Stock Locations" msgstr "" @@ -4621,6 +4651,10 @@ msgstr "" msgid "Outstanding Purchase Orders" msgstr "" +#: templates/InvenTree/po_overdue.html:7 +msgid "Overdue Purchase Orders" +msgstr "" + #: templates/InvenTree/required_stock_build.html:7 msgid "Require Stock To Complete Build" msgstr "" @@ -4637,11 +4671,11 @@ msgstr "" msgid "Enter a search query" msgstr "" -#: templates/InvenTree/search.html:191 templates/js/stock.js:290 +#: templates/InvenTree/search.html:191 templates/js/stock.js:300 msgid "Shipped to customer" msgstr "" -#: templates/InvenTree/search.html:194 templates/js/stock.js:300 +#: templates/InvenTree/search.html:194 templates/js/stock.js:310 msgid "No stock location set" msgstr "" @@ -4670,12 +4704,12 @@ msgid "Default Value" msgstr "" #: templates/InvenTree/settings/category.html:70 -#: templates/InvenTree/settings/part.html:78 +#: templates/InvenTree/settings/part.html:79 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/category.html:71 -#: templates/InvenTree/settings/part.html:79 +#: templates/InvenTree/settings/part.html:80 msgid "Delete Template" msgstr "" @@ -4695,11 +4729,11 @@ msgstr "" msgid "Part Options" msgstr "" -#: templates/InvenTree/settings/part.html:37 +#: templates/InvenTree/settings/part.html:38 msgid "Part Parameter Templates" msgstr "" -#: templates/InvenTree/settings/part.html:58 +#: templates/InvenTree/settings/part.html:59 msgid "No part parameter templates found" msgstr "" @@ -4956,39 +4990,39 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/bom.js:272 templates/js/build.js:571 +#: templates/js/bom.js:304 templates/js/build.js:571 msgid "Actions" msgstr "" -#: templates/js/bom.js:280 +#: templates/js/bom.js:312 msgid "Validate BOM Item" msgstr "" -#: templates/js/bom.js:282 +#: templates/js/bom.js:314 msgid "This line has been validated" msgstr "" -#: templates/js/bom.js:284 +#: templates/js/bom.js:316 msgid "Edit BOM Item" msgstr "" -#: templates/js/bom.js:286 +#: templates/js/bom.js:318 msgid "Delete BOM Item" msgstr "" -#: templates/js/bom.js:363 templates/js/build.js:305 +#: templates/js/bom.js:395 templates/js/build.js:305 msgid "No BOM items found" msgstr "" -#: templates/js/bom.js:509 +#: templates/js/bom.js:541 msgid "INACTIVE" msgstr "" -#: templates/js/bom.js:523 +#: templates/js/bom.js:555 msgid "Uses" msgstr "" -#: templates/js/bom.js:534 +#: templates/js/bom.js:566 msgid "No matching parts found" msgstr "" @@ -5072,19 +5106,19 @@ msgstr "" msgid "No purchase orders found" msgstr "" -#: templates/js/order.js:188 templates/js/stock.js:702 -msgid "Date" -msgstr "" - -#: templates/js/order.js:218 -msgid "No sales orders found" -msgstr "" - -#: templates/js/order.js:241 +#: templates/js/order.js:159 templates/js/order.js:252 msgid "Order is overdue" msgstr "" -#: templates/js/order.js:286 +#: templates/js/order.js:193 templates/js/stock.js:804 +msgid "Date" +msgstr "" + +#: templates/js/order.js:229 +msgid "No sales orders found" +msgstr "" + +#: templates/js/order.js:297 msgid "Shipment Date" msgstr "" @@ -5112,8 +5146,8 @@ msgstr "" msgid "No parts found" msgstr "" -#: templates/js/part.js:343 templates/js/stock.js:463 -#: templates/js/stock.js:1049 +#: templates/js/part.js:343 templates/js/stock.js:473 +#: templates/js/stock.js:1151 msgid "Select" msgstr "" @@ -5121,7 +5155,7 @@ msgstr "" msgid "No category" msgstr "" -#: templates/js/part.js:429 templates/js/table_filters.js:274 +#: templates/js/part.js:429 templates/js/table_filters.js:278 msgid "Low stock" msgstr "" @@ -5141,11 +5175,11 @@ msgstr "" msgid "No test templates matching query" msgstr "" -#: templates/js/part.js:604 templates/js/stock.js:64 +#: templates/js/part.js:604 templates/js/stock.js:74 msgid "Edit test result" msgstr "" -#: templates/js/part.js:605 templates/js/stock.js:65 +#: templates/js/part.js:605 templates/js/stock.js:75 msgid "Delete test result" msgstr "" @@ -5153,111 +5187,131 @@ msgstr "" msgid "This test is defined for a parent part" msgstr "" -#: templates/js/stock.js:27 +#: templates/js/stock.js:37 msgid "PASS" msgstr "" -#: templates/js/stock.js:29 +#: templates/js/stock.js:39 msgid "FAIL" msgstr "" -#: templates/js/stock.js:34 +#: templates/js/stock.js:44 msgid "NO RESULT" msgstr "" -#: templates/js/stock.js:60 +#: templates/js/stock.js:70 msgid "Add test result" msgstr "" -#: templates/js/stock.js:79 +#: templates/js/stock.js:89 msgid "No test results found" msgstr "" -#: templates/js/stock.js:121 +#: templates/js/stock.js:131 msgid "Test Date" msgstr "" -#: templates/js/stock.js:282 +#: templates/js/stock.js:292 msgid "In production" msgstr "" -#: templates/js/stock.js:286 +#: templates/js/stock.js:296 msgid "Installed in Stock Item" msgstr "" -#: templates/js/stock.js:294 +#: templates/js/stock.js:304 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/stock.js:314 +#: templates/js/stock.js:324 msgid "No stock items matching query" msgstr "" -#: templates/js/stock.js:431 +#: templates/js/stock.js:441 msgid "Undefined location" msgstr "" -#: templates/js/stock.js:525 +#: templates/js/stock.js:535 msgid "Stock item is in production" msgstr "" -#: templates/js/stock.js:530 +#: templates/js/stock.js:540 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/stock.js:533 +#: templates/js/stock.js:543 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/stock.js:537 +#: templates/js/stock.js:547 msgid "Stock item has expired" msgstr "" -#: templates/js/stock.js:539 +#: templates/js/stock.js:549 msgid "Stock item will expire soon" msgstr "" -#: templates/js/stock.js:543 +#: templates/js/stock.js:553 msgid "Stock item has been allocated" msgstr "" -#: templates/js/stock.js:547 +#: templates/js/stock.js:557 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/stock.js:555 +#: templates/js/stock.js:565 msgid "Stock item has been rejected" msgstr "" -#: templates/js/stock.js:559 +#: templates/js/stock.js:569 msgid "Stock item is lost" msgstr "" -#: templates/js/stock.js:562 +#: templates/js/stock.js:572 msgid "Stock item is destroyed" msgstr "" -#: templates/js/stock.js:566 templates/js/table_filters.js:106 +#: templates/js/stock.js:576 templates/js/table_filters.js:106 msgid "Depleted" msgstr "" -#: templates/js/stock.js:768 +#: templates/js/stock.js:605 +msgid "Stocktake" +msgstr "" + +#: templates/js/stock.js:720 +msgid "Stock Status" +msgstr "" + +#: templates/js/stock.js:735 +msgid "Set Stock Status" +msgstr "" + +#: templates/js/stock.js:749 +msgid "Select Status Code" +msgstr "" + +#: templates/js/stock.js:750 +msgid "Status code must be selected" +msgstr "" + +#: templates/js/stock.js:870 msgid "No user information" msgstr "" -#: templates/js/stock.js:888 +#: templates/js/stock.js:990 msgid "Create New Location" msgstr "" -#: templates/js/stock.js:987 +#: templates/js/stock.js:1089 msgid "Serial" msgstr "" -#: templates/js/stock.js:1080 templates/js/table_filters.js:131 +#: templates/js/stock.js:1182 templates/js/table_filters.js:131 msgid "Installed" msgstr "" -#: templates/js/stock.js:1105 +#: templates/js/stock.js:1207 msgid "Install item" msgstr "" @@ -5298,7 +5352,7 @@ msgstr "" msgid "Batch code" msgstr "" -#: templates/js/table_filters.js:91 templates/js/table_filters.js:241 +#: templates/js/table_filters.js:91 templates/js/table_filters.js:245 msgid "Active parts" msgstr "" @@ -5366,43 +5420,43 @@ msgstr "" msgid "Build status" msgstr "" -#: templates/js/table_filters.js:210 templates/js/table_filters.js:223 +#: templates/js/table_filters.js:210 templates/js/table_filters.js:227 msgid "Order status" msgstr "" -#: templates/js/table_filters.js:215 templates/js/table_filters.js:228 +#: templates/js/table_filters.js:215 templates/js/table_filters.js:232 msgid "Outstanding" msgstr "" -#: templates/js/table_filters.js:251 +#: templates/js/table_filters.js:255 msgid "Include subcategories" msgstr "" -#: templates/js/table_filters.js:252 +#: templates/js/table_filters.js:256 msgid "Include parts in subcategories" msgstr "" -#: templates/js/table_filters.js:256 +#: templates/js/table_filters.js:260 msgid "Has IPN" msgstr "" -#: templates/js/table_filters.js:257 +#: templates/js/table_filters.js:261 msgid "Part has internal part number" msgstr "" -#: templates/js/table_filters.js:262 +#: templates/js/table_filters.js:266 msgid "Show active parts" msgstr "" -#: templates/js/table_filters.js:270 +#: templates/js/table_filters.js:274 msgid "Stock available" msgstr "" -#: templates/js/table_filters.js:286 +#: templates/js/table_filters.js:290 msgid "Starred" msgstr "" -#: templates/js/table_filters.js:298 +#: templates/js/table_filters.js:302 msgid "Purchasable" msgstr "" @@ -5502,70 +5556,78 @@ msgstr "" msgid "Order selected items" msgstr "" -#: templates/stock_table.html:36 +#: templates/stock_table.html:34 +msgid "Change status" +msgstr "" + +#: templates/stock_table.html:34 +msgid "Change stock status" +msgstr "" + +#: templates/stock_table.html:37 msgid "Delete selected items" msgstr "" -#: templates/stock_table.html:36 +#: templates/stock_table.html:37 msgid "Delete Stock" msgstr "" -#: users/admin.py:62 +#: users/admin.py:64 msgid "Users" msgstr "" -#: users/admin.py:63 +#: users/admin.py:65 msgid "Select which users are assigned to this group" msgstr "" -#: users/admin.py:178 +#: users/admin.py:187 msgid "The following users are members of multiple groups:" msgstr "" -#: users/admin.py:201 +#: users/admin.py:210 msgid "Personal info" msgstr "" -#: users/admin.py:202 +#: users/admin.py:211 msgid "Permissions" msgstr "" -#: users/admin.py:205 +#: users/admin.py:214 msgid "Important dates" msgstr "" -#: users/models.py:140 +#: users/models.py:146 msgid "Permission set" msgstr "" -#: users/models.py:148 +#: users/models.py:154 msgid "Group" msgstr "" -#: users/models.py:151 +#: users/models.py:157 msgid "View" msgstr "" -#: users/models.py:151 +#: users/models.py:157 msgid "Permission to view items" msgstr "" -#: users/models.py:153 +#: users/models.py:159 msgid "Add" msgstr "" -#: users/models.py:153 +#: users/models.py:159 msgid "Permission to add items" msgstr "" -#: users/models.py:155 +#: users/models.py:161 msgid "Change" msgstr "" -#: users/models.py:155 +#: users/models.py:161 msgid "Permissions to edit items" msgstr "" -#: users/models.py:157 +#: users/models.py:163 msgid "Permission to delete items" msgstr "" diff --git a/InvenTree/locale/es/LC_MESSAGES/django.po b/InvenTree/locale/es/LC_MESSAGES/django.po index 2c069c1a86..7ddbe1b10f 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: 2021-01-13 16:37+0000\n" +"POT-Creation-Date: 2021-01-14 13:51+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -54,7 +54,7 @@ msgstr "" msgid "Select Category" msgstr "" -#: InvenTree/helpers.py:361 order/models.py:216 order/models.py:298 +#: InvenTree/helpers.py:361 order/models.py:232 order/models.py:330 #: stock/views.py:1952 msgid "Invalid quantity provided" msgstr "" @@ -95,7 +95,7 @@ msgstr "" msgid "File comment" msgstr "" -#: InvenTree/models.py:68 templates/js/stock.js:759 +#: InvenTree/models.py:68 templates/js/stock.js:861 msgid "User" msgstr "" @@ -108,19 +108,19 @@ msgstr "" msgid "Description (optional)" msgstr "" -#: InvenTree/settings.py:422 +#: InvenTree/settings.py:439 msgid "English" msgstr "" -#: InvenTree/settings.py:423 +#: InvenTree/settings.py:440 msgid "German" msgstr "" -#: InvenTree/settings.py:424 +#: InvenTree/settings.py:441 msgid "French" msgstr "" -#: InvenTree/settings.py:425 +#: InvenTree/settings.py:442 msgid "Polish" msgstr "" @@ -302,7 +302,7 @@ msgstr "" #: build/forms.py:78 build/templates/build/auto_allocate.html:17 #: build/templates/build/build_base.html:83 -#: build/templates/build/detail.html:29 common/models.py:596 +#: build/templates/build/detail.html:29 common/models.py:603 #: company/forms.py:112 company/templates/company/supplier_part_pricing.html:75 #: order/templates/order/order_wizard/select_parts.html:32 #: order/templates/order/purchase_order_detail.html:179 @@ -315,8 +315,8 @@ msgstr "" #: stock/templates/stock/item_base.html:57 #: stock/templates/stock/item_base.html:234 #: stock/templates/stock/stock_adjust.html:18 templates/js/barcode.js:338 -#: templates/js/bom.js:195 templates/js/build.js:420 templates/js/stock.js:750 -#: templates/js/stock.js:989 +#: templates/js/bom.js:195 templates/js/build.js:420 templates/js/stock.js:852 +#: templates/js/stock.js:1091 msgid "Quantity" msgstr "" @@ -381,7 +381,7 @@ msgstr "" #: build/models.py:62 build/templates/build/index.html:8 #: build/templates/build/index.html:15 order/templates/order/so_builds.html:11 #: order/templates/order/so_tabs.html:9 part/templates/part/tabs.html:31 -#: templates/InvenTree/settings/tabs.html:28 users/models.py:34 +#: templates/InvenTree/settings/tabs.html:28 users/models.py:36 msgid "Build Orders" msgstr "" @@ -402,10 +402,10 @@ msgstr "" #: part/templates/part/detail.html:51 part/templates/part/set_category.html:14 #: templates/InvenTree/search.html:147 #: templates/InvenTree/settings/header.html:9 templates/js/bom.js:180 -#: templates/js/bom.js:517 templates/js/build.js:664 templates/js/company.js:56 -#: templates/js/order.js:175 templates/js/order.js:263 templates/js/part.js:188 +#: templates/js/bom.js:549 templates/js/build.js:664 templates/js/company.js:56 +#: templates/js/order.js:180 templates/js/order.js:274 templates/js/part.js:188 #: templates/js/part.js:271 templates/js/part.js:391 templates/js/part.js:572 -#: templates/js/stock.js:501 templates/js/stock.js:731 +#: templates/js/stock.js:511 templates/js/stock.js:833 msgid "Description" msgstr "" @@ -424,16 +424,16 @@ msgstr "" #: build/models.py:134 build/templates/build/auto_allocate.html:16 #: build/templates/build/build_base.html:78 -#: build/templates/build/detail.html:24 order/models.py:623 +#: build/templates/build/detail.html:24 order/models.py:651 #: order/templates/order/order_wizard/select_parts.html:30 #: order/templates/order/purchase_order_detail.html:148 #: order/templates/order/receive_parts.html:19 part/models.py:316 #: part/templates/part/part_app_base.html:7 part/templates/part/related.html:26 #: part/templates/part/set_category.html:13 templates/InvenTree/search.html:133 -#: templates/js/barcode.js:336 templates/js/bom.js:153 templates/js/bom.js:502 +#: templates/js/barcode.js:336 templates/js/bom.js:153 templates/js/bom.js:534 #: templates/js/build.js:669 templates/js/company.js:138 -#: templates/js/part.js:252 templates/js/part.js:357 templates/js/stock.js:475 -#: templates/js/stock.js:1061 +#: templates/js/part.js:252 templates/js/part.js:357 templates/js/stock.js:485 +#: templates/js/stock.js:1163 msgid "Part" msgstr "" @@ -499,7 +499,7 @@ msgstr "" msgid "Batch code for this build output" msgstr "" -#: build/models.py:205 order/models.py:404 +#: build/models.py:205 order/models.py:436 msgid "Target completion date" msgstr "" @@ -522,7 +522,7 @@ msgstr "" #: part/templates/part/tabs.html:73 stock/forms.py:315 stock/forms.py:347 #: stock/forms.py:375 stock/models.py:469 stock/models.py:1522 #: stock/templates/stock/tabs.html:26 templates/js/barcode.js:391 -#: templates/js/bom.js:263 templates/js/stock.js:117 templates/js/stock.js:603 +#: templates/js/bom.js:295 templates/js/stock.js:127 templates/js/stock.js:618 msgid "Notes" msgstr "" @@ -564,11 +564,11 @@ msgstr "" msgid "Allocated quantity ({n}) must not exceed available quantity ({q})" msgstr "" -#: build/models.py:971 order/models.py:707 +#: build/models.py:971 order/models.py:735 msgid "StockItem is over-allocated" msgstr "" -#: build/models.py:975 order/models.py:710 +#: build/models.py:975 order/models.py:738 msgid "Allocation quantity must be greater than zero" msgstr "" @@ -657,7 +657,7 @@ msgstr "" #: stock/templates/stock/item_base.html:264 #: stock/templates/stock/stock_adjust.html:17 #: templates/InvenTree/search.html:183 templates/js/barcode.js:337 -#: templates/js/build.js:434 templates/js/stock.js:587 +#: templates/js/build.js:434 templates/js/stock.js:597 msgid "Location" msgstr "" @@ -689,9 +689,12 @@ msgstr "" #: build/templates/build/build_base.html:43 #: build/templates/build/build_base.html:100 +#: order/templates/order/order_base.html:32 +#: order/templates/order/order_base.html:83 #: order/templates/order/sales_order_base.html:41 #: order/templates/order/sales_order_base.html:83 -#: templates/js/table_filters.js:200 templates/js/table_filters.js:232 +#: templates/js/table_filters.js:200 templates/js/table_filters.js:219 +#: templates/js/table_filters.js:236 msgid "Overdue" msgstr "" @@ -720,15 +723,16 @@ msgstr "" #: order/templates/order/receive_parts.html:24 #: stock/templates/stock/item_base.html:363 templates/InvenTree/search.html:175 #: templates/js/barcode.js:42 templates/js/build.js:697 -#: templates/js/order.js:180 templates/js/order.js:268 -#: templates/js/stock.js:574 templates/js/stock.js:997 +#: templates/js/order.js:185 templates/js/order.js:279 +#: templates/js/stock.js:584 templates/js/stock.js:1099 msgid "Status" msgstr "" #: build/templates/build/build_base.html:96 #: build/templates/build/detail.html:100 +#: order/templates/order/order_base.html:121 #: order/templates/order/sales_order_base.html:114 templates/js/build.js:710 -#: templates/js/order.js:281 +#: templates/js/order.js:198 templates/js/order.js:292 msgid "Target Date" msgstr "" @@ -742,13 +746,13 @@ msgid "Progress" msgstr "" #: build/templates/build/build_base.html:120 -#: build/templates/build/detail.html:82 order/models.py:621 +#: build/templates/build/detail.html:82 order/models.py:649 #: 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:258 templates/js/order.js:229 +#: stock/templates/stock/item_base.html:258 templates/js/order.js:240 msgid "Sales Order" msgstr "" @@ -849,14 +853,14 @@ msgid "Destination location not specified" msgstr "" #: build/templates/build/detail.html:68 -#: stock/templates/stock/item_base.html:282 templates/js/stock.js:582 -#: templates/js/stock.js:1004 templates/js/table_filters.js:80 +#: stock/templates/stock/item_base.html:282 templates/js/stock.js:592 +#: templates/js/stock.js:1106 templates/js/table_filters.js:80 #: templates/js/table_filters.js:161 msgid "Batch" msgstr "" #: build/templates/build/detail.html:95 -#: order/templates/order/order_base.html:98 +#: order/templates/order/order_base.html:108 #: order/templates/order/sales_order_base.html:108 templates/js/build.js:705 msgid "Created" msgstr "" @@ -1152,7 +1156,7 @@ msgid "Copy category parameter templates when creating a part" msgstr "" #: common/models.py:115 part/templates/part/detail.html:155 stock/forms.py:257 -#: templates/js/table_filters.js:23 templates/js/table_filters.js:266 +#: templates/js/table_filters.js:23 templates/js/table_filters.js:270 msgid "Template" msgstr "" @@ -1161,7 +1165,7 @@ msgid "Parts are templates by default" msgstr "" #: common/models.py:122 part/models.py:794 part/templates/part/detail.html:165 -#: templates/js/table_filters.js:278 +#: templates/js/table_filters.js:282 msgid "Assembly" msgstr "" @@ -1170,7 +1174,7 @@ msgid "Parts can be assembled from other components by default" msgstr "" #: common/models.py:129 part/models.py:800 part/templates/part/detail.html:175 -#: templates/js/table_filters.js:282 +#: templates/js/table_filters.js:286 msgid "Component" msgstr "" @@ -1187,7 +1191,7 @@ msgid "Parts are purchaseable by default" msgstr "" #: common/models.py:143 part/models.py:816 part/templates/part/detail.html:205 -#: templates/js/table_filters.js:290 +#: templates/js/table_filters.js:294 msgid "Salable" msgstr "" @@ -1196,7 +1200,7 @@ msgid "Parts are salable by default" msgstr "" #: common/models.py:150 part/models.py:806 part/templates/part/detail.html:185 -#: templates/js/table_filters.js:31 templates/js/table_filters.js:294 +#: templates/js/table_filters.js:31 templates/js/table_filters.js:298 msgid "Trackable" msgstr "" @@ -1214,115 +1218,123 @@ msgid "Parts are virtual by default" msgstr "" #: common/models.py:164 -msgid "Stock Expiry" +msgid "Show Quantity in Forms" msgstr "" #: common/models.py:165 -msgid "Enable stock expiry functionality" +msgid "Display available part quantity in some forms" msgstr "" #: common/models.py:171 -msgid "Sell Expired Stock" +msgid "Stock Expiry" msgstr "" #: common/models.py:172 -msgid "Allow sale of expired stock" +msgid "Enable stock expiry functionality" msgstr "" #: common/models.py:178 -msgid "Stock Stale Time" +msgid "Sell Expired Stock" msgstr "" #: common/models.py:179 -msgid "Number of days stock items are considered stale before expiring" +msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:181 part/templates/part/detail.html:116 -msgid "days" +#: common/models.py:185 +msgid "Stock Stale Time" msgstr "" #: common/models.py:186 -msgid "Build Expired Stock" +msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:187 -msgid "Allow building with expired stock" +#: common/models.py:188 part/templates/part/detail.html:116 +msgid "days" msgstr "" #: common/models.py:193 -msgid "Stock Ownership Control" +msgid "Build Expired Stock" msgstr "" #: common/models.py:194 -msgid "Enable ownership control over stock locations and items" +msgid "Allow building with expired stock" msgstr "" #: common/models.py:200 -msgid "Build Order Reference Prefix" +msgid "Stock Ownership Control" msgstr "" #: common/models.py:201 -msgid "Prefix value for build order reference" -msgstr "" - -#: common/models.py:206 -msgid "Build Order Reference Regex" +msgid "Enable ownership control over stock locations and items" msgstr "" #: common/models.py:207 +msgid "Build Order Reference Prefix" +msgstr "" + +#: common/models.py:208 +msgid "Prefix value for build order reference" +msgstr "" + +#: common/models.py:213 +msgid "Build Order Reference Regex" +msgstr "" + +#: common/models.py:214 msgid "Regular expression pattern for matching build order reference" msgstr "" -#: common/models.py:211 +#: common/models.py:218 msgid "Sales Order Reference Prefix" msgstr "" -#: common/models.py:212 +#: common/models.py:219 msgid "Prefix value for sales order reference" msgstr "" -#: common/models.py:217 +#: common/models.py:224 msgid "Purchase Order Reference Prefix" msgstr "" -#: common/models.py:218 +#: common/models.py:225 msgid "Prefix value for purchase order reference" msgstr "" -#: common/models.py:441 +#: common/models.py:448 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:443 +#: common/models.py:450 msgid "Settings value" msgstr "" -#: common/models.py:500 +#: common/models.py:507 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:510 +#: common/models.py:517 msgid "Value must be an integer value" msgstr "" -#: common/models.py:524 +#: common/models.py:531 msgid "Key string must be unique" msgstr "" -#: common/models.py:597 company/forms.py:113 +#: common/models.py:604 company/forms.py:113 msgid "Price break quantity" msgstr "" -#: common/models.py:605 company/templates/company/supplier_part_pricing.html:80 +#: common/models.py:612 company/templates/company/supplier_part_pricing.html:80 #: part/templates/part/sale_prices.html:87 templates/js/bom.js:246 msgid "Price" msgstr "" -#: common/models.py:606 +#: common/models.py:613 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:629 +#: common/models.py:636 msgid "Default" msgstr "" @@ -1435,10 +1447,10 @@ msgstr "" #: company/models.py:323 company/templates/company/detail.html:57 #: company/templates/company/supplier_part_base.html:74 #: company/templates/company/supplier_part_detail.html:21 -#: order/templates/order/order_base.html:79 +#: order/templates/order/order_base.html:89 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:170 #: stock/templates/stock/item_base.html:324 templates/js/company.js:48 -#: templates/js/company.js:164 templates/js/order.js:162 +#: templates/js/company.js:164 templates/js/order.js:167 msgid "Supplier" msgstr "" @@ -1535,7 +1547,7 @@ msgstr "" #: company/templates/company/detail.html:62 #: order/templates/order/sales_order_base.html:89 stock/models.py:386 #: stock/models.py:387 stock/templates/stock/item_base.html:241 -#: templates/js/company.js:40 templates/js/order.js:250 +#: templates/js/company.js:40 templates/js/order.js:261 msgid "Customer" msgstr "" @@ -1550,7 +1562,7 @@ msgstr "" #: company/templates/company/detail_part.html:18 #: order/templates/order/purchase_order_detail.html:68 -#: part/templates/part/supplier.html:14 templates/js/stock.js:881 +#: part/templates/part/supplier.html:14 templates/js/stock.js:983 msgid "New Supplier Part" msgstr "" @@ -1574,7 +1586,7 @@ msgid "Delete Parts" msgstr "" #: company/templates/company/detail_part.html:63 -#: part/templates/part/category.html:116 templates/js/stock.js:875 +#: part/templates/part/category.html:116 templates/js/stock.js:977 msgid "New Part" msgstr "" @@ -1631,7 +1643,7 @@ msgstr "" #: order/templates/order/purchase_orders.html:13 #: part/templates/part/orders.html:9 part/templates/part/tabs.html:48 #: templates/InvenTree/settings/tabs.html:31 templates/navbar.html:33 -#: users/models.py:35 +#: users/models.py:37 msgid "Purchase Orders" msgstr "" @@ -1651,7 +1663,7 @@ msgstr "" #: order/templates/order/sales_orders.html:13 #: part/templates/part/sales_orders.html:9 part/templates/part/tabs.html:56 #: templates/InvenTree/settings/tabs.html:34 templates/navbar.html:42 -#: users/models.py:36 +#: users/models.py:38 msgid "Sales Orders" msgstr "" @@ -1739,8 +1751,7 @@ msgstr "" #: company/templates/company/tabs.html:12 part/templates/part/tabs.html:18 #: stock/templates/stock/location.html:29 templates/InvenTree/search.html:155 #: templates/InvenTree/settings/tabs.html:25 templates/js/part.js:192 -#: templates/js/part.js:418 templates/js/stock.js:509 templates/navbar.html:22 -#: users/models.py:33 +#: templates/js/part.js:418 templates/js/stock.js:519 templates/navbar.html:22 msgid "Stock" msgstr "" @@ -1753,7 +1764,7 @@ msgstr "" #: part/templates/part/cat_link.html:7 part/templates/part/category.html:94 #: part/templates/part/category_tabs.html:6 #: templates/InvenTree/settings/tabs.html:22 templates/navbar.html:19 -#: templates/stats.html:35 templates/stats.html:44 users/models.py:32 +#: templates/stats.html:35 templates/stats.html:44 users/models.py:33 msgid "Parts" msgstr "" @@ -1822,7 +1833,7 @@ msgstr "" msgid "Edit Supplier Part" msgstr "" -#: company/views.py:295 templates/js/stock.js:882 +#: company/views.py:295 templates/js/stock.js:984 msgid "Create new Supplier Part" msgstr "" @@ -1866,15 +1877,15 @@ msgstr "" msgid "Enabled" msgstr "" -#: order/forms.py:25 order/templates/order/order_base.html:39 +#: order/forms.py:25 order/templates/order/order_base.html:44 msgid "Place order" msgstr "" -#: order/forms.py:36 order/templates/order/order_base.html:46 +#: order/forms.py:36 order/templates/order/order_base.html:51 msgid "Mark order as complete" msgstr "" -#: order/forms.py:47 order/forms.py:58 order/templates/order/order_base.html:51 +#: order/forms.py:47 order/forms.py:58 order/templates/order/order_base.html:56 #: order/templates/order/sales_order_base.html:56 msgid "Cancel order" msgstr "" @@ -1887,15 +1898,19 @@ msgstr "" msgid "Receive parts to this location" msgstr "" -#: order/forms.py:100 +#: order/forms.py:101 msgid "Purchase Order reference" msgstr "" -#: order/forms.py:128 +#: order/forms.py:107 +msgid "Target date for order delivery. Order will be overdue after this date." +msgstr "" + +#: order/forms.py:134 msgid "Enter sales order number" msgstr "" -#: order/forms.py:134 order/models.py:405 +#: order/forms.py:140 order/models.py:437 msgid "" "Target date for order completion. Order will be overdue after this date." msgstr "" @@ -1916,107 +1931,124 @@ msgstr "" msgid "Order notes" msgstr "" -#: order/models.py:169 order/models.py:398 +#: order/models.py:171 order/models.py:430 msgid "Purchase order status" msgstr "" -#: order/models.py:177 +#: order/models.py:179 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:180 +#: order/models.py:182 msgid "Supplier order reference code" msgstr "" -#: order/models.py:189 +#: order/models.py:193 +msgid "Issue Date" +msgstr "" + +#: order/models.py:194 msgid "Date order was issued" msgstr "" -#: order/models.py:191 +#: order/models.py:199 +msgid "Target Delivery Date" +msgstr "" + +#: order/models.py:200 +msgid "" +"Expected date for order delivery. Order will be overdue after this date." +msgstr "" + +#: order/models.py:205 +msgid "Completion Date" +msgstr "" + +#: order/models.py:206 msgid "Date order was completed" msgstr "" -#: order/models.py:214 order/models.py:296 part/views.py:1504 +#: order/models.py:230 order/models.py:328 part/views.py:1504 #: stock/models.py:257 stock/models.py:866 msgid "Quantity must be greater than zero" msgstr "" -#: order/models.py:219 +#: order/models.py:235 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:291 +#: order/models.py:323 msgid "Lines can only be received against an order marked as 'Placed'" msgstr "" -#: order/models.py:394 +#: order/models.py:426 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:400 +#: order/models.py:432 msgid "Customer order reference code" msgstr "" -#: order/models.py:462 +#: order/models.py:490 msgid "SalesOrder cannot be shipped as it is not currently pending" msgstr "" -#: order/models.py:549 +#: order/models.py:577 msgid "Item quantity" msgstr "" -#: order/models.py:551 +#: order/models.py:579 msgid "Line item reference" msgstr "" -#: order/models.py:553 +#: order/models.py:581 msgid "Line item notes" msgstr "" -#: order/models.py:579 order/templates/order/order_base.html:9 +#: order/models.py:607 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:24 -#: stock/templates/stock/item_base.html:296 templates/js/order.js:146 +#: stock/templates/stock/item_base.html:296 templates/js/order.js:145 msgid "Purchase Order" msgstr "" -#: order/models.py:592 +#: order/models.py:620 msgid "Supplier part" msgstr "" -#: order/models.py:595 +#: order/models.py:623 msgid "Number of items received" msgstr "" -#: order/models.py:602 stock/models.py:479 +#: order/models.py:630 stock/models.py:479 #: stock/templates/stock/item_base.html:303 msgid "Purchase Price" msgstr "" -#: order/models.py:603 +#: order/models.py:631 msgid "Unit purchase price" msgstr "" -#: order/models.py:698 +#: order/models.py:726 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:700 +#: order/models.py:728 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:703 +#: order/models.py:731 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:713 +#: order/models.py:741 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:729 +#: order/models.py:757 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:732 +#: order/models.py:760 msgid "Enter stock allocation quantity" msgstr "" @@ -2026,41 +2058,41 @@ msgstr "" msgid "Are you sure you want to delete this attachment?" msgstr "" -#: order/templates/order/order_base.html:35 +#: order/templates/order/order_base.html:40 msgid "Edit order information" msgstr "" -#: order/templates/order/order_base.html:43 +#: order/templates/order/order_base.html:48 msgid "Receive items" msgstr "" -#: order/templates/order/order_base.html:56 +#: order/templates/order/order_base.html:61 msgid "Export order to file" msgstr "" -#: order/templates/order/order_base.html:64 +#: order/templates/order/order_base.html:69 msgid "Purchase Order Details" msgstr "" -#: order/templates/order/order_base.html:69 +#: order/templates/order/order_base.html:74 #: order/templates/order/sales_order_base.html:74 msgid "Order Reference" msgstr "" -#: order/templates/order/order_base.html:74 +#: order/templates/order/order_base.html:79 #: order/templates/order/sales_order_base.html:79 msgid "Order Status" msgstr "" -#: order/templates/order/order_base.html:85 templates/js/order.js:169 +#: order/templates/order/order_base.html:95 templates/js/order.js:175 msgid "Supplier Reference" msgstr "" -#: order/templates/order/order_base.html:104 +#: order/templates/order/order_base.html:114 msgid "Issued" msgstr "" -#: order/templates/order/order_base.html:111 +#: order/templates/order/order_base.html:128 #: order/templates/order/purchase_order_detail.html:193 #: order/templates/order/receive_parts.html:22 #: order/templates/order/sales_order_base.html:128 @@ -2108,7 +2140,7 @@ msgid "Select existing purchase orders, or create new orders." msgstr "" #: order/templates/order/order_wizard/select_pos.html:31 -#: templates/js/order.js:193 templates/js/order.js:291 +#: templates/js/order.js:203 templates/js/order.js:302 msgid "Items" msgstr "" @@ -2146,7 +2178,7 @@ msgstr "" #: order/templates/order/purchase_order_detail.html:39 #: order/templates/order/purchase_order_detail.html:119 #: part/templates/part/category.html:173 part/templates/part/category.html:215 -#: templates/js/stock.js:627 templates/js/stock.js:887 +#: templates/js/stock.js:642 templates/js/stock.js:989 msgid "New Location" msgstr "" @@ -2215,7 +2247,7 @@ msgstr "" msgid "Sales Order Details" msgstr "" -#: order/templates/order/sales_order_base.html:95 templates/js/order.js:257 +#: order/templates/order/sales_order_base.html:95 templates/js/order.js:268 msgid "Customer Reference" msgstr "" @@ -2342,18 +2374,14 @@ msgstr "" msgid "Confirm order cancellation" msgstr "" -#: order/views.py:435 -msgid "Order cannot be cancelled as either pending or placed" +#: order/views.py:435 order/views.py:462 +msgid "Order cannot be cancelled" msgstr "" #: order/views.py:449 msgid "Cancel sales order" msgstr "" -#: order/views.py:462 -msgid "Order cannot be cancelled" -msgstr "" - #: order/views.py:476 msgid "Issue Order" msgstr "" @@ -2468,123 +2496,123 @@ msgstr "" msgid "Error reading BOM file (incorrect row size)" msgstr "" -#: part/forms.py:61 stock/forms.py:263 +#: part/forms.py:71 stock/forms.py:263 msgid "File Format" msgstr "" -#: part/forms.py:61 stock/forms.py:263 +#: part/forms.py:71 stock/forms.py:263 msgid "Select output file format" msgstr "" -#: part/forms.py:63 +#: part/forms.py:73 msgid "Cascading" msgstr "" -#: part/forms.py:63 +#: part/forms.py:73 msgid "Download cascading / multi-level BOM" msgstr "" -#: part/forms.py:65 +#: part/forms.py:75 msgid "Levels" msgstr "" -#: part/forms.py:65 +#: part/forms.py:75 msgid "Select maximum number of BOM levels to export (0 = all levels)" msgstr "" -#: part/forms.py:67 +#: part/forms.py:77 msgid "Include Parameter Data" msgstr "" -#: part/forms.py:67 +#: part/forms.py:77 msgid "Include part parameters data in exported BOM" msgstr "" -#: part/forms.py:69 +#: part/forms.py:79 msgid "Include Stock Data" msgstr "" -#: part/forms.py:69 +#: part/forms.py:79 msgid "Include part stock data in exported BOM" msgstr "" -#: part/forms.py:71 +#: part/forms.py:81 msgid "Include Supplier Data" msgstr "" -#: part/forms.py:71 +#: part/forms.py:81 msgid "Include part supplier data in exported BOM" msgstr "" -#: part/forms.py:92 part/models.py:1781 +#: part/forms.py:102 part/models.py:1781 msgid "Parent Part" msgstr "" -#: part/forms.py:93 part/templates/part/bom_duplicate.html:7 +#: part/forms.py:103 part/templates/part/bom_duplicate.html:7 msgid "Select parent part to copy BOM from" msgstr "" -#: part/forms.py:99 +#: part/forms.py:109 msgid "Clear existing BOM items" msgstr "" -#: part/forms.py:104 +#: part/forms.py:114 msgid "Confirm BOM duplication" msgstr "" -#: part/forms.py:122 +#: part/forms.py:132 msgid "Confirm that the BOM is correct" msgstr "" -#: part/forms.py:134 +#: part/forms.py:144 msgid "Select BOM file to upload" msgstr "" -#: part/forms.py:153 +#: part/forms.py:163 msgid "Related Part" msgstr "" -#: part/forms.py:172 +#: part/forms.py:182 msgid "Select part category" msgstr "" -#: part/forms.py:189 +#: part/forms.py:199 msgid "Duplicate all BOM data for this part" msgstr "" -#: part/forms.py:190 +#: part/forms.py:200 msgid "Copy BOM" msgstr "" -#: part/forms.py:195 +#: part/forms.py:205 msgid "Duplicate all parameter data for this part" msgstr "" -#: part/forms.py:196 +#: part/forms.py:206 msgid "Copy Parameters" msgstr "" -#: part/forms.py:201 +#: part/forms.py:211 msgid "Confirm part creation" msgstr "" -#: part/forms.py:206 +#: part/forms.py:216 msgid "Include category parameter templates" msgstr "" -#: part/forms.py:211 +#: part/forms.py:221 msgid "Include parent categories parameter templates" msgstr "" -#: part/forms.py:291 +#: part/forms.py:301 msgid "Add parameter template to same level categories" msgstr "" -#: part/forms.py:295 +#: part/forms.py:305 msgid "Add parameter template to all categories" msgstr "" -#: part/forms.py:339 +#: part/forms.py:349 msgid "Input quantity for price calculation" msgstr "" @@ -2603,6 +2631,7 @@ msgstr "" #: part/models.py:78 part/templates/part/category.html:18 #: part/templates/part/category.html:89 templates/stats.html:39 +#: users/models.py:32 msgid "Part Categories" msgstr "" @@ -2750,7 +2779,7 @@ msgstr "" #: part/models.py:821 part/templates/part/detail.html:222 #: templates/js/table_filters.js:19 templates/js/table_filters.js:55 -#: templates/js/table_filters.js:196 templates/js/table_filters.js:261 +#: templates/js/table_filters.js:196 templates/js/table_filters.js:265 msgid "Active" msgstr "" @@ -2778,7 +2807,7 @@ msgstr "" msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:1690 templates/js/part.js:567 templates/js/stock.js:93 +#: part/models.py:1690 templates/js/part.js:567 templates/js/stock.js:103 msgid "Test Name" msgstr "" @@ -2889,11 +2918,11 @@ msgstr "" msgid "BOM Item" msgstr "" -#: part/models.py:2092 +#: part/models.py:2098 msgid "Select Related Part" msgstr "" -#: part/models.py:2124 +#: part/models.py:2130 msgid "" "Error creating relationship: check that the part is not related to itself " "and that the relationship is unique" @@ -2916,7 +2945,7 @@ msgstr "" #: stock/templates/stock/item_base.html:89 #: stock/templates/stock/item_base.html:311 #: stock/templates/stock/stock_adjust.html:16 templates/js/build.js:751 -#: templates/js/stock.js:720 templates/js/stock.js:980 +#: templates/js/stock.js:822 templates/js/stock.js:1082 msgid "Stock Item" msgstr "" @@ -3133,7 +3162,7 @@ msgstr "" msgid "Export Data" msgstr "" -#: part/templates/part/category.html:174 templates/js/stock.js:628 +#: part/templates/part/category.html:174 templates/js/stock.js:643 msgid "Create new location" msgstr "" @@ -3185,7 +3214,7 @@ msgstr "" msgid "Stock Expiry Time" msgstr "" -#: part/templates/part/detail.html:121 templates/js/order.js:276 +#: part/templates/part/detail.html:121 templates/js/order.js:287 msgid "Creation Date" msgstr "" @@ -3271,17 +3300,17 @@ msgstr "" #: part/templates/part/params.html:15 #: templates/InvenTree/settings/category.html:29 -#: templates/InvenTree/settings/part.html:41 +#: templates/InvenTree/settings/part.html:42 msgid "New Parameter" msgstr "" #: part/templates/part/params.html:25 stock/models.py:1509 -#: templates/InvenTree/settings/header.html:8 templates/js/stock.js:113 +#: templates/InvenTree/settings/header.html:8 templates/js/stock.js:123 msgid "Value" msgstr "" #: part/templates/part/params.html:41 part/templates/part/related.html:41 -#: part/templates/part/supplier.html:19 users/models.py:157 +#: part/templates/part/supplier.html:19 users/models.py:163 msgid "Delete" msgstr "" @@ -3364,7 +3393,7 @@ msgstr "" msgid "Allocated to Sales Orders" msgstr "" -#: part/templates/part/part_base.html:160 +#: part/templates/part/part_base.html:160 templates/js/bom.js:262 msgid "Can Build" msgstr "" @@ -3554,7 +3583,7 @@ msgstr "" msgid "Possible matches exist - confirm creation of new part" msgstr "" -#: part/views.py:594 templates/js/stock.js:876 +#: part/views.py:594 templates/js/stock.js:978 msgid "Create New Part" msgstr "" @@ -3896,7 +3925,7 @@ msgid "Destination Sales Order" msgstr "" #: stock/models.py:446 stock/templates/stock/item_base.html:336 -#: templates/js/stock.js:597 +#: templates/js/stock.js:612 msgid "Expiry Date" msgstr "" @@ -4150,7 +4179,7 @@ msgstr "" msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:177 templates/js/stock.js:1017 +#: stock/templates/stock/item_base.html:177 templates/js/stock.js:1119 msgid "Uninstall stock item" msgstr "" @@ -4286,47 +4315,48 @@ msgstr "" msgid "Check-in Items" msgstr "" -#: stock/templates/stock/location.html:61 +#: stock/templates/stock/location.html:63 msgid "Location actions" msgstr "" -#: stock/templates/stock/location.html:63 +#: stock/templates/stock/location.html:65 msgid "Edit location" msgstr "" -#: stock/templates/stock/location.html:65 +#: stock/templates/stock/location.html:67 msgid "Delete location" msgstr "" -#: stock/templates/stock/location.html:76 +#: stock/templates/stock/location.html:78 msgid "Location Details" msgstr "" -#: stock/templates/stock/location.html:81 +#: stock/templates/stock/location.html:83 msgid "Location Path" msgstr "" -#: stock/templates/stock/location.html:86 +#: stock/templates/stock/location.html:88 msgid "Location Description" msgstr "" -#: stock/templates/stock/location.html:91 +#: stock/templates/stock/location.html:93 msgid "Sublocations" msgstr "" -#: stock/templates/stock/location.html:96 -#: stock/templates/stock/location.html:111 +#: stock/templates/stock/location.html:98 +#: stock/templates/stock/location.html:113 #: templates/InvenTree/search_stock_items.html:6 templates/stats.html:48 -#: templates/stats.html:57 +#: templates/stats.html:57 users/models.py:35 msgid "Stock Items" msgstr "" -#: stock/templates/stock/location.html:101 +#: stock/templates/stock/location.html:103 msgid "Stock Details" msgstr "" -#: stock/templates/stock/location.html:106 +#: stock/templates/stock/location.html:108 #: templates/InvenTree/search_stock_location.html:6 templates/stats.html:52 +#: users/models.py:34 msgid "Stock Locations" msgstr "" @@ -4621,6 +4651,10 @@ msgstr "" msgid "Outstanding Purchase Orders" msgstr "" +#: templates/InvenTree/po_overdue.html:7 +msgid "Overdue Purchase Orders" +msgstr "" + #: templates/InvenTree/required_stock_build.html:7 msgid "Require Stock To Complete Build" msgstr "" @@ -4637,11 +4671,11 @@ msgstr "" msgid "Enter a search query" msgstr "" -#: templates/InvenTree/search.html:191 templates/js/stock.js:290 +#: templates/InvenTree/search.html:191 templates/js/stock.js:300 msgid "Shipped to customer" msgstr "" -#: templates/InvenTree/search.html:194 templates/js/stock.js:300 +#: templates/InvenTree/search.html:194 templates/js/stock.js:310 msgid "No stock location set" msgstr "" @@ -4670,12 +4704,12 @@ msgid "Default Value" msgstr "" #: templates/InvenTree/settings/category.html:70 -#: templates/InvenTree/settings/part.html:78 +#: templates/InvenTree/settings/part.html:79 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/category.html:71 -#: templates/InvenTree/settings/part.html:79 +#: templates/InvenTree/settings/part.html:80 msgid "Delete Template" msgstr "" @@ -4695,11 +4729,11 @@ msgstr "" msgid "Part Options" msgstr "" -#: templates/InvenTree/settings/part.html:37 +#: templates/InvenTree/settings/part.html:38 msgid "Part Parameter Templates" msgstr "" -#: templates/InvenTree/settings/part.html:58 +#: templates/InvenTree/settings/part.html:59 msgid "No part parameter templates found" msgstr "" @@ -4956,39 +4990,39 @@ msgstr "" msgid "No pricing available" msgstr "" -#: templates/js/bom.js:272 templates/js/build.js:571 +#: templates/js/bom.js:304 templates/js/build.js:571 msgid "Actions" msgstr "" -#: templates/js/bom.js:280 +#: templates/js/bom.js:312 msgid "Validate BOM Item" msgstr "" -#: templates/js/bom.js:282 +#: templates/js/bom.js:314 msgid "This line has been validated" msgstr "" -#: templates/js/bom.js:284 +#: templates/js/bom.js:316 msgid "Edit BOM Item" msgstr "" -#: templates/js/bom.js:286 +#: templates/js/bom.js:318 msgid "Delete BOM Item" msgstr "" -#: templates/js/bom.js:363 templates/js/build.js:305 +#: templates/js/bom.js:395 templates/js/build.js:305 msgid "No BOM items found" msgstr "" -#: templates/js/bom.js:509 +#: templates/js/bom.js:541 msgid "INACTIVE" msgstr "" -#: templates/js/bom.js:523 +#: templates/js/bom.js:555 msgid "Uses" msgstr "" -#: templates/js/bom.js:534 +#: templates/js/bom.js:566 msgid "No matching parts found" msgstr "" @@ -5072,19 +5106,19 @@ msgstr "" msgid "No purchase orders found" msgstr "" -#: templates/js/order.js:188 templates/js/stock.js:702 -msgid "Date" -msgstr "" - -#: templates/js/order.js:218 -msgid "No sales orders found" -msgstr "" - -#: templates/js/order.js:241 +#: templates/js/order.js:159 templates/js/order.js:252 msgid "Order is overdue" msgstr "" -#: templates/js/order.js:286 +#: templates/js/order.js:193 templates/js/stock.js:804 +msgid "Date" +msgstr "" + +#: templates/js/order.js:229 +msgid "No sales orders found" +msgstr "" + +#: templates/js/order.js:297 msgid "Shipment Date" msgstr "" @@ -5112,8 +5146,8 @@ msgstr "" msgid "No parts found" msgstr "" -#: templates/js/part.js:343 templates/js/stock.js:463 -#: templates/js/stock.js:1049 +#: templates/js/part.js:343 templates/js/stock.js:473 +#: templates/js/stock.js:1151 msgid "Select" msgstr "" @@ -5121,7 +5155,7 @@ msgstr "" msgid "No category" msgstr "" -#: templates/js/part.js:429 templates/js/table_filters.js:274 +#: templates/js/part.js:429 templates/js/table_filters.js:278 msgid "Low stock" msgstr "" @@ -5141,11 +5175,11 @@ msgstr "" msgid "No test templates matching query" msgstr "" -#: templates/js/part.js:604 templates/js/stock.js:64 +#: templates/js/part.js:604 templates/js/stock.js:74 msgid "Edit test result" msgstr "" -#: templates/js/part.js:605 templates/js/stock.js:65 +#: templates/js/part.js:605 templates/js/stock.js:75 msgid "Delete test result" msgstr "" @@ -5153,111 +5187,131 @@ msgstr "" msgid "This test is defined for a parent part" msgstr "" -#: templates/js/stock.js:27 +#: templates/js/stock.js:37 msgid "PASS" msgstr "" -#: templates/js/stock.js:29 +#: templates/js/stock.js:39 msgid "FAIL" msgstr "" -#: templates/js/stock.js:34 +#: templates/js/stock.js:44 msgid "NO RESULT" msgstr "" -#: templates/js/stock.js:60 +#: templates/js/stock.js:70 msgid "Add test result" msgstr "" -#: templates/js/stock.js:79 +#: templates/js/stock.js:89 msgid "No test results found" msgstr "" -#: templates/js/stock.js:121 +#: templates/js/stock.js:131 msgid "Test Date" msgstr "" -#: templates/js/stock.js:282 +#: templates/js/stock.js:292 msgid "In production" msgstr "" -#: templates/js/stock.js:286 +#: templates/js/stock.js:296 msgid "Installed in Stock Item" msgstr "" -#: templates/js/stock.js:294 +#: templates/js/stock.js:304 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/stock.js:314 +#: templates/js/stock.js:324 msgid "No stock items matching query" msgstr "" -#: templates/js/stock.js:431 +#: templates/js/stock.js:441 msgid "Undefined location" msgstr "" -#: templates/js/stock.js:525 +#: templates/js/stock.js:535 msgid "Stock item is in production" msgstr "" -#: templates/js/stock.js:530 +#: templates/js/stock.js:540 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/stock.js:533 +#: templates/js/stock.js:543 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/stock.js:537 +#: templates/js/stock.js:547 msgid "Stock item has expired" msgstr "" -#: templates/js/stock.js:539 +#: templates/js/stock.js:549 msgid "Stock item will expire soon" msgstr "" -#: templates/js/stock.js:543 +#: templates/js/stock.js:553 msgid "Stock item has been allocated" msgstr "" -#: templates/js/stock.js:547 +#: templates/js/stock.js:557 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/stock.js:555 +#: templates/js/stock.js:565 msgid "Stock item has been rejected" msgstr "" -#: templates/js/stock.js:559 +#: templates/js/stock.js:569 msgid "Stock item is lost" msgstr "" -#: templates/js/stock.js:562 +#: templates/js/stock.js:572 msgid "Stock item is destroyed" msgstr "" -#: templates/js/stock.js:566 templates/js/table_filters.js:106 +#: templates/js/stock.js:576 templates/js/table_filters.js:106 msgid "Depleted" msgstr "" -#: templates/js/stock.js:768 +#: templates/js/stock.js:605 +msgid "Stocktake" +msgstr "" + +#: templates/js/stock.js:720 +msgid "Stock Status" +msgstr "" + +#: templates/js/stock.js:735 +msgid "Set Stock Status" +msgstr "" + +#: templates/js/stock.js:749 +msgid "Select Status Code" +msgstr "" + +#: templates/js/stock.js:750 +msgid "Status code must be selected" +msgstr "" + +#: templates/js/stock.js:870 msgid "No user information" msgstr "" -#: templates/js/stock.js:888 +#: templates/js/stock.js:990 msgid "Create New Location" msgstr "" -#: templates/js/stock.js:987 +#: templates/js/stock.js:1089 msgid "Serial" msgstr "" -#: templates/js/stock.js:1080 templates/js/table_filters.js:131 +#: templates/js/stock.js:1182 templates/js/table_filters.js:131 msgid "Installed" msgstr "" -#: templates/js/stock.js:1105 +#: templates/js/stock.js:1207 msgid "Install item" msgstr "" @@ -5298,7 +5352,7 @@ msgstr "" msgid "Batch code" msgstr "" -#: templates/js/table_filters.js:91 templates/js/table_filters.js:241 +#: templates/js/table_filters.js:91 templates/js/table_filters.js:245 msgid "Active parts" msgstr "" @@ -5366,43 +5420,43 @@ msgstr "" msgid "Build status" msgstr "" -#: templates/js/table_filters.js:210 templates/js/table_filters.js:223 +#: templates/js/table_filters.js:210 templates/js/table_filters.js:227 msgid "Order status" msgstr "" -#: templates/js/table_filters.js:215 templates/js/table_filters.js:228 +#: templates/js/table_filters.js:215 templates/js/table_filters.js:232 msgid "Outstanding" msgstr "" -#: templates/js/table_filters.js:251 +#: templates/js/table_filters.js:255 msgid "Include subcategories" msgstr "" -#: templates/js/table_filters.js:252 +#: templates/js/table_filters.js:256 msgid "Include parts in subcategories" msgstr "" -#: templates/js/table_filters.js:256 +#: templates/js/table_filters.js:260 msgid "Has IPN" msgstr "" -#: templates/js/table_filters.js:257 +#: templates/js/table_filters.js:261 msgid "Part has internal part number" msgstr "" -#: templates/js/table_filters.js:262 +#: templates/js/table_filters.js:266 msgid "Show active parts" msgstr "" -#: templates/js/table_filters.js:270 +#: templates/js/table_filters.js:274 msgid "Stock available" msgstr "" -#: templates/js/table_filters.js:286 +#: templates/js/table_filters.js:290 msgid "Starred" msgstr "" -#: templates/js/table_filters.js:298 +#: templates/js/table_filters.js:302 msgid "Purchasable" msgstr "" @@ -5502,70 +5556,78 @@ msgstr "" msgid "Order selected items" msgstr "" -#: templates/stock_table.html:36 +#: templates/stock_table.html:34 +msgid "Change status" +msgstr "" + +#: templates/stock_table.html:34 +msgid "Change stock status" +msgstr "" + +#: templates/stock_table.html:37 msgid "Delete selected items" msgstr "" -#: templates/stock_table.html:36 +#: templates/stock_table.html:37 msgid "Delete Stock" msgstr "" -#: users/admin.py:62 +#: users/admin.py:64 msgid "Users" msgstr "" -#: users/admin.py:63 +#: users/admin.py:65 msgid "Select which users are assigned to this group" msgstr "" -#: users/admin.py:178 +#: users/admin.py:187 msgid "The following users are members of multiple groups:" msgstr "" -#: users/admin.py:201 +#: users/admin.py:210 msgid "Personal info" msgstr "" -#: users/admin.py:202 +#: users/admin.py:211 msgid "Permissions" msgstr "" -#: users/admin.py:205 +#: users/admin.py:214 msgid "Important dates" msgstr "" -#: users/models.py:140 +#: users/models.py:146 msgid "Permission set" msgstr "" -#: users/models.py:148 +#: users/models.py:154 msgid "Group" msgstr "" -#: users/models.py:151 +#: users/models.py:157 msgid "View" msgstr "" -#: users/models.py:151 +#: users/models.py:157 msgid "Permission to view items" msgstr "" -#: users/models.py:153 +#: users/models.py:159 msgid "Add" msgstr "" -#: users/models.py:153 +#: users/models.py:159 msgid "Permission to add items" msgstr "" -#: users/models.py:155 +#: users/models.py:161 msgid "Change" msgstr "" -#: users/models.py:155 +#: users/models.py:161 msgid "Permissions to edit items" msgstr "" -#: users/models.py:157 +#: users/models.py:163 msgid "Permission to delete items" msgstr "" diff --git a/InvenTree/order/api.py b/InvenTree/order/api.py index 972ff16f9c..ce75a47697 100644 --- a/InvenTree/order/api.py +++ b/InvenTree/order/api.py @@ -80,6 +80,17 @@ class POList(generics.ListCreateAPIView): else: queryset = queryset.exclude(status__in=PurchaseOrderStatus.OPEN) + # Filter by 'overdue' status + overdue = params.get('overdue', None) + + if overdue is not None: + overdue = str2bool(overdue) + + if overdue: + queryset = queryset.filter(PurchaseOrder.OVERDUE_FILTER) + else: + queryset = queryset.exclude(PurchaseOrder.OVERDUE_FILTER) + # Special filtering for 'status' field status = params.get('status', None) diff --git a/InvenTree/order/fixtures/order.yaml b/InvenTree/order/fixtures/order.yaml index 4ceaf3d482..8943b36061 100644 --- a/InvenTree/order/fixtures/order.yaml +++ b/InvenTree/order/fixtures/order.yaml @@ -7,6 +7,7 @@ reference: '0001' description: "Ordering some screws" supplier: 1 + status: 10 # Pending # Ordering some screws from Zerg Corp - model: order.purchaseorder @@ -15,6 +16,39 @@ reference: '0002' description: "Ordering some more screws" supplier: 3 + status: 10 # Pending + +- model: order.purchaseorder + pk: 3 + fields: + reference: '0003' + description: 'Another PO' + supplier: 3 + status: 20 # Placed + +- model: order.purchaseorder + pk: 4 + fields: + reference: '0004' + description: 'Another PO' + supplier: 3 + status: 20 # Placed + +- model: order.purchaseorder + pk: 5 + fields: + reference: '0005' + description: 'Another PO' + supplier: 3 + status: 30 # Complete + +- model: order.purchaseorder + pk: 6 + fields: + reference: '0006' + description: 'Another PO' + supplier: 3 + status: 40 # Cancelled # Add some line items against PO 0001 diff --git a/InvenTree/order/fixtures/sales_order.yaml b/InvenTree/order/fixtures/sales_order.yaml new file mode 100644 index 0000000000..e80119fa3e --- /dev/null +++ b/InvenTree/order/fixtures/sales_order.yaml @@ -0,0 +1,39 @@ +- model: order.salesorder + pk: 1 + fields: + reference: 'ABC123' + description: "One sales order, please" + customer: 4 + status: 10 # Pending + +- model: order.salesorder + pk: 2 + fields: + reference: 'ABC124' + description: "One sales order, please" + customer: 4 + status: 10 # Pending + +- model: order.salesorder + pk: 3 + fields: + reference: 'ABC125' + description: "One sales order, please" + customer: 4 + status: 10 # Pending + +- model: order.salesorder + pk: 4 + fields: + reference: 'ABC126' + description: "One sales order, please" + customer: 5 + status: 20 # Shipped + +- model: order.salesorder + pk: 5 + fields: + reference: 'ABC127' + description: "One sales order, please" + customer: 5 + status: 60 # Returned diff --git a/InvenTree/order/forms.py b/InvenTree/order/forms.py index 6db51b55e6..808ab7ed29 100644 --- a/InvenTree/order/forms.py +++ b/InvenTree/order/forms.py @@ -94,6 +94,7 @@ class EditPurchaseOrderForm(HelperForm): self.field_prefix = { 'reference': 'PO', 'link': 'fa-link', + 'target_date': 'fa-calendar-alt', } self.field_placeholder = { @@ -102,6 +103,10 @@ class EditPurchaseOrderForm(HelperForm): super().__init__(*args, **kwargs) + target_date = DatePickerFormField( + help_text=_('Target date for order delivery. Order will be overdue after this date.'), + ) + class Meta: model = PurchaseOrder fields = [ @@ -109,6 +114,7 @@ class EditPurchaseOrderForm(HelperForm): 'supplier', 'supplier_reference', 'description', + 'target_date', 'link', ] diff --git a/InvenTree/order/migrations/0041_auto_20210114_1728.py b/InvenTree/order/migrations/0041_auto_20210114_1728.py new file mode 100644 index 0000000000..09be471433 --- /dev/null +++ b/InvenTree/order/migrations/0041_auto_20210114_1728.py @@ -0,0 +1,28 @@ +# Generated by Django 3.0.7 on 2021-01-14 06:28 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('order', '0040_salesorder_target_date'), + ] + + operations = [ + migrations.AddField( + model_name='purchaseorder', + name='target_date', + field=models.DateField(blank=True, help_text='Expected date for order delivery. Order will be overdue after this date.', null=True, verbose_name='Target Delivery Date'), + ), + migrations.AlterField( + model_name='purchaseorder', + name='complete_date', + field=models.DateField(blank=True, help_text='Date order was completed', null=True, verbose_name='Completion Date'), + ), + migrations.AlterField( + model_name='purchaseorder', + name='issue_date', + field=models.DateField(blank=True, help_text='Date order was issued', null=True, verbose_name='Issue Date'), + ), + ] diff --git a/InvenTree/order/models.py b/InvenTree/order/models.py index 184452f24e..84f6aeb6f0 100644 --- a/InvenTree/order/models.py +++ b/InvenTree/order/models.py @@ -119,8 +119,11 @@ class PurchaseOrder(Order): supplier: Reference to the company supplying the goods in the order supplier_reference: Optional field for supplier order reference code received_by: User that received the goods + target_date: Expected delivery target date for PurchaseOrder completion (optional) """ + OVERDUE_FILTER = Q(status__in=PurchaseOrderStatus.OPEN) & ~Q(target_date=None) & Q(target_date__lte=datetime.now().date()) + @staticmethod def filterByDate(queryset, min_date, max_date): """ @@ -132,7 +135,7 @@ class PurchaseOrder(Order): To be "interesting": - A "received" order where the received date lies within the date range - - TODO: A "pending" order where the target date lies within the date range + - A "pending" order where the target date lies within the date range - TODO: An "overdue" order where the target date is in the past """ @@ -149,13 +152,12 @@ class PurchaseOrder(Order): # Construct a queryset for "received" orders within the range received = Q(status=PurchaseOrderStatus.COMPLETE) & Q(complete_date__gte=min_date) & Q(complete_date__lte=max_date) - # TODO - Construct a queryset for "pending" orders within the range + # Construct a queryset for "pending" orders within the range + pending = Q(status__in=PurchaseOrderStatus.OPEN) & ~Q(target_date=None) & Q(target_date__gte=min_date) & Q(target_date__lte=max_date) # TODO - Construct a queryset for "overdue" orders within the range - flt = received - - queryset = queryset.filter(flt) + queryset = queryset.filter(received | pending) return queryset @@ -186,9 +188,23 @@ class PurchaseOrder(Order): related_name='+' ) - issue_date = models.DateField(blank=True, null=True, help_text=_('Date order was issued')) + issue_date = models.DateField( + blank=True, null=True, + verbose_name=_('Issue Date'), + help_text=_('Date order was issued') + ) - complete_date = models.DateField(blank=True, null=True, help_text=_('Date order was completed')) + target_date = models.DateField( + blank=True, null=True, + verbose_name=_('Target Delivery Date'), + help_text=_('Expected date for order delivery. Order will be overdue after this date.'), + ) + + complete_date = models.DateField( + blank=True, null=True, + verbose_name=_('Completion Date'), + help_text=_('Date order was completed') + ) def get_absolute_url(self): return reverse('po-detail', kwargs={'pk': self.id}) @@ -256,8 +272,24 @@ class PurchaseOrder(Order): self.complete_date = datetime.now().date() self.save() + def is_overdue(self): + """ + Returns True if this PurchaseOrder is "overdue" + + Makes use of the OVERDUE_FILTER to avoid code duplication. + """ + + query = PurchaseOrder.objects.filter(pk=self.pk) + query = query.filter(PurchaseOrder.OVERDUE_FILTER) + + return query.exists() + def can_cancel(self): - return self.status not in [ + """ + A PurchaseOrder can only be cancelled under the following circumstances: + """ + + return self.status in [ PurchaseOrderStatus.PLACED, PurchaseOrderStatus.PENDING ] @@ -419,17 +451,13 @@ class SalesOrder(Order): """ Returns true if this SalesOrder is "overdue": - - Not completed - - Target date is "in the past" + Makes use of the OVERDUE_FILTER to avoid code duplication. """ - # Order cannot be deemed overdue if target_date is not set - if self.target_date is None: - return False + query = SalesOrder.objects.filter(pk=self.pk) + query = query.filer(SalesOrder.OVERDUE_FILTER) - today = datetime.now().date() - - return self.is_pending and self.target_date < today + return query.exists() @property def is_pending(self): diff --git a/InvenTree/order/serializers.py b/InvenTree/order/serializers.py index 5463feb26f..a04798c303 100644 --- a/InvenTree/order/serializers.py +++ b/InvenTree/order/serializers.py @@ -40,12 +40,24 @@ class POSerializer(InvenTreeModelSerializer): def annotate_queryset(queryset): """ Add extra information to the queryset + + - Number of liens in the PurchaseOrder + - Overdue status of the PurchaseOrder """ queryset = queryset.annotate( line_items=SubqueryCount('lines') ) + queryset = queryset.annotate( + overdue=Case( + When( + PurchaseOrder.OVERDUE_FILTER, then=Value(True, output_field=BooleanField()), + ), + default=Value(False, output_field=BooleanField()) + ) + ) + return queryset supplier_detail = CompanyBriefSerializer(source='supplier', many=False, read_only=True) @@ -54,6 +66,8 @@ class POSerializer(InvenTreeModelSerializer): status_text = serializers.CharField(source='get_status_display', read_only=True) + overdue = serializers.BooleanField(required=False, read_only=True) + class Meta: model = PurchaseOrder @@ -65,12 +79,14 @@ class POSerializer(InvenTreeModelSerializer): 'description', 'line_items', 'link', + 'overdue', 'reference', 'supplier', 'supplier_detail', 'supplier_reference', 'status', 'status_text', + 'target_date', 'notes', ] diff --git a/InvenTree/order/templates/order/order_base.html b/InvenTree/order/templates/order/order_base.html index d3e1e02437..4e67325e48 100644 --- a/InvenTree/order/templates/order/order_base.html +++ b/InvenTree/order/templates/order/order_base.html @@ -26,7 +26,12 @@ src="{% static 'img/blank_image.png' %}" {% endif %} -

{% purchase_order_status_label order.status large=True %}

+

+ {% purchase_order_status_label order.status large=True %} + {% if order.is_overdue %} + {% trans "Overdue" %} + {% endif %} +


{{ order.description }}

@@ -47,7 +52,7 @@ src="{% static 'img/blank_image.png' %}" {% endif %} - {% if order.status == PurchaseOrderStatus.PENDING or order.status == PurchaseOrderStatus.PLACED %} + {% if order.can_cancel %} @@ -72,7 +77,12 @@ src="{% static 'img/blank_image.png' %}" {% trans "Order Status" %} - {% purchase_order_status_label order.status %} + + {% purchase_order_status_label order.status %} + {% if order.is_overdue %} + {% trans "Overdue" %} + {% endif %} + @@ -105,6 +115,13 @@ src="{% static 'img/blank_image.png' %}" {{ order.issue_date }} {% endif %} + {% if order.target_date %} + + + {% trans "Target Date" %} + {{ order.target_date }} + + {% endif %} {% if order.status == PurchaseOrderStatus.COMPLETE %} diff --git a/InvenTree/order/templates/order/purchase_orders.html b/InvenTree/order/templates/order/purchase_orders.html index d05e8fbf86..52314df833 100644 --- a/InvenTree/order/templates/order/purchase_orders.html +++ b/InvenTree/order/templates/order/purchase_orders.html @@ -70,6 +70,8 @@ InvenTree | {% trans "Purchase Orders" %} if (order.complete_date) { date = order.complete_date; + } else if (order.target_date) { + date = order.target_date; } var title = `${prefix}${order.reference} - ${order.supplier_detail.name}`; diff --git a/InvenTree/order/test_api.py b/InvenTree/order/test_api.py index 46c6f19277..58599f1eb3 100644 --- a/InvenTree/order/test_api.py +++ b/InvenTree/order/test_api.py @@ -2,12 +2,16 @@ Tests for the Order API """ +from datetime import datetime, timedelta + from rest_framework.test import APITestCase from rest_framework import status from django.urls import reverse from django.contrib.auth import get_user_model +from .models import PurchaseOrder, SalesOrder + class OrderTest(APITestCase): @@ -18,6 +22,8 @@ class OrderTest(APITestCase): 'location', 'supplier_part', 'stock', + 'order', + 'sales_order', ] def setUp(self): @@ -26,21 +32,80 @@ class OrderTest(APITestCase): get_user_model().objects.create_user('testuser', 'test@testing.com', 'password') self.client.login(username='testuser', password='password') - def doGet(self, url, options=''): + def doGet(self, url, data={}): - return self.client.get(url + "?" + options, format='json') + return self.client.get(url, data=data, format='json') + + def doPost(self, url, data={}): + return self.client.post(url, data=data, format='json') + + def filter(self, filters, count): + """ + Test API filters + """ + + response = self.doGet( + self.LIST_URL, + filters + ) + + self.assertEqual(response.status_code, 200) + self.assertEqual(len(response.data), count) + + return response + + +class PurchaseOrderTest(OrderTest): + """ + Tests for the PurchaseOrder API + """ + + LIST_URL = reverse('api-po-list') def test_po_list(self): - - url = reverse('api-po-list') - # List all order items + # List *ALL* PO items + self.filter({}, 6) + + # Filter by supplier + self.filter({'supplier': 1}, 1) + self.filter({'supplier': 3}, 5) + + # Filter by "outstanding" + self.filter({'outstanding': True}, 4) + self.filter({'outstanding': False}, 2) + + # Filter by "status" + self.filter({'status': 10}, 2) + self.filter({'status': 40}, 1) + + def test_overdue(self): + """ + Test "overdue" status + """ + + self.filter({'overdue': True}, 0) + self.filter({'overdue': False}, 6) + + order = PurchaseOrder.objects.get(pk=1) + order.target_date = datetime.now().date() - timedelta(days=10) + order.save() + + self.filter({'overdue': True}, 1) + self.filter({'overdue': False}, 5) + + def test_po_detail(self): + + url = '/api/order/po/1/' + response = self.doGet(url) - self.assertEqual(response.status_code, status.HTTP_200_OK) + + self.assertEqual(response.status_code, 200) - # Filter by stuff - response = self.doGet(url, 'status=10&part=1&supplier_part=1') - self.assertEqual(response.status_code, status.HTTP_200_OK) + data = response.data + + self.assertEqual(data['pk'], 1) + self.assertEqual(data['description'], 'Ordering some screws') def test_po_attachments(self): @@ -50,6 +115,60 @@ class OrderTest(APITestCase): self.assertEqual(response.status_code, status.HTTP_200_OK) + +class SalesOrderTest(OrderTest): + """ + Tests for the SalesOrder API + """ + + LIST_URL = reverse('api-so-list') + + def test_so_list(self): + + # All orders + self.filter({}, 5) + + # Filter by customer + self.filter({'customer': 4}, 3) + self.filter({'customer': 5}, 2) + + # Filter by outstanding + self.filter({'outstanding': True}, 3) + self.filter({'outstanding': False}, 2) + + # Filter by status + self.filter({'status': 10}, 3) # PENDING + self.filter({'status': 20}, 1) # SHIPPED + self.filter({'status': 99}, 0) # Invalid + + def test_overdue(self): + """ + Test "overdue" status + """ + + self.filter({'overdue': True}, 0) + self.filter({'overdue': False}, 5) + + for pk in [1, 2]: + order = SalesOrder.objects.get(pk=pk) + order.target_date = datetime.now().date() - timedelta(days=10) + order.save() + + self.filter({'overdue': True}, 2) + self.filter({'overdue': False}, 3) + + def test_so_detail(self): + + url = '/api/order/so/1/' + + response = self.doGet(url) + + self.assertEqual(response.status_code, 200) + + data = response.data + + self.assertEqual(data['pk'], 1) + def test_so_attachments(self): url = reverse('api-so-attachment-list') diff --git a/InvenTree/order/tests.py b/InvenTree/order/tests.py index 47dfe63d0f..7f60b1445b 100644 --- a/InvenTree/order/tests.py +++ b/InvenTree/order/tests.py @@ -41,7 +41,7 @@ class OrderTest(TestCase): next_ref = PurchaseOrder.getNextOrderNumber() - self.assertEqual(next_ref, '0003') + self.assertEqual(next_ref, '0007') def test_on_order(self): """ There should be 3 separate items on order for the M2x4 LPHS part """ diff --git a/InvenTree/order/views.py b/InvenTree/order/views.py index bd758e39fb..091b11e825 100644 --- a/InvenTree/order/views.py +++ b/InvenTree/order/views.py @@ -432,7 +432,7 @@ class PurchaseOrderCancel(AjaxUpdateView): form.add_error('confirm', _('Confirm order cancellation')) if not order.can_cancel(): - form.add_error(None, _('Order cannot be cancelled as either pending or placed')) + form.add_error(None, _('Order cannot be cancelled')) def save(self, order, form, **kwargs): """ diff --git a/InvenTree/part/forms.py b/InvenTree/part/forms.py index 1ac62161a5..16518937ae 100644 --- a/InvenTree/part/forms.py +++ b/InvenTree/part/forms.py @@ -13,6 +13,8 @@ from mptt.fields import TreeNodeChoiceField from django import forms from django.utils.translation import ugettext as _ +import common.models + from .models import Part, PartCategory, PartAttachment, PartRelated from .models import BomItem from .models import PartParameterTemplate, PartParameter @@ -23,8 +25,16 @@ from .models import PartSellPriceBreak class PartModelChoiceField(forms.ModelChoiceField): """ Extending string representation of Part instance with available stock """ + def label_from_instance(self, part): - return f'{part} - {part.available_stock}' + + label = str(part) + + # Optionally display available part quantity + if common.models.InvenTreeSetting.get_setting('PART_SHOW_QUANTITY_IN_FORMS'): + label += f" - {part.available_stock}" + + return label class PartImageForm(HelperForm): diff --git a/InvenTree/part/models.py b/InvenTree/part/models.py index 8c88adf747..a45220c7ab 100644 --- a/InvenTree/part/models.py +++ b/InvenTree/part/models.py @@ -1990,7 +1990,13 @@ class BomItem(models.Model): Return the available stock items for the referenced sub_part """ - query = self.sub_part.stock_items.filter(StockModels.StockItem.IN_STOCK_FILTER).aggregate( + query = self.sub_part.stock_items.all() + + query = query.prefetch_related([ + 'sub_part__stock_items', + ]) + + query = query.filter(StockModels.StockItem.IN_STOCK_FILTER).aggregate( available=Coalesce(Sum('quantity'), 0) ) diff --git a/InvenTree/part/templates/part/detail.html b/InvenTree/part/templates/part/detail.html index f723193abb..59c33ea7b6 100644 --- a/InvenTree/part/templates/part/detail.html +++ b/InvenTree/part/templates/part/detail.html @@ -214,9 +214,9 @@ {% if part.active %} - + {% else %} - + {% endif %} {% trans "Active" %} diff --git a/InvenTree/part/views.py b/InvenTree/part/views.py index 0e16bfb498..26cf93e56d 100644 --- a/InvenTree/part/views.py +++ b/InvenTree/part/views.py @@ -1320,7 +1320,7 @@ class BomUpload(InvenTreeRoleMixin, FormView): # Otherwise, check to see if there is a matching IPN try: if row['part_ipn']: - part_matches = [part for part in self.allowed_parts if row['part_ipn'].lower() == part.IPN.lower()] + part_matches = [part for part in self.allowed_parts if part.IPN and row['part_ipn'].lower() == str(part.IPN.lower())] # Check for single match if len(part_matches) == 1: diff --git a/InvenTree/stock/serializers.py b/InvenTree/stock/serializers.py index 70ad1abc18..6048d5e248 100644 --- a/InvenTree/stock/serializers.py +++ b/InvenTree/stock/serializers.py @@ -208,6 +208,7 @@ class StockItemSerializer(InvenTreeModelSerializer): 'stale', 'status', 'status_text', + 'stocktake_date', 'supplier_part', 'supplier_part_detail', 'tracking_items', diff --git a/InvenTree/stock/views.py b/InvenTree/stock/views.py index 138a4e7e5b..4e93545f1e 100644 --- a/InvenTree/stock/views.py +++ b/InvenTree/stock/views.py @@ -2022,7 +2022,7 @@ class StockItemCreate(AjaxCreateView): item = form.save(commit=False) item.user = self.request.user - item.save() + item.save(user=self.request.user) return item @@ -2033,7 +2033,7 @@ class StockItemCreate(AjaxCreateView): item = form.save(commit=False) item.user = self.request.user - item.save() + item.save(user=self.request.user) return item diff --git a/InvenTree/templates/InvenTree/index.html b/InvenTree/templates/InvenTree/index.html index 1b9a492a22..36e4f8bc49 100644 --- a/InvenTree/templates/InvenTree/index.html +++ b/InvenTree/templates/InvenTree/index.html @@ -35,6 +35,7 @@ InvenTree | {% trans "Index" %} {% if roles.purchase_order.view %} {% include "InvenTree/po_outstanding.html" with collapse_id="po_outstanding" %} {% endif %} + {% include "InvenTree/po_overdue.html" with collapse_id="po_overdue" %} {% if roles.sales_order.view %} {% include "InvenTree/so_outstanding.html" with collapse_id="so_outstanding" %} {% include "InvenTree/so_overdue.html" with collapse_id="so_overdue" %} @@ -130,6 +131,14 @@ loadPurchaseOrderTable("#po-outstanding-table", { } }); +loadPurchaseOrderTable("#po-overdue-table", { + url: "{% url 'api-po-list' %}", + params: { + supplier_detail: true, + overdue: true, + } +}); + loadSalesOrderTable("#so-outstanding-table", { url: "{% url 'api-so-list' %}", params: { @@ -158,6 +167,7 @@ loadSalesOrderTable("#so-overdue-table", { {% include "InvenTree/index/on_load.html" with label="stock-to-build" %} {% include "InvenTree/index/on_load.html" with label="po-outstanding" %} +{% include "InvenTree/index/on_load.html" with label="po-overdue" %} {% include "InvenTree/index/on_load.html" with label="so-outstanding" %} {% include "InvenTree/index/on_load.html" with label="so-overdue" %} diff --git a/InvenTree/templates/InvenTree/po_overdue.html b/InvenTree/templates/InvenTree/po_overdue.html new file mode 100644 index 0000000000..99e3e7d40f --- /dev/null +++ b/InvenTree/templates/InvenTree/po_overdue.html @@ -0,0 +1,15 @@ +{% extends "collapse_index.html" %} + +{% load i18n %} + +{% block collapse_title %} + +{% trans "Overdue Purchase Orders" %} +{% endblock %} + +{% block collapse_content %} + + +
+ +{% endblock %} \ No newline at end of file diff --git a/InvenTree/templates/InvenTree/settings/part.html b/InvenTree/templates/InvenTree/settings/part.html index fe46911dae..9174b2f127 100644 --- a/InvenTree/templates/InvenTree/settings/part.html +++ b/InvenTree/templates/InvenTree/settings/part.html @@ -18,6 +18,7 @@ {% include "InvenTree/settings/setting.html" with key="PART_IPN_REGEX" %} {% include "InvenTree/settings/setting.html" with key="PART_ALLOW_DUPLICATE_IPN" %} + {% include "InvenTree/settings/setting.html" with key="PART_SHOW_QUANTITY_IN_FORMS" icon="fa-hashtag" %} {% include "InvenTree/settings/setting.html" with key="PART_TEMPLATE" icon="fa-clone" %} {% include "InvenTree/settings/setting.html" with key="PART_ASSEMBLY" icon="fa-tools" %} diff --git a/InvenTree/templates/js/bom.js b/InvenTree/templates/js/bom.js index 299045cfa5..e1b3b46cc0 100644 --- a/InvenTree/templates/js/bom.js +++ b/InvenTree/templates/js/bom.js @@ -255,6 +255,38 @@ function loadBomTable(table, options) { }); */ } + + cols.push( + { + 'field': 'can_build', + 'title': '{% trans "Can Build" %}', + formatter: function(value, row, index, field) { + var can_build = 0; + + if (row.quantity > 0) { + can_build = row.sub_part_detail.stock / row.quantity; + } + + return +can_build.toFixed(2); + }, + sorter: function(valA, valB, rowA, rowB) { + // Function to sort the "can build" quantity + var cb_a = 0; + var cb_b = 0; + + if (rowA.quantity > 0) { + cb_a = rowA.sub_part_detail.stock / rowA.quantity; + } + + if (rowB.quantity > 0) { + cb_b = rowB.sub_part_detail.stock / rowB.quantity; + } + + return (cb_a > cb_b) ? 1 : -1; + }, + sortable: true, + } + ) // Part notes cols.push( diff --git a/InvenTree/templates/js/order.js b/InvenTree/templates/js/order.js index 18c315d17e..53063cd709 100644 --- a/InvenTree/templates/js/order.js +++ b/InvenTree/templates/js/order.js @@ -141,9 +141,9 @@ function loadPurchaseOrderTable(table, options) { switchable: false, }, { - sortable: true, field: 'reference', title: '{% trans "Purchase Order" %}', + sortable: true, switchable: false, formatter: function(value, row, index, field) { @@ -153,13 +153,19 @@ function loadPurchaseOrderTable(table, options) { value = `${prefix}${value}`; } - return renderLink(value, `/order/purchase-order/${row.pk}/`); + var html = renderLink(value, `/order/purchase-order/${row.pk}/`); + + if (row.overdue) { + html += makeIconBadge('fa-calendar-times icon-red', '{% trans "Order is overdue" %}'); + } + + return html; } }, { - sortable: true, field: 'supplier_detail', title: '{% trans "Supplier" %}', + sortable: true, formatter: function(value, row, index, field) { return imageHoverIcon(row.supplier_detail.image) + renderLink(row.supplier_detail.name, `/company/${row.supplier}/purchase-orders/`); } @@ -170,27 +176,32 @@ function loadPurchaseOrderTable(table, options) { sortable: true, }, { - sortable: true, field: 'description', title: '{% trans "Description" %}', + sortable: true, }, { - sortable: true, field: 'status', title: '{% trans "Status" %}', + sortable: true, formatter: function(value, row, index, field) { return purchaseOrderStatusDisplay(row.status, row.status_text); } }, { - sortable: true, field: 'creation_date', title: '{% trans "Date" %}', + sortable: true, }, { + field: 'target_date', + title: '{% trans "Target Date" %}', sortable: true, + }, + { field: 'line_items', - title: '{% trans "Items" %}' + title: '{% trans "Items" %}', + sortable: true, }, ], }); diff --git a/InvenTree/templates/js/stock.js b/InvenTree/templates/js/stock.js index e3f124d252..e9cb5e2696 100644 --- a/InvenTree/templates/js/stock.js +++ b/InvenTree/templates/js/stock.js @@ -6,8 +6,18 @@ * Requires api.js to be loaded first */ -/* Functions for interacting with stock management forms - */ + +function stockStatusCodes() { + return [ + {% for code in StockStatus.list %} + { + key: {{ code.key }}, + text: "{{ code.value }}", + }, + {% endfor %} + ]; +} + function removeStockRow(e) { // Remove a selected row from a stock modal form @@ -590,6 +600,11 @@ function loadStockTable(table, options) { return locationDetail(row); } }, + { + field: 'stocktake_date', + title: '{% trans "Stocktake" %}', + sortable: true, + }, {% settings_value "STOCK_ENABLE_EXPIRY" as expiry %} {% if expiry %} { @@ -677,6 +692,93 @@ function loadStockTable(table, options) { }); }); + $("#multi-item-set-status").click(function() { + // Select and set the STATUS field for selected stock items + var selections = $("#stock-table").bootstrapTable('getSelections'); + + // Select stock status + var modal = '#modal-form'; + + var status_list = makeOptionsList( + stockStatusCodes(), + function(item) { + return item.text; + }, + function (item) { + return item.key; + } + ); + + // Add an empty option at the start of the list + status_list.unshift(''); + + // Construct form + var html = ` +
+
+ +
+ +
+
+
`; + + openModal({ + modal: modal, + }); + + modalEnable(modal, true); + modalSetTitle(modal, '{% trans "Set Stock Status" %}'); + modalSetContent(modal, html); + + attachSelect(modal); + + modalSubmit(modal, function() { + var label = $(modal).find('#id_status'); + + var status_code = label.val(); + + closeModal(modal); + + if (!status_code) { + showAlertDialog( + '{% trans "Select Status Code" %}', + '{% trans "Status code must be selected" %}' + ); + + return; + } + + var requests = []; + + selections.forEach(function(item) { + var url = `/api/stock/${item.pk}/`; + + requests.push( + inventreePut( + url, + { + status: status_code, + }, + { + method: 'PATCH', + success: function() { + } + } + ) + ); + }); + + $.when.apply($, requests).then(function() { + $("#stock-table").bootstrapTable('refresh'); + }); + }) + }); + $("#multi-item-delete").click(function() { var selections = $("#stock-table").bootstrapTable("getSelections"); diff --git a/InvenTree/templates/js/table_filters.js b/InvenTree/templates/js/table_filters.js index 84aa12c139..81f72fb26d 100644 --- a/InvenTree/templates/js/table_filters.js +++ b/InvenTree/templates/js/table_filters.js @@ -214,6 +214,10 @@ function getAvailableTableFilters(tableKey) { type: 'bool', title: '{% trans "Outstanding" %}', }, + overdue: { + type: 'bool', + title: '{% trans "Overdue" %}', + }, }; } diff --git a/InvenTree/templates/stock_table.html b/InvenTree/templates/stock_table.html index 2e13721af1..2ce934fd00 100644 --- a/InvenTree/templates/stock_table.html +++ b/InvenTree/templates/stock_table.html @@ -14,31 +14,32 @@ {% if read_only %} {% else %} - - {% if owner_control.value == "False" or owner_control.value == "True" and user in owners or user.is_superuser %} - {% if roles.stock.add %} - - {% endif %} - {% if roles.stock.change or roles.stock.delete %} -
- - -
- {% endif %} - {% endif %} + + {% if owner_control.value == "False" or owner_control.value == "True" and user in owners or user.is_superuser %} + {% if roles.stock.add %} + + {% endif %} + {% if roles.stock.change or roles.stock.delete %} +
+ + +
+ {% endif %} + {% endif %} {% endif %}