From ae05c684172e3efcd51006d360518d7e1be3cd78 Mon Sep 17 00:00:00 2001 From: Oliver Date: Tue, 18 Apr 2023 09:40:59 +1000 Subject: [PATCH] New Crowdin updates (#4624) * updated translation base * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin * Fix: New translations django.po from Crowdin --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- InvenTree/locale/cs/LC_MESSAGES/django.po | 111 +- InvenTree/locale/da/LC_MESSAGES/django.po | 111 +- InvenTree/locale/de/LC_MESSAGES/django.po | 123 +- InvenTree/locale/el/LC_MESSAGES/django.po | 111 +- InvenTree/locale/en/LC_MESSAGES/django.po | 2474 +++++++++-------- InvenTree/locale/es/LC_MESSAGES/django.po | 111 +- InvenTree/locale/es_MX/LC_MESSAGES/django.po | 2474 +++++++++-------- InvenTree/locale/fa/LC_MESSAGES/django.po | 111 +- InvenTree/locale/fr/LC_MESSAGES/django.po | 125 +- InvenTree/locale/he/LC_MESSAGES/django.po | 111 +- InvenTree/locale/hu/LC_MESSAGES/django.po | 123 +- InvenTree/locale/id/LC_MESSAGES/django.po | 111 +- InvenTree/locale/it/LC_MESSAGES/django.po | 123 +- InvenTree/locale/ja/LC_MESSAGES/django.po | 111 +- InvenTree/locale/ko/LC_MESSAGES/django.po | 113 +- InvenTree/locale/nl/LC_MESSAGES/django.po | 113 +- InvenTree/locale/no/LC_MESSAGES/django.po | 115 +- InvenTree/locale/pl/LC_MESSAGES/django.po | 115 +- InvenTree/locale/pt/LC_MESSAGES/django.po | 125 +- InvenTree/locale/pt_br/LC_MESSAGES/django.po | 2474 +++++++++-------- InvenTree/locale/ru/LC_MESSAGES/django.po | 117 +- InvenTree/locale/sl/LC_MESSAGES/django.po | 111 +- InvenTree/locale/sv/LC_MESSAGES/django.po | 113 +- InvenTree/locale/th/LC_MESSAGES/django.po | 111 +- InvenTree/locale/tr/LC_MESSAGES/django.po | 115 +- InvenTree/locale/vi/LC_MESSAGES/django.po | 111 +- InvenTree/locale/zh/LC_MESSAGES/django.po | 115 +- .../locale/zh_Hans/LC_MESSAGES/django.po | 2381 ++++++++-------- 28 files changed, 6305 insertions(+), 6254 deletions(-) diff --git a/InvenTree/locale/cs/LC_MESSAGES/django.po b/InvenTree/locale/cs/LC_MESSAGES/django.po index ec020b537a..7e878a4673 100644 --- a/InvenTree/locale/cs/LC_MESSAGES/django.po +++ b/InvenTree/locale/cs/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-04-14 22:35+0000\n" -"PO-Revision-Date: 2023-04-15 18:23\n" +"POT-Creation-Date: 2023-04-17 14:13+0000\n" +"PO-Revision-Date: 2023-04-17 18:26\n" "Last-Translator: \n" "Language-Team: Czech\n" "Language: cs_CZ\n" @@ -41,7 +41,7 @@ msgstr "Zadejte datum" #: order/templates/order/so_sidebar.html:17 part/admin.py:41 #: part/models.py:2989 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/admin.py:121 stock/models.py:2126 stock/models.py:2234 +#: stock/admin.py:121 stock/models.py:2127 stock/models.py:2235 #: stock/serializers.py:317 stock/serializers.py:450 stock/serializers.py:531 #: stock/serializers.py:810 stock/serializers.py:909 stock/serializers.py:1041 #: stock/templates/stock/stock_sidebar.html:25 @@ -209,7 +209,7 @@ msgstr "Chybějící soubor" msgid "Missing external link" msgstr "Chybějící externí odkaz" -#: InvenTree/models.py:409 stock/models.py:2228 +#: InvenTree/models.py:409 stock/models.py:2229 #: templates/js/translated/attachment.js:109 #: templates/js/translated/attachment.js:296 msgid "Attachment" @@ -1833,23 +1833,24 @@ msgstr "" msgid "Completed Outputs" msgstr "" -#: common/files.py:62 -msgid "Unsupported file format: {ext.upper()}" +#: common/files.py:63 +#, python-brace-format +msgid "Unsupported file format: {fmt}" msgstr "" -#: common/files.py:64 +#: common/files.py:65 msgid "Error reading file (invalid encoding)" msgstr "" -#: common/files.py:69 +#: common/files.py:70 msgid "Error reading file (invalid format)" msgstr "" -#: common/files.py:71 +#: common/files.py:72 msgid "Error reading file (incorrect dimension)" msgstr "" -#: common/files.py:73 +#: common/files.py:74 msgid "Error reading file (data could be corrupted)" msgstr "" @@ -3481,7 +3482,7 @@ msgstr "Název parametru" #: company/models.py:394 #: report/templates/report/inventree_test_report_base.html:104 -#: stock/models.py:2221 templates/js/translated/company.js:857 +#: stock/models.py:2222 templates/js/translated/company.js:857 #: templates/js/translated/company.js:1062 templates/js/translated/part.js:1268 #: templates/js/translated/stock.js:1425 msgid "Value" @@ -3902,8 +3903,8 @@ msgstr "" #: company/templates/company/manufacturer_part.html:183 #: part/templates/part/detail.html:393 part/templates/part/detail.html:423 #: templates/js/translated/forms.js:499 templates/js/translated/helpers.js:58 -#: templates/js/translated/part.js:313 templates/js/translated/stock.js:186 -#: users/models.py:243 +#: templates/js/translated/part.js:313 templates/js/translated/pricing.js:611 +#: templates/js/translated/stock.js:186 users/models.py:243 msgid "Delete" msgstr "Odstranit" @@ -6191,8 +6192,7 @@ msgid "You do not have permission to edit the BOM." msgstr "" #: part/templates/part/bom.html:15 -#, python-format -msgid "The BOM for %(part)s has changed, and must be validated.
" +msgid "The BOM this part has been changed, and must be validated" msgstr "" #: part/templates/part/bom.html:17 @@ -6852,8 +6852,7 @@ msgid "Create new part variant" msgstr "" #: part/templates/part/variant_part.html:10 -#, python-format -msgid "Create a new variant of template '%(full_name)s'." +msgid "Create a new variant part from this template" msgstr "" #: part/templatetags/inventree_extras.py:187 @@ -7038,18 +7037,19 @@ msgstr "" msgid "No date found" msgstr "" -#: plugin/registry.py:450 -msgid "Plugin `{plg_name}` is not compatible with the current InvenTree version {version.inventreeVersion()}!" -msgstr "" - #: plugin/registry.py:452 #, python-brace-format -msgid "Plugin requires at least version {plg_i.MIN_VERSION}" +msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "" #: plugin/registry.py:454 #, python-brace-format -msgid "Plugin requires at most version {plg_i.MAX_VERSION}" +msgid "Plugin requires at least version {v}" +msgstr "" + +#: plugin/registry.py:456 +#, python-brace-format +msgid "Plugin requires at most version {v}" msgstr "" #: plugin/samples/integration/sample.py:39 @@ -7276,12 +7276,12 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:102 -#: stock/models.py:2209 templates/js/translated/stock.js:1398 +#: stock/models.py:2210 templates/js/translated/stock.js:1398 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:103 -#: stock/models.py:2215 +#: stock/models.py:2216 msgid "Result" msgstr "" @@ -7568,84 +7568,83 @@ msgstr "" msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1386 -#, python-brace-format -msgid "Serial numbers already exist: {exists}" +#: stock/models.py:1386 stock/serializers.py:349 +msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1456 +#: stock/models.py:1457 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1459 +#: stock/models.py:1460 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1462 +#: stock/models.py:1463 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1465 +#: stock/models.py:1466 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1468 +#: stock/models.py:1469 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1471 +#: stock/models.py:1472 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1478 stock/serializers.py:946 +#: stock/models.py:1479 stock/serializers.py:946 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1482 +#: stock/models.py:1483 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1486 +#: stock/models.py:1487 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1490 +#: stock/models.py:1491 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1659 +#: stock/models.py:1660 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2127 +#: stock/models.py:2128 msgid "Entry notes" msgstr "" -#: stock/models.py:2185 +#: stock/models.py:2186 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2191 +#: stock/models.py:2192 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2210 +#: stock/models.py:2211 msgid "Test name" msgstr "" -#: stock/models.py:2216 +#: stock/models.py:2217 msgid "Test result" msgstr "" -#: stock/models.py:2222 +#: stock/models.py:2223 msgid "Test output value" msgstr "" -#: stock/models.py:2229 +#: stock/models.py:2230 msgid "Test result attachment" msgstr "" -#: stock/models.py:2235 +#: stock/models.py:2236 msgid "Test notes" msgstr "" @@ -7682,10 +7681,6 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:349 -msgid "Serial numbers already exist" -msgstr "" - #: stock/serializers.py:389 msgid "Select stock item to install" msgstr "" @@ -8694,8 +8689,8 @@ msgid "Change Password" msgstr "" #: templates/InvenTree/settings/user.html:23 -#: templates/js/translated/helpers.js:53 templates/notes_buttons.html:3 -#: templates/notes_buttons.html:4 +#: templates/js/translated/helpers.js:53 templates/js/translated/pricing.js:610 +#: templates/notes_buttons.html:3 templates/notes_buttons.html:4 msgid "Edit" msgstr "" @@ -10719,16 +10714,6 @@ msgstr "" msgid "No price break data available" msgstr "" -#: templates/js/translated/pricing.js:610 -#, python-brace-format -msgid "Edit ${human_name}" -msgstr "" - -#: templates/js/translated/pricing.js:611 -#, python-brace-format -msgid "Delete ${human_name}" -msgstr "" - #: templates/js/translated/pricing.js:737 msgid "No purchase history data available" msgstr "" diff --git a/InvenTree/locale/da/LC_MESSAGES/django.po b/InvenTree/locale/da/LC_MESSAGES/django.po index b5c9f005ee..3dfe475357 100644 --- a/InvenTree/locale/da/LC_MESSAGES/django.po +++ b/InvenTree/locale/da/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-04-14 22:35+0000\n" -"PO-Revision-Date: 2023-04-15 18:23\n" +"POT-Creation-Date: 2023-04-17 14:13+0000\n" +"PO-Revision-Date: 2023-04-17 18:26\n" "Last-Translator: \n" "Language-Team: Danish\n" "Language: da_DK\n" @@ -41,7 +41,7 @@ msgstr "Angiv dato" #: order/templates/order/so_sidebar.html:17 part/admin.py:41 #: part/models.py:2989 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/admin.py:121 stock/models.py:2126 stock/models.py:2234 +#: stock/admin.py:121 stock/models.py:2127 stock/models.py:2235 #: stock/serializers.py:317 stock/serializers.py:450 stock/serializers.py:531 #: stock/serializers.py:810 stock/serializers.py:909 stock/serializers.py:1041 #: stock/templates/stock/stock_sidebar.html:25 @@ -209,7 +209,7 @@ msgstr "Manglende fil" msgid "Missing external link" msgstr "Manglende eksternt link" -#: InvenTree/models.py:409 stock/models.py:2228 +#: InvenTree/models.py:409 stock/models.py:2229 #: templates/js/translated/attachment.js:109 #: templates/js/translated/attachment.js:296 msgid "Attachment" @@ -1833,23 +1833,24 @@ msgstr "" msgid "Completed Outputs" msgstr "" -#: common/files.py:62 -msgid "Unsupported file format: {ext.upper()}" +#: common/files.py:63 +#, python-brace-format +msgid "Unsupported file format: {fmt}" msgstr "" -#: common/files.py:64 +#: common/files.py:65 msgid "Error reading file (invalid encoding)" msgstr "" -#: common/files.py:69 +#: common/files.py:70 msgid "Error reading file (invalid format)" msgstr "" -#: common/files.py:71 +#: common/files.py:72 msgid "Error reading file (incorrect dimension)" msgstr "" -#: common/files.py:73 +#: common/files.py:74 msgid "Error reading file (data could be corrupted)" msgstr "" @@ -3481,7 +3482,7 @@ msgstr "" #: company/models.py:394 #: report/templates/report/inventree_test_report_base.html:104 -#: stock/models.py:2221 templates/js/translated/company.js:857 +#: stock/models.py:2222 templates/js/translated/company.js:857 #: templates/js/translated/company.js:1062 templates/js/translated/part.js:1268 #: templates/js/translated/stock.js:1425 msgid "Value" @@ -3902,8 +3903,8 @@ msgstr "" #: company/templates/company/manufacturer_part.html:183 #: part/templates/part/detail.html:393 part/templates/part/detail.html:423 #: templates/js/translated/forms.js:499 templates/js/translated/helpers.js:58 -#: templates/js/translated/part.js:313 templates/js/translated/stock.js:186 -#: users/models.py:243 +#: templates/js/translated/part.js:313 templates/js/translated/pricing.js:611 +#: templates/js/translated/stock.js:186 users/models.py:243 msgid "Delete" msgstr "" @@ -6191,8 +6192,7 @@ msgid "You do not have permission to edit the BOM." msgstr "" #: part/templates/part/bom.html:15 -#, python-format -msgid "The BOM for %(part)s has changed, and must be validated.
" +msgid "The BOM this part has been changed, and must be validated" msgstr "" #: part/templates/part/bom.html:17 @@ -6852,8 +6852,7 @@ msgid "Create new part variant" msgstr "" #: part/templates/part/variant_part.html:10 -#, python-format -msgid "Create a new variant of template '%(full_name)s'." +msgid "Create a new variant part from this template" msgstr "" #: part/templatetags/inventree_extras.py:187 @@ -7038,18 +7037,19 @@ msgstr "" msgid "No date found" msgstr "" -#: plugin/registry.py:450 -msgid "Plugin `{plg_name}` is not compatible with the current InvenTree version {version.inventreeVersion()}!" -msgstr "" - #: plugin/registry.py:452 #, python-brace-format -msgid "Plugin requires at least version {plg_i.MIN_VERSION}" +msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "" #: plugin/registry.py:454 #, python-brace-format -msgid "Plugin requires at most version {plg_i.MAX_VERSION}" +msgid "Plugin requires at least version {v}" +msgstr "" + +#: plugin/registry.py:456 +#, python-brace-format +msgid "Plugin requires at most version {v}" msgstr "" #: plugin/samples/integration/sample.py:39 @@ -7276,12 +7276,12 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:102 -#: stock/models.py:2209 templates/js/translated/stock.js:1398 +#: stock/models.py:2210 templates/js/translated/stock.js:1398 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:103 -#: stock/models.py:2215 +#: stock/models.py:2216 msgid "Result" msgstr "" @@ -7568,84 +7568,83 @@ msgstr "" msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1386 -#, python-brace-format -msgid "Serial numbers already exist: {exists}" +#: stock/models.py:1386 stock/serializers.py:349 +msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1456 +#: stock/models.py:1457 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1459 +#: stock/models.py:1460 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1462 +#: stock/models.py:1463 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1465 +#: stock/models.py:1466 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1468 +#: stock/models.py:1469 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1471 +#: stock/models.py:1472 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1478 stock/serializers.py:946 +#: stock/models.py:1479 stock/serializers.py:946 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1482 +#: stock/models.py:1483 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1486 +#: stock/models.py:1487 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1490 +#: stock/models.py:1491 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1659 +#: stock/models.py:1660 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2127 +#: stock/models.py:2128 msgid "Entry notes" msgstr "" -#: stock/models.py:2185 +#: stock/models.py:2186 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2191 +#: stock/models.py:2192 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2210 +#: stock/models.py:2211 msgid "Test name" msgstr "" -#: stock/models.py:2216 +#: stock/models.py:2217 msgid "Test result" msgstr "" -#: stock/models.py:2222 +#: stock/models.py:2223 msgid "Test output value" msgstr "" -#: stock/models.py:2229 +#: stock/models.py:2230 msgid "Test result attachment" msgstr "" -#: stock/models.py:2235 +#: stock/models.py:2236 msgid "Test notes" msgstr "" @@ -7682,10 +7681,6 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:349 -msgid "Serial numbers already exist" -msgstr "" - #: stock/serializers.py:389 msgid "Select stock item to install" msgstr "" @@ -8694,8 +8689,8 @@ msgid "Change Password" msgstr "" #: templates/InvenTree/settings/user.html:23 -#: templates/js/translated/helpers.js:53 templates/notes_buttons.html:3 -#: templates/notes_buttons.html:4 +#: templates/js/translated/helpers.js:53 templates/js/translated/pricing.js:610 +#: templates/notes_buttons.html:3 templates/notes_buttons.html:4 msgid "Edit" msgstr "" @@ -10719,16 +10714,6 @@ msgstr "" msgid "No price break data available" msgstr "" -#: templates/js/translated/pricing.js:610 -#, python-brace-format -msgid "Edit ${human_name}" -msgstr "" - -#: templates/js/translated/pricing.js:611 -#, python-brace-format -msgid "Delete ${human_name}" -msgstr "" - #: templates/js/translated/pricing.js:737 msgid "No purchase history data available" msgstr "" diff --git a/InvenTree/locale/de/LC_MESSAGES/django.po b/InvenTree/locale/de/LC_MESSAGES/django.po index 2441920516..ce287a8c03 100644 --- a/InvenTree/locale/de/LC_MESSAGES/django.po +++ b/InvenTree/locale/de/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-04-14 22:35+0000\n" -"PO-Revision-Date: 2023-04-15 18:23\n" +"POT-Creation-Date: 2023-04-17 14:13+0000\n" +"PO-Revision-Date: 2023-04-17 18:26\n" "Last-Translator: \n" "Language-Team: German\n" "Language: de_DE\n" @@ -41,7 +41,7 @@ msgstr "Datum eingeben" #: order/templates/order/so_sidebar.html:17 part/admin.py:41 #: part/models.py:2989 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/admin.py:121 stock/models.py:2126 stock/models.py:2234 +#: stock/admin.py:121 stock/models.py:2127 stock/models.py:2235 #: stock/serializers.py:317 stock/serializers.py:450 stock/serializers.py:531 #: stock/serializers.py:810 stock/serializers.py:909 stock/serializers.py:1041 #: stock/templates/stock/stock_sidebar.html:25 @@ -209,7 +209,7 @@ msgstr "Fehlende Datei" msgid "Missing external link" msgstr "Fehlender externer Link" -#: InvenTree/models.py:409 stock/models.py:2228 +#: InvenTree/models.py:409 stock/models.py:2229 #: templates/js/translated/attachment.js:109 #: templates/js/translated/attachment.js:296 msgid "Attachment" @@ -1833,23 +1833,24 @@ msgstr "Unfertige Endprodukte" msgid "Completed Outputs" msgstr "Fertiggestellte Endprodukte" -#: common/files.py:62 -msgid "Unsupported file format: {ext.upper()}" -msgstr "Dateiformat nicht unterstützt: {ext.upper()}" +#: common/files.py:63 +#, python-brace-format +msgid "Unsupported file format: {fmt}" +msgstr "" -#: common/files.py:64 +#: common/files.py:65 msgid "Error reading file (invalid encoding)" msgstr "Fehler beim Lesen der Datei (ungültige Kodierung)" -#: common/files.py:69 +#: common/files.py:70 msgid "Error reading file (invalid format)" msgstr "Fehler beim Lesen der Datei (ungültiges Format)" -#: common/files.py:71 +#: common/files.py:72 msgid "Error reading file (incorrect dimension)" msgstr "Fehler beim Lesen der Datei (falsche Größe)" -#: common/files.py:73 +#: common/files.py:74 msgid "Error reading file (data could be corrupted)" msgstr "Fehler beim Lesen der Datei (Daten könnten beschädigt sein)" @@ -3481,7 +3482,7 @@ msgstr "Parametername" #: company/models.py:394 #: report/templates/report/inventree_test_report_base.html:104 -#: stock/models.py:2221 templates/js/translated/company.js:857 +#: stock/models.py:2222 templates/js/translated/company.js:857 #: templates/js/translated/company.js:1062 templates/js/translated/part.js:1268 #: templates/js/translated/stock.js:1425 msgid "Value" @@ -3902,8 +3903,8 @@ msgstr "Zuliefererteil entfernen" #: company/templates/company/manufacturer_part.html:183 #: part/templates/part/detail.html:393 part/templates/part/detail.html:423 #: templates/js/translated/forms.js:499 templates/js/translated/helpers.js:58 -#: templates/js/translated/part.js:313 templates/js/translated/stock.js:186 -#: users/models.py:243 +#: templates/js/translated/part.js:313 templates/js/translated/pricing.js:611 +#: templates/js/translated/stock.js:186 users/models.py:243 msgid "Delete" msgstr "Löschen" @@ -6191,9 +6192,8 @@ msgid "You do not have permission to edit the BOM." msgstr "Sie haben keine Berechtigung zum Bearbeiten der Stückliste." #: part/templates/part/bom.html:15 -#, python-format -msgid "The BOM for %(part)s has changed, and must be validated.
" -msgstr "Die Stückliste für %(part)s hat sich geändert und muss kontrolliert werden.
" +msgid "The BOM this part has been changed, and must be validated" +msgstr "" #: part/templates/part/bom.html:17 #, python-format @@ -6852,9 +6852,8 @@ msgid "Create new part variant" msgstr "Neue Teilevariante anlegen" #: part/templates/part/variant_part.html:10 -#, python-format -msgid "Create a new variant of template '%(full_name)s'." -msgstr "Neue Variante von Vorlage anlegen '%(full_name)s'." +msgid "Create a new variant part from this template" +msgstr "" #: part/templatetags/inventree_extras.py:187 msgid "Unknown database" @@ -7038,19 +7037,20 @@ msgstr "Kein Autor gefunden" msgid "No date found" msgstr "Kein Datum gefunden" -#: plugin/registry.py:450 -msgid "Plugin `{plg_name}` is not compatible with the current InvenTree version {version.inventreeVersion()}!" -msgstr "Plugin `{plg_name}` ist nicht kompatibel mit der aktuellen InvenTree Version {version.inventreeVersion()}!" - #: plugin/registry.py:452 #, python-brace-format -msgid "Plugin requires at least version {plg_i.MIN_VERSION}" -msgstr "Plugin benötigt mindestens Version {plg_i.MIN_VERSION}" +msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" +msgstr "" #: plugin/registry.py:454 #, python-brace-format -msgid "Plugin requires at most version {plg_i.MAX_VERSION}" -msgstr "Plugin benötigt maximal Version {plg_i.MAX_VERSION}" +msgid "Plugin requires at least version {v}" +msgstr "" + +#: plugin/registry.py:456 +#, python-brace-format +msgid "Plugin requires at most version {v}" +msgstr "" #: plugin/samples/integration/sample.py:39 msgid "Enable PO" @@ -7276,12 +7276,12 @@ msgid "Test Results" msgstr "Testergebnisse" #: report/templates/report/inventree_test_report_base.html:102 -#: stock/models.py:2209 templates/js/translated/stock.js:1398 +#: stock/models.py:2210 templates/js/translated/stock.js:1398 msgid "Test" msgstr "Test" #: report/templates/report/inventree_test_report_base.html:103 -#: stock/models.py:2215 +#: stock/models.py:2216 msgid "Result" msgstr "Ergebnis" @@ -7568,84 +7568,83 @@ msgstr "Seriennummern muss eine Liste von Ganzzahlen sein" msgid "Quantity does not match serial numbers" msgstr "Anzahl stimmt nicht mit den Seriennummern überein" -#: stock/models.py:1386 -#, python-brace-format -msgid "Serial numbers already exist: {exists}" -msgstr "Seriennummern {exists} existieren bereits" +#: stock/models.py:1386 stock/serializers.py:349 +msgid "Serial numbers already exist" +msgstr "Seriennummern existieren bereits" -#: stock/models.py:1456 +#: stock/models.py:1457 msgid "Stock item has been assigned to a sales order" msgstr "Artikel wurde einem Kundenauftrag zugewiesen" -#: stock/models.py:1459 +#: stock/models.py:1460 msgid "Stock item is installed in another item" msgstr "Lagerartikel ist in anderem Element verbaut" -#: stock/models.py:1462 +#: stock/models.py:1463 msgid "Stock item contains other items" msgstr "Lagerartikel enthält andere Artikel" -#: stock/models.py:1465 +#: stock/models.py:1466 msgid "Stock item has been assigned to a customer" msgstr "Artikel wurde einem Kunden zugewiesen" -#: stock/models.py:1468 +#: stock/models.py:1469 msgid "Stock item is currently in production" msgstr "Lagerartikel wird aktuell produziert" -#: stock/models.py:1471 +#: stock/models.py:1472 msgid "Serialized stock cannot be merged" msgstr "Nachverfolgbare Lagerartikel können nicht zusammengeführt werden" -#: stock/models.py:1478 stock/serializers.py:946 +#: stock/models.py:1479 stock/serializers.py:946 msgid "Duplicate stock items" msgstr "Artikel duplizeren" -#: stock/models.py:1482 +#: stock/models.py:1483 msgid "Stock items must refer to the same part" msgstr "Lagerartikel müssen auf dasselbe Teil verweisen" -#: stock/models.py:1486 +#: stock/models.py:1487 msgid "Stock items must refer to the same supplier part" msgstr "Lagerartikel müssen auf dasselbe Lieferantenteil verweisen" -#: stock/models.py:1490 +#: stock/models.py:1491 msgid "Stock status codes must match" msgstr "Status-Codes müssen zusammenpassen" -#: stock/models.py:1659 +#: stock/models.py:1660 msgid "StockItem cannot be moved as it is not in stock" msgstr "Lagerartikel kann nicht bewegt werden, da kein Bestand vorhanden ist" -#: stock/models.py:2127 +#: stock/models.py:2128 msgid "Entry notes" msgstr "Eintrags-Notizen" -#: stock/models.py:2185 +#: stock/models.py:2186 msgid "Value must be provided for this test" msgstr "Wert muss für diesen Test angegeben werden" -#: stock/models.py:2191 +#: stock/models.py:2192 msgid "Attachment must be uploaded for this test" msgstr "Anhang muss für diesen Test hochgeladen werden" -#: stock/models.py:2210 +#: stock/models.py:2211 msgid "Test name" msgstr "Name des Tests" -#: stock/models.py:2216 +#: stock/models.py:2217 msgid "Test result" msgstr "Testergebnis" -#: stock/models.py:2222 +#: stock/models.py:2223 msgid "Test output value" msgstr "Test Ausgabe Wert" -#: stock/models.py:2229 +#: stock/models.py:2230 msgid "Test result attachment" msgstr "Test Ergebnis Anhang" -#: stock/models.py:2235 +#: stock/models.py:2236 msgid "Test notes" msgstr "Test Notizen" @@ -7682,10 +7681,6 @@ msgstr "Optionales Notizfeld" msgid "Serial numbers cannot be assigned to this part" msgstr "Seriennummern können diesem Teil nicht zugewiesen werden" -#: stock/serializers.py:349 -msgid "Serial numbers already exist" -msgstr "Seriennummern existieren bereits" - #: stock/serializers.py:389 msgid "Select stock item to install" msgstr "Lagerartikel für Installation auswählen" @@ -8694,8 +8689,8 @@ msgid "Change Password" msgstr "Passwort ändern" #: templates/InvenTree/settings/user.html:23 -#: templates/js/translated/helpers.js:53 templates/notes_buttons.html:3 -#: templates/notes_buttons.html:4 +#: templates/js/translated/helpers.js:53 templates/js/translated/pricing.js:610 +#: templates/notes_buttons.html:3 templates/notes_buttons.html:4 msgid "Edit" msgstr "Bearbeiten" @@ -10719,16 +10714,6 @@ msgstr "Keine Zulieferer-Preise verfügbar" msgid "No price break data available" msgstr "Keine Staffelpreisdaten verfügbar" -#: templates/js/translated/pricing.js:610 -#, python-brace-format -msgid "Edit ${human_name}" -msgstr "${human_name} bearbeiten" - -#: templates/js/translated/pricing.js:611 -#, python-brace-format -msgid "Delete ${human_name}" -msgstr "${human_name} löschen" - #: templates/js/translated/pricing.js:737 msgid "No purchase history data available" msgstr "Keine Einkaufshistorie verfügbar" diff --git a/InvenTree/locale/el/LC_MESSAGES/django.po b/InvenTree/locale/el/LC_MESSAGES/django.po index aa3e18cb43..aa5a0d69e6 100644 --- a/InvenTree/locale/el/LC_MESSAGES/django.po +++ b/InvenTree/locale/el/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-04-14 22:35+0000\n" -"PO-Revision-Date: 2023-04-15 18:23\n" +"POT-Creation-Date: 2023-04-17 14:13+0000\n" +"PO-Revision-Date: 2023-04-17 18:26\n" "Last-Translator: \n" "Language-Team: Greek\n" "Language: el_GR\n" @@ -41,7 +41,7 @@ msgstr "Εισάγετε ημερομηνία" #: order/templates/order/so_sidebar.html:17 part/admin.py:41 #: part/models.py:2989 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/admin.py:121 stock/models.py:2126 stock/models.py:2234 +#: stock/admin.py:121 stock/models.py:2127 stock/models.py:2235 #: stock/serializers.py:317 stock/serializers.py:450 stock/serializers.py:531 #: stock/serializers.py:810 stock/serializers.py:909 stock/serializers.py:1041 #: stock/templates/stock/stock_sidebar.html:25 @@ -209,7 +209,7 @@ msgstr "Το αρχείο λείπει" msgid "Missing external link" msgstr "Λείπει ο εξωτερικός σύνδεσμος" -#: InvenTree/models.py:409 stock/models.py:2228 +#: InvenTree/models.py:409 stock/models.py:2229 #: templates/js/translated/attachment.js:109 #: templates/js/translated/attachment.js:296 msgid "Attachment" @@ -1833,23 +1833,24 @@ msgstr "" msgid "Completed Outputs" msgstr "" -#: common/files.py:62 -msgid "Unsupported file format: {ext.upper()}" +#: common/files.py:63 +#, python-brace-format +msgid "Unsupported file format: {fmt}" msgstr "" -#: common/files.py:64 +#: common/files.py:65 msgid "Error reading file (invalid encoding)" msgstr "" -#: common/files.py:69 +#: common/files.py:70 msgid "Error reading file (invalid format)" msgstr "" -#: common/files.py:71 +#: common/files.py:72 msgid "Error reading file (incorrect dimension)" msgstr "" -#: common/files.py:73 +#: common/files.py:74 msgid "Error reading file (data could be corrupted)" msgstr "" @@ -3481,7 +3482,7 @@ msgstr "" #: company/models.py:394 #: report/templates/report/inventree_test_report_base.html:104 -#: stock/models.py:2221 templates/js/translated/company.js:857 +#: stock/models.py:2222 templates/js/translated/company.js:857 #: templates/js/translated/company.js:1062 templates/js/translated/part.js:1268 #: templates/js/translated/stock.js:1425 msgid "Value" @@ -3902,8 +3903,8 @@ msgstr "" #: company/templates/company/manufacturer_part.html:183 #: part/templates/part/detail.html:393 part/templates/part/detail.html:423 #: templates/js/translated/forms.js:499 templates/js/translated/helpers.js:58 -#: templates/js/translated/part.js:313 templates/js/translated/stock.js:186 -#: users/models.py:243 +#: templates/js/translated/part.js:313 templates/js/translated/pricing.js:611 +#: templates/js/translated/stock.js:186 users/models.py:243 msgid "Delete" msgstr "" @@ -6191,8 +6192,7 @@ msgid "You do not have permission to edit the BOM." msgstr "" #: part/templates/part/bom.html:15 -#, python-format -msgid "The BOM for %(part)s has changed, and must be validated.
" +msgid "The BOM this part has been changed, and must be validated" msgstr "" #: part/templates/part/bom.html:17 @@ -6852,8 +6852,7 @@ msgid "Create new part variant" msgstr "" #: part/templates/part/variant_part.html:10 -#, python-format -msgid "Create a new variant of template '%(full_name)s'." +msgid "Create a new variant part from this template" msgstr "" #: part/templatetags/inventree_extras.py:187 @@ -7038,18 +7037,19 @@ msgstr "" msgid "No date found" msgstr "" -#: plugin/registry.py:450 -msgid "Plugin `{plg_name}` is not compatible with the current InvenTree version {version.inventreeVersion()}!" -msgstr "" - #: plugin/registry.py:452 #, python-brace-format -msgid "Plugin requires at least version {plg_i.MIN_VERSION}" +msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "" #: plugin/registry.py:454 #, python-brace-format -msgid "Plugin requires at most version {plg_i.MAX_VERSION}" +msgid "Plugin requires at least version {v}" +msgstr "" + +#: plugin/registry.py:456 +#, python-brace-format +msgid "Plugin requires at most version {v}" msgstr "" #: plugin/samples/integration/sample.py:39 @@ -7276,12 +7276,12 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:102 -#: stock/models.py:2209 templates/js/translated/stock.js:1398 +#: stock/models.py:2210 templates/js/translated/stock.js:1398 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:103 -#: stock/models.py:2215 +#: stock/models.py:2216 msgid "Result" msgstr "" @@ -7568,84 +7568,83 @@ msgstr "" msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1386 -#, python-brace-format -msgid "Serial numbers already exist: {exists}" +#: stock/models.py:1386 stock/serializers.py:349 +msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1456 +#: stock/models.py:1457 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1459 +#: stock/models.py:1460 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1462 +#: stock/models.py:1463 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1465 +#: stock/models.py:1466 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1468 +#: stock/models.py:1469 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1471 +#: stock/models.py:1472 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1478 stock/serializers.py:946 +#: stock/models.py:1479 stock/serializers.py:946 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1482 +#: stock/models.py:1483 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1486 +#: stock/models.py:1487 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1490 +#: stock/models.py:1491 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1659 +#: stock/models.py:1660 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2127 +#: stock/models.py:2128 msgid "Entry notes" msgstr "" -#: stock/models.py:2185 +#: stock/models.py:2186 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2191 +#: stock/models.py:2192 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2210 +#: stock/models.py:2211 msgid "Test name" msgstr "" -#: stock/models.py:2216 +#: stock/models.py:2217 msgid "Test result" msgstr "" -#: stock/models.py:2222 +#: stock/models.py:2223 msgid "Test output value" msgstr "" -#: stock/models.py:2229 +#: stock/models.py:2230 msgid "Test result attachment" msgstr "" -#: stock/models.py:2235 +#: stock/models.py:2236 msgid "Test notes" msgstr "" @@ -7682,10 +7681,6 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:349 -msgid "Serial numbers already exist" -msgstr "" - #: stock/serializers.py:389 msgid "Select stock item to install" msgstr "" @@ -8694,8 +8689,8 @@ msgid "Change Password" msgstr "" #: templates/InvenTree/settings/user.html:23 -#: templates/js/translated/helpers.js:53 templates/notes_buttons.html:3 -#: templates/notes_buttons.html:4 +#: templates/js/translated/helpers.js:53 templates/js/translated/pricing.js:610 +#: templates/notes_buttons.html:3 templates/notes_buttons.html:4 msgid "Edit" msgstr "" @@ -10719,16 +10714,6 @@ msgstr "" msgid "No price break data available" msgstr "" -#: templates/js/translated/pricing.js:610 -#, python-brace-format -msgid "Edit ${human_name}" -msgstr "" - -#: templates/js/translated/pricing.js:611 -#, python-brace-format -msgid "Delete ${human_name}" -msgstr "" - #: templates/js/translated/pricing.js:737 msgid "No purchase history data available" msgstr "" diff --git a/InvenTree/locale/en/LC_MESSAGES/django.po b/InvenTree/locale/en/LC_MESSAGES/django.po index 3d85e8378e..1c59910bfa 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: 2023-03-29 08:09+0000\n" +"POT-Creation-Date: 2023-04-17 14:52+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -18,15 +18,15 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: InvenTree/api.py:63 +#: InvenTree/api.py:65 msgid "API endpoint not found" msgstr "" -#: InvenTree/api.py:308 +#: InvenTree/api.py:299 msgid "User does not have permission to view this model" msgstr "" -#: InvenTree/exceptions.py:79 +#: InvenTree/exceptions.py:94 msgid "Error details can be found in the admin panel" msgstr "" @@ -34,25 +34,25 @@ msgstr "" msgid "Enter date" msgstr "" -#: InvenTree/fields.py:204 build/serializers.py:389 +#: InvenTree/fields.py:204 build/serializers.py:392 #: build/templates/build/sidebar.html:21 company/models.py:554 -#: company/templates/company/sidebar.html:35 order/models.py:1029 +#: company/templates/company/sidebar.html:35 order/models.py:1058 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:41 #: part/models.py:2989 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/admin.py:121 stock/models.py:2100 stock/models.py:2208 +#: stock/admin.py:121 stock/models.py:2127 stock/models.py:2235 #: stock/serializers.py:317 stock/serializers.py:450 stock/serializers.py:531 #: stock/serializers.py:810 stock/serializers.py:909 stock/serializers.py:1041 #: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:130 templates/js/translated/bom.js:1220 -#: templates/js/translated/company.js:1272 templates/js/translated/order.js:319 +#: templates/js/translated/company.js:1272 templates/js/translated/order.js:322 #: templates/js/translated/part.js:997 -#: templates/js/translated/purchase_order.js:2038 -#: templates/js/translated/return_order.js:715 -#: templates/js/translated/sales_order.js:937 -#: templates/js/translated/sales_order.js:1843 +#: templates/js/translated/purchase_order.js:2105 +#: templates/js/translated/return_order.js:718 +#: templates/js/translated/sales_order.js:963 +#: templates/js/translated/sales_order.js:1871 #: templates/js/translated/stock.js:1439 templates/js/translated/stock.js:2134 msgid "Notes" msgstr "" @@ -138,7 +138,7 @@ msgstr "" msgid "Supplied URL is not a valid image file" msgstr "" -#: InvenTree/helpers.py:602 order/models.py:409 order/models.py:565 +#: InvenTree/helpers.py:602 order/models.py:410 order/models.py:571 msgid "Invalid quantity provided" msgstr "" @@ -210,7 +210,7 @@ msgstr "" msgid "Missing external link" msgstr "" -#: InvenTree/models.py:409 stock/models.py:2202 +#: InvenTree/models.py:409 stock/models.py:2229 #: templates/js/translated/attachment.js:109 #: templates/js/translated/attachment.js:296 msgid "Attachment" @@ -220,20 +220,24 @@ msgstr "" msgid "Select file to attach" msgstr "" -#: InvenTree/models.py:416 common/models.py:2607 company/models.py:129 -#: company/models.py:305 company/models.py:541 order/models.py:201 -#: order/models.py:1377 order/models.py:1856 part/admin.py:39 +#: InvenTree/models.py:416 common/models.py:2621 company/models.py:129 +#: company/models.py:305 company/models.py:541 order/models.py:202 +#: order/models.py:1062 order/models.py:1412 part/admin.py:39 #: part/models.py:892 part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 #: stock/admin.py:120 templates/js/translated/company.js:962 -#: templates/js/translated/company.js:1261 templates/js/translated/part.js:1932 -#: templates/js/translated/purchase_order.js:1878 -#: templates/js/translated/sales_order.js:926 +#: templates/js/translated/company.js:1261 templates/js/translated/order.js:326 +#: templates/js/translated/part.js:1932 +#: templates/js/translated/purchase_order.js:1945 +#: templates/js/translated/purchase_order.js:2109 +#: templates/js/translated/return_order.js:722 +#: templates/js/translated/sales_order.js:952 +#: templates/js/translated/sales_order.js:1876 msgid "Link" msgstr "" #: InvenTree/models.py:417 build/models.py:293 part/models.py:893 -#: stock/models.py:727 +#: stock/models.py:728 msgid "Link to external URL" msgstr "" @@ -246,9 +250,9 @@ msgstr "" msgid "File comment" msgstr "" -#: InvenTree/models.py:426 InvenTree/models.py:427 common/models.py:2056 -#: common/models.py:2057 common/models.py:2280 common/models.py:2281 -#: common/models.py:2537 common/models.py:2538 part/models.py:2997 +#: InvenTree/models.py:426 InvenTree/models.py:427 common/models.py:2070 +#: common/models.py:2071 common/models.py:2294 common/models.py:2295 +#: common/models.py:2551 common/models.py:2552 part/models.py:2997 #: part/models.py:3085 part/models.py:3164 part/models.py:3184 #: plugin/models.py:270 plugin/models.py:271 #: report/templates/report/inventree_test_report_base.html:105 @@ -293,7 +297,7 @@ msgstr "" msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:571 InvenTree/models.py:572 common/models.py:2266 +#: InvenTree/models.py:571 InvenTree/models.py:572 common/models.py:2280 #: company/models.py:387 label/models.py:102 part/models.py:838 #: part/models.py:3332 plugin/models.py:94 report/models.py:158 #: templates/InvenTree/settings/mixins/urls.html:13 @@ -316,7 +320,7 @@ msgstr "" #: company/models.py:547 company/templates/company/company_base.html:72 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:108 label/models.py:109 -#: order/models.py:199 part/admin.py:194 part/admin.py:276 part/models.py:860 +#: order/models.py:200 part/admin.py:194 part/admin.py:276 part/models.py:860 #: part/models.py:3341 part/templates/part/category.html:81 #: part/templates/part/part_base.html:172 #: part/templates/part/part_scheduling.html:12 report/models.py:171 @@ -332,11 +336,11 @@ msgstr "" #: templates/js/translated/company.js:1236 templates/js/translated/part.js:1155 #: templates/js/translated/part.js:1597 templates/js/translated/part.js:1869 #: templates/js/translated/part.js:2348 templates/js/translated/part.js:2439 -#: templates/js/translated/purchase_order.js:1548 -#: templates/js/translated/purchase_order.js:1682 -#: templates/js/translated/purchase_order.js:1860 +#: templates/js/translated/purchase_order.js:1615 +#: templates/js/translated/purchase_order.js:1749 +#: templates/js/translated/purchase_order.js:1927 #: templates/js/translated/return_order.js:272 -#: templates/js/translated/sales_order.js:714 +#: templates/js/translated/sales_order.js:740 #: templates/js/translated/stock.js:1418 templates/js/translated/stock.js:1791 #: templates/js/translated/stock.js:2551 templates/js/translated/stock.js:2623 msgid "Description" @@ -363,7 +367,7 @@ msgstr "" msgid "Third party barcode data" msgstr "" -#: InvenTree/models.py:702 order/serializers.py:503 +#: InvenTree/models.py:702 msgid "Barcode Hash" msgstr "" @@ -375,11 +379,11 @@ msgstr "" msgid "Existing barcode found" msgstr "" -#: InvenTree/models.py:801 +#: InvenTree/models.py:802 msgid "Server Error" msgstr "" -#: InvenTree/models.py:802 +#: InvenTree/models.py:803 msgid "An error has been logged by the server." msgstr "" @@ -460,107 +464,107 @@ msgstr "" msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/settings.py:705 +#: InvenTree/settings.py:708 msgid "Czech" msgstr "" -#: InvenTree/settings.py:706 +#: InvenTree/settings.py:709 msgid "Danish" msgstr "" -#: InvenTree/settings.py:707 +#: InvenTree/settings.py:710 msgid "German" msgstr "" -#: InvenTree/settings.py:708 +#: InvenTree/settings.py:711 msgid "Greek" msgstr "" -#: InvenTree/settings.py:709 +#: InvenTree/settings.py:712 msgid "English" msgstr "" -#: InvenTree/settings.py:710 +#: InvenTree/settings.py:713 msgid "Spanish" msgstr "" -#: InvenTree/settings.py:711 +#: InvenTree/settings.py:714 msgid "Spanish (Mexican)" msgstr "" -#: InvenTree/settings.py:712 +#: InvenTree/settings.py:715 msgid "Farsi / Persian" msgstr "" -#: InvenTree/settings.py:713 +#: InvenTree/settings.py:716 msgid "French" msgstr "" -#: InvenTree/settings.py:714 +#: InvenTree/settings.py:717 msgid "Hebrew" msgstr "" -#: InvenTree/settings.py:715 +#: InvenTree/settings.py:718 msgid "Hungarian" msgstr "" -#: InvenTree/settings.py:716 +#: InvenTree/settings.py:719 msgid "Italian" msgstr "" -#: InvenTree/settings.py:717 +#: InvenTree/settings.py:720 msgid "Japanese" msgstr "" -#: InvenTree/settings.py:718 +#: InvenTree/settings.py:721 msgid "Korean" msgstr "" -#: InvenTree/settings.py:719 +#: InvenTree/settings.py:722 msgid "Dutch" msgstr "" -#: InvenTree/settings.py:720 +#: InvenTree/settings.py:723 msgid "Norwegian" msgstr "" -#: InvenTree/settings.py:721 +#: InvenTree/settings.py:724 msgid "Polish" msgstr "" -#: InvenTree/settings.py:722 +#: InvenTree/settings.py:725 msgid "Portuguese" msgstr "" -#: InvenTree/settings.py:723 +#: InvenTree/settings.py:726 msgid "Portuguese (Brazilian)" msgstr "" -#: InvenTree/settings.py:724 +#: InvenTree/settings.py:727 msgid "Russian" msgstr "" -#: InvenTree/settings.py:725 +#: InvenTree/settings.py:728 msgid "Slovenian" msgstr "" -#: InvenTree/settings.py:726 +#: InvenTree/settings.py:729 msgid "Swedish" msgstr "" -#: InvenTree/settings.py:727 +#: InvenTree/settings.py:730 msgid "Thai" msgstr "" -#: InvenTree/settings.py:728 +#: InvenTree/settings.py:731 msgid "Turkish" msgstr "" -#: InvenTree/settings.py:729 +#: InvenTree/settings.py:732 msgid "Vietnamese" msgstr "" -#: InvenTree/settings.py:730 +#: InvenTree/settings.py:733 msgid "Chinese" msgstr "" @@ -576,188 +580,189 @@ msgstr "" msgid "InvenTree system health checks failed" msgstr "" -#: InvenTree/status_codes.py:99 InvenTree/status_codes.py:140 -#: InvenTree/status_codes.py:313 InvenTree/status_codes.py:350 -#: InvenTree/status_codes.py:385 templates/js/translated/table_filters.js:417 +#: InvenTree/status_codes.py:139 InvenTree/status_codes.py:181 +#: InvenTree/status_codes.py:357 InvenTree/status_codes.py:394 +#: InvenTree/status_codes.py:429 templates/js/translated/table_filters.js:417 msgid "Pending" msgstr "" -#: InvenTree/status_codes.py:100 +#: InvenTree/status_codes.py:140 msgid "Placed" msgstr "" -#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:316 -#: InvenTree/status_codes.py:352 order/templates/order/order_base.html:142 -#: order/templates/order/sales_order_base.html:133 +#: InvenTree/status_codes.py:141 InvenTree/status_codes.py:360 +#: InvenTree/status_codes.py:396 order/templates/order/order_base.html:161 +#: order/templates/order/sales_order_base.html:161 msgid "Complete" msgstr "" -#: InvenTree/status_codes.py:102 InvenTree/status_codes.py:142 -#: InvenTree/status_codes.py:315 InvenTree/status_codes.py:353 +#: InvenTree/status_codes.py:142 InvenTree/status_codes.py:184 +#: InvenTree/status_codes.py:359 InvenTree/status_codes.py:397 msgid "Cancelled" msgstr "" -#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:143 -#: InvenTree/status_codes.py:183 +#: InvenTree/status_codes.py:143 InvenTree/status_codes.py:185 +#: InvenTree/status_codes.py:227 msgid "Lost" msgstr "" -#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144 -#: InvenTree/status_codes.py:186 +#: InvenTree/status_codes.py:144 InvenTree/status_codes.py:186 +#: InvenTree/status_codes.py:230 msgid "Returned" msgstr "" -#: InvenTree/status_codes.py:141 order/models.py:1260 -#: templates/js/translated/sales_order.js:1503 -#: templates/js/translated/sales_order.js:1818 -msgid "Shipped" -msgstr "" - -#: InvenTree/status_codes.py:179 -msgid "OK" -msgstr "" - -#: InvenTree/status_codes.py:180 -msgid "Attention needed" -msgstr "" - -#: InvenTree/status_codes.py:181 -msgid "Damaged" -msgstr "" - -#: InvenTree/status_codes.py:182 -msgid "Destroyed" -msgstr "" - -#: InvenTree/status_codes.py:184 -msgid "Rejected" -msgstr "" - -#: InvenTree/status_codes.py:185 -msgid "Quarantined" -msgstr "" - -#: InvenTree/status_codes.py:263 -msgid "Legacy stock tracking entry" -msgstr "" - -#: InvenTree/status_codes.py:265 -msgid "Stock item created" -msgstr "" - -#: InvenTree/status_codes.py:267 -msgid "Edited stock item" -msgstr "" - -#: InvenTree/status_codes.py:268 -msgid "Assigned serial number" -msgstr "" - -#: InvenTree/status_codes.py:270 -msgid "Stock counted" -msgstr "" - -#: InvenTree/status_codes.py:271 -msgid "Stock manually added" -msgstr "" - -#: InvenTree/status_codes.py:272 -msgid "Stock manually removed" -msgstr "" - -#: InvenTree/status_codes.py:274 -msgid "Location changed" -msgstr "" - -#: InvenTree/status_codes.py:276 -msgid "Installed into assembly" -msgstr "" - -#: InvenTree/status_codes.py:277 -msgid "Removed from assembly" -msgstr "" - -#: InvenTree/status_codes.py:279 -msgid "Installed component item" -msgstr "" - -#: InvenTree/status_codes.py:280 -msgid "Removed component item" -msgstr "" - -#: InvenTree/status_codes.py:282 -msgid "Split from parent item" -msgstr "" - -#: InvenTree/status_codes.py:283 -msgid "Split child item" -msgstr "" - -#: InvenTree/status_codes.py:285 templates/js/translated/stock.js:2213 -msgid "Merged stock items" -msgstr "" - -#: InvenTree/status_codes.py:287 -msgid "Converted to variant" -msgstr "" - -#: InvenTree/status_codes.py:289 templates/js/translated/table_filters.js:273 -msgid "Sent to customer" -msgstr "" - -#: InvenTree/status_codes.py:290 -msgid "Returned from customer" -msgstr "" - -#: InvenTree/status_codes.py:292 -msgid "Build order output created" -msgstr "" - -#: InvenTree/status_codes.py:293 -msgid "Build order output completed" -msgstr "" - -#: InvenTree/status_codes.py:294 -msgid "Consumed by build order" -msgstr "" - -#: InvenTree/status_codes.py:296 -msgid "Shipped against Sales Order" -msgstr "" - -#: InvenTree/status_codes.py:298 -msgid "Received against Purchase Order" -msgstr "" - -#: InvenTree/status_codes.py:300 -msgid "Returned against Return Order" -msgstr "" - -#: InvenTree/status_codes.py:314 -msgid "Production" -msgstr "" - -#: InvenTree/status_codes.py:351 +#: InvenTree/status_codes.py:182 InvenTree/status_codes.py:395 msgid "In Progress" msgstr "" -#: InvenTree/status_codes.py:386 +#: InvenTree/status_codes.py:183 order/models.py:1295 +#: templates/js/translated/sales_order.js:1418 +#: templates/js/translated/sales_order.js:1542 +#: templates/js/translated/sales_order.js:1846 +msgid "Shipped" +msgstr "" + +#: InvenTree/status_codes.py:223 +msgid "OK" +msgstr "" + +#: InvenTree/status_codes.py:224 +msgid "Attention needed" +msgstr "" + +#: InvenTree/status_codes.py:225 +msgid "Damaged" +msgstr "" + +#: InvenTree/status_codes.py:226 +msgid "Destroyed" +msgstr "" + +#: InvenTree/status_codes.py:228 +msgid "Rejected" +msgstr "" + +#: InvenTree/status_codes.py:229 +msgid "Quarantined" +msgstr "" + +#: InvenTree/status_codes.py:307 +msgid "Legacy stock tracking entry" +msgstr "" + +#: InvenTree/status_codes.py:309 +msgid "Stock item created" +msgstr "" + +#: InvenTree/status_codes.py:311 +msgid "Edited stock item" +msgstr "" + +#: InvenTree/status_codes.py:312 +msgid "Assigned serial number" +msgstr "" + +#: InvenTree/status_codes.py:314 +msgid "Stock counted" +msgstr "" + +#: InvenTree/status_codes.py:315 +msgid "Stock manually added" +msgstr "" + +#: InvenTree/status_codes.py:316 +msgid "Stock manually removed" +msgstr "" + +#: InvenTree/status_codes.py:318 +msgid "Location changed" +msgstr "" + +#: InvenTree/status_codes.py:320 +msgid "Installed into assembly" +msgstr "" + +#: InvenTree/status_codes.py:321 +msgid "Removed from assembly" +msgstr "" + +#: InvenTree/status_codes.py:323 +msgid "Installed component item" +msgstr "" + +#: InvenTree/status_codes.py:324 +msgid "Removed component item" +msgstr "" + +#: InvenTree/status_codes.py:326 +msgid "Split from parent item" +msgstr "" + +#: InvenTree/status_codes.py:327 +msgid "Split child item" +msgstr "" + +#: InvenTree/status_codes.py:329 templates/js/translated/stock.js:2213 +msgid "Merged stock items" +msgstr "" + +#: InvenTree/status_codes.py:331 +msgid "Converted to variant" +msgstr "" + +#: InvenTree/status_codes.py:333 templates/js/translated/table_filters.js:273 +msgid "Sent to customer" +msgstr "" + +#: InvenTree/status_codes.py:334 +msgid "Returned from customer" +msgstr "" + +#: InvenTree/status_codes.py:336 +msgid "Build order output created" +msgstr "" + +#: InvenTree/status_codes.py:337 +msgid "Build order output completed" +msgstr "" + +#: InvenTree/status_codes.py:338 +msgid "Consumed by build order" +msgstr "" + +#: InvenTree/status_codes.py:340 +msgid "Shipped against Sales Order" +msgstr "" + +#: InvenTree/status_codes.py:342 +msgid "Received against Purchase Order" +msgstr "" + +#: InvenTree/status_codes.py:344 +msgid "Returned against Return Order" +msgstr "" + +#: InvenTree/status_codes.py:358 +msgid "Production" +msgstr "" + +#: InvenTree/status_codes.py:430 msgid "Return" msgstr "" -#: InvenTree/status_codes.py:387 +#: InvenTree/status_codes.py:431 msgid "Repair" msgstr "" -#: InvenTree/status_codes.py:388 +#: InvenTree/status_codes.py:432 msgid "Refund" msgstr "" -#: InvenTree/status_codes.py:389 +#: InvenTree/status_codes.py:433 msgid "Replace" msgstr "" -#: InvenTree/status_codes.py:390 +#: InvenTree/status_codes.py:434 msgid "Reject" msgstr "" @@ -801,7 +806,7 @@ msgstr "" msgid "About InvenTree" msgstr "" -#: build/api.py:245 +#: build/api.py:221 msgid "Build must be cancelled before it can be deleted" msgstr "" @@ -821,7 +826,7 @@ msgstr "" #: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221 #: templates/InvenTree/search.html:141 #: templates/InvenTree/settings/sidebar.html:49 -#: templates/js/translated/search.js:214 users/models.py:42 +#: templates/js/translated/search.js:216 users/models.py:42 msgid "Build Orders" msgstr "" @@ -833,27 +838,27 @@ msgstr "" msgid "Build Order Reference" msgstr "" -#: build/models.py:158 order/models.py:326 order/models.py:722 -#: order/models.py:1027 order/models.py:1638 part/admin.py:278 +#: build/models.py:158 order/models.py:327 order/models.py:734 +#: order/models.py:1056 order/models.py:1673 part/admin.py:278 #: part/models.py:3602 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_po_report_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:26 #: report/templates/report/inventree_so_report_base.html:28 #: templates/js/translated/bom.js:739 templates/js/translated/bom.js:913 -#: templates/js/translated/build.js:1847 templates/js/translated/order.js:269 +#: templates/js/translated/build.js:1847 templates/js/translated/order.js:272 #: templates/js/translated/pricing.js:368 -#: templates/js/translated/purchase_order.js:1903 -#: templates/js/translated/return_order.js:668 -#: templates/js/translated/sales_order.js:1682 +#: templates/js/translated/purchase_order.js:1970 +#: templates/js/translated/return_order.js:671 +#: templates/js/translated/sales_order.js:1710 msgid "Reference" msgstr "" #: build/models.py:169 -msgid "Brief description of the build" +msgid "Brief description of the build (optional)" msgstr "" -#: build/models.py:177 build/templates/build/build_base.html:172 +#: build/models.py:177 build/templates/build/build_base.html:189 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "" @@ -862,9 +867,9 @@ msgstr "" msgid "BuildOrder to which this build is allocated" msgstr "" -#: build/models.py:183 build/templates/build/build_base.html:80 +#: build/models.py:183 build/templates/build/build_base.html:98 #: build/templates/build/detail.html:29 company/models.py:720 -#: order/models.py:1123 order/models.py:1239 order/models.py:1240 +#: order/models.py:1158 order/models.py:1274 order/models.py:1275 #: part/models.py:382 part/models.py:2849 part/models.py:2963 #: part/models.py:3103 part/models.py:3122 part/models.py:3141 #: part/models.py:3162 part/models.py:3254 part/models.py:3375 @@ -885,7 +890,7 @@ msgstr "" #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 #: templates/email/overdue_build_order.html:16 -#: templates/js/translated/barcode.js:502 templates/js/translated/bom.js:601 +#: templates/js/translated/barcode.js:516 templates/js/translated/bom.js:601 #: templates/js/translated/bom.js:738 templates/js/translated/bom.js:857 #: templates/js/translated/build.js:1230 templates/js/translated/build.js:1714 #: templates/js/translated/build.js:2213 templates/js/translated/build.js:2615 @@ -895,16 +900,16 @@ msgstr "" #: templates/js/translated/company.js:1154 templates/js/translated/part.js:1582 #: templates/js/translated/part.js:1648 templates/js/translated/part.js:1838 #: templates/js/translated/pricing.js:351 -#: templates/js/translated/purchase_order.js:694 -#: templates/js/translated/purchase_order.js:1195 -#: templates/js/translated/purchase_order.js:1681 -#: templates/js/translated/purchase_order.js:1845 -#: templates/js/translated/return_order.js:482 -#: templates/js/translated/return_order.js:649 -#: templates/js/translated/sales_order.js:235 -#: templates/js/translated/sales_order.js:1068 -#: templates/js/translated/sales_order.js:1454 -#: templates/js/translated/sales_order.js:1666 +#: templates/js/translated/purchase_order.js:697 +#: templates/js/translated/purchase_order.js:1223 +#: templates/js/translated/purchase_order.js:1748 +#: templates/js/translated/purchase_order.js:1912 +#: templates/js/translated/return_order.js:485 +#: templates/js/translated/return_order.js:652 +#: templates/js/translated/sales_order.js:239 +#: templates/js/translated/sales_order.js:1094 +#: templates/js/translated/sales_order.js:1493 +#: templates/js/translated/sales_order.js:1694 #: templates/js/translated/stock.js:622 templates/js/translated/stock.js:788 #: templates/js/translated/stock.js:1000 templates/js/translated/stock.js:1747 #: templates/js/translated/stock.js:2649 templates/js/translated/stock.js:2873 @@ -924,9 +929,9 @@ msgstr "" msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:205 build/serializers.py:825 +#: build/models.py:205 build/serializers.py:828 #: templates/js/translated/build.js:2201 -#: templates/js/translated/sales_order.js:1056 +#: templates/js/translated/sales_order.js:1082 msgid "Source Location" msgstr "" @@ -966,19 +971,19 @@ msgstr "" msgid "Build status code" msgstr "" -#: build/models.py:248 build/serializers.py:226 order/serializers.py:481 -#: stock/models.py:731 templates/js/translated/purchase_order.js:1058 +#: build/models.py:248 build/serializers.py:229 order/serializers.py:487 +#: stock/models.py:732 templates/js/translated/purchase_order.js:1048 msgid "Batch Code" msgstr "" -#: build/models.py:252 build/serializers.py:227 +#: build/models.py:252 build/serializers.py:230 msgid "Batch code for this build output" msgstr "" -#: build/models.py:255 order/models.py:209 part/models.py:1028 -#: part/templates/part/part_base.html:319 +#: build/models.py:255 order/models.py:210 part/models.py:1028 +#: part/templates/part/part_base.html:312 #: templates/js/translated/return_order.js:285 -#: templates/js/translated/sales_order.js:727 +#: templates/js/translated/sales_order.js:753 msgid "Creation Date" msgstr "" @@ -990,7 +995,7 @@ msgstr "" msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:263 order/models.py:376 order/models.py:1681 +#: build/models.py:263 order/models.py:377 order/models.py:1716 #: templates/js/translated/build.js:2700 msgid "Completion Date" msgstr "" @@ -1007,15 +1012,15 @@ msgstr "" msgid "User who issued this build order" msgstr "" -#: build/models.py:286 build/templates/build/build_base.html:193 -#: build/templates/build/detail.html:122 order/models.py:223 -#: order/templates/order/order_base.html:194 -#: order/templates/order/return_order_base.html:162 -#: order/templates/order/sales_order_base.html:193 part/models.py:1032 -#: part/templates/part/part_base.html:399 +#: build/models.py:286 build/templates/build/build_base.html:210 +#: build/templates/build/detail.html:122 order/models.py:224 +#: order/templates/order/order_base.html:213 +#: order/templates/order/return_order_base.html:183 +#: order/templates/order/sales_order_base.html:221 part/models.py:1032 +#: part/templates/part/part_base.html:392 #: report/templates/report/inventree_build_order_base.html:158 #: templates/js/translated/build.js:2672 -#: templates/js/translated/purchase_order.js:1593 +#: templates/js/translated/purchase_order.js:1660 #: templates/js/translated/return_order.js:305 #: templates/js/translated/table_filters.js:391 msgid "Responsible" @@ -1027,9 +1032,9 @@ msgstr "" #: build/models.py:292 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 -#: company/templates/company/supplier_part.html:188 -#: part/templates/part/part_base.html:392 stock/models.py:725 -#: stock/templates/stock/item_base.html:206 +#: company/templates/company/supplier_part.html:182 +#: part/templates/part/part_base.html:385 stock/models.py:726 +#: stock/templates/stock/item_base.html:201 msgid "External Link" msgstr "" @@ -1075,11 +1080,11 @@ msgstr "" msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1209 order/models.py:1515 +#: build/models.py:1209 order/models.py:1550 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1215 order/models.py:1518 +#: build/models.py:1215 order/models.py:1553 msgid "Allocation quantity must be greater than zero" msgstr "" @@ -1091,7 +1096,7 @@ msgstr "" msgid "Selected stock item not found in BOM" msgstr "" -#: build/models.py:1347 stock/templates/stock/item_base.html:175 +#: build/models.py:1347 stock/templates/stock/item_base.html:170 #: templates/InvenTree/search.html:139 templates/js/translated/build.js:2588 #: templates/navbar.html:38 msgid "Build" @@ -1101,19 +1106,19 @@ msgstr "" msgid "Build to allocate parts" msgstr "" -#: build/models.py:1364 build/serializers.py:674 order/serializers.py:1013 -#: order/serializers.py:1034 stock/serializers.py:388 stock/serializers.py:741 +#: build/models.py:1364 build/serializers.py:677 order/serializers.py:1035 +#: order/serializers.py:1056 stock/serializers.py:388 stock/serializers.py:741 #: stock/serializers.py:867 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:200 +#: stock/templates/stock/item_base.html:195 #: templates/js/translated/build.js:801 templates/js/translated/build.js:806 #: templates/js/translated/build.js:2215 templates/js/translated/build.js:2785 -#: templates/js/translated/sales_order.js:236 -#: templates/js/translated/sales_order.js:1069 -#: templates/js/translated/sales_order.js:1367 -#: templates/js/translated/sales_order.js:1372 -#: templates/js/translated/sales_order.js:1461 -#: templates/js/translated/sales_order.js:1551 +#: templates/js/translated/sales_order.js:240 +#: templates/js/translated/sales_order.js:1095 +#: templates/js/translated/sales_order.js:1394 +#: templates/js/translated/sales_order.js:1399 +#: templates/js/translated/sales_order.js:1500 +#: templates/js/translated/sales_order.js:1590 #: templates/js/translated/stock.js:623 templates/js/translated/stock.js:789 #: templates/js/translated/stock.js:2756 msgid "Stock Item" @@ -1123,10 +1128,10 @@ msgstr "" msgid "Source stock item" msgstr "" -#: build/models.py:1377 build/serializers.py:194 -#: build/templates/build/build_base.html:85 -#: build/templates/build/detail.html:34 common/models.py:2088 -#: order/models.py:1013 order/models.py:1559 order/serializers.py:1187 +#: build/models.py:1377 build/serializers.py:197 +#: build/templates/build/build_base.html:103 +#: build/templates/build/detail.html:34 common/models.py:2102 +#: order/models.py:1042 order/models.py:1594 order/serializers.py:1209 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:277 #: part/forms.py:47 part/models.py:2976 part/models.py:3583 #: part/templates/part/part_pricing.html:16 @@ -1138,31 +1143,32 @@ msgstr "" #: report/templates/report/inventree_test_report_base.html:90 #: report/templates/report/inventree_test_report_base.html:170 #: stock/admin.py:103 stock/serializers.py:281 -#: stock/templates/stock/item_base.html:293 -#: stock/templates/stock/item_base.html:301 +#: stock/templates/stock/item_base.html:288 +#: stock/templates/stock/item_base.html:296 +#: stock/templates/stock/item_base.html:343 #: templates/email/build_order_completed.html:18 -#: templates/js/translated/barcode.js:504 templates/js/translated/bom.js:740 +#: templates/js/translated/barcode.js:518 templates/js/translated/bom.js:740 #: templates/js/translated/bom.js:921 templates/js/translated/build.js:477 #: templates/js/translated/build.js:638 templates/js/translated/build.js:828 #: templates/js/translated/build.js:1252 templates/js/translated/build.js:1740 #: templates/js/translated/build.js:2216 #: templates/js/translated/company.js:1406 #: templates/js/translated/model_renderers.js:201 -#: templates/js/translated/order.js:276 templates/js/translated/part.js:878 +#: templates/js/translated/order.js:279 templates/js/translated/part.js:878 #: templates/js/translated/part.js:1446 templates/js/translated/part.js:2876 #: templates/js/translated/pricing.js:363 #: templates/js/translated/pricing.js:456 #: templates/js/translated/pricing.js:504 #: templates/js/translated/pricing.js:598 -#: templates/js/translated/purchase_order.js:697 -#: templates/js/translated/purchase_order.js:1685 -#: templates/js/translated/purchase_order.js:1909 -#: templates/js/translated/sales_order.js:252 -#: templates/js/translated/sales_order.js:1070 -#: templates/js/translated/sales_order.js:1386 -#: templates/js/translated/sales_order.js:1467 -#: templates/js/translated/sales_order.js:1557 -#: templates/js/translated/sales_order.js:1688 +#: templates/js/translated/purchase_order.js:700 +#: templates/js/translated/purchase_order.js:1752 +#: templates/js/translated/purchase_order.js:1976 +#: templates/js/translated/sales_order.js:256 +#: templates/js/translated/sales_order.js:1096 +#: templates/js/translated/sales_order.js:1413 +#: templates/js/translated/sales_order.js:1506 +#: templates/js/translated/sales_order.js:1596 +#: templates/js/translated/sales_order.js:1716 #: templates/js/translated/stock.js:494 templates/js/translated/stock.js:648 #: templates/js/translated/stock.js:819 templates/js/translated/stock.js:2800 #: templates/js/translated/stock.js:2885 @@ -1181,255 +1187,256 @@ msgstr "" msgid "Destination stock item" msgstr "" -#: build/serializers.py:145 build/serializers.py:703 +#: build/serializers.py:148 build/serializers.py:706 #: templates/js/translated/build.js:1240 msgid "Build Output" msgstr "" -#: build/serializers.py:157 +#: build/serializers.py:160 msgid "Build output does not match the parent build" msgstr "" -#: build/serializers.py:161 +#: build/serializers.py:164 msgid "Output part does not match BuildOrder part" msgstr "" -#: build/serializers.py:165 +#: build/serializers.py:168 msgid "This build output has already been completed" msgstr "" -#: build/serializers.py:176 +#: build/serializers.py:179 msgid "This build output is not fully allocated" msgstr "" -#: build/serializers.py:195 +#: build/serializers.py:198 msgid "Enter quantity for build output" msgstr "" -#: build/serializers.py:209 build/serializers.py:694 order/models.py:407 -#: order/serializers.py:354 order/serializers.py:476 part/serializers.py:1088 -#: part/serializers.py:1409 stock/models.py:585 stock/models.py:1344 +#: build/serializers.py:212 build/serializers.py:697 order/models.py:408 +#: order/serializers.py:360 order/serializers.py:482 part/serializers.py:1088 +#: part/serializers.py:1409 stock/models.py:586 stock/models.py:1370 #: stock/serializers.py:290 msgid "Quantity must be greater than zero" msgstr "" -#: build/serializers.py:216 +#: build/serializers.py:219 msgid "Integer quantity required for trackable parts" msgstr "" -#: build/serializers.py:219 +#: build/serializers.py:222 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "" -#: build/serializers.py:233 order/serializers.py:489 order/serializers.py:1191 -#: stock/serializers.py:299 templates/js/translated/purchase_order.js:1069 +#: build/serializers.py:236 order/serializers.py:495 order/serializers.py:1213 +#: stock/serializers.py:299 templates/js/translated/purchase_order.js:1072 #: templates/js/translated/stock.js:301 templates/js/translated/stock.js:495 msgid "Serial Numbers" msgstr "" -#: build/serializers.py:234 +#: build/serializers.py:237 msgid "Enter serial numbers for build outputs" msgstr "" -#: build/serializers.py:247 +#: build/serializers.py:250 msgid "Auto Allocate Serial Numbers" msgstr "" -#: build/serializers.py:248 +#: build/serializers.py:251 msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:283 stock/api.py:647 +#: build/serializers.py:286 stock/api.py:630 msgid "The following serial numbers already exist or are invalid" msgstr "" -#: build/serializers.py:332 build/serializers.py:401 +#: build/serializers.py:335 build/serializers.py:404 msgid "A list of build outputs must be provided" msgstr "" -#: build/serializers.py:371 order/serializers.py:462 order/serializers.py:581 -#: order/serializers.py:1540 part/serializers.py:855 stock/serializers.py:310 +#: build/serializers.py:374 order/serializers.py:468 order/serializers.py:589 +#: order/serializers.py:1562 part/serializers.py:855 stock/serializers.py:310 #: stock/serializers.py:445 stock/serializers.py:526 stock/serializers.py:902 -#: stock/serializers.py:1144 stock/templates/stock/item_base.html:391 -#: templates/js/translated/barcode.js:503 -#: templates/js/translated/barcode.js:747 templates/js/translated/build.js:813 +#: stock/serializers.py:1144 stock/templates/stock/item_base.html:384 +#: templates/js/translated/barcode.js:517 +#: templates/js/translated/barcode.js:764 templates/js/translated/build.js:813 #: templates/js/translated/build.js:1755 -#: templates/js/translated/purchase_order.js:1096 -#: templates/js/translated/sales_order.js:1379 -#: templates/js/translated/sales_order.js:1478 -#: templates/js/translated/sales_order.js:1486 -#: templates/js/translated/sales_order.js:1565 +#: templates/js/translated/purchase_order.js:1097 +#: templates/js/translated/purchase_order.js:1187 +#: templates/js/translated/sales_order.js:1406 +#: templates/js/translated/sales_order.js:1517 +#: templates/js/translated/sales_order.js:1525 +#: templates/js/translated/sales_order.js:1604 #: templates/js/translated/stock.js:624 templates/js/translated/stock.js:790 #: templates/js/translated/stock.js:1002 templates/js/translated/stock.js:1911 #: templates/js/translated/stock.js:2663 msgid "Location" msgstr "" -#: build/serializers.py:372 +#: build/serializers.py:375 msgid "Location for completed build outputs" msgstr "" -#: build/serializers.py:378 build/templates/build/build_base.html:145 -#: build/templates/build/detail.html:62 order/models.py:748 -#: order/models.py:1664 order/serializers.py:499 stock/admin.py:106 -#: stock/templates/stock/item_base.html:424 -#: templates/js/translated/barcode.js:236 templates/js/translated/build.js:2644 -#: templates/js/translated/purchase_order.js:1200 -#: templates/js/translated/purchase_order.js:1552 +#: build/serializers.py:381 build/templates/build/build_base.html:157 +#: build/templates/build/detail.html:62 order/models.py:760 +#: order/models.py:1699 order/serializers.py:505 stock/admin.py:106 +#: stock/templates/stock/item_base.html:417 +#: templates/js/translated/barcode.js:239 templates/js/translated/build.js:2644 +#: templates/js/translated/purchase_order.js:1227 +#: templates/js/translated/purchase_order.js:1619 #: templates/js/translated/return_order.js:277 -#: templates/js/translated/sales_order.js:719 +#: templates/js/translated/sales_order.js:745 #: templates/js/translated/stock.js:1886 templates/js/translated/stock.js:2774 #: templates/js/translated/stock.js:2901 msgid "Status" msgstr "" -#: build/serializers.py:384 +#: build/serializers.py:387 msgid "Accept Incomplete Allocation" msgstr "" -#: build/serializers.py:385 +#: build/serializers.py:388 msgid "Complete outputs if stock has not been fully allocated" msgstr "" -#: build/serializers.py:454 +#: build/serializers.py:457 msgid "Remove Allocated Stock" msgstr "" -#: build/serializers.py:455 +#: build/serializers.py:458 msgid "Subtract any stock which has already been allocated to this build" msgstr "" -#: build/serializers.py:461 +#: build/serializers.py:464 msgid "Remove Incomplete Outputs" msgstr "" -#: build/serializers.py:462 +#: build/serializers.py:465 msgid "Delete any build outputs which have not been completed" msgstr "" -#: build/serializers.py:490 +#: build/serializers.py:493 msgid "Accept as consumed by this build order" msgstr "" -#: build/serializers.py:491 +#: build/serializers.py:494 msgid "Deallocate before completing this build order" msgstr "" -#: build/serializers.py:514 +#: build/serializers.py:517 msgid "Overallocated Stock" msgstr "" -#: build/serializers.py:516 +#: build/serializers.py:519 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "" -#: build/serializers.py:526 +#: build/serializers.py:529 msgid "Some stock items have been overallocated" msgstr "" -#: build/serializers.py:531 +#: build/serializers.py:534 msgid "Accept Unallocated" msgstr "" -#: build/serializers.py:532 +#: build/serializers.py:535 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "" -#: build/serializers.py:542 templates/js/translated/build.js:265 +#: build/serializers.py:545 templates/js/translated/build.js:265 msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:547 order/serializers.py:237 order/serializers.py:1081 +#: build/serializers.py:550 order/serializers.py:242 order/serializers.py:1103 msgid "Accept Incomplete" msgstr "" -#: build/serializers.py:548 +#: build/serializers.py:551 msgid "Accept that the required number of build outputs have not been completed" msgstr "" -#: build/serializers.py:558 templates/js/translated/build.js:269 +#: build/serializers.py:561 templates/js/translated/build.js:269 msgid "Required build quantity has not been completed" msgstr "" -#: build/serializers.py:567 templates/js/translated/build.js:253 +#: build/serializers.py:570 templates/js/translated/build.js:253 msgid "Build order has incomplete outputs" msgstr "" -#: build/serializers.py:597 build/serializers.py:651 part/models.py:3490 +#: build/serializers.py:600 build/serializers.py:654 part/models.py:3490 #: part/models.py:3873 msgid "BOM Item" msgstr "" -#: build/serializers.py:607 +#: build/serializers.py:610 msgid "Build output" msgstr "" -#: build/serializers.py:615 +#: build/serializers.py:618 msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:665 +#: build/serializers.py:668 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:680 stock/serializers.py:754 +#: build/serializers.py:683 stock/serializers.py:754 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:729 order/serializers.py:1071 +#: build/serializers.py:732 order/serializers.py:1093 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:735 +#: build/serializers.py:738 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:742 +#: build/serializers.py:745 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:747 +#: build/serializers.py:750 msgid "This stock item has already been allocated to this build output" msgstr "" -#: build/serializers.py:770 order/serializers.py:1355 +#: build/serializers.py:773 order/serializers.py:1377 msgid "Allocation items must be provided" msgstr "" -#: build/serializers.py:826 +#: build/serializers.py:829 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "" -#: build/serializers.py:834 +#: build/serializers.py:837 msgid "Exclude Location" msgstr "" -#: build/serializers.py:835 +#: build/serializers.py:838 msgid "Exclude stock items from this selected location" msgstr "" -#: build/serializers.py:840 +#: build/serializers.py:843 msgid "Interchangeable Stock" msgstr "" -#: build/serializers.py:841 +#: build/serializers.py:844 msgid "Stock items in multiple locations can be used interchangeably" msgstr "" -#: build/serializers.py:846 +#: build/serializers.py:849 msgid "Substitute Stock" msgstr "" -#: build/serializers.py:847 +#: build/serializers.py:850 msgid "Allow allocation of substitute parts" msgstr "" -#: build/serializers.py:852 +#: build/serializers.py:855 msgid "Optional Items" msgstr "" -#: build/serializers.py:853 +#: build/serializers.py:856 msgid "Allocate optional BOM items to build order" msgstr "" @@ -1447,101 +1454,141 @@ msgid "Build order {bo} is now overdue" msgstr "" #: build/templates/build/build_base.html:39 -#: order/templates/order/order_base.html:28 -#: order/templates/order/return_order_base.html:38 -#: order/templates/order/sales_order_base.html:38 -msgid "Print actions" +#: company/templates/company/supplier_part.html:36 +#: order/templates/order/order_base.html:29 +#: order/templates/order/return_order_base.html:39 +#: order/templates/order/sales_order_base.html:39 +#: part/templates/part/part_base.html:43 +#: stock/templates/stock/item_base.html:41 +#: stock/templates/stock/location.html:54 +msgid "Barcode actions" msgstr "" #: build/templates/build/build_base.html:43 +#: company/templates/company/supplier_part.html:40 +#: order/templates/order/order_base.html:33 +#: order/templates/order/return_order_base.html:43 +#: order/templates/order/sales_order_base.html:43 +#: part/templates/part/part_base.html:46 +#: stock/templates/stock/item_base.html:45 +#: stock/templates/stock/location.html:56 templates/qr_button.html:1 +msgid "Show QR Code" +msgstr "" + +#: build/templates/build/build_base.html:46 +#: company/templates/company/supplier_part.html:42 +#: order/templates/order/order_base.html:36 +#: order/templates/order/return_order_base.html:46 +#: order/templates/order/sales_order_base.html:46 +#: stock/templates/stock/item_base.html:48 +#: stock/templates/stock/location.html:58 +#: templates/js/translated/barcode.js:466 +#: templates/js/translated/barcode.js:471 +msgid "Unlink Barcode" +msgstr "" + +#: build/templates/build/build_base.html:48 +#: company/templates/company/supplier_part.html:44 +#: order/templates/order/order_base.html:38 +#: order/templates/order/return_order_base.html:48 +#: order/templates/order/sales_order_base.html:48 +#: part/templates/part/part_base.html:51 +#: stock/templates/stock/item_base.html:50 +#: stock/templates/stock/location.html:60 +msgid "Link Barcode" +msgstr "" + +#: build/templates/build/build_base.html:57 +#: order/templates/order/order_base.html:46 +#: order/templates/order/return_order_base.html:56 +#: order/templates/order/sales_order_base.html:56 +msgid "Print actions" +msgstr "" + +#: build/templates/build/build_base.html:61 msgid "Print build order report" msgstr "" -#: build/templates/build/build_base.html:50 +#: build/templates/build/build_base.html:68 msgid "Build actions" msgstr "" -#: build/templates/build/build_base.html:54 +#: build/templates/build/build_base.html:72 msgid "Edit Build" msgstr "" -#: build/templates/build/build_base.html:56 +#: build/templates/build/build_base.html:74 msgid "Cancel Build" msgstr "" -#: build/templates/build/build_base.html:59 +#: build/templates/build/build_base.html:77 msgid "Duplicate Build" msgstr "" -#: build/templates/build/build_base.html:62 +#: build/templates/build/build_base.html:80 msgid "Delete Build" msgstr "" -#: build/templates/build/build_base.html:67 -#: build/templates/build/build_base.html:68 +#: build/templates/build/build_base.html:85 +#: build/templates/build/build_base.html:86 msgid "Complete Build" msgstr "" -#: build/templates/build/build_base.html:90 +#: build/templates/build/build_base.html:108 msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:98 +#: build/templates/build/build_base.html:117 msgid "No build outputs have been created for this build order" msgstr "" -#: build/templates/build/build_base.html:104 -#, python-format -msgid "This Build Order is allocated to Sales Order %(link)s" -msgstr "" - -#: build/templates/build/build_base.html:111 +#: build/templates/build/build_base.html:123 #, python-format msgid "This Build Order is a child of Build Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:118 +#: build/templates/build/build_base.html:130 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:123 +#: build/templates/build/build_base.html:135 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:128 +#: build/templates/build/build_base.html:140 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:133 +#: build/templates/build/build_base.html:145 msgid "Stock has not been fully allocated to this Build Order" msgstr "" -#: build/templates/build/build_base.html:154 -#: build/templates/build/detail.html:138 order/models.py:205 -#: order/models.py:1033 order/templates/order/order_base.html:170 -#: order/templates/order/return_order_base.html:145 -#: order/templates/order/sales_order_base.html:164 +#: build/templates/build/build_base.html:166 +#: build/templates/build/detail.html:138 order/models.py:206 +#: order/models.py:1068 order/templates/order/order_base.html:189 +#: order/templates/order/return_order_base.html:166 +#: order/templates/order/sales_order_base.html:192 #: report/templates/report/inventree_build_order_base.html:125 #: templates/js/translated/build.js:2692 templates/js/translated/part.js:1465 -#: templates/js/translated/purchase_order.js:1569 -#: templates/js/translated/purchase_order.js:1985 +#: templates/js/translated/purchase_order.js:1636 +#: templates/js/translated/purchase_order.js:2052 #: templates/js/translated/return_order.js:293 -#: templates/js/translated/return_order.js:690 -#: templates/js/translated/sales_order.js:735 -#: templates/js/translated/sales_order.js:1731 +#: templates/js/translated/return_order.js:693 +#: templates/js/translated/sales_order.js:761 +#: templates/js/translated/sales_order.js:1759 msgid "Target Date" msgstr "" -#: build/templates/build/build_base.html:159 +#: build/templates/build/build_base.html:171 #, python-format msgid "This build was due on %(target)s" msgstr "" -#: build/templates/build/build_base.html:159 -#: build/templates/build/build_base.html:211 -#: order/templates/order/order_base.html:106 -#: order/templates/order/return_order_base.html:98 -#: order/templates/order/sales_order_base.html:94 +#: build/templates/build/build_base.html:171 +#: build/templates/build/build_base.html:228 +#: order/templates/order/order_base.html:125 +#: order/templates/order/return_order_base.html:119 +#: order/templates/order/sales_order_base.html:122 #: templates/js/translated/table_filters.js:34 #: templates/js/translated/table_filters.js:384 #: templates/js/translated/table_filters.js:444 @@ -1549,43 +1596,51 @@ msgstr "" msgid "Overdue" msgstr "" -#: build/templates/build/build_base.html:166 +#: build/templates/build/build_base.html:183 #: build/templates/build/detail.html:67 build/templates/build/detail.html:149 -#: order/templates/order/sales_order_base.html:174 +#: order/templates/order/sales_order_base.html:202 #: templates/js/translated/table_filters.js:487 msgid "Completed" msgstr "" -#: build/templates/build/build_base.html:179 -#: build/templates/build/detail.html:101 order/api.py:1516 order/models.py:1232 -#: order/models.py:1331 order/models.py:1465 +#: build/templates/build/build_base.html:196 +#: build/templates/build/detail.html:101 order/api.py:1422 order/models.py:1267 +#: order/models.py:1366 order/models.py:1500 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:135 #: report/templates/report/inventree_so_report_base.html:14 -#: stock/templates/stock/item_base.html:371 +#: stock/templates/stock/item_base.html:364 #: templates/email/overdue_sales_order.html:15 #: templates/js/translated/pricing.js:894 -#: templates/js/translated/sales_order.js:681 +#: templates/js/translated/sales_order.js:707 #: templates/js/translated/stock.js:2703 msgid "Sales Order" msgstr "" -#: build/templates/build/build_base.html:186 +#: build/templates/build/build_base.html:203 #: build/templates/build/detail.html:115 #: report/templates/report/inventree_build_order_base.html:152 msgid "Issued By" msgstr "" -#: build/templates/build/build_base.html:200 +#: build/templates/build/build_base.html:217 #: build/templates/build/detail.html:94 templates/js/translated/build.js:2609 msgid "Priority" msgstr "" -#: build/templates/build/build_base.html:263 +#: build/templates/build/build_base.html:280 msgid "Delete Build Order" msgstr "" +#: build/templates/build/build_base.html:290 +msgid "Build Order QR Code" +msgstr "" + +#: build/templates/build/build_base.html:302 +msgid "Link Barcode to Build Order" +msgstr "" + #: build/templates/build/detail.html:15 msgid "Build Details" msgstr "" @@ -1598,9 +1653,8 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1150 -#: templates/js/translated/purchase_order.js:1201 -#: templates/js/translated/purchase_order.js:2027 +#: build/templates/build/detail.html:49 order/models.py:1185 +#: templates/js/translated/purchase_order.js:2094 msgid "Destination" msgstr "" @@ -1613,9 +1667,10 @@ msgid "Allocated Parts" msgstr "" #: build/templates/build/detail.html:80 stock/admin.py:105 -#: stock/templates/stock/item_base.html:168 +#: stock/templates/stock/item_base.html:163 #: templates/js/translated/build.js:1259 #: templates/js/translated/model_renderers.js:206 +#: templates/js/translated/purchase_order.js:1193 #: templates/js/translated/stock.js:1072 templates/js/translated/stock.js:1900 #: templates/js/translated/stock.js:2908 #: templates/js/translated/table_filters.js:211 @@ -1624,9 +1679,9 @@ msgid "Batch" msgstr "" #: build/templates/build/detail.html:133 -#: order/templates/order/order_base.html:157 -#: order/templates/order/return_order_base.html:132 -#: order/templates/order/sales_order_base.html:158 +#: order/templates/order/order_base.html:176 +#: order/templates/order/return_order_base.html:153 +#: order/templates/order/sales_order_base.html:186 #: templates/js/translated/build.js:2652 msgid "Created" msgstr "" @@ -1679,7 +1734,7 @@ msgstr "" #: company/templates/company/detail.html:38 #: company/templates/company/detail.html:86 #: part/templates/part/category.html:184 -#: templates/js/translated/purchase_order.js:737 +#: templates/js/translated/purchase_order.js:740 msgid "Order Parts" msgstr "" @@ -1779,23 +1834,24 @@ msgstr "" msgid "Completed Outputs" msgstr "" -#: common/files.py:62 -msgid "Unsupported file format: {ext.upper()}" +#: common/files.py:63 +#, python-brace-format +msgid "Unsupported file format: {fmt}" msgstr "" -#: common/files.py:64 +#: common/files.py:65 msgid "Error reading file (invalid encoding)" msgstr "" -#: common/files.py:69 +#: common/files.py:70 msgid "Error reading file (invalid format)" msgstr "" -#: common/files.py:71 +#: common/files.py:72 msgid "Error reading file (incorrect dimension)" msgstr "" -#: common/files.py:73 +#: common/files.py:74 msgid "Error reading file (data could be corrupted)" msgstr "" @@ -2680,7 +2736,7 @@ msgstr "" msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:1670 common/models.py:2049 +#: common/models.py:1670 common/models.py:2063 msgid "Settings key (must be unique - case insensitive" msgstr "" @@ -3001,89 +3057,105 @@ msgid "Number of results to show in each section of the search preview window" msgstr "" #: common/models.py:1983 -msgid "Show Quantity in Forms" +msgid "Regex Search" msgstr "" #: common/models.py:1984 -msgid "Display available part quantity in some forms" +msgid "Enable regular expressions in search queries" msgstr "" #: common/models.py:1990 -msgid "Escape Key Closes Forms" +msgid "Whole Word Search" msgstr "" #: common/models.py:1991 -msgid "Use the escape key to close modal forms" +msgid "Search queries return results for whole word matches" msgstr "" #: common/models.py:1997 -msgid "Fixed Navbar" +msgid "Show Quantity in Forms" msgstr "" #: common/models.py:1998 -msgid "The navbar position is fixed to the top of the screen" +msgid "Display available part quantity in some forms" msgstr "" #: common/models.py:2004 -msgid "Date Format" +msgid "Escape Key Closes Forms" msgstr "" #: common/models.py:2005 +msgid "Use the escape key to close modal forms" +msgstr "" + +#: common/models.py:2011 +msgid "Fixed Navbar" +msgstr "" + +#: common/models.py:2012 +msgid "The navbar position is fixed to the top of the screen" +msgstr "" + +#: common/models.py:2018 +msgid "Date Format" +msgstr "" + +#: common/models.py:2019 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2019 part/templates/part/detail.html:41 +#: common/models.py:2033 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2020 +#: common/models.py:2034 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2026 part/templates/part/detail.html:62 +#: common/models.py:2040 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2027 +#: common/models.py:2041 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2033 +#: common/models.py:2047 msgid "Table String Length" msgstr "" -#: common/models.py:2034 +#: common/models.py:2048 msgid "Maximimum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2089 +#: common/models.py:2103 msgid "Price break quantity" msgstr "" -#: common/models.py:2096 company/serializers.py:424 order/models.py:1060 -#: order/models.py:1852 templates/js/translated/company.js:1411 +#: common/models.py:2110 company/serializers.py:424 order/models.py:1095 +#: order/models.py:1888 templates/js/translated/company.js:1411 #: templates/js/translated/part.js:1520 templates/js/translated/pricing.js:603 -#: templates/js/translated/return_order.js:680 +#: templates/js/translated/return_order.js:683 msgid "Price" msgstr "" -#: common/models.py:2097 +#: common/models.py:2111 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2257 common/models.py:2435 +#: common/models.py:2271 common/models.py:2449 msgid "Endpoint" msgstr "" -#: common/models.py:2258 +#: common/models.py:2272 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2267 +#: common/models.py:2281 msgid "Name for this webhook" msgstr "" -#: common/models.py:2272 part/admin.py:50 part/models.py:1011 +#: common/models.py:2286 part/admin.py:50 part/models.py:1011 #: plugin/models.py:100 templates/js/translated/table_filters.js:62 #: templates/js/translated/table_filters.js:144 #: templates/js/translated/table_filters.js:380 @@ -3091,97 +3163,97 @@ msgstr "" msgid "Active" msgstr "" -#: common/models.py:2273 +#: common/models.py:2287 msgid "Is this webhook active" msgstr "" -#: common/models.py:2287 +#: common/models.py:2301 msgid "Token" msgstr "" -#: common/models.py:2288 +#: common/models.py:2302 msgid "Token for access" msgstr "" -#: common/models.py:2295 +#: common/models.py:2309 msgid "Secret" msgstr "" -#: common/models.py:2296 +#: common/models.py:2310 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2402 +#: common/models.py:2416 msgid "Message ID" msgstr "" -#: common/models.py:2403 +#: common/models.py:2417 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2411 +#: common/models.py:2425 msgid "Host" msgstr "" -#: common/models.py:2412 +#: common/models.py:2426 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2419 +#: common/models.py:2433 msgid "Header" msgstr "" -#: common/models.py:2420 +#: common/models.py:2434 msgid "Header of this message" msgstr "" -#: common/models.py:2426 +#: common/models.py:2440 msgid "Body" msgstr "" -#: common/models.py:2427 +#: common/models.py:2441 msgid "Body of this message" msgstr "" -#: common/models.py:2436 +#: common/models.py:2450 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2441 +#: common/models.py:2455 msgid "Worked on" msgstr "" -#: common/models.py:2442 +#: common/models.py:2456 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2596 +#: common/models.py:2610 msgid "Id" msgstr "" -#: common/models.py:2602 templates/js/translated/news.js:35 +#: common/models.py:2616 templates/js/translated/news.js:35 msgid "Title" msgstr "" -#: common/models.py:2612 templates/js/translated/news.js:51 +#: common/models.py:2626 templates/js/translated/news.js:51 msgid "Published" msgstr "" -#: common/models.py:2617 templates/InvenTree/settings/plugin.html:62 +#: common/models.py:2631 templates/InvenTree/settings/plugin.html:62 #: templates/InvenTree/settings/plugin_settings.html:33 #: templates/js/translated/news.js:47 msgid "Author" msgstr "" -#: common/models.py:2622 templates/js/translated/news.js:43 +#: common/models.py:2636 templates/js/translated/news.js:43 msgid "Summary" msgstr "" -#: common/models.py:2627 +#: common/models.py:2641 msgid "Read" msgstr "" -#: common/models.py:2628 +#: common/models.py:2642 msgid "Was this news item read?" msgstr "" @@ -3293,9 +3365,9 @@ msgid "Contact email address" msgstr "" #: company/models.py:126 company/templates/company/company_base.html:140 -#: order/models.py:231 order/templates/order/order_base.html:187 -#: order/templates/order/return_order_base.html:155 -#: order/templates/order/sales_order_base.html:186 +#: order/models.py:232 order/templates/order/order_base.html:206 +#: order/templates/order/return_order_base.html:176 +#: order/templates/order/sales_order_base.html:214 msgid "Contact" msgstr "" @@ -3349,7 +3421,7 @@ msgstr "" msgid "Company" msgstr "" -#: company/models.py:277 company/models.py:512 stock/models.py:667 +#: company/models.py:277 company/models.py:512 stock/models.py:668 #: stock/serializers.py:143 stock/templates/stock/item_base.html:143 #: templates/js/translated/bom.js:591 msgid "Base Part" @@ -3361,8 +3433,8 @@ msgstr "" #: company/models.py:292 company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:152 part/serializers.py:359 -#: stock/templates/stock/item_base.html:213 +#: company/templates/company/supplier_part.html:146 part/serializers.py:359 +#: stock/templates/stock/item_base.html:208 #: templates/js/translated/company.js:484 #: templates/js/translated/company.js:809 #: templates/js/translated/company.js:939 @@ -3376,13 +3448,13 @@ msgid "Select manufacturer" msgstr "" #: company/models.py:299 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:160 part/serializers.py:365 +#: company/templates/company/supplier_part.html:154 part/serializers.py:365 #: templates/js/translated/company.js:325 #: templates/js/translated/company.js:808 #: templates/js/translated/company.js:955 #: templates/js/translated/company.js:1225 templates/js/translated/part.js:1435 -#: templates/js/translated/purchase_order.js:1684 -#: templates/js/translated/purchase_order.js:1891 +#: templates/js/translated/purchase_order.js:1751 +#: templates/js/translated/purchase_order.js:1958 msgid "MPN" msgstr "" @@ -3401,7 +3473,7 @@ msgstr "" #: company/models.py:357 company/models.py:381 company/models.py:535 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 -#: stock/templates/stock/item_base.html:223 +#: stock/templates/stock/item_base.html:218 msgid "Manufacturer Part" msgstr "" @@ -3411,7 +3483,7 @@ msgstr "" #: company/models.py:394 #: report/templates/report/inventree_test_report_base.html:104 -#: stock/models.py:2195 templates/js/translated/company.js:857 +#: stock/models.py:2222 templates/js/translated/company.js:857 #: templates/js/translated/company.js:1062 templates/js/translated/part.js:1268 #: templates/js/translated/stock.js:1425 msgid "Value" @@ -3422,7 +3494,7 @@ msgid "Parameter value" msgstr "" #: company/models.py:401 part/admin.py:40 part/models.py:978 -#: part/models.py:3337 part/templates/part/part_base.html:287 +#: part/models.py:3337 part/templates/part/part_base.html:286 #: templates/InvenTree/settings/settings_staff_js.html:255 #: templates/js/translated/company.js:1068 templates/js/translated/part.js:1274 msgid "Units" @@ -3437,15 +3509,15 @@ msgid "Linked manufacturer part must reference the same base part" msgstr "" #: company/models.py:522 company/templates/company/company_base.html:82 -#: company/templates/company/supplier_part.html:136 order/models.py:349 -#: order/templates/order/order_base.html:120 part/bom.py:285 part/bom.py:313 -#: part/serializers.py:348 stock/templates/stock/item_base.html:230 +#: company/templates/company/supplier_part.html:130 order/models.py:350 +#: order/templates/order/order_base.html:139 part/bom.py:285 part/bom.py:313 +#: part/serializers.py:348 stock/templates/stock/item_base.html:225 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:324 #: templates/js/translated/company.js:488 #: templates/js/translated/company.js:1179 templates/js/translated/part.js:1403 #: templates/js/translated/pricing.js:480 -#: templates/js/translated/purchase_order.js:1535 +#: templates/js/translated/purchase_order.js:1602 #: templates/js/translated/table_filters.js:510 msgid "Supplier" msgstr "" @@ -3454,12 +3526,12 @@ msgstr "" msgid "Select supplier" msgstr "" -#: company/models.py:528 company/templates/company/supplier_part.html:146 +#: company/models.py:528 company/templates/company/supplier_part.html:140 #: part/bom.py:286 part/bom.py:314 part/serializers.py:354 #: templates/js/translated/company.js:323 templates/js/translated/part.js:1421 #: templates/js/translated/pricing.js:492 -#: templates/js/translated/purchase_order.js:1683 -#: templates/js/translated/purchase_order.js:1866 +#: templates/js/translated/purchase_order.js:1750 +#: templates/js/translated/purchase_order.js:1933 msgid "SKU" msgstr "" @@ -3479,7 +3551,7 @@ msgstr "" msgid "Supplier part description" msgstr "" -#: company/models.py:553 company/templates/company/supplier_part.html:181 +#: company/models.py:553 company/templates/company/supplier_part.html:175 #: part/admin.py:279 part/models.py:3605 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_po_report_base.html:32 @@ -3497,9 +3569,9 @@ msgstr "" msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:559 company/templates/company/supplier_part.html:167 -#: stock/admin.py:119 stock/models.py:693 -#: stock/templates/stock/item_base.html:246 +#: company/models.py:559 company/templates/company/supplier_part.html:161 +#: stock/admin.py:119 stock/models.py:694 +#: stock/templates/stock/item_base.html:241 #: templates/js/translated/company.js:1241 #: templates/js/translated/stock.js:2130 msgid "Packaging" @@ -3510,14 +3582,14 @@ msgid "Part packaging" msgstr "" #: company/models.py:562 company/serializers.py:319 -#: company/templates/company/supplier_part.html:174 +#: company/templates/company/supplier_part.html:168 #: templates/js/translated/company.js:1246 templates/js/translated/part.js:1456 #: templates/js/translated/part.js:1512 #: templates/js/translated/purchase_order.js:250 -#: templates/js/translated/purchase_order.js:775 -#: templates/js/translated/purchase_order.js:1032 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:1939 +#: templates/js/translated/purchase_order.js:778 +#: templates/js/translated/purchase_order.js:1022 +#: templates/js/translated/purchase_order.js:1989 +#: templates/js/translated/purchase_order.js:2006 msgid "Pack Quantity" msgstr "" @@ -3603,15 +3675,15 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:87 order/models.py:736 -#: order/models.py:1652 order/templates/order/return_order_base.html:112 -#: order/templates/order/sales_order_base.html:116 stock/models.py:712 -#: stock/models.py:713 stock/serializers.py:796 -#: stock/templates/stock/item_base.html:402 +#: company/templates/company/company_base.html:87 order/models.py:748 +#: order/models.py:1687 order/templates/order/return_order_base.html:133 +#: order/templates/order/sales_order_base.html:144 stock/models.py:713 +#: stock/models.py:714 stock/serializers.py:796 +#: stock/templates/stock/item_base.html:395 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:480 #: templates/js/translated/return_order.js:254 -#: templates/js/translated/sales_order.js:696 +#: templates/js/translated/sales_order.js:722 #: templates/js/translated/stock.js:2738 #: templates/js/translated/table_filters.js:514 msgid "Customer" @@ -3626,7 +3698,7 @@ msgid "Phone" msgstr "" #: company/templates/company/company_base.html:206 -#: part/templates/part/part_base.html:536 +#: part/templates/part/part_base.html:529 msgid "Remove Image" msgstr "" @@ -3635,25 +3707,25 @@ msgid "Remove associated image from this company" msgstr "" #: company/templates/company/company_base.html:209 -#: part/templates/part/part_base.html:539 +#: part/templates/part/part_base.html:532 #: templates/InvenTree/settings/user.html:87 #: templates/InvenTree/settings/user.html:149 msgid "Remove" msgstr "" #: company/templates/company/company_base.html:238 -#: part/templates/part/part_base.html:568 +#: part/templates/part/part_base.html:561 msgid "Upload Image" msgstr "" #: company/templates/company/company_base.html:253 -#: part/templates/part/part_base.html:623 +#: part/templates/part/part_base.html:616 msgid "Download Image" msgstr "" #: company/templates/company/detail.html:15 #: company/templates/company/manufacturer_part_sidebar.html:7 -#: templates/InvenTree/search.html:120 templates/js/translated/search.js:175 +#: templates/InvenTree/search.html:120 templates/js/translated/search.js:177 msgid "Supplier Parts" msgstr "" @@ -3684,7 +3756,7 @@ msgid "Delete Parts" msgstr "" #: company/templates/company/detail.html:62 templates/InvenTree/search.html:105 -#: templates/js/translated/search.js:179 +#: templates/js/translated/search.js:181 msgid "Manufacturer Parts" msgstr "" @@ -3709,7 +3781,7 @@ msgstr "" #: part/templates/part/detail.html:108 part/templates/part/part_sidebar.html:35 #: templates/InvenTree/index.html:252 templates/InvenTree/search.html:200 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/search.js:233 templates/navbar.html:50 +#: templates/js/translated/search.js:235 templates/navbar.html:50 #: users/models.py:43 msgid "Purchase Orders" msgstr "" @@ -3732,7 +3804,7 @@ msgstr "" #: part/templates/part/detail.html:131 part/templates/part/part_sidebar.html:39 #: templates/InvenTree/index.html:283 templates/InvenTree/search.html:220 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/search.js:247 templates/navbar.html:62 +#: templates/js/translated/search.js:249 templates/navbar.html:62 #: users/models.py:44 msgid "Sales Orders" msgstr "" @@ -3758,7 +3830,7 @@ msgstr "" #: order/templates/order/return_orders.html:8 #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:55 -#: templates/js/translated/search.js:260 templates/navbar.html:65 +#: templates/js/translated/search.js:262 templates/navbar.html:65 #: users/models.py:45 msgid "Return Orders" msgstr "" @@ -3792,7 +3864,7 @@ msgid "Manufacturers" msgstr "" #: company/templates/company/manufacturer_part.html:35 -#: company/templates/company/supplier_part.html:221 +#: company/templates/company/supplier_part.html:215 #: part/templates/part/detail.html:111 part/templates/part/part_base.html:85 msgid "Order part" msgstr "" @@ -3832,8 +3904,8 @@ msgstr "" #: company/templates/company/manufacturer_part.html:183 #: part/templates/part/detail.html:393 part/templates/part/detail.html:423 #: templates/js/translated/forms.js:499 templates/js/translated/helpers.js:58 -#: templates/js/translated/part.js:313 templates/js/translated/stock.js:186 -#: users/models.py:243 +#: templates/js/translated/part.js:313 templates/js/translated/pricing.js:611 +#: templates/js/translated/stock.js:186 users/models.py:243 msgid "Delete" msgstr "" @@ -3881,50 +3953,21 @@ msgid "Contacts" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:676 -#: stock/templates/stock/item_base.html:239 +#: company/templates/company/supplier_part.html:24 stock/models.py:677 +#: stock/templates/stock/item_base.html:234 #: templates/js/translated/company.js:1195 -#: templates/js/translated/purchase_order.js:695 +#: templates/js/translated/purchase_order.js:698 #: templates/js/translated/stock.js:1990 msgid "Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:36 -#: part/templates/part/part_base.html:43 -#: stock/templates/stock/item_base.html:41 -#: stock/templates/stock/location.html:54 -msgid "Barcode actions" -msgstr "" - -#: company/templates/company/supplier_part.html:40 -#: part/templates/part/part_base.html:46 -#: stock/templates/stock/item_base.html:45 -#: stock/templates/stock/location.html:56 templates/qr_button.html:1 -msgid "Show QR Code" -msgstr "" - -#: company/templates/company/supplier_part.html:42 -#: stock/templates/stock/item_base.html:48 -#: stock/templates/stock/location.html:58 -#: templates/js/translated/barcode.js:453 -#: templates/js/translated/barcode.js:458 -msgid "Unlink Barcode" -msgstr "" - -#: company/templates/company/supplier_part.html:44 -#: part/templates/part/part_base.html:51 -#: stock/templates/stock/item_base.html:50 -#: stock/templates/stock/location.html:60 -msgid "Link Barcode" -msgstr "" - #: company/templates/company/supplier_part.html:51 msgid "Supplier part actions" msgstr "" #: company/templates/company/supplier_part.html:56 #: company/templates/company/supplier_part.html:57 -#: company/templates/company/supplier_part.html:222 +#: company/templates/company/supplier_part.html:216 #: part/templates/part/detail.html:112 msgid "Order Part" msgstr "" @@ -3954,67 +3997,60 @@ msgstr "" msgid "Delete Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:122 -#: part/templates/part/part_base.html:308 -#: stock/templates/stock/item_base.html:161 -#: stock/templates/stock/location.html:156 -msgid "Barcode Identifier" -msgstr "" - -#: company/templates/company/supplier_part.html:140 +#: company/templates/company/supplier_part.html:134 msgid "No supplier information available" msgstr "" -#: company/templates/company/supplier_part.html:200 +#: company/templates/company/supplier_part.html:194 msgid "Supplier Part Stock" msgstr "" -#: company/templates/company/supplier_part.html:203 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:203 +#: company/templates/company/supplier_part.html:197 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:197 msgid "Create new stock item" msgstr "" -#: company/templates/company/supplier_part.html:204 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:204 +#: company/templates/company/supplier_part.html:198 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:198 #: templates/js/translated/stock.js:471 msgid "New Stock Item" msgstr "" -#: company/templates/company/supplier_part.html:217 +#: company/templates/company/supplier_part.html:211 msgid "Supplier Part Orders" msgstr "" -#: company/templates/company/supplier_part.html:242 +#: company/templates/company/supplier_part.html:236 msgid "Pricing Information" msgstr "" -#: company/templates/company/supplier_part.html:247 +#: company/templates/company/supplier_part.html:241 #: templates/js/translated/company.js:373 #: templates/js/translated/pricing.js:666 msgid "Add Price Break" msgstr "" -#: company/templates/company/supplier_part.html:274 +#: company/templates/company/supplier_part.html:268 msgid "Supplier Part QR Code" msgstr "" -#: company/templates/company/supplier_part.html:285 +#: company/templates/company/supplier_part.html:279 msgid "Link Barcode to Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:360 +#: company/templates/company/supplier_part.html:354 msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 part/tasks.py:288 #: part/templates/part/category.html:199 #: part/templates/part/category_sidebar.html:17 stock/admin.py:47 -#: stock/templates/stock/location.html:174 -#: stock/templates/stock/location.html:188 -#: stock/templates/stock/location.html:200 +#: stock/templates/stock/location.html:168 +#: stock/templates/stock/location.html:182 +#: stock/templates/stock/location.html:194 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:977 -#: templates/js/translated/search.js:200 templates/js/translated/stock.js:2569 +#: templates/js/translated/search.js:202 templates/js/translated/stock.js:2569 #: users/models.py:41 msgid "Stock Items" msgstr "" @@ -4040,7 +4076,7 @@ msgstr "" msgid "New Customer" msgstr "" -#: company/views.py:52 templates/js/translated/search.js:220 +#: company/views.py:52 templates/js/translated/search.js:222 msgid "Companies" msgstr "" @@ -4114,365 +4150,365 @@ msgstr "" msgid "Part query filters (comma-separated value of key=value pairs)" msgstr "" -#: order/api.py:229 +#: order/api.py:225 msgid "No matching purchase order found" msgstr "" -#: order/api.py:1514 order/models.py:1106 order/models.py:1190 +#: order/api.py:1420 order/models.py:1141 order/models.py:1225 #: order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report_base.html:14 -#: stock/templates/stock/item_base.html:182 +#: stock/templates/stock/item_base.html:177 #: templates/email/overdue_purchase_order.html:15 #: templates/js/translated/part.js:1380 templates/js/translated/pricing.js:772 #: templates/js/translated/purchase_order.js:108 -#: templates/js/translated/purchase_order.js:696 -#: templates/js/translated/purchase_order.js:1519 +#: templates/js/translated/purchase_order.js:699 +#: templates/js/translated/purchase_order.js:1586 #: templates/js/translated/stock.js:1970 templates/js/translated/stock.js:2685 msgid "Purchase Order" msgstr "" -#: order/api.py:1518 +#: order/api.py:1424 msgid "Unknown" msgstr "" -#: order/models.py:66 report/templates/report/inventree_po_report_base.html:31 +#: order/models.py:67 report/templates/report/inventree_po_report_base.html:31 #: report/templates/report/inventree_so_report_base.html:31 -#: templates/js/translated/order.js:299 -#: templates/js/translated/purchase_order.js:1963 -#: templates/js/translated/sales_order.js:1711 +#: templates/js/translated/order.js:302 +#: templates/js/translated/purchase_order.js:2030 +#: templates/js/translated/sales_order.js:1739 msgid "Total Price" msgstr "" -#: order/models.py:67 +#: order/models.py:68 msgid "Total price for this order" msgstr "" -#: order/models.py:177 +#: order/models.py:178 msgid "Contact does not match selected company" msgstr "" -#: order/models.py:199 -msgid "Order description" +#: order/models.py:200 +msgid "Order description (optional)" msgstr "" -#: order/models.py:201 order/models.py:1378 order/models.py:1856 +#: order/models.py:202 order/models.py:1063 order/models.py:1413 msgid "Link to external page" msgstr "" -#: order/models.py:206 +#: order/models.py:207 msgid "Expected date for order delivery. Order will be overdue after this date." msgstr "" -#: order/models.py:215 +#: order/models.py:216 msgid "Created By" msgstr "" -#: order/models.py:222 +#: order/models.py:223 msgid "User or group responsible for this order" msgstr "" -#: order/models.py:232 +#: order/models.py:233 msgid "Point of contact for this order" msgstr "" -#: order/models.py:236 +#: order/models.py:237 msgid "Order notes" msgstr "" -#: order/models.py:327 order/models.py:723 +#: order/models.py:328 order/models.py:735 msgid "Order reference" msgstr "" -#: order/models.py:335 order/models.py:748 +#: order/models.py:336 order/models.py:760 msgid "Purchase order status" msgstr "" -#: order/models.py:350 +#: order/models.py:351 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:358 order/templates/order/order_base.html:132 -#: templates/js/translated/purchase_order.js:1544 +#: order/models.py:359 order/templates/order/order_base.html:151 +#: templates/js/translated/purchase_order.js:1611 msgid "Supplier Reference" msgstr "" -#: order/models.py:358 +#: order/models.py:359 msgid "Supplier order reference code" msgstr "" -#: order/models.py:365 +#: order/models.py:366 msgid "received by" msgstr "" -#: order/models.py:370 order/models.py:1675 +#: order/models.py:371 order/models.py:1710 msgid "Issue Date" msgstr "" -#: order/models.py:371 order/models.py:1676 +#: order/models.py:372 order/models.py:1711 msgid "Date order was issued" msgstr "" -#: order/models.py:377 order/models.py:1682 +#: order/models.py:378 order/models.py:1717 msgid "Date order was completed" msgstr "" -#: order/models.py:412 +#: order/models.py:413 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:560 +#: order/models.py:566 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:737 +#: order/models.py:749 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:756 order/models.py:1669 +#: order/models.py:768 order/models.py:1704 msgid "Customer Reference " msgstr "" -#: order/models.py:756 order/models.py:1670 +#: order/models.py:768 order/models.py:1705 msgid "Customer order reference code" msgstr "" -#: order/models.py:758 order/models.py:1336 -#: templates/js/translated/sales_order.js:743 -#: templates/js/translated/sales_order.js:906 +#: order/models.py:770 order/models.py:1371 +#: templates/js/translated/sales_order.js:769 +#: templates/js/translated/sales_order.js:932 msgid "Shipment Date" msgstr "" -#: order/models.py:765 +#: order/models.py:777 msgid "shipped by" msgstr "" -#: order/models.py:809 +#: order/models.py:826 msgid "Order cannot be completed as no parts have been assigned" msgstr "" -#: order/models.py:813 -msgid "Only a pending order can be marked as complete" +#: order/models.py:830 +msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:816 templates/js/translated/sales_order.js:437 +#: order/models.py:833 templates/js/translated/sales_order.js:441 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:819 +#: order/models.py:836 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1014 +#: order/models.py:1043 msgid "Item quantity" msgstr "" -#: order/models.py:1027 +#: order/models.py:1056 msgid "Line item reference" msgstr "" -#: order/models.py:1029 +#: order/models.py:1058 msgid "Line item notes" msgstr "" -#: order/models.py:1034 +#: order/models.py:1069 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1051 +#: order/models.py:1086 msgid "Context" msgstr "" -#: order/models.py:1052 +#: order/models.py:1087 msgid "Additional context for this line" msgstr "" -#: order/models.py:1061 +#: order/models.py:1096 msgid "Unit price" msgstr "" -#: order/models.py:1091 +#: order/models.py:1126 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1099 +#: order/models.py:1134 msgid "deleted" msgstr "" -#: order/models.py:1105 order/models.py:1190 order/models.py:1231 -#: order/models.py:1330 order/models.py:1465 order/models.py:1821 -#: order/models.py:1870 templates/js/translated/sales_order.js:1357 +#: order/models.py:1140 order/models.py:1225 order/models.py:1266 +#: order/models.py:1365 order/models.py:1500 order/models.py:1857 +#: order/models.py:1904 templates/js/translated/sales_order.js:1383 msgid "Order" msgstr "" -#: order/models.py:1124 +#: order/models.py:1159 msgid "Supplier part" msgstr "" -#: order/models.py:1131 order/templates/order/order_base.html:180 +#: order/models.py:1166 order/templates/order/order_base.html:199 #: templates/js/translated/part.js:1504 templates/js/translated/part.js:1536 -#: templates/js/translated/purchase_order.js:1198 -#: templates/js/translated/purchase_order.js:2007 -#: templates/js/translated/return_order.js:703 +#: templates/js/translated/purchase_order.js:1225 +#: templates/js/translated/purchase_order.js:2074 +#: templates/js/translated/return_order.js:706 #: templates/js/translated/table_filters.js:48 #: templates/js/translated/table_filters.js:421 msgid "Received" msgstr "" -#: order/models.py:1132 +#: order/models.py:1167 msgid "Number of items received" msgstr "" -#: order/models.py:1139 stock/models.py:809 stock/serializers.py:229 -#: stock/templates/stock/item_base.html:189 +#: order/models.py:1174 stock/models.py:810 stock/serializers.py:229 +#: stock/templates/stock/item_base.html:184 #: templates/js/translated/stock.js:2021 msgid "Purchase Price" msgstr "" -#: order/models.py:1140 +#: order/models.py:1175 msgid "Unit purchase price" msgstr "" -#: order/models.py:1153 +#: order/models.py:1188 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1219 +#: order/models.py:1254 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1224 +#: order/models.py:1259 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1250 part/templates/part/part_pricing.html:107 +#: order/models.py:1285 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:128 templates/js/translated/pricing.js:922 msgid "Sale Price" msgstr "" -#: order/models.py:1251 +#: order/models.py:1286 msgid "Unit sale price" msgstr "" -#: order/models.py:1261 +#: order/models.py:1296 msgid "Shipped quantity" msgstr "" -#: order/models.py:1337 +#: order/models.py:1372 msgid "Date of shipment" msgstr "" -#: order/models.py:1344 +#: order/models.py:1379 msgid "Checked By" msgstr "" -#: order/models.py:1345 +#: order/models.py:1380 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1352 order/models.py:1541 order/serializers.py:1202 -#: order/serializers.py:1330 templates/js/translated/model_renderers.js:403 +#: order/models.py:1387 order/models.py:1576 order/serializers.py:1224 +#: order/serializers.py:1352 templates/js/translated/model_renderers.js:409 msgid "Shipment" msgstr "" -#: order/models.py:1353 +#: order/models.py:1388 msgid "Shipment number" msgstr "" -#: order/models.py:1357 +#: order/models.py:1392 msgid "Shipment notes" msgstr "" -#: order/models.py:1363 +#: order/models.py:1398 msgid "Tracking Number" msgstr "" -#: order/models.py:1364 +#: order/models.py:1399 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1371 +#: order/models.py:1406 msgid "Invoice Number" msgstr "" -#: order/models.py:1372 +#: order/models.py:1407 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1390 +#: order/models.py:1425 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1393 +#: order/models.py:1428 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1500 order/models.py:1502 +#: order/models.py:1535 order/models.py:1537 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1506 +#: order/models.py:1541 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1508 +#: order/models.py:1543 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1511 +#: order/models.py:1546 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1521 order/serializers.py:1064 +#: order/models.py:1556 order/serializers.py:1086 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1524 +#: order/models.py:1559 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1525 +#: order/models.py:1560 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1533 +#: order/models.py:1568 msgid "Line" msgstr "" -#: order/models.py:1542 +#: order/models.py:1577 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1555 order/models.py:1829 -#: templates/js/translated/return_order.js:661 +#: order/models.py:1590 order/models.py:1865 +#: templates/js/translated/return_order.js:664 msgid "Item" msgstr "" -#: order/models.py:1556 +#: order/models.py:1591 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1559 +#: order/models.py:1594 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:1639 +#: order/models.py:1674 msgid "Return Order reference" msgstr "" -#: order/models.py:1653 +#: order/models.py:1688 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:1664 +#: order/models.py:1699 msgid "Return order status" msgstr "" -#: order/models.py:1814 +#: order/models.py:1850 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:1822 order/models.py:1870 +#: order/models.py:1858 order/models.py:1904 #: order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:13 @@ -4481,164 +4517,168 @@ msgstr "" msgid "Return Order" msgstr "" -#: order/models.py:1830 +#: order/models.py:1866 msgid "Select item to return from customer" msgstr "" -#: order/models.py:1835 +#: order/models.py:1871 msgid "Received Date" msgstr "" -#: order/models.py:1836 +#: order/models.py:1872 msgid "The date this this return item was received" msgstr "" -#: order/models.py:1847 templates/js/translated/return_order.js:672 +#: order/models.py:1883 templates/js/translated/return_order.js:675 #: templates/js/translated/table_filters.js:51 msgid "Outcome" msgstr "" -#: order/models.py:1847 +#: order/models.py:1883 msgid "Outcome for this line item" msgstr "" -#: order/models.py:1853 +#: order/models.py:1889 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/serializers.py:223 +#: order/serializers.py:228 msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:238 order/serializers.py:1082 +#: order/serializers.py:243 order/serializers.py:1104 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:249 order/serializers.py:1093 +#: order/serializers.py:254 order/serializers.py:1115 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:361 +#: order/serializers.py:367 msgid "Order is not open" msgstr "" -#: order/serializers.py:379 +#: order/serializers.py:385 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:397 +#: order/serializers.py:403 msgid "Supplier part must be specified" msgstr "" -#: order/serializers.py:402 +#: order/serializers.py:408 msgid "Purchase order must be specified" msgstr "" -#: order/serializers.py:408 +#: order/serializers.py:414 msgid "Supplier must match purchase order" msgstr "" -#: order/serializers.py:409 +#: order/serializers.py:415 msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:447 order/serializers.py:1170 +#: order/serializers.py:453 order/serializers.py:1192 msgid "Line Item" msgstr "" -#: order/serializers.py:453 +#: order/serializers.py:459 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:463 order/serializers.py:582 order/serializers.py:1541 +#: order/serializers.py:469 order/serializers.py:590 order/serializers.py:1563 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:482 templates/js/translated/purchase_order.js:1059 +#: order/serializers.py:488 templates/js/translated/purchase_order.js:1049 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:490 templates/js/translated/purchase_order.js:1070 +#: order/serializers.py:496 templates/js/translated/purchase_order.js:1073 msgid "Enter serial numbers for incoming stock items" msgstr "" -#: order/serializers.py:504 -msgid "Unique identifier field" +#: order/serializers.py:509 templates/js/translated/barcode.js:41 +msgid "Barcode" msgstr "" -#: order/serializers.py:518 +#: order/serializers.py:510 +msgid "Scanned barcode" +msgstr "" + +#: order/serializers.py:526 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:544 +#: order/serializers.py:552 msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:598 order/serializers.py:1556 +#: order/serializers.py:606 order/serializers.py:1578 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:615 +#: order/serializers.py:623 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:626 +#: order/serializers.py:634 msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:907 +#: order/serializers.py:929 msgid "Sale price currency" msgstr "" -#: order/serializers.py:962 +#: order/serializers.py:984 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1025 order/serializers.py:1179 +#: order/serializers.py:1047 order/serializers.py:1201 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1047 +#: order/serializers.py:1069 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1192 +#: order/serializers.py:1214 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1214 order/serializers.py:1338 +#: order/serializers.py:1236 order/serializers.py:1360 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1217 order/serializers.py:1341 +#: order/serializers.py:1239 order/serializers.py:1363 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1271 +#: order/serializers.py:1293 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1281 +#: order/serializers.py:1303 msgid "The following serial numbers are already allocated" msgstr "" -#: order/serializers.py:1507 +#: order/serializers.py:1529 msgid "Return order line item" msgstr "" -#: order/serializers.py:1514 +#: order/serializers.py:1536 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1517 +#: order/serializers.py:1539 msgid "Line item has already been received" msgstr "" -#: order/serializers.py:1549 +#: order/serializers.py:1571 msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1629 +#: order/serializers.py:1652 msgid "Line price currency" msgstr "" @@ -4660,113 +4700,123 @@ msgstr "" msgid "Sales order {so} is now overdue" msgstr "" -#: order/templates/order/order_base.html:33 +#: order/templates/order/order_base.html:51 msgid "Print purchase order report" msgstr "" -#: order/templates/order/order_base.html:35 -#: order/templates/order/return_order_base.html:45 -#: order/templates/order/sales_order_base.html:45 +#: order/templates/order/order_base.html:53 +#: order/templates/order/return_order_base.html:63 +#: order/templates/order/sales_order_base.html:63 msgid "Export order to file" msgstr "" -#: order/templates/order/order_base.html:41 -#: order/templates/order/return_order_base.html:55 -#: order/templates/order/sales_order_base.html:54 +#: order/templates/order/order_base.html:59 +#: order/templates/order/return_order_base.html:73 +#: order/templates/order/sales_order_base.html:72 msgid "Order actions" msgstr "" -#: order/templates/order/order_base.html:46 -#: order/templates/order/return_order_base.html:59 -#: order/templates/order/sales_order_base.html:58 +#: order/templates/order/order_base.html:64 +#: order/templates/order/return_order_base.html:77 +#: order/templates/order/sales_order_base.html:76 msgid "Edit order" msgstr "" -#: order/templates/order/order_base.html:50 -#: order/templates/order/return_order_base.html:61 -#: order/templates/order/sales_order_base.html:61 +#: order/templates/order/order_base.html:68 +#: order/templates/order/return_order_base.html:79 +#: order/templates/order/sales_order_base.html:78 msgid "Cancel order" msgstr "" -#: order/templates/order/order_base.html:55 +#: order/templates/order/order_base.html:73 msgid "Duplicate order" msgstr "" -#: order/templates/order/order_base.html:61 -#: order/templates/order/order_base.html:62 -#: order/templates/order/return_order_base.html:65 -#: order/templates/order/return_order_base.html:66 -msgid "Submit Order" +#: order/templates/order/order_base.html:79 +#: order/templates/order/order_base.html:80 +#: order/templates/order/return_order_base.html:83 +#: order/templates/order/return_order_base.html:84 +#: order/templates/order/sales_order_base.html:84 +#: order/templates/order/sales_order_base.html:85 +msgid "Issue Order" msgstr "" -#: order/templates/order/order_base.html:65 +#: order/templates/order/order_base.html:83 msgid "Receive items" msgstr "" -#: order/templates/order/order_base.html:67 +#: order/templates/order/order_base.html:85 msgid "Receive Items" msgstr "" -#: order/templates/order/order_base.html:69 -#: order/templates/order/return_order_base.html:69 +#: order/templates/order/order_base.html:87 +#: order/templates/order/return_order_base.html:87 msgid "Mark order as complete" msgstr "" -#: order/templates/order/order_base.html:70 -#: order/templates/order/return_order_base.html:70 -#: order/templates/order/sales_order_base.html:68 +#: order/templates/order/order_base.html:88 +#: order/templates/order/return_order_base.html:88 +#: order/templates/order/sales_order_base.html:94 msgid "Complete Order" msgstr "" -#: order/templates/order/order_base.html:92 -#: order/templates/order/return_order_base.html:84 -#: order/templates/order/sales_order_base.html:80 +#: order/templates/order/order_base.html:110 +#: order/templates/order/return_order_base.html:102 +#: order/templates/order/sales_order_base.html:107 msgid "Order Reference" msgstr "" -#: order/templates/order/order_base.html:97 -#: order/templates/order/return_order_base.html:89 -#: order/templates/order/sales_order_base.html:85 +#: order/templates/order/order_base.html:115 +#: order/templates/order/return_order_base.html:107 +#: order/templates/order/sales_order_base.html:112 msgid "Order Description" msgstr "" -#: order/templates/order/order_base.html:102 -#: order/templates/order/return_order_base.html:94 -#: order/templates/order/sales_order_base.html:90 +#: order/templates/order/order_base.html:121 +#: order/templates/order/return_order_base.html:115 +#: order/templates/order/sales_order_base.html:118 msgid "Order Status" msgstr "" -#: order/templates/order/order_base.html:125 +#: order/templates/order/order_base.html:144 msgid "No suppplier information available" msgstr "" -#: order/templates/order/order_base.html:138 -#: order/templates/order/sales_order_base.html:129 +#: order/templates/order/order_base.html:157 +#: order/templates/order/sales_order_base.html:157 msgid "Completed Line Items" msgstr "" -#: order/templates/order/order_base.html:144 -#: order/templates/order/sales_order_base.html:135 -#: order/templates/order/sales_order_base.html:145 +#: order/templates/order/order_base.html:163 +#: order/templates/order/sales_order_base.html:163 +#: order/templates/order/sales_order_base.html:173 msgid "Incomplete" msgstr "" -#: order/templates/order/order_base.html:163 -#: order/templates/order/return_order_base.html:138 +#: order/templates/order/order_base.html:182 +#: order/templates/order/return_order_base.html:159 #: report/templates/report/inventree_build_order_base.html:121 msgid "Issued" msgstr "" -#: order/templates/order/order_base.html:201 +#: order/templates/order/order_base.html:220 msgid "Total cost" msgstr "" -#: order/templates/order/order_base.html:205 -#: order/templates/order/return_order_base.html:173 -#: order/templates/order/sales_order_base.html:204 +#: order/templates/order/order_base.html:224 +#: order/templates/order/return_order_base.html:194 +#: order/templates/order/sales_order_base.html:232 msgid "Total cost could not be calculated" msgstr "" +#: order/templates/order/order_base.html:330 +msgid "Purchase Order QR Code" +msgstr "" + +#: order/templates/order/order_base.html:342 +msgid "Link Barcode to Purchase Order" +msgstr "" + #: order/templates/order/order_wizard/match_fields.html:9 #: part/templates/part/import_wizard/ajax_match_fields.html:9 #: part/templates/part/import_wizard/match_fields.html:9 @@ -4818,10 +4868,10 @@ msgstr "" #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:102 templates/js/translated/build.js:485 #: templates/js/translated/build.js:646 templates/js/translated/build.js:2097 -#: templates/js/translated/purchase_order.js:640 -#: templates/js/translated/purchase_order.js:1144 -#: templates/js/translated/return_order.js:449 -#: templates/js/translated/sales_order.js:979 +#: templates/js/translated/purchase_order.js:643 +#: templates/js/translated/purchase_order.js:1155 +#: templates/js/translated/return_order.js:452 +#: templates/js/translated/sales_order.js:1005 #: templates/js/translated/stock.js:660 templates/js/translated/stock.js:829 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" @@ -4883,9 +4933,9 @@ msgstr "" #: order/templates/order/purchase_order_detail.html:28 #: order/templates/order/return_order_detail.html:24 #: order/templates/order/sales_order_detail.html:24 -#: templates/js/translated/purchase_order.js:367 -#: templates/js/translated/return_order.js:402 -#: templates/js/translated/sales_order.js:175 +#: templates/js/translated/purchase_order.js:370 +#: templates/js/translated/return_order.js:405 +#: templates/js/translated/sales_order.js:179 msgid "Add Line Item" msgstr "" @@ -4923,63 +4973,79 @@ msgstr "" msgid "Order Notes" msgstr "" -#: order/templates/order/return_order_base.html:43 +#: order/templates/order/return_order_base.html:61 msgid "Print return order report" msgstr "" -#: order/templates/order/return_order_base.html:47 -#: order/templates/order/sales_order_base.html:47 +#: order/templates/order/return_order_base.html:65 +#: order/templates/order/sales_order_base.html:65 msgid "Print packing list" msgstr "" -#: order/templates/order/return_order_base.html:119 -#: order/templates/order/sales_order_base.html:123 +#: order/templates/order/return_order_base.html:140 +#: order/templates/order/sales_order_base.html:151 #: templates/js/translated/return_order.js:267 -#: templates/js/translated/sales_order.js:709 +#: templates/js/translated/sales_order.js:735 msgid "Customer Reference" msgstr "" -#: order/templates/order/return_order_base.html:169 -#: order/templates/order/sales_order_base.html:200 +#: order/templates/order/return_order_base.html:190 +#: order/templates/order/sales_order_base.html:228 #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 #: templates/js/translated/part.js:989 -#: templates/js/translated/purchase_order.js:1582 +#: templates/js/translated/purchase_order.js:1649 #: templates/js/translated/return_order.js:327 -#: templates/js/translated/sales_order.js:755 +#: templates/js/translated/sales_order.js:781 msgid "Total Cost" msgstr "" +#: order/templates/order/return_order_base.html:258 +msgid "Return Order QR Code" +msgstr "" + +#: order/templates/order/return_order_base.html:270 +msgid "Link Barcode to Return Order" +msgstr "" + #: order/templates/order/return_order_sidebar.html:5 msgid "Order Details" msgstr "" -#: order/templates/order/sales_order_base.html:43 +#: order/templates/order/sales_order_base.html:61 msgid "Print sales order report" msgstr "" -#: order/templates/order/sales_order_base.html:60 -#: templates/js/translated/sales_order.js:361 -msgid "Complete Shipments" +#: order/templates/order/sales_order_base.html:89 +#: order/templates/order/sales_order_base.html:90 +msgid "Ship Items" msgstr "" -#: order/templates/order/sales_order_base.html:67 -#: templates/js/translated/sales_order.js:415 +#: order/templates/order/sales_order_base.html:93 +#: templates/js/translated/sales_order.js:419 msgid "Complete Sales Order" msgstr "" -#: order/templates/order/sales_order_base.html:103 +#: order/templates/order/sales_order_base.html:131 msgid "This Sales Order has not been fully allocated" msgstr "" -#: order/templates/order/sales_order_base.html:141 +#: order/templates/order/sales_order_base.html:169 #: order/templates/order/sales_order_detail.html:105 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "" +#: order/templates/order/sales_order_base.html:305 +msgid "Sales Order QR Code" +msgstr "" + +#: order/templates/order/sales_order_base.html:317 +msgid "Link Barcode to Sales Order" +msgstr "" + #: order/templates/order/sales_order_detail.html:18 msgid "Sales Order Items" msgstr "" @@ -5035,20 +5101,20 @@ msgstr "" msgid "Part Description" msgstr "" -#: part/admin.py:36 part/models.py:880 part/templates/part/part_base.html:272 +#: part/admin.py:36 part/models.py:880 part/templates/part/part_base.html:271 #: templates/js/translated/part.js:1143 templates/js/translated/part.js:1855 #: templates/js/translated/stock.js:1769 msgid "IPN" msgstr "" -#: part/admin.py:37 part/models.py:887 part/templates/part/part_base.html:280 +#: part/admin.py:37 part/models.py:887 part/templates/part/part_base.html:279 #: report/models.py:177 templates/js/translated/part.js:1148 #: templates/js/translated/part.js:1861 msgid "Revision" msgstr "" #: part/admin.py:38 part/admin.py:198 part/models.py:866 -#: part/templates/part/category.html:93 part/templates/part/part_base.html:301 +#: part/templates/part/category.html:93 part/templates/part/part_base.html:300 msgid "Keywords" msgstr "" @@ -5068,17 +5134,17 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:47 part/models.py:971 part/templates/part/part_base.html:206 +#: part/admin.py:47 part/models.py:971 part/templates/part/part_base.html:205 msgid "Minimum Stock" msgstr "" -#: part/admin.py:61 part/templates/part/part_base.html:200 +#: part/admin.py:61 part/templates/part/part_base.html:199 #: templates/js/translated/company.js:1277 #: templates/js/translated/table_filters.js:253 msgid "In Stock" msgstr "" -#: part/admin.py:62 part/bom.py:178 part/templates/part/part_base.html:213 +#: part/admin.py:62 part/bom.py:178 part/templates/part/part_base.html:212 #: templates/js/translated/bom.js:1163 templates/js/translated/build.js:1940 #: templates/js/translated/part.js:630 templates/js/translated/part.js:1749 #: templates/js/translated/table_filters.js:96 @@ -5091,11 +5157,11 @@ msgstr "" #: part/admin.py:64 templates/js/translated/build.js:1954 #: templates/js/translated/build.js:2214 templates/js/translated/build.js:2799 -#: templates/js/translated/sales_order.js:1790 +#: templates/js/translated/sales_order.js:1818 msgid "Allocated" msgstr "" -#: part/admin.py:65 part/templates/part/part_base.html:244 stock/admin.py:124 +#: part/admin.py:65 part/templates/part/part_base.html:243 stock/admin.py:124 #: templates/js/translated/part.js:635 templates/js/translated/part.js:1753 msgid "Building" msgstr "" @@ -5127,7 +5193,7 @@ msgstr "" #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:85 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:43 -#: templates/js/translated/part.js:2367 templates/js/translated/search.js:158 +#: templates/js/translated/part.js:2367 templates/js/translated/search.js:160 #: templates/navbar.html:24 users/models.py:38 msgid "Parts" msgstr "" @@ -5158,36 +5224,36 @@ msgstr "" msgid "Maximum Price" msgstr "" -#: part/api.py:515 +#: part/api.py:495 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:535 +#: part/api.py:515 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:553 +#: part/api.py:533 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:639 +#: part/api.py:619 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:797 +#: part/api.py:767 msgid "Valid" msgstr "" -#: part/api.py:798 +#: part/api.py:768 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:804 +#: part/api.py:774 msgid "This option must be selected" msgstr "" #: part/bom.py:175 part/models.py:121 part/models.py:914 -#: part/templates/part/category.html:115 part/templates/part/part_base.html:376 +#: part/templates/part/category.html:115 part/templates/part/part_base.html:369 msgid "Default Location" msgstr "" @@ -5195,8 +5261,8 @@ msgstr "" msgid "Total Stock" msgstr "" -#: part/bom.py:177 part/templates/part/part_base.html:195 -#: templates/js/translated/sales_order.js:1757 +#: part/bom.py:177 part/templates/part/part_base.html:194 +#: templates/js/translated/sales_order.js:1785 msgid "Available Stock" msgstr "" @@ -5210,7 +5276,7 @@ msgid "Part Category" msgstr "" #: part/models.py:72 part/templates/part/category.html:135 -#: templates/InvenTree/search.html:97 templates/js/translated/search.js:186 +#: templates/InvenTree/search.html:97 templates/js/translated/search.js:188 #: users/models.py:37 msgid "Part Categories" msgstr "" @@ -5219,7 +5285,7 @@ msgstr "" msgid "Default location for parts in this category" msgstr "" -#: part/models.py:127 stock/models.py:119 templates/js/translated/stock.js:2575 +#: part/models.py:127 stock/models.py:120 templates/js/translated/stock.js:2575 #: templates/js/translated/table_filters.js:163 #: templates/js/translated/table_filters.js:182 msgid "Structural" @@ -5237,11 +5303,11 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:138 stock/models.py:108 +#: part/models.py:138 stock/models.py:109 msgid "Icon" msgstr "" -#: part/models.py:139 stock/models.py:109 +#: part/models.py:139 stock/models.py:110 msgid "Icon (optional)" msgstr "" @@ -5295,12 +5361,12 @@ msgstr "" msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:855 +#: part/models.py:855 part/templates/part/part_base.html:179 msgid "Variant Of" msgstr "" #: part/models.py:861 -msgid "Part description" +msgid "Part description (optional)" msgstr "" #: part/models.py:867 @@ -5308,7 +5374,7 @@ msgid "Part keywords to improve visibility in search results" msgstr "" #: part/models.py:874 part/models.py:3182 part/models.py:3419 -#: part/serializers.py:849 part/templates/part/part_base.html:263 +#: part/serializers.py:849 part/templates/part/part_base.html:262 #: templates/InvenTree/settings/settings_staff_js.html:132 #: templates/js/translated/notification.js:50 #: templates/js/translated/part.js:1885 templates/js/translated/part.js:2097 @@ -5331,7 +5397,7 @@ msgstr "" msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:957 part/templates/part/part_base.html:385 +#: part/models.py:957 part/templates/part/part_base.html:378 msgid "Default Supplier" msgstr "" @@ -5411,8 +5477,8 @@ msgstr "" msgid "User responsible for this part" msgstr "" -#: part/models.py:1036 part/templates/part/part_base.html:348 -#: stock/templates/stock/item_base.html:448 +#: part/models.py:1036 part/templates/part/part_base.html:341 +#: stock/templates/stock/item_base.html:441 #: templates/js/translated/part.js:1947 msgid "Last Stocktake" msgstr "" @@ -5569,7 +5635,7 @@ msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:368 #: templates/js/translated/part.js:1002 templates/js/translated/pricing.js:794 #: templates/js/translated/pricing.js:915 -#: templates/js/translated/purchase_order.js:1561 +#: templates/js/translated/purchase_order.js:1628 #: templates/js/translated/stock.js:2613 msgid "Date" msgstr "" @@ -5822,7 +5888,7 @@ msgstr "" msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:3713 stock/models.py:569 +#: part/models.py:3713 stock/models.py:570 msgid "Quantity must be integer value for trackable parts" msgstr "" @@ -6102,7 +6168,7 @@ msgstr "" #: part/tasks.py:289 templates/js/translated/part.js:983 #: templates/js/translated/part.js:1456 templates/js/translated/part.js:1512 -#: templates/js/translated/purchase_order.js:1922 +#: templates/js/translated/purchase_order.js:1989 msgid "Total Quantity" msgstr "" @@ -6127,8 +6193,7 @@ msgid "You do not have permission to edit the BOM." msgstr "" #: part/templates/part/bom.html:15 -#, python-format -msgid "The BOM for %(part)s has changed, and must be validated.
" +msgid "The BOM this part has been changed, and must be validated" msgstr "" #: part/templates/part/bom.html:17 @@ -6264,7 +6329,7 @@ msgid "Refresh scheduling data" msgstr "" #: part/templates/part/detail.html:45 part/templates/part/prices.html:15 -#: templates/js/translated/tables.js:562 +#: templates/js/translated/tables.js:572 msgid "Refresh" msgstr "" @@ -6416,13 +6481,13 @@ msgstr "" #: part/templates/part/import_wizard/part_upload.html:92 #: templates/js/translated/bom.js:278 templates/js/translated/bom.js:312 -#: templates/js/translated/order.js:109 templates/js/translated/tables.js:183 +#: templates/js/translated/order.js:112 templates/js/translated/tables.js:183 msgid "Format" msgstr "" #: part/templates/part/import_wizard/part_upload.html:93 #: templates/js/translated/bom.js:279 templates/js/translated/bom.js:313 -#: templates/js/translated/order.js:110 +#: templates/js/translated/order.js:113 msgid "Select file format" msgstr "" @@ -6507,8 +6572,7 @@ msgid "Part can be sold to customers" msgstr "" #: part/templates/part/part_base.html:147 -#: part/templates/part/part_base.html:155 -msgid "Part is virtual (not a physical part)" +msgid "Part is not active" msgstr "" #: part/templates/part/part_base.html:148 @@ -6519,71 +6583,70 @@ msgstr "" msgid "Inactive" msgstr "" +#: part/templates/part/part_base.html:155 +msgid "Part is virtual (not a physical part)" +msgstr "" + #: part/templates/part/part_base.html:165 -#: part/templates/part/part_base.html:691 +#: part/templates/part/part_base.html:684 msgid "Show Part Details" msgstr "" -#: part/templates/part/part_base.html:183 -#, python-format -msgid "This part is a variant of %(link)s" -msgstr "" - -#: part/templates/part/part_base.html:221 -#: stock/templates/stock/item_base.html:385 +#: part/templates/part/part_base.html:220 +#: stock/templates/stock/item_base.html:378 msgid "Allocated to Build Orders" msgstr "" -#: part/templates/part/part_base.html:230 -#: stock/templates/stock/item_base.html:378 +#: part/templates/part/part_base.html:229 +#: stock/templates/stock/item_base.html:371 msgid "Allocated to Sales Orders" msgstr "" -#: part/templates/part/part_base.html:238 templates/js/translated/bom.js:1174 +#: part/templates/part/part_base.html:237 templates/js/translated/bom.js:1174 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:294 +#: part/templates/part/part_base.html:293 msgid "Minimum stock level" msgstr "" -#: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1037 +#: part/templates/part/part_base.html:324 templates/js/translated/bom.js:1037 #: templates/js/translated/part.js:1181 templates/js/translated/part.js:1920 #: templates/js/translated/pricing.js:373 #: templates/js/translated/pricing.js:1019 msgid "Price Range" msgstr "" -#: part/templates/part/part_base.html:361 +#: part/templates/part/part_base.html:354 msgid "Latest Serial Number" msgstr "" -#: part/templates/part/part_base.html:365 -#: stock/templates/stock/item_base.html:334 +#: part/templates/part/part_base.html:358 +#: stock/templates/stock/item_base.html:323 msgid "Search for serial number" msgstr "" -#: part/templates/part/part_base.html:453 +#: part/templates/part/part_base.html:446 msgid "Part QR Code" msgstr "" -#: part/templates/part/part_base.html:470 +#: part/templates/part/part_base.html:463 msgid "Link Barcode to Part" msgstr "" -#: part/templates/part/part_base.html:520 +#: part/templates/part/part_base.html:513 msgid "Calculate" msgstr "" -#: part/templates/part/part_base.html:537 +#: part/templates/part/part_base.html:530 msgid "Remove associated image from this part" msgstr "" -#: part/templates/part/part_base.html:589 +#: part/templates/part/part_base.html:582 msgid "No matching images found" msgstr "" -#: part/templates/part/part_base.html:685 +#: part/templates/part/part_base.html:678 msgid "Hide Part Details" msgstr "" @@ -6673,7 +6736,7 @@ msgid "Refresh Part Pricing" msgstr "" #: part/templates/part/prices.html:25 stock/admin.py:129 -#: stock/templates/stock/item_base.html:443 +#: stock/templates/stock/item_base.html:436 #: templates/js/translated/company.js:1291 #: templates/js/translated/company.js:1301 #: templates/js/translated/stock.js:1956 @@ -6790,8 +6853,7 @@ msgid "Create new part variant" msgstr "" #: part/templates/part/variant_part.html:10 -#, python-format -msgid "Create a new variant of template '%(full_name)s'." +msgid "Create a new variant part from this template" msgstr "" #: part/templatetags/inventree_extras.py:187 @@ -6853,6 +6915,7 @@ msgid "Match found for barcode data" msgstr "" #: plugin/base/barcodes/api.py:120 +#: templates/js/translated/purchase_order.js:1321 msgid "Barcode matches existing item" msgstr "" @@ -6864,15 +6927,15 @@ msgstr "" msgid "Label printing failed" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:26 +#: plugin/builtin/barcodes/inventree_barcode.py:28 msgid "InvenTree Barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:27 +#: plugin/builtin/barcodes/inventree_barcode.py:29 msgid "Provides native support for barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:29 +#: plugin/builtin/barcodes/inventree_barcode.py:31 #: plugin/builtin/integration/core_notifications.py:33 msgid "InvenTree contributors" msgstr "" @@ -6975,18 +7038,19 @@ msgstr "" msgid "No date found" msgstr "" -#: plugin/registry.py:450 -msgid "Plugin `{plg_name}` is not compatible with the current InvenTree version {version.inventreeVersion()}!" -msgstr "" - #: plugin/registry.py:452 #, python-brace-format -msgid "Plugin requires at least version {plg_i.MIN_VERSION}" +msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "" #: plugin/registry.py:454 #, python-brace-format -msgid "Plugin requires at most version {plg_i.MAX_VERSION}" +msgid "Plugin requires at least version {v}" +msgstr "" + +#: plugin/registry.py:456 +#, python-brace-format +msgid "Plugin requires at most version {v}" msgstr "" #: plugin/samples/integration/sample.py:39 @@ -7053,16 +7117,16 @@ msgstr "" msgid "Either packagename of URL must be provided" msgstr "" -#: report/api.py:172 +#: report/api.py:171 msgid "No valid objects provided to template" msgstr "" -#: report/api.py:208 report/api.py:244 +#: report/api.py:207 report/api.py:243 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "" -#: report/api.py:311 +#: report/api.py:310 msgid "Test report" msgstr "" @@ -7168,11 +7232,11 @@ msgstr "" #: report/templates/report/inventree_po_report_base.html:30 #: report/templates/report/inventree_so_report_base.html:30 -#: templates/js/translated/order.js:288 templates/js/translated/pricing.js:509 +#: templates/js/translated/order.js:291 templates/js/translated/pricing.js:509 #: templates/js/translated/pricing.js:578 #: templates/js/translated/pricing.js:802 -#: templates/js/translated/purchase_order.js:1953 -#: templates/js/translated/sales_order.js:1701 +#: templates/js/translated/purchase_order.js:2020 +#: templates/js/translated/sales_order.js:1729 msgid "Unit Price" msgstr "" @@ -7184,22 +7248,22 @@ msgstr "" #: report/templates/report/inventree_po_report_base.html:72 #: report/templates/report/inventree_so_report_base.html:72 -#: templates/js/translated/purchase_order.js:1855 -#: templates/js/translated/sales_order.js:1676 +#: templates/js/translated/purchase_order.js:1922 +#: templates/js/translated/sales_order.js:1704 msgid "Total" msgstr "" #: report/templates/report/inventree_return_order_report_base.html:25 #: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:717 stock/templates/stock/item_base.html:323 +#: stock/models.py:718 stock/templates/stock/item_base.html:312 #: templates/js/translated/build.js:475 templates/js/translated/build.js:636 #: templates/js/translated/build.js:1250 templates/js/translated/build.js:1738 #: templates/js/translated/model_renderers.js:195 -#: templates/js/translated/return_order.js:483 -#: templates/js/translated/return_order.js:663 -#: templates/js/translated/sales_order.js:250 -#: templates/js/translated/sales_order.js:1470 -#: templates/js/translated/sales_order.js:1555 +#: templates/js/translated/return_order.js:486 +#: templates/js/translated/return_order.js:666 +#: templates/js/translated/sales_order.js:254 +#: templates/js/translated/sales_order.js:1509 +#: templates/js/translated/sales_order.js:1594 #: templates/js/translated/stock.js:526 msgid "Serial Number" msgstr "" @@ -7213,12 +7277,12 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:102 -#: stock/models.py:2183 templates/js/translated/stock.js:1398 +#: stock/models.py:2210 templates/js/translated/stock.js:1398 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:103 -#: stock/models.py:2189 +#: stock/models.py:2216 msgid "Result" msgstr "" @@ -7286,8 +7350,8 @@ msgstr "" msgid "Customer ID" msgstr "" -#: stock/admin.py:114 stock/models.py:700 -#: stock/templates/stock/item_base.html:362 +#: stock/admin.py:114 stock/models.py:701 +#: stock/templates/stock/item_base.html:355 msgid "Installed In" msgstr "" @@ -7311,278 +7375,277 @@ msgstr "" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:131 stock/models.py:773 -#: stock/templates/stock/item_base.html:430 +#: stock/admin.py:131 stock/models.py:774 +#: stock/templates/stock/item_base.html:423 #: templates/js/translated/stock.js:1940 msgid "Expiry Date" msgstr "" -#: stock/api.py:426 templates/js/translated/table_filters.js:325 +#: stock/api.py:409 templates/js/translated/table_filters.js:325 msgid "External Location" msgstr "" -#: stock/api.py:587 +#: stock/api.py:570 msgid "Quantity is required" msgstr "" -#: stock/api.py:594 +#: stock/api.py:577 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:619 +#: stock/api.py:602 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:53 stock/models.py:684 +#: stock/models.py:54 stock/models.py:685 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:54 stock/templates/stock/location.html:183 -#: templates/InvenTree/search.html:167 templates/js/translated/search.js:206 +#: stock/models.py:55 stock/templates/stock/location.html:177 +#: templates/InvenTree/search.html:167 templates/js/translated/search.js:208 #: users/models.py:40 msgid "Stock Locations" msgstr "" -#: stock/models.py:113 stock/models.py:814 -#: stock/templates/stock/item_base.html:253 +#: stock/models.py:114 stock/models.py:815 +#: stock/templates/stock/item_base.html:248 msgid "Owner" msgstr "" -#: stock/models.py:114 stock/models.py:815 +#: stock/models.py:115 stock/models.py:816 msgid "Select Owner" msgstr "" -#: stock/models.py:121 +#: stock/models.py:122 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:127 templates/js/translated/stock.js:2584 +#: stock/models.py:128 templates/js/translated/stock.js:2584 #: templates/js/translated/table_filters.js:167 msgid "External" msgstr "" -#: stock/models.py:128 +#: stock/models.py:129 msgid "This is an external stock location" msgstr "" -#: stock/models.py:170 +#: stock/models.py:171 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:549 +#: stock/models.py:550 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:575 stock/serializers.py:151 +#: stock/models.py:576 stock/serializers.py:151 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:592 +#: stock/models.py:593 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:602 stock/models.py:611 +#: stock/models.py:603 stock/models.py:612 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:603 +#: stock/models.py:604 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:625 +#: stock/models.py:626 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:631 +#: stock/models.py:632 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:645 +#: stock/models.py:646 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:659 +#: stock/models.py:660 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:669 +#: stock/models.py:670 msgid "Base part" msgstr "" -#: stock/models.py:677 +#: stock/models.py:678 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:687 +#: stock/models.py:688 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:694 +#: stock/models.py:695 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:703 +#: stock/models.py:704 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:719 +#: stock/models.py:720 msgid "Serial number for this item" msgstr "" -#: stock/models.py:733 +#: stock/models.py:734 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:738 +#: stock/models.py:739 msgid "Stock Quantity" msgstr "" -#: stock/models.py:745 +#: stock/models.py:746 msgid "Source Build" msgstr "" -#: stock/models.py:747 +#: stock/models.py:748 msgid "Build for this stock item" msgstr "" -#: stock/models.py:758 +#: stock/models.py:759 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:761 +#: stock/models.py:762 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:767 +#: stock/models.py:768 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:774 +#: stock/models.py:775 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:789 +#: stock/models.py:790 msgid "Delete on deplete" msgstr "" -#: stock/models.py:789 +#: stock/models.py:790 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:802 stock/templates/stock/item.html:132 +#: stock/models.py:803 stock/templates/stock/item.html:132 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:810 +#: stock/models.py:811 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:838 +#: stock/models.py:839 msgid "Converted to part" msgstr "" -#: stock/models.py:1335 +#: stock/models.py:1361 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1341 +#: stock/models.py:1367 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1347 +#: stock/models.py:1373 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1350 +#: stock/models.py:1376 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1353 +#: stock/models.py:1379 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1360 -#, python-brace-format -msgid "Serial numbers already exist: {exists}" +#: stock/models.py:1386 stock/serializers.py:349 +msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1430 +#: stock/models.py:1457 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1433 +#: stock/models.py:1460 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1436 +#: stock/models.py:1463 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1439 +#: stock/models.py:1466 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1442 +#: stock/models.py:1469 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1445 +#: stock/models.py:1472 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1452 stock/serializers.py:946 +#: stock/models.py:1479 stock/serializers.py:946 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1456 +#: stock/models.py:1483 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1460 +#: stock/models.py:1487 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1464 +#: stock/models.py:1491 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1633 +#: stock/models.py:1660 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2101 +#: stock/models.py:2128 msgid "Entry notes" msgstr "" -#: stock/models.py:2159 +#: stock/models.py:2186 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2165 +#: stock/models.py:2192 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2184 +#: stock/models.py:2211 msgid "Test name" msgstr "" -#: stock/models.py:2190 +#: stock/models.py:2217 msgid "Test result" msgstr "" -#: stock/models.py:2196 +#: stock/models.py:2223 msgid "Test output value" msgstr "" -#: stock/models.py:2203 +#: stock/models.py:2230 msgid "Test result attachment" msgstr "" -#: stock/models.py:2209 +#: stock/models.py:2236 msgid "Test notes" msgstr "" @@ -7619,10 +7682,6 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:349 -msgid "Serial numbers already exist" -msgstr "" - #: stock/serializers.py:389 msgid "Select stock item to install" msgstr "" @@ -7839,129 +7898,133 @@ msgstr "" msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:199 +#: stock/templates/stock/item_base.html:194 msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:217 +#: stock/templates/stock/item_base.html:212 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:257 +#: stock/templates/stock/item_base.html:252 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:258 +#: stock/templates/stock/item_base.html:253 #: stock/templates/stock/location.html:147 msgid "Read only" msgstr "" -#: stock/templates/stock/item_base.html:271 -msgid "This stock item is in production and cannot be edited." +#: stock/templates/stock/item_base.html:266 +msgid "This stock item is unavailable" msgstr "" #: stock/templates/stock/item_base.html:272 +msgid "This stock item is in production and cannot be edited." +msgstr "" + +#: stock/templates/stock/item_base.html:273 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:285 -msgid "This stock item has not passed all required tests" -msgstr "" - -#: stock/templates/stock/item_base.html:293 +#: stock/templates/stock/item_base.html:288 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:301 +#: stock/templates/stock/item_base.html:296 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:307 -msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." +#: stock/templates/stock/item_base.html:312 +msgid "This stock item is serialized. It has a unique serial number and the quantity cannot be adjusted" msgstr "" -#: stock/templates/stock/item_base.html:329 +#: stock/templates/stock/item_base.html:318 msgid "previous page" msgstr "" -#: stock/templates/stock/item_base.html:329 +#: stock/templates/stock/item_base.html:318 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:338 +#: stock/templates/stock/item_base.html:327 msgid "next page" msgstr "" -#: stock/templates/stock/item_base.html:338 +#: stock/templates/stock/item_base.html:327 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:351 +#: stock/templates/stock/item_base.html:341 msgid "Available Quantity" msgstr "" -#: stock/templates/stock/item_base.html:395 +#: stock/templates/stock/item_base.html:388 #: templates/js/translated/build.js:1764 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:410 +#: stock/templates/stock/item_base.html:403 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:434 +#: stock/templates/stock/item_base.html:409 +msgid "This stock item has not passed all required tests" +msgstr "" + +#: stock/templates/stock/item_base.html:427 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:434 +#: stock/templates/stock/item_base.html:427 #: templates/js/translated/table_filters.js:333 msgid "Expired" msgstr "" -#: stock/templates/stock/item_base.html:436 +#: stock/templates/stock/item_base.html:429 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:436 +#: stock/templates/stock/item_base.html:429 #: templates/js/translated/table_filters.js:339 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:452 +#: stock/templates/stock/item_base.html:445 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:530 +#: stock/templates/stock/item_base.html:523 msgid "Edit Stock Status" msgstr "" -#: stock/templates/stock/item_base.html:538 +#: stock/templates/stock/item_base.html:532 msgid "Stock Item QR Code" msgstr "" -#: stock/templates/stock/item_base.html:550 +#: stock/templates/stock/item_base.html:543 msgid "Link Barcode to Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:614 +#: stock/templates/stock/item_base.html:607 msgid "Select one of the part variants listed below." msgstr "" -#: stock/templates/stock/item_base.html:617 +#: stock/templates/stock/item_base.html:610 msgid "Warning" msgstr "" -#: stock/templates/stock/item_base.html:618 +#: stock/templates/stock/item_base.html:611 msgid "This action cannot be easily undone" msgstr "" -#: stock/templates/stock/item_base.html:626 +#: stock/templates/stock/item_base.html:619 msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:656 +#: stock/templates/stock/item_base.html:649 msgid "Return to Stock" msgstr "" @@ -8021,29 +8084,29 @@ msgstr "" msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:169 -#: stock/templates/stock/location.html:217 +#: stock/templates/stock/location.html:163 +#: stock/templates/stock/location.html:211 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/templates/stock/location.html:221 +#: stock/templates/stock/location.html:215 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:222 +#: stock/templates/stock/location.html:216 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:309 +#: stock/templates/stock/location.html:303 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:382 +#: stock/templates/stock/location.html:376 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:393 +#: stock/templates/stock/location.html:387 msgid "Link Barcode to Stock Location" msgstr "" @@ -8581,7 +8644,7 @@ msgid "Home Page" msgstr "" #: templates/InvenTree/settings/sidebar.html:15 -#: templates/js/translated/tables.js:553 templates/navbar.html:107 +#: templates/js/translated/tables.js:563 templates/navbar.html:107 #: templates/search.html:8 templates/search_form.html:6 #: templates/search_form.html:7 msgid "Search" @@ -8627,8 +8690,8 @@ msgid "Change Password" msgstr "" #: templates/InvenTree/settings/user.html:23 -#: templates/js/translated/helpers.js:53 templates/notes_buttons.html:3 -#: templates/notes_buttons.html:4 +#: templates/js/translated/helpers.js:53 templates/js/translated/pricing.js:610 +#: templates/notes_buttons.html:3 templates/notes_buttons.html:4 msgid "Edit" msgstr "" @@ -9101,6 +9164,10 @@ msgstr "" msgid "Delete Attachments" msgstr "" +#: templates/barcode_data.html:5 +msgid "Barcode Identifier" +msgstr "" + #: templates/base.html:102 msgid "Server Restart Required" msgstr "" @@ -9255,10 +9322,6 @@ msgstr "" msgid "Enter barcode data" msgstr "" -#: templates/js/translated/barcode.js:41 -msgid "Barcode" -msgstr "" - #: templates/js/translated/barcode.js:48 msgid "Scan barcode using connected webcam" msgstr "" @@ -9271,94 +9334,94 @@ msgstr "" msgid "Enter notes" msgstr "" -#: templates/js/translated/barcode.js:172 +#: templates/js/translated/barcode.js:175 msgid "Server error" msgstr "" -#: templates/js/translated/barcode.js:201 +#: templates/js/translated/barcode.js:204 msgid "Unknown response from server" msgstr "" -#: templates/js/translated/barcode.js:236 +#: templates/js/translated/barcode.js:239 #: templates/js/translated/modals.js:1100 msgid "Invalid server response" msgstr "" -#: templates/js/translated/barcode.js:354 +#: templates/js/translated/barcode.js:359 msgid "Scan barcode data" msgstr "" -#: templates/js/translated/barcode.js:404 templates/navbar.html:114 +#: templates/js/translated/barcode.js:407 templates/navbar.html:114 msgid "Scan Barcode" msgstr "" -#: templates/js/translated/barcode.js:416 +#: templates/js/translated/barcode.js:427 msgid "No URL in response" msgstr "" -#: templates/js/translated/barcode.js:455 +#: templates/js/translated/barcode.js:468 msgid "This will remove the link to the associated barcode" msgstr "" -#: templates/js/translated/barcode.js:461 +#: templates/js/translated/barcode.js:474 msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:523 templates/js/translated/stock.js:1097 +#: templates/js/translated/barcode.js:537 templates/js/translated/stock.js:1097 msgid "Remove stock item" msgstr "" -#: templates/js/translated/barcode.js:566 +#: templates/js/translated/barcode.js:580 msgid "Scan Stock Items Into Location" msgstr "" -#: templates/js/translated/barcode.js:568 +#: templates/js/translated/barcode.js:582 msgid "Scan stock item barcode to check in to this location" msgstr "" -#: templates/js/translated/barcode.js:571 -#: templates/js/translated/barcode.js:763 +#: templates/js/translated/barcode.js:585 +#: templates/js/translated/barcode.js:780 msgid "Check In" msgstr "" -#: templates/js/translated/barcode.js:602 +#: templates/js/translated/barcode.js:616 msgid "No barcode provided" msgstr "" -#: templates/js/translated/barcode.js:642 +#: templates/js/translated/barcode.js:656 msgid "Stock Item already scanned" msgstr "" -#: templates/js/translated/barcode.js:646 +#: templates/js/translated/barcode.js:660 msgid "Stock Item already in this location" msgstr "" -#: templates/js/translated/barcode.js:653 +#: templates/js/translated/barcode.js:667 msgid "Added stock item" msgstr "" -#: templates/js/translated/barcode.js:662 +#: templates/js/translated/barcode.js:676 msgid "Barcode does not match valid stock item" msgstr "" -#: templates/js/translated/barcode.js:679 +#: templates/js/translated/barcode.js:695 msgid "Scan Stock Container Into Location" msgstr "" -#: templates/js/translated/barcode.js:681 +#: templates/js/translated/barcode.js:697 msgid "Scan stock container barcode to check in to this location" msgstr "" -#: templates/js/translated/barcode.js:715 +#: templates/js/translated/barcode.js:731 msgid "Barcode does not match valid stock location" msgstr "" -#: templates/js/translated/barcode.js:758 +#: templates/js/translated/barcode.js:775 msgid "Check Into Location" msgstr "" -#: templates/js/translated/barcode.js:826 -#: templates/js/translated/barcode.js:835 +#: templates/js/translated/barcode.js:843 +#: templates/js/translated/barcode.js:852 msgid "Barcode does not match a valid location" msgstr "" @@ -9377,7 +9440,7 @@ msgstr "" #: templates/js/translated/bom.js:158 templates/js/translated/bom.js:669 #: templates/js/translated/modals.js:69 templates/js/translated/modals.js:608 #: templates/js/translated/modals.js:732 templates/js/translated/modals.js:1040 -#: templates/js/translated/purchase_order.js:739 templates/modals.html:15 +#: templates/js/translated/purchase_order.js:742 templates/modals.html:15 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 msgid "Close" msgstr "" @@ -9511,7 +9574,7 @@ msgid "No pricing available" msgstr "" #: templates/js/translated/bom.js:1143 templates/js/translated/build.js:1922 -#: templates/js/translated/sales_order.js:1771 +#: templates/js/translated/sales_order.js:1799 msgid "No Stock Available" msgstr "" @@ -9712,12 +9775,12 @@ msgid "No required tests for this build" msgstr "" #: templates/js/translated/build.js:1781 templates/js/translated/build.js:2803 -#: templates/js/translated/sales_order.js:1505 +#: templates/js/translated/sales_order.js:1544 msgid "Edit stock allocation" msgstr "" #: templates/js/translated/build.js:1783 templates/js/translated/build.js:2804 -#: templates/js/translated/sales_order.js:1506 +#: templates/js/translated/sales_order.js:1545 msgid "Delete stock allocation" msgstr "" @@ -9738,17 +9801,17 @@ msgid "Quantity Per" msgstr "" #: templates/js/translated/build.js:1916 -#: templates/js/translated/sales_order.js:1778 +#: templates/js/translated/sales_order.js:1806 msgid "Insufficient stock available" msgstr "" #: templates/js/translated/build.js:1918 -#: templates/js/translated/sales_order.js:1776 +#: templates/js/translated/sales_order.js:1804 msgid "Sufficient stock available" msgstr "" #: templates/js/translated/build.js:2014 -#: templates/js/translated/sales_order.js:1870 +#: templates/js/translated/sales_order.js:1905 msgid "Build stock" msgstr "" @@ -9757,23 +9820,23 @@ msgid "Order stock" msgstr "" #: templates/js/translated/build.js:2021 -#: templates/js/translated/sales_order.js:1863 +#: templates/js/translated/sales_order.js:1899 msgid "Allocate stock" msgstr "" #: templates/js/translated/build.js:2059 -#: templates/js/translated/purchase_order.js:564 -#: templates/js/translated/sales_order.js:1042 +#: templates/js/translated/purchase_order.js:567 +#: templates/js/translated/sales_order.js:1068 msgid "Select Parts" msgstr "" #: templates/js/translated/build.js:2060 -#: templates/js/translated/sales_order.js:1043 +#: templates/js/translated/sales_order.js:1069 msgid "You must select at least one part to allocate" msgstr "" #: templates/js/translated/build.js:2108 -#: templates/js/translated/sales_order.js:991 +#: templates/js/translated/sales_order.js:1017 msgid "Specify stock allocation quantity" msgstr "" @@ -9786,7 +9849,7 @@ msgid "All selected parts have been fully allocated" msgstr "" #: templates/js/translated/build.js:2202 -#: templates/js/translated/sales_order.js:1057 +#: templates/js/translated/sales_order.js:1083 msgid "Select source location (leave blank to take from all locations)" msgstr "" @@ -9795,12 +9858,12 @@ msgid "Allocate Stock Items to Build Order" msgstr "" #: templates/js/translated/build.js:2241 -#: templates/js/translated/sales_order.js:1154 +#: templates/js/translated/sales_order.js:1180 msgid "No matching stock locations" msgstr "" #: templates/js/translated/build.js:2314 -#: templates/js/translated/sales_order.js:1231 +#: templates/js/translated/sales_order.js:1257 msgid "No matching stock items" msgstr "" @@ -10116,7 +10179,7 @@ msgstr "" msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2010 templates/js/translated/search.js:267 +#: templates/js/translated/forms.js:2010 templates/js/translated/search.js:269 msgid "Searching" msgstr "" @@ -10144,7 +10207,7 @@ msgstr "" msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:460 +#: templates/js/translated/helpers.js:466 msgid "Notes updated" msgstr "" @@ -10271,40 +10334,40 @@ msgstr "" msgid "Notifications will load here" msgstr "" -#: templates/js/translated/order.js:69 +#: templates/js/translated/order.js:72 msgid "Add Extra Line Item" msgstr "" -#: templates/js/translated/order.js:106 +#: templates/js/translated/order.js:109 msgid "Export Order" msgstr "" -#: templates/js/translated/order.js:219 +#: templates/js/translated/order.js:222 msgid "Duplicate Line" msgstr "" -#: templates/js/translated/order.js:233 +#: templates/js/translated/order.js:236 msgid "Edit Line" msgstr "" -#: templates/js/translated/order.js:246 +#: templates/js/translated/order.js:249 msgid "Delete Line" msgstr "" -#: templates/js/translated/order.js:259 -#: templates/js/translated/purchase_order.js:1828 +#: templates/js/translated/order.js:262 +#: templates/js/translated/purchase_order.js:1895 msgid "No line items found" msgstr "" -#: templates/js/translated/order.js:332 +#: templates/js/translated/order.js:344 msgid "Duplicate line" msgstr "" -#: templates/js/translated/order.js:333 +#: templates/js/translated/order.js:345 msgid "Edit line" msgstr "" -#: templates/js/translated/order.js:337 +#: templates/js/translated/order.js:349 msgid "Delete line" msgstr "" @@ -10506,19 +10569,19 @@ msgid "No variants found" msgstr "" #: templates/js/translated/part.js:1351 -#: templates/js/translated/purchase_order.js:1500 +#: templates/js/translated/purchase_order.js:1567 msgid "No purchase orders found" msgstr "" #: templates/js/translated/part.js:1495 -#: templates/js/translated/purchase_order.js:1991 -#: templates/js/translated/return_order.js:695 -#: templates/js/translated/sales_order.js:1739 +#: templates/js/translated/purchase_order.js:2058 +#: templates/js/translated/return_order.js:698 +#: templates/js/translated/sales_order.js:1767 msgid "This line item is overdue" msgstr "" #: templates/js/translated/part.js:1541 -#: templates/js/translated/purchase_order.js:2049 +#: templates/js/translated/purchase_order.js:2125 msgid "Receive line item" msgstr "" @@ -10652,16 +10715,6 @@ msgstr "" msgid "No price break data available" msgstr "" -#: templates/js/translated/pricing.js:610 -#, python-brace-format -msgid "Edit ${human_name}" -msgstr "" - -#: templates/js/translated/pricing.js:611 -#, python-brace-format -msgid "Delete ${human_name}" -msgstr "" - #: templates/js/translated/pricing.js:737 msgid "No purchase history data available" msgstr "" @@ -10714,184 +10767,206 @@ msgstr "" msgid "Duplication Options" msgstr "" -#: templates/js/translated/purchase_order.js:384 +#: templates/js/translated/purchase_order.js:387 msgid "Complete Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:401 +#: templates/js/translated/purchase_order.js:404 #: templates/js/translated/return_order.js:165 -#: templates/js/translated/sales_order.js:431 +#: templates/js/translated/sales_order.js:435 msgid "Mark this order as complete?" msgstr "" -#: templates/js/translated/purchase_order.js:407 +#: templates/js/translated/purchase_order.js:410 msgid "All line items have been received" msgstr "" -#: templates/js/translated/purchase_order.js:412 +#: templates/js/translated/purchase_order.js:415 msgid "This order has line items which have not been marked as received." msgstr "" -#: templates/js/translated/purchase_order.js:413 -#: templates/js/translated/sales_order.js:445 +#: templates/js/translated/purchase_order.js:416 +#: templates/js/translated/sales_order.js:449 msgid "Completing this order means that the order and line items will no longer be editable." msgstr "" -#: templates/js/translated/purchase_order.js:436 +#: templates/js/translated/purchase_order.js:439 msgid "Cancel Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:441 +#: templates/js/translated/purchase_order.js:444 msgid "Are you sure you wish to cancel this purchase order?" msgstr "" -#: templates/js/translated/purchase_order.js:447 +#: templates/js/translated/purchase_order.js:450 msgid "This purchase order can not be cancelled" msgstr "" -#: templates/js/translated/purchase_order.js:468 +#: templates/js/translated/purchase_order.js:471 #: templates/js/translated/return_order.js:119 msgid "After placing this order, line items will no longer be editable." msgstr "" -#: templates/js/translated/purchase_order.js:473 +#: templates/js/translated/purchase_order.js:476 msgid "Issue Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:565 +#: templates/js/translated/purchase_order.js:568 msgid "At least one purchaseable part must be selected" msgstr "" -#: templates/js/translated/purchase_order.js:590 +#: templates/js/translated/purchase_order.js:593 msgid "Quantity to order" msgstr "" -#: templates/js/translated/purchase_order.js:599 +#: templates/js/translated/purchase_order.js:602 msgid "New supplier part" msgstr "" -#: templates/js/translated/purchase_order.js:617 +#: templates/js/translated/purchase_order.js:620 msgid "New purchase order" msgstr "" -#: templates/js/translated/purchase_order.js:649 +#: templates/js/translated/purchase_order.js:652 msgid "Add to purchase order" msgstr "" -#: templates/js/translated/purchase_order.js:793 +#: templates/js/translated/purchase_order.js:796 msgid "No matching supplier parts" msgstr "" -#: templates/js/translated/purchase_order.js:812 +#: templates/js/translated/purchase_order.js:815 msgid "No matching purchase orders" msgstr "" -#: templates/js/translated/purchase_order.js:991 +#: templates/js/translated/purchase_order.js:994 msgid "Select Line Items" msgstr "" -#: templates/js/translated/purchase_order.js:992 -#: templates/js/translated/return_order.js:435 +#: templates/js/translated/purchase_order.js:995 +#: templates/js/translated/return_order.js:438 msgid "At least one line item must be selected" msgstr "" -#: templates/js/translated/purchase_order.js:1012 -#: templates/js/translated/purchase_order.js:1125 -msgid "Add batch code" -msgstr "" - -#: templates/js/translated/purchase_order.js:1018 -#: templates/js/translated/purchase_order.js:1136 -msgid "Add serial numbers" -msgstr "" - -#: templates/js/translated/purchase_order.js:1033 +#: templates/js/translated/purchase_order.js:1023 msgid "Received Quantity" msgstr "" -#: templates/js/translated/purchase_order.js:1044 +#: templates/js/translated/purchase_order.js:1034 msgid "Quantity to receive" msgstr "" -#: templates/js/translated/purchase_order.js:1108 +#: templates/js/translated/purchase_order.js:1110 #: templates/js/translated/stock.js:2273 msgid "Stock Status" msgstr "" -#: templates/js/translated/purchase_order.js:1196 -msgid "Order Code" +#: templates/js/translated/purchase_order.js:1124 +msgid "Add barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1197 -msgid "Ordered" +#: templates/js/translated/purchase_order.js:1125 +msgid "Remove barcode" +msgstr "" + +#: templates/js/translated/purchase_order.js:1128 +msgid "Specify location" +msgstr "" + +#: templates/js/translated/purchase_order.js:1136 +msgid "Add batch code" +msgstr "" + +#: templates/js/translated/purchase_order.js:1147 +msgid "Add serial numbers" msgstr "" #: templates/js/translated/purchase_order.js:1199 +msgid "Serials" +msgstr "" + +#: templates/js/translated/purchase_order.js:1224 +msgid "Order Code" +msgstr "" + +#: templates/js/translated/purchase_order.js:1226 msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1222 -#: templates/js/translated/return_order.js:500 +#: templates/js/translated/purchase_order.js:1248 +#: templates/js/translated/return_order.js:503 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1223 +#: templates/js/translated/purchase_order.js:1249 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1527 +#: templates/js/translated/purchase_order.js:1317 +msgid "Scan Item Barcode" +msgstr "" + +#: templates/js/translated/purchase_order.js:1318 +msgid "Scan barcode on incoming item (must not match any existing stock items)" +msgstr "" + +#: templates/js/translated/purchase_order.js:1332 +msgid "Invalid barcode data" +msgstr "" + +#: templates/js/translated/purchase_order.js:1594 #: templates/js/translated/return_order.js:244 -#: templates/js/translated/sales_order.js:686 +#: templates/js/translated/sales_order.js:712 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1577 +#: templates/js/translated/purchase_order.js:1644 #: templates/js/translated/return_order.js:300 -#: templates/js/translated/sales_order.js:751 -#: templates/js/translated/sales_order.js:893 +#: templates/js/translated/sales_order.js:777 +#: templates/js/translated/sales_order.js:919 msgid "Items" msgstr "" -#: templates/js/translated/purchase_order.js:1676 +#: templates/js/translated/purchase_order.js:1743 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1694 +#: templates/js/translated/purchase_order.js:1761 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1754 -#: templates/js/translated/sales_order.js:1920 +#: templates/js/translated/purchase_order.js:1821 +#: templates/js/translated/sales_order.js:1959 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:1769 -#: templates/js/translated/return_order.js:419 -#: templates/js/translated/return_order.js:608 -#: templates/js/translated/sales_order.js:1933 +#: templates/js/translated/purchase_order.js:1836 +#: templates/js/translated/return_order.js:422 +#: templates/js/translated/return_order.js:611 +#: templates/js/translated/sales_order.js:1972 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:1780 -#: templates/js/translated/return_order.js:621 -#: templates/js/translated/sales_order.js:1944 +#: templates/js/translated/purchase_order.js:1847 +#: templates/js/translated/return_order.js:624 +#: templates/js/translated/sales_order.js:1983 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2053 -#: templates/js/translated/sales_order.js:1876 +#: templates/js/translated/purchase_order.js:2129 +#: templates/js/translated/sales_order.js:1913 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2054 -#: templates/js/translated/return_order.js:731 -#: templates/js/translated/sales_order.js:1877 +#: templates/js/translated/purchase_order.js:2130 +#: templates/js/translated/return_order.js:743 +#: templates/js/translated/sales_order.js:1914 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2055 -#: templates/js/translated/return_order.js:735 -#: templates/js/translated/sales_order.js:1881 +#: templates/js/translated/purchase_order.js:2131 +#: templates/js/translated/return_order.js:747 +#: templates/js/translated/sales_order.js:1920 msgid "Delete line item" msgstr "" @@ -10916,7 +10991,7 @@ msgid "No report templates found which match the selected items" msgstr "" #: templates/js/translated/return_order.js:40 -#: templates/js/translated/sales_order.js:52 +#: templates/js/translated/sales_order.js:53 msgid "Add Customer" msgstr "" @@ -10949,208 +11024,221 @@ msgid "No return orders found" msgstr "" #: templates/js/translated/return_order.js:258 -#: templates/js/translated/sales_order.js:700 +#: templates/js/translated/sales_order.js:726 msgid "Invalid Customer" msgstr "" -#: templates/js/translated/return_order.js:501 +#: templates/js/translated/return_order.js:504 msgid "Receive Return Order Items" msgstr "" -#: templates/js/translated/return_order.js:632 -#: templates/js/translated/sales_order.js:2080 +#: templates/js/translated/return_order.js:635 +#: templates/js/translated/sales_order.js:2119 msgid "No matching line items" msgstr "" -#: templates/js/translated/return_order.js:728 +#: templates/js/translated/return_order.js:740 msgid "Mark item as received" msgstr "" -#: templates/js/translated/sales_order.js:102 +#: templates/js/translated/sales_order.js:103 msgid "Create Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:117 +#: templates/js/translated/sales_order.js:118 msgid "Edit Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:226 +#: templates/js/translated/sales_order.js:230 msgid "No stock items have been allocated to this shipment" msgstr "" -#: templates/js/translated/sales_order.js:231 +#: templates/js/translated/sales_order.js:235 msgid "The following stock items will be shipped" msgstr "" -#: templates/js/translated/sales_order.js:271 +#: templates/js/translated/sales_order.js:275 msgid "Complete Shipment" msgstr "" -#: templates/js/translated/sales_order.js:291 +#: templates/js/translated/sales_order.js:295 msgid "Confirm Shipment" msgstr "" -#: templates/js/translated/sales_order.js:347 +#: templates/js/translated/sales_order.js:351 msgid "No pending shipments found" msgstr "" -#: templates/js/translated/sales_order.js:351 +#: templates/js/translated/sales_order.js:355 msgid "No stock items have been allocated to pending shipments" msgstr "" -#: templates/js/translated/sales_order.js:383 +#: templates/js/translated/sales_order.js:365 +msgid "Complete Shipments" +msgstr "" + +#: templates/js/translated/sales_order.js:387 msgid "Skip" msgstr "" -#: templates/js/translated/sales_order.js:444 +#: templates/js/translated/sales_order.js:448 msgid "This order has line items which have not been completed." msgstr "" -#: templates/js/translated/sales_order.js:468 +#: templates/js/translated/sales_order.js:470 +msgid "Issue this Sales Order?" +msgstr "" + +#: templates/js/translated/sales_order.js:475 +msgid "Issue Sales Order" +msgstr "" + +#: templates/js/translated/sales_order.js:494 msgid "Cancel Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:473 +#: templates/js/translated/sales_order.js:499 msgid "Cancelling this order means that the order will no longer be editable." msgstr "" -#: templates/js/translated/sales_order.js:527 +#: templates/js/translated/sales_order.js:553 msgid "Create New Shipment" msgstr "" -#: templates/js/translated/sales_order.js:637 +#: templates/js/translated/sales_order.js:663 msgid "No sales orders found" msgstr "" -#: templates/js/translated/sales_order.js:805 +#: templates/js/translated/sales_order.js:831 msgid "Edit shipment" msgstr "" -#: templates/js/translated/sales_order.js:808 +#: templates/js/translated/sales_order.js:834 msgid "Complete shipment" msgstr "" -#: templates/js/translated/sales_order.js:813 +#: templates/js/translated/sales_order.js:839 msgid "Delete shipment" msgstr "" -#: templates/js/translated/sales_order.js:830 +#: templates/js/translated/sales_order.js:856 msgid "Edit Shipment" msgstr "" -#: templates/js/translated/sales_order.js:845 +#: templates/js/translated/sales_order.js:871 msgid "Delete Shipment" msgstr "" -#: templates/js/translated/sales_order.js:878 +#: templates/js/translated/sales_order.js:904 msgid "No matching shipments found" msgstr "" -#: templates/js/translated/sales_order.js:888 +#: templates/js/translated/sales_order.js:914 msgid "Shipment Reference" msgstr "" -#: templates/js/translated/sales_order.js:912 +#: templates/js/translated/sales_order.js:938 +#: templates/js/translated/sales_order.js:1424 msgid "Not shipped" msgstr "" -#: templates/js/translated/sales_order.js:918 +#: templates/js/translated/sales_order.js:944 msgid "Tracking" msgstr "" -#: templates/js/translated/sales_order.js:922 +#: templates/js/translated/sales_order.js:948 msgid "Invoice" msgstr "" -#: templates/js/translated/sales_order.js:1090 +#: templates/js/translated/sales_order.js:1116 msgid "Add Shipment" msgstr "" -#: templates/js/translated/sales_order.js:1141 +#: templates/js/translated/sales_order.js:1167 msgid "Confirm stock allocation" msgstr "" -#: templates/js/translated/sales_order.js:1142 +#: templates/js/translated/sales_order.js:1168 msgid "Allocate Stock Items to Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:1346 +#: templates/js/translated/sales_order.js:1372 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/sales_order.js:1425 +#: templates/js/translated/sales_order.js:1464 msgid "Edit Stock Allocation" msgstr "" -#: templates/js/translated/sales_order.js:1439 +#: templates/js/translated/sales_order.js:1478 msgid "Confirm Delete Operation" msgstr "" -#: templates/js/translated/sales_order.js:1440 +#: templates/js/translated/sales_order.js:1479 msgid "Delete Stock Allocation" msgstr "" -#: templates/js/translated/sales_order.js:1482 -#: templates/js/translated/sales_order.js:1569 +#: templates/js/translated/sales_order.js:1521 +#: templates/js/translated/sales_order.js:1608 #: templates/js/translated/stock.js:1664 msgid "Shipped to customer" msgstr "" -#: templates/js/translated/sales_order.js:1490 -#: templates/js/translated/sales_order.js:1578 +#: templates/js/translated/sales_order.js:1529 +#: templates/js/translated/sales_order.js:1617 msgid "Stock location not specified" msgstr "" -#: templates/js/translated/sales_order.js:1860 +#: templates/js/translated/sales_order.js:1897 msgid "Allocate serial numbers" msgstr "" -#: templates/js/translated/sales_order.js:1866 +#: templates/js/translated/sales_order.js:1901 msgid "Purchase stock" msgstr "" -#: templates/js/translated/sales_order.js:1873 -#: templates/js/translated/sales_order.js:2058 +#: templates/js/translated/sales_order.js:1910 +#: templates/js/translated/sales_order.js:2097 msgid "Calculate price" msgstr "" -#: templates/js/translated/sales_order.js:1885 +#: templates/js/translated/sales_order.js:1924 msgid "Cannot be deleted as items have been shipped" msgstr "" -#: templates/js/translated/sales_order.js:1888 +#: templates/js/translated/sales_order.js:1927 msgid "Cannot be deleted as items have been allocated" msgstr "" -#: templates/js/translated/sales_order.js:1959 +#: templates/js/translated/sales_order.js:1998 msgid "Allocate Serial Numbers" msgstr "" -#: templates/js/translated/sales_order.js:2066 +#: templates/js/translated/sales_order.js:2105 msgid "Update Unit Price" msgstr "" -#: templates/js/translated/search.js:298 +#: templates/js/translated/search.js:300 msgid "No results" msgstr "" -#: templates/js/translated/search.js:320 templates/search.html:25 +#: templates/js/translated/search.js:322 templates/search.html:25 msgid "Enter search query" msgstr "" -#: templates/js/translated/search.js:370 +#: templates/js/translated/search.js:372 msgid "result" msgstr "" -#: templates/js/translated/search.js:370 +#: templates/js/translated/search.js:372 msgid "results" msgstr "" -#: templates/js/translated/search.js:380 +#: templates/js/translated/search.js:382 msgid "Minimize results" msgstr "" -#: templates/js/translated/search.js:383 +#: templates/js/translated/search.js:385 msgid "Remove results" msgstr "" @@ -11832,51 +11920,51 @@ msgstr "" msgid "Select File Format" msgstr "" -#: templates/js/translated/tables.js:539 +#: templates/js/translated/tables.js:549 msgid "Loading data" msgstr "" -#: templates/js/translated/tables.js:542 +#: templates/js/translated/tables.js:552 msgid "rows per page" msgstr "" -#: templates/js/translated/tables.js:547 +#: templates/js/translated/tables.js:557 msgid "Showing all rows" msgstr "" -#: templates/js/translated/tables.js:549 +#: templates/js/translated/tables.js:559 msgid "Showing" msgstr "" -#: templates/js/translated/tables.js:549 +#: templates/js/translated/tables.js:559 msgid "to" msgstr "" -#: templates/js/translated/tables.js:549 +#: templates/js/translated/tables.js:559 msgid "of" msgstr "" -#: templates/js/translated/tables.js:549 +#: templates/js/translated/tables.js:559 msgid "rows" msgstr "" -#: templates/js/translated/tables.js:556 +#: templates/js/translated/tables.js:566 msgid "No matching results" msgstr "" -#: templates/js/translated/tables.js:559 +#: templates/js/translated/tables.js:569 msgid "Hide/Show pagination" msgstr "" -#: templates/js/translated/tables.js:565 +#: templates/js/translated/tables.js:575 msgid "Toggle" msgstr "" -#: templates/js/translated/tables.js:568 +#: templates/js/translated/tables.js:578 msgid "Columns" msgstr "" -#: templates/js/translated/tables.js:571 +#: templates/js/translated/tables.js:581 msgid "All" msgstr "" diff --git a/InvenTree/locale/es/LC_MESSAGES/django.po b/InvenTree/locale/es/LC_MESSAGES/django.po index c973fa0687..9d60c55e24 100644 --- a/InvenTree/locale/es/LC_MESSAGES/django.po +++ b/InvenTree/locale/es/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-04-14 22:35+0000\n" -"PO-Revision-Date: 2023-04-15 18:23\n" +"POT-Creation-Date: 2023-04-17 14:13+0000\n" +"PO-Revision-Date: 2023-04-17 18:26\n" "Last-Translator: \n" "Language-Team: Spanish\n" "Language: es_ES\n" @@ -41,7 +41,7 @@ msgstr "Seleccionar una fecha" #: order/templates/order/so_sidebar.html:17 part/admin.py:41 #: part/models.py:2989 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/admin.py:121 stock/models.py:2126 stock/models.py:2234 +#: stock/admin.py:121 stock/models.py:2127 stock/models.py:2235 #: stock/serializers.py:317 stock/serializers.py:450 stock/serializers.py:531 #: stock/serializers.py:810 stock/serializers.py:909 stock/serializers.py:1041 #: stock/templates/stock/stock_sidebar.html:25 @@ -209,7 +209,7 @@ msgstr "Archivo no encontrado" msgid "Missing external link" msgstr "Falta enlace externo" -#: InvenTree/models.py:409 stock/models.py:2228 +#: InvenTree/models.py:409 stock/models.py:2229 #: templates/js/translated/attachment.js:109 #: templates/js/translated/attachment.js:296 msgid "Attachment" @@ -1833,23 +1833,24 @@ msgstr "" msgid "Completed Outputs" msgstr "" -#: common/files.py:62 -msgid "Unsupported file format: {ext.upper()}" +#: common/files.py:63 +#, python-brace-format +msgid "Unsupported file format: {fmt}" msgstr "" -#: common/files.py:64 +#: common/files.py:65 msgid "Error reading file (invalid encoding)" msgstr "" -#: common/files.py:69 +#: common/files.py:70 msgid "Error reading file (invalid format)" msgstr "" -#: common/files.py:71 +#: common/files.py:72 msgid "Error reading file (incorrect dimension)" msgstr "" -#: common/files.py:73 +#: common/files.py:74 msgid "Error reading file (data could be corrupted)" msgstr "" @@ -3481,7 +3482,7 @@ msgstr "Nombre del parámetro" #: company/models.py:394 #: report/templates/report/inventree_test_report_base.html:104 -#: stock/models.py:2221 templates/js/translated/company.js:857 +#: stock/models.py:2222 templates/js/translated/company.js:857 #: templates/js/translated/company.js:1062 templates/js/translated/part.js:1268 #: templates/js/translated/stock.js:1425 msgid "Value" @@ -3902,8 +3903,8 @@ msgstr "Eliminar piezas del proveedor" #: company/templates/company/manufacturer_part.html:183 #: part/templates/part/detail.html:393 part/templates/part/detail.html:423 #: templates/js/translated/forms.js:499 templates/js/translated/helpers.js:58 -#: templates/js/translated/part.js:313 templates/js/translated/stock.js:186 -#: users/models.py:243 +#: templates/js/translated/part.js:313 templates/js/translated/pricing.js:611 +#: templates/js/translated/stock.js:186 users/models.py:243 msgid "Delete" msgstr "" @@ -6191,8 +6192,7 @@ msgid "You do not have permission to edit the BOM." msgstr "" #: part/templates/part/bom.html:15 -#, python-format -msgid "The BOM for %(part)s has changed, and must be validated.
" +msgid "The BOM this part has been changed, and must be validated" msgstr "" #: part/templates/part/bom.html:17 @@ -6852,8 +6852,7 @@ msgid "Create new part variant" msgstr "" #: part/templates/part/variant_part.html:10 -#, python-format -msgid "Create a new variant of template '%(full_name)s'." +msgid "Create a new variant part from this template" msgstr "" #: part/templatetags/inventree_extras.py:187 @@ -7038,18 +7037,19 @@ msgstr "" msgid "No date found" msgstr "" -#: plugin/registry.py:450 -msgid "Plugin `{plg_name}` is not compatible with the current InvenTree version {version.inventreeVersion()}!" -msgstr "" - #: plugin/registry.py:452 #, python-brace-format -msgid "Plugin requires at least version {plg_i.MIN_VERSION}" +msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "" #: plugin/registry.py:454 #, python-brace-format -msgid "Plugin requires at most version {plg_i.MAX_VERSION}" +msgid "Plugin requires at least version {v}" +msgstr "" + +#: plugin/registry.py:456 +#, python-brace-format +msgid "Plugin requires at most version {v}" msgstr "" #: plugin/samples/integration/sample.py:39 @@ -7276,12 +7276,12 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:102 -#: stock/models.py:2209 templates/js/translated/stock.js:1398 +#: stock/models.py:2210 templates/js/translated/stock.js:1398 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:103 -#: stock/models.py:2215 +#: stock/models.py:2216 msgid "Result" msgstr "" @@ -7568,84 +7568,83 @@ msgstr "" msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1386 -#, python-brace-format -msgid "Serial numbers already exist: {exists}" +#: stock/models.py:1386 stock/serializers.py:349 +msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1456 +#: stock/models.py:1457 msgid "Stock item has been assigned to a sales order" msgstr "Artículo de stock ha sido asignado a un pedido de entrega" -#: stock/models.py:1459 +#: stock/models.py:1460 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1462 +#: stock/models.py:1463 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1465 +#: stock/models.py:1466 msgid "Stock item has been assigned to a customer" msgstr "El artículo de stock ha sido asignado a un cliente" -#: stock/models.py:1468 +#: stock/models.py:1469 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1471 +#: stock/models.py:1472 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1478 stock/serializers.py:946 +#: stock/models.py:1479 stock/serializers.py:946 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1482 +#: stock/models.py:1483 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1486 +#: stock/models.py:1487 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1490 +#: stock/models.py:1491 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1659 +#: stock/models.py:1660 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2127 +#: stock/models.py:2128 msgid "Entry notes" msgstr "" -#: stock/models.py:2185 +#: stock/models.py:2186 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2191 +#: stock/models.py:2192 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2210 +#: stock/models.py:2211 msgid "Test name" msgstr "" -#: stock/models.py:2216 +#: stock/models.py:2217 msgid "Test result" msgstr "" -#: stock/models.py:2222 +#: stock/models.py:2223 msgid "Test output value" msgstr "" -#: stock/models.py:2229 +#: stock/models.py:2230 msgid "Test result attachment" msgstr "" -#: stock/models.py:2235 +#: stock/models.py:2236 msgid "Test notes" msgstr "" @@ -7682,10 +7681,6 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "Los números de serie no se pueden asignar a esta pieza" -#: stock/serializers.py:349 -msgid "Serial numbers already exist" -msgstr "" - #: stock/serializers.py:389 msgid "Select stock item to install" msgstr "" @@ -8694,8 +8689,8 @@ msgid "Change Password" msgstr "" #: templates/InvenTree/settings/user.html:23 -#: templates/js/translated/helpers.js:53 templates/notes_buttons.html:3 -#: templates/notes_buttons.html:4 +#: templates/js/translated/helpers.js:53 templates/js/translated/pricing.js:610 +#: templates/notes_buttons.html:3 templates/notes_buttons.html:4 msgid "Edit" msgstr "Editar" @@ -10719,16 +10714,6 @@ msgstr "" msgid "No price break data available" msgstr "" -#: templates/js/translated/pricing.js:610 -#, python-brace-format -msgid "Edit ${human_name}" -msgstr "" - -#: templates/js/translated/pricing.js:611 -#, python-brace-format -msgid "Delete ${human_name}" -msgstr "" - #: templates/js/translated/pricing.js:737 msgid "No purchase history data available" msgstr "" diff --git a/InvenTree/locale/es_MX/LC_MESSAGES/django.po b/InvenTree/locale/es_MX/LC_MESSAGES/django.po index 3d85e8378e..1c59910bfa 100644 --- a/InvenTree/locale/es_MX/LC_MESSAGES/django.po +++ b/InvenTree/locale/es_MX/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-03-29 08:09+0000\n" +"POT-Creation-Date: 2023-04-17 14:52+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -18,15 +18,15 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: InvenTree/api.py:63 +#: InvenTree/api.py:65 msgid "API endpoint not found" msgstr "" -#: InvenTree/api.py:308 +#: InvenTree/api.py:299 msgid "User does not have permission to view this model" msgstr "" -#: InvenTree/exceptions.py:79 +#: InvenTree/exceptions.py:94 msgid "Error details can be found in the admin panel" msgstr "" @@ -34,25 +34,25 @@ msgstr "" msgid "Enter date" msgstr "" -#: InvenTree/fields.py:204 build/serializers.py:389 +#: InvenTree/fields.py:204 build/serializers.py:392 #: build/templates/build/sidebar.html:21 company/models.py:554 -#: company/templates/company/sidebar.html:35 order/models.py:1029 +#: company/templates/company/sidebar.html:35 order/models.py:1058 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:41 #: part/models.py:2989 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/admin.py:121 stock/models.py:2100 stock/models.py:2208 +#: stock/admin.py:121 stock/models.py:2127 stock/models.py:2235 #: stock/serializers.py:317 stock/serializers.py:450 stock/serializers.py:531 #: stock/serializers.py:810 stock/serializers.py:909 stock/serializers.py:1041 #: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:130 templates/js/translated/bom.js:1220 -#: templates/js/translated/company.js:1272 templates/js/translated/order.js:319 +#: templates/js/translated/company.js:1272 templates/js/translated/order.js:322 #: templates/js/translated/part.js:997 -#: templates/js/translated/purchase_order.js:2038 -#: templates/js/translated/return_order.js:715 -#: templates/js/translated/sales_order.js:937 -#: templates/js/translated/sales_order.js:1843 +#: templates/js/translated/purchase_order.js:2105 +#: templates/js/translated/return_order.js:718 +#: templates/js/translated/sales_order.js:963 +#: templates/js/translated/sales_order.js:1871 #: templates/js/translated/stock.js:1439 templates/js/translated/stock.js:2134 msgid "Notes" msgstr "" @@ -138,7 +138,7 @@ msgstr "" msgid "Supplied URL is not a valid image file" msgstr "" -#: InvenTree/helpers.py:602 order/models.py:409 order/models.py:565 +#: InvenTree/helpers.py:602 order/models.py:410 order/models.py:571 msgid "Invalid quantity provided" msgstr "" @@ -210,7 +210,7 @@ msgstr "" msgid "Missing external link" msgstr "" -#: InvenTree/models.py:409 stock/models.py:2202 +#: InvenTree/models.py:409 stock/models.py:2229 #: templates/js/translated/attachment.js:109 #: templates/js/translated/attachment.js:296 msgid "Attachment" @@ -220,20 +220,24 @@ msgstr "" msgid "Select file to attach" msgstr "" -#: InvenTree/models.py:416 common/models.py:2607 company/models.py:129 -#: company/models.py:305 company/models.py:541 order/models.py:201 -#: order/models.py:1377 order/models.py:1856 part/admin.py:39 +#: InvenTree/models.py:416 common/models.py:2621 company/models.py:129 +#: company/models.py:305 company/models.py:541 order/models.py:202 +#: order/models.py:1062 order/models.py:1412 part/admin.py:39 #: part/models.py:892 part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 #: stock/admin.py:120 templates/js/translated/company.js:962 -#: templates/js/translated/company.js:1261 templates/js/translated/part.js:1932 -#: templates/js/translated/purchase_order.js:1878 -#: templates/js/translated/sales_order.js:926 +#: templates/js/translated/company.js:1261 templates/js/translated/order.js:326 +#: templates/js/translated/part.js:1932 +#: templates/js/translated/purchase_order.js:1945 +#: templates/js/translated/purchase_order.js:2109 +#: templates/js/translated/return_order.js:722 +#: templates/js/translated/sales_order.js:952 +#: templates/js/translated/sales_order.js:1876 msgid "Link" msgstr "" #: InvenTree/models.py:417 build/models.py:293 part/models.py:893 -#: stock/models.py:727 +#: stock/models.py:728 msgid "Link to external URL" msgstr "" @@ -246,9 +250,9 @@ msgstr "" msgid "File comment" msgstr "" -#: InvenTree/models.py:426 InvenTree/models.py:427 common/models.py:2056 -#: common/models.py:2057 common/models.py:2280 common/models.py:2281 -#: common/models.py:2537 common/models.py:2538 part/models.py:2997 +#: InvenTree/models.py:426 InvenTree/models.py:427 common/models.py:2070 +#: common/models.py:2071 common/models.py:2294 common/models.py:2295 +#: common/models.py:2551 common/models.py:2552 part/models.py:2997 #: part/models.py:3085 part/models.py:3164 part/models.py:3184 #: plugin/models.py:270 plugin/models.py:271 #: report/templates/report/inventree_test_report_base.html:105 @@ -293,7 +297,7 @@ msgstr "" msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:571 InvenTree/models.py:572 common/models.py:2266 +#: InvenTree/models.py:571 InvenTree/models.py:572 common/models.py:2280 #: company/models.py:387 label/models.py:102 part/models.py:838 #: part/models.py:3332 plugin/models.py:94 report/models.py:158 #: templates/InvenTree/settings/mixins/urls.html:13 @@ -316,7 +320,7 @@ msgstr "" #: company/models.py:547 company/templates/company/company_base.html:72 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:108 label/models.py:109 -#: order/models.py:199 part/admin.py:194 part/admin.py:276 part/models.py:860 +#: order/models.py:200 part/admin.py:194 part/admin.py:276 part/models.py:860 #: part/models.py:3341 part/templates/part/category.html:81 #: part/templates/part/part_base.html:172 #: part/templates/part/part_scheduling.html:12 report/models.py:171 @@ -332,11 +336,11 @@ msgstr "" #: templates/js/translated/company.js:1236 templates/js/translated/part.js:1155 #: templates/js/translated/part.js:1597 templates/js/translated/part.js:1869 #: templates/js/translated/part.js:2348 templates/js/translated/part.js:2439 -#: templates/js/translated/purchase_order.js:1548 -#: templates/js/translated/purchase_order.js:1682 -#: templates/js/translated/purchase_order.js:1860 +#: templates/js/translated/purchase_order.js:1615 +#: templates/js/translated/purchase_order.js:1749 +#: templates/js/translated/purchase_order.js:1927 #: templates/js/translated/return_order.js:272 -#: templates/js/translated/sales_order.js:714 +#: templates/js/translated/sales_order.js:740 #: templates/js/translated/stock.js:1418 templates/js/translated/stock.js:1791 #: templates/js/translated/stock.js:2551 templates/js/translated/stock.js:2623 msgid "Description" @@ -363,7 +367,7 @@ msgstr "" msgid "Third party barcode data" msgstr "" -#: InvenTree/models.py:702 order/serializers.py:503 +#: InvenTree/models.py:702 msgid "Barcode Hash" msgstr "" @@ -375,11 +379,11 @@ msgstr "" msgid "Existing barcode found" msgstr "" -#: InvenTree/models.py:801 +#: InvenTree/models.py:802 msgid "Server Error" msgstr "" -#: InvenTree/models.py:802 +#: InvenTree/models.py:803 msgid "An error has been logged by the server." msgstr "" @@ -460,107 +464,107 @@ msgstr "" msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/settings.py:705 +#: InvenTree/settings.py:708 msgid "Czech" msgstr "" -#: InvenTree/settings.py:706 +#: InvenTree/settings.py:709 msgid "Danish" msgstr "" -#: InvenTree/settings.py:707 +#: InvenTree/settings.py:710 msgid "German" msgstr "" -#: InvenTree/settings.py:708 +#: InvenTree/settings.py:711 msgid "Greek" msgstr "" -#: InvenTree/settings.py:709 +#: InvenTree/settings.py:712 msgid "English" msgstr "" -#: InvenTree/settings.py:710 +#: InvenTree/settings.py:713 msgid "Spanish" msgstr "" -#: InvenTree/settings.py:711 +#: InvenTree/settings.py:714 msgid "Spanish (Mexican)" msgstr "" -#: InvenTree/settings.py:712 +#: InvenTree/settings.py:715 msgid "Farsi / Persian" msgstr "" -#: InvenTree/settings.py:713 +#: InvenTree/settings.py:716 msgid "French" msgstr "" -#: InvenTree/settings.py:714 +#: InvenTree/settings.py:717 msgid "Hebrew" msgstr "" -#: InvenTree/settings.py:715 +#: InvenTree/settings.py:718 msgid "Hungarian" msgstr "" -#: InvenTree/settings.py:716 +#: InvenTree/settings.py:719 msgid "Italian" msgstr "" -#: InvenTree/settings.py:717 +#: InvenTree/settings.py:720 msgid "Japanese" msgstr "" -#: InvenTree/settings.py:718 +#: InvenTree/settings.py:721 msgid "Korean" msgstr "" -#: InvenTree/settings.py:719 +#: InvenTree/settings.py:722 msgid "Dutch" msgstr "" -#: InvenTree/settings.py:720 +#: InvenTree/settings.py:723 msgid "Norwegian" msgstr "" -#: InvenTree/settings.py:721 +#: InvenTree/settings.py:724 msgid "Polish" msgstr "" -#: InvenTree/settings.py:722 +#: InvenTree/settings.py:725 msgid "Portuguese" msgstr "" -#: InvenTree/settings.py:723 +#: InvenTree/settings.py:726 msgid "Portuguese (Brazilian)" msgstr "" -#: InvenTree/settings.py:724 +#: InvenTree/settings.py:727 msgid "Russian" msgstr "" -#: InvenTree/settings.py:725 +#: InvenTree/settings.py:728 msgid "Slovenian" msgstr "" -#: InvenTree/settings.py:726 +#: InvenTree/settings.py:729 msgid "Swedish" msgstr "" -#: InvenTree/settings.py:727 +#: InvenTree/settings.py:730 msgid "Thai" msgstr "" -#: InvenTree/settings.py:728 +#: InvenTree/settings.py:731 msgid "Turkish" msgstr "" -#: InvenTree/settings.py:729 +#: InvenTree/settings.py:732 msgid "Vietnamese" msgstr "" -#: InvenTree/settings.py:730 +#: InvenTree/settings.py:733 msgid "Chinese" msgstr "" @@ -576,188 +580,189 @@ msgstr "" msgid "InvenTree system health checks failed" msgstr "" -#: InvenTree/status_codes.py:99 InvenTree/status_codes.py:140 -#: InvenTree/status_codes.py:313 InvenTree/status_codes.py:350 -#: InvenTree/status_codes.py:385 templates/js/translated/table_filters.js:417 +#: InvenTree/status_codes.py:139 InvenTree/status_codes.py:181 +#: InvenTree/status_codes.py:357 InvenTree/status_codes.py:394 +#: InvenTree/status_codes.py:429 templates/js/translated/table_filters.js:417 msgid "Pending" msgstr "" -#: InvenTree/status_codes.py:100 +#: InvenTree/status_codes.py:140 msgid "Placed" msgstr "" -#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:316 -#: InvenTree/status_codes.py:352 order/templates/order/order_base.html:142 -#: order/templates/order/sales_order_base.html:133 +#: InvenTree/status_codes.py:141 InvenTree/status_codes.py:360 +#: InvenTree/status_codes.py:396 order/templates/order/order_base.html:161 +#: order/templates/order/sales_order_base.html:161 msgid "Complete" msgstr "" -#: InvenTree/status_codes.py:102 InvenTree/status_codes.py:142 -#: InvenTree/status_codes.py:315 InvenTree/status_codes.py:353 +#: InvenTree/status_codes.py:142 InvenTree/status_codes.py:184 +#: InvenTree/status_codes.py:359 InvenTree/status_codes.py:397 msgid "Cancelled" msgstr "" -#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:143 -#: InvenTree/status_codes.py:183 +#: InvenTree/status_codes.py:143 InvenTree/status_codes.py:185 +#: InvenTree/status_codes.py:227 msgid "Lost" msgstr "" -#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144 -#: InvenTree/status_codes.py:186 +#: InvenTree/status_codes.py:144 InvenTree/status_codes.py:186 +#: InvenTree/status_codes.py:230 msgid "Returned" msgstr "" -#: InvenTree/status_codes.py:141 order/models.py:1260 -#: templates/js/translated/sales_order.js:1503 -#: templates/js/translated/sales_order.js:1818 -msgid "Shipped" -msgstr "" - -#: InvenTree/status_codes.py:179 -msgid "OK" -msgstr "" - -#: InvenTree/status_codes.py:180 -msgid "Attention needed" -msgstr "" - -#: InvenTree/status_codes.py:181 -msgid "Damaged" -msgstr "" - -#: InvenTree/status_codes.py:182 -msgid "Destroyed" -msgstr "" - -#: InvenTree/status_codes.py:184 -msgid "Rejected" -msgstr "" - -#: InvenTree/status_codes.py:185 -msgid "Quarantined" -msgstr "" - -#: InvenTree/status_codes.py:263 -msgid "Legacy stock tracking entry" -msgstr "" - -#: InvenTree/status_codes.py:265 -msgid "Stock item created" -msgstr "" - -#: InvenTree/status_codes.py:267 -msgid "Edited stock item" -msgstr "" - -#: InvenTree/status_codes.py:268 -msgid "Assigned serial number" -msgstr "" - -#: InvenTree/status_codes.py:270 -msgid "Stock counted" -msgstr "" - -#: InvenTree/status_codes.py:271 -msgid "Stock manually added" -msgstr "" - -#: InvenTree/status_codes.py:272 -msgid "Stock manually removed" -msgstr "" - -#: InvenTree/status_codes.py:274 -msgid "Location changed" -msgstr "" - -#: InvenTree/status_codes.py:276 -msgid "Installed into assembly" -msgstr "" - -#: InvenTree/status_codes.py:277 -msgid "Removed from assembly" -msgstr "" - -#: InvenTree/status_codes.py:279 -msgid "Installed component item" -msgstr "" - -#: InvenTree/status_codes.py:280 -msgid "Removed component item" -msgstr "" - -#: InvenTree/status_codes.py:282 -msgid "Split from parent item" -msgstr "" - -#: InvenTree/status_codes.py:283 -msgid "Split child item" -msgstr "" - -#: InvenTree/status_codes.py:285 templates/js/translated/stock.js:2213 -msgid "Merged stock items" -msgstr "" - -#: InvenTree/status_codes.py:287 -msgid "Converted to variant" -msgstr "" - -#: InvenTree/status_codes.py:289 templates/js/translated/table_filters.js:273 -msgid "Sent to customer" -msgstr "" - -#: InvenTree/status_codes.py:290 -msgid "Returned from customer" -msgstr "" - -#: InvenTree/status_codes.py:292 -msgid "Build order output created" -msgstr "" - -#: InvenTree/status_codes.py:293 -msgid "Build order output completed" -msgstr "" - -#: InvenTree/status_codes.py:294 -msgid "Consumed by build order" -msgstr "" - -#: InvenTree/status_codes.py:296 -msgid "Shipped against Sales Order" -msgstr "" - -#: InvenTree/status_codes.py:298 -msgid "Received against Purchase Order" -msgstr "" - -#: InvenTree/status_codes.py:300 -msgid "Returned against Return Order" -msgstr "" - -#: InvenTree/status_codes.py:314 -msgid "Production" -msgstr "" - -#: InvenTree/status_codes.py:351 +#: InvenTree/status_codes.py:182 InvenTree/status_codes.py:395 msgid "In Progress" msgstr "" -#: InvenTree/status_codes.py:386 +#: InvenTree/status_codes.py:183 order/models.py:1295 +#: templates/js/translated/sales_order.js:1418 +#: templates/js/translated/sales_order.js:1542 +#: templates/js/translated/sales_order.js:1846 +msgid "Shipped" +msgstr "" + +#: InvenTree/status_codes.py:223 +msgid "OK" +msgstr "" + +#: InvenTree/status_codes.py:224 +msgid "Attention needed" +msgstr "" + +#: InvenTree/status_codes.py:225 +msgid "Damaged" +msgstr "" + +#: InvenTree/status_codes.py:226 +msgid "Destroyed" +msgstr "" + +#: InvenTree/status_codes.py:228 +msgid "Rejected" +msgstr "" + +#: InvenTree/status_codes.py:229 +msgid "Quarantined" +msgstr "" + +#: InvenTree/status_codes.py:307 +msgid "Legacy stock tracking entry" +msgstr "" + +#: InvenTree/status_codes.py:309 +msgid "Stock item created" +msgstr "" + +#: InvenTree/status_codes.py:311 +msgid "Edited stock item" +msgstr "" + +#: InvenTree/status_codes.py:312 +msgid "Assigned serial number" +msgstr "" + +#: InvenTree/status_codes.py:314 +msgid "Stock counted" +msgstr "" + +#: InvenTree/status_codes.py:315 +msgid "Stock manually added" +msgstr "" + +#: InvenTree/status_codes.py:316 +msgid "Stock manually removed" +msgstr "" + +#: InvenTree/status_codes.py:318 +msgid "Location changed" +msgstr "" + +#: InvenTree/status_codes.py:320 +msgid "Installed into assembly" +msgstr "" + +#: InvenTree/status_codes.py:321 +msgid "Removed from assembly" +msgstr "" + +#: InvenTree/status_codes.py:323 +msgid "Installed component item" +msgstr "" + +#: InvenTree/status_codes.py:324 +msgid "Removed component item" +msgstr "" + +#: InvenTree/status_codes.py:326 +msgid "Split from parent item" +msgstr "" + +#: InvenTree/status_codes.py:327 +msgid "Split child item" +msgstr "" + +#: InvenTree/status_codes.py:329 templates/js/translated/stock.js:2213 +msgid "Merged stock items" +msgstr "" + +#: InvenTree/status_codes.py:331 +msgid "Converted to variant" +msgstr "" + +#: InvenTree/status_codes.py:333 templates/js/translated/table_filters.js:273 +msgid "Sent to customer" +msgstr "" + +#: InvenTree/status_codes.py:334 +msgid "Returned from customer" +msgstr "" + +#: InvenTree/status_codes.py:336 +msgid "Build order output created" +msgstr "" + +#: InvenTree/status_codes.py:337 +msgid "Build order output completed" +msgstr "" + +#: InvenTree/status_codes.py:338 +msgid "Consumed by build order" +msgstr "" + +#: InvenTree/status_codes.py:340 +msgid "Shipped against Sales Order" +msgstr "" + +#: InvenTree/status_codes.py:342 +msgid "Received against Purchase Order" +msgstr "" + +#: InvenTree/status_codes.py:344 +msgid "Returned against Return Order" +msgstr "" + +#: InvenTree/status_codes.py:358 +msgid "Production" +msgstr "" + +#: InvenTree/status_codes.py:430 msgid "Return" msgstr "" -#: InvenTree/status_codes.py:387 +#: InvenTree/status_codes.py:431 msgid "Repair" msgstr "" -#: InvenTree/status_codes.py:388 +#: InvenTree/status_codes.py:432 msgid "Refund" msgstr "" -#: InvenTree/status_codes.py:389 +#: InvenTree/status_codes.py:433 msgid "Replace" msgstr "" -#: InvenTree/status_codes.py:390 +#: InvenTree/status_codes.py:434 msgid "Reject" msgstr "" @@ -801,7 +806,7 @@ msgstr "" msgid "About InvenTree" msgstr "" -#: build/api.py:245 +#: build/api.py:221 msgid "Build must be cancelled before it can be deleted" msgstr "" @@ -821,7 +826,7 @@ msgstr "" #: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221 #: templates/InvenTree/search.html:141 #: templates/InvenTree/settings/sidebar.html:49 -#: templates/js/translated/search.js:214 users/models.py:42 +#: templates/js/translated/search.js:216 users/models.py:42 msgid "Build Orders" msgstr "" @@ -833,27 +838,27 @@ msgstr "" msgid "Build Order Reference" msgstr "" -#: build/models.py:158 order/models.py:326 order/models.py:722 -#: order/models.py:1027 order/models.py:1638 part/admin.py:278 +#: build/models.py:158 order/models.py:327 order/models.py:734 +#: order/models.py:1056 order/models.py:1673 part/admin.py:278 #: part/models.py:3602 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_po_report_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:26 #: report/templates/report/inventree_so_report_base.html:28 #: templates/js/translated/bom.js:739 templates/js/translated/bom.js:913 -#: templates/js/translated/build.js:1847 templates/js/translated/order.js:269 +#: templates/js/translated/build.js:1847 templates/js/translated/order.js:272 #: templates/js/translated/pricing.js:368 -#: templates/js/translated/purchase_order.js:1903 -#: templates/js/translated/return_order.js:668 -#: templates/js/translated/sales_order.js:1682 +#: templates/js/translated/purchase_order.js:1970 +#: templates/js/translated/return_order.js:671 +#: templates/js/translated/sales_order.js:1710 msgid "Reference" msgstr "" #: build/models.py:169 -msgid "Brief description of the build" +msgid "Brief description of the build (optional)" msgstr "" -#: build/models.py:177 build/templates/build/build_base.html:172 +#: build/models.py:177 build/templates/build/build_base.html:189 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "" @@ -862,9 +867,9 @@ msgstr "" msgid "BuildOrder to which this build is allocated" msgstr "" -#: build/models.py:183 build/templates/build/build_base.html:80 +#: build/models.py:183 build/templates/build/build_base.html:98 #: build/templates/build/detail.html:29 company/models.py:720 -#: order/models.py:1123 order/models.py:1239 order/models.py:1240 +#: order/models.py:1158 order/models.py:1274 order/models.py:1275 #: part/models.py:382 part/models.py:2849 part/models.py:2963 #: part/models.py:3103 part/models.py:3122 part/models.py:3141 #: part/models.py:3162 part/models.py:3254 part/models.py:3375 @@ -885,7 +890,7 @@ msgstr "" #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 #: templates/email/overdue_build_order.html:16 -#: templates/js/translated/barcode.js:502 templates/js/translated/bom.js:601 +#: templates/js/translated/barcode.js:516 templates/js/translated/bom.js:601 #: templates/js/translated/bom.js:738 templates/js/translated/bom.js:857 #: templates/js/translated/build.js:1230 templates/js/translated/build.js:1714 #: templates/js/translated/build.js:2213 templates/js/translated/build.js:2615 @@ -895,16 +900,16 @@ msgstr "" #: templates/js/translated/company.js:1154 templates/js/translated/part.js:1582 #: templates/js/translated/part.js:1648 templates/js/translated/part.js:1838 #: templates/js/translated/pricing.js:351 -#: templates/js/translated/purchase_order.js:694 -#: templates/js/translated/purchase_order.js:1195 -#: templates/js/translated/purchase_order.js:1681 -#: templates/js/translated/purchase_order.js:1845 -#: templates/js/translated/return_order.js:482 -#: templates/js/translated/return_order.js:649 -#: templates/js/translated/sales_order.js:235 -#: templates/js/translated/sales_order.js:1068 -#: templates/js/translated/sales_order.js:1454 -#: templates/js/translated/sales_order.js:1666 +#: templates/js/translated/purchase_order.js:697 +#: templates/js/translated/purchase_order.js:1223 +#: templates/js/translated/purchase_order.js:1748 +#: templates/js/translated/purchase_order.js:1912 +#: templates/js/translated/return_order.js:485 +#: templates/js/translated/return_order.js:652 +#: templates/js/translated/sales_order.js:239 +#: templates/js/translated/sales_order.js:1094 +#: templates/js/translated/sales_order.js:1493 +#: templates/js/translated/sales_order.js:1694 #: templates/js/translated/stock.js:622 templates/js/translated/stock.js:788 #: templates/js/translated/stock.js:1000 templates/js/translated/stock.js:1747 #: templates/js/translated/stock.js:2649 templates/js/translated/stock.js:2873 @@ -924,9 +929,9 @@ msgstr "" msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:205 build/serializers.py:825 +#: build/models.py:205 build/serializers.py:828 #: templates/js/translated/build.js:2201 -#: templates/js/translated/sales_order.js:1056 +#: templates/js/translated/sales_order.js:1082 msgid "Source Location" msgstr "" @@ -966,19 +971,19 @@ msgstr "" msgid "Build status code" msgstr "" -#: build/models.py:248 build/serializers.py:226 order/serializers.py:481 -#: stock/models.py:731 templates/js/translated/purchase_order.js:1058 +#: build/models.py:248 build/serializers.py:229 order/serializers.py:487 +#: stock/models.py:732 templates/js/translated/purchase_order.js:1048 msgid "Batch Code" msgstr "" -#: build/models.py:252 build/serializers.py:227 +#: build/models.py:252 build/serializers.py:230 msgid "Batch code for this build output" msgstr "" -#: build/models.py:255 order/models.py:209 part/models.py:1028 -#: part/templates/part/part_base.html:319 +#: build/models.py:255 order/models.py:210 part/models.py:1028 +#: part/templates/part/part_base.html:312 #: templates/js/translated/return_order.js:285 -#: templates/js/translated/sales_order.js:727 +#: templates/js/translated/sales_order.js:753 msgid "Creation Date" msgstr "" @@ -990,7 +995,7 @@ msgstr "" msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:263 order/models.py:376 order/models.py:1681 +#: build/models.py:263 order/models.py:377 order/models.py:1716 #: templates/js/translated/build.js:2700 msgid "Completion Date" msgstr "" @@ -1007,15 +1012,15 @@ msgstr "" msgid "User who issued this build order" msgstr "" -#: build/models.py:286 build/templates/build/build_base.html:193 -#: build/templates/build/detail.html:122 order/models.py:223 -#: order/templates/order/order_base.html:194 -#: order/templates/order/return_order_base.html:162 -#: order/templates/order/sales_order_base.html:193 part/models.py:1032 -#: part/templates/part/part_base.html:399 +#: build/models.py:286 build/templates/build/build_base.html:210 +#: build/templates/build/detail.html:122 order/models.py:224 +#: order/templates/order/order_base.html:213 +#: order/templates/order/return_order_base.html:183 +#: order/templates/order/sales_order_base.html:221 part/models.py:1032 +#: part/templates/part/part_base.html:392 #: report/templates/report/inventree_build_order_base.html:158 #: templates/js/translated/build.js:2672 -#: templates/js/translated/purchase_order.js:1593 +#: templates/js/translated/purchase_order.js:1660 #: templates/js/translated/return_order.js:305 #: templates/js/translated/table_filters.js:391 msgid "Responsible" @@ -1027,9 +1032,9 @@ msgstr "" #: build/models.py:292 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 -#: company/templates/company/supplier_part.html:188 -#: part/templates/part/part_base.html:392 stock/models.py:725 -#: stock/templates/stock/item_base.html:206 +#: company/templates/company/supplier_part.html:182 +#: part/templates/part/part_base.html:385 stock/models.py:726 +#: stock/templates/stock/item_base.html:201 msgid "External Link" msgstr "" @@ -1075,11 +1080,11 @@ msgstr "" msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1209 order/models.py:1515 +#: build/models.py:1209 order/models.py:1550 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1215 order/models.py:1518 +#: build/models.py:1215 order/models.py:1553 msgid "Allocation quantity must be greater than zero" msgstr "" @@ -1091,7 +1096,7 @@ msgstr "" msgid "Selected stock item not found in BOM" msgstr "" -#: build/models.py:1347 stock/templates/stock/item_base.html:175 +#: build/models.py:1347 stock/templates/stock/item_base.html:170 #: templates/InvenTree/search.html:139 templates/js/translated/build.js:2588 #: templates/navbar.html:38 msgid "Build" @@ -1101,19 +1106,19 @@ msgstr "" msgid "Build to allocate parts" msgstr "" -#: build/models.py:1364 build/serializers.py:674 order/serializers.py:1013 -#: order/serializers.py:1034 stock/serializers.py:388 stock/serializers.py:741 +#: build/models.py:1364 build/serializers.py:677 order/serializers.py:1035 +#: order/serializers.py:1056 stock/serializers.py:388 stock/serializers.py:741 #: stock/serializers.py:867 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:200 +#: stock/templates/stock/item_base.html:195 #: templates/js/translated/build.js:801 templates/js/translated/build.js:806 #: templates/js/translated/build.js:2215 templates/js/translated/build.js:2785 -#: templates/js/translated/sales_order.js:236 -#: templates/js/translated/sales_order.js:1069 -#: templates/js/translated/sales_order.js:1367 -#: templates/js/translated/sales_order.js:1372 -#: templates/js/translated/sales_order.js:1461 -#: templates/js/translated/sales_order.js:1551 +#: templates/js/translated/sales_order.js:240 +#: templates/js/translated/sales_order.js:1095 +#: templates/js/translated/sales_order.js:1394 +#: templates/js/translated/sales_order.js:1399 +#: templates/js/translated/sales_order.js:1500 +#: templates/js/translated/sales_order.js:1590 #: templates/js/translated/stock.js:623 templates/js/translated/stock.js:789 #: templates/js/translated/stock.js:2756 msgid "Stock Item" @@ -1123,10 +1128,10 @@ msgstr "" msgid "Source stock item" msgstr "" -#: build/models.py:1377 build/serializers.py:194 -#: build/templates/build/build_base.html:85 -#: build/templates/build/detail.html:34 common/models.py:2088 -#: order/models.py:1013 order/models.py:1559 order/serializers.py:1187 +#: build/models.py:1377 build/serializers.py:197 +#: build/templates/build/build_base.html:103 +#: build/templates/build/detail.html:34 common/models.py:2102 +#: order/models.py:1042 order/models.py:1594 order/serializers.py:1209 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:277 #: part/forms.py:47 part/models.py:2976 part/models.py:3583 #: part/templates/part/part_pricing.html:16 @@ -1138,31 +1143,32 @@ msgstr "" #: report/templates/report/inventree_test_report_base.html:90 #: report/templates/report/inventree_test_report_base.html:170 #: stock/admin.py:103 stock/serializers.py:281 -#: stock/templates/stock/item_base.html:293 -#: stock/templates/stock/item_base.html:301 +#: stock/templates/stock/item_base.html:288 +#: stock/templates/stock/item_base.html:296 +#: stock/templates/stock/item_base.html:343 #: templates/email/build_order_completed.html:18 -#: templates/js/translated/barcode.js:504 templates/js/translated/bom.js:740 +#: templates/js/translated/barcode.js:518 templates/js/translated/bom.js:740 #: templates/js/translated/bom.js:921 templates/js/translated/build.js:477 #: templates/js/translated/build.js:638 templates/js/translated/build.js:828 #: templates/js/translated/build.js:1252 templates/js/translated/build.js:1740 #: templates/js/translated/build.js:2216 #: templates/js/translated/company.js:1406 #: templates/js/translated/model_renderers.js:201 -#: templates/js/translated/order.js:276 templates/js/translated/part.js:878 +#: templates/js/translated/order.js:279 templates/js/translated/part.js:878 #: templates/js/translated/part.js:1446 templates/js/translated/part.js:2876 #: templates/js/translated/pricing.js:363 #: templates/js/translated/pricing.js:456 #: templates/js/translated/pricing.js:504 #: templates/js/translated/pricing.js:598 -#: templates/js/translated/purchase_order.js:697 -#: templates/js/translated/purchase_order.js:1685 -#: templates/js/translated/purchase_order.js:1909 -#: templates/js/translated/sales_order.js:252 -#: templates/js/translated/sales_order.js:1070 -#: templates/js/translated/sales_order.js:1386 -#: templates/js/translated/sales_order.js:1467 -#: templates/js/translated/sales_order.js:1557 -#: templates/js/translated/sales_order.js:1688 +#: templates/js/translated/purchase_order.js:700 +#: templates/js/translated/purchase_order.js:1752 +#: templates/js/translated/purchase_order.js:1976 +#: templates/js/translated/sales_order.js:256 +#: templates/js/translated/sales_order.js:1096 +#: templates/js/translated/sales_order.js:1413 +#: templates/js/translated/sales_order.js:1506 +#: templates/js/translated/sales_order.js:1596 +#: templates/js/translated/sales_order.js:1716 #: templates/js/translated/stock.js:494 templates/js/translated/stock.js:648 #: templates/js/translated/stock.js:819 templates/js/translated/stock.js:2800 #: templates/js/translated/stock.js:2885 @@ -1181,255 +1187,256 @@ msgstr "" msgid "Destination stock item" msgstr "" -#: build/serializers.py:145 build/serializers.py:703 +#: build/serializers.py:148 build/serializers.py:706 #: templates/js/translated/build.js:1240 msgid "Build Output" msgstr "" -#: build/serializers.py:157 +#: build/serializers.py:160 msgid "Build output does not match the parent build" msgstr "" -#: build/serializers.py:161 +#: build/serializers.py:164 msgid "Output part does not match BuildOrder part" msgstr "" -#: build/serializers.py:165 +#: build/serializers.py:168 msgid "This build output has already been completed" msgstr "" -#: build/serializers.py:176 +#: build/serializers.py:179 msgid "This build output is not fully allocated" msgstr "" -#: build/serializers.py:195 +#: build/serializers.py:198 msgid "Enter quantity for build output" msgstr "" -#: build/serializers.py:209 build/serializers.py:694 order/models.py:407 -#: order/serializers.py:354 order/serializers.py:476 part/serializers.py:1088 -#: part/serializers.py:1409 stock/models.py:585 stock/models.py:1344 +#: build/serializers.py:212 build/serializers.py:697 order/models.py:408 +#: order/serializers.py:360 order/serializers.py:482 part/serializers.py:1088 +#: part/serializers.py:1409 stock/models.py:586 stock/models.py:1370 #: stock/serializers.py:290 msgid "Quantity must be greater than zero" msgstr "" -#: build/serializers.py:216 +#: build/serializers.py:219 msgid "Integer quantity required for trackable parts" msgstr "" -#: build/serializers.py:219 +#: build/serializers.py:222 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "" -#: build/serializers.py:233 order/serializers.py:489 order/serializers.py:1191 -#: stock/serializers.py:299 templates/js/translated/purchase_order.js:1069 +#: build/serializers.py:236 order/serializers.py:495 order/serializers.py:1213 +#: stock/serializers.py:299 templates/js/translated/purchase_order.js:1072 #: templates/js/translated/stock.js:301 templates/js/translated/stock.js:495 msgid "Serial Numbers" msgstr "" -#: build/serializers.py:234 +#: build/serializers.py:237 msgid "Enter serial numbers for build outputs" msgstr "" -#: build/serializers.py:247 +#: build/serializers.py:250 msgid "Auto Allocate Serial Numbers" msgstr "" -#: build/serializers.py:248 +#: build/serializers.py:251 msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:283 stock/api.py:647 +#: build/serializers.py:286 stock/api.py:630 msgid "The following serial numbers already exist or are invalid" msgstr "" -#: build/serializers.py:332 build/serializers.py:401 +#: build/serializers.py:335 build/serializers.py:404 msgid "A list of build outputs must be provided" msgstr "" -#: build/serializers.py:371 order/serializers.py:462 order/serializers.py:581 -#: order/serializers.py:1540 part/serializers.py:855 stock/serializers.py:310 +#: build/serializers.py:374 order/serializers.py:468 order/serializers.py:589 +#: order/serializers.py:1562 part/serializers.py:855 stock/serializers.py:310 #: stock/serializers.py:445 stock/serializers.py:526 stock/serializers.py:902 -#: stock/serializers.py:1144 stock/templates/stock/item_base.html:391 -#: templates/js/translated/barcode.js:503 -#: templates/js/translated/barcode.js:747 templates/js/translated/build.js:813 +#: stock/serializers.py:1144 stock/templates/stock/item_base.html:384 +#: templates/js/translated/barcode.js:517 +#: templates/js/translated/barcode.js:764 templates/js/translated/build.js:813 #: templates/js/translated/build.js:1755 -#: templates/js/translated/purchase_order.js:1096 -#: templates/js/translated/sales_order.js:1379 -#: templates/js/translated/sales_order.js:1478 -#: templates/js/translated/sales_order.js:1486 -#: templates/js/translated/sales_order.js:1565 +#: templates/js/translated/purchase_order.js:1097 +#: templates/js/translated/purchase_order.js:1187 +#: templates/js/translated/sales_order.js:1406 +#: templates/js/translated/sales_order.js:1517 +#: templates/js/translated/sales_order.js:1525 +#: templates/js/translated/sales_order.js:1604 #: templates/js/translated/stock.js:624 templates/js/translated/stock.js:790 #: templates/js/translated/stock.js:1002 templates/js/translated/stock.js:1911 #: templates/js/translated/stock.js:2663 msgid "Location" msgstr "" -#: build/serializers.py:372 +#: build/serializers.py:375 msgid "Location for completed build outputs" msgstr "" -#: build/serializers.py:378 build/templates/build/build_base.html:145 -#: build/templates/build/detail.html:62 order/models.py:748 -#: order/models.py:1664 order/serializers.py:499 stock/admin.py:106 -#: stock/templates/stock/item_base.html:424 -#: templates/js/translated/barcode.js:236 templates/js/translated/build.js:2644 -#: templates/js/translated/purchase_order.js:1200 -#: templates/js/translated/purchase_order.js:1552 +#: build/serializers.py:381 build/templates/build/build_base.html:157 +#: build/templates/build/detail.html:62 order/models.py:760 +#: order/models.py:1699 order/serializers.py:505 stock/admin.py:106 +#: stock/templates/stock/item_base.html:417 +#: templates/js/translated/barcode.js:239 templates/js/translated/build.js:2644 +#: templates/js/translated/purchase_order.js:1227 +#: templates/js/translated/purchase_order.js:1619 #: templates/js/translated/return_order.js:277 -#: templates/js/translated/sales_order.js:719 +#: templates/js/translated/sales_order.js:745 #: templates/js/translated/stock.js:1886 templates/js/translated/stock.js:2774 #: templates/js/translated/stock.js:2901 msgid "Status" msgstr "" -#: build/serializers.py:384 +#: build/serializers.py:387 msgid "Accept Incomplete Allocation" msgstr "" -#: build/serializers.py:385 +#: build/serializers.py:388 msgid "Complete outputs if stock has not been fully allocated" msgstr "" -#: build/serializers.py:454 +#: build/serializers.py:457 msgid "Remove Allocated Stock" msgstr "" -#: build/serializers.py:455 +#: build/serializers.py:458 msgid "Subtract any stock which has already been allocated to this build" msgstr "" -#: build/serializers.py:461 +#: build/serializers.py:464 msgid "Remove Incomplete Outputs" msgstr "" -#: build/serializers.py:462 +#: build/serializers.py:465 msgid "Delete any build outputs which have not been completed" msgstr "" -#: build/serializers.py:490 +#: build/serializers.py:493 msgid "Accept as consumed by this build order" msgstr "" -#: build/serializers.py:491 +#: build/serializers.py:494 msgid "Deallocate before completing this build order" msgstr "" -#: build/serializers.py:514 +#: build/serializers.py:517 msgid "Overallocated Stock" msgstr "" -#: build/serializers.py:516 +#: build/serializers.py:519 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "" -#: build/serializers.py:526 +#: build/serializers.py:529 msgid "Some stock items have been overallocated" msgstr "" -#: build/serializers.py:531 +#: build/serializers.py:534 msgid "Accept Unallocated" msgstr "" -#: build/serializers.py:532 +#: build/serializers.py:535 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "" -#: build/serializers.py:542 templates/js/translated/build.js:265 +#: build/serializers.py:545 templates/js/translated/build.js:265 msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:547 order/serializers.py:237 order/serializers.py:1081 +#: build/serializers.py:550 order/serializers.py:242 order/serializers.py:1103 msgid "Accept Incomplete" msgstr "" -#: build/serializers.py:548 +#: build/serializers.py:551 msgid "Accept that the required number of build outputs have not been completed" msgstr "" -#: build/serializers.py:558 templates/js/translated/build.js:269 +#: build/serializers.py:561 templates/js/translated/build.js:269 msgid "Required build quantity has not been completed" msgstr "" -#: build/serializers.py:567 templates/js/translated/build.js:253 +#: build/serializers.py:570 templates/js/translated/build.js:253 msgid "Build order has incomplete outputs" msgstr "" -#: build/serializers.py:597 build/serializers.py:651 part/models.py:3490 +#: build/serializers.py:600 build/serializers.py:654 part/models.py:3490 #: part/models.py:3873 msgid "BOM Item" msgstr "" -#: build/serializers.py:607 +#: build/serializers.py:610 msgid "Build output" msgstr "" -#: build/serializers.py:615 +#: build/serializers.py:618 msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:665 +#: build/serializers.py:668 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:680 stock/serializers.py:754 +#: build/serializers.py:683 stock/serializers.py:754 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:729 order/serializers.py:1071 +#: build/serializers.py:732 order/serializers.py:1093 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:735 +#: build/serializers.py:738 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:742 +#: build/serializers.py:745 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:747 +#: build/serializers.py:750 msgid "This stock item has already been allocated to this build output" msgstr "" -#: build/serializers.py:770 order/serializers.py:1355 +#: build/serializers.py:773 order/serializers.py:1377 msgid "Allocation items must be provided" msgstr "" -#: build/serializers.py:826 +#: build/serializers.py:829 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "" -#: build/serializers.py:834 +#: build/serializers.py:837 msgid "Exclude Location" msgstr "" -#: build/serializers.py:835 +#: build/serializers.py:838 msgid "Exclude stock items from this selected location" msgstr "" -#: build/serializers.py:840 +#: build/serializers.py:843 msgid "Interchangeable Stock" msgstr "" -#: build/serializers.py:841 +#: build/serializers.py:844 msgid "Stock items in multiple locations can be used interchangeably" msgstr "" -#: build/serializers.py:846 +#: build/serializers.py:849 msgid "Substitute Stock" msgstr "" -#: build/serializers.py:847 +#: build/serializers.py:850 msgid "Allow allocation of substitute parts" msgstr "" -#: build/serializers.py:852 +#: build/serializers.py:855 msgid "Optional Items" msgstr "" -#: build/serializers.py:853 +#: build/serializers.py:856 msgid "Allocate optional BOM items to build order" msgstr "" @@ -1447,101 +1454,141 @@ msgid "Build order {bo} is now overdue" msgstr "" #: build/templates/build/build_base.html:39 -#: order/templates/order/order_base.html:28 -#: order/templates/order/return_order_base.html:38 -#: order/templates/order/sales_order_base.html:38 -msgid "Print actions" +#: company/templates/company/supplier_part.html:36 +#: order/templates/order/order_base.html:29 +#: order/templates/order/return_order_base.html:39 +#: order/templates/order/sales_order_base.html:39 +#: part/templates/part/part_base.html:43 +#: stock/templates/stock/item_base.html:41 +#: stock/templates/stock/location.html:54 +msgid "Barcode actions" msgstr "" #: build/templates/build/build_base.html:43 +#: company/templates/company/supplier_part.html:40 +#: order/templates/order/order_base.html:33 +#: order/templates/order/return_order_base.html:43 +#: order/templates/order/sales_order_base.html:43 +#: part/templates/part/part_base.html:46 +#: stock/templates/stock/item_base.html:45 +#: stock/templates/stock/location.html:56 templates/qr_button.html:1 +msgid "Show QR Code" +msgstr "" + +#: build/templates/build/build_base.html:46 +#: company/templates/company/supplier_part.html:42 +#: order/templates/order/order_base.html:36 +#: order/templates/order/return_order_base.html:46 +#: order/templates/order/sales_order_base.html:46 +#: stock/templates/stock/item_base.html:48 +#: stock/templates/stock/location.html:58 +#: templates/js/translated/barcode.js:466 +#: templates/js/translated/barcode.js:471 +msgid "Unlink Barcode" +msgstr "" + +#: build/templates/build/build_base.html:48 +#: company/templates/company/supplier_part.html:44 +#: order/templates/order/order_base.html:38 +#: order/templates/order/return_order_base.html:48 +#: order/templates/order/sales_order_base.html:48 +#: part/templates/part/part_base.html:51 +#: stock/templates/stock/item_base.html:50 +#: stock/templates/stock/location.html:60 +msgid "Link Barcode" +msgstr "" + +#: build/templates/build/build_base.html:57 +#: order/templates/order/order_base.html:46 +#: order/templates/order/return_order_base.html:56 +#: order/templates/order/sales_order_base.html:56 +msgid "Print actions" +msgstr "" + +#: build/templates/build/build_base.html:61 msgid "Print build order report" msgstr "" -#: build/templates/build/build_base.html:50 +#: build/templates/build/build_base.html:68 msgid "Build actions" msgstr "" -#: build/templates/build/build_base.html:54 +#: build/templates/build/build_base.html:72 msgid "Edit Build" msgstr "" -#: build/templates/build/build_base.html:56 +#: build/templates/build/build_base.html:74 msgid "Cancel Build" msgstr "" -#: build/templates/build/build_base.html:59 +#: build/templates/build/build_base.html:77 msgid "Duplicate Build" msgstr "" -#: build/templates/build/build_base.html:62 +#: build/templates/build/build_base.html:80 msgid "Delete Build" msgstr "" -#: build/templates/build/build_base.html:67 -#: build/templates/build/build_base.html:68 +#: build/templates/build/build_base.html:85 +#: build/templates/build/build_base.html:86 msgid "Complete Build" msgstr "" -#: build/templates/build/build_base.html:90 +#: build/templates/build/build_base.html:108 msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:98 +#: build/templates/build/build_base.html:117 msgid "No build outputs have been created for this build order" msgstr "" -#: build/templates/build/build_base.html:104 -#, python-format -msgid "This Build Order is allocated to Sales Order %(link)s" -msgstr "" - -#: build/templates/build/build_base.html:111 +#: build/templates/build/build_base.html:123 #, python-format msgid "This Build Order is a child of Build Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:118 +#: build/templates/build/build_base.html:130 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:123 +#: build/templates/build/build_base.html:135 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:128 +#: build/templates/build/build_base.html:140 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:133 +#: build/templates/build/build_base.html:145 msgid "Stock has not been fully allocated to this Build Order" msgstr "" -#: build/templates/build/build_base.html:154 -#: build/templates/build/detail.html:138 order/models.py:205 -#: order/models.py:1033 order/templates/order/order_base.html:170 -#: order/templates/order/return_order_base.html:145 -#: order/templates/order/sales_order_base.html:164 +#: build/templates/build/build_base.html:166 +#: build/templates/build/detail.html:138 order/models.py:206 +#: order/models.py:1068 order/templates/order/order_base.html:189 +#: order/templates/order/return_order_base.html:166 +#: order/templates/order/sales_order_base.html:192 #: report/templates/report/inventree_build_order_base.html:125 #: templates/js/translated/build.js:2692 templates/js/translated/part.js:1465 -#: templates/js/translated/purchase_order.js:1569 -#: templates/js/translated/purchase_order.js:1985 +#: templates/js/translated/purchase_order.js:1636 +#: templates/js/translated/purchase_order.js:2052 #: templates/js/translated/return_order.js:293 -#: templates/js/translated/return_order.js:690 -#: templates/js/translated/sales_order.js:735 -#: templates/js/translated/sales_order.js:1731 +#: templates/js/translated/return_order.js:693 +#: templates/js/translated/sales_order.js:761 +#: templates/js/translated/sales_order.js:1759 msgid "Target Date" msgstr "" -#: build/templates/build/build_base.html:159 +#: build/templates/build/build_base.html:171 #, python-format msgid "This build was due on %(target)s" msgstr "" -#: build/templates/build/build_base.html:159 -#: build/templates/build/build_base.html:211 -#: order/templates/order/order_base.html:106 -#: order/templates/order/return_order_base.html:98 -#: order/templates/order/sales_order_base.html:94 +#: build/templates/build/build_base.html:171 +#: build/templates/build/build_base.html:228 +#: order/templates/order/order_base.html:125 +#: order/templates/order/return_order_base.html:119 +#: order/templates/order/sales_order_base.html:122 #: templates/js/translated/table_filters.js:34 #: templates/js/translated/table_filters.js:384 #: templates/js/translated/table_filters.js:444 @@ -1549,43 +1596,51 @@ msgstr "" msgid "Overdue" msgstr "" -#: build/templates/build/build_base.html:166 +#: build/templates/build/build_base.html:183 #: build/templates/build/detail.html:67 build/templates/build/detail.html:149 -#: order/templates/order/sales_order_base.html:174 +#: order/templates/order/sales_order_base.html:202 #: templates/js/translated/table_filters.js:487 msgid "Completed" msgstr "" -#: build/templates/build/build_base.html:179 -#: build/templates/build/detail.html:101 order/api.py:1516 order/models.py:1232 -#: order/models.py:1331 order/models.py:1465 +#: build/templates/build/build_base.html:196 +#: build/templates/build/detail.html:101 order/api.py:1422 order/models.py:1267 +#: order/models.py:1366 order/models.py:1500 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:135 #: report/templates/report/inventree_so_report_base.html:14 -#: stock/templates/stock/item_base.html:371 +#: stock/templates/stock/item_base.html:364 #: templates/email/overdue_sales_order.html:15 #: templates/js/translated/pricing.js:894 -#: templates/js/translated/sales_order.js:681 +#: templates/js/translated/sales_order.js:707 #: templates/js/translated/stock.js:2703 msgid "Sales Order" msgstr "" -#: build/templates/build/build_base.html:186 +#: build/templates/build/build_base.html:203 #: build/templates/build/detail.html:115 #: report/templates/report/inventree_build_order_base.html:152 msgid "Issued By" msgstr "" -#: build/templates/build/build_base.html:200 +#: build/templates/build/build_base.html:217 #: build/templates/build/detail.html:94 templates/js/translated/build.js:2609 msgid "Priority" msgstr "" -#: build/templates/build/build_base.html:263 +#: build/templates/build/build_base.html:280 msgid "Delete Build Order" msgstr "" +#: build/templates/build/build_base.html:290 +msgid "Build Order QR Code" +msgstr "" + +#: build/templates/build/build_base.html:302 +msgid "Link Barcode to Build Order" +msgstr "" + #: build/templates/build/detail.html:15 msgid "Build Details" msgstr "" @@ -1598,9 +1653,8 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1150 -#: templates/js/translated/purchase_order.js:1201 -#: templates/js/translated/purchase_order.js:2027 +#: build/templates/build/detail.html:49 order/models.py:1185 +#: templates/js/translated/purchase_order.js:2094 msgid "Destination" msgstr "" @@ -1613,9 +1667,10 @@ msgid "Allocated Parts" msgstr "" #: build/templates/build/detail.html:80 stock/admin.py:105 -#: stock/templates/stock/item_base.html:168 +#: stock/templates/stock/item_base.html:163 #: templates/js/translated/build.js:1259 #: templates/js/translated/model_renderers.js:206 +#: templates/js/translated/purchase_order.js:1193 #: templates/js/translated/stock.js:1072 templates/js/translated/stock.js:1900 #: templates/js/translated/stock.js:2908 #: templates/js/translated/table_filters.js:211 @@ -1624,9 +1679,9 @@ msgid "Batch" msgstr "" #: build/templates/build/detail.html:133 -#: order/templates/order/order_base.html:157 -#: order/templates/order/return_order_base.html:132 -#: order/templates/order/sales_order_base.html:158 +#: order/templates/order/order_base.html:176 +#: order/templates/order/return_order_base.html:153 +#: order/templates/order/sales_order_base.html:186 #: templates/js/translated/build.js:2652 msgid "Created" msgstr "" @@ -1679,7 +1734,7 @@ msgstr "" #: company/templates/company/detail.html:38 #: company/templates/company/detail.html:86 #: part/templates/part/category.html:184 -#: templates/js/translated/purchase_order.js:737 +#: templates/js/translated/purchase_order.js:740 msgid "Order Parts" msgstr "" @@ -1779,23 +1834,24 @@ msgstr "" msgid "Completed Outputs" msgstr "" -#: common/files.py:62 -msgid "Unsupported file format: {ext.upper()}" +#: common/files.py:63 +#, python-brace-format +msgid "Unsupported file format: {fmt}" msgstr "" -#: common/files.py:64 +#: common/files.py:65 msgid "Error reading file (invalid encoding)" msgstr "" -#: common/files.py:69 +#: common/files.py:70 msgid "Error reading file (invalid format)" msgstr "" -#: common/files.py:71 +#: common/files.py:72 msgid "Error reading file (incorrect dimension)" msgstr "" -#: common/files.py:73 +#: common/files.py:74 msgid "Error reading file (data could be corrupted)" msgstr "" @@ -2680,7 +2736,7 @@ msgstr "" msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:1670 common/models.py:2049 +#: common/models.py:1670 common/models.py:2063 msgid "Settings key (must be unique - case insensitive" msgstr "" @@ -3001,89 +3057,105 @@ msgid "Number of results to show in each section of the search preview window" msgstr "" #: common/models.py:1983 -msgid "Show Quantity in Forms" +msgid "Regex Search" msgstr "" #: common/models.py:1984 -msgid "Display available part quantity in some forms" +msgid "Enable regular expressions in search queries" msgstr "" #: common/models.py:1990 -msgid "Escape Key Closes Forms" +msgid "Whole Word Search" msgstr "" #: common/models.py:1991 -msgid "Use the escape key to close modal forms" +msgid "Search queries return results for whole word matches" msgstr "" #: common/models.py:1997 -msgid "Fixed Navbar" +msgid "Show Quantity in Forms" msgstr "" #: common/models.py:1998 -msgid "The navbar position is fixed to the top of the screen" +msgid "Display available part quantity in some forms" msgstr "" #: common/models.py:2004 -msgid "Date Format" +msgid "Escape Key Closes Forms" msgstr "" #: common/models.py:2005 +msgid "Use the escape key to close modal forms" +msgstr "" + +#: common/models.py:2011 +msgid "Fixed Navbar" +msgstr "" + +#: common/models.py:2012 +msgid "The navbar position is fixed to the top of the screen" +msgstr "" + +#: common/models.py:2018 +msgid "Date Format" +msgstr "" + +#: common/models.py:2019 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2019 part/templates/part/detail.html:41 +#: common/models.py:2033 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2020 +#: common/models.py:2034 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2026 part/templates/part/detail.html:62 +#: common/models.py:2040 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2027 +#: common/models.py:2041 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2033 +#: common/models.py:2047 msgid "Table String Length" msgstr "" -#: common/models.py:2034 +#: common/models.py:2048 msgid "Maximimum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2089 +#: common/models.py:2103 msgid "Price break quantity" msgstr "" -#: common/models.py:2096 company/serializers.py:424 order/models.py:1060 -#: order/models.py:1852 templates/js/translated/company.js:1411 +#: common/models.py:2110 company/serializers.py:424 order/models.py:1095 +#: order/models.py:1888 templates/js/translated/company.js:1411 #: templates/js/translated/part.js:1520 templates/js/translated/pricing.js:603 -#: templates/js/translated/return_order.js:680 +#: templates/js/translated/return_order.js:683 msgid "Price" msgstr "" -#: common/models.py:2097 +#: common/models.py:2111 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2257 common/models.py:2435 +#: common/models.py:2271 common/models.py:2449 msgid "Endpoint" msgstr "" -#: common/models.py:2258 +#: common/models.py:2272 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2267 +#: common/models.py:2281 msgid "Name for this webhook" msgstr "" -#: common/models.py:2272 part/admin.py:50 part/models.py:1011 +#: common/models.py:2286 part/admin.py:50 part/models.py:1011 #: plugin/models.py:100 templates/js/translated/table_filters.js:62 #: templates/js/translated/table_filters.js:144 #: templates/js/translated/table_filters.js:380 @@ -3091,97 +3163,97 @@ msgstr "" msgid "Active" msgstr "" -#: common/models.py:2273 +#: common/models.py:2287 msgid "Is this webhook active" msgstr "" -#: common/models.py:2287 +#: common/models.py:2301 msgid "Token" msgstr "" -#: common/models.py:2288 +#: common/models.py:2302 msgid "Token for access" msgstr "" -#: common/models.py:2295 +#: common/models.py:2309 msgid "Secret" msgstr "" -#: common/models.py:2296 +#: common/models.py:2310 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2402 +#: common/models.py:2416 msgid "Message ID" msgstr "" -#: common/models.py:2403 +#: common/models.py:2417 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2411 +#: common/models.py:2425 msgid "Host" msgstr "" -#: common/models.py:2412 +#: common/models.py:2426 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2419 +#: common/models.py:2433 msgid "Header" msgstr "" -#: common/models.py:2420 +#: common/models.py:2434 msgid "Header of this message" msgstr "" -#: common/models.py:2426 +#: common/models.py:2440 msgid "Body" msgstr "" -#: common/models.py:2427 +#: common/models.py:2441 msgid "Body of this message" msgstr "" -#: common/models.py:2436 +#: common/models.py:2450 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2441 +#: common/models.py:2455 msgid "Worked on" msgstr "" -#: common/models.py:2442 +#: common/models.py:2456 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2596 +#: common/models.py:2610 msgid "Id" msgstr "" -#: common/models.py:2602 templates/js/translated/news.js:35 +#: common/models.py:2616 templates/js/translated/news.js:35 msgid "Title" msgstr "" -#: common/models.py:2612 templates/js/translated/news.js:51 +#: common/models.py:2626 templates/js/translated/news.js:51 msgid "Published" msgstr "" -#: common/models.py:2617 templates/InvenTree/settings/plugin.html:62 +#: common/models.py:2631 templates/InvenTree/settings/plugin.html:62 #: templates/InvenTree/settings/plugin_settings.html:33 #: templates/js/translated/news.js:47 msgid "Author" msgstr "" -#: common/models.py:2622 templates/js/translated/news.js:43 +#: common/models.py:2636 templates/js/translated/news.js:43 msgid "Summary" msgstr "" -#: common/models.py:2627 +#: common/models.py:2641 msgid "Read" msgstr "" -#: common/models.py:2628 +#: common/models.py:2642 msgid "Was this news item read?" msgstr "" @@ -3293,9 +3365,9 @@ msgid "Contact email address" msgstr "" #: company/models.py:126 company/templates/company/company_base.html:140 -#: order/models.py:231 order/templates/order/order_base.html:187 -#: order/templates/order/return_order_base.html:155 -#: order/templates/order/sales_order_base.html:186 +#: order/models.py:232 order/templates/order/order_base.html:206 +#: order/templates/order/return_order_base.html:176 +#: order/templates/order/sales_order_base.html:214 msgid "Contact" msgstr "" @@ -3349,7 +3421,7 @@ msgstr "" msgid "Company" msgstr "" -#: company/models.py:277 company/models.py:512 stock/models.py:667 +#: company/models.py:277 company/models.py:512 stock/models.py:668 #: stock/serializers.py:143 stock/templates/stock/item_base.html:143 #: templates/js/translated/bom.js:591 msgid "Base Part" @@ -3361,8 +3433,8 @@ msgstr "" #: company/models.py:292 company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:152 part/serializers.py:359 -#: stock/templates/stock/item_base.html:213 +#: company/templates/company/supplier_part.html:146 part/serializers.py:359 +#: stock/templates/stock/item_base.html:208 #: templates/js/translated/company.js:484 #: templates/js/translated/company.js:809 #: templates/js/translated/company.js:939 @@ -3376,13 +3448,13 @@ msgid "Select manufacturer" msgstr "" #: company/models.py:299 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:160 part/serializers.py:365 +#: company/templates/company/supplier_part.html:154 part/serializers.py:365 #: templates/js/translated/company.js:325 #: templates/js/translated/company.js:808 #: templates/js/translated/company.js:955 #: templates/js/translated/company.js:1225 templates/js/translated/part.js:1435 -#: templates/js/translated/purchase_order.js:1684 -#: templates/js/translated/purchase_order.js:1891 +#: templates/js/translated/purchase_order.js:1751 +#: templates/js/translated/purchase_order.js:1958 msgid "MPN" msgstr "" @@ -3401,7 +3473,7 @@ msgstr "" #: company/models.py:357 company/models.py:381 company/models.py:535 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 -#: stock/templates/stock/item_base.html:223 +#: stock/templates/stock/item_base.html:218 msgid "Manufacturer Part" msgstr "" @@ -3411,7 +3483,7 @@ msgstr "" #: company/models.py:394 #: report/templates/report/inventree_test_report_base.html:104 -#: stock/models.py:2195 templates/js/translated/company.js:857 +#: stock/models.py:2222 templates/js/translated/company.js:857 #: templates/js/translated/company.js:1062 templates/js/translated/part.js:1268 #: templates/js/translated/stock.js:1425 msgid "Value" @@ -3422,7 +3494,7 @@ msgid "Parameter value" msgstr "" #: company/models.py:401 part/admin.py:40 part/models.py:978 -#: part/models.py:3337 part/templates/part/part_base.html:287 +#: part/models.py:3337 part/templates/part/part_base.html:286 #: templates/InvenTree/settings/settings_staff_js.html:255 #: templates/js/translated/company.js:1068 templates/js/translated/part.js:1274 msgid "Units" @@ -3437,15 +3509,15 @@ msgid "Linked manufacturer part must reference the same base part" msgstr "" #: company/models.py:522 company/templates/company/company_base.html:82 -#: company/templates/company/supplier_part.html:136 order/models.py:349 -#: order/templates/order/order_base.html:120 part/bom.py:285 part/bom.py:313 -#: part/serializers.py:348 stock/templates/stock/item_base.html:230 +#: company/templates/company/supplier_part.html:130 order/models.py:350 +#: order/templates/order/order_base.html:139 part/bom.py:285 part/bom.py:313 +#: part/serializers.py:348 stock/templates/stock/item_base.html:225 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:324 #: templates/js/translated/company.js:488 #: templates/js/translated/company.js:1179 templates/js/translated/part.js:1403 #: templates/js/translated/pricing.js:480 -#: templates/js/translated/purchase_order.js:1535 +#: templates/js/translated/purchase_order.js:1602 #: templates/js/translated/table_filters.js:510 msgid "Supplier" msgstr "" @@ -3454,12 +3526,12 @@ msgstr "" msgid "Select supplier" msgstr "" -#: company/models.py:528 company/templates/company/supplier_part.html:146 +#: company/models.py:528 company/templates/company/supplier_part.html:140 #: part/bom.py:286 part/bom.py:314 part/serializers.py:354 #: templates/js/translated/company.js:323 templates/js/translated/part.js:1421 #: templates/js/translated/pricing.js:492 -#: templates/js/translated/purchase_order.js:1683 -#: templates/js/translated/purchase_order.js:1866 +#: templates/js/translated/purchase_order.js:1750 +#: templates/js/translated/purchase_order.js:1933 msgid "SKU" msgstr "" @@ -3479,7 +3551,7 @@ msgstr "" msgid "Supplier part description" msgstr "" -#: company/models.py:553 company/templates/company/supplier_part.html:181 +#: company/models.py:553 company/templates/company/supplier_part.html:175 #: part/admin.py:279 part/models.py:3605 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_po_report_base.html:32 @@ -3497,9 +3569,9 @@ msgstr "" msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:559 company/templates/company/supplier_part.html:167 -#: stock/admin.py:119 stock/models.py:693 -#: stock/templates/stock/item_base.html:246 +#: company/models.py:559 company/templates/company/supplier_part.html:161 +#: stock/admin.py:119 stock/models.py:694 +#: stock/templates/stock/item_base.html:241 #: templates/js/translated/company.js:1241 #: templates/js/translated/stock.js:2130 msgid "Packaging" @@ -3510,14 +3582,14 @@ msgid "Part packaging" msgstr "" #: company/models.py:562 company/serializers.py:319 -#: company/templates/company/supplier_part.html:174 +#: company/templates/company/supplier_part.html:168 #: templates/js/translated/company.js:1246 templates/js/translated/part.js:1456 #: templates/js/translated/part.js:1512 #: templates/js/translated/purchase_order.js:250 -#: templates/js/translated/purchase_order.js:775 -#: templates/js/translated/purchase_order.js:1032 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:1939 +#: templates/js/translated/purchase_order.js:778 +#: templates/js/translated/purchase_order.js:1022 +#: templates/js/translated/purchase_order.js:1989 +#: templates/js/translated/purchase_order.js:2006 msgid "Pack Quantity" msgstr "" @@ -3603,15 +3675,15 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:87 order/models.py:736 -#: order/models.py:1652 order/templates/order/return_order_base.html:112 -#: order/templates/order/sales_order_base.html:116 stock/models.py:712 -#: stock/models.py:713 stock/serializers.py:796 -#: stock/templates/stock/item_base.html:402 +#: company/templates/company/company_base.html:87 order/models.py:748 +#: order/models.py:1687 order/templates/order/return_order_base.html:133 +#: order/templates/order/sales_order_base.html:144 stock/models.py:713 +#: stock/models.py:714 stock/serializers.py:796 +#: stock/templates/stock/item_base.html:395 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:480 #: templates/js/translated/return_order.js:254 -#: templates/js/translated/sales_order.js:696 +#: templates/js/translated/sales_order.js:722 #: templates/js/translated/stock.js:2738 #: templates/js/translated/table_filters.js:514 msgid "Customer" @@ -3626,7 +3698,7 @@ msgid "Phone" msgstr "" #: company/templates/company/company_base.html:206 -#: part/templates/part/part_base.html:536 +#: part/templates/part/part_base.html:529 msgid "Remove Image" msgstr "" @@ -3635,25 +3707,25 @@ msgid "Remove associated image from this company" msgstr "" #: company/templates/company/company_base.html:209 -#: part/templates/part/part_base.html:539 +#: part/templates/part/part_base.html:532 #: templates/InvenTree/settings/user.html:87 #: templates/InvenTree/settings/user.html:149 msgid "Remove" msgstr "" #: company/templates/company/company_base.html:238 -#: part/templates/part/part_base.html:568 +#: part/templates/part/part_base.html:561 msgid "Upload Image" msgstr "" #: company/templates/company/company_base.html:253 -#: part/templates/part/part_base.html:623 +#: part/templates/part/part_base.html:616 msgid "Download Image" msgstr "" #: company/templates/company/detail.html:15 #: company/templates/company/manufacturer_part_sidebar.html:7 -#: templates/InvenTree/search.html:120 templates/js/translated/search.js:175 +#: templates/InvenTree/search.html:120 templates/js/translated/search.js:177 msgid "Supplier Parts" msgstr "" @@ -3684,7 +3756,7 @@ msgid "Delete Parts" msgstr "" #: company/templates/company/detail.html:62 templates/InvenTree/search.html:105 -#: templates/js/translated/search.js:179 +#: templates/js/translated/search.js:181 msgid "Manufacturer Parts" msgstr "" @@ -3709,7 +3781,7 @@ msgstr "" #: part/templates/part/detail.html:108 part/templates/part/part_sidebar.html:35 #: templates/InvenTree/index.html:252 templates/InvenTree/search.html:200 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/search.js:233 templates/navbar.html:50 +#: templates/js/translated/search.js:235 templates/navbar.html:50 #: users/models.py:43 msgid "Purchase Orders" msgstr "" @@ -3732,7 +3804,7 @@ msgstr "" #: part/templates/part/detail.html:131 part/templates/part/part_sidebar.html:39 #: templates/InvenTree/index.html:283 templates/InvenTree/search.html:220 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/search.js:247 templates/navbar.html:62 +#: templates/js/translated/search.js:249 templates/navbar.html:62 #: users/models.py:44 msgid "Sales Orders" msgstr "" @@ -3758,7 +3830,7 @@ msgstr "" #: order/templates/order/return_orders.html:8 #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:55 -#: templates/js/translated/search.js:260 templates/navbar.html:65 +#: templates/js/translated/search.js:262 templates/navbar.html:65 #: users/models.py:45 msgid "Return Orders" msgstr "" @@ -3792,7 +3864,7 @@ msgid "Manufacturers" msgstr "" #: company/templates/company/manufacturer_part.html:35 -#: company/templates/company/supplier_part.html:221 +#: company/templates/company/supplier_part.html:215 #: part/templates/part/detail.html:111 part/templates/part/part_base.html:85 msgid "Order part" msgstr "" @@ -3832,8 +3904,8 @@ msgstr "" #: company/templates/company/manufacturer_part.html:183 #: part/templates/part/detail.html:393 part/templates/part/detail.html:423 #: templates/js/translated/forms.js:499 templates/js/translated/helpers.js:58 -#: templates/js/translated/part.js:313 templates/js/translated/stock.js:186 -#: users/models.py:243 +#: templates/js/translated/part.js:313 templates/js/translated/pricing.js:611 +#: templates/js/translated/stock.js:186 users/models.py:243 msgid "Delete" msgstr "" @@ -3881,50 +3953,21 @@ msgid "Contacts" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:676 -#: stock/templates/stock/item_base.html:239 +#: company/templates/company/supplier_part.html:24 stock/models.py:677 +#: stock/templates/stock/item_base.html:234 #: templates/js/translated/company.js:1195 -#: templates/js/translated/purchase_order.js:695 +#: templates/js/translated/purchase_order.js:698 #: templates/js/translated/stock.js:1990 msgid "Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:36 -#: part/templates/part/part_base.html:43 -#: stock/templates/stock/item_base.html:41 -#: stock/templates/stock/location.html:54 -msgid "Barcode actions" -msgstr "" - -#: company/templates/company/supplier_part.html:40 -#: part/templates/part/part_base.html:46 -#: stock/templates/stock/item_base.html:45 -#: stock/templates/stock/location.html:56 templates/qr_button.html:1 -msgid "Show QR Code" -msgstr "" - -#: company/templates/company/supplier_part.html:42 -#: stock/templates/stock/item_base.html:48 -#: stock/templates/stock/location.html:58 -#: templates/js/translated/barcode.js:453 -#: templates/js/translated/barcode.js:458 -msgid "Unlink Barcode" -msgstr "" - -#: company/templates/company/supplier_part.html:44 -#: part/templates/part/part_base.html:51 -#: stock/templates/stock/item_base.html:50 -#: stock/templates/stock/location.html:60 -msgid "Link Barcode" -msgstr "" - #: company/templates/company/supplier_part.html:51 msgid "Supplier part actions" msgstr "" #: company/templates/company/supplier_part.html:56 #: company/templates/company/supplier_part.html:57 -#: company/templates/company/supplier_part.html:222 +#: company/templates/company/supplier_part.html:216 #: part/templates/part/detail.html:112 msgid "Order Part" msgstr "" @@ -3954,67 +3997,60 @@ msgstr "" msgid "Delete Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:122 -#: part/templates/part/part_base.html:308 -#: stock/templates/stock/item_base.html:161 -#: stock/templates/stock/location.html:156 -msgid "Barcode Identifier" -msgstr "" - -#: company/templates/company/supplier_part.html:140 +#: company/templates/company/supplier_part.html:134 msgid "No supplier information available" msgstr "" -#: company/templates/company/supplier_part.html:200 +#: company/templates/company/supplier_part.html:194 msgid "Supplier Part Stock" msgstr "" -#: company/templates/company/supplier_part.html:203 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:203 +#: company/templates/company/supplier_part.html:197 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:197 msgid "Create new stock item" msgstr "" -#: company/templates/company/supplier_part.html:204 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:204 +#: company/templates/company/supplier_part.html:198 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:198 #: templates/js/translated/stock.js:471 msgid "New Stock Item" msgstr "" -#: company/templates/company/supplier_part.html:217 +#: company/templates/company/supplier_part.html:211 msgid "Supplier Part Orders" msgstr "" -#: company/templates/company/supplier_part.html:242 +#: company/templates/company/supplier_part.html:236 msgid "Pricing Information" msgstr "" -#: company/templates/company/supplier_part.html:247 +#: company/templates/company/supplier_part.html:241 #: templates/js/translated/company.js:373 #: templates/js/translated/pricing.js:666 msgid "Add Price Break" msgstr "" -#: company/templates/company/supplier_part.html:274 +#: company/templates/company/supplier_part.html:268 msgid "Supplier Part QR Code" msgstr "" -#: company/templates/company/supplier_part.html:285 +#: company/templates/company/supplier_part.html:279 msgid "Link Barcode to Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:360 +#: company/templates/company/supplier_part.html:354 msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 part/tasks.py:288 #: part/templates/part/category.html:199 #: part/templates/part/category_sidebar.html:17 stock/admin.py:47 -#: stock/templates/stock/location.html:174 -#: stock/templates/stock/location.html:188 -#: stock/templates/stock/location.html:200 +#: stock/templates/stock/location.html:168 +#: stock/templates/stock/location.html:182 +#: stock/templates/stock/location.html:194 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:977 -#: templates/js/translated/search.js:200 templates/js/translated/stock.js:2569 +#: templates/js/translated/search.js:202 templates/js/translated/stock.js:2569 #: users/models.py:41 msgid "Stock Items" msgstr "" @@ -4040,7 +4076,7 @@ msgstr "" msgid "New Customer" msgstr "" -#: company/views.py:52 templates/js/translated/search.js:220 +#: company/views.py:52 templates/js/translated/search.js:222 msgid "Companies" msgstr "" @@ -4114,365 +4150,365 @@ msgstr "" msgid "Part query filters (comma-separated value of key=value pairs)" msgstr "" -#: order/api.py:229 +#: order/api.py:225 msgid "No matching purchase order found" msgstr "" -#: order/api.py:1514 order/models.py:1106 order/models.py:1190 +#: order/api.py:1420 order/models.py:1141 order/models.py:1225 #: order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report_base.html:14 -#: stock/templates/stock/item_base.html:182 +#: stock/templates/stock/item_base.html:177 #: templates/email/overdue_purchase_order.html:15 #: templates/js/translated/part.js:1380 templates/js/translated/pricing.js:772 #: templates/js/translated/purchase_order.js:108 -#: templates/js/translated/purchase_order.js:696 -#: templates/js/translated/purchase_order.js:1519 +#: templates/js/translated/purchase_order.js:699 +#: templates/js/translated/purchase_order.js:1586 #: templates/js/translated/stock.js:1970 templates/js/translated/stock.js:2685 msgid "Purchase Order" msgstr "" -#: order/api.py:1518 +#: order/api.py:1424 msgid "Unknown" msgstr "" -#: order/models.py:66 report/templates/report/inventree_po_report_base.html:31 +#: order/models.py:67 report/templates/report/inventree_po_report_base.html:31 #: report/templates/report/inventree_so_report_base.html:31 -#: templates/js/translated/order.js:299 -#: templates/js/translated/purchase_order.js:1963 -#: templates/js/translated/sales_order.js:1711 +#: templates/js/translated/order.js:302 +#: templates/js/translated/purchase_order.js:2030 +#: templates/js/translated/sales_order.js:1739 msgid "Total Price" msgstr "" -#: order/models.py:67 +#: order/models.py:68 msgid "Total price for this order" msgstr "" -#: order/models.py:177 +#: order/models.py:178 msgid "Contact does not match selected company" msgstr "" -#: order/models.py:199 -msgid "Order description" +#: order/models.py:200 +msgid "Order description (optional)" msgstr "" -#: order/models.py:201 order/models.py:1378 order/models.py:1856 +#: order/models.py:202 order/models.py:1063 order/models.py:1413 msgid "Link to external page" msgstr "" -#: order/models.py:206 +#: order/models.py:207 msgid "Expected date for order delivery. Order will be overdue after this date." msgstr "" -#: order/models.py:215 +#: order/models.py:216 msgid "Created By" msgstr "" -#: order/models.py:222 +#: order/models.py:223 msgid "User or group responsible for this order" msgstr "" -#: order/models.py:232 +#: order/models.py:233 msgid "Point of contact for this order" msgstr "" -#: order/models.py:236 +#: order/models.py:237 msgid "Order notes" msgstr "" -#: order/models.py:327 order/models.py:723 +#: order/models.py:328 order/models.py:735 msgid "Order reference" msgstr "" -#: order/models.py:335 order/models.py:748 +#: order/models.py:336 order/models.py:760 msgid "Purchase order status" msgstr "" -#: order/models.py:350 +#: order/models.py:351 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:358 order/templates/order/order_base.html:132 -#: templates/js/translated/purchase_order.js:1544 +#: order/models.py:359 order/templates/order/order_base.html:151 +#: templates/js/translated/purchase_order.js:1611 msgid "Supplier Reference" msgstr "" -#: order/models.py:358 +#: order/models.py:359 msgid "Supplier order reference code" msgstr "" -#: order/models.py:365 +#: order/models.py:366 msgid "received by" msgstr "" -#: order/models.py:370 order/models.py:1675 +#: order/models.py:371 order/models.py:1710 msgid "Issue Date" msgstr "" -#: order/models.py:371 order/models.py:1676 +#: order/models.py:372 order/models.py:1711 msgid "Date order was issued" msgstr "" -#: order/models.py:377 order/models.py:1682 +#: order/models.py:378 order/models.py:1717 msgid "Date order was completed" msgstr "" -#: order/models.py:412 +#: order/models.py:413 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:560 +#: order/models.py:566 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:737 +#: order/models.py:749 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:756 order/models.py:1669 +#: order/models.py:768 order/models.py:1704 msgid "Customer Reference " msgstr "" -#: order/models.py:756 order/models.py:1670 +#: order/models.py:768 order/models.py:1705 msgid "Customer order reference code" msgstr "" -#: order/models.py:758 order/models.py:1336 -#: templates/js/translated/sales_order.js:743 -#: templates/js/translated/sales_order.js:906 +#: order/models.py:770 order/models.py:1371 +#: templates/js/translated/sales_order.js:769 +#: templates/js/translated/sales_order.js:932 msgid "Shipment Date" msgstr "" -#: order/models.py:765 +#: order/models.py:777 msgid "shipped by" msgstr "" -#: order/models.py:809 +#: order/models.py:826 msgid "Order cannot be completed as no parts have been assigned" msgstr "" -#: order/models.py:813 -msgid "Only a pending order can be marked as complete" +#: order/models.py:830 +msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:816 templates/js/translated/sales_order.js:437 +#: order/models.py:833 templates/js/translated/sales_order.js:441 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:819 +#: order/models.py:836 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1014 +#: order/models.py:1043 msgid "Item quantity" msgstr "" -#: order/models.py:1027 +#: order/models.py:1056 msgid "Line item reference" msgstr "" -#: order/models.py:1029 +#: order/models.py:1058 msgid "Line item notes" msgstr "" -#: order/models.py:1034 +#: order/models.py:1069 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1051 +#: order/models.py:1086 msgid "Context" msgstr "" -#: order/models.py:1052 +#: order/models.py:1087 msgid "Additional context for this line" msgstr "" -#: order/models.py:1061 +#: order/models.py:1096 msgid "Unit price" msgstr "" -#: order/models.py:1091 +#: order/models.py:1126 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1099 +#: order/models.py:1134 msgid "deleted" msgstr "" -#: order/models.py:1105 order/models.py:1190 order/models.py:1231 -#: order/models.py:1330 order/models.py:1465 order/models.py:1821 -#: order/models.py:1870 templates/js/translated/sales_order.js:1357 +#: order/models.py:1140 order/models.py:1225 order/models.py:1266 +#: order/models.py:1365 order/models.py:1500 order/models.py:1857 +#: order/models.py:1904 templates/js/translated/sales_order.js:1383 msgid "Order" msgstr "" -#: order/models.py:1124 +#: order/models.py:1159 msgid "Supplier part" msgstr "" -#: order/models.py:1131 order/templates/order/order_base.html:180 +#: order/models.py:1166 order/templates/order/order_base.html:199 #: templates/js/translated/part.js:1504 templates/js/translated/part.js:1536 -#: templates/js/translated/purchase_order.js:1198 -#: templates/js/translated/purchase_order.js:2007 -#: templates/js/translated/return_order.js:703 +#: templates/js/translated/purchase_order.js:1225 +#: templates/js/translated/purchase_order.js:2074 +#: templates/js/translated/return_order.js:706 #: templates/js/translated/table_filters.js:48 #: templates/js/translated/table_filters.js:421 msgid "Received" msgstr "" -#: order/models.py:1132 +#: order/models.py:1167 msgid "Number of items received" msgstr "" -#: order/models.py:1139 stock/models.py:809 stock/serializers.py:229 -#: stock/templates/stock/item_base.html:189 +#: order/models.py:1174 stock/models.py:810 stock/serializers.py:229 +#: stock/templates/stock/item_base.html:184 #: templates/js/translated/stock.js:2021 msgid "Purchase Price" msgstr "" -#: order/models.py:1140 +#: order/models.py:1175 msgid "Unit purchase price" msgstr "" -#: order/models.py:1153 +#: order/models.py:1188 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1219 +#: order/models.py:1254 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1224 +#: order/models.py:1259 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1250 part/templates/part/part_pricing.html:107 +#: order/models.py:1285 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:128 templates/js/translated/pricing.js:922 msgid "Sale Price" msgstr "" -#: order/models.py:1251 +#: order/models.py:1286 msgid "Unit sale price" msgstr "" -#: order/models.py:1261 +#: order/models.py:1296 msgid "Shipped quantity" msgstr "" -#: order/models.py:1337 +#: order/models.py:1372 msgid "Date of shipment" msgstr "" -#: order/models.py:1344 +#: order/models.py:1379 msgid "Checked By" msgstr "" -#: order/models.py:1345 +#: order/models.py:1380 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1352 order/models.py:1541 order/serializers.py:1202 -#: order/serializers.py:1330 templates/js/translated/model_renderers.js:403 +#: order/models.py:1387 order/models.py:1576 order/serializers.py:1224 +#: order/serializers.py:1352 templates/js/translated/model_renderers.js:409 msgid "Shipment" msgstr "" -#: order/models.py:1353 +#: order/models.py:1388 msgid "Shipment number" msgstr "" -#: order/models.py:1357 +#: order/models.py:1392 msgid "Shipment notes" msgstr "" -#: order/models.py:1363 +#: order/models.py:1398 msgid "Tracking Number" msgstr "" -#: order/models.py:1364 +#: order/models.py:1399 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1371 +#: order/models.py:1406 msgid "Invoice Number" msgstr "" -#: order/models.py:1372 +#: order/models.py:1407 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1390 +#: order/models.py:1425 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1393 +#: order/models.py:1428 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1500 order/models.py:1502 +#: order/models.py:1535 order/models.py:1537 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1506 +#: order/models.py:1541 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1508 +#: order/models.py:1543 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1511 +#: order/models.py:1546 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1521 order/serializers.py:1064 +#: order/models.py:1556 order/serializers.py:1086 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1524 +#: order/models.py:1559 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1525 +#: order/models.py:1560 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1533 +#: order/models.py:1568 msgid "Line" msgstr "" -#: order/models.py:1542 +#: order/models.py:1577 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1555 order/models.py:1829 -#: templates/js/translated/return_order.js:661 +#: order/models.py:1590 order/models.py:1865 +#: templates/js/translated/return_order.js:664 msgid "Item" msgstr "" -#: order/models.py:1556 +#: order/models.py:1591 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1559 +#: order/models.py:1594 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:1639 +#: order/models.py:1674 msgid "Return Order reference" msgstr "" -#: order/models.py:1653 +#: order/models.py:1688 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:1664 +#: order/models.py:1699 msgid "Return order status" msgstr "" -#: order/models.py:1814 +#: order/models.py:1850 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:1822 order/models.py:1870 +#: order/models.py:1858 order/models.py:1904 #: order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:13 @@ -4481,164 +4517,168 @@ msgstr "" msgid "Return Order" msgstr "" -#: order/models.py:1830 +#: order/models.py:1866 msgid "Select item to return from customer" msgstr "" -#: order/models.py:1835 +#: order/models.py:1871 msgid "Received Date" msgstr "" -#: order/models.py:1836 +#: order/models.py:1872 msgid "The date this this return item was received" msgstr "" -#: order/models.py:1847 templates/js/translated/return_order.js:672 +#: order/models.py:1883 templates/js/translated/return_order.js:675 #: templates/js/translated/table_filters.js:51 msgid "Outcome" msgstr "" -#: order/models.py:1847 +#: order/models.py:1883 msgid "Outcome for this line item" msgstr "" -#: order/models.py:1853 +#: order/models.py:1889 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/serializers.py:223 +#: order/serializers.py:228 msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:238 order/serializers.py:1082 +#: order/serializers.py:243 order/serializers.py:1104 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:249 order/serializers.py:1093 +#: order/serializers.py:254 order/serializers.py:1115 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:361 +#: order/serializers.py:367 msgid "Order is not open" msgstr "" -#: order/serializers.py:379 +#: order/serializers.py:385 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:397 +#: order/serializers.py:403 msgid "Supplier part must be specified" msgstr "" -#: order/serializers.py:402 +#: order/serializers.py:408 msgid "Purchase order must be specified" msgstr "" -#: order/serializers.py:408 +#: order/serializers.py:414 msgid "Supplier must match purchase order" msgstr "" -#: order/serializers.py:409 +#: order/serializers.py:415 msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:447 order/serializers.py:1170 +#: order/serializers.py:453 order/serializers.py:1192 msgid "Line Item" msgstr "" -#: order/serializers.py:453 +#: order/serializers.py:459 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:463 order/serializers.py:582 order/serializers.py:1541 +#: order/serializers.py:469 order/serializers.py:590 order/serializers.py:1563 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:482 templates/js/translated/purchase_order.js:1059 +#: order/serializers.py:488 templates/js/translated/purchase_order.js:1049 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:490 templates/js/translated/purchase_order.js:1070 +#: order/serializers.py:496 templates/js/translated/purchase_order.js:1073 msgid "Enter serial numbers for incoming stock items" msgstr "" -#: order/serializers.py:504 -msgid "Unique identifier field" +#: order/serializers.py:509 templates/js/translated/barcode.js:41 +msgid "Barcode" msgstr "" -#: order/serializers.py:518 +#: order/serializers.py:510 +msgid "Scanned barcode" +msgstr "" + +#: order/serializers.py:526 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:544 +#: order/serializers.py:552 msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:598 order/serializers.py:1556 +#: order/serializers.py:606 order/serializers.py:1578 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:615 +#: order/serializers.py:623 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:626 +#: order/serializers.py:634 msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:907 +#: order/serializers.py:929 msgid "Sale price currency" msgstr "" -#: order/serializers.py:962 +#: order/serializers.py:984 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1025 order/serializers.py:1179 +#: order/serializers.py:1047 order/serializers.py:1201 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1047 +#: order/serializers.py:1069 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1192 +#: order/serializers.py:1214 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1214 order/serializers.py:1338 +#: order/serializers.py:1236 order/serializers.py:1360 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1217 order/serializers.py:1341 +#: order/serializers.py:1239 order/serializers.py:1363 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1271 +#: order/serializers.py:1293 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1281 +#: order/serializers.py:1303 msgid "The following serial numbers are already allocated" msgstr "" -#: order/serializers.py:1507 +#: order/serializers.py:1529 msgid "Return order line item" msgstr "" -#: order/serializers.py:1514 +#: order/serializers.py:1536 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1517 +#: order/serializers.py:1539 msgid "Line item has already been received" msgstr "" -#: order/serializers.py:1549 +#: order/serializers.py:1571 msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1629 +#: order/serializers.py:1652 msgid "Line price currency" msgstr "" @@ -4660,113 +4700,123 @@ msgstr "" msgid "Sales order {so} is now overdue" msgstr "" -#: order/templates/order/order_base.html:33 +#: order/templates/order/order_base.html:51 msgid "Print purchase order report" msgstr "" -#: order/templates/order/order_base.html:35 -#: order/templates/order/return_order_base.html:45 -#: order/templates/order/sales_order_base.html:45 +#: order/templates/order/order_base.html:53 +#: order/templates/order/return_order_base.html:63 +#: order/templates/order/sales_order_base.html:63 msgid "Export order to file" msgstr "" -#: order/templates/order/order_base.html:41 -#: order/templates/order/return_order_base.html:55 -#: order/templates/order/sales_order_base.html:54 +#: order/templates/order/order_base.html:59 +#: order/templates/order/return_order_base.html:73 +#: order/templates/order/sales_order_base.html:72 msgid "Order actions" msgstr "" -#: order/templates/order/order_base.html:46 -#: order/templates/order/return_order_base.html:59 -#: order/templates/order/sales_order_base.html:58 +#: order/templates/order/order_base.html:64 +#: order/templates/order/return_order_base.html:77 +#: order/templates/order/sales_order_base.html:76 msgid "Edit order" msgstr "" -#: order/templates/order/order_base.html:50 -#: order/templates/order/return_order_base.html:61 -#: order/templates/order/sales_order_base.html:61 +#: order/templates/order/order_base.html:68 +#: order/templates/order/return_order_base.html:79 +#: order/templates/order/sales_order_base.html:78 msgid "Cancel order" msgstr "" -#: order/templates/order/order_base.html:55 +#: order/templates/order/order_base.html:73 msgid "Duplicate order" msgstr "" -#: order/templates/order/order_base.html:61 -#: order/templates/order/order_base.html:62 -#: order/templates/order/return_order_base.html:65 -#: order/templates/order/return_order_base.html:66 -msgid "Submit Order" +#: order/templates/order/order_base.html:79 +#: order/templates/order/order_base.html:80 +#: order/templates/order/return_order_base.html:83 +#: order/templates/order/return_order_base.html:84 +#: order/templates/order/sales_order_base.html:84 +#: order/templates/order/sales_order_base.html:85 +msgid "Issue Order" msgstr "" -#: order/templates/order/order_base.html:65 +#: order/templates/order/order_base.html:83 msgid "Receive items" msgstr "" -#: order/templates/order/order_base.html:67 +#: order/templates/order/order_base.html:85 msgid "Receive Items" msgstr "" -#: order/templates/order/order_base.html:69 -#: order/templates/order/return_order_base.html:69 +#: order/templates/order/order_base.html:87 +#: order/templates/order/return_order_base.html:87 msgid "Mark order as complete" msgstr "" -#: order/templates/order/order_base.html:70 -#: order/templates/order/return_order_base.html:70 -#: order/templates/order/sales_order_base.html:68 +#: order/templates/order/order_base.html:88 +#: order/templates/order/return_order_base.html:88 +#: order/templates/order/sales_order_base.html:94 msgid "Complete Order" msgstr "" -#: order/templates/order/order_base.html:92 -#: order/templates/order/return_order_base.html:84 -#: order/templates/order/sales_order_base.html:80 +#: order/templates/order/order_base.html:110 +#: order/templates/order/return_order_base.html:102 +#: order/templates/order/sales_order_base.html:107 msgid "Order Reference" msgstr "" -#: order/templates/order/order_base.html:97 -#: order/templates/order/return_order_base.html:89 -#: order/templates/order/sales_order_base.html:85 +#: order/templates/order/order_base.html:115 +#: order/templates/order/return_order_base.html:107 +#: order/templates/order/sales_order_base.html:112 msgid "Order Description" msgstr "" -#: order/templates/order/order_base.html:102 -#: order/templates/order/return_order_base.html:94 -#: order/templates/order/sales_order_base.html:90 +#: order/templates/order/order_base.html:121 +#: order/templates/order/return_order_base.html:115 +#: order/templates/order/sales_order_base.html:118 msgid "Order Status" msgstr "" -#: order/templates/order/order_base.html:125 +#: order/templates/order/order_base.html:144 msgid "No suppplier information available" msgstr "" -#: order/templates/order/order_base.html:138 -#: order/templates/order/sales_order_base.html:129 +#: order/templates/order/order_base.html:157 +#: order/templates/order/sales_order_base.html:157 msgid "Completed Line Items" msgstr "" -#: order/templates/order/order_base.html:144 -#: order/templates/order/sales_order_base.html:135 -#: order/templates/order/sales_order_base.html:145 +#: order/templates/order/order_base.html:163 +#: order/templates/order/sales_order_base.html:163 +#: order/templates/order/sales_order_base.html:173 msgid "Incomplete" msgstr "" -#: order/templates/order/order_base.html:163 -#: order/templates/order/return_order_base.html:138 +#: order/templates/order/order_base.html:182 +#: order/templates/order/return_order_base.html:159 #: report/templates/report/inventree_build_order_base.html:121 msgid "Issued" msgstr "" -#: order/templates/order/order_base.html:201 +#: order/templates/order/order_base.html:220 msgid "Total cost" msgstr "" -#: order/templates/order/order_base.html:205 -#: order/templates/order/return_order_base.html:173 -#: order/templates/order/sales_order_base.html:204 +#: order/templates/order/order_base.html:224 +#: order/templates/order/return_order_base.html:194 +#: order/templates/order/sales_order_base.html:232 msgid "Total cost could not be calculated" msgstr "" +#: order/templates/order/order_base.html:330 +msgid "Purchase Order QR Code" +msgstr "" + +#: order/templates/order/order_base.html:342 +msgid "Link Barcode to Purchase Order" +msgstr "" + #: order/templates/order/order_wizard/match_fields.html:9 #: part/templates/part/import_wizard/ajax_match_fields.html:9 #: part/templates/part/import_wizard/match_fields.html:9 @@ -4818,10 +4868,10 @@ msgstr "" #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:102 templates/js/translated/build.js:485 #: templates/js/translated/build.js:646 templates/js/translated/build.js:2097 -#: templates/js/translated/purchase_order.js:640 -#: templates/js/translated/purchase_order.js:1144 -#: templates/js/translated/return_order.js:449 -#: templates/js/translated/sales_order.js:979 +#: templates/js/translated/purchase_order.js:643 +#: templates/js/translated/purchase_order.js:1155 +#: templates/js/translated/return_order.js:452 +#: templates/js/translated/sales_order.js:1005 #: templates/js/translated/stock.js:660 templates/js/translated/stock.js:829 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" @@ -4883,9 +4933,9 @@ msgstr "" #: order/templates/order/purchase_order_detail.html:28 #: order/templates/order/return_order_detail.html:24 #: order/templates/order/sales_order_detail.html:24 -#: templates/js/translated/purchase_order.js:367 -#: templates/js/translated/return_order.js:402 -#: templates/js/translated/sales_order.js:175 +#: templates/js/translated/purchase_order.js:370 +#: templates/js/translated/return_order.js:405 +#: templates/js/translated/sales_order.js:179 msgid "Add Line Item" msgstr "" @@ -4923,63 +4973,79 @@ msgstr "" msgid "Order Notes" msgstr "" -#: order/templates/order/return_order_base.html:43 +#: order/templates/order/return_order_base.html:61 msgid "Print return order report" msgstr "" -#: order/templates/order/return_order_base.html:47 -#: order/templates/order/sales_order_base.html:47 +#: order/templates/order/return_order_base.html:65 +#: order/templates/order/sales_order_base.html:65 msgid "Print packing list" msgstr "" -#: order/templates/order/return_order_base.html:119 -#: order/templates/order/sales_order_base.html:123 +#: order/templates/order/return_order_base.html:140 +#: order/templates/order/sales_order_base.html:151 #: templates/js/translated/return_order.js:267 -#: templates/js/translated/sales_order.js:709 +#: templates/js/translated/sales_order.js:735 msgid "Customer Reference" msgstr "" -#: order/templates/order/return_order_base.html:169 -#: order/templates/order/sales_order_base.html:200 +#: order/templates/order/return_order_base.html:190 +#: order/templates/order/sales_order_base.html:228 #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 #: templates/js/translated/part.js:989 -#: templates/js/translated/purchase_order.js:1582 +#: templates/js/translated/purchase_order.js:1649 #: templates/js/translated/return_order.js:327 -#: templates/js/translated/sales_order.js:755 +#: templates/js/translated/sales_order.js:781 msgid "Total Cost" msgstr "" +#: order/templates/order/return_order_base.html:258 +msgid "Return Order QR Code" +msgstr "" + +#: order/templates/order/return_order_base.html:270 +msgid "Link Barcode to Return Order" +msgstr "" + #: order/templates/order/return_order_sidebar.html:5 msgid "Order Details" msgstr "" -#: order/templates/order/sales_order_base.html:43 +#: order/templates/order/sales_order_base.html:61 msgid "Print sales order report" msgstr "" -#: order/templates/order/sales_order_base.html:60 -#: templates/js/translated/sales_order.js:361 -msgid "Complete Shipments" +#: order/templates/order/sales_order_base.html:89 +#: order/templates/order/sales_order_base.html:90 +msgid "Ship Items" msgstr "" -#: order/templates/order/sales_order_base.html:67 -#: templates/js/translated/sales_order.js:415 +#: order/templates/order/sales_order_base.html:93 +#: templates/js/translated/sales_order.js:419 msgid "Complete Sales Order" msgstr "" -#: order/templates/order/sales_order_base.html:103 +#: order/templates/order/sales_order_base.html:131 msgid "This Sales Order has not been fully allocated" msgstr "" -#: order/templates/order/sales_order_base.html:141 +#: order/templates/order/sales_order_base.html:169 #: order/templates/order/sales_order_detail.html:105 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "" +#: order/templates/order/sales_order_base.html:305 +msgid "Sales Order QR Code" +msgstr "" + +#: order/templates/order/sales_order_base.html:317 +msgid "Link Barcode to Sales Order" +msgstr "" + #: order/templates/order/sales_order_detail.html:18 msgid "Sales Order Items" msgstr "" @@ -5035,20 +5101,20 @@ msgstr "" msgid "Part Description" msgstr "" -#: part/admin.py:36 part/models.py:880 part/templates/part/part_base.html:272 +#: part/admin.py:36 part/models.py:880 part/templates/part/part_base.html:271 #: templates/js/translated/part.js:1143 templates/js/translated/part.js:1855 #: templates/js/translated/stock.js:1769 msgid "IPN" msgstr "" -#: part/admin.py:37 part/models.py:887 part/templates/part/part_base.html:280 +#: part/admin.py:37 part/models.py:887 part/templates/part/part_base.html:279 #: report/models.py:177 templates/js/translated/part.js:1148 #: templates/js/translated/part.js:1861 msgid "Revision" msgstr "" #: part/admin.py:38 part/admin.py:198 part/models.py:866 -#: part/templates/part/category.html:93 part/templates/part/part_base.html:301 +#: part/templates/part/category.html:93 part/templates/part/part_base.html:300 msgid "Keywords" msgstr "" @@ -5068,17 +5134,17 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:47 part/models.py:971 part/templates/part/part_base.html:206 +#: part/admin.py:47 part/models.py:971 part/templates/part/part_base.html:205 msgid "Minimum Stock" msgstr "" -#: part/admin.py:61 part/templates/part/part_base.html:200 +#: part/admin.py:61 part/templates/part/part_base.html:199 #: templates/js/translated/company.js:1277 #: templates/js/translated/table_filters.js:253 msgid "In Stock" msgstr "" -#: part/admin.py:62 part/bom.py:178 part/templates/part/part_base.html:213 +#: part/admin.py:62 part/bom.py:178 part/templates/part/part_base.html:212 #: templates/js/translated/bom.js:1163 templates/js/translated/build.js:1940 #: templates/js/translated/part.js:630 templates/js/translated/part.js:1749 #: templates/js/translated/table_filters.js:96 @@ -5091,11 +5157,11 @@ msgstr "" #: part/admin.py:64 templates/js/translated/build.js:1954 #: templates/js/translated/build.js:2214 templates/js/translated/build.js:2799 -#: templates/js/translated/sales_order.js:1790 +#: templates/js/translated/sales_order.js:1818 msgid "Allocated" msgstr "" -#: part/admin.py:65 part/templates/part/part_base.html:244 stock/admin.py:124 +#: part/admin.py:65 part/templates/part/part_base.html:243 stock/admin.py:124 #: templates/js/translated/part.js:635 templates/js/translated/part.js:1753 msgid "Building" msgstr "" @@ -5127,7 +5193,7 @@ msgstr "" #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:85 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:43 -#: templates/js/translated/part.js:2367 templates/js/translated/search.js:158 +#: templates/js/translated/part.js:2367 templates/js/translated/search.js:160 #: templates/navbar.html:24 users/models.py:38 msgid "Parts" msgstr "" @@ -5158,36 +5224,36 @@ msgstr "" msgid "Maximum Price" msgstr "" -#: part/api.py:515 +#: part/api.py:495 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:535 +#: part/api.py:515 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:553 +#: part/api.py:533 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:639 +#: part/api.py:619 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:797 +#: part/api.py:767 msgid "Valid" msgstr "" -#: part/api.py:798 +#: part/api.py:768 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:804 +#: part/api.py:774 msgid "This option must be selected" msgstr "" #: part/bom.py:175 part/models.py:121 part/models.py:914 -#: part/templates/part/category.html:115 part/templates/part/part_base.html:376 +#: part/templates/part/category.html:115 part/templates/part/part_base.html:369 msgid "Default Location" msgstr "" @@ -5195,8 +5261,8 @@ msgstr "" msgid "Total Stock" msgstr "" -#: part/bom.py:177 part/templates/part/part_base.html:195 -#: templates/js/translated/sales_order.js:1757 +#: part/bom.py:177 part/templates/part/part_base.html:194 +#: templates/js/translated/sales_order.js:1785 msgid "Available Stock" msgstr "" @@ -5210,7 +5276,7 @@ msgid "Part Category" msgstr "" #: part/models.py:72 part/templates/part/category.html:135 -#: templates/InvenTree/search.html:97 templates/js/translated/search.js:186 +#: templates/InvenTree/search.html:97 templates/js/translated/search.js:188 #: users/models.py:37 msgid "Part Categories" msgstr "" @@ -5219,7 +5285,7 @@ msgstr "" msgid "Default location for parts in this category" msgstr "" -#: part/models.py:127 stock/models.py:119 templates/js/translated/stock.js:2575 +#: part/models.py:127 stock/models.py:120 templates/js/translated/stock.js:2575 #: templates/js/translated/table_filters.js:163 #: templates/js/translated/table_filters.js:182 msgid "Structural" @@ -5237,11 +5303,11 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:138 stock/models.py:108 +#: part/models.py:138 stock/models.py:109 msgid "Icon" msgstr "" -#: part/models.py:139 stock/models.py:109 +#: part/models.py:139 stock/models.py:110 msgid "Icon (optional)" msgstr "" @@ -5295,12 +5361,12 @@ msgstr "" msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:855 +#: part/models.py:855 part/templates/part/part_base.html:179 msgid "Variant Of" msgstr "" #: part/models.py:861 -msgid "Part description" +msgid "Part description (optional)" msgstr "" #: part/models.py:867 @@ -5308,7 +5374,7 @@ msgid "Part keywords to improve visibility in search results" msgstr "" #: part/models.py:874 part/models.py:3182 part/models.py:3419 -#: part/serializers.py:849 part/templates/part/part_base.html:263 +#: part/serializers.py:849 part/templates/part/part_base.html:262 #: templates/InvenTree/settings/settings_staff_js.html:132 #: templates/js/translated/notification.js:50 #: templates/js/translated/part.js:1885 templates/js/translated/part.js:2097 @@ -5331,7 +5397,7 @@ msgstr "" msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:957 part/templates/part/part_base.html:385 +#: part/models.py:957 part/templates/part/part_base.html:378 msgid "Default Supplier" msgstr "" @@ -5411,8 +5477,8 @@ msgstr "" msgid "User responsible for this part" msgstr "" -#: part/models.py:1036 part/templates/part/part_base.html:348 -#: stock/templates/stock/item_base.html:448 +#: part/models.py:1036 part/templates/part/part_base.html:341 +#: stock/templates/stock/item_base.html:441 #: templates/js/translated/part.js:1947 msgid "Last Stocktake" msgstr "" @@ -5569,7 +5635,7 @@ msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:368 #: templates/js/translated/part.js:1002 templates/js/translated/pricing.js:794 #: templates/js/translated/pricing.js:915 -#: templates/js/translated/purchase_order.js:1561 +#: templates/js/translated/purchase_order.js:1628 #: templates/js/translated/stock.js:2613 msgid "Date" msgstr "" @@ -5822,7 +5888,7 @@ msgstr "" msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:3713 stock/models.py:569 +#: part/models.py:3713 stock/models.py:570 msgid "Quantity must be integer value for trackable parts" msgstr "" @@ -6102,7 +6168,7 @@ msgstr "" #: part/tasks.py:289 templates/js/translated/part.js:983 #: templates/js/translated/part.js:1456 templates/js/translated/part.js:1512 -#: templates/js/translated/purchase_order.js:1922 +#: templates/js/translated/purchase_order.js:1989 msgid "Total Quantity" msgstr "" @@ -6127,8 +6193,7 @@ msgid "You do not have permission to edit the BOM." msgstr "" #: part/templates/part/bom.html:15 -#, python-format -msgid "The BOM for %(part)s has changed, and must be validated.
" +msgid "The BOM this part has been changed, and must be validated" msgstr "" #: part/templates/part/bom.html:17 @@ -6264,7 +6329,7 @@ msgid "Refresh scheduling data" msgstr "" #: part/templates/part/detail.html:45 part/templates/part/prices.html:15 -#: templates/js/translated/tables.js:562 +#: templates/js/translated/tables.js:572 msgid "Refresh" msgstr "" @@ -6416,13 +6481,13 @@ msgstr "" #: part/templates/part/import_wizard/part_upload.html:92 #: templates/js/translated/bom.js:278 templates/js/translated/bom.js:312 -#: templates/js/translated/order.js:109 templates/js/translated/tables.js:183 +#: templates/js/translated/order.js:112 templates/js/translated/tables.js:183 msgid "Format" msgstr "" #: part/templates/part/import_wizard/part_upload.html:93 #: templates/js/translated/bom.js:279 templates/js/translated/bom.js:313 -#: templates/js/translated/order.js:110 +#: templates/js/translated/order.js:113 msgid "Select file format" msgstr "" @@ -6507,8 +6572,7 @@ msgid "Part can be sold to customers" msgstr "" #: part/templates/part/part_base.html:147 -#: part/templates/part/part_base.html:155 -msgid "Part is virtual (not a physical part)" +msgid "Part is not active" msgstr "" #: part/templates/part/part_base.html:148 @@ -6519,71 +6583,70 @@ msgstr "" msgid "Inactive" msgstr "" +#: part/templates/part/part_base.html:155 +msgid "Part is virtual (not a physical part)" +msgstr "" + #: part/templates/part/part_base.html:165 -#: part/templates/part/part_base.html:691 +#: part/templates/part/part_base.html:684 msgid "Show Part Details" msgstr "" -#: part/templates/part/part_base.html:183 -#, python-format -msgid "This part is a variant of %(link)s" -msgstr "" - -#: part/templates/part/part_base.html:221 -#: stock/templates/stock/item_base.html:385 +#: part/templates/part/part_base.html:220 +#: stock/templates/stock/item_base.html:378 msgid "Allocated to Build Orders" msgstr "" -#: part/templates/part/part_base.html:230 -#: stock/templates/stock/item_base.html:378 +#: part/templates/part/part_base.html:229 +#: stock/templates/stock/item_base.html:371 msgid "Allocated to Sales Orders" msgstr "" -#: part/templates/part/part_base.html:238 templates/js/translated/bom.js:1174 +#: part/templates/part/part_base.html:237 templates/js/translated/bom.js:1174 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:294 +#: part/templates/part/part_base.html:293 msgid "Minimum stock level" msgstr "" -#: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1037 +#: part/templates/part/part_base.html:324 templates/js/translated/bom.js:1037 #: templates/js/translated/part.js:1181 templates/js/translated/part.js:1920 #: templates/js/translated/pricing.js:373 #: templates/js/translated/pricing.js:1019 msgid "Price Range" msgstr "" -#: part/templates/part/part_base.html:361 +#: part/templates/part/part_base.html:354 msgid "Latest Serial Number" msgstr "" -#: part/templates/part/part_base.html:365 -#: stock/templates/stock/item_base.html:334 +#: part/templates/part/part_base.html:358 +#: stock/templates/stock/item_base.html:323 msgid "Search for serial number" msgstr "" -#: part/templates/part/part_base.html:453 +#: part/templates/part/part_base.html:446 msgid "Part QR Code" msgstr "" -#: part/templates/part/part_base.html:470 +#: part/templates/part/part_base.html:463 msgid "Link Barcode to Part" msgstr "" -#: part/templates/part/part_base.html:520 +#: part/templates/part/part_base.html:513 msgid "Calculate" msgstr "" -#: part/templates/part/part_base.html:537 +#: part/templates/part/part_base.html:530 msgid "Remove associated image from this part" msgstr "" -#: part/templates/part/part_base.html:589 +#: part/templates/part/part_base.html:582 msgid "No matching images found" msgstr "" -#: part/templates/part/part_base.html:685 +#: part/templates/part/part_base.html:678 msgid "Hide Part Details" msgstr "" @@ -6673,7 +6736,7 @@ msgid "Refresh Part Pricing" msgstr "" #: part/templates/part/prices.html:25 stock/admin.py:129 -#: stock/templates/stock/item_base.html:443 +#: stock/templates/stock/item_base.html:436 #: templates/js/translated/company.js:1291 #: templates/js/translated/company.js:1301 #: templates/js/translated/stock.js:1956 @@ -6790,8 +6853,7 @@ msgid "Create new part variant" msgstr "" #: part/templates/part/variant_part.html:10 -#, python-format -msgid "Create a new variant of template '%(full_name)s'." +msgid "Create a new variant part from this template" msgstr "" #: part/templatetags/inventree_extras.py:187 @@ -6853,6 +6915,7 @@ msgid "Match found for barcode data" msgstr "" #: plugin/base/barcodes/api.py:120 +#: templates/js/translated/purchase_order.js:1321 msgid "Barcode matches existing item" msgstr "" @@ -6864,15 +6927,15 @@ msgstr "" msgid "Label printing failed" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:26 +#: plugin/builtin/barcodes/inventree_barcode.py:28 msgid "InvenTree Barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:27 +#: plugin/builtin/barcodes/inventree_barcode.py:29 msgid "Provides native support for barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:29 +#: plugin/builtin/barcodes/inventree_barcode.py:31 #: plugin/builtin/integration/core_notifications.py:33 msgid "InvenTree contributors" msgstr "" @@ -6975,18 +7038,19 @@ msgstr "" msgid "No date found" msgstr "" -#: plugin/registry.py:450 -msgid "Plugin `{plg_name}` is not compatible with the current InvenTree version {version.inventreeVersion()}!" -msgstr "" - #: plugin/registry.py:452 #, python-brace-format -msgid "Plugin requires at least version {plg_i.MIN_VERSION}" +msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "" #: plugin/registry.py:454 #, python-brace-format -msgid "Plugin requires at most version {plg_i.MAX_VERSION}" +msgid "Plugin requires at least version {v}" +msgstr "" + +#: plugin/registry.py:456 +#, python-brace-format +msgid "Plugin requires at most version {v}" msgstr "" #: plugin/samples/integration/sample.py:39 @@ -7053,16 +7117,16 @@ msgstr "" msgid "Either packagename of URL must be provided" msgstr "" -#: report/api.py:172 +#: report/api.py:171 msgid "No valid objects provided to template" msgstr "" -#: report/api.py:208 report/api.py:244 +#: report/api.py:207 report/api.py:243 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "" -#: report/api.py:311 +#: report/api.py:310 msgid "Test report" msgstr "" @@ -7168,11 +7232,11 @@ msgstr "" #: report/templates/report/inventree_po_report_base.html:30 #: report/templates/report/inventree_so_report_base.html:30 -#: templates/js/translated/order.js:288 templates/js/translated/pricing.js:509 +#: templates/js/translated/order.js:291 templates/js/translated/pricing.js:509 #: templates/js/translated/pricing.js:578 #: templates/js/translated/pricing.js:802 -#: templates/js/translated/purchase_order.js:1953 -#: templates/js/translated/sales_order.js:1701 +#: templates/js/translated/purchase_order.js:2020 +#: templates/js/translated/sales_order.js:1729 msgid "Unit Price" msgstr "" @@ -7184,22 +7248,22 @@ msgstr "" #: report/templates/report/inventree_po_report_base.html:72 #: report/templates/report/inventree_so_report_base.html:72 -#: templates/js/translated/purchase_order.js:1855 -#: templates/js/translated/sales_order.js:1676 +#: templates/js/translated/purchase_order.js:1922 +#: templates/js/translated/sales_order.js:1704 msgid "Total" msgstr "" #: report/templates/report/inventree_return_order_report_base.html:25 #: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:717 stock/templates/stock/item_base.html:323 +#: stock/models.py:718 stock/templates/stock/item_base.html:312 #: templates/js/translated/build.js:475 templates/js/translated/build.js:636 #: templates/js/translated/build.js:1250 templates/js/translated/build.js:1738 #: templates/js/translated/model_renderers.js:195 -#: templates/js/translated/return_order.js:483 -#: templates/js/translated/return_order.js:663 -#: templates/js/translated/sales_order.js:250 -#: templates/js/translated/sales_order.js:1470 -#: templates/js/translated/sales_order.js:1555 +#: templates/js/translated/return_order.js:486 +#: templates/js/translated/return_order.js:666 +#: templates/js/translated/sales_order.js:254 +#: templates/js/translated/sales_order.js:1509 +#: templates/js/translated/sales_order.js:1594 #: templates/js/translated/stock.js:526 msgid "Serial Number" msgstr "" @@ -7213,12 +7277,12 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:102 -#: stock/models.py:2183 templates/js/translated/stock.js:1398 +#: stock/models.py:2210 templates/js/translated/stock.js:1398 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:103 -#: stock/models.py:2189 +#: stock/models.py:2216 msgid "Result" msgstr "" @@ -7286,8 +7350,8 @@ msgstr "" msgid "Customer ID" msgstr "" -#: stock/admin.py:114 stock/models.py:700 -#: stock/templates/stock/item_base.html:362 +#: stock/admin.py:114 stock/models.py:701 +#: stock/templates/stock/item_base.html:355 msgid "Installed In" msgstr "" @@ -7311,278 +7375,277 @@ msgstr "" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:131 stock/models.py:773 -#: stock/templates/stock/item_base.html:430 +#: stock/admin.py:131 stock/models.py:774 +#: stock/templates/stock/item_base.html:423 #: templates/js/translated/stock.js:1940 msgid "Expiry Date" msgstr "" -#: stock/api.py:426 templates/js/translated/table_filters.js:325 +#: stock/api.py:409 templates/js/translated/table_filters.js:325 msgid "External Location" msgstr "" -#: stock/api.py:587 +#: stock/api.py:570 msgid "Quantity is required" msgstr "" -#: stock/api.py:594 +#: stock/api.py:577 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:619 +#: stock/api.py:602 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:53 stock/models.py:684 +#: stock/models.py:54 stock/models.py:685 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:54 stock/templates/stock/location.html:183 -#: templates/InvenTree/search.html:167 templates/js/translated/search.js:206 +#: stock/models.py:55 stock/templates/stock/location.html:177 +#: templates/InvenTree/search.html:167 templates/js/translated/search.js:208 #: users/models.py:40 msgid "Stock Locations" msgstr "" -#: stock/models.py:113 stock/models.py:814 -#: stock/templates/stock/item_base.html:253 +#: stock/models.py:114 stock/models.py:815 +#: stock/templates/stock/item_base.html:248 msgid "Owner" msgstr "" -#: stock/models.py:114 stock/models.py:815 +#: stock/models.py:115 stock/models.py:816 msgid "Select Owner" msgstr "" -#: stock/models.py:121 +#: stock/models.py:122 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:127 templates/js/translated/stock.js:2584 +#: stock/models.py:128 templates/js/translated/stock.js:2584 #: templates/js/translated/table_filters.js:167 msgid "External" msgstr "" -#: stock/models.py:128 +#: stock/models.py:129 msgid "This is an external stock location" msgstr "" -#: stock/models.py:170 +#: stock/models.py:171 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:549 +#: stock/models.py:550 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:575 stock/serializers.py:151 +#: stock/models.py:576 stock/serializers.py:151 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:592 +#: stock/models.py:593 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:602 stock/models.py:611 +#: stock/models.py:603 stock/models.py:612 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:603 +#: stock/models.py:604 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:625 +#: stock/models.py:626 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:631 +#: stock/models.py:632 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:645 +#: stock/models.py:646 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:659 +#: stock/models.py:660 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:669 +#: stock/models.py:670 msgid "Base part" msgstr "" -#: stock/models.py:677 +#: stock/models.py:678 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:687 +#: stock/models.py:688 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:694 +#: stock/models.py:695 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:703 +#: stock/models.py:704 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:719 +#: stock/models.py:720 msgid "Serial number for this item" msgstr "" -#: stock/models.py:733 +#: stock/models.py:734 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:738 +#: stock/models.py:739 msgid "Stock Quantity" msgstr "" -#: stock/models.py:745 +#: stock/models.py:746 msgid "Source Build" msgstr "" -#: stock/models.py:747 +#: stock/models.py:748 msgid "Build for this stock item" msgstr "" -#: stock/models.py:758 +#: stock/models.py:759 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:761 +#: stock/models.py:762 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:767 +#: stock/models.py:768 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:774 +#: stock/models.py:775 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:789 +#: stock/models.py:790 msgid "Delete on deplete" msgstr "" -#: stock/models.py:789 +#: stock/models.py:790 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:802 stock/templates/stock/item.html:132 +#: stock/models.py:803 stock/templates/stock/item.html:132 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:810 +#: stock/models.py:811 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:838 +#: stock/models.py:839 msgid "Converted to part" msgstr "" -#: stock/models.py:1335 +#: stock/models.py:1361 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1341 +#: stock/models.py:1367 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1347 +#: stock/models.py:1373 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1350 +#: stock/models.py:1376 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1353 +#: stock/models.py:1379 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1360 -#, python-brace-format -msgid "Serial numbers already exist: {exists}" +#: stock/models.py:1386 stock/serializers.py:349 +msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1430 +#: stock/models.py:1457 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1433 +#: stock/models.py:1460 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1436 +#: stock/models.py:1463 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1439 +#: stock/models.py:1466 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1442 +#: stock/models.py:1469 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1445 +#: stock/models.py:1472 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1452 stock/serializers.py:946 +#: stock/models.py:1479 stock/serializers.py:946 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1456 +#: stock/models.py:1483 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1460 +#: stock/models.py:1487 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1464 +#: stock/models.py:1491 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1633 +#: stock/models.py:1660 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2101 +#: stock/models.py:2128 msgid "Entry notes" msgstr "" -#: stock/models.py:2159 +#: stock/models.py:2186 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2165 +#: stock/models.py:2192 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2184 +#: stock/models.py:2211 msgid "Test name" msgstr "" -#: stock/models.py:2190 +#: stock/models.py:2217 msgid "Test result" msgstr "" -#: stock/models.py:2196 +#: stock/models.py:2223 msgid "Test output value" msgstr "" -#: stock/models.py:2203 +#: stock/models.py:2230 msgid "Test result attachment" msgstr "" -#: stock/models.py:2209 +#: stock/models.py:2236 msgid "Test notes" msgstr "" @@ -7619,10 +7682,6 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:349 -msgid "Serial numbers already exist" -msgstr "" - #: stock/serializers.py:389 msgid "Select stock item to install" msgstr "" @@ -7839,129 +7898,133 @@ msgstr "" msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:199 +#: stock/templates/stock/item_base.html:194 msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:217 +#: stock/templates/stock/item_base.html:212 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:257 +#: stock/templates/stock/item_base.html:252 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:258 +#: stock/templates/stock/item_base.html:253 #: stock/templates/stock/location.html:147 msgid "Read only" msgstr "" -#: stock/templates/stock/item_base.html:271 -msgid "This stock item is in production and cannot be edited." +#: stock/templates/stock/item_base.html:266 +msgid "This stock item is unavailable" msgstr "" #: stock/templates/stock/item_base.html:272 +msgid "This stock item is in production and cannot be edited." +msgstr "" + +#: stock/templates/stock/item_base.html:273 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:285 -msgid "This stock item has not passed all required tests" -msgstr "" - -#: stock/templates/stock/item_base.html:293 +#: stock/templates/stock/item_base.html:288 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:301 +#: stock/templates/stock/item_base.html:296 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:307 -msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." +#: stock/templates/stock/item_base.html:312 +msgid "This stock item is serialized. It has a unique serial number and the quantity cannot be adjusted" msgstr "" -#: stock/templates/stock/item_base.html:329 +#: stock/templates/stock/item_base.html:318 msgid "previous page" msgstr "" -#: stock/templates/stock/item_base.html:329 +#: stock/templates/stock/item_base.html:318 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:338 +#: stock/templates/stock/item_base.html:327 msgid "next page" msgstr "" -#: stock/templates/stock/item_base.html:338 +#: stock/templates/stock/item_base.html:327 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:351 +#: stock/templates/stock/item_base.html:341 msgid "Available Quantity" msgstr "" -#: stock/templates/stock/item_base.html:395 +#: stock/templates/stock/item_base.html:388 #: templates/js/translated/build.js:1764 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:410 +#: stock/templates/stock/item_base.html:403 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:434 +#: stock/templates/stock/item_base.html:409 +msgid "This stock item has not passed all required tests" +msgstr "" + +#: stock/templates/stock/item_base.html:427 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:434 +#: stock/templates/stock/item_base.html:427 #: templates/js/translated/table_filters.js:333 msgid "Expired" msgstr "" -#: stock/templates/stock/item_base.html:436 +#: stock/templates/stock/item_base.html:429 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:436 +#: stock/templates/stock/item_base.html:429 #: templates/js/translated/table_filters.js:339 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:452 +#: stock/templates/stock/item_base.html:445 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:530 +#: stock/templates/stock/item_base.html:523 msgid "Edit Stock Status" msgstr "" -#: stock/templates/stock/item_base.html:538 +#: stock/templates/stock/item_base.html:532 msgid "Stock Item QR Code" msgstr "" -#: stock/templates/stock/item_base.html:550 +#: stock/templates/stock/item_base.html:543 msgid "Link Barcode to Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:614 +#: stock/templates/stock/item_base.html:607 msgid "Select one of the part variants listed below." msgstr "" -#: stock/templates/stock/item_base.html:617 +#: stock/templates/stock/item_base.html:610 msgid "Warning" msgstr "" -#: stock/templates/stock/item_base.html:618 +#: stock/templates/stock/item_base.html:611 msgid "This action cannot be easily undone" msgstr "" -#: stock/templates/stock/item_base.html:626 +#: stock/templates/stock/item_base.html:619 msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:656 +#: stock/templates/stock/item_base.html:649 msgid "Return to Stock" msgstr "" @@ -8021,29 +8084,29 @@ msgstr "" msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:169 -#: stock/templates/stock/location.html:217 +#: stock/templates/stock/location.html:163 +#: stock/templates/stock/location.html:211 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/templates/stock/location.html:221 +#: stock/templates/stock/location.html:215 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:222 +#: stock/templates/stock/location.html:216 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:309 +#: stock/templates/stock/location.html:303 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:382 +#: stock/templates/stock/location.html:376 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:393 +#: stock/templates/stock/location.html:387 msgid "Link Barcode to Stock Location" msgstr "" @@ -8581,7 +8644,7 @@ msgid "Home Page" msgstr "" #: templates/InvenTree/settings/sidebar.html:15 -#: templates/js/translated/tables.js:553 templates/navbar.html:107 +#: templates/js/translated/tables.js:563 templates/navbar.html:107 #: templates/search.html:8 templates/search_form.html:6 #: templates/search_form.html:7 msgid "Search" @@ -8627,8 +8690,8 @@ msgid "Change Password" msgstr "" #: templates/InvenTree/settings/user.html:23 -#: templates/js/translated/helpers.js:53 templates/notes_buttons.html:3 -#: templates/notes_buttons.html:4 +#: templates/js/translated/helpers.js:53 templates/js/translated/pricing.js:610 +#: templates/notes_buttons.html:3 templates/notes_buttons.html:4 msgid "Edit" msgstr "" @@ -9101,6 +9164,10 @@ msgstr "" msgid "Delete Attachments" msgstr "" +#: templates/barcode_data.html:5 +msgid "Barcode Identifier" +msgstr "" + #: templates/base.html:102 msgid "Server Restart Required" msgstr "" @@ -9255,10 +9322,6 @@ msgstr "" msgid "Enter barcode data" msgstr "" -#: templates/js/translated/barcode.js:41 -msgid "Barcode" -msgstr "" - #: templates/js/translated/barcode.js:48 msgid "Scan barcode using connected webcam" msgstr "" @@ -9271,94 +9334,94 @@ msgstr "" msgid "Enter notes" msgstr "" -#: templates/js/translated/barcode.js:172 +#: templates/js/translated/barcode.js:175 msgid "Server error" msgstr "" -#: templates/js/translated/barcode.js:201 +#: templates/js/translated/barcode.js:204 msgid "Unknown response from server" msgstr "" -#: templates/js/translated/barcode.js:236 +#: templates/js/translated/barcode.js:239 #: templates/js/translated/modals.js:1100 msgid "Invalid server response" msgstr "" -#: templates/js/translated/barcode.js:354 +#: templates/js/translated/barcode.js:359 msgid "Scan barcode data" msgstr "" -#: templates/js/translated/barcode.js:404 templates/navbar.html:114 +#: templates/js/translated/barcode.js:407 templates/navbar.html:114 msgid "Scan Barcode" msgstr "" -#: templates/js/translated/barcode.js:416 +#: templates/js/translated/barcode.js:427 msgid "No URL in response" msgstr "" -#: templates/js/translated/barcode.js:455 +#: templates/js/translated/barcode.js:468 msgid "This will remove the link to the associated barcode" msgstr "" -#: templates/js/translated/barcode.js:461 +#: templates/js/translated/barcode.js:474 msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:523 templates/js/translated/stock.js:1097 +#: templates/js/translated/barcode.js:537 templates/js/translated/stock.js:1097 msgid "Remove stock item" msgstr "" -#: templates/js/translated/barcode.js:566 +#: templates/js/translated/barcode.js:580 msgid "Scan Stock Items Into Location" msgstr "" -#: templates/js/translated/barcode.js:568 +#: templates/js/translated/barcode.js:582 msgid "Scan stock item barcode to check in to this location" msgstr "" -#: templates/js/translated/barcode.js:571 -#: templates/js/translated/barcode.js:763 +#: templates/js/translated/barcode.js:585 +#: templates/js/translated/barcode.js:780 msgid "Check In" msgstr "" -#: templates/js/translated/barcode.js:602 +#: templates/js/translated/barcode.js:616 msgid "No barcode provided" msgstr "" -#: templates/js/translated/barcode.js:642 +#: templates/js/translated/barcode.js:656 msgid "Stock Item already scanned" msgstr "" -#: templates/js/translated/barcode.js:646 +#: templates/js/translated/barcode.js:660 msgid "Stock Item already in this location" msgstr "" -#: templates/js/translated/barcode.js:653 +#: templates/js/translated/barcode.js:667 msgid "Added stock item" msgstr "" -#: templates/js/translated/barcode.js:662 +#: templates/js/translated/barcode.js:676 msgid "Barcode does not match valid stock item" msgstr "" -#: templates/js/translated/barcode.js:679 +#: templates/js/translated/barcode.js:695 msgid "Scan Stock Container Into Location" msgstr "" -#: templates/js/translated/barcode.js:681 +#: templates/js/translated/barcode.js:697 msgid "Scan stock container barcode to check in to this location" msgstr "" -#: templates/js/translated/barcode.js:715 +#: templates/js/translated/barcode.js:731 msgid "Barcode does not match valid stock location" msgstr "" -#: templates/js/translated/barcode.js:758 +#: templates/js/translated/barcode.js:775 msgid "Check Into Location" msgstr "" -#: templates/js/translated/barcode.js:826 -#: templates/js/translated/barcode.js:835 +#: templates/js/translated/barcode.js:843 +#: templates/js/translated/barcode.js:852 msgid "Barcode does not match a valid location" msgstr "" @@ -9377,7 +9440,7 @@ msgstr "" #: templates/js/translated/bom.js:158 templates/js/translated/bom.js:669 #: templates/js/translated/modals.js:69 templates/js/translated/modals.js:608 #: templates/js/translated/modals.js:732 templates/js/translated/modals.js:1040 -#: templates/js/translated/purchase_order.js:739 templates/modals.html:15 +#: templates/js/translated/purchase_order.js:742 templates/modals.html:15 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 msgid "Close" msgstr "" @@ -9511,7 +9574,7 @@ msgid "No pricing available" msgstr "" #: templates/js/translated/bom.js:1143 templates/js/translated/build.js:1922 -#: templates/js/translated/sales_order.js:1771 +#: templates/js/translated/sales_order.js:1799 msgid "No Stock Available" msgstr "" @@ -9712,12 +9775,12 @@ msgid "No required tests for this build" msgstr "" #: templates/js/translated/build.js:1781 templates/js/translated/build.js:2803 -#: templates/js/translated/sales_order.js:1505 +#: templates/js/translated/sales_order.js:1544 msgid "Edit stock allocation" msgstr "" #: templates/js/translated/build.js:1783 templates/js/translated/build.js:2804 -#: templates/js/translated/sales_order.js:1506 +#: templates/js/translated/sales_order.js:1545 msgid "Delete stock allocation" msgstr "" @@ -9738,17 +9801,17 @@ msgid "Quantity Per" msgstr "" #: templates/js/translated/build.js:1916 -#: templates/js/translated/sales_order.js:1778 +#: templates/js/translated/sales_order.js:1806 msgid "Insufficient stock available" msgstr "" #: templates/js/translated/build.js:1918 -#: templates/js/translated/sales_order.js:1776 +#: templates/js/translated/sales_order.js:1804 msgid "Sufficient stock available" msgstr "" #: templates/js/translated/build.js:2014 -#: templates/js/translated/sales_order.js:1870 +#: templates/js/translated/sales_order.js:1905 msgid "Build stock" msgstr "" @@ -9757,23 +9820,23 @@ msgid "Order stock" msgstr "" #: templates/js/translated/build.js:2021 -#: templates/js/translated/sales_order.js:1863 +#: templates/js/translated/sales_order.js:1899 msgid "Allocate stock" msgstr "" #: templates/js/translated/build.js:2059 -#: templates/js/translated/purchase_order.js:564 -#: templates/js/translated/sales_order.js:1042 +#: templates/js/translated/purchase_order.js:567 +#: templates/js/translated/sales_order.js:1068 msgid "Select Parts" msgstr "" #: templates/js/translated/build.js:2060 -#: templates/js/translated/sales_order.js:1043 +#: templates/js/translated/sales_order.js:1069 msgid "You must select at least one part to allocate" msgstr "" #: templates/js/translated/build.js:2108 -#: templates/js/translated/sales_order.js:991 +#: templates/js/translated/sales_order.js:1017 msgid "Specify stock allocation quantity" msgstr "" @@ -9786,7 +9849,7 @@ msgid "All selected parts have been fully allocated" msgstr "" #: templates/js/translated/build.js:2202 -#: templates/js/translated/sales_order.js:1057 +#: templates/js/translated/sales_order.js:1083 msgid "Select source location (leave blank to take from all locations)" msgstr "" @@ -9795,12 +9858,12 @@ msgid "Allocate Stock Items to Build Order" msgstr "" #: templates/js/translated/build.js:2241 -#: templates/js/translated/sales_order.js:1154 +#: templates/js/translated/sales_order.js:1180 msgid "No matching stock locations" msgstr "" #: templates/js/translated/build.js:2314 -#: templates/js/translated/sales_order.js:1231 +#: templates/js/translated/sales_order.js:1257 msgid "No matching stock items" msgstr "" @@ -10116,7 +10179,7 @@ msgstr "" msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2010 templates/js/translated/search.js:267 +#: templates/js/translated/forms.js:2010 templates/js/translated/search.js:269 msgid "Searching" msgstr "" @@ -10144,7 +10207,7 @@ msgstr "" msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:460 +#: templates/js/translated/helpers.js:466 msgid "Notes updated" msgstr "" @@ -10271,40 +10334,40 @@ msgstr "" msgid "Notifications will load here" msgstr "" -#: templates/js/translated/order.js:69 +#: templates/js/translated/order.js:72 msgid "Add Extra Line Item" msgstr "" -#: templates/js/translated/order.js:106 +#: templates/js/translated/order.js:109 msgid "Export Order" msgstr "" -#: templates/js/translated/order.js:219 +#: templates/js/translated/order.js:222 msgid "Duplicate Line" msgstr "" -#: templates/js/translated/order.js:233 +#: templates/js/translated/order.js:236 msgid "Edit Line" msgstr "" -#: templates/js/translated/order.js:246 +#: templates/js/translated/order.js:249 msgid "Delete Line" msgstr "" -#: templates/js/translated/order.js:259 -#: templates/js/translated/purchase_order.js:1828 +#: templates/js/translated/order.js:262 +#: templates/js/translated/purchase_order.js:1895 msgid "No line items found" msgstr "" -#: templates/js/translated/order.js:332 +#: templates/js/translated/order.js:344 msgid "Duplicate line" msgstr "" -#: templates/js/translated/order.js:333 +#: templates/js/translated/order.js:345 msgid "Edit line" msgstr "" -#: templates/js/translated/order.js:337 +#: templates/js/translated/order.js:349 msgid "Delete line" msgstr "" @@ -10506,19 +10569,19 @@ msgid "No variants found" msgstr "" #: templates/js/translated/part.js:1351 -#: templates/js/translated/purchase_order.js:1500 +#: templates/js/translated/purchase_order.js:1567 msgid "No purchase orders found" msgstr "" #: templates/js/translated/part.js:1495 -#: templates/js/translated/purchase_order.js:1991 -#: templates/js/translated/return_order.js:695 -#: templates/js/translated/sales_order.js:1739 +#: templates/js/translated/purchase_order.js:2058 +#: templates/js/translated/return_order.js:698 +#: templates/js/translated/sales_order.js:1767 msgid "This line item is overdue" msgstr "" #: templates/js/translated/part.js:1541 -#: templates/js/translated/purchase_order.js:2049 +#: templates/js/translated/purchase_order.js:2125 msgid "Receive line item" msgstr "" @@ -10652,16 +10715,6 @@ msgstr "" msgid "No price break data available" msgstr "" -#: templates/js/translated/pricing.js:610 -#, python-brace-format -msgid "Edit ${human_name}" -msgstr "" - -#: templates/js/translated/pricing.js:611 -#, python-brace-format -msgid "Delete ${human_name}" -msgstr "" - #: templates/js/translated/pricing.js:737 msgid "No purchase history data available" msgstr "" @@ -10714,184 +10767,206 @@ msgstr "" msgid "Duplication Options" msgstr "" -#: templates/js/translated/purchase_order.js:384 +#: templates/js/translated/purchase_order.js:387 msgid "Complete Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:401 +#: templates/js/translated/purchase_order.js:404 #: templates/js/translated/return_order.js:165 -#: templates/js/translated/sales_order.js:431 +#: templates/js/translated/sales_order.js:435 msgid "Mark this order as complete?" msgstr "" -#: templates/js/translated/purchase_order.js:407 +#: templates/js/translated/purchase_order.js:410 msgid "All line items have been received" msgstr "" -#: templates/js/translated/purchase_order.js:412 +#: templates/js/translated/purchase_order.js:415 msgid "This order has line items which have not been marked as received." msgstr "" -#: templates/js/translated/purchase_order.js:413 -#: templates/js/translated/sales_order.js:445 +#: templates/js/translated/purchase_order.js:416 +#: templates/js/translated/sales_order.js:449 msgid "Completing this order means that the order and line items will no longer be editable." msgstr "" -#: templates/js/translated/purchase_order.js:436 +#: templates/js/translated/purchase_order.js:439 msgid "Cancel Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:441 +#: templates/js/translated/purchase_order.js:444 msgid "Are you sure you wish to cancel this purchase order?" msgstr "" -#: templates/js/translated/purchase_order.js:447 +#: templates/js/translated/purchase_order.js:450 msgid "This purchase order can not be cancelled" msgstr "" -#: templates/js/translated/purchase_order.js:468 +#: templates/js/translated/purchase_order.js:471 #: templates/js/translated/return_order.js:119 msgid "After placing this order, line items will no longer be editable." msgstr "" -#: templates/js/translated/purchase_order.js:473 +#: templates/js/translated/purchase_order.js:476 msgid "Issue Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:565 +#: templates/js/translated/purchase_order.js:568 msgid "At least one purchaseable part must be selected" msgstr "" -#: templates/js/translated/purchase_order.js:590 +#: templates/js/translated/purchase_order.js:593 msgid "Quantity to order" msgstr "" -#: templates/js/translated/purchase_order.js:599 +#: templates/js/translated/purchase_order.js:602 msgid "New supplier part" msgstr "" -#: templates/js/translated/purchase_order.js:617 +#: templates/js/translated/purchase_order.js:620 msgid "New purchase order" msgstr "" -#: templates/js/translated/purchase_order.js:649 +#: templates/js/translated/purchase_order.js:652 msgid "Add to purchase order" msgstr "" -#: templates/js/translated/purchase_order.js:793 +#: templates/js/translated/purchase_order.js:796 msgid "No matching supplier parts" msgstr "" -#: templates/js/translated/purchase_order.js:812 +#: templates/js/translated/purchase_order.js:815 msgid "No matching purchase orders" msgstr "" -#: templates/js/translated/purchase_order.js:991 +#: templates/js/translated/purchase_order.js:994 msgid "Select Line Items" msgstr "" -#: templates/js/translated/purchase_order.js:992 -#: templates/js/translated/return_order.js:435 +#: templates/js/translated/purchase_order.js:995 +#: templates/js/translated/return_order.js:438 msgid "At least one line item must be selected" msgstr "" -#: templates/js/translated/purchase_order.js:1012 -#: templates/js/translated/purchase_order.js:1125 -msgid "Add batch code" -msgstr "" - -#: templates/js/translated/purchase_order.js:1018 -#: templates/js/translated/purchase_order.js:1136 -msgid "Add serial numbers" -msgstr "" - -#: templates/js/translated/purchase_order.js:1033 +#: templates/js/translated/purchase_order.js:1023 msgid "Received Quantity" msgstr "" -#: templates/js/translated/purchase_order.js:1044 +#: templates/js/translated/purchase_order.js:1034 msgid "Quantity to receive" msgstr "" -#: templates/js/translated/purchase_order.js:1108 +#: templates/js/translated/purchase_order.js:1110 #: templates/js/translated/stock.js:2273 msgid "Stock Status" msgstr "" -#: templates/js/translated/purchase_order.js:1196 -msgid "Order Code" +#: templates/js/translated/purchase_order.js:1124 +msgid "Add barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1197 -msgid "Ordered" +#: templates/js/translated/purchase_order.js:1125 +msgid "Remove barcode" +msgstr "" + +#: templates/js/translated/purchase_order.js:1128 +msgid "Specify location" +msgstr "" + +#: templates/js/translated/purchase_order.js:1136 +msgid "Add batch code" +msgstr "" + +#: templates/js/translated/purchase_order.js:1147 +msgid "Add serial numbers" msgstr "" #: templates/js/translated/purchase_order.js:1199 +msgid "Serials" +msgstr "" + +#: templates/js/translated/purchase_order.js:1224 +msgid "Order Code" +msgstr "" + +#: templates/js/translated/purchase_order.js:1226 msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1222 -#: templates/js/translated/return_order.js:500 +#: templates/js/translated/purchase_order.js:1248 +#: templates/js/translated/return_order.js:503 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1223 +#: templates/js/translated/purchase_order.js:1249 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1527 +#: templates/js/translated/purchase_order.js:1317 +msgid "Scan Item Barcode" +msgstr "" + +#: templates/js/translated/purchase_order.js:1318 +msgid "Scan barcode on incoming item (must not match any existing stock items)" +msgstr "" + +#: templates/js/translated/purchase_order.js:1332 +msgid "Invalid barcode data" +msgstr "" + +#: templates/js/translated/purchase_order.js:1594 #: templates/js/translated/return_order.js:244 -#: templates/js/translated/sales_order.js:686 +#: templates/js/translated/sales_order.js:712 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1577 +#: templates/js/translated/purchase_order.js:1644 #: templates/js/translated/return_order.js:300 -#: templates/js/translated/sales_order.js:751 -#: templates/js/translated/sales_order.js:893 +#: templates/js/translated/sales_order.js:777 +#: templates/js/translated/sales_order.js:919 msgid "Items" msgstr "" -#: templates/js/translated/purchase_order.js:1676 +#: templates/js/translated/purchase_order.js:1743 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1694 +#: templates/js/translated/purchase_order.js:1761 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1754 -#: templates/js/translated/sales_order.js:1920 +#: templates/js/translated/purchase_order.js:1821 +#: templates/js/translated/sales_order.js:1959 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:1769 -#: templates/js/translated/return_order.js:419 -#: templates/js/translated/return_order.js:608 -#: templates/js/translated/sales_order.js:1933 +#: templates/js/translated/purchase_order.js:1836 +#: templates/js/translated/return_order.js:422 +#: templates/js/translated/return_order.js:611 +#: templates/js/translated/sales_order.js:1972 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:1780 -#: templates/js/translated/return_order.js:621 -#: templates/js/translated/sales_order.js:1944 +#: templates/js/translated/purchase_order.js:1847 +#: templates/js/translated/return_order.js:624 +#: templates/js/translated/sales_order.js:1983 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2053 -#: templates/js/translated/sales_order.js:1876 +#: templates/js/translated/purchase_order.js:2129 +#: templates/js/translated/sales_order.js:1913 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2054 -#: templates/js/translated/return_order.js:731 -#: templates/js/translated/sales_order.js:1877 +#: templates/js/translated/purchase_order.js:2130 +#: templates/js/translated/return_order.js:743 +#: templates/js/translated/sales_order.js:1914 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2055 -#: templates/js/translated/return_order.js:735 -#: templates/js/translated/sales_order.js:1881 +#: templates/js/translated/purchase_order.js:2131 +#: templates/js/translated/return_order.js:747 +#: templates/js/translated/sales_order.js:1920 msgid "Delete line item" msgstr "" @@ -10916,7 +10991,7 @@ msgid "No report templates found which match the selected items" msgstr "" #: templates/js/translated/return_order.js:40 -#: templates/js/translated/sales_order.js:52 +#: templates/js/translated/sales_order.js:53 msgid "Add Customer" msgstr "" @@ -10949,208 +11024,221 @@ msgid "No return orders found" msgstr "" #: templates/js/translated/return_order.js:258 -#: templates/js/translated/sales_order.js:700 +#: templates/js/translated/sales_order.js:726 msgid "Invalid Customer" msgstr "" -#: templates/js/translated/return_order.js:501 +#: templates/js/translated/return_order.js:504 msgid "Receive Return Order Items" msgstr "" -#: templates/js/translated/return_order.js:632 -#: templates/js/translated/sales_order.js:2080 +#: templates/js/translated/return_order.js:635 +#: templates/js/translated/sales_order.js:2119 msgid "No matching line items" msgstr "" -#: templates/js/translated/return_order.js:728 +#: templates/js/translated/return_order.js:740 msgid "Mark item as received" msgstr "" -#: templates/js/translated/sales_order.js:102 +#: templates/js/translated/sales_order.js:103 msgid "Create Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:117 +#: templates/js/translated/sales_order.js:118 msgid "Edit Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:226 +#: templates/js/translated/sales_order.js:230 msgid "No stock items have been allocated to this shipment" msgstr "" -#: templates/js/translated/sales_order.js:231 +#: templates/js/translated/sales_order.js:235 msgid "The following stock items will be shipped" msgstr "" -#: templates/js/translated/sales_order.js:271 +#: templates/js/translated/sales_order.js:275 msgid "Complete Shipment" msgstr "" -#: templates/js/translated/sales_order.js:291 +#: templates/js/translated/sales_order.js:295 msgid "Confirm Shipment" msgstr "" -#: templates/js/translated/sales_order.js:347 +#: templates/js/translated/sales_order.js:351 msgid "No pending shipments found" msgstr "" -#: templates/js/translated/sales_order.js:351 +#: templates/js/translated/sales_order.js:355 msgid "No stock items have been allocated to pending shipments" msgstr "" -#: templates/js/translated/sales_order.js:383 +#: templates/js/translated/sales_order.js:365 +msgid "Complete Shipments" +msgstr "" + +#: templates/js/translated/sales_order.js:387 msgid "Skip" msgstr "" -#: templates/js/translated/sales_order.js:444 +#: templates/js/translated/sales_order.js:448 msgid "This order has line items which have not been completed." msgstr "" -#: templates/js/translated/sales_order.js:468 +#: templates/js/translated/sales_order.js:470 +msgid "Issue this Sales Order?" +msgstr "" + +#: templates/js/translated/sales_order.js:475 +msgid "Issue Sales Order" +msgstr "" + +#: templates/js/translated/sales_order.js:494 msgid "Cancel Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:473 +#: templates/js/translated/sales_order.js:499 msgid "Cancelling this order means that the order will no longer be editable." msgstr "" -#: templates/js/translated/sales_order.js:527 +#: templates/js/translated/sales_order.js:553 msgid "Create New Shipment" msgstr "" -#: templates/js/translated/sales_order.js:637 +#: templates/js/translated/sales_order.js:663 msgid "No sales orders found" msgstr "" -#: templates/js/translated/sales_order.js:805 +#: templates/js/translated/sales_order.js:831 msgid "Edit shipment" msgstr "" -#: templates/js/translated/sales_order.js:808 +#: templates/js/translated/sales_order.js:834 msgid "Complete shipment" msgstr "" -#: templates/js/translated/sales_order.js:813 +#: templates/js/translated/sales_order.js:839 msgid "Delete shipment" msgstr "" -#: templates/js/translated/sales_order.js:830 +#: templates/js/translated/sales_order.js:856 msgid "Edit Shipment" msgstr "" -#: templates/js/translated/sales_order.js:845 +#: templates/js/translated/sales_order.js:871 msgid "Delete Shipment" msgstr "" -#: templates/js/translated/sales_order.js:878 +#: templates/js/translated/sales_order.js:904 msgid "No matching shipments found" msgstr "" -#: templates/js/translated/sales_order.js:888 +#: templates/js/translated/sales_order.js:914 msgid "Shipment Reference" msgstr "" -#: templates/js/translated/sales_order.js:912 +#: templates/js/translated/sales_order.js:938 +#: templates/js/translated/sales_order.js:1424 msgid "Not shipped" msgstr "" -#: templates/js/translated/sales_order.js:918 +#: templates/js/translated/sales_order.js:944 msgid "Tracking" msgstr "" -#: templates/js/translated/sales_order.js:922 +#: templates/js/translated/sales_order.js:948 msgid "Invoice" msgstr "" -#: templates/js/translated/sales_order.js:1090 +#: templates/js/translated/sales_order.js:1116 msgid "Add Shipment" msgstr "" -#: templates/js/translated/sales_order.js:1141 +#: templates/js/translated/sales_order.js:1167 msgid "Confirm stock allocation" msgstr "" -#: templates/js/translated/sales_order.js:1142 +#: templates/js/translated/sales_order.js:1168 msgid "Allocate Stock Items to Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:1346 +#: templates/js/translated/sales_order.js:1372 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/sales_order.js:1425 +#: templates/js/translated/sales_order.js:1464 msgid "Edit Stock Allocation" msgstr "" -#: templates/js/translated/sales_order.js:1439 +#: templates/js/translated/sales_order.js:1478 msgid "Confirm Delete Operation" msgstr "" -#: templates/js/translated/sales_order.js:1440 +#: templates/js/translated/sales_order.js:1479 msgid "Delete Stock Allocation" msgstr "" -#: templates/js/translated/sales_order.js:1482 -#: templates/js/translated/sales_order.js:1569 +#: templates/js/translated/sales_order.js:1521 +#: templates/js/translated/sales_order.js:1608 #: templates/js/translated/stock.js:1664 msgid "Shipped to customer" msgstr "" -#: templates/js/translated/sales_order.js:1490 -#: templates/js/translated/sales_order.js:1578 +#: templates/js/translated/sales_order.js:1529 +#: templates/js/translated/sales_order.js:1617 msgid "Stock location not specified" msgstr "" -#: templates/js/translated/sales_order.js:1860 +#: templates/js/translated/sales_order.js:1897 msgid "Allocate serial numbers" msgstr "" -#: templates/js/translated/sales_order.js:1866 +#: templates/js/translated/sales_order.js:1901 msgid "Purchase stock" msgstr "" -#: templates/js/translated/sales_order.js:1873 -#: templates/js/translated/sales_order.js:2058 +#: templates/js/translated/sales_order.js:1910 +#: templates/js/translated/sales_order.js:2097 msgid "Calculate price" msgstr "" -#: templates/js/translated/sales_order.js:1885 +#: templates/js/translated/sales_order.js:1924 msgid "Cannot be deleted as items have been shipped" msgstr "" -#: templates/js/translated/sales_order.js:1888 +#: templates/js/translated/sales_order.js:1927 msgid "Cannot be deleted as items have been allocated" msgstr "" -#: templates/js/translated/sales_order.js:1959 +#: templates/js/translated/sales_order.js:1998 msgid "Allocate Serial Numbers" msgstr "" -#: templates/js/translated/sales_order.js:2066 +#: templates/js/translated/sales_order.js:2105 msgid "Update Unit Price" msgstr "" -#: templates/js/translated/search.js:298 +#: templates/js/translated/search.js:300 msgid "No results" msgstr "" -#: templates/js/translated/search.js:320 templates/search.html:25 +#: templates/js/translated/search.js:322 templates/search.html:25 msgid "Enter search query" msgstr "" -#: templates/js/translated/search.js:370 +#: templates/js/translated/search.js:372 msgid "result" msgstr "" -#: templates/js/translated/search.js:370 +#: templates/js/translated/search.js:372 msgid "results" msgstr "" -#: templates/js/translated/search.js:380 +#: templates/js/translated/search.js:382 msgid "Minimize results" msgstr "" -#: templates/js/translated/search.js:383 +#: templates/js/translated/search.js:385 msgid "Remove results" msgstr "" @@ -11832,51 +11920,51 @@ msgstr "" msgid "Select File Format" msgstr "" -#: templates/js/translated/tables.js:539 +#: templates/js/translated/tables.js:549 msgid "Loading data" msgstr "" -#: templates/js/translated/tables.js:542 +#: templates/js/translated/tables.js:552 msgid "rows per page" msgstr "" -#: templates/js/translated/tables.js:547 +#: templates/js/translated/tables.js:557 msgid "Showing all rows" msgstr "" -#: templates/js/translated/tables.js:549 +#: templates/js/translated/tables.js:559 msgid "Showing" msgstr "" -#: templates/js/translated/tables.js:549 +#: templates/js/translated/tables.js:559 msgid "to" msgstr "" -#: templates/js/translated/tables.js:549 +#: templates/js/translated/tables.js:559 msgid "of" msgstr "" -#: templates/js/translated/tables.js:549 +#: templates/js/translated/tables.js:559 msgid "rows" msgstr "" -#: templates/js/translated/tables.js:556 +#: templates/js/translated/tables.js:566 msgid "No matching results" msgstr "" -#: templates/js/translated/tables.js:559 +#: templates/js/translated/tables.js:569 msgid "Hide/Show pagination" msgstr "" -#: templates/js/translated/tables.js:565 +#: templates/js/translated/tables.js:575 msgid "Toggle" msgstr "" -#: templates/js/translated/tables.js:568 +#: templates/js/translated/tables.js:578 msgid "Columns" msgstr "" -#: templates/js/translated/tables.js:571 +#: templates/js/translated/tables.js:581 msgid "All" msgstr "" diff --git a/InvenTree/locale/fa/LC_MESSAGES/django.po b/InvenTree/locale/fa/LC_MESSAGES/django.po index f979bddafc..107c6bccd4 100644 --- a/InvenTree/locale/fa/LC_MESSAGES/django.po +++ b/InvenTree/locale/fa/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-04-14 22:35+0000\n" -"PO-Revision-Date: 2023-04-15 18:23\n" +"POT-Creation-Date: 2023-04-17 14:13+0000\n" +"PO-Revision-Date: 2023-04-17 18:26\n" "Last-Translator: \n" "Language-Team: Persian\n" "Language: fa_IR\n" @@ -41,7 +41,7 @@ msgstr "تاریخ را وارد کنید" #: order/templates/order/so_sidebar.html:17 part/admin.py:41 #: part/models.py:2989 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/admin.py:121 stock/models.py:2126 stock/models.py:2234 +#: stock/admin.py:121 stock/models.py:2127 stock/models.py:2235 #: stock/serializers.py:317 stock/serializers.py:450 stock/serializers.py:531 #: stock/serializers.py:810 stock/serializers.py:909 stock/serializers.py:1041 #: stock/templates/stock/stock_sidebar.html:25 @@ -209,7 +209,7 @@ msgstr "" msgid "Missing external link" msgstr "" -#: InvenTree/models.py:409 stock/models.py:2228 +#: InvenTree/models.py:409 stock/models.py:2229 #: templates/js/translated/attachment.js:109 #: templates/js/translated/attachment.js:296 msgid "Attachment" @@ -1833,23 +1833,24 @@ msgstr "" msgid "Completed Outputs" msgstr "" -#: common/files.py:62 -msgid "Unsupported file format: {ext.upper()}" +#: common/files.py:63 +#, python-brace-format +msgid "Unsupported file format: {fmt}" msgstr "" -#: common/files.py:64 +#: common/files.py:65 msgid "Error reading file (invalid encoding)" msgstr "" -#: common/files.py:69 +#: common/files.py:70 msgid "Error reading file (invalid format)" msgstr "" -#: common/files.py:71 +#: common/files.py:72 msgid "Error reading file (incorrect dimension)" msgstr "" -#: common/files.py:73 +#: common/files.py:74 msgid "Error reading file (data could be corrupted)" msgstr "" @@ -3481,7 +3482,7 @@ msgstr "" #: company/models.py:394 #: report/templates/report/inventree_test_report_base.html:104 -#: stock/models.py:2221 templates/js/translated/company.js:857 +#: stock/models.py:2222 templates/js/translated/company.js:857 #: templates/js/translated/company.js:1062 templates/js/translated/part.js:1268 #: templates/js/translated/stock.js:1425 msgid "Value" @@ -3902,8 +3903,8 @@ msgstr "" #: company/templates/company/manufacturer_part.html:183 #: part/templates/part/detail.html:393 part/templates/part/detail.html:423 #: templates/js/translated/forms.js:499 templates/js/translated/helpers.js:58 -#: templates/js/translated/part.js:313 templates/js/translated/stock.js:186 -#: users/models.py:243 +#: templates/js/translated/part.js:313 templates/js/translated/pricing.js:611 +#: templates/js/translated/stock.js:186 users/models.py:243 msgid "Delete" msgstr "" @@ -6191,8 +6192,7 @@ msgid "You do not have permission to edit the BOM." msgstr "" #: part/templates/part/bom.html:15 -#, python-format -msgid "The BOM for %(part)s has changed, and must be validated.
" +msgid "The BOM this part has been changed, and must be validated" msgstr "" #: part/templates/part/bom.html:17 @@ -6852,8 +6852,7 @@ msgid "Create new part variant" msgstr "" #: part/templates/part/variant_part.html:10 -#, python-format -msgid "Create a new variant of template '%(full_name)s'." +msgid "Create a new variant part from this template" msgstr "" #: part/templatetags/inventree_extras.py:187 @@ -7038,18 +7037,19 @@ msgstr "" msgid "No date found" msgstr "" -#: plugin/registry.py:450 -msgid "Plugin `{plg_name}` is not compatible with the current InvenTree version {version.inventreeVersion()}!" -msgstr "" - #: plugin/registry.py:452 #, python-brace-format -msgid "Plugin requires at least version {plg_i.MIN_VERSION}" +msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "" #: plugin/registry.py:454 #, python-brace-format -msgid "Plugin requires at most version {plg_i.MAX_VERSION}" +msgid "Plugin requires at least version {v}" +msgstr "" + +#: plugin/registry.py:456 +#, python-brace-format +msgid "Plugin requires at most version {v}" msgstr "" #: plugin/samples/integration/sample.py:39 @@ -7276,12 +7276,12 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:102 -#: stock/models.py:2209 templates/js/translated/stock.js:1398 +#: stock/models.py:2210 templates/js/translated/stock.js:1398 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:103 -#: stock/models.py:2215 +#: stock/models.py:2216 msgid "Result" msgstr "" @@ -7568,84 +7568,83 @@ msgstr "" msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1386 -#, python-brace-format -msgid "Serial numbers already exist: {exists}" +#: stock/models.py:1386 stock/serializers.py:349 +msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1456 +#: stock/models.py:1457 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1459 +#: stock/models.py:1460 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1462 +#: stock/models.py:1463 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1465 +#: stock/models.py:1466 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1468 +#: stock/models.py:1469 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1471 +#: stock/models.py:1472 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1478 stock/serializers.py:946 +#: stock/models.py:1479 stock/serializers.py:946 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1482 +#: stock/models.py:1483 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1486 +#: stock/models.py:1487 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1490 +#: stock/models.py:1491 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1659 +#: stock/models.py:1660 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2127 +#: stock/models.py:2128 msgid "Entry notes" msgstr "" -#: stock/models.py:2185 +#: stock/models.py:2186 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2191 +#: stock/models.py:2192 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2210 +#: stock/models.py:2211 msgid "Test name" msgstr "" -#: stock/models.py:2216 +#: stock/models.py:2217 msgid "Test result" msgstr "" -#: stock/models.py:2222 +#: stock/models.py:2223 msgid "Test output value" msgstr "" -#: stock/models.py:2229 +#: stock/models.py:2230 msgid "Test result attachment" msgstr "" -#: stock/models.py:2235 +#: stock/models.py:2236 msgid "Test notes" msgstr "" @@ -7682,10 +7681,6 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:349 -msgid "Serial numbers already exist" -msgstr "" - #: stock/serializers.py:389 msgid "Select stock item to install" msgstr "" @@ -8694,8 +8689,8 @@ msgid "Change Password" msgstr "" #: templates/InvenTree/settings/user.html:23 -#: templates/js/translated/helpers.js:53 templates/notes_buttons.html:3 -#: templates/notes_buttons.html:4 +#: templates/js/translated/helpers.js:53 templates/js/translated/pricing.js:610 +#: templates/notes_buttons.html:3 templates/notes_buttons.html:4 msgid "Edit" msgstr "" @@ -10719,16 +10714,6 @@ msgstr "" msgid "No price break data available" msgstr "" -#: templates/js/translated/pricing.js:610 -#, python-brace-format -msgid "Edit ${human_name}" -msgstr "" - -#: templates/js/translated/pricing.js:611 -#, python-brace-format -msgid "Delete ${human_name}" -msgstr "" - #: templates/js/translated/pricing.js:737 msgid "No purchase history data available" msgstr "" diff --git a/InvenTree/locale/fr/LC_MESSAGES/django.po b/InvenTree/locale/fr/LC_MESSAGES/django.po index 6f6aa2555d..87f2a5c5eb 100644 --- a/InvenTree/locale/fr/LC_MESSAGES/django.po +++ b/InvenTree/locale/fr/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-04-14 22:35+0000\n" -"PO-Revision-Date: 2023-04-15 18:23\n" +"POT-Creation-Date: 2023-04-17 14:13+0000\n" +"PO-Revision-Date: 2023-04-17 18:25\n" "Last-Translator: \n" "Language-Team: French\n" "Language: fr_FR\n" @@ -23,7 +23,7 @@ msgstr "Point de terminaison de l'API introuvable" #: InvenTree/api.py:299 msgid "User does not have permission to view this model" -msgstr "" +msgstr "L'utilisateur n'a pas la permission de voir ce modèle" #: InvenTree/exceptions.py:94 msgid "Error details can be found in the admin panel" @@ -41,7 +41,7 @@ msgstr "Entrer la date" #: order/templates/order/so_sidebar.html:17 part/admin.py:41 #: part/models.py:2989 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/admin.py:121 stock/models.py:2126 stock/models.py:2234 +#: stock/admin.py:121 stock/models.py:2127 stock/models.py:2235 #: stock/serializers.py:317 stock/serializers.py:450 stock/serializers.py:531 #: stock/serializers.py:810 stock/serializers.py:909 stock/serializers.py:1041 #: stock/templates/stock/stock_sidebar.html:25 @@ -147,7 +147,7 @@ msgstr "Chaîne de numéro de série vide" #: InvenTree/helpers.py:640 msgid "Duplicate serial" -msgstr "Numéro de série dupliqué" +msgstr "Numéro de série en doublon" #: InvenTree/helpers.py:673 InvenTree/helpers.py:708 #, python-brace-format @@ -209,7 +209,7 @@ msgstr "Fichier manquant" msgid "Missing external link" msgstr "Lien externe manquant" -#: InvenTree/models.py:409 stock/models.py:2228 +#: InvenTree/models.py:409 stock/models.py:2229 #: templates/js/translated/attachment.js:109 #: templates/js/translated/attachment.js:296 msgid "Attachment" @@ -612,7 +612,7 @@ msgstr "Retourné" #: InvenTree/status_codes.py:182 InvenTree/status_codes.py:395 msgid "In Progress" -msgstr "" +msgstr "En Cours" #: InvenTree/status_codes.py:183 order/models.py:1295 #: templates/js/translated/sales_order.js:1418 @@ -747,7 +747,7 @@ msgstr "Fabrication" #: InvenTree/status_codes.py:430 msgid "Return" -msgstr "" +msgstr "Retour" #: InvenTree/status_codes.py:431 msgid "Repair" @@ -1833,23 +1833,24 @@ msgstr "Sorties incomplètes" msgid "Completed Outputs" msgstr "Sorties de Construction terminées" -#: common/files.py:62 -msgid "Unsupported file format: {ext.upper()}" -msgstr "Format de fichier non pris en charge : {ext.upper()}" +#: common/files.py:63 +#, python-brace-format +msgid "Unsupported file format: {fmt}" +msgstr "" -#: common/files.py:64 +#: common/files.py:65 msgid "Error reading file (invalid encoding)" msgstr "Erreur de lecture du fichier (encodage invalide)" -#: common/files.py:69 +#: common/files.py:70 msgid "Error reading file (invalid format)" msgstr "Erreur de lecture du fichier (format invalide)" -#: common/files.py:71 +#: common/files.py:72 msgid "Error reading file (incorrect dimension)" msgstr "Erreur de lecture du fichier (dimension incorrecte)" -#: common/files.py:73 +#: common/files.py:74 msgid "Error reading file (data could be corrupted)" msgstr "Erreur de lecture du fichier (les données pourraient être corrompues)" @@ -3056,7 +3057,7 @@ msgstr "Nombre de résultats à afficher dans chaque section de la fenêtre de p #: common/models.py:1983 msgid "Regex Search" -msgstr "" +msgstr "Recherche Regex" #: common/models.py:1984 msgid "Enable regular expressions in search queries" @@ -3481,7 +3482,7 @@ msgstr "Nom du paramètre" #: company/models.py:394 #: report/templates/report/inventree_test_report_base.html:104 -#: stock/models.py:2221 templates/js/translated/company.js:857 +#: stock/models.py:2222 templates/js/translated/company.js:857 #: templates/js/translated/company.js:1062 templates/js/translated/part.js:1268 #: templates/js/translated/stock.js:1425 msgid "Value" @@ -3902,8 +3903,8 @@ msgstr "Supprimer les pièces du fournisseur" #: company/templates/company/manufacturer_part.html:183 #: part/templates/part/detail.html:393 part/templates/part/detail.html:423 #: templates/js/translated/forms.js:499 templates/js/translated/helpers.js:58 -#: templates/js/translated/part.js:313 templates/js/translated/stock.js:186 -#: users/models.py:243 +#: templates/js/translated/part.js:313 templates/js/translated/pricing.js:611 +#: templates/js/translated/stock.js:186 users/models.py:243 msgid "Delete" msgstr "Supprimer" @@ -6191,8 +6192,7 @@ msgid "You do not have permission to edit the BOM." msgstr "" #: part/templates/part/bom.html:15 -#, python-format -msgid "The BOM for %(part)s has changed, and must be validated.
" +msgid "The BOM this part has been changed, and must be validated" msgstr "" #: part/templates/part/bom.html:17 @@ -6852,8 +6852,7 @@ msgid "Create new part variant" msgstr "" #: part/templates/part/variant_part.html:10 -#, python-format -msgid "Create a new variant of template '%(full_name)s'." +msgid "Create a new variant part from this template" msgstr "" #: part/templatetags/inventree_extras.py:187 @@ -7038,18 +7037,19 @@ msgstr "" msgid "No date found" msgstr "" -#: plugin/registry.py:450 -msgid "Plugin `{plg_name}` is not compatible with the current InvenTree version {version.inventreeVersion()}!" -msgstr "L'extension `{plg_name}` n'est pas compatible avec la version actuelle d'InvenTree {version.inventreeVersion()} !" - #: plugin/registry.py:452 #, python-brace-format -msgid "Plugin requires at least version {plg_i.MIN_VERSION}" +msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "" #: plugin/registry.py:454 #, python-brace-format -msgid "Plugin requires at most version {plg_i.MAX_VERSION}" +msgid "Plugin requires at least version {v}" +msgstr "" + +#: plugin/registry.py:456 +#, python-brace-format +msgid "Plugin requires at most version {v}" msgstr "" #: plugin/samples/integration/sample.py:39 @@ -7276,12 +7276,12 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:102 -#: stock/models.py:2209 templates/js/translated/stock.js:1398 +#: stock/models.py:2210 templates/js/translated/stock.js:1398 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:103 -#: stock/models.py:2215 +#: stock/models.py:2216 msgid "Result" msgstr "Résultat" @@ -7568,84 +7568,83 @@ msgstr "Les numéros de série doivent être une liste de nombres entiers" msgid "Quantity does not match serial numbers" msgstr "La quantité ne correspond pas au nombre de numéros de série" -#: stock/models.py:1386 -#, python-brace-format -msgid "Serial numbers already exist: {exists}" -msgstr "Les numéros de série existent déja : {exists}" +#: stock/models.py:1386 stock/serializers.py:349 +msgid "Serial numbers already exist" +msgstr "Les numéros de série existent déjà" -#: stock/models.py:1456 +#: stock/models.py:1457 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1459 +#: stock/models.py:1460 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1462 +#: stock/models.py:1463 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1465 +#: stock/models.py:1466 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1468 +#: stock/models.py:1469 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1471 +#: stock/models.py:1472 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1478 stock/serializers.py:946 +#: stock/models.py:1479 stock/serializers.py:946 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1482 +#: stock/models.py:1483 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1486 +#: stock/models.py:1487 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1490 +#: stock/models.py:1491 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1659 +#: stock/models.py:1660 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2127 +#: stock/models.py:2128 msgid "Entry notes" msgstr "" -#: stock/models.py:2185 +#: stock/models.py:2186 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2191 +#: stock/models.py:2192 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2210 +#: stock/models.py:2211 msgid "Test name" msgstr "" -#: stock/models.py:2216 +#: stock/models.py:2217 msgid "Test result" msgstr "" -#: stock/models.py:2222 +#: stock/models.py:2223 msgid "Test output value" msgstr "" -#: stock/models.py:2229 +#: stock/models.py:2230 msgid "Test result attachment" msgstr "" -#: stock/models.py:2235 +#: stock/models.py:2236 msgid "Test notes" msgstr "" @@ -7682,10 +7681,6 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "Les numéros de série ne peuvent pas être assignés à cette pièce" -#: stock/serializers.py:349 -msgid "Serial numbers already exist" -msgstr "Les numéros de série existent déjà" - #: stock/serializers.py:389 msgid "Select stock item to install" msgstr "" @@ -8694,8 +8689,8 @@ msgid "Change Password" msgstr "Changer le mot de passe" #: templates/InvenTree/settings/user.html:23 -#: templates/js/translated/helpers.js:53 templates/notes_buttons.html:3 -#: templates/notes_buttons.html:4 +#: templates/js/translated/helpers.js:53 templates/js/translated/pricing.js:610 +#: templates/notes_buttons.html:3 templates/notes_buttons.html:4 msgid "Edit" msgstr "Modifier" @@ -10719,16 +10714,6 @@ msgstr "" msgid "No price break data available" msgstr "" -#: templates/js/translated/pricing.js:610 -#, python-brace-format -msgid "Edit ${human_name}" -msgstr "" - -#: templates/js/translated/pricing.js:611 -#, python-brace-format -msgid "Delete ${human_name}" -msgstr "" - #: templates/js/translated/pricing.js:737 msgid "No purchase history data available" msgstr "" diff --git a/InvenTree/locale/he/LC_MESSAGES/django.po b/InvenTree/locale/he/LC_MESSAGES/django.po index 170c78d75f..5e4a6a68d8 100644 --- a/InvenTree/locale/he/LC_MESSAGES/django.po +++ b/InvenTree/locale/he/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-04-14 22:35+0000\n" -"PO-Revision-Date: 2023-04-15 18:23\n" +"POT-Creation-Date: 2023-04-17 14:13+0000\n" +"PO-Revision-Date: 2023-04-17 18:26\n" "Last-Translator: \n" "Language-Team: Hebrew\n" "Language: he_IL\n" @@ -41,7 +41,7 @@ msgstr "הזן תאריך סיום" #: order/templates/order/so_sidebar.html:17 part/admin.py:41 #: part/models.py:2989 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/admin.py:121 stock/models.py:2126 stock/models.py:2234 +#: stock/admin.py:121 stock/models.py:2127 stock/models.py:2235 #: stock/serializers.py:317 stock/serializers.py:450 stock/serializers.py:531 #: stock/serializers.py:810 stock/serializers.py:909 stock/serializers.py:1041 #: stock/templates/stock/stock_sidebar.html:25 @@ -209,7 +209,7 @@ msgstr "קובץ חסר" msgid "Missing external link" msgstr "חסר קישור חיצוני" -#: InvenTree/models.py:409 stock/models.py:2228 +#: InvenTree/models.py:409 stock/models.py:2229 #: templates/js/translated/attachment.js:109 #: templates/js/translated/attachment.js:296 msgid "Attachment" @@ -1833,23 +1833,24 @@ msgstr "" msgid "Completed Outputs" msgstr "" -#: common/files.py:62 -msgid "Unsupported file format: {ext.upper()}" +#: common/files.py:63 +#, python-brace-format +msgid "Unsupported file format: {fmt}" msgstr "" -#: common/files.py:64 +#: common/files.py:65 msgid "Error reading file (invalid encoding)" msgstr "" -#: common/files.py:69 +#: common/files.py:70 msgid "Error reading file (invalid format)" msgstr "" -#: common/files.py:71 +#: common/files.py:72 msgid "Error reading file (incorrect dimension)" msgstr "" -#: common/files.py:73 +#: common/files.py:74 msgid "Error reading file (data could be corrupted)" msgstr "" @@ -3481,7 +3482,7 @@ msgstr "" #: company/models.py:394 #: report/templates/report/inventree_test_report_base.html:104 -#: stock/models.py:2221 templates/js/translated/company.js:857 +#: stock/models.py:2222 templates/js/translated/company.js:857 #: templates/js/translated/company.js:1062 templates/js/translated/part.js:1268 #: templates/js/translated/stock.js:1425 msgid "Value" @@ -3902,8 +3903,8 @@ msgstr "" #: company/templates/company/manufacturer_part.html:183 #: part/templates/part/detail.html:393 part/templates/part/detail.html:423 #: templates/js/translated/forms.js:499 templates/js/translated/helpers.js:58 -#: templates/js/translated/part.js:313 templates/js/translated/stock.js:186 -#: users/models.py:243 +#: templates/js/translated/part.js:313 templates/js/translated/pricing.js:611 +#: templates/js/translated/stock.js:186 users/models.py:243 msgid "Delete" msgstr "" @@ -6191,8 +6192,7 @@ msgid "You do not have permission to edit the BOM." msgstr "" #: part/templates/part/bom.html:15 -#, python-format -msgid "The BOM for %(part)s has changed, and must be validated.
" +msgid "The BOM this part has been changed, and must be validated" msgstr "" #: part/templates/part/bom.html:17 @@ -6852,8 +6852,7 @@ msgid "Create new part variant" msgstr "" #: part/templates/part/variant_part.html:10 -#, python-format -msgid "Create a new variant of template '%(full_name)s'." +msgid "Create a new variant part from this template" msgstr "" #: part/templatetags/inventree_extras.py:187 @@ -7038,18 +7037,19 @@ msgstr "" msgid "No date found" msgstr "" -#: plugin/registry.py:450 -msgid "Plugin `{plg_name}` is not compatible with the current InvenTree version {version.inventreeVersion()}!" -msgstr "" - #: plugin/registry.py:452 #, python-brace-format -msgid "Plugin requires at least version {plg_i.MIN_VERSION}" +msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "" #: plugin/registry.py:454 #, python-brace-format -msgid "Plugin requires at most version {plg_i.MAX_VERSION}" +msgid "Plugin requires at least version {v}" +msgstr "" + +#: plugin/registry.py:456 +#, python-brace-format +msgid "Plugin requires at most version {v}" msgstr "" #: plugin/samples/integration/sample.py:39 @@ -7276,12 +7276,12 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:102 -#: stock/models.py:2209 templates/js/translated/stock.js:1398 +#: stock/models.py:2210 templates/js/translated/stock.js:1398 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:103 -#: stock/models.py:2215 +#: stock/models.py:2216 msgid "Result" msgstr "" @@ -7568,84 +7568,83 @@ msgstr "" msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1386 -#, python-brace-format -msgid "Serial numbers already exist: {exists}" +#: stock/models.py:1386 stock/serializers.py:349 +msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1456 +#: stock/models.py:1457 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1459 +#: stock/models.py:1460 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1462 +#: stock/models.py:1463 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1465 +#: stock/models.py:1466 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1468 +#: stock/models.py:1469 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1471 +#: stock/models.py:1472 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1478 stock/serializers.py:946 +#: stock/models.py:1479 stock/serializers.py:946 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1482 +#: stock/models.py:1483 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1486 +#: stock/models.py:1487 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1490 +#: stock/models.py:1491 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1659 +#: stock/models.py:1660 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2127 +#: stock/models.py:2128 msgid "Entry notes" msgstr "" -#: stock/models.py:2185 +#: stock/models.py:2186 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2191 +#: stock/models.py:2192 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2210 +#: stock/models.py:2211 msgid "Test name" msgstr "" -#: stock/models.py:2216 +#: stock/models.py:2217 msgid "Test result" msgstr "" -#: stock/models.py:2222 +#: stock/models.py:2223 msgid "Test output value" msgstr "" -#: stock/models.py:2229 +#: stock/models.py:2230 msgid "Test result attachment" msgstr "" -#: stock/models.py:2235 +#: stock/models.py:2236 msgid "Test notes" msgstr "" @@ -7682,10 +7681,6 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:349 -msgid "Serial numbers already exist" -msgstr "" - #: stock/serializers.py:389 msgid "Select stock item to install" msgstr "" @@ -8694,8 +8689,8 @@ msgid "Change Password" msgstr "" #: templates/InvenTree/settings/user.html:23 -#: templates/js/translated/helpers.js:53 templates/notes_buttons.html:3 -#: templates/notes_buttons.html:4 +#: templates/js/translated/helpers.js:53 templates/js/translated/pricing.js:610 +#: templates/notes_buttons.html:3 templates/notes_buttons.html:4 msgid "Edit" msgstr "" @@ -10719,16 +10714,6 @@ msgstr "" msgid "No price break data available" msgstr "" -#: templates/js/translated/pricing.js:610 -#, python-brace-format -msgid "Edit ${human_name}" -msgstr "" - -#: templates/js/translated/pricing.js:611 -#, python-brace-format -msgid "Delete ${human_name}" -msgstr "" - #: templates/js/translated/pricing.js:737 msgid "No purchase history data available" msgstr "" diff --git a/InvenTree/locale/hu/LC_MESSAGES/django.po b/InvenTree/locale/hu/LC_MESSAGES/django.po index e35952e17a..8f5e7276d9 100644 --- a/InvenTree/locale/hu/LC_MESSAGES/django.po +++ b/InvenTree/locale/hu/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-04-14 22:35+0000\n" -"PO-Revision-Date: 2023-04-15 18:23\n" +"POT-Creation-Date: 2023-04-17 14:13+0000\n" +"PO-Revision-Date: 2023-04-17 18:26\n" "Last-Translator: \n" "Language-Team: Hungarian\n" "Language: hu_HU\n" @@ -41,7 +41,7 @@ msgstr "Dátum megadása" #: order/templates/order/so_sidebar.html:17 part/admin.py:41 #: part/models.py:2989 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/admin.py:121 stock/models.py:2126 stock/models.py:2234 +#: stock/admin.py:121 stock/models.py:2127 stock/models.py:2235 #: stock/serializers.py:317 stock/serializers.py:450 stock/serializers.py:531 #: stock/serializers.py:810 stock/serializers.py:909 stock/serializers.py:1041 #: stock/templates/stock/stock_sidebar.html:25 @@ -209,7 +209,7 @@ msgstr "Hiányzó fájl" msgid "Missing external link" msgstr "Hiányzó külső link" -#: InvenTree/models.py:409 stock/models.py:2228 +#: InvenTree/models.py:409 stock/models.py:2229 #: templates/js/translated/attachment.js:109 #: templates/js/translated/attachment.js:296 msgid "Attachment" @@ -1834,23 +1834,24 @@ msgstr "Befejezetlen kimenetek" msgid "Completed Outputs" msgstr "Befejezett kimenetek" -#: common/files.py:62 -msgid "Unsupported file format: {ext.upper()}" -msgstr "Nem támogatott fájl formátum: {ext.upper()}" +#: common/files.py:63 +#, python-brace-format +msgid "Unsupported file format: {fmt}" +msgstr "" -#: common/files.py:64 +#: common/files.py:65 msgid "Error reading file (invalid encoding)" msgstr "Fájl beolvasási hiba (hibás encoding)" -#: common/files.py:69 +#: common/files.py:70 msgid "Error reading file (invalid format)" msgstr "Fájl beolvasási hiba (hibás formátum)" -#: common/files.py:71 +#: common/files.py:72 msgid "Error reading file (incorrect dimension)" msgstr "Fájl beolvasási hiba (hibás dimenzió)" -#: common/files.py:73 +#: common/files.py:74 msgid "Error reading file (data could be corrupted)" msgstr "Fájl beolvasási hiba (sérült lehet)" @@ -3482,7 +3483,7 @@ msgstr "Paraméter neve" #: company/models.py:394 #: report/templates/report/inventree_test_report_base.html:104 -#: stock/models.py:2221 templates/js/translated/company.js:857 +#: stock/models.py:2222 templates/js/translated/company.js:857 #: templates/js/translated/company.js:1062 templates/js/translated/part.js:1268 #: templates/js/translated/stock.js:1425 msgid "Value" @@ -3903,8 +3904,8 @@ msgstr "Beszállítói alkatrész törlése" #: company/templates/company/manufacturer_part.html:183 #: part/templates/part/detail.html:393 part/templates/part/detail.html:423 #: templates/js/translated/forms.js:499 templates/js/translated/helpers.js:58 -#: templates/js/translated/part.js:313 templates/js/translated/stock.js:186 -#: users/models.py:243 +#: templates/js/translated/part.js:313 templates/js/translated/pricing.js:611 +#: templates/js/translated/stock.js:186 users/models.py:243 msgid "Delete" msgstr "Törlés" @@ -6192,9 +6193,8 @@ msgid "You do not have permission to edit the BOM." msgstr "Nincs jogosultságod az alkatrészjegyzék szerkesztéséhez." #: part/templates/part/bom.html:15 -#, python-format -msgid "The BOM for %(part)s has changed, and must be validated.
" -msgstr "A %(part)s alkatrészhez tartozó alkatrészjegyzék megváltozott és jóvá kell hagyni.
" +msgid "The BOM this part has been changed, and must be validated" +msgstr "" #: part/templates/part/bom.html:17 #, python-format @@ -6853,9 +6853,8 @@ msgid "Create new part variant" msgstr "Alkatrész változat létrehozása" #: part/templates/part/variant_part.html:10 -#, python-format -msgid "Create a new variant of template '%(full_name)s'." -msgstr "Új változat létrehozása a '%(full_name)s' sablonból." +msgid "Create a new variant part from this template" +msgstr "" #: part/templatetags/inventree_extras.py:187 msgid "Unknown database" @@ -7039,19 +7038,20 @@ msgstr "Nincs szerző" msgid "No date found" msgstr "Nincs dátum" -#: plugin/registry.py:450 -msgid "Plugin `{plg_name}` is not compatible with the current InvenTree version {version.inventreeVersion()}!" -msgstr "A {plg_name} plugin nem kompatibilis az aktuális applikáció verzióval {version.inventreeVersion()}!" - #: plugin/registry.py:452 #, python-brace-format -msgid "Plugin requires at least version {plg_i.MIN_VERSION}" -msgstr "A pluginhoz minimum {plg_i.MIN_VERSION} verzió kell" +msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" +msgstr "" #: plugin/registry.py:454 #, python-brace-format -msgid "Plugin requires at most version {plg_i.MAX_VERSION}" -msgstr "A pluginhoz maximum {plg_i.MAX_VERSION} verzió kell" +msgid "Plugin requires at least version {v}" +msgstr "" + +#: plugin/registry.py:456 +#, python-brace-format +msgid "Plugin requires at most version {v}" +msgstr "" #: plugin/samples/integration/sample.py:39 msgid "Enable PO" @@ -7277,12 +7277,12 @@ msgid "Test Results" msgstr "Teszt eredmények" #: report/templates/report/inventree_test_report_base.html:102 -#: stock/models.py:2209 templates/js/translated/stock.js:1398 +#: stock/models.py:2210 templates/js/translated/stock.js:1398 msgid "Test" msgstr "Teszt" #: report/templates/report/inventree_test_report_base.html:103 -#: stock/models.py:2215 +#: stock/models.py:2216 msgid "Result" msgstr "Eredmény" @@ -7569,84 +7569,83 @@ msgstr "A sorozatszám egész számok listája kell legyen" msgid "Quantity does not match serial numbers" msgstr "A mennyiség nem egyezik a megadott sorozatszámok számával" -#: stock/models.py:1386 -#, python-brace-format -msgid "Serial numbers already exist: {exists}" -msgstr "Ezek a sorozatszámok már léteznek: {exists}" +#: stock/models.py:1386 stock/serializers.py:349 +msgid "Serial numbers already exist" +msgstr "A sorozatszámok már léteznek" -#: stock/models.py:1456 +#: stock/models.py:1457 msgid "Stock item has been assigned to a sales order" msgstr "Készlet tétel hozzárendelve egy vevői rendeléshez" -#: stock/models.py:1459 +#: stock/models.py:1460 msgid "Stock item is installed in another item" msgstr "Készlet tétel beépül egy másikba" -#: stock/models.py:1462 +#: stock/models.py:1463 msgid "Stock item contains other items" msgstr "A készlet tétel más tételeket tartalmaz" -#: stock/models.py:1465 +#: stock/models.py:1466 msgid "Stock item has been assigned to a customer" msgstr "Készlet tétel hozzárendelve egy vevőhöz" -#: stock/models.py:1468 +#: stock/models.py:1469 msgid "Stock item is currently in production" msgstr "Készlet tétel gyártás alatt" -#: stock/models.py:1471 +#: stock/models.py:1472 msgid "Serialized stock cannot be merged" msgstr "Követésre kötelezett készlet nem vonható össze" -#: stock/models.py:1478 stock/serializers.py:946 +#: stock/models.py:1479 stock/serializers.py:946 msgid "Duplicate stock items" msgstr "Duplikált készlet tételek vannak" -#: stock/models.py:1482 +#: stock/models.py:1483 msgid "Stock items must refer to the same part" msgstr "A készlet tétel ugyanarra az alkatrészre kell vonatkozzon" -#: stock/models.py:1486 +#: stock/models.py:1487 msgid "Stock items must refer to the same supplier part" msgstr "A készlet tétel ugyanarra a beszállítói alkatrészre kell vonatkozzon" -#: stock/models.py:1490 +#: stock/models.py:1491 msgid "Stock status codes must match" msgstr "Készlet tételek állapotainak egyeznie kell" -#: stock/models.py:1659 +#: stock/models.py:1660 msgid "StockItem cannot be moved as it is not in stock" msgstr "Készlet tétel nem mozgatható mivel nincs készleten" -#: stock/models.py:2127 +#: stock/models.py:2128 msgid "Entry notes" msgstr "Bejegyzés megjegyzései" -#: stock/models.py:2185 +#: stock/models.py:2186 msgid "Value must be provided for this test" msgstr "Ehhez a teszthez meg kell adni értéket" -#: stock/models.py:2191 +#: stock/models.py:2192 msgid "Attachment must be uploaded for this test" msgstr "Ehhez a teszthez fel kell tölteni mellékletet" -#: stock/models.py:2210 +#: stock/models.py:2211 msgid "Test name" msgstr "Teszt neve" -#: stock/models.py:2216 +#: stock/models.py:2217 msgid "Test result" msgstr "Teszt eredménye" -#: stock/models.py:2222 +#: stock/models.py:2223 msgid "Test output value" msgstr "Teszt kimeneti értéke" -#: stock/models.py:2229 +#: stock/models.py:2230 msgid "Test result attachment" msgstr "Teszt eredmény melléklet" -#: stock/models.py:2235 +#: stock/models.py:2236 msgid "Test notes" msgstr "Tesztek megjegyzései" @@ -7683,10 +7682,6 @@ msgstr "Opcionális megjegyzés mező" msgid "Serial numbers cannot be assigned to this part" msgstr "Sorozatszámokat nem lehet hozzárendelni ehhez az alkatrészhez" -#: stock/serializers.py:349 -msgid "Serial numbers already exist" -msgstr "A sorozatszámok már léteznek" - #: stock/serializers.py:389 msgid "Select stock item to install" msgstr "Válaszd ki a beépítésre szánt készlet tételt" @@ -8695,8 +8690,8 @@ msgid "Change Password" msgstr "Jelszó módosítása" #: templates/InvenTree/settings/user.html:23 -#: templates/js/translated/helpers.js:53 templates/notes_buttons.html:3 -#: templates/notes_buttons.html:4 +#: templates/js/translated/helpers.js:53 templates/js/translated/pricing.js:610 +#: templates/notes_buttons.html:3 templates/notes_buttons.html:4 msgid "Edit" msgstr "Szerkesztés" @@ -10720,16 +10715,6 @@ msgstr "Nincs beszállítói árinfomáció" msgid "No price break data available" msgstr "Nincsenek ársáv adatok" -#: templates/js/translated/pricing.js:610 -#, python-brace-format -msgid "Edit ${human_name}" -msgstr "${human_name} szerkesztése" - -#: templates/js/translated/pricing.js:611 -#, python-brace-format -msgid "Delete ${human_name}" -msgstr "${human_name} törlése" - #: templates/js/translated/pricing.js:737 msgid "No purchase history data available" msgstr "Nincsenek beszerzési ár előzmények" diff --git a/InvenTree/locale/id/LC_MESSAGES/django.po b/InvenTree/locale/id/LC_MESSAGES/django.po index c26f99fc55..b188415ca3 100644 --- a/InvenTree/locale/id/LC_MESSAGES/django.po +++ b/InvenTree/locale/id/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-04-14 22:35+0000\n" -"PO-Revision-Date: 2023-04-15 18:23\n" +"POT-Creation-Date: 2023-04-17 14:13+0000\n" +"PO-Revision-Date: 2023-04-17 18:26\n" "Last-Translator: \n" "Language-Team: Indonesian\n" "Language: id_ID\n" @@ -41,7 +41,7 @@ msgstr "Masukkan tanggal" #: order/templates/order/so_sidebar.html:17 part/admin.py:41 #: part/models.py:2989 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/admin.py:121 stock/models.py:2126 stock/models.py:2234 +#: stock/admin.py:121 stock/models.py:2127 stock/models.py:2235 #: stock/serializers.py:317 stock/serializers.py:450 stock/serializers.py:531 #: stock/serializers.py:810 stock/serializers.py:909 stock/serializers.py:1041 #: stock/templates/stock/stock_sidebar.html:25 @@ -209,7 +209,7 @@ msgstr "File tidak ditemukan" msgid "Missing external link" msgstr "Tautan eksternal tidak ditemukan" -#: InvenTree/models.py:409 stock/models.py:2228 +#: InvenTree/models.py:409 stock/models.py:2229 #: templates/js/translated/attachment.js:109 #: templates/js/translated/attachment.js:296 msgid "Attachment" @@ -1833,23 +1833,24 @@ msgstr "" msgid "Completed Outputs" msgstr "" -#: common/files.py:62 -msgid "Unsupported file format: {ext.upper()}" +#: common/files.py:63 +#, python-brace-format +msgid "Unsupported file format: {fmt}" msgstr "" -#: common/files.py:64 +#: common/files.py:65 msgid "Error reading file (invalid encoding)" msgstr "" -#: common/files.py:69 +#: common/files.py:70 msgid "Error reading file (invalid format)" msgstr "" -#: common/files.py:71 +#: common/files.py:72 msgid "Error reading file (incorrect dimension)" msgstr "" -#: common/files.py:73 +#: common/files.py:74 msgid "Error reading file (data could be corrupted)" msgstr "" @@ -3481,7 +3482,7 @@ msgstr "" #: company/models.py:394 #: report/templates/report/inventree_test_report_base.html:104 -#: stock/models.py:2221 templates/js/translated/company.js:857 +#: stock/models.py:2222 templates/js/translated/company.js:857 #: templates/js/translated/company.js:1062 templates/js/translated/part.js:1268 #: templates/js/translated/stock.js:1425 msgid "Value" @@ -3902,8 +3903,8 @@ msgstr "" #: company/templates/company/manufacturer_part.html:183 #: part/templates/part/detail.html:393 part/templates/part/detail.html:423 #: templates/js/translated/forms.js:499 templates/js/translated/helpers.js:58 -#: templates/js/translated/part.js:313 templates/js/translated/stock.js:186 -#: users/models.py:243 +#: templates/js/translated/part.js:313 templates/js/translated/pricing.js:611 +#: templates/js/translated/stock.js:186 users/models.py:243 msgid "Delete" msgstr "" @@ -6191,8 +6192,7 @@ msgid "You do not have permission to edit the BOM." msgstr "" #: part/templates/part/bom.html:15 -#, python-format -msgid "The BOM for %(part)s has changed, and must be validated.
" +msgid "The BOM this part has been changed, and must be validated" msgstr "" #: part/templates/part/bom.html:17 @@ -6852,8 +6852,7 @@ msgid "Create new part variant" msgstr "" #: part/templates/part/variant_part.html:10 -#, python-format -msgid "Create a new variant of template '%(full_name)s'." +msgid "Create a new variant part from this template" msgstr "" #: part/templatetags/inventree_extras.py:187 @@ -7038,18 +7037,19 @@ msgstr "" msgid "No date found" msgstr "" -#: plugin/registry.py:450 -msgid "Plugin `{plg_name}` is not compatible with the current InvenTree version {version.inventreeVersion()}!" -msgstr "" - #: plugin/registry.py:452 #, python-brace-format -msgid "Plugin requires at least version {plg_i.MIN_VERSION}" +msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "" #: plugin/registry.py:454 #, python-brace-format -msgid "Plugin requires at most version {plg_i.MAX_VERSION}" +msgid "Plugin requires at least version {v}" +msgstr "" + +#: plugin/registry.py:456 +#, python-brace-format +msgid "Plugin requires at most version {v}" msgstr "" #: plugin/samples/integration/sample.py:39 @@ -7276,12 +7276,12 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:102 -#: stock/models.py:2209 templates/js/translated/stock.js:1398 +#: stock/models.py:2210 templates/js/translated/stock.js:1398 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:103 -#: stock/models.py:2215 +#: stock/models.py:2216 msgid "Result" msgstr "" @@ -7568,84 +7568,83 @@ msgstr "" msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1386 -#, python-brace-format -msgid "Serial numbers already exist: {exists}" +#: stock/models.py:1386 stock/serializers.py:349 +msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1456 +#: stock/models.py:1457 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1459 +#: stock/models.py:1460 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1462 +#: stock/models.py:1463 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1465 +#: stock/models.py:1466 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1468 +#: stock/models.py:1469 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1471 +#: stock/models.py:1472 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1478 stock/serializers.py:946 +#: stock/models.py:1479 stock/serializers.py:946 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1482 +#: stock/models.py:1483 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1486 +#: stock/models.py:1487 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1490 +#: stock/models.py:1491 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1659 +#: stock/models.py:1660 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2127 +#: stock/models.py:2128 msgid "Entry notes" msgstr "" -#: stock/models.py:2185 +#: stock/models.py:2186 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2191 +#: stock/models.py:2192 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2210 +#: stock/models.py:2211 msgid "Test name" msgstr "" -#: stock/models.py:2216 +#: stock/models.py:2217 msgid "Test result" msgstr "" -#: stock/models.py:2222 +#: stock/models.py:2223 msgid "Test output value" msgstr "" -#: stock/models.py:2229 +#: stock/models.py:2230 msgid "Test result attachment" msgstr "" -#: stock/models.py:2235 +#: stock/models.py:2236 msgid "Test notes" msgstr "" @@ -7682,10 +7681,6 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:349 -msgid "Serial numbers already exist" -msgstr "" - #: stock/serializers.py:389 msgid "Select stock item to install" msgstr "" @@ -8694,8 +8689,8 @@ msgid "Change Password" msgstr "" #: templates/InvenTree/settings/user.html:23 -#: templates/js/translated/helpers.js:53 templates/notes_buttons.html:3 -#: templates/notes_buttons.html:4 +#: templates/js/translated/helpers.js:53 templates/js/translated/pricing.js:610 +#: templates/notes_buttons.html:3 templates/notes_buttons.html:4 msgid "Edit" msgstr "" @@ -10719,16 +10714,6 @@ msgstr "" msgid "No price break data available" msgstr "" -#: templates/js/translated/pricing.js:610 -#, python-brace-format -msgid "Edit ${human_name}" -msgstr "" - -#: templates/js/translated/pricing.js:611 -#, python-brace-format -msgid "Delete ${human_name}" -msgstr "" - #: templates/js/translated/pricing.js:737 msgid "No purchase history data available" msgstr "" diff --git a/InvenTree/locale/it/LC_MESSAGES/django.po b/InvenTree/locale/it/LC_MESSAGES/django.po index 2fb05793b5..6ca5e83848 100644 --- a/InvenTree/locale/it/LC_MESSAGES/django.po +++ b/InvenTree/locale/it/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-04-14 22:35+0000\n" -"PO-Revision-Date: 2023-04-15 18:23\n" +"POT-Creation-Date: 2023-04-17 14:13+0000\n" +"PO-Revision-Date: 2023-04-17 18:26\n" "Last-Translator: \n" "Language-Team: Italian\n" "Language: it_IT\n" @@ -41,7 +41,7 @@ msgstr "Inserisci la data" #: order/templates/order/so_sidebar.html:17 part/admin.py:41 #: part/models.py:2989 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/admin.py:121 stock/models.py:2126 stock/models.py:2234 +#: stock/admin.py:121 stock/models.py:2127 stock/models.py:2235 #: stock/serializers.py:317 stock/serializers.py:450 stock/serializers.py:531 #: stock/serializers.py:810 stock/serializers.py:909 stock/serializers.py:1041 #: stock/templates/stock/stock_sidebar.html:25 @@ -209,7 +209,7 @@ msgstr "File mancante" msgid "Missing external link" msgstr "Link esterno mancante" -#: InvenTree/models.py:409 stock/models.py:2228 +#: InvenTree/models.py:409 stock/models.py:2229 #: templates/js/translated/attachment.js:109 #: templates/js/translated/attachment.js:296 msgid "Attachment" @@ -1833,23 +1833,24 @@ msgstr "Output Incompleti" msgid "Completed Outputs" msgstr "Outputs Completati" -#: common/files.py:62 -msgid "Unsupported file format: {ext.upper()}" -msgstr "Formato file non supportato: {ext.upper()}" +#: common/files.py:63 +#, python-brace-format +msgid "Unsupported file format: {fmt}" +msgstr "" -#: common/files.py:64 +#: common/files.py:65 msgid "Error reading file (invalid encoding)" msgstr "Errore nella lettura del file (codifica non valida)" -#: common/files.py:69 +#: common/files.py:70 msgid "Error reading file (invalid format)" msgstr "Errore nella lettura del file (formato non valido)" -#: common/files.py:71 +#: common/files.py:72 msgid "Error reading file (incorrect dimension)" msgstr "Errore nella lettura del file (dimensione errata)" -#: common/files.py:73 +#: common/files.py:74 msgid "Error reading file (data could be corrupted)" msgstr "Errore di lettura del file (i dati potrebbero essere danneggiati)" @@ -3481,7 +3482,7 @@ msgstr "Nome parametro" #: company/models.py:394 #: report/templates/report/inventree_test_report_base.html:104 -#: stock/models.py:2221 templates/js/translated/company.js:857 +#: stock/models.py:2222 templates/js/translated/company.js:857 #: templates/js/translated/company.js:1062 templates/js/translated/part.js:1268 #: templates/js/translated/stock.js:1425 msgid "Value" @@ -3902,8 +3903,8 @@ msgstr "Elimina articolo fornitore" #: company/templates/company/manufacturer_part.html:183 #: part/templates/part/detail.html:393 part/templates/part/detail.html:423 #: templates/js/translated/forms.js:499 templates/js/translated/helpers.js:58 -#: templates/js/translated/part.js:313 templates/js/translated/stock.js:186 -#: users/models.py:243 +#: templates/js/translated/part.js:313 templates/js/translated/pricing.js:611 +#: templates/js/translated/stock.js:186 users/models.py:243 msgid "Delete" msgstr "Elimina" @@ -6191,9 +6192,8 @@ msgid "You do not have permission to edit the BOM." msgstr "Non hai il permesso di modificare la distinta base." #: part/templates/part/bom.html:15 -#, python-format -msgid "The BOM for %(part)s has changed, and must be validated.
" -msgstr "La distinta base per %(part)s è cambiata e deve essere convalidata.
" +msgid "The BOM this part has been changed, and must be validated" +msgstr "" #: part/templates/part/bom.html:17 #, python-format @@ -6852,9 +6852,8 @@ msgid "Create new part variant" msgstr "Crea nuove varianti dell'articolo" #: part/templates/part/variant_part.html:10 -#, python-format -msgid "Create a new variant of template '%(full_name)s'." -msgstr "Crea una nuova variante del modello '%(full_name)s'." +msgid "Create a new variant part from this template" +msgstr "" #: part/templatetags/inventree_extras.py:187 msgid "Unknown database" @@ -7038,19 +7037,20 @@ msgstr "Nessun autore trovato" msgid "No date found" msgstr "Nessuna data trovata" -#: plugin/registry.py:450 -msgid "Plugin `{plg_name}` is not compatible with the current InvenTree version {version.inventreeVersion()}!" -msgstr "Il plugin `{plg_name}` non è compatibile con l'attuale versione di InvenTree {version.inventreeVersion()}!" - #: plugin/registry.py:452 #, python-brace-format -msgid "Plugin requires at least version {plg_i.MIN_VERSION}" -msgstr "Il plugin richiede almeno la versione {plg_i.MIN_VERSION}" +msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" +msgstr "" #: plugin/registry.py:454 #, python-brace-format -msgid "Plugin requires at most version {plg_i.MAX_VERSION}" -msgstr "Il plugin richiede al massimo la versione {plg_i.MAX_VERSION}" +msgid "Plugin requires at least version {v}" +msgstr "" + +#: plugin/registry.py:456 +#, python-brace-format +msgid "Plugin requires at most version {v}" +msgstr "" #: plugin/samples/integration/sample.py:39 msgid "Enable PO" @@ -7276,12 +7276,12 @@ msgid "Test Results" msgstr "Risultati Test" #: report/templates/report/inventree_test_report_base.html:102 -#: stock/models.py:2209 templates/js/translated/stock.js:1398 +#: stock/models.py:2210 templates/js/translated/stock.js:1398 msgid "Test" msgstr "Test" #: report/templates/report/inventree_test_report_base.html:103 -#: stock/models.py:2215 +#: stock/models.py:2216 msgid "Result" msgstr "Risultato" @@ -7568,84 +7568,83 @@ msgstr "I numeri di serie devono essere numeri interi" msgid "Quantity does not match serial numbers" msgstr "La quantità non corrisponde ai numeri di serie" -#: stock/models.py:1386 -#, python-brace-format -msgid "Serial numbers already exist: {exists}" -msgstr "Numeri di serie già esistenti: {exists}" +#: stock/models.py:1386 stock/serializers.py:349 +msgid "Serial numbers already exist" +msgstr "Numeri di serie già esistenti" -#: stock/models.py:1456 +#: stock/models.py:1457 msgid "Stock item has been assigned to a sales order" msgstr "L'elemento di magazzino è stato assegnato a un ordine di vendita" -#: stock/models.py:1459 +#: stock/models.py:1460 msgid "Stock item is installed in another item" msgstr "L'elemento di magazzino è installato in un altro elemento" -#: stock/models.py:1462 +#: stock/models.py:1463 msgid "Stock item contains other items" msgstr "L'elemento di magazzino contiene altri elementi" -#: stock/models.py:1465 +#: stock/models.py:1466 msgid "Stock item has been assigned to a customer" msgstr "L'elemento di magazzino è stato assegnato a un cliente" -#: stock/models.py:1468 +#: stock/models.py:1469 msgid "Stock item is currently in production" msgstr "L'elemento di magazzino è attualmente in produzione" -#: stock/models.py:1471 +#: stock/models.py:1472 msgid "Serialized stock cannot be merged" msgstr "Il magazzino serializzato non può essere unito" -#: stock/models.py:1478 stock/serializers.py:946 +#: stock/models.py:1479 stock/serializers.py:946 msgid "Duplicate stock items" msgstr "Duplica elementi di magazzino" -#: stock/models.py:1482 +#: stock/models.py:1483 msgid "Stock items must refer to the same part" msgstr "Gli elementi di magazzino devono riferirsi allo stesso articolo" -#: stock/models.py:1486 +#: stock/models.py:1487 msgid "Stock items must refer to the same supplier part" msgstr "Gli elementi di magazzino devono riferirsi allo stesso articolo fornitore" -#: stock/models.py:1490 +#: stock/models.py:1491 msgid "Stock status codes must match" msgstr "I codici di stato dello stock devono corrispondere" -#: stock/models.py:1659 +#: stock/models.py:1660 msgid "StockItem cannot be moved as it is not in stock" msgstr "Le giacenze non possono essere spostate perché non disponibili" -#: stock/models.py:2127 +#: stock/models.py:2128 msgid "Entry notes" msgstr "Note d'ingresso" -#: stock/models.py:2185 +#: stock/models.py:2186 msgid "Value must be provided for this test" msgstr "Il valore deve essere fornito per questo test" -#: stock/models.py:2191 +#: stock/models.py:2192 msgid "Attachment must be uploaded for this test" msgstr "L'allegato deve essere caricato per questo test" -#: stock/models.py:2210 +#: stock/models.py:2211 msgid "Test name" msgstr "Nome Test" -#: stock/models.py:2216 +#: stock/models.py:2217 msgid "Test result" msgstr "Risultato Test" -#: stock/models.py:2222 +#: stock/models.py:2223 msgid "Test output value" msgstr "Test valore output" -#: stock/models.py:2229 +#: stock/models.py:2230 msgid "Test result attachment" msgstr "Risultato della prova allegato" -#: stock/models.py:2235 +#: stock/models.py:2236 msgid "Test notes" msgstr "Note del test" @@ -7682,10 +7681,6 @@ msgstr "Note opzionali elemento" msgid "Serial numbers cannot be assigned to this part" msgstr "Numeri di serie non possono essere assegnati a questo articolo" -#: stock/serializers.py:349 -msgid "Serial numbers already exist" -msgstr "Numeri di serie già esistenti" - #: stock/serializers.py:389 msgid "Select stock item to install" msgstr "Seleziona elementi di magazzino da installare" @@ -8694,8 +8689,8 @@ msgid "Change Password" msgstr "Modifica Password" #: templates/InvenTree/settings/user.html:23 -#: templates/js/translated/helpers.js:53 templates/notes_buttons.html:3 -#: templates/notes_buttons.html:4 +#: templates/js/translated/helpers.js:53 templates/js/translated/pricing.js:610 +#: templates/notes_buttons.html:3 templates/notes_buttons.html:4 msgid "Edit" msgstr "Modifica" @@ -10719,16 +10714,6 @@ msgstr "Nessun dato di prezzo disponibile per il fornitore" msgid "No price break data available" msgstr "Nessun dato disponibile prezzo limite" -#: templates/js/translated/pricing.js:610 -#, python-brace-format -msgid "Edit ${human_name}" -msgstr "Modifica ${human_name}" - -#: templates/js/translated/pricing.js:611 -#, python-brace-format -msgid "Delete ${human_name}" -msgstr "Elimina ${human_name}" - #: templates/js/translated/pricing.js:737 msgid "No purchase history data available" msgstr "Nessun dato della cronologia di acquisto disponibile" diff --git a/InvenTree/locale/ja/LC_MESSAGES/django.po b/InvenTree/locale/ja/LC_MESSAGES/django.po index cb2aff335c..e2f8072a7e 100644 --- a/InvenTree/locale/ja/LC_MESSAGES/django.po +++ b/InvenTree/locale/ja/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-04-14 22:35+0000\n" -"PO-Revision-Date: 2023-04-15 18:23\n" +"POT-Creation-Date: 2023-04-17 14:13+0000\n" +"PO-Revision-Date: 2023-04-17 18:26\n" "Last-Translator: \n" "Language-Team: Japanese\n" "Language: ja_JP\n" @@ -41,7 +41,7 @@ msgstr "日付を入力する" #: order/templates/order/so_sidebar.html:17 part/admin.py:41 #: part/models.py:2989 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/admin.py:121 stock/models.py:2126 stock/models.py:2234 +#: stock/admin.py:121 stock/models.py:2127 stock/models.py:2235 #: stock/serializers.py:317 stock/serializers.py:450 stock/serializers.py:531 #: stock/serializers.py:810 stock/serializers.py:909 stock/serializers.py:1041 #: stock/templates/stock/stock_sidebar.html:25 @@ -209,7 +209,7 @@ msgstr "ファイルがありません" msgid "Missing external link" msgstr "外部リンクが見つかりません。" -#: InvenTree/models.py:409 stock/models.py:2228 +#: InvenTree/models.py:409 stock/models.py:2229 #: templates/js/translated/attachment.js:109 #: templates/js/translated/attachment.js:296 msgid "Attachment" @@ -1833,23 +1833,24 @@ msgstr "" msgid "Completed Outputs" msgstr "" -#: common/files.py:62 -msgid "Unsupported file format: {ext.upper()}" +#: common/files.py:63 +#, python-brace-format +msgid "Unsupported file format: {fmt}" msgstr "" -#: common/files.py:64 +#: common/files.py:65 msgid "Error reading file (invalid encoding)" msgstr "" -#: common/files.py:69 +#: common/files.py:70 msgid "Error reading file (invalid format)" msgstr "" -#: common/files.py:71 +#: common/files.py:72 msgid "Error reading file (incorrect dimension)" msgstr "" -#: common/files.py:73 +#: common/files.py:74 msgid "Error reading file (data could be corrupted)" msgstr "" @@ -3481,7 +3482,7 @@ msgstr "" #: company/models.py:394 #: report/templates/report/inventree_test_report_base.html:104 -#: stock/models.py:2221 templates/js/translated/company.js:857 +#: stock/models.py:2222 templates/js/translated/company.js:857 #: templates/js/translated/company.js:1062 templates/js/translated/part.js:1268 #: templates/js/translated/stock.js:1425 msgid "Value" @@ -3902,8 +3903,8 @@ msgstr "" #: company/templates/company/manufacturer_part.html:183 #: part/templates/part/detail.html:393 part/templates/part/detail.html:423 #: templates/js/translated/forms.js:499 templates/js/translated/helpers.js:58 -#: templates/js/translated/part.js:313 templates/js/translated/stock.js:186 -#: users/models.py:243 +#: templates/js/translated/part.js:313 templates/js/translated/pricing.js:611 +#: templates/js/translated/stock.js:186 users/models.py:243 msgid "Delete" msgstr "" @@ -6191,8 +6192,7 @@ msgid "You do not have permission to edit the BOM." msgstr "" #: part/templates/part/bom.html:15 -#, python-format -msgid "The BOM for %(part)s has changed, and must be validated.
" +msgid "The BOM this part has been changed, and must be validated" msgstr "" #: part/templates/part/bom.html:17 @@ -6852,8 +6852,7 @@ msgid "Create new part variant" msgstr "" #: part/templates/part/variant_part.html:10 -#, python-format -msgid "Create a new variant of template '%(full_name)s'." +msgid "Create a new variant part from this template" msgstr "" #: part/templatetags/inventree_extras.py:187 @@ -7038,18 +7037,19 @@ msgstr "" msgid "No date found" msgstr "" -#: plugin/registry.py:450 -msgid "Plugin `{plg_name}` is not compatible with the current InvenTree version {version.inventreeVersion()}!" -msgstr "" - #: plugin/registry.py:452 #, python-brace-format -msgid "Plugin requires at least version {plg_i.MIN_VERSION}" +msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "" #: plugin/registry.py:454 #, python-brace-format -msgid "Plugin requires at most version {plg_i.MAX_VERSION}" +msgid "Plugin requires at least version {v}" +msgstr "" + +#: plugin/registry.py:456 +#, python-brace-format +msgid "Plugin requires at most version {v}" msgstr "" #: plugin/samples/integration/sample.py:39 @@ -7276,12 +7276,12 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:102 -#: stock/models.py:2209 templates/js/translated/stock.js:1398 +#: stock/models.py:2210 templates/js/translated/stock.js:1398 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:103 -#: stock/models.py:2215 +#: stock/models.py:2216 msgid "Result" msgstr "" @@ -7568,84 +7568,83 @@ msgstr "" msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1386 -#, python-brace-format -msgid "Serial numbers already exist: {exists}" +#: stock/models.py:1386 stock/serializers.py:349 +msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1456 +#: stock/models.py:1457 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1459 +#: stock/models.py:1460 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1462 +#: stock/models.py:1463 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1465 +#: stock/models.py:1466 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1468 +#: stock/models.py:1469 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1471 +#: stock/models.py:1472 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1478 stock/serializers.py:946 +#: stock/models.py:1479 stock/serializers.py:946 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1482 +#: stock/models.py:1483 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1486 +#: stock/models.py:1487 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1490 +#: stock/models.py:1491 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1659 +#: stock/models.py:1660 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2127 +#: stock/models.py:2128 msgid "Entry notes" msgstr "" -#: stock/models.py:2185 +#: stock/models.py:2186 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2191 +#: stock/models.py:2192 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2210 +#: stock/models.py:2211 msgid "Test name" msgstr "" -#: stock/models.py:2216 +#: stock/models.py:2217 msgid "Test result" msgstr "" -#: stock/models.py:2222 +#: stock/models.py:2223 msgid "Test output value" msgstr "" -#: stock/models.py:2229 +#: stock/models.py:2230 msgid "Test result attachment" msgstr "" -#: stock/models.py:2235 +#: stock/models.py:2236 msgid "Test notes" msgstr "" @@ -7682,10 +7681,6 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:349 -msgid "Serial numbers already exist" -msgstr "" - #: stock/serializers.py:389 msgid "Select stock item to install" msgstr "" @@ -8694,8 +8689,8 @@ msgid "Change Password" msgstr "" #: templates/InvenTree/settings/user.html:23 -#: templates/js/translated/helpers.js:53 templates/notes_buttons.html:3 -#: templates/notes_buttons.html:4 +#: templates/js/translated/helpers.js:53 templates/js/translated/pricing.js:610 +#: templates/notes_buttons.html:3 templates/notes_buttons.html:4 msgid "Edit" msgstr "" @@ -10719,16 +10714,6 @@ msgstr "" msgid "No price break data available" msgstr "" -#: templates/js/translated/pricing.js:610 -#, python-brace-format -msgid "Edit ${human_name}" -msgstr "" - -#: templates/js/translated/pricing.js:611 -#, python-brace-format -msgid "Delete ${human_name}" -msgstr "" - #: templates/js/translated/pricing.js:737 msgid "No purchase history data available" msgstr "" diff --git a/InvenTree/locale/ko/LC_MESSAGES/django.po b/InvenTree/locale/ko/LC_MESSAGES/django.po index 5082196f88..6672811ba6 100644 --- a/InvenTree/locale/ko/LC_MESSAGES/django.po +++ b/InvenTree/locale/ko/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-04-14 22:35+0000\n" -"PO-Revision-Date: 2023-04-15 18:23\n" +"POT-Creation-Date: 2023-04-17 14:13+0000\n" +"PO-Revision-Date: 2023-04-17 18:26\n" "Last-Translator: \n" "Language-Team: Korean\n" "Language: ko_KR\n" @@ -41,7 +41,7 @@ msgstr "날짜 입력" #: order/templates/order/so_sidebar.html:17 part/admin.py:41 #: part/models.py:2989 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/admin.py:121 stock/models.py:2126 stock/models.py:2234 +#: stock/admin.py:121 stock/models.py:2127 stock/models.py:2235 #: stock/serializers.py:317 stock/serializers.py:450 stock/serializers.py:531 #: stock/serializers.py:810 stock/serializers.py:909 stock/serializers.py:1041 #: stock/templates/stock/stock_sidebar.html:25 @@ -209,7 +209,7 @@ msgstr "" msgid "Missing external link" msgstr "" -#: InvenTree/models.py:409 stock/models.py:2228 +#: InvenTree/models.py:409 stock/models.py:2229 #: templates/js/translated/attachment.js:109 #: templates/js/translated/attachment.js:296 msgid "Attachment" @@ -1833,23 +1833,24 @@ msgstr "" msgid "Completed Outputs" msgstr "" -#: common/files.py:62 -msgid "Unsupported file format: {ext.upper()}" +#: common/files.py:63 +#, python-brace-format +msgid "Unsupported file format: {fmt}" msgstr "" -#: common/files.py:64 +#: common/files.py:65 msgid "Error reading file (invalid encoding)" msgstr "" -#: common/files.py:69 +#: common/files.py:70 msgid "Error reading file (invalid format)" msgstr "" -#: common/files.py:71 +#: common/files.py:72 msgid "Error reading file (incorrect dimension)" msgstr "" -#: common/files.py:73 +#: common/files.py:74 msgid "Error reading file (data could be corrupted)" msgstr "" @@ -3481,7 +3482,7 @@ msgstr "" #: company/models.py:394 #: report/templates/report/inventree_test_report_base.html:104 -#: stock/models.py:2221 templates/js/translated/company.js:857 +#: stock/models.py:2222 templates/js/translated/company.js:857 #: templates/js/translated/company.js:1062 templates/js/translated/part.js:1268 #: templates/js/translated/stock.js:1425 msgid "Value" @@ -3902,8 +3903,8 @@ msgstr "" #: company/templates/company/manufacturer_part.html:183 #: part/templates/part/detail.html:393 part/templates/part/detail.html:423 #: templates/js/translated/forms.js:499 templates/js/translated/helpers.js:58 -#: templates/js/translated/part.js:313 templates/js/translated/stock.js:186 -#: users/models.py:243 +#: templates/js/translated/part.js:313 templates/js/translated/pricing.js:611 +#: templates/js/translated/stock.js:186 users/models.py:243 msgid "Delete" msgstr "삭제" @@ -6191,8 +6192,7 @@ msgid "You do not have permission to edit the BOM." msgstr "" #: part/templates/part/bom.html:15 -#, python-format -msgid "The BOM for %(part)s has changed, and must be validated.
" +msgid "The BOM this part has been changed, and must be validated" msgstr "" #: part/templates/part/bom.html:17 @@ -6852,8 +6852,7 @@ msgid "Create new part variant" msgstr "" #: part/templates/part/variant_part.html:10 -#, python-format -msgid "Create a new variant of template '%(full_name)s'." +msgid "Create a new variant part from this template" msgstr "" #: part/templatetags/inventree_extras.py:187 @@ -7038,18 +7037,19 @@ msgstr "" msgid "No date found" msgstr "" -#: plugin/registry.py:450 -msgid "Plugin `{plg_name}` is not compatible with the current InvenTree version {version.inventreeVersion()}!" -msgstr "" - #: plugin/registry.py:452 #, python-brace-format -msgid "Plugin requires at least version {plg_i.MIN_VERSION}" +msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "" #: plugin/registry.py:454 #, python-brace-format -msgid "Plugin requires at most version {plg_i.MAX_VERSION}" +msgid "Plugin requires at least version {v}" +msgstr "" + +#: plugin/registry.py:456 +#, python-brace-format +msgid "Plugin requires at most version {v}" msgstr "" #: plugin/samples/integration/sample.py:39 @@ -7276,12 +7276,12 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:102 -#: stock/models.py:2209 templates/js/translated/stock.js:1398 +#: stock/models.py:2210 templates/js/translated/stock.js:1398 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:103 -#: stock/models.py:2215 +#: stock/models.py:2216 msgid "Result" msgstr "" @@ -7568,84 +7568,83 @@ msgstr "" msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1386 -#, python-brace-format -msgid "Serial numbers already exist: {exists}" -msgstr "" +#: stock/models.py:1386 stock/serializers.py:349 +msgid "Serial numbers already exist" +msgstr "일련번호가 이미 존재합니다" -#: stock/models.py:1456 +#: stock/models.py:1457 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1459 +#: stock/models.py:1460 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1462 +#: stock/models.py:1463 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1465 +#: stock/models.py:1466 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1468 +#: stock/models.py:1469 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1471 +#: stock/models.py:1472 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1478 stock/serializers.py:946 +#: stock/models.py:1479 stock/serializers.py:946 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1482 +#: stock/models.py:1483 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1486 +#: stock/models.py:1487 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1490 +#: stock/models.py:1491 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1659 +#: stock/models.py:1660 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2127 +#: stock/models.py:2128 msgid "Entry notes" msgstr "" -#: stock/models.py:2185 +#: stock/models.py:2186 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2191 +#: stock/models.py:2192 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2210 +#: stock/models.py:2211 msgid "Test name" msgstr "" -#: stock/models.py:2216 +#: stock/models.py:2217 msgid "Test result" msgstr "" -#: stock/models.py:2222 +#: stock/models.py:2223 msgid "Test output value" msgstr "" -#: stock/models.py:2229 +#: stock/models.py:2230 msgid "Test result attachment" msgstr "" -#: stock/models.py:2235 +#: stock/models.py:2236 msgid "Test notes" msgstr "" @@ -7682,10 +7681,6 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:349 -msgid "Serial numbers already exist" -msgstr "일련번호가 이미 존재합니다" - #: stock/serializers.py:389 msgid "Select stock item to install" msgstr "" @@ -8694,8 +8689,8 @@ msgid "Change Password" msgstr "비밀번호 변경" #: templates/InvenTree/settings/user.html:23 -#: templates/js/translated/helpers.js:53 templates/notes_buttons.html:3 -#: templates/notes_buttons.html:4 +#: templates/js/translated/helpers.js:53 templates/js/translated/pricing.js:610 +#: templates/notes_buttons.html:3 templates/notes_buttons.html:4 msgid "Edit" msgstr "" @@ -10719,16 +10714,6 @@ msgstr "" msgid "No price break data available" msgstr "" -#: templates/js/translated/pricing.js:610 -#, python-brace-format -msgid "Edit ${human_name}" -msgstr "" - -#: templates/js/translated/pricing.js:611 -#, python-brace-format -msgid "Delete ${human_name}" -msgstr "" - #: templates/js/translated/pricing.js:737 msgid "No purchase history data available" msgstr "" diff --git a/InvenTree/locale/nl/LC_MESSAGES/django.po b/InvenTree/locale/nl/LC_MESSAGES/django.po index f78bcf4de4..ea88cb2f05 100644 --- a/InvenTree/locale/nl/LC_MESSAGES/django.po +++ b/InvenTree/locale/nl/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-04-14 22:35+0000\n" -"PO-Revision-Date: 2023-04-15 18:23\n" +"POT-Creation-Date: 2023-04-17 14:13+0000\n" +"PO-Revision-Date: 2023-04-17 18:26\n" "Last-Translator: \n" "Language-Team: Dutch\n" "Language: nl_NL\n" @@ -41,7 +41,7 @@ msgstr "Voer datum in" #: order/templates/order/so_sidebar.html:17 part/admin.py:41 #: part/models.py:2989 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/admin.py:121 stock/models.py:2126 stock/models.py:2234 +#: stock/admin.py:121 stock/models.py:2127 stock/models.py:2235 #: stock/serializers.py:317 stock/serializers.py:450 stock/serializers.py:531 #: stock/serializers.py:810 stock/serializers.py:909 stock/serializers.py:1041 #: stock/templates/stock/stock_sidebar.html:25 @@ -209,7 +209,7 @@ msgstr "Ontbrekend bestand" msgid "Missing external link" msgstr "Externe link ontbreekt" -#: InvenTree/models.py:409 stock/models.py:2228 +#: InvenTree/models.py:409 stock/models.py:2229 #: templates/js/translated/attachment.js:109 #: templates/js/translated/attachment.js:296 msgid "Attachment" @@ -1833,23 +1833,24 @@ msgstr "Onvolledige Productieuitvoeren" msgid "Completed Outputs" msgstr "Voltooide Uitvoeren" -#: common/files.py:62 -msgid "Unsupported file format: {ext.upper()}" -msgstr "Niet-ondersteunde bestandsindeling: {ext.upper()}" +#: common/files.py:63 +#, python-brace-format +msgid "Unsupported file format: {fmt}" +msgstr "" -#: common/files.py:64 +#: common/files.py:65 msgid "Error reading file (invalid encoding)" msgstr "Fout bij lezen bestand (ongeldige codering)" -#: common/files.py:69 +#: common/files.py:70 msgid "Error reading file (invalid format)" msgstr "Fout bij lezen bestand (ongeldig formaat)" -#: common/files.py:71 +#: common/files.py:72 msgid "Error reading file (incorrect dimension)" msgstr "Fout bij lezen bestand (onjuiste afmeting)" -#: common/files.py:73 +#: common/files.py:74 msgid "Error reading file (data could be corrupted)" msgstr "Fout bij lezen bestand (gegevens kunnen beschadigd zijn)" @@ -3481,7 +3482,7 @@ msgstr "Parameternaam" #: company/models.py:394 #: report/templates/report/inventree_test_report_base.html:104 -#: stock/models.py:2221 templates/js/translated/company.js:857 +#: stock/models.py:2222 templates/js/translated/company.js:857 #: templates/js/translated/company.js:1062 templates/js/translated/part.js:1268 #: templates/js/translated/stock.js:1425 msgid "Value" @@ -3902,8 +3903,8 @@ msgstr "Verwijder leveranciersonderdelen" #: company/templates/company/manufacturer_part.html:183 #: part/templates/part/detail.html:393 part/templates/part/detail.html:423 #: templates/js/translated/forms.js:499 templates/js/translated/helpers.js:58 -#: templates/js/translated/part.js:313 templates/js/translated/stock.js:186 -#: users/models.py:243 +#: templates/js/translated/part.js:313 templates/js/translated/pricing.js:611 +#: templates/js/translated/stock.js:186 users/models.py:243 msgid "Delete" msgstr "Verwijderen" @@ -6191,8 +6192,7 @@ msgid "You do not have permission to edit the BOM." msgstr "U heeft geen toestemming om de stuklijst te bewerken." #: part/templates/part/bom.html:15 -#, python-format -msgid "The BOM for %(part)s has changed, and must be validated.
" +msgid "The BOM this part has been changed, and must be validated" msgstr "" #: part/templates/part/bom.html:17 @@ -6852,8 +6852,7 @@ msgid "Create new part variant" msgstr "" #: part/templates/part/variant_part.html:10 -#, python-format -msgid "Create a new variant of template '%(full_name)s'." +msgid "Create a new variant part from this template" msgstr "" #: part/templatetags/inventree_extras.py:187 @@ -7038,18 +7037,19 @@ msgstr "" msgid "No date found" msgstr "" -#: plugin/registry.py:450 -msgid "Plugin `{plg_name}` is not compatible with the current InvenTree version {version.inventreeVersion()}!" -msgstr "" - #: plugin/registry.py:452 #, python-brace-format -msgid "Plugin requires at least version {plg_i.MIN_VERSION}" +msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "" #: plugin/registry.py:454 #, python-brace-format -msgid "Plugin requires at most version {plg_i.MAX_VERSION}" +msgid "Plugin requires at least version {v}" +msgstr "" + +#: plugin/registry.py:456 +#, python-brace-format +msgid "Plugin requires at most version {v}" msgstr "" #: plugin/samples/integration/sample.py:39 @@ -7276,12 +7276,12 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:102 -#: stock/models.py:2209 templates/js/translated/stock.js:1398 +#: stock/models.py:2210 templates/js/translated/stock.js:1398 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:103 -#: stock/models.py:2215 +#: stock/models.py:2216 msgid "Result" msgstr "" @@ -7568,84 +7568,83 @@ msgstr "" msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1386 -#, python-brace-format -msgid "Serial numbers already exist: {exists}" +#: stock/models.py:1386 stock/serializers.py:349 +msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1456 +#: stock/models.py:1457 msgid "Stock item has been assigned to a sales order" msgstr "Voorraadartikel is toegewezen aan een verkooporder" -#: stock/models.py:1459 +#: stock/models.py:1460 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1462 +#: stock/models.py:1463 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1465 +#: stock/models.py:1466 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1468 +#: stock/models.py:1469 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1471 +#: stock/models.py:1472 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1478 stock/serializers.py:946 +#: stock/models.py:1479 stock/serializers.py:946 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1482 +#: stock/models.py:1483 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1486 +#: stock/models.py:1487 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1490 +#: stock/models.py:1491 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1659 +#: stock/models.py:1660 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2127 +#: stock/models.py:2128 msgid "Entry notes" msgstr "" -#: stock/models.py:2185 +#: stock/models.py:2186 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2191 +#: stock/models.py:2192 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2210 +#: stock/models.py:2211 msgid "Test name" msgstr "" -#: stock/models.py:2216 +#: stock/models.py:2217 msgid "Test result" msgstr "" -#: stock/models.py:2222 +#: stock/models.py:2223 msgid "Test output value" msgstr "" -#: stock/models.py:2229 +#: stock/models.py:2230 msgid "Test result attachment" msgstr "" -#: stock/models.py:2235 +#: stock/models.py:2236 msgid "Test notes" msgstr "" @@ -7682,10 +7681,6 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:349 -msgid "Serial numbers already exist" -msgstr "" - #: stock/serializers.py:389 msgid "Select stock item to install" msgstr "" @@ -8694,8 +8689,8 @@ msgid "Change Password" msgstr "" #: templates/InvenTree/settings/user.html:23 -#: templates/js/translated/helpers.js:53 templates/notes_buttons.html:3 -#: templates/notes_buttons.html:4 +#: templates/js/translated/helpers.js:53 templates/js/translated/pricing.js:610 +#: templates/notes_buttons.html:3 templates/notes_buttons.html:4 msgid "Edit" msgstr "" @@ -10719,16 +10714,6 @@ msgstr "" msgid "No price break data available" msgstr "" -#: templates/js/translated/pricing.js:610 -#, python-brace-format -msgid "Edit ${human_name}" -msgstr "" - -#: templates/js/translated/pricing.js:611 -#, python-brace-format -msgid "Delete ${human_name}" -msgstr "" - #: templates/js/translated/pricing.js:737 msgid "No purchase history data available" msgstr "" diff --git a/InvenTree/locale/no/LC_MESSAGES/django.po b/InvenTree/locale/no/LC_MESSAGES/django.po index 1229d5166f..cc61c19288 100644 --- a/InvenTree/locale/no/LC_MESSAGES/django.po +++ b/InvenTree/locale/no/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-04-14 22:35+0000\n" -"PO-Revision-Date: 2023-04-15 18:23\n" +"POT-Creation-Date: 2023-04-17 14:13+0000\n" +"PO-Revision-Date: 2023-04-17 18:26\n" "Last-Translator: \n" "Language-Team: Norwegian\n" "Language: no_NO\n" @@ -41,7 +41,7 @@ msgstr "Oppgi dato" #: order/templates/order/so_sidebar.html:17 part/admin.py:41 #: part/models.py:2989 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/admin.py:121 stock/models.py:2126 stock/models.py:2234 +#: stock/admin.py:121 stock/models.py:2127 stock/models.py:2235 #: stock/serializers.py:317 stock/serializers.py:450 stock/serializers.py:531 #: stock/serializers.py:810 stock/serializers.py:909 stock/serializers.py:1041 #: stock/templates/stock/stock_sidebar.html:25 @@ -209,7 +209,7 @@ msgstr "Fil mangler" msgid "Missing external link" msgstr "Mangler eksternlenke" -#: InvenTree/models.py:409 stock/models.py:2228 +#: InvenTree/models.py:409 stock/models.py:2229 #: templates/js/translated/attachment.js:109 #: templates/js/translated/attachment.js:296 msgid "Attachment" @@ -1833,23 +1833,24 @@ msgstr "Ufullstendige resultater" msgid "Completed Outputs" msgstr "Fullførte byggeresultater" -#: common/files.py:62 -msgid "Unsupported file format: {ext.upper()}" -msgstr "Filformatet støttes ikke: {ext.upper()}" +#: common/files.py:63 +#, python-brace-format +msgid "Unsupported file format: {fmt}" +msgstr "" -#: common/files.py:64 +#: common/files.py:65 msgid "Error reading file (invalid encoding)" msgstr "Feil under lesing av fil (ugyldig koding)" -#: common/files.py:69 +#: common/files.py:70 msgid "Error reading file (invalid format)" msgstr "Feil under lesing av fil (ugyldig format)" -#: common/files.py:71 +#: common/files.py:72 msgid "Error reading file (incorrect dimension)" msgstr "Feil under lesing av fil (feil dimensjon)" -#: common/files.py:73 +#: common/files.py:74 msgid "Error reading file (data could be corrupted)" msgstr "Feil under lesing av fil (data kan være skadet)" @@ -3481,7 +3482,7 @@ msgstr "" #: company/models.py:394 #: report/templates/report/inventree_test_report_base.html:104 -#: stock/models.py:2221 templates/js/translated/company.js:857 +#: stock/models.py:2222 templates/js/translated/company.js:857 #: templates/js/translated/company.js:1062 templates/js/translated/part.js:1268 #: templates/js/translated/stock.js:1425 msgid "Value" @@ -3902,8 +3903,8 @@ msgstr "Slett leverandørdeler" #: company/templates/company/manufacturer_part.html:183 #: part/templates/part/detail.html:393 part/templates/part/detail.html:423 #: templates/js/translated/forms.js:499 templates/js/translated/helpers.js:58 -#: templates/js/translated/part.js:313 templates/js/translated/stock.js:186 -#: users/models.py:243 +#: templates/js/translated/part.js:313 templates/js/translated/pricing.js:611 +#: templates/js/translated/stock.js:186 users/models.py:243 msgid "Delete" msgstr "Slett" @@ -6191,8 +6192,7 @@ msgid "You do not have permission to edit the BOM." msgstr "" #: part/templates/part/bom.html:15 -#, python-format -msgid "The BOM for %(part)s has changed, and must be validated.
" +msgid "The BOM this part has been changed, and must be validated" msgstr "" #: part/templates/part/bom.html:17 @@ -6852,8 +6852,7 @@ msgid "Create new part variant" msgstr "" #: part/templates/part/variant_part.html:10 -#, python-format -msgid "Create a new variant of template '%(full_name)s'." +msgid "Create a new variant part from this template" msgstr "" #: part/templatetags/inventree_extras.py:187 @@ -7038,18 +7037,19 @@ msgstr "" msgid "No date found" msgstr "" -#: plugin/registry.py:450 -msgid "Plugin `{plg_name}` is not compatible with the current InvenTree version {version.inventreeVersion()}!" -msgstr "" - #: plugin/registry.py:452 #, python-brace-format -msgid "Plugin requires at least version {plg_i.MIN_VERSION}" +msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "" #: plugin/registry.py:454 #, python-brace-format -msgid "Plugin requires at most version {plg_i.MAX_VERSION}" +msgid "Plugin requires at least version {v}" +msgstr "" + +#: plugin/registry.py:456 +#, python-brace-format +msgid "Plugin requires at most version {v}" msgstr "" #: plugin/samples/integration/sample.py:39 @@ -7276,12 +7276,12 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:102 -#: stock/models.py:2209 templates/js/translated/stock.js:1398 +#: stock/models.py:2210 templates/js/translated/stock.js:1398 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:103 -#: stock/models.py:2215 +#: stock/models.py:2216 msgid "Result" msgstr "" @@ -7568,84 +7568,83 @@ msgstr "" msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1386 -#, python-brace-format -msgid "Serial numbers already exist: {exists}" -msgstr "" +#: stock/models.py:1386 stock/serializers.py:349 +msgid "Serial numbers already exist" +msgstr "Seriernummer eksisterer allerede" -#: stock/models.py:1456 +#: stock/models.py:1457 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1459 +#: stock/models.py:1460 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1462 +#: stock/models.py:1463 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1465 +#: stock/models.py:1466 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1468 +#: stock/models.py:1469 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1471 +#: stock/models.py:1472 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1478 stock/serializers.py:946 +#: stock/models.py:1479 stock/serializers.py:946 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1482 +#: stock/models.py:1483 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1486 +#: stock/models.py:1487 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1490 +#: stock/models.py:1491 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1659 +#: stock/models.py:1660 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2127 +#: stock/models.py:2128 msgid "Entry notes" msgstr "" -#: stock/models.py:2185 +#: stock/models.py:2186 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2191 +#: stock/models.py:2192 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2210 +#: stock/models.py:2211 msgid "Test name" msgstr "" -#: stock/models.py:2216 +#: stock/models.py:2217 msgid "Test result" msgstr "" -#: stock/models.py:2222 +#: stock/models.py:2223 msgid "Test output value" msgstr "" -#: stock/models.py:2229 +#: stock/models.py:2230 msgid "Test result attachment" msgstr "" -#: stock/models.py:2235 +#: stock/models.py:2236 msgid "Test notes" msgstr "" @@ -7682,10 +7681,6 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:349 -msgid "Serial numbers already exist" -msgstr "Seriernummer eksisterer allerede" - #: stock/serializers.py:389 msgid "Select stock item to install" msgstr "" @@ -8694,8 +8689,8 @@ msgid "Change Password" msgstr "" #: templates/InvenTree/settings/user.html:23 -#: templates/js/translated/helpers.js:53 templates/notes_buttons.html:3 -#: templates/notes_buttons.html:4 +#: templates/js/translated/helpers.js:53 templates/js/translated/pricing.js:610 +#: templates/notes_buttons.html:3 templates/notes_buttons.html:4 msgid "Edit" msgstr "" @@ -10719,16 +10714,6 @@ msgstr "" msgid "No price break data available" msgstr "" -#: templates/js/translated/pricing.js:610 -#, python-brace-format -msgid "Edit ${human_name}" -msgstr "" - -#: templates/js/translated/pricing.js:611 -#, python-brace-format -msgid "Delete ${human_name}" -msgstr "" - #: templates/js/translated/pricing.js:737 msgid "No purchase history data available" msgstr "" diff --git a/InvenTree/locale/pl/LC_MESSAGES/django.po b/InvenTree/locale/pl/LC_MESSAGES/django.po index df79a31a8d..96d70c68e8 100644 --- a/InvenTree/locale/pl/LC_MESSAGES/django.po +++ b/InvenTree/locale/pl/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-04-14 22:35+0000\n" -"PO-Revision-Date: 2023-04-15 18:23\n" +"POT-Creation-Date: 2023-04-17 14:13+0000\n" +"PO-Revision-Date: 2023-04-17 18:26\n" "Last-Translator: \n" "Language-Team: Polish\n" "Language: pl_PL\n" @@ -41,7 +41,7 @@ msgstr "Wprowadź dane" #: order/templates/order/so_sidebar.html:17 part/admin.py:41 #: part/models.py:2989 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/admin.py:121 stock/models.py:2126 stock/models.py:2234 +#: stock/admin.py:121 stock/models.py:2127 stock/models.py:2235 #: stock/serializers.py:317 stock/serializers.py:450 stock/serializers.py:531 #: stock/serializers.py:810 stock/serializers.py:909 stock/serializers.py:1041 #: stock/templates/stock/stock_sidebar.html:25 @@ -209,7 +209,7 @@ msgstr "Brak pliku" msgid "Missing external link" msgstr "Brak zewnętrznego odnośnika" -#: InvenTree/models.py:409 stock/models.py:2228 +#: InvenTree/models.py:409 stock/models.py:2229 #: templates/js/translated/attachment.js:109 #: templates/js/translated/attachment.js:296 msgid "Attachment" @@ -1833,23 +1833,24 @@ msgstr "" msgid "Completed Outputs" msgstr "" -#: common/files.py:62 -msgid "Unsupported file format: {ext.upper()}" -msgstr "Nieobsługiwany format pliku: {ext.upper()}" +#: common/files.py:63 +#, python-brace-format +msgid "Unsupported file format: {fmt}" +msgstr "" -#: common/files.py:64 +#: common/files.py:65 msgid "Error reading file (invalid encoding)" msgstr "Błąd odczytu pliku (nieprawidłowe kodowanie)" -#: common/files.py:69 +#: common/files.py:70 msgid "Error reading file (invalid format)" msgstr "Błąd odczytu pliku (nieprawidłowy format)" -#: common/files.py:71 +#: common/files.py:72 msgid "Error reading file (incorrect dimension)" msgstr "Błąd odczytu pliku (niepoprawny wymiar)" -#: common/files.py:73 +#: common/files.py:74 msgid "Error reading file (data could be corrupted)" msgstr "Błąd odczytu pliku (dane mogą być uszkodzone)" @@ -3481,7 +3482,7 @@ msgstr "" #: company/models.py:394 #: report/templates/report/inventree_test_report_base.html:104 -#: stock/models.py:2221 templates/js/translated/company.js:857 +#: stock/models.py:2222 templates/js/translated/company.js:857 #: templates/js/translated/company.js:1062 templates/js/translated/part.js:1268 #: templates/js/translated/stock.js:1425 msgid "Value" @@ -3902,8 +3903,8 @@ msgstr "" #: company/templates/company/manufacturer_part.html:183 #: part/templates/part/detail.html:393 part/templates/part/detail.html:423 #: templates/js/translated/forms.js:499 templates/js/translated/helpers.js:58 -#: templates/js/translated/part.js:313 templates/js/translated/stock.js:186 -#: users/models.py:243 +#: templates/js/translated/part.js:313 templates/js/translated/pricing.js:611 +#: templates/js/translated/stock.js:186 users/models.py:243 msgid "Delete" msgstr "Usuń" @@ -6191,8 +6192,7 @@ msgid "You do not have permission to edit the BOM." msgstr "Nie masz uprawnień do edycji BOM." #: part/templates/part/bom.html:15 -#, python-format -msgid "The BOM for %(part)s has changed, and must be validated.
" +msgid "The BOM this part has been changed, and must be validated" msgstr "" #: part/templates/part/bom.html:17 @@ -6852,8 +6852,7 @@ msgid "Create new part variant" msgstr "" #: part/templates/part/variant_part.html:10 -#, python-format -msgid "Create a new variant of template '%(full_name)s'." +msgid "Create a new variant part from this template" msgstr "" #: part/templatetags/inventree_extras.py:187 @@ -7038,18 +7037,19 @@ msgstr "" msgid "No date found" msgstr "" -#: plugin/registry.py:450 -msgid "Plugin `{plg_name}` is not compatible with the current InvenTree version {version.inventreeVersion()}!" -msgstr "" - #: plugin/registry.py:452 #, python-brace-format -msgid "Plugin requires at least version {plg_i.MIN_VERSION}" +msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "" #: plugin/registry.py:454 #, python-brace-format -msgid "Plugin requires at most version {plg_i.MAX_VERSION}" +msgid "Plugin requires at least version {v}" +msgstr "" + +#: plugin/registry.py:456 +#, python-brace-format +msgid "Plugin requires at most version {v}" msgstr "" #: plugin/samples/integration/sample.py:39 @@ -7276,12 +7276,12 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:102 -#: stock/models.py:2209 templates/js/translated/stock.js:1398 +#: stock/models.py:2210 templates/js/translated/stock.js:1398 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:103 -#: stock/models.py:2215 +#: stock/models.py:2216 msgid "Result" msgstr "Wynik" @@ -7568,84 +7568,83 @@ msgstr "" msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1386 -#, python-brace-format -msgid "Serial numbers already exist: {exists}" -msgstr "" +#: stock/models.py:1386 stock/serializers.py:349 +msgid "Serial numbers already exist" +msgstr "Numer seryjny już istnieje" -#: stock/models.py:1456 +#: stock/models.py:1457 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1459 +#: stock/models.py:1460 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1462 +#: stock/models.py:1463 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1465 +#: stock/models.py:1466 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1468 +#: stock/models.py:1469 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1471 +#: stock/models.py:1472 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1478 stock/serializers.py:946 +#: stock/models.py:1479 stock/serializers.py:946 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1482 +#: stock/models.py:1483 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1486 +#: stock/models.py:1487 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1490 +#: stock/models.py:1491 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1659 +#: stock/models.py:1660 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2127 +#: stock/models.py:2128 msgid "Entry notes" msgstr "Notatki do wpisu" -#: stock/models.py:2185 +#: stock/models.py:2186 msgid "Value must be provided for this test" msgstr "Należy podać wartość dla tego testu" -#: stock/models.py:2191 +#: stock/models.py:2192 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2210 +#: stock/models.py:2211 msgid "Test name" msgstr "Nazwa testu" -#: stock/models.py:2216 +#: stock/models.py:2217 msgid "Test result" msgstr "Wynik testu" -#: stock/models.py:2222 +#: stock/models.py:2223 msgid "Test output value" msgstr "" -#: stock/models.py:2229 +#: stock/models.py:2230 msgid "Test result attachment" msgstr "" -#: stock/models.py:2235 +#: stock/models.py:2236 msgid "Test notes" msgstr "" @@ -7682,10 +7681,6 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:349 -msgid "Serial numbers already exist" -msgstr "Numer seryjny już istnieje" - #: stock/serializers.py:389 msgid "Select stock item to install" msgstr "" @@ -8694,8 +8689,8 @@ msgid "Change Password" msgstr "" #: templates/InvenTree/settings/user.html:23 -#: templates/js/translated/helpers.js:53 templates/notes_buttons.html:3 -#: templates/notes_buttons.html:4 +#: templates/js/translated/helpers.js:53 templates/js/translated/pricing.js:610 +#: templates/notes_buttons.html:3 templates/notes_buttons.html:4 msgid "Edit" msgstr "" @@ -10719,16 +10714,6 @@ msgstr "" msgid "No price break data available" msgstr "" -#: templates/js/translated/pricing.js:610 -#, python-brace-format -msgid "Edit ${human_name}" -msgstr "Edytuj ${human_name}" - -#: templates/js/translated/pricing.js:611 -#, python-brace-format -msgid "Delete ${human_name}" -msgstr "Usuń ${human_name}" - #: templates/js/translated/pricing.js:737 msgid "No purchase history data available" msgstr "" diff --git a/InvenTree/locale/pt/LC_MESSAGES/django.po b/InvenTree/locale/pt/LC_MESSAGES/django.po index 53a535bb9e..6a5378b920 100644 --- a/InvenTree/locale/pt/LC_MESSAGES/django.po +++ b/InvenTree/locale/pt/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-04-14 22:35+0000\n" -"PO-Revision-Date: 2023-04-15 18:23\n" +"POT-Creation-Date: 2023-04-17 14:13+0000\n" +"PO-Revision-Date: 2023-04-17 18:26\n" "Last-Translator: \n" "Language-Team: Portuguese, Brazilian\n" "Language: pt_BR\n" @@ -41,7 +41,7 @@ msgstr "Insira uma Data" #: order/templates/order/so_sidebar.html:17 part/admin.py:41 #: part/models.py:2989 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/admin.py:121 stock/models.py:2126 stock/models.py:2234 +#: stock/admin.py:121 stock/models.py:2127 stock/models.py:2235 #: stock/serializers.py:317 stock/serializers.py:450 stock/serializers.py:531 #: stock/serializers.py:810 stock/serializers.py:909 stock/serializers.py:1041 #: stock/templates/stock/stock_sidebar.html:25 @@ -209,7 +209,7 @@ msgstr "Arquivo nao encontrado" msgid "Missing external link" msgstr "Link externo nao encontrado" -#: InvenTree/models.py:409 stock/models.py:2228 +#: InvenTree/models.py:409 stock/models.py:2229 #: templates/js/translated/attachment.js:109 #: templates/js/translated/attachment.js:296 msgid "Attachment" @@ -1833,23 +1833,24 @@ msgstr "Saídas Incompletas" msgid "Completed Outputs" msgstr "Saídas Concluídas" -#: common/files.py:62 -msgid "Unsupported file format: {ext.upper()}" -msgstr "Formato de arquivo não suportado: {ext.upper()}" +#: common/files.py:63 +#, python-brace-format +msgid "Unsupported file format: {fmt}" +msgstr "" -#: common/files.py:64 +#: common/files.py:65 msgid "Error reading file (invalid encoding)" msgstr "Erro ao ler arquivo (codificação inválida)" -#: common/files.py:69 +#: common/files.py:70 msgid "Error reading file (invalid format)" msgstr "Erro ao ler arquivo (formato inválido)" -#: common/files.py:71 +#: common/files.py:72 msgid "Error reading file (incorrect dimension)" msgstr "Erro ao ler o arquivo (dimensão incorreta)" -#: common/files.py:73 +#: common/files.py:74 msgid "Error reading file (data could be corrupted)" msgstr "Erro ao ler o arquivo (dados podem estar corrompidos)" @@ -3060,7 +3061,7 @@ msgstr "Pesquisa de Regex" #: common/models.py:1984 msgid "Enable regular expressions in search queries" -msgstr "Permitir expressôes comuns nas conultas de pesquisas ( Queries)" +msgstr "Permitir expressôes comuns nas conultas de pesquisas" #: common/models.py:1990 msgid "Whole Word Search" @@ -3481,7 +3482,7 @@ msgstr "Nome do parâmetro" #: company/models.py:394 #: report/templates/report/inventree_test_report_base.html:104 -#: stock/models.py:2221 templates/js/translated/company.js:857 +#: stock/models.py:2222 templates/js/translated/company.js:857 #: templates/js/translated/company.js:1062 templates/js/translated/part.js:1268 #: templates/js/translated/stock.js:1425 msgid "Value" @@ -3902,8 +3903,8 @@ msgstr "Excluir peças do fornecedor" #: company/templates/company/manufacturer_part.html:183 #: part/templates/part/detail.html:393 part/templates/part/detail.html:423 #: templates/js/translated/forms.js:499 templates/js/translated/helpers.js:58 -#: templates/js/translated/part.js:313 templates/js/translated/stock.js:186 -#: users/models.py:243 +#: templates/js/translated/part.js:313 templates/js/translated/pricing.js:611 +#: templates/js/translated/stock.js:186 users/models.py:243 msgid "Delete" msgstr "Excluir" @@ -6191,9 +6192,8 @@ msgid "You do not have permission to edit the BOM." msgstr "Você não tem permissões para editar a LDM." #: part/templates/part/bom.html:15 -#, python-format -msgid "The BOM for %(part)s has changed, and must be validated.
" -msgstr "A LDM para %(part)s foi alterada e deve ser validada.
" +msgid "The BOM this part has been changed, and must be validated" +msgstr "" #: part/templates/part/bom.html:17 #, python-format @@ -6852,9 +6852,8 @@ msgid "Create new part variant" msgstr "Criar variante de peça" #: part/templates/part/variant_part.html:10 -#, python-format -msgid "Create a new variant of template '%(full_name)s'." -msgstr "Criar uma nova variante do modelo '%(full_name)s'." +msgid "Create a new variant part from this template" +msgstr "" #: part/templatetags/inventree_extras.py:187 msgid "Unknown database" @@ -7038,19 +7037,20 @@ msgstr "Nenhum autor encontrado" msgid "No date found" msgstr "Nenhum dado encontrado" -#: plugin/registry.py:450 -msgid "Plugin `{plg_name}` is not compatible with the current InvenTree version {version.inventreeVersion()}!" -msgstr "O plugin `{plg_name}` não é compatível com a versão atual do InvenTree {version.inventreeVersion()}!" - #: plugin/registry.py:452 #, python-brace-format -msgid "Plugin requires at least version {plg_i.MIN_VERSION}" -msgstr "Extensão requer pelo menos a versão {plg_i.MIN_VERSION}" +msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" +msgstr "" #: plugin/registry.py:454 #, python-brace-format -msgid "Plugin requires at most version {plg_i.MAX_VERSION}" -msgstr "Extensão requer no máximo a versão {plg_i.MAX_VERSION}" +msgid "Plugin requires at least version {v}" +msgstr "" + +#: plugin/registry.py:456 +#, python-brace-format +msgid "Plugin requires at most version {v}" +msgstr "" #: plugin/samples/integration/sample.py:39 msgid "Enable PO" @@ -7276,12 +7276,12 @@ msgid "Test Results" msgstr "Resultados do teste" #: report/templates/report/inventree_test_report_base.html:102 -#: stock/models.py:2209 templates/js/translated/stock.js:1398 +#: stock/models.py:2210 templates/js/translated/stock.js:1398 msgid "Test" msgstr "Teste" #: report/templates/report/inventree_test_report_base.html:103 -#: stock/models.py:2215 +#: stock/models.py:2216 msgid "Result" msgstr "Resultado" @@ -7568,84 +7568,83 @@ msgstr "Números de série devem ser uma lista de números inteiros" msgid "Quantity does not match serial numbers" msgstr "A quantidade não corresponde aos números de série" -#: stock/models.py:1386 -#, python-brace-format -msgid "Serial numbers already exist: {exists}" -msgstr "Números de série já existem: {exists}" +#: stock/models.py:1386 stock/serializers.py:349 +msgid "Serial numbers already exist" +msgstr "" -#: stock/models.py:1456 +#: stock/models.py:1457 msgid "Stock item has been assigned to a sales order" msgstr "Item em estoque foi reservado para um pedido" -#: stock/models.py:1459 +#: stock/models.py:1460 msgid "Stock item is installed in another item" msgstr "Item em estoque está instalado em outro item" -#: stock/models.py:1462 +#: stock/models.py:1463 msgid "Stock item contains other items" msgstr "item em estoque contem outro(s) items" -#: stock/models.py:1465 +#: stock/models.py:1466 msgid "Stock item has been assigned to a customer" msgstr "Item em estoque foi reservado para outro cliente" -#: stock/models.py:1468 +#: stock/models.py:1469 msgid "Stock item is currently in production" msgstr "Item no estoque está em produção no momento" -#: stock/models.py:1471 +#: stock/models.py:1472 msgid "Serialized stock cannot be merged" msgstr "Itens de série não podem ser mesclados" -#: stock/models.py:1478 stock/serializers.py:946 +#: stock/models.py:1479 stock/serializers.py:946 msgid "Duplicate stock items" msgstr "Item de estoque duplicado" -#: stock/models.py:1482 +#: stock/models.py:1483 msgid "Stock items must refer to the same part" msgstr "Itens de estoque devem se referir à mesma peça" -#: stock/models.py:1486 +#: stock/models.py:1487 msgid "Stock items must refer to the same supplier part" msgstr "Itens de estoque devem se referir à mesma peça do fornecedor" -#: stock/models.py:1490 +#: stock/models.py:1491 msgid "Stock status codes must match" msgstr "Códigos de estado do estoque devem corresponder" -#: stock/models.py:1659 +#: stock/models.py:1660 msgid "StockItem cannot be moved as it is not in stock" msgstr "Item do estoque não pode ser realocado se não houver estoque da mesma" -#: stock/models.py:2127 +#: stock/models.py:2128 msgid "Entry notes" msgstr "Observações de entrada" -#: stock/models.py:2185 +#: stock/models.py:2186 msgid "Value must be provided for this test" msgstr "Deve-se fornecer o valor desse teste" -#: stock/models.py:2191 +#: stock/models.py:2192 msgid "Attachment must be uploaded for this test" msgstr "O anexo deve ser enviado para este teste" -#: stock/models.py:2210 +#: stock/models.py:2211 msgid "Test name" msgstr "Nome de teste" -#: stock/models.py:2216 +#: stock/models.py:2217 msgid "Test result" msgstr "" -#: stock/models.py:2222 +#: stock/models.py:2223 msgid "Test output value" msgstr "" -#: stock/models.py:2229 +#: stock/models.py:2230 msgid "Test result attachment" msgstr "" -#: stock/models.py:2235 +#: stock/models.py:2236 msgid "Test notes" msgstr "" @@ -7682,10 +7681,6 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:349 -msgid "Serial numbers already exist" -msgstr "" - #: stock/serializers.py:389 msgid "Select stock item to install" msgstr "" @@ -8694,8 +8689,8 @@ msgid "Change Password" msgstr "" #: templates/InvenTree/settings/user.html:23 -#: templates/js/translated/helpers.js:53 templates/notes_buttons.html:3 -#: templates/notes_buttons.html:4 +#: templates/js/translated/helpers.js:53 templates/js/translated/pricing.js:610 +#: templates/notes_buttons.html:3 templates/notes_buttons.html:4 msgid "Edit" msgstr "" @@ -10719,16 +10714,6 @@ msgstr "" msgid "No price break data available" msgstr "" -#: templates/js/translated/pricing.js:610 -#, python-brace-format -msgid "Edit ${human_name}" -msgstr "" - -#: templates/js/translated/pricing.js:611 -#, python-brace-format -msgid "Delete ${human_name}" -msgstr "" - #: templates/js/translated/pricing.js:737 msgid "No purchase history data available" msgstr "" diff --git a/InvenTree/locale/pt_br/LC_MESSAGES/django.po b/InvenTree/locale/pt_br/LC_MESSAGES/django.po index 5cf259f2b7..b4a9227c68 100644 --- a/InvenTree/locale/pt_br/LC_MESSAGES/django.po +++ b/InvenTree/locale/pt_br/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-03-29 08:09+0000\n" +"POT-Creation-Date: 2023-04-17 14:52+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -18,15 +18,15 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: InvenTree/api.py:63 +#: InvenTree/api.py:65 msgid "API endpoint not found" msgstr "" -#: InvenTree/api.py:308 +#: InvenTree/api.py:299 msgid "User does not have permission to view this model" msgstr "" -#: InvenTree/exceptions.py:79 +#: InvenTree/exceptions.py:94 msgid "Error details can be found in the admin panel" msgstr "" @@ -34,25 +34,25 @@ msgstr "" msgid "Enter date" msgstr "" -#: InvenTree/fields.py:204 build/serializers.py:389 +#: InvenTree/fields.py:204 build/serializers.py:392 #: build/templates/build/sidebar.html:21 company/models.py:554 -#: company/templates/company/sidebar.html:35 order/models.py:1029 +#: company/templates/company/sidebar.html:35 order/models.py:1058 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:41 #: part/models.py:2989 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/admin.py:121 stock/models.py:2100 stock/models.py:2208 +#: stock/admin.py:121 stock/models.py:2127 stock/models.py:2235 #: stock/serializers.py:317 stock/serializers.py:450 stock/serializers.py:531 #: stock/serializers.py:810 stock/serializers.py:909 stock/serializers.py:1041 #: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:130 templates/js/translated/bom.js:1220 -#: templates/js/translated/company.js:1272 templates/js/translated/order.js:319 +#: templates/js/translated/company.js:1272 templates/js/translated/order.js:322 #: templates/js/translated/part.js:997 -#: templates/js/translated/purchase_order.js:2038 -#: templates/js/translated/return_order.js:715 -#: templates/js/translated/sales_order.js:937 -#: templates/js/translated/sales_order.js:1843 +#: templates/js/translated/purchase_order.js:2105 +#: templates/js/translated/return_order.js:718 +#: templates/js/translated/sales_order.js:963 +#: templates/js/translated/sales_order.js:1871 #: templates/js/translated/stock.js:1439 templates/js/translated/stock.js:2134 msgid "Notes" msgstr "" @@ -138,7 +138,7 @@ msgstr "" msgid "Supplied URL is not a valid image file" msgstr "" -#: InvenTree/helpers.py:602 order/models.py:409 order/models.py:565 +#: InvenTree/helpers.py:602 order/models.py:410 order/models.py:571 msgid "Invalid quantity provided" msgstr "" @@ -210,7 +210,7 @@ msgstr "" msgid "Missing external link" msgstr "" -#: InvenTree/models.py:409 stock/models.py:2202 +#: InvenTree/models.py:409 stock/models.py:2229 #: templates/js/translated/attachment.js:109 #: templates/js/translated/attachment.js:296 msgid "Attachment" @@ -220,20 +220,24 @@ msgstr "" msgid "Select file to attach" msgstr "" -#: InvenTree/models.py:416 common/models.py:2607 company/models.py:129 -#: company/models.py:305 company/models.py:541 order/models.py:201 -#: order/models.py:1377 order/models.py:1856 part/admin.py:39 +#: InvenTree/models.py:416 common/models.py:2621 company/models.py:129 +#: company/models.py:305 company/models.py:541 order/models.py:202 +#: order/models.py:1062 order/models.py:1412 part/admin.py:39 #: part/models.py:892 part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 #: stock/admin.py:120 templates/js/translated/company.js:962 -#: templates/js/translated/company.js:1261 templates/js/translated/part.js:1932 -#: templates/js/translated/purchase_order.js:1878 -#: templates/js/translated/sales_order.js:926 +#: templates/js/translated/company.js:1261 templates/js/translated/order.js:326 +#: templates/js/translated/part.js:1932 +#: templates/js/translated/purchase_order.js:1945 +#: templates/js/translated/purchase_order.js:2109 +#: templates/js/translated/return_order.js:722 +#: templates/js/translated/sales_order.js:952 +#: templates/js/translated/sales_order.js:1876 msgid "Link" msgstr "" #: InvenTree/models.py:417 build/models.py:293 part/models.py:893 -#: stock/models.py:727 +#: stock/models.py:728 msgid "Link to external URL" msgstr "" @@ -246,9 +250,9 @@ msgstr "" msgid "File comment" msgstr "" -#: InvenTree/models.py:426 InvenTree/models.py:427 common/models.py:2056 -#: common/models.py:2057 common/models.py:2280 common/models.py:2281 -#: common/models.py:2537 common/models.py:2538 part/models.py:2997 +#: InvenTree/models.py:426 InvenTree/models.py:427 common/models.py:2070 +#: common/models.py:2071 common/models.py:2294 common/models.py:2295 +#: common/models.py:2551 common/models.py:2552 part/models.py:2997 #: part/models.py:3085 part/models.py:3164 part/models.py:3184 #: plugin/models.py:270 plugin/models.py:271 #: report/templates/report/inventree_test_report_base.html:105 @@ -293,7 +297,7 @@ msgstr "" msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:571 InvenTree/models.py:572 common/models.py:2266 +#: InvenTree/models.py:571 InvenTree/models.py:572 common/models.py:2280 #: company/models.py:387 label/models.py:102 part/models.py:838 #: part/models.py:3332 plugin/models.py:94 report/models.py:158 #: templates/InvenTree/settings/mixins/urls.html:13 @@ -316,7 +320,7 @@ msgstr "" #: company/models.py:547 company/templates/company/company_base.html:72 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:108 label/models.py:109 -#: order/models.py:199 part/admin.py:194 part/admin.py:276 part/models.py:860 +#: order/models.py:200 part/admin.py:194 part/admin.py:276 part/models.py:860 #: part/models.py:3341 part/templates/part/category.html:81 #: part/templates/part/part_base.html:172 #: part/templates/part/part_scheduling.html:12 report/models.py:171 @@ -332,11 +336,11 @@ msgstr "" #: templates/js/translated/company.js:1236 templates/js/translated/part.js:1155 #: templates/js/translated/part.js:1597 templates/js/translated/part.js:1869 #: templates/js/translated/part.js:2348 templates/js/translated/part.js:2439 -#: templates/js/translated/purchase_order.js:1548 -#: templates/js/translated/purchase_order.js:1682 -#: templates/js/translated/purchase_order.js:1860 +#: templates/js/translated/purchase_order.js:1615 +#: templates/js/translated/purchase_order.js:1749 +#: templates/js/translated/purchase_order.js:1927 #: templates/js/translated/return_order.js:272 -#: templates/js/translated/sales_order.js:714 +#: templates/js/translated/sales_order.js:740 #: templates/js/translated/stock.js:1418 templates/js/translated/stock.js:1791 #: templates/js/translated/stock.js:2551 templates/js/translated/stock.js:2623 msgid "Description" @@ -363,7 +367,7 @@ msgstr "" msgid "Third party barcode data" msgstr "" -#: InvenTree/models.py:702 order/serializers.py:503 +#: InvenTree/models.py:702 msgid "Barcode Hash" msgstr "" @@ -375,11 +379,11 @@ msgstr "" msgid "Existing barcode found" msgstr "" -#: InvenTree/models.py:801 +#: InvenTree/models.py:802 msgid "Server Error" msgstr "" -#: InvenTree/models.py:802 +#: InvenTree/models.py:803 msgid "An error has been logged by the server." msgstr "" @@ -460,107 +464,107 @@ msgstr "" msgid "Downloading images from remote URL is not enabled" msgstr "" -#: InvenTree/settings.py:705 +#: InvenTree/settings.py:708 msgid "Czech" msgstr "" -#: InvenTree/settings.py:706 +#: InvenTree/settings.py:709 msgid "Danish" msgstr "" -#: InvenTree/settings.py:707 +#: InvenTree/settings.py:710 msgid "German" msgstr "" -#: InvenTree/settings.py:708 +#: InvenTree/settings.py:711 msgid "Greek" msgstr "" -#: InvenTree/settings.py:709 +#: InvenTree/settings.py:712 msgid "English" msgstr "" -#: InvenTree/settings.py:710 +#: InvenTree/settings.py:713 msgid "Spanish" msgstr "" -#: InvenTree/settings.py:711 +#: InvenTree/settings.py:714 msgid "Spanish (Mexican)" msgstr "" -#: InvenTree/settings.py:712 +#: InvenTree/settings.py:715 msgid "Farsi / Persian" msgstr "" -#: InvenTree/settings.py:713 +#: InvenTree/settings.py:716 msgid "French" msgstr "" -#: InvenTree/settings.py:714 +#: InvenTree/settings.py:717 msgid "Hebrew" msgstr "" -#: InvenTree/settings.py:715 +#: InvenTree/settings.py:718 msgid "Hungarian" msgstr "" -#: InvenTree/settings.py:716 +#: InvenTree/settings.py:719 msgid "Italian" msgstr "" -#: InvenTree/settings.py:717 +#: InvenTree/settings.py:720 msgid "Japanese" msgstr "" -#: InvenTree/settings.py:718 +#: InvenTree/settings.py:721 msgid "Korean" msgstr "" -#: InvenTree/settings.py:719 +#: InvenTree/settings.py:722 msgid "Dutch" msgstr "" -#: InvenTree/settings.py:720 +#: InvenTree/settings.py:723 msgid "Norwegian" msgstr "" -#: InvenTree/settings.py:721 +#: InvenTree/settings.py:724 msgid "Polish" msgstr "" -#: InvenTree/settings.py:722 +#: InvenTree/settings.py:725 msgid "Portuguese" msgstr "" -#: InvenTree/settings.py:723 +#: InvenTree/settings.py:726 msgid "Portuguese (Brazilian)" msgstr "" -#: InvenTree/settings.py:724 +#: InvenTree/settings.py:727 msgid "Russian" msgstr "" -#: InvenTree/settings.py:725 +#: InvenTree/settings.py:728 msgid "Slovenian" msgstr "" -#: InvenTree/settings.py:726 +#: InvenTree/settings.py:729 msgid "Swedish" msgstr "" -#: InvenTree/settings.py:727 +#: InvenTree/settings.py:730 msgid "Thai" msgstr "" -#: InvenTree/settings.py:728 +#: InvenTree/settings.py:731 msgid "Turkish" msgstr "" -#: InvenTree/settings.py:729 +#: InvenTree/settings.py:732 msgid "Vietnamese" msgstr "" -#: InvenTree/settings.py:730 +#: InvenTree/settings.py:733 msgid "Chinese" msgstr "" @@ -576,188 +580,189 @@ msgstr "" msgid "InvenTree system health checks failed" msgstr "" -#: InvenTree/status_codes.py:99 InvenTree/status_codes.py:140 -#: InvenTree/status_codes.py:313 InvenTree/status_codes.py:350 -#: InvenTree/status_codes.py:385 templates/js/translated/table_filters.js:417 +#: InvenTree/status_codes.py:139 InvenTree/status_codes.py:181 +#: InvenTree/status_codes.py:357 InvenTree/status_codes.py:394 +#: InvenTree/status_codes.py:429 templates/js/translated/table_filters.js:417 msgid "Pending" msgstr "" -#: InvenTree/status_codes.py:100 +#: InvenTree/status_codes.py:140 msgid "Placed" msgstr "" -#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:316 -#: InvenTree/status_codes.py:352 order/templates/order/order_base.html:142 -#: order/templates/order/sales_order_base.html:133 +#: InvenTree/status_codes.py:141 InvenTree/status_codes.py:360 +#: InvenTree/status_codes.py:396 order/templates/order/order_base.html:161 +#: order/templates/order/sales_order_base.html:161 msgid "Complete" msgstr "" -#: InvenTree/status_codes.py:102 InvenTree/status_codes.py:142 -#: InvenTree/status_codes.py:315 InvenTree/status_codes.py:353 +#: InvenTree/status_codes.py:142 InvenTree/status_codes.py:184 +#: InvenTree/status_codes.py:359 InvenTree/status_codes.py:397 msgid "Cancelled" msgstr "" -#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:143 -#: InvenTree/status_codes.py:183 +#: InvenTree/status_codes.py:143 InvenTree/status_codes.py:185 +#: InvenTree/status_codes.py:227 msgid "Lost" msgstr "" -#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144 -#: InvenTree/status_codes.py:186 +#: InvenTree/status_codes.py:144 InvenTree/status_codes.py:186 +#: InvenTree/status_codes.py:230 msgid "Returned" msgstr "" -#: InvenTree/status_codes.py:141 order/models.py:1260 -#: templates/js/translated/sales_order.js:1503 -#: templates/js/translated/sales_order.js:1818 -msgid "Shipped" -msgstr "" - -#: InvenTree/status_codes.py:179 -msgid "OK" -msgstr "" - -#: InvenTree/status_codes.py:180 -msgid "Attention needed" -msgstr "" - -#: InvenTree/status_codes.py:181 -msgid "Damaged" -msgstr "" - -#: InvenTree/status_codes.py:182 -msgid "Destroyed" -msgstr "" - -#: InvenTree/status_codes.py:184 -msgid "Rejected" -msgstr "" - -#: InvenTree/status_codes.py:185 -msgid "Quarantined" -msgstr "" - -#: InvenTree/status_codes.py:263 -msgid "Legacy stock tracking entry" -msgstr "" - -#: InvenTree/status_codes.py:265 -msgid "Stock item created" -msgstr "" - -#: InvenTree/status_codes.py:267 -msgid "Edited stock item" -msgstr "" - -#: InvenTree/status_codes.py:268 -msgid "Assigned serial number" -msgstr "" - -#: InvenTree/status_codes.py:270 -msgid "Stock counted" -msgstr "" - -#: InvenTree/status_codes.py:271 -msgid "Stock manually added" -msgstr "" - -#: InvenTree/status_codes.py:272 -msgid "Stock manually removed" -msgstr "" - -#: InvenTree/status_codes.py:274 -msgid "Location changed" -msgstr "" - -#: InvenTree/status_codes.py:276 -msgid "Installed into assembly" -msgstr "" - -#: InvenTree/status_codes.py:277 -msgid "Removed from assembly" -msgstr "" - -#: InvenTree/status_codes.py:279 -msgid "Installed component item" -msgstr "" - -#: InvenTree/status_codes.py:280 -msgid "Removed component item" -msgstr "" - -#: InvenTree/status_codes.py:282 -msgid "Split from parent item" -msgstr "" - -#: InvenTree/status_codes.py:283 -msgid "Split child item" -msgstr "" - -#: InvenTree/status_codes.py:285 templates/js/translated/stock.js:2213 -msgid "Merged stock items" -msgstr "" - -#: InvenTree/status_codes.py:287 -msgid "Converted to variant" -msgstr "" - -#: InvenTree/status_codes.py:289 templates/js/translated/table_filters.js:273 -msgid "Sent to customer" -msgstr "" - -#: InvenTree/status_codes.py:290 -msgid "Returned from customer" -msgstr "" - -#: InvenTree/status_codes.py:292 -msgid "Build order output created" -msgstr "" - -#: InvenTree/status_codes.py:293 -msgid "Build order output completed" -msgstr "" - -#: InvenTree/status_codes.py:294 -msgid "Consumed by build order" -msgstr "" - -#: InvenTree/status_codes.py:296 -msgid "Shipped against Sales Order" -msgstr "" - -#: InvenTree/status_codes.py:298 -msgid "Received against Purchase Order" -msgstr "" - -#: InvenTree/status_codes.py:300 -msgid "Returned against Return Order" -msgstr "" - -#: InvenTree/status_codes.py:314 -msgid "Production" -msgstr "" - -#: InvenTree/status_codes.py:351 +#: InvenTree/status_codes.py:182 InvenTree/status_codes.py:395 msgid "In Progress" msgstr "" -#: InvenTree/status_codes.py:386 +#: InvenTree/status_codes.py:183 order/models.py:1295 +#: templates/js/translated/sales_order.js:1418 +#: templates/js/translated/sales_order.js:1542 +#: templates/js/translated/sales_order.js:1846 +msgid "Shipped" +msgstr "" + +#: InvenTree/status_codes.py:223 +msgid "OK" +msgstr "" + +#: InvenTree/status_codes.py:224 +msgid "Attention needed" +msgstr "" + +#: InvenTree/status_codes.py:225 +msgid "Damaged" +msgstr "" + +#: InvenTree/status_codes.py:226 +msgid "Destroyed" +msgstr "" + +#: InvenTree/status_codes.py:228 +msgid "Rejected" +msgstr "" + +#: InvenTree/status_codes.py:229 +msgid "Quarantined" +msgstr "" + +#: InvenTree/status_codes.py:307 +msgid "Legacy stock tracking entry" +msgstr "" + +#: InvenTree/status_codes.py:309 +msgid "Stock item created" +msgstr "" + +#: InvenTree/status_codes.py:311 +msgid "Edited stock item" +msgstr "" + +#: InvenTree/status_codes.py:312 +msgid "Assigned serial number" +msgstr "" + +#: InvenTree/status_codes.py:314 +msgid "Stock counted" +msgstr "" + +#: InvenTree/status_codes.py:315 +msgid "Stock manually added" +msgstr "" + +#: InvenTree/status_codes.py:316 +msgid "Stock manually removed" +msgstr "" + +#: InvenTree/status_codes.py:318 +msgid "Location changed" +msgstr "" + +#: InvenTree/status_codes.py:320 +msgid "Installed into assembly" +msgstr "" + +#: InvenTree/status_codes.py:321 +msgid "Removed from assembly" +msgstr "" + +#: InvenTree/status_codes.py:323 +msgid "Installed component item" +msgstr "" + +#: InvenTree/status_codes.py:324 +msgid "Removed component item" +msgstr "" + +#: InvenTree/status_codes.py:326 +msgid "Split from parent item" +msgstr "" + +#: InvenTree/status_codes.py:327 +msgid "Split child item" +msgstr "" + +#: InvenTree/status_codes.py:329 templates/js/translated/stock.js:2213 +msgid "Merged stock items" +msgstr "" + +#: InvenTree/status_codes.py:331 +msgid "Converted to variant" +msgstr "" + +#: InvenTree/status_codes.py:333 templates/js/translated/table_filters.js:273 +msgid "Sent to customer" +msgstr "" + +#: InvenTree/status_codes.py:334 +msgid "Returned from customer" +msgstr "" + +#: InvenTree/status_codes.py:336 +msgid "Build order output created" +msgstr "" + +#: InvenTree/status_codes.py:337 +msgid "Build order output completed" +msgstr "" + +#: InvenTree/status_codes.py:338 +msgid "Consumed by build order" +msgstr "" + +#: InvenTree/status_codes.py:340 +msgid "Shipped against Sales Order" +msgstr "" + +#: InvenTree/status_codes.py:342 +msgid "Received against Purchase Order" +msgstr "" + +#: InvenTree/status_codes.py:344 +msgid "Returned against Return Order" +msgstr "" + +#: InvenTree/status_codes.py:358 +msgid "Production" +msgstr "" + +#: InvenTree/status_codes.py:430 msgid "Return" msgstr "" -#: InvenTree/status_codes.py:387 +#: InvenTree/status_codes.py:431 msgid "Repair" msgstr "" -#: InvenTree/status_codes.py:388 +#: InvenTree/status_codes.py:432 msgid "Refund" msgstr "" -#: InvenTree/status_codes.py:389 +#: InvenTree/status_codes.py:433 msgid "Replace" msgstr "" -#: InvenTree/status_codes.py:390 +#: InvenTree/status_codes.py:434 msgid "Reject" msgstr "" @@ -801,7 +806,7 @@ msgstr "" msgid "About InvenTree" msgstr "" -#: build/api.py:245 +#: build/api.py:221 msgid "Build must be cancelled before it can be deleted" msgstr "" @@ -821,7 +826,7 @@ msgstr "" #: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221 #: templates/InvenTree/search.html:141 #: templates/InvenTree/settings/sidebar.html:49 -#: templates/js/translated/search.js:214 users/models.py:42 +#: templates/js/translated/search.js:216 users/models.py:42 msgid "Build Orders" msgstr "" @@ -833,27 +838,27 @@ msgstr "" msgid "Build Order Reference" msgstr "" -#: build/models.py:158 order/models.py:326 order/models.py:722 -#: order/models.py:1027 order/models.py:1638 part/admin.py:278 +#: build/models.py:158 order/models.py:327 order/models.py:734 +#: order/models.py:1056 order/models.py:1673 part/admin.py:278 #: part/models.py:3602 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_po_report_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:26 #: report/templates/report/inventree_so_report_base.html:28 #: templates/js/translated/bom.js:739 templates/js/translated/bom.js:913 -#: templates/js/translated/build.js:1847 templates/js/translated/order.js:269 +#: templates/js/translated/build.js:1847 templates/js/translated/order.js:272 #: templates/js/translated/pricing.js:368 -#: templates/js/translated/purchase_order.js:1903 -#: templates/js/translated/return_order.js:668 -#: templates/js/translated/sales_order.js:1682 +#: templates/js/translated/purchase_order.js:1970 +#: templates/js/translated/return_order.js:671 +#: templates/js/translated/sales_order.js:1710 msgid "Reference" msgstr "" #: build/models.py:169 -msgid "Brief description of the build" +msgid "Brief description of the build (optional)" msgstr "" -#: build/models.py:177 build/templates/build/build_base.html:172 +#: build/models.py:177 build/templates/build/build_base.html:189 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "" @@ -862,9 +867,9 @@ msgstr "" msgid "BuildOrder to which this build is allocated" msgstr "" -#: build/models.py:183 build/templates/build/build_base.html:80 +#: build/models.py:183 build/templates/build/build_base.html:98 #: build/templates/build/detail.html:29 company/models.py:720 -#: order/models.py:1123 order/models.py:1239 order/models.py:1240 +#: order/models.py:1158 order/models.py:1274 order/models.py:1275 #: part/models.py:382 part/models.py:2849 part/models.py:2963 #: part/models.py:3103 part/models.py:3122 part/models.py:3141 #: part/models.py:3162 part/models.py:3254 part/models.py:3375 @@ -885,7 +890,7 @@ msgstr "" #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 #: templates/email/overdue_build_order.html:16 -#: templates/js/translated/barcode.js:502 templates/js/translated/bom.js:601 +#: templates/js/translated/barcode.js:516 templates/js/translated/bom.js:601 #: templates/js/translated/bom.js:738 templates/js/translated/bom.js:857 #: templates/js/translated/build.js:1230 templates/js/translated/build.js:1714 #: templates/js/translated/build.js:2213 templates/js/translated/build.js:2615 @@ -895,16 +900,16 @@ msgstr "" #: templates/js/translated/company.js:1154 templates/js/translated/part.js:1582 #: templates/js/translated/part.js:1648 templates/js/translated/part.js:1838 #: templates/js/translated/pricing.js:351 -#: templates/js/translated/purchase_order.js:694 -#: templates/js/translated/purchase_order.js:1195 -#: templates/js/translated/purchase_order.js:1681 -#: templates/js/translated/purchase_order.js:1845 -#: templates/js/translated/return_order.js:482 -#: templates/js/translated/return_order.js:649 -#: templates/js/translated/sales_order.js:235 -#: templates/js/translated/sales_order.js:1068 -#: templates/js/translated/sales_order.js:1454 -#: templates/js/translated/sales_order.js:1666 +#: templates/js/translated/purchase_order.js:697 +#: templates/js/translated/purchase_order.js:1223 +#: templates/js/translated/purchase_order.js:1748 +#: templates/js/translated/purchase_order.js:1912 +#: templates/js/translated/return_order.js:485 +#: templates/js/translated/return_order.js:652 +#: templates/js/translated/sales_order.js:239 +#: templates/js/translated/sales_order.js:1094 +#: templates/js/translated/sales_order.js:1493 +#: templates/js/translated/sales_order.js:1694 #: templates/js/translated/stock.js:622 templates/js/translated/stock.js:788 #: templates/js/translated/stock.js:1000 templates/js/translated/stock.js:1747 #: templates/js/translated/stock.js:2649 templates/js/translated/stock.js:2873 @@ -924,9 +929,9 @@ msgstr "" msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:205 build/serializers.py:825 +#: build/models.py:205 build/serializers.py:828 #: templates/js/translated/build.js:2201 -#: templates/js/translated/sales_order.js:1056 +#: templates/js/translated/sales_order.js:1082 msgid "Source Location" msgstr "" @@ -966,19 +971,19 @@ msgstr "" msgid "Build status code" msgstr "" -#: build/models.py:248 build/serializers.py:226 order/serializers.py:481 -#: stock/models.py:731 templates/js/translated/purchase_order.js:1058 +#: build/models.py:248 build/serializers.py:229 order/serializers.py:487 +#: stock/models.py:732 templates/js/translated/purchase_order.js:1048 msgid "Batch Code" msgstr "" -#: build/models.py:252 build/serializers.py:227 +#: build/models.py:252 build/serializers.py:230 msgid "Batch code for this build output" msgstr "" -#: build/models.py:255 order/models.py:209 part/models.py:1028 -#: part/templates/part/part_base.html:319 +#: build/models.py:255 order/models.py:210 part/models.py:1028 +#: part/templates/part/part_base.html:312 #: templates/js/translated/return_order.js:285 -#: templates/js/translated/sales_order.js:727 +#: templates/js/translated/sales_order.js:753 msgid "Creation Date" msgstr "" @@ -990,7 +995,7 @@ msgstr "" msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:263 order/models.py:376 order/models.py:1681 +#: build/models.py:263 order/models.py:377 order/models.py:1716 #: templates/js/translated/build.js:2700 msgid "Completion Date" msgstr "" @@ -1007,15 +1012,15 @@ msgstr "" msgid "User who issued this build order" msgstr "" -#: build/models.py:286 build/templates/build/build_base.html:193 -#: build/templates/build/detail.html:122 order/models.py:223 -#: order/templates/order/order_base.html:194 -#: order/templates/order/return_order_base.html:162 -#: order/templates/order/sales_order_base.html:193 part/models.py:1032 -#: part/templates/part/part_base.html:399 +#: build/models.py:286 build/templates/build/build_base.html:210 +#: build/templates/build/detail.html:122 order/models.py:224 +#: order/templates/order/order_base.html:213 +#: order/templates/order/return_order_base.html:183 +#: order/templates/order/sales_order_base.html:221 part/models.py:1032 +#: part/templates/part/part_base.html:392 #: report/templates/report/inventree_build_order_base.html:158 #: templates/js/translated/build.js:2672 -#: templates/js/translated/purchase_order.js:1593 +#: templates/js/translated/purchase_order.js:1660 #: templates/js/translated/return_order.js:305 #: templates/js/translated/table_filters.js:391 msgid "Responsible" @@ -1027,9 +1032,9 @@ msgstr "" #: build/models.py:292 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 -#: company/templates/company/supplier_part.html:188 -#: part/templates/part/part_base.html:392 stock/models.py:725 -#: stock/templates/stock/item_base.html:206 +#: company/templates/company/supplier_part.html:182 +#: part/templates/part/part_base.html:385 stock/models.py:726 +#: stock/templates/stock/item_base.html:201 msgid "External Link" msgstr "" @@ -1075,11 +1080,11 @@ msgstr "" msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1209 order/models.py:1515 +#: build/models.py:1209 order/models.py:1550 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1215 order/models.py:1518 +#: build/models.py:1215 order/models.py:1553 msgid "Allocation quantity must be greater than zero" msgstr "" @@ -1091,7 +1096,7 @@ msgstr "" msgid "Selected stock item not found in BOM" msgstr "" -#: build/models.py:1347 stock/templates/stock/item_base.html:175 +#: build/models.py:1347 stock/templates/stock/item_base.html:170 #: templates/InvenTree/search.html:139 templates/js/translated/build.js:2588 #: templates/navbar.html:38 msgid "Build" @@ -1101,19 +1106,19 @@ msgstr "" msgid "Build to allocate parts" msgstr "" -#: build/models.py:1364 build/serializers.py:674 order/serializers.py:1013 -#: order/serializers.py:1034 stock/serializers.py:388 stock/serializers.py:741 +#: build/models.py:1364 build/serializers.py:677 order/serializers.py:1035 +#: order/serializers.py:1056 stock/serializers.py:388 stock/serializers.py:741 #: stock/serializers.py:867 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:200 +#: stock/templates/stock/item_base.html:195 #: templates/js/translated/build.js:801 templates/js/translated/build.js:806 #: templates/js/translated/build.js:2215 templates/js/translated/build.js:2785 -#: templates/js/translated/sales_order.js:236 -#: templates/js/translated/sales_order.js:1069 -#: templates/js/translated/sales_order.js:1367 -#: templates/js/translated/sales_order.js:1372 -#: templates/js/translated/sales_order.js:1461 -#: templates/js/translated/sales_order.js:1551 +#: templates/js/translated/sales_order.js:240 +#: templates/js/translated/sales_order.js:1095 +#: templates/js/translated/sales_order.js:1394 +#: templates/js/translated/sales_order.js:1399 +#: templates/js/translated/sales_order.js:1500 +#: templates/js/translated/sales_order.js:1590 #: templates/js/translated/stock.js:623 templates/js/translated/stock.js:789 #: templates/js/translated/stock.js:2756 msgid "Stock Item" @@ -1123,10 +1128,10 @@ msgstr "" msgid "Source stock item" msgstr "" -#: build/models.py:1377 build/serializers.py:194 -#: build/templates/build/build_base.html:85 -#: build/templates/build/detail.html:34 common/models.py:2088 -#: order/models.py:1013 order/models.py:1559 order/serializers.py:1187 +#: build/models.py:1377 build/serializers.py:197 +#: build/templates/build/build_base.html:103 +#: build/templates/build/detail.html:34 common/models.py:2102 +#: order/models.py:1042 order/models.py:1594 order/serializers.py:1209 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:277 #: part/forms.py:47 part/models.py:2976 part/models.py:3583 #: part/templates/part/part_pricing.html:16 @@ -1138,31 +1143,32 @@ msgstr "" #: report/templates/report/inventree_test_report_base.html:90 #: report/templates/report/inventree_test_report_base.html:170 #: stock/admin.py:103 stock/serializers.py:281 -#: stock/templates/stock/item_base.html:293 -#: stock/templates/stock/item_base.html:301 +#: stock/templates/stock/item_base.html:288 +#: stock/templates/stock/item_base.html:296 +#: stock/templates/stock/item_base.html:343 #: templates/email/build_order_completed.html:18 -#: templates/js/translated/barcode.js:504 templates/js/translated/bom.js:740 +#: templates/js/translated/barcode.js:518 templates/js/translated/bom.js:740 #: templates/js/translated/bom.js:921 templates/js/translated/build.js:477 #: templates/js/translated/build.js:638 templates/js/translated/build.js:828 #: templates/js/translated/build.js:1252 templates/js/translated/build.js:1740 #: templates/js/translated/build.js:2216 #: templates/js/translated/company.js:1406 #: templates/js/translated/model_renderers.js:201 -#: templates/js/translated/order.js:276 templates/js/translated/part.js:878 +#: templates/js/translated/order.js:279 templates/js/translated/part.js:878 #: templates/js/translated/part.js:1446 templates/js/translated/part.js:2876 #: templates/js/translated/pricing.js:363 #: templates/js/translated/pricing.js:456 #: templates/js/translated/pricing.js:504 #: templates/js/translated/pricing.js:598 -#: templates/js/translated/purchase_order.js:697 -#: templates/js/translated/purchase_order.js:1685 -#: templates/js/translated/purchase_order.js:1909 -#: templates/js/translated/sales_order.js:252 -#: templates/js/translated/sales_order.js:1070 -#: templates/js/translated/sales_order.js:1386 -#: templates/js/translated/sales_order.js:1467 -#: templates/js/translated/sales_order.js:1557 -#: templates/js/translated/sales_order.js:1688 +#: templates/js/translated/purchase_order.js:700 +#: templates/js/translated/purchase_order.js:1752 +#: templates/js/translated/purchase_order.js:1976 +#: templates/js/translated/sales_order.js:256 +#: templates/js/translated/sales_order.js:1096 +#: templates/js/translated/sales_order.js:1413 +#: templates/js/translated/sales_order.js:1506 +#: templates/js/translated/sales_order.js:1596 +#: templates/js/translated/sales_order.js:1716 #: templates/js/translated/stock.js:494 templates/js/translated/stock.js:648 #: templates/js/translated/stock.js:819 templates/js/translated/stock.js:2800 #: templates/js/translated/stock.js:2885 @@ -1181,255 +1187,256 @@ msgstr "" msgid "Destination stock item" msgstr "" -#: build/serializers.py:145 build/serializers.py:703 +#: build/serializers.py:148 build/serializers.py:706 #: templates/js/translated/build.js:1240 msgid "Build Output" msgstr "" -#: build/serializers.py:157 +#: build/serializers.py:160 msgid "Build output does not match the parent build" msgstr "" -#: build/serializers.py:161 +#: build/serializers.py:164 msgid "Output part does not match BuildOrder part" msgstr "" -#: build/serializers.py:165 +#: build/serializers.py:168 msgid "This build output has already been completed" msgstr "" -#: build/serializers.py:176 +#: build/serializers.py:179 msgid "This build output is not fully allocated" msgstr "" -#: build/serializers.py:195 +#: build/serializers.py:198 msgid "Enter quantity for build output" msgstr "" -#: build/serializers.py:209 build/serializers.py:694 order/models.py:407 -#: order/serializers.py:354 order/serializers.py:476 part/serializers.py:1088 -#: part/serializers.py:1409 stock/models.py:585 stock/models.py:1344 +#: build/serializers.py:212 build/serializers.py:697 order/models.py:408 +#: order/serializers.py:360 order/serializers.py:482 part/serializers.py:1088 +#: part/serializers.py:1409 stock/models.py:586 stock/models.py:1370 #: stock/serializers.py:290 msgid "Quantity must be greater than zero" msgstr "" -#: build/serializers.py:216 +#: build/serializers.py:219 msgid "Integer quantity required for trackable parts" msgstr "" -#: build/serializers.py:219 +#: build/serializers.py:222 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "" -#: build/serializers.py:233 order/serializers.py:489 order/serializers.py:1191 -#: stock/serializers.py:299 templates/js/translated/purchase_order.js:1069 +#: build/serializers.py:236 order/serializers.py:495 order/serializers.py:1213 +#: stock/serializers.py:299 templates/js/translated/purchase_order.js:1072 #: templates/js/translated/stock.js:301 templates/js/translated/stock.js:495 msgid "Serial Numbers" msgstr "" -#: build/serializers.py:234 +#: build/serializers.py:237 msgid "Enter serial numbers for build outputs" msgstr "" -#: build/serializers.py:247 +#: build/serializers.py:250 msgid "Auto Allocate Serial Numbers" msgstr "" -#: build/serializers.py:248 +#: build/serializers.py:251 msgid "Automatically allocate required items with matching serial numbers" msgstr "" -#: build/serializers.py:283 stock/api.py:647 +#: build/serializers.py:286 stock/api.py:630 msgid "The following serial numbers already exist or are invalid" msgstr "" -#: build/serializers.py:332 build/serializers.py:401 +#: build/serializers.py:335 build/serializers.py:404 msgid "A list of build outputs must be provided" msgstr "" -#: build/serializers.py:371 order/serializers.py:462 order/serializers.py:581 -#: order/serializers.py:1540 part/serializers.py:855 stock/serializers.py:310 +#: build/serializers.py:374 order/serializers.py:468 order/serializers.py:589 +#: order/serializers.py:1562 part/serializers.py:855 stock/serializers.py:310 #: stock/serializers.py:445 stock/serializers.py:526 stock/serializers.py:902 -#: stock/serializers.py:1144 stock/templates/stock/item_base.html:391 -#: templates/js/translated/barcode.js:503 -#: templates/js/translated/barcode.js:747 templates/js/translated/build.js:813 +#: stock/serializers.py:1144 stock/templates/stock/item_base.html:384 +#: templates/js/translated/barcode.js:517 +#: templates/js/translated/barcode.js:764 templates/js/translated/build.js:813 #: templates/js/translated/build.js:1755 -#: templates/js/translated/purchase_order.js:1096 -#: templates/js/translated/sales_order.js:1379 -#: templates/js/translated/sales_order.js:1478 -#: templates/js/translated/sales_order.js:1486 -#: templates/js/translated/sales_order.js:1565 +#: templates/js/translated/purchase_order.js:1097 +#: templates/js/translated/purchase_order.js:1187 +#: templates/js/translated/sales_order.js:1406 +#: templates/js/translated/sales_order.js:1517 +#: templates/js/translated/sales_order.js:1525 +#: templates/js/translated/sales_order.js:1604 #: templates/js/translated/stock.js:624 templates/js/translated/stock.js:790 #: templates/js/translated/stock.js:1002 templates/js/translated/stock.js:1911 #: templates/js/translated/stock.js:2663 msgid "Location" msgstr "" -#: build/serializers.py:372 +#: build/serializers.py:375 msgid "Location for completed build outputs" msgstr "" -#: build/serializers.py:378 build/templates/build/build_base.html:145 -#: build/templates/build/detail.html:62 order/models.py:748 -#: order/models.py:1664 order/serializers.py:499 stock/admin.py:106 -#: stock/templates/stock/item_base.html:424 -#: templates/js/translated/barcode.js:236 templates/js/translated/build.js:2644 -#: templates/js/translated/purchase_order.js:1200 -#: templates/js/translated/purchase_order.js:1552 +#: build/serializers.py:381 build/templates/build/build_base.html:157 +#: build/templates/build/detail.html:62 order/models.py:760 +#: order/models.py:1699 order/serializers.py:505 stock/admin.py:106 +#: stock/templates/stock/item_base.html:417 +#: templates/js/translated/barcode.js:239 templates/js/translated/build.js:2644 +#: templates/js/translated/purchase_order.js:1227 +#: templates/js/translated/purchase_order.js:1619 #: templates/js/translated/return_order.js:277 -#: templates/js/translated/sales_order.js:719 +#: templates/js/translated/sales_order.js:745 #: templates/js/translated/stock.js:1886 templates/js/translated/stock.js:2774 #: templates/js/translated/stock.js:2901 msgid "Status" msgstr "" -#: build/serializers.py:384 +#: build/serializers.py:387 msgid "Accept Incomplete Allocation" msgstr "" -#: build/serializers.py:385 +#: build/serializers.py:388 msgid "Complete outputs if stock has not been fully allocated" msgstr "" -#: build/serializers.py:454 +#: build/serializers.py:457 msgid "Remove Allocated Stock" msgstr "" -#: build/serializers.py:455 +#: build/serializers.py:458 msgid "Subtract any stock which has already been allocated to this build" msgstr "" -#: build/serializers.py:461 +#: build/serializers.py:464 msgid "Remove Incomplete Outputs" msgstr "" -#: build/serializers.py:462 +#: build/serializers.py:465 msgid "Delete any build outputs which have not been completed" msgstr "" -#: build/serializers.py:490 +#: build/serializers.py:493 msgid "Accept as consumed by this build order" msgstr "" -#: build/serializers.py:491 +#: build/serializers.py:494 msgid "Deallocate before completing this build order" msgstr "" -#: build/serializers.py:514 +#: build/serializers.py:517 msgid "Overallocated Stock" msgstr "" -#: build/serializers.py:516 +#: build/serializers.py:519 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "" -#: build/serializers.py:526 +#: build/serializers.py:529 msgid "Some stock items have been overallocated" msgstr "" -#: build/serializers.py:531 +#: build/serializers.py:534 msgid "Accept Unallocated" msgstr "" -#: build/serializers.py:532 +#: build/serializers.py:535 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "" -#: build/serializers.py:542 templates/js/translated/build.js:265 +#: build/serializers.py:545 templates/js/translated/build.js:265 msgid "Required stock has not been fully allocated" msgstr "" -#: build/serializers.py:547 order/serializers.py:237 order/serializers.py:1081 +#: build/serializers.py:550 order/serializers.py:242 order/serializers.py:1103 msgid "Accept Incomplete" msgstr "" -#: build/serializers.py:548 +#: build/serializers.py:551 msgid "Accept that the required number of build outputs have not been completed" msgstr "" -#: build/serializers.py:558 templates/js/translated/build.js:269 +#: build/serializers.py:561 templates/js/translated/build.js:269 msgid "Required build quantity has not been completed" msgstr "" -#: build/serializers.py:567 templates/js/translated/build.js:253 +#: build/serializers.py:570 templates/js/translated/build.js:253 msgid "Build order has incomplete outputs" msgstr "" -#: build/serializers.py:597 build/serializers.py:651 part/models.py:3490 +#: build/serializers.py:600 build/serializers.py:654 part/models.py:3490 #: part/models.py:3873 msgid "BOM Item" msgstr "" -#: build/serializers.py:607 +#: build/serializers.py:610 msgid "Build output" msgstr "" -#: build/serializers.py:615 +#: build/serializers.py:618 msgid "Build output must point to the same build" msgstr "" -#: build/serializers.py:665 +#: build/serializers.py:668 msgid "bom_item.part must point to the same part as the build order" msgstr "" -#: build/serializers.py:680 stock/serializers.py:754 +#: build/serializers.py:683 stock/serializers.py:754 msgid "Item must be in stock" msgstr "" -#: build/serializers.py:729 order/serializers.py:1071 +#: build/serializers.py:732 order/serializers.py:1093 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "" -#: build/serializers.py:735 +#: build/serializers.py:738 msgid "Build output must be specified for allocation of tracked parts" msgstr "" -#: build/serializers.py:742 +#: build/serializers.py:745 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "" -#: build/serializers.py:747 +#: build/serializers.py:750 msgid "This stock item has already been allocated to this build output" msgstr "" -#: build/serializers.py:770 order/serializers.py:1355 +#: build/serializers.py:773 order/serializers.py:1377 msgid "Allocation items must be provided" msgstr "" -#: build/serializers.py:826 +#: build/serializers.py:829 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "" -#: build/serializers.py:834 +#: build/serializers.py:837 msgid "Exclude Location" msgstr "" -#: build/serializers.py:835 +#: build/serializers.py:838 msgid "Exclude stock items from this selected location" msgstr "" -#: build/serializers.py:840 +#: build/serializers.py:843 msgid "Interchangeable Stock" msgstr "" -#: build/serializers.py:841 +#: build/serializers.py:844 msgid "Stock items in multiple locations can be used interchangeably" msgstr "" -#: build/serializers.py:846 +#: build/serializers.py:849 msgid "Substitute Stock" msgstr "" -#: build/serializers.py:847 +#: build/serializers.py:850 msgid "Allow allocation of substitute parts" msgstr "" -#: build/serializers.py:852 +#: build/serializers.py:855 msgid "Optional Items" msgstr "" -#: build/serializers.py:853 +#: build/serializers.py:856 msgid "Allocate optional BOM items to build order" msgstr "" @@ -1447,101 +1454,141 @@ msgid "Build order {bo} is now overdue" msgstr "" #: build/templates/build/build_base.html:39 -#: order/templates/order/order_base.html:28 -#: order/templates/order/return_order_base.html:38 -#: order/templates/order/sales_order_base.html:38 -msgid "Print actions" +#: company/templates/company/supplier_part.html:36 +#: order/templates/order/order_base.html:29 +#: order/templates/order/return_order_base.html:39 +#: order/templates/order/sales_order_base.html:39 +#: part/templates/part/part_base.html:43 +#: stock/templates/stock/item_base.html:41 +#: stock/templates/stock/location.html:54 +msgid "Barcode actions" msgstr "" #: build/templates/build/build_base.html:43 +#: company/templates/company/supplier_part.html:40 +#: order/templates/order/order_base.html:33 +#: order/templates/order/return_order_base.html:43 +#: order/templates/order/sales_order_base.html:43 +#: part/templates/part/part_base.html:46 +#: stock/templates/stock/item_base.html:45 +#: stock/templates/stock/location.html:56 templates/qr_button.html:1 +msgid "Show QR Code" +msgstr "" + +#: build/templates/build/build_base.html:46 +#: company/templates/company/supplier_part.html:42 +#: order/templates/order/order_base.html:36 +#: order/templates/order/return_order_base.html:46 +#: order/templates/order/sales_order_base.html:46 +#: stock/templates/stock/item_base.html:48 +#: stock/templates/stock/location.html:58 +#: templates/js/translated/barcode.js:466 +#: templates/js/translated/barcode.js:471 +msgid "Unlink Barcode" +msgstr "" + +#: build/templates/build/build_base.html:48 +#: company/templates/company/supplier_part.html:44 +#: order/templates/order/order_base.html:38 +#: order/templates/order/return_order_base.html:48 +#: order/templates/order/sales_order_base.html:48 +#: part/templates/part/part_base.html:51 +#: stock/templates/stock/item_base.html:50 +#: stock/templates/stock/location.html:60 +msgid "Link Barcode" +msgstr "" + +#: build/templates/build/build_base.html:57 +#: order/templates/order/order_base.html:46 +#: order/templates/order/return_order_base.html:56 +#: order/templates/order/sales_order_base.html:56 +msgid "Print actions" +msgstr "" + +#: build/templates/build/build_base.html:61 msgid "Print build order report" msgstr "" -#: build/templates/build/build_base.html:50 +#: build/templates/build/build_base.html:68 msgid "Build actions" msgstr "" -#: build/templates/build/build_base.html:54 +#: build/templates/build/build_base.html:72 msgid "Edit Build" msgstr "" -#: build/templates/build/build_base.html:56 +#: build/templates/build/build_base.html:74 msgid "Cancel Build" msgstr "" -#: build/templates/build/build_base.html:59 +#: build/templates/build/build_base.html:77 msgid "Duplicate Build" msgstr "" -#: build/templates/build/build_base.html:62 +#: build/templates/build/build_base.html:80 msgid "Delete Build" msgstr "" -#: build/templates/build/build_base.html:67 -#: build/templates/build/build_base.html:68 +#: build/templates/build/build_base.html:85 +#: build/templates/build/build_base.html:86 msgid "Complete Build" msgstr "" -#: build/templates/build/build_base.html:90 +#: build/templates/build/build_base.html:108 msgid "Build Description" msgstr "" -#: build/templates/build/build_base.html:98 +#: build/templates/build/build_base.html:117 msgid "No build outputs have been created for this build order" msgstr "" -#: build/templates/build/build_base.html:104 -#, python-format -msgid "This Build Order is allocated to Sales Order %(link)s" -msgstr "" - -#: build/templates/build/build_base.html:111 +#: build/templates/build/build_base.html:123 #, python-format msgid "This Build Order is a child of Build Order %(link)s" msgstr "" -#: build/templates/build/build_base.html:118 +#: build/templates/build/build_base.html:130 msgid "Build Order is ready to mark as completed" msgstr "" -#: build/templates/build/build_base.html:123 +#: build/templates/build/build_base.html:135 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "" -#: build/templates/build/build_base.html:128 +#: build/templates/build/build_base.html:140 msgid "Required build quantity has not yet been completed" msgstr "" -#: build/templates/build/build_base.html:133 +#: build/templates/build/build_base.html:145 msgid "Stock has not been fully allocated to this Build Order" msgstr "" -#: build/templates/build/build_base.html:154 -#: build/templates/build/detail.html:138 order/models.py:205 -#: order/models.py:1033 order/templates/order/order_base.html:170 -#: order/templates/order/return_order_base.html:145 -#: order/templates/order/sales_order_base.html:164 +#: build/templates/build/build_base.html:166 +#: build/templates/build/detail.html:138 order/models.py:206 +#: order/models.py:1068 order/templates/order/order_base.html:189 +#: order/templates/order/return_order_base.html:166 +#: order/templates/order/sales_order_base.html:192 #: report/templates/report/inventree_build_order_base.html:125 #: templates/js/translated/build.js:2692 templates/js/translated/part.js:1465 -#: templates/js/translated/purchase_order.js:1569 -#: templates/js/translated/purchase_order.js:1985 +#: templates/js/translated/purchase_order.js:1636 +#: templates/js/translated/purchase_order.js:2052 #: templates/js/translated/return_order.js:293 -#: templates/js/translated/return_order.js:690 -#: templates/js/translated/sales_order.js:735 -#: templates/js/translated/sales_order.js:1731 +#: templates/js/translated/return_order.js:693 +#: templates/js/translated/sales_order.js:761 +#: templates/js/translated/sales_order.js:1759 msgid "Target Date" msgstr "" -#: build/templates/build/build_base.html:159 +#: build/templates/build/build_base.html:171 #, python-format msgid "This build was due on %(target)s" msgstr "" -#: build/templates/build/build_base.html:159 -#: build/templates/build/build_base.html:211 -#: order/templates/order/order_base.html:106 -#: order/templates/order/return_order_base.html:98 -#: order/templates/order/sales_order_base.html:94 +#: build/templates/build/build_base.html:171 +#: build/templates/build/build_base.html:228 +#: order/templates/order/order_base.html:125 +#: order/templates/order/return_order_base.html:119 +#: order/templates/order/sales_order_base.html:122 #: templates/js/translated/table_filters.js:34 #: templates/js/translated/table_filters.js:384 #: templates/js/translated/table_filters.js:444 @@ -1549,43 +1596,51 @@ msgstr "" msgid "Overdue" msgstr "" -#: build/templates/build/build_base.html:166 +#: build/templates/build/build_base.html:183 #: build/templates/build/detail.html:67 build/templates/build/detail.html:149 -#: order/templates/order/sales_order_base.html:174 +#: order/templates/order/sales_order_base.html:202 #: templates/js/translated/table_filters.js:487 msgid "Completed" msgstr "" -#: build/templates/build/build_base.html:179 -#: build/templates/build/detail.html:101 order/api.py:1516 order/models.py:1232 -#: order/models.py:1331 order/models.py:1465 +#: build/templates/build/build_base.html:196 +#: build/templates/build/detail.html:101 order/api.py:1422 order/models.py:1267 +#: order/models.py:1366 order/models.py:1500 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:135 #: report/templates/report/inventree_so_report_base.html:14 -#: stock/templates/stock/item_base.html:371 +#: stock/templates/stock/item_base.html:364 #: templates/email/overdue_sales_order.html:15 #: templates/js/translated/pricing.js:894 -#: templates/js/translated/sales_order.js:681 +#: templates/js/translated/sales_order.js:707 #: templates/js/translated/stock.js:2703 msgid "Sales Order" msgstr "" -#: build/templates/build/build_base.html:186 +#: build/templates/build/build_base.html:203 #: build/templates/build/detail.html:115 #: report/templates/report/inventree_build_order_base.html:152 msgid "Issued By" msgstr "" -#: build/templates/build/build_base.html:200 +#: build/templates/build/build_base.html:217 #: build/templates/build/detail.html:94 templates/js/translated/build.js:2609 msgid "Priority" msgstr "" -#: build/templates/build/build_base.html:263 +#: build/templates/build/build_base.html:280 msgid "Delete Build Order" msgstr "" +#: build/templates/build/build_base.html:290 +msgid "Build Order QR Code" +msgstr "" + +#: build/templates/build/build_base.html:302 +msgid "Link Barcode to Build Order" +msgstr "" + #: build/templates/build/detail.html:15 msgid "Build Details" msgstr "" @@ -1598,9 +1653,8 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/models.py:1150 -#: templates/js/translated/purchase_order.js:1201 -#: templates/js/translated/purchase_order.js:2027 +#: build/templates/build/detail.html:49 order/models.py:1185 +#: templates/js/translated/purchase_order.js:2094 msgid "Destination" msgstr "" @@ -1613,9 +1667,10 @@ msgid "Allocated Parts" msgstr "" #: build/templates/build/detail.html:80 stock/admin.py:105 -#: stock/templates/stock/item_base.html:168 +#: stock/templates/stock/item_base.html:163 #: templates/js/translated/build.js:1259 #: templates/js/translated/model_renderers.js:206 +#: templates/js/translated/purchase_order.js:1193 #: templates/js/translated/stock.js:1072 templates/js/translated/stock.js:1900 #: templates/js/translated/stock.js:2908 #: templates/js/translated/table_filters.js:211 @@ -1624,9 +1679,9 @@ msgid "Batch" msgstr "" #: build/templates/build/detail.html:133 -#: order/templates/order/order_base.html:157 -#: order/templates/order/return_order_base.html:132 -#: order/templates/order/sales_order_base.html:158 +#: order/templates/order/order_base.html:176 +#: order/templates/order/return_order_base.html:153 +#: order/templates/order/sales_order_base.html:186 #: templates/js/translated/build.js:2652 msgid "Created" msgstr "" @@ -1679,7 +1734,7 @@ msgstr "" #: company/templates/company/detail.html:38 #: company/templates/company/detail.html:86 #: part/templates/part/category.html:184 -#: templates/js/translated/purchase_order.js:737 +#: templates/js/translated/purchase_order.js:740 msgid "Order Parts" msgstr "" @@ -1779,23 +1834,24 @@ msgstr "" msgid "Completed Outputs" msgstr "" -#: common/files.py:62 -msgid "Unsupported file format: {ext.upper()}" +#: common/files.py:63 +#, python-brace-format +msgid "Unsupported file format: {fmt}" msgstr "" -#: common/files.py:64 +#: common/files.py:65 msgid "Error reading file (invalid encoding)" msgstr "" -#: common/files.py:69 +#: common/files.py:70 msgid "Error reading file (invalid format)" msgstr "" -#: common/files.py:71 +#: common/files.py:72 msgid "Error reading file (incorrect dimension)" msgstr "" -#: common/files.py:73 +#: common/files.py:74 msgid "Error reading file (data could be corrupted)" msgstr "" @@ -2680,7 +2736,7 @@ msgstr "" msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:1670 common/models.py:2049 +#: common/models.py:1670 common/models.py:2063 msgid "Settings key (must be unique - case insensitive" msgstr "" @@ -3001,89 +3057,105 @@ msgid "Number of results to show in each section of the search preview window" msgstr "" #: common/models.py:1983 -msgid "Show Quantity in Forms" +msgid "Regex Search" msgstr "" #: common/models.py:1984 -msgid "Display available part quantity in some forms" +msgid "Enable regular expressions in search queries" msgstr "" #: common/models.py:1990 -msgid "Escape Key Closes Forms" +msgid "Whole Word Search" msgstr "" #: common/models.py:1991 -msgid "Use the escape key to close modal forms" +msgid "Search queries return results for whole word matches" msgstr "" #: common/models.py:1997 -msgid "Fixed Navbar" +msgid "Show Quantity in Forms" msgstr "" #: common/models.py:1998 -msgid "The navbar position is fixed to the top of the screen" +msgid "Display available part quantity in some forms" msgstr "" #: common/models.py:2004 -msgid "Date Format" +msgid "Escape Key Closes Forms" msgstr "" #: common/models.py:2005 +msgid "Use the escape key to close modal forms" +msgstr "" + +#: common/models.py:2011 +msgid "Fixed Navbar" +msgstr "" + +#: common/models.py:2012 +msgid "The navbar position is fixed to the top of the screen" +msgstr "" + +#: common/models.py:2018 +msgid "Date Format" +msgstr "" + +#: common/models.py:2019 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2019 part/templates/part/detail.html:41 +#: common/models.py:2033 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2020 +#: common/models.py:2034 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2026 part/templates/part/detail.html:62 +#: common/models.py:2040 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2027 +#: common/models.py:2041 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2033 +#: common/models.py:2047 msgid "Table String Length" msgstr "" -#: common/models.py:2034 +#: common/models.py:2048 msgid "Maximimum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2089 +#: common/models.py:2103 msgid "Price break quantity" msgstr "" -#: common/models.py:2096 company/serializers.py:424 order/models.py:1060 -#: order/models.py:1852 templates/js/translated/company.js:1411 +#: common/models.py:2110 company/serializers.py:424 order/models.py:1095 +#: order/models.py:1888 templates/js/translated/company.js:1411 #: templates/js/translated/part.js:1520 templates/js/translated/pricing.js:603 -#: templates/js/translated/return_order.js:680 +#: templates/js/translated/return_order.js:683 msgid "Price" msgstr "" -#: common/models.py:2097 +#: common/models.py:2111 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2257 common/models.py:2435 +#: common/models.py:2271 common/models.py:2449 msgid "Endpoint" msgstr "" -#: common/models.py:2258 +#: common/models.py:2272 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2267 +#: common/models.py:2281 msgid "Name for this webhook" msgstr "" -#: common/models.py:2272 part/admin.py:50 part/models.py:1011 +#: common/models.py:2286 part/admin.py:50 part/models.py:1011 #: plugin/models.py:100 templates/js/translated/table_filters.js:62 #: templates/js/translated/table_filters.js:144 #: templates/js/translated/table_filters.js:380 @@ -3091,97 +3163,97 @@ msgstr "" msgid "Active" msgstr "" -#: common/models.py:2273 +#: common/models.py:2287 msgid "Is this webhook active" msgstr "" -#: common/models.py:2287 +#: common/models.py:2301 msgid "Token" msgstr "" -#: common/models.py:2288 +#: common/models.py:2302 msgid "Token for access" msgstr "" -#: common/models.py:2295 +#: common/models.py:2309 msgid "Secret" msgstr "" -#: common/models.py:2296 +#: common/models.py:2310 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2402 +#: common/models.py:2416 msgid "Message ID" msgstr "" -#: common/models.py:2403 +#: common/models.py:2417 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2411 +#: common/models.py:2425 msgid "Host" msgstr "" -#: common/models.py:2412 +#: common/models.py:2426 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2419 +#: common/models.py:2433 msgid "Header" msgstr "" -#: common/models.py:2420 +#: common/models.py:2434 msgid "Header of this message" msgstr "" -#: common/models.py:2426 +#: common/models.py:2440 msgid "Body" msgstr "" -#: common/models.py:2427 +#: common/models.py:2441 msgid "Body of this message" msgstr "" -#: common/models.py:2436 +#: common/models.py:2450 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2441 +#: common/models.py:2455 msgid "Worked on" msgstr "" -#: common/models.py:2442 +#: common/models.py:2456 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2596 +#: common/models.py:2610 msgid "Id" msgstr "" -#: common/models.py:2602 templates/js/translated/news.js:35 +#: common/models.py:2616 templates/js/translated/news.js:35 msgid "Title" msgstr "" -#: common/models.py:2612 templates/js/translated/news.js:51 +#: common/models.py:2626 templates/js/translated/news.js:51 msgid "Published" msgstr "" -#: common/models.py:2617 templates/InvenTree/settings/plugin.html:62 +#: common/models.py:2631 templates/InvenTree/settings/plugin.html:62 #: templates/InvenTree/settings/plugin_settings.html:33 #: templates/js/translated/news.js:47 msgid "Author" msgstr "" -#: common/models.py:2622 templates/js/translated/news.js:43 +#: common/models.py:2636 templates/js/translated/news.js:43 msgid "Summary" msgstr "" -#: common/models.py:2627 +#: common/models.py:2641 msgid "Read" msgstr "" -#: common/models.py:2628 +#: common/models.py:2642 msgid "Was this news item read?" msgstr "" @@ -3293,9 +3365,9 @@ msgid "Contact email address" msgstr "" #: company/models.py:126 company/templates/company/company_base.html:140 -#: order/models.py:231 order/templates/order/order_base.html:187 -#: order/templates/order/return_order_base.html:155 -#: order/templates/order/sales_order_base.html:186 +#: order/models.py:232 order/templates/order/order_base.html:206 +#: order/templates/order/return_order_base.html:176 +#: order/templates/order/sales_order_base.html:214 msgid "Contact" msgstr "" @@ -3349,7 +3421,7 @@ msgstr "" msgid "Company" msgstr "" -#: company/models.py:277 company/models.py:512 stock/models.py:667 +#: company/models.py:277 company/models.py:512 stock/models.py:668 #: stock/serializers.py:143 stock/templates/stock/item_base.html:143 #: templates/js/translated/bom.js:591 msgid "Base Part" @@ -3361,8 +3433,8 @@ msgstr "" #: company/models.py:292 company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:152 part/serializers.py:359 -#: stock/templates/stock/item_base.html:213 +#: company/templates/company/supplier_part.html:146 part/serializers.py:359 +#: stock/templates/stock/item_base.html:208 #: templates/js/translated/company.js:484 #: templates/js/translated/company.js:809 #: templates/js/translated/company.js:939 @@ -3376,13 +3448,13 @@ msgid "Select manufacturer" msgstr "" #: company/models.py:299 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:160 part/serializers.py:365 +#: company/templates/company/supplier_part.html:154 part/serializers.py:365 #: templates/js/translated/company.js:325 #: templates/js/translated/company.js:808 #: templates/js/translated/company.js:955 #: templates/js/translated/company.js:1225 templates/js/translated/part.js:1435 -#: templates/js/translated/purchase_order.js:1684 -#: templates/js/translated/purchase_order.js:1891 +#: templates/js/translated/purchase_order.js:1751 +#: templates/js/translated/purchase_order.js:1958 msgid "MPN" msgstr "" @@ -3401,7 +3473,7 @@ msgstr "" #: company/models.py:357 company/models.py:381 company/models.py:535 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 -#: stock/templates/stock/item_base.html:223 +#: stock/templates/stock/item_base.html:218 msgid "Manufacturer Part" msgstr "" @@ -3411,7 +3483,7 @@ msgstr "" #: company/models.py:394 #: report/templates/report/inventree_test_report_base.html:104 -#: stock/models.py:2195 templates/js/translated/company.js:857 +#: stock/models.py:2222 templates/js/translated/company.js:857 #: templates/js/translated/company.js:1062 templates/js/translated/part.js:1268 #: templates/js/translated/stock.js:1425 msgid "Value" @@ -3422,7 +3494,7 @@ msgid "Parameter value" msgstr "" #: company/models.py:401 part/admin.py:40 part/models.py:978 -#: part/models.py:3337 part/templates/part/part_base.html:287 +#: part/models.py:3337 part/templates/part/part_base.html:286 #: templates/InvenTree/settings/settings_staff_js.html:255 #: templates/js/translated/company.js:1068 templates/js/translated/part.js:1274 msgid "Units" @@ -3437,15 +3509,15 @@ msgid "Linked manufacturer part must reference the same base part" msgstr "" #: company/models.py:522 company/templates/company/company_base.html:82 -#: company/templates/company/supplier_part.html:136 order/models.py:349 -#: order/templates/order/order_base.html:120 part/bom.py:285 part/bom.py:313 -#: part/serializers.py:348 stock/templates/stock/item_base.html:230 +#: company/templates/company/supplier_part.html:130 order/models.py:350 +#: order/templates/order/order_base.html:139 part/bom.py:285 part/bom.py:313 +#: part/serializers.py:348 stock/templates/stock/item_base.html:225 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:324 #: templates/js/translated/company.js:488 #: templates/js/translated/company.js:1179 templates/js/translated/part.js:1403 #: templates/js/translated/pricing.js:480 -#: templates/js/translated/purchase_order.js:1535 +#: templates/js/translated/purchase_order.js:1602 #: templates/js/translated/table_filters.js:510 msgid "Supplier" msgstr "" @@ -3454,12 +3526,12 @@ msgstr "" msgid "Select supplier" msgstr "" -#: company/models.py:528 company/templates/company/supplier_part.html:146 +#: company/models.py:528 company/templates/company/supplier_part.html:140 #: part/bom.py:286 part/bom.py:314 part/serializers.py:354 #: templates/js/translated/company.js:323 templates/js/translated/part.js:1421 #: templates/js/translated/pricing.js:492 -#: templates/js/translated/purchase_order.js:1683 -#: templates/js/translated/purchase_order.js:1866 +#: templates/js/translated/purchase_order.js:1750 +#: templates/js/translated/purchase_order.js:1933 msgid "SKU" msgstr "" @@ -3479,7 +3551,7 @@ msgstr "" msgid "Supplier part description" msgstr "" -#: company/models.py:553 company/templates/company/supplier_part.html:181 +#: company/models.py:553 company/templates/company/supplier_part.html:175 #: part/admin.py:279 part/models.py:3605 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_po_report_base.html:32 @@ -3497,9 +3569,9 @@ msgstr "" msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:559 company/templates/company/supplier_part.html:167 -#: stock/admin.py:119 stock/models.py:693 -#: stock/templates/stock/item_base.html:246 +#: company/models.py:559 company/templates/company/supplier_part.html:161 +#: stock/admin.py:119 stock/models.py:694 +#: stock/templates/stock/item_base.html:241 #: templates/js/translated/company.js:1241 #: templates/js/translated/stock.js:2130 msgid "Packaging" @@ -3510,14 +3582,14 @@ msgid "Part packaging" msgstr "" #: company/models.py:562 company/serializers.py:319 -#: company/templates/company/supplier_part.html:174 +#: company/templates/company/supplier_part.html:168 #: templates/js/translated/company.js:1246 templates/js/translated/part.js:1456 #: templates/js/translated/part.js:1512 #: templates/js/translated/purchase_order.js:250 -#: templates/js/translated/purchase_order.js:775 -#: templates/js/translated/purchase_order.js:1032 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:1939 +#: templates/js/translated/purchase_order.js:778 +#: templates/js/translated/purchase_order.js:1022 +#: templates/js/translated/purchase_order.js:1989 +#: templates/js/translated/purchase_order.js:2006 msgid "Pack Quantity" msgstr "" @@ -3603,15 +3675,15 @@ msgstr "" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:87 order/models.py:736 -#: order/models.py:1652 order/templates/order/return_order_base.html:112 -#: order/templates/order/sales_order_base.html:116 stock/models.py:712 -#: stock/models.py:713 stock/serializers.py:796 -#: stock/templates/stock/item_base.html:402 +#: company/templates/company/company_base.html:87 order/models.py:748 +#: order/models.py:1687 order/templates/order/return_order_base.html:133 +#: order/templates/order/sales_order_base.html:144 stock/models.py:713 +#: stock/models.py:714 stock/serializers.py:796 +#: stock/templates/stock/item_base.html:395 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:480 #: templates/js/translated/return_order.js:254 -#: templates/js/translated/sales_order.js:696 +#: templates/js/translated/sales_order.js:722 #: templates/js/translated/stock.js:2738 #: templates/js/translated/table_filters.js:514 msgid "Customer" @@ -3626,7 +3698,7 @@ msgid "Phone" msgstr "" #: company/templates/company/company_base.html:206 -#: part/templates/part/part_base.html:536 +#: part/templates/part/part_base.html:529 msgid "Remove Image" msgstr "" @@ -3635,25 +3707,25 @@ msgid "Remove associated image from this company" msgstr "" #: company/templates/company/company_base.html:209 -#: part/templates/part/part_base.html:539 +#: part/templates/part/part_base.html:532 #: templates/InvenTree/settings/user.html:87 #: templates/InvenTree/settings/user.html:149 msgid "Remove" msgstr "" #: company/templates/company/company_base.html:238 -#: part/templates/part/part_base.html:568 +#: part/templates/part/part_base.html:561 msgid "Upload Image" msgstr "" #: company/templates/company/company_base.html:253 -#: part/templates/part/part_base.html:623 +#: part/templates/part/part_base.html:616 msgid "Download Image" msgstr "" #: company/templates/company/detail.html:15 #: company/templates/company/manufacturer_part_sidebar.html:7 -#: templates/InvenTree/search.html:120 templates/js/translated/search.js:175 +#: templates/InvenTree/search.html:120 templates/js/translated/search.js:177 msgid "Supplier Parts" msgstr "" @@ -3684,7 +3756,7 @@ msgid "Delete Parts" msgstr "" #: company/templates/company/detail.html:62 templates/InvenTree/search.html:105 -#: templates/js/translated/search.js:179 +#: templates/js/translated/search.js:181 msgid "Manufacturer Parts" msgstr "" @@ -3709,7 +3781,7 @@ msgstr "" #: part/templates/part/detail.html:108 part/templates/part/part_sidebar.html:35 #: templates/InvenTree/index.html:252 templates/InvenTree/search.html:200 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/search.js:233 templates/navbar.html:50 +#: templates/js/translated/search.js:235 templates/navbar.html:50 #: users/models.py:43 msgid "Purchase Orders" msgstr "" @@ -3732,7 +3804,7 @@ msgstr "" #: part/templates/part/detail.html:131 part/templates/part/part_sidebar.html:39 #: templates/InvenTree/index.html:283 templates/InvenTree/search.html:220 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/search.js:247 templates/navbar.html:62 +#: templates/js/translated/search.js:249 templates/navbar.html:62 #: users/models.py:44 msgid "Sales Orders" msgstr "" @@ -3758,7 +3830,7 @@ msgstr "" #: order/templates/order/return_orders.html:8 #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:55 -#: templates/js/translated/search.js:260 templates/navbar.html:65 +#: templates/js/translated/search.js:262 templates/navbar.html:65 #: users/models.py:45 msgid "Return Orders" msgstr "" @@ -3792,7 +3864,7 @@ msgid "Manufacturers" msgstr "" #: company/templates/company/manufacturer_part.html:35 -#: company/templates/company/supplier_part.html:221 +#: company/templates/company/supplier_part.html:215 #: part/templates/part/detail.html:111 part/templates/part/part_base.html:85 msgid "Order part" msgstr "" @@ -3832,8 +3904,8 @@ msgstr "" #: company/templates/company/manufacturer_part.html:183 #: part/templates/part/detail.html:393 part/templates/part/detail.html:423 #: templates/js/translated/forms.js:499 templates/js/translated/helpers.js:58 -#: templates/js/translated/part.js:313 templates/js/translated/stock.js:186 -#: users/models.py:243 +#: templates/js/translated/part.js:313 templates/js/translated/pricing.js:611 +#: templates/js/translated/stock.js:186 users/models.py:243 msgid "Delete" msgstr "" @@ -3881,50 +3953,21 @@ msgid "Contacts" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:676 -#: stock/templates/stock/item_base.html:239 +#: company/templates/company/supplier_part.html:24 stock/models.py:677 +#: stock/templates/stock/item_base.html:234 #: templates/js/translated/company.js:1195 -#: templates/js/translated/purchase_order.js:695 +#: templates/js/translated/purchase_order.js:698 #: templates/js/translated/stock.js:1990 msgid "Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:36 -#: part/templates/part/part_base.html:43 -#: stock/templates/stock/item_base.html:41 -#: stock/templates/stock/location.html:54 -msgid "Barcode actions" -msgstr "" - -#: company/templates/company/supplier_part.html:40 -#: part/templates/part/part_base.html:46 -#: stock/templates/stock/item_base.html:45 -#: stock/templates/stock/location.html:56 templates/qr_button.html:1 -msgid "Show QR Code" -msgstr "" - -#: company/templates/company/supplier_part.html:42 -#: stock/templates/stock/item_base.html:48 -#: stock/templates/stock/location.html:58 -#: templates/js/translated/barcode.js:453 -#: templates/js/translated/barcode.js:458 -msgid "Unlink Barcode" -msgstr "" - -#: company/templates/company/supplier_part.html:44 -#: part/templates/part/part_base.html:51 -#: stock/templates/stock/item_base.html:50 -#: stock/templates/stock/location.html:60 -msgid "Link Barcode" -msgstr "" - #: company/templates/company/supplier_part.html:51 msgid "Supplier part actions" msgstr "" #: company/templates/company/supplier_part.html:56 #: company/templates/company/supplier_part.html:57 -#: company/templates/company/supplier_part.html:222 +#: company/templates/company/supplier_part.html:216 #: part/templates/part/detail.html:112 msgid "Order Part" msgstr "" @@ -3954,67 +3997,60 @@ msgstr "" msgid "Delete Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:122 -#: part/templates/part/part_base.html:308 -#: stock/templates/stock/item_base.html:161 -#: stock/templates/stock/location.html:156 -msgid "Barcode Identifier" -msgstr "" - -#: company/templates/company/supplier_part.html:140 +#: company/templates/company/supplier_part.html:134 msgid "No supplier information available" msgstr "" -#: company/templates/company/supplier_part.html:200 +#: company/templates/company/supplier_part.html:194 msgid "Supplier Part Stock" msgstr "" -#: company/templates/company/supplier_part.html:203 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:203 +#: company/templates/company/supplier_part.html:197 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:197 msgid "Create new stock item" msgstr "" -#: company/templates/company/supplier_part.html:204 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:204 +#: company/templates/company/supplier_part.html:198 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:198 #: templates/js/translated/stock.js:471 msgid "New Stock Item" msgstr "" -#: company/templates/company/supplier_part.html:217 +#: company/templates/company/supplier_part.html:211 msgid "Supplier Part Orders" msgstr "" -#: company/templates/company/supplier_part.html:242 +#: company/templates/company/supplier_part.html:236 msgid "Pricing Information" msgstr "" -#: company/templates/company/supplier_part.html:247 +#: company/templates/company/supplier_part.html:241 #: templates/js/translated/company.js:373 #: templates/js/translated/pricing.js:666 msgid "Add Price Break" msgstr "" -#: company/templates/company/supplier_part.html:274 +#: company/templates/company/supplier_part.html:268 msgid "Supplier Part QR Code" msgstr "" -#: company/templates/company/supplier_part.html:285 +#: company/templates/company/supplier_part.html:279 msgid "Link Barcode to Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:360 +#: company/templates/company/supplier_part.html:354 msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 part/tasks.py:288 #: part/templates/part/category.html:199 #: part/templates/part/category_sidebar.html:17 stock/admin.py:47 -#: stock/templates/stock/location.html:174 -#: stock/templates/stock/location.html:188 -#: stock/templates/stock/location.html:200 +#: stock/templates/stock/location.html:168 +#: stock/templates/stock/location.html:182 +#: stock/templates/stock/location.html:194 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:977 -#: templates/js/translated/search.js:200 templates/js/translated/stock.js:2569 +#: templates/js/translated/search.js:202 templates/js/translated/stock.js:2569 #: users/models.py:41 msgid "Stock Items" msgstr "" @@ -4040,7 +4076,7 @@ msgstr "" msgid "New Customer" msgstr "" -#: company/views.py:52 templates/js/translated/search.js:220 +#: company/views.py:52 templates/js/translated/search.js:222 msgid "Companies" msgstr "" @@ -4114,365 +4150,365 @@ msgstr "" msgid "Part query filters (comma-separated value of key=value pairs)" msgstr "" -#: order/api.py:229 +#: order/api.py:225 msgid "No matching purchase order found" msgstr "" -#: order/api.py:1514 order/models.py:1106 order/models.py:1190 +#: order/api.py:1420 order/models.py:1141 order/models.py:1225 #: order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report_base.html:14 -#: stock/templates/stock/item_base.html:182 +#: stock/templates/stock/item_base.html:177 #: templates/email/overdue_purchase_order.html:15 #: templates/js/translated/part.js:1380 templates/js/translated/pricing.js:772 #: templates/js/translated/purchase_order.js:108 -#: templates/js/translated/purchase_order.js:696 -#: templates/js/translated/purchase_order.js:1519 +#: templates/js/translated/purchase_order.js:699 +#: templates/js/translated/purchase_order.js:1586 #: templates/js/translated/stock.js:1970 templates/js/translated/stock.js:2685 msgid "Purchase Order" msgstr "" -#: order/api.py:1518 +#: order/api.py:1424 msgid "Unknown" msgstr "" -#: order/models.py:66 report/templates/report/inventree_po_report_base.html:31 +#: order/models.py:67 report/templates/report/inventree_po_report_base.html:31 #: report/templates/report/inventree_so_report_base.html:31 -#: templates/js/translated/order.js:299 -#: templates/js/translated/purchase_order.js:1963 -#: templates/js/translated/sales_order.js:1711 +#: templates/js/translated/order.js:302 +#: templates/js/translated/purchase_order.js:2030 +#: templates/js/translated/sales_order.js:1739 msgid "Total Price" msgstr "" -#: order/models.py:67 +#: order/models.py:68 msgid "Total price for this order" msgstr "" -#: order/models.py:177 +#: order/models.py:178 msgid "Contact does not match selected company" msgstr "" -#: order/models.py:199 -msgid "Order description" +#: order/models.py:200 +msgid "Order description (optional)" msgstr "" -#: order/models.py:201 order/models.py:1378 order/models.py:1856 +#: order/models.py:202 order/models.py:1063 order/models.py:1413 msgid "Link to external page" msgstr "" -#: order/models.py:206 +#: order/models.py:207 msgid "Expected date for order delivery. Order will be overdue after this date." msgstr "" -#: order/models.py:215 +#: order/models.py:216 msgid "Created By" msgstr "" -#: order/models.py:222 +#: order/models.py:223 msgid "User or group responsible for this order" msgstr "" -#: order/models.py:232 +#: order/models.py:233 msgid "Point of contact for this order" msgstr "" -#: order/models.py:236 +#: order/models.py:237 msgid "Order notes" msgstr "" -#: order/models.py:327 order/models.py:723 +#: order/models.py:328 order/models.py:735 msgid "Order reference" msgstr "" -#: order/models.py:335 order/models.py:748 +#: order/models.py:336 order/models.py:760 msgid "Purchase order status" msgstr "" -#: order/models.py:350 +#: order/models.py:351 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:358 order/templates/order/order_base.html:132 -#: templates/js/translated/purchase_order.js:1544 +#: order/models.py:359 order/templates/order/order_base.html:151 +#: templates/js/translated/purchase_order.js:1611 msgid "Supplier Reference" msgstr "" -#: order/models.py:358 +#: order/models.py:359 msgid "Supplier order reference code" msgstr "" -#: order/models.py:365 +#: order/models.py:366 msgid "received by" msgstr "" -#: order/models.py:370 order/models.py:1675 +#: order/models.py:371 order/models.py:1710 msgid "Issue Date" msgstr "" -#: order/models.py:371 order/models.py:1676 +#: order/models.py:372 order/models.py:1711 msgid "Date order was issued" msgstr "" -#: order/models.py:377 order/models.py:1682 +#: order/models.py:378 order/models.py:1717 msgid "Date order was completed" msgstr "" -#: order/models.py:412 +#: order/models.py:413 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:560 +#: order/models.py:566 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:737 +#: order/models.py:749 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:756 order/models.py:1669 +#: order/models.py:768 order/models.py:1704 msgid "Customer Reference " msgstr "" -#: order/models.py:756 order/models.py:1670 +#: order/models.py:768 order/models.py:1705 msgid "Customer order reference code" msgstr "" -#: order/models.py:758 order/models.py:1336 -#: templates/js/translated/sales_order.js:743 -#: templates/js/translated/sales_order.js:906 +#: order/models.py:770 order/models.py:1371 +#: templates/js/translated/sales_order.js:769 +#: templates/js/translated/sales_order.js:932 msgid "Shipment Date" msgstr "" -#: order/models.py:765 +#: order/models.py:777 msgid "shipped by" msgstr "" -#: order/models.py:809 +#: order/models.py:826 msgid "Order cannot be completed as no parts have been assigned" msgstr "" -#: order/models.py:813 -msgid "Only a pending order can be marked as complete" +#: order/models.py:830 +msgid "Only an open order can be marked as complete" msgstr "" -#: order/models.py:816 templates/js/translated/sales_order.js:437 +#: order/models.py:833 templates/js/translated/sales_order.js:441 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:819 +#: order/models.py:836 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1014 +#: order/models.py:1043 msgid "Item quantity" msgstr "" -#: order/models.py:1027 +#: order/models.py:1056 msgid "Line item reference" msgstr "" -#: order/models.py:1029 +#: order/models.py:1058 msgid "Line item notes" msgstr "" -#: order/models.py:1034 +#: order/models.py:1069 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1051 +#: order/models.py:1086 msgid "Context" msgstr "" -#: order/models.py:1052 +#: order/models.py:1087 msgid "Additional context for this line" msgstr "" -#: order/models.py:1061 +#: order/models.py:1096 msgid "Unit price" msgstr "" -#: order/models.py:1091 +#: order/models.py:1126 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1099 +#: order/models.py:1134 msgid "deleted" msgstr "" -#: order/models.py:1105 order/models.py:1190 order/models.py:1231 -#: order/models.py:1330 order/models.py:1465 order/models.py:1821 -#: order/models.py:1870 templates/js/translated/sales_order.js:1357 +#: order/models.py:1140 order/models.py:1225 order/models.py:1266 +#: order/models.py:1365 order/models.py:1500 order/models.py:1857 +#: order/models.py:1904 templates/js/translated/sales_order.js:1383 msgid "Order" msgstr "" -#: order/models.py:1124 +#: order/models.py:1159 msgid "Supplier part" msgstr "" -#: order/models.py:1131 order/templates/order/order_base.html:180 +#: order/models.py:1166 order/templates/order/order_base.html:199 #: templates/js/translated/part.js:1504 templates/js/translated/part.js:1536 -#: templates/js/translated/purchase_order.js:1198 -#: templates/js/translated/purchase_order.js:2007 -#: templates/js/translated/return_order.js:703 +#: templates/js/translated/purchase_order.js:1225 +#: templates/js/translated/purchase_order.js:2074 +#: templates/js/translated/return_order.js:706 #: templates/js/translated/table_filters.js:48 #: templates/js/translated/table_filters.js:421 msgid "Received" msgstr "" -#: order/models.py:1132 +#: order/models.py:1167 msgid "Number of items received" msgstr "" -#: order/models.py:1139 stock/models.py:809 stock/serializers.py:229 -#: stock/templates/stock/item_base.html:189 +#: order/models.py:1174 stock/models.py:810 stock/serializers.py:229 +#: stock/templates/stock/item_base.html:184 #: templates/js/translated/stock.js:2021 msgid "Purchase Price" msgstr "" -#: order/models.py:1140 +#: order/models.py:1175 msgid "Unit purchase price" msgstr "" -#: order/models.py:1153 +#: order/models.py:1188 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1219 +#: order/models.py:1254 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1224 +#: order/models.py:1259 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1250 part/templates/part/part_pricing.html:107 +#: order/models.py:1285 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:128 templates/js/translated/pricing.js:922 msgid "Sale Price" msgstr "" -#: order/models.py:1251 +#: order/models.py:1286 msgid "Unit sale price" msgstr "" -#: order/models.py:1261 +#: order/models.py:1296 msgid "Shipped quantity" msgstr "" -#: order/models.py:1337 +#: order/models.py:1372 msgid "Date of shipment" msgstr "" -#: order/models.py:1344 +#: order/models.py:1379 msgid "Checked By" msgstr "" -#: order/models.py:1345 +#: order/models.py:1380 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1352 order/models.py:1541 order/serializers.py:1202 -#: order/serializers.py:1330 templates/js/translated/model_renderers.js:403 +#: order/models.py:1387 order/models.py:1576 order/serializers.py:1224 +#: order/serializers.py:1352 templates/js/translated/model_renderers.js:409 msgid "Shipment" msgstr "" -#: order/models.py:1353 +#: order/models.py:1388 msgid "Shipment number" msgstr "" -#: order/models.py:1357 +#: order/models.py:1392 msgid "Shipment notes" msgstr "" -#: order/models.py:1363 +#: order/models.py:1398 msgid "Tracking Number" msgstr "" -#: order/models.py:1364 +#: order/models.py:1399 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1371 +#: order/models.py:1406 msgid "Invoice Number" msgstr "" -#: order/models.py:1372 +#: order/models.py:1407 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1390 +#: order/models.py:1425 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1393 +#: order/models.py:1428 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1500 order/models.py:1502 +#: order/models.py:1535 order/models.py:1537 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1506 +#: order/models.py:1541 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1508 +#: order/models.py:1543 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1511 +#: order/models.py:1546 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1521 order/serializers.py:1064 +#: order/models.py:1556 order/serializers.py:1086 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1524 +#: order/models.py:1559 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1525 +#: order/models.py:1560 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1533 +#: order/models.py:1568 msgid "Line" msgstr "" -#: order/models.py:1542 +#: order/models.py:1577 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1555 order/models.py:1829 -#: templates/js/translated/return_order.js:661 +#: order/models.py:1590 order/models.py:1865 +#: templates/js/translated/return_order.js:664 msgid "Item" msgstr "" -#: order/models.py:1556 +#: order/models.py:1591 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1559 +#: order/models.py:1594 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:1639 +#: order/models.py:1674 msgid "Return Order reference" msgstr "" -#: order/models.py:1653 +#: order/models.py:1688 msgid "Company from which items are being returned" msgstr "" -#: order/models.py:1664 +#: order/models.py:1699 msgid "Return order status" msgstr "" -#: order/models.py:1814 +#: order/models.py:1850 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:1822 order/models.py:1870 +#: order/models.py:1858 order/models.py:1904 #: order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:13 @@ -4481,164 +4517,168 @@ msgstr "" msgid "Return Order" msgstr "" -#: order/models.py:1830 +#: order/models.py:1866 msgid "Select item to return from customer" msgstr "" -#: order/models.py:1835 +#: order/models.py:1871 msgid "Received Date" msgstr "" -#: order/models.py:1836 +#: order/models.py:1872 msgid "The date this this return item was received" msgstr "" -#: order/models.py:1847 templates/js/translated/return_order.js:672 +#: order/models.py:1883 templates/js/translated/return_order.js:675 #: templates/js/translated/table_filters.js:51 msgid "Outcome" msgstr "" -#: order/models.py:1847 +#: order/models.py:1883 msgid "Outcome for this line item" msgstr "" -#: order/models.py:1853 +#: order/models.py:1889 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/serializers.py:223 +#: order/serializers.py:228 msgid "Order cannot be cancelled" msgstr "" -#: order/serializers.py:238 order/serializers.py:1082 +#: order/serializers.py:243 order/serializers.py:1104 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:249 order/serializers.py:1093 +#: order/serializers.py:254 order/serializers.py:1115 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:361 +#: order/serializers.py:367 msgid "Order is not open" msgstr "" -#: order/serializers.py:379 +#: order/serializers.py:385 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:397 +#: order/serializers.py:403 msgid "Supplier part must be specified" msgstr "" -#: order/serializers.py:402 +#: order/serializers.py:408 msgid "Purchase order must be specified" msgstr "" -#: order/serializers.py:408 +#: order/serializers.py:414 msgid "Supplier must match purchase order" msgstr "" -#: order/serializers.py:409 +#: order/serializers.py:415 msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:447 order/serializers.py:1170 +#: order/serializers.py:453 order/serializers.py:1192 msgid "Line Item" msgstr "" -#: order/serializers.py:453 +#: order/serializers.py:459 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:463 order/serializers.py:582 order/serializers.py:1541 +#: order/serializers.py:469 order/serializers.py:590 order/serializers.py:1563 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:482 templates/js/translated/purchase_order.js:1059 +#: order/serializers.py:488 templates/js/translated/purchase_order.js:1049 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:490 templates/js/translated/purchase_order.js:1070 +#: order/serializers.py:496 templates/js/translated/purchase_order.js:1073 msgid "Enter serial numbers for incoming stock items" msgstr "" -#: order/serializers.py:504 -msgid "Unique identifier field" +#: order/serializers.py:509 templates/js/translated/barcode.js:41 +msgid "Barcode" msgstr "" -#: order/serializers.py:518 +#: order/serializers.py:510 +msgid "Scanned barcode" +msgstr "" + +#: order/serializers.py:526 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:544 +#: order/serializers.py:552 msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:598 order/serializers.py:1556 +#: order/serializers.py:606 order/serializers.py:1578 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:615 +#: order/serializers.py:623 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:626 +#: order/serializers.py:634 msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:907 +#: order/serializers.py:929 msgid "Sale price currency" msgstr "" -#: order/serializers.py:962 +#: order/serializers.py:984 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1025 order/serializers.py:1179 +#: order/serializers.py:1047 order/serializers.py:1201 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1047 +#: order/serializers.py:1069 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1192 +#: order/serializers.py:1214 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1214 order/serializers.py:1338 +#: order/serializers.py:1236 order/serializers.py:1360 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1217 order/serializers.py:1341 +#: order/serializers.py:1239 order/serializers.py:1363 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1271 +#: order/serializers.py:1293 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1281 +#: order/serializers.py:1303 msgid "The following serial numbers are already allocated" msgstr "" -#: order/serializers.py:1507 +#: order/serializers.py:1529 msgid "Return order line item" msgstr "" -#: order/serializers.py:1514 +#: order/serializers.py:1536 msgid "Line item does not match return order" msgstr "" -#: order/serializers.py:1517 +#: order/serializers.py:1539 msgid "Line item has already been received" msgstr "" -#: order/serializers.py:1549 +#: order/serializers.py:1571 msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1629 +#: order/serializers.py:1652 msgid "Line price currency" msgstr "" @@ -4660,113 +4700,123 @@ msgstr "" msgid "Sales order {so} is now overdue" msgstr "" -#: order/templates/order/order_base.html:33 +#: order/templates/order/order_base.html:51 msgid "Print purchase order report" msgstr "" -#: order/templates/order/order_base.html:35 -#: order/templates/order/return_order_base.html:45 -#: order/templates/order/sales_order_base.html:45 +#: order/templates/order/order_base.html:53 +#: order/templates/order/return_order_base.html:63 +#: order/templates/order/sales_order_base.html:63 msgid "Export order to file" msgstr "" -#: order/templates/order/order_base.html:41 -#: order/templates/order/return_order_base.html:55 -#: order/templates/order/sales_order_base.html:54 +#: order/templates/order/order_base.html:59 +#: order/templates/order/return_order_base.html:73 +#: order/templates/order/sales_order_base.html:72 msgid "Order actions" msgstr "" -#: order/templates/order/order_base.html:46 -#: order/templates/order/return_order_base.html:59 -#: order/templates/order/sales_order_base.html:58 +#: order/templates/order/order_base.html:64 +#: order/templates/order/return_order_base.html:77 +#: order/templates/order/sales_order_base.html:76 msgid "Edit order" msgstr "" -#: order/templates/order/order_base.html:50 -#: order/templates/order/return_order_base.html:61 -#: order/templates/order/sales_order_base.html:61 +#: order/templates/order/order_base.html:68 +#: order/templates/order/return_order_base.html:79 +#: order/templates/order/sales_order_base.html:78 msgid "Cancel order" msgstr "" -#: order/templates/order/order_base.html:55 +#: order/templates/order/order_base.html:73 msgid "Duplicate order" msgstr "" -#: order/templates/order/order_base.html:61 -#: order/templates/order/order_base.html:62 -#: order/templates/order/return_order_base.html:65 -#: order/templates/order/return_order_base.html:66 -msgid "Submit Order" +#: order/templates/order/order_base.html:79 +#: order/templates/order/order_base.html:80 +#: order/templates/order/return_order_base.html:83 +#: order/templates/order/return_order_base.html:84 +#: order/templates/order/sales_order_base.html:84 +#: order/templates/order/sales_order_base.html:85 +msgid "Issue Order" msgstr "" -#: order/templates/order/order_base.html:65 +#: order/templates/order/order_base.html:83 msgid "Receive items" msgstr "" -#: order/templates/order/order_base.html:67 +#: order/templates/order/order_base.html:85 msgid "Receive Items" msgstr "" -#: order/templates/order/order_base.html:69 -#: order/templates/order/return_order_base.html:69 +#: order/templates/order/order_base.html:87 +#: order/templates/order/return_order_base.html:87 msgid "Mark order as complete" msgstr "" -#: order/templates/order/order_base.html:70 -#: order/templates/order/return_order_base.html:70 -#: order/templates/order/sales_order_base.html:68 +#: order/templates/order/order_base.html:88 +#: order/templates/order/return_order_base.html:88 +#: order/templates/order/sales_order_base.html:94 msgid "Complete Order" msgstr "" -#: order/templates/order/order_base.html:92 -#: order/templates/order/return_order_base.html:84 -#: order/templates/order/sales_order_base.html:80 +#: order/templates/order/order_base.html:110 +#: order/templates/order/return_order_base.html:102 +#: order/templates/order/sales_order_base.html:107 msgid "Order Reference" msgstr "" -#: order/templates/order/order_base.html:97 -#: order/templates/order/return_order_base.html:89 -#: order/templates/order/sales_order_base.html:85 +#: order/templates/order/order_base.html:115 +#: order/templates/order/return_order_base.html:107 +#: order/templates/order/sales_order_base.html:112 msgid "Order Description" msgstr "" -#: order/templates/order/order_base.html:102 -#: order/templates/order/return_order_base.html:94 -#: order/templates/order/sales_order_base.html:90 +#: order/templates/order/order_base.html:121 +#: order/templates/order/return_order_base.html:115 +#: order/templates/order/sales_order_base.html:118 msgid "Order Status" msgstr "" -#: order/templates/order/order_base.html:125 +#: order/templates/order/order_base.html:144 msgid "No suppplier information available" msgstr "" -#: order/templates/order/order_base.html:138 -#: order/templates/order/sales_order_base.html:129 +#: order/templates/order/order_base.html:157 +#: order/templates/order/sales_order_base.html:157 msgid "Completed Line Items" msgstr "" -#: order/templates/order/order_base.html:144 -#: order/templates/order/sales_order_base.html:135 -#: order/templates/order/sales_order_base.html:145 +#: order/templates/order/order_base.html:163 +#: order/templates/order/sales_order_base.html:163 +#: order/templates/order/sales_order_base.html:173 msgid "Incomplete" msgstr "" -#: order/templates/order/order_base.html:163 -#: order/templates/order/return_order_base.html:138 +#: order/templates/order/order_base.html:182 +#: order/templates/order/return_order_base.html:159 #: report/templates/report/inventree_build_order_base.html:121 msgid "Issued" msgstr "" -#: order/templates/order/order_base.html:201 +#: order/templates/order/order_base.html:220 msgid "Total cost" msgstr "" -#: order/templates/order/order_base.html:205 -#: order/templates/order/return_order_base.html:173 -#: order/templates/order/sales_order_base.html:204 +#: order/templates/order/order_base.html:224 +#: order/templates/order/return_order_base.html:194 +#: order/templates/order/sales_order_base.html:232 msgid "Total cost could not be calculated" msgstr "" +#: order/templates/order/order_base.html:330 +msgid "Purchase Order QR Code" +msgstr "" + +#: order/templates/order/order_base.html:342 +msgid "Link Barcode to Purchase Order" +msgstr "" + #: order/templates/order/order_wizard/match_fields.html:9 #: part/templates/part/import_wizard/ajax_match_fields.html:9 #: part/templates/part/import_wizard/match_fields.html:9 @@ -4818,10 +4868,10 @@ msgstr "" #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:102 templates/js/translated/build.js:485 #: templates/js/translated/build.js:646 templates/js/translated/build.js:2097 -#: templates/js/translated/purchase_order.js:640 -#: templates/js/translated/purchase_order.js:1144 -#: templates/js/translated/return_order.js:449 -#: templates/js/translated/sales_order.js:979 +#: templates/js/translated/purchase_order.js:643 +#: templates/js/translated/purchase_order.js:1155 +#: templates/js/translated/return_order.js:452 +#: templates/js/translated/sales_order.js:1005 #: templates/js/translated/stock.js:660 templates/js/translated/stock.js:829 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" @@ -4883,9 +4933,9 @@ msgstr "" #: order/templates/order/purchase_order_detail.html:28 #: order/templates/order/return_order_detail.html:24 #: order/templates/order/sales_order_detail.html:24 -#: templates/js/translated/purchase_order.js:367 -#: templates/js/translated/return_order.js:402 -#: templates/js/translated/sales_order.js:175 +#: templates/js/translated/purchase_order.js:370 +#: templates/js/translated/return_order.js:405 +#: templates/js/translated/sales_order.js:179 msgid "Add Line Item" msgstr "" @@ -4923,63 +4973,79 @@ msgstr "" msgid "Order Notes" msgstr "" -#: order/templates/order/return_order_base.html:43 +#: order/templates/order/return_order_base.html:61 msgid "Print return order report" msgstr "" -#: order/templates/order/return_order_base.html:47 -#: order/templates/order/sales_order_base.html:47 +#: order/templates/order/return_order_base.html:65 +#: order/templates/order/sales_order_base.html:65 msgid "Print packing list" msgstr "" -#: order/templates/order/return_order_base.html:119 -#: order/templates/order/sales_order_base.html:123 +#: order/templates/order/return_order_base.html:140 +#: order/templates/order/sales_order_base.html:151 #: templates/js/translated/return_order.js:267 -#: templates/js/translated/sales_order.js:709 +#: templates/js/translated/sales_order.js:735 msgid "Customer Reference" msgstr "" -#: order/templates/order/return_order_base.html:169 -#: order/templates/order/sales_order_base.html:200 +#: order/templates/order/return_order_base.html:190 +#: order/templates/order/sales_order_base.html:228 #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 #: templates/js/translated/part.js:989 -#: templates/js/translated/purchase_order.js:1582 +#: templates/js/translated/purchase_order.js:1649 #: templates/js/translated/return_order.js:327 -#: templates/js/translated/sales_order.js:755 +#: templates/js/translated/sales_order.js:781 msgid "Total Cost" msgstr "" +#: order/templates/order/return_order_base.html:258 +msgid "Return Order QR Code" +msgstr "" + +#: order/templates/order/return_order_base.html:270 +msgid "Link Barcode to Return Order" +msgstr "" + #: order/templates/order/return_order_sidebar.html:5 msgid "Order Details" msgstr "" -#: order/templates/order/sales_order_base.html:43 +#: order/templates/order/sales_order_base.html:61 msgid "Print sales order report" msgstr "" -#: order/templates/order/sales_order_base.html:60 -#: templates/js/translated/sales_order.js:361 -msgid "Complete Shipments" +#: order/templates/order/sales_order_base.html:89 +#: order/templates/order/sales_order_base.html:90 +msgid "Ship Items" msgstr "" -#: order/templates/order/sales_order_base.html:67 -#: templates/js/translated/sales_order.js:415 +#: order/templates/order/sales_order_base.html:93 +#: templates/js/translated/sales_order.js:419 msgid "Complete Sales Order" msgstr "" -#: order/templates/order/sales_order_base.html:103 +#: order/templates/order/sales_order_base.html:131 msgid "This Sales Order has not been fully allocated" msgstr "" -#: order/templates/order/sales_order_base.html:141 +#: order/templates/order/sales_order_base.html:169 #: order/templates/order/sales_order_detail.html:105 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "" +#: order/templates/order/sales_order_base.html:305 +msgid "Sales Order QR Code" +msgstr "" + +#: order/templates/order/sales_order_base.html:317 +msgid "Link Barcode to Sales Order" +msgstr "" + #: order/templates/order/sales_order_detail.html:18 msgid "Sales Order Items" msgstr "" @@ -5035,20 +5101,20 @@ msgstr "" msgid "Part Description" msgstr "" -#: part/admin.py:36 part/models.py:880 part/templates/part/part_base.html:272 +#: part/admin.py:36 part/models.py:880 part/templates/part/part_base.html:271 #: templates/js/translated/part.js:1143 templates/js/translated/part.js:1855 #: templates/js/translated/stock.js:1769 msgid "IPN" msgstr "" -#: part/admin.py:37 part/models.py:887 part/templates/part/part_base.html:280 +#: part/admin.py:37 part/models.py:887 part/templates/part/part_base.html:279 #: report/models.py:177 templates/js/translated/part.js:1148 #: templates/js/translated/part.js:1861 msgid "Revision" msgstr "" #: part/admin.py:38 part/admin.py:198 part/models.py:866 -#: part/templates/part/category.html:93 part/templates/part/part_base.html:301 +#: part/templates/part/category.html:93 part/templates/part/part_base.html:300 msgid "Keywords" msgstr "" @@ -5068,17 +5134,17 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:47 part/models.py:971 part/templates/part/part_base.html:206 +#: part/admin.py:47 part/models.py:971 part/templates/part/part_base.html:205 msgid "Minimum Stock" msgstr "" -#: part/admin.py:61 part/templates/part/part_base.html:200 +#: part/admin.py:61 part/templates/part/part_base.html:199 #: templates/js/translated/company.js:1277 #: templates/js/translated/table_filters.js:253 msgid "In Stock" msgstr "" -#: part/admin.py:62 part/bom.py:178 part/templates/part/part_base.html:213 +#: part/admin.py:62 part/bom.py:178 part/templates/part/part_base.html:212 #: templates/js/translated/bom.js:1163 templates/js/translated/build.js:1940 #: templates/js/translated/part.js:630 templates/js/translated/part.js:1749 #: templates/js/translated/table_filters.js:96 @@ -5091,11 +5157,11 @@ msgstr "" #: part/admin.py:64 templates/js/translated/build.js:1954 #: templates/js/translated/build.js:2214 templates/js/translated/build.js:2799 -#: templates/js/translated/sales_order.js:1790 +#: templates/js/translated/sales_order.js:1818 msgid "Allocated" msgstr "" -#: part/admin.py:65 part/templates/part/part_base.html:244 stock/admin.py:124 +#: part/admin.py:65 part/templates/part/part_base.html:243 stock/admin.py:124 #: templates/js/translated/part.js:635 templates/js/translated/part.js:1753 msgid "Building" msgstr "" @@ -5127,7 +5193,7 @@ msgstr "" #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:85 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:43 -#: templates/js/translated/part.js:2367 templates/js/translated/search.js:158 +#: templates/js/translated/part.js:2367 templates/js/translated/search.js:160 #: templates/navbar.html:24 users/models.py:38 msgid "Parts" msgstr "" @@ -5158,36 +5224,36 @@ msgstr "" msgid "Maximum Price" msgstr "" -#: part/api.py:515 +#: part/api.py:495 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:535 +#: part/api.py:515 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:553 +#: part/api.py:533 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:639 +#: part/api.py:619 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:797 +#: part/api.py:767 msgid "Valid" msgstr "" -#: part/api.py:798 +#: part/api.py:768 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:804 +#: part/api.py:774 msgid "This option must be selected" msgstr "" #: part/bom.py:175 part/models.py:121 part/models.py:914 -#: part/templates/part/category.html:115 part/templates/part/part_base.html:376 +#: part/templates/part/category.html:115 part/templates/part/part_base.html:369 msgid "Default Location" msgstr "" @@ -5195,8 +5261,8 @@ msgstr "" msgid "Total Stock" msgstr "" -#: part/bom.py:177 part/templates/part/part_base.html:195 -#: templates/js/translated/sales_order.js:1757 +#: part/bom.py:177 part/templates/part/part_base.html:194 +#: templates/js/translated/sales_order.js:1785 msgid "Available Stock" msgstr "" @@ -5210,7 +5276,7 @@ msgid "Part Category" msgstr "" #: part/models.py:72 part/templates/part/category.html:135 -#: templates/InvenTree/search.html:97 templates/js/translated/search.js:186 +#: templates/InvenTree/search.html:97 templates/js/translated/search.js:188 #: users/models.py:37 msgid "Part Categories" msgstr "" @@ -5219,7 +5285,7 @@ msgstr "" msgid "Default location for parts in this category" msgstr "" -#: part/models.py:127 stock/models.py:119 templates/js/translated/stock.js:2575 +#: part/models.py:127 stock/models.py:120 templates/js/translated/stock.js:2575 #: templates/js/translated/table_filters.js:163 #: templates/js/translated/table_filters.js:182 msgid "Structural" @@ -5237,11 +5303,11 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:138 stock/models.py:108 +#: part/models.py:138 stock/models.py:109 msgid "Icon" msgstr "" -#: part/models.py:139 stock/models.py:109 +#: part/models.py:139 stock/models.py:110 msgid "Icon (optional)" msgstr "" @@ -5295,12 +5361,12 @@ msgstr "" msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:855 +#: part/models.py:855 part/templates/part/part_base.html:179 msgid "Variant Of" msgstr "" #: part/models.py:861 -msgid "Part description" +msgid "Part description (optional)" msgstr "" #: part/models.py:867 @@ -5308,7 +5374,7 @@ msgid "Part keywords to improve visibility in search results" msgstr "" #: part/models.py:874 part/models.py:3182 part/models.py:3419 -#: part/serializers.py:849 part/templates/part/part_base.html:263 +#: part/serializers.py:849 part/templates/part/part_base.html:262 #: templates/InvenTree/settings/settings_staff_js.html:132 #: templates/js/translated/notification.js:50 #: templates/js/translated/part.js:1885 templates/js/translated/part.js:2097 @@ -5331,7 +5397,7 @@ msgstr "" msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:957 part/templates/part/part_base.html:385 +#: part/models.py:957 part/templates/part/part_base.html:378 msgid "Default Supplier" msgstr "" @@ -5411,8 +5477,8 @@ msgstr "" msgid "User responsible for this part" msgstr "" -#: part/models.py:1036 part/templates/part/part_base.html:348 -#: stock/templates/stock/item_base.html:448 +#: part/models.py:1036 part/templates/part/part_base.html:341 +#: stock/templates/stock/item_base.html:441 #: templates/js/translated/part.js:1947 msgid "Last Stocktake" msgstr "" @@ -5569,7 +5635,7 @@ msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:368 #: templates/js/translated/part.js:1002 templates/js/translated/pricing.js:794 #: templates/js/translated/pricing.js:915 -#: templates/js/translated/purchase_order.js:1561 +#: templates/js/translated/purchase_order.js:1628 #: templates/js/translated/stock.js:2613 msgid "Date" msgstr "" @@ -5822,7 +5888,7 @@ msgstr "" msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:3713 stock/models.py:569 +#: part/models.py:3713 stock/models.py:570 msgid "Quantity must be integer value for trackable parts" msgstr "" @@ -6102,7 +6168,7 @@ msgstr "" #: part/tasks.py:289 templates/js/translated/part.js:983 #: templates/js/translated/part.js:1456 templates/js/translated/part.js:1512 -#: templates/js/translated/purchase_order.js:1922 +#: templates/js/translated/purchase_order.js:1989 msgid "Total Quantity" msgstr "" @@ -6127,8 +6193,7 @@ msgid "You do not have permission to edit the BOM." msgstr "" #: part/templates/part/bom.html:15 -#, python-format -msgid "The BOM for %(part)s has changed, and must be validated.
" +msgid "The BOM this part has been changed, and must be validated" msgstr "" #: part/templates/part/bom.html:17 @@ -6264,7 +6329,7 @@ msgid "Refresh scheduling data" msgstr "" #: part/templates/part/detail.html:45 part/templates/part/prices.html:15 -#: templates/js/translated/tables.js:562 +#: templates/js/translated/tables.js:572 msgid "Refresh" msgstr "" @@ -6416,13 +6481,13 @@ msgstr "" #: part/templates/part/import_wizard/part_upload.html:92 #: templates/js/translated/bom.js:278 templates/js/translated/bom.js:312 -#: templates/js/translated/order.js:109 templates/js/translated/tables.js:183 +#: templates/js/translated/order.js:112 templates/js/translated/tables.js:183 msgid "Format" msgstr "" #: part/templates/part/import_wizard/part_upload.html:93 #: templates/js/translated/bom.js:279 templates/js/translated/bom.js:313 -#: templates/js/translated/order.js:110 +#: templates/js/translated/order.js:113 msgid "Select file format" msgstr "" @@ -6507,8 +6572,7 @@ msgid "Part can be sold to customers" msgstr "" #: part/templates/part/part_base.html:147 -#: part/templates/part/part_base.html:155 -msgid "Part is virtual (not a physical part)" +msgid "Part is not active" msgstr "" #: part/templates/part/part_base.html:148 @@ -6519,71 +6583,70 @@ msgstr "" msgid "Inactive" msgstr "" +#: part/templates/part/part_base.html:155 +msgid "Part is virtual (not a physical part)" +msgstr "" + #: part/templates/part/part_base.html:165 -#: part/templates/part/part_base.html:691 +#: part/templates/part/part_base.html:684 msgid "Show Part Details" msgstr "" -#: part/templates/part/part_base.html:183 -#, python-format -msgid "This part is a variant of %(link)s" -msgstr "" - -#: part/templates/part/part_base.html:221 -#: stock/templates/stock/item_base.html:385 +#: part/templates/part/part_base.html:220 +#: stock/templates/stock/item_base.html:378 msgid "Allocated to Build Orders" msgstr "" -#: part/templates/part/part_base.html:230 -#: stock/templates/stock/item_base.html:378 +#: part/templates/part/part_base.html:229 +#: stock/templates/stock/item_base.html:371 msgid "Allocated to Sales Orders" msgstr "" -#: part/templates/part/part_base.html:238 templates/js/translated/bom.js:1174 +#: part/templates/part/part_base.html:237 templates/js/translated/bom.js:1174 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:294 +#: part/templates/part/part_base.html:293 msgid "Minimum stock level" msgstr "" -#: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1037 +#: part/templates/part/part_base.html:324 templates/js/translated/bom.js:1037 #: templates/js/translated/part.js:1181 templates/js/translated/part.js:1920 #: templates/js/translated/pricing.js:373 #: templates/js/translated/pricing.js:1019 msgid "Price Range" msgstr "" -#: part/templates/part/part_base.html:361 +#: part/templates/part/part_base.html:354 msgid "Latest Serial Number" msgstr "" -#: part/templates/part/part_base.html:365 -#: stock/templates/stock/item_base.html:334 +#: part/templates/part/part_base.html:358 +#: stock/templates/stock/item_base.html:323 msgid "Search for serial number" msgstr "" -#: part/templates/part/part_base.html:453 +#: part/templates/part/part_base.html:446 msgid "Part QR Code" msgstr "" -#: part/templates/part/part_base.html:470 +#: part/templates/part/part_base.html:463 msgid "Link Barcode to Part" msgstr "" -#: part/templates/part/part_base.html:520 +#: part/templates/part/part_base.html:513 msgid "Calculate" msgstr "" -#: part/templates/part/part_base.html:537 +#: part/templates/part/part_base.html:530 msgid "Remove associated image from this part" msgstr "" -#: part/templates/part/part_base.html:589 +#: part/templates/part/part_base.html:582 msgid "No matching images found" msgstr "" -#: part/templates/part/part_base.html:685 +#: part/templates/part/part_base.html:678 msgid "Hide Part Details" msgstr "" @@ -6673,7 +6736,7 @@ msgid "Refresh Part Pricing" msgstr "" #: part/templates/part/prices.html:25 stock/admin.py:129 -#: stock/templates/stock/item_base.html:443 +#: stock/templates/stock/item_base.html:436 #: templates/js/translated/company.js:1291 #: templates/js/translated/company.js:1301 #: templates/js/translated/stock.js:1956 @@ -6790,8 +6853,7 @@ msgid "Create new part variant" msgstr "" #: part/templates/part/variant_part.html:10 -#, python-format -msgid "Create a new variant of template '%(full_name)s'." +msgid "Create a new variant part from this template" msgstr "" #: part/templatetags/inventree_extras.py:187 @@ -6853,6 +6915,7 @@ msgid "Match found for barcode data" msgstr "" #: plugin/base/barcodes/api.py:120 +#: templates/js/translated/purchase_order.js:1321 msgid "Barcode matches existing item" msgstr "" @@ -6864,15 +6927,15 @@ msgstr "" msgid "Label printing failed" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:26 +#: plugin/builtin/barcodes/inventree_barcode.py:28 msgid "InvenTree Barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:27 +#: plugin/builtin/barcodes/inventree_barcode.py:29 msgid "Provides native support for barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:29 +#: plugin/builtin/barcodes/inventree_barcode.py:31 #: plugin/builtin/integration/core_notifications.py:33 msgid "InvenTree contributors" msgstr "" @@ -6975,18 +7038,19 @@ msgstr "" msgid "No date found" msgstr "" -#: plugin/registry.py:450 -msgid "Plugin `{plg_name}` is not compatible with the current InvenTree version {version.inventreeVersion()}!" -msgstr "" - #: plugin/registry.py:452 #, python-brace-format -msgid "Plugin requires at least version {plg_i.MIN_VERSION}" +msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "" #: plugin/registry.py:454 #, python-brace-format -msgid "Plugin requires at most version {plg_i.MAX_VERSION}" +msgid "Plugin requires at least version {v}" +msgstr "" + +#: plugin/registry.py:456 +#, python-brace-format +msgid "Plugin requires at most version {v}" msgstr "" #: plugin/samples/integration/sample.py:39 @@ -7053,16 +7117,16 @@ msgstr "" msgid "Either packagename of URL must be provided" msgstr "" -#: report/api.py:172 +#: report/api.py:171 msgid "No valid objects provided to template" msgstr "" -#: report/api.py:208 report/api.py:244 +#: report/api.py:207 report/api.py:243 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "" -#: report/api.py:311 +#: report/api.py:310 msgid "Test report" msgstr "" @@ -7168,11 +7232,11 @@ msgstr "" #: report/templates/report/inventree_po_report_base.html:30 #: report/templates/report/inventree_so_report_base.html:30 -#: templates/js/translated/order.js:288 templates/js/translated/pricing.js:509 +#: templates/js/translated/order.js:291 templates/js/translated/pricing.js:509 #: templates/js/translated/pricing.js:578 #: templates/js/translated/pricing.js:802 -#: templates/js/translated/purchase_order.js:1953 -#: templates/js/translated/sales_order.js:1701 +#: templates/js/translated/purchase_order.js:2020 +#: templates/js/translated/sales_order.js:1729 msgid "Unit Price" msgstr "" @@ -7184,22 +7248,22 @@ msgstr "" #: report/templates/report/inventree_po_report_base.html:72 #: report/templates/report/inventree_so_report_base.html:72 -#: templates/js/translated/purchase_order.js:1855 -#: templates/js/translated/sales_order.js:1676 +#: templates/js/translated/purchase_order.js:1922 +#: templates/js/translated/sales_order.js:1704 msgid "Total" msgstr "" #: report/templates/report/inventree_return_order_report_base.html:25 #: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:717 stock/templates/stock/item_base.html:323 +#: stock/models.py:718 stock/templates/stock/item_base.html:312 #: templates/js/translated/build.js:475 templates/js/translated/build.js:636 #: templates/js/translated/build.js:1250 templates/js/translated/build.js:1738 #: templates/js/translated/model_renderers.js:195 -#: templates/js/translated/return_order.js:483 -#: templates/js/translated/return_order.js:663 -#: templates/js/translated/sales_order.js:250 -#: templates/js/translated/sales_order.js:1470 -#: templates/js/translated/sales_order.js:1555 +#: templates/js/translated/return_order.js:486 +#: templates/js/translated/return_order.js:666 +#: templates/js/translated/sales_order.js:254 +#: templates/js/translated/sales_order.js:1509 +#: templates/js/translated/sales_order.js:1594 #: templates/js/translated/stock.js:526 msgid "Serial Number" msgstr "" @@ -7213,12 +7277,12 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:102 -#: stock/models.py:2183 templates/js/translated/stock.js:1398 +#: stock/models.py:2210 templates/js/translated/stock.js:1398 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:103 -#: stock/models.py:2189 +#: stock/models.py:2216 msgid "Result" msgstr "" @@ -7286,8 +7350,8 @@ msgstr "" msgid "Customer ID" msgstr "" -#: stock/admin.py:114 stock/models.py:700 -#: stock/templates/stock/item_base.html:362 +#: stock/admin.py:114 stock/models.py:701 +#: stock/templates/stock/item_base.html:355 msgid "Installed In" msgstr "" @@ -7311,278 +7375,277 @@ msgstr "" msgid "Delete on Deplete" msgstr "" -#: stock/admin.py:131 stock/models.py:773 -#: stock/templates/stock/item_base.html:430 +#: stock/admin.py:131 stock/models.py:774 +#: stock/templates/stock/item_base.html:423 #: templates/js/translated/stock.js:1940 msgid "Expiry Date" msgstr "" -#: stock/api.py:426 templates/js/translated/table_filters.js:325 +#: stock/api.py:409 templates/js/translated/table_filters.js:325 msgid "External Location" msgstr "" -#: stock/api.py:587 +#: stock/api.py:570 msgid "Quantity is required" msgstr "" -#: stock/api.py:594 +#: stock/api.py:577 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:619 +#: stock/api.py:602 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:53 stock/models.py:684 +#: stock/models.py:54 stock/models.py:685 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:54 stock/templates/stock/location.html:183 -#: templates/InvenTree/search.html:167 templates/js/translated/search.js:206 +#: stock/models.py:55 stock/templates/stock/location.html:177 +#: templates/InvenTree/search.html:167 templates/js/translated/search.js:208 #: users/models.py:40 msgid "Stock Locations" msgstr "" -#: stock/models.py:113 stock/models.py:814 -#: stock/templates/stock/item_base.html:253 +#: stock/models.py:114 stock/models.py:815 +#: stock/templates/stock/item_base.html:248 msgid "Owner" msgstr "" -#: stock/models.py:114 stock/models.py:815 +#: stock/models.py:115 stock/models.py:816 msgid "Select Owner" msgstr "" -#: stock/models.py:121 +#: stock/models.py:122 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:127 templates/js/translated/stock.js:2584 +#: stock/models.py:128 templates/js/translated/stock.js:2584 #: templates/js/translated/table_filters.js:167 msgid "External" msgstr "" -#: stock/models.py:128 +#: stock/models.py:129 msgid "This is an external stock location" msgstr "" -#: stock/models.py:170 +#: stock/models.py:171 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:549 +#: stock/models.py:550 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:575 stock/serializers.py:151 +#: stock/models.py:576 stock/serializers.py:151 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:592 +#: stock/models.py:593 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:602 stock/models.py:611 +#: stock/models.py:603 stock/models.py:612 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:603 +#: stock/models.py:604 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:625 +#: stock/models.py:626 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:631 +#: stock/models.py:632 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:645 +#: stock/models.py:646 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:659 +#: stock/models.py:660 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:669 +#: stock/models.py:670 msgid "Base part" msgstr "" -#: stock/models.py:677 +#: stock/models.py:678 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:687 +#: stock/models.py:688 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:694 +#: stock/models.py:695 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:703 +#: stock/models.py:704 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:719 +#: stock/models.py:720 msgid "Serial number for this item" msgstr "" -#: stock/models.py:733 +#: stock/models.py:734 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:738 +#: stock/models.py:739 msgid "Stock Quantity" msgstr "" -#: stock/models.py:745 +#: stock/models.py:746 msgid "Source Build" msgstr "" -#: stock/models.py:747 +#: stock/models.py:748 msgid "Build for this stock item" msgstr "" -#: stock/models.py:758 +#: stock/models.py:759 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:761 +#: stock/models.py:762 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:767 +#: stock/models.py:768 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:774 +#: stock/models.py:775 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:789 +#: stock/models.py:790 msgid "Delete on deplete" msgstr "" -#: stock/models.py:789 +#: stock/models.py:790 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:802 stock/templates/stock/item.html:132 +#: stock/models.py:803 stock/templates/stock/item.html:132 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:810 +#: stock/models.py:811 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:838 +#: stock/models.py:839 msgid "Converted to part" msgstr "" -#: stock/models.py:1335 +#: stock/models.py:1361 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1341 +#: stock/models.py:1367 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1347 +#: stock/models.py:1373 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1350 +#: stock/models.py:1376 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1353 +#: stock/models.py:1379 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1360 -#, python-brace-format -msgid "Serial numbers already exist: {exists}" +#: stock/models.py:1386 stock/serializers.py:349 +msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1430 +#: stock/models.py:1457 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1433 +#: stock/models.py:1460 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1436 +#: stock/models.py:1463 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1439 +#: stock/models.py:1466 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1442 +#: stock/models.py:1469 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1445 +#: stock/models.py:1472 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1452 stock/serializers.py:946 +#: stock/models.py:1479 stock/serializers.py:946 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1456 +#: stock/models.py:1483 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1460 +#: stock/models.py:1487 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1464 +#: stock/models.py:1491 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1633 +#: stock/models.py:1660 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2101 +#: stock/models.py:2128 msgid "Entry notes" msgstr "" -#: stock/models.py:2159 +#: stock/models.py:2186 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2165 +#: stock/models.py:2192 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2184 +#: stock/models.py:2211 msgid "Test name" msgstr "" -#: stock/models.py:2190 +#: stock/models.py:2217 msgid "Test result" msgstr "" -#: stock/models.py:2196 +#: stock/models.py:2223 msgid "Test output value" msgstr "" -#: stock/models.py:2203 +#: stock/models.py:2230 msgid "Test result attachment" msgstr "" -#: stock/models.py:2209 +#: stock/models.py:2236 msgid "Test notes" msgstr "" @@ -7619,10 +7682,6 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:349 -msgid "Serial numbers already exist" -msgstr "" - #: stock/serializers.py:389 msgid "Select stock item to install" msgstr "" @@ -7839,129 +7898,133 @@ msgstr "" msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:199 +#: stock/templates/stock/item_base.html:194 msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:217 +#: stock/templates/stock/item_base.html:212 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:257 +#: stock/templates/stock/item_base.html:252 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:258 +#: stock/templates/stock/item_base.html:253 #: stock/templates/stock/location.html:147 msgid "Read only" msgstr "" -#: stock/templates/stock/item_base.html:271 -msgid "This stock item is in production and cannot be edited." +#: stock/templates/stock/item_base.html:266 +msgid "This stock item is unavailable" msgstr "" #: stock/templates/stock/item_base.html:272 +msgid "This stock item is in production and cannot be edited." +msgstr "" + +#: stock/templates/stock/item_base.html:273 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:285 -msgid "This stock item has not passed all required tests" -msgstr "" - -#: stock/templates/stock/item_base.html:293 +#: stock/templates/stock/item_base.html:288 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:301 +#: stock/templates/stock/item_base.html:296 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:307 -msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." +#: stock/templates/stock/item_base.html:312 +msgid "This stock item is serialized. It has a unique serial number and the quantity cannot be adjusted" msgstr "" -#: stock/templates/stock/item_base.html:329 +#: stock/templates/stock/item_base.html:318 msgid "previous page" msgstr "" -#: stock/templates/stock/item_base.html:329 +#: stock/templates/stock/item_base.html:318 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:338 +#: stock/templates/stock/item_base.html:327 msgid "next page" msgstr "" -#: stock/templates/stock/item_base.html:338 +#: stock/templates/stock/item_base.html:327 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:351 +#: stock/templates/stock/item_base.html:341 msgid "Available Quantity" msgstr "" -#: stock/templates/stock/item_base.html:395 +#: stock/templates/stock/item_base.html:388 #: templates/js/translated/build.js:1764 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:410 +#: stock/templates/stock/item_base.html:403 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:434 +#: stock/templates/stock/item_base.html:409 +msgid "This stock item has not passed all required tests" +msgstr "" + +#: stock/templates/stock/item_base.html:427 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:434 +#: stock/templates/stock/item_base.html:427 #: templates/js/translated/table_filters.js:333 msgid "Expired" msgstr "" -#: stock/templates/stock/item_base.html:436 +#: stock/templates/stock/item_base.html:429 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:436 +#: stock/templates/stock/item_base.html:429 #: templates/js/translated/table_filters.js:339 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:452 +#: stock/templates/stock/item_base.html:445 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:530 +#: stock/templates/stock/item_base.html:523 msgid "Edit Stock Status" msgstr "" -#: stock/templates/stock/item_base.html:538 +#: stock/templates/stock/item_base.html:532 msgid "Stock Item QR Code" msgstr "" -#: stock/templates/stock/item_base.html:550 +#: stock/templates/stock/item_base.html:543 msgid "Link Barcode to Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:614 +#: stock/templates/stock/item_base.html:607 msgid "Select one of the part variants listed below." msgstr "" -#: stock/templates/stock/item_base.html:617 +#: stock/templates/stock/item_base.html:610 msgid "Warning" msgstr "" -#: stock/templates/stock/item_base.html:618 +#: stock/templates/stock/item_base.html:611 msgid "This action cannot be easily undone" msgstr "" -#: stock/templates/stock/item_base.html:626 +#: stock/templates/stock/item_base.html:619 msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:656 +#: stock/templates/stock/item_base.html:649 msgid "Return to Stock" msgstr "" @@ -8021,29 +8084,29 @@ msgstr "" msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "" -#: stock/templates/stock/location.html:169 -#: stock/templates/stock/location.html:217 +#: stock/templates/stock/location.html:163 +#: stock/templates/stock/location.html:211 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/templates/stock/location.html:221 +#: stock/templates/stock/location.html:215 msgid "Create new stock location" msgstr "" -#: stock/templates/stock/location.html:222 +#: stock/templates/stock/location.html:216 msgid "New Location" msgstr "" -#: stock/templates/stock/location.html:309 +#: stock/templates/stock/location.html:303 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:382 +#: stock/templates/stock/location.html:376 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:393 +#: stock/templates/stock/location.html:387 msgid "Link Barcode to Stock Location" msgstr "" @@ -8581,7 +8644,7 @@ msgid "Home Page" msgstr "" #: templates/InvenTree/settings/sidebar.html:15 -#: templates/js/translated/tables.js:553 templates/navbar.html:107 +#: templates/js/translated/tables.js:563 templates/navbar.html:107 #: templates/search.html:8 templates/search_form.html:6 #: templates/search_form.html:7 msgid "Search" @@ -8627,8 +8690,8 @@ msgid "Change Password" msgstr "" #: templates/InvenTree/settings/user.html:23 -#: templates/js/translated/helpers.js:53 templates/notes_buttons.html:3 -#: templates/notes_buttons.html:4 +#: templates/js/translated/helpers.js:53 templates/js/translated/pricing.js:610 +#: templates/notes_buttons.html:3 templates/notes_buttons.html:4 msgid "Edit" msgstr "" @@ -9101,6 +9164,10 @@ msgstr "" msgid "Delete Attachments" msgstr "" +#: templates/barcode_data.html:5 +msgid "Barcode Identifier" +msgstr "" + #: templates/base.html:102 msgid "Server Restart Required" msgstr "" @@ -9255,10 +9322,6 @@ msgstr "" msgid "Enter barcode data" msgstr "" -#: templates/js/translated/barcode.js:41 -msgid "Barcode" -msgstr "" - #: templates/js/translated/barcode.js:48 msgid "Scan barcode using connected webcam" msgstr "" @@ -9271,94 +9334,94 @@ msgstr "" msgid "Enter notes" msgstr "" -#: templates/js/translated/barcode.js:172 +#: templates/js/translated/barcode.js:175 msgid "Server error" msgstr "" -#: templates/js/translated/barcode.js:201 +#: templates/js/translated/barcode.js:204 msgid "Unknown response from server" msgstr "" -#: templates/js/translated/barcode.js:236 +#: templates/js/translated/barcode.js:239 #: templates/js/translated/modals.js:1100 msgid "Invalid server response" msgstr "" -#: templates/js/translated/barcode.js:354 +#: templates/js/translated/barcode.js:359 msgid "Scan barcode data" msgstr "" -#: templates/js/translated/barcode.js:404 templates/navbar.html:114 +#: templates/js/translated/barcode.js:407 templates/navbar.html:114 msgid "Scan Barcode" msgstr "" -#: templates/js/translated/barcode.js:416 +#: templates/js/translated/barcode.js:427 msgid "No URL in response" msgstr "" -#: templates/js/translated/barcode.js:455 +#: templates/js/translated/barcode.js:468 msgid "This will remove the link to the associated barcode" msgstr "" -#: templates/js/translated/barcode.js:461 +#: templates/js/translated/barcode.js:474 msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:523 templates/js/translated/stock.js:1097 +#: templates/js/translated/barcode.js:537 templates/js/translated/stock.js:1097 msgid "Remove stock item" msgstr "" -#: templates/js/translated/barcode.js:566 +#: templates/js/translated/barcode.js:580 msgid "Scan Stock Items Into Location" msgstr "" -#: templates/js/translated/barcode.js:568 +#: templates/js/translated/barcode.js:582 msgid "Scan stock item barcode to check in to this location" msgstr "" -#: templates/js/translated/barcode.js:571 -#: templates/js/translated/barcode.js:763 +#: templates/js/translated/barcode.js:585 +#: templates/js/translated/barcode.js:780 msgid "Check In" msgstr "" -#: templates/js/translated/barcode.js:602 +#: templates/js/translated/barcode.js:616 msgid "No barcode provided" msgstr "" -#: templates/js/translated/barcode.js:642 +#: templates/js/translated/barcode.js:656 msgid "Stock Item already scanned" msgstr "" -#: templates/js/translated/barcode.js:646 +#: templates/js/translated/barcode.js:660 msgid "Stock Item already in this location" msgstr "" -#: templates/js/translated/barcode.js:653 +#: templates/js/translated/barcode.js:667 msgid "Added stock item" msgstr "" -#: templates/js/translated/barcode.js:662 +#: templates/js/translated/barcode.js:676 msgid "Barcode does not match valid stock item" msgstr "" -#: templates/js/translated/barcode.js:679 +#: templates/js/translated/barcode.js:695 msgid "Scan Stock Container Into Location" msgstr "" -#: templates/js/translated/barcode.js:681 +#: templates/js/translated/barcode.js:697 msgid "Scan stock container barcode to check in to this location" msgstr "" -#: templates/js/translated/barcode.js:715 +#: templates/js/translated/barcode.js:731 msgid "Barcode does not match valid stock location" msgstr "" -#: templates/js/translated/barcode.js:758 +#: templates/js/translated/barcode.js:775 msgid "Check Into Location" msgstr "" -#: templates/js/translated/barcode.js:826 -#: templates/js/translated/barcode.js:835 +#: templates/js/translated/barcode.js:843 +#: templates/js/translated/barcode.js:852 msgid "Barcode does not match a valid location" msgstr "" @@ -9377,7 +9440,7 @@ msgstr "" #: templates/js/translated/bom.js:158 templates/js/translated/bom.js:669 #: templates/js/translated/modals.js:69 templates/js/translated/modals.js:608 #: templates/js/translated/modals.js:732 templates/js/translated/modals.js:1040 -#: templates/js/translated/purchase_order.js:739 templates/modals.html:15 +#: templates/js/translated/purchase_order.js:742 templates/modals.html:15 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 msgid "Close" msgstr "" @@ -9511,7 +9574,7 @@ msgid "No pricing available" msgstr "" #: templates/js/translated/bom.js:1143 templates/js/translated/build.js:1922 -#: templates/js/translated/sales_order.js:1771 +#: templates/js/translated/sales_order.js:1799 msgid "No Stock Available" msgstr "" @@ -9712,12 +9775,12 @@ msgid "No required tests for this build" msgstr "" #: templates/js/translated/build.js:1781 templates/js/translated/build.js:2803 -#: templates/js/translated/sales_order.js:1505 +#: templates/js/translated/sales_order.js:1544 msgid "Edit stock allocation" msgstr "" #: templates/js/translated/build.js:1783 templates/js/translated/build.js:2804 -#: templates/js/translated/sales_order.js:1506 +#: templates/js/translated/sales_order.js:1545 msgid "Delete stock allocation" msgstr "" @@ -9738,17 +9801,17 @@ msgid "Quantity Per" msgstr "" #: templates/js/translated/build.js:1916 -#: templates/js/translated/sales_order.js:1778 +#: templates/js/translated/sales_order.js:1806 msgid "Insufficient stock available" msgstr "" #: templates/js/translated/build.js:1918 -#: templates/js/translated/sales_order.js:1776 +#: templates/js/translated/sales_order.js:1804 msgid "Sufficient stock available" msgstr "" #: templates/js/translated/build.js:2014 -#: templates/js/translated/sales_order.js:1870 +#: templates/js/translated/sales_order.js:1905 msgid "Build stock" msgstr "" @@ -9757,23 +9820,23 @@ msgid "Order stock" msgstr "" #: templates/js/translated/build.js:2021 -#: templates/js/translated/sales_order.js:1863 +#: templates/js/translated/sales_order.js:1899 msgid "Allocate stock" msgstr "" #: templates/js/translated/build.js:2059 -#: templates/js/translated/purchase_order.js:564 -#: templates/js/translated/sales_order.js:1042 +#: templates/js/translated/purchase_order.js:567 +#: templates/js/translated/sales_order.js:1068 msgid "Select Parts" msgstr "" #: templates/js/translated/build.js:2060 -#: templates/js/translated/sales_order.js:1043 +#: templates/js/translated/sales_order.js:1069 msgid "You must select at least one part to allocate" msgstr "" #: templates/js/translated/build.js:2108 -#: templates/js/translated/sales_order.js:991 +#: templates/js/translated/sales_order.js:1017 msgid "Specify stock allocation quantity" msgstr "" @@ -9786,7 +9849,7 @@ msgid "All selected parts have been fully allocated" msgstr "" #: templates/js/translated/build.js:2202 -#: templates/js/translated/sales_order.js:1057 +#: templates/js/translated/sales_order.js:1083 msgid "Select source location (leave blank to take from all locations)" msgstr "" @@ -9795,12 +9858,12 @@ msgid "Allocate Stock Items to Build Order" msgstr "" #: templates/js/translated/build.js:2241 -#: templates/js/translated/sales_order.js:1154 +#: templates/js/translated/sales_order.js:1180 msgid "No matching stock locations" msgstr "" #: templates/js/translated/build.js:2314 -#: templates/js/translated/sales_order.js:1231 +#: templates/js/translated/sales_order.js:1257 msgid "No matching stock items" msgstr "" @@ -10116,7 +10179,7 @@ msgstr "" msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2010 templates/js/translated/search.js:267 +#: templates/js/translated/forms.js:2010 templates/js/translated/search.js:269 msgid "Searching" msgstr "" @@ -10144,7 +10207,7 @@ msgstr "" msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:460 +#: templates/js/translated/helpers.js:466 msgid "Notes updated" msgstr "" @@ -10271,40 +10334,40 @@ msgstr "" msgid "Notifications will load here" msgstr "" -#: templates/js/translated/order.js:69 +#: templates/js/translated/order.js:72 msgid "Add Extra Line Item" msgstr "" -#: templates/js/translated/order.js:106 +#: templates/js/translated/order.js:109 msgid "Export Order" msgstr "" -#: templates/js/translated/order.js:219 +#: templates/js/translated/order.js:222 msgid "Duplicate Line" msgstr "" -#: templates/js/translated/order.js:233 +#: templates/js/translated/order.js:236 msgid "Edit Line" msgstr "" -#: templates/js/translated/order.js:246 +#: templates/js/translated/order.js:249 msgid "Delete Line" msgstr "" -#: templates/js/translated/order.js:259 -#: templates/js/translated/purchase_order.js:1828 +#: templates/js/translated/order.js:262 +#: templates/js/translated/purchase_order.js:1895 msgid "No line items found" msgstr "" -#: templates/js/translated/order.js:332 +#: templates/js/translated/order.js:344 msgid "Duplicate line" msgstr "" -#: templates/js/translated/order.js:333 +#: templates/js/translated/order.js:345 msgid "Edit line" msgstr "" -#: templates/js/translated/order.js:337 +#: templates/js/translated/order.js:349 msgid "Delete line" msgstr "" @@ -10506,19 +10569,19 @@ msgid "No variants found" msgstr "" #: templates/js/translated/part.js:1351 -#: templates/js/translated/purchase_order.js:1500 +#: templates/js/translated/purchase_order.js:1567 msgid "No purchase orders found" msgstr "" #: templates/js/translated/part.js:1495 -#: templates/js/translated/purchase_order.js:1991 -#: templates/js/translated/return_order.js:695 -#: templates/js/translated/sales_order.js:1739 +#: templates/js/translated/purchase_order.js:2058 +#: templates/js/translated/return_order.js:698 +#: templates/js/translated/sales_order.js:1767 msgid "This line item is overdue" msgstr "" #: templates/js/translated/part.js:1541 -#: templates/js/translated/purchase_order.js:2049 +#: templates/js/translated/purchase_order.js:2125 msgid "Receive line item" msgstr "" @@ -10652,16 +10715,6 @@ msgstr "" msgid "No price break data available" msgstr "" -#: templates/js/translated/pricing.js:610 -#, python-brace-format -msgid "Edit ${human_name}" -msgstr "" - -#: templates/js/translated/pricing.js:611 -#, python-brace-format -msgid "Delete ${human_name}" -msgstr "" - #: templates/js/translated/pricing.js:737 msgid "No purchase history data available" msgstr "" @@ -10714,184 +10767,206 @@ msgstr "" msgid "Duplication Options" msgstr "" -#: templates/js/translated/purchase_order.js:384 +#: templates/js/translated/purchase_order.js:387 msgid "Complete Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:401 +#: templates/js/translated/purchase_order.js:404 #: templates/js/translated/return_order.js:165 -#: templates/js/translated/sales_order.js:431 +#: templates/js/translated/sales_order.js:435 msgid "Mark this order as complete?" msgstr "" -#: templates/js/translated/purchase_order.js:407 +#: templates/js/translated/purchase_order.js:410 msgid "All line items have been received" msgstr "" -#: templates/js/translated/purchase_order.js:412 +#: templates/js/translated/purchase_order.js:415 msgid "This order has line items which have not been marked as received." msgstr "" -#: templates/js/translated/purchase_order.js:413 -#: templates/js/translated/sales_order.js:445 +#: templates/js/translated/purchase_order.js:416 +#: templates/js/translated/sales_order.js:449 msgid "Completing this order means that the order and line items will no longer be editable." msgstr "" -#: templates/js/translated/purchase_order.js:436 +#: templates/js/translated/purchase_order.js:439 msgid "Cancel Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:441 +#: templates/js/translated/purchase_order.js:444 msgid "Are you sure you wish to cancel this purchase order?" msgstr "" -#: templates/js/translated/purchase_order.js:447 +#: templates/js/translated/purchase_order.js:450 msgid "This purchase order can not be cancelled" msgstr "" -#: templates/js/translated/purchase_order.js:468 +#: templates/js/translated/purchase_order.js:471 #: templates/js/translated/return_order.js:119 msgid "After placing this order, line items will no longer be editable." msgstr "" -#: templates/js/translated/purchase_order.js:473 +#: templates/js/translated/purchase_order.js:476 msgid "Issue Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:565 +#: templates/js/translated/purchase_order.js:568 msgid "At least one purchaseable part must be selected" msgstr "" -#: templates/js/translated/purchase_order.js:590 +#: templates/js/translated/purchase_order.js:593 msgid "Quantity to order" msgstr "" -#: templates/js/translated/purchase_order.js:599 +#: templates/js/translated/purchase_order.js:602 msgid "New supplier part" msgstr "" -#: templates/js/translated/purchase_order.js:617 +#: templates/js/translated/purchase_order.js:620 msgid "New purchase order" msgstr "" -#: templates/js/translated/purchase_order.js:649 +#: templates/js/translated/purchase_order.js:652 msgid "Add to purchase order" msgstr "" -#: templates/js/translated/purchase_order.js:793 +#: templates/js/translated/purchase_order.js:796 msgid "No matching supplier parts" msgstr "" -#: templates/js/translated/purchase_order.js:812 +#: templates/js/translated/purchase_order.js:815 msgid "No matching purchase orders" msgstr "" -#: templates/js/translated/purchase_order.js:991 +#: templates/js/translated/purchase_order.js:994 msgid "Select Line Items" msgstr "" -#: templates/js/translated/purchase_order.js:992 -#: templates/js/translated/return_order.js:435 +#: templates/js/translated/purchase_order.js:995 +#: templates/js/translated/return_order.js:438 msgid "At least one line item must be selected" msgstr "" -#: templates/js/translated/purchase_order.js:1012 -#: templates/js/translated/purchase_order.js:1125 -msgid "Add batch code" -msgstr "" - -#: templates/js/translated/purchase_order.js:1018 -#: templates/js/translated/purchase_order.js:1136 -msgid "Add serial numbers" -msgstr "" - -#: templates/js/translated/purchase_order.js:1033 +#: templates/js/translated/purchase_order.js:1023 msgid "Received Quantity" msgstr "" -#: templates/js/translated/purchase_order.js:1044 +#: templates/js/translated/purchase_order.js:1034 msgid "Quantity to receive" msgstr "" -#: templates/js/translated/purchase_order.js:1108 +#: templates/js/translated/purchase_order.js:1110 #: templates/js/translated/stock.js:2273 msgid "Stock Status" msgstr "" -#: templates/js/translated/purchase_order.js:1196 -msgid "Order Code" +#: templates/js/translated/purchase_order.js:1124 +msgid "Add barcode" msgstr "" -#: templates/js/translated/purchase_order.js:1197 -msgid "Ordered" +#: templates/js/translated/purchase_order.js:1125 +msgid "Remove barcode" +msgstr "" + +#: templates/js/translated/purchase_order.js:1128 +msgid "Specify location" +msgstr "" + +#: templates/js/translated/purchase_order.js:1136 +msgid "Add batch code" +msgstr "" + +#: templates/js/translated/purchase_order.js:1147 +msgid "Add serial numbers" msgstr "" #: templates/js/translated/purchase_order.js:1199 +msgid "Serials" +msgstr "" + +#: templates/js/translated/purchase_order.js:1224 +msgid "Order Code" +msgstr "" + +#: templates/js/translated/purchase_order.js:1226 msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1222 -#: templates/js/translated/return_order.js:500 +#: templates/js/translated/purchase_order.js:1248 +#: templates/js/translated/return_order.js:503 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1223 +#: templates/js/translated/purchase_order.js:1249 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1527 +#: templates/js/translated/purchase_order.js:1317 +msgid "Scan Item Barcode" +msgstr "" + +#: templates/js/translated/purchase_order.js:1318 +msgid "Scan barcode on incoming item (must not match any existing stock items)" +msgstr "" + +#: templates/js/translated/purchase_order.js:1332 +msgid "Invalid barcode data" +msgstr "" + +#: templates/js/translated/purchase_order.js:1594 #: templates/js/translated/return_order.js:244 -#: templates/js/translated/sales_order.js:686 +#: templates/js/translated/sales_order.js:712 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1577 +#: templates/js/translated/purchase_order.js:1644 #: templates/js/translated/return_order.js:300 -#: templates/js/translated/sales_order.js:751 -#: templates/js/translated/sales_order.js:893 +#: templates/js/translated/sales_order.js:777 +#: templates/js/translated/sales_order.js:919 msgid "Items" msgstr "" -#: templates/js/translated/purchase_order.js:1676 +#: templates/js/translated/purchase_order.js:1743 msgid "All selected Line items will be deleted" msgstr "" -#: templates/js/translated/purchase_order.js:1694 +#: templates/js/translated/purchase_order.js:1761 msgid "Delete selected Line items?" msgstr "" -#: templates/js/translated/purchase_order.js:1754 -#: templates/js/translated/sales_order.js:1920 +#: templates/js/translated/purchase_order.js:1821 +#: templates/js/translated/sales_order.js:1959 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:1769 -#: templates/js/translated/return_order.js:419 -#: templates/js/translated/return_order.js:608 -#: templates/js/translated/sales_order.js:1933 +#: templates/js/translated/purchase_order.js:1836 +#: templates/js/translated/return_order.js:422 +#: templates/js/translated/return_order.js:611 +#: templates/js/translated/sales_order.js:1972 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:1780 -#: templates/js/translated/return_order.js:621 -#: templates/js/translated/sales_order.js:1944 +#: templates/js/translated/purchase_order.js:1847 +#: templates/js/translated/return_order.js:624 +#: templates/js/translated/sales_order.js:1983 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2053 -#: templates/js/translated/sales_order.js:1876 +#: templates/js/translated/purchase_order.js:2129 +#: templates/js/translated/sales_order.js:1913 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2054 -#: templates/js/translated/return_order.js:731 -#: templates/js/translated/sales_order.js:1877 +#: templates/js/translated/purchase_order.js:2130 +#: templates/js/translated/return_order.js:743 +#: templates/js/translated/sales_order.js:1914 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2055 -#: templates/js/translated/return_order.js:735 -#: templates/js/translated/sales_order.js:1881 +#: templates/js/translated/purchase_order.js:2131 +#: templates/js/translated/return_order.js:747 +#: templates/js/translated/sales_order.js:1920 msgid "Delete line item" msgstr "" @@ -10916,7 +10991,7 @@ msgid "No report templates found which match the selected items" msgstr "" #: templates/js/translated/return_order.js:40 -#: templates/js/translated/sales_order.js:52 +#: templates/js/translated/sales_order.js:53 msgid "Add Customer" msgstr "" @@ -10949,208 +11024,221 @@ msgid "No return orders found" msgstr "" #: templates/js/translated/return_order.js:258 -#: templates/js/translated/sales_order.js:700 +#: templates/js/translated/sales_order.js:726 msgid "Invalid Customer" msgstr "" -#: templates/js/translated/return_order.js:501 +#: templates/js/translated/return_order.js:504 msgid "Receive Return Order Items" msgstr "" -#: templates/js/translated/return_order.js:632 -#: templates/js/translated/sales_order.js:2080 +#: templates/js/translated/return_order.js:635 +#: templates/js/translated/sales_order.js:2119 msgid "No matching line items" msgstr "" -#: templates/js/translated/return_order.js:728 +#: templates/js/translated/return_order.js:740 msgid "Mark item as received" msgstr "" -#: templates/js/translated/sales_order.js:102 +#: templates/js/translated/sales_order.js:103 msgid "Create Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:117 +#: templates/js/translated/sales_order.js:118 msgid "Edit Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:226 +#: templates/js/translated/sales_order.js:230 msgid "No stock items have been allocated to this shipment" msgstr "" -#: templates/js/translated/sales_order.js:231 +#: templates/js/translated/sales_order.js:235 msgid "The following stock items will be shipped" msgstr "" -#: templates/js/translated/sales_order.js:271 +#: templates/js/translated/sales_order.js:275 msgid "Complete Shipment" msgstr "" -#: templates/js/translated/sales_order.js:291 +#: templates/js/translated/sales_order.js:295 msgid "Confirm Shipment" msgstr "" -#: templates/js/translated/sales_order.js:347 +#: templates/js/translated/sales_order.js:351 msgid "No pending shipments found" msgstr "" -#: templates/js/translated/sales_order.js:351 +#: templates/js/translated/sales_order.js:355 msgid "No stock items have been allocated to pending shipments" msgstr "" -#: templates/js/translated/sales_order.js:383 +#: templates/js/translated/sales_order.js:365 +msgid "Complete Shipments" +msgstr "" + +#: templates/js/translated/sales_order.js:387 msgid "Skip" msgstr "" -#: templates/js/translated/sales_order.js:444 +#: templates/js/translated/sales_order.js:448 msgid "This order has line items which have not been completed." msgstr "" -#: templates/js/translated/sales_order.js:468 +#: templates/js/translated/sales_order.js:470 +msgid "Issue this Sales Order?" +msgstr "" + +#: templates/js/translated/sales_order.js:475 +msgid "Issue Sales Order" +msgstr "" + +#: templates/js/translated/sales_order.js:494 msgid "Cancel Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:473 +#: templates/js/translated/sales_order.js:499 msgid "Cancelling this order means that the order will no longer be editable." msgstr "" -#: templates/js/translated/sales_order.js:527 +#: templates/js/translated/sales_order.js:553 msgid "Create New Shipment" msgstr "" -#: templates/js/translated/sales_order.js:637 +#: templates/js/translated/sales_order.js:663 msgid "No sales orders found" msgstr "" -#: templates/js/translated/sales_order.js:805 +#: templates/js/translated/sales_order.js:831 msgid "Edit shipment" msgstr "" -#: templates/js/translated/sales_order.js:808 +#: templates/js/translated/sales_order.js:834 msgid "Complete shipment" msgstr "" -#: templates/js/translated/sales_order.js:813 +#: templates/js/translated/sales_order.js:839 msgid "Delete shipment" msgstr "" -#: templates/js/translated/sales_order.js:830 +#: templates/js/translated/sales_order.js:856 msgid "Edit Shipment" msgstr "" -#: templates/js/translated/sales_order.js:845 +#: templates/js/translated/sales_order.js:871 msgid "Delete Shipment" msgstr "" -#: templates/js/translated/sales_order.js:878 +#: templates/js/translated/sales_order.js:904 msgid "No matching shipments found" msgstr "" -#: templates/js/translated/sales_order.js:888 +#: templates/js/translated/sales_order.js:914 msgid "Shipment Reference" msgstr "" -#: templates/js/translated/sales_order.js:912 +#: templates/js/translated/sales_order.js:938 +#: templates/js/translated/sales_order.js:1424 msgid "Not shipped" msgstr "" -#: templates/js/translated/sales_order.js:918 +#: templates/js/translated/sales_order.js:944 msgid "Tracking" msgstr "" -#: templates/js/translated/sales_order.js:922 +#: templates/js/translated/sales_order.js:948 msgid "Invoice" msgstr "" -#: templates/js/translated/sales_order.js:1090 +#: templates/js/translated/sales_order.js:1116 msgid "Add Shipment" msgstr "" -#: templates/js/translated/sales_order.js:1141 +#: templates/js/translated/sales_order.js:1167 msgid "Confirm stock allocation" msgstr "" -#: templates/js/translated/sales_order.js:1142 +#: templates/js/translated/sales_order.js:1168 msgid "Allocate Stock Items to Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:1346 +#: templates/js/translated/sales_order.js:1372 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/sales_order.js:1425 +#: templates/js/translated/sales_order.js:1464 msgid "Edit Stock Allocation" msgstr "" -#: templates/js/translated/sales_order.js:1439 +#: templates/js/translated/sales_order.js:1478 msgid "Confirm Delete Operation" msgstr "" -#: templates/js/translated/sales_order.js:1440 +#: templates/js/translated/sales_order.js:1479 msgid "Delete Stock Allocation" msgstr "" -#: templates/js/translated/sales_order.js:1482 -#: templates/js/translated/sales_order.js:1569 +#: templates/js/translated/sales_order.js:1521 +#: templates/js/translated/sales_order.js:1608 #: templates/js/translated/stock.js:1664 msgid "Shipped to customer" msgstr "" -#: templates/js/translated/sales_order.js:1490 -#: templates/js/translated/sales_order.js:1578 +#: templates/js/translated/sales_order.js:1529 +#: templates/js/translated/sales_order.js:1617 msgid "Stock location not specified" msgstr "" -#: templates/js/translated/sales_order.js:1860 +#: templates/js/translated/sales_order.js:1897 msgid "Allocate serial numbers" msgstr "" -#: templates/js/translated/sales_order.js:1866 +#: templates/js/translated/sales_order.js:1901 msgid "Purchase stock" msgstr "" -#: templates/js/translated/sales_order.js:1873 -#: templates/js/translated/sales_order.js:2058 +#: templates/js/translated/sales_order.js:1910 +#: templates/js/translated/sales_order.js:2097 msgid "Calculate price" msgstr "" -#: templates/js/translated/sales_order.js:1885 +#: templates/js/translated/sales_order.js:1924 msgid "Cannot be deleted as items have been shipped" msgstr "" -#: templates/js/translated/sales_order.js:1888 +#: templates/js/translated/sales_order.js:1927 msgid "Cannot be deleted as items have been allocated" msgstr "" -#: templates/js/translated/sales_order.js:1959 +#: templates/js/translated/sales_order.js:1998 msgid "Allocate Serial Numbers" msgstr "" -#: templates/js/translated/sales_order.js:2066 +#: templates/js/translated/sales_order.js:2105 msgid "Update Unit Price" msgstr "" -#: templates/js/translated/search.js:298 +#: templates/js/translated/search.js:300 msgid "No results" msgstr "" -#: templates/js/translated/search.js:320 templates/search.html:25 +#: templates/js/translated/search.js:322 templates/search.html:25 msgid "Enter search query" msgstr "" -#: templates/js/translated/search.js:370 +#: templates/js/translated/search.js:372 msgid "result" msgstr "" -#: templates/js/translated/search.js:370 +#: templates/js/translated/search.js:372 msgid "results" msgstr "" -#: templates/js/translated/search.js:380 +#: templates/js/translated/search.js:382 msgid "Minimize results" msgstr "" -#: templates/js/translated/search.js:383 +#: templates/js/translated/search.js:385 msgid "Remove results" msgstr "" @@ -11832,51 +11920,51 @@ msgstr "" msgid "Select File Format" msgstr "" -#: templates/js/translated/tables.js:539 +#: templates/js/translated/tables.js:549 msgid "Loading data" msgstr "" -#: templates/js/translated/tables.js:542 +#: templates/js/translated/tables.js:552 msgid "rows per page" msgstr "" -#: templates/js/translated/tables.js:547 +#: templates/js/translated/tables.js:557 msgid "Showing all rows" msgstr "" -#: templates/js/translated/tables.js:549 +#: templates/js/translated/tables.js:559 msgid "Showing" msgstr "" -#: templates/js/translated/tables.js:549 +#: templates/js/translated/tables.js:559 msgid "to" msgstr "" -#: templates/js/translated/tables.js:549 +#: templates/js/translated/tables.js:559 msgid "of" msgstr "" -#: templates/js/translated/tables.js:549 +#: templates/js/translated/tables.js:559 msgid "rows" msgstr "" -#: templates/js/translated/tables.js:556 +#: templates/js/translated/tables.js:566 msgid "No matching results" msgstr "" -#: templates/js/translated/tables.js:559 +#: templates/js/translated/tables.js:569 msgid "Hide/Show pagination" msgstr "" -#: templates/js/translated/tables.js:565 +#: templates/js/translated/tables.js:575 msgid "Toggle" msgstr "" -#: templates/js/translated/tables.js:568 +#: templates/js/translated/tables.js:578 msgid "Columns" msgstr "" -#: templates/js/translated/tables.js:571 +#: templates/js/translated/tables.js:581 msgid "All" msgstr "" diff --git a/InvenTree/locale/ru/LC_MESSAGES/django.po b/InvenTree/locale/ru/LC_MESSAGES/django.po index 91caa8476a..76cb4d0615 100644 --- a/InvenTree/locale/ru/LC_MESSAGES/django.po +++ b/InvenTree/locale/ru/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-04-14 22:35+0000\n" -"PO-Revision-Date: 2023-04-15 18:23\n" +"POT-Creation-Date: 2023-04-17 14:13+0000\n" +"PO-Revision-Date: 2023-04-17 18:26\n" "Last-Translator: \n" "Language-Team: Russian\n" "Language: ru_RU\n" @@ -41,7 +41,7 @@ msgstr "Введите дату" #: order/templates/order/so_sidebar.html:17 part/admin.py:41 #: part/models.py:2989 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/admin.py:121 stock/models.py:2126 stock/models.py:2234 +#: stock/admin.py:121 stock/models.py:2127 stock/models.py:2235 #: stock/serializers.py:317 stock/serializers.py:450 stock/serializers.py:531 #: stock/serializers.py:810 stock/serializers.py:909 stock/serializers.py:1041 #: stock/templates/stock/stock_sidebar.html:25 @@ -209,7 +209,7 @@ msgstr "Файл не найден" msgid "Missing external link" msgstr "Отсутствует внешняя ссылка" -#: InvenTree/models.py:409 stock/models.py:2228 +#: InvenTree/models.py:409 stock/models.py:2229 #: templates/js/translated/attachment.js:109 #: templates/js/translated/attachment.js:296 msgid "Attachment" @@ -1833,23 +1833,24 @@ msgstr "Незавершенные выходные данные" msgid "Completed Outputs" msgstr "" -#: common/files.py:62 -msgid "Unsupported file format: {ext.upper()}" -msgstr "Неподдерживаемый формат файла: {ext.upper()}" +#: common/files.py:63 +#, python-brace-format +msgid "Unsupported file format: {fmt}" +msgstr "" -#: common/files.py:64 +#: common/files.py:65 msgid "Error reading file (invalid encoding)" msgstr "Ошибка чтения файла (неверная кодировка)" -#: common/files.py:69 +#: common/files.py:70 msgid "Error reading file (invalid format)" msgstr "Ошибка чтения файла (неверный формат)" -#: common/files.py:71 +#: common/files.py:72 msgid "Error reading file (incorrect dimension)" msgstr "Ошибка чтения файла (неверный размер)" -#: common/files.py:73 +#: common/files.py:74 msgid "Error reading file (data could be corrupted)" msgstr "Ошибка чтения файла (данные могут быть повреждены)" @@ -3481,7 +3482,7 @@ msgstr "Наименование параметра" #: company/models.py:394 #: report/templates/report/inventree_test_report_base.html:104 -#: stock/models.py:2221 templates/js/translated/company.js:857 +#: stock/models.py:2222 templates/js/translated/company.js:857 #: templates/js/translated/company.js:1062 templates/js/translated/part.js:1268 #: templates/js/translated/stock.js:1425 msgid "Value" @@ -3902,8 +3903,8 @@ msgstr "Удалить деталь поставщика" #: company/templates/company/manufacturer_part.html:183 #: part/templates/part/detail.html:393 part/templates/part/detail.html:423 #: templates/js/translated/forms.js:499 templates/js/translated/helpers.js:58 -#: templates/js/translated/part.js:313 templates/js/translated/stock.js:186 -#: users/models.py:243 +#: templates/js/translated/part.js:313 templates/js/translated/pricing.js:611 +#: templates/js/translated/stock.js:186 users/models.py:243 msgid "Delete" msgstr "Удалить" @@ -6191,8 +6192,7 @@ msgid "You do not have permission to edit the BOM." msgstr "У вас нет прав редактировать BOM." #: part/templates/part/bom.html:15 -#, python-format -msgid "The BOM for %(part)s has changed, and must be validated.
" +msgid "The BOM this part has been changed, and must be validated" msgstr "" #: part/templates/part/bom.html:17 @@ -6852,9 +6852,8 @@ msgid "Create new part variant" msgstr "Создать новую разновидность детали" #: part/templates/part/variant_part.html:10 -#, python-format -msgid "Create a new variant of template '%(full_name)s'." -msgstr "Создать новую разновидность из шаблона '%(full_name)s'." +msgid "Create a new variant part from this template" +msgstr "" #: part/templatetags/inventree_extras.py:187 msgid "Unknown database" @@ -7038,18 +7037,19 @@ msgstr "Автор не найден" msgid "No date found" msgstr "Дата не найдена" -#: plugin/registry.py:450 -msgid "Plugin `{plg_name}` is not compatible with the current InvenTree version {version.inventreeVersion()}!" -msgstr "" - #: plugin/registry.py:452 #, python-brace-format -msgid "Plugin requires at least version {plg_i.MIN_VERSION}" +msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "" #: plugin/registry.py:454 #, python-brace-format -msgid "Plugin requires at most version {plg_i.MAX_VERSION}" +msgid "Plugin requires at least version {v}" +msgstr "" + +#: plugin/registry.py:456 +#, python-brace-format +msgid "Plugin requires at most version {v}" msgstr "" #: plugin/samples/integration/sample.py:39 @@ -7276,12 +7276,12 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:102 -#: stock/models.py:2209 templates/js/translated/stock.js:1398 +#: stock/models.py:2210 templates/js/translated/stock.js:1398 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:103 -#: stock/models.py:2215 +#: stock/models.py:2216 msgid "Result" msgstr "" @@ -7568,84 +7568,83 @@ msgstr "" msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1386 -#, python-brace-format -msgid "Serial numbers already exist: {exists}" -msgstr "" +#: stock/models.py:1386 stock/serializers.py:349 +msgid "Serial numbers already exist" +msgstr "Серийные номера уже существуют" -#: stock/models.py:1456 +#: stock/models.py:1457 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1459 +#: stock/models.py:1460 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1462 +#: stock/models.py:1463 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1465 +#: stock/models.py:1466 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1468 +#: stock/models.py:1469 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1471 +#: stock/models.py:1472 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1478 stock/serializers.py:946 +#: stock/models.py:1479 stock/serializers.py:946 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1482 +#: stock/models.py:1483 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1486 +#: stock/models.py:1487 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1490 +#: stock/models.py:1491 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1659 +#: stock/models.py:1660 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2127 +#: stock/models.py:2128 msgid "Entry notes" msgstr "" -#: stock/models.py:2185 +#: stock/models.py:2186 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2191 +#: stock/models.py:2192 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2210 +#: stock/models.py:2211 msgid "Test name" msgstr "" -#: stock/models.py:2216 +#: stock/models.py:2217 msgid "Test result" msgstr "" -#: stock/models.py:2222 +#: stock/models.py:2223 msgid "Test output value" msgstr "" -#: stock/models.py:2229 +#: stock/models.py:2230 msgid "Test result attachment" msgstr "" -#: stock/models.py:2235 +#: stock/models.py:2236 msgid "Test notes" msgstr "" @@ -7682,10 +7681,6 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:349 -msgid "Serial numbers already exist" -msgstr "Серийные номера уже существуют" - #: stock/serializers.py:389 msgid "Select stock item to install" msgstr "" @@ -8694,8 +8689,8 @@ msgid "Change Password" msgstr "" #: templates/InvenTree/settings/user.html:23 -#: templates/js/translated/helpers.js:53 templates/notes_buttons.html:3 -#: templates/notes_buttons.html:4 +#: templates/js/translated/helpers.js:53 templates/js/translated/pricing.js:610 +#: templates/notes_buttons.html:3 templates/notes_buttons.html:4 msgid "Edit" msgstr "" @@ -10719,16 +10714,6 @@ msgstr "" msgid "No price break data available" msgstr "" -#: templates/js/translated/pricing.js:610 -#, python-brace-format -msgid "Edit ${human_name}" -msgstr "" - -#: templates/js/translated/pricing.js:611 -#, python-brace-format -msgid "Delete ${human_name}" -msgstr "" - #: templates/js/translated/pricing.js:737 msgid "No purchase history data available" msgstr "" diff --git a/InvenTree/locale/sl/LC_MESSAGES/django.po b/InvenTree/locale/sl/LC_MESSAGES/django.po index 88bb68373f..54e0c13f4d 100644 --- a/InvenTree/locale/sl/LC_MESSAGES/django.po +++ b/InvenTree/locale/sl/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-04-14 22:35+0000\n" -"PO-Revision-Date: 2023-04-15 18:23\n" +"POT-Creation-Date: 2023-04-17 14:13+0000\n" +"PO-Revision-Date: 2023-04-17 18:26\n" "Last-Translator: \n" "Language-Team: Slovenian\n" "Language: sl_SI\n" @@ -41,7 +41,7 @@ msgstr "Vnesi datum" #: order/templates/order/so_sidebar.html:17 part/admin.py:41 #: part/models.py:2989 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/admin.py:121 stock/models.py:2126 stock/models.py:2234 +#: stock/admin.py:121 stock/models.py:2127 stock/models.py:2235 #: stock/serializers.py:317 stock/serializers.py:450 stock/serializers.py:531 #: stock/serializers.py:810 stock/serializers.py:909 stock/serializers.py:1041 #: stock/templates/stock/stock_sidebar.html:25 @@ -209,7 +209,7 @@ msgstr "Manjka datoteka" msgid "Missing external link" msgstr "Manjka zunanja povezava" -#: InvenTree/models.py:409 stock/models.py:2228 +#: InvenTree/models.py:409 stock/models.py:2229 #: templates/js/translated/attachment.js:109 #: templates/js/translated/attachment.js:296 msgid "Attachment" @@ -1833,23 +1833,24 @@ msgstr "" msgid "Completed Outputs" msgstr "" -#: common/files.py:62 -msgid "Unsupported file format: {ext.upper()}" +#: common/files.py:63 +#, python-brace-format +msgid "Unsupported file format: {fmt}" msgstr "" -#: common/files.py:64 +#: common/files.py:65 msgid "Error reading file (invalid encoding)" msgstr "" -#: common/files.py:69 +#: common/files.py:70 msgid "Error reading file (invalid format)" msgstr "" -#: common/files.py:71 +#: common/files.py:72 msgid "Error reading file (incorrect dimension)" msgstr "" -#: common/files.py:73 +#: common/files.py:74 msgid "Error reading file (data could be corrupted)" msgstr "" @@ -3481,7 +3482,7 @@ msgstr "" #: company/models.py:394 #: report/templates/report/inventree_test_report_base.html:104 -#: stock/models.py:2221 templates/js/translated/company.js:857 +#: stock/models.py:2222 templates/js/translated/company.js:857 #: templates/js/translated/company.js:1062 templates/js/translated/part.js:1268 #: templates/js/translated/stock.js:1425 msgid "Value" @@ -3902,8 +3903,8 @@ msgstr "" #: company/templates/company/manufacturer_part.html:183 #: part/templates/part/detail.html:393 part/templates/part/detail.html:423 #: templates/js/translated/forms.js:499 templates/js/translated/helpers.js:58 -#: templates/js/translated/part.js:313 templates/js/translated/stock.js:186 -#: users/models.py:243 +#: templates/js/translated/part.js:313 templates/js/translated/pricing.js:611 +#: templates/js/translated/stock.js:186 users/models.py:243 msgid "Delete" msgstr "" @@ -6191,8 +6192,7 @@ msgid "You do not have permission to edit the BOM." msgstr "" #: part/templates/part/bom.html:15 -#, python-format -msgid "The BOM for %(part)s has changed, and must be validated.
" +msgid "The BOM this part has been changed, and must be validated" msgstr "" #: part/templates/part/bom.html:17 @@ -6852,8 +6852,7 @@ msgid "Create new part variant" msgstr "" #: part/templates/part/variant_part.html:10 -#, python-format -msgid "Create a new variant of template '%(full_name)s'." +msgid "Create a new variant part from this template" msgstr "" #: part/templatetags/inventree_extras.py:187 @@ -7038,18 +7037,19 @@ msgstr "" msgid "No date found" msgstr "" -#: plugin/registry.py:450 -msgid "Plugin `{plg_name}` is not compatible with the current InvenTree version {version.inventreeVersion()}!" -msgstr "" - #: plugin/registry.py:452 #, python-brace-format -msgid "Plugin requires at least version {plg_i.MIN_VERSION}" +msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "" #: plugin/registry.py:454 #, python-brace-format -msgid "Plugin requires at most version {plg_i.MAX_VERSION}" +msgid "Plugin requires at least version {v}" +msgstr "" + +#: plugin/registry.py:456 +#, python-brace-format +msgid "Plugin requires at most version {v}" msgstr "" #: plugin/samples/integration/sample.py:39 @@ -7276,12 +7276,12 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:102 -#: stock/models.py:2209 templates/js/translated/stock.js:1398 +#: stock/models.py:2210 templates/js/translated/stock.js:1398 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:103 -#: stock/models.py:2215 +#: stock/models.py:2216 msgid "Result" msgstr "" @@ -7568,84 +7568,83 @@ msgstr "" msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1386 -#, python-brace-format -msgid "Serial numbers already exist: {exists}" +#: stock/models.py:1386 stock/serializers.py:349 +msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1456 +#: stock/models.py:1457 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1459 +#: stock/models.py:1460 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1462 +#: stock/models.py:1463 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1465 +#: stock/models.py:1466 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1468 +#: stock/models.py:1469 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1471 +#: stock/models.py:1472 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1478 stock/serializers.py:946 +#: stock/models.py:1479 stock/serializers.py:946 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1482 +#: stock/models.py:1483 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1486 +#: stock/models.py:1487 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1490 +#: stock/models.py:1491 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1659 +#: stock/models.py:1660 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2127 +#: stock/models.py:2128 msgid "Entry notes" msgstr "" -#: stock/models.py:2185 +#: stock/models.py:2186 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2191 +#: stock/models.py:2192 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2210 +#: stock/models.py:2211 msgid "Test name" msgstr "" -#: stock/models.py:2216 +#: stock/models.py:2217 msgid "Test result" msgstr "" -#: stock/models.py:2222 +#: stock/models.py:2223 msgid "Test output value" msgstr "" -#: stock/models.py:2229 +#: stock/models.py:2230 msgid "Test result attachment" msgstr "" -#: stock/models.py:2235 +#: stock/models.py:2236 msgid "Test notes" msgstr "" @@ -7682,10 +7681,6 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:349 -msgid "Serial numbers already exist" -msgstr "" - #: stock/serializers.py:389 msgid "Select stock item to install" msgstr "" @@ -8694,8 +8689,8 @@ msgid "Change Password" msgstr "" #: templates/InvenTree/settings/user.html:23 -#: templates/js/translated/helpers.js:53 templates/notes_buttons.html:3 -#: templates/notes_buttons.html:4 +#: templates/js/translated/helpers.js:53 templates/js/translated/pricing.js:610 +#: templates/notes_buttons.html:3 templates/notes_buttons.html:4 msgid "Edit" msgstr "" @@ -10719,16 +10714,6 @@ msgstr "" msgid "No price break data available" msgstr "" -#: templates/js/translated/pricing.js:610 -#, python-brace-format -msgid "Edit ${human_name}" -msgstr "" - -#: templates/js/translated/pricing.js:611 -#, python-brace-format -msgid "Delete ${human_name}" -msgstr "" - #: templates/js/translated/pricing.js:737 msgid "No purchase history data available" msgstr "" diff --git a/InvenTree/locale/sv/LC_MESSAGES/django.po b/InvenTree/locale/sv/LC_MESSAGES/django.po index 57d701c40d..6c9e0c4754 100644 --- a/InvenTree/locale/sv/LC_MESSAGES/django.po +++ b/InvenTree/locale/sv/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-04-14 22:35+0000\n" -"PO-Revision-Date: 2023-04-15 18:23\n" +"POT-Creation-Date: 2023-04-17 14:13+0000\n" +"PO-Revision-Date: 2023-04-17 18:26\n" "Last-Translator: \n" "Language-Team: Swedish\n" "Language: sv_SE\n" @@ -41,7 +41,7 @@ msgstr "Ange datum" #: order/templates/order/so_sidebar.html:17 part/admin.py:41 #: part/models.py:2989 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/admin.py:121 stock/models.py:2126 stock/models.py:2234 +#: stock/admin.py:121 stock/models.py:2127 stock/models.py:2235 #: stock/serializers.py:317 stock/serializers.py:450 stock/serializers.py:531 #: stock/serializers.py:810 stock/serializers.py:909 stock/serializers.py:1041 #: stock/templates/stock/stock_sidebar.html:25 @@ -209,7 +209,7 @@ msgstr "Saknad fil" msgid "Missing external link" msgstr "Extern länk saknas" -#: InvenTree/models.py:409 stock/models.py:2228 +#: InvenTree/models.py:409 stock/models.py:2229 #: templates/js/translated/attachment.js:109 #: templates/js/translated/attachment.js:296 msgid "Attachment" @@ -1833,23 +1833,24 @@ msgstr "" msgid "Completed Outputs" msgstr "" -#: common/files.py:62 -msgid "Unsupported file format: {ext.upper()}" -msgstr "Filformatet stöds inte: {ext.upper()}" +#: common/files.py:63 +#, python-brace-format +msgid "Unsupported file format: {fmt}" +msgstr "" -#: common/files.py:64 +#: common/files.py:65 msgid "Error reading file (invalid encoding)" msgstr "Fel vid läsning av fil (ogiltig kodning)" -#: common/files.py:69 +#: common/files.py:70 msgid "Error reading file (invalid format)" msgstr "Fel vid läsning av filen (ogiltigt format)" -#: common/files.py:71 +#: common/files.py:72 msgid "Error reading file (incorrect dimension)" msgstr "Fel vid läsning av filen (felaktig dimension)" -#: common/files.py:73 +#: common/files.py:74 msgid "Error reading file (data could be corrupted)" msgstr "Fel vid läsning av fil (data kan vara skadat)" @@ -3481,7 +3482,7 @@ msgstr "" #: company/models.py:394 #: report/templates/report/inventree_test_report_base.html:104 -#: stock/models.py:2221 templates/js/translated/company.js:857 +#: stock/models.py:2222 templates/js/translated/company.js:857 #: templates/js/translated/company.js:1062 templates/js/translated/part.js:1268 #: templates/js/translated/stock.js:1425 msgid "Value" @@ -3902,8 +3903,8 @@ msgstr "" #: company/templates/company/manufacturer_part.html:183 #: part/templates/part/detail.html:393 part/templates/part/detail.html:423 #: templates/js/translated/forms.js:499 templates/js/translated/helpers.js:58 -#: templates/js/translated/part.js:313 templates/js/translated/stock.js:186 -#: users/models.py:243 +#: templates/js/translated/part.js:313 templates/js/translated/pricing.js:611 +#: templates/js/translated/stock.js:186 users/models.py:243 msgid "Delete" msgstr "" @@ -6191,8 +6192,7 @@ msgid "You do not have permission to edit the BOM." msgstr "" #: part/templates/part/bom.html:15 -#, python-format -msgid "The BOM for %(part)s has changed, and must be validated.
" +msgid "The BOM this part has been changed, and must be validated" msgstr "" #: part/templates/part/bom.html:17 @@ -6852,8 +6852,7 @@ msgid "Create new part variant" msgstr "" #: part/templates/part/variant_part.html:10 -#, python-format -msgid "Create a new variant of template '%(full_name)s'." +msgid "Create a new variant part from this template" msgstr "" #: part/templatetags/inventree_extras.py:187 @@ -7038,18 +7037,19 @@ msgstr "" msgid "No date found" msgstr "" -#: plugin/registry.py:450 -msgid "Plugin `{plg_name}` is not compatible with the current InvenTree version {version.inventreeVersion()}!" -msgstr "" - #: plugin/registry.py:452 #, python-brace-format -msgid "Plugin requires at least version {plg_i.MIN_VERSION}" +msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "" #: plugin/registry.py:454 #, python-brace-format -msgid "Plugin requires at most version {plg_i.MAX_VERSION}" +msgid "Plugin requires at least version {v}" +msgstr "" + +#: plugin/registry.py:456 +#, python-brace-format +msgid "Plugin requires at most version {v}" msgstr "" #: plugin/samples/integration/sample.py:39 @@ -7276,12 +7276,12 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:102 -#: stock/models.py:2209 templates/js/translated/stock.js:1398 +#: stock/models.py:2210 templates/js/translated/stock.js:1398 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:103 -#: stock/models.py:2215 +#: stock/models.py:2216 msgid "Result" msgstr "" @@ -7568,84 +7568,83 @@ msgstr "" msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1386 -#, python-brace-format -msgid "Serial numbers already exist: {exists}" +#: stock/models.py:1386 stock/serializers.py:349 +msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1456 +#: stock/models.py:1457 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1459 +#: stock/models.py:1460 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1462 +#: stock/models.py:1463 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1465 +#: stock/models.py:1466 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1468 +#: stock/models.py:1469 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1471 +#: stock/models.py:1472 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1478 stock/serializers.py:946 +#: stock/models.py:1479 stock/serializers.py:946 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1482 +#: stock/models.py:1483 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1486 +#: stock/models.py:1487 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1490 +#: stock/models.py:1491 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1659 +#: stock/models.py:1660 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2127 +#: stock/models.py:2128 msgid "Entry notes" msgstr "" -#: stock/models.py:2185 +#: stock/models.py:2186 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2191 +#: stock/models.py:2192 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2210 +#: stock/models.py:2211 msgid "Test name" msgstr "" -#: stock/models.py:2216 +#: stock/models.py:2217 msgid "Test result" msgstr "" -#: stock/models.py:2222 +#: stock/models.py:2223 msgid "Test output value" msgstr "" -#: stock/models.py:2229 +#: stock/models.py:2230 msgid "Test result attachment" msgstr "" -#: stock/models.py:2235 +#: stock/models.py:2236 msgid "Test notes" msgstr "" @@ -7682,10 +7681,6 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:349 -msgid "Serial numbers already exist" -msgstr "" - #: stock/serializers.py:389 msgid "Select stock item to install" msgstr "" @@ -8694,8 +8689,8 @@ msgid "Change Password" msgstr "" #: templates/InvenTree/settings/user.html:23 -#: templates/js/translated/helpers.js:53 templates/notes_buttons.html:3 -#: templates/notes_buttons.html:4 +#: templates/js/translated/helpers.js:53 templates/js/translated/pricing.js:610 +#: templates/notes_buttons.html:3 templates/notes_buttons.html:4 msgid "Edit" msgstr "" @@ -10719,16 +10714,6 @@ msgstr "" msgid "No price break data available" msgstr "" -#: templates/js/translated/pricing.js:610 -#, python-brace-format -msgid "Edit ${human_name}" -msgstr "" - -#: templates/js/translated/pricing.js:611 -#, python-brace-format -msgid "Delete ${human_name}" -msgstr "" - #: templates/js/translated/pricing.js:737 msgid "No purchase history data available" msgstr "" diff --git a/InvenTree/locale/th/LC_MESSAGES/django.po b/InvenTree/locale/th/LC_MESSAGES/django.po index 28aa514296..8db9f7ea75 100644 --- a/InvenTree/locale/th/LC_MESSAGES/django.po +++ b/InvenTree/locale/th/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-04-14 22:35+0000\n" -"PO-Revision-Date: 2023-04-15 18:23\n" +"POT-Creation-Date: 2023-04-17 14:13+0000\n" +"PO-Revision-Date: 2023-04-17 18:26\n" "Last-Translator: \n" "Language-Team: Thai\n" "Language: th_TH\n" @@ -41,7 +41,7 @@ msgstr "ป้อนวันที่" #: order/templates/order/so_sidebar.html:17 part/admin.py:41 #: part/models.py:2989 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/admin.py:121 stock/models.py:2126 stock/models.py:2234 +#: stock/admin.py:121 stock/models.py:2127 stock/models.py:2235 #: stock/serializers.py:317 stock/serializers.py:450 stock/serializers.py:531 #: stock/serializers.py:810 stock/serializers.py:909 stock/serializers.py:1041 #: stock/templates/stock/stock_sidebar.html:25 @@ -209,7 +209,7 @@ msgstr "" msgid "Missing external link" msgstr "" -#: InvenTree/models.py:409 stock/models.py:2228 +#: InvenTree/models.py:409 stock/models.py:2229 #: templates/js/translated/attachment.js:109 #: templates/js/translated/attachment.js:296 msgid "Attachment" @@ -1833,23 +1833,24 @@ msgstr "" msgid "Completed Outputs" msgstr "" -#: common/files.py:62 -msgid "Unsupported file format: {ext.upper()}" +#: common/files.py:63 +#, python-brace-format +msgid "Unsupported file format: {fmt}" msgstr "" -#: common/files.py:64 +#: common/files.py:65 msgid "Error reading file (invalid encoding)" msgstr "" -#: common/files.py:69 +#: common/files.py:70 msgid "Error reading file (invalid format)" msgstr "" -#: common/files.py:71 +#: common/files.py:72 msgid "Error reading file (incorrect dimension)" msgstr "" -#: common/files.py:73 +#: common/files.py:74 msgid "Error reading file (data could be corrupted)" msgstr "" @@ -3481,7 +3482,7 @@ msgstr "" #: company/models.py:394 #: report/templates/report/inventree_test_report_base.html:104 -#: stock/models.py:2221 templates/js/translated/company.js:857 +#: stock/models.py:2222 templates/js/translated/company.js:857 #: templates/js/translated/company.js:1062 templates/js/translated/part.js:1268 #: templates/js/translated/stock.js:1425 msgid "Value" @@ -3902,8 +3903,8 @@ msgstr "" #: company/templates/company/manufacturer_part.html:183 #: part/templates/part/detail.html:393 part/templates/part/detail.html:423 #: templates/js/translated/forms.js:499 templates/js/translated/helpers.js:58 -#: templates/js/translated/part.js:313 templates/js/translated/stock.js:186 -#: users/models.py:243 +#: templates/js/translated/part.js:313 templates/js/translated/pricing.js:611 +#: templates/js/translated/stock.js:186 users/models.py:243 msgid "Delete" msgstr "" @@ -6191,8 +6192,7 @@ msgid "You do not have permission to edit the BOM." msgstr "" #: part/templates/part/bom.html:15 -#, python-format -msgid "The BOM for %(part)s has changed, and must be validated.
" +msgid "The BOM this part has been changed, and must be validated" msgstr "" #: part/templates/part/bom.html:17 @@ -6852,8 +6852,7 @@ msgid "Create new part variant" msgstr "" #: part/templates/part/variant_part.html:10 -#, python-format -msgid "Create a new variant of template '%(full_name)s'." +msgid "Create a new variant part from this template" msgstr "" #: part/templatetags/inventree_extras.py:187 @@ -7038,18 +7037,19 @@ msgstr "" msgid "No date found" msgstr "" -#: plugin/registry.py:450 -msgid "Plugin `{plg_name}` is not compatible with the current InvenTree version {version.inventreeVersion()}!" -msgstr "" - #: plugin/registry.py:452 #, python-brace-format -msgid "Plugin requires at least version {plg_i.MIN_VERSION}" +msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "" #: plugin/registry.py:454 #, python-brace-format -msgid "Plugin requires at most version {plg_i.MAX_VERSION}" +msgid "Plugin requires at least version {v}" +msgstr "" + +#: plugin/registry.py:456 +#, python-brace-format +msgid "Plugin requires at most version {v}" msgstr "" #: plugin/samples/integration/sample.py:39 @@ -7276,12 +7276,12 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:102 -#: stock/models.py:2209 templates/js/translated/stock.js:1398 +#: stock/models.py:2210 templates/js/translated/stock.js:1398 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:103 -#: stock/models.py:2215 +#: stock/models.py:2216 msgid "Result" msgstr "" @@ -7568,84 +7568,83 @@ msgstr "" msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1386 -#, python-brace-format -msgid "Serial numbers already exist: {exists}" +#: stock/models.py:1386 stock/serializers.py:349 +msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1456 +#: stock/models.py:1457 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1459 +#: stock/models.py:1460 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1462 +#: stock/models.py:1463 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1465 +#: stock/models.py:1466 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1468 +#: stock/models.py:1469 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1471 +#: stock/models.py:1472 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1478 stock/serializers.py:946 +#: stock/models.py:1479 stock/serializers.py:946 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1482 +#: stock/models.py:1483 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1486 +#: stock/models.py:1487 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1490 +#: stock/models.py:1491 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1659 +#: stock/models.py:1660 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2127 +#: stock/models.py:2128 msgid "Entry notes" msgstr "" -#: stock/models.py:2185 +#: stock/models.py:2186 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2191 +#: stock/models.py:2192 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2210 +#: stock/models.py:2211 msgid "Test name" msgstr "" -#: stock/models.py:2216 +#: stock/models.py:2217 msgid "Test result" msgstr "" -#: stock/models.py:2222 +#: stock/models.py:2223 msgid "Test output value" msgstr "" -#: stock/models.py:2229 +#: stock/models.py:2230 msgid "Test result attachment" msgstr "" -#: stock/models.py:2235 +#: stock/models.py:2236 msgid "Test notes" msgstr "" @@ -7682,10 +7681,6 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:349 -msgid "Serial numbers already exist" -msgstr "" - #: stock/serializers.py:389 msgid "Select stock item to install" msgstr "" @@ -8694,8 +8689,8 @@ msgid "Change Password" msgstr "" #: templates/InvenTree/settings/user.html:23 -#: templates/js/translated/helpers.js:53 templates/notes_buttons.html:3 -#: templates/notes_buttons.html:4 +#: templates/js/translated/helpers.js:53 templates/js/translated/pricing.js:610 +#: templates/notes_buttons.html:3 templates/notes_buttons.html:4 msgid "Edit" msgstr "" @@ -10719,16 +10714,6 @@ msgstr "" msgid "No price break data available" msgstr "" -#: templates/js/translated/pricing.js:610 -#, python-brace-format -msgid "Edit ${human_name}" -msgstr "" - -#: templates/js/translated/pricing.js:611 -#, python-brace-format -msgid "Delete ${human_name}" -msgstr "" - #: templates/js/translated/pricing.js:737 msgid "No purchase history data available" msgstr "" diff --git a/InvenTree/locale/tr/LC_MESSAGES/django.po b/InvenTree/locale/tr/LC_MESSAGES/django.po index 6ea8437219..a9e83829a3 100644 --- a/InvenTree/locale/tr/LC_MESSAGES/django.po +++ b/InvenTree/locale/tr/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-04-14 22:35+0000\n" -"PO-Revision-Date: 2023-04-15 18:23\n" +"POT-Creation-Date: 2023-04-17 14:13+0000\n" +"PO-Revision-Date: 2023-04-17 18:26\n" "Last-Translator: \n" "Language-Team: Turkish\n" "Language: tr_TR\n" @@ -41,7 +41,7 @@ msgstr "Tarih giriniz" #: order/templates/order/so_sidebar.html:17 part/admin.py:41 #: part/models.py:2989 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/admin.py:121 stock/models.py:2126 stock/models.py:2234 +#: stock/admin.py:121 stock/models.py:2127 stock/models.py:2235 #: stock/serializers.py:317 stock/serializers.py:450 stock/serializers.py:531 #: stock/serializers.py:810 stock/serializers.py:909 stock/serializers.py:1041 #: stock/templates/stock/stock_sidebar.html:25 @@ -209,7 +209,7 @@ msgstr "Eksik dosya" msgid "Missing external link" msgstr "Bozuk dış bağlantı" -#: InvenTree/models.py:409 stock/models.py:2228 +#: InvenTree/models.py:409 stock/models.py:2229 #: templates/js/translated/attachment.js:109 #: templates/js/translated/attachment.js:296 msgid "Attachment" @@ -1833,23 +1833,24 @@ msgstr "Tamamlanmamış Çıktılar" msgid "Completed Outputs" msgstr "" -#: common/files.py:62 -msgid "Unsupported file format: {ext.upper()}" -msgstr "Desteklenmeyen dosya formatı: {ext.upper()}" +#: common/files.py:63 +#, python-brace-format +msgid "Unsupported file format: {fmt}" +msgstr "" -#: common/files.py:64 +#: common/files.py:65 msgid "Error reading file (invalid encoding)" msgstr "Dosya okurken hata (geçersiz biçim)" -#: common/files.py:69 +#: common/files.py:70 msgid "Error reading file (invalid format)" msgstr "Dosya okurken hata (geçersiz biçim)" -#: common/files.py:71 +#: common/files.py:72 msgid "Error reading file (incorrect dimension)" msgstr "Dosya okurken hata (hatalı ölçüler)" -#: common/files.py:73 +#: common/files.py:74 msgid "Error reading file (data could be corrupted)" msgstr "Dosya okurken hata (veri bozulmuş olabilir)" @@ -3481,7 +3482,7 @@ msgstr "Parametre adı" #: company/models.py:394 #: report/templates/report/inventree_test_report_base.html:104 -#: stock/models.py:2221 templates/js/translated/company.js:857 +#: stock/models.py:2222 templates/js/translated/company.js:857 #: templates/js/translated/company.js:1062 templates/js/translated/part.js:1268 #: templates/js/translated/stock.js:1425 msgid "Value" @@ -3902,8 +3903,8 @@ msgstr "Tedarikçi parçalarını sil" #: company/templates/company/manufacturer_part.html:183 #: part/templates/part/detail.html:393 part/templates/part/detail.html:423 #: templates/js/translated/forms.js:499 templates/js/translated/helpers.js:58 -#: templates/js/translated/part.js:313 templates/js/translated/stock.js:186 -#: users/models.py:243 +#: templates/js/translated/part.js:313 templates/js/translated/pricing.js:611 +#: templates/js/translated/stock.js:186 users/models.py:243 msgid "Delete" msgstr "" @@ -6191,8 +6192,7 @@ msgid "You do not have permission to edit the BOM." msgstr "" #: part/templates/part/bom.html:15 -#, python-format -msgid "The BOM for %(part)s has changed, and must be validated.
" +msgid "The BOM this part has been changed, and must be validated" msgstr "" #: part/templates/part/bom.html:17 @@ -6852,8 +6852,7 @@ msgid "Create new part variant" msgstr "Yeni parça çeşidi oluştur" #: part/templates/part/variant_part.html:10 -#, python-format -msgid "Create a new variant of template '%(full_name)s'." +msgid "Create a new variant part from this template" msgstr "" #: part/templatetags/inventree_extras.py:187 @@ -7038,18 +7037,19 @@ msgstr "" msgid "No date found" msgstr "" -#: plugin/registry.py:450 -msgid "Plugin `{plg_name}` is not compatible with the current InvenTree version {version.inventreeVersion()}!" -msgstr "" - #: plugin/registry.py:452 #, python-brace-format -msgid "Plugin requires at least version {plg_i.MIN_VERSION}" +msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "" #: plugin/registry.py:454 #, python-brace-format -msgid "Plugin requires at most version {plg_i.MAX_VERSION}" +msgid "Plugin requires at least version {v}" +msgstr "" + +#: plugin/registry.py:456 +#, python-brace-format +msgid "Plugin requires at most version {v}" msgstr "" #: plugin/samples/integration/sample.py:39 @@ -7276,12 +7276,12 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:102 -#: stock/models.py:2209 templates/js/translated/stock.js:1398 +#: stock/models.py:2210 templates/js/translated/stock.js:1398 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:103 -#: stock/models.py:2215 +#: stock/models.py:2216 msgid "Result" msgstr "" @@ -7568,84 +7568,83 @@ msgstr "Seri numaraları tam sayı listesi olmalı" msgid "Quantity does not match serial numbers" msgstr "Miktar seri numaları ile eşleşmiyor" -#: stock/models.py:1386 -#, python-brace-format -msgid "Serial numbers already exist: {exists}" -msgstr "Seri numaraları zaten mevcut: {exists}" +#: stock/models.py:1386 stock/serializers.py:349 +msgid "Serial numbers already exist" +msgstr "Seri numaraları zaten mevcut" -#: stock/models.py:1456 +#: stock/models.py:1457 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1459 +#: stock/models.py:1460 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1462 +#: stock/models.py:1463 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1465 +#: stock/models.py:1466 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1468 +#: stock/models.py:1469 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1471 +#: stock/models.py:1472 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1478 stock/serializers.py:946 +#: stock/models.py:1479 stock/serializers.py:946 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1482 +#: stock/models.py:1483 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1486 +#: stock/models.py:1487 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1490 +#: stock/models.py:1491 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1659 +#: stock/models.py:1660 msgid "StockItem cannot be moved as it is not in stock" msgstr "Stok kalemi stokta olmadığı için taşınamaz" -#: stock/models.py:2127 +#: stock/models.py:2128 msgid "Entry notes" msgstr "" -#: stock/models.py:2185 +#: stock/models.py:2186 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2191 +#: stock/models.py:2192 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2210 +#: stock/models.py:2211 msgid "Test name" msgstr "" -#: stock/models.py:2216 +#: stock/models.py:2217 msgid "Test result" msgstr "" -#: stock/models.py:2222 +#: stock/models.py:2223 msgid "Test output value" msgstr "" -#: stock/models.py:2229 +#: stock/models.py:2230 msgid "Test result attachment" msgstr "" -#: stock/models.py:2235 +#: stock/models.py:2236 msgid "Test notes" msgstr "" @@ -7682,10 +7681,6 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:349 -msgid "Serial numbers already exist" -msgstr "Seri numaraları zaten mevcut" - #: stock/serializers.py:389 msgid "Select stock item to install" msgstr "" @@ -8694,8 +8689,8 @@ msgid "Change Password" msgstr "" #: templates/InvenTree/settings/user.html:23 -#: templates/js/translated/helpers.js:53 templates/notes_buttons.html:3 -#: templates/notes_buttons.html:4 +#: templates/js/translated/helpers.js:53 templates/js/translated/pricing.js:610 +#: templates/notes_buttons.html:3 templates/notes_buttons.html:4 msgid "Edit" msgstr "" @@ -10719,16 +10714,6 @@ msgstr "" msgid "No price break data available" msgstr "" -#: templates/js/translated/pricing.js:610 -#, python-brace-format -msgid "Edit ${human_name}" -msgstr "" - -#: templates/js/translated/pricing.js:611 -#, python-brace-format -msgid "Delete ${human_name}" -msgstr "" - #: templates/js/translated/pricing.js:737 msgid "No purchase history data available" msgstr "" diff --git a/InvenTree/locale/vi/LC_MESSAGES/django.po b/InvenTree/locale/vi/LC_MESSAGES/django.po index 1472a40e77..ddd09671e6 100644 --- a/InvenTree/locale/vi/LC_MESSAGES/django.po +++ b/InvenTree/locale/vi/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-04-14 22:35+0000\n" -"PO-Revision-Date: 2023-04-15 18:23\n" +"POT-Creation-Date: 2023-04-17 14:13+0000\n" +"PO-Revision-Date: 2023-04-17 18:26\n" "Last-Translator: \n" "Language-Team: Vietnamese\n" "Language: vi_VN\n" @@ -41,7 +41,7 @@ msgstr "" #: order/templates/order/so_sidebar.html:17 part/admin.py:41 #: part/models.py:2989 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/admin.py:121 stock/models.py:2126 stock/models.py:2234 +#: stock/admin.py:121 stock/models.py:2127 stock/models.py:2235 #: stock/serializers.py:317 stock/serializers.py:450 stock/serializers.py:531 #: stock/serializers.py:810 stock/serializers.py:909 stock/serializers.py:1041 #: stock/templates/stock/stock_sidebar.html:25 @@ -209,7 +209,7 @@ msgstr "" msgid "Missing external link" msgstr "" -#: InvenTree/models.py:409 stock/models.py:2228 +#: InvenTree/models.py:409 stock/models.py:2229 #: templates/js/translated/attachment.js:109 #: templates/js/translated/attachment.js:296 msgid "Attachment" @@ -1833,23 +1833,24 @@ msgstr "" msgid "Completed Outputs" msgstr "" -#: common/files.py:62 -msgid "Unsupported file format: {ext.upper()}" +#: common/files.py:63 +#, python-brace-format +msgid "Unsupported file format: {fmt}" msgstr "" -#: common/files.py:64 +#: common/files.py:65 msgid "Error reading file (invalid encoding)" msgstr "" -#: common/files.py:69 +#: common/files.py:70 msgid "Error reading file (invalid format)" msgstr "" -#: common/files.py:71 +#: common/files.py:72 msgid "Error reading file (incorrect dimension)" msgstr "" -#: common/files.py:73 +#: common/files.py:74 msgid "Error reading file (data could be corrupted)" msgstr "" @@ -3481,7 +3482,7 @@ msgstr "" #: company/models.py:394 #: report/templates/report/inventree_test_report_base.html:104 -#: stock/models.py:2221 templates/js/translated/company.js:857 +#: stock/models.py:2222 templates/js/translated/company.js:857 #: templates/js/translated/company.js:1062 templates/js/translated/part.js:1268 #: templates/js/translated/stock.js:1425 msgid "Value" @@ -3902,8 +3903,8 @@ msgstr "" #: company/templates/company/manufacturer_part.html:183 #: part/templates/part/detail.html:393 part/templates/part/detail.html:423 #: templates/js/translated/forms.js:499 templates/js/translated/helpers.js:58 -#: templates/js/translated/part.js:313 templates/js/translated/stock.js:186 -#: users/models.py:243 +#: templates/js/translated/part.js:313 templates/js/translated/pricing.js:611 +#: templates/js/translated/stock.js:186 users/models.py:243 msgid "Delete" msgstr "" @@ -6191,8 +6192,7 @@ msgid "You do not have permission to edit the BOM." msgstr "" #: part/templates/part/bom.html:15 -#, python-format -msgid "The BOM for %(part)s has changed, and must be validated.
" +msgid "The BOM this part has been changed, and must be validated" msgstr "" #: part/templates/part/bom.html:17 @@ -6852,8 +6852,7 @@ msgid "Create new part variant" msgstr "" #: part/templates/part/variant_part.html:10 -#, python-format -msgid "Create a new variant of template '%(full_name)s'." +msgid "Create a new variant part from this template" msgstr "" #: part/templatetags/inventree_extras.py:187 @@ -7038,18 +7037,19 @@ msgstr "" msgid "No date found" msgstr "" -#: plugin/registry.py:450 -msgid "Plugin `{plg_name}` is not compatible with the current InvenTree version {version.inventreeVersion()}!" -msgstr "" - #: plugin/registry.py:452 #, python-brace-format -msgid "Plugin requires at least version {plg_i.MIN_VERSION}" +msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "" #: plugin/registry.py:454 #, python-brace-format -msgid "Plugin requires at most version {plg_i.MAX_VERSION}" +msgid "Plugin requires at least version {v}" +msgstr "" + +#: plugin/registry.py:456 +#, python-brace-format +msgid "Plugin requires at most version {v}" msgstr "" #: plugin/samples/integration/sample.py:39 @@ -7276,12 +7276,12 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:102 -#: stock/models.py:2209 templates/js/translated/stock.js:1398 +#: stock/models.py:2210 templates/js/translated/stock.js:1398 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:103 -#: stock/models.py:2215 +#: stock/models.py:2216 msgid "Result" msgstr "" @@ -7568,84 +7568,83 @@ msgstr "" msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1386 -#, python-brace-format -msgid "Serial numbers already exist: {exists}" +#: stock/models.py:1386 stock/serializers.py:349 +msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1456 +#: stock/models.py:1457 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1459 +#: stock/models.py:1460 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1462 +#: stock/models.py:1463 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1465 +#: stock/models.py:1466 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1468 +#: stock/models.py:1469 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1471 +#: stock/models.py:1472 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1478 stock/serializers.py:946 +#: stock/models.py:1479 stock/serializers.py:946 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1482 +#: stock/models.py:1483 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1486 +#: stock/models.py:1487 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1490 +#: stock/models.py:1491 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1659 +#: stock/models.py:1660 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2127 +#: stock/models.py:2128 msgid "Entry notes" msgstr "" -#: stock/models.py:2185 +#: stock/models.py:2186 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2191 +#: stock/models.py:2192 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2210 +#: stock/models.py:2211 msgid "Test name" msgstr "" -#: stock/models.py:2216 +#: stock/models.py:2217 msgid "Test result" msgstr "" -#: stock/models.py:2222 +#: stock/models.py:2223 msgid "Test output value" msgstr "" -#: stock/models.py:2229 +#: stock/models.py:2230 msgid "Test result attachment" msgstr "" -#: stock/models.py:2235 +#: stock/models.py:2236 msgid "Test notes" msgstr "" @@ -7682,10 +7681,6 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:349 -msgid "Serial numbers already exist" -msgstr "" - #: stock/serializers.py:389 msgid "Select stock item to install" msgstr "" @@ -8694,8 +8689,8 @@ msgid "Change Password" msgstr "" #: templates/InvenTree/settings/user.html:23 -#: templates/js/translated/helpers.js:53 templates/notes_buttons.html:3 -#: templates/notes_buttons.html:4 +#: templates/js/translated/helpers.js:53 templates/js/translated/pricing.js:610 +#: templates/notes_buttons.html:3 templates/notes_buttons.html:4 msgid "Edit" msgstr "" @@ -10719,16 +10714,6 @@ msgstr "" msgid "No price break data available" msgstr "" -#: templates/js/translated/pricing.js:610 -#, python-brace-format -msgid "Edit ${human_name}" -msgstr "" - -#: templates/js/translated/pricing.js:611 -#, python-brace-format -msgid "Delete ${human_name}" -msgstr "" - #: templates/js/translated/pricing.js:737 msgid "No purchase history data available" msgstr "" diff --git a/InvenTree/locale/zh/LC_MESSAGES/django.po b/InvenTree/locale/zh/LC_MESSAGES/django.po index 75c03723e5..80ff854c2e 100644 --- a/InvenTree/locale/zh/LC_MESSAGES/django.po +++ b/InvenTree/locale/zh/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-04-14 22:35+0000\n" -"PO-Revision-Date: 2023-04-15 18:23\n" +"POT-Creation-Date: 2023-04-17 14:13+0000\n" +"PO-Revision-Date: 2023-04-17 18:26\n" "Last-Translator: \n" "Language-Team: Chinese Simplified\n" "Language: zh_CN\n" @@ -41,7 +41,7 @@ msgstr "输入日期" #: order/templates/order/so_sidebar.html:17 part/admin.py:41 #: part/models.py:2989 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/admin.py:121 stock/models.py:2126 stock/models.py:2234 +#: stock/admin.py:121 stock/models.py:2127 stock/models.py:2235 #: stock/serializers.py:317 stock/serializers.py:450 stock/serializers.py:531 #: stock/serializers.py:810 stock/serializers.py:909 stock/serializers.py:1041 #: stock/templates/stock/stock_sidebar.html:25 @@ -209,7 +209,7 @@ msgstr "缺少文件" msgid "Missing external link" msgstr "缺少外部链接" -#: InvenTree/models.py:409 stock/models.py:2228 +#: InvenTree/models.py:409 stock/models.py:2229 #: templates/js/translated/attachment.js:109 #: templates/js/translated/attachment.js:296 msgid "Attachment" @@ -1833,23 +1833,24 @@ msgstr "未完成输出" msgid "Completed Outputs" msgstr "已完成输出" -#: common/files.py:62 -msgid "Unsupported file format: {ext.upper()}" -msgstr "不支持的文件格式: {ext.uper()}" +#: common/files.py:63 +#, python-brace-format +msgid "Unsupported file format: {fmt}" +msgstr "" -#: common/files.py:64 +#: common/files.py:65 msgid "Error reading file (invalid encoding)" msgstr "读取文件时发生错误 (无效编码)" -#: common/files.py:69 +#: common/files.py:70 msgid "Error reading file (invalid format)" msgstr "读取文件时发生错误 (无效编码)" -#: common/files.py:71 +#: common/files.py:72 msgid "Error reading file (incorrect dimension)" msgstr "读取文件时出错(不正确的尺寸)" -#: common/files.py:73 +#: common/files.py:74 msgid "Error reading file (data could be corrupted)" msgstr "读取文件时出错(数据可能已损坏)" @@ -3481,7 +3482,7 @@ msgstr "参数名称" #: company/models.py:394 #: report/templates/report/inventree_test_report_base.html:104 -#: stock/models.py:2221 templates/js/translated/company.js:857 +#: stock/models.py:2222 templates/js/translated/company.js:857 #: templates/js/translated/company.js:1062 templates/js/translated/part.js:1268 #: templates/js/translated/stock.js:1425 msgid "Value" @@ -3902,8 +3903,8 @@ msgstr "删除供应商商品" #: company/templates/company/manufacturer_part.html:183 #: part/templates/part/detail.html:393 part/templates/part/detail.html:423 #: templates/js/translated/forms.js:499 templates/js/translated/helpers.js:58 -#: templates/js/translated/part.js:313 templates/js/translated/stock.js:186 -#: users/models.py:243 +#: templates/js/translated/part.js:313 templates/js/translated/pricing.js:611 +#: templates/js/translated/stock.js:186 users/models.py:243 msgid "Delete" msgstr "删除" @@ -6191,8 +6192,7 @@ msgid "You do not have permission to edit the BOM." msgstr "" #: part/templates/part/bom.html:15 -#, python-format -msgid "The BOM for %(part)s has changed, and must be validated.
" +msgid "The BOM this part has been changed, and must be validated" msgstr "" #: part/templates/part/bom.html:17 @@ -6852,8 +6852,7 @@ msgid "Create new part variant" msgstr "" #: part/templates/part/variant_part.html:10 -#, python-format -msgid "Create a new variant of template '%(full_name)s'." +msgid "Create a new variant part from this template" msgstr "" #: part/templatetags/inventree_extras.py:187 @@ -7038,18 +7037,19 @@ msgstr "" msgid "No date found" msgstr "" -#: plugin/registry.py:450 -msgid "Plugin `{plg_name}` is not compatible with the current InvenTree version {version.inventreeVersion()}!" -msgstr "" - #: plugin/registry.py:452 #, python-brace-format -msgid "Plugin requires at least version {plg_i.MIN_VERSION}" +msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "" #: plugin/registry.py:454 #, python-brace-format -msgid "Plugin requires at most version {plg_i.MAX_VERSION}" +msgid "Plugin requires at least version {v}" +msgstr "" + +#: plugin/registry.py:456 +#, python-brace-format +msgid "Plugin requires at most version {v}" msgstr "" #: plugin/samples/integration/sample.py:39 @@ -7276,12 +7276,12 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:102 -#: stock/models.py:2209 templates/js/translated/stock.js:1398 +#: stock/models.py:2210 templates/js/translated/stock.js:1398 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:103 -#: stock/models.py:2215 +#: stock/models.py:2216 msgid "Result" msgstr "" @@ -7568,84 +7568,83 @@ msgstr "" msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1386 -#, python-brace-format -msgid "Serial numbers already exist: {exists}" -msgstr "" +#: stock/models.py:1386 stock/serializers.py:349 +msgid "Serial numbers already exist" +msgstr "序列号已存在" -#: stock/models.py:1456 +#: stock/models.py:1457 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1459 +#: stock/models.py:1460 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1462 +#: stock/models.py:1463 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1465 +#: stock/models.py:1466 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1468 +#: stock/models.py:1469 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1471 +#: stock/models.py:1472 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1478 stock/serializers.py:946 +#: stock/models.py:1479 stock/serializers.py:946 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1482 +#: stock/models.py:1483 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1486 +#: stock/models.py:1487 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1490 +#: stock/models.py:1491 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1659 +#: stock/models.py:1660 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2127 +#: stock/models.py:2128 msgid "Entry notes" msgstr "" -#: stock/models.py:2185 +#: stock/models.py:2186 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2191 +#: stock/models.py:2192 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2210 +#: stock/models.py:2211 msgid "Test name" msgstr "" -#: stock/models.py:2216 +#: stock/models.py:2217 msgid "Test result" msgstr "" -#: stock/models.py:2222 +#: stock/models.py:2223 msgid "Test output value" msgstr "" -#: stock/models.py:2229 +#: stock/models.py:2230 msgid "Test result attachment" msgstr "" -#: stock/models.py:2235 +#: stock/models.py:2236 msgid "Test notes" msgstr "" @@ -7682,10 +7681,6 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:349 -msgid "Serial numbers already exist" -msgstr "序列号已存在" - #: stock/serializers.py:389 msgid "Select stock item to install" msgstr "" @@ -8694,8 +8689,8 @@ msgid "Change Password" msgstr "更改密码" #: templates/InvenTree/settings/user.html:23 -#: templates/js/translated/helpers.js:53 templates/notes_buttons.html:3 -#: templates/notes_buttons.html:4 +#: templates/js/translated/helpers.js:53 templates/js/translated/pricing.js:610 +#: templates/notes_buttons.html:3 templates/notes_buttons.html:4 msgid "Edit" msgstr "编辑" @@ -10719,16 +10714,6 @@ msgstr "" msgid "No price break data available" msgstr "" -#: templates/js/translated/pricing.js:610 -#, python-brace-format -msgid "Edit ${human_name}" -msgstr "" - -#: templates/js/translated/pricing.js:611 -#, python-brace-format -msgid "Delete ${human_name}" -msgstr "" - #: templates/js/translated/pricing.js:737 msgid "No purchase history data available" msgstr "" diff --git a/InvenTree/locale/zh_Hans/LC_MESSAGES/django.po b/InvenTree/locale/zh_Hans/LC_MESSAGES/django.po index 0d7067f521..78c362e282 100644 --- a/InvenTree/locale/zh_Hans/LC_MESSAGES/django.po +++ b/InvenTree/locale/zh_Hans/LC_MESSAGES/django.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-03-29 08:09+0000\n" +"POT-Creation-Date: 2023-04-17 14:52+0000\n" "PO-Revision-Date: 2023-02-28 22:38\n" "Last-Translator: \n" "Language-Team: Chinese Simplified\n" @@ -17,15 +17,15 @@ msgstr "" "X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n" "X-Crowdin-File-ID: 154\n" -#: InvenTree/api.py:63 +#: InvenTree/api.py:65 msgid "API endpoint not found" msgstr "未找到 API 端点" -#: InvenTree/api.py:308 +#: InvenTree/api.py:299 msgid "User does not have permission to view this model" msgstr "" -#: InvenTree/exceptions.py:79 +#: InvenTree/exceptions.py:94 msgid "Error details can be found in the admin panel" msgstr "在管理面板中可以找到错误详细信息" @@ -33,25 +33,25 @@ msgstr "在管理面板中可以找到错误详细信息" msgid "Enter date" msgstr "输入日期" -#: InvenTree/fields.py:204 build/serializers.py:389 +#: InvenTree/fields.py:204 build/serializers.py:392 #: build/templates/build/sidebar.html:21 company/models.py:554 -#: company/templates/company/sidebar.html:35 order/models.py:1029 +#: company/templates/company/sidebar.html:35 order/models.py:1058 #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:41 #: part/models.py:2989 part/templates/part/part_sidebar.html:63 #: report/templates/report/inventree_build_order_base.html:172 -#: stock/admin.py:121 stock/models.py:2100 stock/models.py:2208 +#: stock/admin.py:121 stock/models.py:2127 stock/models.py:2235 #: stock/serializers.py:317 stock/serializers.py:450 stock/serializers.py:531 #: stock/serializers.py:810 stock/serializers.py:909 stock/serializers.py:1041 #: stock/templates/stock/stock_sidebar.html:25 #: templates/js/translated/barcode.js:130 templates/js/translated/bom.js:1220 -#: templates/js/translated/company.js:1272 templates/js/translated/order.js:319 +#: templates/js/translated/company.js:1272 templates/js/translated/order.js:322 #: templates/js/translated/part.js:997 -#: templates/js/translated/purchase_order.js:2038 -#: templates/js/translated/return_order.js:715 -#: templates/js/translated/sales_order.js:937 -#: templates/js/translated/sales_order.js:1843 +#: templates/js/translated/purchase_order.js:2105 +#: templates/js/translated/return_order.js:718 +#: templates/js/translated/sales_order.js:963 +#: templates/js/translated/sales_order.js:1871 #: templates/js/translated/stock.js:1439 templates/js/translated/stock.js:2134 msgid "Notes" msgstr "备注" @@ -137,7 +137,7 @@ msgstr "远程服务器返回了空响应" msgid "Supplied URL is not a valid image file" msgstr "提供的 URL 不是一个有效的图片文件" -#: InvenTree/helpers.py:602 order/models.py:409 order/models.py:565 +#: InvenTree/helpers.py:602 order/models.py:410 order/models.py:571 msgid "Invalid quantity provided" msgstr "提供的数量无效" @@ -209,7 +209,7 @@ msgstr "缺少文件" msgid "Missing external link" msgstr "缺少外部链接" -#: InvenTree/models.py:409 stock/models.py:2202 +#: InvenTree/models.py:409 stock/models.py:2229 #: templates/js/translated/attachment.js:109 #: templates/js/translated/attachment.js:296 msgid "Attachment" @@ -219,20 +219,24 @@ msgstr "附件" msgid "Select file to attach" msgstr "选择附件" -#: InvenTree/models.py:416 common/models.py:2607 company/models.py:129 -#: company/models.py:305 company/models.py:541 order/models.py:201 -#: order/models.py:1377 order/models.py:1856 part/admin.py:39 +#: InvenTree/models.py:416 common/models.py:2621 company/models.py:129 +#: company/models.py:305 company/models.py:541 order/models.py:202 +#: order/models.py:1062 order/models.py:1412 part/admin.py:39 #: part/models.py:892 part/templates/part/part_scheduling.html:11 #: report/templates/report/inventree_build_order_base.html:164 #: stock/admin.py:120 templates/js/translated/company.js:962 -#: templates/js/translated/company.js:1261 templates/js/translated/part.js:1932 -#: templates/js/translated/purchase_order.js:1878 -#: templates/js/translated/sales_order.js:926 +#: templates/js/translated/company.js:1261 templates/js/translated/order.js:326 +#: templates/js/translated/part.js:1932 +#: templates/js/translated/purchase_order.js:1945 +#: templates/js/translated/purchase_order.js:2109 +#: templates/js/translated/return_order.js:722 +#: templates/js/translated/sales_order.js:952 +#: templates/js/translated/sales_order.js:1876 msgid "Link" msgstr "链接" #: InvenTree/models.py:417 build/models.py:293 part/models.py:893 -#: stock/models.py:727 +#: stock/models.py:728 msgid "Link to external URL" msgstr "链接到外部 URL" @@ -245,9 +249,9 @@ msgstr "注释" msgid "File comment" msgstr "文件注释" -#: InvenTree/models.py:426 InvenTree/models.py:427 common/models.py:2056 -#: common/models.py:2057 common/models.py:2280 common/models.py:2281 -#: common/models.py:2537 common/models.py:2538 part/models.py:2997 +#: InvenTree/models.py:426 InvenTree/models.py:427 common/models.py:2070 +#: common/models.py:2071 common/models.py:2294 common/models.py:2295 +#: common/models.py:2551 common/models.py:2552 part/models.py:2997 #: part/models.py:3085 part/models.py:3164 part/models.py:3184 #: plugin/models.py:270 plugin/models.py:271 #: report/templates/report/inventree_test_report_base.html:105 @@ -292,7 +296,7 @@ msgstr "" msgid "Invalid choice" msgstr "选择无效" -#: InvenTree/models.py:571 InvenTree/models.py:572 common/models.py:2266 +#: InvenTree/models.py:571 InvenTree/models.py:572 common/models.py:2280 #: company/models.py:387 label/models.py:102 part/models.py:838 #: part/models.py:3332 plugin/models.py:94 report/models.py:158 #: templates/InvenTree/settings/mixins/urls.html:13 @@ -315,7 +319,7 @@ msgstr "名称" #: company/models.py:547 company/templates/company/company_base.html:72 #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:108 label/models.py:109 -#: order/models.py:199 part/admin.py:194 part/admin.py:276 part/models.py:860 +#: order/models.py:200 part/admin.py:194 part/admin.py:276 part/models.py:860 #: part/models.py:3341 part/templates/part/category.html:81 #: part/templates/part/part_base.html:172 #: part/templates/part/part_scheduling.html:12 report/models.py:171 @@ -331,11 +335,11 @@ msgstr "名称" #: templates/js/translated/company.js:1236 templates/js/translated/part.js:1155 #: templates/js/translated/part.js:1597 templates/js/translated/part.js:1869 #: templates/js/translated/part.js:2348 templates/js/translated/part.js:2439 -#: templates/js/translated/purchase_order.js:1548 -#: templates/js/translated/purchase_order.js:1682 -#: templates/js/translated/purchase_order.js:1860 +#: templates/js/translated/purchase_order.js:1615 +#: templates/js/translated/purchase_order.js:1749 +#: templates/js/translated/purchase_order.js:1927 #: templates/js/translated/return_order.js:272 -#: templates/js/translated/sales_order.js:714 +#: templates/js/translated/sales_order.js:740 #: templates/js/translated/stock.js:1418 templates/js/translated/stock.js:1791 #: templates/js/translated/stock.js:2551 templates/js/translated/stock.js:2623 msgid "Description" @@ -362,7 +366,7 @@ msgstr "条码数据" msgid "Third party barcode data" msgstr "第三方条形码数据" -#: InvenTree/models.py:702 order/serializers.py:503 +#: InvenTree/models.py:702 msgid "Barcode Hash" msgstr "条码哈希" @@ -374,11 +378,11 @@ msgstr "条码数据的唯一哈希" msgid "Existing barcode found" msgstr "发现现有条码" -#: InvenTree/models.py:801 +#: InvenTree/models.py:802 msgid "Server Error" msgstr "服务器错误" -#: InvenTree/models.py:802 +#: InvenTree/models.py:803 msgid "An error has been logged by the server." msgstr "服务器记录了一个错误。" @@ -459,107 +463,107 @@ msgstr "远程图像文件的 URL" msgid "Downloading images from remote URL is not enabled" msgstr "未启用从远程 URL下载图像" -#: InvenTree/settings.py:705 +#: InvenTree/settings.py:708 msgid "Czech" msgstr "捷克语" -#: InvenTree/settings.py:706 +#: InvenTree/settings.py:709 msgid "Danish" msgstr "丹麦语" -#: InvenTree/settings.py:707 +#: InvenTree/settings.py:710 msgid "German" msgstr "德语" -#: InvenTree/settings.py:708 +#: InvenTree/settings.py:711 msgid "Greek" msgstr "希腊语" -#: InvenTree/settings.py:709 +#: InvenTree/settings.py:712 msgid "English" msgstr "英语" -#: InvenTree/settings.py:710 +#: InvenTree/settings.py:713 msgid "Spanish" msgstr "西班牙语" -#: InvenTree/settings.py:711 +#: InvenTree/settings.py:714 msgid "Spanish (Mexican)" msgstr "西班牙语(墨西哥)" -#: InvenTree/settings.py:712 +#: InvenTree/settings.py:715 msgid "Farsi / Persian" msgstr "波斯语" -#: InvenTree/settings.py:713 +#: InvenTree/settings.py:716 msgid "French" msgstr "法语" -#: InvenTree/settings.py:714 +#: InvenTree/settings.py:717 msgid "Hebrew" msgstr "希伯来语" -#: InvenTree/settings.py:715 +#: InvenTree/settings.py:718 msgid "Hungarian" msgstr "匈牙利语" -#: InvenTree/settings.py:716 +#: InvenTree/settings.py:719 msgid "Italian" msgstr "意大利语" -#: InvenTree/settings.py:717 +#: InvenTree/settings.py:720 msgid "Japanese" msgstr "日语" -#: InvenTree/settings.py:718 +#: InvenTree/settings.py:721 msgid "Korean" msgstr "韩语" -#: InvenTree/settings.py:719 +#: InvenTree/settings.py:722 msgid "Dutch" msgstr "荷兰语" -#: InvenTree/settings.py:720 +#: InvenTree/settings.py:723 msgid "Norwegian" msgstr "挪威语" -#: InvenTree/settings.py:721 +#: InvenTree/settings.py:724 msgid "Polish" msgstr "波兰语" -#: InvenTree/settings.py:722 +#: InvenTree/settings.py:725 msgid "Portuguese" msgstr "葡萄牙语" -#: InvenTree/settings.py:723 +#: InvenTree/settings.py:726 msgid "Portuguese (Brazilian)" msgstr "葡萄牙语 (巴西)" -#: InvenTree/settings.py:724 +#: InvenTree/settings.py:727 msgid "Russian" msgstr "俄语" -#: InvenTree/settings.py:725 +#: InvenTree/settings.py:728 msgid "Slovenian" msgstr "斯洛文尼亚" -#: InvenTree/settings.py:726 +#: InvenTree/settings.py:729 msgid "Swedish" msgstr "瑞典语" -#: InvenTree/settings.py:727 +#: InvenTree/settings.py:730 msgid "Thai" msgstr "泰语" -#: InvenTree/settings.py:728 +#: InvenTree/settings.py:731 msgid "Turkish" msgstr "土耳其语" -#: InvenTree/settings.py:729 +#: InvenTree/settings.py:732 msgid "Vietnamese" msgstr "越南语" -#: InvenTree/settings.py:730 +#: InvenTree/settings.py:733 msgid "Chinese" msgstr "中文(简体)" @@ -575,198 +579,199 @@ msgstr "未配置电子邮件后端" msgid "InvenTree system health checks failed" msgstr "InventTree系统健康检查失败" -#: InvenTree/status_codes.py:99 InvenTree/status_codes.py:140 -#: InvenTree/status_codes.py:313 InvenTree/status_codes.py:350 -#: InvenTree/status_codes.py:385 templates/js/translated/table_filters.js:417 +#: InvenTree/status_codes.py:139 InvenTree/status_codes.py:181 +#: InvenTree/status_codes.py:357 InvenTree/status_codes.py:394 +#: InvenTree/status_codes.py:429 templates/js/translated/table_filters.js:417 msgid "Pending" msgstr "待定" -#: InvenTree/status_codes.py:100 +#: InvenTree/status_codes.py:140 msgid "Placed" msgstr "已添加" -#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:316 -#: InvenTree/status_codes.py:352 order/templates/order/order_base.html:142 -#: order/templates/order/sales_order_base.html:133 +#: InvenTree/status_codes.py:141 InvenTree/status_codes.py:360 +#: InvenTree/status_codes.py:396 order/templates/order/order_base.html:161 +#: order/templates/order/sales_order_base.html:161 msgid "Complete" msgstr "完成" -#: InvenTree/status_codes.py:102 InvenTree/status_codes.py:142 -#: InvenTree/status_codes.py:315 InvenTree/status_codes.py:353 +#: InvenTree/status_codes.py:142 InvenTree/status_codes.py:184 +#: InvenTree/status_codes.py:359 InvenTree/status_codes.py:397 msgid "Cancelled" msgstr "已取消" -#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:143 -#: InvenTree/status_codes.py:183 +#: InvenTree/status_codes.py:143 InvenTree/status_codes.py:185 +#: InvenTree/status_codes.py:227 msgid "Lost" msgstr "丢失" -#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144 -#: InvenTree/status_codes.py:186 +#: InvenTree/status_codes.py:144 InvenTree/status_codes.py:186 +#: InvenTree/status_codes.py:230 msgid "Returned" msgstr "已退回" -#: InvenTree/status_codes.py:141 order/models.py:1260 -#: templates/js/translated/sales_order.js:1503 -#: templates/js/translated/sales_order.js:1818 +#: InvenTree/status_codes.py:182 InvenTree/status_codes.py:395 +msgid "In Progress" +msgstr "" + +#: InvenTree/status_codes.py:183 order/models.py:1295 +#: templates/js/translated/sales_order.js:1418 +#: templates/js/translated/sales_order.js:1542 +#: templates/js/translated/sales_order.js:1846 msgid "Shipped" msgstr "已发货" -#: InvenTree/status_codes.py:179 +#: InvenTree/status_codes.py:223 msgid "OK" msgstr "OK" -#: InvenTree/status_codes.py:180 +#: InvenTree/status_codes.py:224 msgid "Attention needed" msgstr "需要关注" -#: InvenTree/status_codes.py:181 +#: InvenTree/status_codes.py:225 msgid "Damaged" msgstr "破损" -#: InvenTree/status_codes.py:182 +#: InvenTree/status_codes.py:226 msgid "Destroyed" msgstr "已销毁" -#: InvenTree/status_codes.py:184 +#: InvenTree/status_codes.py:228 msgid "Rejected" msgstr "已拒绝" -#: InvenTree/status_codes.py:185 +#: InvenTree/status_codes.py:229 msgid "Quarantined" msgstr "隔离" -#: InvenTree/status_codes.py:263 +#: InvenTree/status_codes.py:307 msgid "Legacy stock tracking entry" msgstr "旧库存跟踪条目" -#: InvenTree/status_codes.py:265 +#: InvenTree/status_codes.py:309 msgid "Stock item created" msgstr "库存项已创建" -#: InvenTree/status_codes.py:267 +#: InvenTree/status_codes.py:311 msgid "Edited stock item" msgstr "已编辑库存项" -#: InvenTree/status_codes.py:268 +#: InvenTree/status_codes.py:312 msgid "Assigned serial number" msgstr "已分配序列号" -#: InvenTree/status_codes.py:270 +#: InvenTree/status_codes.py:314 msgid "Stock counted" msgstr "库存计数" -#: InvenTree/status_codes.py:271 +#: InvenTree/status_codes.py:315 msgid "Stock manually added" msgstr "已手动添加库存" -#: InvenTree/status_codes.py:272 +#: InvenTree/status_codes.py:316 msgid "Stock manually removed" msgstr "库存手动删除" -#: InvenTree/status_codes.py:274 +#: InvenTree/status_codes.py:318 msgid "Location changed" msgstr "仓储地点已更改" -#: InvenTree/status_codes.py:276 +#: InvenTree/status_codes.py:320 msgid "Installed into assembly" msgstr "安装到组装中" -#: InvenTree/status_codes.py:277 +#: InvenTree/status_codes.py:321 msgid "Removed from assembly" msgstr "已从组装中删除" -#: InvenTree/status_codes.py:279 +#: InvenTree/status_codes.py:323 msgid "Installed component item" msgstr "已安装组件项" -#: InvenTree/status_codes.py:280 +#: InvenTree/status_codes.py:324 msgid "Removed component item" msgstr "已删除组件项" -#: InvenTree/status_codes.py:282 +#: InvenTree/status_codes.py:326 msgid "Split from parent item" msgstr "从父项拆分" -#: InvenTree/status_codes.py:283 +#: InvenTree/status_codes.py:327 msgid "Split child item" msgstr "拆分子项" -#: InvenTree/status_codes.py:285 templates/js/translated/stock.js:2213 +#: InvenTree/status_codes.py:329 templates/js/translated/stock.js:2213 msgid "Merged stock items" msgstr "合并的库存项目" -#: InvenTree/status_codes.py:287 +#: InvenTree/status_codes.py:331 msgid "Converted to variant" msgstr "转换为变量" -#: InvenTree/status_codes.py:289 templates/js/translated/table_filters.js:273 +#: InvenTree/status_codes.py:333 templates/js/translated/table_filters.js:273 msgid "Sent to customer" msgstr "发送给客户" -#: InvenTree/status_codes.py:290 +#: InvenTree/status_codes.py:334 msgid "Returned from customer" msgstr "从客户退货" -#: InvenTree/status_codes.py:292 +#: InvenTree/status_codes.py:336 msgid "Build order output created" msgstr "已创建生产订单输出" -#: InvenTree/status_codes.py:293 +#: InvenTree/status_codes.py:337 msgid "Build order output completed" msgstr "生产订单输出已完成" -#: InvenTree/status_codes.py:294 +#: InvenTree/status_codes.py:338 msgid "Consumed by build order" msgstr "被生产订单消耗" -#: InvenTree/status_codes.py:296 +#: InvenTree/status_codes.py:340 #, fuzzy #| msgid "Received against purchase order" msgid "Shipped against Sales Order" msgstr "收到定购单" -#: InvenTree/status_codes.py:298 +#: InvenTree/status_codes.py:342 #, fuzzy #| msgid "Received against purchase order" msgid "Received against Purchase Order" msgstr "收到定购单" -#: InvenTree/status_codes.py:300 +#: InvenTree/status_codes.py:344 #, fuzzy #| msgid "Received against purchase order" msgid "Returned against Return Order" msgstr "收到定购单" -#: InvenTree/status_codes.py:314 +#: InvenTree/status_codes.py:358 msgid "Production" msgstr "生产中" -#: InvenTree/status_codes.py:351 -msgid "In Progress" -msgstr "" - -#: InvenTree/status_codes.py:386 +#: InvenTree/status_codes.py:430 #, fuzzy #| msgid "Returned" msgid "Return" msgstr "已退回" -#: InvenTree/status_codes.py:387 +#: InvenTree/status_codes.py:431 msgid "Repair" msgstr "" -#: InvenTree/status_codes.py:388 +#: InvenTree/status_codes.py:432 msgid "Refund" msgstr "" -#: InvenTree/status_codes.py:389 +#: InvenTree/status_codes.py:433 #, fuzzy #| msgid "Placed" msgid "Replace" msgstr "已添加" -#: InvenTree/status_codes.py:390 +#: InvenTree/status_codes.py:434 #, fuzzy #| msgid "Rejected" msgid "Reject" @@ -812,7 +817,7 @@ msgstr "系统信息" msgid "About InvenTree" msgstr "关于 InventTree" -#: build/api.py:245 +#: build/api.py:221 msgid "Build must be cancelled before it can be deleted" msgstr "在删除前必须取消生产" @@ -832,7 +837,7 @@ msgstr "生产订单" #: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221 #: templates/InvenTree/search.html:141 #: templates/InvenTree/settings/sidebar.html:49 -#: templates/js/translated/search.js:214 users/models.py:42 +#: templates/js/translated/search.js:216 users/models.py:42 msgid "Build Orders" msgstr "生产订单" @@ -844,27 +849,29 @@ msgstr "上级生产选项无效" msgid "Build Order Reference" msgstr "相关生产订单" -#: build/models.py:158 order/models.py:326 order/models.py:722 -#: order/models.py:1027 order/models.py:1638 part/admin.py:278 +#: build/models.py:158 order/models.py:327 order/models.py:734 +#: order/models.py:1056 order/models.py:1673 part/admin.py:278 #: part/models.py:3602 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_po_report_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:26 #: report/templates/report/inventree_so_report_base.html:28 #: templates/js/translated/bom.js:739 templates/js/translated/bom.js:913 -#: templates/js/translated/build.js:1847 templates/js/translated/order.js:269 +#: templates/js/translated/build.js:1847 templates/js/translated/order.js:272 #: templates/js/translated/pricing.js:368 -#: templates/js/translated/purchase_order.js:1903 -#: templates/js/translated/return_order.js:668 -#: templates/js/translated/sales_order.js:1682 +#: templates/js/translated/purchase_order.js:1970 +#: templates/js/translated/return_order.js:671 +#: templates/js/translated/sales_order.js:1710 msgid "Reference" msgstr "引用" #: build/models.py:169 -msgid "Brief description of the build" +#, fuzzy +#| msgid "Brief description of the build" +msgid "Brief description of the build (optional)" msgstr "生产的简短描述." -#: build/models.py:177 build/templates/build/build_base.html:172 +#: build/models.py:177 build/templates/build/build_base.html:189 #: build/templates/build/detail.html:87 msgid "Parent Build" msgstr "上级生产" @@ -873,9 +880,9 @@ msgstr "上级生产" msgid "BuildOrder to which this build is allocated" msgstr "此次生产匹配的订单" -#: build/models.py:183 build/templates/build/build_base.html:80 +#: build/models.py:183 build/templates/build/build_base.html:98 #: build/templates/build/detail.html:29 company/models.py:720 -#: order/models.py:1123 order/models.py:1239 order/models.py:1240 +#: order/models.py:1158 order/models.py:1274 order/models.py:1275 #: part/models.py:382 part/models.py:2849 part/models.py:2963 #: part/models.py:3103 part/models.py:3122 part/models.py:3141 #: part/models.py:3162 part/models.py:3254 part/models.py:3375 @@ -896,7 +903,7 @@ msgstr "此次生产匹配的订单" #: templates/email/build_order_required_stock.html:17 #: templates/email/low_stock_notification.html:16 #: templates/email/overdue_build_order.html:16 -#: templates/js/translated/barcode.js:502 templates/js/translated/bom.js:601 +#: templates/js/translated/barcode.js:516 templates/js/translated/bom.js:601 #: templates/js/translated/bom.js:738 templates/js/translated/bom.js:857 #: templates/js/translated/build.js:1230 templates/js/translated/build.js:1714 #: templates/js/translated/build.js:2213 templates/js/translated/build.js:2615 @@ -906,16 +913,16 @@ msgstr "此次生产匹配的订单" #: templates/js/translated/company.js:1154 templates/js/translated/part.js:1582 #: templates/js/translated/part.js:1648 templates/js/translated/part.js:1838 #: templates/js/translated/pricing.js:351 -#: templates/js/translated/purchase_order.js:694 -#: templates/js/translated/purchase_order.js:1195 -#: templates/js/translated/purchase_order.js:1681 -#: templates/js/translated/purchase_order.js:1845 -#: templates/js/translated/return_order.js:482 -#: templates/js/translated/return_order.js:649 -#: templates/js/translated/sales_order.js:235 -#: templates/js/translated/sales_order.js:1068 -#: templates/js/translated/sales_order.js:1454 -#: templates/js/translated/sales_order.js:1666 +#: templates/js/translated/purchase_order.js:697 +#: templates/js/translated/purchase_order.js:1223 +#: templates/js/translated/purchase_order.js:1748 +#: templates/js/translated/purchase_order.js:1912 +#: templates/js/translated/return_order.js:485 +#: templates/js/translated/return_order.js:652 +#: templates/js/translated/sales_order.js:239 +#: templates/js/translated/sales_order.js:1094 +#: templates/js/translated/sales_order.js:1493 +#: templates/js/translated/sales_order.js:1694 #: templates/js/translated/stock.js:622 templates/js/translated/stock.js:788 #: templates/js/translated/stock.js:1000 templates/js/translated/stock.js:1747 #: templates/js/translated/stock.js:2649 templates/js/translated/stock.js:2873 @@ -935,9 +942,9 @@ msgstr "相关销售订单" msgid "SalesOrder to which this build is allocated" msgstr "此次生产匹配的销售订单" -#: build/models.py:205 build/serializers.py:825 +#: build/models.py:205 build/serializers.py:828 #: templates/js/translated/build.js:2201 -#: templates/js/translated/sales_order.js:1056 +#: templates/js/translated/sales_order.js:1082 msgid "Source Location" msgstr "来源地点" @@ -977,19 +984,19 @@ msgstr "生产状态" msgid "Build status code" msgstr "生产状态代码" -#: build/models.py:248 build/serializers.py:226 order/serializers.py:481 -#: stock/models.py:731 templates/js/translated/purchase_order.js:1058 +#: build/models.py:248 build/serializers.py:229 order/serializers.py:487 +#: stock/models.py:732 templates/js/translated/purchase_order.js:1048 msgid "Batch Code" msgstr "批量代码" -#: build/models.py:252 build/serializers.py:227 +#: build/models.py:252 build/serializers.py:230 msgid "Batch code for this build output" msgstr "此生产产出的批量代码" -#: build/models.py:255 order/models.py:209 part/models.py:1028 -#: part/templates/part/part_base.html:319 +#: build/models.py:255 order/models.py:210 part/models.py:1028 +#: part/templates/part/part_base.html:312 #: templates/js/translated/return_order.js:285 -#: templates/js/translated/sales_order.js:727 +#: templates/js/translated/sales_order.js:753 msgid "Creation Date" msgstr "创建日期" @@ -1001,7 +1008,7 @@ msgstr "预计完成日期" msgid "Target date for build completion. Build will be overdue after this date." msgstr "生产完成的目标日期。生产将在此日期之后逾期。" -#: build/models.py:263 order/models.py:376 order/models.py:1681 +#: build/models.py:263 order/models.py:377 order/models.py:1716 #: templates/js/translated/build.js:2700 msgid "Completion Date" msgstr "完成日期:" @@ -1018,15 +1025,15 @@ msgstr "发布者" msgid "User who issued this build order" msgstr "发布此生产订单的用户" -#: build/models.py:286 build/templates/build/build_base.html:193 -#: build/templates/build/detail.html:122 order/models.py:223 -#: order/templates/order/order_base.html:194 -#: order/templates/order/return_order_base.html:162 -#: order/templates/order/sales_order_base.html:193 part/models.py:1032 -#: part/templates/part/part_base.html:399 +#: build/models.py:286 build/templates/build/build_base.html:210 +#: build/templates/build/detail.html:122 order/models.py:224 +#: order/templates/order/order_base.html:213 +#: order/templates/order/return_order_base.html:183 +#: order/templates/order/sales_order_base.html:221 part/models.py:1032 +#: part/templates/part/part_base.html:392 #: report/templates/report/inventree_build_order_base.html:158 #: templates/js/translated/build.js:2672 -#: templates/js/translated/purchase_order.js:1593 +#: templates/js/translated/purchase_order.js:1660 #: templates/js/translated/return_order.js:305 #: templates/js/translated/table_filters.js:391 msgid "Responsible" @@ -1038,9 +1045,9 @@ msgstr "构建此订单的用户或组" #: build/models.py:292 build/templates/build/detail.html:108 #: company/templates/company/manufacturer_part.html:107 -#: company/templates/company/supplier_part.html:188 -#: part/templates/part/part_base.html:392 stock/models.py:725 -#: stock/templates/stock/item_base.html:206 +#: company/templates/company/supplier_part.html:182 +#: part/templates/part/part_base.html:385 stock/models.py:726 +#: stock/templates/stock/item_base.html:201 msgid "External Link" msgstr "外部链接" @@ -1086,11 +1093,11 @@ msgstr "生产项必须指定生产产出,因为主部件已经被标记为可 msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "分配数量 ({q}) 不得超过可用库存数量 ({a})" -#: build/models.py:1209 order/models.py:1515 +#: build/models.py:1209 order/models.py:1550 msgid "Stock item is over-allocated" msgstr "库存物品分配过度!" -#: build/models.py:1215 order/models.py:1518 +#: build/models.py:1215 order/models.py:1553 msgid "Allocation quantity must be greater than zero" msgstr "分配数量必须大于0" @@ -1102,7 +1109,7 @@ msgstr "序列化库存的数量必须是 1" msgid "Selected stock item not found in BOM" msgstr "在BOM中找不到选定的库存项" -#: build/models.py:1347 stock/templates/stock/item_base.html:175 +#: build/models.py:1347 stock/templates/stock/item_base.html:170 #: templates/InvenTree/search.html:139 templates/js/translated/build.js:2588 #: templates/navbar.html:38 msgid "Build" @@ -1112,19 +1119,19 @@ msgstr "生产" msgid "Build to allocate parts" msgstr "生产以分配部件" -#: build/models.py:1364 build/serializers.py:674 order/serializers.py:1013 -#: order/serializers.py:1034 stock/serializers.py:388 stock/serializers.py:741 +#: build/models.py:1364 build/serializers.py:677 order/serializers.py:1035 +#: order/serializers.py:1056 stock/serializers.py:388 stock/serializers.py:741 #: stock/serializers.py:867 stock/templates/stock/item_base.html:10 #: stock/templates/stock/item_base.html:23 -#: stock/templates/stock/item_base.html:200 +#: stock/templates/stock/item_base.html:195 #: templates/js/translated/build.js:801 templates/js/translated/build.js:806 #: templates/js/translated/build.js:2215 templates/js/translated/build.js:2785 -#: templates/js/translated/sales_order.js:236 -#: templates/js/translated/sales_order.js:1069 -#: templates/js/translated/sales_order.js:1367 -#: templates/js/translated/sales_order.js:1372 -#: templates/js/translated/sales_order.js:1461 -#: templates/js/translated/sales_order.js:1551 +#: templates/js/translated/sales_order.js:240 +#: templates/js/translated/sales_order.js:1095 +#: templates/js/translated/sales_order.js:1394 +#: templates/js/translated/sales_order.js:1399 +#: templates/js/translated/sales_order.js:1500 +#: templates/js/translated/sales_order.js:1590 #: templates/js/translated/stock.js:623 templates/js/translated/stock.js:789 #: templates/js/translated/stock.js:2756 msgid "Stock Item" @@ -1134,10 +1141,10 @@ msgstr "库存项" msgid "Source stock item" msgstr "源库存项" -#: build/models.py:1377 build/serializers.py:194 -#: build/templates/build/build_base.html:85 -#: build/templates/build/detail.html:34 common/models.py:2088 -#: order/models.py:1013 order/models.py:1559 order/serializers.py:1187 +#: build/models.py:1377 build/serializers.py:197 +#: build/templates/build/build_base.html:103 +#: build/templates/build/detail.html:34 common/models.py:2102 +#: order/models.py:1042 order/models.py:1594 order/serializers.py:1209 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:277 #: part/forms.py:47 part/models.py:2976 part/models.py:3583 #: part/templates/part/part_pricing.html:16 @@ -1149,31 +1156,32 @@ msgstr "源库存项" #: report/templates/report/inventree_test_report_base.html:90 #: report/templates/report/inventree_test_report_base.html:170 #: stock/admin.py:103 stock/serializers.py:281 -#: stock/templates/stock/item_base.html:293 -#: stock/templates/stock/item_base.html:301 +#: stock/templates/stock/item_base.html:288 +#: stock/templates/stock/item_base.html:296 +#: stock/templates/stock/item_base.html:343 #: templates/email/build_order_completed.html:18 -#: templates/js/translated/barcode.js:504 templates/js/translated/bom.js:740 +#: templates/js/translated/barcode.js:518 templates/js/translated/bom.js:740 #: templates/js/translated/bom.js:921 templates/js/translated/build.js:477 #: templates/js/translated/build.js:638 templates/js/translated/build.js:828 #: templates/js/translated/build.js:1252 templates/js/translated/build.js:1740 #: templates/js/translated/build.js:2216 #: templates/js/translated/company.js:1406 #: templates/js/translated/model_renderers.js:201 -#: templates/js/translated/order.js:276 templates/js/translated/part.js:878 +#: templates/js/translated/order.js:279 templates/js/translated/part.js:878 #: templates/js/translated/part.js:1446 templates/js/translated/part.js:2876 #: templates/js/translated/pricing.js:363 #: templates/js/translated/pricing.js:456 #: templates/js/translated/pricing.js:504 #: templates/js/translated/pricing.js:598 -#: templates/js/translated/purchase_order.js:697 -#: templates/js/translated/purchase_order.js:1685 -#: templates/js/translated/purchase_order.js:1909 -#: templates/js/translated/sales_order.js:252 -#: templates/js/translated/sales_order.js:1070 -#: templates/js/translated/sales_order.js:1386 -#: templates/js/translated/sales_order.js:1467 -#: templates/js/translated/sales_order.js:1557 -#: templates/js/translated/sales_order.js:1688 +#: templates/js/translated/purchase_order.js:700 +#: templates/js/translated/purchase_order.js:1752 +#: templates/js/translated/purchase_order.js:1976 +#: templates/js/translated/sales_order.js:256 +#: templates/js/translated/sales_order.js:1096 +#: templates/js/translated/sales_order.js:1413 +#: templates/js/translated/sales_order.js:1506 +#: templates/js/translated/sales_order.js:1596 +#: templates/js/translated/sales_order.js:1716 #: templates/js/translated/stock.js:494 templates/js/translated/stock.js:648 #: templates/js/translated/stock.js:819 templates/js/translated/stock.js:2800 #: templates/js/translated/stock.js:2885 @@ -1192,255 +1200,256 @@ msgstr "安装到" msgid "Destination stock item" msgstr "目标库存项" -#: build/serializers.py:145 build/serializers.py:703 +#: build/serializers.py:148 build/serializers.py:706 #: templates/js/translated/build.js:1240 msgid "Build Output" msgstr "生产产出" -#: build/serializers.py:157 +#: build/serializers.py:160 msgid "Build output does not match the parent build" msgstr "生产产出与对应生产不匹配" -#: build/serializers.py:161 +#: build/serializers.py:164 msgid "Output part does not match BuildOrder part" msgstr "产出部件与生产订单部件不匹配" -#: build/serializers.py:165 +#: build/serializers.py:168 msgid "This build output has already been completed" msgstr "此生产产出已经完成" -#: build/serializers.py:176 +#: build/serializers.py:179 msgid "This build output is not fully allocated" msgstr "生产产出未被完成分配" -#: build/serializers.py:195 +#: build/serializers.py:198 msgid "Enter quantity for build output" msgstr "输入生产产出数量" -#: build/serializers.py:209 build/serializers.py:694 order/models.py:407 -#: order/serializers.py:354 order/serializers.py:476 part/serializers.py:1088 -#: part/serializers.py:1409 stock/models.py:585 stock/models.py:1344 +#: build/serializers.py:212 build/serializers.py:697 order/models.py:408 +#: order/serializers.py:360 order/serializers.py:482 part/serializers.py:1088 +#: part/serializers.py:1409 stock/models.py:586 stock/models.py:1370 #: stock/serializers.py:290 msgid "Quantity must be greater than zero" msgstr "数量必须大于0" -#: build/serializers.py:216 +#: build/serializers.py:219 msgid "Integer quantity required for trackable parts" msgstr "对于可追踪的部件,需要整数型数值" -#: build/serializers.py:219 +#: build/serializers.py:222 msgid "Integer quantity required, as the bill of materials contains trackable parts" msgstr "需要整数型数值,因为BOM包含可追踪的部件" -#: build/serializers.py:233 order/serializers.py:489 order/serializers.py:1191 -#: stock/serializers.py:299 templates/js/translated/purchase_order.js:1069 +#: build/serializers.py:236 order/serializers.py:495 order/serializers.py:1213 +#: stock/serializers.py:299 templates/js/translated/purchase_order.js:1072 #: templates/js/translated/stock.js:301 templates/js/translated/stock.js:495 msgid "Serial Numbers" msgstr "序列号" -#: build/serializers.py:234 +#: build/serializers.py:237 msgid "Enter serial numbers for build outputs" msgstr "输入生产产出的序列号" -#: build/serializers.py:247 +#: build/serializers.py:250 msgid "Auto Allocate Serial Numbers" msgstr "自动分配序列号" -#: build/serializers.py:248 +#: build/serializers.py:251 msgid "Automatically allocate required items with matching serial numbers" msgstr "自动为所需项分配对应的序列号" -#: build/serializers.py:283 stock/api.py:647 +#: build/serializers.py:286 stock/api.py:630 msgid "The following serial numbers already exist or are invalid" msgstr "以下序列号已存在或无效" -#: build/serializers.py:332 build/serializers.py:401 +#: build/serializers.py:335 build/serializers.py:404 msgid "A list of build outputs must be provided" msgstr "必须提供生产产出列表" -#: build/serializers.py:371 order/serializers.py:462 order/serializers.py:581 -#: order/serializers.py:1540 part/serializers.py:855 stock/serializers.py:310 +#: build/serializers.py:374 order/serializers.py:468 order/serializers.py:589 +#: order/serializers.py:1562 part/serializers.py:855 stock/serializers.py:310 #: stock/serializers.py:445 stock/serializers.py:526 stock/serializers.py:902 -#: stock/serializers.py:1144 stock/templates/stock/item_base.html:391 -#: templates/js/translated/barcode.js:503 -#: templates/js/translated/barcode.js:747 templates/js/translated/build.js:813 +#: stock/serializers.py:1144 stock/templates/stock/item_base.html:384 +#: templates/js/translated/barcode.js:517 +#: templates/js/translated/barcode.js:764 templates/js/translated/build.js:813 #: templates/js/translated/build.js:1755 -#: templates/js/translated/purchase_order.js:1096 -#: templates/js/translated/sales_order.js:1379 -#: templates/js/translated/sales_order.js:1478 -#: templates/js/translated/sales_order.js:1486 -#: templates/js/translated/sales_order.js:1565 +#: templates/js/translated/purchase_order.js:1097 +#: templates/js/translated/purchase_order.js:1187 +#: templates/js/translated/sales_order.js:1406 +#: templates/js/translated/sales_order.js:1517 +#: templates/js/translated/sales_order.js:1525 +#: templates/js/translated/sales_order.js:1604 #: templates/js/translated/stock.js:624 templates/js/translated/stock.js:790 #: templates/js/translated/stock.js:1002 templates/js/translated/stock.js:1911 #: templates/js/translated/stock.js:2663 msgid "Location" msgstr "地点" -#: build/serializers.py:372 +#: build/serializers.py:375 msgid "Location for completed build outputs" msgstr "已完成生产产出的仓储地点" -#: build/serializers.py:378 build/templates/build/build_base.html:145 -#: build/templates/build/detail.html:62 order/models.py:748 -#: order/models.py:1664 order/serializers.py:499 stock/admin.py:106 -#: stock/templates/stock/item_base.html:424 -#: templates/js/translated/barcode.js:236 templates/js/translated/build.js:2644 -#: templates/js/translated/purchase_order.js:1200 -#: templates/js/translated/purchase_order.js:1552 +#: build/serializers.py:381 build/templates/build/build_base.html:157 +#: build/templates/build/detail.html:62 order/models.py:760 +#: order/models.py:1699 order/serializers.py:505 stock/admin.py:106 +#: stock/templates/stock/item_base.html:417 +#: templates/js/translated/barcode.js:239 templates/js/translated/build.js:2644 +#: templates/js/translated/purchase_order.js:1227 +#: templates/js/translated/purchase_order.js:1619 #: templates/js/translated/return_order.js:277 -#: templates/js/translated/sales_order.js:719 +#: templates/js/translated/sales_order.js:745 #: templates/js/translated/stock.js:1886 templates/js/translated/stock.js:2774 #: templates/js/translated/stock.js:2901 msgid "Status" msgstr "状态" -#: build/serializers.py:384 +#: build/serializers.py:387 msgid "Accept Incomplete Allocation" msgstr "接受不完整的分配" -#: build/serializers.py:385 +#: build/serializers.py:388 msgid "Complete outputs if stock has not been fully allocated" msgstr "如果库存尚未完成分配,完成产出" -#: build/serializers.py:454 +#: build/serializers.py:457 msgid "Remove Allocated Stock" msgstr "移除已分配的库存" -#: build/serializers.py:455 +#: build/serializers.py:458 msgid "Subtract any stock which has already been allocated to this build" msgstr "减去已经分配至此生产的库存" -#: build/serializers.py:461 +#: build/serializers.py:464 msgid "Remove Incomplete Outputs" msgstr "移除未完成的产出" -#: build/serializers.py:462 +#: build/serializers.py:465 msgid "Delete any build outputs which have not been completed" msgstr "删除所有未完成的生产产出" -#: build/serializers.py:490 +#: build/serializers.py:493 msgid "Accept as consumed by this build order" msgstr "接受此构建订单所消耗的内容" -#: build/serializers.py:491 +#: build/serializers.py:494 msgid "Deallocate before completing this build order" msgstr "在完成此构建订单前取消分配" -#: build/serializers.py:514 +#: build/serializers.py:517 msgid "Overallocated Stock" msgstr "超出分配的库存" -#: build/serializers.py:516 +#: build/serializers.py:519 msgid "How do you want to handle extra stock items assigned to the build order" msgstr "你想如何处理分配给构建订单的额外库存物品" -#: build/serializers.py:526 +#: build/serializers.py:529 msgid "Some stock items have been overallocated" msgstr "一些库存项已被过度分配" -#: build/serializers.py:531 +#: build/serializers.py:534 msgid "Accept Unallocated" msgstr "接受未分配的" -#: build/serializers.py:532 +#: build/serializers.py:535 msgid "Accept that stock items have not been fully allocated to this build order" msgstr "接受库存项未被完成分配至此生产订单" -#: build/serializers.py:542 templates/js/translated/build.js:265 +#: build/serializers.py:545 templates/js/translated/build.js:265 msgid "Required stock has not been fully allocated" msgstr "所需库存尚未完全分配" -#: build/serializers.py:547 order/serializers.py:237 order/serializers.py:1081 +#: build/serializers.py:550 order/serializers.py:242 order/serializers.py:1103 msgid "Accept Incomplete" msgstr "接受未完成" -#: build/serializers.py:548 +#: build/serializers.py:551 msgid "Accept that the required number of build outputs have not been completed" msgstr "接受所需的生产产出未完成" -#: build/serializers.py:558 templates/js/translated/build.js:269 +#: build/serializers.py:561 templates/js/translated/build.js:269 msgid "Required build quantity has not been completed" msgstr "所需生产数量尚未完成" -#: build/serializers.py:567 templates/js/translated/build.js:253 +#: build/serializers.py:570 templates/js/translated/build.js:253 msgid "Build order has incomplete outputs" msgstr "生产订单有未完成的产出" -#: build/serializers.py:597 build/serializers.py:651 part/models.py:3490 +#: build/serializers.py:600 build/serializers.py:654 part/models.py:3490 #: part/models.py:3873 msgid "BOM Item" msgstr "BOM项" -#: build/serializers.py:607 +#: build/serializers.py:610 msgid "Build output" msgstr "生产产出" -#: build/serializers.py:615 +#: build/serializers.py:618 msgid "Build output must point to the same build" msgstr "生产产出必须指向相同的生产" -#: build/serializers.py:665 +#: build/serializers.py:668 msgid "bom_item.part must point to the same part as the build order" msgstr "bom_item.part 必须与生产订单指向相同的部件" -#: build/serializers.py:680 stock/serializers.py:754 +#: build/serializers.py:683 stock/serializers.py:754 msgid "Item must be in stock" msgstr "项目必须在库存中" -#: build/serializers.py:729 order/serializers.py:1071 +#: build/serializers.py:732 order/serializers.py:1093 #, python-brace-format msgid "Available quantity ({q}) exceeded" msgstr "可用量 ({q}) 超出了限制" -#: build/serializers.py:735 +#: build/serializers.py:738 msgid "Build output must be specified for allocation of tracked parts" msgstr "对于被追踪的部件的分配,必须指定生产产出" -#: build/serializers.py:742 +#: build/serializers.py:745 msgid "Build output cannot be specified for allocation of untracked parts" msgstr "对于未被追踪的部件,无法指定生产产出" -#: build/serializers.py:747 +#: build/serializers.py:750 msgid "This stock item has already been allocated to this build output" msgstr "此库存项已被分配至此生产产出" -#: build/serializers.py:770 order/serializers.py:1355 +#: build/serializers.py:773 order/serializers.py:1377 msgid "Allocation items must be provided" msgstr "必须提供分配的项" -#: build/serializers.py:826 +#: build/serializers.py:829 msgid "Stock location where parts are to be sourced (leave blank to take from any location)" msgstr "部件来源的仓储地点(留空则可来源于任何仓储地点)" -#: build/serializers.py:834 +#: build/serializers.py:837 msgid "Exclude Location" msgstr "排除地点" -#: build/serializers.py:835 +#: build/serializers.py:838 msgid "Exclude stock items from this selected location" msgstr "从该选定的仓储地点排除库存项" -#: build/serializers.py:840 +#: build/serializers.py:843 msgid "Interchangeable Stock" msgstr "可互换的库存" -#: build/serializers.py:841 +#: build/serializers.py:844 msgid "Stock items in multiple locations can be used interchangeably" msgstr "多处地点的库存项可以互换使用" -#: build/serializers.py:846 +#: build/serializers.py:849 msgid "Substitute Stock" msgstr "可替换的库存" -#: build/serializers.py:847 +#: build/serializers.py:850 msgid "Allow allocation of substitute parts" msgstr "允许分配可替换的部件" -#: build/serializers.py:852 +#: build/serializers.py:855 msgid "Optional Items" msgstr "可选项目" -#: build/serializers.py:853 +#: build/serializers.py:856 msgid "Allocate optional BOM items to build order" msgstr "分配可选的BOM项目来建立订单" @@ -1458,101 +1467,141 @@ msgid "Build order {bo} is now overdue" msgstr "生成订单 {bo} 现在已过期" #: build/templates/build/build_base.html:39 -#: order/templates/order/order_base.html:28 -#: order/templates/order/return_order_base.html:38 -#: order/templates/order/sales_order_base.html:38 +#: company/templates/company/supplier_part.html:36 +#: order/templates/order/order_base.html:29 +#: order/templates/order/return_order_base.html:39 +#: order/templates/order/sales_order_base.html:39 +#: part/templates/part/part_base.html:43 +#: stock/templates/stock/item_base.html:41 +#: stock/templates/stock/location.html:54 +msgid "Barcode actions" +msgstr "" + +#: build/templates/build/build_base.html:43 +#: company/templates/company/supplier_part.html:40 +#: order/templates/order/order_base.html:33 +#: order/templates/order/return_order_base.html:43 +#: order/templates/order/sales_order_base.html:43 +#: part/templates/part/part_base.html:46 +#: stock/templates/stock/item_base.html:45 +#: stock/templates/stock/location.html:56 templates/qr_button.html:1 +msgid "Show QR Code" +msgstr "" + +#: build/templates/build/build_base.html:46 +#: company/templates/company/supplier_part.html:42 +#: order/templates/order/order_base.html:36 +#: order/templates/order/return_order_base.html:46 +#: order/templates/order/sales_order_base.html:46 +#: stock/templates/stock/item_base.html:48 +#: stock/templates/stock/location.html:58 +#: templates/js/translated/barcode.js:466 +#: templates/js/translated/barcode.js:471 +msgid "Unlink Barcode" +msgstr "" + +#: build/templates/build/build_base.html:48 +#: company/templates/company/supplier_part.html:44 +#: order/templates/order/order_base.html:38 +#: order/templates/order/return_order_base.html:48 +#: order/templates/order/sales_order_base.html:48 +#: part/templates/part/part_base.html:51 +#: stock/templates/stock/item_base.html:50 +#: stock/templates/stock/location.html:60 +msgid "Link Barcode" +msgstr "" + +#: build/templates/build/build_base.html:57 +#: order/templates/order/order_base.html:46 +#: order/templates/order/return_order_base.html:56 +#: order/templates/order/sales_order_base.html:56 msgid "Print actions" msgstr "打印操作" -#: build/templates/build/build_base.html:43 +#: build/templates/build/build_base.html:61 msgid "Print build order report" msgstr "打印构建订单报告" -#: build/templates/build/build_base.html:50 +#: build/templates/build/build_base.html:68 msgid "Build actions" msgstr "生产操作" -#: build/templates/build/build_base.html:54 +#: build/templates/build/build_base.html:72 msgid "Edit Build" msgstr "编辑生产" -#: build/templates/build/build_base.html:56 +#: build/templates/build/build_base.html:74 msgid "Cancel Build" msgstr "取消生产" -#: build/templates/build/build_base.html:59 +#: build/templates/build/build_base.html:77 msgid "Duplicate Build" msgstr "重复构件" -#: build/templates/build/build_base.html:62 +#: build/templates/build/build_base.html:80 msgid "Delete Build" msgstr "删除生产" -#: build/templates/build/build_base.html:67 -#: build/templates/build/build_base.html:68 +#: build/templates/build/build_base.html:85 +#: build/templates/build/build_base.html:86 msgid "Complete Build" msgstr "生产完成" -#: build/templates/build/build_base.html:90 +#: build/templates/build/build_base.html:108 msgid "Build Description" msgstr "构建描述" -#: build/templates/build/build_base.html:98 +#: build/templates/build/build_base.html:117 msgid "No build outputs have been created for this build order" msgstr "针对此生产订单,尚未创建生产产出" -#: build/templates/build/build_base.html:104 -#, python-format -msgid "This Build Order is allocated to Sales Order %(link)s" -msgstr "此构建订单已分配给销售订单 %(link)s" - -#: build/templates/build/build_base.html:111 +#: build/templates/build/build_base.html:123 #, python-format msgid "This Build Order is a child of Build Order %(link)s" msgstr "此构建订单是 %(link)s 订单的一个子订单" -#: build/templates/build/build_base.html:118 +#: build/templates/build/build_base.html:130 msgid "Build Order is ready to mark as completed" msgstr "构建订单已准备好标记为已完成" -#: build/templates/build/build_base.html:123 +#: build/templates/build/build_base.html:135 msgid "Build Order cannot be completed as outstanding outputs remain" msgstr "创建订单无法完成,因为未完成的输出" -#: build/templates/build/build_base.html:128 +#: build/templates/build/build_base.html:140 msgid "Required build quantity has not yet been completed" msgstr "所需生产数量尚未完成" -#: build/templates/build/build_base.html:133 +#: build/templates/build/build_base.html:145 msgid "Stock has not been fully allocated to this Build Order" msgstr "库存尚未被完全分配到此构建订单" -#: build/templates/build/build_base.html:154 -#: build/templates/build/detail.html:138 order/models.py:205 -#: order/models.py:1033 order/templates/order/order_base.html:170 -#: order/templates/order/return_order_base.html:145 -#: order/templates/order/sales_order_base.html:164 +#: build/templates/build/build_base.html:166 +#: build/templates/build/detail.html:138 order/models.py:206 +#: order/models.py:1068 order/templates/order/order_base.html:189 +#: order/templates/order/return_order_base.html:166 +#: order/templates/order/sales_order_base.html:192 #: report/templates/report/inventree_build_order_base.html:125 #: templates/js/translated/build.js:2692 templates/js/translated/part.js:1465 -#: templates/js/translated/purchase_order.js:1569 -#: templates/js/translated/purchase_order.js:1985 +#: templates/js/translated/purchase_order.js:1636 +#: templates/js/translated/purchase_order.js:2052 #: templates/js/translated/return_order.js:293 -#: templates/js/translated/return_order.js:690 -#: templates/js/translated/sales_order.js:735 -#: templates/js/translated/sales_order.js:1731 +#: templates/js/translated/return_order.js:693 +#: templates/js/translated/sales_order.js:761 +#: templates/js/translated/sales_order.js:1759 msgid "Target Date" msgstr "预计日期" -#: build/templates/build/build_base.html:159 +#: build/templates/build/build_base.html:171 #, python-format msgid "This build was due on %(target)s" msgstr "此次生产的截止日期为 %(target)s" -#: build/templates/build/build_base.html:159 -#: build/templates/build/build_base.html:211 -#: order/templates/order/order_base.html:106 -#: order/templates/order/return_order_base.html:98 -#: order/templates/order/sales_order_base.html:94 +#: build/templates/build/build_base.html:171 +#: build/templates/build/build_base.html:228 +#: order/templates/order/order_base.html:125 +#: order/templates/order/return_order_base.html:119 +#: order/templates/order/sales_order_base.html:122 #: templates/js/translated/table_filters.js:34 #: templates/js/translated/table_filters.js:384 #: templates/js/translated/table_filters.js:444 @@ -1560,43 +1609,55 @@ msgstr "此次生产的截止日期为 %(target)s" msgid "Overdue" msgstr "逾期" -#: build/templates/build/build_base.html:166 +#: build/templates/build/build_base.html:183 #: build/templates/build/detail.html:67 build/templates/build/detail.html:149 -#: order/templates/order/sales_order_base.html:174 +#: order/templates/order/sales_order_base.html:202 #: templates/js/translated/table_filters.js:487 msgid "Completed" msgstr "已完成" -#: build/templates/build/build_base.html:179 -#: build/templates/build/detail.html:101 order/api.py:1516 order/models.py:1232 -#: order/models.py:1331 order/models.py:1465 +#: build/templates/build/build_base.html:196 +#: build/templates/build/detail.html:101 order/api.py:1422 order/models.py:1267 +#: order/models.py:1366 order/models.py:1500 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:28 #: report/templates/report/inventree_build_order_base.html:135 #: report/templates/report/inventree_so_report_base.html:14 -#: stock/templates/stock/item_base.html:371 +#: stock/templates/stock/item_base.html:364 #: templates/email/overdue_sales_order.html:15 #: templates/js/translated/pricing.js:894 -#: templates/js/translated/sales_order.js:681 +#: templates/js/translated/sales_order.js:707 #: templates/js/translated/stock.js:2703 msgid "Sales Order" msgstr "销售订单" -#: build/templates/build/build_base.html:186 +#: build/templates/build/build_base.html:203 #: build/templates/build/detail.html:115 #: report/templates/report/inventree_build_order_base.html:152 msgid "Issued By" msgstr "发布者" -#: build/templates/build/build_base.html:200 +#: build/templates/build/build_base.html:217 #: build/templates/build/detail.html:94 templates/js/translated/build.js:2609 msgid "Priority" msgstr "优先级" -#: build/templates/build/build_base.html:263 +#: build/templates/build/build_base.html:280 msgid "Delete Build Order" msgstr "删除生产订单" +#: build/templates/build/build_base.html:290 +#, fuzzy +#| msgid "Build Order" +msgid "Build Order QR Code" +msgstr "生产订单" + +#: build/templates/build/build_base.html:302 +#, fuzzy +#| msgid "Print Build Orders" +msgid "Link Barcode to Build Order" +msgstr "打印生产订单" + #: build/templates/build/detail.html:15 msgid "Build Details" msgstr "生产详情" @@ -1609,9 +1670,8 @@ msgstr "库存来源" msgid "Stock can be taken from any available location." msgstr "库存可以从任何可用的地点获得。" -#: build/templates/build/detail.html:49 order/models.py:1150 -#: templates/js/translated/purchase_order.js:1201 -#: templates/js/translated/purchase_order.js:2027 +#: build/templates/build/detail.html:49 order/models.py:1185 +#: templates/js/translated/purchase_order.js:2094 msgid "Destination" msgstr "目的地" @@ -1624,9 +1684,10 @@ msgid "Allocated Parts" msgstr "已分配的部件" #: build/templates/build/detail.html:80 stock/admin.py:105 -#: stock/templates/stock/item_base.html:168 +#: stock/templates/stock/item_base.html:163 #: templates/js/translated/build.js:1259 #: templates/js/translated/model_renderers.js:206 +#: templates/js/translated/purchase_order.js:1193 #: templates/js/translated/stock.js:1072 templates/js/translated/stock.js:1900 #: templates/js/translated/stock.js:2908 #: templates/js/translated/table_filters.js:211 @@ -1635,9 +1696,9 @@ msgid "Batch" msgstr "批量" #: build/templates/build/detail.html:133 -#: order/templates/order/order_base.html:157 -#: order/templates/order/return_order_base.html:132 -#: order/templates/order/sales_order_base.html:158 +#: order/templates/order/order_base.html:176 +#: order/templates/order/return_order_base.html:153 +#: order/templates/order/sales_order_base.html:186 #: templates/js/translated/build.js:2652 msgid "Created" msgstr "已创建" @@ -1690,7 +1751,7 @@ msgstr "订单所需部件" #: company/templates/company/detail.html:38 #: company/templates/company/detail.html:86 #: part/templates/part/category.html:184 -#: templates/js/translated/purchase_order.js:737 +#: templates/js/translated/purchase_order.js:740 msgid "Order Parts" msgstr "订购商品" @@ -1790,23 +1851,25 @@ msgstr "未完成输出" msgid "Completed Outputs" msgstr "已完成输出" -#: common/files.py:62 -msgid "Unsupported file format: {ext.upper()}" +#: common/files.py:63 +#, fuzzy, python-brace-format +#| msgid "Unsupported file format: {ext.upper()}" +msgid "Unsupported file format: {fmt}" msgstr "不支持的文件格式: {ext.uper()}" -#: common/files.py:64 +#: common/files.py:65 msgid "Error reading file (invalid encoding)" msgstr "读取文件时发生错误 (无效编码)" -#: common/files.py:69 +#: common/files.py:70 msgid "Error reading file (invalid format)" msgstr "读取文件时发生错误 (无效编码)" -#: common/files.py:71 +#: common/files.py:72 msgid "Error reading file (incorrect dimension)" msgstr "读取文件时出错(不正确的尺寸)" -#: common/files.py:73 +#: common/files.py:74 msgid "Error reading file (data could be corrupted)" msgstr "读取文件时出错(数据可能已损坏)" @@ -2701,7 +2764,7 @@ msgstr "" msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:1670 common/models.py:2049 +#: common/models.py:1670 common/models.py:2063 msgid "Settings key (must be unique - case insensitive" msgstr "" @@ -3024,89 +3087,107 @@ msgid "Number of results to show in each section of the search preview window" msgstr "" #: common/models.py:1983 -msgid "Show Quantity in Forms" -msgstr "在表格中显示数量" +#, fuzzy +#| msgid "Search" +msgid "Regex Search" +msgstr "搜索" #: common/models.py:1984 -msgid "Display available part quantity in some forms" -msgstr "在某些表格中显示可用的商品数量" +msgid "Enable regular expressions in search queries" +msgstr "" #: common/models.py:1990 -msgid "Escape Key Closes Forms" +msgid "Whole Word Search" msgstr "" #: common/models.py:1991 -msgid "Use the escape key to close modal forms" +msgid "Search queries return results for whole word matches" msgstr "" #: common/models.py:1997 -msgid "Fixed Navbar" -msgstr "" +msgid "Show Quantity in Forms" +msgstr "在表格中显示数量" #: common/models.py:1998 -msgid "The navbar position is fixed to the top of the screen" -msgstr "" +msgid "Display available part quantity in some forms" +msgstr "在某些表格中显示可用的商品数量" #: common/models.py:2004 -msgid "Date Format" +msgid "Escape Key Closes Forms" msgstr "" #: common/models.py:2005 +msgid "Use the escape key to close modal forms" +msgstr "" + +#: common/models.py:2011 +msgid "Fixed Navbar" +msgstr "" + +#: common/models.py:2012 +msgid "The navbar position is fixed to the top of the screen" +msgstr "" + +#: common/models.py:2018 +msgid "Date Format" +msgstr "" + +#: common/models.py:2019 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2019 part/templates/part/detail.html:41 +#: common/models.py:2033 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2020 +#: common/models.py:2034 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2026 part/templates/part/detail.html:62 +#: common/models.py:2040 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2027 +#: common/models.py:2041 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2033 +#: common/models.py:2047 msgid "Table String Length" msgstr "" -#: common/models.py:2034 +#: common/models.py:2048 msgid "Maximimum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2089 +#: common/models.py:2103 msgid "Price break quantity" msgstr "" -#: common/models.py:2096 company/serializers.py:424 order/models.py:1060 -#: order/models.py:1852 templates/js/translated/company.js:1411 +#: common/models.py:2110 company/serializers.py:424 order/models.py:1095 +#: order/models.py:1888 templates/js/translated/company.js:1411 #: templates/js/translated/part.js:1520 templates/js/translated/pricing.js:603 -#: templates/js/translated/return_order.js:680 +#: templates/js/translated/return_order.js:683 msgid "Price" msgstr "价格" -#: common/models.py:2097 +#: common/models.py:2111 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2257 common/models.py:2435 +#: common/models.py:2271 common/models.py:2449 msgid "Endpoint" msgstr "" -#: common/models.py:2258 +#: common/models.py:2272 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2267 +#: common/models.py:2281 msgid "Name for this webhook" msgstr "" -#: common/models.py:2272 part/admin.py:50 part/models.py:1011 +#: common/models.py:2286 part/admin.py:50 part/models.py:1011 #: plugin/models.py:100 templates/js/translated/table_filters.js:62 #: templates/js/translated/table_filters.js:144 #: templates/js/translated/table_filters.js:380 @@ -3114,97 +3195,97 @@ msgstr "" msgid "Active" msgstr "" -#: common/models.py:2273 +#: common/models.py:2287 msgid "Is this webhook active" msgstr "" -#: common/models.py:2287 +#: common/models.py:2301 msgid "Token" msgstr "令牌" -#: common/models.py:2288 +#: common/models.py:2302 msgid "Token for access" msgstr "" -#: common/models.py:2295 +#: common/models.py:2309 msgid "Secret" msgstr "" -#: common/models.py:2296 +#: common/models.py:2310 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2402 +#: common/models.py:2416 msgid "Message ID" msgstr "" -#: common/models.py:2403 +#: common/models.py:2417 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2411 +#: common/models.py:2425 msgid "Host" msgstr "" -#: common/models.py:2412 +#: common/models.py:2426 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2419 +#: common/models.py:2433 msgid "Header" msgstr "" -#: common/models.py:2420 +#: common/models.py:2434 msgid "Header of this message" msgstr "" -#: common/models.py:2426 +#: common/models.py:2440 msgid "Body" msgstr "" -#: common/models.py:2427 +#: common/models.py:2441 msgid "Body of this message" msgstr "" -#: common/models.py:2436 +#: common/models.py:2450 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2441 +#: common/models.py:2455 msgid "Worked on" msgstr "" -#: common/models.py:2442 +#: common/models.py:2456 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:2596 +#: common/models.py:2610 msgid "Id" msgstr "" -#: common/models.py:2602 templates/js/translated/news.js:35 +#: common/models.py:2616 templates/js/translated/news.js:35 msgid "Title" msgstr "" -#: common/models.py:2612 templates/js/translated/news.js:51 +#: common/models.py:2626 templates/js/translated/news.js:51 msgid "Published" msgstr "" -#: common/models.py:2617 templates/InvenTree/settings/plugin.html:62 +#: common/models.py:2631 templates/InvenTree/settings/plugin.html:62 #: templates/InvenTree/settings/plugin_settings.html:33 #: templates/js/translated/news.js:47 msgid "Author" msgstr "" -#: common/models.py:2622 templates/js/translated/news.js:43 +#: common/models.py:2636 templates/js/translated/news.js:43 msgid "Summary" msgstr "" -#: common/models.py:2627 +#: common/models.py:2641 msgid "Read" msgstr "" -#: common/models.py:2628 +#: common/models.py:2642 msgid "Was this news item read?" msgstr "" @@ -3318,9 +3399,9 @@ msgid "Contact email address" msgstr "联系人电子邮件" #: company/models.py:126 company/templates/company/company_base.html:140 -#: order/models.py:231 order/templates/order/order_base.html:187 -#: order/templates/order/return_order_base.html:155 -#: order/templates/order/sales_order_base.html:186 +#: order/models.py:232 order/templates/order/order_base.html:206 +#: order/templates/order/return_order_base.html:176 +#: order/templates/order/sales_order_base.html:214 msgid "Contact" msgstr "联系人" @@ -3374,7 +3455,7 @@ msgstr "该公司使用的默认货币" msgid "Company" msgstr "公司" -#: company/models.py:277 company/models.py:512 stock/models.py:667 +#: company/models.py:277 company/models.py:512 stock/models.py:668 #: stock/serializers.py:143 stock/templates/stock/item_base.html:143 #: templates/js/translated/bom.js:591 msgid "Base Part" @@ -3386,8 +3467,8 @@ msgstr "选择商品" #: company/models.py:292 company/templates/company/company_base.html:77 #: company/templates/company/manufacturer_part.html:90 -#: company/templates/company/supplier_part.html:152 part/serializers.py:359 -#: stock/templates/stock/item_base.html:213 +#: company/templates/company/supplier_part.html:146 part/serializers.py:359 +#: stock/templates/stock/item_base.html:208 #: templates/js/translated/company.js:484 #: templates/js/translated/company.js:809 #: templates/js/translated/company.js:939 @@ -3401,13 +3482,13 @@ msgid "Select manufacturer" msgstr "选择制造商" #: company/models.py:299 company/templates/company/manufacturer_part.html:101 -#: company/templates/company/supplier_part.html:160 part/serializers.py:365 +#: company/templates/company/supplier_part.html:154 part/serializers.py:365 #: templates/js/translated/company.js:325 #: templates/js/translated/company.js:808 #: templates/js/translated/company.js:955 #: templates/js/translated/company.js:1225 templates/js/translated/part.js:1435 -#: templates/js/translated/purchase_order.js:1684 -#: templates/js/translated/purchase_order.js:1891 +#: templates/js/translated/purchase_order.js:1751 +#: templates/js/translated/purchase_order.js:1958 msgid "MPN" msgstr "" @@ -3426,7 +3507,7 @@ msgstr "制造商商品描述" #: company/models.py:357 company/models.py:381 company/models.py:535 #: company/templates/company/manufacturer_part.html:7 #: company/templates/company/manufacturer_part.html:24 -#: stock/templates/stock/item_base.html:223 +#: stock/templates/stock/item_base.html:218 msgid "Manufacturer Part" msgstr "制造商商品" @@ -3436,7 +3517,7 @@ msgstr "参数名称" #: company/models.py:394 #: report/templates/report/inventree_test_report_base.html:104 -#: stock/models.py:2195 templates/js/translated/company.js:857 +#: stock/models.py:2222 templates/js/translated/company.js:857 #: templates/js/translated/company.js:1062 templates/js/translated/part.js:1268 #: templates/js/translated/stock.js:1425 msgid "Value" @@ -3447,7 +3528,7 @@ msgid "Parameter value" msgstr "参数值" #: company/models.py:401 part/admin.py:40 part/models.py:978 -#: part/models.py:3337 part/templates/part/part_base.html:287 +#: part/models.py:3337 part/templates/part/part_base.html:286 #: templates/InvenTree/settings/settings_staff_js.html:255 #: templates/js/translated/company.js:1068 templates/js/translated/part.js:1274 msgid "Units" @@ -3462,15 +3543,15 @@ msgid "Linked manufacturer part must reference the same base part" msgstr "" #: company/models.py:522 company/templates/company/company_base.html:82 -#: company/templates/company/supplier_part.html:136 order/models.py:349 -#: order/templates/order/order_base.html:120 part/bom.py:285 part/bom.py:313 -#: part/serializers.py:348 stock/templates/stock/item_base.html:230 +#: company/templates/company/supplier_part.html:130 order/models.py:350 +#: order/templates/order/order_base.html:139 part/bom.py:285 part/bom.py:313 +#: part/serializers.py:348 stock/templates/stock/item_base.html:225 #: templates/email/overdue_purchase_order.html:16 #: templates/js/translated/company.js:324 #: templates/js/translated/company.js:488 #: templates/js/translated/company.js:1179 templates/js/translated/part.js:1403 #: templates/js/translated/pricing.js:480 -#: templates/js/translated/purchase_order.js:1535 +#: templates/js/translated/purchase_order.js:1602 #: templates/js/translated/table_filters.js:510 msgid "Supplier" msgstr "供应商" @@ -3479,12 +3560,12 @@ msgstr "供应商" msgid "Select supplier" msgstr "选择供应商" -#: company/models.py:528 company/templates/company/supplier_part.html:146 +#: company/models.py:528 company/templates/company/supplier_part.html:140 #: part/bom.py:286 part/bom.py:314 part/serializers.py:354 #: templates/js/translated/company.js:323 templates/js/translated/part.js:1421 #: templates/js/translated/pricing.js:492 -#: templates/js/translated/purchase_order.js:1683 -#: templates/js/translated/purchase_order.js:1866 +#: templates/js/translated/purchase_order.js:1750 +#: templates/js/translated/purchase_order.js:1933 msgid "SKU" msgstr "" @@ -3504,7 +3585,7 @@ msgstr "外部供货商商品链接URL" msgid "Supplier part description" msgstr "供应商商品描述" -#: company/models.py:553 company/templates/company/supplier_part.html:181 +#: company/models.py:553 company/templates/company/supplier_part.html:175 #: part/admin.py:279 part/models.py:3605 part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_po_report_base.html:32 @@ -3522,9 +3603,9 @@ msgstr "" msgid "Minimum charge (e.g. stocking fee)" msgstr "最低收费(例如库存费)" -#: company/models.py:559 company/templates/company/supplier_part.html:167 -#: stock/admin.py:119 stock/models.py:693 -#: stock/templates/stock/item_base.html:246 +#: company/models.py:559 company/templates/company/supplier_part.html:161 +#: stock/admin.py:119 stock/models.py:694 +#: stock/templates/stock/item_base.html:241 #: templates/js/translated/company.js:1241 #: templates/js/translated/stock.js:2130 msgid "Packaging" @@ -3535,14 +3616,14 @@ msgid "Part packaging" msgstr "商品打包" #: company/models.py:562 company/serializers.py:319 -#: company/templates/company/supplier_part.html:174 +#: company/templates/company/supplier_part.html:168 #: templates/js/translated/company.js:1246 templates/js/translated/part.js:1456 #: templates/js/translated/part.js:1512 #: templates/js/translated/purchase_order.js:250 -#: templates/js/translated/purchase_order.js:775 -#: templates/js/translated/purchase_order.js:1032 -#: templates/js/translated/purchase_order.js:1922 -#: templates/js/translated/purchase_order.js:1939 +#: templates/js/translated/purchase_order.js:778 +#: templates/js/translated/purchase_order.js:1022 +#: templates/js/translated/purchase_order.js:1989 +#: templates/js/translated/purchase_order.js:2006 msgid "Pack Quantity" msgstr "" @@ -3628,15 +3709,15 @@ msgstr "从 URL 下载图片" msgid "Delete image" msgstr "" -#: company/templates/company/company_base.html:87 order/models.py:736 -#: order/models.py:1652 order/templates/order/return_order_base.html:112 -#: order/templates/order/sales_order_base.html:116 stock/models.py:712 -#: stock/models.py:713 stock/serializers.py:796 -#: stock/templates/stock/item_base.html:402 +#: company/templates/company/company_base.html:87 order/models.py:748 +#: order/models.py:1687 order/templates/order/return_order_base.html:133 +#: order/templates/order/sales_order_base.html:144 stock/models.py:713 +#: stock/models.py:714 stock/serializers.py:796 +#: stock/templates/stock/item_base.html:395 #: templates/email/overdue_sales_order.html:16 #: templates/js/translated/company.js:480 #: templates/js/translated/return_order.js:254 -#: templates/js/translated/sales_order.js:696 +#: templates/js/translated/sales_order.js:722 #: templates/js/translated/stock.js:2738 #: templates/js/translated/table_filters.js:514 msgid "Customer" @@ -3651,7 +3732,7 @@ msgid "Phone" msgstr "电话" #: company/templates/company/company_base.html:206 -#: part/templates/part/part_base.html:536 +#: part/templates/part/part_base.html:529 msgid "Remove Image" msgstr "" @@ -3660,25 +3741,25 @@ msgid "Remove associated image from this company" msgstr "" #: company/templates/company/company_base.html:209 -#: part/templates/part/part_base.html:539 +#: part/templates/part/part_base.html:532 #: templates/InvenTree/settings/user.html:87 #: templates/InvenTree/settings/user.html:149 msgid "Remove" msgstr "" #: company/templates/company/company_base.html:238 -#: part/templates/part/part_base.html:568 +#: part/templates/part/part_base.html:561 msgid "Upload Image" msgstr "上传图片" #: company/templates/company/company_base.html:253 -#: part/templates/part/part_base.html:623 +#: part/templates/part/part_base.html:616 msgid "Download Image" msgstr "下载图片" #: company/templates/company/detail.html:15 #: company/templates/company/manufacturer_part_sidebar.html:7 -#: templates/InvenTree/search.html:120 templates/js/translated/search.js:175 +#: templates/InvenTree/search.html:120 templates/js/translated/search.js:177 msgid "Supplier Parts" msgstr "供应商商品" @@ -3709,7 +3790,7 @@ msgid "Delete Parts" msgstr "删除商品" #: company/templates/company/detail.html:62 templates/InvenTree/search.html:105 -#: templates/js/translated/search.js:179 +#: templates/js/translated/search.js:181 msgid "Manufacturer Parts" msgstr "制造商商品" @@ -3734,7 +3815,7 @@ msgstr "供货商库存" #: part/templates/part/detail.html:108 part/templates/part/part_sidebar.html:35 #: templates/InvenTree/index.html:252 templates/InvenTree/search.html:200 #: templates/InvenTree/settings/sidebar.html:51 -#: templates/js/translated/search.js:233 templates/navbar.html:50 +#: templates/js/translated/search.js:235 templates/navbar.html:50 #: users/models.py:43 msgid "Purchase Orders" msgstr "采购订单" @@ -3757,7 +3838,7 @@ msgstr "新建采购订单" #: part/templates/part/detail.html:131 part/templates/part/part_sidebar.html:39 #: templates/InvenTree/index.html:283 templates/InvenTree/search.html:220 #: templates/InvenTree/settings/sidebar.html:53 -#: templates/js/translated/search.js:247 templates/navbar.html:62 +#: templates/js/translated/search.js:249 templates/navbar.html:62 #: users/models.py:44 msgid "Sales Orders" msgstr "销售订单" @@ -3783,7 +3864,7 @@ msgstr "" #: order/templates/order/return_orders.html:8 #: order/templates/order/return_orders.html:15 #: templates/InvenTree/settings/sidebar.html:55 -#: templates/js/translated/search.js:260 templates/navbar.html:65 +#: templates/js/translated/search.js:262 templates/navbar.html:65 #: users/models.py:45 #, fuzzy #| msgid "Returned" @@ -3827,7 +3908,7 @@ msgid "Manufacturers" msgstr "制造商" #: company/templates/company/manufacturer_part.html:35 -#: company/templates/company/supplier_part.html:221 +#: company/templates/company/supplier_part.html:215 #: part/templates/part/detail.html:111 part/templates/part/part_base.html:85 msgid "Order part" msgstr "订购商品" @@ -3867,8 +3948,8 @@ msgstr "删除供应商商品" #: company/templates/company/manufacturer_part.html:183 #: part/templates/part/detail.html:393 part/templates/part/detail.html:423 #: templates/js/translated/forms.js:499 templates/js/translated/helpers.js:58 -#: templates/js/translated/part.js:313 templates/js/translated/stock.js:186 -#: users/models.py:243 +#: templates/js/translated/part.js:313 templates/js/translated/pricing.js:611 +#: templates/js/translated/stock.js:186 users/models.py:243 msgid "Delete" msgstr "删除" @@ -3918,50 +3999,21 @@ msgid "Contacts" msgstr "联系人" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:676 -#: stock/templates/stock/item_base.html:239 +#: company/templates/company/supplier_part.html:24 stock/models.py:677 +#: stock/templates/stock/item_base.html:234 #: templates/js/translated/company.js:1195 -#: templates/js/translated/purchase_order.js:695 +#: templates/js/translated/purchase_order.js:698 #: templates/js/translated/stock.js:1990 msgid "Supplier Part" msgstr "供应商商品" -#: company/templates/company/supplier_part.html:36 -#: part/templates/part/part_base.html:43 -#: stock/templates/stock/item_base.html:41 -#: stock/templates/stock/location.html:54 -msgid "Barcode actions" -msgstr "" - -#: company/templates/company/supplier_part.html:40 -#: part/templates/part/part_base.html:46 -#: stock/templates/stock/item_base.html:45 -#: stock/templates/stock/location.html:56 templates/qr_button.html:1 -msgid "Show QR Code" -msgstr "" - -#: company/templates/company/supplier_part.html:42 -#: stock/templates/stock/item_base.html:48 -#: stock/templates/stock/location.html:58 -#: templates/js/translated/barcode.js:453 -#: templates/js/translated/barcode.js:458 -msgid "Unlink Barcode" -msgstr "" - -#: company/templates/company/supplier_part.html:44 -#: part/templates/part/part_base.html:51 -#: stock/templates/stock/item_base.html:50 -#: stock/templates/stock/location.html:60 -msgid "Link Barcode" -msgstr "" - #: company/templates/company/supplier_part.html:51 msgid "Supplier part actions" msgstr "" #: company/templates/company/supplier_part.html:56 #: company/templates/company/supplier_part.html:57 -#: company/templates/company/supplier_part.html:222 +#: company/templates/company/supplier_part.html:216 #: part/templates/part/detail.html:112 msgid "Order Part" msgstr "订购商品" @@ -3991,67 +4043,60 @@ msgstr "" msgid "Delete Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:122 -#: part/templates/part/part_base.html:308 -#: stock/templates/stock/item_base.html:161 -#: stock/templates/stock/location.html:156 -msgid "Barcode Identifier" -msgstr "" - -#: company/templates/company/supplier_part.html:140 +#: company/templates/company/supplier_part.html:134 msgid "No supplier information available" msgstr "" -#: company/templates/company/supplier_part.html:200 +#: company/templates/company/supplier_part.html:194 msgid "Supplier Part Stock" msgstr "供货商商品库存" -#: company/templates/company/supplier_part.html:203 -#: part/templates/part/detail.html:24 stock/templates/stock/location.html:203 +#: company/templates/company/supplier_part.html:197 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:197 msgid "Create new stock item" msgstr "" -#: company/templates/company/supplier_part.html:204 -#: part/templates/part/detail.html:25 stock/templates/stock/location.html:204 +#: company/templates/company/supplier_part.html:198 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:198 #: templates/js/translated/stock.js:471 msgid "New Stock Item" msgstr "" -#: company/templates/company/supplier_part.html:217 +#: company/templates/company/supplier_part.html:211 msgid "Supplier Part Orders" msgstr "供应商商品订单" -#: company/templates/company/supplier_part.html:242 +#: company/templates/company/supplier_part.html:236 msgid "Pricing Information" msgstr "价格信息" -#: company/templates/company/supplier_part.html:247 +#: company/templates/company/supplier_part.html:241 #: templates/js/translated/company.js:373 #: templates/js/translated/pricing.js:666 msgid "Add Price Break" msgstr "" -#: company/templates/company/supplier_part.html:274 +#: company/templates/company/supplier_part.html:268 msgid "Supplier Part QR Code" msgstr "" -#: company/templates/company/supplier_part.html:285 +#: company/templates/company/supplier_part.html:279 msgid "Link Barcode to Supplier Part" msgstr "" -#: company/templates/company/supplier_part.html:360 +#: company/templates/company/supplier_part.html:354 msgid "Update Part Availability" msgstr "" #: company/templates/company/supplier_part_sidebar.html:5 part/tasks.py:288 #: part/templates/part/category.html:199 #: part/templates/part/category_sidebar.html:17 stock/admin.py:47 -#: stock/templates/stock/location.html:174 -#: stock/templates/stock/location.html:188 -#: stock/templates/stock/location.html:200 +#: stock/templates/stock/location.html:168 +#: stock/templates/stock/location.html:182 +#: stock/templates/stock/location.html:194 #: stock/templates/stock/location_sidebar.html:7 #: templates/InvenTree/search.html:155 templates/js/translated/part.js:977 -#: templates/js/translated/search.js:200 templates/js/translated/stock.js:2569 +#: templates/js/translated/search.js:202 templates/js/translated/stock.js:2569 #: users/models.py:41 msgid "Stock Items" msgstr "库存项" @@ -4077,7 +4122,7 @@ msgstr "客户信息" msgid "New Customer" msgstr "新建客户" -#: company/views.py:52 templates/js/translated/search.js:220 +#: company/views.py:52 templates/js/translated/search.js:222 msgid "Companies" msgstr "公司" @@ -4151,375 +4196,379 @@ msgstr "查询筛选器 (逗号分隔的键值对列表" msgid "Part query filters (comma-separated value of key=value pairs)" msgstr "商品查询筛选器 (逗号分隔的键值对列表)" -#: order/api.py:229 +#: order/api.py:225 msgid "No matching purchase order found" msgstr "" -#: order/api.py:1514 order/models.py:1106 order/models.py:1190 +#: order/api.py:1420 order/models.py:1141 order/models.py:1225 #: order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:18 #: report/templates/report/inventree_po_report_base.html:14 -#: stock/templates/stock/item_base.html:182 +#: stock/templates/stock/item_base.html:177 #: templates/email/overdue_purchase_order.html:15 #: templates/js/translated/part.js:1380 templates/js/translated/pricing.js:772 #: templates/js/translated/purchase_order.js:108 -#: templates/js/translated/purchase_order.js:696 -#: templates/js/translated/purchase_order.js:1519 +#: templates/js/translated/purchase_order.js:699 +#: templates/js/translated/purchase_order.js:1586 #: templates/js/translated/stock.js:1970 templates/js/translated/stock.js:2685 msgid "Purchase Order" msgstr "" -#: order/api.py:1518 +#: order/api.py:1424 msgid "Unknown" msgstr "" -#: order/models.py:66 report/templates/report/inventree_po_report_base.html:31 +#: order/models.py:67 report/templates/report/inventree_po_report_base.html:31 #: report/templates/report/inventree_so_report_base.html:31 -#: templates/js/translated/order.js:299 -#: templates/js/translated/purchase_order.js:1963 -#: templates/js/translated/sales_order.js:1711 +#: templates/js/translated/order.js:302 +#: templates/js/translated/purchase_order.js:2030 +#: templates/js/translated/sales_order.js:1739 msgid "Total Price" msgstr "" -#: order/models.py:67 +#: order/models.py:68 #, fuzzy #| msgid "User or group responsible for this order" msgid "Total price for this order" msgstr "负责此订单的用户或群组" -#: order/models.py:177 +#: order/models.py:178 #, fuzzy #| msgid "Build output does not match the parent build" msgid "Contact does not match selected company" msgstr "生产产出与对应生产不匹配" -#: order/models.py:199 -msgid "Order description" -msgstr "" +#: order/models.py:200 +#, fuzzy +#| msgid "Description (optional)" +msgid "Order description (optional)" +msgstr "描述 (可选)" -#: order/models.py:201 order/models.py:1378 order/models.py:1856 +#: order/models.py:202 order/models.py:1063 order/models.py:1413 msgid "Link to external page" msgstr "" -#: order/models.py:206 +#: order/models.py:207 msgid "Expected date for order delivery. Order will be overdue after this date." msgstr "" -#: order/models.py:215 +#: order/models.py:216 msgid "Created By" msgstr "" -#: order/models.py:222 +#: order/models.py:223 msgid "User or group responsible for this order" msgstr "负责此订单的用户或群组" -#: order/models.py:232 +#: order/models.py:233 #, fuzzy #| msgid "Priority of this build order" msgid "Point of contact for this order" msgstr "此构建订单的优先级" -#: order/models.py:236 +#: order/models.py:237 msgid "Order notes" msgstr "" -#: order/models.py:327 order/models.py:723 +#: order/models.py:328 order/models.py:735 msgid "Order reference" msgstr "" -#: order/models.py:335 order/models.py:748 +#: order/models.py:336 order/models.py:760 msgid "Purchase order status" msgstr "" -#: order/models.py:350 +#: order/models.py:351 msgid "Company from which the items are being ordered" msgstr "订购该商品的公司" -#: order/models.py:358 order/templates/order/order_base.html:132 -#: templates/js/translated/purchase_order.js:1544 +#: order/models.py:359 order/templates/order/order_base.html:151 +#: templates/js/translated/purchase_order.js:1611 msgid "Supplier Reference" msgstr "" -#: order/models.py:358 +#: order/models.py:359 msgid "Supplier order reference code" msgstr "" -#: order/models.py:365 +#: order/models.py:366 msgid "received by" msgstr "" -#: order/models.py:370 order/models.py:1675 +#: order/models.py:371 order/models.py:1710 msgid "Issue Date" msgstr "" -#: order/models.py:371 order/models.py:1676 +#: order/models.py:372 order/models.py:1711 msgid "Date order was issued" msgstr "" -#: order/models.py:377 order/models.py:1682 +#: order/models.py:378 order/models.py:1717 msgid "Date order was completed" msgstr "" -#: order/models.py:412 +#: order/models.py:413 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:560 +#: order/models.py:566 msgid "Quantity must be a positive number" msgstr "数量必须大于0" -#: order/models.py:737 +#: order/models.py:749 msgid "Company to which the items are being sold" msgstr "向其出售该商品的公司" -#: order/models.py:756 order/models.py:1669 +#: order/models.py:768 order/models.py:1704 msgid "Customer Reference " msgstr "" -#: order/models.py:756 order/models.py:1670 +#: order/models.py:768 order/models.py:1705 msgid "Customer order reference code" msgstr "" -#: order/models.py:758 order/models.py:1336 -#: templates/js/translated/sales_order.js:743 -#: templates/js/translated/sales_order.js:906 +#: order/models.py:770 order/models.py:1371 +#: templates/js/translated/sales_order.js:769 +#: templates/js/translated/sales_order.js:932 msgid "Shipment Date" msgstr "" -#: order/models.py:765 +#: order/models.py:777 msgid "shipped by" msgstr "" -#: order/models.py:809 +#: order/models.py:826 msgid "Order cannot be completed as no parts have been assigned" msgstr "" -#: order/models.py:813 -msgid "Only a pending order can be marked as complete" -msgstr "" +#: order/models.py:830 +#, fuzzy +#| msgid "Build Order is ready to mark as completed" +msgid "Only an open order can be marked as complete" +msgstr "构建订单已准备好标记为已完成" -#: order/models.py:816 templates/js/translated/sales_order.js:437 +#: order/models.py:833 templates/js/translated/sales_order.js:441 msgid "Order cannot be completed as there are incomplete shipments" msgstr "" -#: order/models.py:819 +#: order/models.py:836 msgid "Order cannot be completed as there are incomplete line items" msgstr "" -#: order/models.py:1014 +#: order/models.py:1043 msgid "Item quantity" msgstr "" -#: order/models.py:1027 +#: order/models.py:1056 msgid "Line item reference" msgstr "" -#: order/models.py:1029 +#: order/models.py:1058 msgid "Line item notes" msgstr "" -#: order/models.py:1034 +#: order/models.py:1069 msgid "Target date for this line item (leave blank to use the target date from the order)" msgstr "" -#: order/models.py:1051 +#: order/models.py:1086 msgid "Context" msgstr "" -#: order/models.py:1052 +#: order/models.py:1087 msgid "Additional context for this line" msgstr "" -#: order/models.py:1061 +#: order/models.py:1096 msgid "Unit price" msgstr "" -#: order/models.py:1091 +#: order/models.py:1126 msgid "Supplier part must match supplier" msgstr "" -#: order/models.py:1099 +#: order/models.py:1134 msgid "deleted" msgstr "" -#: order/models.py:1105 order/models.py:1190 order/models.py:1231 -#: order/models.py:1330 order/models.py:1465 order/models.py:1821 -#: order/models.py:1870 templates/js/translated/sales_order.js:1357 +#: order/models.py:1140 order/models.py:1225 order/models.py:1266 +#: order/models.py:1365 order/models.py:1500 order/models.py:1857 +#: order/models.py:1904 templates/js/translated/sales_order.js:1383 msgid "Order" msgstr "" -#: order/models.py:1124 +#: order/models.py:1159 msgid "Supplier part" msgstr "供应商商品" -#: order/models.py:1131 order/templates/order/order_base.html:180 +#: order/models.py:1166 order/templates/order/order_base.html:199 #: templates/js/translated/part.js:1504 templates/js/translated/part.js:1536 -#: templates/js/translated/purchase_order.js:1198 -#: templates/js/translated/purchase_order.js:2007 -#: templates/js/translated/return_order.js:703 +#: templates/js/translated/purchase_order.js:1225 +#: templates/js/translated/purchase_order.js:2074 +#: templates/js/translated/return_order.js:706 #: templates/js/translated/table_filters.js:48 #: templates/js/translated/table_filters.js:421 msgid "Received" msgstr "" -#: order/models.py:1132 +#: order/models.py:1167 msgid "Number of items received" msgstr "" -#: order/models.py:1139 stock/models.py:809 stock/serializers.py:229 -#: stock/templates/stock/item_base.html:189 +#: order/models.py:1174 stock/models.py:810 stock/serializers.py:229 +#: stock/templates/stock/item_base.html:184 #: templates/js/translated/stock.js:2021 msgid "Purchase Price" msgstr "采购价格" -#: order/models.py:1140 +#: order/models.py:1175 msgid "Unit purchase price" msgstr "" -#: order/models.py:1153 +#: order/models.py:1188 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:1219 +#: order/models.py:1254 msgid "Virtual part cannot be assigned to a sales order" msgstr "" -#: order/models.py:1224 +#: order/models.py:1259 msgid "Only salable parts can be assigned to a sales order" msgstr "" -#: order/models.py:1250 part/templates/part/part_pricing.html:107 +#: order/models.py:1285 part/templates/part/part_pricing.html:107 #: part/templates/part/prices.html:128 templates/js/translated/pricing.js:922 msgid "Sale Price" msgstr "销售价格" -#: order/models.py:1251 +#: order/models.py:1286 msgid "Unit sale price" msgstr "" -#: order/models.py:1261 +#: order/models.py:1296 msgid "Shipped quantity" msgstr "" -#: order/models.py:1337 +#: order/models.py:1372 msgid "Date of shipment" msgstr "" -#: order/models.py:1344 +#: order/models.py:1379 msgid "Checked By" msgstr "" -#: order/models.py:1345 +#: order/models.py:1380 msgid "User who checked this shipment" msgstr "" -#: order/models.py:1352 order/models.py:1541 order/serializers.py:1202 -#: order/serializers.py:1330 templates/js/translated/model_renderers.js:403 +#: order/models.py:1387 order/models.py:1576 order/serializers.py:1224 +#: order/serializers.py:1352 templates/js/translated/model_renderers.js:409 msgid "Shipment" msgstr "" -#: order/models.py:1353 +#: order/models.py:1388 msgid "Shipment number" msgstr "" -#: order/models.py:1357 +#: order/models.py:1392 msgid "Shipment notes" msgstr "" -#: order/models.py:1363 +#: order/models.py:1398 msgid "Tracking Number" msgstr "" -#: order/models.py:1364 +#: order/models.py:1399 msgid "Shipment tracking information" msgstr "" -#: order/models.py:1371 +#: order/models.py:1406 msgid "Invoice Number" msgstr "" -#: order/models.py:1372 +#: order/models.py:1407 msgid "Reference number for associated invoice" msgstr "" -#: order/models.py:1390 +#: order/models.py:1425 msgid "Shipment has already been sent" msgstr "" -#: order/models.py:1393 +#: order/models.py:1428 msgid "Shipment has no allocated stock items" msgstr "" -#: order/models.py:1500 order/models.py:1502 +#: order/models.py:1535 order/models.py:1537 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:1506 +#: order/models.py:1541 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:1508 +#: order/models.py:1543 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:1511 +#: order/models.py:1546 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:1521 order/serializers.py:1064 +#: order/models.py:1556 order/serializers.py:1086 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:1524 +#: order/models.py:1559 msgid "Sales order does not match shipment" msgstr "" -#: order/models.py:1525 +#: order/models.py:1560 msgid "Shipment does not match sales order" msgstr "" -#: order/models.py:1533 +#: order/models.py:1568 msgid "Line" msgstr "" -#: order/models.py:1542 +#: order/models.py:1577 msgid "Sales order shipment reference" msgstr "" -#: order/models.py:1555 order/models.py:1829 -#: templates/js/translated/return_order.js:661 +#: order/models.py:1590 order/models.py:1865 +#: templates/js/translated/return_order.js:664 msgid "Item" msgstr "" -#: order/models.py:1556 +#: order/models.py:1591 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:1559 +#: order/models.py:1594 msgid "Enter stock allocation quantity" msgstr "" -#: order/models.py:1639 +#: order/models.py:1674 #, fuzzy #| msgid "Build Order Reference" msgid "Return Order reference" msgstr "相关生产订单" -#: order/models.py:1653 +#: order/models.py:1688 #, fuzzy #| msgid "Company from which the items are being ordered" msgid "Company from which items are being returned" msgstr "订购该商品的公司" -#: order/models.py:1664 +#: order/models.py:1699 msgid "Return order status" msgstr "" -#: order/models.py:1814 +#: order/models.py:1850 msgid "Only serialized items can be assigned to a Return Order" msgstr "" -#: order/models.py:1822 order/models.py:1870 +#: order/models.py:1858 order/models.py:1904 #: order/templates/order/return_order_base.html:9 #: order/templates/order/return_order_base.html:28 #: report/templates/report/inventree_return_order_report_base.html:13 @@ -4530,170 +4579,176 @@ msgstr "" msgid "Return Order" msgstr "已退回" -#: order/models.py:1830 +#: order/models.py:1866 #, fuzzy #| msgid "Returned from customer" msgid "Select item to return from customer" msgstr "从客户退货" -#: order/models.py:1835 +#: order/models.py:1871 msgid "Received Date" msgstr "" -#: order/models.py:1836 +#: order/models.py:1872 msgid "The date this this return item was received" msgstr "" -#: order/models.py:1847 templates/js/translated/return_order.js:672 +#: order/models.py:1883 templates/js/translated/return_order.js:675 #: templates/js/translated/table_filters.js:51 msgid "Outcome" msgstr "" -#: order/models.py:1847 +#: order/models.py:1883 msgid "Outcome for this line item" msgstr "" -#: order/models.py:1853 +#: order/models.py:1889 msgid "Cost associated with return or repair for this line item" msgstr "" -#: order/serializers.py:223 +#: order/serializers.py:228 msgid "Order cannot be cancelled" msgstr "无法取消订单" -#: order/serializers.py:238 order/serializers.py:1082 +#: order/serializers.py:243 order/serializers.py:1104 msgid "Allow order to be closed with incomplete line items" msgstr "" -#: order/serializers.py:249 order/serializers.py:1093 +#: order/serializers.py:254 order/serializers.py:1115 msgid "Order has incomplete line items" msgstr "" -#: order/serializers.py:361 +#: order/serializers.py:367 msgid "Order is not open" msgstr "" -#: order/serializers.py:379 +#: order/serializers.py:385 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:397 +#: order/serializers.py:403 msgid "Supplier part must be specified" msgstr "" -#: order/serializers.py:402 +#: order/serializers.py:408 msgid "Purchase order must be specified" msgstr "" -#: order/serializers.py:408 +#: order/serializers.py:414 msgid "Supplier must match purchase order" msgstr "" -#: order/serializers.py:409 +#: order/serializers.py:415 msgid "Purchase order must match supplier" msgstr "" -#: order/serializers.py:447 order/serializers.py:1170 +#: order/serializers.py:453 order/serializers.py:1192 msgid "Line Item" msgstr "" -#: order/serializers.py:453 +#: order/serializers.py:459 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:463 order/serializers.py:582 order/serializers.py:1541 +#: order/serializers.py:469 order/serializers.py:590 order/serializers.py:1563 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:482 templates/js/translated/purchase_order.js:1059 +#: order/serializers.py:488 templates/js/translated/purchase_order.js:1049 msgid "Enter batch code for incoming stock items" msgstr "" -#: order/serializers.py:490 templates/js/translated/purchase_order.js:1070 +#: order/serializers.py:496 templates/js/translated/purchase_order.js:1073 msgid "Enter serial numbers for incoming stock items" msgstr "" -#: order/serializers.py:504 -msgid "Unique identifier field" -msgstr "" +#: order/serializers.py:509 templates/js/translated/barcode.js:41 +msgid "Barcode" +msgstr "条形码" -#: order/serializers.py:518 +#: order/serializers.py:510 +#, fuzzy +#| msgid "Scan Barcode" +msgid "Scanned barcode" +msgstr "扫描条形码" + +#: order/serializers.py:526 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:544 +#: order/serializers.py:552 msgid "An integer quantity must be provided for trackable parts" msgstr "" -#: order/serializers.py:598 order/serializers.py:1556 +#: order/serializers.py:606 order/serializers.py:1578 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:615 +#: order/serializers.py:623 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:626 +#: order/serializers.py:634 msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:907 +#: order/serializers.py:929 msgid "Sale price currency" msgstr "" -#: order/serializers.py:962 +#: order/serializers.py:984 msgid "No shipment details provided" msgstr "" -#: order/serializers.py:1025 order/serializers.py:1179 +#: order/serializers.py:1047 order/serializers.py:1201 msgid "Line item is not associated with this order" msgstr "" -#: order/serializers.py:1047 +#: order/serializers.py:1069 msgid "Quantity must be positive" msgstr "" -#: order/serializers.py:1192 +#: order/serializers.py:1214 msgid "Enter serial numbers to allocate" msgstr "" -#: order/serializers.py:1214 order/serializers.py:1338 +#: order/serializers.py:1236 order/serializers.py:1360 msgid "Shipment has already been shipped" msgstr "" -#: order/serializers.py:1217 order/serializers.py:1341 +#: order/serializers.py:1239 order/serializers.py:1363 msgid "Shipment is not associated with this order" msgstr "" -#: order/serializers.py:1271 +#: order/serializers.py:1293 msgid "No match found for the following serial numbers" msgstr "" -#: order/serializers.py:1281 +#: order/serializers.py:1303 msgid "The following serial numbers are already allocated" msgstr "" -#: order/serializers.py:1507 +#: order/serializers.py:1529 msgid "Return order line item" msgstr "" -#: order/serializers.py:1514 +#: order/serializers.py:1536 #, fuzzy #| msgid "Build output does not match Build Order" msgid "Line item does not match return order" msgstr "生产产出与订单不匹配" -#: order/serializers.py:1517 +#: order/serializers.py:1539 #, fuzzy #| msgid "This build output has already been completed" msgid "Line item has already been received" msgstr "此生产产出已经完成" -#: order/serializers.py:1549 +#: order/serializers.py:1571 msgid "Items can only be received against orders which are in progress" msgstr "" -#: order/serializers.py:1629 +#: order/serializers.py:1652 #, fuzzy #| msgid "Uses default currency" msgid "Line price currency" @@ -4717,113 +4772,129 @@ msgstr "" msgid "Sales order {so} is now overdue" msgstr "" -#: order/templates/order/order_base.html:33 +#: order/templates/order/order_base.html:51 msgid "Print purchase order report" msgstr "" -#: order/templates/order/order_base.html:35 -#: order/templates/order/return_order_base.html:45 -#: order/templates/order/sales_order_base.html:45 +#: order/templates/order/order_base.html:53 +#: order/templates/order/return_order_base.html:63 +#: order/templates/order/sales_order_base.html:63 msgid "Export order to file" msgstr "" -#: order/templates/order/order_base.html:41 -#: order/templates/order/return_order_base.html:55 -#: order/templates/order/sales_order_base.html:54 +#: order/templates/order/order_base.html:59 +#: order/templates/order/return_order_base.html:73 +#: order/templates/order/sales_order_base.html:72 msgid "Order actions" msgstr "" -#: order/templates/order/order_base.html:46 -#: order/templates/order/return_order_base.html:59 -#: order/templates/order/sales_order_base.html:58 +#: order/templates/order/order_base.html:64 +#: order/templates/order/return_order_base.html:77 +#: order/templates/order/sales_order_base.html:76 msgid "Edit order" msgstr "" -#: order/templates/order/order_base.html:50 -#: order/templates/order/return_order_base.html:61 -#: order/templates/order/sales_order_base.html:61 +#: order/templates/order/order_base.html:68 +#: order/templates/order/return_order_base.html:79 +#: order/templates/order/sales_order_base.html:78 msgid "Cancel order" msgstr "取消订单" -#: order/templates/order/order_base.html:55 +#: order/templates/order/order_base.html:73 msgid "Duplicate order" msgstr "" -#: order/templates/order/order_base.html:61 -#: order/templates/order/order_base.html:62 -#: order/templates/order/return_order_base.html:65 -#: order/templates/order/return_order_base.html:66 -msgid "Submit Order" -msgstr "" +#: order/templates/order/order_base.html:79 +#: order/templates/order/order_base.html:80 +#: order/templates/order/return_order_base.html:83 +#: order/templates/order/return_order_base.html:84 +#: order/templates/order/sales_order_base.html:84 +#: order/templates/order/sales_order_base.html:85 +#, fuzzy +#| msgid "Build Order" +msgid "Issue Order" +msgstr "生产订单" -#: order/templates/order/order_base.html:65 +#: order/templates/order/order_base.html:83 msgid "Receive items" msgstr "" -#: order/templates/order/order_base.html:67 +#: order/templates/order/order_base.html:85 msgid "Receive Items" msgstr "" -#: order/templates/order/order_base.html:69 -#: order/templates/order/return_order_base.html:69 +#: order/templates/order/order_base.html:87 +#: order/templates/order/return_order_base.html:87 msgid "Mark order as complete" msgstr "" -#: order/templates/order/order_base.html:70 -#: order/templates/order/return_order_base.html:70 -#: order/templates/order/sales_order_base.html:68 +#: order/templates/order/order_base.html:88 +#: order/templates/order/return_order_base.html:88 +#: order/templates/order/sales_order_base.html:94 msgid "Complete Order" msgstr "" -#: order/templates/order/order_base.html:92 -#: order/templates/order/return_order_base.html:84 -#: order/templates/order/sales_order_base.html:80 +#: order/templates/order/order_base.html:110 +#: order/templates/order/return_order_base.html:102 +#: order/templates/order/sales_order_base.html:107 msgid "Order Reference" msgstr "" -#: order/templates/order/order_base.html:97 -#: order/templates/order/return_order_base.html:89 -#: order/templates/order/sales_order_base.html:85 +#: order/templates/order/order_base.html:115 +#: order/templates/order/return_order_base.html:107 +#: order/templates/order/sales_order_base.html:112 msgid "Order Description" msgstr "" -#: order/templates/order/order_base.html:102 -#: order/templates/order/return_order_base.html:94 -#: order/templates/order/sales_order_base.html:90 +#: order/templates/order/order_base.html:121 +#: order/templates/order/return_order_base.html:115 +#: order/templates/order/sales_order_base.html:118 msgid "Order Status" msgstr "" -#: order/templates/order/order_base.html:125 +#: order/templates/order/order_base.html:144 msgid "No suppplier information available" msgstr "" -#: order/templates/order/order_base.html:138 -#: order/templates/order/sales_order_base.html:129 +#: order/templates/order/order_base.html:157 +#: order/templates/order/sales_order_base.html:157 msgid "Completed Line Items" msgstr "" -#: order/templates/order/order_base.html:144 -#: order/templates/order/sales_order_base.html:135 -#: order/templates/order/sales_order_base.html:145 +#: order/templates/order/order_base.html:163 +#: order/templates/order/sales_order_base.html:163 +#: order/templates/order/sales_order_base.html:173 msgid "Incomplete" msgstr "" -#: order/templates/order/order_base.html:163 -#: order/templates/order/return_order_base.html:138 +#: order/templates/order/order_base.html:182 +#: order/templates/order/return_order_base.html:159 #: report/templates/report/inventree_build_order_base.html:121 msgid "Issued" msgstr "" -#: order/templates/order/order_base.html:201 +#: order/templates/order/order_base.html:220 msgid "Total cost" msgstr "" -#: order/templates/order/order_base.html:205 -#: order/templates/order/return_order_base.html:173 -#: order/templates/order/sales_order_base.html:204 +#: order/templates/order/order_base.html:224 +#: order/templates/order/return_order_base.html:194 +#: order/templates/order/sales_order_base.html:232 msgid "Total cost could not be calculated" msgstr "" +#: order/templates/order/order_base.html:330 +#, fuzzy +#| msgid "Purchase Orders" +msgid "Purchase Order QR Code" +msgstr "采购订单" + +#: order/templates/order/order_base.html:342 +#, fuzzy +#| msgid "Create Purchase Order" +msgid "Link Barcode to Purchase Order" +msgstr "创建采购订单" + #: order/templates/order/order_wizard/match_fields.html:9 #: part/templates/part/import_wizard/ajax_match_fields.html:9 #: part/templates/part/import_wizard/match_fields.html:9 @@ -4875,10 +4946,10 @@ msgstr "" #: part/templates/part/import_wizard/match_references.html:49 #: templates/js/translated/bom.js:102 templates/js/translated/build.js:485 #: templates/js/translated/build.js:646 templates/js/translated/build.js:2097 -#: templates/js/translated/purchase_order.js:640 -#: templates/js/translated/purchase_order.js:1144 -#: templates/js/translated/return_order.js:449 -#: templates/js/translated/sales_order.js:979 +#: templates/js/translated/purchase_order.js:643 +#: templates/js/translated/purchase_order.js:1155 +#: templates/js/translated/return_order.js:452 +#: templates/js/translated/sales_order.js:1005 #: templates/js/translated/stock.js:660 templates/js/translated/stock.js:829 #: templates/patterns/wizard/match_fields.html:70 msgid "Remove row" @@ -4940,9 +5011,9 @@ msgstr "" #: order/templates/order/purchase_order_detail.html:28 #: order/templates/order/return_order_detail.html:24 #: order/templates/order/sales_order_detail.html:24 -#: templates/js/translated/purchase_order.js:367 -#: templates/js/translated/return_order.js:402 -#: templates/js/translated/sales_order.js:175 +#: templates/js/translated/purchase_order.js:370 +#: templates/js/translated/return_order.js:405 +#: templates/js/translated/sales_order.js:179 msgid "Add Line Item" msgstr "" @@ -4982,67 +5053,93 @@ msgstr "" msgid "Order Notes" msgstr "" -#: order/templates/order/return_order_base.html:43 +#: order/templates/order/return_order_base.html:61 #, fuzzy #| msgid "Print build order report" msgid "Print return order report" msgstr "打印构建订单报告" -#: order/templates/order/return_order_base.html:47 -#: order/templates/order/sales_order_base.html:47 +#: order/templates/order/return_order_base.html:65 +#: order/templates/order/sales_order_base.html:65 msgid "Print packing list" msgstr "" -#: order/templates/order/return_order_base.html:119 -#: order/templates/order/sales_order_base.html:123 +#: order/templates/order/return_order_base.html:140 +#: order/templates/order/sales_order_base.html:151 #: templates/js/translated/return_order.js:267 -#: templates/js/translated/sales_order.js:709 +#: templates/js/translated/sales_order.js:735 msgid "Customer Reference" msgstr "" -#: order/templates/order/return_order_base.html:169 -#: order/templates/order/sales_order_base.html:200 +#: order/templates/order/return_order_base.html:190 +#: order/templates/order/sales_order_base.html:228 #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 #: part/templates/part/part_pricing.html:99 #: part/templates/part/part_pricing.html:114 #: templates/js/translated/part.js:989 -#: templates/js/translated/purchase_order.js:1582 +#: templates/js/translated/purchase_order.js:1649 #: templates/js/translated/return_order.js:327 -#: templates/js/translated/sales_order.js:755 +#: templates/js/translated/sales_order.js:781 msgid "Total Cost" msgstr "" +#: order/templates/order/return_order_base.html:258 +#, fuzzy +#| msgid "Returned" +msgid "Return Order QR Code" +msgstr "已退回" + +#: order/templates/order/return_order_base.html:270 +#, fuzzy +#| msgid "Create Purchase Order" +msgid "Link Barcode to Return Order" +msgstr "创建采购订单" + #: order/templates/order/return_order_sidebar.html:5 #, fuzzy #| msgid "Build Order Details" msgid "Order Details" msgstr "生产订单详情" -#: order/templates/order/sales_order_base.html:43 +#: order/templates/order/sales_order_base.html:61 msgid "Print sales order report" msgstr "" -#: order/templates/order/sales_order_base.html:60 -#: templates/js/translated/sales_order.js:361 -msgid "Complete Shipments" -msgstr "" +#: order/templates/order/sales_order_base.html:89 +#: order/templates/order/sales_order_base.html:90 +#, fuzzy +#| msgid "Match Items" +msgid "Ship Items" +msgstr "匹配项" -#: order/templates/order/sales_order_base.html:67 -#: templates/js/translated/sales_order.js:415 +#: order/templates/order/sales_order_base.html:93 +#: templates/js/translated/sales_order.js:419 msgid "Complete Sales Order" msgstr "" -#: order/templates/order/sales_order_base.html:103 +#: order/templates/order/sales_order_base.html:131 msgid "This Sales Order has not been fully allocated" msgstr "" -#: order/templates/order/sales_order_base.html:141 +#: order/templates/order/sales_order_base.html:169 #: order/templates/order/sales_order_detail.html:105 #: order/templates/order/so_sidebar.html:11 msgid "Completed Shipments" msgstr "" +#: order/templates/order/sales_order_base.html:305 +#, fuzzy +#| msgid "Sales Order" +msgid "Sales Order QR Code" +msgstr "销售订单" + +#: order/templates/order/sales_order_base.html:317 +#, fuzzy +#| msgid "New Sales Order" +msgid "Link Barcode to Sales Order" +msgstr "新建销售订单" + #: order/templates/order/sales_order_detail.html:18 msgid "Sales Order Items" msgstr "" @@ -5098,20 +5195,20 @@ msgstr "" msgid "Part Description" msgstr "" -#: part/admin.py:36 part/models.py:880 part/templates/part/part_base.html:272 +#: part/admin.py:36 part/models.py:880 part/templates/part/part_base.html:271 #: templates/js/translated/part.js:1143 templates/js/translated/part.js:1855 #: templates/js/translated/stock.js:1769 msgid "IPN" msgstr "" -#: part/admin.py:37 part/models.py:887 part/templates/part/part_base.html:280 +#: part/admin.py:37 part/models.py:887 part/templates/part/part_base.html:279 #: report/models.py:177 templates/js/translated/part.js:1148 #: templates/js/translated/part.js:1861 msgid "Revision" msgstr "" #: part/admin.py:38 part/admin.py:198 part/models.py:866 -#: part/templates/part/category.html:93 part/templates/part/part_base.html:301 +#: part/templates/part/category.html:93 part/templates/part/part_base.html:300 msgid "Keywords" msgstr "关键词" @@ -5131,17 +5228,17 @@ msgstr "" msgid "Default Supplier ID" msgstr "" -#: part/admin.py:47 part/models.py:971 part/templates/part/part_base.html:206 +#: part/admin.py:47 part/models.py:971 part/templates/part/part_base.html:205 msgid "Minimum Stock" msgstr "最低库存" -#: part/admin.py:61 part/templates/part/part_base.html:200 +#: part/admin.py:61 part/templates/part/part_base.html:199 #: templates/js/translated/company.js:1277 #: templates/js/translated/table_filters.js:253 msgid "In Stock" msgstr "" -#: part/admin.py:62 part/bom.py:178 part/templates/part/part_base.html:213 +#: part/admin.py:62 part/bom.py:178 part/templates/part/part_base.html:212 #: templates/js/translated/bom.js:1163 templates/js/translated/build.js:1940 #: templates/js/translated/part.js:630 templates/js/translated/part.js:1749 #: templates/js/translated/table_filters.js:96 @@ -5154,11 +5251,11 @@ msgstr "" #: part/admin.py:64 templates/js/translated/build.js:1954 #: templates/js/translated/build.js:2214 templates/js/translated/build.js:2799 -#: templates/js/translated/sales_order.js:1790 +#: templates/js/translated/sales_order.js:1818 msgid "Allocated" msgstr "" -#: part/admin.py:65 part/templates/part/part_base.html:244 stock/admin.py:124 +#: part/admin.py:65 part/templates/part/part_base.html:243 stock/admin.py:124 #: templates/js/translated/part.js:635 templates/js/translated/part.js:1753 msgid "Building" msgstr "" @@ -5190,7 +5287,7 @@ msgstr "类别路径" #: part/templates/part/category_sidebar.html:9 #: templates/InvenTree/index.html:85 templates/InvenTree/search.html:84 #: templates/InvenTree/settings/sidebar.html:43 -#: templates/js/translated/part.js:2367 templates/js/translated/search.js:158 +#: templates/js/translated/part.js:2367 templates/js/translated/search.js:160 #: templates/navbar.html:24 users/models.py:38 msgid "Parts" msgstr "商品" @@ -5221,36 +5318,36 @@ msgstr "" msgid "Maximum Price" msgstr "" -#: part/api.py:515 +#: part/api.py:495 msgid "Incoming Purchase Order" msgstr "" -#: part/api.py:535 +#: part/api.py:515 msgid "Outgoing Sales Order" msgstr "" -#: part/api.py:553 +#: part/api.py:533 msgid "Stock produced by Build Order" msgstr "" -#: part/api.py:639 +#: part/api.py:619 msgid "Stock required for Build Order" msgstr "" -#: part/api.py:797 +#: part/api.py:767 msgid "Valid" msgstr "" -#: part/api.py:798 +#: part/api.py:768 msgid "Validate entire Bill of Materials" msgstr "" -#: part/api.py:804 +#: part/api.py:774 msgid "This option must be selected" msgstr "" #: part/bom.py:175 part/models.py:121 part/models.py:914 -#: part/templates/part/category.html:115 part/templates/part/part_base.html:376 +#: part/templates/part/category.html:115 part/templates/part/part_base.html:369 msgid "Default Location" msgstr "默认仓储地点" @@ -5258,8 +5355,8 @@ msgstr "默认仓储地点" msgid "Total Stock" msgstr "" -#: part/bom.py:177 part/templates/part/part_base.html:195 -#: templates/js/translated/sales_order.js:1757 +#: part/bom.py:177 part/templates/part/part_base.html:194 +#: templates/js/translated/sales_order.js:1785 msgid "Available Stock" msgstr "可用库存" @@ -5273,7 +5370,7 @@ msgid "Part Category" msgstr "商品类别" #: part/models.py:72 part/templates/part/category.html:135 -#: templates/InvenTree/search.html:97 templates/js/translated/search.js:186 +#: templates/InvenTree/search.html:97 templates/js/translated/search.js:188 #: users/models.py:37 msgid "Part Categories" msgstr "商品类别" @@ -5282,7 +5379,7 @@ msgstr "商品类别" msgid "Default location for parts in this category" msgstr "此类别商品的默认仓储地点" -#: part/models.py:127 stock/models.py:119 templates/js/translated/stock.js:2575 +#: part/models.py:127 stock/models.py:120 templates/js/translated/stock.js:2575 #: templates/js/translated/table_filters.js:163 #: templates/js/translated/table_filters.js:182 msgid "Structural" @@ -5300,11 +5397,11 @@ msgstr "" msgid "Default keywords for parts in this category" msgstr "此类别商品的默认关键字" -#: part/models.py:138 stock/models.py:108 +#: part/models.py:138 stock/models.py:109 msgid "Icon" msgstr "" -#: part/models.py:139 stock/models.py:109 +#: part/models.py:139 stock/models.py:110 msgid "Icon (optional)" msgstr "" @@ -5358,20 +5455,22 @@ msgstr "" msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:855 +#: part/models.py:855 part/templates/part/part_base.html:179 msgid "Variant Of" msgstr "" #: part/models.py:861 -msgid "Part description" -msgstr "商品描述" +#, fuzzy +#| msgid "Description (optional)" +msgid "Part description (optional)" +msgstr "描述 (可选)" #: part/models.py:867 msgid "Part keywords to improve visibility in search results" msgstr "提高搜索结果可见性的关键字" #: part/models.py:874 part/models.py:3182 part/models.py:3419 -#: part/serializers.py:849 part/templates/part/part_base.html:263 +#: part/serializers.py:849 part/templates/part/part_base.html:262 #: templates/InvenTree/settings/settings_staff_js.html:132 #: templates/js/translated/notification.js:50 #: templates/js/translated/part.js:1885 templates/js/translated/part.js:2097 @@ -5394,7 +5493,7 @@ msgstr "商品版本号" msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:957 part/templates/part/part_base.html:385 +#: part/models.py:957 part/templates/part/part_base.html:378 msgid "Default Supplier" msgstr "" @@ -5474,8 +5573,8 @@ msgstr "新建用户" msgid "User responsible for this part" msgstr "" -#: part/models.py:1036 part/templates/part/part_base.html:348 -#: stock/templates/stock/item_base.html:448 +#: part/models.py:1036 part/templates/part/part_base.html:341 +#: stock/templates/stock/item_base.html:441 #: templates/js/translated/part.js:1947 msgid "Last Stocktake" msgstr "" @@ -5632,7 +5731,7 @@ msgstr "" #: templates/InvenTree/settings/settings_staff_js.html:368 #: templates/js/translated/part.js:1002 templates/js/translated/pricing.js:794 #: templates/js/translated/pricing.js:915 -#: templates/js/translated/purchase_order.js:1561 +#: templates/js/translated/purchase_order.js:1628 #: templates/js/translated/stock.js:2613 msgid "Date" msgstr "" @@ -5887,7 +5986,7 @@ msgstr "" msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:3713 stock/models.py:569 +#: part/models.py:3713 stock/models.py:570 msgid "Quantity must be integer value for trackable parts" msgstr "" @@ -6167,7 +6266,7 @@ msgstr "" #: part/tasks.py:289 templates/js/translated/part.js:983 #: templates/js/translated/part.js:1456 templates/js/translated/part.js:1512 -#: templates/js/translated/purchase_order.js:1922 +#: templates/js/translated/purchase_order.js:1989 msgid "Total Quantity" msgstr "" @@ -6192,9 +6291,10 @@ msgid "You do not have permission to edit the BOM." msgstr "" #: part/templates/part/bom.html:15 -#, python-format -msgid "The BOM for %(part)s has changed, and must be validated.
" -msgstr "" +#, fuzzy +#| msgid "Some stock items have been overallocated" +msgid "The BOM this part has been changed, and must be validated" +msgstr "一些库存项已被过度分配" #: part/templates/part/bom.html:17 #, python-format @@ -6329,7 +6429,7 @@ msgid "Refresh scheduling data" msgstr "" #: part/templates/part/detail.html:45 part/templates/part/prices.html:15 -#: templates/js/translated/tables.js:562 +#: templates/js/translated/tables.js:572 msgid "Refresh" msgstr "" @@ -6481,13 +6581,13 @@ msgstr "" #: part/templates/part/import_wizard/part_upload.html:92 #: templates/js/translated/bom.js:278 templates/js/translated/bom.js:312 -#: templates/js/translated/order.js:109 templates/js/translated/tables.js:183 +#: templates/js/translated/order.js:112 templates/js/translated/tables.js:183 msgid "Format" msgstr "" #: part/templates/part/import_wizard/part_upload.html:93 #: templates/js/translated/bom.js:279 templates/js/translated/bom.js:313 -#: templates/js/translated/order.js:110 +#: templates/js/translated/order.js:113 msgid "Select file format" msgstr "" @@ -6572,9 +6672,10 @@ msgid "Part can be sold to customers" msgstr "商品可以销售给客户" #: part/templates/part/part_base.html:147 -#: part/templates/part/part_base.html:155 -msgid "Part is virtual (not a physical part)" -msgstr "商品是虚拟的(不是实体零件)" +#, fuzzy +#| msgid "Print actions" +msgid "Part is not active" +msgstr "打印操作" #: part/templates/part/part_base.html:148 #: templates/js/translated/company.js:930 @@ -6584,71 +6685,70 @@ msgstr "商品是虚拟的(不是实体零件)" msgid "Inactive" msgstr "" +#: part/templates/part/part_base.html:155 +msgid "Part is virtual (not a physical part)" +msgstr "商品是虚拟的(不是实体零件)" + #: part/templates/part/part_base.html:165 -#: part/templates/part/part_base.html:691 +#: part/templates/part/part_base.html:684 msgid "Show Part Details" msgstr "" -#: part/templates/part/part_base.html:183 -#, python-format -msgid "This part is a variant of %(link)s" -msgstr "" - -#: part/templates/part/part_base.html:221 -#: stock/templates/stock/item_base.html:385 +#: part/templates/part/part_base.html:220 +#: stock/templates/stock/item_base.html:378 msgid "Allocated to Build Orders" msgstr "" -#: part/templates/part/part_base.html:230 -#: stock/templates/stock/item_base.html:378 +#: part/templates/part/part_base.html:229 +#: stock/templates/stock/item_base.html:371 msgid "Allocated to Sales Orders" msgstr "" -#: part/templates/part/part_base.html:238 templates/js/translated/bom.js:1174 +#: part/templates/part/part_base.html:237 templates/js/translated/bom.js:1174 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:294 +#: part/templates/part/part_base.html:293 msgid "Minimum stock level" msgstr "" -#: part/templates/part/part_base.html:331 templates/js/translated/bom.js:1037 +#: part/templates/part/part_base.html:324 templates/js/translated/bom.js:1037 #: templates/js/translated/part.js:1181 templates/js/translated/part.js:1920 #: templates/js/translated/pricing.js:373 #: templates/js/translated/pricing.js:1019 msgid "Price Range" msgstr "" -#: part/templates/part/part_base.html:361 +#: part/templates/part/part_base.html:354 msgid "Latest Serial Number" msgstr "" -#: part/templates/part/part_base.html:365 -#: stock/templates/stock/item_base.html:334 +#: part/templates/part/part_base.html:358 +#: stock/templates/stock/item_base.html:323 msgid "Search for serial number" msgstr "" -#: part/templates/part/part_base.html:453 +#: part/templates/part/part_base.html:446 msgid "Part QR Code" msgstr "商品二维码" -#: part/templates/part/part_base.html:470 +#: part/templates/part/part_base.html:463 msgid "Link Barcode to Part" msgstr "" -#: part/templates/part/part_base.html:520 +#: part/templates/part/part_base.html:513 msgid "Calculate" msgstr "" -#: part/templates/part/part_base.html:537 +#: part/templates/part/part_base.html:530 msgid "Remove associated image from this part" msgstr "" -#: part/templates/part/part_base.html:589 +#: part/templates/part/part_base.html:582 msgid "No matching images found" msgstr "" -#: part/templates/part/part_base.html:685 +#: part/templates/part/part_base.html:678 msgid "Hide Part Details" msgstr "" @@ -6738,7 +6838,7 @@ msgid "Refresh Part Pricing" msgstr "" #: part/templates/part/prices.html:25 stock/admin.py:129 -#: stock/templates/stock/item_base.html:443 +#: stock/templates/stock/item_base.html:436 #: templates/js/translated/company.js:1291 #: templates/js/translated/company.js:1301 #: templates/js/translated/stock.js:1956 @@ -6855,8 +6955,7 @@ msgid "Create new part variant" msgstr "" #: part/templates/part/variant_part.html:10 -#, python-format -msgid "Create a new variant of template '%(full_name)s'." +msgid "Create a new variant part from this template" msgstr "" #: part/templatetags/inventree_extras.py:187 @@ -6918,6 +7017,7 @@ msgid "Match found for barcode data" msgstr "找到匹配条形码数据" #: plugin/base/barcodes/api.py:120 +#: templates/js/translated/purchase_order.js:1321 msgid "Barcode matches existing item" msgstr "" @@ -6929,15 +7029,15 @@ msgstr "" msgid "Label printing failed" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:26 +#: plugin/builtin/barcodes/inventree_barcode.py:28 msgid "InvenTree Barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:27 +#: plugin/builtin/barcodes/inventree_barcode.py:29 msgid "Provides native support for barcodes" msgstr "" -#: plugin/builtin/barcodes/inventree_barcode.py:29 +#: plugin/builtin/barcodes/inventree_barcode.py:31 #: plugin/builtin/integration/core_notifications.py:33 msgid "InvenTree contributors" msgstr "" @@ -7040,18 +7140,19 @@ msgstr "" msgid "No date found" msgstr "" -#: plugin/registry.py:450 -msgid "Plugin `{plg_name}` is not compatible with the current InvenTree version {version.inventreeVersion()}!" -msgstr "" - #: plugin/registry.py:452 #, python-brace-format -msgid "Plugin requires at least version {plg_i.MIN_VERSION}" +msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" msgstr "" #: plugin/registry.py:454 #, python-brace-format -msgid "Plugin requires at most version {plg_i.MAX_VERSION}" +msgid "Plugin requires at least version {v}" +msgstr "" + +#: plugin/registry.py:456 +#, python-brace-format +msgid "Plugin requires at most version {v}" msgstr "" #: plugin/samples/integration/sample.py:39 @@ -7118,16 +7219,16 @@ msgstr "" msgid "Either packagename of URL must be provided" msgstr "" -#: report/api.py:172 +#: report/api.py:171 msgid "No valid objects provided to template" msgstr "没有为模板提供有效对象" -#: report/api.py:208 report/api.py:244 +#: report/api.py:207 report/api.py:243 #, python-brace-format msgid "Template file '{template}' is missing or does not exist" msgstr "" -#: report/api.py:311 +#: report/api.py:310 msgid "Test report" msgstr "" @@ -7233,11 +7334,11 @@ msgstr "" #: report/templates/report/inventree_po_report_base.html:30 #: report/templates/report/inventree_so_report_base.html:30 -#: templates/js/translated/order.js:288 templates/js/translated/pricing.js:509 +#: templates/js/translated/order.js:291 templates/js/translated/pricing.js:509 #: templates/js/translated/pricing.js:578 #: templates/js/translated/pricing.js:802 -#: templates/js/translated/purchase_order.js:1953 -#: templates/js/translated/sales_order.js:1701 +#: templates/js/translated/purchase_order.js:2020 +#: templates/js/translated/sales_order.js:1729 msgid "Unit Price" msgstr "单价" @@ -7251,22 +7352,22 @@ msgstr "额外的生产备注" #: report/templates/report/inventree_po_report_base.html:72 #: report/templates/report/inventree_so_report_base.html:72 -#: templates/js/translated/purchase_order.js:1855 -#: templates/js/translated/sales_order.js:1676 +#: templates/js/translated/purchase_order.js:1922 +#: templates/js/translated/sales_order.js:1704 msgid "Total" msgstr "" #: report/templates/report/inventree_return_order_report_base.html:25 #: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:717 stock/templates/stock/item_base.html:323 +#: stock/models.py:718 stock/templates/stock/item_base.html:312 #: templates/js/translated/build.js:475 templates/js/translated/build.js:636 #: templates/js/translated/build.js:1250 templates/js/translated/build.js:1738 #: templates/js/translated/model_renderers.js:195 -#: templates/js/translated/return_order.js:483 -#: templates/js/translated/return_order.js:663 -#: templates/js/translated/sales_order.js:250 -#: templates/js/translated/sales_order.js:1470 -#: templates/js/translated/sales_order.js:1555 +#: templates/js/translated/return_order.js:486 +#: templates/js/translated/return_order.js:666 +#: templates/js/translated/sales_order.js:254 +#: templates/js/translated/sales_order.js:1509 +#: templates/js/translated/sales_order.js:1594 #: templates/js/translated/stock.js:526 msgid "Serial Number" msgstr "序列号" @@ -7280,12 +7381,12 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:102 -#: stock/models.py:2183 templates/js/translated/stock.js:1398 +#: stock/models.py:2210 templates/js/translated/stock.js:1398 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:103 -#: stock/models.py:2189 +#: stock/models.py:2216 msgid "Result" msgstr "" @@ -7357,8 +7458,8 @@ msgstr "" msgid "Customer ID" msgstr "" -#: stock/admin.py:114 stock/models.py:700 -#: stock/templates/stock/item_base.html:362 +#: stock/admin.py:114 stock/models.py:701 +#: stock/templates/stock/item_base.html:355 msgid "Installed In" msgstr "" @@ -7384,278 +7485,277 @@ msgstr "" msgid "Delete on Deplete" msgstr "删除模板" -#: stock/admin.py:131 stock/models.py:773 -#: stock/templates/stock/item_base.html:430 +#: stock/admin.py:131 stock/models.py:774 +#: stock/templates/stock/item_base.html:423 #: templates/js/translated/stock.js:1940 msgid "Expiry Date" msgstr "" -#: stock/api.py:426 templates/js/translated/table_filters.js:325 +#: stock/api.py:409 templates/js/translated/table_filters.js:325 msgid "External Location" msgstr "" -#: stock/api.py:587 +#: stock/api.py:570 msgid "Quantity is required" msgstr "" -#: stock/api.py:594 +#: stock/api.py:577 msgid "Valid part must be supplied" msgstr "" -#: stock/api.py:619 +#: stock/api.py:602 msgid "Serial numbers cannot be supplied for a non-trackable part" msgstr "" -#: stock/models.py:53 stock/models.py:684 +#: stock/models.py:54 stock/models.py:685 #: stock/templates/stock/location.html:17 #: stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "仓储地点" -#: stock/models.py:54 stock/templates/stock/location.html:183 -#: templates/InvenTree/search.html:167 templates/js/translated/search.js:206 +#: stock/models.py:55 stock/templates/stock/location.html:177 +#: templates/InvenTree/search.html:167 templates/js/translated/search.js:208 #: users/models.py:40 msgid "Stock Locations" msgstr "仓储地点" -#: stock/models.py:113 stock/models.py:814 -#: stock/templates/stock/item_base.html:253 +#: stock/models.py:114 stock/models.py:815 +#: stock/templates/stock/item_base.html:248 msgid "Owner" msgstr "" -#: stock/models.py:114 stock/models.py:815 +#: stock/models.py:115 stock/models.py:816 msgid "Select Owner" msgstr "" -#: stock/models.py:121 +#: stock/models.py:122 msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." msgstr "" -#: stock/models.py:127 templates/js/translated/stock.js:2584 +#: stock/models.py:128 templates/js/translated/stock.js:2584 #: templates/js/translated/table_filters.js:167 msgid "External" msgstr "" -#: stock/models.py:128 +#: stock/models.py:129 msgid "This is an external stock location" msgstr "" -#: stock/models.py:170 +#: stock/models.py:171 msgid "You cannot make this stock location structural because some stock items are already located into it!" msgstr "" -#: stock/models.py:549 +#: stock/models.py:550 msgid "Stock items cannot be located into structural stock locations!" msgstr "" -#: stock/models.py:575 stock/serializers.py:151 +#: stock/models.py:576 stock/serializers.py:151 msgid "Stock item cannot be created for virtual parts" msgstr "" -#: stock/models.py:592 +#: stock/models.py:593 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "商品类型 ('{pf}') 必须是 {pe}" -#: stock/models.py:602 stock/models.py:611 +#: stock/models.py:603 stock/models.py:612 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:603 +#: stock/models.py:604 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:625 +#: stock/models.py:626 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:631 +#: stock/models.py:632 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:645 +#: stock/models.py:646 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:659 +#: stock/models.py:660 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:669 +#: stock/models.py:670 msgid "Base part" msgstr "" -#: stock/models.py:677 +#: stock/models.py:678 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:687 +#: stock/models.py:688 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:694 +#: stock/models.py:695 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:703 +#: stock/models.py:704 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:719 +#: stock/models.py:720 msgid "Serial number for this item" msgstr "" -#: stock/models.py:733 +#: stock/models.py:734 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:738 +#: stock/models.py:739 msgid "Stock Quantity" msgstr "" -#: stock/models.py:745 +#: stock/models.py:746 msgid "Source Build" msgstr "" -#: stock/models.py:747 +#: stock/models.py:748 msgid "Build for this stock item" msgstr "" -#: stock/models.py:758 +#: stock/models.py:759 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:761 +#: stock/models.py:762 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:767 +#: stock/models.py:768 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:774 +#: stock/models.py:775 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:789 +#: stock/models.py:790 msgid "Delete on deplete" msgstr "" -#: stock/models.py:789 +#: stock/models.py:790 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:802 stock/templates/stock/item.html:132 +#: stock/models.py:803 stock/templates/stock/item.html:132 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:810 +#: stock/models.py:811 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:838 +#: stock/models.py:839 msgid "Converted to part" msgstr "" -#: stock/models.py:1335 +#: stock/models.py:1361 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1341 +#: stock/models.py:1367 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:1347 +#: stock/models.py:1373 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1350 +#: stock/models.py:1376 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1353 +#: stock/models.py:1379 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1360 -#, python-brace-format -msgid "Serial numbers already exist: {exists}" -msgstr "" +#: stock/models.py:1386 stock/serializers.py:349 +msgid "Serial numbers already exist" +msgstr "序列号已存在" -#: stock/models.py:1430 +#: stock/models.py:1457 msgid "Stock item has been assigned to a sales order" msgstr "" -#: stock/models.py:1433 +#: stock/models.py:1460 msgid "Stock item is installed in another item" msgstr "" -#: stock/models.py:1436 +#: stock/models.py:1463 msgid "Stock item contains other items" msgstr "" -#: stock/models.py:1439 +#: stock/models.py:1466 msgid "Stock item has been assigned to a customer" msgstr "" -#: stock/models.py:1442 +#: stock/models.py:1469 msgid "Stock item is currently in production" msgstr "" -#: stock/models.py:1445 +#: stock/models.py:1472 msgid "Serialized stock cannot be merged" msgstr "" -#: stock/models.py:1452 stock/serializers.py:946 +#: stock/models.py:1479 stock/serializers.py:946 msgid "Duplicate stock items" msgstr "" -#: stock/models.py:1456 +#: stock/models.py:1483 msgid "Stock items must refer to the same part" msgstr "" -#: stock/models.py:1460 +#: stock/models.py:1487 msgid "Stock items must refer to the same supplier part" msgstr "" -#: stock/models.py:1464 +#: stock/models.py:1491 msgid "Stock status codes must match" msgstr "" -#: stock/models.py:1633 +#: stock/models.py:1660 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2101 +#: stock/models.py:2128 msgid "Entry notes" msgstr "" -#: stock/models.py:2159 +#: stock/models.py:2186 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2165 +#: stock/models.py:2192 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2184 +#: stock/models.py:2211 msgid "Test name" msgstr "" -#: stock/models.py:2190 +#: stock/models.py:2217 msgid "Test result" msgstr "" -#: stock/models.py:2196 +#: stock/models.py:2223 msgid "Test output value" msgstr "" -#: stock/models.py:2203 +#: stock/models.py:2230 msgid "Test result attachment" msgstr "" -#: stock/models.py:2209 +#: stock/models.py:2236 msgid "Test notes" msgstr "" @@ -7692,10 +7792,6 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:349 -msgid "Serial numbers already exist" -msgstr "序列号已存在" - #: stock/serializers.py:389 msgid "Select stock item to install" msgstr "" @@ -7912,129 +8008,135 @@ msgstr "" msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:199 +#: stock/templates/stock/item_base.html:194 msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:217 +#: stock/templates/stock/item_base.html:212 msgid "No manufacturer set" msgstr "" -#: stock/templates/stock/item_base.html:257 +#: stock/templates/stock/item_base.html:252 msgid "You are not in the list of owners of this item. This stock item cannot be edited." msgstr "" -#: stock/templates/stock/item_base.html:258 +#: stock/templates/stock/item_base.html:253 #: stock/templates/stock/location.html:147 msgid "Read only" msgstr "" -#: stock/templates/stock/item_base.html:271 +#: stock/templates/stock/item_base.html:266 +#, fuzzy +#| msgid "Stock item is over-allocated" +msgid "This stock item is unavailable" +msgstr "库存物品分配过度!" + +#: stock/templates/stock/item_base.html:272 msgid "This stock item is in production and cannot be edited." msgstr "此库存项目正在生产中,无法编辑。" -#: stock/templates/stock/item_base.html:272 +#: stock/templates/stock/item_base.html:273 msgid "Edit the stock item from the build view." msgstr "" -#: stock/templates/stock/item_base.html:285 -msgid "This stock item has not passed all required tests" -msgstr "" - -#: stock/templates/stock/item_base.html:293 +#: stock/templates/stock/item_base.html:288 msgid "This stock item is allocated to Sales Order" msgstr "" -#: stock/templates/stock/item_base.html:301 +#: stock/templates/stock/item_base.html:296 msgid "This stock item is allocated to Build Order" msgstr "" -#: stock/templates/stock/item_base.html:307 -msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." +#: stock/templates/stock/item_base.html:312 +msgid "This stock item is serialized. It has a unique serial number and the quantity cannot be adjusted" msgstr "" -#: stock/templates/stock/item_base.html:329 +#: stock/templates/stock/item_base.html:318 msgid "previous page" msgstr "" -#: stock/templates/stock/item_base.html:329 +#: stock/templates/stock/item_base.html:318 msgid "Navigate to previous serial number" msgstr "" -#: stock/templates/stock/item_base.html:338 +#: stock/templates/stock/item_base.html:327 msgid "next page" msgstr "" -#: stock/templates/stock/item_base.html:338 +#: stock/templates/stock/item_base.html:327 msgid "Navigate to next serial number" msgstr "" -#: stock/templates/stock/item_base.html:351 +#: stock/templates/stock/item_base.html:341 msgid "Available Quantity" msgstr "" -#: stock/templates/stock/item_base.html:395 +#: stock/templates/stock/item_base.html:388 #: templates/js/translated/build.js:1764 msgid "No location set" msgstr "未设置仓储地点" -#: stock/templates/stock/item_base.html:410 +#: stock/templates/stock/item_base.html:403 msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:434 +#: stock/templates/stock/item_base.html:409 +msgid "This stock item has not passed all required tests" +msgstr "" + +#: stock/templates/stock/item_base.html:427 #, python-format msgid "This StockItem expired on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:434 +#: stock/templates/stock/item_base.html:427 #: templates/js/translated/table_filters.js:333 msgid "Expired" msgstr "" -#: stock/templates/stock/item_base.html:436 +#: stock/templates/stock/item_base.html:429 #, python-format msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" -#: stock/templates/stock/item_base.html:436 +#: stock/templates/stock/item_base.html:429 #: templates/js/translated/table_filters.js:339 msgid "Stale" msgstr "" -#: stock/templates/stock/item_base.html:452 +#: stock/templates/stock/item_base.html:445 msgid "No stocktake performed" msgstr "" -#: stock/templates/stock/item_base.html:530 +#: stock/templates/stock/item_base.html:523 msgid "Edit Stock Status" msgstr "" -#: stock/templates/stock/item_base.html:538 +#: stock/templates/stock/item_base.html:532 msgid "Stock Item QR Code" msgstr "" -#: stock/templates/stock/item_base.html:550 +#: stock/templates/stock/item_base.html:543 msgid "Link Barcode to Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:614 +#: stock/templates/stock/item_base.html:607 msgid "Select one of the part variants listed below." msgstr "" -#: stock/templates/stock/item_base.html:617 +#: stock/templates/stock/item_base.html:610 msgid "Warning" msgstr "警告" -#: stock/templates/stock/item_base.html:618 +#: stock/templates/stock/item_base.html:611 msgid "This action cannot be easily undone" msgstr "" -#: stock/templates/stock/item_base.html:626 +#: stock/templates/stock/item_base.html:619 msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/item_base.html:656 +#: stock/templates/stock/item_base.html:649 msgid "Return to Stock" msgstr "" @@ -8094,29 +8196,29 @@ msgstr "" msgid "You are not in the list of owners of this location. This stock location cannot be edited." msgstr "您不在此仓储地的所有者列表中,无法编辑此仓储地。" -#: stock/templates/stock/location.html:169 -#: stock/templates/stock/location.html:217 +#: stock/templates/stock/location.html:163 +#: stock/templates/stock/location.html:211 #: stock/templates/stock/location_sidebar.html:5 msgid "Sublocations" msgstr "" -#: stock/templates/stock/location.html:221 +#: stock/templates/stock/location.html:215 msgid "Create new stock location" msgstr "新建仓储地点" -#: stock/templates/stock/location.html:222 +#: stock/templates/stock/location.html:216 msgid "New Location" msgstr "新建仓储地点" -#: stock/templates/stock/location.html:309 +#: stock/templates/stock/location.html:303 msgid "Scanned stock container into this location" msgstr "" -#: stock/templates/stock/location.html:382 +#: stock/templates/stock/location.html:376 msgid "Stock Location QR Code" msgstr "" -#: stock/templates/stock/location.html:393 +#: stock/templates/stock/location.html:387 msgid "Link Barcode to Stock Location" msgstr "" @@ -8658,7 +8760,7 @@ msgid "Home Page" msgstr "" #: templates/InvenTree/settings/sidebar.html:15 -#: templates/js/translated/tables.js:553 templates/navbar.html:107 +#: templates/js/translated/tables.js:563 templates/navbar.html:107 #: templates/search.html:8 templates/search_form.html:6 #: templates/search_form.html:7 msgid "Search" @@ -8706,8 +8808,8 @@ msgid "Change Password" msgstr "更改密码" #: templates/InvenTree/settings/user.html:23 -#: templates/js/translated/helpers.js:53 templates/notes_buttons.html:3 -#: templates/notes_buttons.html:4 +#: templates/js/translated/helpers.js:53 templates/js/translated/pricing.js:610 +#: templates/notes_buttons.html:3 templates/notes_buttons.html:4 msgid "Edit" msgstr "编辑" @@ -9180,6 +9282,10 @@ msgstr "" msgid "Delete Attachments" msgstr "" +#: templates/barcode_data.html:5 +msgid "Barcode Identifier" +msgstr "" + #: templates/base.html:102 msgid "Server Restart Required" msgstr "" @@ -9334,10 +9440,6 @@ msgstr "" msgid "Enter barcode data" msgstr "输入条形码数据" -#: templates/js/translated/barcode.js:41 -msgid "Barcode" -msgstr "条形码" - #: templates/js/translated/barcode.js:48 msgid "Scan barcode using connected webcam" msgstr "" @@ -9350,94 +9452,94 @@ msgstr "" msgid "Enter notes" msgstr "" -#: templates/js/translated/barcode.js:172 +#: templates/js/translated/barcode.js:175 msgid "Server error" msgstr "" -#: templates/js/translated/barcode.js:201 +#: templates/js/translated/barcode.js:204 msgid "Unknown response from server" msgstr "" -#: templates/js/translated/barcode.js:236 +#: templates/js/translated/barcode.js:239 #: templates/js/translated/modals.js:1100 msgid "Invalid server response" msgstr "" -#: templates/js/translated/barcode.js:354 +#: templates/js/translated/barcode.js:359 msgid "Scan barcode data" msgstr "" -#: templates/js/translated/barcode.js:404 templates/navbar.html:114 +#: templates/js/translated/barcode.js:407 templates/navbar.html:114 msgid "Scan Barcode" msgstr "扫描条形码" -#: templates/js/translated/barcode.js:416 +#: templates/js/translated/barcode.js:427 msgid "No URL in response" msgstr "" -#: templates/js/translated/barcode.js:455 +#: templates/js/translated/barcode.js:468 msgid "This will remove the link to the associated barcode" msgstr "" -#: templates/js/translated/barcode.js:461 +#: templates/js/translated/barcode.js:474 msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:523 templates/js/translated/stock.js:1097 +#: templates/js/translated/barcode.js:537 templates/js/translated/stock.js:1097 msgid "Remove stock item" msgstr "" -#: templates/js/translated/barcode.js:566 +#: templates/js/translated/barcode.js:580 msgid "Scan Stock Items Into Location" msgstr "" -#: templates/js/translated/barcode.js:568 +#: templates/js/translated/barcode.js:582 msgid "Scan stock item barcode to check in to this location" msgstr "" -#: templates/js/translated/barcode.js:571 -#: templates/js/translated/barcode.js:763 +#: templates/js/translated/barcode.js:585 +#: templates/js/translated/barcode.js:780 msgid "Check In" msgstr "" -#: templates/js/translated/barcode.js:602 +#: templates/js/translated/barcode.js:616 msgid "No barcode provided" msgstr "" -#: templates/js/translated/barcode.js:642 +#: templates/js/translated/barcode.js:656 msgid "Stock Item already scanned" msgstr "" -#: templates/js/translated/barcode.js:646 +#: templates/js/translated/barcode.js:660 msgid "Stock Item already in this location" msgstr "" -#: templates/js/translated/barcode.js:653 +#: templates/js/translated/barcode.js:667 msgid "Added stock item" msgstr "" -#: templates/js/translated/barcode.js:662 +#: templates/js/translated/barcode.js:676 msgid "Barcode does not match valid stock item" msgstr "" -#: templates/js/translated/barcode.js:679 +#: templates/js/translated/barcode.js:695 msgid "Scan Stock Container Into Location" msgstr "" -#: templates/js/translated/barcode.js:681 +#: templates/js/translated/barcode.js:697 msgid "Scan stock container barcode to check in to this location" msgstr "" -#: templates/js/translated/barcode.js:715 +#: templates/js/translated/barcode.js:731 msgid "Barcode does not match valid stock location" msgstr "" -#: templates/js/translated/barcode.js:758 +#: templates/js/translated/barcode.js:775 msgid "Check Into Location" msgstr "" -#: templates/js/translated/barcode.js:826 -#: templates/js/translated/barcode.js:835 +#: templates/js/translated/barcode.js:843 +#: templates/js/translated/barcode.js:852 msgid "Barcode does not match a valid location" msgstr "" @@ -9456,7 +9558,7 @@ msgstr "" #: templates/js/translated/bom.js:158 templates/js/translated/bom.js:669 #: templates/js/translated/modals.js:69 templates/js/translated/modals.js:608 #: templates/js/translated/modals.js:732 templates/js/translated/modals.js:1040 -#: templates/js/translated/purchase_order.js:739 templates/modals.html:15 +#: templates/js/translated/purchase_order.js:742 templates/modals.html:15 #: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 msgid "Close" msgstr "" @@ -9590,7 +9692,7 @@ msgid "No pricing available" msgstr "" #: templates/js/translated/bom.js:1143 templates/js/translated/build.js:1922 -#: templates/js/translated/sales_order.js:1771 +#: templates/js/translated/sales_order.js:1799 msgid "No Stock Available" msgstr "" @@ -9791,12 +9893,12 @@ msgid "No required tests for this build" msgstr "" #: templates/js/translated/build.js:1781 templates/js/translated/build.js:2803 -#: templates/js/translated/sales_order.js:1505 +#: templates/js/translated/sales_order.js:1544 msgid "Edit stock allocation" msgstr "" #: templates/js/translated/build.js:1783 templates/js/translated/build.js:2804 -#: templates/js/translated/sales_order.js:1506 +#: templates/js/translated/sales_order.js:1545 msgid "Delete stock allocation" msgstr "" @@ -9817,17 +9919,17 @@ msgid "Quantity Per" msgstr "" #: templates/js/translated/build.js:1916 -#: templates/js/translated/sales_order.js:1778 +#: templates/js/translated/sales_order.js:1806 msgid "Insufficient stock available" msgstr "" #: templates/js/translated/build.js:1918 -#: templates/js/translated/sales_order.js:1776 +#: templates/js/translated/sales_order.js:1804 msgid "Sufficient stock available" msgstr "" #: templates/js/translated/build.js:2014 -#: templates/js/translated/sales_order.js:1870 +#: templates/js/translated/sales_order.js:1905 msgid "Build stock" msgstr "" @@ -9836,23 +9938,23 @@ msgid "Order stock" msgstr "" #: templates/js/translated/build.js:2021 -#: templates/js/translated/sales_order.js:1863 +#: templates/js/translated/sales_order.js:1899 msgid "Allocate stock" msgstr "" #: templates/js/translated/build.js:2059 -#: templates/js/translated/purchase_order.js:564 -#: templates/js/translated/sales_order.js:1042 +#: templates/js/translated/purchase_order.js:567 +#: templates/js/translated/sales_order.js:1068 msgid "Select Parts" msgstr "选择商品" #: templates/js/translated/build.js:2060 -#: templates/js/translated/sales_order.js:1043 +#: templates/js/translated/sales_order.js:1069 msgid "You must select at least one part to allocate" msgstr "" #: templates/js/translated/build.js:2108 -#: templates/js/translated/sales_order.js:991 +#: templates/js/translated/sales_order.js:1017 msgid "Specify stock allocation quantity" msgstr "" @@ -9865,7 +9967,7 @@ msgid "All selected parts have been fully allocated" msgstr "" #: templates/js/translated/build.js:2202 -#: templates/js/translated/sales_order.js:1057 +#: templates/js/translated/sales_order.js:1083 msgid "Select source location (leave blank to take from all locations)" msgstr "" @@ -9874,12 +9976,12 @@ msgid "Allocate Stock Items to Build Order" msgstr "" #: templates/js/translated/build.js:2241 -#: templates/js/translated/sales_order.js:1154 +#: templates/js/translated/sales_order.js:1180 msgid "No matching stock locations" msgstr "" #: templates/js/translated/build.js:2314 -#: templates/js/translated/sales_order.js:1231 +#: templates/js/translated/sales_order.js:1257 msgid "No matching stock items" msgstr "" @@ -10217,7 +10319,7 @@ msgstr "" msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:2010 templates/js/translated/search.js:267 +#: templates/js/translated/forms.js:2010 templates/js/translated/search.js:269 msgid "Searching" msgstr "" @@ -10245,7 +10347,7 @@ msgstr "" msgid "NO" msgstr "" -#: templates/js/translated/helpers.js:460 +#: templates/js/translated/helpers.js:466 msgid "Notes updated" msgstr "" @@ -10378,40 +10480,40 @@ msgstr "" msgid "Notifications will load here" msgstr "" -#: templates/js/translated/order.js:69 +#: templates/js/translated/order.js:72 msgid "Add Extra Line Item" msgstr "" -#: templates/js/translated/order.js:106 +#: templates/js/translated/order.js:109 msgid "Export Order" msgstr "" -#: templates/js/translated/order.js:219 +#: templates/js/translated/order.js:222 msgid "Duplicate Line" msgstr "" -#: templates/js/translated/order.js:233 +#: templates/js/translated/order.js:236 msgid "Edit Line" msgstr "" -#: templates/js/translated/order.js:246 +#: templates/js/translated/order.js:249 msgid "Delete Line" msgstr "" -#: templates/js/translated/order.js:259 -#: templates/js/translated/purchase_order.js:1828 +#: templates/js/translated/order.js:262 +#: templates/js/translated/purchase_order.js:1895 msgid "No line items found" msgstr "" -#: templates/js/translated/order.js:332 +#: templates/js/translated/order.js:344 msgid "Duplicate line" msgstr "" -#: templates/js/translated/order.js:333 +#: templates/js/translated/order.js:345 msgid "Edit line" msgstr "" -#: templates/js/translated/order.js:337 +#: templates/js/translated/order.js:349 msgid "Delete line" msgstr "" @@ -10613,19 +10715,19 @@ msgid "No variants found" msgstr "" #: templates/js/translated/part.js:1351 -#: templates/js/translated/purchase_order.js:1500 +#: templates/js/translated/purchase_order.js:1567 msgid "No purchase orders found" msgstr "" #: templates/js/translated/part.js:1495 -#: templates/js/translated/purchase_order.js:1991 -#: templates/js/translated/return_order.js:695 -#: templates/js/translated/sales_order.js:1739 +#: templates/js/translated/purchase_order.js:2058 +#: templates/js/translated/return_order.js:698 +#: templates/js/translated/sales_order.js:1767 msgid "This line item is overdue" msgstr "" #: templates/js/translated/part.js:1541 -#: templates/js/translated/purchase_order.js:2049 +#: templates/js/translated/purchase_order.js:2125 msgid "Receive line item" msgstr "" @@ -10759,16 +10861,6 @@ msgstr "" msgid "No price break data available" msgstr "" -#: templates/js/translated/pricing.js:610 -#, python-brace-format -msgid "Edit ${human_name}" -msgstr "" - -#: templates/js/translated/pricing.js:611 -#, python-brace-format -msgid "Delete ${human_name}" -msgstr "" - #: templates/js/translated/pricing.js:737 msgid "No purchase history data available" msgstr "" @@ -10821,188 +10913,222 @@ msgstr "" msgid "Duplication Options" msgstr "" -#: templates/js/translated/purchase_order.js:384 +#: templates/js/translated/purchase_order.js:387 msgid "Complete Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:401 +#: templates/js/translated/purchase_order.js:404 #: templates/js/translated/return_order.js:165 -#: templates/js/translated/sales_order.js:431 +#: templates/js/translated/sales_order.js:435 msgid "Mark this order as complete?" msgstr "" -#: templates/js/translated/purchase_order.js:407 +#: templates/js/translated/purchase_order.js:410 msgid "All line items have been received" msgstr "" -#: templates/js/translated/purchase_order.js:412 +#: templates/js/translated/purchase_order.js:415 msgid "This order has line items which have not been marked as received." msgstr "" -#: templates/js/translated/purchase_order.js:413 -#: templates/js/translated/sales_order.js:445 +#: templates/js/translated/purchase_order.js:416 +#: templates/js/translated/sales_order.js:449 msgid "Completing this order means that the order and line items will no longer be editable." msgstr "" -#: templates/js/translated/purchase_order.js:436 +#: templates/js/translated/purchase_order.js:439 msgid "Cancel Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:441 +#: templates/js/translated/purchase_order.js:444 msgid "Are you sure you wish to cancel this purchase order?" msgstr "" -#: templates/js/translated/purchase_order.js:447 +#: templates/js/translated/purchase_order.js:450 msgid "This purchase order can not be cancelled" msgstr "" -#: templates/js/translated/purchase_order.js:468 +#: templates/js/translated/purchase_order.js:471 #: templates/js/translated/return_order.js:119 msgid "After placing this order, line items will no longer be editable." msgstr "" -#: templates/js/translated/purchase_order.js:473 +#: templates/js/translated/purchase_order.js:476 msgid "Issue Purchase Order" msgstr "" -#: templates/js/translated/purchase_order.js:565 +#: templates/js/translated/purchase_order.js:568 msgid "At least one purchaseable part must be selected" msgstr "" -#: templates/js/translated/purchase_order.js:590 +#: templates/js/translated/purchase_order.js:593 msgid "Quantity to order" msgstr "" -#: templates/js/translated/purchase_order.js:599 +#: templates/js/translated/purchase_order.js:602 msgid "New supplier part" msgstr "" -#: templates/js/translated/purchase_order.js:617 +#: templates/js/translated/purchase_order.js:620 msgid "New purchase order" msgstr "" -#: templates/js/translated/purchase_order.js:649 +#: templates/js/translated/purchase_order.js:652 msgid "Add to purchase order" msgstr "" -#: templates/js/translated/purchase_order.js:793 +#: templates/js/translated/purchase_order.js:796 msgid "No matching supplier parts" msgstr "" -#: templates/js/translated/purchase_order.js:812 +#: templates/js/translated/purchase_order.js:815 msgid "No matching purchase orders" msgstr "" -#: templates/js/translated/purchase_order.js:991 +#: templates/js/translated/purchase_order.js:994 msgid "Select Line Items" msgstr "" -#: templates/js/translated/purchase_order.js:992 -#: templates/js/translated/return_order.js:435 +#: templates/js/translated/purchase_order.js:995 +#: templates/js/translated/return_order.js:438 msgid "At least one line item must be selected" msgstr "" -#: templates/js/translated/purchase_order.js:1012 -#: templates/js/translated/purchase_order.js:1125 -msgid "Add batch code" -msgstr "" - -#: templates/js/translated/purchase_order.js:1018 -#: templates/js/translated/purchase_order.js:1136 -msgid "Add serial numbers" -msgstr "" - -#: templates/js/translated/purchase_order.js:1033 +#: templates/js/translated/purchase_order.js:1023 msgid "Received Quantity" msgstr "" -#: templates/js/translated/purchase_order.js:1044 +#: templates/js/translated/purchase_order.js:1034 msgid "Quantity to receive" msgstr "" -#: templates/js/translated/purchase_order.js:1108 +#: templates/js/translated/purchase_order.js:1110 #: templates/js/translated/stock.js:2273 msgid "Stock Status" msgstr "" -#: templates/js/translated/purchase_order.js:1196 -msgid "Order Code" -msgstr "订单编码" +#: templates/js/translated/purchase_order.js:1124 +#, fuzzy +#| msgid "Barcode" +msgid "Add barcode" +msgstr "条形码" -#: templates/js/translated/purchase_order.js:1197 -msgid "Ordered" +#: templates/js/translated/purchase_order.js:1125 +#, fuzzy +#| msgid "Remove row" +msgid "Remove barcode" +msgstr "移除行" + +#: templates/js/translated/purchase_order.js:1128 +#, fuzzy +#| msgid "Edit location" +msgid "Specify location" +msgstr "编辑仓储地" + +#: templates/js/translated/purchase_order.js:1136 +msgid "Add batch code" +msgstr "" + +#: templates/js/translated/purchase_order.js:1147 +msgid "Add serial numbers" msgstr "" #: templates/js/translated/purchase_order.js:1199 +#, fuzzy +#| msgid "Serial Numbers" +msgid "Serials" +msgstr "序列号" + +#: templates/js/translated/purchase_order.js:1224 +msgid "Order Code" +msgstr "订单编码" + +#: templates/js/translated/purchase_order.js:1226 msgid "Quantity to Receive" msgstr "" -#: templates/js/translated/purchase_order.js:1222 -#: templates/js/translated/return_order.js:500 +#: templates/js/translated/purchase_order.js:1248 +#: templates/js/translated/return_order.js:503 msgid "Confirm receipt of items" msgstr "" -#: templates/js/translated/purchase_order.js:1223 +#: templates/js/translated/purchase_order.js:1249 msgid "Receive Purchase Order Items" msgstr "" -#: templates/js/translated/purchase_order.js:1527 +#: templates/js/translated/purchase_order.js:1317 +#, fuzzy +#| msgid "Scan Barcode" +msgid "Scan Item Barcode" +msgstr "扫描条形码" + +#: templates/js/translated/purchase_order.js:1318 +msgid "Scan barcode on incoming item (must not match any existing stock items)" +msgstr "" + +#: templates/js/translated/purchase_order.js:1332 +#, fuzzy +#| msgid "Enter barcode data" +msgid "Invalid barcode data" +msgstr "输入条形码数据" + +#: templates/js/translated/purchase_order.js:1594 #: templates/js/translated/return_order.js:244 -#: templates/js/translated/sales_order.js:686 +#: templates/js/translated/sales_order.js:712 msgid "Order is overdue" msgstr "" -#: templates/js/translated/purchase_order.js:1577 +#: templates/js/translated/purchase_order.js:1644 #: templates/js/translated/return_order.js:300 -#: templates/js/translated/sales_order.js:751 -#: templates/js/translated/sales_order.js:893 +#: templates/js/translated/sales_order.js:777 +#: templates/js/translated/sales_order.js:919 msgid "Items" msgstr "" -#: templates/js/translated/purchase_order.js:1676 +#: templates/js/translated/purchase_order.js:1743 #, fuzzy #| msgid "All selected supplier parts will be deleted" msgid "All selected Line items will be deleted" msgstr "删除所有选定的供应商商品" -#: templates/js/translated/purchase_order.js:1694 +#: templates/js/translated/purchase_order.js:1761 #, fuzzy #| msgid "Allocate selected items" msgid "Delete selected Line items?" msgstr "分配选定项目" -#: templates/js/translated/purchase_order.js:1754 -#: templates/js/translated/sales_order.js:1920 +#: templates/js/translated/purchase_order.js:1821 +#: templates/js/translated/sales_order.js:1959 msgid "Duplicate Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:1769 -#: templates/js/translated/return_order.js:419 -#: templates/js/translated/return_order.js:608 -#: templates/js/translated/sales_order.js:1933 +#: templates/js/translated/purchase_order.js:1836 +#: templates/js/translated/return_order.js:422 +#: templates/js/translated/return_order.js:611 +#: templates/js/translated/sales_order.js:1972 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:1780 -#: templates/js/translated/return_order.js:621 -#: templates/js/translated/sales_order.js:1944 +#: templates/js/translated/purchase_order.js:1847 +#: templates/js/translated/return_order.js:624 +#: templates/js/translated/sales_order.js:1983 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/purchase_order.js:2053 -#: templates/js/translated/sales_order.js:1876 +#: templates/js/translated/purchase_order.js:2129 +#: templates/js/translated/sales_order.js:1913 msgid "Duplicate line item" msgstr "" -#: templates/js/translated/purchase_order.js:2054 -#: templates/js/translated/return_order.js:731 -#: templates/js/translated/sales_order.js:1877 +#: templates/js/translated/purchase_order.js:2130 +#: templates/js/translated/return_order.js:743 +#: templates/js/translated/sales_order.js:1914 msgid "Edit line item" msgstr "" -#: templates/js/translated/purchase_order.js:2055 -#: templates/js/translated/return_order.js:735 -#: templates/js/translated/sales_order.js:1881 +#: templates/js/translated/purchase_order.js:2131 +#: templates/js/translated/return_order.js:747 +#: templates/js/translated/sales_order.js:1920 msgid "Delete line item" msgstr "" @@ -11029,7 +11155,7 @@ msgid "No report templates found which match the selected items" msgstr "没有找到与所选商品相匹配的标签" #: templates/js/translated/return_order.js:40 -#: templates/js/translated/sales_order.js:52 +#: templates/js/translated/sales_order.js:53 msgid "Add Customer" msgstr "" @@ -11072,208 +11198,225 @@ msgid "No return orders found" msgstr "无指定参数" #: templates/js/translated/return_order.js:258 -#: templates/js/translated/sales_order.js:700 +#: templates/js/translated/sales_order.js:726 msgid "Invalid Customer" msgstr "" -#: templates/js/translated/return_order.js:501 +#: templates/js/translated/return_order.js:504 msgid "Receive Return Order Items" msgstr "" -#: templates/js/translated/return_order.js:632 -#: templates/js/translated/sales_order.js:2080 +#: templates/js/translated/return_order.js:635 +#: templates/js/translated/sales_order.js:2119 msgid "No matching line items" msgstr "" -#: templates/js/translated/return_order.js:728 +#: templates/js/translated/return_order.js:740 msgid "Mark item as received" msgstr "" -#: templates/js/translated/sales_order.js:102 +#: templates/js/translated/sales_order.js:103 msgid "Create Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:117 +#: templates/js/translated/sales_order.js:118 msgid "Edit Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:226 +#: templates/js/translated/sales_order.js:230 msgid "No stock items have been allocated to this shipment" msgstr "" -#: templates/js/translated/sales_order.js:231 +#: templates/js/translated/sales_order.js:235 msgid "The following stock items will be shipped" msgstr "" -#: templates/js/translated/sales_order.js:271 +#: templates/js/translated/sales_order.js:275 msgid "Complete Shipment" msgstr "" -#: templates/js/translated/sales_order.js:291 +#: templates/js/translated/sales_order.js:295 msgid "Confirm Shipment" msgstr "" -#: templates/js/translated/sales_order.js:347 +#: templates/js/translated/sales_order.js:351 msgid "No pending shipments found" msgstr "" -#: templates/js/translated/sales_order.js:351 +#: templates/js/translated/sales_order.js:355 msgid "No stock items have been allocated to pending shipments" msgstr "" -#: templates/js/translated/sales_order.js:383 +#: templates/js/translated/sales_order.js:365 +msgid "Complete Shipments" +msgstr "" + +#: templates/js/translated/sales_order.js:387 msgid "Skip" msgstr "" -#: templates/js/translated/sales_order.js:444 +#: templates/js/translated/sales_order.js:448 msgid "This order has line items which have not been completed." msgstr "" -#: templates/js/translated/sales_order.js:468 +#: templates/js/translated/sales_order.js:470 +#, fuzzy +#| msgid "New Sales Order" +msgid "Issue this Sales Order?" +msgstr "新建销售订单" + +#: templates/js/translated/sales_order.js:475 +#, fuzzy +#| msgid "New Sales Order" +msgid "Issue Sales Order" +msgstr "新建销售订单" + +#: templates/js/translated/sales_order.js:494 msgid "Cancel Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:473 +#: templates/js/translated/sales_order.js:499 msgid "Cancelling this order means that the order will no longer be editable." msgstr "" -#: templates/js/translated/sales_order.js:527 +#: templates/js/translated/sales_order.js:553 msgid "Create New Shipment" msgstr "" -#: templates/js/translated/sales_order.js:637 +#: templates/js/translated/sales_order.js:663 msgid "No sales orders found" msgstr "" -#: templates/js/translated/sales_order.js:805 +#: templates/js/translated/sales_order.js:831 msgid "Edit shipment" msgstr "" -#: templates/js/translated/sales_order.js:808 +#: templates/js/translated/sales_order.js:834 msgid "Complete shipment" msgstr "" -#: templates/js/translated/sales_order.js:813 +#: templates/js/translated/sales_order.js:839 msgid "Delete shipment" msgstr "" -#: templates/js/translated/sales_order.js:830 +#: templates/js/translated/sales_order.js:856 msgid "Edit Shipment" msgstr "" -#: templates/js/translated/sales_order.js:845 +#: templates/js/translated/sales_order.js:871 msgid "Delete Shipment" msgstr "" -#: templates/js/translated/sales_order.js:878 +#: templates/js/translated/sales_order.js:904 msgid "No matching shipments found" msgstr "" -#: templates/js/translated/sales_order.js:888 +#: templates/js/translated/sales_order.js:914 msgid "Shipment Reference" msgstr "" -#: templates/js/translated/sales_order.js:912 +#: templates/js/translated/sales_order.js:938 +#: templates/js/translated/sales_order.js:1424 msgid "Not shipped" msgstr "" -#: templates/js/translated/sales_order.js:918 +#: templates/js/translated/sales_order.js:944 msgid "Tracking" msgstr "" -#: templates/js/translated/sales_order.js:922 +#: templates/js/translated/sales_order.js:948 msgid "Invoice" msgstr "" -#: templates/js/translated/sales_order.js:1090 +#: templates/js/translated/sales_order.js:1116 msgid "Add Shipment" msgstr "" -#: templates/js/translated/sales_order.js:1141 +#: templates/js/translated/sales_order.js:1167 msgid "Confirm stock allocation" msgstr "确认库存分配" -#: templates/js/translated/sales_order.js:1142 +#: templates/js/translated/sales_order.js:1168 msgid "Allocate Stock Items to Sales Order" msgstr "" -#: templates/js/translated/sales_order.js:1346 +#: templates/js/translated/sales_order.js:1372 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/sales_order.js:1425 +#: templates/js/translated/sales_order.js:1464 msgid "Edit Stock Allocation" msgstr "" -#: templates/js/translated/sales_order.js:1439 +#: templates/js/translated/sales_order.js:1478 msgid "Confirm Delete Operation" msgstr "确认删除操作" -#: templates/js/translated/sales_order.js:1440 +#: templates/js/translated/sales_order.js:1479 msgid "Delete Stock Allocation" msgstr "" -#: templates/js/translated/sales_order.js:1482 -#: templates/js/translated/sales_order.js:1569 +#: templates/js/translated/sales_order.js:1521 +#: templates/js/translated/sales_order.js:1608 #: templates/js/translated/stock.js:1664 msgid "Shipped to customer" msgstr "" -#: templates/js/translated/sales_order.js:1490 -#: templates/js/translated/sales_order.js:1578 +#: templates/js/translated/sales_order.js:1529 +#: templates/js/translated/sales_order.js:1617 msgid "Stock location not specified" msgstr "" -#: templates/js/translated/sales_order.js:1860 +#: templates/js/translated/sales_order.js:1897 msgid "Allocate serial numbers" msgstr "" -#: templates/js/translated/sales_order.js:1866 +#: templates/js/translated/sales_order.js:1901 msgid "Purchase stock" msgstr "" -#: templates/js/translated/sales_order.js:1873 -#: templates/js/translated/sales_order.js:2058 +#: templates/js/translated/sales_order.js:1910 +#: templates/js/translated/sales_order.js:2097 msgid "Calculate price" msgstr "" -#: templates/js/translated/sales_order.js:1885 +#: templates/js/translated/sales_order.js:1924 msgid "Cannot be deleted as items have been shipped" msgstr "" -#: templates/js/translated/sales_order.js:1888 +#: templates/js/translated/sales_order.js:1927 msgid "Cannot be deleted as items have been allocated" msgstr "" -#: templates/js/translated/sales_order.js:1959 +#: templates/js/translated/sales_order.js:1998 msgid "Allocate Serial Numbers" msgstr "" -#: templates/js/translated/sales_order.js:2066 +#: templates/js/translated/sales_order.js:2105 msgid "Update Unit Price" msgstr "" -#: templates/js/translated/search.js:298 +#: templates/js/translated/search.js:300 msgid "No results" msgstr "" -#: templates/js/translated/search.js:320 templates/search.html:25 +#: templates/js/translated/search.js:322 templates/search.html:25 msgid "Enter search query" msgstr "" -#: templates/js/translated/search.js:370 +#: templates/js/translated/search.js:372 msgid "result" msgstr "" -#: templates/js/translated/search.js:370 +#: templates/js/translated/search.js:372 msgid "results" msgstr "" -#: templates/js/translated/search.js:380 +#: templates/js/translated/search.js:382 msgid "Minimize results" msgstr "" -#: templates/js/translated/search.js:383 +#: templates/js/translated/search.js:385 msgid "Remove results" msgstr "" @@ -11959,51 +12102,51 @@ msgstr "" msgid "Select File Format" msgstr "" -#: templates/js/translated/tables.js:539 +#: templates/js/translated/tables.js:549 msgid "Loading data" msgstr "" -#: templates/js/translated/tables.js:542 +#: templates/js/translated/tables.js:552 msgid "rows per page" msgstr "" -#: templates/js/translated/tables.js:547 +#: templates/js/translated/tables.js:557 msgid "Showing all rows" msgstr "" -#: templates/js/translated/tables.js:549 +#: templates/js/translated/tables.js:559 msgid "Showing" msgstr "" -#: templates/js/translated/tables.js:549 +#: templates/js/translated/tables.js:559 msgid "to" msgstr "" -#: templates/js/translated/tables.js:549 +#: templates/js/translated/tables.js:559 msgid "of" msgstr "" -#: templates/js/translated/tables.js:549 +#: templates/js/translated/tables.js:559 msgid "rows" msgstr "" -#: templates/js/translated/tables.js:556 +#: templates/js/translated/tables.js:566 msgid "No matching results" msgstr "" -#: templates/js/translated/tables.js:559 +#: templates/js/translated/tables.js:569 msgid "Hide/Show pagination" msgstr "" -#: templates/js/translated/tables.js:565 +#: templates/js/translated/tables.js:575 msgid "Toggle" msgstr "" -#: templates/js/translated/tables.js:568 +#: templates/js/translated/tables.js:578 msgid "Columns" msgstr "" -#: templates/js/translated/tables.js:571 +#: templates/js/translated/tables.js:581 msgid "All" msgstr "" @@ -12286,15 +12429,19 @@ msgstr "编辑项目权限" msgid "Permission to delete items" msgstr "删除项目权限" +#, python-format +#~ msgid "This Build Order is allocated to Sales Order %(link)s" +#~ msgstr "此构建订单已分配给销售订单 %(link)s" + +#~ msgid "Part description" +#~ msgstr "商品描述" + #~ msgid "Printing Actions" #~ msgstr "打印操作" #~ msgid "Print labels" #~ msgstr "打印标签" -#~ msgid "Print Build Orders" -#~ msgstr "打印生产订单" - #~ msgid "Print Order Reports" #~ msgstr "打印订单报表"