diff --git a/InvenTree/locale/de/LC_MESSAGES/django.po b/InvenTree/locale/de/LC_MESSAGES/django.po
index d8342de36c..300a639a69 100644
--- a/InvenTree/locale/de/LC_MESSAGES/django.po
+++ b/InvenTree/locale/de/LC_MESSAGES/django.po
@@ -1,9 +1,9 @@
msgid ""
msgstr ""
-"Project-Id-Version: \n"
+"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-05-05 17:33+1000\n"
-"PO-Revision-Date: 2021-04-21 10:02\n"
+"POT-Creation-Date: 2021-05-17 10:46+0000\n"
+"PO-Revision-Date: 2021-05-17 10:47\n"
"Last-Translator: \n"
"Language-Team: German\n"
"Language: de_DE\n"
@@ -11,6 +11,11 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Crowdin-Project: inventree\n"
+"X-Crowdin-Project-ID: 452300\n"
+"X-Crowdin-Language: de\n"
+"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
+"X-Crowdin-File-ID: 138\n"
#: InvenTree/api.py:64
msgid "API endpoint not found"
@@ -72,8 +77,8 @@ msgstr "Kategorie auswählen"
msgid "Duplicate serial: {n}"
msgstr "Doppelte Seriennummer: {n}"
-#: InvenTree/helpers.py:384 order/models.py:245 order/models.py:353
-#: stock/views.py:1763
+#: InvenTree/helpers.py:384 order/models.py:245 order/models.py:355
+#: stock/views.py:1795
msgid "Invalid quantity provided"
msgstr "Keine gültige Menge"
@@ -101,7 +106,7 @@ msgstr "Keine Seriennummern gefunden"
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr "Anzahl der eindeutigen Seriennummern ({s}) muss mit der Anzahl ({q}) übereinstimmen"
-#: InvenTree/models.py:59 stock/models.py:1662
+#: InvenTree/models.py:59 stock/models.py:1761
msgid "Attachment"
msgstr "Anhang"
@@ -117,9 +122,9 @@ msgstr "Kommentar"
msgid "File comment"
msgstr "Datei-Kommentar"
-#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:1908
+#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:1946
#: report/templates/report/inventree_test_report_base.html:91
-#: templates/js/stock.js:1041
+#: templates/js/stock.js:1146
msgid "User"
msgstr "Benutzer"
@@ -127,8 +132,8 @@ msgstr "Benutzer"
msgid "upload date"
msgstr "Hochladedatum"
-#: InvenTree/models.py:107 InvenTree/models.py:108 label/models.py:101
-#: part/models.py:686 part/models.py:2049 part/templates/part/params.html:27
+#: InvenTree/models.py:107 InvenTree/models.py:108 label/models.py:102
+#: part/models.py:686 part/models.py:2087 part/templates/part/params.html:27
#: report/models.py:179 templates/InvenTree/search.html:137
#: templates/InvenTree/search.html:289 templates/js/part.js:110
#: templates/js/part.js:553 templates/js/stock.js:944
@@ -136,11 +141,11 @@ msgid "Name"
msgstr "Name"
#: InvenTree/models.py:114 build/models.py:134
-#: build/templates/build/detail.html:21 company/models.py:342
-#: company/models.py:494 company/templates/company/detail.html:27
+#: build/templates/build/detail.html:21 company/models.py:339
+#: company/models.py:491 company/templates/company/detail.html:27
#: company/templates/company/manufacturer_part_base.html:72
#: company/templates/company/supplier_part_base.html:71
-#: company/templates/company/supplier_part_detail.html:31 label/models.py:108
+#: company/templates/company/supplier_part_detail.html:31 label/models.py:109
#: order/models.py:101 order/templates/order/purchase_order_detail.html:143
#: part/models.py:710 part/templates/part/detail.html:54
#: part/templates/part/set_category.html:14 report/models.py:192
@@ -154,7 +159,7 @@ msgstr "Name"
#: templates/js/order.js:280 templates/js/part.js:169 templates/js/part.js:252
#: templates/js/part.js:371 templates/js/part.js:565 templates/js/part.js:643
#: templates/js/stock.js:554 templates/js/stock.js:956
-#: templates/js/stock.js:1015
+#: templates/js/stock.js:1001
msgid "Description"
msgstr "Beschreibung"
@@ -166,23 +171,23 @@ msgstr "Beschreibung (optional)"
msgid "parent"
msgstr "Eltern"
-#: InvenTree/settings.py:491
+#: InvenTree/settings.py:501
msgid "English"
msgstr "Englisch"
-#: InvenTree/settings.py:492
+#: InvenTree/settings.py:502
msgid "French"
msgstr "Französisch"
-#: InvenTree/settings.py:493
+#: InvenTree/settings.py:503
msgid "German"
msgstr "Deutsch"
-#: InvenTree/settings.py:494
+#: InvenTree/settings.py:504
msgid "Polish"
msgstr "Polnisch"
-#: InvenTree/settings.py:495
+#: InvenTree/settings.py:505
msgid "Turkish"
msgstr "Türkisch"
@@ -198,60 +203,136 @@ msgstr "E-Mail-Backend nicht konfiguriert"
msgid "InvenTree system health checks failed"
msgstr "InvenTree Status-Überprüfung fehlgeschlagen"
-#: InvenTree/status_codes.py:102 InvenTree/status_codes.py:143
-#: InvenTree/status_codes.py:236
+#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:145
+#: InvenTree/status_codes.py:314
msgid "Pending"
msgstr "Ausstehend"
-#: InvenTree/status_codes.py:103
+#: InvenTree/status_codes.py:105
msgid "Placed"
msgstr "Platziert"
-#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:239
+#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:317
msgid "Complete"
msgstr "Fertig"
-#: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145
-#: InvenTree/status_codes.py:238
+#: InvenTree/status_codes.py:107 InvenTree/status_codes.py:147
+#: InvenTree/status_codes.py:316
msgid "Cancelled"
msgstr "Storniert"
-#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146
-#: InvenTree/status_codes.py:188
+#: InvenTree/status_codes.py:108 InvenTree/status_codes.py:148
+#: InvenTree/status_codes.py:190
msgid "Lost"
msgstr "Verloren"
-#: InvenTree/status_codes.py:107 InvenTree/status_codes.py:147
-#: InvenTree/status_codes.py:190
+#: InvenTree/status_codes.py:109 InvenTree/status_codes.py:149
+#: InvenTree/status_codes.py:192
msgid "Returned"
msgstr "Zurückgegeben"
-#: InvenTree/status_codes.py:144
+#: InvenTree/status_codes.py:146
#: order/templates/order/sales_order_base.html:124
msgid "Shipped"
msgstr "Versendet"
-#: InvenTree/status_codes.py:184
+#: InvenTree/status_codes.py:186
msgid "OK"
msgstr "OK"
-#: InvenTree/status_codes.py:185
+#: InvenTree/status_codes.py:187
msgid "Attention needed"
msgstr "erfordert Eingriff"
-#: InvenTree/status_codes.py:186
+#: InvenTree/status_codes.py:188
msgid "Damaged"
msgstr "Beschädigt"
-#: InvenTree/status_codes.py:187
+#: InvenTree/status_codes.py:189
msgid "Destroyed"
msgstr "Zerstört"
-#: InvenTree/status_codes.py:189
+#: InvenTree/status_codes.py:191
msgid "Rejected"
msgstr "Zurückgewiesen"
-#: InvenTree/status_codes.py:237
+#: InvenTree/status_codes.py:272
+msgid "Legacy stock tracking entry"
+msgstr "Alter Lagerbestands-Tracking-Eintrag"
+
+#: InvenTree/status_codes.py:274
+msgid "Stock item created"
+msgstr "Lagerbestand erstellt"
+
+#: InvenTree/status_codes.py:276
+msgid "Edited stock item"
+msgstr "Lagerbestand bearbeitet"
+
+#: InvenTree/status_codes.py:277
+msgid "Assigned serial number"
+msgstr "Seriennummer hinzugefügt"
+
+#: InvenTree/status_codes.py:279
+msgid "Stock counted"
+msgstr "Lagerbestand gezählt"
+
+#: InvenTree/status_codes.py:280
+msgid "Stock manually added"
+msgstr "Lagerbestand manuell hinzugefügt"
+
+#: InvenTree/status_codes.py:281
+msgid "Stock manually removed"
+msgstr "Lagerbestand manuell entfernt"
+
+#: InvenTree/status_codes.py:283
+msgid "Location changed"
+msgstr "Standort geändert"
+
+#: InvenTree/status_codes.py:285
+msgid "Installed into assembly"
+msgstr "In Baugruppe installiert"
+
+#: InvenTree/status_codes.py:286
+msgid "Removed from assembly"
+msgstr "Aus Baugruppe entfernt"
+
+#: InvenTree/status_codes.py:288
+msgid "Installed component item"
+msgstr "Komponente installiert"
+
+#: InvenTree/status_codes.py:289
+msgid "Removed component item"
+msgstr "Komponente entfernt"
+
+#: InvenTree/status_codes.py:291
+msgid "Split from parent item"
+msgstr "Vom übergeordneten Element geteilt"
+
+#: InvenTree/status_codes.py:292
+msgid "Split child item"
+msgstr "Unterobjekt geteilt"
+
+#: InvenTree/status_codes.py:294 templates/js/table_filters.js:177
+msgid "Sent to customer"
+msgstr "Zum Kunden geschickt"
+
+#: InvenTree/status_codes.py:295
+msgid "Returned from customer"
+msgstr "Rücksendung vom Kunden"
+
+#: InvenTree/status_codes.py:297
+msgid "Build order output created"
+msgstr "Endprodukt erstellt"
+
+#: InvenTree/status_codes.py:298
+msgid "Build order output completed"
+msgstr "Endprodukt fertiggestellt"
+
+#: InvenTree/status_codes.py:300
+msgid "Received against purchase order"
+msgstr "Gegen Bestellung empfangen"
+
+#: InvenTree/status_codes.py:315
msgid "Production"
msgstr "in Arbeit"
@@ -270,8 +351,9 @@ msgstr "IPN muss zu Regex-Muster {pat} passen"
#: InvenTree/validators.py:77 InvenTree/validators.py:91
#: InvenTree/validators.py:105
-msgid "Reference must match pattern"
-msgstr "Referenz muss zu Regex-Muster passen"
+#, python-brace-format
+msgid "Reference must match pattern {pattern}"
+msgstr "Referenz muss zu Regex-Muster {pattern} passen"
#: InvenTree/validators.py:113
#, python-brace-format
@@ -376,35 +458,35 @@ msgstr "Zieldatum"
msgid "Target date for build completion. Build will be overdue after this date."
msgstr "Zieldatum für Bauauftrag-Fertigstellung."
-#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1241
+#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1245
#: build/templates/build/allocation_card.html:23
#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:123
-#: build/templates/build/detail.html:31 common/models.py:703
+#: build/templates/build/detail.html:31 common/models.py:705
#: company/forms.py:176 company/templates/company/supplier_part_pricing.html:77
-#: order/forms.py:188 order/forms.py:205 order/forms.py:239 order/forms.py:261
-#: order/forms.py:278 order/models.py:603 order/models.py:794
+#: order/forms.py:188 order/forms.py:205 order/forms.py:240 order/forms.py:262
+#: order/forms.py:279 order/models.py:614 order/models.py:815
+#: order/templates/order/order_wizard/match_parts.html:29
#: order/templates/order/order_wizard/select_parts.html:32
#: order/templates/order/purchase_order_detail.html:175
#: order/templates/order/sales_order_detail.html:70
#: order/templates/order/sales_order_detail.html:77
-#: order/templates/order/sales_order_detail.html:159
-#: order/templates/order/sales_order_detail.html:224 part/forms.py:342
-#: part/forms.py:371 part/forms.py:387 part/models.py:2178
+#: order/templates/order/sales_order_detail.html:162
+#: order/templates/order/sales_order_detail.html:230 part/forms.py:342
+#: part/forms.py:371 part/forms.py:387 part/models.py:2216
#: part/templates/part/allocation.html:19
#: part/templates/part/allocation.html:53
-#: part/templates/part/part_pricing.html:11
-#: part/templates/part/part_pricing.html:18
+#: part/templates/part/part_pricing.html:13
#: part/templates/part/sale_prices.html:85
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:77
-#: stock/forms.py:175 stock/forms.py:308 stock/models.py:1566
-#: stock/templates/stock/item_base.html:244
+#: stock/forms.py:175 stock/forms.py:308
+#: stock/templates/stock/item_base.html:250
#: stock/templates/stock/stock_adjust.html:18 templates/js/barcode.js:364
#: templates/js/bom.js:205 templates/js/build.js:476 templates/js/build.js:1014
-#: templates/js/stock.js:1033 templates/js/stock.js:1271
+#: templates/js/stock.js:1131 templates/js/stock.js:1393
msgid "Quantity"
msgstr "Anzahl"
@@ -416,7 +498,7 @@ msgstr "Anzahl der zu bauenden Teile"
msgid "Enter quantity for build output"
msgstr "Menge der Endprodukte angeben"
-#: build/forms.py:95 order/forms.py:233 stock/forms.py:118
+#: build/forms.py:95 order/forms.py:234 stock/forms.py:118
msgid "Serial Numbers"
msgstr "Seriennummer"
@@ -446,11 +528,11 @@ msgstr "Bauauftrag als vollständig markieren"
#: build/forms.py:210 build/templates/build/auto_allocate.html:18
#: order/forms.py:82 stock/forms.py:347
-#: stock/templates/stock/item_base.html:274
+#: stock/templates/stock/item_base.html:280
#: stock/templates/stock/stock_adjust.html:17
#: templates/InvenTree/search.html:260 templates/js/barcode.js:363
#: templates/js/barcode.js:531 templates/js/build.js:490
-#: templates/js/stock.js:641
+#: templates/js/stock.js:641 templates/js/stock.js:1023
msgid "Location"
msgstr "Lagerort"
@@ -459,12 +541,13 @@ msgid "Location of completed parts"
msgstr "Lagerort der Endprodukte"
#: build/forms.py:215 build/templates/build/build_base.html:128
-#: build/templates/build/detail.html:59 order/models.py:455
+#: build/templates/build/detail.html:59 order/models.py:466
#: order/templates/order/receive_parts.html:24
-#: stock/templates/stock/item_base.html:392 templates/InvenTree/search.html:252
+#: stock/templates/stock/item_base.html:398 templates/InvenTree/search.html:252
#: templates/js/barcode.js:119 templates/js/build.js:770
#: templates/js/order.js:187 templates/js/order.js:285
-#: templates/js/stock.js:628 templates/js/stock.js:1279
+#: templates/js/stock.js:628 templates/js/stock.js:1100
+#: templates/js/stock.js:1401
msgid "Status"
msgstr "Status"
@@ -517,9 +600,9 @@ msgstr "Bauaufträge"
msgid "Build Order Reference"
msgstr "Bauauftragsreferenz"
-#: build/models.py:127 order/models.py:99 order/models.py:605
+#: build/models.py:127 order/models.py:99 order/models.py:616
#: order/templates/order/purchase_order_detail.html:170
-#: order/templates/order/sales_order_detail.html:219 part/models.py:2187
+#: order/templates/order/sales_order_detail.html:225 part/models.py:2225
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92 templates/js/bom.js:197
#: templates/js/build.js:565 templates/js/build.js:1008
@@ -541,16 +624,16 @@ msgstr "Bauauftrag, zu dem dieser Bauauftrag zugwiesen ist"
#: build/models.py:152 build/templates/build/auto_allocate.html:16
#: build/templates/build/build_base.html:118
-#: build/templates/build/detail.html:26 company/models.py:688
-#: order/models.py:647 order/models.py:679
+#: build/templates/build/detail.html:26 company/models.py:622
+#: order/models.py:658 order/models.py:691
#: order/templates/order/order_wizard/select_parts.html:30
#: order/templates/order/purchase_order_detail.html:131
#: order/templates/order/receive_parts.html:19
-#: order/templates/order/sales_order_detail.html:207 part/models.py:321
-#: part/models.py:1876 part/models.py:1888 part/models.py:1906
-#: part/models.py:1981 part/models.py:2077 part/models.py:2162
+#: order/templates/order/sales_order_detail.html:213 part/models.py:321
+#: part/models.py:1914 part/models.py:1926 part/models.py:1944
+#: part/models.py:2019 part/models.py:2115 part/models.py:2200
#: part/templates/part/part_app_base.html:8
-#: part/templates/part/part_pricing.html:14 part/templates/part/related.html:29
+#: part/templates/part/part_pricing.html:9 part/templates/part/related.html:29
#: part/templates/part/set_category.html:13
#: report/templates/report/inventree_build_order_base.html:110
#: report/templates/report/inventree_po_report.html:90
@@ -560,7 +643,7 @@ msgstr "Bauauftrag, zu dem dieser Bauauftrag zugwiesen ist"
#: templates/js/build.js:741 templates/js/build.js:981
#: templates/js/company.js:140 templates/js/company.js:238
#: templates/js/part.js:233 templates/js/part.js:338 templates/js/stock.js:523
-#: templates/js/stock.js:1343
+#: templates/js/stock.js:1465
msgid "Part"
msgstr "Teil"
@@ -616,7 +699,7 @@ msgstr "Bauauftrags-Status"
msgid "Build status code"
msgstr "Bau-Statuscode"
-#: build/models.py:212 stock/models.py:432
+#: build/models.py:212 stock/models.py:464
msgid "Batch Code"
msgstr "Losnummer"
@@ -629,7 +712,7 @@ msgstr "Losnummer für dieses Endprodukt"
msgid "Creation Date"
msgstr "Erstelldatum"
-#: build/models.py:223 order/models.py:461
+#: build/models.py:223 order/models.py:472
msgid "Target completion date"
msgstr "geplantes Fertigstellungsdatum"
@@ -667,28 +750,28 @@ msgstr "Nutzer der für diesen Bauauftrag zuständig ist"
#: company/templates/company/supplier_part_base.html:78
#: company/templates/company/supplier_part_detail.html:28
#: part/templates/part/detail.html:83 part/templates/part/part_base.html:101
-#: stock/models.py:426 stock/templates/stock/item_base.html:334
+#: stock/models.py:458 stock/templates/stock/item_base.html:340
msgid "External Link"
msgstr "Externer Link"
-#: build/models.py:257 part/models.py:744 stock/models.py:428
+#: build/models.py:257 part/models.py:744 stock/models.py:460
msgid "Link to external URL"
msgstr "Link zu einer externen URL"
#: build/models.py:261 build/templates/build/navbar.html:53
-#: company/models.py:135 company/models.py:501
+#: company/models.py:132 company/models.py:498
#: company/templates/company/navbar.html:70
#: company/templates/company/navbar.html:73 order/models.py:123
-#: order/models.py:607 order/templates/order/po_navbar.html:29
+#: order/models.py:618 order/templates/order/po_navbar.html:29
#: order/templates/order/po_navbar.html:32
#: order/templates/order/purchase_order_detail.html:209
-#: order/templates/order/sales_order_detail.html:264
+#: order/templates/order/sales_order_detail.html:278
#: order/templates/order/so_navbar.html:33
#: order/templates/order/so_navbar.html:36 part/models.py:871
#: part/templates/part/navbar.html:128
#: report/templates/report/inventree_build_order_base.html:173
#: stock/forms.py:173 stock/forms.py:317 stock/forms.py:349 stock/forms.py:377
-#: stock/models.py:498 stock/models.py:1558 stock/models.py:1668
+#: stock/models.py:530 stock/models.py:1665 stock/models.py:1767
#: stock/templates/stock/navbar.html:57 templates/js/barcode.js:37
#: templates/js/bom.js:333 templates/js/stock.js:128 templates/js/stock.js:671
msgid "Notes"
@@ -710,75 +793,71 @@ msgstr "Endprodukt bereits hergstellt"
msgid "Build output does not match Build Order"
msgstr "Endprodukt stimmt nicht mit dem Bauauftrag überein"
-#: build/models.py:838
-msgid "Completed build output"
-msgstr "Endprodukt fertigstellen"
-
-#: build/models.py:1132
+#: build/models.py:1136
msgid "BuildItem must be unique for build, stock_item and install_into"
msgstr "Bauauftrags-Objekt muss für Bauauftrag, Lager-Objekt und installiert_in eindeutig sein"
-#: build/models.py:1157
-msgid "Build item must specify a build output, as master part is marked as trackable"
-msgstr ""
-
#: build/models.py:1161
+msgid "Build item must specify a build output, as master part is marked as trackable"
+msgstr "Bauauftragsposition muss ein Endprodukt festlegen, da der übergeordnete Teil verfolgbar ist"
+
+#: build/models.py:1165
#, python-brace-format
msgid "Selected stock item not found in BOM for part '{p}'"
msgstr "Ausgewähltes BestandsObjekt nicht Stückliste für Teil '{p}' gefunden"
-#: build/models.py:1165
+#: build/models.py:1169
#, python-brace-format
msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
msgstr "Reserviermenge ({n}) muss kleiner Bestandsmenge ({q}) sein. Zugewiesene Anzahl ({n}) darf nicht die verfügbare ({q}) Anzahl überschreiten"
-#: build/models.py:1172 order/models.py:768
+#: build/models.py:1176 order/models.py:789
msgid "StockItem is over-allocated"
msgstr "Zu viele BestandsObjekt zugewiesen"
-#: build/models.py:1176 order/models.py:771
+#: build/models.py:1180 order/models.py:792
msgid "Allocation quantity must be greater than zero"
msgstr "Reserviermenge muss größer null sein"
-#: build/models.py:1180
+#: build/models.py:1184
msgid "Quantity must be 1 for serialized stock"
msgstr "Anzahl muss 1 für Objekte mit Seriennummer sein"
-#: build/models.py:1220 stock/templates/stock/item_base.html:306
+#: build/models.py:1224 stock/templates/stock/item_base.html:312
#: templates/InvenTree/search.html:183 templates/js/build.js:714
#: templates/navbar.html:29
msgid "Build"
msgstr "Bauauftrag"
-#: build/models.py:1221
+#: build/models.py:1225
msgid "Build to allocate parts"
msgstr "Bauauftrag starten um Teile zuzuweisen"
-#: build/models.py:1228 part/templates/part/allocation.html:18
+#: build/models.py:1232 part/templates/part/allocation.html:18
#: part/templates/part/allocation.html:24
#: part/templates/part/allocation.html:31
#: part/templates/part/allocation.html:49
#: stock/templates/stock/item_base.html:8
#: stock/templates/stock/item_base.html:93
-#: stock/templates/stock/item_base.html:328
+#: stock/templates/stock/item_base.html:334
#: stock/templates/stock/stock_adjust.html:16 templates/js/build.js:831
-#: templates/js/stock.js:1004 templates/js/stock.js:1262
+#: templates/js/stock.js:1082 templates/js/stock.js:1384
msgid "Stock Item"
msgstr "BestandsObjekt"
-#: build/models.py:1229
+#: build/models.py:1233
msgid "Source stock item"
msgstr "Quell-BestandsObjekt"
-#: build/models.py:1242
+#: build/models.py:1246
msgid "Stock quantity to allocate to build"
msgstr "BestandsObjekt-Anzahl dem Bauauftrag zuweisen"
-#: build/models.py:1250
+#: build/models.py:1254
msgid "Install into"
msgstr "Installiere in"
-#: build/models.py:1251
+#: build/models.py:1255
msgid "Destination stock item"
msgstr "Ziel-BestandsObjekt"
@@ -812,29 +891,29 @@ msgstr "Benötigte Teile bestellen"
#: build/templates/build/allocate.html:30
#: company/templates/company/detail_manufacturer_part.html:33
-#: company/templates/company/detail_supplier_part.html:32 order/views.py:795
+#: company/templates/company/detail_supplier_part.html:32 order/views.py:986
#: part/templates/part/category.html:127
msgid "Order Parts"
msgstr "Teile bestellen"
#: build/templates/build/allocate.html:36
msgid "Untracked stock has been fully allocated for this Build Order"
-msgstr ""
+msgstr "Nicht verfolgter Lagerbestand wurde Bauauftrag vollständig zugewiesen"
#: build/templates/build/allocate.html:40
msgid "Untracked stock has not been fully allocated for this Build Order"
-msgstr ""
+msgstr "Nicht verfolgter Lagerbestand wurde Bauauftrag noch nicht vollständig zugewiesen"
#: build/templates/build/allocate.html:47
msgid "This Build Order does not have any associated untracked BOM items"
-msgstr ""
+msgstr "Dieser Bauauftrag hat keine zugeordneten Stücklisten-Einträge"
#: build/templates/build/allocation_card.html:21
#: build/templates/build/complete_output.html:46
#: order/templates/order/sales_order_detail.html:75
-#: order/templates/order/sales_order_detail.html:157
+#: order/templates/order/sales_order_detail.html:160
#: report/templates/report/inventree_test_report_base.html:75
-#: stock/models.py:420 stock/templates/stock/item_base.html:238
+#: stock/models.py:452 stock/templates/stock/item_base.html:244
#: templates/js/build.js:474
msgid "Serial Number"
msgstr "Seriennummer"
@@ -897,7 +976,7 @@ msgstr "Lagerbestand wurde Bauauftrag noch nicht vollständig zugewiesen"
#: order/templates/order/order_base.html:26
#: order/templates/order/sales_order_base.html:35
#: part/templates/part/category.html:18 part/templates/part/part_base.html:29
-#: stock/templates/stock/item_base.html:118
+#: stock/templates/stock/item_base.html:124
#: stock/templates/stock/location.html:31
msgid "Admin view"
msgstr "Admin"
@@ -908,8 +987,8 @@ msgstr "Admin"
#: order/templates/order/order_base.html:86
#: order/templates/order/sales_order_base.html:41
#: order/templates/order/sales_order_base.html:86
-#: templates/js/table_filters.js:240 templates/js/table_filters.js:259
-#: templates/js/table_filters.js:276
+#: templates/js/table_filters.js:241 templates/js/table_filters.js:260
+#: templates/js/table_filters.js:277
msgid "Overdue"
msgstr "Überfällig"
@@ -955,14 +1034,14 @@ msgid "Progress"
msgstr "Fortschritt"
#: build/templates/build/build_base.html:160
-#: build/templates/build/detail.html:84 order/models.py:677
+#: build/templates/build/detail.html:84 order/models.py:689
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:33
#: order/templates/order/sales_order_ship.html:25
#: part/templates/part/allocation.html:30
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
-#: stock/templates/stock/item_base.html:268 templates/js/order.js:245
+#: stock/templates/stock/item_base.html:274 templates/js/order.js:245
msgid "Sales Order"
msgstr "Auftrag"
@@ -974,7 +1053,7 @@ msgstr "Aufgegeben von"
#: build/templates/build/build_base.html:207
msgid "Incomplete Outputs"
-msgstr "Unvollständige Endprodukte"
+msgstr "Unfertige Endprodukte"
#: build/templates/build/build_base.html:208
msgid "Build Order cannot be completed as incomplete build outputs remain"
@@ -1112,11 +1191,11 @@ msgid "Destination location not specified"
msgstr "Ziel-Lagerort nicht angegeben"
#: build/templates/build/detail.html:70
-#: stock/templates/stock/item_base.html:292 templates/js/stock.js:636
-#: templates/js/stock.js:1286 templates/js/table_filters.js:107
-#: templates/js/table_filters.js:201
+#: stock/templates/stock/item_base.html:298 templates/js/stock.js:636
+#: templates/js/stock.js:1408 templates/js/table_filters.js:108
+#: templates/js/table_filters.js:202
msgid "Batch"
-msgstr "Los"
+msgstr "Losnummer"
#: build/templates/build/detail.html:116
#: order/templates/order/order_base.html:111
@@ -1168,6 +1247,7 @@ msgstr "Bauauftrag-details"
#: company/templates/company/navbar.html:15
#: order/templates/order/po_navbar.html:14
#: order/templates/order/so_navbar.html:15 part/templates/part/navbar.html:15
+#: templates/js/stock.js:1016
msgid "Details"
msgstr "Details"
@@ -1202,7 +1282,8 @@ msgstr "Bermerkungen bearbeiten"
#: build/templates/build/notes.html:26 company/templates/company/notes.html:24
#: order/templates/order/order_notes.html:27
#: order/templates/order/sales_order_notes.html:29
-#: part/templates/part/notes.html:27 stock/templates/stock/item_base.html:470
+#: part/templates/part/notes.html:27 stock/templates/stock/item_base.html:477
+#: stock/templates/stock/item_base.html:487
#: stock/templates/stock/item_notes.html:26
msgid "Save"
msgstr "Speichern"
@@ -1229,9 +1310,9 @@ msgstr "Endprodukt anlegen"
#: build/views.py:168
msgid "Maximum output quantity is "
-msgstr ""
+msgstr "Maximale Endproduktmenge ist "
-#: build/views.py:184 stock/models.py:969 stock/views.py:1789
+#: build/views.py:184 stock/views.py:1821
msgid "Serial numbers already exist"
msgstr "Seriennummern existieren bereits"
@@ -1348,372 +1429,405 @@ msgstr "Bauobjekt aktualisiert"
msgid "Add Build Order Attachment"
msgstr "Bauauftrags-Anhang hinzufügen"
-#: build/views.py:1083 order/views.py:110 order/views.py:162 part/views.py:172
+#: build/views.py:1083 order/views.py:115 order/views.py:167 part/views.py:172
#: stock/views.py:277
msgid "Added attachment"
msgstr "Anhang hinzugefügt"
-#: build/views.py:1119 order/views.py:189 order/views.py:210
+#: build/views.py:1119 order/views.py:194 order/views.py:215
msgid "Edit Attachment"
msgstr "Anhang bearbeiten"
-#: build/views.py:1129 order/views.py:193 order/views.py:214
+#: build/views.py:1129 order/views.py:198 order/views.py:219
msgid "Attachment updated"
msgstr "Anhang aktualisiert"
-#: build/views.py:1139 order/views.py:229 order/views.py:243
+#: build/views.py:1139 order/views.py:234 order/views.py:248
msgid "Delete Attachment"
msgstr "Anhang löschen"
-#: build/views.py:1144 order/views.py:235 order/views.py:249 stock/views.py:333
+#: build/views.py:1144 order/views.py:240 order/views.py:254 stock/views.py:333
msgid "Deleted attachment"
msgstr "Anhang gelöscht"
-#: common/models.py:56
+#: common/files.py:64
+msgid "Unsupported file format: {ext.upper()}"
+msgstr "Dateiformat nicht unterstützt: {ext.upper()}"
+
+#: common/files.py:69
+msgid "Error reading file (invalid format)"
+msgstr "Fehler beim Lesen der Datei (ungültiges Format)"
+
+#: common/files.py:71
+msgid "Error reading file (incorrect dimension)"
+msgstr "Fehler beim Lesen der Datei (falsche Größe)"
+
+#: common/files.py:73
+msgid "Error reading file (data could be corrupted)"
+msgstr "Fehler beim Lesen der Datei (Daten könnten beschädigt sein)"
+
+#: common/forms.py:38 templates/attachment_table.html:15
+msgid "File"
+msgstr "Datei"
+
+#: common/forms.py:39
+msgid "Select file to upload"
+msgstr "Datei zum Hochladen auswählen"
+
+#: common/forms.py:54
+msgid "{name.title()} File"
+msgstr "{name.title()} Datei"
+
+#: common/forms.py:55
+#, python-brace-format
+msgid "Select {name} file to upload"
+msgstr "{name} Datei zum Hochladen auswählen"
+
+#: common/models.py:58
msgid "InvenTree Instance Name"
msgstr "InvenTree Instanzname"
-#: common/models.py:58
+#: common/models.py:60
msgid "String descriptor for the server instance"
msgstr "Kurze Beschreibung der Instanz"
-#: common/models.py:62
+#: common/models.py:64
msgid "Use instance name"
msgstr "Name der Instanz verwenden"
-#: common/models.py:63
+#: common/models.py:65
msgid "Use the instance name in the title-bar"
msgstr "Den Namen der Instanz in der Titelleiste verwenden"
-#: common/models.py:69 company/models.py:97 company/models.py:98
+#: common/models.py:71 company/models.py:94 company/models.py:95
msgid "Company name"
msgstr "Firmenname"
-#: common/models.py:70
+#: common/models.py:72
msgid "Internal company name"
msgstr "interner Firmenname"
-#: common/models.py:75
+#: common/models.py:77
msgid "Base URL"
msgstr "Basis-URL"
-#: common/models.py:76
+#: common/models.py:78
msgid "Base URL for server instance"
msgstr "Basis-URL für dieses Instanz"
-#: common/models.py:82
+#: common/models.py:84
msgid "Default Currency"
msgstr "Standard-Währung"
-#: common/models.py:83
+#: common/models.py:85
msgid "Default currency"
msgstr "Standard-Währung"
-#: common/models.py:89
+#: common/models.py:91
msgid "Download from URL"
msgstr "Von URL herunterladen"
-#: common/models.py:90
+#: common/models.py:92
msgid "Allow download of remote images and files from external URL"
msgstr "Herunterladen von externen Bildern und Dateien von URLs erlaubt"
-#: common/models.py:96
+#: common/models.py:98
msgid "Barcode Support"
msgstr "Bacode-Feature verwenden"
-#: common/models.py:97
+#: common/models.py:99
msgid "Enable barcode scanner support"
msgstr "Barcode-Scanner Unterstützung"
-#: common/models.py:103
+#: common/models.py:105
msgid "IPN Regex"
msgstr "IPN Regex"
-#: common/models.py:104
+#: common/models.py:106
msgid "Regular expression pattern for matching Part IPN"
msgstr "RegEx Muster für die Zuordnung von Teil-IPN"
-#: common/models.py:108
+#: common/models.py:110
msgid "Allow Duplicate IPN"
msgstr "Mehrere Artikel mit gleicher IPN erlaubt"
-#: common/models.py:109
+#: common/models.py:111
msgid "Allow multiple parts to share the same IPN"
msgstr "Mehrere Artikel mit gleicher IPN erlaubt"
-#: common/models.py:115
+#: common/models.py:117
msgid "Allow Editing IPN"
msgstr "Ändern von IPN erlaubt"
-#: common/models.py:116
+#: common/models.py:118
msgid "Allow changing the IPN value while editing a part"
msgstr "Ändern der IPN während des Bearbeiten eines Teils erlaubt"
-#: common/models.py:122
+#: common/models.py:124
msgid "Copy Part BOM Data"
msgstr "Teil-Stückliste kopieren"
-#: common/models.py:123
+#: common/models.py:125
msgid "Copy BOM data by default when duplicating a part"
msgstr "Stückliste von Teil kopieren wenn das Teil dupliziert wird "
-#: common/models.py:129
+#: common/models.py:131
msgid "Copy Part Parameter Data"
msgstr "Teil-Parameter kopieren"
-#: common/models.py:130
+#: common/models.py:132
msgid "Copy parameter data by default when duplicating a part"
msgstr "Parameter-Daten für dieses Teil kopieren wenn das Teil dupliziert wird"
-#: common/models.py:136
+#: common/models.py:138
msgid "Copy Part Test Data"
msgstr "Teil-Testdaten kopieren"
-#: common/models.py:137
+#: common/models.py:139
msgid "Copy test data by default when duplicating a part"
msgstr "Test-Daten für dieses Teil kopieren wenn das Teil dupliziert wird"
-#: common/models.py:143
+#: common/models.py:145
msgid "Copy Category Parameter Templates"
msgstr "Kategorie-Parametervorlage kopieren"
-#: common/models.py:144
+#: common/models.py:146
msgid "Copy category parameter templates when creating a part"
msgstr "Kategorie-Parameter Vorlagen kopieren wenn ein Teil angelegt wird"
-#: common/models.py:150
+#: common/models.py:152
msgid "Recent Part Count"
msgstr "Aktuelle Teile-Stände"
-#: common/models.py:151
+#: common/models.py:153
msgid "Number of recent parts to display on index page"
msgstr "Anzahl der neusten Teile auf der Startseite"
-#: common/models.py:157 part/models.py:2079 part/templates/part/detail.html:160
-#: report/models.py:185 stock/forms.py:259 templates/js/table_filters.js:24
-#: templates/js/table_filters.js:310
+#: common/models.py:159 part/models.py:2117 part/templates/part/detail.html:160
+#: report/models.py:185 stock/forms.py:259 templates/js/table_filters.js:25
+#: templates/js/table_filters.js:311
msgid "Template"
msgstr "Vorlage"
-#: common/models.py:158
+#: common/models.py:160
msgid "Parts are templates by default"
msgstr "Teile sind standardmäßig Vorlagen"
-#: common/models.py:164 part/models.py:834 part/templates/part/detail.html:170
-#: templates/js/table_filters.js:123 templates/js/table_filters.js:322
+#: common/models.py:166 part/models.py:834 part/templates/part/detail.html:170
+#: templates/js/table_filters.js:124 templates/js/table_filters.js:323
msgid "Assembly"
msgstr "Baugruppe"
-#: common/models.py:165
+#: common/models.py:167
msgid "Parts can be assembled from other components by default"
msgstr "Teile können standardmäßig aus anderen Teilen angefertigt werden"
-#: common/models.py:171 part/models.py:840 part/templates/part/detail.html:180
-#: templates/js/table_filters.js:326
+#: common/models.py:173 part/models.py:840 part/templates/part/detail.html:180
+#: templates/js/table_filters.js:327
msgid "Component"
msgstr "Komponente"
-#: common/models.py:172
+#: common/models.py:174
msgid "Parts can be used as sub-components by default"
msgstr "Teile können standardmäßig in Baugruppen benutzt werden"
-#: common/models.py:178 part/models.py:851 part/templates/part/detail.html:200
+#: common/models.py:180 part/models.py:851 part/templates/part/detail.html:200
msgid "Purchaseable"
msgstr "Kaufbar"
-#: common/models.py:179
+#: common/models.py:181
msgid "Parts are purchaseable by default"
msgstr "Artikel sind grundsätzlich kaufbar"
-#: common/models.py:185 part/models.py:856 part/templates/part/detail.html:210
-#: templates/js/table_filters.js:334
+#: common/models.py:187 part/models.py:856 part/templates/part/detail.html:210
+#: templates/js/table_filters.js:335
msgid "Salable"
msgstr "Verkäuflich"
-#: common/models.py:186
+#: common/models.py:188
msgid "Parts are salable by default"
msgstr "Artikel sind grundsätzlich verkaufbar"
-#: common/models.py:192 part/models.py:846 part/templates/part/detail.html:190
-#: templates/js/table_filters.js:32 templates/js/table_filters.js:338
+#: common/models.py:194 part/models.py:846 part/templates/part/detail.html:190
+#: templates/js/table_filters.js:33 templates/js/table_filters.js:339
msgid "Trackable"
-msgstr "nachverfolgbar"
+msgstr "Nachverfolgbar"
-#: common/models.py:193
+#: common/models.py:195
msgid "Parts are trackable by default"
msgstr "Artikel sind grundsätzlich verfolgbar"
-#: common/models.py:199 part/models.py:866 part/templates/part/detail.html:150
-#: templates/js/table_filters.js:28
+#: common/models.py:201 part/models.py:866 part/templates/part/detail.html:150
+#: templates/js/table_filters.js:29
msgid "Virtual"
msgstr "Virtuell"
-#: common/models.py:200
+#: common/models.py:202
msgid "Parts are virtual by default"
msgstr "Teile sind grundsätzlich virtuell"
-#: common/models.py:206
+#: common/models.py:208
msgid "Show Quantity in Forms"
msgstr "zeige Bestand in Eingabemasken"
-#: common/models.py:207
+#: common/models.py:209
msgid "Display available part quantity in some forms"
msgstr "Zeige den verfügbaren Bestand in einigen Eingabemasken"
-#: common/models.py:213
+#: common/models.py:215 templates/stats.html:25
msgid "Debug Mode"
msgstr "Entwickler-Modus"
-#: common/models.py:214
+#: common/models.py:216
msgid "Generate reports in debug mode (HTML output)"
msgstr "Berichte im Entwickler-Modus generieren (als HTML)"
-#: common/models.py:220
+#: common/models.py:222
msgid "Page Size"
msgstr "Seitengröße"
-#: common/models.py:221
+#: common/models.py:223
msgid "Default page size for PDF reports"
msgstr "Standardseitenformat für PDF-Bericht"
-#: common/models.py:231
+#: common/models.py:233
msgid "Test Reports"
msgstr "Test-Berichte"
-#: common/models.py:232
+#: common/models.py:234
msgid "Enable generation of test reports"
msgstr "Erstellung von Test-Berichten aktivieren"
-#: common/models.py:238
+#: common/models.py:240
msgid "Stock Expiry"
msgstr "Bestands-Ablauf"
-#: common/models.py:239
+#: common/models.py:241
msgid "Enable stock expiry functionality"
msgstr "Ablaufen von Bestand ermöglichen"
-#: common/models.py:245
+#: common/models.py:247
msgid "Sell Expired Stock"
msgstr "Abgelaufenen Bestand verkaufen"
-#: common/models.py:246
+#: common/models.py:248
msgid "Allow sale of expired stock"
msgstr "Verkauf von abgelaufenem Bestand erlaubt"
-#: common/models.py:252
+#: common/models.py:254
msgid "Stock Stale Time"
msgstr "Bestands-Stehzeit"
-#: common/models.py:253
+#: common/models.py:255
msgid "Number of days stock items are considered stale before expiring"
msgstr "Anzahl an Tagen, an denen Bestand als abgestanden markiert wird, bevor sie ablaufen"
-#: common/models.py:255 part/templates/part/detail.html:121
+#: common/models.py:257 part/templates/part/detail.html:121
msgid "days"
msgstr "Tage"
-#: common/models.py:260
+#: common/models.py:262
msgid "Build Expired Stock"
msgstr "Abgelaufenen Bestand verbauen"
-#: common/models.py:261
+#: common/models.py:263
msgid "Allow building with expired stock"
msgstr "Verbauen von abgelaufenen Bestand erlaubt"
-#: common/models.py:267
+#: common/models.py:269
msgid "Stock Ownership Control"
msgstr "Bestands-Eigentümerkontrolle"
-#: common/models.py:268
+#: common/models.py:270
msgid "Enable ownership control over stock locations and items"
msgstr "Eigentümerkontrolle für Lagerorte und Teile aktivieren"
-#: common/models.py:274
+#: common/models.py:276
msgid "Group by Part"
msgstr "Gruppieren nach Teil"
-#: common/models.py:275
+#: common/models.py:277
msgid "Group stock items by part reference in table views"
msgstr "Bestand in Tabellen anhand von Teil-Referenz gruppieren"
-#: common/models.py:281
+#: common/models.py:283
msgid "Recent Stock Count"
msgstr "aktueller Bestand"
-#: common/models.py:282
+#: common/models.py:284
msgid "Number of recent stock items to display on index page"
msgstr "Anzahl des geänderten Bestands auf der Startseite"
-#: common/models.py:288
+#: common/models.py:290
msgid "Build Order Reference Prefix"
msgstr "Bauauftrag-Referenz Präfix"
-#: common/models.py:289
+#: common/models.py:291
msgid "Prefix value for build order reference"
msgstr "Präfix für Bauauftrag-Referenz"
-#: common/models.py:294
+#: common/models.py:296
msgid "Build Order Reference Regex"
msgstr "Bauauftrag-Referenz RegEx"
-#: common/models.py:295
+#: common/models.py:297
msgid "Regular expression pattern for matching build order reference"
msgstr "RegEx Muster für die Zuordnung von Bauauftrag-Referenzen"
-#: common/models.py:299
+#: common/models.py:301
msgid "Sales Order Reference Prefix"
msgstr "Auftrags-Referenz Präfix"
-#: common/models.py:300
+#: common/models.py:302
msgid "Prefix value for sales order reference"
msgstr "Präfix für Auftrags-Referenz"
-#: common/models.py:305
+#: common/models.py:307
msgid "Purchase Order Reference Prefix"
msgstr "Bestellungs-Referenz Präfix"
-#: common/models.py:306
+#: common/models.py:308
msgid "Prefix value for purchase order reference"
msgstr "Präfix für Bestellungs-Referenz"
-#: common/models.py:529
+#: common/models.py:531
msgid "Settings key (must be unique - case insensitive"
msgstr "Einstellungs-Schlüssel (muss einzigartig sein, Groß-/ Kleinschreibung wird nicht beachtet)"
-#: common/models.py:531
+#: common/models.py:533
msgid "Settings value"
msgstr "Einstellungs-Wert"
-#: common/models.py:566
+#: common/models.py:568
msgid "Must be an integer value"
msgstr "Nur Ganzzahl eingeben"
-#: common/models.py:589
+#: common/models.py:591
msgid "Value must be a boolean value"
msgstr "Wahrheitswert erforderlich"
-#: common/models.py:600
+#: common/models.py:602
msgid "Value must be an integer value"
msgstr "Nur Ganzzahl eingeben"
-#: common/models.py:623
+#: common/models.py:625
msgid "Key string must be unique"
msgstr "Schlüsseltext muss eindeutig sein"
-#: common/models.py:704 company/forms.py:177
+#: common/models.py:706 company/forms.py:177
msgid "Price break quantity"
msgstr "Preisstaffelungs Anzahl"
-#: common/models.py:712 company/templates/company/supplier_part_pricing.html:82
+#: common/models.py:714 company/templates/company/supplier_part_pricing.html:82
#: part/templates/part/sale_prices.html:90 templates/js/bom.js:255
msgid "Price"
msgstr "Preis"
-#: common/models.py:713
+#: common/models.py:715
msgid "Unit price at specified quantity"
msgstr "Stückpreis für die angegebene Anzahl"
-#: common/models.py:736
+#: common/models.py:804
msgid "Default"
msgstr "Standard"
@@ -1721,24 +1835,42 @@ msgstr "Standard"
msgid "Current value"
msgstr "Aktueller Wert"
-#: common/views.py:25
+#: common/views.py:32
msgid "Change Setting"
msgstr "Einstellungen ändern"
-#: common/views.py:94
+#: common/views.py:101
msgid "Supplied value is not allowed"
msgstr "Angegebener Wert nicht erlaubt"
-#: common/views.py:103
+#: common/views.py:110
msgid "Supplied value must be a boolean"
msgstr "Angegebener Wert muss ein Wahrheitswert sein"
-#: company/forms.py:38 company/models.py:145
+#: common/views.py:184 order/templates/order/order_wizard/po_upload.html:42
+#: order/views.py:582 part/templates/part/bom_upload/upload_file.html:27
+msgid "Upload File"
+msgstr "Datei hochgeladen"
+
+#: common/views.py:185 order/templates/order/order_wizard/match_fields.html:52
+#: order/views.py:583 part/templates/part/bom_upload/select_fields.html:58
+msgid "Match Fields"
+msgstr "Übereinstimmende Felder"
+
+#: common/views.py:186
+msgid "Match Items"
+msgstr "Positionen zuordnen"
+
+#: common/views.py:479
+msgid "Fields matching failed"
+msgstr "Felder zuteilen fehlgeschlagen"
+
+#: company/forms.py:38 company/models.py:142
#: company/templates/company/detail.html:42
msgid "Currency"
msgstr "Währung"
-#: company/forms.py:39 company/models.py:147
+#: company/forms.py:39 company/models.py:144
msgid "Default currency used for this company"
msgstr "Standard-Währung für diese Firma"
@@ -1758,216 +1890,216 @@ msgstr "Einzelpreis"
msgid "Single quantity price"
msgstr "Preis für eine Einheit"
-#: company/forms.py:128 company/models.py:324
+#: company/forms.py:128 company/models.py:321
msgid "Select manufacturer"
msgstr "Hersteller auswählen"
-#: company/forms.py:134 company/models.py:331
+#: company/forms.py:134 company/models.py:328
msgid "Manufacturer Part Number"
msgstr "Hersteller-Teilenummer"
-#: company/forms.py:136 company/models.py:330
+#: company/forms.py:136 company/models.py:327
#: company/templates/company/manufacturer_part_base.html:89
#: company/templates/company/manufacturer_part_detail.html:26
-#: company/templates/company/supplier_part_base.html:101
+#: company/templates/company/supplier_part_base.html:102
#: company/templates/company/supplier_part_detail.html:35
#: order/templates/order/purchase_order_detail.html:158 part/bom.py:171
#: part/bom.py:242 templates/js/company.js:181 templates/js/company.js:307
msgid "MPN"
msgstr "MPN"
-#: company/models.py:102
+#: company/models.py:99
msgid "Company description"
msgstr "Firmenbeschreibung"
-#: company/models.py:103
+#: company/models.py:100
msgid "Description of the company"
msgstr "Firmenbeschreibung"
-#: company/models.py:107 company/templates/company/company_base.html:70
+#: company/models.py:104 company/templates/company/company_base.html:70
#: company/templates/company/detail.html:33 templates/js/company.js:60
msgid "Website"
msgstr "Website"
-#: company/models.py:107
+#: company/models.py:104
msgid "Company website URL"
msgstr "Firmenwebsite Adresse/URL"
-#: company/models.py:110 company/templates/company/company_base.html:77
+#: company/models.py:107 company/templates/company/company_base.html:77
msgid "Address"
msgstr "Adresse"
-#: company/models.py:111
+#: company/models.py:108
msgid "Company address"
msgstr "Firmenadresse"
-#: company/models.py:114
+#: company/models.py:111
msgid "Phone number"
msgstr "Kontakt-Tel."
-#: company/models.py:115
+#: company/models.py:112
msgid "Contact phone number"
msgstr "Kontakt-Telefon"
-#: company/models.py:118 company/templates/company/company_base.html:91
+#: company/models.py:115 company/templates/company/company_base.html:91
msgid "Email"
msgstr "Email"
-#: company/models.py:118
+#: company/models.py:115
msgid "Contact email address"
msgstr "Kontakt-Email"
-#: company/models.py:121 company/templates/company/company_base.html:98
+#: company/models.py:118 company/templates/company/company_base.html:98
msgid "Contact"
msgstr "Kontakt"
-#: company/models.py:122
+#: company/models.py:119
msgid "Point of contact"
msgstr "Anlaufstelle"
-#: company/models.py:124 company/models.py:336 company/models.py:488
+#: company/models.py:121 company/models.py:333 company/models.py:485
#: order/models.py:103 part/models.py:743
#: report/templates/report/inventree_build_order_base.html:165
-#: stock/models.py:1560 templates/js/company.js:188 templates/js/company.js:318
+#: templates/js/company.js:188 templates/js/company.js:318
#: templates/js/part.js:431
msgid "Link"
msgstr "Link"
-#: company/models.py:124
+#: company/models.py:121
msgid "Link to external company information"
msgstr "Link auf externe Firmeninformation"
-#: company/models.py:132 part/models.py:753
+#: company/models.py:129 part/models.py:753
msgid "Image"
msgstr "Bild"
-#: company/models.py:137
+#: company/models.py:134
msgid "is customer"
msgstr "ist Kunde"
-#: company/models.py:137
+#: company/models.py:134
msgid "Do you sell items to this company?"
msgstr "Verkaufen Sie Teile an diese Firma?"
-#: company/models.py:139
+#: company/models.py:136
msgid "is supplier"
msgstr "ist Zulieferer"
-#: company/models.py:139
+#: company/models.py:136
msgid "Do you purchase items from this company?"
msgstr "Kaufen Sie Teile von dieser Firma?"
-#: company/models.py:141
+#: company/models.py:138
msgid "is manufacturer"
msgstr "ist Hersteller"
-#: company/models.py:141
+#: company/models.py:138
msgid "Does this company manufacture parts?"
msgstr "Produziert diese Firma Teile?"
-#: company/models.py:308 company/models.py:459 stock/models.py:373
-#: stock/templates/stock/item_base.html:224
+#: company/models.py:305 company/models.py:456 stock/models.py:405
+#: stock/templates/stock/item_base.html:230
msgid "Base Part"
msgstr "Basisteil"
-#: company/models.py:312 company/models.py:463 order/views.py:1384
+#: company/models.py:309 company/models.py:460 order/views.py:1587
msgid "Select part"
msgstr "Teil auswählen"
-#: company/models.py:323 company/templates/company/detail.html:57
+#: company/models.py:320 company/templates/company/detail.html:57
#: company/templates/company/manufacturer_part_base.html:85
#: company/templates/company/manufacturer_part_detail.html:25
#: company/templates/company/supplier_part_base.html:94
#: company/templates/company/supplier_part_detail.html:34 part/bom.py:170
-#: part/bom.py:241 stock/templates/stock/item_base.html:341
+#: part/bom.py:241 stock/templates/stock/item_base.html:347
#: templates/js/company.js:44 templates/js/company.js:165
#: templates/js/company.js:289
msgid "Manufacturer"
msgstr "Hersteller"
-#: company/models.py:337
+#: company/models.py:334
msgid "URL for external manufacturer part link"
msgstr "Externe URL für das Herstellerteil"
-#: company/models.py:343
+#: company/models.py:340
msgid "Manufacturer part description"
msgstr "Teilbeschreibung des Herstellers"
-#: company/models.py:469 company/templates/company/detail.html:62
+#: company/models.py:466 company/templates/company/detail.html:62
#: company/templates/company/supplier_part_base.html:84
#: company/templates/company/supplier_part_detail.html:25 order/models.py:190
#: order/templates/order/order_base.html:92
#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:175
-#: part/bom.py:286 stock/templates/stock/item_base.html:353
+#: part/bom.py:286 stock/templates/stock/item_base.html:359
#: templates/js/company.js:48 templates/js/company.js:263
#: templates/js/order.js:170
msgid "Supplier"
msgstr "Zulieferer"
-#: company/models.py:470
+#: company/models.py:467
msgid "Select supplier"
msgstr "Zulieferer auswählen"
-#: company/models.py:475 company/templates/company/supplier_part_base.html:88
+#: company/models.py:472 company/templates/company/supplier_part_base.html:88
#: company/templates/company/supplier_part_detail.html:26
#: order/templates/order/purchase_order_detail.html:149 part/bom.py:176
#: part/bom.py:287
msgid "SKU"
msgstr "SKU (Lagerbestandseinheit)"
-#: company/models.py:476
+#: company/models.py:473
msgid "Supplier stock keeping unit"
msgstr "Lagerbestandseinheit (SKU) des Zulieferers"
-#: company/models.py:482
+#: company/models.py:479
#: company/templates/company/manufacturer_part_base.html:6
#: company/templates/company/manufacturer_part_base.html:19
-#: stock/templates/stock/item_base.html:346
+#: stock/templates/stock/item_base.html:352
msgid "Manufacturer Part"
-msgstr "Hersteller-Teil"
+msgstr "Herstellerteil"
-#: company/models.py:483
+#: company/models.py:480
msgid "Select manufacturer part"
msgstr "Herstellerteil auswählen"
-#: company/models.py:489
+#: company/models.py:486
msgid "URL for external supplier part link"
msgstr "Teil-URL des Zulieferers"
-#: company/models.py:495
+#: company/models.py:492
msgid "Supplier part description"
msgstr "Zuliefererbeschreibung des Teils"
-#: company/models.py:500 company/templates/company/supplier_part_base.html:115
-#: company/templates/company/supplier_part_detail.html:38 part/models.py:2190
+#: company/models.py:497 company/templates/company/supplier_part_base.html:116
+#: company/templates/company/supplier_part_detail.html:38 part/models.py:2228
#: report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr "Notiz"
-#: company/models.py:504
+#: company/models.py:501 part/models.py:1614
msgid "base cost"
msgstr "Basiskosten"
-#: company/models.py:504
+#: company/models.py:501 part/models.py:1614
msgid "Minimum charge (e.g. stocking fee)"
msgstr "Mindestpreis"
-#: company/models.py:506 company/templates/company/supplier_part_base.html:108
-#: stock/models.py:397 stock/templates/stock/item_base.html:299
+#: company/models.py:503 company/templates/company/supplier_part_base.html:109
+#: stock/models.py:429 stock/templates/stock/item_base.html:305
#: templates/js/stock.js:667
msgid "Packaging"
msgstr "Verpackungen"
-#: company/models.py:506
+#: company/models.py:503
msgid "Part packaging"
msgstr "Teile-Verpackungen"
-#: company/models.py:508
+#: company/models.py:505 part/models.py:1616
msgid "multiple"
msgstr "Vielfache"
-#: company/models.py:508
+#: company/models.py:505
msgid "Order multiple"
msgstr "Mehrere bestellen"
@@ -1993,7 +2125,7 @@ msgstr "Neues Bild hochladen"
msgid "Download image from URL"
msgstr "Bild von URL herunterladen"
-#: company/templates/company/company_base.html:46 order/views.py:306
+#: company/templates/company/company_base.html:46 order/views.py:311
msgid "Create Purchase Order"
msgstr "Bestellung anlegen"
@@ -2022,11 +2154,9 @@ msgstr "Sind Sie sicher, dass Sie die Firma '%(name)s' löschen wollen?"
#: company/templates/company/delete.html:12
#, python-format
-msgid ""
-"There are %(count)s parts sourced from this company.
\n"
+msgid "There are %(count)s parts sourced from this company.
\n"
"If this supplier is deleted, these supplier part entries will also be deleted."
-msgstr ""
-"Es gibt %(count)s Teile, die von diesem Unternehmen bezogen werden.
\n"
+msgstr "Es gibt %(count)s Teile, die von diesem Unternehmen bezogen werden.
\n"
"Wenn dieser Lieferant gelöscht wird, werden auch diese Zulieferer-Teile gelöscht."
#: company/templates/company/detail.html:21
@@ -2041,10 +2171,11 @@ msgstr "Keine Website angegeben"
msgid "Uses default currency"
msgstr "verwendet Standard-Währung"
-#: company/templates/company/detail.html:67 order/models.py:450
-#: order/templates/order/sales_order_base.html:92 stock/models.py:415
-#: stock/models.py:416 stock/templates/stock/item_base.html:251
+#: company/templates/company/detail.html:67 order/models.py:461
+#: order/templates/order/sales_order_base.html:92 stock/models.py:447
+#: stock/models.py:448 stock/templates/stock/item_base.html:257
#: templates/js/company.js:40 templates/js/order.js:267
+#: templates/js/stock.js:1064
msgid "Customer"
msgstr "Kunde"
@@ -2090,7 +2221,7 @@ msgstr "Teile löschen"
#: company/templates/company/detail_manufacturer_part.html:66
#: company/templates/company/detail_supplier_part.html:66
#: part/templates/part/bom.html:159 part/templates/part/category.html:118
-#: templates/js/stock.js:1157
+#: templates/js/stock.js:1279
msgid "New Part"
msgstr "Neues Teil"
@@ -2126,30 +2257,30 @@ msgstr "Exportieren"
#: company/templates/company/manufacturer_part_suppliers.html:10
#: templates/InvenTree/search.html:164
msgid "Supplier Parts"
-msgstr "Zulieferer-Teile"
+msgstr "Zuliefererteile"
#: company/templates/company/detail_supplier_part.html:21
#: order/templates/order/order_wizard/select_parts.html:42
#: order/templates/order/purchase_order_detail.html:50
msgid "Create new supplier part"
-msgstr "Neues Zulieferer-Teil anlegen"
+msgstr "Neues Zuliefererteil anlegen"
#: company/templates/company/detail_supplier_part.html:22
#: company/templates/company/manufacturer_part_suppliers.html:17
#: order/templates/order/purchase_order_detail.html:49
-#: part/templates/part/supplier.html:17 templates/js/stock.js:1163
+#: part/templates/part/supplier.html:17 templates/js/stock.js:1285
msgid "New Supplier Part"
-msgstr "Neues Zulieferer-Teil"
+msgstr "Neues Zuliefererteil"
#: company/templates/company/detail_supplier_part.html:72
#: company/templates/company/manufacturer_part_suppliers.html:47
-#: company/views.py:64 order/templates/order/purchase_orders.html:183
+#: company/views.py:64 order/templates/order/purchase_orders.html:185
#: part/templates/part/supplier.html:50
msgid "New Supplier"
msgstr "Neuer Zulieferer"
#: company/templates/company/detail_supplier_part.html:73 company/views.py:281
-#: order/templates/order/purchase_orders.html:184
+#: order/templates/order/purchase_orders.html:186
msgid "Create new Supplier"
msgstr "Neuen Zulieferer anlegen"
@@ -2207,7 +2338,7 @@ msgstr "Herstellerteil-Bestand"
#: company/templates/company/manufacturer_part_navbar.html:22
#: company/templates/company/navbar.html:41
#: company/templates/company/supplier_part_navbar.html:15
-#: part/templates/part/navbar.html:36 stock/api.py:51
+#: part/templates/part/navbar.html:36 stock/api.py:54
#: stock/templates/stock/loc_link.html:7 stock/templates/stock/location.html:36
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/index.html:128 templates/InvenTree/search.html:196
@@ -2251,7 +2382,7 @@ msgstr "Hergestellte Teile"
#: company/templates/company/navbar.html:29
#: company/templates/company/navbar.html:32
msgid "Supplied Parts"
-msgstr "Zulieferer-Teile"
+msgstr "Zuliefererteile"
#: company/templates/company/navbar.html:38 part/templates/part/navbar.html:33
#: stock/templates/stock/location.html:107
@@ -2260,9 +2391,9 @@ msgstr "Zulieferer-Teile"
#: stock/templates/stock/location_navbar.html:22
#: stock/templates/stock/location_navbar.html:29
#: templates/InvenTree/search.html:198 templates/js/stock.js:968
-#: templates/stats.html:72 templates/stats.html:81 users/models.py:42
+#: templates/stats.html:93 templates/stats.html:102 users/models.py:42
msgid "Stock Items"
-msgstr "BestandsObjekte"
+msgstr "Teilbestand"
#: company/templates/company/navbar.html:47
#: company/templates/company/navbar.html:56
@@ -2315,27 +2446,27 @@ msgid "New Sales Order"
msgstr "Neuer Auftrag"
#: company/templates/company/supplier_part_base.html:7
-#: company/templates/company/supplier_part_base.html:20 stock/models.py:382
-#: stock/templates/stock/item_base.html:358 templates/js/company.js:279
+#: company/templates/company/supplier_part_base.html:20 stock/models.py:414
+#: stock/templates/stock/item_base.html:364 templates/js/company.js:279
msgid "Supplier Part"
-msgstr "Zulieferer-Teil"
+msgstr "Zuliefererteil"
#: company/templates/company/supplier_part_base.html:40
msgid "Edit supplier part"
-msgstr "Zulieferer-Teil bearbeiten"
+msgstr "Zuliefererteil bearbeiten"
#: company/templates/company/supplier_part_base.html:44
msgid "Delete supplier part"
-msgstr "Zulieferer-Teil entfernen"
+msgstr "Zuliefererteil entfernen"
#: company/templates/company/supplier_part_base.html:56
#: company/templates/company/supplier_part_detail.html:10
msgid "Supplier Part Details"
-msgstr "Zulieferer-Teildetails"
+msgstr "Zuliefererteil Details"
#: company/templates/company/supplier_part_delete.html:5
msgid "Are you sure you want to delete the following Supplier Parts?"
-msgstr "Sind Sie sicher, dass sie die folgenden Zulieferer-Teile löschen möchten?"
+msgstr "Sind Sie sicher, dass sie die folgenden Zuliefererteile löschen möchten?"
#: company/templates/company/supplier_part_navbar.html:12
#: company/templates/company/supplier_part_stock.html:10
@@ -2349,7 +2480,7 @@ msgstr "Zulieferer-Bestellungen"
#: company/templates/company/supplier_part_navbar.html:26
msgid "Supplier Part Pricing"
-msgstr "Zulieferer-Teil Bepreisung"
+msgstr "Zuliefererteil Bepreisung"
#: company/templates/company/supplier_part_navbar.html:29
msgid "Pricing"
@@ -2365,7 +2496,7 @@ msgid "Pricing Information"
msgstr "Preisinformationen ansehen"
#: company/templates/company/supplier_part_pricing.html:19 company/views.py:794
-#: part/templates/part/sale_prices.html:17 part/views.py:2636
+#: part/templates/part/sale_prices.html:17 part/views.py:2644
msgid "Add Price Break"
msgstr "Preisstaffel hinzufügen"
@@ -2395,7 +2526,7 @@ msgstr "Hersteller"
msgid "Customers"
msgstr "Kunden"
-#: company/views.py:78 order/templates/order/sales_orders.html:185
+#: company/views.py:78 order/templates/order/sales_orders.html:187
msgid "New Customer"
msgstr "Neuer Kunde"
@@ -2415,6 +2546,11 @@ msgstr "Bild herunterladen"
msgid "Image size exceeds maximum allowable size for download"
msgstr "Bildgröße überschreitet maximal-erlaubte Größe für Downloads"
+#: company/views.py:205 part/views.py:887
+#, python-brace-format
+msgid "Invalid response: {code}"
+msgstr "Ungültige Antwort {code}"
+
#: company/views.py:214 part/views.py:896
msgid "Supplied URL is not a valid image file"
msgstr "Angegebene URL ist kein gültiges Bild"
@@ -2435,7 +2571,7 @@ msgstr "Firma bearbeiten"
msgid "Edited company information"
msgstr "Firmeninformation bearbeitet"
-#: company/views.py:287 order/templates/order/sales_orders.html:186
+#: company/views.py:287 order/templates/order/sales_orders.html:188
msgid "Create new Customer"
msgstr "Neuen Kunden anlegen"
@@ -2453,7 +2589,7 @@ msgstr "Firma gelöscht"
#: company/views.py:357
msgid "Edit Manufacturer Part"
-msgstr "Hergestellte Teile ändern"
+msgstr "Herstellerteil ändern"
#: company/views.py:366
msgid "Create New Manufacturer Part"
@@ -2465,25 +2601,25 @@ msgstr "Herstellerteil löschen"
#: company/views.py:528
msgid "Edit Supplier Part"
-msgstr "Zulieferer-Teil bearbeiten"
+msgstr "Zuliefererteil bearbeiten"
-#: company/views.py:578 templates/js/stock.js:1164
+#: company/views.py:578 templates/js/stock.js:1286
msgid "Create new Supplier Part"
-msgstr "Neues Zulieferer-Teil anlegen"
+msgstr "Neues Zuliefererteil anlegen"
#: company/views.py:722
msgid "Delete Supplier Part"
-msgstr "Zulieferer-Teil entfernen"
+msgstr "Zuliefererteil entfernen"
-#: company/views.py:799 part/views.py:2640
+#: company/views.py:799 part/views.py:2648
msgid "Added new price break"
msgstr "neue Preisstaffel hinzufügt"
-#: company/views.py:855 part/views.py:2684
+#: company/views.py:855 part/views.py:2692
msgid "Edit Price Break"
msgstr "Preisstaffel bearbeiten"
-#: company/views.py:870 part/views.py:2698
+#: company/views.py:870 part/views.py:2706
msgid "Delete Price Break"
msgstr "Preisstaffel löschen"
@@ -2491,51 +2627,59 @@ msgstr "Preisstaffel löschen"
msgid "No valid objects provided to template"
msgstr "Keine korrekten Objekte für Vorlage gegeben"
-#: label/models.py:102
+#: label/models.py:103
msgid "Label name"
msgstr "Label Name"
-#: label/models.py:109
+#: label/models.py:110
msgid "Label description"
msgstr "Label Beschreibung"
-#: label/models.py:116 stock/forms.py:202
+#: label/models.py:117 stock/forms.py:202
msgid "Label"
msgstr "Label"
-#: label/models.py:117
+#: label/models.py:118
msgid "Label template file"
msgstr "Label-Vorlage-Datei"
-#: label/models.py:123 report/models.py:274
+#: label/models.py:124 report/models.py:274
msgid "Enabled"
msgstr "Aktiviert"
-#: label/models.py:124
+#: label/models.py:125
msgid "Label template is enabled"
msgstr "Label-Vorlage ist aktiviert"
-#: label/models.py:129
+#: label/models.py:130
msgid "Width [mm]"
msgstr "Breite [mm]"
-#: label/models.py:130
+#: label/models.py:131
msgid "Label width, specified in mm"
msgstr "Label-Breite in mm"
-#: label/models.py:136
+#: label/models.py:137
msgid "Height [mm]"
msgstr "Höhe [mm]"
-#: label/models.py:137
+#: label/models.py:138
msgid "Label height, specified in mm"
msgstr "Label-Höhe in mm"
-#: label/models.py:222 label/models.py:275
+#: label/models.py:144
+msgid "Filename Pattern"
+msgstr "Dateinamen-Muster"
+
+#: label/models.py:145
+msgid "Pattern for generating label filenames"
+msgstr "Muster für die Erstellung von Label-Dateinamen"
+
+#: label/models.py:244 label/models.py:297
msgid "Query filters (comma-separated list of key=value pairs"
msgstr "Abfragefilter (kommagetrennte Liste mit Schlüssel=Wert-Paaren)"
-#: label/models.py:223 label/models.py:276 report/models.py:294
+#: label/models.py:245 label/models.py:298 report/models.py:294
#: report/models.py:415 report/models.py:449
msgid "Filters"
msgstr "Filter"
@@ -2573,15 +2717,15 @@ msgstr "Zieldatum für Auftrags-Lieferung."
msgid "Enter sales order number"
msgstr "Auftrag-Nummer eingeben"
-#: order/forms.py:145 order/models.py:462
+#: order/forms.py:145 order/models.py:473
msgid "Target date for order completion. Order will be overdue after this date."
msgstr "Zieldatum für Auftrags-Fertigstellung."
-#: order/forms.py:235
+#: order/forms.py:236
msgid "Enter stock item serial numbers"
msgstr "Seriennummern für BestandsObjekt eingeben"
-#: order/forms.py:241
+#: order/forms.py:242
msgid "Enter quantity of stock items"
msgstr "Menge der BestandsObjekt eingeben"
@@ -2609,7 +2753,7 @@ msgstr "Nutzer oder Gruppe der/die für diesen Auftrag zuständig ist/sind"
msgid "Order notes"
msgstr "Bestell-Notizen"
-#: order/models.py:182 order/models.py:455
+#: order/models.py:182 order/models.py:466
msgid "Purchase order status"
msgstr "Bestellungs-Status"
@@ -2650,8 +2794,8 @@ msgstr "Geplantes Lieferdatum für Auftrag."
msgid "Date order was completed"
msgstr "Datum an dem der Auftrag fertigstellt wurde"
-#: order/models.py:243 part/views.py:1586 stock/models.py:270
-#: stock/models.py:953
+#: order/models.py:243 part/views.py:1586 stock/models.py:302
+#: stock/models.py:1018
msgid "Quantity must be greater than zero"
msgstr "Anzahl muss größer Null sein"
@@ -2659,132 +2803,134 @@ msgstr "Anzahl muss größer Null sein"
msgid "Part supplier must match PO supplier"
msgstr "Teile-Zulieferer muss dem Zulieferer der Bestellung entsprechen"
-#: order/models.py:344
+#: order/models.py:346
msgid "Lines can only be received against an order marked as 'Placed'"
msgstr "Nur Teile aufgegebener Bestllungen können empfangen werden"
-#: order/models.py:348
-#, fuzzy
-#| msgid "Quantity must be integer"
+#: order/models.py:350
msgid "Quantity must be an integer"
msgstr "Anzahl muss eine Ganzzahl sein"
-#: order/models.py:350
-#, fuzzy
-#| msgid "Quantity must be positive"
+#: order/models.py:352
msgid "Quantity must be a positive number"
-msgstr "Anzahl muss positiv sein"
+msgstr "Anzahl muss eine positive Zahl sein"
-#: order/models.py:369
-msgid "Received items"
-msgstr "Elemente empfangen"
-
-#: order/models.py:451
+#: order/models.py:462
msgid "Company to which the items are being sold"
msgstr "Firma an die die Teile verkauft werden"
-#: order/models.py:457
+#: order/models.py:468
msgid "Customer Reference "
msgstr "Kundenreferenz"
-#: order/models.py:457
+#: order/models.py:468
msgid "Customer order reference code"
msgstr "Bestellreferenz"
-#: order/models.py:465 templates/js/order.js:303
+#: order/models.py:476 templates/js/order.js:303
msgid "Shipment Date"
msgstr "Versanddatum"
-#: order/models.py:472
+#: order/models.py:483
msgid "shipped by"
msgstr "Versand von"
-#: order/models.py:516
+#: order/models.py:527
msgid "SalesOrder cannot be shipped as it is not currently pending"
msgstr "Bestellung kann nicht versendet werden weil er nicht anhängig ist"
-#: order/models.py:603
+#: order/models.py:614
msgid "Item quantity"
msgstr "Anzahl"
-#: order/models.py:605
+#: order/models.py:616
msgid "Line item reference"
msgstr "Position - Referenz"
-#: order/models.py:607
+#: order/models.py:618
msgid "Line item notes"
msgstr "Position - Notizen"
-#: order/models.py:633 order/models.py:677
+#: order/models.py:644 order/models.py:689
#: part/templates/part/allocation.html:17
#: part/templates/part/allocation.html:45
msgid "Order"
msgstr "Bestellung"
-#: order/models.py:634 order/templates/order/order_base.html:9
+#: order/models.py:645 order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:24
#: report/templates/report/inventree_po_report.html:77
-#: stock/templates/stock/item_base.html:313 templates/js/order.js:148
+#: stock/templates/stock/item_base.html:319 templates/js/order.js:148
+#: templates/js/stock.js:1045
msgid "Purchase Order"
msgstr "Bestellung"
-#: order/models.py:648
+#: order/models.py:659
msgid "Supplier part"
-msgstr "Zulieferer-Teil"
+msgstr "Zuliefererteil"
-#: order/models.py:651 order/templates/order/order_base.html:131
+#: order/models.py:662 order/templates/order/order_base.html:131
#: order/templates/order/purchase_order_detail.html:189
#: order/templates/order/receive_parts.html:22
#: order/templates/order/sales_order_base.html:131
msgid "Received"
msgstr "Empfangen"
-#: order/models.py:651
+#: order/models.py:662
msgid "Number of items received"
msgstr "Empfangene Objekt-Anzahl"
-#: order/models.py:658 stock/models.py:508
-#: stock/templates/stock/item_base.html:320
+#: order/models.py:669 stock/models.py:540
+#: stock/templates/stock/item_base.html:326
msgid "Purchase Price"
msgstr "Preis"
-#: order/models.py:659
+#: order/models.py:670
msgid "Unit purchase price"
msgstr "Preis pro Einheit"
-#: order/models.py:753 order/models.py:755
+#: order/models.py:698 part/templates/part/navbar.html:95
+#: part/templates/part/part_pricing.html:78
+msgid "Sale Price"
+msgstr "Verkaufspreis"
+
+#: order/models.py:699
+msgid "Unit sale price"
+msgstr "Stückverkaufspreis"
+
+#: order/models.py:774 order/models.py:776
msgid "Stock item has not been assigned"
msgstr "BestandsObjekt wurde nicht zugewiesen"
-#: order/models.py:759
+#: order/models.py:780
msgid "Cannot allocate stock item to a line with a different part"
msgstr "Kann BestandsObjekt keiner Zeile mit einem anderen Teil hinzufügen"
-#: order/models.py:761
+#: order/models.py:782
msgid "Cannot allocate stock to a line without a part"
msgstr "Kann BestandsObjekt keiner Zeile ohne Teil hinzufügen"
-#: order/models.py:764
+#: order/models.py:785
msgid "Allocation quantity cannot exceed stock quantity"
msgstr "Die zugeordnete Anzahl darf nicht die verfügbare Anzahl überschreiten"
-#: order/models.py:774
+#: order/models.py:795
msgid "Quantity must be 1 for serialized stock item"
msgstr "Anzahl für BestandsObjekt mit Seriennummer muss 1 sein"
-#: order/models.py:779
+#: order/models.py:800
msgid "Line"
msgstr "Position"
-#: order/models.py:790
+#: order/models.py:811
msgid "Item"
msgstr "Position"
-#: order/models.py:791
+#: order/models.py:812
msgid "Select stock item to allocate"
msgstr "BestandsObjekt für Zuordnung auswählen"
-#: order/models.py:794
+#: order/models.py:815
msgid "Enter stock allocation quantity"
msgstr "Anzahl für Bestandszuordnung eingeben"
@@ -2836,7 +2982,7 @@ msgstr "Aufgegeben"
#: order/templates/order/purchase_order_detail.html:100
#: part/templates/part/category.html:185 part/templates/part/category.html:227
#: stock/templates/stock/location.html:191 templates/js/stock.js:708
-#: templates/js/stock.js:1169
+#: templates/js/stock.js:1291
msgid "New Location"
msgstr "Neuer Lagerort"
@@ -2847,10 +2993,8 @@ msgid "Create new stock location"
msgstr "Neuen Lagerort anlegen"
#: order/templates/order/order_cancel.html:8
-#, fuzzy
-#| msgid "Cancelling this order means that the order will no longer be editable."
msgid "Cancelling this order means that the order and line items will no longer be editable."
-msgstr "Abbruch dieser Bestellung bedeutet, dass sie nicht länger bearbeitbar ist."
+msgstr "Abbruch dieser Bestellung bedeutet, dass sie und ihre Positionen nicht länger bearbeitbar sind."
#: order/templates/order/order_complete.html:7
msgid "Mark this order as complete?"
@@ -2861,10 +3005,8 @@ msgid "This order has line items which have not been marked as received."
msgstr "Diese Bestellung enthält Positionen, die nicht als empfangen markiert wurden."
#: order/templates/order/order_complete.html:11
-#, fuzzy
-#| msgid "Cancelling this order means that the order will no longer be editable."
msgid "Completing this order means that the order and line items will no longer be editable."
-msgstr "Abbruch dieser Bestellung bedeutet, dass sie nicht länger bearbeitbar ist."
+msgstr "Fertigstellen dieser Bestellung bedeutet, dass sie und ihre Positionen nicht länger bearbeitbar sind."
#: order/templates/order/order_issue.html:8
msgid "After placing this purchase order, line items will no longer be editable."
@@ -2874,6 +3016,75 @@ msgstr "Nachdem diese Bestellung plaziert ist können die Positionen nicht läng
msgid "Order Notes"
msgstr "Notizen zur Bestellung"
+#: order/templates/order/order_wizard/match_fields.html:9
+#: part/templates/part/bom_upload/select_fields.html:21
+msgid "Missing selections for the following required columns"
+msgstr "Es fehlt eine Auswahl für die folgende benötigte Spalte"
+
+#: order/templates/order/order_wizard/match_fields.html:20
+msgid "Duplicate selections found, see below. Fix them then retry submitting."
+msgstr "Doppelte Auswahlen gefunden, siehe unten. Reparieren und erneut versuchen."
+
+#: order/templates/order/order_wizard/match_fields.html:27
+#: order/templates/order/order_wizard/match_parts.html:18
+#: order/templates/order/order_wizard/po_upload.html:40
+msgid "Previous Step"
+msgstr "Vorheriger Schritt"
+
+#: order/templates/order/order_wizard/match_fields.html:29
+#: order/templates/order/order_wizard/match_parts.html:20
+#: part/templates/part/bom_upload/select_fields.html:32
+msgid "Submit Selections"
+msgstr "Auswahl übertragen"
+
+#: order/templates/order/order_wizard/match_fields.html:35
+#: part/templates/part/bom_upload/select_fields.html:41
+msgid "File Fields"
+msgstr "Datei-Felder"
+
+#: order/templates/order/order_wizard/match_fields.html:42
+#: part/templates/part/bom_upload/select_fields.html:47
+msgid "Remove column"
+msgstr "Spalte entfernen"
+
+#: order/templates/order/order_wizard/match_fields.html:60
+msgid "Duplicate selection"
+msgstr "Auswahl duplizieren"
+
+#: order/templates/order/order_wizard/match_fields.html:71
+#: order/templates/order/order_wizard/match_parts.html:51
+#: part/templates/part/bom_upload/select_fields.html:76
+#: part/templates/part/bom_upload/select_parts.html:58
+msgid "Remove row"
+msgstr "Zeile entfernen"
+
+#: order/templates/order/order_wizard/match_parts.html:11
+#: part/templates/part/bom_upload/select_parts.html:21
+msgid "Errors exist in the submitted data"
+msgstr "Fehler in den übermittelten Daten"
+
+#: order/templates/order/order_wizard/match_parts.html:27
+#: part/templates/part/bom_upload/select_parts.html:39
+msgid "Row"
+msgstr "Zeile"
+
+#: order/templates/order/order_wizard/match_parts.html:28
+msgid "Select Supplier Part"
+msgstr "Zulieferer-Teil auswählen"
+
+#: order/templates/order/order_wizard/po_upload.html:11
+msgid "Upload File for Purchase Order"
+msgstr "Datei zur Bestellung hochladen"
+
+#: order/templates/order/order_wizard/po_upload.html:18
+#, python-format
+msgid "Step %(step)s of %(count)s"
+msgstr "Schritt %(step)s von %(count)s"
+
+#: order/templates/order/order_wizard/po_upload.html:48
+msgid "Order is already processed. Files cannot be uploaded."
+msgstr "Bestellung ist bereits verarbeitet. Dateien können nicht hochgeladen werden."
+
#: order/templates/order/order_wizard/select_parts.html:9
msgid "Step 1 of 2 - Select Part Suppliers"
msgstr "Schritt 1 von 2 - Zulieferer auswählen"
@@ -2918,16 +3129,14 @@ msgid "Select Purchase Order"
msgstr "Bestellung auswählen"
#: order/templates/order/order_wizard/select_pos.html:45
-#, fuzzy, python-format
-#| msgid "Create new purchase order"
+#, python-format
msgid "Create new purchase order for %(name)s"
-msgstr "Neue Bestellung anlegen"
+msgstr "Neue Bestellung für %(name)s anlegen"
#: order/templates/order/order_wizard/select_pos.html:68
-#, fuzzy, python-format
-#| msgid "Select a purchase order for"
+#, python-format
msgid "Select a purchase order for %(name)s"
-msgstr "Bestellung auswählen für"
+msgstr "Bestellung für %(name)s auswählen"
#: order/templates/order/po_attachments.html:12
#: order/templates/order/po_navbar.html:23
@@ -2948,8 +3157,8 @@ msgid "Purchase Order Items"
msgstr "Bestellungs-Positionen"
#: order/templates/order/purchase_order_detail.html:24
-#: order/templates/order/sales_order_detail.html:22 order/views.py:1120
-#: order/views.py:1203
+#: order/templates/order/sales_order_detail.html:22 order/views.py:1311
+#: order/views.py:1394
msgid "Add Line Item"
msgstr "Position hinzufügen"
@@ -2958,11 +3167,12 @@ msgid "No line items found"
msgstr "Keine Positionen gefunden"
#: order/templates/order/purchase_order_detail.html:180
+#: order/templates/order/sales_order_detail.html:235
msgid "Unit Price"
msgstr "Stück-Preis"
#: order/templates/order/purchase_order_detail.html:221
-#: order/templates/order/sales_order_detail.html:294
+#: order/templates/order/sales_order_detail.html:328
msgid "Edit line item"
msgstr "Position bearbeiten"
@@ -2992,7 +3202,7 @@ msgstr "Ausstehende Teile für %(order)s - %(desc)s empfangen"
#: part/templates/part/category_partlist.html:10
#: templates/InvenTree/index.html:97 templates/InvenTree/search.html:114
#: templates/InvenTree/settings/tabs.html:25 templates/js/part.js:577
-#: templates/navbar.html:23 templates/stats.html:59 templates/stats.html:68
+#: templates/navbar.html:23 templates/stats.html:80 templates/stats.html:89
#: users/models.py:40
msgid "Parts"
msgstr "Teile"
@@ -3008,7 +3218,7 @@ msgstr "Bestellnummer"
#: order/templates/order/receive_parts.html:21
#: part/templates/part/part_base.html:129 templates/js/part.js:414
msgid "On Order"
-msgstr "bestellt"
+msgstr "Bestellt"
#: order/templates/order/receive_parts.html:23
msgid "Receive"
@@ -3054,59 +3264,72 @@ msgstr "Abbruch dieser Bestellung bedeutet, dass sie nicht länger bearbeitbar i
msgid "Sales Order Items"
msgstr "Auftrags-Positionen"
-#: order/templates/order/sales_order_detail.html:92 templates/js/bom.js:342
+#: order/templates/order/sales_order_detail.html:95 templates/js/bom.js:342
#: templates/js/build.js:627 templates/js/build.js:1044
msgid "Actions"
msgstr "Aktionen"
-#: order/templates/order/sales_order_detail.html:99 templates/js/build.js:515
+#: order/templates/order/sales_order_detail.html:102 templates/js/build.js:515
#: templates/js/build.js:849
msgid "Edit stock allocation"
msgstr "Bestands-Zuordnung bearbeiten"
-#: order/templates/order/sales_order_detail.html:100 templates/js/build.js:517
+#: order/templates/order/sales_order_detail.html:103 templates/js/build.js:517
#: templates/js/build.js:850
msgid "Delete stock allocation"
msgstr "Bestands-Zuordnung löschen"
-#: order/templates/order/sales_order_detail.html:170
+#: order/templates/order/sales_order_detail.html:176
msgid "No matching line items"
msgstr "Keine passenden Positionen gefunden"
-#: order/templates/order/sales_order_detail.html:199
+#: order/templates/order/sales_order_detail.html:205
msgid "ID"
msgstr "ID"
-#: order/templates/order/sales_order_detail.html:229 templates/js/build.js:579
+#: order/templates/order/sales_order_detail.html:243 templates/js/build.js:579
#: templates/js/build.js:845
msgid "Allocated"
msgstr "Zugeordnet"
-#: order/templates/order/sales_order_detail.html:231
+#: order/templates/order/sales_order_detail.html:245
msgid "Fulfilled"
msgstr "Erledigt"
-#: order/templates/order/sales_order_detail.html:279
+#: order/templates/order/sales_order_detail.html:282
+msgid "PO"
+msgstr "PO"
+
+#: order/templates/order/sales_order_detail.html:312
msgid "Allocate serial numbers"
msgstr "Seriennummern zuweisen"
-#: order/templates/order/sales_order_detail.html:282 templates/js/build.js:641
+#: order/templates/order/sales_order_detail.html:315 templates/js/build.js:641
msgid "Allocate stock"
msgstr "Lagerbestand zuweisen"
-#: order/templates/order/sales_order_detail.html:285
+#: order/templates/order/sales_order_detail.html:318
msgid "Purchase stock"
msgstr "Lagerbestand kaufen"
-#: order/templates/order/sales_order_detail.html:289 templates/js/build.js:634
+#: order/templates/order/sales_order_detail.html:322 templates/js/build.js:634
#: templates/js/build.js:1052
msgid "Build stock"
msgstr "Lagerbestand bauen"
-#: order/templates/order/sales_order_detail.html:295
+#: order/templates/order/sales_order_detail.html:325
+#: order/templates/order/sales_order_detail.html:434
+msgid "Calculate price"
+msgstr "Preis berechnen"
+
+#: order/templates/order/sales_order_detail.html:329
msgid "Delete line item "
msgstr "Position löschen "
+#: order/templates/order/sales_order_detail.html:440
+msgid "Update Unit Price"
+msgstr "Stückpreis aktualisieren"
+
#: order/templates/order/sales_order_notes.html:14
msgid "Sales Order Notes"
msgstr "Auftrags-Positionen"
@@ -3148,164 +3371,189 @@ msgstr "Auftrags-Anhänge"
msgid "Are you sure you wish to delete this line item?"
msgstr "Sind Sie sicher, dass Sie diese Position löschen möchten?"
-#: order/views.py:99
+#: order/views.py:104
msgid "Add Purchase Order Attachment"
msgstr "Bestellungs-Anhang hinzufügen"
-#: order/views.py:149
+#: order/views.py:154
msgid "Add Sales Order Attachment"
msgstr "Auftrags-Anhang hinzufügen"
-#: order/views.py:341
+#: order/views.py:346
msgid "Create Sales Order"
msgstr "Auftrag anlegen"
-#: order/views.py:376
+#: order/views.py:381
msgid "Edit Purchase Order"
msgstr "Bestellung bearbeiten"
-#: order/views.py:396
+#: order/views.py:401
msgid "Edit Sales Order"
msgstr "Auftrag bearbeiten"
-#: order/views.py:412
+#: order/views.py:417
msgid "Cancel Order"
msgstr "Bestellung stornieren"
-#: order/views.py:421 order/views.py:447
+#: order/views.py:426 order/views.py:452
msgid "Confirm order cancellation"
msgstr "Bestellstornierung bestätigen"
-#: order/views.py:424 order/views.py:450
+#: order/views.py:429 order/views.py:455
msgid "Order cannot be cancelled"
msgstr "Bestellung kann nicht verworfen werden"
-#: order/views.py:438
+#: order/views.py:443
msgid "Cancel sales order"
msgstr "Auftrag stornieren"
-#: order/views.py:464
+#: order/views.py:469
msgid "Issue Order"
msgstr "Bestellung aufgeben"
-#: order/views.py:473
+#: order/views.py:478
msgid "Confirm order placement"
msgstr "Bestellungstätigung bestätigen"
-#: order/views.py:483
+#: order/views.py:488
msgid "Purchase order issued"
-msgstr "Bestellung erstellt"
+msgstr "Bestellung plaziert"
-#: order/views.py:494
+#: order/views.py:499
msgid "Complete Order"
msgstr "Auftrag fertigstellen"
-#: order/views.py:510
+#: order/views.py:515
msgid "Confirm order completion"
msgstr "Fertigstellung bestätigen"
-#: order/views.py:521
+#: order/views.py:526
msgid "Purchase order completed"
msgstr "Bestellung als vollständig markieren"
-#: order/views.py:531
+#: order/views.py:536
msgid "Ship Order"
msgstr "Versenden"
-#: order/views.py:547
+#: order/views.py:552
msgid "Confirm order shipment"
msgstr "Versand bestätigen"
-#: order/views.py:553
+#: order/views.py:558
msgid "Could not ship order"
msgstr "Versand fehlgeschlagen"
-#: order/views.py:607
+#: order/views.py:584
+msgid "Match Supplier Parts"
+msgstr "Zuliefererteile zuordnen"
+
+#: order/views.py:798
msgid "Receive Parts"
msgstr "Teile empfangen"
-#: order/views.py:677
+#: order/views.py:868
msgid "Items received"
msgstr "Anzahl empfangener Positionen"
-#: order/views.py:691
+#: order/views.py:882
msgid "No destination set"
msgstr "Kein Ziel gesetzt"
-#: order/views.py:736
+#: order/views.py:927
msgid "Error converting quantity to number"
msgstr "Fehler beim Konvertieren zu Zahl"
-#: order/views.py:742
+#: order/views.py:933
msgid "Receive quantity less than zero"
msgstr "Anzahl kleiner null empfangen"
-#: order/views.py:748
+#: order/views.py:939
msgid "No lines specified"
msgstr "Keine Zeilen angegeben"
-#: order/views.py:1069
+#: order/views.py:1260
#, python-brace-format
msgid "Ordered {n} parts"
msgstr "{n} Teile bestellt"
-#: order/views.py:1129
+#: order/views.py:1320
msgid "Supplier part must be specified"
-msgstr "Zulieferer-Teil muss ausgewählt werden"
+msgstr "Zuliefererteil muss ausgewählt werden"
-#: order/views.py:1135
+#: order/views.py:1326
msgid "Supplier must match for Part and Order"
msgstr "Zulieferer muss zu Teil und Bestellung passen"
-#: order/views.py:1254 order/views.py:1272
+#: order/views.py:1457 order/views.py:1475
msgid "Edit Line Item"
msgstr "Position bearbeiten"
-#: order/views.py:1288 order/views.py:1300
+#: order/views.py:1491 order/views.py:1503
msgid "Delete Line Item"
msgstr "Position löschen"
-#: order/views.py:1293 order/views.py:1305
+#: order/views.py:1496 order/views.py:1508
msgid "Deleted line item"
msgstr "Position gelöscht"
-#: order/views.py:1318
+#: order/views.py:1521
msgid "Allocate Serial Numbers"
msgstr "Seriennummern zuweisen"
-#: order/views.py:1363
+#: order/views.py:1566
#, python-brace-format
msgid "Allocated {n} items"
msgstr "{n} Positionen zugeordnet"
-#: order/views.py:1379
+#: order/views.py:1582
msgid "Select line item"
msgstr "Position auswählen"
-#: order/views.py:1410
-msgid "No matching item for serial"
-msgstr "Kein passends Teil für Seriennummer gefunden"
+#: order/views.py:1613
+#, python-brace-format
+msgid "No matching item for serial {serial}"
+msgstr "Kein passends Teil für Seriennummer {serial} gefunden"
-#: order/views.py:1420
-msgid "is not in stock"
-msgstr "ist nicht auf Lager"
+#: order/views.py:1623
+#, python-brace-format
+msgid "{serial} is not in stock"
+msgstr "{serial} ist nicht auf Lager"
-#: order/views.py:1428
-msgid "already allocated to an order"
-msgstr "bereits einem Auftrag zugeordnet"
+#: order/views.py:1631
+#, python-brace-format
+msgid "{serial} already allocated to an order"
+msgstr "{serial} bereits einem Auftrag zugeordnet"
-#: order/views.py:1482
+#: order/views.py:1685
msgid "Allocate Stock to Order"
msgstr "Lagerbestand dem Auftrag zuweisen"
-#: order/views.py:1556
+#: order/views.py:1759
msgid "Edit Allocation Quantity"
msgstr "Zuordnung bearbeiten"
-#: order/views.py:1571
+#: order/views.py:1774
msgid "Remove allocation"
msgstr "Zuordnung entfernen"
+#: order/views.py:1846
+msgid "Sales order not found"
+msgstr "Auftrag nicht gefunden"
+
+#: order/views.py:1852
+msgid "Price not found"
+msgstr "Preis nicht gefunden"
+
+#: order/views.py:1855
+#, python-brace-format
+msgid "Updated {part} unit-price to {price}"
+msgstr "Stückpreis für {part} auf {price} aktualisiert"
+
+#: order/views.py:1860
+#, python-brace-format
+msgid "Updated {part} unit-price to {price} and quantity to {qty}"
+msgstr "{part} Stückpreis auf {price} und Menge auf {qty} aktualisiert"
+
#: part/bom.py:138 part/models.py:72 part/models.py:762
#: part/templates/part/category.html:66 part/templates/part/detail.html:90
msgid "Default Location"
@@ -3384,7 +3632,7 @@ msgstr "Zulieferer einschließen"
msgid "Include part supplier data in exported BOM"
msgstr "Zulieferer-Daten in Stückliste-Export einschließen"
-#: part/forms.py:122 part/models.py:2077
+#: part/forms.py:122 part/models.py:2115
msgid "Parent Part"
msgstr "Ausgangsteil"
@@ -3460,7 +3708,7 @@ msgstr "Parameter-Vorlage zu Kategorien dieser Ebene hinzufügen"
msgid "Add parameter template to all categories"
msgstr "Parameter-Vorlage zu allen Kategorien hinzufügen"
-#: part/forms.py:344 part/models.py:2171
+#: part/forms.py:344 part/models.py:2209
msgid "Sub part"
msgstr "Untergeordnetes Teil"
@@ -3480,14 +3728,14 @@ msgstr "Standard Stichwörter"
msgid "Default keywords for parts in this category"
msgstr "Standard-Stichworte für Teile dieser Kategorie"
-#: part/models.py:82 part/models.py:2123
+#: part/models.py:82 part/models.py:2161
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr "Teil-Kategorie"
#: part/models.py:83 part/templates/part/category.html:23
#: part/templates/part/category.html:94 part/templates/part/category.html:141
-#: templates/InvenTree/search.html:127 templates/stats.html:63
+#: templates/InvenTree/search.html:127 templates/stats.html:84
#: users/models.py:39
msgid "Part Categories"
msgstr "Teil-Kategorien"
@@ -3550,7 +3798,7 @@ msgstr "Schlüsselwörter"
msgid "Part keywords to improve visibility in search results"
msgstr "Schlüsselworte um die Sichtbarkeit in Suchergebnissen zu verbessern"
-#: part/models.py:724 part/models.py:2122 part/templates/part/detail.html:73
+#: part/models.py:724 part/models.py:2160 part/templates/part/detail.html:73
#: part/templates/part/set_category.html:15 templates/js/part.js:385
msgid "Category"
msgstr "Kategorie"
@@ -3587,7 +3835,7 @@ msgstr "Standard Zulieferer"
#: part/models.py:808
msgid "Default supplier part"
-msgstr "Standard Zulieferer-Teil"
+msgstr "Standard Zuliefererteil"
#: part/models.py:815
msgid "Default Expiry"
@@ -3605,7 +3853,7 @@ msgstr "Minimaler Lagerbestand"
msgid "Minimum allowed stock level"
msgstr "Minimal zulässiger Lagerbestand"
-#: part/models.py:828 part/models.py:2051 part/templates/part/detail.html:106
+#: part/models.py:828 part/models.py:2089 part/templates/part/detail.html:106
#: part/templates/part/params.html:29
msgid "Units"
msgstr "Einheiten"
@@ -3635,8 +3883,8 @@ msgid "Can this part be sold to customers?"
msgstr "Kann dieses Teil an Kunden verkauft werden?"
#: part/models.py:861 part/templates/part/detail.html:227
-#: templates/js/table_filters.js:20 templates/js/table_filters.js:60
-#: templates/js/table_filters.js:236 templates/js/table_filters.js:305
+#: templates/js/table_filters.js:21 templates/js/table_filters.js:61
+#: templates/js/table_filters.js:237 templates/js/table_filters.js:306
msgid "Active"
msgstr "Aktiv"
@@ -3672,167 +3920,171 @@ msgstr "BOM Kontrolldatum"
msgid "Creation User"
msgstr "Erstellungs-Nutzer"
-#: part/models.py:1949
+#: part/models.py:1616
+msgid "Sell multiple"
+msgstr "Mehrere verkaufen"
+
+#: part/models.py:1987
msgid "Test templates can only be created for trackable parts"
msgstr "Test-Vorlagen können nur für verfolgbare Teile angelegt werden"
-#: part/models.py:1966
+#: part/models.py:2004
msgid "Test with this name already exists for this part"
msgstr "Ein Test mit diesem Namen besteht bereits für dieses Teil"
-#: part/models.py:1986 templates/js/part.js:638 templates/js/stock.js:104
+#: part/models.py:2024 templates/js/part.js:638 templates/js/stock.js:104
msgid "Test Name"
msgstr "Test-Name"
-#: part/models.py:1987
+#: part/models.py:2025
msgid "Enter a name for the test"
msgstr "Namen für diesen Test eingeben"
-#: part/models.py:1992
+#: part/models.py:2030
msgid "Test Description"
msgstr "Test-Beschreibung"
-#: part/models.py:1993
+#: part/models.py:2031
msgid "Enter description for this test"
msgstr "Beschreibung für diesen Test eingeben"
-#: part/models.py:1998 templates/js/part.js:647
-#: templates/js/table_filters.js:222
+#: part/models.py:2036 templates/js/part.js:647
+#: templates/js/table_filters.js:223
msgid "Required"
-msgstr "benötigt"
+msgstr "Benötigt"
-#: part/models.py:1999
+#: part/models.py:2037
msgid "Is this test required to pass?"
msgstr "Muss dieser Test erfolgreich sein?"
-#: part/models.py:2004 templates/js/part.js:655
+#: part/models.py:2042 templates/js/part.js:655
msgid "Requires Value"
-msgstr "verpflichtender Wert"
+msgstr "Erfordert Wert"
-#: part/models.py:2005
+#: part/models.py:2043
msgid "Does this test require a value when adding a test result?"
msgstr "Muss für diesen Test ein Wert für das Test-Ergebnis eingetragen werden?"
-#: part/models.py:2010 templates/js/part.js:662
+#: part/models.py:2048 templates/js/part.js:662
msgid "Requires Attachment"
msgstr "Anhang muss eingegeben werden"
-#: part/models.py:2011
+#: part/models.py:2049
msgid "Does this test require a file attachment when adding a test result?"
msgstr "Muss für diesen Test ein Anhang für das Test-Ergebnis hinzugefügt werden?"
-#: part/models.py:2044
+#: part/models.py:2082
msgid "Parameter template name must be unique"
msgstr "Vorlagen-Name des Parameters muss eindeutig sein"
-#: part/models.py:2049
+#: part/models.py:2087
msgid "Parameter Name"
msgstr "Name des Parameters"
-#: part/models.py:2051
+#: part/models.py:2089
msgid "Parameter Units"
-msgstr "Parameter Einheit"
+msgstr "Einheit des Parameters"
-#: part/models.py:2079 part/models.py:2128 part/models.py:2129
+#: part/models.py:2117 part/models.py:2166 part/models.py:2167
#: templates/InvenTree/settings/category.html:62
msgid "Parameter Template"
msgstr "Parameter Vorlage"
-#: part/models.py:2081
+#: part/models.py:2119
msgid "Data"
msgstr "Wert"
-#: part/models.py:2081
+#: part/models.py:2119
msgid "Parameter Value"
msgstr "Parameter Wert"
-#: part/models.py:2133 templates/InvenTree/settings/category.html:67
+#: part/models.py:2171 templates/InvenTree/settings/category.html:67
msgid "Default Value"
msgstr "Standard-Wert"
-#: part/models.py:2134
+#: part/models.py:2172
msgid "Default Parameter Value"
msgstr "Standard Parameter Wert"
-#: part/models.py:2163
+#: part/models.py:2201
msgid "Select parent part"
msgstr "Ausgangsteil auswählen"
-#: part/models.py:2172
+#: part/models.py:2210
msgid "Select part to be used in BOM"
msgstr "Teil für die Nutzung in der Stückliste auswählen"
-#: part/models.py:2178
+#: part/models.py:2216
msgid "BOM quantity for this BOM item"
msgstr "Stücklisten-Anzahl für dieses Stücklisten-Teil"
-#: part/models.py:2180 templates/js/bom.js:216 templates/js/bom.js:269
+#: part/models.py:2218 templates/js/bom.js:216 templates/js/bom.js:269
msgid "Optional"
msgstr "Optional"
-#: part/models.py:2180
+#: part/models.py:2218
msgid "This BOM item is optional"
msgstr "Diese Stücklisten-Position ist optional"
-#: part/models.py:2183
+#: part/models.py:2221
msgid "Overage"
msgstr "Überschuss"
-#: part/models.py:2184
+#: part/models.py:2222
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr "Geschätzter Ausschuss (absolut oder prozentual)"
-#: part/models.py:2187
+#: part/models.py:2225
msgid "BOM item reference"
msgstr "Referenz der Postion auf der Stückliste"
-#: part/models.py:2190
+#: part/models.py:2228
msgid "BOM item notes"
msgstr "Notizen zur Stücklisten-Position"
-#: part/models.py:2192
+#: part/models.py:2230
msgid "Checksum"
msgstr "Prüfsumme"
-#: part/models.py:2192
+#: part/models.py:2230
msgid "BOM line checksum"
msgstr "Prüfsumme der Stückliste"
-#: part/models.py:2196 templates/js/bom.js:279 templates/js/bom.js:286
-#: templates/js/table_filters.js:50
+#: part/models.py:2234 templates/js/bom.js:279 templates/js/bom.js:286
+#: templates/js/table_filters.js:51
msgid "Inherited"
msgstr "Geerbt"
-#: part/models.py:2197
+#: part/models.py:2235
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr "Diese Stücklisten-Position wird in die Stücklisten von Teil-Varianten vererbt"
-#: part/models.py:2273 part/views.py:1592 part/views.py:1644
-#: stock/models.py:260
+#: part/models.py:2311 part/views.py:1592 part/views.py:1644
+#: stock/models.py:292
msgid "Quantity must be integer value for trackable parts"
msgstr "Menge muss eine Ganzzahl sein"
-#: part/models.py:2282 part/models.py:2284
+#: part/models.py:2320 part/models.py:2322
msgid "Sub part must be specified"
-msgstr "Zulieferer-Teil muss festgelegt sein"
+msgstr "Zuliefererteil muss festgelegt sein"
-#: part/models.py:2287
+#: part/models.py:2325
msgid "BOM Item"
msgstr "Stücklisten-Position"
-#: part/models.py:2404
+#: part/models.py:2442
msgid "Part 1"
msgstr "Teil 1"
-#: part/models.py:2408
+#: part/models.py:2446
msgid "Part 2"
msgstr "Teil 2"
-#: part/models.py:2408
+#: part/models.py:2446
msgid "Select Related Part"
msgstr "verknüpftes Teil auswählen"
-#: part/models.py:2440
+#: part/models.py:2478
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr "Fehler bei Verwandschaft: Ist das Teil mit sich selbst verwandt oder ist das die Verwandtschaft nicht eindeutig?"
@@ -3917,7 +4169,7 @@ msgid "All selected BOM items will be deleted"
msgstr "Alle ausgewählte Stücklistenpositionen werden gelöscht"
#: part/templates/part/bom.html:160 part/views.py:584
-#: templates/js/stock.js:1158
+#: templates/js/stock.js:1280
msgid "Create New Part"
msgstr "Neues Teil anlegen"
@@ -3935,51 +4187,18 @@ msgstr "Stückliste hochladen"
msgid "Step 2 - Select Fields"
msgstr "Schritt 2 - Felder auswählen"
-#: part/templates/part/bom_upload/select_fields.html:21
-msgid "Missing selections for the following required columns"
-msgstr "Es fehlt eine Auswahl für die folgende benötigte Spalte"
-
-#: part/templates/part/bom_upload/select_fields.html:32
-msgid "Submit Selections"
-msgstr "Auswahl übertragen"
-
-#: part/templates/part/bom_upload/select_fields.html:41
-msgid "File Fields"
-msgstr "Datei-Felder"
-
-#: part/templates/part/bom_upload/select_fields.html:47
-msgid "Remove column"
-msgstr "Spalte entfernen"
-
-#: part/templates/part/bom_upload/select_fields.html:58
-msgid "Match Fields"
-msgstr "Übereinstimmende Felder"
-
#: part/templates/part/bom_upload/select_fields.html:68
msgid "Duplicate column selection"
msgstr "Spalte doppelt ausgewählt"
-#: part/templates/part/bom_upload/select_fields.html:76
-#: part/templates/part/bom_upload/select_parts.html:58
-msgid "Remove row"
-msgstr "Zeile entfernen"
-
#: part/templates/part/bom_upload/select_parts.html:16
msgid "Step 3 - Select Parts"
msgstr "Schritt 3 - Teile auswählen"
-#: part/templates/part/bom_upload/select_parts.html:21
-msgid "Errors exist in the submitted data"
-msgstr "Fehler in den übermittelten Daten"
-
#: part/templates/part/bom_upload/select_parts.html:27
msgid "Submit BOM"
msgstr "Stückliste abschicken"
-#: part/templates/part/bom_upload/select_parts.html:39
-msgid "Row"
-msgstr "Zeile"
-
#: part/templates/part/bom_upload/select_parts.html:40
#: part/templates/part/bom_upload/select_parts.html:69
msgid "Select Part"
@@ -4010,10 +4229,6 @@ msgstr "Vorlage für Stückliste"
msgid "Each part must already exist in the database"
msgstr "Jedes Teil muss bereits in der Datenbank bestehen"
-#: part/templates/part/bom_upload/upload_file.html:27
-msgid "Upload File"
-msgstr "Datei hochgeladen"
-
#: part/templates/part/bom_validate.html:6
#, python-format
msgid "Confirm that the Bill of Materials (BOM) is valid for:
%(part)s"
@@ -4025,7 +4240,7 @@ msgstr "Damit wird jede Zeile der Stückliste kontrolliert"
#: part/templates/part/build.html:10
msgid "Part Builds"
-msgstr "gefertigte Teile"
+msgstr "Gefertigte Teile"
#: part/templates/part/build.html:18
msgid "Start New Build"
@@ -4035,7 +4250,7 @@ msgstr "Neuen Bauauftrag beginnen"
msgid "All parts"
msgstr "Alle Teile"
-#: part/templates/part/category.html:29 part/views.py:2282
+#: part/templates/part/category.html:29 part/views.py:2290
msgid "Create new part category"
msgstr "Teil-Kategorie anlegen"
@@ -4103,7 +4318,7 @@ msgstr "Teil-Kategorie anlegen"
msgid "Create new Part Category"
msgstr "Neue Teil-Kategorie anlegen"
-#: part/templates/part/category.html:228 stock/views.py:1359
+#: part/templates/part/category.html:228 stock/views.py:1391
msgid "Create new Stock Location"
msgstr "Neuen Lagerort erstellen"
@@ -4136,7 +4351,7 @@ msgstr "Diese Kategorie enthält %(count)s Teile"
#: part/templates/part/category_delete.html:27
#, python-format
msgid "If this category is deleted, these parts will be moved to the parent category %(path)s"
-msgstr "Wenn diese Kat. gelöscht wird, werden diese Teile in die übergeordnete Kat. %(path)s verschoben"
+msgstr "Wenn diese Kat. gelöscht wird, werden diese Teile in die übergeordnete Kategorie %(path)s verschoben"
#: part/templates/part/category_delete.html:29
msgid "If this category is deleted, these parts will be moved to the top-level category Teile"
@@ -4179,7 +4394,7 @@ msgstr "%(full_name)s - %(desc)s (%(match_per)s%% übereinstimmend)"
#: part/templates/part/detail.html:11 part/templates/part/navbar.html:11
msgid "Part Details"
-msgstr "Teile-Details"
+msgstr "Teil Details"
#: part/templates/part/detail.html:42
msgid "Latest Serial Number"
@@ -4294,22 +4509,18 @@ msgstr "Benutzt in"
msgid "Sales Price Information"
msgstr "Preisinformationen ansehen"
-#: part/templates/part/navbar.html:95
-msgid "Sale Price"
-msgstr "VK-Preis"
-
#: part/templates/part/navbar.html:106 part/templates/part/part_tests.html:10
msgid "Part Test Templates"
msgstr "Teil Test-Vorlagen"
-#: part/templates/part/navbar.html:109 stock/templates/stock/item_base.html:398
+#: part/templates/part/navbar.html:109 stock/templates/stock/item_base.html:404
msgid "Tests"
msgstr "Tests"
#: part/templates/part/navbar.html:113 part/templates/part/navbar.html:116
#: part/templates/part/related.html:10
msgid "Related Parts"
-msgstr "verknüpfte Teile"
+msgstr "Verknüpfte Teile"
#: part/templates/part/navbar.html:125 part/templates/part/notes.html:12
msgid "Part Notes"
@@ -4327,7 +4538,7 @@ msgstr "Neuer Parameter"
#: part/templates/part/params.html:28
#: report/templates/report/inventree_test_report_base.html:90
-#: stock/models.py:1655 templates/InvenTree/settings/header.html:8
+#: stock/models.py:1754 templates/InvenTree/settings/header.html:8
#: templates/js/stock.js:124
msgid "Value"
msgstr "Wert"
@@ -4363,19 +4574,19 @@ msgid "Star this part"
msgstr "Teil favorisieren"
#: part/templates/part/part_base.html:47
-#: stock/templates/stock/item_base.html:131
+#: stock/templates/stock/item_base.html:137
#: stock/templates/stock/location.html:51
msgid "Barcode actions"
msgstr "Barcode Aktionen"
#: part/templates/part/part_base.html:49
-#: stock/templates/stock/item_base.html:133
+#: stock/templates/stock/item_base.html:139
#: stock/templates/stock/location.html:53 templates/qr_button.html:1
msgid "Show QR Code"
msgstr "QR-Code anzeigen"
#: part/templates/part/part_base.html:50
-#: stock/templates/stock/item_base.html:149
+#: stock/templates/stock/item_base.html:155
#: stock/templates/stock/location.html:54
msgid "Print Label"
msgstr "Label drucken"
@@ -4404,7 +4615,7 @@ msgstr "Teil bearbeiten"
msgid "Delete part"
msgstr "Teil löschen"
-#: part/templates/part/part_base.html:123 templates/js/table_filters.js:156
+#: part/templates/part/part_base.html:123 templates/js/table_filters.js:157
msgid "In Stock"
msgstr "Auf Lager"
@@ -4418,7 +4629,7 @@ msgstr "Benötigt für Aufträge"
#: part/templates/part/part_base.html:150
msgid "Allocated to Orders"
-msgstr "zu Bauaufträgen zugeordnet"
+msgstr "Zu Bauaufträgen zugeordnet"
#: part/templates/part/part_base.html:165 templates/js/bom.js:300
msgid "Can Build"
@@ -4432,42 +4643,39 @@ msgstr "Im Bau"
msgid "Calculate"
msgstr "Berechnen"
-#: part/templates/part/part_pricing.html:8
-#, python-format
-msgid "Pricing information for:
%(part)s."
-msgstr "Preisinformationen für:
%(part)s."
-
-#: part/templates/part/part_pricing.html:23
+#: part/templates/part/part_pricing.html:19
msgid "Supplier Pricing"
msgstr "Zulieferer-Preise"
-#: part/templates/part/part_pricing.html:27
-#: part/templates/part/part_pricing.html:53
+#: part/templates/part/part_pricing.html:23
+#: part/templates/part/part_pricing.html:49
+#: part/templates/part/part_pricing.html:81
msgid "Unit Cost"
msgstr "Stückpreis"
-#: part/templates/part/part_pricing.html:33
-#: part/templates/part/part_pricing.html:59
+#: part/templates/part/part_pricing.html:29
+#: part/templates/part/part_pricing.html:55
+#: part/templates/part/part_pricing.html:85
msgid "Total Cost"
msgstr "Gesamtkosten"
-#: part/templates/part/part_pricing.html:41
+#: part/templates/part/part_pricing.html:37
msgid "No supplier pricing available"
msgstr "Keine Zulieferer-Preise verfügbar"
-#: part/templates/part/part_pricing.html:49
+#: part/templates/part/part_pricing.html:45
msgid "BOM Pricing"
msgstr "Stücklistenpreise"
-#: part/templates/part/part_pricing.html:67
+#: part/templates/part/part_pricing.html:63
msgid "Note: BOM pricing is incomplete for this part"
msgstr "Anmerkung: Stücklistenbepreisung für dieses Teil ist unvollständig"
-#: part/templates/part/part_pricing.html:74
+#: part/templates/part/part_pricing.html:70
msgid "No BOM pricing available"
msgstr "Keine Stücklisten-Preise verfügbar"
-#: part/templates/part/part_pricing.html:84
+#: part/templates/part/part_pricing.html:94
msgid "No pricing information is available for this part."
msgstr "Keine Preise für dieses Teil verfügbar"
@@ -4511,11 +4719,11 @@ msgstr "Es gibt %(count)s einzigartige Teile, die für '%(full_name)s' verfolgt
#: part/templates/part/related.html:18
msgid "Add Related"
-msgstr "Zugehöriges Teil hinzufügen"
+msgstr "Verknüpftes Teil hinzufügen"
#: part/templates/part/sale_prices.html:10
msgid "Sell Price Information"
-msgstr "VK-Preis Informationen"
+msgstr "Verkaufspreis Informationen"
#: part/templates/part/sales_orders.html:18
msgid "New sales order"
@@ -4576,6 +4784,10 @@ msgstr "Neue Variante anlegen"
msgid "New Variant"
msgstr "neue Variante anlegen"
+#: part/templatetags/inventree_extras.py:97
+msgid "Unknown database"
+msgstr "Unbekannte Datenbank"
+
#: part/views.py:89
msgid "Add Related Part"
msgstr "verknüpftes Teil hinzufügen"
@@ -4725,63 +4937,63 @@ msgstr "Teil wurde gelöscht"
msgid "Part Pricing"
msgstr "Teilbepreisung"
-#: part/views.py:2081
+#: part/views.py:2089
msgid "Create Part Parameter Template"
msgstr "Teilparametervorlage anlegen"
-#: part/views.py:2091
+#: part/views.py:2099
msgid "Edit Part Parameter Template"
msgstr "Teilparametervorlage bearbeiten"
-#: part/views.py:2098
+#: part/views.py:2106
msgid "Delete Part Parameter Template"
msgstr "Teilparametervorlage löschen"
-#: part/views.py:2106
+#: part/views.py:2114
msgid "Create Part Parameter"
msgstr "Teilparameter anlegen"
-#: part/views.py:2156
+#: part/views.py:2164
msgid "Edit Part Parameter"
msgstr "Teilparameter bearbeiten"
-#: part/views.py:2170
+#: part/views.py:2178
msgid "Delete Part Parameter"
msgstr "Teilparameter löschen"
-#: part/views.py:2230
+#: part/views.py:2238
msgid "Edit Part Category"
msgstr "Teil-Kategorie bearbeiten"
-#: part/views.py:2268
+#: part/views.py:2276
msgid "Delete Part Category"
msgstr "Teil-Kategorie löschen"
-#: part/views.py:2274
+#: part/views.py:2282
msgid "Part category was deleted"
msgstr "Teil-Kategorie wurde gelöscht"
-#: part/views.py:2326
+#: part/views.py:2334
msgid "Create Category Parameter Template"
msgstr "Kategorieparametervorlage anlegen"
-#: part/views.py:2427
+#: part/views.py:2435
msgid "Edit Category Parameter Template"
msgstr "Kategorieparametervorlage bearbeiten"
-#: part/views.py:2483
+#: part/views.py:2491
msgid "Delete Category Parameter Template"
msgstr "Kategorieparametervorlage löschen"
-#: part/views.py:2502
+#: part/views.py:2510
msgid "Create BOM Item"
msgstr "Stücklisten-Position anlegen"
-#: part/views.py:2572
+#: part/views.py:2580
msgid "Edit BOM item"
msgstr "Stücklisten-Position bearbeiten"
-#: part/views.py:2628
+#: part/views.py:2636
msgid "Confim BOM item deletion"
msgstr "löschen von Stücklisten-Position bestätigen"
@@ -4883,17 +5095,17 @@ msgid "Test Results"
msgstr "Testergebnisse"
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:1643
+#: stock/models.py:1742
msgid "Test"
msgstr "Test"
#: report/templates/report/inventree_test_report_base.html:89
-#: stock/models.py:1649
+#: stock/models.py:1748
msgid "Result"
msgstr "Ergebnis"
#: report/templates/report/inventree_test_report_base.html:92
-#: templates/js/order.js:195 templates/js/stock.js:986
+#: templates/js/order.js:195 templates/js/stock.js:984
msgid "Date"
msgstr "Datum"
@@ -4905,22 +5117,22 @@ msgstr "bestanden"
msgid "Fail"
msgstr "fehlgeschlagen"
-#: stock/api.py:199
+#: stock/api.py:212
#, python-brace-format
msgid "Updated stock for {n} items"
msgstr "Bestand für {n} Objekte geändert"
-#: stock/api.py:268
+#: stock/api.py:281
#, python-brace-format
msgid "Moved {n} parts to {loc}"
msgstr "{n} Teile nach {loc} bewegt"
-#: stock/forms.py:114 stock/forms.py:406 stock/models.py:475
-#: stock/templates/stock/item_base.html:365 templates/js/stock.js:656
+#: stock/forms.py:114 stock/forms.py:418 stock/models.py:507
+#: stock/templates/stock/item_base.html:371 templates/js/stock.js:656
msgid "Expiry Date"
msgstr "Ablaufdatum"
-#: stock/forms.py:115 stock/forms.py:407
+#: stock/forms.py:115 stock/forms.py:419
msgid "Expiration date for this stock item"
msgstr "Ablaufdatum für dieses BestandsObjekt"
@@ -4948,8 +5160,8 @@ msgstr " Transaktionsnotizen hinzufügen (optional)"
msgid "Select test report template"
msgstr "Test Bericht Vorlage auswählen"
-#: stock/forms.py:267 templates/js/table_filters.js:70
-#: templates/js/table_filters.js:133
+#: stock/forms.py:267 templates/js/table_filters.js:71
+#: templates/js/table_filters.js:134
msgid "Include sublocations"
msgstr "Unter-Lagerorte einschließen"
@@ -5005,243 +5217,187 @@ msgstr "Standard-Lagerort ändern"
msgid "Set the destination as the default location for selected parts"
msgstr "Setze das Ziel als Standard-Lagerort für ausgewählte Teile"
-#: stock/models.py:54 stock/models.py:513
+#: stock/models.py:54 stock/models.py:545
msgid "Owner"
msgstr "Besitzer"
-#: stock/models.py:55 stock/models.py:514
+#: stock/models.py:55 stock/models.py:546
msgid "Select Owner"
msgstr "Besitzer auswählen"
-#: stock/models.py:205
-msgid "Created stock item"
-msgstr "Neues BestandsObjekt erstellt"
-
-#: stock/models.py:241
+#: stock/models.py:273
msgid "StockItem with this serial number already exists"
msgstr "Ein BestandsObjekt mit dieser Seriennummer existiert bereits"
-#: stock/models.py:277
+#: stock/models.py:309
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr "Teile-Typ ('{pf}') muss {pe} sein"
-#: stock/models.py:287 stock/models.py:296
+#: stock/models.py:319 stock/models.py:328
msgid "Quantity must be 1 for item with a serial number"
msgstr "Anzahl muss für Objekte mit Seriennummer 1 sein"
-#: stock/models.py:288
+#: stock/models.py:320
msgid "Serial number cannot be set if quantity greater than 1"
msgstr "Seriennummer kann nicht gesetzt werden wenn die Anzahl größer als 1 ist"
-#: stock/models.py:310
+#: stock/models.py:342
msgid "Item cannot belong to itself"
msgstr "Teil kann nicht zu sich selbst gehören"
-#: stock/models.py:316
+#: stock/models.py:348
msgid "Item must have a build reference if is_building=True"
msgstr "Teil muss eine Referenz haben wenn is_building wahr ist"
-#: stock/models.py:323
+#: stock/models.py:355
msgid "Build reference does not point to the same part object"
msgstr "Referenz verweist nicht auf das gleiche Teil"
-#: stock/models.py:365
+#: stock/models.py:397
msgid "Parent Stock Item"
msgstr "Eltern-BestandsObjekt"
-#: stock/models.py:374
+#: stock/models.py:406
msgid "Base part"
msgstr "Basis-Teil"
-#: stock/models.py:383
+#: stock/models.py:415
msgid "Select a matching supplier part for this stock item"
-msgstr "Passendes Zulieferer-Teil für dieses BestandsObjekt auswählen"
+msgstr "Passendes Zuliefererteil für dieses BestandsObjekt auswählen"
-#: stock/models.py:388 stock/templates/stock/stock_app_base.html:8
+#: stock/models.py:420 stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr "Bestand-Lagerort"
-#: stock/models.py:391
+#: stock/models.py:423
msgid "Where is this stock item located?"
msgstr "Wo wird dieses Teil normalerweise gelagert?"
-#: stock/models.py:398
+#: stock/models.py:430
msgid "Packaging this stock item is stored in"
msgstr "Die Verpackung dieses BestandsObjekt ist gelagert in"
-#: stock/models.py:403 stock/templates/stock/item_base.html:259
+#: stock/models.py:435 stock/templates/stock/item_base.html:265
msgid "Installed In"
msgstr "verbaut in"
-#: stock/models.py:406
+#: stock/models.py:438
msgid "Is this item installed in another item?"
msgstr "Ist dieses Teil in einem anderen verbaut?"
-#: stock/models.py:422
+#: stock/models.py:454
msgid "Serial number for this item"
msgstr "Seriennummer für dieses Teil"
-#: stock/models.py:434
+#: stock/models.py:466
msgid "Batch code for this stock item"
msgstr "Losnummer für dieses BestandsObjekt"
-#: stock/models.py:438
+#: stock/models.py:470
msgid "Stock Quantity"
msgstr "Bestand"
-#: stock/models.py:447
+#: stock/models.py:479
msgid "Source Build"
msgstr "Quellbau"
-#: stock/models.py:449
+#: stock/models.py:481
msgid "Build for this stock item"
msgstr "Bauauftrag für dieses BestandsObjekt"
-#: stock/models.py:460
+#: stock/models.py:492
msgid "Source Purchase Order"
msgstr "Quelle Bestellung"
-#: stock/models.py:463
+#: stock/models.py:495
msgid "Purchase order for this stock item"
msgstr "Bestellung für dieses BestandsObjekt"
-#: stock/models.py:469
+#: stock/models.py:501
msgid "Destination Sales Order"
msgstr "Ziel-Auftrag"
-#: stock/models.py:476
+#: stock/models.py:508
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr "Ablaufdatum für BestandsObjekt. Bestand wird danach als abgelaufen gekennzeichnet"
-#: stock/models.py:489
+#: stock/models.py:521
msgid "Delete on deplete"
msgstr "Löschen wenn leer"
-#: stock/models.py:489
+#: stock/models.py:521
msgid "Delete this Stock Item when stock is depleted"
msgstr "Dieses BestandsObjekt löschen wenn Bestand aufgebraucht"
-#: stock/models.py:499 stock/templates/stock/item_notes.html:13
+#: stock/models.py:531 stock/templates/stock/item_notes.html:13
#: stock/templates/stock/navbar.html:54
msgid "Stock Item Notes"
msgstr "BestandsObjekt-Notizen"
-#: stock/models.py:509
+#: stock/models.py:541
msgid "Single unit purchase price at time of purchase"
msgstr "Preis für eine Einheit bei Einkauf"
-#: stock/models.py:614
-msgid "Assigned to Customer"
-msgstr "zugewiesen zum Kunden"
-
-#: stock/models.py:616
-msgid "Manually assigned to customer"
-msgstr "manuell zugewiesen zum Kunden"
-
-#: stock/models.py:629
-msgid "Returned from customer"
-msgstr "zurück vom Kunden"
-
-#: stock/models.py:631
-msgid "Returned to location"
-msgstr "zurück ins Lager"
-
-#: stock/models.py:792
-msgid "Installed into stock item"
-msgstr "In BestandsObjekt verbaut"
-
-#: stock/models.py:800
-msgid "Installed stock item"
-msgstr "verbautes BestandsObjekt"
-
-#: stock/models.py:824
-msgid "Uninstalled stock item"
-msgstr "BestandsObjekt ausgebaut"
-
-#: stock/models.py:843
-msgid "Uninstalled into location"
-msgstr "ausgebaut nach Lagerort"
-
-#: stock/models.py:944
+#: stock/models.py:1009
msgid "Part is not set as trackable"
msgstr "Teil ist nicht verfolgbar"
-#: stock/models.py:950
+#: stock/models.py:1015
msgid "Quantity must be integer"
msgstr "Anzahl muss eine Ganzzahl sein"
-#: stock/models.py:956
+#: stock/models.py:1021
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr "Anzahl darf nicht die verfügbare Anzahl überschreiten ({n})"
-#: stock/models.py:959
+#: stock/models.py:1024
msgid "Serial numbers must be a list of integers"
msgstr "Seriennummern muss eine Liste von Ganzzahlen sein"
-#: stock/models.py:962
+#: stock/models.py:1027
msgid "Quantity does not match serial numbers"
msgstr "Anzahl stimmt nicht mit den Seriennummern überein"
-#: stock/models.py:994
-msgid "Add serial number"
-msgstr "Seriennummer hinzufügen"
-
-#: stock/models.py:997
+#: stock/models.py:1034
#, python-brace-format
-msgid "Serialized {n} items"
-msgstr "{n} Teile serialisiert"
+msgid "Serial numbers already exist: {exists}"
+msgstr "Seriennummern {exists} existieren bereits"
-#: stock/models.py:1075
-msgid "Split from existing stock"
-msgstr "aufteilen vom vorhandenen Bestand"
-
-#: stock/models.py:1113
+#: stock/models.py:1192
msgid "StockItem cannot be moved as it is not in stock"
msgstr "BestandsObjekt kann nicht bewegt werden, da kein Bestand vorhanden ist"
-#: stock/models.py:1556
-msgid "Title"
-msgstr "Titel"
-
-#: stock/models.py:1556
-msgid "Tracking entry title"
-msgstr "Objektverfolgung - Name des Eintrags"
-
-#: stock/models.py:1558
+#: stock/models.py:1666
msgid "Entry notes"
msgstr "Eintrags-Notizen"
-#: stock/models.py:1560
-msgid "Link to external page for further information"
-msgstr "Link auf externe Seite für weitere Informationen"
-
-#: stock/models.py:1620
+#: stock/models.py:1719
msgid "Value must be provided for this test"
msgstr "Wert muss für diesen Test angegeben werden"
-#: stock/models.py:1626
+#: stock/models.py:1725
msgid "Attachment must be uploaded for this test"
msgstr "Anhang muss für diesen Test hochgeladen werden"
-#: stock/models.py:1644
+#: stock/models.py:1743
msgid "Test name"
msgstr "Name des Tests"
-#: stock/models.py:1650 templates/js/table_filters.js:212
+#: stock/models.py:1749 templates/js/table_filters.js:213
msgid "Test result"
msgstr "Testergebnis"
-#: stock/models.py:1656
+#: stock/models.py:1755
msgid "Test output value"
msgstr "Test Ausgabe Wert"
-#: stock/models.py:1663
+#: stock/models.py:1762
msgid "Test result attachment"
msgstr "Test Ergebnis Anhang"
-#: stock/models.py:1669
+#: stock/models.py:1768
msgid "Test notes"
msgstr "Test Notizen"
@@ -5296,134 +5452,134 @@ msgid "This stock item will be automatically deleted when all stock is depleted.
msgstr "Dieses BestandsObjekt wird automatisch gelöscht wenn der Lagerbestand aufgebraucht ist."
#: stock/templates/stock/item_base.html:95
-#: stock/templates/stock/item_base.html:369 templates/js/table_filters.js:145
+#: stock/templates/stock/item_base.html:375 templates/js/table_filters.js:146
msgid "Expired"
msgstr "abgelaufen"
-#: stock/templates/stock/item_base.html:99
-#: stock/templates/stock/item_base.html:371 templates/js/table_filters.js:150
+#: stock/templates/stock/item_base.html:105
+#: stock/templates/stock/item_base.html:377 templates/js/table_filters.js:151
msgid "Stale"
msgstr "überfällig"
-#: stock/templates/stock/item_base.html:136 templates/js/barcode.js:309
+#: stock/templates/stock/item_base.html:142 templates/js/barcode.js:309
#: templates/js/barcode.js:314
msgid "Unlink Barcode"
msgstr "Barcode abhängen"
-#: stock/templates/stock/item_base.html:138
+#: stock/templates/stock/item_base.html:144
msgid "Link Barcode"
msgstr "Barcode anhängen"
-#: stock/templates/stock/item_base.html:140 templates/stock_table.html:31
+#: stock/templates/stock/item_base.html:146 templates/stock_table.html:31
msgid "Scan to Location"
msgstr "zu Lagerort einscannen"
-#: stock/templates/stock/item_base.html:147
+#: stock/templates/stock/item_base.html:153
msgid "Printing actions"
msgstr "Druck Aktionen"
-#: stock/templates/stock/item_base.html:151
+#: stock/templates/stock/item_base.html:157
#: stock/templates/stock/item_tests.html:27
msgid "Test Report"
msgstr "Test-Bericht"
-#: stock/templates/stock/item_base.html:160
+#: stock/templates/stock/item_base.html:166
msgid "Stock adjustment actions"
msgstr "Bestands-Anpassungs Aktionen"
-#: stock/templates/stock/item_base.html:164
+#: stock/templates/stock/item_base.html:170
#: stock/templates/stock/location.html:65 templates/stock_table.html:57
msgid "Count stock"
msgstr "Bestand zählen"
-#: stock/templates/stock/item_base.html:167 templates/stock_table.html:55
+#: stock/templates/stock/item_base.html:173 templates/stock_table.html:55
msgid "Add stock"
msgstr "Bestand hinzufügen"
-#: stock/templates/stock/item_base.html:170 templates/stock_table.html:56
+#: stock/templates/stock/item_base.html:176 templates/stock_table.html:56
msgid "Remove stock"
msgstr "Bestand entfernen"
-#: stock/templates/stock/item_base.html:173
+#: stock/templates/stock/item_base.html:179
msgid "Serialize stock"
msgstr "Lagerbestand serialisieren"
-#: stock/templates/stock/item_base.html:177
+#: stock/templates/stock/item_base.html:183
msgid "Transfer stock"
msgstr "Bestand verschieben"
-#: stock/templates/stock/item_base.html:180
+#: stock/templates/stock/item_base.html:186
msgid "Assign to customer"
-msgstr "zu Kunden zuordnen"
+msgstr "Kunden zuweisen"
-#: stock/templates/stock/item_base.html:183
+#: stock/templates/stock/item_base.html:189
msgid "Return to stock"
msgstr "zu Bestand zurückgeben"
-#: stock/templates/stock/item_base.html:187 templates/js/stock.js:1299
+#: stock/templates/stock/item_base.html:193 templates/js/stock.js:1421
msgid "Uninstall stock item"
msgstr "BestandsObjekt deinstallieren"
-#: stock/templates/stock/item_base.html:187
+#: stock/templates/stock/item_base.html:193
msgid "Uninstall"
msgstr "Deinstallieren"
-#: stock/templates/stock/item_base.html:196
+#: stock/templates/stock/item_base.html:202
#: stock/templates/stock/location.html:62
msgid "Stock actions"
msgstr "Bestands-Aktionen"
-#: stock/templates/stock/item_base.html:199
+#: stock/templates/stock/item_base.html:205
msgid "Convert to variant"
msgstr "in Variante ändern"
-#: stock/templates/stock/item_base.html:202
+#: stock/templates/stock/item_base.html:208
msgid "Duplicate stock item"
msgstr "BestandsObjekt duplizieren"
-#: stock/templates/stock/item_base.html:204
+#: stock/templates/stock/item_base.html:210
msgid "Edit stock item"
msgstr "BestandsObjekt bearbeiten"
-#: stock/templates/stock/item_base.html:207
+#: stock/templates/stock/item_base.html:213
msgid "Delete stock item"
msgstr "BestandsObjekt löschen"
-#: stock/templates/stock/item_base.html:219
+#: stock/templates/stock/item_base.html:225
msgid "Stock Item Details"
msgstr "BestandsObjekt-Details"
-#: stock/templates/stock/item_base.html:278 templates/js/build.js:498
+#: stock/templates/stock/item_base.html:284 templates/js/build.js:498
msgid "No location set"
msgstr "Kein Lagerort gesetzt"
-#: stock/templates/stock/item_base.html:285
+#: stock/templates/stock/item_base.html:291
msgid "Barcode Identifier"
msgstr "Barcode-Bezeichner"
-#: stock/templates/stock/item_base.html:327
+#: stock/templates/stock/item_base.html:333
msgid "Parent Item"
msgstr "Elternposition"
-#: stock/templates/stock/item_base.html:369
+#: stock/templates/stock/item_base.html:375
#, python-format
msgid "This StockItem expired on %(item.expiry_date)s"
msgstr "Dieses BestandsObjekt lief am %(item.expiry_date)s ab"
-#: stock/templates/stock/item_base.html:371
+#: stock/templates/stock/item_base.html:377
#, python-format
msgid "This StockItem expires on %(item.expiry_date)s"
msgstr "Dieses BestandsObjekt läuft am %(item.expiry_date)s ab"
-#: stock/templates/stock/item_base.html:378 templates/js/stock.js:662
+#: stock/templates/stock/item_base.html:384 templates/js/stock.js:662
msgid "Last Updated"
msgstr "Zuletzt aktualisiert"
-#: stock/templates/stock/item_base.html:383
+#: stock/templates/stock/item_base.html:389
msgid "Last Stocktake"
msgstr "Letzte Inventur"
-#: stock/templates/stock/item_base.html:387
+#: stock/templates/stock/item_base.html:393
msgid "No stocktake performed"
msgstr "Keine Inventur ausgeführt"
@@ -5467,7 +5623,7 @@ msgstr "Installierte BestandsObjekte"
#: stock/templates/stock/item_serialize.html:5
msgid "Create serialized items from this stock item."
-msgstr "Teile mit Seriennummern von diesem BestandObjekt anlegen."
+msgstr "Teile mit Seriennummern mit diesem BestandObjekt anlegen."
#: stock/templates/stock/item_serialize.html:7
msgid "Select quantity to serialize, and unique serial numbers."
@@ -5534,7 +5690,7 @@ msgid "Stock Details"
msgstr "Objekt-Details"
#: stock/templates/stock/location.html:117 templates/InvenTree/search.html:279
-#: templates/stats.html:76 users/models.py:41
+#: templates/stats.html:97 users/models.py:41
msgid "Stock Locations"
msgstr "Bestand-Lagerorte"
@@ -5574,7 +5730,7 @@ msgstr "Lade..."
msgid "The following stock items will be uninstalled"
msgstr "Die folgenden BestandsObjekte werden nicht mehr verbaut"
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:1332
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:1364
msgid "Convert Stock Item"
msgstr "BestandsObjekt umwandeln"
@@ -5607,8 +5763,8 @@ msgstr "Sind Sie sicher, dass Sie diesen BestandsObjekt-Verfolgungs-Eintrag lös
msgid "Edit Stock Location"
msgstr "BestandsObjekt-Lagerort bearbeiten"
-#: stock/views.py:230 stock/views.py:1322 stock/views.py:1433
-#: stock/views.py:1798
+#: stock/views.py:230 stock/views.py:1343 stock/views.py:1465
+#: stock/views.py:1830
msgid "Owner is required (ownership control is enabled)"
msgstr "Eigentümer notwendig (Eigentümerkontrolle aktiv)"
@@ -5630,7 +5786,7 @@ msgstr "BestandsObjekt-Anhang löschen"
#: stock/views.py:343
msgid "Assign to Customer"
-msgstr "einem Kunden zuordnen"
+msgstr "Kunden zuweisen"
#: stock/views.py:352
msgid "Customer must be specified"
@@ -5774,43 +5930,47 @@ msgstr "{n} Teile nach {dest} bewegt"
msgid "Deleted {n} stock items"
msgstr "{n} BestandsObjekte gelöscht"
-#: stock/views.py:1224
+#: stock/views.py:1222
+msgid "Edit Stock Item Status"
+msgstr "Lagerbestandsstatus bearbeiten"
+
+#: stock/views.py:1245
msgid "Edit Stock Item"
msgstr "BestandsObjekt bearbeiten"
-#: stock/views.py:1450
+#: stock/views.py:1482
msgid "Serialize Stock"
msgstr "Lagerbestand erfassen"
-#: stock/views.py:1543 templates/js/build.js:244
+#: stock/views.py:1575 templates/js/build.js:244
msgid "Create new Stock Item"
msgstr "Neues BestandsObjekt hinzufügen"
-#: stock/views.py:1685
+#: stock/views.py:1717
msgid "Duplicate Stock Item"
msgstr "Bestand duplizieren"
-#: stock/views.py:1767
+#: stock/views.py:1799
msgid "Quantity cannot be negative"
msgstr "Anzahl kann nicht negativ sein"
-#: stock/views.py:1867
+#: stock/views.py:1899
msgid "Delete Stock Location"
msgstr "Bestand-Lagerort löschen"
-#: stock/views.py:1880
+#: stock/views.py:1912
msgid "Delete Stock Item"
msgstr "BestandsObjekt löschen"
-#: stock/views.py:1891
+#: stock/views.py:1923
msgid "Delete Stock Tracking Entry"
msgstr "Lagerbestands-Tracking-Eintrag löschen"
-#: stock/views.py:1898
+#: stock/views.py:1930
msgid "Edit Stock Tracking Entry"
msgstr "Lagerbestands-Tracking-Eintrag bearbeiten"
-#: stock/views.py:1907
+#: stock/views.py:1939
msgid "Add Stock Tracking Entry"
msgstr "Lagerbestands-Tracking-Eintrag hinzufügen"
@@ -5907,30 +6067,23 @@ msgid "Color Themes"
msgstr "Farbschemata"
#: templates/InvenTree/settings/appearance.html:29
-#, fuzzy, python-format
-#| msgid ""
-#| "\n"
-#| "\t\tThe CSS sheet \"%(invalid_color_theme)s.css\" for the currently selected color theme was not found.
\n"
-#| "\t\tPlease select another color theme :)\n"
-#| "\t"
-msgid ""
-"\n"
+#, python-format
+msgid "\n"
" The CSS sheet \"%(invalid_color_theme)s.css\" for the currently selected color theme was not found.
\n"
" Please select another color theme :)\n"
" "
-msgstr ""
-"\n"
+msgstr "\n"
"\t\tDie CSS Datei \"%(invalid_color_theme)s.css\" für das aktuell ausgewählte Farbschema wurde nicht gefunden.
\n"
"\t\tBitte ein anderes Farbschema auswählen:)\n"
-"\t"
+"\t "
#: templates/InvenTree/settings/appearance.html:39
msgid "Language"
-msgstr ""
+msgstr "Sprache"
#: templates/InvenTree/settings/appearance.html:61
msgid "Set Language"
-msgstr ""
+msgstr "Sprache festlegen"
#: templates/InvenTree/settings/build.html:10
msgid "Build Order Settings"
@@ -6017,7 +6170,7 @@ msgstr "Bestands-Einstellungen"
#: templates/InvenTree/settings/stock.html:13 templates/stock_table.html:50
msgid "Stock Options"
-msgstr "Stock-Optionen"
+msgstr "Bestands-Einstellungen "
#: templates/InvenTree/settings/tabs.html:3
#: templates/InvenTree/settings/user.html:10
@@ -6030,7 +6183,7 @@ msgstr "Konto"
#: templates/InvenTree/settings/tabs.html:9
msgid "Appearance"
-msgstr ""
+msgstr "Anzeige"
#: templates/InvenTree/settings/tabs.html:13
msgid "InvenTree Settings"
@@ -6111,19 +6264,27 @@ msgstr "Code auf GitHub ansehen"
#: templates/about.html:63
msgid "Credits"
-msgstr ""
+msgstr "Danksagung"
#: templates/about.html:68
msgid "Mobile App"
-msgstr ""
+msgstr "Mobile App"
#: templates/about.html:73
msgid "Submit Bug Report"
msgstr "Fehlerbericht senden"
-#: templates/about.html:82 templates/js/modals.js:550
-#: templates/js/modals.js:809 templates/modals.html:28 templates/modals.html:52
-#: templates/modals.html:93
+#: templates/about.html:80 templates/clip.html:4
+msgid "copy to clipboard"
+msgstr "In die Zwischenablage kopieren"
+
+#: templates/about.html:80
+msgid "copy version information"
+msgstr "Versionsinformationen kopieren"
+
+#: templates/about.html:90 templates/js/modals.js:568
+#: templates/js/modals.js:846 templates/modals.html:29 templates/modals.html:54
+#: templates/modals.html:97
msgid "Close"
msgstr "Schliessen"
@@ -6131,10 +6292,6 @@ msgstr "Schliessen"
msgid "Add Attachment"
msgstr "Anhang hinzufügen"
-#: templates/attachment_table.html:15
-msgid "File"
-msgstr "Datei"
-
#: templates/attachment_table.html:17
msgid "Uploaded"
msgstr "Hochgeladen"
@@ -6187,7 +6344,7 @@ msgstr "Server-Fehler"
msgid "Unknown response from server"
msgstr "Unbekannte Antwort von Server erhalten"
-#: templates/js/barcode.js:119 templates/js/modals.js:857
+#: templates/js/barcode.js:119 templates/js/modals.js:901
msgid "Invalid server response"
msgstr "Ungültige Antwort von Server"
@@ -6295,7 +6452,7 @@ msgstr "Keine Stücklisten-Position(en) gefunden"
#: templates/js/build.js:62
msgid "Auto-allocate stock items to this output"
-msgstr "BestandsObjekte automatisch Endprodukt zuordnen"
+msgstr "Teilbestand automatisch Endprodukt zuweisen"
#: templates/js/build.js:70
msgid "Unallocate stock from build output"
@@ -6332,7 +6489,7 @@ msgstr "Keine Bauaufträge passen zur Anfrage"
#: templates/js/build.js:708 templates/js/part.js:324 templates/js/part.js:546
#: templates/js/stock.js:511 templates/js/stock.js:938
-#: templates/js/stock.js:1331
+#: templates/js/stock.js:1453
msgid "Select"
msgstr "Auswählen"
@@ -6350,7 +6507,7 @@ msgstr "Teile geliefert"
#: templates/js/company.js:83
msgid "Parts Manufactured"
-msgstr "Teile gefertigt"
+msgstr "Hersteller-Teile"
#: templates/js/company.js:96
msgid "No company information found"
@@ -6372,7 +6529,7 @@ msgstr "Baugruppe"
#: templates/js/company.js:227
msgid "No supplier parts found"
-msgstr "Keine Zulieferer-Teile gefunden"
+msgstr "Keine Zuliefererteile gefunden"
#: templates/js/filters.js:193
msgid "Select filter"
@@ -6430,96 +6587,96 @@ msgstr "Label auswählen"
msgid "Select Label Template"
msgstr "Label-Vorlage auswählen"
-#: templates/js/modals.js:256
+#: templates/js/modals.js:265
msgid "Waiting for server..."
msgstr "Warte auf Server..."
-#: templates/js/modals.js:406
+#: templates/js/modals.js:424
msgid "Show Error Information"
msgstr "Fehler-Informationen anzeigen"
-#: templates/js/modals.js:473 templates/modals.html:73
+#: templates/js/modals.js:491 templates/modals.html:76
msgid "Accept"
msgstr "Akzeptieren"
-#: templates/js/modals.js:474 templates/modals.html:72
+#: templates/js/modals.js:492 templates/modals.html:75
msgid "Cancel"
msgstr "abbrechen"
-#: templates/js/modals.js:538
+#: templates/js/modals.js:556
msgid "Loading Data"
msgstr "Lade Daten"
-#: templates/js/modals.js:549 templates/js/modals.js:808
-#: templates/modals.html:29 templates/modals.html:53
+#: templates/js/modals.js:567 templates/js/modals.js:845
+#: templates/modals.html:30 templates/modals.html:55
msgid "Submit"
msgstr "Abschicken"
-#: templates/js/modals.js:760
+#: templates/js/modals.js:797
msgid "Invalid response from server"
msgstr "ungültige Antwort vom Server"
-#: templates/js/modals.js:760
+#: templates/js/modals.js:797
msgid "Form data missing from server response"
msgstr "Formulardaten fehlen bei Serverantwort"
-#: templates/js/modals.js:773
+#: templates/js/modals.js:810
msgid "Error posting form data"
msgstr "Formulardaten fehlerhaft"
-#: templates/js/modals.js:857
+#: templates/js/modals.js:901
msgid "JSON response missing form data"
msgstr "JSON Antwort enthält keine Formulardaten"
-#: templates/js/modals.js:867
+#: templates/js/modals.js:911
msgid "No Response"
msgstr "Keine Antwort"
-#: templates/js/modals.js:868
+#: templates/js/modals.js:912
msgid "No response from the InvenTree server"
msgstr "keine Antwort vom InvenTree Server"
-#: templates/js/modals.js:872
+#: templates/js/modals.js:916
msgid "Error 400: Bad Request"
msgstr "Fehler 400: Ungültige Anfrage"
-#: templates/js/modals.js:873
+#: templates/js/modals.js:917
msgid "Server returned error code 400"
msgstr "Fehler 400 von Server erhalten"
-#: templates/js/modals.js:877
+#: templates/js/modals.js:921
msgid "Error 401: Not Authenticated"
msgstr "Fehler 401: Nicht Angemeldet"
-#: templates/js/modals.js:878
+#: templates/js/modals.js:922
msgid "Authentication credentials not supplied"
msgstr "Authentication Kredentials nicht angegeben"
-#: templates/js/modals.js:882
+#: templates/js/modals.js:926
msgid "Error 403: Permission Denied"
msgstr "Fehler 403: keine Berechtigung"
-#: templates/js/modals.js:883
+#: templates/js/modals.js:927
msgid "You do not have the required permissions to access this function"
msgstr "Fehlende Berechtigung für diese Aktion"
-#: templates/js/modals.js:887
+#: templates/js/modals.js:931
msgid "Error 404: Resource Not Found"
msgstr "Fehler 404: Ressource nicht gefunden"
-#: templates/js/modals.js:888
+#: templates/js/modals.js:932
msgid "The requested resource could not be located on the server"
msgstr "Die angefragte Ressource kann auf diesem Server nicht gefunden werden"
-#: templates/js/modals.js:892
+#: templates/js/modals.js:936
msgid "Error 408: Timeout"
msgstr "Fehler 408: Zeitüberschreitung"
-#: templates/js/modals.js:893
+#: templates/js/modals.js:937
msgid "Connection timeout while requesting data from server"
msgstr "Verbindungszeitüberschreitung bei der Datenanforderung"
-#: templates/js/modals.js:896
+#: templates/js/modals.js:940
msgid "Error requesting form data"
msgstr "Fehler bei Formulardaten-Anfrage"
@@ -6537,7 +6694,7 @@ msgstr "Keine Aufträge gefunden"
#: templates/js/part.js:52 templates/js/part.js:137
msgid "Trackable part"
-msgstr "nachverfolgbares Teil"
+msgstr "Nachverfolgbares Teil"
#: templates/js/part.js:56 templates/js/part.js:141
msgid "Virtual part"
@@ -6563,7 +6720,7 @@ msgstr "Keine Teile gefunden"
msgid "No category"
msgstr "Keine Kategorie"
-#: templates/js/part.js:409 templates/js/table_filters.js:318
+#: templates/js/part.js:409 templates/js/table_filters.js:319
msgid "Low stock"
msgstr "Bestand niedrig"
@@ -6715,7 +6872,7 @@ msgstr "lose"
#: templates/js/stock.js:476
msgid "locations"
-msgstr "lagerorte"
+msgstr "Lagerorte"
#: templates/js/stock.js:478
msgid "Undefined location"
@@ -6761,7 +6918,7 @@ msgstr "BestandsObjekt verloren"
msgid "Stock item is destroyed"
msgstr "BestandsObjekt zerstört"
-#: templates/js/stock.js:620 templates/js/table_filters.js:138
+#: templates/js/stock.js:620 templates/js/table_filters.js:139
msgid "Depleted"
msgstr "gelöscht"
@@ -6785,189 +6942,213 @@ msgstr "Status Code setzen"
msgid "Status code must be selected"
msgstr "Status Code muss ausgewählt werden"
-#: templates/js/stock.js:1050
+#: templates/js/stock.js:994
+msgid "Invalid date"
+msgstr "Ungültiges Datum"
+
+#: templates/js/stock.js:1036
+msgid "Location no longer exists"
+msgstr "Standort nicht mehr vorhanden"
+
+#: templates/js/stock.js:1055
+msgid "Purchase order no longer exists"
+msgstr "Bestellung existiert nicht mehr"
+
+#: templates/js/stock.js:1074
+msgid "Customer no longer exists"
+msgstr "Kunde existiert nicht mehr"
+
+#: templates/js/stock.js:1092
+msgid "Stock item no longer exists"
+msgstr "Lagerbestand existiert nicht mehr"
+
+#: templates/js/stock.js:1115
+msgid "Added"
+msgstr "Hinzugefügt"
+
+#: templates/js/stock.js:1123
+msgid "Removed"
+msgstr "Entfernt"
+
+#: templates/js/stock.js:1155
msgid "No user information"
msgstr "Keine Benutzerinformation"
-#: templates/js/stock.js:1060
+#: templates/js/stock.js:1167
msgid "Edit tracking entry"
msgstr "Tracking-Eintrag bearbeiten"
-#: templates/js/stock.js:1061
+#: templates/js/stock.js:1168
msgid "Delete tracking entry"
msgstr "Tracking-Eintrag löschen"
-#: templates/js/stock.js:1170
+#: templates/js/stock.js:1292
msgid "Create New Location"
msgstr "Neuen Lagerort anlegen"
-#: templates/js/stock.js:1269
+#: templates/js/stock.js:1391
msgid "Serial"
msgstr "Seriennummer"
-#: templates/js/stock.js:1362 templates/js/table_filters.js:171
+#: templates/js/stock.js:1484 templates/js/table_filters.js:172
msgid "Installed"
msgstr "Installiert"
-#: templates/js/stock.js:1387
+#: templates/js/stock.js:1509
msgid "Install item"
msgstr "Installiere Objekt"
-#: templates/js/table_filters.js:42
+#: templates/js/table_filters.js:43
msgid "Trackable Part"
-msgstr "nachverfolgbares Teil"
+msgstr "Nachverfolgbares Teil"
-#: templates/js/table_filters.js:46
+#: templates/js/table_filters.js:47
msgid "Validated"
msgstr "überprüft"
-#: templates/js/table_filters.js:71
+#: templates/js/table_filters.js:72
msgid "Include locations"
msgstr "Lagerorte einschließen"
-#: templates/js/table_filters.js:81 templates/js/table_filters.js:82
-#: templates/js/table_filters.js:295
+#: templates/js/table_filters.js:82 templates/js/table_filters.js:83
+#: templates/js/table_filters.js:296
msgid "Include subcategories"
msgstr "Unterkategorien einschließen"
-#: templates/js/table_filters.js:92 templates/js/table_filters.js:181
+#: templates/js/table_filters.js:93 templates/js/table_filters.js:182
msgid "Is Serialized"
-msgstr "ist mit Seriennummer"
+msgstr "Hat Seriennummer"
-#: templates/js/table_filters.js:95 templates/js/table_filters.js:188
+#: templates/js/table_filters.js:96 templates/js/table_filters.js:189
msgid "Serial number GTE"
msgstr "Seriennummer >="
-#: templates/js/table_filters.js:96 templates/js/table_filters.js:189
+#: templates/js/table_filters.js:97 templates/js/table_filters.js:190
msgid "Serial number greater than or equal to"
msgstr "Seriennummer größer oder gleich"
-#: templates/js/table_filters.js:99 templates/js/table_filters.js:192
+#: templates/js/table_filters.js:100 templates/js/table_filters.js:193
msgid "Serial number LTE"
msgstr "Seriennummer <="
-#: templates/js/table_filters.js:100 templates/js/table_filters.js:193
+#: templates/js/table_filters.js:101 templates/js/table_filters.js:194
msgid "Serial number less than or equal to"
msgstr "Seriennummern kleiner oder gleich"
-#: templates/js/table_filters.js:103 templates/js/table_filters.js:104
-#: templates/js/table_filters.js:184 templates/js/table_filters.js:185
+#: templates/js/table_filters.js:104 templates/js/table_filters.js:105
+#: templates/js/table_filters.js:185 templates/js/table_filters.js:186
msgid "Serial number"
msgstr "Seriennummer"
-#: templates/js/table_filters.js:108 templates/js/table_filters.js:202
+#: templates/js/table_filters.js:109 templates/js/table_filters.js:203
msgid "Batch code"
msgstr "Losnummer"
-#: templates/js/table_filters.js:118 templates/js/table_filters.js:285
+#: templates/js/table_filters.js:119 templates/js/table_filters.js:286
msgid "Active parts"
msgstr "Aktive Teile"
-#: templates/js/table_filters.js:119
+#: templates/js/table_filters.js:120
msgid "Show stock for active parts"
msgstr "Bestand aktiver Teile anzeigen"
-#: templates/js/table_filters.js:124
+#: templates/js/table_filters.js:125
msgid "Part is an assembly"
msgstr "Teil ist eine Baugruppe"
-#: templates/js/table_filters.js:128
+#: templates/js/table_filters.js:129
msgid "Is allocated"
msgstr "Ist zugeordnet"
-#: templates/js/table_filters.js:129
+#: templates/js/table_filters.js:130
msgid "Item has been allocated"
msgstr "Teil wurde zugeordnet"
-#: templates/js/table_filters.js:134
+#: templates/js/table_filters.js:135
msgid "Include stock in sublocations"
msgstr "Bestand in Unter-Lagerorten einschließen"
-#: templates/js/table_filters.js:139
+#: templates/js/table_filters.js:140
msgid "Show stock items which are depleted"
msgstr "Zeige aufgebrauchte BestandsObjekte"
-#: templates/js/table_filters.js:146
+#: templates/js/table_filters.js:147
msgid "Show stock items which have expired"
msgstr "Zeige abgelaufene BestandsObjekte"
-#: templates/js/table_filters.js:151
+#: templates/js/table_filters.js:152
msgid "Show stock which is close to expiring"
msgstr "Bestand, der bald ablaufen, anzeigen"
-#: templates/js/table_filters.js:157
+#: templates/js/table_filters.js:158
msgid "Show items which are in stock"
msgstr "Zeige Objekte welche im Lager sind"
-#: templates/js/table_filters.js:161
+#: templates/js/table_filters.js:162
msgid "In Production"
msgstr "In Arbeit"
-#: templates/js/table_filters.js:162
+#: templates/js/table_filters.js:163
msgid "Show items which are in production"
msgstr "Elemente, die in Produktion sind, anzeigen"
-#: templates/js/table_filters.js:166
+#: templates/js/table_filters.js:167
msgid "Include Variants"
msgstr "Varianten einschließen"
-#: templates/js/table_filters.js:167
+#: templates/js/table_filters.js:168
msgid "Include stock items for variant parts"
msgstr "BestandsObjekte für Teil-Varianten einschließen"
-#: templates/js/table_filters.js:172
+#: templates/js/table_filters.js:173
msgid "Show stock items which are installed in another item"
msgstr "BestandsObjekte, die in anderen Elementen verbaut sind, anzeigen"
-#: templates/js/table_filters.js:176
-msgid "Sent to customer"
-msgstr "Zum Kunden geschickt"
-
-#: templates/js/table_filters.js:177
+#: templates/js/table_filters.js:178
msgid "Show items which have been assigned to a customer"
msgstr "zeige zu Kunden zugeordnete Einträge"
-#: templates/js/table_filters.js:197 templates/js/table_filters.js:198
+#: templates/js/table_filters.js:198 templates/js/table_filters.js:199
msgid "Stock status"
msgstr "Bestandsstatus"
-#: templates/js/table_filters.js:231
+#: templates/js/table_filters.js:232
msgid "Build status"
msgstr "Bauauftrags-Status"
-#: templates/js/table_filters.js:250 templates/js/table_filters.js:267
+#: templates/js/table_filters.js:251 templates/js/table_filters.js:268
msgid "Order status"
msgstr "Bestellstatus"
-#: templates/js/table_filters.js:255 templates/js/table_filters.js:272
+#: templates/js/table_filters.js:256 templates/js/table_filters.js:273
msgid "Outstanding"
msgstr "ausstehend"
-#: templates/js/table_filters.js:296
+#: templates/js/table_filters.js:297
msgid "Include parts in subcategories"
msgstr "Teile in Unterkategorien einschließen"
-#: templates/js/table_filters.js:300
+#: templates/js/table_filters.js:301
msgid "Has IPN"
msgstr "Hat IPN"
-#: templates/js/table_filters.js:301
+#: templates/js/table_filters.js:302
msgid "Part has internal part number"
msgstr "Teil hat Interne Teilenummer"
-#: templates/js/table_filters.js:306
+#: templates/js/table_filters.js:307
msgid "Show active parts"
msgstr "Aktive Teile anzeigen"
-#: templates/js/table_filters.js:314
+#: templates/js/table_filters.js:315
msgid "Stock available"
msgstr "verfügbarer Lagerbestand"
-#: templates/js/table_filters.js:330
+#: templates/js/table_filters.js:331
msgid "Starred"
msgstr "Favorit"
-#: templates/js/table_filters.js:342
+#: templates/js/table_filters.js:343
msgid "Purchasable"
msgstr "Käuflich"
@@ -7024,13 +7205,13 @@ msgstr "Spalten"
msgid "All"
msgstr "Alle"
-#: templates/modals.html:21 templates/modals.html:46
+#: templates/modals.html:21 templates/modals.html:47
msgid "Form errors exist"
msgstr "Fehler in Formular"
#: templates/navbar.html:13
msgid "Toggle navigation"
-msgstr ""
+msgstr "Navigation ein-/ausklappen"
#: templates/navbar.html:33
msgid "Buy"
@@ -7058,7 +7239,7 @@ msgstr "Einloggen"
#: templates/navbar.html:104
msgid "About InvenTree"
-msgstr "Über InvenBaum"
+msgstr "Über InvenTree"
#: templates/qr_code.html:11
msgid "QR data not provided"
@@ -7136,31 +7317,47 @@ msgstr "Server"
msgid "Instance Name"
msgstr "Instanzname"
-#: templates/stats.html:19
+#: templates/stats.html:18
+msgid "Database"
+msgstr "Datenbank"
+
+#: templates/stats.html:26
+msgid "Server is running in debug mode"
+msgstr "Server läuft im Debug-Modus"
+
+#: templates/stats.html:33
+msgid "Docker Mode"
+msgstr ""
+
+#: templates/stats.html:34
+msgid "Server is deployed using docker"
+msgstr ""
+
+#: templates/stats.html:40
msgid "Server status"
msgstr "Serverstatus"
-#: templates/stats.html:22
+#: templates/stats.html:43
msgid "Healthy"
msgstr "Gesund"
-#: templates/stats.html:24
+#: templates/stats.html:45
msgid "Issues detected"
msgstr "Probleme erkannt"
-#: templates/stats.html:31
+#: templates/stats.html:52
msgid "Background Worker"
msgstr "Hintergrund-Prozess"
-#: templates/stats.html:34
+#: templates/stats.html:55
msgid "Background worker not running"
msgstr "Hintergrund-Prozess läuft nicht"
-#: templates/stats.html:42
+#: templates/stats.html:63
msgid "Email Settings"
msgstr "E-Mail-Einstellungen"
-#: templates/stats.html:45
+#: templates/stats.html:66
msgid "Email settings not configured"
msgstr "E-Mail-Einstellungen nicht konfiguriert"
@@ -7280,14 +7477,3 @@ msgstr "Berechtigungen Einträge zu ändern"
msgid "Permission to delete items"
msgstr "Berechtigung Einträge zu löschen"
-#~ msgid "Marking this order as complete will remove these line items."
-#~ msgstr "Wenn Sie diese Bestellung als abgeschlossen markieren, werden diese Positionen entfernt."
-
-#~ msgid "Create new purchase order for {{ supplier.name }}"
-#~ msgstr "Neue Bestellung für {{ supplier.name }} anlegen"
-
-#~ msgid "Theme"
-#~ msgstr "Thema"
-
-#~ msgid "Get the App"
-#~ msgstr "App herunterladen"
diff --git a/InvenTree/locale/en/LC_MESSAGES/django.po b/InvenTree/locale/en/LC_MESSAGES/django.po
index 097f4c0f8c..7e057e4153 100644
--- a/InvenTree/locale/en/LC_MESSAGES/django.po
+++ b/InvenTree/locale/en/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-05-05 17:33+1000\n"
+"POT-Creation-Date: 2021-05-17 10:46+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -78,8 +78,8 @@ msgstr ""
msgid "Duplicate serial: {n}"
msgstr ""
-#: InvenTree/helpers.py:384 order/models.py:245 order/models.py:353
-#: stock/views.py:1763
+#: InvenTree/helpers.py:384 order/models.py:245 order/models.py:355
+#: stock/views.py:1795
msgid "Invalid quantity provided"
msgstr ""
@@ -107,7 +107,7 @@ msgstr ""
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr ""
-#: InvenTree/models.py:59 stock/models.py:1662
+#: InvenTree/models.py:59 stock/models.py:1761
msgid "Attachment"
msgstr ""
@@ -123,9 +123,9 @@ msgstr ""
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:1908
+#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:1946
#: report/templates/report/inventree_test_report_base.html:91
-#: templates/js/stock.js:1041
+#: templates/js/stock.js:1146
msgid "User"
msgstr ""
@@ -133,8 +133,8 @@ msgstr ""
msgid "upload date"
msgstr ""
-#: InvenTree/models.py:107 InvenTree/models.py:108 label/models.py:101
-#: part/models.py:686 part/models.py:2049 part/templates/part/params.html:27
+#: InvenTree/models.py:107 InvenTree/models.py:108 label/models.py:102
+#: part/models.py:686 part/models.py:2087 part/templates/part/params.html:27
#: report/models.py:179 templates/InvenTree/search.html:137
#: templates/InvenTree/search.html:289 templates/js/part.js:110
#: templates/js/part.js:553 templates/js/stock.js:944
@@ -142,11 +142,11 @@ msgid "Name"
msgstr ""
#: InvenTree/models.py:114 build/models.py:134
-#: build/templates/build/detail.html:21 company/models.py:342
-#: company/models.py:494 company/templates/company/detail.html:27
+#: build/templates/build/detail.html:21 company/models.py:339
+#: company/models.py:491 company/templates/company/detail.html:27
#: company/templates/company/manufacturer_part_base.html:72
#: company/templates/company/supplier_part_base.html:71
-#: company/templates/company/supplier_part_detail.html:31 label/models.py:108
+#: company/templates/company/supplier_part_detail.html:31 label/models.py:109
#: order/models.py:101 order/templates/order/purchase_order_detail.html:143
#: part/models.py:710 part/templates/part/detail.html:54
#: part/templates/part/set_category.html:14 report/models.py:192
@@ -160,7 +160,7 @@ msgstr ""
#: templates/js/order.js:280 templates/js/part.js:169 templates/js/part.js:252
#: templates/js/part.js:371 templates/js/part.js:565 templates/js/part.js:643
#: templates/js/stock.js:554 templates/js/stock.js:956
-#: templates/js/stock.js:1015
+#: templates/js/stock.js:1001
msgid "Description"
msgstr ""
@@ -172,23 +172,23 @@ msgstr ""
msgid "parent"
msgstr ""
-#: InvenTree/settings.py:491
+#: InvenTree/settings.py:501
msgid "English"
msgstr ""
-#: InvenTree/settings.py:492
+#: InvenTree/settings.py:502
msgid "French"
msgstr ""
-#: InvenTree/settings.py:493
+#: InvenTree/settings.py:503
msgid "German"
msgstr ""
-#: InvenTree/settings.py:494
+#: InvenTree/settings.py:504
msgid "Polish"
msgstr ""
-#: InvenTree/settings.py:495
+#: InvenTree/settings.py:505
msgid "Turkish"
msgstr ""
@@ -204,60 +204,136 @@ msgstr ""
msgid "InvenTree system health checks failed"
msgstr ""
-#: InvenTree/status_codes.py:102 InvenTree/status_codes.py:143
-#: InvenTree/status_codes.py:236
+#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:145
+#: InvenTree/status_codes.py:314
msgid "Pending"
msgstr ""
-#: InvenTree/status_codes.py:103
+#: InvenTree/status_codes.py:105
msgid "Placed"
msgstr ""
-#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:239
+#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:317
msgid "Complete"
msgstr ""
-#: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145
-#: InvenTree/status_codes.py:238
+#: InvenTree/status_codes.py:107 InvenTree/status_codes.py:147
+#: InvenTree/status_codes.py:316
msgid "Cancelled"
msgstr ""
-#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146
-#: InvenTree/status_codes.py:188
+#: InvenTree/status_codes.py:108 InvenTree/status_codes.py:148
+#: InvenTree/status_codes.py:190
msgid "Lost"
msgstr ""
-#: InvenTree/status_codes.py:107 InvenTree/status_codes.py:147
-#: InvenTree/status_codes.py:190
+#: InvenTree/status_codes.py:109 InvenTree/status_codes.py:149
+#: InvenTree/status_codes.py:192
msgid "Returned"
msgstr ""
-#: InvenTree/status_codes.py:144
+#: InvenTree/status_codes.py:146
#: order/templates/order/sales_order_base.html:124
msgid "Shipped"
msgstr ""
-#: InvenTree/status_codes.py:184
+#: InvenTree/status_codes.py:186
msgid "OK"
msgstr ""
-#: InvenTree/status_codes.py:185
+#: InvenTree/status_codes.py:187
msgid "Attention needed"
msgstr ""
-#: InvenTree/status_codes.py:186
+#: InvenTree/status_codes.py:188
msgid "Damaged"
msgstr ""
-#: InvenTree/status_codes.py:187
+#: InvenTree/status_codes.py:189
msgid "Destroyed"
msgstr ""
-#: InvenTree/status_codes.py:189
+#: InvenTree/status_codes.py:191
msgid "Rejected"
msgstr ""
-#: InvenTree/status_codes.py:237
+#: InvenTree/status_codes.py:272
+msgid "Legacy stock tracking entry"
+msgstr ""
+
+#: InvenTree/status_codes.py:274
+msgid "Stock item created"
+msgstr ""
+
+#: InvenTree/status_codes.py:276
+msgid "Edited stock item"
+msgstr ""
+
+#: InvenTree/status_codes.py:277
+msgid "Assigned serial number"
+msgstr ""
+
+#: InvenTree/status_codes.py:279
+msgid "Stock counted"
+msgstr ""
+
+#: InvenTree/status_codes.py:280
+msgid "Stock manually added"
+msgstr ""
+
+#: InvenTree/status_codes.py:281
+msgid "Stock manually removed"
+msgstr ""
+
+#: InvenTree/status_codes.py:283
+msgid "Location changed"
+msgstr ""
+
+#: InvenTree/status_codes.py:285
+msgid "Installed into assembly"
+msgstr ""
+
+#: InvenTree/status_codes.py:286
+msgid "Removed from assembly"
+msgstr ""
+
+#: InvenTree/status_codes.py:288
+msgid "Installed component item"
+msgstr ""
+
+#: InvenTree/status_codes.py:289
+msgid "Removed component item"
+msgstr ""
+
+#: InvenTree/status_codes.py:291
+msgid "Split from parent item"
+msgstr ""
+
+#: InvenTree/status_codes.py:292
+msgid "Split child item"
+msgstr ""
+
+#: InvenTree/status_codes.py:294 templates/js/table_filters.js:177
+msgid "Sent to customer"
+msgstr ""
+
+#: InvenTree/status_codes.py:295
+msgid "Returned from customer"
+msgstr ""
+
+#: InvenTree/status_codes.py:297
+msgid "Build order output created"
+msgstr ""
+
+#: InvenTree/status_codes.py:298
+msgid "Build order output completed"
+msgstr ""
+
+#: InvenTree/status_codes.py:300
+msgid "Received against purchase order"
+msgstr ""
+
+#: InvenTree/status_codes.py:315
msgid "Production"
msgstr ""
@@ -276,7 +352,8 @@ msgstr ""
#: InvenTree/validators.py:77 InvenTree/validators.py:91
#: InvenTree/validators.py:105
-msgid "Reference must match pattern"
+#, python-brace-format
+msgid "Reference must match pattern {pattern}"
msgstr ""
#: InvenTree/validators.py:113
@@ -382,35 +459,35 @@ msgstr ""
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1241
+#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1245
#: build/templates/build/allocation_card.html:23
#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:123
-#: build/templates/build/detail.html:31 common/models.py:703
+#: build/templates/build/detail.html:31 common/models.py:705
#: company/forms.py:176 company/templates/company/supplier_part_pricing.html:77
-#: order/forms.py:188 order/forms.py:205 order/forms.py:239 order/forms.py:261
-#: order/forms.py:278 order/models.py:603 order/models.py:794
+#: order/forms.py:188 order/forms.py:205 order/forms.py:240 order/forms.py:262
+#: order/forms.py:279 order/models.py:614 order/models.py:815
+#: order/templates/order/order_wizard/match_parts.html:29
#: order/templates/order/order_wizard/select_parts.html:32
#: order/templates/order/purchase_order_detail.html:175
#: order/templates/order/sales_order_detail.html:70
#: order/templates/order/sales_order_detail.html:77
-#: order/templates/order/sales_order_detail.html:159
-#: order/templates/order/sales_order_detail.html:224 part/forms.py:342
-#: part/forms.py:371 part/forms.py:387 part/models.py:2178
+#: order/templates/order/sales_order_detail.html:162
+#: order/templates/order/sales_order_detail.html:230 part/forms.py:342
+#: part/forms.py:371 part/forms.py:387 part/models.py:2216
#: part/templates/part/allocation.html:19
#: part/templates/part/allocation.html:53
-#: part/templates/part/part_pricing.html:11
-#: part/templates/part/part_pricing.html:18
+#: part/templates/part/part_pricing.html:13
#: part/templates/part/sale_prices.html:85
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:77
-#: stock/forms.py:175 stock/forms.py:308 stock/models.py:1566
-#: stock/templates/stock/item_base.html:244
+#: stock/forms.py:175 stock/forms.py:308
+#: stock/templates/stock/item_base.html:250
#: stock/templates/stock/stock_adjust.html:18 templates/js/barcode.js:364
#: templates/js/bom.js:205 templates/js/build.js:476 templates/js/build.js:1014
-#: templates/js/stock.js:1033 templates/js/stock.js:1271
+#: templates/js/stock.js:1131 templates/js/stock.js:1393
msgid "Quantity"
msgstr ""
@@ -422,7 +499,7 @@ msgstr ""
msgid "Enter quantity for build output"
msgstr ""
-#: build/forms.py:95 order/forms.py:233 stock/forms.py:118
+#: build/forms.py:95 order/forms.py:234 stock/forms.py:118
msgid "Serial Numbers"
msgstr ""
@@ -452,11 +529,11 @@ msgstr ""
#: build/forms.py:210 build/templates/build/auto_allocate.html:18
#: order/forms.py:82 stock/forms.py:347
-#: stock/templates/stock/item_base.html:274
+#: stock/templates/stock/item_base.html:280
#: stock/templates/stock/stock_adjust.html:17
#: templates/InvenTree/search.html:260 templates/js/barcode.js:363
#: templates/js/barcode.js:531 templates/js/build.js:490
-#: templates/js/stock.js:641
+#: templates/js/stock.js:641 templates/js/stock.js:1023
msgid "Location"
msgstr ""
@@ -465,12 +542,13 @@ msgid "Location of completed parts"
msgstr ""
#: build/forms.py:215 build/templates/build/build_base.html:128
-#: build/templates/build/detail.html:59 order/models.py:455
+#: build/templates/build/detail.html:59 order/models.py:466
#: order/templates/order/receive_parts.html:24
-#: stock/templates/stock/item_base.html:392 templates/InvenTree/search.html:252
+#: stock/templates/stock/item_base.html:398 templates/InvenTree/search.html:252
#: templates/js/barcode.js:119 templates/js/build.js:770
#: templates/js/order.js:187 templates/js/order.js:285
-#: templates/js/stock.js:628 templates/js/stock.js:1279
+#: templates/js/stock.js:628 templates/js/stock.js:1100
+#: templates/js/stock.js:1401
msgid "Status"
msgstr ""
@@ -523,9 +601,9 @@ msgstr ""
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:127 order/models.py:99 order/models.py:605
+#: build/models.py:127 order/models.py:99 order/models.py:616
#: order/templates/order/purchase_order_detail.html:170
-#: order/templates/order/sales_order_detail.html:219 part/models.py:2187
+#: order/templates/order/sales_order_detail.html:225 part/models.py:2225
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92 templates/js/bom.js:197
#: templates/js/build.js:565 templates/js/build.js:1008
@@ -547,16 +625,16 @@ msgstr ""
#: build/models.py:152 build/templates/build/auto_allocate.html:16
#: build/templates/build/build_base.html:118
-#: build/templates/build/detail.html:26 company/models.py:688
-#: order/models.py:647 order/models.py:679
+#: build/templates/build/detail.html:26 company/models.py:622
+#: order/models.py:658 order/models.py:691
#: order/templates/order/order_wizard/select_parts.html:30
#: order/templates/order/purchase_order_detail.html:131
#: order/templates/order/receive_parts.html:19
-#: order/templates/order/sales_order_detail.html:207 part/models.py:321
-#: part/models.py:1876 part/models.py:1888 part/models.py:1906
-#: part/models.py:1981 part/models.py:2077 part/models.py:2162
+#: order/templates/order/sales_order_detail.html:213 part/models.py:321
+#: part/models.py:1914 part/models.py:1926 part/models.py:1944
+#: part/models.py:2019 part/models.py:2115 part/models.py:2200
#: part/templates/part/part_app_base.html:8
-#: part/templates/part/part_pricing.html:14 part/templates/part/related.html:29
+#: part/templates/part/part_pricing.html:9 part/templates/part/related.html:29
#: part/templates/part/set_category.html:13
#: report/templates/report/inventree_build_order_base.html:110
#: report/templates/report/inventree_po_report.html:90
@@ -566,7 +644,7 @@ msgstr ""
#: templates/js/build.js:741 templates/js/build.js:981
#: templates/js/company.js:140 templates/js/company.js:238
#: templates/js/part.js:233 templates/js/part.js:338 templates/js/stock.js:523
-#: templates/js/stock.js:1343
+#: templates/js/stock.js:1465
msgid "Part"
msgstr ""
@@ -622,7 +700,7 @@ msgstr ""
msgid "Build status code"
msgstr ""
-#: build/models.py:212 stock/models.py:432
+#: build/models.py:212 stock/models.py:464
msgid "Batch Code"
msgstr ""
@@ -635,7 +713,7 @@ msgstr ""
msgid "Creation Date"
msgstr ""
-#: build/models.py:223 order/models.py:461
+#: build/models.py:223 order/models.py:472
msgid "Target completion date"
msgstr ""
@@ -673,28 +751,28 @@ msgstr ""
#: company/templates/company/supplier_part_base.html:78
#: company/templates/company/supplier_part_detail.html:28
#: part/templates/part/detail.html:83 part/templates/part/part_base.html:101
-#: stock/models.py:426 stock/templates/stock/item_base.html:334
+#: stock/models.py:458 stock/templates/stock/item_base.html:340
msgid "External Link"
msgstr ""
-#: build/models.py:257 part/models.py:744 stock/models.py:428
+#: build/models.py:257 part/models.py:744 stock/models.py:460
msgid "Link to external URL"
msgstr ""
#: build/models.py:261 build/templates/build/navbar.html:53
-#: company/models.py:135 company/models.py:501
+#: company/models.py:132 company/models.py:498
#: company/templates/company/navbar.html:70
#: company/templates/company/navbar.html:73 order/models.py:123
-#: order/models.py:607 order/templates/order/po_navbar.html:29
+#: order/models.py:618 order/templates/order/po_navbar.html:29
#: order/templates/order/po_navbar.html:32
#: order/templates/order/purchase_order_detail.html:209
-#: order/templates/order/sales_order_detail.html:264
+#: order/templates/order/sales_order_detail.html:278
#: order/templates/order/so_navbar.html:33
#: order/templates/order/so_navbar.html:36 part/models.py:871
#: part/templates/part/navbar.html:128
#: report/templates/report/inventree_build_order_base.html:173
#: stock/forms.py:173 stock/forms.py:317 stock/forms.py:349 stock/forms.py:377
-#: stock/models.py:498 stock/models.py:1558 stock/models.py:1668
+#: stock/models.py:530 stock/models.py:1665 stock/models.py:1767
#: stock/templates/stock/navbar.html:57 templates/js/barcode.js:37
#: templates/js/bom.js:333 templates/js/stock.js:128 templates/js/stock.js:671
msgid "Notes"
@@ -716,75 +794,71 @@ msgstr ""
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:838
-msgid "Completed build output"
-msgstr ""
-
-#: build/models.py:1132
+#: build/models.py:1136
msgid "BuildItem must be unique for build, stock_item and install_into"
msgstr ""
-#: build/models.py:1157
-msgid "Build item must specify a build output, as master part is marked as trackable"
-msgstr ""
-
#: build/models.py:1161
-#, python-brace-format
-msgid "Selected stock item not found in BOM for part '{p}'"
+msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
#: build/models.py:1165
#, python-brace-format
+msgid "Selected stock item not found in BOM for part '{p}'"
+msgstr ""
+
+#: build/models.py:1169
+#, python-brace-format
msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
msgstr ""
-#: build/models.py:1172 order/models.py:768
+#: build/models.py:1176 order/models.py:789
msgid "StockItem is over-allocated"
msgstr ""
-#: build/models.py:1176 order/models.py:771
+#: build/models.py:1180 order/models.py:792
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1180
+#: build/models.py:1184
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1220 stock/templates/stock/item_base.html:306
+#: build/models.py:1224 stock/templates/stock/item_base.html:312
#: templates/InvenTree/search.html:183 templates/js/build.js:714
#: templates/navbar.html:29
msgid "Build"
msgstr ""
-#: build/models.py:1221
+#: build/models.py:1225
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1228 part/templates/part/allocation.html:18
+#: build/models.py:1232 part/templates/part/allocation.html:18
#: part/templates/part/allocation.html:24
#: part/templates/part/allocation.html:31
#: part/templates/part/allocation.html:49
#: stock/templates/stock/item_base.html:8
#: stock/templates/stock/item_base.html:93
-#: stock/templates/stock/item_base.html:328
+#: stock/templates/stock/item_base.html:334
#: stock/templates/stock/stock_adjust.html:16 templates/js/build.js:831
-#: templates/js/stock.js:1004 templates/js/stock.js:1262
+#: templates/js/stock.js:1082 templates/js/stock.js:1384
msgid "Stock Item"
msgstr ""
-#: build/models.py:1229
+#: build/models.py:1233
msgid "Source stock item"
msgstr ""
-#: build/models.py:1242
+#: build/models.py:1246
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1250
+#: build/models.py:1254
msgid "Install into"
msgstr ""
-#: build/models.py:1251
+#: build/models.py:1255
msgid "Destination stock item"
msgstr ""
@@ -818,7 +892,7 @@ msgstr ""
#: build/templates/build/allocate.html:30
#: company/templates/company/detail_manufacturer_part.html:33
-#: company/templates/company/detail_supplier_part.html:32 order/views.py:795
+#: company/templates/company/detail_supplier_part.html:32 order/views.py:986
#: part/templates/part/category.html:127
msgid "Order Parts"
msgstr ""
@@ -838,9 +912,9 @@ msgstr ""
#: build/templates/build/allocation_card.html:21
#: build/templates/build/complete_output.html:46
#: order/templates/order/sales_order_detail.html:75
-#: order/templates/order/sales_order_detail.html:157
+#: order/templates/order/sales_order_detail.html:160
#: report/templates/report/inventree_test_report_base.html:75
-#: stock/models.py:420 stock/templates/stock/item_base.html:238
+#: stock/models.py:452 stock/templates/stock/item_base.html:244
#: templates/js/build.js:474
msgid "Serial Number"
msgstr ""
@@ -903,7 +977,7 @@ msgstr ""
#: order/templates/order/order_base.html:26
#: order/templates/order/sales_order_base.html:35
#: part/templates/part/category.html:18 part/templates/part/part_base.html:29
-#: stock/templates/stock/item_base.html:118
+#: stock/templates/stock/item_base.html:124
#: stock/templates/stock/location.html:31
msgid "Admin view"
msgstr ""
@@ -914,8 +988,8 @@ msgstr ""
#: order/templates/order/order_base.html:86
#: order/templates/order/sales_order_base.html:41
#: order/templates/order/sales_order_base.html:86
-#: templates/js/table_filters.js:240 templates/js/table_filters.js:259
-#: templates/js/table_filters.js:276
+#: templates/js/table_filters.js:241 templates/js/table_filters.js:260
+#: templates/js/table_filters.js:277
msgid "Overdue"
msgstr ""
@@ -961,14 +1035,14 @@ msgid "Progress"
msgstr ""
#: build/templates/build/build_base.html:160
-#: build/templates/build/detail.html:84 order/models.py:677
+#: build/templates/build/detail.html:84 order/models.py:689
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:33
#: order/templates/order/sales_order_ship.html:25
#: part/templates/part/allocation.html:30
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
-#: stock/templates/stock/item_base.html:268 templates/js/order.js:245
+#: stock/templates/stock/item_base.html:274 templates/js/order.js:245
msgid "Sales Order"
msgstr ""
@@ -1118,9 +1192,9 @@ msgid "Destination location not specified"
msgstr ""
#: build/templates/build/detail.html:70
-#: stock/templates/stock/item_base.html:292 templates/js/stock.js:636
-#: templates/js/stock.js:1286 templates/js/table_filters.js:107
-#: templates/js/table_filters.js:201
+#: stock/templates/stock/item_base.html:298 templates/js/stock.js:636
+#: templates/js/stock.js:1408 templates/js/table_filters.js:108
+#: templates/js/table_filters.js:202
msgid "Batch"
msgstr ""
@@ -1174,6 +1248,7 @@ msgstr ""
#: company/templates/company/navbar.html:15
#: order/templates/order/po_navbar.html:14
#: order/templates/order/so_navbar.html:15 part/templates/part/navbar.html:15
+#: templates/js/stock.js:1016
msgid "Details"
msgstr ""
@@ -1208,7 +1283,8 @@ msgstr ""
#: build/templates/build/notes.html:26 company/templates/company/notes.html:24
#: order/templates/order/order_notes.html:27
#: order/templates/order/sales_order_notes.html:29
-#: part/templates/part/notes.html:27 stock/templates/stock/item_base.html:470
+#: part/templates/part/notes.html:27 stock/templates/stock/item_base.html:477
+#: stock/templates/stock/item_base.html:487
#: stock/templates/stock/item_notes.html:26
msgid "Save"
msgstr ""
@@ -1237,7 +1313,7 @@ msgstr ""
msgid "Maximum output quantity is "
msgstr ""
-#: build/views.py:184 stock/models.py:969 stock/views.py:1789
+#: build/views.py:184 stock/views.py:1821
msgid "Serial numbers already exist"
msgstr ""
@@ -1354,372 +1430,405 @@ msgstr ""
msgid "Add Build Order Attachment"
msgstr ""
-#: build/views.py:1083 order/views.py:110 order/views.py:162 part/views.py:172
+#: build/views.py:1083 order/views.py:115 order/views.py:167 part/views.py:172
#: stock/views.py:277
msgid "Added attachment"
msgstr ""
-#: build/views.py:1119 order/views.py:189 order/views.py:210
+#: build/views.py:1119 order/views.py:194 order/views.py:215
msgid "Edit Attachment"
msgstr ""
-#: build/views.py:1129 order/views.py:193 order/views.py:214
+#: build/views.py:1129 order/views.py:198 order/views.py:219
msgid "Attachment updated"
msgstr ""
-#: build/views.py:1139 order/views.py:229 order/views.py:243
+#: build/views.py:1139 order/views.py:234 order/views.py:248
msgid "Delete Attachment"
msgstr ""
-#: build/views.py:1144 order/views.py:235 order/views.py:249 stock/views.py:333
+#: build/views.py:1144 order/views.py:240 order/views.py:254 stock/views.py:333
msgid "Deleted attachment"
msgstr ""
-#: common/models.py:56
-msgid "InvenTree Instance Name"
+#: common/files.py:64
+msgid "Unsupported file format: {ext.upper()}"
+msgstr ""
+
+#: common/files.py:69
+msgid "Error reading file (invalid format)"
+msgstr ""
+
+#: common/files.py:71
+msgid "Error reading file (incorrect dimension)"
+msgstr ""
+
+#: common/files.py:73
+msgid "Error reading file (data could be corrupted)"
+msgstr ""
+
+#: common/forms.py:38 templates/attachment_table.html:15
+msgid "File"
+msgstr ""
+
+#: common/forms.py:39
+msgid "Select file to upload"
+msgstr ""
+
+#: common/forms.py:54
+msgid "{name.title()} File"
+msgstr ""
+
+#: common/forms.py:55
+#, python-brace-format
+msgid "Select {name} file to upload"
msgstr ""
#: common/models.py:58
+msgid "InvenTree Instance Name"
+msgstr ""
+
+#: common/models.py:60
msgid "String descriptor for the server instance"
msgstr ""
-#: common/models.py:62
+#: common/models.py:64
msgid "Use instance name"
msgstr ""
-#: common/models.py:63
+#: common/models.py:65
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:69 company/models.py:97 company/models.py:98
+#: common/models.py:71 company/models.py:94 company/models.py:95
msgid "Company name"
msgstr ""
-#: common/models.py:70
+#: common/models.py:72
msgid "Internal company name"
msgstr ""
-#: common/models.py:75
+#: common/models.py:77
msgid "Base URL"
msgstr ""
-#: common/models.py:76
+#: common/models.py:78
msgid "Base URL for server instance"
msgstr ""
-#: common/models.py:82
+#: common/models.py:84
msgid "Default Currency"
msgstr ""
-#: common/models.py:83
+#: common/models.py:85
msgid "Default currency"
msgstr ""
-#: common/models.py:89
+#: common/models.py:91
msgid "Download from URL"
msgstr ""
-#: common/models.py:90
+#: common/models.py:92
msgid "Allow download of remote images and files from external URL"
msgstr ""
-#: common/models.py:96
+#: common/models.py:98
msgid "Barcode Support"
msgstr ""
-#: common/models.py:97
+#: common/models.py:99
msgid "Enable barcode scanner support"
msgstr ""
-#: common/models.py:103
+#: common/models.py:105
msgid "IPN Regex"
msgstr ""
-#: common/models.py:104
+#: common/models.py:106
msgid "Regular expression pattern for matching Part IPN"
msgstr ""
-#: common/models.py:108
+#: common/models.py:110
msgid "Allow Duplicate IPN"
msgstr ""
-#: common/models.py:109
+#: common/models.py:111
msgid "Allow multiple parts to share the same IPN"
msgstr ""
-#: common/models.py:115
+#: common/models.py:117
msgid "Allow Editing IPN"
msgstr ""
-#: common/models.py:116
+#: common/models.py:118
msgid "Allow changing the IPN value while editing a part"
msgstr ""
-#: common/models.py:122
+#: common/models.py:124
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:123
+#: common/models.py:125
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:129
+#: common/models.py:131
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:130
+#: common/models.py:132
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:136
+#: common/models.py:138
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:137
+#: common/models.py:139
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:143
+#: common/models.py:145
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:144
+#: common/models.py:146
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:150
+#: common/models.py:152
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:151
+#: common/models.py:153
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:157 part/models.py:2079 part/templates/part/detail.html:160
-#: report/models.py:185 stock/forms.py:259 templates/js/table_filters.js:24
-#: templates/js/table_filters.js:310
+#: common/models.py:159 part/models.py:2117 part/templates/part/detail.html:160
+#: report/models.py:185 stock/forms.py:259 templates/js/table_filters.js:25
+#: templates/js/table_filters.js:311
msgid "Template"
msgstr ""
-#: common/models.py:158
+#: common/models.py:160
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:164 part/models.py:834 part/templates/part/detail.html:170
-#: templates/js/table_filters.js:123 templates/js/table_filters.js:322
+#: common/models.py:166 part/models.py:834 part/templates/part/detail.html:170
+#: templates/js/table_filters.js:124 templates/js/table_filters.js:323
msgid "Assembly"
msgstr ""
-#: common/models.py:165
+#: common/models.py:167
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:171 part/models.py:840 part/templates/part/detail.html:180
-#: templates/js/table_filters.js:326
+#: common/models.py:173 part/models.py:840 part/templates/part/detail.html:180
+#: templates/js/table_filters.js:327
msgid "Component"
msgstr ""
-#: common/models.py:172
+#: common/models.py:174
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:178 part/models.py:851 part/templates/part/detail.html:200
+#: common/models.py:180 part/models.py:851 part/templates/part/detail.html:200
msgid "Purchaseable"
msgstr ""
-#: common/models.py:179
+#: common/models.py:181
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:185 part/models.py:856 part/templates/part/detail.html:210
-#: templates/js/table_filters.js:334
+#: common/models.py:187 part/models.py:856 part/templates/part/detail.html:210
+#: templates/js/table_filters.js:335
msgid "Salable"
msgstr ""
-#: common/models.py:186
+#: common/models.py:188
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:192 part/models.py:846 part/templates/part/detail.html:190
-#: templates/js/table_filters.js:32 templates/js/table_filters.js:338
+#: common/models.py:194 part/models.py:846 part/templates/part/detail.html:190
+#: templates/js/table_filters.js:33 templates/js/table_filters.js:339
msgid "Trackable"
msgstr ""
-#: common/models.py:193
+#: common/models.py:195
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:199 part/models.py:866 part/templates/part/detail.html:150
-#: templates/js/table_filters.js:28
+#: common/models.py:201 part/models.py:866 part/templates/part/detail.html:150
+#: templates/js/table_filters.js:29
msgid "Virtual"
msgstr ""
-#: common/models.py:200
+#: common/models.py:202
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:206
+#: common/models.py:208
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:207
+#: common/models.py:209
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:213
+#: common/models.py:215 templates/stats.html:25
msgid "Debug Mode"
msgstr ""
-#: common/models.py:214
+#: common/models.py:216
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:220
+#: common/models.py:222
msgid "Page Size"
msgstr ""
-#: common/models.py:221
+#: common/models.py:223
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:231
+#: common/models.py:233
msgid "Test Reports"
msgstr ""
-#: common/models.py:232
+#: common/models.py:234
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:238
+#: common/models.py:240
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:239
+#: common/models.py:241
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:245
+#: common/models.py:247
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:246
+#: common/models.py:248
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:252
+#: common/models.py:254
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:253
+#: common/models.py:255
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:255 part/templates/part/detail.html:121
+#: common/models.py:257 part/templates/part/detail.html:121
msgid "days"
msgstr ""
-#: common/models.py:260
+#: common/models.py:262
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:261
+#: common/models.py:263
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:267
+#: common/models.py:269
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:268
+#: common/models.py:270
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:274
+#: common/models.py:276
msgid "Group by Part"
msgstr ""
-#: common/models.py:275
+#: common/models.py:277
msgid "Group stock items by part reference in table views"
msgstr ""
-#: common/models.py:281
+#: common/models.py:283
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:282
+#: common/models.py:284
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:288
+#: common/models.py:290
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:289
+#: common/models.py:291
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:294
+#: common/models.py:296
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:295
+#: common/models.py:297
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:299
+#: common/models.py:301
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:300
+#: common/models.py:302
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:305
+#: common/models.py:307
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:306
+#: common/models.py:308
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:529
+#: common/models.py:531
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:531
+#: common/models.py:533
msgid "Settings value"
msgstr ""
-#: common/models.py:566
+#: common/models.py:568
msgid "Must be an integer value"
msgstr ""
-#: common/models.py:589
+#: common/models.py:591
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:600
+#: common/models.py:602
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:623
+#: common/models.py:625
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:704 company/forms.py:177
+#: common/models.py:706 company/forms.py:177
msgid "Price break quantity"
msgstr ""
-#: common/models.py:712 company/templates/company/supplier_part_pricing.html:82
+#: common/models.py:714 company/templates/company/supplier_part_pricing.html:82
#: part/templates/part/sale_prices.html:90 templates/js/bom.js:255
msgid "Price"
msgstr ""
-#: common/models.py:713
+#: common/models.py:715
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:736
+#: common/models.py:804
msgid "Default"
msgstr ""
@@ -1727,24 +1836,42 @@ msgstr ""
msgid "Current value"
msgstr ""
-#: common/views.py:25
+#: common/views.py:32
msgid "Change Setting"
msgstr ""
-#: common/views.py:94
+#: common/views.py:101
msgid "Supplied value is not allowed"
msgstr ""
-#: common/views.py:103
+#: common/views.py:110
msgid "Supplied value must be a boolean"
msgstr ""
-#: company/forms.py:38 company/models.py:145
+#: common/views.py:184 order/templates/order/order_wizard/po_upload.html:42
+#: order/views.py:582 part/templates/part/bom_upload/upload_file.html:27
+msgid "Upload File"
+msgstr ""
+
+#: common/views.py:185 order/templates/order/order_wizard/match_fields.html:52
+#: order/views.py:583 part/templates/part/bom_upload/select_fields.html:58
+msgid "Match Fields"
+msgstr ""
+
+#: common/views.py:186
+msgid "Match Items"
+msgstr ""
+
+#: common/views.py:479
+msgid "Fields matching failed"
+msgstr ""
+
+#: company/forms.py:38 company/models.py:142
#: company/templates/company/detail.html:42
msgid "Currency"
msgstr ""
-#: company/forms.py:39 company/models.py:147
+#: company/forms.py:39 company/models.py:144
msgid "Default currency used for this company"
msgstr ""
@@ -1764,216 +1891,216 @@ msgstr ""
msgid "Single quantity price"
msgstr ""
-#: company/forms.py:128 company/models.py:324
+#: company/forms.py:128 company/models.py:321
msgid "Select manufacturer"
msgstr ""
-#: company/forms.py:134 company/models.py:331
+#: company/forms.py:134 company/models.py:328
msgid "Manufacturer Part Number"
msgstr ""
-#: company/forms.py:136 company/models.py:330
+#: company/forms.py:136 company/models.py:327
#: company/templates/company/manufacturer_part_base.html:89
#: company/templates/company/manufacturer_part_detail.html:26
-#: company/templates/company/supplier_part_base.html:101
+#: company/templates/company/supplier_part_base.html:102
#: company/templates/company/supplier_part_detail.html:35
#: order/templates/order/purchase_order_detail.html:158 part/bom.py:171
#: part/bom.py:242 templates/js/company.js:181 templates/js/company.js:307
msgid "MPN"
msgstr ""
-#: company/models.py:102
+#: company/models.py:99
msgid "Company description"
msgstr ""
-#: company/models.py:103
+#: company/models.py:100
msgid "Description of the company"
msgstr ""
-#: company/models.py:107 company/templates/company/company_base.html:70
+#: company/models.py:104 company/templates/company/company_base.html:70
#: company/templates/company/detail.html:33 templates/js/company.js:60
msgid "Website"
msgstr ""
-#: company/models.py:107
+#: company/models.py:104
msgid "Company website URL"
msgstr ""
-#: company/models.py:110 company/templates/company/company_base.html:77
+#: company/models.py:107 company/templates/company/company_base.html:77
msgid "Address"
msgstr ""
-#: company/models.py:111
+#: company/models.py:108
msgid "Company address"
msgstr ""
-#: company/models.py:114
+#: company/models.py:111
msgid "Phone number"
msgstr ""
-#: company/models.py:115
+#: company/models.py:112
msgid "Contact phone number"
msgstr ""
-#: company/models.py:118 company/templates/company/company_base.html:91
+#: company/models.py:115 company/templates/company/company_base.html:91
msgid "Email"
msgstr ""
-#: company/models.py:118
+#: company/models.py:115
msgid "Contact email address"
msgstr ""
-#: company/models.py:121 company/templates/company/company_base.html:98
+#: company/models.py:118 company/templates/company/company_base.html:98
msgid "Contact"
msgstr ""
-#: company/models.py:122
+#: company/models.py:119
msgid "Point of contact"
msgstr ""
-#: company/models.py:124 company/models.py:336 company/models.py:488
+#: company/models.py:121 company/models.py:333 company/models.py:485
#: order/models.py:103 part/models.py:743
#: report/templates/report/inventree_build_order_base.html:165
-#: stock/models.py:1560 templates/js/company.js:188 templates/js/company.js:318
+#: templates/js/company.js:188 templates/js/company.js:318
#: templates/js/part.js:431
msgid "Link"
msgstr ""
-#: company/models.py:124
+#: company/models.py:121
msgid "Link to external company information"
msgstr ""
-#: company/models.py:132 part/models.py:753
+#: company/models.py:129 part/models.py:753
msgid "Image"
msgstr ""
-#: company/models.py:137
+#: company/models.py:134
msgid "is customer"
msgstr ""
-#: company/models.py:137
+#: company/models.py:134
msgid "Do you sell items to this company?"
msgstr ""
-#: company/models.py:139
+#: company/models.py:136
msgid "is supplier"
msgstr ""
-#: company/models.py:139
+#: company/models.py:136
msgid "Do you purchase items from this company?"
msgstr ""
-#: company/models.py:141
+#: company/models.py:138
msgid "is manufacturer"
msgstr ""
-#: company/models.py:141
+#: company/models.py:138
msgid "Does this company manufacture parts?"
msgstr ""
-#: company/models.py:308 company/models.py:459 stock/models.py:373
-#: stock/templates/stock/item_base.html:224
+#: company/models.py:305 company/models.py:456 stock/models.py:405
+#: stock/templates/stock/item_base.html:230
msgid "Base Part"
msgstr ""
-#: company/models.py:312 company/models.py:463 order/views.py:1384
+#: company/models.py:309 company/models.py:460 order/views.py:1587
msgid "Select part"
msgstr ""
-#: company/models.py:323 company/templates/company/detail.html:57
+#: company/models.py:320 company/templates/company/detail.html:57
#: company/templates/company/manufacturer_part_base.html:85
#: company/templates/company/manufacturer_part_detail.html:25
#: company/templates/company/supplier_part_base.html:94
#: company/templates/company/supplier_part_detail.html:34 part/bom.py:170
-#: part/bom.py:241 stock/templates/stock/item_base.html:341
+#: part/bom.py:241 stock/templates/stock/item_base.html:347
#: templates/js/company.js:44 templates/js/company.js:165
#: templates/js/company.js:289
msgid "Manufacturer"
msgstr ""
-#: company/models.py:337
+#: company/models.py:334
msgid "URL for external manufacturer part link"
msgstr ""
-#: company/models.py:343
+#: company/models.py:340
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:469 company/templates/company/detail.html:62
+#: company/models.py:466 company/templates/company/detail.html:62
#: company/templates/company/supplier_part_base.html:84
#: company/templates/company/supplier_part_detail.html:25 order/models.py:190
#: order/templates/order/order_base.html:92
#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:175
-#: part/bom.py:286 stock/templates/stock/item_base.html:353
+#: part/bom.py:286 stock/templates/stock/item_base.html:359
#: templates/js/company.js:48 templates/js/company.js:263
#: templates/js/order.js:170
msgid "Supplier"
msgstr ""
-#: company/models.py:470
+#: company/models.py:467
msgid "Select supplier"
msgstr ""
-#: company/models.py:475 company/templates/company/supplier_part_base.html:88
+#: company/models.py:472 company/templates/company/supplier_part_base.html:88
#: company/templates/company/supplier_part_detail.html:26
#: order/templates/order/purchase_order_detail.html:149 part/bom.py:176
#: part/bom.py:287
msgid "SKU"
msgstr ""
-#: company/models.py:476
+#: company/models.py:473
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:482
+#: company/models.py:479
#: company/templates/company/manufacturer_part_base.html:6
#: company/templates/company/manufacturer_part_base.html:19
-#: stock/templates/stock/item_base.html:346
+#: stock/templates/stock/item_base.html:352
msgid "Manufacturer Part"
msgstr ""
-#: company/models.py:483
+#: company/models.py:480
msgid "Select manufacturer part"
msgstr ""
-#: company/models.py:489
+#: company/models.py:486
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:495
+#: company/models.py:492
msgid "Supplier part description"
msgstr ""
-#: company/models.py:500 company/templates/company/supplier_part_base.html:115
-#: company/templates/company/supplier_part_detail.html:38 part/models.py:2190
+#: company/models.py:497 company/templates/company/supplier_part_base.html:116
+#: company/templates/company/supplier_part_detail.html:38 part/models.py:2228
#: report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr ""
-#: company/models.py:504
+#: company/models.py:501 part/models.py:1614
msgid "base cost"
msgstr ""
-#: company/models.py:504
+#: company/models.py:501 part/models.py:1614
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:506 company/templates/company/supplier_part_base.html:108
-#: stock/models.py:397 stock/templates/stock/item_base.html:299
+#: company/models.py:503 company/templates/company/supplier_part_base.html:109
+#: stock/models.py:429 stock/templates/stock/item_base.html:305
#: templates/js/stock.js:667
msgid "Packaging"
msgstr ""
-#: company/models.py:506
+#: company/models.py:503
msgid "Part packaging"
msgstr ""
-#: company/models.py:508
+#: company/models.py:505 part/models.py:1616
msgid "multiple"
msgstr ""
-#: company/models.py:508
+#: company/models.py:505
msgid "Order multiple"
msgstr ""
@@ -1999,7 +2126,7 @@ msgstr ""
msgid "Download image from URL"
msgstr ""
-#: company/templates/company/company_base.html:46 order/views.py:306
+#: company/templates/company/company_base.html:46 order/views.py:311
msgid "Create Purchase Order"
msgstr ""
@@ -2045,10 +2172,11 @@ msgstr ""
msgid "Uses default currency"
msgstr ""
-#: company/templates/company/detail.html:67 order/models.py:450
-#: order/templates/order/sales_order_base.html:92 stock/models.py:415
-#: stock/models.py:416 stock/templates/stock/item_base.html:251
+#: company/templates/company/detail.html:67 order/models.py:461
+#: order/templates/order/sales_order_base.html:92 stock/models.py:447
+#: stock/models.py:448 stock/templates/stock/item_base.html:257
#: templates/js/company.js:40 templates/js/order.js:267
+#: templates/js/stock.js:1064
msgid "Customer"
msgstr ""
@@ -2094,7 +2222,7 @@ msgstr ""
#: company/templates/company/detail_manufacturer_part.html:66
#: company/templates/company/detail_supplier_part.html:66
#: part/templates/part/bom.html:159 part/templates/part/category.html:118
-#: templates/js/stock.js:1157
+#: templates/js/stock.js:1279
msgid "New Part"
msgstr ""
@@ -2141,19 +2269,19 @@ msgstr ""
#: company/templates/company/detail_supplier_part.html:22
#: company/templates/company/manufacturer_part_suppliers.html:17
#: order/templates/order/purchase_order_detail.html:49
-#: part/templates/part/supplier.html:17 templates/js/stock.js:1163
+#: part/templates/part/supplier.html:17 templates/js/stock.js:1285
msgid "New Supplier Part"
msgstr ""
#: company/templates/company/detail_supplier_part.html:72
#: company/templates/company/manufacturer_part_suppliers.html:47
-#: company/views.py:64 order/templates/order/purchase_orders.html:183
+#: company/views.py:64 order/templates/order/purchase_orders.html:185
#: part/templates/part/supplier.html:50
msgid "New Supplier"
msgstr ""
#: company/templates/company/detail_supplier_part.html:73 company/views.py:281
-#: order/templates/order/purchase_orders.html:184
+#: order/templates/order/purchase_orders.html:186
msgid "Create new Supplier"
msgstr ""
@@ -2211,7 +2339,7 @@ msgstr ""
#: company/templates/company/manufacturer_part_navbar.html:22
#: company/templates/company/navbar.html:41
#: company/templates/company/supplier_part_navbar.html:15
-#: part/templates/part/navbar.html:36 stock/api.py:51
+#: part/templates/part/navbar.html:36 stock/api.py:54
#: stock/templates/stock/loc_link.html:7 stock/templates/stock/location.html:36
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/index.html:128 templates/InvenTree/search.html:196
@@ -2264,7 +2392,7 @@ msgstr ""
#: stock/templates/stock/location_navbar.html:22
#: stock/templates/stock/location_navbar.html:29
#: templates/InvenTree/search.html:198 templates/js/stock.js:968
-#: templates/stats.html:72 templates/stats.html:81 users/models.py:42
+#: templates/stats.html:93 templates/stats.html:102 users/models.py:42
msgid "Stock Items"
msgstr ""
@@ -2319,8 +2447,8 @@ msgid "New Sales Order"
msgstr ""
#: company/templates/company/supplier_part_base.html:7
-#: company/templates/company/supplier_part_base.html:20 stock/models.py:382
-#: stock/templates/stock/item_base.html:358 templates/js/company.js:279
+#: company/templates/company/supplier_part_base.html:20 stock/models.py:414
+#: stock/templates/stock/item_base.html:364 templates/js/company.js:279
msgid "Supplier Part"
msgstr ""
@@ -2369,7 +2497,7 @@ msgid "Pricing Information"
msgstr ""
#: company/templates/company/supplier_part_pricing.html:19 company/views.py:794
-#: part/templates/part/sale_prices.html:17 part/views.py:2636
+#: part/templates/part/sale_prices.html:17 part/views.py:2644
msgid "Add Price Break"
msgstr ""
@@ -2399,7 +2527,7 @@ msgstr ""
msgid "Customers"
msgstr ""
-#: company/views.py:78 order/templates/order/sales_orders.html:185
+#: company/views.py:78 order/templates/order/sales_orders.html:187
msgid "New Customer"
msgstr ""
@@ -2419,6 +2547,11 @@ msgstr ""
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
+#: company/views.py:205 part/views.py:887
+#, python-brace-format
+msgid "Invalid response: {code}"
+msgstr ""
+
#: company/views.py:214 part/views.py:896
msgid "Supplied URL is not a valid image file"
msgstr ""
@@ -2439,7 +2572,7 @@ msgstr ""
msgid "Edited company information"
msgstr ""
-#: company/views.py:287 order/templates/order/sales_orders.html:186
+#: company/views.py:287 order/templates/order/sales_orders.html:188
msgid "Create new Customer"
msgstr ""
@@ -2471,7 +2604,7 @@ msgstr ""
msgid "Edit Supplier Part"
msgstr ""
-#: company/views.py:578 templates/js/stock.js:1164
+#: company/views.py:578 templates/js/stock.js:1286
msgid "Create new Supplier Part"
msgstr ""
@@ -2479,15 +2612,15 @@ msgstr ""
msgid "Delete Supplier Part"
msgstr ""
-#: company/views.py:799 part/views.py:2640
+#: company/views.py:799 part/views.py:2648
msgid "Added new price break"
msgstr ""
-#: company/views.py:855 part/views.py:2684
+#: company/views.py:855 part/views.py:2692
msgid "Edit Price Break"
msgstr ""
-#: company/views.py:870 part/views.py:2698
+#: company/views.py:870 part/views.py:2706
msgid "Delete Price Break"
msgstr ""
@@ -2495,51 +2628,59 @@ msgstr ""
msgid "No valid objects provided to template"
msgstr ""
-#: label/models.py:102
+#: label/models.py:103
msgid "Label name"
msgstr ""
-#: label/models.py:109
+#: label/models.py:110
msgid "Label description"
msgstr ""
-#: label/models.py:116 stock/forms.py:202
+#: label/models.py:117 stock/forms.py:202
msgid "Label"
msgstr ""
-#: label/models.py:117
+#: label/models.py:118
msgid "Label template file"
msgstr ""
-#: label/models.py:123 report/models.py:274
+#: label/models.py:124 report/models.py:274
msgid "Enabled"
msgstr ""
-#: label/models.py:124
+#: label/models.py:125
msgid "Label template is enabled"
msgstr ""
-#: label/models.py:129
+#: label/models.py:130
msgid "Width [mm]"
msgstr ""
-#: label/models.py:130
+#: label/models.py:131
msgid "Label width, specified in mm"
msgstr ""
-#: label/models.py:136
+#: label/models.py:137
msgid "Height [mm]"
msgstr ""
-#: label/models.py:137
+#: label/models.py:138
msgid "Label height, specified in mm"
msgstr ""
-#: label/models.py:222 label/models.py:275
+#: label/models.py:144
+msgid "Filename Pattern"
+msgstr ""
+
+#: label/models.py:145
+msgid "Pattern for generating label filenames"
+msgstr ""
+
+#: label/models.py:244 label/models.py:297
msgid "Query filters (comma-separated list of key=value pairs"
msgstr ""
-#: label/models.py:223 label/models.py:276 report/models.py:294
+#: label/models.py:245 label/models.py:298 report/models.py:294
#: report/models.py:415 report/models.py:449
msgid "Filters"
msgstr ""
@@ -2577,15 +2718,15 @@ msgstr ""
msgid "Enter sales order number"
msgstr ""
-#: order/forms.py:145 order/models.py:462
+#: order/forms.py:145 order/models.py:473
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/forms.py:235
+#: order/forms.py:236
msgid "Enter stock item serial numbers"
msgstr ""
-#: order/forms.py:241
+#: order/forms.py:242
msgid "Enter quantity of stock items"
msgstr ""
@@ -2613,7 +2754,7 @@ msgstr ""
msgid "Order notes"
msgstr ""
-#: order/models.py:182 order/models.py:455
+#: order/models.py:182 order/models.py:466
msgid "Purchase order status"
msgstr ""
@@ -2654,8 +2795,8 @@ msgstr ""
msgid "Date order was completed"
msgstr ""
-#: order/models.py:243 part/views.py:1586 stock/models.py:270
-#: stock/models.py:953
+#: order/models.py:243 part/views.py:1586 stock/models.py:302
+#: stock/models.py:1018
msgid "Quantity must be greater than zero"
msgstr ""
@@ -2663,128 +2804,134 @@ msgstr ""
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:344
+#: order/models.py:346
msgid "Lines can only be received against an order marked as 'Placed'"
msgstr ""
-#: order/models.py:348
+#: order/models.py:350
msgid "Quantity must be an integer"
msgstr ""
-#: order/models.py:350
+#: order/models.py:352
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:369
-msgid "Received items"
-msgstr ""
-
-#: order/models.py:451
+#: order/models.py:462
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:457
+#: order/models.py:468
msgid "Customer Reference "
msgstr ""
-#: order/models.py:457
+#: order/models.py:468
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:465 templates/js/order.js:303
+#: order/models.py:476 templates/js/order.js:303
msgid "Shipment Date"
msgstr ""
-#: order/models.py:472
+#: order/models.py:483
msgid "shipped by"
msgstr ""
-#: order/models.py:516
+#: order/models.py:527
msgid "SalesOrder cannot be shipped as it is not currently pending"
msgstr ""
-#: order/models.py:603
+#: order/models.py:614
msgid "Item quantity"
msgstr ""
-#: order/models.py:605
+#: order/models.py:616
msgid "Line item reference"
msgstr ""
-#: order/models.py:607
+#: order/models.py:618
msgid "Line item notes"
msgstr ""
-#: order/models.py:633 order/models.py:677
+#: order/models.py:644 order/models.py:689
#: part/templates/part/allocation.html:17
#: part/templates/part/allocation.html:45
msgid "Order"
msgstr ""
-#: order/models.py:634 order/templates/order/order_base.html:9
+#: order/models.py:645 order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:24
#: report/templates/report/inventree_po_report.html:77
-#: stock/templates/stock/item_base.html:313 templates/js/order.js:148
+#: stock/templates/stock/item_base.html:319 templates/js/order.js:148
+#: templates/js/stock.js:1045
msgid "Purchase Order"
msgstr ""
-#: order/models.py:648
+#: order/models.py:659
msgid "Supplier part"
msgstr ""
-#: order/models.py:651 order/templates/order/order_base.html:131
+#: order/models.py:662 order/templates/order/order_base.html:131
#: order/templates/order/purchase_order_detail.html:189
#: order/templates/order/receive_parts.html:22
#: order/templates/order/sales_order_base.html:131
msgid "Received"
msgstr ""
-#: order/models.py:651
+#: order/models.py:662
msgid "Number of items received"
msgstr ""
-#: order/models.py:658 stock/models.py:508
-#: stock/templates/stock/item_base.html:320
+#: order/models.py:669 stock/models.py:540
+#: stock/templates/stock/item_base.html:326
msgid "Purchase Price"
msgstr ""
-#: order/models.py:659
+#: order/models.py:670
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:753 order/models.py:755
+#: order/models.py:698 part/templates/part/navbar.html:95
+#: part/templates/part/part_pricing.html:78
+msgid "Sale Price"
+msgstr ""
+
+#: order/models.py:699
+msgid "Unit sale price"
+msgstr ""
+
+#: order/models.py:774 order/models.py:776
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:759
+#: order/models.py:780
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:761
+#: order/models.py:782
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:764
+#: order/models.py:785
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:774
+#: order/models.py:795
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:779
+#: order/models.py:800
msgid "Line"
msgstr ""
-#: order/models.py:790
+#: order/models.py:811
msgid "Item"
msgstr ""
-#: order/models.py:791
+#: order/models.py:812
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:794
+#: order/models.py:815
msgid "Enter stock allocation quantity"
msgstr ""
@@ -2836,7 +2983,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:100
#: part/templates/part/category.html:185 part/templates/part/category.html:227
#: stock/templates/stock/location.html:191 templates/js/stock.js:708
-#: templates/js/stock.js:1169
+#: templates/js/stock.js:1291
msgid "New Location"
msgstr ""
@@ -2870,6 +3017,75 @@ msgstr ""
msgid "Order Notes"
msgstr ""
+#: order/templates/order/order_wizard/match_fields.html:9
+#: part/templates/part/bom_upload/select_fields.html:21
+msgid "Missing selections for the following required columns"
+msgstr ""
+
+#: order/templates/order/order_wizard/match_fields.html:20
+msgid "Duplicate selections found, see below. Fix them then retry submitting."
+msgstr ""
+
+#: order/templates/order/order_wizard/match_fields.html:27
+#: order/templates/order/order_wizard/match_parts.html:18
+#: order/templates/order/order_wizard/po_upload.html:40
+msgid "Previous Step"
+msgstr ""
+
+#: order/templates/order/order_wizard/match_fields.html:29
+#: order/templates/order/order_wizard/match_parts.html:20
+#: part/templates/part/bom_upload/select_fields.html:32
+msgid "Submit Selections"
+msgstr ""
+
+#: order/templates/order/order_wizard/match_fields.html:35
+#: part/templates/part/bom_upload/select_fields.html:41
+msgid "File Fields"
+msgstr ""
+
+#: order/templates/order/order_wizard/match_fields.html:42
+#: part/templates/part/bom_upload/select_fields.html:47
+msgid "Remove column"
+msgstr ""
+
+#: order/templates/order/order_wizard/match_fields.html:60
+msgid "Duplicate selection"
+msgstr ""
+
+#: order/templates/order/order_wizard/match_fields.html:71
+#: order/templates/order/order_wizard/match_parts.html:51
+#: part/templates/part/bom_upload/select_fields.html:76
+#: part/templates/part/bom_upload/select_parts.html:58
+msgid "Remove row"
+msgstr ""
+
+#: order/templates/order/order_wizard/match_parts.html:11
+#: part/templates/part/bom_upload/select_parts.html:21
+msgid "Errors exist in the submitted data"
+msgstr ""
+
+#: order/templates/order/order_wizard/match_parts.html:27
+#: part/templates/part/bom_upload/select_parts.html:39
+msgid "Row"
+msgstr ""
+
+#: order/templates/order/order_wizard/match_parts.html:28
+msgid "Select Supplier Part"
+msgstr ""
+
+#: order/templates/order/order_wizard/po_upload.html:11
+msgid "Upload File for Purchase Order"
+msgstr ""
+
+#: order/templates/order/order_wizard/po_upload.html:18
+#, python-format
+msgid "Step %(step)s of %(count)s"
+msgstr ""
+
+#: order/templates/order/order_wizard/po_upload.html:48
+msgid "Order is already processed. Files cannot be uploaded."
+msgstr ""
+
#: order/templates/order/order_wizard/select_parts.html:9
msgid "Step 1 of 2 - Select Part Suppliers"
msgstr ""
@@ -2942,8 +3158,8 @@ msgid "Purchase Order Items"
msgstr ""
#: order/templates/order/purchase_order_detail.html:24
-#: order/templates/order/sales_order_detail.html:22 order/views.py:1120
-#: order/views.py:1203
+#: order/templates/order/sales_order_detail.html:22 order/views.py:1311
+#: order/views.py:1394
msgid "Add Line Item"
msgstr ""
@@ -2952,11 +3168,12 @@ msgid "No line items found"
msgstr ""
#: order/templates/order/purchase_order_detail.html:180
+#: order/templates/order/sales_order_detail.html:235
msgid "Unit Price"
msgstr ""
#: order/templates/order/purchase_order_detail.html:221
-#: order/templates/order/sales_order_detail.html:294
+#: order/templates/order/sales_order_detail.html:328
msgid "Edit line item"
msgstr ""
@@ -2986,7 +3203,7 @@ msgstr ""
#: part/templates/part/category_partlist.html:10
#: templates/InvenTree/index.html:97 templates/InvenTree/search.html:114
#: templates/InvenTree/settings/tabs.html:25 templates/js/part.js:577
-#: templates/navbar.html:23 templates/stats.html:59 templates/stats.html:68
+#: templates/navbar.html:23 templates/stats.html:80 templates/stats.html:89
#: users/models.py:40
msgid "Parts"
msgstr ""
@@ -3048,59 +3265,72 @@ msgstr ""
msgid "Sales Order Items"
msgstr ""
-#: order/templates/order/sales_order_detail.html:92 templates/js/bom.js:342
+#: order/templates/order/sales_order_detail.html:95 templates/js/bom.js:342
#: templates/js/build.js:627 templates/js/build.js:1044
msgid "Actions"
msgstr ""
-#: order/templates/order/sales_order_detail.html:99 templates/js/build.js:515
+#: order/templates/order/sales_order_detail.html:102 templates/js/build.js:515
#: templates/js/build.js:849
msgid "Edit stock allocation"
msgstr ""
-#: order/templates/order/sales_order_detail.html:100 templates/js/build.js:517
+#: order/templates/order/sales_order_detail.html:103 templates/js/build.js:517
#: templates/js/build.js:850
msgid "Delete stock allocation"
msgstr ""
-#: order/templates/order/sales_order_detail.html:170
+#: order/templates/order/sales_order_detail.html:176
msgid "No matching line items"
msgstr ""
-#: order/templates/order/sales_order_detail.html:199
+#: order/templates/order/sales_order_detail.html:205
msgid "ID"
msgstr ""
-#: order/templates/order/sales_order_detail.html:229 templates/js/build.js:579
+#: order/templates/order/sales_order_detail.html:243 templates/js/build.js:579
#: templates/js/build.js:845
msgid "Allocated"
msgstr ""
-#: order/templates/order/sales_order_detail.html:231
+#: order/templates/order/sales_order_detail.html:245
msgid "Fulfilled"
msgstr ""
-#: order/templates/order/sales_order_detail.html:279
+#: order/templates/order/sales_order_detail.html:282
+msgid "PO"
+msgstr ""
+
+#: order/templates/order/sales_order_detail.html:312
msgid "Allocate serial numbers"
msgstr ""
-#: order/templates/order/sales_order_detail.html:282 templates/js/build.js:641
+#: order/templates/order/sales_order_detail.html:315 templates/js/build.js:641
msgid "Allocate stock"
msgstr ""
-#: order/templates/order/sales_order_detail.html:285
+#: order/templates/order/sales_order_detail.html:318
msgid "Purchase stock"
msgstr ""
-#: order/templates/order/sales_order_detail.html:289 templates/js/build.js:634
+#: order/templates/order/sales_order_detail.html:322 templates/js/build.js:634
#: templates/js/build.js:1052
msgid "Build stock"
msgstr ""
-#: order/templates/order/sales_order_detail.html:295
+#: order/templates/order/sales_order_detail.html:325
+#: order/templates/order/sales_order_detail.html:434
+msgid "Calculate price"
+msgstr ""
+
+#: order/templates/order/sales_order_detail.html:329
msgid "Delete line item "
msgstr ""
+#: order/templates/order/sales_order_detail.html:440
+msgid "Update Unit Price"
+msgstr ""
+
#: order/templates/order/sales_order_notes.html:14
msgid "Sales Order Notes"
msgstr ""
@@ -3142,164 +3372,189 @@ msgstr ""
msgid "Are you sure you wish to delete this line item?"
msgstr ""
-#: order/views.py:99
+#: order/views.py:104
msgid "Add Purchase Order Attachment"
msgstr ""
-#: order/views.py:149
+#: order/views.py:154
msgid "Add Sales Order Attachment"
msgstr ""
-#: order/views.py:341
+#: order/views.py:346
msgid "Create Sales Order"
msgstr ""
-#: order/views.py:376
+#: order/views.py:381
msgid "Edit Purchase Order"
msgstr ""
-#: order/views.py:396
+#: order/views.py:401
msgid "Edit Sales Order"
msgstr ""
-#: order/views.py:412
+#: order/views.py:417
msgid "Cancel Order"
msgstr ""
-#: order/views.py:421 order/views.py:447
+#: order/views.py:426 order/views.py:452
msgid "Confirm order cancellation"
msgstr ""
-#: order/views.py:424 order/views.py:450
+#: order/views.py:429 order/views.py:455
msgid "Order cannot be cancelled"
msgstr ""
-#: order/views.py:438
+#: order/views.py:443
msgid "Cancel sales order"
msgstr ""
-#: order/views.py:464
+#: order/views.py:469
msgid "Issue Order"
msgstr ""
-#: order/views.py:473
+#: order/views.py:478
msgid "Confirm order placement"
msgstr ""
-#: order/views.py:483
+#: order/views.py:488
msgid "Purchase order issued"
msgstr ""
-#: order/views.py:494
+#: order/views.py:499
msgid "Complete Order"
msgstr ""
-#: order/views.py:510
+#: order/views.py:515
msgid "Confirm order completion"
msgstr ""
-#: order/views.py:521
+#: order/views.py:526
msgid "Purchase order completed"
msgstr ""
-#: order/views.py:531
+#: order/views.py:536
msgid "Ship Order"
msgstr ""
-#: order/views.py:547
+#: order/views.py:552
msgid "Confirm order shipment"
msgstr ""
-#: order/views.py:553
+#: order/views.py:558
msgid "Could not ship order"
msgstr ""
-#: order/views.py:607
+#: order/views.py:584
+msgid "Match Supplier Parts"
+msgstr ""
+
+#: order/views.py:798
msgid "Receive Parts"
msgstr ""
-#: order/views.py:677
+#: order/views.py:868
msgid "Items received"
msgstr ""
-#: order/views.py:691
+#: order/views.py:882
msgid "No destination set"
msgstr ""
-#: order/views.py:736
+#: order/views.py:927
msgid "Error converting quantity to number"
msgstr ""
-#: order/views.py:742
+#: order/views.py:933
msgid "Receive quantity less than zero"
msgstr ""
-#: order/views.py:748
+#: order/views.py:939
msgid "No lines specified"
msgstr ""
-#: order/views.py:1069
+#: order/views.py:1260
#, python-brace-format
msgid "Ordered {n} parts"
msgstr ""
-#: order/views.py:1129
+#: order/views.py:1320
msgid "Supplier part must be specified"
msgstr ""
-#: order/views.py:1135
+#: order/views.py:1326
msgid "Supplier must match for Part and Order"
msgstr ""
-#: order/views.py:1254 order/views.py:1272
+#: order/views.py:1457 order/views.py:1475
msgid "Edit Line Item"
msgstr ""
-#: order/views.py:1288 order/views.py:1300
+#: order/views.py:1491 order/views.py:1503
msgid "Delete Line Item"
msgstr ""
-#: order/views.py:1293 order/views.py:1305
+#: order/views.py:1496 order/views.py:1508
msgid "Deleted line item"
msgstr ""
-#: order/views.py:1318
+#: order/views.py:1521
msgid "Allocate Serial Numbers"
msgstr ""
-#: order/views.py:1363
+#: order/views.py:1566
#, python-brace-format
msgid "Allocated {n} items"
msgstr ""
-#: order/views.py:1379
+#: order/views.py:1582
msgid "Select line item"
msgstr ""
-#: order/views.py:1410
-msgid "No matching item for serial"
+#: order/views.py:1613
+#, python-brace-format
+msgid "No matching item for serial {serial}"
msgstr ""
-#: order/views.py:1420
-msgid "is not in stock"
+#: order/views.py:1623
+#, python-brace-format
+msgid "{serial} is not in stock"
msgstr ""
-#: order/views.py:1428
-msgid "already allocated to an order"
+#: order/views.py:1631
+#, python-brace-format
+msgid "{serial} already allocated to an order"
msgstr ""
-#: order/views.py:1482
+#: order/views.py:1685
msgid "Allocate Stock to Order"
msgstr ""
-#: order/views.py:1556
+#: order/views.py:1759
msgid "Edit Allocation Quantity"
msgstr ""
-#: order/views.py:1571
+#: order/views.py:1774
msgid "Remove allocation"
msgstr ""
+#: order/views.py:1846
+msgid "Sales order not found"
+msgstr ""
+
+#: order/views.py:1852
+msgid "Price not found"
+msgstr ""
+
+#: order/views.py:1855
+#, python-brace-format
+msgid "Updated {part} unit-price to {price}"
+msgstr ""
+
+#: order/views.py:1860
+#, python-brace-format
+msgid "Updated {part} unit-price to {price} and quantity to {qty}"
+msgstr ""
+
#: part/bom.py:138 part/models.py:72 part/models.py:762
#: part/templates/part/category.html:66 part/templates/part/detail.html:90
msgid "Default Location"
@@ -3378,7 +3633,7 @@ msgstr ""
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:122 part/models.py:2077
+#: part/forms.py:122 part/models.py:2115
msgid "Parent Part"
msgstr ""
@@ -3454,7 +3709,7 @@ msgstr ""
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:344 part/models.py:2171
+#: part/forms.py:344 part/models.py:2209
msgid "Sub part"
msgstr ""
@@ -3474,14 +3729,14 @@ msgstr ""
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:82 part/models.py:2123
+#: part/models.py:82 part/models.py:2161
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
#: part/models.py:83 part/templates/part/category.html:23
#: part/templates/part/category.html:94 part/templates/part/category.html:141
-#: templates/InvenTree/search.html:127 templates/stats.html:63
+#: templates/InvenTree/search.html:127 templates/stats.html:84
#: users/models.py:39
msgid "Part Categories"
msgstr ""
@@ -3544,7 +3799,7 @@ msgstr ""
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:724 part/models.py:2122 part/templates/part/detail.html:73
+#: part/models.py:724 part/models.py:2160 part/templates/part/detail.html:73
#: part/templates/part/set_category.html:15 templates/js/part.js:385
msgid "Category"
msgstr ""
@@ -3599,7 +3854,7 @@ msgstr ""
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:828 part/models.py:2051 part/templates/part/detail.html:106
+#: part/models.py:828 part/models.py:2089 part/templates/part/detail.html:106
#: part/templates/part/params.html:29
msgid "Units"
msgstr ""
@@ -3629,8 +3884,8 @@ msgid "Can this part be sold to customers?"
msgstr ""
#: part/models.py:861 part/templates/part/detail.html:227
-#: templates/js/table_filters.js:20 templates/js/table_filters.js:60
-#: templates/js/table_filters.js:236 templates/js/table_filters.js:305
+#: templates/js/table_filters.js:21 templates/js/table_filters.js:61
+#: templates/js/table_filters.js:237 templates/js/table_filters.js:306
msgid "Active"
msgstr ""
@@ -3666,167 +3921,171 @@ msgstr ""
msgid "Creation User"
msgstr ""
-#: part/models.py:1949
-msgid "Test templates can only be created for trackable parts"
-msgstr ""
-
-#: part/models.py:1966
-msgid "Test with this name already exists for this part"
-msgstr ""
-
-#: part/models.py:1986 templates/js/part.js:638 templates/js/stock.js:104
-msgid "Test Name"
+#: part/models.py:1616
+msgid "Sell multiple"
msgstr ""
#: part/models.py:1987
+msgid "Test templates can only be created for trackable parts"
+msgstr ""
+
+#: part/models.py:2004
+msgid "Test with this name already exists for this part"
+msgstr ""
+
+#: part/models.py:2024 templates/js/part.js:638 templates/js/stock.js:104
+msgid "Test Name"
+msgstr ""
+
+#: part/models.py:2025
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:1992
+#: part/models.py:2030
msgid "Test Description"
msgstr ""
-#: part/models.py:1993
+#: part/models.py:2031
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:1998 templates/js/part.js:647
-#: templates/js/table_filters.js:222
+#: part/models.py:2036 templates/js/part.js:647
+#: templates/js/table_filters.js:223
msgid "Required"
msgstr ""
-#: part/models.py:1999
+#: part/models.py:2037
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2004 templates/js/part.js:655
+#: part/models.py:2042 templates/js/part.js:655
msgid "Requires Value"
msgstr ""
-#: part/models.py:2005
+#: part/models.py:2043
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2010 templates/js/part.js:662
+#: part/models.py:2048 templates/js/part.js:662
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2011
+#: part/models.py:2049
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2044
+#: part/models.py:2082
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2049
+#: part/models.py:2087
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2051
+#: part/models.py:2089
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2079 part/models.py:2128 part/models.py:2129
+#: part/models.py:2117 part/models.py:2166 part/models.py:2167
#: templates/InvenTree/settings/category.html:62
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2081
+#: part/models.py:2119
msgid "Data"
msgstr ""
-#: part/models.py:2081
+#: part/models.py:2119
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2133 templates/InvenTree/settings/category.html:67
+#: part/models.py:2171 templates/InvenTree/settings/category.html:67
msgid "Default Value"
msgstr ""
-#: part/models.py:2134
+#: part/models.py:2172
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2163
+#: part/models.py:2201
msgid "Select parent part"
msgstr ""
-#: part/models.py:2172
+#: part/models.py:2210
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2178
+#: part/models.py:2216
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2180 templates/js/bom.js:216 templates/js/bom.js:269
+#: part/models.py:2218 templates/js/bom.js:216 templates/js/bom.js:269
msgid "Optional"
msgstr ""
-#: part/models.py:2180
+#: part/models.py:2218
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2183
+#: part/models.py:2221
msgid "Overage"
msgstr ""
-#: part/models.py:2184
+#: part/models.py:2222
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2187
+#: part/models.py:2225
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2190
+#: part/models.py:2228
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2192
+#: part/models.py:2230
msgid "Checksum"
msgstr ""
-#: part/models.py:2192
+#: part/models.py:2230
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2196 templates/js/bom.js:279 templates/js/bom.js:286
-#: templates/js/table_filters.js:50
+#: part/models.py:2234 templates/js/bom.js:279 templates/js/bom.js:286
+#: templates/js/table_filters.js:51
msgid "Inherited"
msgstr ""
-#: part/models.py:2197
+#: part/models.py:2235
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2273 part/views.py:1592 part/views.py:1644
-#: stock/models.py:260
+#: part/models.py:2311 part/views.py:1592 part/views.py:1644
+#: stock/models.py:292
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2282 part/models.py:2284
+#: part/models.py:2320 part/models.py:2322
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2287
+#: part/models.py:2325
msgid "BOM Item"
msgstr ""
-#: part/models.py:2404
+#: part/models.py:2442
msgid "Part 1"
msgstr ""
-#: part/models.py:2408
+#: part/models.py:2446
msgid "Part 2"
msgstr ""
-#: part/models.py:2408
+#: part/models.py:2446
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2440
+#: part/models.py:2478
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -3911,7 +4170,7 @@ msgid "All selected BOM items will be deleted"
msgstr ""
#: part/templates/part/bom.html:160 part/views.py:584
-#: templates/js/stock.js:1158
+#: templates/js/stock.js:1280
msgid "Create New Part"
msgstr ""
@@ -3929,51 +4188,18 @@ msgstr ""
msgid "Step 2 - Select Fields"
msgstr ""
-#: part/templates/part/bom_upload/select_fields.html:21
-msgid "Missing selections for the following required columns"
-msgstr ""
-
-#: part/templates/part/bom_upload/select_fields.html:32
-msgid "Submit Selections"
-msgstr ""
-
-#: part/templates/part/bom_upload/select_fields.html:41
-msgid "File Fields"
-msgstr ""
-
-#: part/templates/part/bom_upload/select_fields.html:47
-msgid "Remove column"
-msgstr ""
-
-#: part/templates/part/bom_upload/select_fields.html:58
-msgid "Match Fields"
-msgstr ""
-
#: part/templates/part/bom_upload/select_fields.html:68
msgid "Duplicate column selection"
msgstr ""
-#: part/templates/part/bom_upload/select_fields.html:76
-#: part/templates/part/bom_upload/select_parts.html:58
-msgid "Remove row"
-msgstr ""
-
#: part/templates/part/bom_upload/select_parts.html:16
msgid "Step 3 - Select Parts"
msgstr ""
-#: part/templates/part/bom_upload/select_parts.html:21
-msgid "Errors exist in the submitted data"
-msgstr ""
-
#: part/templates/part/bom_upload/select_parts.html:27
msgid "Submit BOM"
msgstr ""
-#: part/templates/part/bom_upload/select_parts.html:39
-msgid "Row"
-msgstr ""
-
#: part/templates/part/bom_upload/select_parts.html:40
#: part/templates/part/bom_upload/select_parts.html:69
msgid "Select Part"
@@ -4004,10 +4230,6 @@ msgstr ""
msgid "Each part must already exist in the database"
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:27
-msgid "Upload File"
-msgstr ""
-
#: part/templates/part/bom_validate.html:6
#, python-format
msgid "Confirm that the Bill of Materials (BOM) is valid for:
%(part)s"
@@ -4029,7 +4251,7 @@ msgstr ""
msgid "All parts"
msgstr ""
-#: part/templates/part/category.html:29 part/views.py:2282
+#: part/templates/part/category.html:29 part/views.py:2290
msgid "Create new part category"
msgstr ""
@@ -4097,7 +4319,7 @@ msgstr ""
msgid "Create new Part Category"
msgstr ""
-#: part/templates/part/category.html:228 stock/views.py:1359
+#: part/templates/part/category.html:228 stock/views.py:1391
msgid "Create new Stock Location"
msgstr ""
@@ -4288,15 +4510,11 @@ msgstr ""
msgid "Sales Price Information"
msgstr ""
-#: part/templates/part/navbar.html:95
-msgid "Sale Price"
-msgstr ""
-
#: part/templates/part/navbar.html:106 part/templates/part/part_tests.html:10
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/navbar.html:109 stock/templates/stock/item_base.html:398
+#: part/templates/part/navbar.html:109 stock/templates/stock/item_base.html:404
msgid "Tests"
msgstr ""
@@ -4321,7 +4539,7 @@ msgstr ""
#: part/templates/part/params.html:28
#: report/templates/report/inventree_test_report_base.html:90
-#: stock/models.py:1655 templates/InvenTree/settings/header.html:8
+#: stock/models.py:1754 templates/InvenTree/settings/header.html:8
#: templates/js/stock.js:124
msgid "Value"
msgstr ""
@@ -4357,19 +4575,19 @@ msgid "Star this part"
msgstr ""
#: part/templates/part/part_base.html:47
-#: stock/templates/stock/item_base.html:131
+#: stock/templates/stock/item_base.html:137
#: stock/templates/stock/location.html:51
msgid "Barcode actions"
msgstr ""
#: part/templates/part/part_base.html:49
-#: stock/templates/stock/item_base.html:133
+#: stock/templates/stock/item_base.html:139
#: stock/templates/stock/location.html:53 templates/qr_button.html:1
msgid "Show QR Code"
msgstr ""
#: part/templates/part/part_base.html:50
-#: stock/templates/stock/item_base.html:149
+#: stock/templates/stock/item_base.html:155
#: stock/templates/stock/location.html:54
msgid "Print Label"
msgstr ""
@@ -4398,7 +4616,7 @@ msgstr ""
msgid "Delete part"
msgstr ""
-#: part/templates/part/part_base.html:123 templates/js/table_filters.js:156
+#: part/templates/part/part_base.html:123 templates/js/table_filters.js:157
msgid "In Stock"
msgstr ""
@@ -4426,42 +4644,39 @@ msgstr ""
msgid "Calculate"
msgstr ""
-#: part/templates/part/part_pricing.html:8
-#, python-format
-msgid "Pricing information for:
%(part)s."
-msgstr ""
-
-#: part/templates/part/part_pricing.html:23
+#: part/templates/part/part_pricing.html:19
msgid "Supplier Pricing"
msgstr ""
-#: part/templates/part/part_pricing.html:27
-#: part/templates/part/part_pricing.html:53
+#: part/templates/part/part_pricing.html:23
+#: part/templates/part/part_pricing.html:49
+#: part/templates/part/part_pricing.html:81
msgid "Unit Cost"
msgstr ""
-#: part/templates/part/part_pricing.html:33
-#: part/templates/part/part_pricing.html:59
+#: part/templates/part/part_pricing.html:29
+#: part/templates/part/part_pricing.html:55
+#: part/templates/part/part_pricing.html:85
msgid "Total Cost"
msgstr ""
-#: part/templates/part/part_pricing.html:41
+#: part/templates/part/part_pricing.html:37
msgid "No supplier pricing available"
msgstr ""
-#: part/templates/part/part_pricing.html:49
+#: part/templates/part/part_pricing.html:45
msgid "BOM Pricing"
msgstr ""
-#: part/templates/part/part_pricing.html:67
+#: part/templates/part/part_pricing.html:63
msgid "Note: BOM pricing is incomplete for this part"
msgstr ""
-#: part/templates/part/part_pricing.html:74
+#: part/templates/part/part_pricing.html:70
msgid "No BOM pricing available"
msgstr ""
-#: part/templates/part/part_pricing.html:84
+#: part/templates/part/part_pricing.html:94
msgid "No pricing information is available for this part."
msgstr ""
@@ -4570,6 +4785,10 @@ msgstr ""
msgid "New Variant"
msgstr ""
+#: part/templatetags/inventree_extras.py:97
+msgid "Unknown database"
+msgstr ""
+
#: part/views.py:89
msgid "Add Related Part"
msgstr ""
@@ -4719,63 +4938,63 @@ msgstr ""
msgid "Part Pricing"
msgstr ""
-#: part/views.py:2081
+#: part/views.py:2089
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:2091
+#: part/views.py:2099
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:2098
+#: part/views.py:2106
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:2106
+#: part/views.py:2114
msgid "Create Part Parameter"
msgstr ""
-#: part/views.py:2156
+#: part/views.py:2164
msgid "Edit Part Parameter"
msgstr ""
-#: part/views.py:2170
+#: part/views.py:2178
msgid "Delete Part Parameter"
msgstr ""
-#: part/views.py:2230
+#: part/views.py:2238
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:2268
+#: part/views.py:2276
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:2274
+#: part/views.py:2282
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:2326
+#: part/views.py:2334
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:2427
+#: part/views.py:2435
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:2483
+#: part/views.py:2491
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:2502
+#: part/views.py:2510
msgid "Create BOM Item"
msgstr ""
-#: part/views.py:2572
+#: part/views.py:2580
msgid "Edit BOM item"
msgstr ""
-#: part/views.py:2628
+#: part/views.py:2636
msgid "Confim BOM item deletion"
msgstr ""
@@ -4877,17 +5096,17 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:1643
+#: stock/models.py:1742
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:89
-#: stock/models.py:1649
+#: stock/models.py:1748
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:92
-#: templates/js/order.js:195 templates/js/stock.js:986
+#: templates/js/order.js:195 templates/js/stock.js:984
msgid "Date"
msgstr ""
@@ -4899,22 +5118,22 @@ msgstr ""
msgid "Fail"
msgstr ""
-#: stock/api.py:199
+#: stock/api.py:212
#, python-brace-format
msgid "Updated stock for {n} items"
msgstr ""
-#: stock/api.py:268
+#: stock/api.py:281
#, python-brace-format
msgid "Moved {n} parts to {loc}"
msgstr ""
-#: stock/forms.py:114 stock/forms.py:406 stock/models.py:475
-#: stock/templates/stock/item_base.html:365 templates/js/stock.js:656
+#: stock/forms.py:114 stock/forms.py:418 stock/models.py:507
+#: stock/templates/stock/item_base.html:371 templates/js/stock.js:656
msgid "Expiry Date"
msgstr ""
-#: stock/forms.py:115 stock/forms.py:407
+#: stock/forms.py:115 stock/forms.py:419
msgid "Expiration date for this stock item"
msgstr ""
@@ -4942,8 +5161,8 @@ msgstr ""
msgid "Select test report template"
msgstr ""
-#: stock/forms.py:267 templates/js/table_filters.js:70
-#: templates/js/table_filters.js:133
+#: stock/forms.py:267 templates/js/table_filters.js:71
+#: templates/js/table_filters.js:134
msgid "Include sublocations"
msgstr ""
@@ -4999,243 +5218,187 @@ msgstr ""
msgid "Set the destination as the default location for selected parts"
msgstr ""
-#: stock/models.py:54 stock/models.py:513
+#: stock/models.py:54 stock/models.py:545
msgid "Owner"
msgstr ""
-#: stock/models.py:55 stock/models.py:514
+#: stock/models.py:55 stock/models.py:546
msgid "Select Owner"
msgstr ""
-#: stock/models.py:205
-msgid "Created stock item"
-msgstr ""
-
-#: stock/models.py:241
+#: stock/models.py:273
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:277
+#: stock/models.py:309
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:287 stock/models.py:296
+#: stock/models.py:319 stock/models.py:328
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:288
+#: stock/models.py:320
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:310
+#: stock/models.py:342
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:316
+#: stock/models.py:348
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:323
+#: stock/models.py:355
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:365
+#: stock/models.py:397
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:374
+#: stock/models.py:406
msgid "Base part"
msgstr ""
-#: stock/models.py:383
+#: stock/models.py:415
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:388 stock/templates/stock/stock_app_base.html:8
+#: stock/models.py:420 stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:391
+#: stock/models.py:423
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:398
+#: stock/models.py:430
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:403 stock/templates/stock/item_base.html:259
+#: stock/models.py:435 stock/templates/stock/item_base.html:265
msgid "Installed In"
msgstr ""
-#: stock/models.py:406
+#: stock/models.py:438
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:422
+#: stock/models.py:454
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:434
+#: stock/models.py:466
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:438
+#: stock/models.py:470
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:447
+#: stock/models.py:479
msgid "Source Build"
msgstr ""
-#: stock/models.py:449
+#: stock/models.py:481
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:460
+#: stock/models.py:492
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:463
+#: stock/models.py:495
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:469
+#: stock/models.py:501
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:476
+#: stock/models.py:508
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:489
+#: stock/models.py:521
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:489
+#: stock/models.py:521
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:499 stock/templates/stock/item_notes.html:13
+#: stock/models.py:531 stock/templates/stock/item_notes.html:13
#: stock/templates/stock/navbar.html:54
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:509
+#: stock/models.py:541
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:614
-msgid "Assigned to Customer"
-msgstr ""
-
-#: stock/models.py:616
-msgid "Manually assigned to customer"
-msgstr ""
-
-#: stock/models.py:629
-msgid "Returned from customer"
-msgstr ""
-
-#: stock/models.py:631
-msgid "Returned to location"
-msgstr ""
-
-#: stock/models.py:792
-msgid "Installed into stock item"
-msgstr ""
-
-#: stock/models.py:800
-msgid "Installed stock item"
-msgstr ""
-
-#: stock/models.py:824
-msgid "Uninstalled stock item"
-msgstr ""
-
-#: stock/models.py:843
-msgid "Uninstalled into location"
-msgstr ""
-
-#: stock/models.py:944
+#: stock/models.py:1009
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:950
+#: stock/models.py:1015
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:956
+#: stock/models.py:1021
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:959
+#: stock/models.py:1024
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:962
+#: stock/models.py:1027
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:994
-msgid "Add serial number"
-msgstr ""
-
-#: stock/models.py:997
+#: stock/models.py:1034
#, python-brace-format
-msgid "Serialized {n} items"
+msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1075
-msgid "Split from existing stock"
-msgstr ""
-
-#: stock/models.py:1113
+#: stock/models.py:1192
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1556
-msgid "Title"
-msgstr ""
-
-#: stock/models.py:1556
-msgid "Tracking entry title"
-msgstr ""
-
-#: stock/models.py:1558
+#: stock/models.py:1666
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1560
-msgid "Link to external page for further information"
-msgstr ""
-
-#: stock/models.py:1620
+#: stock/models.py:1719
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1626
+#: stock/models.py:1725
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1644
+#: stock/models.py:1743
msgid "Test name"
msgstr ""
-#: stock/models.py:1650 templates/js/table_filters.js:212
+#: stock/models.py:1749 templates/js/table_filters.js:213
msgid "Test result"
msgstr ""
-#: stock/models.py:1656
+#: stock/models.py:1755
msgid "Test output value"
msgstr ""
-#: stock/models.py:1663
+#: stock/models.py:1762
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1669
+#: stock/models.py:1768
msgid "Test notes"
msgstr ""
@@ -5290,134 +5453,134 @@ msgid "This stock item will be automatically deleted when all stock is depleted.
msgstr ""
#: stock/templates/stock/item_base.html:95
-#: stock/templates/stock/item_base.html:369 templates/js/table_filters.js:145
+#: stock/templates/stock/item_base.html:375 templates/js/table_filters.js:146
msgid "Expired"
msgstr ""
-#: stock/templates/stock/item_base.html:99
-#: stock/templates/stock/item_base.html:371 templates/js/table_filters.js:150
+#: stock/templates/stock/item_base.html:105
+#: stock/templates/stock/item_base.html:377 templates/js/table_filters.js:151
msgid "Stale"
msgstr ""
-#: stock/templates/stock/item_base.html:136 templates/js/barcode.js:309
+#: stock/templates/stock/item_base.html:142 templates/js/barcode.js:309
#: templates/js/barcode.js:314
msgid "Unlink Barcode"
msgstr ""
-#: stock/templates/stock/item_base.html:138
+#: stock/templates/stock/item_base.html:144
msgid "Link Barcode"
msgstr ""
-#: stock/templates/stock/item_base.html:140 templates/stock_table.html:31
+#: stock/templates/stock/item_base.html:146 templates/stock_table.html:31
msgid "Scan to Location"
msgstr ""
-#: stock/templates/stock/item_base.html:147
+#: stock/templates/stock/item_base.html:153
msgid "Printing actions"
msgstr ""
-#: stock/templates/stock/item_base.html:151
+#: stock/templates/stock/item_base.html:157
#: stock/templates/stock/item_tests.html:27
msgid "Test Report"
msgstr ""
-#: stock/templates/stock/item_base.html:160
+#: stock/templates/stock/item_base.html:166
msgid "Stock adjustment actions"
msgstr ""
-#: stock/templates/stock/item_base.html:164
+#: stock/templates/stock/item_base.html:170
#: stock/templates/stock/location.html:65 templates/stock_table.html:57
msgid "Count stock"
msgstr ""
-#: stock/templates/stock/item_base.html:167 templates/stock_table.html:55
+#: stock/templates/stock/item_base.html:173 templates/stock_table.html:55
msgid "Add stock"
msgstr ""
-#: stock/templates/stock/item_base.html:170 templates/stock_table.html:56
+#: stock/templates/stock/item_base.html:176 templates/stock_table.html:56
msgid "Remove stock"
msgstr ""
-#: stock/templates/stock/item_base.html:173
+#: stock/templates/stock/item_base.html:179
msgid "Serialize stock"
msgstr ""
-#: stock/templates/stock/item_base.html:177
+#: stock/templates/stock/item_base.html:183
msgid "Transfer stock"
msgstr ""
-#: stock/templates/stock/item_base.html:180
+#: stock/templates/stock/item_base.html:186
msgid "Assign to customer"
msgstr ""
-#: stock/templates/stock/item_base.html:183
+#: stock/templates/stock/item_base.html:189
msgid "Return to stock"
msgstr ""
-#: stock/templates/stock/item_base.html:187 templates/js/stock.js:1299
+#: stock/templates/stock/item_base.html:193 templates/js/stock.js:1421
msgid "Uninstall stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:187
+#: stock/templates/stock/item_base.html:193
msgid "Uninstall"
msgstr ""
-#: stock/templates/stock/item_base.html:196
+#: stock/templates/stock/item_base.html:202
#: stock/templates/stock/location.html:62
msgid "Stock actions"
msgstr ""
-#: stock/templates/stock/item_base.html:199
+#: stock/templates/stock/item_base.html:205
msgid "Convert to variant"
msgstr ""
-#: stock/templates/stock/item_base.html:202
+#: stock/templates/stock/item_base.html:208
msgid "Duplicate stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:204
+#: stock/templates/stock/item_base.html:210
msgid "Edit stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:207
+#: stock/templates/stock/item_base.html:213
msgid "Delete stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:219
+#: stock/templates/stock/item_base.html:225
msgid "Stock Item Details"
msgstr ""
-#: stock/templates/stock/item_base.html:278 templates/js/build.js:498
+#: stock/templates/stock/item_base.html:284 templates/js/build.js:498
msgid "No location set"
msgstr ""
-#: stock/templates/stock/item_base.html:285
+#: stock/templates/stock/item_base.html:291
msgid "Barcode Identifier"
msgstr ""
-#: stock/templates/stock/item_base.html:327
+#: stock/templates/stock/item_base.html:333
msgid "Parent Item"
msgstr ""
-#: stock/templates/stock/item_base.html:369
+#: stock/templates/stock/item_base.html:375
#, python-format
msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:371
+#: stock/templates/stock/item_base.html:377
#, python-format
msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:378 templates/js/stock.js:662
+#: stock/templates/stock/item_base.html:384 templates/js/stock.js:662
msgid "Last Updated"
msgstr ""
-#: stock/templates/stock/item_base.html:383
+#: stock/templates/stock/item_base.html:389
msgid "Last Stocktake"
msgstr ""
-#: stock/templates/stock/item_base.html:387
+#: stock/templates/stock/item_base.html:393
msgid "No stocktake performed"
msgstr ""
@@ -5528,7 +5691,7 @@ msgid "Stock Details"
msgstr ""
#: stock/templates/stock/location.html:117 templates/InvenTree/search.html:279
-#: templates/stats.html:76 users/models.py:41
+#: templates/stats.html:97 users/models.py:41
msgid "Stock Locations"
msgstr ""
@@ -5568,7 +5731,7 @@ msgstr ""
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:1332
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:1364
msgid "Convert Stock Item"
msgstr ""
@@ -5601,8 +5764,8 @@ msgstr ""
msgid "Edit Stock Location"
msgstr ""
-#: stock/views.py:230 stock/views.py:1322 stock/views.py:1433
-#: stock/views.py:1798
+#: stock/views.py:230 stock/views.py:1343 stock/views.py:1465
+#: stock/views.py:1830
msgid "Owner is required (ownership control is enabled)"
msgstr ""
@@ -5768,43 +5931,47 @@ msgstr ""
msgid "Deleted {n} stock items"
msgstr ""
-#: stock/views.py:1224
+#: stock/views.py:1222
+msgid "Edit Stock Item Status"
+msgstr ""
+
+#: stock/views.py:1245
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:1450
+#: stock/views.py:1482
msgid "Serialize Stock"
msgstr ""
-#: stock/views.py:1543 templates/js/build.js:244
+#: stock/views.py:1575 templates/js/build.js:244
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1685
+#: stock/views.py:1717
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1767
+#: stock/views.py:1799
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1867
+#: stock/views.py:1899
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:1880
+#: stock/views.py:1912
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1891
+#: stock/views.py:1923
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1898
+#: stock/views.py:1930
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1907
+#: stock/views.py:1939
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -6106,9 +6273,17 @@ msgstr ""
msgid "Submit Bug Report"
msgstr ""
-#: templates/about.html:82 templates/js/modals.js:550
-#: templates/js/modals.js:809 templates/modals.html:28 templates/modals.html:52
-#: templates/modals.html:93
+#: templates/about.html:80 templates/clip.html:4
+msgid "copy to clipboard"
+msgstr ""
+
+#: templates/about.html:80
+msgid "copy version information"
+msgstr ""
+
+#: templates/about.html:90 templates/js/modals.js:568
+#: templates/js/modals.js:846 templates/modals.html:29 templates/modals.html:54
+#: templates/modals.html:97
msgid "Close"
msgstr ""
@@ -6116,10 +6291,6 @@ msgstr ""
msgid "Add Attachment"
msgstr ""
-#: templates/attachment_table.html:15
-msgid "File"
-msgstr ""
-
#: templates/attachment_table.html:17
msgid "Uploaded"
msgstr ""
@@ -6172,7 +6343,7 @@ msgstr ""
msgid "Unknown response from server"
msgstr ""
-#: templates/js/barcode.js:119 templates/js/modals.js:857
+#: templates/js/barcode.js:119 templates/js/modals.js:901
msgid "Invalid server response"
msgstr ""
@@ -6317,7 +6488,7 @@ msgstr ""
#: templates/js/build.js:708 templates/js/part.js:324 templates/js/part.js:546
#: templates/js/stock.js:511 templates/js/stock.js:938
-#: templates/js/stock.js:1331
+#: templates/js/stock.js:1453
msgid "Select"
msgstr ""
@@ -6415,96 +6586,96 @@ msgstr ""
msgid "Select Label Template"
msgstr ""
-#: templates/js/modals.js:256
+#: templates/js/modals.js:265
msgid "Waiting for server..."
msgstr ""
-#: templates/js/modals.js:406
+#: templates/js/modals.js:424
msgid "Show Error Information"
msgstr ""
-#: templates/js/modals.js:473 templates/modals.html:73
+#: templates/js/modals.js:491 templates/modals.html:76
msgid "Accept"
msgstr ""
-#: templates/js/modals.js:474 templates/modals.html:72
+#: templates/js/modals.js:492 templates/modals.html:75
msgid "Cancel"
msgstr ""
-#: templates/js/modals.js:538
+#: templates/js/modals.js:556
msgid "Loading Data"
msgstr ""
-#: templates/js/modals.js:549 templates/js/modals.js:808
-#: templates/modals.html:29 templates/modals.html:53
+#: templates/js/modals.js:567 templates/js/modals.js:845
+#: templates/modals.html:30 templates/modals.html:55
msgid "Submit"
msgstr ""
-#: templates/js/modals.js:760
+#: templates/js/modals.js:797
msgid "Invalid response from server"
msgstr ""
-#: templates/js/modals.js:760
+#: templates/js/modals.js:797
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/modals.js:773
+#: templates/js/modals.js:810
msgid "Error posting form data"
msgstr ""
-#: templates/js/modals.js:857
+#: templates/js/modals.js:901
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/modals.js:867
+#: templates/js/modals.js:911
msgid "No Response"
msgstr ""
-#: templates/js/modals.js:868
+#: templates/js/modals.js:912
msgid "No response from the InvenTree server"
msgstr ""
-#: templates/js/modals.js:872
+#: templates/js/modals.js:916
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/modals.js:873
+#: templates/js/modals.js:917
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/modals.js:877
+#: templates/js/modals.js:921
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/modals.js:878
+#: templates/js/modals.js:922
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/modals.js:882
+#: templates/js/modals.js:926
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/modals.js:883
+#: templates/js/modals.js:927
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/modals.js:887
+#: templates/js/modals.js:931
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/modals.js:888
+#: templates/js/modals.js:932
msgid "The requested resource could not be located on the server"
msgstr ""
-#: templates/js/modals.js:892
+#: templates/js/modals.js:936
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/modals.js:893
+#: templates/js/modals.js:937
msgid "Connection timeout while requesting data from server"
msgstr ""
-#: templates/js/modals.js:896
+#: templates/js/modals.js:940
msgid "Error requesting form data"
msgstr ""
@@ -6548,7 +6719,7 @@ msgstr ""
msgid "No category"
msgstr ""
-#: templates/js/part.js:409 templates/js/table_filters.js:318
+#: templates/js/part.js:409 templates/js/table_filters.js:319
msgid "Low stock"
msgstr ""
@@ -6746,7 +6917,7 @@ msgstr ""
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/stock.js:620 templates/js/table_filters.js:138
+#: templates/js/stock.js:620 templates/js/table_filters.js:139
msgid "Depleted"
msgstr ""
@@ -6770,189 +6941,213 @@ msgstr ""
msgid "Status code must be selected"
msgstr ""
-#: templates/js/stock.js:1050
+#: templates/js/stock.js:994
+msgid "Invalid date"
+msgstr ""
+
+#: templates/js/stock.js:1036
+msgid "Location no longer exists"
+msgstr ""
+
+#: templates/js/stock.js:1055
+msgid "Purchase order no longer exists"
+msgstr ""
+
+#: templates/js/stock.js:1074
+msgid "Customer no longer exists"
+msgstr ""
+
+#: templates/js/stock.js:1092
+msgid "Stock item no longer exists"
+msgstr ""
+
+#: templates/js/stock.js:1115
+msgid "Added"
+msgstr ""
+
+#: templates/js/stock.js:1123
+msgid "Removed"
+msgstr ""
+
+#: templates/js/stock.js:1155
msgid "No user information"
msgstr ""
-#: templates/js/stock.js:1060
+#: templates/js/stock.js:1167
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/stock.js:1061
+#: templates/js/stock.js:1168
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/stock.js:1170
+#: templates/js/stock.js:1292
msgid "Create New Location"
msgstr ""
-#: templates/js/stock.js:1269
+#: templates/js/stock.js:1391
msgid "Serial"
msgstr ""
-#: templates/js/stock.js:1362 templates/js/table_filters.js:171
+#: templates/js/stock.js:1484 templates/js/table_filters.js:172
msgid "Installed"
msgstr ""
-#: templates/js/stock.js:1387
+#: templates/js/stock.js:1509
msgid "Install item"
msgstr ""
-#: templates/js/table_filters.js:42
+#: templates/js/table_filters.js:43
msgid "Trackable Part"
msgstr ""
-#: templates/js/table_filters.js:46
+#: templates/js/table_filters.js:47
msgid "Validated"
msgstr ""
-#: templates/js/table_filters.js:71
+#: templates/js/table_filters.js:72
msgid "Include locations"
msgstr ""
-#: templates/js/table_filters.js:81 templates/js/table_filters.js:82
-#: templates/js/table_filters.js:295
+#: templates/js/table_filters.js:82 templates/js/table_filters.js:83
+#: templates/js/table_filters.js:296
msgid "Include subcategories"
msgstr ""
-#: templates/js/table_filters.js:92 templates/js/table_filters.js:181
+#: templates/js/table_filters.js:93 templates/js/table_filters.js:182
msgid "Is Serialized"
msgstr ""
-#: templates/js/table_filters.js:95 templates/js/table_filters.js:188
+#: templates/js/table_filters.js:96 templates/js/table_filters.js:189
msgid "Serial number GTE"
msgstr ""
-#: templates/js/table_filters.js:96 templates/js/table_filters.js:189
+#: templates/js/table_filters.js:97 templates/js/table_filters.js:190
msgid "Serial number greater than or equal to"
msgstr ""
-#: templates/js/table_filters.js:99 templates/js/table_filters.js:192
+#: templates/js/table_filters.js:100 templates/js/table_filters.js:193
msgid "Serial number LTE"
msgstr ""
-#: templates/js/table_filters.js:100 templates/js/table_filters.js:193
+#: templates/js/table_filters.js:101 templates/js/table_filters.js:194
msgid "Serial number less than or equal to"
msgstr ""
-#: templates/js/table_filters.js:103 templates/js/table_filters.js:104
-#: templates/js/table_filters.js:184 templates/js/table_filters.js:185
+#: templates/js/table_filters.js:104 templates/js/table_filters.js:105
+#: templates/js/table_filters.js:185 templates/js/table_filters.js:186
msgid "Serial number"
msgstr ""
-#: templates/js/table_filters.js:108 templates/js/table_filters.js:202
+#: templates/js/table_filters.js:109 templates/js/table_filters.js:203
msgid "Batch code"
msgstr ""
-#: templates/js/table_filters.js:118 templates/js/table_filters.js:285
+#: templates/js/table_filters.js:119 templates/js/table_filters.js:286
msgid "Active parts"
msgstr ""
-#: templates/js/table_filters.js:119
+#: templates/js/table_filters.js:120
msgid "Show stock for active parts"
msgstr ""
-#: templates/js/table_filters.js:124
+#: templates/js/table_filters.js:125
msgid "Part is an assembly"
msgstr ""
-#: templates/js/table_filters.js:128
+#: templates/js/table_filters.js:129
msgid "Is allocated"
msgstr ""
-#: templates/js/table_filters.js:129
+#: templates/js/table_filters.js:130
msgid "Item has been allocated"
msgstr ""
-#: templates/js/table_filters.js:134
+#: templates/js/table_filters.js:135
msgid "Include stock in sublocations"
msgstr ""
-#: templates/js/table_filters.js:139
+#: templates/js/table_filters.js:140
msgid "Show stock items which are depleted"
msgstr ""
-#: templates/js/table_filters.js:146
+#: templates/js/table_filters.js:147
msgid "Show stock items which have expired"
msgstr ""
-#: templates/js/table_filters.js:151
+#: templates/js/table_filters.js:152
msgid "Show stock which is close to expiring"
msgstr ""
-#: templates/js/table_filters.js:157
+#: templates/js/table_filters.js:158
msgid "Show items which are in stock"
msgstr ""
-#: templates/js/table_filters.js:161
+#: templates/js/table_filters.js:162
msgid "In Production"
msgstr ""
-#: templates/js/table_filters.js:162
+#: templates/js/table_filters.js:163
msgid "Show items which are in production"
msgstr ""
-#: templates/js/table_filters.js:166
+#: templates/js/table_filters.js:167
msgid "Include Variants"
msgstr ""
-#: templates/js/table_filters.js:167
+#: templates/js/table_filters.js:168
msgid "Include stock items for variant parts"
msgstr ""
-#: templates/js/table_filters.js:172
+#: templates/js/table_filters.js:173
msgid "Show stock items which are installed in another item"
msgstr ""
-#: templates/js/table_filters.js:176
-msgid "Sent to customer"
-msgstr ""
-
-#: templates/js/table_filters.js:177
+#: templates/js/table_filters.js:178
msgid "Show items which have been assigned to a customer"
msgstr ""
-#: templates/js/table_filters.js:197 templates/js/table_filters.js:198
+#: templates/js/table_filters.js:198 templates/js/table_filters.js:199
msgid "Stock status"
msgstr ""
-#: templates/js/table_filters.js:231
+#: templates/js/table_filters.js:232
msgid "Build status"
msgstr ""
-#: templates/js/table_filters.js:250 templates/js/table_filters.js:267
+#: templates/js/table_filters.js:251 templates/js/table_filters.js:268
msgid "Order status"
msgstr ""
-#: templates/js/table_filters.js:255 templates/js/table_filters.js:272
+#: templates/js/table_filters.js:256 templates/js/table_filters.js:273
msgid "Outstanding"
msgstr ""
-#: templates/js/table_filters.js:296
+#: templates/js/table_filters.js:297
msgid "Include parts in subcategories"
msgstr ""
-#: templates/js/table_filters.js:300
+#: templates/js/table_filters.js:301
msgid "Has IPN"
msgstr ""
-#: templates/js/table_filters.js:301
+#: templates/js/table_filters.js:302
msgid "Part has internal part number"
msgstr ""
-#: templates/js/table_filters.js:306
+#: templates/js/table_filters.js:307
msgid "Show active parts"
msgstr ""
-#: templates/js/table_filters.js:314
+#: templates/js/table_filters.js:315
msgid "Stock available"
msgstr ""
-#: templates/js/table_filters.js:330
+#: templates/js/table_filters.js:331
msgid "Starred"
msgstr ""
-#: templates/js/table_filters.js:342
+#: templates/js/table_filters.js:343
msgid "Purchasable"
msgstr ""
@@ -7009,7 +7204,7 @@ msgstr ""
msgid "All"
msgstr ""
-#: templates/modals.html:21 templates/modals.html:46
+#: templates/modals.html:21 templates/modals.html:47
msgid "Form errors exist"
msgstr ""
@@ -7121,31 +7316,47 @@ msgstr ""
msgid "Instance Name"
msgstr ""
-#: templates/stats.html:19
-msgid "Server status"
+#: templates/stats.html:18
+msgid "Database"
msgstr ""
-#: templates/stats.html:22
-msgid "Healthy"
+#: templates/stats.html:26
+msgid "Server is running in debug mode"
msgstr ""
-#: templates/stats.html:24
-msgid "Issues detected"
-msgstr ""
-
-#: templates/stats.html:31
-msgid "Background Worker"
+#: templates/stats.html:33
+msgid "Docker Mode"
msgstr ""
#: templates/stats.html:34
-msgid "Background worker not running"
+msgid "Server is deployed using docker"
msgstr ""
-#: templates/stats.html:42
-msgid "Email Settings"
+#: templates/stats.html:40
+msgid "Server status"
+msgstr ""
+
+#: templates/stats.html:43
+msgid "Healthy"
msgstr ""
#: templates/stats.html:45
+msgid "Issues detected"
+msgstr ""
+
+#: templates/stats.html:52
+msgid "Background Worker"
+msgstr ""
+
+#: templates/stats.html:55
+msgid "Background worker not running"
+msgstr ""
+
+#: templates/stats.html:63
+msgid "Email Settings"
+msgstr ""
+
+#: templates/stats.html:66
msgid "Email settings not configured"
msgstr ""
diff --git a/InvenTree/locale/es/LC_MESSAGES/django.po b/InvenTree/locale/es/LC_MESSAGES/django.po
index 459ce5092a..f56eb19904 100644
--- a/InvenTree/locale/es/LC_MESSAGES/django.po
+++ b/InvenTree/locale/es/LC_MESSAGES/django.po
@@ -1,9 +1,9 @@
msgid ""
msgstr ""
-"Project-Id-Version: \n"
+"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-05-05 17:33+1000\n"
-"PO-Revision-Date: 2021-04-21 09:33\n"
+"POT-Creation-Date: 2021-05-17 10:46+0000\n"
+"PO-Revision-Date: 2021-05-17 10:47\n"
"Last-Translator: \n"
"Language-Team: Spanish\n"
"Language: es_ES\n"
@@ -11,6 +11,11 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Crowdin-Project: inventree\n"
+"X-Crowdin-Project-ID: 452300\n"
+"X-Crowdin-Language: es-ES\n"
+"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
+"X-Crowdin-File-ID: 138\n"
#: InvenTree/api.py:64
msgid "API endpoint not found"
@@ -33,7 +38,7 @@ msgstr ""
#: order/forms.py:27 order/forms.py:38 order/forms.py:49 order/forms.py:60
#: order/forms.py:71 part/forms.py:134
msgid "Confirm"
-msgstr ""
+msgstr "Confirmar"
#: InvenTree/forms.py:126
msgid "Confirm delete"
@@ -53,11 +58,11 @@ msgstr ""
#: InvenTree/forms.py:167
msgid "Confirm password"
-msgstr ""
+msgstr "Confirmar la contraseña"
#: InvenTree/forms.py:168
msgid "Confirm new password"
-msgstr ""
+msgstr "Confirmar contraseña nueva"
#: InvenTree/forms.py:203
msgid "Apply Theme"
@@ -72,8 +77,8 @@ msgstr ""
msgid "Duplicate serial: {n}"
msgstr ""
-#: InvenTree/helpers.py:384 order/models.py:245 order/models.py:353
-#: stock/views.py:1763
+#: InvenTree/helpers.py:384 order/models.py:245 order/models.py:355
+#: stock/views.py:1795
msgid "Invalid quantity provided"
msgstr ""
@@ -101,7 +106,7 @@ msgstr ""
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr ""
-#: InvenTree/models.py:59 stock/models.py:1662
+#: InvenTree/models.py:59 stock/models.py:1761
msgid "Attachment"
msgstr ""
@@ -111,36 +116,36 @@ msgstr ""
#: InvenTree/models.py:62 templates/attachment_table.html:16
msgid "Comment"
-msgstr ""
+msgstr "Comentario"
#: InvenTree/models.py:62
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:1908
+#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:1946
#: report/templates/report/inventree_test_report_base.html:91
-#: templates/js/stock.js:1041
+#: templates/js/stock.js:1146
msgid "User"
-msgstr ""
+msgstr "Usuario"
#: InvenTree/models.py:72
msgid "upload date"
msgstr ""
-#: InvenTree/models.py:107 InvenTree/models.py:108 label/models.py:101
-#: part/models.py:686 part/models.py:2049 part/templates/part/params.html:27
+#: InvenTree/models.py:107 InvenTree/models.py:108 label/models.py:102
+#: part/models.py:686 part/models.py:2087 part/templates/part/params.html:27
#: report/models.py:179 templates/InvenTree/search.html:137
#: templates/InvenTree/search.html:289 templates/js/part.js:110
#: templates/js/part.js:553 templates/js/stock.js:944
msgid "Name"
-msgstr ""
+msgstr "Nombre"
#: InvenTree/models.py:114 build/models.py:134
-#: build/templates/build/detail.html:21 company/models.py:342
-#: company/models.py:494 company/templates/company/detail.html:27
+#: build/templates/build/detail.html:21 company/models.py:339
+#: company/models.py:491 company/templates/company/detail.html:27
#: company/templates/company/manufacturer_part_base.html:72
#: company/templates/company/supplier_part_base.html:71
-#: company/templates/company/supplier_part_detail.html:31 label/models.py:108
+#: company/templates/company/supplier_part_detail.html:31 label/models.py:109
#: order/models.py:101 order/templates/order/purchase_order_detail.html:143
#: part/models.py:710 part/templates/part/detail.html:54
#: part/templates/part/set_category.html:14 report/models.py:192
@@ -154,9 +159,9 @@ msgstr ""
#: templates/js/order.js:280 templates/js/part.js:169 templates/js/part.js:252
#: templates/js/part.js:371 templates/js/part.js:565 templates/js/part.js:643
#: templates/js/stock.js:554 templates/js/stock.js:956
-#: templates/js/stock.js:1015
+#: templates/js/stock.js:1001
msgid "Description"
-msgstr ""
+msgstr "Descripción"
#: InvenTree/models.py:115
msgid "Description (optional)"
@@ -166,25 +171,25 @@ msgstr ""
msgid "parent"
msgstr ""
-#: InvenTree/settings.py:491
+#: InvenTree/settings.py:501
msgid "English"
-msgstr ""
+msgstr "Inglés"
-#: InvenTree/settings.py:492
+#: InvenTree/settings.py:502
msgid "French"
-msgstr ""
+msgstr "Francés"
-#: InvenTree/settings.py:493
+#: InvenTree/settings.py:503
msgid "German"
-msgstr ""
+msgstr "Alemán"
-#: InvenTree/settings.py:494
+#: InvenTree/settings.py:504
msgid "Polish"
-msgstr ""
+msgstr "Polaco"
-#: InvenTree/settings.py:495
+#: InvenTree/settings.py:505
msgid "Turkish"
-msgstr ""
+msgstr "Turco"
#: InvenTree/status.py:93
msgid "Background worker check failed"
@@ -198,63 +203,139 @@ msgstr ""
msgid "InvenTree system health checks failed"
msgstr ""
-#: InvenTree/status_codes.py:102 InvenTree/status_codes.py:143
-#: InvenTree/status_codes.py:236
+#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:145
+#: InvenTree/status_codes.py:314
msgid "Pending"
msgstr ""
-#: InvenTree/status_codes.py:103
+#: InvenTree/status_codes.py:105
msgid "Placed"
msgstr ""
-#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:239
+#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:317
msgid "Complete"
-msgstr ""
-
-#: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145
-#: InvenTree/status_codes.py:238
-msgid "Cancelled"
-msgstr ""
-
-#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146
-#: InvenTree/status_codes.py:188
-msgid "Lost"
-msgstr ""
+msgstr "Terminado"
#: InvenTree/status_codes.py:107 InvenTree/status_codes.py:147
+#: InvenTree/status_codes.py:316
+msgid "Cancelled"
+msgstr "Cancelado"
+
+#: InvenTree/status_codes.py:108 InvenTree/status_codes.py:148
#: InvenTree/status_codes.py:190
+msgid "Lost"
+msgstr "Perdida"
+
+#: InvenTree/status_codes.py:109 InvenTree/status_codes.py:149
+#: InvenTree/status_codes.py:192
msgid "Returned"
msgstr ""
-#: InvenTree/status_codes.py:144
+#: InvenTree/status_codes.py:146
#: order/templates/order/sales_order_base.html:124
msgid "Shipped"
msgstr ""
-#: InvenTree/status_codes.py:184
-msgid "OK"
-msgstr ""
-
-#: InvenTree/status_codes.py:185
-msgid "Attention needed"
-msgstr ""
-
#: InvenTree/status_codes.py:186
-msgid "Damaged"
-msgstr ""
+msgid "OK"
+msgstr "OK"
#: InvenTree/status_codes.py:187
-msgid "Destroyed"
-msgstr ""
+msgid "Attention needed"
+msgstr "Atención necesaria"
+
+#: InvenTree/status_codes.py:188
+msgid "Damaged"
+msgstr "Dañado"
#: InvenTree/status_codes.py:189
+msgid "Destroyed"
+msgstr "Destruido"
+
+#: InvenTree/status_codes.py:191
msgid "Rejected"
msgstr ""
-#: InvenTree/status_codes.py:237
-msgid "Production"
+#: InvenTree/status_codes.py:272
+msgid "Legacy stock tracking entry"
msgstr ""
+#: InvenTree/status_codes.py:274
+msgid "Stock item created"
+msgstr ""
+
+#: InvenTree/status_codes.py:276
+msgid "Edited stock item"
+msgstr ""
+
+#: InvenTree/status_codes.py:277
+msgid "Assigned serial number"
+msgstr ""
+
+#: InvenTree/status_codes.py:279
+msgid "Stock counted"
+msgstr ""
+
+#: InvenTree/status_codes.py:280
+msgid "Stock manually added"
+msgstr ""
+
+#: InvenTree/status_codes.py:281
+msgid "Stock manually removed"
+msgstr ""
+
+#: InvenTree/status_codes.py:283
+msgid "Location changed"
+msgstr ""
+
+#: InvenTree/status_codes.py:285
+msgid "Installed into assembly"
+msgstr ""
+
+#: InvenTree/status_codes.py:286
+msgid "Removed from assembly"
+msgstr ""
+
+#: InvenTree/status_codes.py:288
+msgid "Installed component item"
+msgstr ""
+
+#: InvenTree/status_codes.py:289
+msgid "Removed component item"
+msgstr ""
+
+#: InvenTree/status_codes.py:291
+msgid "Split from parent item"
+msgstr ""
+
+#: InvenTree/status_codes.py:292
+msgid "Split child item"
+msgstr ""
+
+#: InvenTree/status_codes.py:294 templates/js/table_filters.js:177
+msgid "Sent to customer"
+msgstr ""
+
+#: InvenTree/status_codes.py:295
+msgid "Returned from customer"
+msgstr ""
+
+#: InvenTree/status_codes.py:297
+msgid "Build order output created"
+msgstr ""
+
+#: InvenTree/status_codes.py:298
+msgid "Build order output completed"
+msgstr ""
+
+#: InvenTree/status_codes.py:300
+msgid "Received against purchase order"
+msgstr ""
+
+#: InvenTree/status_codes.py:315
+msgid "Production"
+msgstr "Producción"
+
#: InvenTree/validators.py:22
msgid "Not a valid currency code"
msgstr ""
@@ -270,7 +351,8 @@ msgstr ""
#: InvenTree/validators.py:77 InvenTree/validators.py:91
#: InvenTree/validators.py:105
-msgid "Reference must match pattern"
+#, python-brace-format
+msgid "Reference must match pattern {pattern}"
msgstr ""
#: InvenTree/validators.py:113
@@ -292,7 +374,7 @@ msgstr ""
#: InvenTree/views.py:587
msgid "Delete Item"
-msgstr ""
+msgstr "Eliminar elemento"
#: InvenTree/views.py:636
msgid "Check box to confirm item deletion"
@@ -304,7 +386,7 @@ msgstr ""
#: InvenTree/views.py:662 templates/InvenTree/settings/user.html:22
msgid "Set Password"
-msgstr ""
+msgstr "Configurar Contraseña"
#: InvenTree/views.py:681
msgid "Password fields must match"
@@ -312,7 +394,7 @@ msgstr ""
#: InvenTree/views.py:887 templates/navbar.html:95
msgid "System Information"
-msgstr ""
+msgstr "Información del sistema"
#: barcodes/api.py:53 barcodes/api.py:150
msgid "Must provide barcode_data parameter"
@@ -376,37 +458,37 @@ msgstr ""
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1241
+#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1245
#: build/templates/build/allocation_card.html:23
#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:123
-#: build/templates/build/detail.html:31 common/models.py:703
+#: build/templates/build/detail.html:31 common/models.py:705
#: company/forms.py:176 company/templates/company/supplier_part_pricing.html:77
-#: order/forms.py:188 order/forms.py:205 order/forms.py:239 order/forms.py:261
-#: order/forms.py:278 order/models.py:603 order/models.py:794
+#: order/forms.py:188 order/forms.py:205 order/forms.py:240 order/forms.py:262
+#: order/forms.py:279 order/models.py:614 order/models.py:815
+#: order/templates/order/order_wizard/match_parts.html:29
#: order/templates/order/order_wizard/select_parts.html:32
#: order/templates/order/purchase_order_detail.html:175
#: order/templates/order/sales_order_detail.html:70
#: order/templates/order/sales_order_detail.html:77
-#: order/templates/order/sales_order_detail.html:159
-#: order/templates/order/sales_order_detail.html:224 part/forms.py:342
-#: part/forms.py:371 part/forms.py:387 part/models.py:2178
+#: order/templates/order/sales_order_detail.html:162
+#: order/templates/order/sales_order_detail.html:230 part/forms.py:342
+#: part/forms.py:371 part/forms.py:387 part/models.py:2216
#: part/templates/part/allocation.html:19
#: part/templates/part/allocation.html:53
-#: part/templates/part/part_pricing.html:11
-#: part/templates/part/part_pricing.html:18
+#: part/templates/part/part_pricing.html:13
#: part/templates/part/sale_prices.html:85
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:77
-#: stock/forms.py:175 stock/forms.py:308 stock/models.py:1566
-#: stock/templates/stock/item_base.html:244
+#: stock/forms.py:175 stock/forms.py:308
+#: stock/templates/stock/item_base.html:250
#: stock/templates/stock/stock_adjust.html:18 templates/js/barcode.js:364
#: templates/js/bom.js:205 templates/js/build.js:476 templates/js/build.js:1014
-#: templates/js/stock.js:1033 templates/js/stock.js:1271
+#: templates/js/stock.js:1131 templates/js/stock.js:1393
msgid "Quantity"
-msgstr ""
+msgstr "Cantidad"
#: build/forms.py:49
msgid "Number of items to build"
@@ -416,9 +498,9 @@ msgstr ""
msgid "Enter quantity for build output"
msgstr ""
-#: build/forms.py:95 order/forms.py:233 stock/forms.py:118
+#: build/forms.py:95 order/forms.py:234 stock/forms.py:118
msgid "Serial Numbers"
-msgstr ""
+msgstr "Números de serie"
#: build/forms.py:97
msgid "Enter serial numbers for build outputs"
@@ -446,27 +528,28 @@ msgstr ""
#: build/forms.py:210 build/templates/build/auto_allocate.html:18
#: order/forms.py:82 stock/forms.py:347
-#: stock/templates/stock/item_base.html:274
+#: stock/templates/stock/item_base.html:280
#: stock/templates/stock/stock_adjust.html:17
#: templates/InvenTree/search.html:260 templates/js/barcode.js:363
#: templates/js/barcode.js:531 templates/js/build.js:490
-#: templates/js/stock.js:641
+#: templates/js/stock.js:641 templates/js/stock.js:1023
msgid "Location"
-msgstr ""
+msgstr "Unicación"
#: build/forms.py:211
msgid "Location of completed parts"
msgstr ""
#: build/forms.py:215 build/templates/build/build_base.html:128
-#: build/templates/build/detail.html:59 order/models.py:455
+#: build/templates/build/detail.html:59 order/models.py:466
#: order/templates/order/receive_parts.html:24
-#: stock/templates/stock/item_base.html:392 templates/InvenTree/search.html:252
+#: stock/templates/stock/item_base.html:398 templates/InvenTree/search.html:252
#: templates/js/barcode.js:119 templates/js/build.js:770
#: templates/js/order.js:187 templates/js/order.js:285
-#: templates/js/stock.js:628 templates/js/stock.js:1279
+#: templates/js/stock.js:628 templates/js/stock.js:1100
+#: templates/js/stock.js:1401
msgid "Status"
-msgstr ""
+msgstr "Estado"
#: build/forms.py:216
msgid "Build output stock status"
@@ -486,7 +569,7 @@ msgstr ""
#: build/forms.py:252
msgid "Confirm cancel"
-msgstr ""
+msgstr "Confirmar cancelación"
#: build/forms.py:252 build/views.py:66
msgid "Confirm build cancellation"
@@ -517,14 +600,14 @@ msgstr ""
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:127 order/models.py:99 order/models.py:605
+#: build/models.py:127 order/models.py:99 order/models.py:616
#: order/templates/order/purchase_order_detail.html:170
-#: order/templates/order/sales_order_detail.html:219 part/models.py:2187
+#: order/templates/order/sales_order_detail.html:225 part/models.py:2225
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92 templates/js/bom.js:197
#: templates/js/build.js:565 templates/js/build.js:1008
msgid "Reference"
-msgstr ""
+msgstr "Referencia"
#: build/models.py:137
msgid "Brief description of the build"
@@ -541,16 +624,16 @@ msgstr ""
#: build/models.py:152 build/templates/build/auto_allocate.html:16
#: build/templates/build/build_base.html:118
-#: build/templates/build/detail.html:26 company/models.py:688
-#: order/models.py:647 order/models.py:679
+#: build/templates/build/detail.html:26 company/models.py:622
+#: order/models.py:658 order/models.py:691
#: order/templates/order/order_wizard/select_parts.html:30
#: order/templates/order/purchase_order_detail.html:131
#: order/templates/order/receive_parts.html:19
-#: order/templates/order/sales_order_detail.html:207 part/models.py:321
-#: part/models.py:1876 part/models.py:1888 part/models.py:1906
-#: part/models.py:1981 part/models.py:2077 part/models.py:2162
+#: order/templates/order/sales_order_detail.html:213 part/models.py:321
+#: part/models.py:1914 part/models.py:1926 part/models.py:1944
+#: part/models.py:2019 part/models.py:2115 part/models.py:2200
#: part/templates/part/part_app_base.html:8
-#: part/templates/part/part_pricing.html:14 part/templates/part/related.html:29
+#: part/templates/part/part_pricing.html:9 part/templates/part/related.html:29
#: part/templates/part/set_category.html:13
#: report/templates/report/inventree_build_order_base.html:110
#: report/templates/report/inventree_po_report.html:90
@@ -560,9 +643,9 @@ msgstr ""
#: templates/js/build.js:741 templates/js/build.js:981
#: templates/js/company.js:140 templates/js/company.js:238
#: templates/js/part.js:233 templates/js/part.js:338 templates/js/stock.js:523
-#: templates/js/stock.js:1343
+#: templates/js/stock.js:1465
msgid "Part"
-msgstr ""
+msgstr "Parte"
#: build/models.py:160
msgid "Select part to build"
@@ -602,7 +685,7 @@ msgstr ""
#: build/models.py:198
msgid "Completed items"
-msgstr ""
+msgstr "Elementos completados"
#: build/models.py:200
msgid "Number of stock items which have been completed"
@@ -616,7 +699,7 @@ msgstr ""
msgid "Build status code"
msgstr ""
-#: build/models.py:212 stock/models.py:432
+#: build/models.py:212 stock/models.py:464
msgid "Batch Code"
msgstr ""
@@ -629,7 +712,7 @@ msgstr ""
msgid "Creation Date"
msgstr ""
-#: build/models.py:223 order/models.py:461
+#: build/models.py:223 order/models.py:472
msgid "Target completion date"
msgstr ""
@@ -655,7 +738,7 @@ msgstr ""
#: order/templates/order/sales_order_base.html:138 part/models.py:886
#: report/templates/report/inventree_build_order_base.html:159
msgid "Responsible"
-msgstr ""
+msgstr "Responsable"
#: build/models.py:251
msgid "User responsible for this build order"
@@ -667,32 +750,32 @@ msgstr ""
#: company/templates/company/supplier_part_base.html:78
#: company/templates/company/supplier_part_detail.html:28
#: part/templates/part/detail.html:83 part/templates/part/part_base.html:101
-#: stock/models.py:426 stock/templates/stock/item_base.html:334
+#: stock/models.py:458 stock/templates/stock/item_base.html:340
msgid "External Link"
msgstr ""
-#: build/models.py:257 part/models.py:744 stock/models.py:428
+#: build/models.py:257 part/models.py:744 stock/models.py:460
msgid "Link to external URL"
msgstr ""
#: build/models.py:261 build/templates/build/navbar.html:53
-#: company/models.py:135 company/models.py:501
+#: company/models.py:132 company/models.py:498
#: company/templates/company/navbar.html:70
#: company/templates/company/navbar.html:73 order/models.py:123
-#: order/models.py:607 order/templates/order/po_navbar.html:29
+#: order/models.py:618 order/templates/order/po_navbar.html:29
#: order/templates/order/po_navbar.html:32
#: order/templates/order/purchase_order_detail.html:209
-#: order/templates/order/sales_order_detail.html:264
+#: order/templates/order/sales_order_detail.html:278
#: order/templates/order/so_navbar.html:33
#: order/templates/order/so_navbar.html:36 part/models.py:871
#: part/templates/part/navbar.html:128
#: report/templates/report/inventree_build_order_base.html:173
#: stock/forms.py:173 stock/forms.py:317 stock/forms.py:349 stock/forms.py:377
-#: stock/models.py:498 stock/models.py:1558 stock/models.py:1668
+#: stock/models.py:530 stock/models.py:1665 stock/models.py:1767
#: stock/templates/stock/navbar.html:57 templates/js/barcode.js:37
#: templates/js/bom.js:333 templates/js/stock.js:128 templates/js/stock.js:671
msgid "Notes"
-msgstr ""
+msgstr "Notas"
#: build/models.py:262
msgid "Extra build notes"
@@ -710,75 +793,71 @@ msgstr ""
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:838
-msgid "Completed build output"
-msgstr ""
-
-#: build/models.py:1132
+#: build/models.py:1136
msgid "BuildItem must be unique for build, stock_item and install_into"
msgstr ""
-#: build/models.py:1157
-msgid "Build item must specify a build output, as master part is marked as trackable"
-msgstr ""
-
#: build/models.py:1161
-#, python-brace-format
-msgid "Selected stock item not found in BOM for part '{p}'"
+msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
#: build/models.py:1165
#, python-brace-format
+msgid "Selected stock item not found in BOM for part '{p}'"
+msgstr ""
+
+#: build/models.py:1169
+#, python-brace-format
msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
msgstr ""
-#: build/models.py:1172 order/models.py:768
+#: build/models.py:1176 order/models.py:789
msgid "StockItem is over-allocated"
msgstr ""
-#: build/models.py:1176 order/models.py:771
+#: build/models.py:1180 order/models.py:792
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1180
+#: build/models.py:1184
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1220 stock/templates/stock/item_base.html:306
+#: build/models.py:1224 stock/templates/stock/item_base.html:312
#: templates/InvenTree/search.html:183 templates/js/build.js:714
#: templates/navbar.html:29
msgid "Build"
msgstr ""
-#: build/models.py:1221
+#: build/models.py:1225
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1228 part/templates/part/allocation.html:18
+#: build/models.py:1232 part/templates/part/allocation.html:18
#: part/templates/part/allocation.html:24
#: part/templates/part/allocation.html:31
#: part/templates/part/allocation.html:49
#: stock/templates/stock/item_base.html:8
#: stock/templates/stock/item_base.html:93
-#: stock/templates/stock/item_base.html:328
+#: stock/templates/stock/item_base.html:334
#: stock/templates/stock/stock_adjust.html:16 templates/js/build.js:831
-#: templates/js/stock.js:1004 templates/js/stock.js:1262
+#: templates/js/stock.js:1082 templates/js/stock.js:1384
msgid "Stock Item"
msgstr ""
-#: build/models.py:1229
+#: build/models.py:1233
msgid "Source stock item"
msgstr ""
-#: build/models.py:1242
+#: build/models.py:1246
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1250
+#: build/models.py:1254
msgid "Install into"
msgstr ""
-#: build/models.py:1251
+#: build/models.py:1255
msgid "Destination stock item"
msgstr ""
@@ -812,7 +891,7 @@ msgstr ""
#: build/templates/build/allocate.html:30
#: company/templates/company/detail_manufacturer_part.html:33
-#: company/templates/company/detail_supplier_part.html:32 order/views.py:795
+#: company/templates/company/detail_supplier_part.html:32 order/views.py:986
#: part/templates/part/category.html:127
msgid "Order Parts"
msgstr ""
@@ -832,12 +911,12 @@ msgstr ""
#: build/templates/build/allocation_card.html:21
#: build/templates/build/complete_output.html:46
#: order/templates/order/sales_order_detail.html:75
-#: order/templates/order/sales_order_detail.html:157
+#: order/templates/order/sales_order_detail.html:160
#: report/templates/report/inventree_test_report_base.html:75
-#: stock/models.py:420 stock/templates/stock/item_base.html:238
+#: stock/models.py:452 stock/templates/stock/item_base.html:244
#: templates/js/build.js:474
msgid "Serial Number"
-msgstr ""
+msgstr "Número de serie"
#: build/templates/build/attachments.html:12
#: build/templates/build/navbar.html:43 build/templates/build/navbar.html:46
@@ -897,7 +976,7 @@ msgstr ""
#: order/templates/order/order_base.html:26
#: order/templates/order/sales_order_base.html:35
#: part/templates/part/category.html:18 part/templates/part/part_base.html:29
-#: stock/templates/stock/item_base.html:118
+#: stock/templates/stock/item_base.html:124
#: stock/templates/stock/location.html:31
msgid "Admin view"
msgstr ""
@@ -908,8 +987,8 @@ msgstr ""
#: order/templates/order/order_base.html:86
#: order/templates/order/sales_order_base.html:41
#: order/templates/order/sales_order_base.html:86
-#: templates/js/table_filters.js:240 templates/js/table_filters.js:259
-#: templates/js/table_filters.js:276
+#: templates/js/table_filters.js:241 templates/js/table_filters.js:260
+#: templates/js/table_filters.js:277
msgid "Overdue"
msgstr ""
@@ -952,17 +1031,17 @@ msgstr ""
#: build/templates/build/build_base.html:147
#: build/templates/build/detail.html:64
msgid "Progress"
-msgstr ""
+msgstr "Progreso"
#: build/templates/build/build_base.html:160
-#: build/templates/build/detail.html:84 order/models.py:677
+#: build/templates/build/detail.html:84 order/models.py:689
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:33
#: order/templates/order/sales_order_ship.html:25
#: part/templates/part/allocation.html:30
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
-#: stock/templates/stock/item_base.html:268 templates/js/order.js:245
+#: stock/templates/stock/item_base.html:274 templates/js/order.js:245
msgid "Sales Order"
msgstr ""
@@ -1105,18 +1184,18 @@ msgstr ""
#: build/templates/build/detail.html:46 stock/forms.py:169 stock/forms.py:375
msgid "Destination"
-msgstr ""
+msgstr "Destinación"
#: build/templates/build/detail.html:53
msgid "Destination location not specified"
msgstr ""
#: build/templates/build/detail.html:70
-#: stock/templates/stock/item_base.html:292 templates/js/stock.js:636
-#: templates/js/stock.js:1286 templates/js/table_filters.js:107
-#: templates/js/table_filters.js:201
+#: stock/templates/stock/item_base.html:298 templates/js/stock.js:636
+#: templates/js/stock.js:1408 templates/js/table_filters.js:108
+#: templates/js/table_filters.js:202
msgid "Batch"
-msgstr ""
+msgstr "Lote"
#: build/templates/build/detail.html:116
#: order/templates/order/order_base.html:111
@@ -1130,7 +1209,7 @@ msgstr ""
#: build/templates/build/detail.html:132 templates/js/build.js:756
msgid "Completed"
-msgstr ""
+msgstr "Completados"
#: build/templates/build/detail.html:136
msgid "Build not complete"
@@ -1168,8 +1247,9 @@ msgstr ""
#: company/templates/company/navbar.html:15
#: order/templates/order/po_navbar.html:14
#: order/templates/order/so_navbar.html:15 part/templates/part/navbar.html:15
+#: templates/js/stock.js:1016
msgid "Details"
-msgstr ""
+msgstr "Detalles"
#: build/templates/build/navbar.html:21 build/templates/build/navbar.html:24
#: build/views.py:91
@@ -1202,10 +1282,11 @@ msgstr ""
#: build/templates/build/notes.html:26 company/templates/company/notes.html:24
#: order/templates/order/order_notes.html:27
#: order/templates/order/sales_order_notes.html:29
-#: part/templates/part/notes.html:27 stock/templates/stock/item_base.html:470
+#: part/templates/part/notes.html:27 stock/templates/stock/item_base.html:477
+#: stock/templates/stock/item_base.html:487
#: stock/templates/stock/item_notes.html:26
msgid "Save"
-msgstr ""
+msgstr "Guardar"
#: build/templates/build/unallocate.html:10
msgid "Are you sure you wish to unallocate all stock for this build?"
@@ -1231,7 +1312,7 @@ msgstr ""
msgid "Maximum output quantity is "
msgstr ""
-#: build/views.py:184 stock/models.py:969 stock/views.py:1789
+#: build/views.py:184 stock/views.py:1821
msgid "Serial numbers already exist"
msgstr ""
@@ -1348,372 +1429,405 @@ msgstr ""
msgid "Add Build Order Attachment"
msgstr ""
-#: build/views.py:1083 order/views.py:110 order/views.py:162 part/views.py:172
+#: build/views.py:1083 order/views.py:115 order/views.py:167 part/views.py:172
#: stock/views.py:277
msgid "Added attachment"
msgstr ""
-#: build/views.py:1119 order/views.py:189 order/views.py:210
+#: build/views.py:1119 order/views.py:194 order/views.py:215
msgid "Edit Attachment"
msgstr ""
-#: build/views.py:1129 order/views.py:193 order/views.py:214
+#: build/views.py:1129 order/views.py:198 order/views.py:219
msgid "Attachment updated"
msgstr ""
-#: build/views.py:1139 order/views.py:229 order/views.py:243
+#: build/views.py:1139 order/views.py:234 order/views.py:248
msgid "Delete Attachment"
msgstr ""
-#: build/views.py:1144 order/views.py:235 order/views.py:249 stock/views.py:333
+#: build/views.py:1144 order/views.py:240 order/views.py:254 stock/views.py:333
msgid "Deleted attachment"
msgstr ""
-#: common/models.py:56
-msgid "InvenTree Instance Name"
+#: common/files.py:64
+msgid "Unsupported file format: {ext.upper()}"
+msgstr ""
+
+#: common/files.py:69
+msgid "Error reading file (invalid format)"
+msgstr ""
+
+#: common/files.py:71
+msgid "Error reading file (incorrect dimension)"
+msgstr ""
+
+#: common/files.py:73
+msgid "Error reading file (data could be corrupted)"
+msgstr ""
+
+#: common/forms.py:38 templates/attachment_table.html:15
+msgid "File"
+msgstr ""
+
+#: common/forms.py:39
+msgid "Select file to upload"
+msgstr ""
+
+#: common/forms.py:54
+msgid "{name.title()} File"
+msgstr ""
+
+#: common/forms.py:55
+#, python-brace-format
+msgid "Select {name} file to upload"
msgstr ""
#: common/models.py:58
+msgid "InvenTree Instance Name"
+msgstr ""
+
+#: common/models.py:60
msgid "String descriptor for the server instance"
msgstr ""
-#: common/models.py:62
+#: common/models.py:64
msgid "Use instance name"
msgstr ""
-#: common/models.py:63
+#: common/models.py:65
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:69 company/models.py:97 company/models.py:98
+#: common/models.py:71 company/models.py:94 company/models.py:95
msgid "Company name"
msgstr ""
-#: common/models.py:70
+#: common/models.py:72
msgid "Internal company name"
msgstr ""
-#: common/models.py:75
+#: common/models.py:77
msgid "Base URL"
msgstr ""
-#: common/models.py:76
+#: common/models.py:78
msgid "Base URL for server instance"
msgstr ""
-#: common/models.py:82
+#: common/models.py:84
msgid "Default Currency"
msgstr ""
-#: common/models.py:83
+#: common/models.py:85
msgid "Default currency"
msgstr ""
-#: common/models.py:89
+#: common/models.py:91
msgid "Download from URL"
msgstr ""
-#: common/models.py:90
+#: common/models.py:92
msgid "Allow download of remote images and files from external URL"
msgstr ""
-#: common/models.py:96
+#: common/models.py:98
msgid "Barcode Support"
msgstr ""
-#: common/models.py:97
+#: common/models.py:99
msgid "Enable barcode scanner support"
msgstr ""
-#: common/models.py:103
+#: common/models.py:105
msgid "IPN Regex"
msgstr ""
-#: common/models.py:104
+#: common/models.py:106
msgid "Regular expression pattern for matching Part IPN"
msgstr ""
-#: common/models.py:108
+#: common/models.py:110
msgid "Allow Duplicate IPN"
msgstr ""
-#: common/models.py:109
+#: common/models.py:111
msgid "Allow multiple parts to share the same IPN"
msgstr ""
-#: common/models.py:115
+#: common/models.py:117
msgid "Allow Editing IPN"
msgstr ""
-#: common/models.py:116
+#: common/models.py:118
msgid "Allow changing the IPN value while editing a part"
msgstr ""
-#: common/models.py:122
+#: common/models.py:124
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:123
+#: common/models.py:125
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:129
+#: common/models.py:131
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:130
+#: common/models.py:132
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:136
+#: common/models.py:138
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:137
+#: common/models.py:139
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:143
+#: common/models.py:145
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:144
+#: common/models.py:146
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:150
+#: common/models.py:152
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:151
+#: common/models.py:153
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:157 part/models.py:2079 part/templates/part/detail.html:160
-#: report/models.py:185 stock/forms.py:259 templates/js/table_filters.js:24
-#: templates/js/table_filters.js:310
+#: common/models.py:159 part/models.py:2117 part/templates/part/detail.html:160
+#: report/models.py:185 stock/forms.py:259 templates/js/table_filters.js:25
+#: templates/js/table_filters.js:311
msgid "Template"
msgstr ""
-#: common/models.py:158
+#: common/models.py:160
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:164 part/models.py:834 part/templates/part/detail.html:170
-#: templates/js/table_filters.js:123 templates/js/table_filters.js:322
+#: common/models.py:166 part/models.py:834 part/templates/part/detail.html:170
+#: templates/js/table_filters.js:124 templates/js/table_filters.js:323
msgid "Assembly"
msgstr ""
-#: common/models.py:165
+#: common/models.py:167
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:171 part/models.py:840 part/templates/part/detail.html:180
-#: templates/js/table_filters.js:326
+#: common/models.py:173 part/models.py:840 part/templates/part/detail.html:180
+#: templates/js/table_filters.js:327
msgid "Component"
msgstr ""
-#: common/models.py:172
+#: common/models.py:174
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:178 part/models.py:851 part/templates/part/detail.html:200
+#: common/models.py:180 part/models.py:851 part/templates/part/detail.html:200
msgid "Purchaseable"
msgstr ""
-#: common/models.py:179
+#: common/models.py:181
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:185 part/models.py:856 part/templates/part/detail.html:210
-#: templates/js/table_filters.js:334
+#: common/models.py:187 part/models.py:856 part/templates/part/detail.html:210
+#: templates/js/table_filters.js:335
msgid "Salable"
msgstr ""
-#: common/models.py:186
+#: common/models.py:188
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:192 part/models.py:846 part/templates/part/detail.html:190
-#: templates/js/table_filters.js:32 templates/js/table_filters.js:338
+#: common/models.py:194 part/models.py:846 part/templates/part/detail.html:190
+#: templates/js/table_filters.js:33 templates/js/table_filters.js:339
msgid "Trackable"
msgstr ""
-#: common/models.py:193
+#: common/models.py:195
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:199 part/models.py:866 part/templates/part/detail.html:150
-#: templates/js/table_filters.js:28
+#: common/models.py:201 part/models.py:866 part/templates/part/detail.html:150
+#: templates/js/table_filters.js:29
msgid "Virtual"
msgstr ""
-#: common/models.py:200
+#: common/models.py:202
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:206
+#: common/models.py:208
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:207
+#: common/models.py:209
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:213
+#: common/models.py:215 templates/stats.html:25
msgid "Debug Mode"
msgstr ""
-#: common/models.py:214
+#: common/models.py:216
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:220
+#: common/models.py:222
msgid "Page Size"
msgstr ""
-#: common/models.py:221
+#: common/models.py:223
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:231
+#: common/models.py:233
msgid "Test Reports"
msgstr ""
-#: common/models.py:232
+#: common/models.py:234
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:238
+#: common/models.py:240
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:239
+#: common/models.py:241
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:245
+#: common/models.py:247
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:246
+#: common/models.py:248
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:252
+#: common/models.py:254
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:253
+#: common/models.py:255
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:255 part/templates/part/detail.html:121
+#: common/models.py:257 part/templates/part/detail.html:121
msgid "days"
-msgstr ""
+msgstr "días"
-#: common/models.py:260
+#: common/models.py:262
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:261
+#: common/models.py:263
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:267
+#: common/models.py:269
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:268
+#: common/models.py:270
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:274
+#: common/models.py:276
msgid "Group by Part"
msgstr ""
-#: common/models.py:275
+#: common/models.py:277
msgid "Group stock items by part reference in table views"
msgstr ""
-#: common/models.py:281
+#: common/models.py:283
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:282
+#: common/models.py:284
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:288
+#: common/models.py:290
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:289
+#: common/models.py:291
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:294
+#: common/models.py:296
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:295
+#: common/models.py:297
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:299
+#: common/models.py:301
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:300
+#: common/models.py:302
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:305
+#: common/models.py:307
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:306
+#: common/models.py:308
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:529
+#: common/models.py:531
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:531
+#: common/models.py:533
msgid "Settings value"
msgstr ""
-#: common/models.py:566
+#: common/models.py:568
msgid "Must be an integer value"
msgstr ""
-#: common/models.py:589
+#: common/models.py:591
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:600
+#: common/models.py:602
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:623
+#: common/models.py:625
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:704 company/forms.py:177
+#: common/models.py:706 company/forms.py:177
msgid "Price break quantity"
msgstr ""
-#: common/models.py:712 company/templates/company/supplier_part_pricing.html:82
+#: common/models.py:714 company/templates/company/supplier_part_pricing.html:82
#: part/templates/part/sale_prices.html:90 templates/js/bom.js:255
msgid "Price"
msgstr ""
-#: common/models.py:713
+#: common/models.py:715
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:736
+#: common/models.py:804
msgid "Default"
msgstr ""
@@ -1721,24 +1835,42 @@ msgstr ""
msgid "Current value"
msgstr ""
-#: common/views.py:25
+#: common/views.py:32
msgid "Change Setting"
msgstr ""
-#: common/views.py:94
+#: common/views.py:101
msgid "Supplied value is not allowed"
msgstr ""
-#: common/views.py:103
+#: common/views.py:110
msgid "Supplied value must be a boolean"
msgstr ""
-#: company/forms.py:38 company/models.py:145
+#: common/views.py:184 order/templates/order/order_wizard/po_upload.html:42
+#: order/views.py:582 part/templates/part/bom_upload/upload_file.html:27
+msgid "Upload File"
+msgstr ""
+
+#: common/views.py:185 order/templates/order/order_wizard/match_fields.html:52
+#: order/views.py:583 part/templates/part/bom_upload/select_fields.html:58
+msgid "Match Fields"
+msgstr ""
+
+#: common/views.py:186
+msgid "Match Items"
+msgstr ""
+
+#: common/views.py:479
+msgid "Fields matching failed"
+msgstr ""
+
+#: company/forms.py:38 company/models.py:142
#: company/templates/company/detail.html:42
msgid "Currency"
msgstr ""
-#: company/forms.py:39 company/models.py:147
+#: company/forms.py:39 company/models.py:144
msgid "Default currency used for this company"
msgstr ""
@@ -1758,216 +1890,216 @@ msgstr ""
msgid "Single quantity price"
msgstr ""
-#: company/forms.py:128 company/models.py:324
+#: company/forms.py:128 company/models.py:321
msgid "Select manufacturer"
msgstr ""
-#: company/forms.py:134 company/models.py:331
+#: company/forms.py:134 company/models.py:328
msgid "Manufacturer Part Number"
msgstr ""
-#: company/forms.py:136 company/models.py:330
+#: company/forms.py:136 company/models.py:327
#: company/templates/company/manufacturer_part_base.html:89
#: company/templates/company/manufacturer_part_detail.html:26
-#: company/templates/company/supplier_part_base.html:101
+#: company/templates/company/supplier_part_base.html:102
#: company/templates/company/supplier_part_detail.html:35
#: order/templates/order/purchase_order_detail.html:158 part/bom.py:171
#: part/bom.py:242 templates/js/company.js:181 templates/js/company.js:307
msgid "MPN"
msgstr ""
-#: company/models.py:102
+#: company/models.py:99
msgid "Company description"
msgstr ""
-#: company/models.py:103
+#: company/models.py:100
msgid "Description of the company"
msgstr ""
-#: company/models.py:107 company/templates/company/company_base.html:70
+#: company/models.py:104 company/templates/company/company_base.html:70
#: company/templates/company/detail.html:33 templates/js/company.js:60
msgid "Website"
-msgstr ""
+msgstr "Página web"
-#: company/models.py:107
+#: company/models.py:104
msgid "Company website URL"
msgstr ""
-#: company/models.py:110 company/templates/company/company_base.html:77
+#: company/models.py:107 company/templates/company/company_base.html:77
msgid "Address"
msgstr ""
-#: company/models.py:111
+#: company/models.py:108
msgid "Company address"
msgstr ""
-#: company/models.py:114
+#: company/models.py:111
msgid "Phone number"
-msgstr ""
+msgstr "Teléfono"
+
+#: company/models.py:112
+msgid "Contact phone number"
+msgstr "Teléfono de contacto"
+
+#: company/models.py:115 company/templates/company/company_base.html:91
+msgid "Email"
+msgstr "Email"
#: company/models.py:115
-msgid "Contact phone number"
-msgstr ""
-
-#: company/models.py:118 company/templates/company/company_base.html:91
-msgid "Email"
-msgstr ""
-
-#: company/models.py:118
msgid "Contact email address"
msgstr ""
-#: company/models.py:121 company/templates/company/company_base.html:98
+#: company/models.py:118 company/templates/company/company_base.html:98
msgid "Contact"
-msgstr ""
+msgstr "Contacto"
-#: company/models.py:122
+#: company/models.py:119
msgid "Point of contact"
msgstr ""
-#: company/models.py:124 company/models.py:336 company/models.py:488
+#: company/models.py:121 company/models.py:333 company/models.py:485
#: order/models.py:103 part/models.py:743
#: report/templates/report/inventree_build_order_base.html:165
-#: stock/models.py:1560 templates/js/company.js:188 templates/js/company.js:318
+#: templates/js/company.js:188 templates/js/company.js:318
#: templates/js/part.js:431
msgid "Link"
msgstr ""
-#: company/models.py:124
+#: company/models.py:121
msgid "Link to external company information"
msgstr ""
-#: company/models.py:132 part/models.py:753
+#: company/models.py:129 part/models.py:753
msgid "Image"
msgstr ""
-#: company/models.py:137
+#: company/models.py:134
msgid "is customer"
msgstr ""
-#: company/models.py:137
+#: company/models.py:134
msgid "Do you sell items to this company?"
msgstr ""
-#: company/models.py:139
+#: company/models.py:136
msgid "is supplier"
msgstr ""
-#: company/models.py:139
+#: company/models.py:136
msgid "Do you purchase items from this company?"
msgstr ""
-#: company/models.py:141
+#: company/models.py:138
msgid "is manufacturer"
msgstr ""
-#: company/models.py:141
+#: company/models.py:138
msgid "Does this company manufacture parts?"
msgstr ""
-#: company/models.py:308 company/models.py:459 stock/models.py:373
-#: stock/templates/stock/item_base.html:224
+#: company/models.py:305 company/models.py:456 stock/models.py:405
+#: stock/templates/stock/item_base.html:230
msgid "Base Part"
msgstr ""
-#: company/models.py:312 company/models.py:463 order/views.py:1384
+#: company/models.py:309 company/models.py:460 order/views.py:1587
msgid "Select part"
msgstr ""
-#: company/models.py:323 company/templates/company/detail.html:57
+#: company/models.py:320 company/templates/company/detail.html:57
#: company/templates/company/manufacturer_part_base.html:85
#: company/templates/company/manufacturer_part_detail.html:25
#: company/templates/company/supplier_part_base.html:94
#: company/templates/company/supplier_part_detail.html:34 part/bom.py:170
-#: part/bom.py:241 stock/templates/stock/item_base.html:341
+#: part/bom.py:241 stock/templates/stock/item_base.html:347
#: templates/js/company.js:44 templates/js/company.js:165
#: templates/js/company.js:289
msgid "Manufacturer"
-msgstr ""
+msgstr "Fabricante"
-#: company/models.py:337
+#: company/models.py:334
msgid "URL for external manufacturer part link"
msgstr ""
-#: company/models.py:343
+#: company/models.py:340
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:469 company/templates/company/detail.html:62
+#: company/models.py:466 company/templates/company/detail.html:62
#: company/templates/company/supplier_part_base.html:84
#: company/templates/company/supplier_part_detail.html:25 order/models.py:190
#: order/templates/order/order_base.html:92
#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:175
-#: part/bom.py:286 stock/templates/stock/item_base.html:353
+#: part/bom.py:286 stock/templates/stock/item_base.html:359
#: templates/js/company.js:48 templates/js/company.js:263
#: templates/js/order.js:170
msgid "Supplier"
-msgstr ""
+msgstr "Proveedor"
-#: company/models.py:470
+#: company/models.py:467
msgid "Select supplier"
msgstr ""
-#: company/models.py:475 company/templates/company/supplier_part_base.html:88
+#: company/models.py:472 company/templates/company/supplier_part_base.html:88
#: company/templates/company/supplier_part_detail.html:26
#: order/templates/order/purchase_order_detail.html:149 part/bom.py:176
#: part/bom.py:287
msgid "SKU"
msgstr ""
-#: company/models.py:476
+#: company/models.py:473
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:482
+#: company/models.py:479
#: company/templates/company/manufacturer_part_base.html:6
#: company/templates/company/manufacturer_part_base.html:19
-#: stock/templates/stock/item_base.html:346
+#: stock/templates/stock/item_base.html:352
msgid "Manufacturer Part"
msgstr ""
-#: company/models.py:483
+#: company/models.py:480
msgid "Select manufacturer part"
msgstr ""
-#: company/models.py:489
+#: company/models.py:486
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:495
+#: company/models.py:492
msgid "Supplier part description"
msgstr ""
-#: company/models.py:500 company/templates/company/supplier_part_base.html:115
-#: company/templates/company/supplier_part_detail.html:38 part/models.py:2190
+#: company/models.py:497 company/templates/company/supplier_part_base.html:116
+#: company/templates/company/supplier_part_detail.html:38 part/models.py:2228
#: report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
-msgstr ""
+msgstr "Nota"
-#: company/models.py:504
+#: company/models.py:501 part/models.py:1614
msgid "base cost"
msgstr ""
-#: company/models.py:504
+#: company/models.py:501 part/models.py:1614
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:506 company/templates/company/supplier_part_base.html:108
-#: stock/models.py:397 stock/templates/stock/item_base.html:299
+#: company/models.py:503 company/templates/company/supplier_part_base.html:109
+#: stock/models.py:429 stock/templates/stock/item_base.html:305
#: templates/js/stock.js:667
msgid "Packaging"
msgstr ""
-#: company/models.py:506
+#: company/models.py:503
msgid "Part packaging"
msgstr ""
-#: company/models.py:508
+#: company/models.py:505 part/models.py:1616
msgid "multiple"
msgstr ""
-#: company/models.py:508
+#: company/models.py:505
msgid "Order multiple"
msgstr ""
@@ -1993,7 +2125,7 @@ msgstr ""
msgid "Download image from URL"
msgstr ""
-#: company/templates/company/company_base.html:46 order/views.py:306
+#: company/templates/company/company_base.html:46 order/views.py:311
msgid "Create Purchase Order"
msgstr ""
@@ -2013,7 +2145,7 @@ msgstr ""
#: company/templates/company/company_base.html:84
msgid "Phone"
-msgstr ""
+msgstr "Teléfono"
#: company/templates/company/delete.html:7
#, python-format
@@ -2022,8 +2154,7 @@ msgstr ""
#: company/templates/company/delete.html:12
#, python-format
-msgid ""
-"There are %(count)s parts sourced from this company.
\n"
+msgid "There are %(count)s parts sourced from this company.
\n"
"If this supplier is deleted, these supplier part entries will also be deleted."
msgstr ""
@@ -2039,12 +2170,13 @@ msgstr ""
msgid "Uses default currency"
msgstr ""
-#: company/templates/company/detail.html:67 order/models.py:450
-#: order/templates/order/sales_order_base.html:92 stock/models.py:415
-#: stock/models.py:416 stock/templates/stock/item_base.html:251
+#: company/templates/company/detail.html:67 order/models.py:461
+#: order/templates/order/sales_order_base.html:92 stock/models.py:447
+#: stock/models.py:448 stock/templates/stock/item_base.html:257
#: templates/js/company.js:40 templates/js/order.js:267
+#: templates/js/stock.js:1064
msgid "Customer"
-msgstr ""
+msgstr "Cliente"
#: company/templates/company/detail_manufacturer_part.html:11
#: templates/InvenTree/search.html:149
@@ -2067,7 +2199,7 @@ msgstr ""
#: part/templates/part/manufacturer.html:22
#: part/templates/part/supplier.html:20
msgid "Options"
-msgstr ""
+msgstr "Opciones"
#: company/templates/company/detail_manufacturer_part.html:33
#: company/templates/company/detail_supplier_part.html:32
@@ -2088,7 +2220,7 @@ msgstr ""
#: company/templates/company/detail_manufacturer_part.html:66
#: company/templates/company/detail_supplier_part.html:66
#: part/templates/part/bom.html:159 part/templates/part/category.html:118
-#: templates/js/stock.js:1157
+#: templates/js/stock.js:1279
msgid "New Part"
msgstr ""
@@ -2117,7 +2249,7 @@ msgstr ""
#: part/templates/part/category.html:114 part/templates/part/category.html:128
#: part/templates/part/stock.html:54 stock/templates/stock/location.html:163
msgid "Export"
-msgstr ""
+msgstr "Exportar"
#: company/templates/company/detail_supplier_part.html:11
#: company/templates/company/manufacturer_part_navbar.html:11
@@ -2135,19 +2267,19 @@ msgstr ""
#: company/templates/company/detail_supplier_part.html:22
#: company/templates/company/manufacturer_part_suppliers.html:17
#: order/templates/order/purchase_order_detail.html:49
-#: part/templates/part/supplier.html:17 templates/js/stock.js:1163
+#: part/templates/part/supplier.html:17 templates/js/stock.js:1285
msgid "New Supplier Part"
msgstr ""
#: company/templates/company/detail_supplier_part.html:72
#: company/templates/company/manufacturer_part_suppliers.html:47
-#: company/views.py:64 order/templates/order/purchase_orders.html:183
+#: company/views.py:64 order/templates/order/purchase_orders.html:185
#: part/templates/part/supplier.html:50
msgid "New Supplier"
msgstr ""
#: company/templates/company/detail_supplier_part.html:73 company/views.py:281
-#: order/templates/order/purchase_orders.html:184
+#: order/templates/order/purchase_orders.html:186
msgid "Create new Supplier"
msgstr ""
@@ -2205,7 +2337,7 @@ msgstr ""
#: company/templates/company/manufacturer_part_navbar.html:22
#: company/templates/company/navbar.html:41
#: company/templates/company/supplier_part_navbar.html:15
-#: part/templates/part/navbar.html:36 stock/api.py:51
+#: part/templates/part/navbar.html:36 stock/api.py:54
#: stock/templates/stock/loc_link.html:7 stock/templates/stock/location.html:36
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/index.html:128 templates/InvenTree/search.html:196
@@ -2234,7 +2366,7 @@ msgstr ""
#: part/templates/part/related.html:44 part/templates/part/supplier.html:22
#: stock/views.py:1002 users/models.py:187
msgid "Delete"
-msgstr ""
+msgstr "Eliminar"
#: company/templates/company/manufacturer_part_suppliers.html:48
#: part/templates/part/supplier.html:51
@@ -2258,7 +2390,7 @@ msgstr ""
#: stock/templates/stock/location_navbar.html:22
#: stock/templates/stock/location_navbar.html:29
#: templates/InvenTree/search.html:198 templates/js/stock.js:968
-#: templates/stats.html:72 templates/stats.html:81 users/models.py:42
+#: templates/stats.html:93 templates/stats.html:102 users/models.py:42
msgid "Stock Items"
msgstr ""
@@ -2313,8 +2445,8 @@ msgid "New Sales Order"
msgstr ""
#: company/templates/company/supplier_part_base.html:7
-#: company/templates/company/supplier_part_base.html:20 stock/models.py:382
-#: stock/templates/stock/item_base.html:358 templates/js/company.js:279
+#: company/templates/company/supplier_part_base.html:20 stock/models.py:414
+#: stock/templates/stock/item_base.html:364 templates/js/company.js:279
msgid "Supplier Part"
msgstr ""
@@ -2363,7 +2495,7 @@ msgid "Pricing Information"
msgstr ""
#: company/templates/company/supplier_part_pricing.html:19 company/views.py:794
-#: part/templates/part/sale_prices.html:17 part/views.py:2636
+#: part/templates/part/sale_prices.html:17 part/views.py:2644
msgid "Add Price Break"
msgstr ""
@@ -2386,14 +2518,14 @@ msgstr ""
#: part/templates/part/navbar.html:75 templates/InvenTree/search.html:306
#: templates/navbar.html:36
msgid "Manufacturers"
-msgstr ""
+msgstr "Fabricantes"
#: company/views.py:77 templates/InvenTree/search.html:336
#: templates/navbar.html:45
msgid "Customers"
msgstr ""
-#: company/views.py:78 order/templates/order/sales_orders.html:185
+#: company/views.py:78 order/templates/order/sales_orders.html:187
msgid "New Customer"
msgstr ""
@@ -2413,6 +2545,11 @@ msgstr ""
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
+#: company/views.py:205 part/views.py:887
+#, python-brace-format
+msgid "Invalid response: {code}"
+msgstr ""
+
#: company/views.py:214 part/views.py:896
msgid "Supplied URL is not a valid image file"
msgstr ""
@@ -2433,7 +2570,7 @@ msgstr ""
msgid "Edited company information"
msgstr ""
-#: company/views.py:287 order/templates/order/sales_orders.html:186
+#: company/views.py:287 order/templates/order/sales_orders.html:188
msgid "Create new Customer"
msgstr ""
@@ -2465,7 +2602,7 @@ msgstr ""
msgid "Edit Supplier Part"
msgstr ""
-#: company/views.py:578 templates/js/stock.js:1164
+#: company/views.py:578 templates/js/stock.js:1286
msgid "Create new Supplier Part"
msgstr ""
@@ -2473,15 +2610,15 @@ msgstr ""
msgid "Delete Supplier Part"
msgstr ""
-#: company/views.py:799 part/views.py:2640
+#: company/views.py:799 part/views.py:2648
msgid "Added new price break"
msgstr ""
-#: company/views.py:855 part/views.py:2684
+#: company/views.py:855 part/views.py:2692
msgid "Edit Price Break"
msgstr ""
-#: company/views.py:870 part/views.py:2698
+#: company/views.py:870 part/views.py:2706
msgid "Delete Price Break"
msgstr ""
@@ -2489,51 +2626,59 @@ msgstr ""
msgid "No valid objects provided to template"
msgstr ""
-#: label/models.py:102
+#: label/models.py:103
msgid "Label name"
msgstr ""
-#: label/models.py:109
+#: label/models.py:110
msgid "Label description"
msgstr ""
-#: label/models.py:116 stock/forms.py:202
+#: label/models.py:117 stock/forms.py:202
msgid "Label"
msgstr ""
-#: label/models.py:117
+#: label/models.py:118
msgid "Label template file"
msgstr ""
-#: label/models.py:123 report/models.py:274
+#: label/models.py:124 report/models.py:274
msgid "Enabled"
msgstr ""
-#: label/models.py:124
+#: label/models.py:125
msgid "Label template is enabled"
msgstr ""
-#: label/models.py:129
+#: label/models.py:130
msgid "Width [mm]"
msgstr ""
-#: label/models.py:130
+#: label/models.py:131
msgid "Label width, specified in mm"
msgstr ""
-#: label/models.py:136
+#: label/models.py:137
msgid "Height [mm]"
msgstr ""
-#: label/models.py:137
+#: label/models.py:138
msgid "Label height, specified in mm"
msgstr ""
-#: label/models.py:222 label/models.py:275
+#: label/models.py:144
+msgid "Filename Pattern"
+msgstr ""
+
+#: label/models.py:145
+msgid "Pattern for generating label filenames"
+msgstr ""
+
+#: label/models.py:244 label/models.py:297
msgid "Query filters (comma-separated list of key=value pairs"
msgstr ""
-#: label/models.py:223 label/models.py:276 report/models.py:294
+#: label/models.py:245 label/models.py:298 report/models.py:294
#: report/models.py:415 report/models.py:449
msgid "Filters"
msgstr ""
@@ -2571,15 +2716,15 @@ msgstr ""
msgid "Enter sales order number"
msgstr ""
-#: order/forms.py:145 order/models.py:462
+#: order/forms.py:145 order/models.py:473
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/forms.py:235
+#: order/forms.py:236
msgid "Enter stock item serial numbers"
msgstr ""
-#: order/forms.py:241
+#: order/forms.py:242
msgid "Enter quantity of stock items"
msgstr ""
@@ -2607,7 +2752,7 @@ msgstr ""
msgid "Order notes"
msgstr ""
-#: order/models.py:182 order/models.py:455
+#: order/models.py:182 order/models.py:466
msgid "Purchase order status"
msgstr ""
@@ -2648,8 +2793,8 @@ msgstr ""
msgid "Date order was completed"
msgstr ""
-#: order/models.py:243 part/views.py:1586 stock/models.py:270
-#: stock/models.py:953
+#: order/models.py:243 part/views.py:1586 stock/models.py:302
+#: stock/models.py:1018
msgid "Quantity must be greater than zero"
msgstr ""
@@ -2657,128 +2802,134 @@ msgstr ""
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:344
+#: order/models.py:346
msgid "Lines can only be received against an order marked as 'Placed'"
msgstr ""
-#: order/models.py:348
+#: order/models.py:350
msgid "Quantity must be an integer"
msgstr ""
-#: order/models.py:350
+#: order/models.py:352
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:369
-msgid "Received items"
-msgstr ""
-
-#: order/models.py:451
+#: order/models.py:462
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:457
+#: order/models.py:468
msgid "Customer Reference "
msgstr ""
-#: order/models.py:457
+#: order/models.py:468
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:465 templates/js/order.js:303
+#: order/models.py:476 templates/js/order.js:303
msgid "Shipment Date"
msgstr ""
-#: order/models.py:472
+#: order/models.py:483
msgid "shipped by"
msgstr ""
-#: order/models.py:516
+#: order/models.py:527
msgid "SalesOrder cannot be shipped as it is not currently pending"
msgstr ""
-#: order/models.py:603
+#: order/models.py:614
msgid "Item quantity"
msgstr ""
-#: order/models.py:605
+#: order/models.py:616
msgid "Line item reference"
msgstr ""
-#: order/models.py:607
+#: order/models.py:618
msgid "Line item notes"
msgstr ""
-#: order/models.py:633 order/models.py:677
+#: order/models.py:644 order/models.py:689
#: part/templates/part/allocation.html:17
#: part/templates/part/allocation.html:45
msgid "Order"
msgstr ""
-#: order/models.py:634 order/templates/order/order_base.html:9
+#: order/models.py:645 order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:24
#: report/templates/report/inventree_po_report.html:77
-#: stock/templates/stock/item_base.html:313 templates/js/order.js:148
+#: stock/templates/stock/item_base.html:319 templates/js/order.js:148
+#: templates/js/stock.js:1045
msgid "Purchase Order"
msgstr ""
-#: order/models.py:648
+#: order/models.py:659
msgid "Supplier part"
msgstr ""
-#: order/models.py:651 order/templates/order/order_base.html:131
+#: order/models.py:662 order/templates/order/order_base.html:131
#: order/templates/order/purchase_order_detail.html:189
#: order/templates/order/receive_parts.html:22
#: order/templates/order/sales_order_base.html:131
msgid "Received"
msgstr ""
-#: order/models.py:651
+#: order/models.py:662
msgid "Number of items received"
msgstr ""
-#: order/models.py:658 stock/models.py:508
-#: stock/templates/stock/item_base.html:320
+#: order/models.py:669 stock/models.py:540
+#: stock/templates/stock/item_base.html:326
msgid "Purchase Price"
msgstr ""
-#: order/models.py:659
+#: order/models.py:670
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:753 order/models.py:755
+#: order/models.py:698 part/templates/part/navbar.html:95
+#: part/templates/part/part_pricing.html:78
+msgid "Sale Price"
+msgstr ""
+
+#: order/models.py:699
+msgid "Unit sale price"
+msgstr ""
+
+#: order/models.py:774 order/models.py:776
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:759
+#: order/models.py:780
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:761
+#: order/models.py:782
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:764
+#: order/models.py:785
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:774
+#: order/models.py:795
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:779
+#: order/models.py:800
msgid "Line"
msgstr ""
-#: order/models.py:790
+#: order/models.py:811
msgid "Item"
msgstr ""
-#: order/models.py:791
+#: order/models.py:812
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:794
+#: order/models.py:815
msgid "Enter stock allocation quantity"
msgstr ""
@@ -2830,7 +2981,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:100
#: part/templates/part/category.html:185 part/templates/part/category.html:227
#: stock/templates/stock/location.html:191 templates/js/stock.js:708
-#: templates/js/stock.js:1169
+#: templates/js/stock.js:1291
msgid "New Location"
msgstr ""
@@ -2864,6 +3015,75 @@ msgstr ""
msgid "Order Notes"
msgstr ""
+#: order/templates/order/order_wizard/match_fields.html:9
+#: part/templates/part/bom_upload/select_fields.html:21
+msgid "Missing selections for the following required columns"
+msgstr ""
+
+#: order/templates/order/order_wizard/match_fields.html:20
+msgid "Duplicate selections found, see below. Fix them then retry submitting."
+msgstr ""
+
+#: order/templates/order/order_wizard/match_fields.html:27
+#: order/templates/order/order_wizard/match_parts.html:18
+#: order/templates/order/order_wizard/po_upload.html:40
+msgid "Previous Step"
+msgstr ""
+
+#: order/templates/order/order_wizard/match_fields.html:29
+#: order/templates/order/order_wizard/match_parts.html:20
+#: part/templates/part/bom_upload/select_fields.html:32
+msgid "Submit Selections"
+msgstr ""
+
+#: order/templates/order/order_wizard/match_fields.html:35
+#: part/templates/part/bom_upload/select_fields.html:41
+msgid "File Fields"
+msgstr ""
+
+#: order/templates/order/order_wizard/match_fields.html:42
+#: part/templates/part/bom_upload/select_fields.html:47
+msgid "Remove column"
+msgstr ""
+
+#: order/templates/order/order_wizard/match_fields.html:60
+msgid "Duplicate selection"
+msgstr ""
+
+#: order/templates/order/order_wizard/match_fields.html:71
+#: order/templates/order/order_wizard/match_parts.html:51
+#: part/templates/part/bom_upload/select_fields.html:76
+#: part/templates/part/bom_upload/select_parts.html:58
+msgid "Remove row"
+msgstr ""
+
+#: order/templates/order/order_wizard/match_parts.html:11
+#: part/templates/part/bom_upload/select_parts.html:21
+msgid "Errors exist in the submitted data"
+msgstr ""
+
+#: order/templates/order/order_wizard/match_parts.html:27
+#: part/templates/part/bom_upload/select_parts.html:39
+msgid "Row"
+msgstr ""
+
+#: order/templates/order/order_wizard/match_parts.html:28
+msgid "Select Supplier Part"
+msgstr ""
+
+#: order/templates/order/order_wizard/po_upload.html:11
+msgid "Upload File for Purchase Order"
+msgstr ""
+
+#: order/templates/order/order_wizard/po_upload.html:18
+#, python-format
+msgid "Step %(step)s of %(count)s"
+msgstr ""
+
+#: order/templates/order/order_wizard/po_upload.html:48
+msgid "Order is already processed. Files cannot be uploaded."
+msgstr ""
+
#: order/templates/order/order_wizard/select_parts.html:9
msgid "Step 1 of 2 - Select Part Suppliers"
msgstr ""
@@ -2936,8 +3156,8 @@ msgid "Purchase Order Items"
msgstr ""
#: order/templates/order/purchase_order_detail.html:24
-#: order/templates/order/sales_order_detail.html:22 order/views.py:1120
-#: order/views.py:1203
+#: order/templates/order/sales_order_detail.html:22 order/views.py:1311
+#: order/views.py:1394
msgid "Add Line Item"
msgstr ""
@@ -2946,11 +3166,12 @@ msgid "No line items found"
msgstr ""
#: order/templates/order/purchase_order_detail.html:180
+#: order/templates/order/sales_order_detail.html:235
msgid "Unit Price"
msgstr ""
#: order/templates/order/purchase_order_detail.html:221
-#: order/templates/order/sales_order_detail.html:294
+#: order/templates/order/sales_order_detail.html:328
msgid "Edit line item"
msgstr ""
@@ -2980,7 +3201,7 @@ msgstr ""
#: part/templates/part/category_partlist.html:10
#: templates/InvenTree/index.html:97 templates/InvenTree/search.html:114
#: templates/InvenTree/settings/tabs.html:25 templates/js/part.js:577
-#: templates/navbar.html:23 templates/stats.html:59 templates/stats.html:68
+#: templates/navbar.html:23 templates/stats.html:80 templates/stats.html:89
#: users/models.py:40
msgid "Parts"
msgstr ""
@@ -3042,59 +3263,72 @@ msgstr ""
msgid "Sales Order Items"
msgstr ""
-#: order/templates/order/sales_order_detail.html:92 templates/js/bom.js:342
+#: order/templates/order/sales_order_detail.html:95 templates/js/bom.js:342
#: templates/js/build.js:627 templates/js/build.js:1044
msgid "Actions"
msgstr ""
-#: order/templates/order/sales_order_detail.html:99 templates/js/build.js:515
+#: order/templates/order/sales_order_detail.html:102 templates/js/build.js:515
#: templates/js/build.js:849
msgid "Edit stock allocation"
msgstr ""
-#: order/templates/order/sales_order_detail.html:100 templates/js/build.js:517
+#: order/templates/order/sales_order_detail.html:103 templates/js/build.js:517
#: templates/js/build.js:850
msgid "Delete stock allocation"
msgstr ""
-#: order/templates/order/sales_order_detail.html:170
+#: order/templates/order/sales_order_detail.html:176
msgid "No matching line items"
msgstr ""
-#: order/templates/order/sales_order_detail.html:199
+#: order/templates/order/sales_order_detail.html:205
msgid "ID"
msgstr ""
-#: order/templates/order/sales_order_detail.html:229 templates/js/build.js:579
+#: order/templates/order/sales_order_detail.html:243 templates/js/build.js:579
#: templates/js/build.js:845
msgid "Allocated"
msgstr ""
-#: order/templates/order/sales_order_detail.html:231
+#: order/templates/order/sales_order_detail.html:245
msgid "Fulfilled"
msgstr ""
-#: order/templates/order/sales_order_detail.html:279
+#: order/templates/order/sales_order_detail.html:282
+msgid "PO"
+msgstr ""
+
+#: order/templates/order/sales_order_detail.html:312
msgid "Allocate serial numbers"
msgstr ""
-#: order/templates/order/sales_order_detail.html:282 templates/js/build.js:641
+#: order/templates/order/sales_order_detail.html:315 templates/js/build.js:641
msgid "Allocate stock"
msgstr ""
-#: order/templates/order/sales_order_detail.html:285
+#: order/templates/order/sales_order_detail.html:318
msgid "Purchase stock"
msgstr ""
-#: order/templates/order/sales_order_detail.html:289 templates/js/build.js:634
+#: order/templates/order/sales_order_detail.html:322 templates/js/build.js:634
#: templates/js/build.js:1052
msgid "Build stock"
msgstr ""
-#: order/templates/order/sales_order_detail.html:295
+#: order/templates/order/sales_order_detail.html:325
+#: order/templates/order/sales_order_detail.html:434
+msgid "Calculate price"
+msgstr ""
+
+#: order/templates/order/sales_order_detail.html:329
msgid "Delete line item "
msgstr ""
+#: order/templates/order/sales_order_detail.html:440
+msgid "Update Unit Price"
+msgstr ""
+
#: order/templates/order/sales_order_notes.html:14
msgid "Sales Order Notes"
msgstr ""
@@ -3136,164 +3370,189 @@ msgstr ""
msgid "Are you sure you wish to delete this line item?"
msgstr ""
-#: order/views.py:99
+#: order/views.py:104
msgid "Add Purchase Order Attachment"
msgstr ""
-#: order/views.py:149
+#: order/views.py:154
msgid "Add Sales Order Attachment"
msgstr ""
-#: order/views.py:341
+#: order/views.py:346
msgid "Create Sales Order"
msgstr ""
-#: order/views.py:376
+#: order/views.py:381
msgid "Edit Purchase Order"
msgstr ""
-#: order/views.py:396
+#: order/views.py:401
msgid "Edit Sales Order"
msgstr ""
-#: order/views.py:412
+#: order/views.py:417
msgid "Cancel Order"
msgstr ""
-#: order/views.py:421 order/views.py:447
+#: order/views.py:426 order/views.py:452
msgid "Confirm order cancellation"
msgstr ""
-#: order/views.py:424 order/views.py:450
+#: order/views.py:429 order/views.py:455
msgid "Order cannot be cancelled"
msgstr ""
-#: order/views.py:438
+#: order/views.py:443
msgid "Cancel sales order"
msgstr ""
-#: order/views.py:464
+#: order/views.py:469
msgid "Issue Order"
msgstr ""
-#: order/views.py:473
+#: order/views.py:478
msgid "Confirm order placement"
msgstr ""
-#: order/views.py:483
+#: order/views.py:488
msgid "Purchase order issued"
msgstr ""
-#: order/views.py:494
+#: order/views.py:499
msgid "Complete Order"
msgstr ""
-#: order/views.py:510
+#: order/views.py:515
msgid "Confirm order completion"
msgstr ""
-#: order/views.py:521
+#: order/views.py:526
msgid "Purchase order completed"
msgstr ""
-#: order/views.py:531
+#: order/views.py:536
msgid "Ship Order"
msgstr ""
-#: order/views.py:547
+#: order/views.py:552
msgid "Confirm order shipment"
msgstr ""
-#: order/views.py:553
+#: order/views.py:558
msgid "Could not ship order"
msgstr ""
-#: order/views.py:607
+#: order/views.py:584
+msgid "Match Supplier Parts"
+msgstr ""
+
+#: order/views.py:798
msgid "Receive Parts"
msgstr ""
-#: order/views.py:677
+#: order/views.py:868
msgid "Items received"
msgstr ""
-#: order/views.py:691
+#: order/views.py:882
msgid "No destination set"
msgstr ""
-#: order/views.py:736
+#: order/views.py:927
msgid "Error converting quantity to number"
msgstr ""
-#: order/views.py:742
+#: order/views.py:933
msgid "Receive quantity less than zero"
msgstr ""
-#: order/views.py:748
+#: order/views.py:939
msgid "No lines specified"
msgstr ""
-#: order/views.py:1069
+#: order/views.py:1260
#, python-brace-format
msgid "Ordered {n} parts"
msgstr ""
-#: order/views.py:1129
+#: order/views.py:1320
msgid "Supplier part must be specified"
msgstr ""
-#: order/views.py:1135
+#: order/views.py:1326
msgid "Supplier must match for Part and Order"
msgstr ""
-#: order/views.py:1254 order/views.py:1272
+#: order/views.py:1457 order/views.py:1475
msgid "Edit Line Item"
msgstr ""
-#: order/views.py:1288 order/views.py:1300
+#: order/views.py:1491 order/views.py:1503
msgid "Delete Line Item"
msgstr ""
-#: order/views.py:1293 order/views.py:1305
+#: order/views.py:1496 order/views.py:1508
msgid "Deleted line item"
msgstr ""
-#: order/views.py:1318
+#: order/views.py:1521
msgid "Allocate Serial Numbers"
msgstr ""
-#: order/views.py:1363
+#: order/views.py:1566
#, python-brace-format
msgid "Allocated {n} items"
msgstr ""
-#: order/views.py:1379
+#: order/views.py:1582
msgid "Select line item"
msgstr ""
-#: order/views.py:1410
-msgid "No matching item for serial"
+#: order/views.py:1613
+#, python-brace-format
+msgid "No matching item for serial {serial}"
msgstr ""
-#: order/views.py:1420
-msgid "is not in stock"
+#: order/views.py:1623
+#, python-brace-format
+msgid "{serial} is not in stock"
msgstr ""
-#: order/views.py:1428
-msgid "already allocated to an order"
+#: order/views.py:1631
+#, python-brace-format
+msgid "{serial} already allocated to an order"
msgstr ""
-#: order/views.py:1482
+#: order/views.py:1685
msgid "Allocate Stock to Order"
msgstr ""
-#: order/views.py:1556
+#: order/views.py:1759
msgid "Edit Allocation Quantity"
msgstr ""
-#: order/views.py:1571
+#: order/views.py:1774
msgid "Remove allocation"
msgstr ""
+#: order/views.py:1846
+msgid "Sales order not found"
+msgstr ""
+
+#: order/views.py:1852
+msgid "Price not found"
+msgstr ""
+
+#: order/views.py:1855
+#, python-brace-format
+msgid "Updated {part} unit-price to {price}"
+msgstr ""
+
+#: order/views.py:1860
+#, python-brace-format
+msgid "Updated {part} unit-price to {price} and quantity to {qty}"
+msgstr ""
+
#: part/bom.py:138 part/models.py:72 part/models.py:762
#: part/templates/part/category.html:66 part/templates/part/detail.html:90
msgid "Default Location"
@@ -3372,7 +3631,7 @@ msgstr ""
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:122 part/models.py:2077
+#: part/forms.py:122 part/models.py:2115
msgid "Parent Part"
msgstr ""
@@ -3448,7 +3707,7 @@ msgstr ""
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:344 part/models.py:2171
+#: part/forms.py:344 part/models.py:2209
msgid "Sub part"
msgstr ""
@@ -3468,14 +3727,14 @@ msgstr ""
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:82 part/models.py:2123
+#: part/models.py:82 part/models.py:2161
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
#: part/models.py:83 part/templates/part/category.html:23
#: part/templates/part/category.html:94 part/templates/part/category.html:141
-#: templates/InvenTree/search.html:127 templates/stats.html:63
+#: templates/InvenTree/search.html:127 templates/stats.html:84
#: users/models.py:39
msgid "Part Categories"
msgstr ""
@@ -3538,7 +3797,7 @@ msgstr ""
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:724 part/models.py:2122 part/templates/part/detail.html:73
+#: part/models.py:724 part/models.py:2160 part/templates/part/detail.html:73
#: part/templates/part/set_category.html:15 templates/js/part.js:385
msgid "Category"
msgstr ""
@@ -3593,7 +3852,7 @@ msgstr ""
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:828 part/models.py:2051 part/templates/part/detail.html:106
+#: part/models.py:828 part/models.py:2089 part/templates/part/detail.html:106
#: part/templates/part/params.html:29
msgid "Units"
msgstr ""
@@ -3623,8 +3882,8 @@ msgid "Can this part be sold to customers?"
msgstr ""
#: part/models.py:861 part/templates/part/detail.html:227
-#: templates/js/table_filters.js:20 templates/js/table_filters.js:60
-#: templates/js/table_filters.js:236 templates/js/table_filters.js:305
+#: templates/js/table_filters.js:21 templates/js/table_filters.js:61
+#: templates/js/table_filters.js:237 templates/js/table_filters.js:306
msgid "Active"
msgstr ""
@@ -3660,167 +3919,171 @@ msgstr ""
msgid "Creation User"
msgstr ""
-#: part/models.py:1949
-msgid "Test templates can only be created for trackable parts"
-msgstr ""
-
-#: part/models.py:1966
-msgid "Test with this name already exists for this part"
-msgstr ""
-
-#: part/models.py:1986 templates/js/part.js:638 templates/js/stock.js:104
-msgid "Test Name"
+#: part/models.py:1616
+msgid "Sell multiple"
msgstr ""
#: part/models.py:1987
+msgid "Test templates can only be created for trackable parts"
+msgstr ""
+
+#: part/models.py:2004
+msgid "Test with this name already exists for this part"
+msgstr ""
+
+#: part/models.py:2024 templates/js/part.js:638 templates/js/stock.js:104
+msgid "Test Name"
+msgstr ""
+
+#: part/models.py:2025
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:1992
+#: part/models.py:2030
msgid "Test Description"
msgstr ""
-#: part/models.py:1993
+#: part/models.py:2031
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:1998 templates/js/part.js:647
-#: templates/js/table_filters.js:222
+#: part/models.py:2036 templates/js/part.js:647
+#: templates/js/table_filters.js:223
msgid "Required"
msgstr ""
-#: part/models.py:1999
+#: part/models.py:2037
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2004 templates/js/part.js:655
+#: part/models.py:2042 templates/js/part.js:655
msgid "Requires Value"
msgstr ""
-#: part/models.py:2005
+#: part/models.py:2043
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2010 templates/js/part.js:662
+#: part/models.py:2048 templates/js/part.js:662
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2011
+#: part/models.py:2049
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2044
+#: part/models.py:2082
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2049
+#: part/models.py:2087
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2051
+#: part/models.py:2089
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2079 part/models.py:2128 part/models.py:2129
+#: part/models.py:2117 part/models.py:2166 part/models.py:2167
#: templates/InvenTree/settings/category.html:62
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2081
+#: part/models.py:2119
msgid "Data"
msgstr ""
-#: part/models.py:2081
+#: part/models.py:2119
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2133 templates/InvenTree/settings/category.html:67
+#: part/models.py:2171 templates/InvenTree/settings/category.html:67
msgid "Default Value"
msgstr ""
-#: part/models.py:2134
+#: part/models.py:2172
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2163
+#: part/models.py:2201
msgid "Select parent part"
msgstr ""
-#: part/models.py:2172
+#: part/models.py:2210
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2178
+#: part/models.py:2216
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2180 templates/js/bom.js:216 templates/js/bom.js:269
+#: part/models.py:2218 templates/js/bom.js:216 templates/js/bom.js:269
msgid "Optional"
msgstr ""
-#: part/models.py:2180
+#: part/models.py:2218
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2183
+#: part/models.py:2221
msgid "Overage"
msgstr ""
-#: part/models.py:2184
+#: part/models.py:2222
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2187
+#: part/models.py:2225
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2190
+#: part/models.py:2228
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2192
+#: part/models.py:2230
msgid "Checksum"
msgstr ""
-#: part/models.py:2192
+#: part/models.py:2230
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2196 templates/js/bom.js:279 templates/js/bom.js:286
-#: templates/js/table_filters.js:50
+#: part/models.py:2234 templates/js/bom.js:279 templates/js/bom.js:286
+#: templates/js/table_filters.js:51
msgid "Inherited"
msgstr ""
-#: part/models.py:2197
+#: part/models.py:2235
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2273 part/views.py:1592 part/views.py:1644
-#: stock/models.py:260
+#: part/models.py:2311 part/views.py:1592 part/views.py:1644
+#: stock/models.py:292
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2282 part/models.py:2284
+#: part/models.py:2320 part/models.py:2322
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2287
+#: part/models.py:2325
msgid "BOM Item"
msgstr ""
-#: part/models.py:2404
+#: part/models.py:2442
msgid "Part 1"
msgstr ""
-#: part/models.py:2408
+#: part/models.py:2446
msgid "Part 2"
msgstr ""
-#: part/models.py:2408
+#: part/models.py:2446
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2440
+#: part/models.py:2478
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -3905,7 +4168,7 @@ msgid "All selected BOM items will be deleted"
msgstr ""
#: part/templates/part/bom.html:160 part/views.py:584
-#: templates/js/stock.js:1158
+#: templates/js/stock.js:1280
msgid "Create New Part"
msgstr ""
@@ -3923,51 +4186,18 @@ msgstr ""
msgid "Step 2 - Select Fields"
msgstr ""
-#: part/templates/part/bom_upload/select_fields.html:21
-msgid "Missing selections for the following required columns"
-msgstr ""
-
-#: part/templates/part/bom_upload/select_fields.html:32
-msgid "Submit Selections"
-msgstr ""
-
-#: part/templates/part/bom_upload/select_fields.html:41
-msgid "File Fields"
-msgstr ""
-
-#: part/templates/part/bom_upload/select_fields.html:47
-msgid "Remove column"
-msgstr ""
-
-#: part/templates/part/bom_upload/select_fields.html:58
-msgid "Match Fields"
-msgstr ""
-
#: part/templates/part/bom_upload/select_fields.html:68
msgid "Duplicate column selection"
msgstr ""
-#: part/templates/part/bom_upload/select_fields.html:76
-#: part/templates/part/bom_upload/select_parts.html:58
-msgid "Remove row"
-msgstr ""
-
#: part/templates/part/bom_upload/select_parts.html:16
msgid "Step 3 - Select Parts"
msgstr ""
-#: part/templates/part/bom_upload/select_parts.html:21
-msgid "Errors exist in the submitted data"
-msgstr ""
-
#: part/templates/part/bom_upload/select_parts.html:27
msgid "Submit BOM"
msgstr ""
-#: part/templates/part/bom_upload/select_parts.html:39
-msgid "Row"
-msgstr ""
-
#: part/templates/part/bom_upload/select_parts.html:40
#: part/templates/part/bom_upload/select_parts.html:69
msgid "Select Part"
@@ -3998,10 +4228,6 @@ msgstr ""
msgid "Each part must already exist in the database"
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:27
-msgid "Upload File"
-msgstr ""
-
#: part/templates/part/bom_validate.html:6
#, python-format
msgid "Confirm that the Bill of Materials (BOM) is valid for:
%(part)s"
@@ -4023,7 +4249,7 @@ msgstr ""
msgid "All parts"
msgstr ""
-#: part/templates/part/category.html:29 part/views.py:2282
+#: part/templates/part/category.html:29 part/views.py:2290
msgid "Create new part category"
msgstr ""
@@ -4091,7 +4317,7 @@ msgstr ""
msgid "Create new Part Category"
msgstr ""
-#: part/templates/part/category.html:228 stock/views.py:1359
+#: part/templates/part/category.html:228 stock/views.py:1391
msgid "Create new Stock Location"
msgstr ""
@@ -4282,15 +4508,11 @@ msgstr ""
msgid "Sales Price Information"
msgstr ""
-#: part/templates/part/navbar.html:95
-msgid "Sale Price"
-msgstr ""
-
#: part/templates/part/navbar.html:106 part/templates/part/part_tests.html:10
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/navbar.html:109 stock/templates/stock/item_base.html:398
+#: part/templates/part/navbar.html:109 stock/templates/stock/item_base.html:404
msgid "Tests"
msgstr ""
@@ -4315,7 +4537,7 @@ msgstr ""
#: part/templates/part/params.html:28
#: report/templates/report/inventree_test_report_base.html:90
-#: stock/models.py:1655 templates/InvenTree/settings/header.html:8
+#: stock/models.py:1754 templates/InvenTree/settings/header.html:8
#: templates/js/stock.js:124
msgid "Value"
msgstr ""
@@ -4351,19 +4573,19 @@ msgid "Star this part"
msgstr ""
#: part/templates/part/part_base.html:47
-#: stock/templates/stock/item_base.html:131
+#: stock/templates/stock/item_base.html:137
#: stock/templates/stock/location.html:51
msgid "Barcode actions"
msgstr ""
#: part/templates/part/part_base.html:49
-#: stock/templates/stock/item_base.html:133
+#: stock/templates/stock/item_base.html:139
#: stock/templates/stock/location.html:53 templates/qr_button.html:1
msgid "Show QR Code"
msgstr ""
#: part/templates/part/part_base.html:50
-#: stock/templates/stock/item_base.html:149
+#: stock/templates/stock/item_base.html:155
#: stock/templates/stock/location.html:54
msgid "Print Label"
msgstr ""
@@ -4392,7 +4614,7 @@ msgstr ""
msgid "Delete part"
msgstr ""
-#: part/templates/part/part_base.html:123 templates/js/table_filters.js:156
+#: part/templates/part/part_base.html:123 templates/js/table_filters.js:157
msgid "In Stock"
msgstr ""
@@ -4420,42 +4642,39 @@ msgstr ""
msgid "Calculate"
msgstr ""
-#: part/templates/part/part_pricing.html:8
-#, python-format
-msgid "Pricing information for:
%(part)s."
-msgstr ""
-
-#: part/templates/part/part_pricing.html:23
+#: part/templates/part/part_pricing.html:19
msgid "Supplier Pricing"
msgstr ""
-#: part/templates/part/part_pricing.html:27
-#: part/templates/part/part_pricing.html:53
+#: part/templates/part/part_pricing.html:23
+#: part/templates/part/part_pricing.html:49
+#: part/templates/part/part_pricing.html:81
msgid "Unit Cost"
msgstr ""
-#: part/templates/part/part_pricing.html:33
-#: part/templates/part/part_pricing.html:59
+#: part/templates/part/part_pricing.html:29
+#: part/templates/part/part_pricing.html:55
+#: part/templates/part/part_pricing.html:85
msgid "Total Cost"
msgstr ""
-#: part/templates/part/part_pricing.html:41
+#: part/templates/part/part_pricing.html:37
msgid "No supplier pricing available"
msgstr ""
-#: part/templates/part/part_pricing.html:49
+#: part/templates/part/part_pricing.html:45
msgid "BOM Pricing"
msgstr ""
-#: part/templates/part/part_pricing.html:67
+#: part/templates/part/part_pricing.html:63
msgid "Note: BOM pricing is incomplete for this part"
msgstr ""
-#: part/templates/part/part_pricing.html:74
+#: part/templates/part/part_pricing.html:70
msgid "No BOM pricing available"
msgstr ""
-#: part/templates/part/part_pricing.html:84
+#: part/templates/part/part_pricing.html:94
msgid "No pricing information is available for this part."
msgstr ""
@@ -4564,6 +4783,10 @@ msgstr ""
msgid "New Variant"
msgstr ""
+#: part/templatetags/inventree_extras.py:97
+msgid "Unknown database"
+msgstr ""
+
#: part/views.py:89
msgid "Add Related Part"
msgstr ""
@@ -4713,63 +4936,63 @@ msgstr ""
msgid "Part Pricing"
msgstr ""
-#: part/views.py:2081
+#: part/views.py:2089
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:2091
+#: part/views.py:2099
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:2098
+#: part/views.py:2106
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:2106
+#: part/views.py:2114
msgid "Create Part Parameter"
msgstr ""
-#: part/views.py:2156
+#: part/views.py:2164
msgid "Edit Part Parameter"
msgstr ""
-#: part/views.py:2170
+#: part/views.py:2178
msgid "Delete Part Parameter"
msgstr ""
-#: part/views.py:2230
+#: part/views.py:2238
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:2268
+#: part/views.py:2276
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:2274
+#: part/views.py:2282
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:2326
+#: part/views.py:2334
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:2427
+#: part/views.py:2435
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:2483
+#: part/views.py:2491
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:2502
+#: part/views.py:2510
msgid "Create BOM Item"
msgstr ""
-#: part/views.py:2572
+#: part/views.py:2580
msgid "Edit BOM item"
msgstr ""
-#: part/views.py:2628
+#: part/views.py:2636
msgid "Confim BOM item deletion"
msgstr ""
@@ -4871,17 +5094,17 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:1643
+#: stock/models.py:1742
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:89
-#: stock/models.py:1649
+#: stock/models.py:1748
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:92
-#: templates/js/order.js:195 templates/js/stock.js:986
+#: templates/js/order.js:195 templates/js/stock.js:984
msgid "Date"
msgstr ""
@@ -4893,22 +5116,22 @@ msgstr ""
msgid "Fail"
msgstr ""
-#: stock/api.py:199
+#: stock/api.py:212
#, python-brace-format
msgid "Updated stock for {n} items"
msgstr ""
-#: stock/api.py:268
+#: stock/api.py:281
#, python-brace-format
msgid "Moved {n} parts to {loc}"
msgstr ""
-#: stock/forms.py:114 stock/forms.py:406 stock/models.py:475
-#: stock/templates/stock/item_base.html:365 templates/js/stock.js:656
+#: stock/forms.py:114 stock/forms.py:418 stock/models.py:507
+#: stock/templates/stock/item_base.html:371 templates/js/stock.js:656
msgid "Expiry Date"
msgstr ""
-#: stock/forms.py:115 stock/forms.py:407
+#: stock/forms.py:115 stock/forms.py:419
msgid "Expiration date for this stock item"
msgstr ""
@@ -4936,8 +5159,8 @@ msgstr ""
msgid "Select test report template"
msgstr ""
-#: stock/forms.py:267 templates/js/table_filters.js:70
-#: templates/js/table_filters.js:133
+#: stock/forms.py:267 templates/js/table_filters.js:71
+#: templates/js/table_filters.js:134
msgid "Include sublocations"
msgstr ""
@@ -4993,243 +5216,187 @@ msgstr ""
msgid "Set the destination as the default location for selected parts"
msgstr ""
-#: stock/models.py:54 stock/models.py:513
+#: stock/models.py:54 stock/models.py:545
msgid "Owner"
msgstr ""
-#: stock/models.py:55 stock/models.py:514
+#: stock/models.py:55 stock/models.py:546
msgid "Select Owner"
msgstr ""
-#: stock/models.py:205
-msgid "Created stock item"
-msgstr ""
-
-#: stock/models.py:241
+#: stock/models.py:273
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:277
+#: stock/models.py:309
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:287 stock/models.py:296
+#: stock/models.py:319 stock/models.py:328
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:288
+#: stock/models.py:320
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:310
+#: stock/models.py:342
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:316
+#: stock/models.py:348
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:323
+#: stock/models.py:355
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:365
+#: stock/models.py:397
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:374
+#: stock/models.py:406
msgid "Base part"
msgstr ""
-#: stock/models.py:383
+#: stock/models.py:415
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:388 stock/templates/stock/stock_app_base.html:8
+#: stock/models.py:420 stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:391
+#: stock/models.py:423
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:398
+#: stock/models.py:430
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:403 stock/templates/stock/item_base.html:259
+#: stock/models.py:435 stock/templates/stock/item_base.html:265
msgid "Installed In"
msgstr ""
-#: stock/models.py:406
+#: stock/models.py:438
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:422
+#: stock/models.py:454
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:434
+#: stock/models.py:466
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:438
+#: stock/models.py:470
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:447
+#: stock/models.py:479
msgid "Source Build"
msgstr ""
-#: stock/models.py:449
+#: stock/models.py:481
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:460
+#: stock/models.py:492
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:463
+#: stock/models.py:495
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:469
+#: stock/models.py:501
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:476
+#: stock/models.py:508
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:489
+#: stock/models.py:521
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:489
+#: stock/models.py:521
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:499 stock/templates/stock/item_notes.html:13
+#: stock/models.py:531 stock/templates/stock/item_notes.html:13
#: stock/templates/stock/navbar.html:54
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:509
+#: stock/models.py:541
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:614
-msgid "Assigned to Customer"
-msgstr ""
-
-#: stock/models.py:616
-msgid "Manually assigned to customer"
-msgstr ""
-
-#: stock/models.py:629
-msgid "Returned from customer"
-msgstr ""
-
-#: stock/models.py:631
-msgid "Returned to location"
-msgstr ""
-
-#: stock/models.py:792
-msgid "Installed into stock item"
-msgstr ""
-
-#: stock/models.py:800
-msgid "Installed stock item"
-msgstr ""
-
-#: stock/models.py:824
-msgid "Uninstalled stock item"
-msgstr ""
-
-#: stock/models.py:843
-msgid "Uninstalled into location"
-msgstr ""
-
-#: stock/models.py:944
+#: stock/models.py:1009
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:950
+#: stock/models.py:1015
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:956
+#: stock/models.py:1021
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:959
+#: stock/models.py:1024
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:962
+#: stock/models.py:1027
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:994
-msgid "Add serial number"
-msgstr ""
-
-#: stock/models.py:997
+#: stock/models.py:1034
#, python-brace-format
-msgid "Serialized {n} items"
+msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1075
-msgid "Split from existing stock"
-msgstr ""
-
-#: stock/models.py:1113
+#: stock/models.py:1192
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1556
-msgid "Title"
-msgstr ""
-
-#: stock/models.py:1556
-msgid "Tracking entry title"
-msgstr ""
-
-#: stock/models.py:1558
+#: stock/models.py:1666
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1560
-msgid "Link to external page for further information"
-msgstr ""
-
-#: stock/models.py:1620
+#: stock/models.py:1719
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1626
+#: stock/models.py:1725
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1644
+#: stock/models.py:1743
msgid "Test name"
msgstr ""
-#: stock/models.py:1650 templates/js/table_filters.js:212
+#: stock/models.py:1749 templates/js/table_filters.js:213
msgid "Test result"
msgstr ""
-#: stock/models.py:1656
+#: stock/models.py:1755
msgid "Test output value"
msgstr ""
-#: stock/models.py:1663
+#: stock/models.py:1762
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1669
+#: stock/models.py:1768
msgid "Test notes"
msgstr ""
@@ -5284,134 +5451,134 @@ msgid "This stock item will be automatically deleted when all stock is depleted.
msgstr ""
#: stock/templates/stock/item_base.html:95
-#: stock/templates/stock/item_base.html:369 templates/js/table_filters.js:145
+#: stock/templates/stock/item_base.html:375 templates/js/table_filters.js:146
msgid "Expired"
msgstr ""
-#: stock/templates/stock/item_base.html:99
-#: stock/templates/stock/item_base.html:371 templates/js/table_filters.js:150
+#: stock/templates/stock/item_base.html:105
+#: stock/templates/stock/item_base.html:377 templates/js/table_filters.js:151
msgid "Stale"
msgstr ""
-#: stock/templates/stock/item_base.html:136 templates/js/barcode.js:309
+#: stock/templates/stock/item_base.html:142 templates/js/barcode.js:309
#: templates/js/barcode.js:314
msgid "Unlink Barcode"
msgstr ""
-#: stock/templates/stock/item_base.html:138
+#: stock/templates/stock/item_base.html:144
msgid "Link Barcode"
msgstr ""
-#: stock/templates/stock/item_base.html:140 templates/stock_table.html:31
+#: stock/templates/stock/item_base.html:146 templates/stock_table.html:31
msgid "Scan to Location"
msgstr ""
-#: stock/templates/stock/item_base.html:147
+#: stock/templates/stock/item_base.html:153
msgid "Printing actions"
msgstr ""
-#: stock/templates/stock/item_base.html:151
+#: stock/templates/stock/item_base.html:157
#: stock/templates/stock/item_tests.html:27
msgid "Test Report"
msgstr ""
-#: stock/templates/stock/item_base.html:160
+#: stock/templates/stock/item_base.html:166
msgid "Stock adjustment actions"
msgstr ""
-#: stock/templates/stock/item_base.html:164
+#: stock/templates/stock/item_base.html:170
#: stock/templates/stock/location.html:65 templates/stock_table.html:57
msgid "Count stock"
msgstr ""
-#: stock/templates/stock/item_base.html:167 templates/stock_table.html:55
+#: stock/templates/stock/item_base.html:173 templates/stock_table.html:55
msgid "Add stock"
msgstr ""
-#: stock/templates/stock/item_base.html:170 templates/stock_table.html:56
+#: stock/templates/stock/item_base.html:176 templates/stock_table.html:56
msgid "Remove stock"
msgstr ""
-#: stock/templates/stock/item_base.html:173
+#: stock/templates/stock/item_base.html:179
msgid "Serialize stock"
msgstr ""
-#: stock/templates/stock/item_base.html:177
+#: stock/templates/stock/item_base.html:183
msgid "Transfer stock"
msgstr ""
-#: stock/templates/stock/item_base.html:180
+#: stock/templates/stock/item_base.html:186
msgid "Assign to customer"
msgstr ""
-#: stock/templates/stock/item_base.html:183
+#: stock/templates/stock/item_base.html:189
msgid "Return to stock"
msgstr ""
-#: stock/templates/stock/item_base.html:187 templates/js/stock.js:1299
+#: stock/templates/stock/item_base.html:193 templates/js/stock.js:1421
msgid "Uninstall stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:187
+#: stock/templates/stock/item_base.html:193
msgid "Uninstall"
msgstr ""
-#: stock/templates/stock/item_base.html:196
+#: stock/templates/stock/item_base.html:202
#: stock/templates/stock/location.html:62
msgid "Stock actions"
msgstr ""
-#: stock/templates/stock/item_base.html:199
+#: stock/templates/stock/item_base.html:205
msgid "Convert to variant"
msgstr ""
-#: stock/templates/stock/item_base.html:202
+#: stock/templates/stock/item_base.html:208
msgid "Duplicate stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:204
+#: stock/templates/stock/item_base.html:210
msgid "Edit stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:207
+#: stock/templates/stock/item_base.html:213
msgid "Delete stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:219
+#: stock/templates/stock/item_base.html:225
msgid "Stock Item Details"
msgstr ""
-#: stock/templates/stock/item_base.html:278 templates/js/build.js:498
+#: stock/templates/stock/item_base.html:284 templates/js/build.js:498
msgid "No location set"
msgstr ""
-#: stock/templates/stock/item_base.html:285
+#: stock/templates/stock/item_base.html:291
msgid "Barcode Identifier"
msgstr ""
-#: stock/templates/stock/item_base.html:327
+#: stock/templates/stock/item_base.html:333
msgid "Parent Item"
msgstr ""
-#: stock/templates/stock/item_base.html:369
+#: stock/templates/stock/item_base.html:375
#, python-format
msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:371
+#: stock/templates/stock/item_base.html:377
#, python-format
msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:378 templates/js/stock.js:662
+#: stock/templates/stock/item_base.html:384 templates/js/stock.js:662
msgid "Last Updated"
msgstr ""
-#: stock/templates/stock/item_base.html:383
+#: stock/templates/stock/item_base.html:389
msgid "Last Stocktake"
msgstr ""
-#: stock/templates/stock/item_base.html:387
+#: stock/templates/stock/item_base.html:393
msgid "No stocktake performed"
msgstr ""
@@ -5522,7 +5689,7 @@ msgid "Stock Details"
msgstr ""
#: stock/templates/stock/location.html:117 templates/InvenTree/search.html:279
-#: templates/stats.html:76 users/models.py:41
+#: templates/stats.html:97 users/models.py:41
msgid "Stock Locations"
msgstr ""
@@ -5562,7 +5729,7 @@ msgstr ""
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:1332
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:1364
msgid "Convert Stock Item"
msgstr ""
@@ -5595,8 +5762,8 @@ msgstr ""
msgid "Edit Stock Location"
msgstr ""
-#: stock/views.py:230 stock/views.py:1322 stock/views.py:1433
-#: stock/views.py:1798
+#: stock/views.py:230 stock/views.py:1343 stock/views.py:1465
+#: stock/views.py:1830
msgid "Owner is required (ownership control is enabled)"
msgstr ""
@@ -5762,43 +5929,47 @@ msgstr ""
msgid "Deleted {n} stock items"
msgstr ""
-#: stock/views.py:1224
+#: stock/views.py:1222
+msgid "Edit Stock Item Status"
+msgstr ""
+
+#: stock/views.py:1245
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:1450
+#: stock/views.py:1482
msgid "Serialize Stock"
msgstr ""
-#: stock/views.py:1543 templates/js/build.js:244
+#: stock/views.py:1575 templates/js/build.js:244
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1685
+#: stock/views.py:1717
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1767
+#: stock/views.py:1799
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1867
+#: stock/views.py:1899
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:1880
+#: stock/views.py:1912
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1891
+#: stock/views.py:1923
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1898
+#: stock/views.py:1930
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1907
+#: stock/views.py:1939
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -5896,8 +6067,7 @@ msgstr ""
#: templates/InvenTree/settings/appearance.html:29
#, python-format
-msgid ""
-"\n"
+msgid "\n"
" The CSS sheet \"%(invalid_color_theme)s.css\" for the currently selected color theme was not found.
\n"
" Please select another color theme :)\n"
" "
@@ -6100,9 +6270,17 @@ msgstr ""
msgid "Submit Bug Report"
msgstr ""
-#: templates/about.html:82 templates/js/modals.js:550
-#: templates/js/modals.js:809 templates/modals.html:28 templates/modals.html:52
-#: templates/modals.html:93
+#: templates/about.html:80 templates/clip.html:4
+msgid "copy to clipboard"
+msgstr ""
+
+#: templates/about.html:80
+msgid "copy version information"
+msgstr ""
+
+#: templates/about.html:90 templates/js/modals.js:568
+#: templates/js/modals.js:846 templates/modals.html:29 templates/modals.html:54
+#: templates/modals.html:97
msgid "Close"
msgstr ""
@@ -6110,10 +6288,6 @@ msgstr ""
msgid "Add Attachment"
msgstr ""
-#: templates/attachment_table.html:15
-msgid "File"
-msgstr ""
-
#: templates/attachment_table.html:17
msgid "Uploaded"
msgstr ""
@@ -6166,7 +6340,7 @@ msgstr ""
msgid "Unknown response from server"
msgstr ""
-#: templates/js/barcode.js:119 templates/js/modals.js:857
+#: templates/js/barcode.js:119 templates/js/modals.js:901
msgid "Invalid server response"
msgstr ""
@@ -6311,7 +6485,7 @@ msgstr ""
#: templates/js/build.js:708 templates/js/part.js:324 templates/js/part.js:546
#: templates/js/stock.js:511 templates/js/stock.js:938
-#: templates/js/stock.js:1331
+#: templates/js/stock.js:1453
msgid "Select"
msgstr ""
@@ -6409,96 +6583,96 @@ msgstr ""
msgid "Select Label Template"
msgstr ""
-#: templates/js/modals.js:256
+#: templates/js/modals.js:265
msgid "Waiting for server..."
msgstr ""
-#: templates/js/modals.js:406
+#: templates/js/modals.js:424
msgid "Show Error Information"
msgstr ""
-#: templates/js/modals.js:473 templates/modals.html:73
+#: templates/js/modals.js:491 templates/modals.html:76
msgid "Accept"
msgstr ""
-#: templates/js/modals.js:474 templates/modals.html:72
+#: templates/js/modals.js:492 templates/modals.html:75
msgid "Cancel"
msgstr ""
-#: templates/js/modals.js:538
+#: templates/js/modals.js:556
msgid "Loading Data"
msgstr ""
-#: templates/js/modals.js:549 templates/js/modals.js:808
-#: templates/modals.html:29 templates/modals.html:53
+#: templates/js/modals.js:567 templates/js/modals.js:845
+#: templates/modals.html:30 templates/modals.html:55
msgid "Submit"
msgstr ""
-#: templates/js/modals.js:760
+#: templates/js/modals.js:797
msgid "Invalid response from server"
msgstr ""
-#: templates/js/modals.js:760
+#: templates/js/modals.js:797
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/modals.js:773
+#: templates/js/modals.js:810
msgid "Error posting form data"
msgstr ""
-#: templates/js/modals.js:857
+#: templates/js/modals.js:901
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/modals.js:867
+#: templates/js/modals.js:911
msgid "No Response"
msgstr ""
-#: templates/js/modals.js:868
+#: templates/js/modals.js:912
msgid "No response from the InvenTree server"
msgstr ""
-#: templates/js/modals.js:872
+#: templates/js/modals.js:916
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/modals.js:873
+#: templates/js/modals.js:917
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/modals.js:877
+#: templates/js/modals.js:921
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/modals.js:878
+#: templates/js/modals.js:922
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/modals.js:882
+#: templates/js/modals.js:926
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/modals.js:883
+#: templates/js/modals.js:927
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/modals.js:887
+#: templates/js/modals.js:931
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/modals.js:888
+#: templates/js/modals.js:932
msgid "The requested resource could not be located on the server"
msgstr ""
-#: templates/js/modals.js:892
+#: templates/js/modals.js:936
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/modals.js:893
+#: templates/js/modals.js:937
msgid "Connection timeout while requesting data from server"
msgstr ""
-#: templates/js/modals.js:896
+#: templates/js/modals.js:940
msgid "Error requesting form data"
msgstr ""
@@ -6542,7 +6716,7 @@ msgstr ""
msgid "No category"
msgstr ""
-#: templates/js/part.js:409 templates/js/table_filters.js:318
+#: templates/js/part.js:409 templates/js/table_filters.js:319
msgid "Low stock"
msgstr ""
@@ -6740,7 +6914,7 @@ msgstr ""
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/stock.js:620 templates/js/table_filters.js:138
+#: templates/js/stock.js:620 templates/js/table_filters.js:139
msgid "Depleted"
msgstr ""
@@ -6764,189 +6938,213 @@ msgstr ""
msgid "Status code must be selected"
msgstr ""
-#: templates/js/stock.js:1050
+#: templates/js/stock.js:994
+msgid "Invalid date"
+msgstr ""
+
+#: templates/js/stock.js:1036
+msgid "Location no longer exists"
+msgstr ""
+
+#: templates/js/stock.js:1055
+msgid "Purchase order no longer exists"
+msgstr ""
+
+#: templates/js/stock.js:1074
+msgid "Customer no longer exists"
+msgstr ""
+
+#: templates/js/stock.js:1092
+msgid "Stock item no longer exists"
+msgstr ""
+
+#: templates/js/stock.js:1115
+msgid "Added"
+msgstr ""
+
+#: templates/js/stock.js:1123
+msgid "Removed"
+msgstr ""
+
+#: templates/js/stock.js:1155
msgid "No user information"
msgstr ""
-#: templates/js/stock.js:1060
+#: templates/js/stock.js:1167
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/stock.js:1061
+#: templates/js/stock.js:1168
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/stock.js:1170
+#: templates/js/stock.js:1292
msgid "Create New Location"
msgstr ""
-#: templates/js/stock.js:1269
+#: templates/js/stock.js:1391
msgid "Serial"
msgstr ""
-#: templates/js/stock.js:1362 templates/js/table_filters.js:171
+#: templates/js/stock.js:1484 templates/js/table_filters.js:172
msgid "Installed"
msgstr ""
-#: templates/js/stock.js:1387
+#: templates/js/stock.js:1509
msgid "Install item"
msgstr ""
-#: templates/js/table_filters.js:42
+#: templates/js/table_filters.js:43
msgid "Trackable Part"
msgstr ""
-#: templates/js/table_filters.js:46
+#: templates/js/table_filters.js:47
msgid "Validated"
msgstr ""
-#: templates/js/table_filters.js:71
+#: templates/js/table_filters.js:72
msgid "Include locations"
msgstr ""
-#: templates/js/table_filters.js:81 templates/js/table_filters.js:82
-#: templates/js/table_filters.js:295
+#: templates/js/table_filters.js:82 templates/js/table_filters.js:83
+#: templates/js/table_filters.js:296
msgid "Include subcategories"
msgstr ""
-#: templates/js/table_filters.js:92 templates/js/table_filters.js:181
+#: templates/js/table_filters.js:93 templates/js/table_filters.js:182
msgid "Is Serialized"
msgstr ""
-#: templates/js/table_filters.js:95 templates/js/table_filters.js:188
+#: templates/js/table_filters.js:96 templates/js/table_filters.js:189
msgid "Serial number GTE"
msgstr ""
-#: templates/js/table_filters.js:96 templates/js/table_filters.js:189
+#: templates/js/table_filters.js:97 templates/js/table_filters.js:190
msgid "Serial number greater than or equal to"
msgstr ""
-#: templates/js/table_filters.js:99 templates/js/table_filters.js:192
+#: templates/js/table_filters.js:100 templates/js/table_filters.js:193
msgid "Serial number LTE"
msgstr ""
-#: templates/js/table_filters.js:100 templates/js/table_filters.js:193
+#: templates/js/table_filters.js:101 templates/js/table_filters.js:194
msgid "Serial number less than or equal to"
msgstr ""
-#: templates/js/table_filters.js:103 templates/js/table_filters.js:104
-#: templates/js/table_filters.js:184 templates/js/table_filters.js:185
+#: templates/js/table_filters.js:104 templates/js/table_filters.js:105
+#: templates/js/table_filters.js:185 templates/js/table_filters.js:186
msgid "Serial number"
msgstr ""
-#: templates/js/table_filters.js:108 templates/js/table_filters.js:202
+#: templates/js/table_filters.js:109 templates/js/table_filters.js:203
msgid "Batch code"
msgstr ""
-#: templates/js/table_filters.js:118 templates/js/table_filters.js:285
+#: templates/js/table_filters.js:119 templates/js/table_filters.js:286
msgid "Active parts"
msgstr ""
-#: templates/js/table_filters.js:119
+#: templates/js/table_filters.js:120
msgid "Show stock for active parts"
msgstr ""
-#: templates/js/table_filters.js:124
+#: templates/js/table_filters.js:125
msgid "Part is an assembly"
msgstr ""
-#: templates/js/table_filters.js:128
+#: templates/js/table_filters.js:129
msgid "Is allocated"
msgstr ""
-#: templates/js/table_filters.js:129
+#: templates/js/table_filters.js:130
msgid "Item has been allocated"
msgstr ""
-#: templates/js/table_filters.js:134
+#: templates/js/table_filters.js:135
msgid "Include stock in sublocations"
msgstr ""
-#: templates/js/table_filters.js:139
+#: templates/js/table_filters.js:140
msgid "Show stock items which are depleted"
msgstr ""
-#: templates/js/table_filters.js:146
+#: templates/js/table_filters.js:147
msgid "Show stock items which have expired"
msgstr ""
-#: templates/js/table_filters.js:151
+#: templates/js/table_filters.js:152
msgid "Show stock which is close to expiring"
msgstr ""
-#: templates/js/table_filters.js:157
+#: templates/js/table_filters.js:158
msgid "Show items which are in stock"
msgstr ""
-#: templates/js/table_filters.js:161
+#: templates/js/table_filters.js:162
msgid "In Production"
msgstr ""
-#: templates/js/table_filters.js:162
+#: templates/js/table_filters.js:163
msgid "Show items which are in production"
msgstr ""
-#: templates/js/table_filters.js:166
+#: templates/js/table_filters.js:167
msgid "Include Variants"
msgstr ""
-#: templates/js/table_filters.js:167
+#: templates/js/table_filters.js:168
msgid "Include stock items for variant parts"
msgstr ""
-#: templates/js/table_filters.js:172
+#: templates/js/table_filters.js:173
msgid "Show stock items which are installed in another item"
msgstr ""
-#: templates/js/table_filters.js:176
-msgid "Sent to customer"
-msgstr ""
-
-#: templates/js/table_filters.js:177
+#: templates/js/table_filters.js:178
msgid "Show items which have been assigned to a customer"
msgstr ""
-#: templates/js/table_filters.js:197 templates/js/table_filters.js:198
+#: templates/js/table_filters.js:198 templates/js/table_filters.js:199
msgid "Stock status"
msgstr ""
-#: templates/js/table_filters.js:231
+#: templates/js/table_filters.js:232
msgid "Build status"
msgstr ""
-#: templates/js/table_filters.js:250 templates/js/table_filters.js:267
+#: templates/js/table_filters.js:251 templates/js/table_filters.js:268
msgid "Order status"
msgstr ""
-#: templates/js/table_filters.js:255 templates/js/table_filters.js:272
+#: templates/js/table_filters.js:256 templates/js/table_filters.js:273
msgid "Outstanding"
msgstr ""
-#: templates/js/table_filters.js:296
+#: templates/js/table_filters.js:297
msgid "Include parts in subcategories"
msgstr ""
-#: templates/js/table_filters.js:300
+#: templates/js/table_filters.js:301
msgid "Has IPN"
msgstr ""
-#: templates/js/table_filters.js:301
+#: templates/js/table_filters.js:302
msgid "Part has internal part number"
msgstr ""
-#: templates/js/table_filters.js:306
+#: templates/js/table_filters.js:307
msgid "Show active parts"
msgstr ""
-#: templates/js/table_filters.js:314
+#: templates/js/table_filters.js:315
msgid "Stock available"
msgstr ""
-#: templates/js/table_filters.js:330
+#: templates/js/table_filters.js:331
msgid "Starred"
msgstr ""
-#: templates/js/table_filters.js:342
+#: templates/js/table_filters.js:343
msgid "Purchasable"
msgstr ""
@@ -7003,7 +7201,7 @@ msgstr ""
msgid "All"
msgstr ""
-#: templates/modals.html:21 templates/modals.html:46
+#: templates/modals.html:21 templates/modals.html:47
msgid "Form errors exist"
msgstr ""
@@ -7115,31 +7313,47 @@ msgstr ""
msgid "Instance Name"
msgstr ""
-#: templates/stats.html:19
-msgid "Server status"
+#: templates/stats.html:18
+msgid "Database"
msgstr ""
-#: templates/stats.html:22
-msgid "Healthy"
+#: templates/stats.html:26
+msgid "Server is running in debug mode"
msgstr ""
-#: templates/stats.html:24
-msgid "Issues detected"
-msgstr ""
-
-#: templates/stats.html:31
-msgid "Background Worker"
+#: templates/stats.html:33
+msgid "Docker Mode"
msgstr ""
#: templates/stats.html:34
-msgid "Background worker not running"
+msgid "Server is deployed using docker"
msgstr ""
-#: templates/stats.html:42
-msgid "Email Settings"
+#: templates/stats.html:40
+msgid "Server status"
+msgstr ""
+
+#: templates/stats.html:43
+msgid "Healthy"
msgstr ""
#: templates/stats.html:45
+msgid "Issues detected"
+msgstr ""
+
+#: templates/stats.html:52
+msgid "Background Worker"
+msgstr ""
+
+#: templates/stats.html:55
+msgid "Background worker not running"
+msgstr ""
+
+#: templates/stats.html:63
+msgid "Email Settings"
+msgstr ""
+
+#: templates/stats.html:66
msgid "Email settings not configured"
msgstr ""
@@ -7258,3 +7472,4 @@ msgstr ""
#: users/models.py:187
msgid "Permission to delete items"
msgstr ""
+
diff --git a/InvenTree/locale/fr/LC_MESSAGES/django.po b/InvenTree/locale/fr/LC_MESSAGES/django.po
index ae5d861fa2..9f32eeb22f 100644
--- a/InvenTree/locale/fr/LC_MESSAGES/django.po
+++ b/InvenTree/locale/fr/LC_MESSAGES/django.po
@@ -1,9 +1,9 @@
msgid ""
msgstr ""
-"Project-Id-Version: \n"
+"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-05-05 17:33+1000\n"
-"PO-Revision-Date: 2021-04-21 09:33\n"
+"POT-Creation-Date: 2021-05-17 10:46+0000\n"
+"PO-Revision-Date: 2021-05-17 10:47\n"
"Last-Translator: \n"
"Language-Team: French\n"
"Language: fr_FR\n"
@@ -11,6 +11,11 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"X-Crowdin-Project: inventree\n"
+"X-Crowdin-Project-ID: 452300\n"
+"X-Crowdin-Language: fr\n"
+"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
+"X-Crowdin-File-ID: 138\n"
#: InvenTree/api.py:64
msgid "API endpoint not found"
@@ -26,38 +31,38 @@ msgstr ""
#: InvenTree/fields.py:44
msgid "Enter date"
-msgstr ""
+msgstr "Entrer la date"
#: InvenTree/forms.py:110 build/forms.py:102 build/forms.py:123
#: build/forms.py:145 build/forms.py:169 build/forms.py:185 build/forms.py:227
#: order/forms.py:27 order/forms.py:38 order/forms.py:49 order/forms.py:60
#: order/forms.py:71 part/forms.py:134
msgid "Confirm"
-msgstr ""
+msgstr "Confirmer"
#: InvenTree/forms.py:126
msgid "Confirm delete"
-msgstr ""
+msgstr "Confirmer la suppression"
#: InvenTree/forms.py:127
msgid "Confirm item deletion"
-msgstr ""
+msgstr "Confirmer la suppression de cet élément"
#: InvenTree/forms.py:159 templates/registration/login.html:77
msgid "Enter password"
-msgstr ""
+msgstr "Entrer le mot de passe"
#: InvenTree/forms.py:160
msgid "Enter new password"
-msgstr ""
+msgstr "Entrer le nouveau mot de passe"
#: InvenTree/forms.py:167
msgid "Confirm password"
-msgstr ""
+msgstr "Confirmez le mot de passe"
#: InvenTree/forms.py:168
msgid "Confirm new password"
-msgstr ""
+msgstr "Confirmer le nouveau mot de passe"
#: InvenTree/forms.py:203
msgid "Apply Theme"
@@ -72,8 +77,8 @@ msgstr ""
msgid "Duplicate serial: {n}"
msgstr ""
-#: InvenTree/helpers.py:384 order/models.py:245 order/models.py:353
-#: stock/views.py:1763
+#: InvenTree/helpers.py:384 order/models.py:245 order/models.py:355
+#: stock/views.py:1795
msgid "Invalid quantity provided"
msgstr ""
@@ -101,7 +106,7 @@ msgstr ""
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr ""
-#: InvenTree/models.py:59 stock/models.py:1662
+#: InvenTree/models.py:59 stock/models.py:1761
msgid "Attachment"
msgstr ""
@@ -111,15 +116,15 @@ msgstr ""
#: InvenTree/models.py:62 templates/attachment_table.html:16
msgid "Comment"
-msgstr ""
+msgstr "Commentaire"
#: InvenTree/models.py:62
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:1908
+#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:1946
#: report/templates/report/inventree_test_report_base.html:91
-#: templates/js/stock.js:1041
+#: templates/js/stock.js:1146
msgid "User"
msgstr ""
@@ -127,8 +132,8 @@ msgstr ""
msgid "upload date"
msgstr ""
-#: InvenTree/models.py:107 InvenTree/models.py:108 label/models.py:101
-#: part/models.py:686 part/models.py:2049 part/templates/part/params.html:27
+#: InvenTree/models.py:107 InvenTree/models.py:108 label/models.py:102
+#: part/models.py:686 part/models.py:2087 part/templates/part/params.html:27
#: report/models.py:179 templates/InvenTree/search.html:137
#: templates/InvenTree/search.html:289 templates/js/part.js:110
#: templates/js/part.js:553 templates/js/stock.js:944
@@ -136,11 +141,11 @@ msgid "Name"
msgstr ""
#: InvenTree/models.py:114 build/models.py:134
-#: build/templates/build/detail.html:21 company/models.py:342
-#: company/models.py:494 company/templates/company/detail.html:27
+#: build/templates/build/detail.html:21 company/models.py:339
+#: company/models.py:491 company/templates/company/detail.html:27
#: company/templates/company/manufacturer_part_base.html:72
#: company/templates/company/supplier_part_base.html:71
-#: company/templates/company/supplier_part_detail.html:31 label/models.py:108
+#: company/templates/company/supplier_part_detail.html:31 label/models.py:109
#: order/models.py:101 order/templates/order/purchase_order_detail.html:143
#: part/models.py:710 part/templates/part/detail.html:54
#: part/templates/part/set_category.html:14 report/models.py:192
@@ -154,35 +159,35 @@ msgstr ""
#: templates/js/order.js:280 templates/js/part.js:169 templates/js/part.js:252
#: templates/js/part.js:371 templates/js/part.js:565 templates/js/part.js:643
#: templates/js/stock.js:554 templates/js/stock.js:956
-#: templates/js/stock.js:1015
+#: templates/js/stock.js:1001
msgid "Description"
-msgstr ""
+msgstr "Description"
#: InvenTree/models.py:115
msgid "Description (optional)"
-msgstr ""
+msgstr "Description (facultative)"
#: InvenTree/models.py:123
msgid "parent"
-msgstr ""
+msgstr "parent"
-#: InvenTree/settings.py:491
+#: InvenTree/settings.py:501
msgid "English"
msgstr ""
-#: InvenTree/settings.py:492
+#: InvenTree/settings.py:502
msgid "French"
msgstr ""
-#: InvenTree/settings.py:493
+#: InvenTree/settings.py:503
msgid "German"
msgstr ""
-#: InvenTree/settings.py:494
+#: InvenTree/settings.py:504
msgid "Polish"
msgstr ""
-#: InvenTree/settings.py:495
+#: InvenTree/settings.py:505
msgid "Turkish"
msgstr ""
@@ -198,60 +203,136 @@ msgstr ""
msgid "InvenTree system health checks failed"
msgstr ""
-#: InvenTree/status_codes.py:102 InvenTree/status_codes.py:143
-#: InvenTree/status_codes.py:236
+#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:145
+#: InvenTree/status_codes.py:314
msgid "Pending"
msgstr ""
-#: InvenTree/status_codes.py:103
+#: InvenTree/status_codes.py:105
msgid "Placed"
msgstr ""
-#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:239
+#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:317
msgid "Complete"
msgstr ""
-#: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145
-#: InvenTree/status_codes.py:238
+#: InvenTree/status_codes.py:107 InvenTree/status_codes.py:147
+#: InvenTree/status_codes.py:316
msgid "Cancelled"
msgstr ""
-#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146
-#: InvenTree/status_codes.py:188
+#: InvenTree/status_codes.py:108 InvenTree/status_codes.py:148
+#: InvenTree/status_codes.py:190
msgid "Lost"
msgstr ""
-#: InvenTree/status_codes.py:107 InvenTree/status_codes.py:147
-#: InvenTree/status_codes.py:190
+#: InvenTree/status_codes.py:109 InvenTree/status_codes.py:149
+#: InvenTree/status_codes.py:192
msgid "Returned"
msgstr ""
-#: InvenTree/status_codes.py:144
+#: InvenTree/status_codes.py:146
#: order/templates/order/sales_order_base.html:124
msgid "Shipped"
msgstr ""
-#: InvenTree/status_codes.py:184
+#: InvenTree/status_codes.py:186
msgid "OK"
msgstr ""
-#: InvenTree/status_codes.py:185
+#: InvenTree/status_codes.py:187
msgid "Attention needed"
msgstr ""
-#: InvenTree/status_codes.py:186
+#: InvenTree/status_codes.py:188
msgid "Damaged"
msgstr ""
-#: InvenTree/status_codes.py:187
+#: InvenTree/status_codes.py:189
msgid "Destroyed"
msgstr ""
-#: InvenTree/status_codes.py:189
+#: InvenTree/status_codes.py:191
msgid "Rejected"
msgstr ""
-#: InvenTree/status_codes.py:237
+#: InvenTree/status_codes.py:272
+msgid "Legacy stock tracking entry"
+msgstr ""
+
+#: InvenTree/status_codes.py:274
+msgid "Stock item created"
+msgstr ""
+
+#: InvenTree/status_codes.py:276
+msgid "Edited stock item"
+msgstr ""
+
+#: InvenTree/status_codes.py:277
+msgid "Assigned serial number"
+msgstr ""
+
+#: InvenTree/status_codes.py:279
+msgid "Stock counted"
+msgstr ""
+
+#: InvenTree/status_codes.py:280
+msgid "Stock manually added"
+msgstr ""
+
+#: InvenTree/status_codes.py:281
+msgid "Stock manually removed"
+msgstr ""
+
+#: InvenTree/status_codes.py:283
+msgid "Location changed"
+msgstr ""
+
+#: InvenTree/status_codes.py:285
+msgid "Installed into assembly"
+msgstr ""
+
+#: InvenTree/status_codes.py:286
+msgid "Removed from assembly"
+msgstr ""
+
+#: InvenTree/status_codes.py:288
+msgid "Installed component item"
+msgstr ""
+
+#: InvenTree/status_codes.py:289
+msgid "Removed component item"
+msgstr ""
+
+#: InvenTree/status_codes.py:291
+msgid "Split from parent item"
+msgstr ""
+
+#: InvenTree/status_codes.py:292
+msgid "Split child item"
+msgstr ""
+
+#: InvenTree/status_codes.py:294 templates/js/table_filters.js:177
+msgid "Sent to customer"
+msgstr ""
+
+#: InvenTree/status_codes.py:295
+msgid "Returned from customer"
+msgstr ""
+
+#: InvenTree/status_codes.py:297
+msgid "Build order output created"
+msgstr ""
+
+#: InvenTree/status_codes.py:298
+msgid "Build order output completed"
+msgstr ""
+
+#: InvenTree/status_codes.py:300
+msgid "Received against purchase order"
+msgstr ""
+
+#: InvenTree/status_codes.py:315
msgid "Production"
msgstr ""
@@ -270,7 +351,8 @@ msgstr ""
#: InvenTree/validators.py:77 InvenTree/validators.py:91
#: InvenTree/validators.py:105
-msgid "Reference must match pattern"
+#, python-brace-format
+msgid "Reference must match pattern {pattern}"
msgstr ""
#: InvenTree/validators.py:113
@@ -292,7 +374,7 @@ msgstr ""
#: InvenTree/views.py:587
msgid "Delete Item"
-msgstr ""
+msgstr "Supprimer cet élément"
#: InvenTree/views.py:636
msgid "Check box to confirm item deletion"
@@ -376,35 +458,35 @@ msgstr ""
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1241
+#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1245
#: build/templates/build/allocation_card.html:23
#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:123
-#: build/templates/build/detail.html:31 common/models.py:703
+#: build/templates/build/detail.html:31 common/models.py:705
#: company/forms.py:176 company/templates/company/supplier_part_pricing.html:77
-#: order/forms.py:188 order/forms.py:205 order/forms.py:239 order/forms.py:261
-#: order/forms.py:278 order/models.py:603 order/models.py:794
+#: order/forms.py:188 order/forms.py:205 order/forms.py:240 order/forms.py:262
+#: order/forms.py:279 order/models.py:614 order/models.py:815
+#: order/templates/order/order_wizard/match_parts.html:29
#: order/templates/order/order_wizard/select_parts.html:32
#: order/templates/order/purchase_order_detail.html:175
#: order/templates/order/sales_order_detail.html:70
#: order/templates/order/sales_order_detail.html:77
-#: order/templates/order/sales_order_detail.html:159
-#: order/templates/order/sales_order_detail.html:224 part/forms.py:342
-#: part/forms.py:371 part/forms.py:387 part/models.py:2178
+#: order/templates/order/sales_order_detail.html:162
+#: order/templates/order/sales_order_detail.html:230 part/forms.py:342
+#: part/forms.py:371 part/forms.py:387 part/models.py:2216
#: part/templates/part/allocation.html:19
#: part/templates/part/allocation.html:53
-#: part/templates/part/part_pricing.html:11
-#: part/templates/part/part_pricing.html:18
+#: part/templates/part/part_pricing.html:13
#: part/templates/part/sale_prices.html:85
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:77
-#: stock/forms.py:175 stock/forms.py:308 stock/models.py:1566
-#: stock/templates/stock/item_base.html:244
+#: stock/forms.py:175 stock/forms.py:308
+#: stock/templates/stock/item_base.html:250
#: stock/templates/stock/stock_adjust.html:18 templates/js/barcode.js:364
#: templates/js/bom.js:205 templates/js/build.js:476 templates/js/build.js:1014
-#: templates/js/stock.js:1033 templates/js/stock.js:1271
+#: templates/js/stock.js:1131 templates/js/stock.js:1393
msgid "Quantity"
msgstr ""
@@ -416,7 +498,7 @@ msgstr ""
msgid "Enter quantity for build output"
msgstr ""
-#: build/forms.py:95 order/forms.py:233 stock/forms.py:118
+#: build/forms.py:95 order/forms.py:234 stock/forms.py:118
msgid "Serial Numbers"
msgstr ""
@@ -446,11 +528,11 @@ msgstr ""
#: build/forms.py:210 build/templates/build/auto_allocate.html:18
#: order/forms.py:82 stock/forms.py:347
-#: stock/templates/stock/item_base.html:274
+#: stock/templates/stock/item_base.html:280
#: stock/templates/stock/stock_adjust.html:17
#: templates/InvenTree/search.html:260 templates/js/barcode.js:363
#: templates/js/barcode.js:531 templates/js/build.js:490
-#: templates/js/stock.js:641
+#: templates/js/stock.js:641 templates/js/stock.js:1023
msgid "Location"
msgstr ""
@@ -459,12 +541,13 @@ msgid "Location of completed parts"
msgstr ""
#: build/forms.py:215 build/templates/build/build_base.html:128
-#: build/templates/build/detail.html:59 order/models.py:455
+#: build/templates/build/detail.html:59 order/models.py:466
#: order/templates/order/receive_parts.html:24
-#: stock/templates/stock/item_base.html:392 templates/InvenTree/search.html:252
+#: stock/templates/stock/item_base.html:398 templates/InvenTree/search.html:252
#: templates/js/barcode.js:119 templates/js/build.js:770
#: templates/js/order.js:187 templates/js/order.js:285
-#: templates/js/stock.js:628 templates/js/stock.js:1279
+#: templates/js/stock.js:628 templates/js/stock.js:1100
+#: templates/js/stock.js:1401
msgid "Status"
msgstr ""
@@ -517,9 +600,9 @@ msgstr ""
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:127 order/models.py:99 order/models.py:605
+#: build/models.py:127 order/models.py:99 order/models.py:616
#: order/templates/order/purchase_order_detail.html:170
-#: order/templates/order/sales_order_detail.html:219 part/models.py:2187
+#: order/templates/order/sales_order_detail.html:225 part/models.py:2225
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92 templates/js/bom.js:197
#: templates/js/build.js:565 templates/js/build.js:1008
@@ -541,16 +624,16 @@ msgstr ""
#: build/models.py:152 build/templates/build/auto_allocate.html:16
#: build/templates/build/build_base.html:118
-#: build/templates/build/detail.html:26 company/models.py:688
-#: order/models.py:647 order/models.py:679
+#: build/templates/build/detail.html:26 company/models.py:622
+#: order/models.py:658 order/models.py:691
#: order/templates/order/order_wizard/select_parts.html:30
#: order/templates/order/purchase_order_detail.html:131
#: order/templates/order/receive_parts.html:19
-#: order/templates/order/sales_order_detail.html:207 part/models.py:321
-#: part/models.py:1876 part/models.py:1888 part/models.py:1906
-#: part/models.py:1981 part/models.py:2077 part/models.py:2162
+#: order/templates/order/sales_order_detail.html:213 part/models.py:321
+#: part/models.py:1914 part/models.py:1926 part/models.py:1944
+#: part/models.py:2019 part/models.py:2115 part/models.py:2200
#: part/templates/part/part_app_base.html:8
-#: part/templates/part/part_pricing.html:14 part/templates/part/related.html:29
+#: part/templates/part/part_pricing.html:9 part/templates/part/related.html:29
#: part/templates/part/set_category.html:13
#: report/templates/report/inventree_build_order_base.html:110
#: report/templates/report/inventree_po_report.html:90
@@ -560,7 +643,7 @@ msgstr ""
#: templates/js/build.js:741 templates/js/build.js:981
#: templates/js/company.js:140 templates/js/company.js:238
#: templates/js/part.js:233 templates/js/part.js:338 templates/js/stock.js:523
-#: templates/js/stock.js:1343
+#: templates/js/stock.js:1465
msgid "Part"
msgstr ""
@@ -616,7 +699,7 @@ msgstr ""
msgid "Build status code"
msgstr ""
-#: build/models.py:212 stock/models.py:432
+#: build/models.py:212 stock/models.py:464
msgid "Batch Code"
msgstr ""
@@ -629,7 +712,7 @@ msgstr ""
msgid "Creation Date"
msgstr ""
-#: build/models.py:223 order/models.py:461
+#: build/models.py:223 order/models.py:472
msgid "Target completion date"
msgstr ""
@@ -667,28 +750,28 @@ msgstr ""
#: company/templates/company/supplier_part_base.html:78
#: company/templates/company/supplier_part_detail.html:28
#: part/templates/part/detail.html:83 part/templates/part/part_base.html:101
-#: stock/models.py:426 stock/templates/stock/item_base.html:334
+#: stock/models.py:458 stock/templates/stock/item_base.html:340
msgid "External Link"
msgstr ""
-#: build/models.py:257 part/models.py:744 stock/models.py:428
+#: build/models.py:257 part/models.py:744 stock/models.py:460
msgid "Link to external URL"
msgstr ""
#: build/models.py:261 build/templates/build/navbar.html:53
-#: company/models.py:135 company/models.py:501
+#: company/models.py:132 company/models.py:498
#: company/templates/company/navbar.html:70
#: company/templates/company/navbar.html:73 order/models.py:123
-#: order/models.py:607 order/templates/order/po_navbar.html:29
+#: order/models.py:618 order/templates/order/po_navbar.html:29
#: order/templates/order/po_navbar.html:32
#: order/templates/order/purchase_order_detail.html:209
-#: order/templates/order/sales_order_detail.html:264
+#: order/templates/order/sales_order_detail.html:278
#: order/templates/order/so_navbar.html:33
#: order/templates/order/so_navbar.html:36 part/models.py:871
#: part/templates/part/navbar.html:128
#: report/templates/report/inventree_build_order_base.html:173
#: stock/forms.py:173 stock/forms.py:317 stock/forms.py:349 stock/forms.py:377
-#: stock/models.py:498 stock/models.py:1558 stock/models.py:1668
+#: stock/models.py:530 stock/models.py:1665 stock/models.py:1767
#: stock/templates/stock/navbar.html:57 templates/js/barcode.js:37
#: templates/js/bom.js:333 templates/js/stock.js:128 templates/js/stock.js:671
msgid "Notes"
@@ -710,75 +793,71 @@ msgstr ""
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:838
-msgid "Completed build output"
-msgstr ""
-
-#: build/models.py:1132
+#: build/models.py:1136
msgid "BuildItem must be unique for build, stock_item and install_into"
msgstr ""
-#: build/models.py:1157
-msgid "Build item must specify a build output, as master part is marked as trackable"
-msgstr ""
-
#: build/models.py:1161
-#, python-brace-format
-msgid "Selected stock item not found in BOM for part '{p}'"
+msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
#: build/models.py:1165
#, python-brace-format
+msgid "Selected stock item not found in BOM for part '{p}'"
+msgstr ""
+
+#: build/models.py:1169
+#, python-brace-format
msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
msgstr ""
-#: build/models.py:1172 order/models.py:768
+#: build/models.py:1176 order/models.py:789
msgid "StockItem is over-allocated"
msgstr ""
-#: build/models.py:1176 order/models.py:771
+#: build/models.py:1180 order/models.py:792
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1180
+#: build/models.py:1184
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1220 stock/templates/stock/item_base.html:306
+#: build/models.py:1224 stock/templates/stock/item_base.html:312
#: templates/InvenTree/search.html:183 templates/js/build.js:714
#: templates/navbar.html:29
msgid "Build"
msgstr ""
-#: build/models.py:1221
+#: build/models.py:1225
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1228 part/templates/part/allocation.html:18
+#: build/models.py:1232 part/templates/part/allocation.html:18
#: part/templates/part/allocation.html:24
#: part/templates/part/allocation.html:31
#: part/templates/part/allocation.html:49
#: stock/templates/stock/item_base.html:8
#: stock/templates/stock/item_base.html:93
-#: stock/templates/stock/item_base.html:328
+#: stock/templates/stock/item_base.html:334
#: stock/templates/stock/stock_adjust.html:16 templates/js/build.js:831
-#: templates/js/stock.js:1004 templates/js/stock.js:1262
+#: templates/js/stock.js:1082 templates/js/stock.js:1384
msgid "Stock Item"
msgstr ""
-#: build/models.py:1229
+#: build/models.py:1233
msgid "Source stock item"
msgstr ""
-#: build/models.py:1242
+#: build/models.py:1246
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1250
+#: build/models.py:1254
msgid "Install into"
msgstr ""
-#: build/models.py:1251
+#: build/models.py:1255
msgid "Destination stock item"
msgstr ""
@@ -812,7 +891,7 @@ msgstr ""
#: build/templates/build/allocate.html:30
#: company/templates/company/detail_manufacturer_part.html:33
-#: company/templates/company/detail_supplier_part.html:32 order/views.py:795
+#: company/templates/company/detail_supplier_part.html:32 order/views.py:986
#: part/templates/part/category.html:127
msgid "Order Parts"
msgstr ""
@@ -832,9 +911,9 @@ msgstr ""
#: build/templates/build/allocation_card.html:21
#: build/templates/build/complete_output.html:46
#: order/templates/order/sales_order_detail.html:75
-#: order/templates/order/sales_order_detail.html:157
+#: order/templates/order/sales_order_detail.html:160
#: report/templates/report/inventree_test_report_base.html:75
-#: stock/models.py:420 stock/templates/stock/item_base.html:238
+#: stock/models.py:452 stock/templates/stock/item_base.html:244
#: templates/js/build.js:474
msgid "Serial Number"
msgstr ""
@@ -897,7 +976,7 @@ msgstr ""
#: order/templates/order/order_base.html:26
#: order/templates/order/sales_order_base.html:35
#: part/templates/part/category.html:18 part/templates/part/part_base.html:29
-#: stock/templates/stock/item_base.html:118
+#: stock/templates/stock/item_base.html:124
#: stock/templates/stock/location.html:31
msgid "Admin view"
msgstr ""
@@ -908,8 +987,8 @@ msgstr ""
#: order/templates/order/order_base.html:86
#: order/templates/order/sales_order_base.html:41
#: order/templates/order/sales_order_base.html:86
-#: templates/js/table_filters.js:240 templates/js/table_filters.js:259
-#: templates/js/table_filters.js:276
+#: templates/js/table_filters.js:241 templates/js/table_filters.js:260
+#: templates/js/table_filters.js:277
msgid "Overdue"
msgstr ""
@@ -955,14 +1034,14 @@ msgid "Progress"
msgstr ""
#: build/templates/build/build_base.html:160
-#: build/templates/build/detail.html:84 order/models.py:677
+#: build/templates/build/detail.html:84 order/models.py:689
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:33
#: order/templates/order/sales_order_ship.html:25
#: part/templates/part/allocation.html:30
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
-#: stock/templates/stock/item_base.html:268 templates/js/order.js:245
+#: stock/templates/stock/item_base.html:274 templates/js/order.js:245
msgid "Sales Order"
msgstr ""
@@ -1112,9 +1191,9 @@ msgid "Destination location not specified"
msgstr ""
#: build/templates/build/detail.html:70
-#: stock/templates/stock/item_base.html:292 templates/js/stock.js:636
-#: templates/js/stock.js:1286 templates/js/table_filters.js:107
-#: templates/js/table_filters.js:201
+#: stock/templates/stock/item_base.html:298 templates/js/stock.js:636
+#: templates/js/stock.js:1408 templates/js/table_filters.js:108
+#: templates/js/table_filters.js:202
msgid "Batch"
msgstr ""
@@ -1168,6 +1247,7 @@ msgstr ""
#: company/templates/company/navbar.html:15
#: order/templates/order/po_navbar.html:14
#: order/templates/order/so_navbar.html:15 part/templates/part/navbar.html:15
+#: templates/js/stock.js:1016
msgid "Details"
msgstr ""
@@ -1202,7 +1282,8 @@ msgstr ""
#: build/templates/build/notes.html:26 company/templates/company/notes.html:24
#: order/templates/order/order_notes.html:27
#: order/templates/order/sales_order_notes.html:29
-#: part/templates/part/notes.html:27 stock/templates/stock/item_base.html:470
+#: part/templates/part/notes.html:27 stock/templates/stock/item_base.html:477
+#: stock/templates/stock/item_base.html:487
#: stock/templates/stock/item_notes.html:26
msgid "Save"
msgstr ""
@@ -1231,7 +1312,7 @@ msgstr ""
msgid "Maximum output quantity is "
msgstr ""
-#: build/views.py:184 stock/models.py:969 stock/views.py:1789
+#: build/views.py:184 stock/views.py:1821
msgid "Serial numbers already exist"
msgstr ""
@@ -1348,372 +1429,405 @@ msgstr ""
msgid "Add Build Order Attachment"
msgstr ""
-#: build/views.py:1083 order/views.py:110 order/views.py:162 part/views.py:172
+#: build/views.py:1083 order/views.py:115 order/views.py:167 part/views.py:172
#: stock/views.py:277
msgid "Added attachment"
msgstr ""
-#: build/views.py:1119 order/views.py:189 order/views.py:210
+#: build/views.py:1119 order/views.py:194 order/views.py:215
msgid "Edit Attachment"
msgstr ""
-#: build/views.py:1129 order/views.py:193 order/views.py:214
+#: build/views.py:1129 order/views.py:198 order/views.py:219
msgid "Attachment updated"
msgstr ""
-#: build/views.py:1139 order/views.py:229 order/views.py:243
+#: build/views.py:1139 order/views.py:234 order/views.py:248
msgid "Delete Attachment"
msgstr ""
-#: build/views.py:1144 order/views.py:235 order/views.py:249 stock/views.py:333
+#: build/views.py:1144 order/views.py:240 order/views.py:254 stock/views.py:333
msgid "Deleted attachment"
msgstr ""
-#: common/models.py:56
-msgid "InvenTree Instance Name"
+#: common/files.py:64
+msgid "Unsupported file format: {ext.upper()}"
+msgstr ""
+
+#: common/files.py:69
+msgid "Error reading file (invalid format)"
+msgstr ""
+
+#: common/files.py:71
+msgid "Error reading file (incorrect dimension)"
+msgstr ""
+
+#: common/files.py:73
+msgid "Error reading file (data could be corrupted)"
+msgstr ""
+
+#: common/forms.py:38 templates/attachment_table.html:15
+msgid "File"
+msgstr ""
+
+#: common/forms.py:39
+msgid "Select file to upload"
+msgstr ""
+
+#: common/forms.py:54
+msgid "{name.title()} File"
+msgstr ""
+
+#: common/forms.py:55
+#, python-brace-format
+msgid "Select {name} file to upload"
msgstr ""
#: common/models.py:58
+msgid "InvenTree Instance Name"
+msgstr ""
+
+#: common/models.py:60
msgid "String descriptor for the server instance"
msgstr ""
-#: common/models.py:62
+#: common/models.py:64
msgid "Use instance name"
msgstr ""
-#: common/models.py:63
+#: common/models.py:65
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:69 company/models.py:97 company/models.py:98
+#: common/models.py:71 company/models.py:94 company/models.py:95
msgid "Company name"
msgstr ""
-#: common/models.py:70
+#: common/models.py:72
msgid "Internal company name"
msgstr ""
-#: common/models.py:75
+#: common/models.py:77
msgid "Base URL"
msgstr ""
-#: common/models.py:76
+#: common/models.py:78
msgid "Base URL for server instance"
msgstr ""
-#: common/models.py:82
+#: common/models.py:84
msgid "Default Currency"
msgstr ""
-#: common/models.py:83
+#: common/models.py:85
msgid "Default currency"
msgstr ""
-#: common/models.py:89
+#: common/models.py:91
msgid "Download from URL"
msgstr ""
-#: common/models.py:90
+#: common/models.py:92
msgid "Allow download of remote images and files from external URL"
msgstr ""
-#: common/models.py:96
+#: common/models.py:98
msgid "Barcode Support"
msgstr ""
-#: common/models.py:97
+#: common/models.py:99
msgid "Enable barcode scanner support"
msgstr ""
-#: common/models.py:103
+#: common/models.py:105
msgid "IPN Regex"
msgstr ""
-#: common/models.py:104
+#: common/models.py:106
msgid "Regular expression pattern for matching Part IPN"
msgstr ""
-#: common/models.py:108
+#: common/models.py:110
msgid "Allow Duplicate IPN"
msgstr ""
-#: common/models.py:109
+#: common/models.py:111
msgid "Allow multiple parts to share the same IPN"
msgstr ""
-#: common/models.py:115
+#: common/models.py:117
msgid "Allow Editing IPN"
msgstr ""
-#: common/models.py:116
+#: common/models.py:118
msgid "Allow changing the IPN value while editing a part"
msgstr ""
-#: common/models.py:122
+#: common/models.py:124
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:123
+#: common/models.py:125
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:129
+#: common/models.py:131
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:130
+#: common/models.py:132
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:136
+#: common/models.py:138
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:137
+#: common/models.py:139
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:143
+#: common/models.py:145
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:144
+#: common/models.py:146
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:150
+#: common/models.py:152
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:151
+#: common/models.py:153
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:157 part/models.py:2079 part/templates/part/detail.html:160
-#: report/models.py:185 stock/forms.py:259 templates/js/table_filters.js:24
-#: templates/js/table_filters.js:310
+#: common/models.py:159 part/models.py:2117 part/templates/part/detail.html:160
+#: report/models.py:185 stock/forms.py:259 templates/js/table_filters.js:25
+#: templates/js/table_filters.js:311
msgid "Template"
msgstr ""
-#: common/models.py:158
+#: common/models.py:160
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:164 part/models.py:834 part/templates/part/detail.html:170
-#: templates/js/table_filters.js:123 templates/js/table_filters.js:322
+#: common/models.py:166 part/models.py:834 part/templates/part/detail.html:170
+#: templates/js/table_filters.js:124 templates/js/table_filters.js:323
msgid "Assembly"
msgstr ""
-#: common/models.py:165
+#: common/models.py:167
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:171 part/models.py:840 part/templates/part/detail.html:180
-#: templates/js/table_filters.js:326
+#: common/models.py:173 part/models.py:840 part/templates/part/detail.html:180
+#: templates/js/table_filters.js:327
msgid "Component"
msgstr ""
-#: common/models.py:172
+#: common/models.py:174
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:178 part/models.py:851 part/templates/part/detail.html:200
+#: common/models.py:180 part/models.py:851 part/templates/part/detail.html:200
msgid "Purchaseable"
msgstr ""
-#: common/models.py:179
+#: common/models.py:181
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:185 part/models.py:856 part/templates/part/detail.html:210
-#: templates/js/table_filters.js:334
+#: common/models.py:187 part/models.py:856 part/templates/part/detail.html:210
+#: templates/js/table_filters.js:335
msgid "Salable"
msgstr ""
-#: common/models.py:186
+#: common/models.py:188
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:192 part/models.py:846 part/templates/part/detail.html:190
-#: templates/js/table_filters.js:32 templates/js/table_filters.js:338
+#: common/models.py:194 part/models.py:846 part/templates/part/detail.html:190
+#: templates/js/table_filters.js:33 templates/js/table_filters.js:339
msgid "Trackable"
msgstr ""
-#: common/models.py:193
+#: common/models.py:195
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:199 part/models.py:866 part/templates/part/detail.html:150
-#: templates/js/table_filters.js:28
+#: common/models.py:201 part/models.py:866 part/templates/part/detail.html:150
+#: templates/js/table_filters.js:29
msgid "Virtual"
msgstr ""
-#: common/models.py:200
+#: common/models.py:202
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:206
+#: common/models.py:208
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:207
+#: common/models.py:209
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:213
+#: common/models.py:215 templates/stats.html:25
msgid "Debug Mode"
msgstr ""
-#: common/models.py:214
+#: common/models.py:216
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:220
+#: common/models.py:222
msgid "Page Size"
msgstr ""
-#: common/models.py:221
+#: common/models.py:223
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:231
+#: common/models.py:233
msgid "Test Reports"
msgstr ""
-#: common/models.py:232
+#: common/models.py:234
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:238
+#: common/models.py:240
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:239
+#: common/models.py:241
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:245
+#: common/models.py:247
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:246
+#: common/models.py:248
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:252
+#: common/models.py:254
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:253
+#: common/models.py:255
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:255 part/templates/part/detail.html:121
+#: common/models.py:257 part/templates/part/detail.html:121
msgid "days"
msgstr ""
-#: common/models.py:260
+#: common/models.py:262
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:261
+#: common/models.py:263
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:267
+#: common/models.py:269
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:268
+#: common/models.py:270
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:274
+#: common/models.py:276
msgid "Group by Part"
msgstr ""
-#: common/models.py:275
+#: common/models.py:277
msgid "Group stock items by part reference in table views"
msgstr ""
-#: common/models.py:281
+#: common/models.py:283
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:282
+#: common/models.py:284
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:288
+#: common/models.py:290
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:289
+#: common/models.py:291
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:294
+#: common/models.py:296
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:295
+#: common/models.py:297
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:299
+#: common/models.py:301
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:300
+#: common/models.py:302
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:305
+#: common/models.py:307
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:306
+#: common/models.py:308
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:529
+#: common/models.py:531
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:531
+#: common/models.py:533
msgid "Settings value"
msgstr ""
-#: common/models.py:566
+#: common/models.py:568
msgid "Must be an integer value"
msgstr ""
-#: common/models.py:589
+#: common/models.py:591
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:600
+#: common/models.py:602
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:623
+#: common/models.py:625
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:704 company/forms.py:177
+#: common/models.py:706 company/forms.py:177
msgid "Price break quantity"
msgstr ""
-#: common/models.py:712 company/templates/company/supplier_part_pricing.html:82
+#: common/models.py:714 company/templates/company/supplier_part_pricing.html:82
#: part/templates/part/sale_prices.html:90 templates/js/bom.js:255
msgid "Price"
msgstr ""
-#: common/models.py:713
+#: common/models.py:715
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:736
+#: common/models.py:804
msgid "Default"
msgstr ""
@@ -1721,24 +1835,42 @@ msgstr ""
msgid "Current value"
msgstr ""
-#: common/views.py:25
+#: common/views.py:32
msgid "Change Setting"
msgstr ""
-#: common/views.py:94
+#: common/views.py:101
msgid "Supplied value is not allowed"
msgstr ""
-#: common/views.py:103
+#: common/views.py:110
msgid "Supplied value must be a boolean"
msgstr ""
-#: company/forms.py:38 company/models.py:145
+#: common/views.py:184 order/templates/order/order_wizard/po_upload.html:42
+#: order/views.py:582 part/templates/part/bom_upload/upload_file.html:27
+msgid "Upload File"
+msgstr ""
+
+#: common/views.py:185 order/templates/order/order_wizard/match_fields.html:52
+#: order/views.py:583 part/templates/part/bom_upload/select_fields.html:58
+msgid "Match Fields"
+msgstr ""
+
+#: common/views.py:186
+msgid "Match Items"
+msgstr ""
+
+#: common/views.py:479
+msgid "Fields matching failed"
+msgstr ""
+
+#: company/forms.py:38 company/models.py:142
#: company/templates/company/detail.html:42
msgid "Currency"
msgstr ""
-#: company/forms.py:39 company/models.py:147
+#: company/forms.py:39 company/models.py:144
msgid "Default currency used for this company"
msgstr ""
@@ -1758,216 +1890,216 @@ msgstr ""
msgid "Single quantity price"
msgstr ""
-#: company/forms.py:128 company/models.py:324
+#: company/forms.py:128 company/models.py:321
msgid "Select manufacturer"
msgstr ""
-#: company/forms.py:134 company/models.py:331
+#: company/forms.py:134 company/models.py:328
msgid "Manufacturer Part Number"
msgstr ""
-#: company/forms.py:136 company/models.py:330
+#: company/forms.py:136 company/models.py:327
#: company/templates/company/manufacturer_part_base.html:89
#: company/templates/company/manufacturer_part_detail.html:26
-#: company/templates/company/supplier_part_base.html:101
+#: company/templates/company/supplier_part_base.html:102
#: company/templates/company/supplier_part_detail.html:35
#: order/templates/order/purchase_order_detail.html:158 part/bom.py:171
#: part/bom.py:242 templates/js/company.js:181 templates/js/company.js:307
msgid "MPN"
msgstr ""
-#: company/models.py:102
+#: company/models.py:99
msgid "Company description"
msgstr ""
-#: company/models.py:103
+#: company/models.py:100
msgid "Description of the company"
msgstr ""
-#: company/models.py:107 company/templates/company/company_base.html:70
+#: company/models.py:104 company/templates/company/company_base.html:70
#: company/templates/company/detail.html:33 templates/js/company.js:60
msgid "Website"
msgstr ""
-#: company/models.py:107
+#: company/models.py:104
msgid "Company website URL"
msgstr ""
-#: company/models.py:110 company/templates/company/company_base.html:77
+#: company/models.py:107 company/templates/company/company_base.html:77
msgid "Address"
msgstr ""
-#: company/models.py:111
+#: company/models.py:108
msgid "Company address"
msgstr ""
-#: company/models.py:114
+#: company/models.py:111
msgid "Phone number"
msgstr ""
-#: company/models.py:115
+#: company/models.py:112
msgid "Contact phone number"
msgstr ""
-#: company/models.py:118 company/templates/company/company_base.html:91
+#: company/models.py:115 company/templates/company/company_base.html:91
msgid "Email"
msgstr ""
-#: company/models.py:118
+#: company/models.py:115
msgid "Contact email address"
msgstr ""
-#: company/models.py:121 company/templates/company/company_base.html:98
+#: company/models.py:118 company/templates/company/company_base.html:98
msgid "Contact"
msgstr ""
-#: company/models.py:122
+#: company/models.py:119
msgid "Point of contact"
msgstr ""
-#: company/models.py:124 company/models.py:336 company/models.py:488
+#: company/models.py:121 company/models.py:333 company/models.py:485
#: order/models.py:103 part/models.py:743
#: report/templates/report/inventree_build_order_base.html:165
-#: stock/models.py:1560 templates/js/company.js:188 templates/js/company.js:318
+#: templates/js/company.js:188 templates/js/company.js:318
#: templates/js/part.js:431
msgid "Link"
msgstr ""
-#: company/models.py:124
+#: company/models.py:121
msgid "Link to external company information"
msgstr ""
-#: company/models.py:132 part/models.py:753
+#: company/models.py:129 part/models.py:753
msgid "Image"
msgstr ""
-#: company/models.py:137
+#: company/models.py:134
msgid "is customer"
msgstr ""
-#: company/models.py:137
+#: company/models.py:134
msgid "Do you sell items to this company?"
msgstr ""
-#: company/models.py:139
+#: company/models.py:136
msgid "is supplier"
msgstr ""
-#: company/models.py:139
+#: company/models.py:136
msgid "Do you purchase items from this company?"
msgstr ""
-#: company/models.py:141
+#: company/models.py:138
msgid "is manufacturer"
msgstr ""
-#: company/models.py:141
+#: company/models.py:138
msgid "Does this company manufacture parts?"
msgstr ""
-#: company/models.py:308 company/models.py:459 stock/models.py:373
-#: stock/templates/stock/item_base.html:224
+#: company/models.py:305 company/models.py:456 stock/models.py:405
+#: stock/templates/stock/item_base.html:230
msgid "Base Part"
msgstr ""
-#: company/models.py:312 company/models.py:463 order/views.py:1384
+#: company/models.py:309 company/models.py:460 order/views.py:1587
msgid "Select part"
msgstr ""
-#: company/models.py:323 company/templates/company/detail.html:57
+#: company/models.py:320 company/templates/company/detail.html:57
#: company/templates/company/manufacturer_part_base.html:85
#: company/templates/company/manufacturer_part_detail.html:25
#: company/templates/company/supplier_part_base.html:94
#: company/templates/company/supplier_part_detail.html:34 part/bom.py:170
-#: part/bom.py:241 stock/templates/stock/item_base.html:341
+#: part/bom.py:241 stock/templates/stock/item_base.html:347
#: templates/js/company.js:44 templates/js/company.js:165
#: templates/js/company.js:289
msgid "Manufacturer"
msgstr ""
-#: company/models.py:337
+#: company/models.py:334
msgid "URL for external manufacturer part link"
msgstr ""
-#: company/models.py:343
+#: company/models.py:340
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:469 company/templates/company/detail.html:62
+#: company/models.py:466 company/templates/company/detail.html:62
#: company/templates/company/supplier_part_base.html:84
#: company/templates/company/supplier_part_detail.html:25 order/models.py:190
#: order/templates/order/order_base.html:92
#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:175
-#: part/bom.py:286 stock/templates/stock/item_base.html:353
+#: part/bom.py:286 stock/templates/stock/item_base.html:359
#: templates/js/company.js:48 templates/js/company.js:263
#: templates/js/order.js:170
msgid "Supplier"
msgstr ""
-#: company/models.py:470
+#: company/models.py:467
msgid "Select supplier"
msgstr ""
-#: company/models.py:475 company/templates/company/supplier_part_base.html:88
+#: company/models.py:472 company/templates/company/supplier_part_base.html:88
#: company/templates/company/supplier_part_detail.html:26
#: order/templates/order/purchase_order_detail.html:149 part/bom.py:176
#: part/bom.py:287
msgid "SKU"
msgstr ""
-#: company/models.py:476
+#: company/models.py:473
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:482
+#: company/models.py:479
#: company/templates/company/manufacturer_part_base.html:6
#: company/templates/company/manufacturer_part_base.html:19
-#: stock/templates/stock/item_base.html:346
+#: stock/templates/stock/item_base.html:352
msgid "Manufacturer Part"
msgstr ""
-#: company/models.py:483
+#: company/models.py:480
msgid "Select manufacturer part"
msgstr ""
-#: company/models.py:489
+#: company/models.py:486
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:495
+#: company/models.py:492
msgid "Supplier part description"
msgstr ""
-#: company/models.py:500 company/templates/company/supplier_part_base.html:115
-#: company/templates/company/supplier_part_detail.html:38 part/models.py:2190
+#: company/models.py:497 company/templates/company/supplier_part_base.html:116
+#: company/templates/company/supplier_part_detail.html:38 part/models.py:2228
#: report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr ""
-#: company/models.py:504
+#: company/models.py:501 part/models.py:1614
msgid "base cost"
msgstr ""
-#: company/models.py:504
+#: company/models.py:501 part/models.py:1614
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:506 company/templates/company/supplier_part_base.html:108
-#: stock/models.py:397 stock/templates/stock/item_base.html:299
+#: company/models.py:503 company/templates/company/supplier_part_base.html:109
+#: stock/models.py:429 stock/templates/stock/item_base.html:305
#: templates/js/stock.js:667
msgid "Packaging"
msgstr ""
-#: company/models.py:506
+#: company/models.py:503
msgid "Part packaging"
msgstr ""
-#: company/models.py:508
+#: company/models.py:505 part/models.py:1616
msgid "multiple"
msgstr ""
-#: company/models.py:508
+#: company/models.py:505
msgid "Order multiple"
msgstr ""
@@ -1993,7 +2125,7 @@ msgstr ""
msgid "Download image from URL"
msgstr ""
-#: company/templates/company/company_base.html:46 order/views.py:306
+#: company/templates/company/company_base.html:46 order/views.py:311
msgid "Create Purchase Order"
msgstr ""
@@ -2022,8 +2154,7 @@ msgstr ""
#: company/templates/company/delete.html:12
#, python-format
-msgid ""
-"There are %(count)s parts sourced from this company.
\n"
+msgid "There are %(count)s parts sourced from this company.
\n"
"If this supplier is deleted, these supplier part entries will also be deleted."
msgstr ""
@@ -2039,10 +2170,11 @@ msgstr ""
msgid "Uses default currency"
msgstr ""
-#: company/templates/company/detail.html:67 order/models.py:450
-#: order/templates/order/sales_order_base.html:92 stock/models.py:415
-#: stock/models.py:416 stock/templates/stock/item_base.html:251
+#: company/templates/company/detail.html:67 order/models.py:461
+#: order/templates/order/sales_order_base.html:92 stock/models.py:447
+#: stock/models.py:448 stock/templates/stock/item_base.html:257
#: templates/js/company.js:40 templates/js/order.js:267
+#: templates/js/stock.js:1064
msgid "Customer"
msgstr ""
@@ -2088,7 +2220,7 @@ msgstr ""
#: company/templates/company/detail_manufacturer_part.html:66
#: company/templates/company/detail_supplier_part.html:66
#: part/templates/part/bom.html:159 part/templates/part/category.html:118
-#: templates/js/stock.js:1157
+#: templates/js/stock.js:1279
msgid "New Part"
msgstr ""
@@ -2135,19 +2267,19 @@ msgstr ""
#: company/templates/company/detail_supplier_part.html:22
#: company/templates/company/manufacturer_part_suppliers.html:17
#: order/templates/order/purchase_order_detail.html:49
-#: part/templates/part/supplier.html:17 templates/js/stock.js:1163
+#: part/templates/part/supplier.html:17 templates/js/stock.js:1285
msgid "New Supplier Part"
msgstr ""
#: company/templates/company/detail_supplier_part.html:72
#: company/templates/company/manufacturer_part_suppliers.html:47
-#: company/views.py:64 order/templates/order/purchase_orders.html:183
+#: company/views.py:64 order/templates/order/purchase_orders.html:185
#: part/templates/part/supplier.html:50
msgid "New Supplier"
msgstr ""
#: company/templates/company/detail_supplier_part.html:73 company/views.py:281
-#: order/templates/order/purchase_orders.html:184
+#: order/templates/order/purchase_orders.html:186
msgid "Create new Supplier"
msgstr ""
@@ -2205,7 +2337,7 @@ msgstr ""
#: company/templates/company/manufacturer_part_navbar.html:22
#: company/templates/company/navbar.html:41
#: company/templates/company/supplier_part_navbar.html:15
-#: part/templates/part/navbar.html:36 stock/api.py:51
+#: part/templates/part/navbar.html:36 stock/api.py:54
#: stock/templates/stock/loc_link.html:7 stock/templates/stock/location.html:36
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/index.html:128 templates/InvenTree/search.html:196
@@ -2258,7 +2390,7 @@ msgstr ""
#: stock/templates/stock/location_navbar.html:22
#: stock/templates/stock/location_navbar.html:29
#: templates/InvenTree/search.html:198 templates/js/stock.js:968
-#: templates/stats.html:72 templates/stats.html:81 users/models.py:42
+#: templates/stats.html:93 templates/stats.html:102 users/models.py:42
msgid "Stock Items"
msgstr ""
@@ -2313,8 +2445,8 @@ msgid "New Sales Order"
msgstr ""
#: company/templates/company/supplier_part_base.html:7
-#: company/templates/company/supplier_part_base.html:20 stock/models.py:382
-#: stock/templates/stock/item_base.html:358 templates/js/company.js:279
+#: company/templates/company/supplier_part_base.html:20 stock/models.py:414
+#: stock/templates/stock/item_base.html:364 templates/js/company.js:279
msgid "Supplier Part"
msgstr ""
@@ -2363,7 +2495,7 @@ msgid "Pricing Information"
msgstr ""
#: company/templates/company/supplier_part_pricing.html:19 company/views.py:794
-#: part/templates/part/sale_prices.html:17 part/views.py:2636
+#: part/templates/part/sale_prices.html:17 part/views.py:2644
msgid "Add Price Break"
msgstr ""
@@ -2393,7 +2525,7 @@ msgstr ""
msgid "Customers"
msgstr ""
-#: company/views.py:78 order/templates/order/sales_orders.html:185
+#: company/views.py:78 order/templates/order/sales_orders.html:187
msgid "New Customer"
msgstr ""
@@ -2413,6 +2545,11 @@ msgstr ""
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
+#: company/views.py:205 part/views.py:887
+#, python-brace-format
+msgid "Invalid response: {code}"
+msgstr ""
+
#: company/views.py:214 part/views.py:896
msgid "Supplied URL is not a valid image file"
msgstr ""
@@ -2433,7 +2570,7 @@ msgstr ""
msgid "Edited company information"
msgstr ""
-#: company/views.py:287 order/templates/order/sales_orders.html:186
+#: company/views.py:287 order/templates/order/sales_orders.html:188
msgid "Create new Customer"
msgstr ""
@@ -2465,7 +2602,7 @@ msgstr ""
msgid "Edit Supplier Part"
msgstr ""
-#: company/views.py:578 templates/js/stock.js:1164
+#: company/views.py:578 templates/js/stock.js:1286
msgid "Create new Supplier Part"
msgstr ""
@@ -2473,15 +2610,15 @@ msgstr ""
msgid "Delete Supplier Part"
msgstr ""
-#: company/views.py:799 part/views.py:2640
+#: company/views.py:799 part/views.py:2648
msgid "Added new price break"
msgstr ""
-#: company/views.py:855 part/views.py:2684
+#: company/views.py:855 part/views.py:2692
msgid "Edit Price Break"
msgstr ""
-#: company/views.py:870 part/views.py:2698
+#: company/views.py:870 part/views.py:2706
msgid "Delete Price Break"
msgstr ""
@@ -2489,51 +2626,59 @@ msgstr ""
msgid "No valid objects provided to template"
msgstr ""
-#: label/models.py:102
+#: label/models.py:103
msgid "Label name"
msgstr ""
-#: label/models.py:109
+#: label/models.py:110
msgid "Label description"
msgstr ""
-#: label/models.py:116 stock/forms.py:202
+#: label/models.py:117 stock/forms.py:202
msgid "Label"
msgstr ""
-#: label/models.py:117
+#: label/models.py:118
msgid "Label template file"
msgstr ""
-#: label/models.py:123 report/models.py:274
+#: label/models.py:124 report/models.py:274
msgid "Enabled"
msgstr ""
-#: label/models.py:124
+#: label/models.py:125
msgid "Label template is enabled"
msgstr ""
-#: label/models.py:129
+#: label/models.py:130
msgid "Width [mm]"
msgstr ""
-#: label/models.py:130
+#: label/models.py:131
msgid "Label width, specified in mm"
msgstr ""
-#: label/models.py:136
+#: label/models.py:137
msgid "Height [mm]"
msgstr ""
-#: label/models.py:137
+#: label/models.py:138
msgid "Label height, specified in mm"
msgstr ""
-#: label/models.py:222 label/models.py:275
+#: label/models.py:144
+msgid "Filename Pattern"
+msgstr ""
+
+#: label/models.py:145
+msgid "Pattern for generating label filenames"
+msgstr ""
+
+#: label/models.py:244 label/models.py:297
msgid "Query filters (comma-separated list of key=value pairs"
msgstr ""
-#: label/models.py:223 label/models.py:276 report/models.py:294
+#: label/models.py:245 label/models.py:298 report/models.py:294
#: report/models.py:415 report/models.py:449
msgid "Filters"
msgstr ""
@@ -2571,15 +2716,15 @@ msgstr ""
msgid "Enter sales order number"
msgstr ""
-#: order/forms.py:145 order/models.py:462
+#: order/forms.py:145 order/models.py:473
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/forms.py:235
+#: order/forms.py:236
msgid "Enter stock item serial numbers"
msgstr ""
-#: order/forms.py:241
+#: order/forms.py:242
msgid "Enter quantity of stock items"
msgstr ""
@@ -2607,7 +2752,7 @@ msgstr ""
msgid "Order notes"
msgstr ""
-#: order/models.py:182 order/models.py:455
+#: order/models.py:182 order/models.py:466
msgid "Purchase order status"
msgstr ""
@@ -2648,8 +2793,8 @@ msgstr ""
msgid "Date order was completed"
msgstr ""
-#: order/models.py:243 part/views.py:1586 stock/models.py:270
-#: stock/models.py:953
+#: order/models.py:243 part/views.py:1586 stock/models.py:302
+#: stock/models.py:1018
msgid "Quantity must be greater than zero"
msgstr ""
@@ -2657,128 +2802,134 @@ msgstr ""
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:344
+#: order/models.py:346
msgid "Lines can only be received against an order marked as 'Placed'"
msgstr ""
-#: order/models.py:348
+#: order/models.py:350
msgid "Quantity must be an integer"
msgstr ""
-#: order/models.py:350
+#: order/models.py:352
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:369
-msgid "Received items"
-msgstr ""
-
-#: order/models.py:451
+#: order/models.py:462
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:457
+#: order/models.py:468
msgid "Customer Reference "
msgstr ""
-#: order/models.py:457
+#: order/models.py:468
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:465 templates/js/order.js:303
+#: order/models.py:476 templates/js/order.js:303
msgid "Shipment Date"
msgstr ""
-#: order/models.py:472
+#: order/models.py:483
msgid "shipped by"
msgstr ""
-#: order/models.py:516
+#: order/models.py:527
msgid "SalesOrder cannot be shipped as it is not currently pending"
msgstr ""
-#: order/models.py:603
+#: order/models.py:614
msgid "Item quantity"
msgstr ""
-#: order/models.py:605
+#: order/models.py:616
msgid "Line item reference"
msgstr ""
-#: order/models.py:607
+#: order/models.py:618
msgid "Line item notes"
msgstr ""
-#: order/models.py:633 order/models.py:677
+#: order/models.py:644 order/models.py:689
#: part/templates/part/allocation.html:17
#: part/templates/part/allocation.html:45
msgid "Order"
msgstr ""
-#: order/models.py:634 order/templates/order/order_base.html:9
+#: order/models.py:645 order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:24
#: report/templates/report/inventree_po_report.html:77
-#: stock/templates/stock/item_base.html:313 templates/js/order.js:148
+#: stock/templates/stock/item_base.html:319 templates/js/order.js:148
+#: templates/js/stock.js:1045
msgid "Purchase Order"
msgstr ""
-#: order/models.py:648
+#: order/models.py:659
msgid "Supplier part"
msgstr ""
-#: order/models.py:651 order/templates/order/order_base.html:131
+#: order/models.py:662 order/templates/order/order_base.html:131
#: order/templates/order/purchase_order_detail.html:189
#: order/templates/order/receive_parts.html:22
#: order/templates/order/sales_order_base.html:131
msgid "Received"
msgstr ""
-#: order/models.py:651
+#: order/models.py:662
msgid "Number of items received"
msgstr ""
-#: order/models.py:658 stock/models.py:508
-#: stock/templates/stock/item_base.html:320
+#: order/models.py:669 stock/models.py:540
+#: stock/templates/stock/item_base.html:326
msgid "Purchase Price"
msgstr ""
-#: order/models.py:659
+#: order/models.py:670
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:753 order/models.py:755
+#: order/models.py:698 part/templates/part/navbar.html:95
+#: part/templates/part/part_pricing.html:78
+msgid "Sale Price"
+msgstr ""
+
+#: order/models.py:699
+msgid "Unit sale price"
+msgstr ""
+
+#: order/models.py:774 order/models.py:776
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:759
+#: order/models.py:780
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:761
+#: order/models.py:782
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:764
+#: order/models.py:785
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:774
+#: order/models.py:795
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:779
+#: order/models.py:800
msgid "Line"
msgstr ""
-#: order/models.py:790
+#: order/models.py:811
msgid "Item"
msgstr ""
-#: order/models.py:791
+#: order/models.py:812
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:794
+#: order/models.py:815
msgid "Enter stock allocation quantity"
msgstr ""
@@ -2830,7 +2981,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:100
#: part/templates/part/category.html:185 part/templates/part/category.html:227
#: stock/templates/stock/location.html:191 templates/js/stock.js:708
-#: templates/js/stock.js:1169
+#: templates/js/stock.js:1291
msgid "New Location"
msgstr ""
@@ -2864,6 +3015,75 @@ msgstr ""
msgid "Order Notes"
msgstr ""
+#: order/templates/order/order_wizard/match_fields.html:9
+#: part/templates/part/bom_upload/select_fields.html:21
+msgid "Missing selections for the following required columns"
+msgstr ""
+
+#: order/templates/order/order_wizard/match_fields.html:20
+msgid "Duplicate selections found, see below. Fix them then retry submitting."
+msgstr ""
+
+#: order/templates/order/order_wizard/match_fields.html:27
+#: order/templates/order/order_wizard/match_parts.html:18
+#: order/templates/order/order_wizard/po_upload.html:40
+msgid "Previous Step"
+msgstr ""
+
+#: order/templates/order/order_wizard/match_fields.html:29
+#: order/templates/order/order_wizard/match_parts.html:20
+#: part/templates/part/bom_upload/select_fields.html:32
+msgid "Submit Selections"
+msgstr ""
+
+#: order/templates/order/order_wizard/match_fields.html:35
+#: part/templates/part/bom_upload/select_fields.html:41
+msgid "File Fields"
+msgstr ""
+
+#: order/templates/order/order_wizard/match_fields.html:42
+#: part/templates/part/bom_upload/select_fields.html:47
+msgid "Remove column"
+msgstr ""
+
+#: order/templates/order/order_wizard/match_fields.html:60
+msgid "Duplicate selection"
+msgstr ""
+
+#: order/templates/order/order_wizard/match_fields.html:71
+#: order/templates/order/order_wizard/match_parts.html:51
+#: part/templates/part/bom_upload/select_fields.html:76
+#: part/templates/part/bom_upload/select_parts.html:58
+msgid "Remove row"
+msgstr ""
+
+#: order/templates/order/order_wizard/match_parts.html:11
+#: part/templates/part/bom_upload/select_parts.html:21
+msgid "Errors exist in the submitted data"
+msgstr ""
+
+#: order/templates/order/order_wizard/match_parts.html:27
+#: part/templates/part/bom_upload/select_parts.html:39
+msgid "Row"
+msgstr ""
+
+#: order/templates/order/order_wizard/match_parts.html:28
+msgid "Select Supplier Part"
+msgstr ""
+
+#: order/templates/order/order_wizard/po_upload.html:11
+msgid "Upload File for Purchase Order"
+msgstr ""
+
+#: order/templates/order/order_wizard/po_upload.html:18
+#, python-format
+msgid "Step %(step)s of %(count)s"
+msgstr ""
+
+#: order/templates/order/order_wizard/po_upload.html:48
+msgid "Order is already processed. Files cannot be uploaded."
+msgstr ""
+
#: order/templates/order/order_wizard/select_parts.html:9
msgid "Step 1 of 2 - Select Part Suppliers"
msgstr ""
@@ -2936,8 +3156,8 @@ msgid "Purchase Order Items"
msgstr ""
#: order/templates/order/purchase_order_detail.html:24
-#: order/templates/order/sales_order_detail.html:22 order/views.py:1120
-#: order/views.py:1203
+#: order/templates/order/sales_order_detail.html:22 order/views.py:1311
+#: order/views.py:1394
msgid "Add Line Item"
msgstr ""
@@ -2946,11 +3166,12 @@ msgid "No line items found"
msgstr ""
#: order/templates/order/purchase_order_detail.html:180
+#: order/templates/order/sales_order_detail.html:235
msgid "Unit Price"
msgstr ""
#: order/templates/order/purchase_order_detail.html:221
-#: order/templates/order/sales_order_detail.html:294
+#: order/templates/order/sales_order_detail.html:328
msgid "Edit line item"
msgstr ""
@@ -2980,7 +3201,7 @@ msgstr ""
#: part/templates/part/category_partlist.html:10
#: templates/InvenTree/index.html:97 templates/InvenTree/search.html:114
#: templates/InvenTree/settings/tabs.html:25 templates/js/part.js:577
-#: templates/navbar.html:23 templates/stats.html:59 templates/stats.html:68
+#: templates/navbar.html:23 templates/stats.html:80 templates/stats.html:89
#: users/models.py:40
msgid "Parts"
msgstr ""
@@ -3042,59 +3263,72 @@ msgstr ""
msgid "Sales Order Items"
msgstr ""
-#: order/templates/order/sales_order_detail.html:92 templates/js/bom.js:342
+#: order/templates/order/sales_order_detail.html:95 templates/js/bom.js:342
#: templates/js/build.js:627 templates/js/build.js:1044
msgid "Actions"
msgstr ""
-#: order/templates/order/sales_order_detail.html:99 templates/js/build.js:515
+#: order/templates/order/sales_order_detail.html:102 templates/js/build.js:515
#: templates/js/build.js:849
msgid "Edit stock allocation"
msgstr ""
-#: order/templates/order/sales_order_detail.html:100 templates/js/build.js:517
+#: order/templates/order/sales_order_detail.html:103 templates/js/build.js:517
#: templates/js/build.js:850
msgid "Delete stock allocation"
msgstr ""
-#: order/templates/order/sales_order_detail.html:170
+#: order/templates/order/sales_order_detail.html:176
msgid "No matching line items"
msgstr ""
-#: order/templates/order/sales_order_detail.html:199
+#: order/templates/order/sales_order_detail.html:205
msgid "ID"
msgstr ""
-#: order/templates/order/sales_order_detail.html:229 templates/js/build.js:579
+#: order/templates/order/sales_order_detail.html:243 templates/js/build.js:579
#: templates/js/build.js:845
msgid "Allocated"
msgstr ""
-#: order/templates/order/sales_order_detail.html:231
+#: order/templates/order/sales_order_detail.html:245
msgid "Fulfilled"
msgstr ""
-#: order/templates/order/sales_order_detail.html:279
+#: order/templates/order/sales_order_detail.html:282
+msgid "PO"
+msgstr ""
+
+#: order/templates/order/sales_order_detail.html:312
msgid "Allocate serial numbers"
msgstr ""
-#: order/templates/order/sales_order_detail.html:282 templates/js/build.js:641
+#: order/templates/order/sales_order_detail.html:315 templates/js/build.js:641
msgid "Allocate stock"
msgstr ""
-#: order/templates/order/sales_order_detail.html:285
+#: order/templates/order/sales_order_detail.html:318
msgid "Purchase stock"
msgstr ""
-#: order/templates/order/sales_order_detail.html:289 templates/js/build.js:634
+#: order/templates/order/sales_order_detail.html:322 templates/js/build.js:634
#: templates/js/build.js:1052
msgid "Build stock"
msgstr ""
-#: order/templates/order/sales_order_detail.html:295
+#: order/templates/order/sales_order_detail.html:325
+#: order/templates/order/sales_order_detail.html:434
+msgid "Calculate price"
+msgstr ""
+
+#: order/templates/order/sales_order_detail.html:329
msgid "Delete line item "
msgstr ""
+#: order/templates/order/sales_order_detail.html:440
+msgid "Update Unit Price"
+msgstr ""
+
#: order/templates/order/sales_order_notes.html:14
msgid "Sales Order Notes"
msgstr ""
@@ -3136,164 +3370,189 @@ msgstr ""
msgid "Are you sure you wish to delete this line item?"
msgstr ""
-#: order/views.py:99
+#: order/views.py:104
msgid "Add Purchase Order Attachment"
msgstr ""
-#: order/views.py:149
+#: order/views.py:154
msgid "Add Sales Order Attachment"
msgstr ""
-#: order/views.py:341
+#: order/views.py:346
msgid "Create Sales Order"
msgstr ""
-#: order/views.py:376
+#: order/views.py:381
msgid "Edit Purchase Order"
msgstr ""
-#: order/views.py:396
+#: order/views.py:401
msgid "Edit Sales Order"
msgstr ""
-#: order/views.py:412
+#: order/views.py:417
msgid "Cancel Order"
msgstr ""
-#: order/views.py:421 order/views.py:447
+#: order/views.py:426 order/views.py:452
msgid "Confirm order cancellation"
msgstr ""
-#: order/views.py:424 order/views.py:450
+#: order/views.py:429 order/views.py:455
msgid "Order cannot be cancelled"
msgstr ""
-#: order/views.py:438
+#: order/views.py:443
msgid "Cancel sales order"
msgstr ""
-#: order/views.py:464
+#: order/views.py:469
msgid "Issue Order"
msgstr ""
-#: order/views.py:473
+#: order/views.py:478
msgid "Confirm order placement"
msgstr ""
-#: order/views.py:483
+#: order/views.py:488
msgid "Purchase order issued"
msgstr ""
-#: order/views.py:494
+#: order/views.py:499
msgid "Complete Order"
msgstr ""
-#: order/views.py:510
+#: order/views.py:515
msgid "Confirm order completion"
msgstr ""
-#: order/views.py:521
+#: order/views.py:526
msgid "Purchase order completed"
msgstr ""
-#: order/views.py:531
+#: order/views.py:536
msgid "Ship Order"
msgstr ""
-#: order/views.py:547
+#: order/views.py:552
msgid "Confirm order shipment"
msgstr ""
-#: order/views.py:553
+#: order/views.py:558
msgid "Could not ship order"
msgstr ""
-#: order/views.py:607
+#: order/views.py:584
+msgid "Match Supplier Parts"
+msgstr ""
+
+#: order/views.py:798
msgid "Receive Parts"
msgstr ""
-#: order/views.py:677
+#: order/views.py:868
msgid "Items received"
msgstr ""
-#: order/views.py:691
+#: order/views.py:882
msgid "No destination set"
msgstr ""
-#: order/views.py:736
+#: order/views.py:927
msgid "Error converting quantity to number"
msgstr ""
-#: order/views.py:742
+#: order/views.py:933
msgid "Receive quantity less than zero"
msgstr ""
-#: order/views.py:748
+#: order/views.py:939
msgid "No lines specified"
msgstr ""
-#: order/views.py:1069
+#: order/views.py:1260
#, python-brace-format
msgid "Ordered {n} parts"
msgstr ""
-#: order/views.py:1129
+#: order/views.py:1320
msgid "Supplier part must be specified"
msgstr ""
-#: order/views.py:1135
+#: order/views.py:1326
msgid "Supplier must match for Part and Order"
msgstr ""
-#: order/views.py:1254 order/views.py:1272
+#: order/views.py:1457 order/views.py:1475
msgid "Edit Line Item"
msgstr ""
-#: order/views.py:1288 order/views.py:1300
+#: order/views.py:1491 order/views.py:1503
msgid "Delete Line Item"
msgstr ""
-#: order/views.py:1293 order/views.py:1305
+#: order/views.py:1496 order/views.py:1508
msgid "Deleted line item"
msgstr ""
-#: order/views.py:1318
+#: order/views.py:1521
msgid "Allocate Serial Numbers"
msgstr ""
-#: order/views.py:1363
+#: order/views.py:1566
#, python-brace-format
msgid "Allocated {n} items"
msgstr ""
-#: order/views.py:1379
+#: order/views.py:1582
msgid "Select line item"
msgstr ""
-#: order/views.py:1410
-msgid "No matching item for serial"
+#: order/views.py:1613
+#, python-brace-format
+msgid "No matching item for serial {serial}"
msgstr ""
-#: order/views.py:1420
-msgid "is not in stock"
+#: order/views.py:1623
+#, python-brace-format
+msgid "{serial} is not in stock"
msgstr ""
-#: order/views.py:1428
-msgid "already allocated to an order"
+#: order/views.py:1631
+#, python-brace-format
+msgid "{serial} already allocated to an order"
msgstr ""
-#: order/views.py:1482
+#: order/views.py:1685
msgid "Allocate Stock to Order"
msgstr ""
-#: order/views.py:1556
+#: order/views.py:1759
msgid "Edit Allocation Quantity"
msgstr ""
-#: order/views.py:1571
+#: order/views.py:1774
msgid "Remove allocation"
msgstr ""
+#: order/views.py:1846
+msgid "Sales order not found"
+msgstr ""
+
+#: order/views.py:1852
+msgid "Price not found"
+msgstr ""
+
+#: order/views.py:1855
+#, python-brace-format
+msgid "Updated {part} unit-price to {price}"
+msgstr ""
+
+#: order/views.py:1860
+#, python-brace-format
+msgid "Updated {part} unit-price to {price} and quantity to {qty}"
+msgstr ""
+
#: part/bom.py:138 part/models.py:72 part/models.py:762
#: part/templates/part/category.html:66 part/templates/part/detail.html:90
msgid "Default Location"
@@ -3372,7 +3631,7 @@ msgstr ""
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:122 part/models.py:2077
+#: part/forms.py:122 part/models.py:2115
msgid "Parent Part"
msgstr ""
@@ -3448,7 +3707,7 @@ msgstr ""
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:344 part/models.py:2171
+#: part/forms.py:344 part/models.py:2209
msgid "Sub part"
msgstr ""
@@ -3468,14 +3727,14 @@ msgstr ""
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:82 part/models.py:2123
+#: part/models.py:82 part/models.py:2161
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
#: part/models.py:83 part/templates/part/category.html:23
#: part/templates/part/category.html:94 part/templates/part/category.html:141
-#: templates/InvenTree/search.html:127 templates/stats.html:63
+#: templates/InvenTree/search.html:127 templates/stats.html:84
#: users/models.py:39
msgid "Part Categories"
msgstr ""
@@ -3538,7 +3797,7 @@ msgstr ""
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:724 part/models.py:2122 part/templates/part/detail.html:73
+#: part/models.py:724 part/models.py:2160 part/templates/part/detail.html:73
#: part/templates/part/set_category.html:15 templates/js/part.js:385
msgid "Category"
msgstr ""
@@ -3593,7 +3852,7 @@ msgstr ""
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:828 part/models.py:2051 part/templates/part/detail.html:106
+#: part/models.py:828 part/models.py:2089 part/templates/part/detail.html:106
#: part/templates/part/params.html:29
msgid "Units"
msgstr ""
@@ -3623,8 +3882,8 @@ msgid "Can this part be sold to customers?"
msgstr ""
#: part/models.py:861 part/templates/part/detail.html:227
-#: templates/js/table_filters.js:20 templates/js/table_filters.js:60
-#: templates/js/table_filters.js:236 templates/js/table_filters.js:305
+#: templates/js/table_filters.js:21 templates/js/table_filters.js:61
+#: templates/js/table_filters.js:237 templates/js/table_filters.js:306
msgid "Active"
msgstr ""
@@ -3660,167 +3919,171 @@ msgstr ""
msgid "Creation User"
msgstr ""
-#: part/models.py:1949
-msgid "Test templates can only be created for trackable parts"
-msgstr ""
-
-#: part/models.py:1966
-msgid "Test with this name already exists for this part"
-msgstr ""
-
-#: part/models.py:1986 templates/js/part.js:638 templates/js/stock.js:104
-msgid "Test Name"
+#: part/models.py:1616
+msgid "Sell multiple"
msgstr ""
#: part/models.py:1987
+msgid "Test templates can only be created for trackable parts"
+msgstr ""
+
+#: part/models.py:2004
+msgid "Test with this name already exists for this part"
+msgstr ""
+
+#: part/models.py:2024 templates/js/part.js:638 templates/js/stock.js:104
+msgid "Test Name"
+msgstr ""
+
+#: part/models.py:2025
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:1992
+#: part/models.py:2030
msgid "Test Description"
msgstr ""
-#: part/models.py:1993
+#: part/models.py:2031
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:1998 templates/js/part.js:647
-#: templates/js/table_filters.js:222
+#: part/models.py:2036 templates/js/part.js:647
+#: templates/js/table_filters.js:223
msgid "Required"
msgstr ""
-#: part/models.py:1999
+#: part/models.py:2037
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2004 templates/js/part.js:655
+#: part/models.py:2042 templates/js/part.js:655
msgid "Requires Value"
msgstr ""
-#: part/models.py:2005
+#: part/models.py:2043
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2010 templates/js/part.js:662
+#: part/models.py:2048 templates/js/part.js:662
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2011
+#: part/models.py:2049
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2044
+#: part/models.py:2082
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2049
+#: part/models.py:2087
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2051
+#: part/models.py:2089
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2079 part/models.py:2128 part/models.py:2129
+#: part/models.py:2117 part/models.py:2166 part/models.py:2167
#: templates/InvenTree/settings/category.html:62
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2081
+#: part/models.py:2119
msgid "Data"
msgstr ""
-#: part/models.py:2081
+#: part/models.py:2119
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2133 templates/InvenTree/settings/category.html:67
+#: part/models.py:2171 templates/InvenTree/settings/category.html:67
msgid "Default Value"
msgstr ""
-#: part/models.py:2134
+#: part/models.py:2172
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2163
+#: part/models.py:2201
msgid "Select parent part"
msgstr ""
-#: part/models.py:2172
+#: part/models.py:2210
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2178
+#: part/models.py:2216
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2180 templates/js/bom.js:216 templates/js/bom.js:269
+#: part/models.py:2218 templates/js/bom.js:216 templates/js/bom.js:269
msgid "Optional"
msgstr ""
-#: part/models.py:2180
+#: part/models.py:2218
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2183
+#: part/models.py:2221
msgid "Overage"
msgstr ""
-#: part/models.py:2184
+#: part/models.py:2222
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2187
+#: part/models.py:2225
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2190
+#: part/models.py:2228
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2192
+#: part/models.py:2230
msgid "Checksum"
msgstr ""
-#: part/models.py:2192
+#: part/models.py:2230
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2196 templates/js/bom.js:279 templates/js/bom.js:286
-#: templates/js/table_filters.js:50
+#: part/models.py:2234 templates/js/bom.js:279 templates/js/bom.js:286
+#: templates/js/table_filters.js:51
msgid "Inherited"
msgstr ""
-#: part/models.py:2197
+#: part/models.py:2235
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2273 part/views.py:1592 part/views.py:1644
-#: stock/models.py:260
+#: part/models.py:2311 part/views.py:1592 part/views.py:1644
+#: stock/models.py:292
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2282 part/models.py:2284
+#: part/models.py:2320 part/models.py:2322
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2287
+#: part/models.py:2325
msgid "BOM Item"
msgstr ""
-#: part/models.py:2404
+#: part/models.py:2442
msgid "Part 1"
msgstr ""
-#: part/models.py:2408
+#: part/models.py:2446
msgid "Part 2"
msgstr ""
-#: part/models.py:2408
+#: part/models.py:2446
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2440
+#: part/models.py:2478
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -3905,7 +4168,7 @@ msgid "All selected BOM items will be deleted"
msgstr ""
#: part/templates/part/bom.html:160 part/views.py:584
-#: templates/js/stock.js:1158
+#: templates/js/stock.js:1280
msgid "Create New Part"
msgstr ""
@@ -3923,51 +4186,18 @@ msgstr ""
msgid "Step 2 - Select Fields"
msgstr ""
-#: part/templates/part/bom_upload/select_fields.html:21
-msgid "Missing selections for the following required columns"
-msgstr ""
-
-#: part/templates/part/bom_upload/select_fields.html:32
-msgid "Submit Selections"
-msgstr ""
-
-#: part/templates/part/bom_upload/select_fields.html:41
-msgid "File Fields"
-msgstr ""
-
-#: part/templates/part/bom_upload/select_fields.html:47
-msgid "Remove column"
-msgstr ""
-
-#: part/templates/part/bom_upload/select_fields.html:58
-msgid "Match Fields"
-msgstr ""
-
#: part/templates/part/bom_upload/select_fields.html:68
msgid "Duplicate column selection"
msgstr ""
-#: part/templates/part/bom_upload/select_fields.html:76
-#: part/templates/part/bom_upload/select_parts.html:58
-msgid "Remove row"
-msgstr ""
-
#: part/templates/part/bom_upload/select_parts.html:16
msgid "Step 3 - Select Parts"
msgstr ""
-#: part/templates/part/bom_upload/select_parts.html:21
-msgid "Errors exist in the submitted data"
-msgstr ""
-
#: part/templates/part/bom_upload/select_parts.html:27
msgid "Submit BOM"
msgstr ""
-#: part/templates/part/bom_upload/select_parts.html:39
-msgid "Row"
-msgstr ""
-
#: part/templates/part/bom_upload/select_parts.html:40
#: part/templates/part/bom_upload/select_parts.html:69
msgid "Select Part"
@@ -3998,10 +4228,6 @@ msgstr ""
msgid "Each part must already exist in the database"
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:27
-msgid "Upload File"
-msgstr ""
-
#: part/templates/part/bom_validate.html:6
#, python-format
msgid "Confirm that the Bill of Materials (BOM) is valid for:
%(part)s"
@@ -4023,7 +4249,7 @@ msgstr ""
msgid "All parts"
msgstr ""
-#: part/templates/part/category.html:29 part/views.py:2282
+#: part/templates/part/category.html:29 part/views.py:2290
msgid "Create new part category"
msgstr ""
@@ -4091,7 +4317,7 @@ msgstr ""
msgid "Create new Part Category"
msgstr ""
-#: part/templates/part/category.html:228 stock/views.py:1359
+#: part/templates/part/category.html:228 stock/views.py:1391
msgid "Create new Stock Location"
msgstr ""
@@ -4282,15 +4508,11 @@ msgstr ""
msgid "Sales Price Information"
msgstr ""
-#: part/templates/part/navbar.html:95
-msgid "Sale Price"
-msgstr ""
-
#: part/templates/part/navbar.html:106 part/templates/part/part_tests.html:10
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/navbar.html:109 stock/templates/stock/item_base.html:398
+#: part/templates/part/navbar.html:109 stock/templates/stock/item_base.html:404
msgid "Tests"
msgstr ""
@@ -4315,7 +4537,7 @@ msgstr ""
#: part/templates/part/params.html:28
#: report/templates/report/inventree_test_report_base.html:90
-#: stock/models.py:1655 templates/InvenTree/settings/header.html:8
+#: stock/models.py:1754 templates/InvenTree/settings/header.html:8
#: templates/js/stock.js:124
msgid "Value"
msgstr ""
@@ -4351,19 +4573,19 @@ msgid "Star this part"
msgstr ""
#: part/templates/part/part_base.html:47
-#: stock/templates/stock/item_base.html:131
+#: stock/templates/stock/item_base.html:137
#: stock/templates/stock/location.html:51
msgid "Barcode actions"
msgstr ""
#: part/templates/part/part_base.html:49
-#: stock/templates/stock/item_base.html:133
+#: stock/templates/stock/item_base.html:139
#: stock/templates/stock/location.html:53 templates/qr_button.html:1
msgid "Show QR Code"
msgstr ""
#: part/templates/part/part_base.html:50
-#: stock/templates/stock/item_base.html:149
+#: stock/templates/stock/item_base.html:155
#: stock/templates/stock/location.html:54
msgid "Print Label"
msgstr ""
@@ -4392,7 +4614,7 @@ msgstr ""
msgid "Delete part"
msgstr ""
-#: part/templates/part/part_base.html:123 templates/js/table_filters.js:156
+#: part/templates/part/part_base.html:123 templates/js/table_filters.js:157
msgid "In Stock"
msgstr ""
@@ -4420,42 +4642,39 @@ msgstr ""
msgid "Calculate"
msgstr ""
-#: part/templates/part/part_pricing.html:8
-#, python-format
-msgid "Pricing information for:
%(part)s."
-msgstr ""
-
-#: part/templates/part/part_pricing.html:23
+#: part/templates/part/part_pricing.html:19
msgid "Supplier Pricing"
msgstr ""
-#: part/templates/part/part_pricing.html:27
-#: part/templates/part/part_pricing.html:53
+#: part/templates/part/part_pricing.html:23
+#: part/templates/part/part_pricing.html:49
+#: part/templates/part/part_pricing.html:81
msgid "Unit Cost"
msgstr ""
-#: part/templates/part/part_pricing.html:33
-#: part/templates/part/part_pricing.html:59
+#: part/templates/part/part_pricing.html:29
+#: part/templates/part/part_pricing.html:55
+#: part/templates/part/part_pricing.html:85
msgid "Total Cost"
msgstr ""
-#: part/templates/part/part_pricing.html:41
+#: part/templates/part/part_pricing.html:37
msgid "No supplier pricing available"
msgstr ""
-#: part/templates/part/part_pricing.html:49
+#: part/templates/part/part_pricing.html:45
msgid "BOM Pricing"
msgstr ""
-#: part/templates/part/part_pricing.html:67
+#: part/templates/part/part_pricing.html:63
msgid "Note: BOM pricing is incomplete for this part"
msgstr ""
-#: part/templates/part/part_pricing.html:74
+#: part/templates/part/part_pricing.html:70
msgid "No BOM pricing available"
msgstr ""
-#: part/templates/part/part_pricing.html:84
+#: part/templates/part/part_pricing.html:94
msgid "No pricing information is available for this part."
msgstr ""
@@ -4564,6 +4783,10 @@ msgstr ""
msgid "New Variant"
msgstr ""
+#: part/templatetags/inventree_extras.py:97
+msgid "Unknown database"
+msgstr ""
+
#: part/views.py:89
msgid "Add Related Part"
msgstr ""
@@ -4713,63 +4936,63 @@ msgstr ""
msgid "Part Pricing"
msgstr ""
-#: part/views.py:2081
+#: part/views.py:2089
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:2091
+#: part/views.py:2099
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:2098
+#: part/views.py:2106
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:2106
+#: part/views.py:2114
msgid "Create Part Parameter"
msgstr ""
-#: part/views.py:2156
+#: part/views.py:2164
msgid "Edit Part Parameter"
msgstr ""
-#: part/views.py:2170
+#: part/views.py:2178
msgid "Delete Part Parameter"
msgstr ""
-#: part/views.py:2230
+#: part/views.py:2238
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:2268
+#: part/views.py:2276
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:2274
+#: part/views.py:2282
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:2326
+#: part/views.py:2334
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:2427
+#: part/views.py:2435
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:2483
+#: part/views.py:2491
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:2502
+#: part/views.py:2510
msgid "Create BOM Item"
msgstr ""
-#: part/views.py:2572
+#: part/views.py:2580
msgid "Edit BOM item"
msgstr ""
-#: part/views.py:2628
+#: part/views.py:2636
msgid "Confim BOM item deletion"
msgstr ""
@@ -4871,17 +5094,17 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:1643
+#: stock/models.py:1742
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:89
-#: stock/models.py:1649
+#: stock/models.py:1748
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:92
-#: templates/js/order.js:195 templates/js/stock.js:986
+#: templates/js/order.js:195 templates/js/stock.js:984
msgid "Date"
msgstr ""
@@ -4893,22 +5116,22 @@ msgstr ""
msgid "Fail"
msgstr ""
-#: stock/api.py:199
+#: stock/api.py:212
#, python-brace-format
msgid "Updated stock for {n} items"
msgstr ""
-#: stock/api.py:268
+#: stock/api.py:281
#, python-brace-format
msgid "Moved {n} parts to {loc}"
msgstr ""
-#: stock/forms.py:114 stock/forms.py:406 stock/models.py:475
-#: stock/templates/stock/item_base.html:365 templates/js/stock.js:656
+#: stock/forms.py:114 stock/forms.py:418 stock/models.py:507
+#: stock/templates/stock/item_base.html:371 templates/js/stock.js:656
msgid "Expiry Date"
msgstr ""
-#: stock/forms.py:115 stock/forms.py:407
+#: stock/forms.py:115 stock/forms.py:419
msgid "Expiration date for this stock item"
msgstr ""
@@ -4936,8 +5159,8 @@ msgstr ""
msgid "Select test report template"
msgstr ""
-#: stock/forms.py:267 templates/js/table_filters.js:70
-#: templates/js/table_filters.js:133
+#: stock/forms.py:267 templates/js/table_filters.js:71
+#: templates/js/table_filters.js:134
msgid "Include sublocations"
msgstr ""
@@ -4993,243 +5216,187 @@ msgstr ""
msgid "Set the destination as the default location for selected parts"
msgstr ""
-#: stock/models.py:54 stock/models.py:513
+#: stock/models.py:54 stock/models.py:545
msgid "Owner"
msgstr ""
-#: stock/models.py:55 stock/models.py:514
+#: stock/models.py:55 stock/models.py:546
msgid "Select Owner"
msgstr ""
-#: stock/models.py:205
-msgid "Created stock item"
-msgstr ""
-
-#: stock/models.py:241
+#: stock/models.py:273
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:277
+#: stock/models.py:309
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:287 stock/models.py:296
+#: stock/models.py:319 stock/models.py:328
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:288
+#: stock/models.py:320
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:310
+#: stock/models.py:342
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:316
+#: stock/models.py:348
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:323
+#: stock/models.py:355
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:365
+#: stock/models.py:397
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:374
+#: stock/models.py:406
msgid "Base part"
msgstr ""
-#: stock/models.py:383
+#: stock/models.py:415
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:388 stock/templates/stock/stock_app_base.html:8
+#: stock/models.py:420 stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:391
+#: stock/models.py:423
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:398
+#: stock/models.py:430
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:403 stock/templates/stock/item_base.html:259
+#: stock/models.py:435 stock/templates/stock/item_base.html:265
msgid "Installed In"
msgstr ""
-#: stock/models.py:406
+#: stock/models.py:438
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:422
+#: stock/models.py:454
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:434
+#: stock/models.py:466
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:438
+#: stock/models.py:470
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:447
+#: stock/models.py:479
msgid "Source Build"
msgstr ""
-#: stock/models.py:449
+#: stock/models.py:481
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:460
+#: stock/models.py:492
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:463
+#: stock/models.py:495
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:469
+#: stock/models.py:501
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:476
+#: stock/models.py:508
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:489
+#: stock/models.py:521
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:489
+#: stock/models.py:521
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:499 stock/templates/stock/item_notes.html:13
+#: stock/models.py:531 stock/templates/stock/item_notes.html:13
#: stock/templates/stock/navbar.html:54
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:509
+#: stock/models.py:541
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:614
-msgid "Assigned to Customer"
-msgstr ""
-
-#: stock/models.py:616
-msgid "Manually assigned to customer"
-msgstr ""
-
-#: stock/models.py:629
-msgid "Returned from customer"
-msgstr ""
-
-#: stock/models.py:631
-msgid "Returned to location"
-msgstr ""
-
-#: stock/models.py:792
-msgid "Installed into stock item"
-msgstr ""
-
-#: stock/models.py:800
-msgid "Installed stock item"
-msgstr ""
-
-#: stock/models.py:824
-msgid "Uninstalled stock item"
-msgstr ""
-
-#: stock/models.py:843
-msgid "Uninstalled into location"
-msgstr ""
-
-#: stock/models.py:944
+#: stock/models.py:1009
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:950
+#: stock/models.py:1015
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:956
+#: stock/models.py:1021
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:959
+#: stock/models.py:1024
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:962
+#: stock/models.py:1027
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:994
-msgid "Add serial number"
-msgstr ""
-
-#: stock/models.py:997
+#: stock/models.py:1034
#, python-brace-format
-msgid "Serialized {n} items"
+msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1075
-msgid "Split from existing stock"
-msgstr ""
-
-#: stock/models.py:1113
+#: stock/models.py:1192
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1556
-msgid "Title"
-msgstr ""
-
-#: stock/models.py:1556
-msgid "Tracking entry title"
-msgstr ""
-
-#: stock/models.py:1558
+#: stock/models.py:1666
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1560
-msgid "Link to external page for further information"
-msgstr ""
-
-#: stock/models.py:1620
+#: stock/models.py:1719
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1626
+#: stock/models.py:1725
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1644
+#: stock/models.py:1743
msgid "Test name"
msgstr ""
-#: stock/models.py:1650 templates/js/table_filters.js:212
+#: stock/models.py:1749 templates/js/table_filters.js:213
msgid "Test result"
msgstr ""
-#: stock/models.py:1656
+#: stock/models.py:1755
msgid "Test output value"
msgstr ""
-#: stock/models.py:1663
+#: stock/models.py:1762
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1669
+#: stock/models.py:1768
msgid "Test notes"
msgstr ""
@@ -5284,134 +5451,134 @@ msgid "This stock item will be automatically deleted when all stock is depleted.
msgstr ""
#: stock/templates/stock/item_base.html:95
-#: stock/templates/stock/item_base.html:369 templates/js/table_filters.js:145
+#: stock/templates/stock/item_base.html:375 templates/js/table_filters.js:146
msgid "Expired"
msgstr ""
-#: stock/templates/stock/item_base.html:99
-#: stock/templates/stock/item_base.html:371 templates/js/table_filters.js:150
+#: stock/templates/stock/item_base.html:105
+#: stock/templates/stock/item_base.html:377 templates/js/table_filters.js:151
msgid "Stale"
msgstr ""
-#: stock/templates/stock/item_base.html:136 templates/js/barcode.js:309
+#: stock/templates/stock/item_base.html:142 templates/js/barcode.js:309
#: templates/js/barcode.js:314
msgid "Unlink Barcode"
msgstr ""
-#: stock/templates/stock/item_base.html:138
+#: stock/templates/stock/item_base.html:144
msgid "Link Barcode"
msgstr ""
-#: stock/templates/stock/item_base.html:140 templates/stock_table.html:31
+#: stock/templates/stock/item_base.html:146 templates/stock_table.html:31
msgid "Scan to Location"
msgstr ""
-#: stock/templates/stock/item_base.html:147
+#: stock/templates/stock/item_base.html:153
msgid "Printing actions"
msgstr ""
-#: stock/templates/stock/item_base.html:151
+#: stock/templates/stock/item_base.html:157
#: stock/templates/stock/item_tests.html:27
msgid "Test Report"
msgstr ""
-#: stock/templates/stock/item_base.html:160
+#: stock/templates/stock/item_base.html:166
msgid "Stock adjustment actions"
msgstr ""
-#: stock/templates/stock/item_base.html:164
+#: stock/templates/stock/item_base.html:170
#: stock/templates/stock/location.html:65 templates/stock_table.html:57
msgid "Count stock"
msgstr ""
-#: stock/templates/stock/item_base.html:167 templates/stock_table.html:55
+#: stock/templates/stock/item_base.html:173 templates/stock_table.html:55
msgid "Add stock"
msgstr ""
-#: stock/templates/stock/item_base.html:170 templates/stock_table.html:56
+#: stock/templates/stock/item_base.html:176 templates/stock_table.html:56
msgid "Remove stock"
msgstr ""
-#: stock/templates/stock/item_base.html:173
+#: stock/templates/stock/item_base.html:179
msgid "Serialize stock"
msgstr ""
-#: stock/templates/stock/item_base.html:177
+#: stock/templates/stock/item_base.html:183
msgid "Transfer stock"
msgstr ""
-#: stock/templates/stock/item_base.html:180
+#: stock/templates/stock/item_base.html:186
msgid "Assign to customer"
msgstr ""
-#: stock/templates/stock/item_base.html:183
+#: stock/templates/stock/item_base.html:189
msgid "Return to stock"
msgstr ""
-#: stock/templates/stock/item_base.html:187 templates/js/stock.js:1299
+#: stock/templates/stock/item_base.html:193 templates/js/stock.js:1421
msgid "Uninstall stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:187
+#: stock/templates/stock/item_base.html:193
msgid "Uninstall"
msgstr ""
-#: stock/templates/stock/item_base.html:196
+#: stock/templates/stock/item_base.html:202
#: stock/templates/stock/location.html:62
msgid "Stock actions"
msgstr ""
-#: stock/templates/stock/item_base.html:199
+#: stock/templates/stock/item_base.html:205
msgid "Convert to variant"
msgstr ""
-#: stock/templates/stock/item_base.html:202
+#: stock/templates/stock/item_base.html:208
msgid "Duplicate stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:204
+#: stock/templates/stock/item_base.html:210
msgid "Edit stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:207
+#: stock/templates/stock/item_base.html:213
msgid "Delete stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:219
+#: stock/templates/stock/item_base.html:225
msgid "Stock Item Details"
msgstr ""
-#: stock/templates/stock/item_base.html:278 templates/js/build.js:498
+#: stock/templates/stock/item_base.html:284 templates/js/build.js:498
msgid "No location set"
msgstr ""
-#: stock/templates/stock/item_base.html:285
+#: stock/templates/stock/item_base.html:291
msgid "Barcode Identifier"
msgstr ""
-#: stock/templates/stock/item_base.html:327
+#: stock/templates/stock/item_base.html:333
msgid "Parent Item"
msgstr ""
-#: stock/templates/stock/item_base.html:369
+#: stock/templates/stock/item_base.html:375
#, python-format
msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:371
+#: stock/templates/stock/item_base.html:377
#, python-format
msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:378 templates/js/stock.js:662
+#: stock/templates/stock/item_base.html:384 templates/js/stock.js:662
msgid "Last Updated"
msgstr ""
-#: stock/templates/stock/item_base.html:383
+#: stock/templates/stock/item_base.html:389
msgid "Last Stocktake"
msgstr ""
-#: stock/templates/stock/item_base.html:387
+#: stock/templates/stock/item_base.html:393
msgid "No stocktake performed"
msgstr ""
@@ -5522,7 +5689,7 @@ msgid "Stock Details"
msgstr ""
#: stock/templates/stock/location.html:117 templates/InvenTree/search.html:279
-#: templates/stats.html:76 users/models.py:41
+#: templates/stats.html:97 users/models.py:41
msgid "Stock Locations"
msgstr ""
@@ -5562,7 +5729,7 @@ msgstr ""
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:1332
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:1364
msgid "Convert Stock Item"
msgstr ""
@@ -5595,8 +5762,8 @@ msgstr ""
msgid "Edit Stock Location"
msgstr ""
-#: stock/views.py:230 stock/views.py:1322 stock/views.py:1433
-#: stock/views.py:1798
+#: stock/views.py:230 stock/views.py:1343 stock/views.py:1465
+#: stock/views.py:1830
msgid "Owner is required (ownership control is enabled)"
msgstr ""
@@ -5762,43 +5929,47 @@ msgstr ""
msgid "Deleted {n} stock items"
msgstr ""
-#: stock/views.py:1224
+#: stock/views.py:1222
+msgid "Edit Stock Item Status"
+msgstr ""
+
+#: stock/views.py:1245
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:1450
+#: stock/views.py:1482
msgid "Serialize Stock"
msgstr ""
-#: stock/views.py:1543 templates/js/build.js:244
+#: stock/views.py:1575 templates/js/build.js:244
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1685
+#: stock/views.py:1717
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1767
+#: stock/views.py:1799
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1867
+#: stock/views.py:1899
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:1880
+#: stock/views.py:1912
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1891
+#: stock/views.py:1923
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1898
+#: stock/views.py:1930
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1907
+#: stock/views.py:1939
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -5896,8 +6067,7 @@ msgstr ""
#: templates/InvenTree/settings/appearance.html:29
#, python-format
-msgid ""
-"\n"
+msgid "\n"
" The CSS sheet \"%(invalid_color_theme)s.css\" for the currently selected color theme was not found.
\n"
" Please select another color theme :)\n"
" "
@@ -6100,9 +6270,17 @@ msgstr ""
msgid "Submit Bug Report"
msgstr ""
-#: templates/about.html:82 templates/js/modals.js:550
-#: templates/js/modals.js:809 templates/modals.html:28 templates/modals.html:52
-#: templates/modals.html:93
+#: templates/about.html:80 templates/clip.html:4
+msgid "copy to clipboard"
+msgstr ""
+
+#: templates/about.html:80
+msgid "copy version information"
+msgstr ""
+
+#: templates/about.html:90 templates/js/modals.js:568
+#: templates/js/modals.js:846 templates/modals.html:29 templates/modals.html:54
+#: templates/modals.html:97
msgid "Close"
msgstr ""
@@ -6110,10 +6288,6 @@ msgstr ""
msgid "Add Attachment"
msgstr ""
-#: templates/attachment_table.html:15
-msgid "File"
-msgstr ""
-
#: templates/attachment_table.html:17
msgid "Uploaded"
msgstr ""
@@ -6166,7 +6340,7 @@ msgstr ""
msgid "Unknown response from server"
msgstr ""
-#: templates/js/barcode.js:119 templates/js/modals.js:857
+#: templates/js/barcode.js:119 templates/js/modals.js:901
msgid "Invalid server response"
msgstr ""
@@ -6311,7 +6485,7 @@ msgstr ""
#: templates/js/build.js:708 templates/js/part.js:324 templates/js/part.js:546
#: templates/js/stock.js:511 templates/js/stock.js:938
-#: templates/js/stock.js:1331
+#: templates/js/stock.js:1453
msgid "Select"
msgstr ""
@@ -6409,96 +6583,96 @@ msgstr ""
msgid "Select Label Template"
msgstr ""
-#: templates/js/modals.js:256
+#: templates/js/modals.js:265
msgid "Waiting for server..."
msgstr ""
-#: templates/js/modals.js:406
+#: templates/js/modals.js:424
msgid "Show Error Information"
msgstr ""
-#: templates/js/modals.js:473 templates/modals.html:73
+#: templates/js/modals.js:491 templates/modals.html:76
msgid "Accept"
msgstr ""
-#: templates/js/modals.js:474 templates/modals.html:72
+#: templates/js/modals.js:492 templates/modals.html:75
msgid "Cancel"
msgstr ""
-#: templates/js/modals.js:538
+#: templates/js/modals.js:556
msgid "Loading Data"
msgstr ""
-#: templates/js/modals.js:549 templates/js/modals.js:808
-#: templates/modals.html:29 templates/modals.html:53
+#: templates/js/modals.js:567 templates/js/modals.js:845
+#: templates/modals.html:30 templates/modals.html:55
msgid "Submit"
msgstr ""
-#: templates/js/modals.js:760
+#: templates/js/modals.js:797
msgid "Invalid response from server"
msgstr ""
-#: templates/js/modals.js:760
+#: templates/js/modals.js:797
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/modals.js:773
+#: templates/js/modals.js:810
msgid "Error posting form data"
msgstr ""
-#: templates/js/modals.js:857
+#: templates/js/modals.js:901
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/modals.js:867
+#: templates/js/modals.js:911
msgid "No Response"
msgstr ""
-#: templates/js/modals.js:868
+#: templates/js/modals.js:912
msgid "No response from the InvenTree server"
msgstr ""
-#: templates/js/modals.js:872
+#: templates/js/modals.js:916
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/modals.js:873
+#: templates/js/modals.js:917
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/modals.js:877
+#: templates/js/modals.js:921
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/modals.js:878
+#: templates/js/modals.js:922
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/modals.js:882
+#: templates/js/modals.js:926
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/modals.js:883
+#: templates/js/modals.js:927
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/modals.js:887
+#: templates/js/modals.js:931
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/modals.js:888
+#: templates/js/modals.js:932
msgid "The requested resource could not be located on the server"
msgstr ""
-#: templates/js/modals.js:892
+#: templates/js/modals.js:936
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/modals.js:893
+#: templates/js/modals.js:937
msgid "Connection timeout while requesting data from server"
msgstr ""
-#: templates/js/modals.js:896
+#: templates/js/modals.js:940
msgid "Error requesting form data"
msgstr ""
@@ -6542,7 +6716,7 @@ msgstr ""
msgid "No category"
msgstr ""
-#: templates/js/part.js:409 templates/js/table_filters.js:318
+#: templates/js/part.js:409 templates/js/table_filters.js:319
msgid "Low stock"
msgstr ""
@@ -6740,7 +6914,7 @@ msgstr ""
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/stock.js:620 templates/js/table_filters.js:138
+#: templates/js/stock.js:620 templates/js/table_filters.js:139
msgid "Depleted"
msgstr ""
@@ -6764,189 +6938,213 @@ msgstr ""
msgid "Status code must be selected"
msgstr ""
-#: templates/js/stock.js:1050
+#: templates/js/stock.js:994
+msgid "Invalid date"
+msgstr ""
+
+#: templates/js/stock.js:1036
+msgid "Location no longer exists"
+msgstr ""
+
+#: templates/js/stock.js:1055
+msgid "Purchase order no longer exists"
+msgstr ""
+
+#: templates/js/stock.js:1074
+msgid "Customer no longer exists"
+msgstr ""
+
+#: templates/js/stock.js:1092
+msgid "Stock item no longer exists"
+msgstr ""
+
+#: templates/js/stock.js:1115
+msgid "Added"
+msgstr ""
+
+#: templates/js/stock.js:1123
+msgid "Removed"
+msgstr ""
+
+#: templates/js/stock.js:1155
msgid "No user information"
msgstr ""
-#: templates/js/stock.js:1060
+#: templates/js/stock.js:1167
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/stock.js:1061
+#: templates/js/stock.js:1168
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/stock.js:1170
+#: templates/js/stock.js:1292
msgid "Create New Location"
msgstr ""
-#: templates/js/stock.js:1269
+#: templates/js/stock.js:1391
msgid "Serial"
msgstr ""
-#: templates/js/stock.js:1362 templates/js/table_filters.js:171
+#: templates/js/stock.js:1484 templates/js/table_filters.js:172
msgid "Installed"
msgstr ""
-#: templates/js/stock.js:1387
+#: templates/js/stock.js:1509
msgid "Install item"
msgstr ""
-#: templates/js/table_filters.js:42
+#: templates/js/table_filters.js:43
msgid "Trackable Part"
msgstr ""
-#: templates/js/table_filters.js:46
+#: templates/js/table_filters.js:47
msgid "Validated"
msgstr ""
-#: templates/js/table_filters.js:71
+#: templates/js/table_filters.js:72
msgid "Include locations"
msgstr ""
-#: templates/js/table_filters.js:81 templates/js/table_filters.js:82
-#: templates/js/table_filters.js:295
+#: templates/js/table_filters.js:82 templates/js/table_filters.js:83
+#: templates/js/table_filters.js:296
msgid "Include subcategories"
msgstr ""
-#: templates/js/table_filters.js:92 templates/js/table_filters.js:181
+#: templates/js/table_filters.js:93 templates/js/table_filters.js:182
msgid "Is Serialized"
msgstr ""
-#: templates/js/table_filters.js:95 templates/js/table_filters.js:188
+#: templates/js/table_filters.js:96 templates/js/table_filters.js:189
msgid "Serial number GTE"
msgstr ""
-#: templates/js/table_filters.js:96 templates/js/table_filters.js:189
+#: templates/js/table_filters.js:97 templates/js/table_filters.js:190
msgid "Serial number greater than or equal to"
msgstr ""
-#: templates/js/table_filters.js:99 templates/js/table_filters.js:192
+#: templates/js/table_filters.js:100 templates/js/table_filters.js:193
msgid "Serial number LTE"
msgstr ""
-#: templates/js/table_filters.js:100 templates/js/table_filters.js:193
+#: templates/js/table_filters.js:101 templates/js/table_filters.js:194
msgid "Serial number less than or equal to"
msgstr ""
-#: templates/js/table_filters.js:103 templates/js/table_filters.js:104
-#: templates/js/table_filters.js:184 templates/js/table_filters.js:185
+#: templates/js/table_filters.js:104 templates/js/table_filters.js:105
+#: templates/js/table_filters.js:185 templates/js/table_filters.js:186
msgid "Serial number"
msgstr ""
-#: templates/js/table_filters.js:108 templates/js/table_filters.js:202
+#: templates/js/table_filters.js:109 templates/js/table_filters.js:203
msgid "Batch code"
msgstr ""
-#: templates/js/table_filters.js:118 templates/js/table_filters.js:285
+#: templates/js/table_filters.js:119 templates/js/table_filters.js:286
msgid "Active parts"
msgstr ""
-#: templates/js/table_filters.js:119
+#: templates/js/table_filters.js:120
msgid "Show stock for active parts"
msgstr ""
-#: templates/js/table_filters.js:124
+#: templates/js/table_filters.js:125
msgid "Part is an assembly"
msgstr ""
-#: templates/js/table_filters.js:128
+#: templates/js/table_filters.js:129
msgid "Is allocated"
msgstr ""
-#: templates/js/table_filters.js:129
+#: templates/js/table_filters.js:130
msgid "Item has been allocated"
msgstr ""
-#: templates/js/table_filters.js:134
+#: templates/js/table_filters.js:135
msgid "Include stock in sublocations"
msgstr ""
-#: templates/js/table_filters.js:139
+#: templates/js/table_filters.js:140
msgid "Show stock items which are depleted"
msgstr ""
-#: templates/js/table_filters.js:146
+#: templates/js/table_filters.js:147
msgid "Show stock items which have expired"
msgstr ""
-#: templates/js/table_filters.js:151
+#: templates/js/table_filters.js:152
msgid "Show stock which is close to expiring"
msgstr ""
-#: templates/js/table_filters.js:157
+#: templates/js/table_filters.js:158
msgid "Show items which are in stock"
msgstr ""
-#: templates/js/table_filters.js:161
+#: templates/js/table_filters.js:162
msgid "In Production"
msgstr ""
-#: templates/js/table_filters.js:162
+#: templates/js/table_filters.js:163
msgid "Show items which are in production"
msgstr ""
-#: templates/js/table_filters.js:166
+#: templates/js/table_filters.js:167
msgid "Include Variants"
msgstr ""
-#: templates/js/table_filters.js:167
+#: templates/js/table_filters.js:168
msgid "Include stock items for variant parts"
msgstr ""
-#: templates/js/table_filters.js:172
+#: templates/js/table_filters.js:173
msgid "Show stock items which are installed in another item"
msgstr ""
-#: templates/js/table_filters.js:176
-msgid "Sent to customer"
-msgstr ""
-
-#: templates/js/table_filters.js:177
+#: templates/js/table_filters.js:178
msgid "Show items which have been assigned to a customer"
msgstr ""
-#: templates/js/table_filters.js:197 templates/js/table_filters.js:198
+#: templates/js/table_filters.js:198 templates/js/table_filters.js:199
msgid "Stock status"
msgstr ""
-#: templates/js/table_filters.js:231
+#: templates/js/table_filters.js:232
msgid "Build status"
msgstr ""
-#: templates/js/table_filters.js:250 templates/js/table_filters.js:267
+#: templates/js/table_filters.js:251 templates/js/table_filters.js:268
msgid "Order status"
msgstr ""
-#: templates/js/table_filters.js:255 templates/js/table_filters.js:272
+#: templates/js/table_filters.js:256 templates/js/table_filters.js:273
msgid "Outstanding"
msgstr ""
-#: templates/js/table_filters.js:296
+#: templates/js/table_filters.js:297
msgid "Include parts in subcategories"
msgstr ""
-#: templates/js/table_filters.js:300
+#: templates/js/table_filters.js:301
msgid "Has IPN"
msgstr ""
-#: templates/js/table_filters.js:301
+#: templates/js/table_filters.js:302
msgid "Part has internal part number"
msgstr ""
-#: templates/js/table_filters.js:306
+#: templates/js/table_filters.js:307
msgid "Show active parts"
msgstr ""
-#: templates/js/table_filters.js:314
+#: templates/js/table_filters.js:315
msgid "Stock available"
msgstr ""
-#: templates/js/table_filters.js:330
+#: templates/js/table_filters.js:331
msgid "Starred"
msgstr ""
-#: templates/js/table_filters.js:342
+#: templates/js/table_filters.js:343
msgid "Purchasable"
msgstr ""
@@ -7003,7 +7201,7 @@ msgstr ""
msgid "All"
msgstr ""
-#: templates/modals.html:21 templates/modals.html:46
+#: templates/modals.html:21 templates/modals.html:47
msgid "Form errors exist"
msgstr ""
@@ -7115,31 +7313,47 @@ msgstr ""
msgid "Instance Name"
msgstr ""
-#: templates/stats.html:19
-msgid "Server status"
+#: templates/stats.html:18
+msgid "Database"
msgstr ""
-#: templates/stats.html:22
-msgid "Healthy"
+#: templates/stats.html:26
+msgid "Server is running in debug mode"
msgstr ""
-#: templates/stats.html:24
-msgid "Issues detected"
-msgstr ""
-
-#: templates/stats.html:31
-msgid "Background Worker"
+#: templates/stats.html:33
+msgid "Docker Mode"
msgstr ""
#: templates/stats.html:34
-msgid "Background worker not running"
+msgid "Server is deployed using docker"
msgstr ""
-#: templates/stats.html:42
-msgid "Email Settings"
+#: templates/stats.html:40
+msgid "Server status"
+msgstr ""
+
+#: templates/stats.html:43
+msgid "Healthy"
msgstr ""
#: templates/stats.html:45
+msgid "Issues detected"
+msgstr ""
+
+#: templates/stats.html:52
+msgid "Background Worker"
+msgstr ""
+
+#: templates/stats.html:55
+msgid "Background worker not running"
+msgstr ""
+
+#: templates/stats.html:63
+msgid "Email Settings"
+msgstr ""
+
+#: templates/stats.html:66
msgid "Email settings not configured"
msgstr ""
@@ -7258,3 +7472,4 @@ msgstr ""
#: users/models.py:187
msgid "Permission to delete items"
msgstr ""
+
diff --git a/InvenTree/locale/it/LC_MESSAGES/django.po b/InvenTree/locale/it/LC_MESSAGES/django.po
index 69191acc73..20cbccebaa 100644
--- a/InvenTree/locale/it/LC_MESSAGES/django.po
+++ b/InvenTree/locale/it/LC_MESSAGES/django.po
@@ -1,9 +1,9 @@
msgid ""
msgstr ""
-"Project-Id-Version: \n"
+"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-05-05 17:33+1000\n"
-"PO-Revision-Date: 2021-04-21 09:33\n"
+"POT-Creation-Date: 2021-05-17 10:46+0000\n"
+"PO-Revision-Date: 2021-05-17 10:47\n"
"Last-Translator: \n"
"Language-Team: Italian\n"
"Language: it_IT\n"
@@ -11,6 +11,11 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Crowdin-Project: inventree\n"
+"X-Crowdin-Project-ID: 452300\n"
+"X-Crowdin-Language: it\n"
+"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
+"X-Crowdin-File-ID: 138\n"
#: InvenTree/api.py:64
msgid "API endpoint not found"
@@ -72,8 +77,8 @@ msgstr ""
msgid "Duplicate serial: {n}"
msgstr ""
-#: InvenTree/helpers.py:384 order/models.py:245 order/models.py:353
-#: stock/views.py:1763
+#: InvenTree/helpers.py:384 order/models.py:245 order/models.py:355
+#: stock/views.py:1795
msgid "Invalid quantity provided"
msgstr ""
@@ -101,7 +106,7 @@ msgstr ""
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr ""
-#: InvenTree/models.py:59 stock/models.py:1662
+#: InvenTree/models.py:59 stock/models.py:1761
msgid "Attachment"
msgstr ""
@@ -117,9 +122,9 @@ msgstr ""
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:1908
+#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:1946
#: report/templates/report/inventree_test_report_base.html:91
-#: templates/js/stock.js:1041
+#: templates/js/stock.js:1146
msgid "User"
msgstr ""
@@ -127,8 +132,8 @@ msgstr ""
msgid "upload date"
msgstr ""
-#: InvenTree/models.py:107 InvenTree/models.py:108 label/models.py:101
-#: part/models.py:686 part/models.py:2049 part/templates/part/params.html:27
+#: InvenTree/models.py:107 InvenTree/models.py:108 label/models.py:102
+#: part/models.py:686 part/models.py:2087 part/templates/part/params.html:27
#: report/models.py:179 templates/InvenTree/search.html:137
#: templates/InvenTree/search.html:289 templates/js/part.js:110
#: templates/js/part.js:553 templates/js/stock.js:944
@@ -136,11 +141,11 @@ msgid "Name"
msgstr ""
#: InvenTree/models.py:114 build/models.py:134
-#: build/templates/build/detail.html:21 company/models.py:342
-#: company/models.py:494 company/templates/company/detail.html:27
+#: build/templates/build/detail.html:21 company/models.py:339
+#: company/models.py:491 company/templates/company/detail.html:27
#: company/templates/company/manufacturer_part_base.html:72
#: company/templates/company/supplier_part_base.html:71
-#: company/templates/company/supplier_part_detail.html:31 label/models.py:108
+#: company/templates/company/supplier_part_detail.html:31 label/models.py:109
#: order/models.py:101 order/templates/order/purchase_order_detail.html:143
#: part/models.py:710 part/templates/part/detail.html:54
#: part/templates/part/set_category.html:14 report/models.py:192
@@ -154,7 +159,7 @@ msgstr ""
#: templates/js/order.js:280 templates/js/part.js:169 templates/js/part.js:252
#: templates/js/part.js:371 templates/js/part.js:565 templates/js/part.js:643
#: templates/js/stock.js:554 templates/js/stock.js:956
-#: templates/js/stock.js:1015
+#: templates/js/stock.js:1001
msgid "Description"
msgstr ""
@@ -166,23 +171,23 @@ msgstr ""
msgid "parent"
msgstr ""
-#: InvenTree/settings.py:491
+#: InvenTree/settings.py:501
msgid "English"
msgstr ""
-#: InvenTree/settings.py:492
+#: InvenTree/settings.py:502
msgid "French"
msgstr ""
-#: InvenTree/settings.py:493
+#: InvenTree/settings.py:503
msgid "German"
msgstr ""
-#: InvenTree/settings.py:494
+#: InvenTree/settings.py:504
msgid "Polish"
msgstr ""
-#: InvenTree/settings.py:495
+#: InvenTree/settings.py:505
msgid "Turkish"
msgstr ""
@@ -198,60 +203,136 @@ msgstr ""
msgid "InvenTree system health checks failed"
msgstr ""
-#: InvenTree/status_codes.py:102 InvenTree/status_codes.py:143
-#: InvenTree/status_codes.py:236
+#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:145
+#: InvenTree/status_codes.py:314
msgid "Pending"
msgstr ""
-#: InvenTree/status_codes.py:103
+#: InvenTree/status_codes.py:105
msgid "Placed"
msgstr ""
-#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:239
+#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:317
msgid "Complete"
msgstr ""
-#: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145
-#: InvenTree/status_codes.py:238
+#: InvenTree/status_codes.py:107 InvenTree/status_codes.py:147
+#: InvenTree/status_codes.py:316
msgid "Cancelled"
msgstr ""
-#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146
-#: InvenTree/status_codes.py:188
+#: InvenTree/status_codes.py:108 InvenTree/status_codes.py:148
+#: InvenTree/status_codes.py:190
msgid "Lost"
msgstr ""
-#: InvenTree/status_codes.py:107 InvenTree/status_codes.py:147
-#: InvenTree/status_codes.py:190
+#: InvenTree/status_codes.py:109 InvenTree/status_codes.py:149
+#: InvenTree/status_codes.py:192
msgid "Returned"
msgstr ""
-#: InvenTree/status_codes.py:144
+#: InvenTree/status_codes.py:146
#: order/templates/order/sales_order_base.html:124
msgid "Shipped"
msgstr ""
-#: InvenTree/status_codes.py:184
+#: InvenTree/status_codes.py:186
msgid "OK"
msgstr ""
-#: InvenTree/status_codes.py:185
+#: InvenTree/status_codes.py:187
msgid "Attention needed"
msgstr ""
-#: InvenTree/status_codes.py:186
+#: InvenTree/status_codes.py:188
msgid "Damaged"
msgstr ""
-#: InvenTree/status_codes.py:187
+#: InvenTree/status_codes.py:189
msgid "Destroyed"
msgstr ""
-#: InvenTree/status_codes.py:189
+#: InvenTree/status_codes.py:191
msgid "Rejected"
msgstr ""
-#: InvenTree/status_codes.py:237
+#: InvenTree/status_codes.py:272
+msgid "Legacy stock tracking entry"
+msgstr ""
+
+#: InvenTree/status_codes.py:274
+msgid "Stock item created"
+msgstr ""
+
+#: InvenTree/status_codes.py:276
+msgid "Edited stock item"
+msgstr ""
+
+#: InvenTree/status_codes.py:277
+msgid "Assigned serial number"
+msgstr ""
+
+#: InvenTree/status_codes.py:279
+msgid "Stock counted"
+msgstr ""
+
+#: InvenTree/status_codes.py:280
+msgid "Stock manually added"
+msgstr ""
+
+#: InvenTree/status_codes.py:281
+msgid "Stock manually removed"
+msgstr ""
+
+#: InvenTree/status_codes.py:283
+msgid "Location changed"
+msgstr ""
+
+#: InvenTree/status_codes.py:285
+msgid "Installed into assembly"
+msgstr ""
+
+#: InvenTree/status_codes.py:286
+msgid "Removed from assembly"
+msgstr ""
+
+#: InvenTree/status_codes.py:288
+msgid "Installed component item"
+msgstr ""
+
+#: InvenTree/status_codes.py:289
+msgid "Removed component item"
+msgstr ""
+
+#: InvenTree/status_codes.py:291
+msgid "Split from parent item"
+msgstr ""
+
+#: InvenTree/status_codes.py:292
+msgid "Split child item"
+msgstr ""
+
+#: InvenTree/status_codes.py:294 templates/js/table_filters.js:177
+msgid "Sent to customer"
+msgstr ""
+
+#: InvenTree/status_codes.py:295
+msgid "Returned from customer"
+msgstr ""
+
+#: InvenTree/status_codes.py:297
+msgid "Build order output created"
+msgstr ""
+
+#: InvenTree/status_codes.py:298
+msgid "Build order output completed"
+msgstr ""
+
+#: InvenTree/status_codes.py:300
+msgid "Received against purchase order"
+msgstr ""
+
+#: InvenTree/status_codes.py:315
msgid "Production"
msgstr ""
@@ -270,7 +351,8 @@ msgstr ""
#: InvenTree/validators.py:77 InvenTree/validators.py:91
#: InvenTree/validators.py:105
-msgid "Reference must match pattern"
+#, python-brace-format
+msgid "Reference must match pattern {pattern}"
msgstr ""
#: InvenTree/validators.py:113
@@ -376,35 +458,35 @@ msgstr ""
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1241
+#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1245
#: build/templates/build/allocation_card.html:23
#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:123
-#: build/templates/build/detail.html:31 common/models.py:703
+#: build/templates/build/detail.html:31 common/models.py:705
#: company/forms.py:176 company/templates/company/supplier_part_pricing.html:77
-#: order/forms.py:188 order/forms.py:205 order/forms.py:239 order/forms.py:261
-#: order/forms.py:278 order/models.py:603 order/models.py:794
+#: order/forms.py:188 order/forms.py:205 order/forms.py:240 order/forms.py:262
+#: order/forms.py:279 order/models.py:614 order/models.py:815
+#: order/templates/order/order_wizard/match_parts.html:29
#: order/templates/order/order_wizard/select_parts.html:32
#: order/templates/order/purchase_order_detail.html:175
#: order/templates/order/sales_order_detail.html:70
#: order/templates/order/sales_order_detail.html:77
-#: order/templates/order/sales_order_detail.html:159
-#: order/templates/order/sales_order_detail.html:224 part/forms.py:342
-#: part/forms.py:371 part/forms.py:387 part/models.py:2178
+#: order/templates/order/sales_order_detail.html:162
+#: order/templates/order/sales_order_detail.html:230 part/forms.py:342
+#: part/forms.py:371 part/forms.py:387 part/models.py:2216
#: part/templates/part/allocation.html:19
#: part/templates/part/allocation.html:53
-#: part/templates/part/part_pricing.html:11
-#: part/templates/part/part_pricing.html:18
+#: part/templates/part/part_pricing.html:13
#: part/templates/part/sale_prices.html:85
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:77
-#: stock/forms.py:175 stock/forms.py:308 stock/models.py:1566
-#: stock/templates/stock/item_base.html:244
+#: stock/forms.py:175 stock/forms.py:308
+#: stock/templates/stock/item_base.html:250
#: stock/templates/stock/stock_adjust.html:18 templates/js/barcode.js:364
#: templates/js/bom.js:205 templates/js/build.js:476 templates/js/build.js:1014
-#: templates/js/stock.js:1033 templates/js/stock.js:1271
+#: templates/js/stock.js:1131 templates/js/stock.js:1393
msgid "Quantity"
msgstr ""
@@ -416,7 +498,7 @@ msgstr ""
msgid "Enter quantity for build output"
msgstr ""
-#: build/forms.py:95 order/forms.py:233 stock/forms.py:118
+#: build/forms.py:95 order/forms.py:234 stock/forms.py:118
msgid "Serial Numbers"
msgstr ""
@@ -446,11 +528,11 @@ msgstr ""
#: build/forms.py:210 build/templates/build/auto_allocate.html:18
#: order/forms.py:82 stock/forms.py:347
-#: stock/templates/stock/item_base.html:274
+#: stock/templates/stock/item_base.html:280
#: stock/templates/stock/stock_adjust.html:17
#: templates/InvenTree/search.html:260 templates/js/barcode.js:363
#: templates/js/barcode.js:531 templates/js/build.js:490
-#: templates/js/stock.js:641
+#: templates/js/stock.js:641 templates/js/stock.js:1023
msgid "Location"
msgstr ""
@@ -459,12 +541,13 @@ msgid "Location of completed parts"
msgstr ""
#: build/forms.py:215 build/templates/build/build_base.html:128
-#: build/templates/build/detail.html:59 order/models.py:455
+#: build/templates/build/detail.html:59 order/models.py:466
#: order/templates/order/receive_parts.html:24
-#: stock/templates/stock/item_base.html:392 templates/InvenTree/search.html:252
+#: stock/templates/stock/item_base.html:398 templates/InvenTree/search.html:252
#: templates/js/barcode.js:119 templates/js/build.js:770
#: templates/js/order.js:187 templates/js/order.js:285
-#: templates/js/stock.js:628 templates/js/stock.js:1279
+#: templates/js/stock.js:628 templates/js/stock.js:1100
+#: templates/js/stock.js:1401
msgid "Status"
msgstr ""
@@ -517,9 +600,9 @@ msgstr ""
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:127 order/models.py:99 order/models.py:605
+#: build/models.py:127 order/models.py:99 order/models.py:616
#: order/templates/order/purchase_order_detail.html:170
-#: order/templates/order/sales_order_detail.html:219 part/models.py:2187
+#: order/templates/order/sales_order_detail.html:225 part/models.py:2225
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92 templates/js/bom.js:197
#: templates/js/build.js:565 templates/js/build.js:1008
@@ -541,16 +624,16 @@ msgstr ""
#: build/models.py:152 build/templates/build/auto_allocate.html:16
#: build/templates/build/build_base.html:118
-#: build/templates/build/detail.html:26 company/models.py:688
-#: order/models.py:647 order/models.py:679
+#: build/templates/build/detail.html:26 company/models.py:622
+#: order/models.py:658 order/models.py:691
#: order/templates/order/order_wizard/select_parts.html:30
#: order/templates/order/purchase_order_detail.html:131
#: order/templates/order/receive_parts.html:19
-#: order/templates/order/sales_order_detail.html:207 part/models.py:321
-#: part/models.py:1876 part/models.py:1888 part/models.py:1906
-#: part/models.py:1981 part/models.py:2077 part/models.py:2162
+#: order/templates/order/sales_order_detail.html:213 part/models.py:321
+#: part/models.py:1914 part/models.py:1926 part/models.py:1944
+#: part/models.py:2019 part/models.py:2115 part/models.py:2200
#: part/templates/part/part_app_base.html:8
-#: part/templates/part/part_pricing.html:14 part/templates/part/related.html:29
+#: part/templates/part/part_pricing.html:9 part/templates/part/related.html:29
#: part/templates/part/set_category.html:13
#: report/templates/report/inventree_build_order_base.html:110
#: report/templates/report/inventree_po_report.html:90
@@ -560,7 +643,7 @@ msgstr ""
#: templates/js/build.js:741 templates/js/build.js:981
#: templates/js/company.js:140 templates/js/company.js:238
#: templates/js/part.js:233 templates/js/part.js:338 templates/js/stock.js:523
-#: templates/js/stock.js:1343
+#: templates/js/stock.js:1465
msgid "Part"
msgstr ""
@@ -616,7 +699,7 @@ msgstr ""
msgid "Build status code"
msgstr ""
-#: build/models.py:212 stock/models.py:432
+#: build/models.py:212 stock/models.py:464
msgid "Batch Code"
msgstr ""
@@ -629,7 +712,7 @@ msgstr ""
msgid "Creation Date"
msgstr ""
-#: build/models.py:223 order/models.py:461
+#: build/models.py:223 order/models.py:472
msgid "Target completion date"
msgstr ""
@@ -667,28 +750,28 @@ msgstr ""
#: company/templates/company/supplier_part_base.html:78
#: company/templates/company/supplier_part_detail.html:28
#: part/templates/part/detail.html:83 part/templates/part/part_base.html:101
-#: stock/models.py:426 stock/templates/stock/item_base.html:334
+#: stock/models.py:458 stock/templates/stock/item_base.html:340
msgid "External Link"
msgstr ""
-#: build/models.py:257 part/models.py:744 stock/models.py:428
+#: build/models.py:257 part/models.py:744 stock/models.py:460
msgid "Link to external URL"
msgstr ""
#: build/models.py:261 build/templates/build/navbar.html:53
-#: company/models.py:135 company/models.py:501
+#: company/models.py:132 company/models.py:498
#: company/templates/company/navbar.html:70
#: company/templates/company/navbar.html:73 order/models.py:123
-#: order/models.py:607 order/templates/order/po_navbar.html:29
+#: order/models.py:618 order/templates/order/po_navbar.html:29
#: order/templates/order/po_navbar.html:32
#: order/templates/order/purchase_order_detail.html:209
-#: order/templates/order/sales_order_detail.html:264
+#: order/templates/order/sales_order_detail.html:278
#: order/templates/order/so_navbar.html:33
#: order/templates/order/so_navbar.html:36 part/models.py:871
#: part/templates/part/navbar.html:128
#: report/templates/report/inventree_build_order_base.html:173
#: stock/forms.py:173 stock/forms.py:317 stock/forms.py:349 stock/forms.py:377
-#: stock/models.py:498 stock/models.py:1558 stock/models.py:1668
+#: stock/models.py:530 stock/models.py:1665 stock/models.py:1767
#: stock/templates/stock/navbar.html:57 templates/js/barcode.js:37
#: templates/js/bom.js:333 templates/js/stock.js:128 templates/js/stock.js:671
msgid "Notes"
@@ -710,75 +793,71 @@ msgstr ""
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:838
-msgid "Completed build output"
-msgstr ""
-
-#: build/models.py:1132
+#: build/models.py:1136
msgid "BuildItem must be unique for build, stock_item and install_into"
msgstr ""
-#: build/models.py:1157
-msgid "Build item must specify a build output, as master part is marked as trackable"
-msgstr ""
-
#: build/models.py:1161
-#, python-brace-format
-msgid "Selected stock item not found in BOM for part '{p}'"
+msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
#: build/models.py:1165
#, python-brace-format
+msgid "Selected stock item not found in BOM for part '{p}'"
+msgstr ""
+
+#: build/models.py:1169
+#, python-brace-format
msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
msgstr ""
-#: build/models.py:1172 order/models.py:768
+#: build/models.py:1176 order/models.py:789
msgid "StockItem is over-allocated"
msgstr ""
-#: build/models.py:1176 order/models.py:771
+#: build/models.py:1180 order/models.py:792
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1180
+#: build/models.py:1184
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1220 stock/templates/stock/item_base.html:306
+#: build/models.py:1224 stock/templates/stock/item_base.html:312
#: templates/InvenTree/search.html:183 templates/js/build.js:714
#: templates/navbar.html:29
msgid "Build"
msgstr ""
-#: build/models.py:1221
+#: build/models.py:1225
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1228 part/templates/part/allocation.html:18
+#: build/models.py:1232 part/templates/part/allocation.html:18
#: part/templates/part/allocation.html:24
#: part/templates/part/allocation.html:31
#: part/templates/part/allocation.html:49
#: stock/templates/stock/item_base.html:8
#: stock/templates/stock/item_base.html:93
-#: stock/templates/stock/item_base.html:328
+#: stock/templates/stock/item_base.html:334
#: stock/templates/stock/stock_adjust.html:16 templates/js/build.js:831
-#: templates/js/stock.js:1004 templates/js/stock.js:1262
+#: templates/js/stock.js:1082 templates/js/stock.js:1384
msgid "Stock Item"
msgstr ""
-#: build/models.py:1229
+#: build/models.py:1233
msgid "Source stock item"
msgstr ""
-#: build/models.py:1242
+#: build/models.py:1246
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1250
+#: build/models.py:1254
msgid "Install into"
msgstr ""
-#: build/models.py:1251
+#: build/models.py:1255
msgid "Destination stock item"
msgstr ""
@@ -812,7 +891,7 @@ msgstr ""
#: build/templates/build/allocate.html:30
#: company/templates/company/detail_manufacturer_part.html:33
-#: company/templates/company/detail_supplier_part.html:32 order/views.py:795
+#: company/templates/company/detail_supplier_part.html:32 order/views.py:986
#: part/templates/part/category.html:127
msgid "Order Parts"
msgstr ""
@@ -832,9 +911,9 @@ msgstr ""
#: build/templates/build/allocation_card.html:21
#: build/templates/build/complete_output.html:46
#: order/templates/order/sales_order_detail.html:75
-#: order/templates/order/sales_order_detail.html:157
+#: order/templates/order/sales_order_detail.html:160
#: report/templates/report/inventree_test_report_base.html:75
-#: stock/models.py:420 stock/templates/stock/item_base.html:238
+#: stock/models.py:452 stock/templates/stock/item_base.html:244
#: templates/js/build.js:474
msgid "Serial Number"
msgstr ""
@@ -897,7 +976,7 @@ msgstr ""
#: order/templates/order/order_base.html:26
#: order/templates/order/sales_order_base.html:35
#: part/templates/part/category.html:18 part/templates/part/part_base.html:29
-#: stock/templates/stock/item_base.html:118
+#: stock/templates/stock/item_base.html:124
#: stock/templates/stock/location.html:31
msgid "Admin view"
msgstr ""
@@ -908,8 +987,8 @@ msgstr ""
#: order/templates/order/order_base.html:86
#: order/templates/order/sales_order_base.html:41
#: order/templates/order/sales_order_base.html:86
-#: templates/js/table_filters.js:240 templates/js/table_filters.js:259
-#: templates/js/table_filters.js:276
+#: templates/js/table_filters.js:241 templates/js/table_filters.js:260
+#: templates/js/table_filters.js:277
msgid "Overdue"
msgstr ""
@@ -955,14 +1034,14 @@ msgid "Progress"
msgstr ""
#: build/templates/build/build_base.html:160
-#: build/templates/build/detail.html:84 order/models.py:677
+#: build/templates/build/detail.html:84 order/models.py:689
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:33
#: order/templates/order/sales_order_ship.html:25
#: part/templates/part/allocation.html:30
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
-#: stock/templates/stock/item_base.html:268 templates/js/order.js:245
+#: stock/templates/stock/item_base.html:274 templates/js/order.js:245
msgid "Sales Order"
msgstr ""
@@ -1112,9 +1191,9 @@ msgid "Destination location not specified"
msgstr ""
#: build/templates/build/detail.html:70
-#: stock/templates/stock/item_base.html:292 templates/js/stock.js:636
-#: templates/js/stock.js:1286 templates/js/table_filters.js:107
-#: templates/js/table_filters.js:201
+#: stock/templates/stock/item_base.html:298 templates/js/stock.js:636
+#: templates/js/stock.js:1408 templates/js/table_filters.js:108
+#: templates/js/table_filters.js:202
msgid "Batch"
msgstr ""
@@ -1168,6 +1247,7 @@ msgstr ""
#: company/templates/company/navbar.html:15
#: order/templates/order/po_navbar.html:14
#: order/templates/order/so_navbar.html:15 part/templates/part/navbar.html:15
+#: templates/js/stock.js:1016
msgid "Details"
msgstr ""
@@ -1202,7 +1282,8 @@ msgstr ""
#: build/templates/build/notes.html:26 company/templates/company/notes.html:24
#: order/templates/order/order_notes.html:27
#: order/templates/order/sales_order_notes.html:29
-#: part/templates/part/notes.html:27 stock/templates/stock/item_base.html:470
+#: part/templates/part/notes.html:27 stock/templates/stock/item_base.html:477
+#: stock/templates/stock/item_base.html:487
#: stock/templates/stock/item_notes.html:26
msgid "Save"
msgstr ""
@@ -1231,7 +1312,7 @@ msgstr ""
msgid "Maximum output quantity is "
msgstr ""
-#: build/views.py:184 stock/models.py:969 stock/views.py:1789
+#: build/views.py:184 stock/views.py:1821
msgid "Serial numbers already exist"
msgstr ""
@@ -1348,372 +1429,405 @@ msgstr ""
msgid "Add Build Order Attachment"
msgstr ""
-#: build/views.py:1083 order/views.py:110 order/views.py:162 part/views.py:172
+#: build/views.py:1083 order/views.py:115 order/views.py:167 part/views.py:172
#: stock/views.py:277
msgid "Added attachment"
msgstr ""
-#: build/views.py:1119 order/views.py:189 order/views.py:210
+#: build/views.py:1119 order/views.py:194 order/views.py:215
msgid "Edit Attachment"
msgstr ""
-#: build/views.py:1129 order/views.py:193 order/views.py:214
+#: build/views.py:1129 order/views.py:198 order/views.py:219
msgid "Attachment updated"
msgstr ""
-#: build/views.py:1139 order/views.py:229 order/views.py:243
+#: build/views.py:1139 order/views.py:234 order/views.py:248
msgid "Delete Attachment"
msgstr ""
-#: build/views.py:1144 order/views.py:235 order/views.py:249 stock/views.py:333
+#: build/views.py:1144 order/views.py:240 order/views.py:254 stock/views.py:333
msgid "Deleted attachment"
msgstr ""
-#: common/models.py:56
-msgid "InvenTree Instance Name"
+#: common/files.py:64
+msgid "Unsupported file format: {ext.upper()}"
+msgstr ""
+
+#: common/files.py:69
+msgid "Error reading file (invalid format)"
+msgstr ""
+
+#: common/files.py:71
+msgid "Error reading file (incorrect dimension)"
+msgstr ""
+
+#: common/files.py:73
+msgid "Error reading file (data could be corrupted)"
+msgstr ""
+
+#: common/forms.py:38 templates/attachment_table.html:15
+msgid "File"
+msgstr ""
+
+#: common/forms.py:39
+msgid "Select file to upload"
+msgstr ""
+
+#: common/forms.py:54
+msgid "{name.title()} File"
+msgstr ""
+
+#: common/forms.py:55
+#, python-brace-format
+msgid "Select {name} file to upload"
msgstr ""
#: common/models.py:58
+msgid "InvenTree Instance Name"
+msgstr ""
+
+#: common/models.py:60
msgid "String descriptor for the server instance"
msgstr ""
-#: common/models.py:62
+#: common/models.py:64
msgid "Use instance name"
msgstr ""
-#: common/models.py:63
+#: common/models.py:65
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:69 company/models.py:97 company/models.py:98
+#: common/models.py:71 company/models.py:94 company/models.py:95
msgid "Company name"
msgstr ""
-#: common/models.py:70
+#: common/models.py:72
msgid "Internal company name"
msgstr ""
-#: common/models.py:75
+#: common/models.py:77
msgid "Base URL"
msgstr ""
-#: common/models.py:76
+#: common/models.py:78
msgid "Base URL for server instance"
msgstr ""
-#: common/models.py:82
+#: common/models.py:84
msgid "Default Currency"
msgstr ""
-#: common/models.py:83
+#: common/models.py:85
msgid "Default currency"
msgstr ""
-#: common/models.py:89
+#: common/models.py:91
msgid "Download from URL"
msgstr ""
-#: common/models.py:90
+#: common/models.py:92
msgid "Allow download of remote images and files from external URL"
msgstr ""
-#: common/models.py:96
+#: common/models.py:98
msgid "Barcode Support"
msgstr ""
-#: common/models.py:97
+#: common/models.py:99
msgid "Enable barcode scanner support"
msgstr ""
-#: common/models.py:103
+#: common/models.py:105
msgid "IPN Regex"
msgstr ""
-#: common/models.py:104
+#: common/models.py:106
msgid "Regular expression pattern for matching Part IPN"
msgstr ""
-#: common/models.py:108
+#: common/models.py:110
msgid "Allow Duplicate IPN"
msgstr ""
-#: common/models.py:109
+#: common/models.py:111
msgid "Allow multiple parts to share the same IPN"
msgstr ""
-#: common/models.py:115
+#: common/models.py:117
msgid "Allow Editing IPN"
msgstr ""
-#: common/models.py:116
+#: common/models.py:118
msgid "Allow changing the IPN value while editing a part"
msgstr ""
-#: common/models.py:122
+#: common/models.py:124
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:123
+#: common/models.py:125
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:129
+#: common/models.py:131
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:130
+#: common/models.py:132
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:136
+#: common/models.py:138
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:137
+#: common/models.py:139
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:143
+#: common/models.py:145
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:144
+#: common/models.py:146
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:150
+#: common/models.py:152
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:151
+#: common/models.py:153
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:157 part/models.py:2079 part/templates/part/detail.html:160
-#: report/models.py:185 stock/forms.py:259 templates/js/table_filters.js:24
-#: templates/js/table_filters.js:310
+#: common/models.py:159 part/models.py:2117 part/templates/part/detail.html:160
+#: report/models.py:185 stock/forms.py:259 templates/js/table_filters.js:25
+#: templates/js/table_filters.js:311
msgid "Template"
msgstr ""
-#: common/models.py:158
+#: common/models.py:160
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:164 part/models.py:834 part/templates/part/detail.html:170
-#: templates/js/table_filters.js:123 templates/js/table_filters.js:322
+#: common/models.py:166 part/models.py:834 part/templates/part/detail.html:170
+#: templates/js/table_filters.js:124 templates/js/table_filters.js:323
msgid "Assembly"
msgstr ""
-#: common/models.py:165
+#: common/models.py:167
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:171 part/models.py:840 part/templates/part/detail.html:180
-#: templates/js/table_filters.js:326
+#: common/models.py:173 part/models.py:840 part/templates/part/detail.html:180
+#: templates/js/table_filters.js:327
msgid "Component"
msgstr ""
-#: common/models.py:172
+#: common/models.py:174
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:178 part/models.py:851 part/templates/part/detail.html:200
+#: common/models.py:180 part/models.py:851 part/templates/part/detail.html:200
msgid "Purchaseable"
msgstr ""
-#: common/models.py:179
+#: common/models.py:181
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:185 part/models.py:856 part/templates/part/detail.html:210
-#: templates/js/table_filters.js:334
+#: common/models.py:187 part/models.py:856 part/templates/part/detail.html:210
+#: templates/js/table_filters.js:335
msgid "Salable"
msgstr ""
-#: common/models.py:186
+#: common/models.py:188
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:192 part/models.py:846 part/templates/part/detail.html:190
-#: templates/js/table_filters.js:32 templates/js/table_filters.js:338
+#: common/models.py:194 part/models.py:846 part/templates/part/detail.html:190
+#: templates/js/table_filters.js:33 templates/js/table_filters.js:339
msgid "Trackable"
msgstr ""
-#: common/models.py:193
+#: common/models.py:195
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:199 part/models.py:866 part/templates/part/detail.html:150
-#: templates/js/table_filters.js:28
+#: common/models.py:201 part/models.py:866 part/templates/part/detail.html:150
+#: templates/js/table_filters.js:29
msgid "Virtual"
msgstr ""
-#: common/models.py:200
+#: common/models.py:202
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:206
+#: common/models.py:208
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:207
+#: common/models.py:209
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:213
+#: common/models.py:215 templates/stats.html:25
msgid "Debug Mode"
msgstr ""
-#: common/models.py:214
+#: common/models.py:216
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:220
+#: common/models.py:222
msgid "Page Size"
msgstr ""
-#: common/models.py:221
+#: common/models.py:223
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:231
+#: common/models.py:233
msgid "Test Reports"
msgstr ""
-#: common/models.py:232
+#: common/models.py:234
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:238
+#: common/models.py:240
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:239
+#: common/models.py:241
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:245
+#: common/models.py:247
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:246
+#: common/models.py:248
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:252
+#: common/models.py:254
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:253
+#: common/models.py:255
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:255 part/templates/part/detail.html:121
+#: common/models.py:257 part/templates/part/detail.html:121
msgid "days"
msgstr ""
-#: common/models.py:260
+#: common/models.py:262
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:261
+#: common/models.py:263
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:267
+#: common/models.py:269
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:268
+#: common/models.py:270
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:274
+#: common/models.py:276
msgid "Group by Part"
msgstr ""
-#: common/models.py:275
+#: common/models.py:277
msgid "Group stock items by part reference in table views"
msgstr ""
-#: common/models.py:281
+#: common/models.py:283
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:282
+#: common/models.py:284
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:288
+#: common/models.py:290
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:289
+#: common/models.py:291
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:294
+#: common/models.py:296
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:295
+#: common/models.py:297
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:299
+#: common/models.py:301
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:300
+#: common/models.py:302
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:305
+#: common/models.py:307
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:306
+#: common/models.py:308
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:529
+#: common/models.py:531
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:531
+#: common/models.py:533
msgid "Settings value"
msgstr ""
-#: common/models.py:566
+#: common/models.py:568
msgid "Must be an integer value"
msgstr ""
-#: common/models.py:589
+#: common/models.py:591
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:600
+#: common/models.py:602
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:623
+#: common/models.py:625
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:704 company/forms.py:177
+#: common/models.py:706 company/forms.py:177
msgid "Price break quantity"
msgstr ""
-#: common/models.py:712 company/templates/company/supplier_part_pricing.html:82
+#: common/models.py:714 company/templates/company/supplier_part_pricing.html:82
#: part/templates/part/sale_prices.html:90 templates/js/bom.js:255
msgid "Price"
msgstr ""
-#: common/models.py:713
+#: common/models.py:715
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:736
+#: common/models.py:804
msgid "Default"
msgstr ""
@@ -1721,24 +1835,42 @@ msgstr ""
msgid "Current value"
msgstr ""
-#: common/views.py:25
+#: common/views.py:32
msgid "Change Setting"
msgstr ""
-#: common/views.py:94
+#: common/views.py:101
msgid "Supplied value is not allowed"
msgstr ""
-#: common/views.py:103
+#: common/views.py:110
msgid "Supplied value must be a boolean"
msgstr ""
-#: company/forms.py:38 company/models.py:145
+#: common/views.py:184 order/templates/order/order_wizard/po_upload.html:42
+#: order/views.py:582 part/templates/part/bom_upload/upload_file.html:27
+msgid "Upload File"
+msgstr ""
+
+#: common/views.py:185 order/templates/order/order_wizard/match_fields.html:52
+#: order/views.py:583 part/templates/part/bom_upload/select_fields.html:58
+msgid "Match Fields"
+msgstr ""
+
+#: common/views.py:186
+msgid "Match Items"
+msgstr ""
+
+#: common/views.py:479
+msgid "Fields matching failed"
+msgstr ""
+
+#: company/forms.py:38 company/models.py:142
#: company/templates/company/detail.html:42
msgid "Currency"
msgstr ""
-#: company/forms.py:39 company/models.py:147
+#: company/forms.py:39 company/models.py:144
msgid "Default currency used for this company"
msgstr ""
@@ -1758,216 +1890,216 @@ msgstr ""
msgid "Single quantity price"
msgstr ""
-#: company/forms.py:128 company/models.py:324
+#: company/forms.py:128 company/models.py:321
msgid "Select manufacturer"
msgstr ""
-#: company/forms.py:134 company/models.py:331
+#: company/forms.py:134 company/models.py:328
msgid "Manufacturer Part Number"
msgstr ""
-#: company/forms.py:136 company/models.py:330
+#: company/forms.py:136 company/models.py:327
#: company/templates/company/manufacturer_part_base.html:89
#: company/templates/company/manufacturer_part_detail.html:26
-#: company/templates/company/supplier_part_base.html:101
+#: company/templates/company/supplier_part_base.html:102
#: company/templates/company/supplier_part_detail.html:35
#: order/templates/order/purchase_order_detail.html:158 part/bom.py:171
#: part/bom.py:242 templates/js/company.js:181 templates/js/company.js:307
msgid "MPN"
msgstr ""
-#: company/models.py:102
+#: company/models.py:99
msgid "Company description"
msgstr ""
-#: company/models.py:103
+#: company/models.py:100
msgid "Description of the company"
msgstr ""
-#: company/models.py:107 company/templates/company/company_base.html:70
+#: company/models.py:104 company/templates/company/company_base.html:70
#: company/templates/company/detail.html:33 templates/js/company.js:60
msgid "Website"
msgstr ""
-#: company/models.py:107
+#: company/models.py:104
msgid "Company website URL"
msgstr ""
-#: company/models.py:110 company/templates/company/company_base.html:77
+#: company/models.py:107 company/templates/company/company_base.html:77
msgid "Address"
msgstr ""
-#: company/models.py:111
+#: company/models.py:108
msgid "Company address"
msgstr ""
-#: company/models.py:114
+#: company/models.py:111
msgid "Phone number"
msgstr ""
-#: company/models.py:115
+#: company/models.py:112
msgid "Contact phone number"
msgstr ""
-#: company/models.py:118 company/templates/company/company_base.html:91
+#: company/models.py:115 company/templates/company/company_base.html:91
msgid "Email"
msgstr ""
-#: company/models.py:118
+#: company/models.py:115
msgid "Contact email address"
msgstr ""
-#: company/models.py:121 company/templates/company/company_base.html:98
+#: company/models.py:118 company/templates/company/company_base.html:98
msgid "Contact"
msgstr ""
-#: company/models.py:122
+#: company/models.py:119
msgid "Point of contact"
msgstr ""
-#: company/models.py:124 company/models.py:336 company/models.py:488
+#: company/models.py:121 company/models.py:333 company/models.py:485
#: order/models.py:103 part/models.py:743
#: report/templates/report/inventree_build_order_base.html:165
-#: stock/models.py:1560 templates/js/company.js:188 templates/js/company.js:318
+#: templates/js/company.js:188 templates/js/company.js:318
#: templates/js/part.js:431
msgid "Link"
msgstr ""
-#: company/models.py:124
+#: company/models.py:121
msgid "Link to external company information"
msgstr ""
-#: company/models.py:132 part/models.py:753
+#: company/models.py:129 part/models.py:753
msgid "Image"
msgstr ""
-#: company/models.py:137
+#: company/models.py:134
msgid "is customer"
msgstr ""
-#: company/models.py:137
+#: company/models.py:134
msgid "Do you sell items to this company?"
msgstr ""
-#: company/models.py:139
+#: company/models.py:136
msgid "is supplier"
msgstr ""
-#: company/models.py:139
+#: company/models.py:136
msgid "Do you purchase items from this company?"
msgstr ""
-#: company/models.py:141
+#: company/models.py:138
msgid "is manufacturer"
msgstr ""
-#: company/models.py:141
+#: company/models.py:138
msgid "Does this company manufacture parts?"
msgstr ""
-#: company/models.py:308 company/models.py:459 stock/models.py:373
-#: stock/templates/stock/item_base.html:224
+#: company/models.py:305 company/models.py:456 stock/models.py:405
+#: stock/templates/stock/item_base.html:230
msgid "Base Part"
msgstr ""
-#: company/models.py:312 company/models.py:463 order/views.py:1384
+#: company/models.py:309 company/models.py:460 order/views.py:1587
msgid "Select part"
msgstr ""
-#: company/models.py:323 company/templates/company/detail.html:57
+#: company/models.py:320 company/templates/company/detail.html:57
#: company/templates/company/manufacturer_part_base.html:85
#: company/templates/company/manufacturer_part_detail.html:25
#: company/templates/company/supplier_part_base.html:94
#: company/templates/company/supplier_part_detail.html:34 part/bom.py:170
-#: part/bom.py:241 stock/templates/stock/item_base.html:341
+#: part/bom.py:241 stock/templates/stock/item_base.html:347
#: templates/js/company.js:44 templates/js/company.js:165
#: templates/js/company.js:289
msgid "Manufacturer"
msgstr ""
-#: company/models.py:337
+#: company/models.py:334
msgid "URL for external manufacturer part link"
msgstr ""
-#: company/models.py:343
+#: company/models.py:340
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:469 company/templates/company/detail.html:62
+#: company/models.py:466 company/templates/company/detail.html:62
#: company/templates/company/supplier_part_base.html:84
#: company/templates/company/supplier_part_detail.html:25 order/models.py:190
#: order/templates/order/order_base.html:92
#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:175
-#: part/bom.py:286 stock/templates/stock/item_base.html:353
+#: part/bom.py:286 stock/templates/stock/item_base.html:359
#: templates/js/company.js:48 templates/js/company.js:263
#: templates/js/order.js:170
msgid "Supplier"
msgstr ""
-#: company/models.py:470
+#: company/models.py:467
msgid "Select supplier"
msgstr ""
-#: company/models.py:475 company/templates/company/supplier_part_base.html:88
+#: company/models.py:472 company/templates/company/supplier_part_base.html:88
#: company/templates/company/supplier_part_detail.html:26
#: order/templates/order/purchase_order_detail.html:149 part/bom.py:176
#: part/bom.py:287
msgid "SKU"
msgstr ""
-#: company/models.py:476
+#: company/models.py:473
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:482
+#: company/models.py:479
#: company/templates/company/manufacturer_part_base.html:6
#: company/templates/company/manufacturer_part_base.html:19
-#: stock/templates/stock/item_base.html:346
+#: stock/templates/stock/item_base.html:352
msgid "Manufacturer Part"
msgstr ""
-#: company/models.py:483
+#: company/models.py:480
msgid "Select manufacturer part"
msgstr ""
-#: company/models.py:489
+#: company/models.py:486
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:495
+#: company/models.py:492
msgid "Supplier part description"
msgstr ""
-#: company/models.py:500 company/templates/company/supplier_part_base.html:115
-#: company/templates/company/supplier_part_detail.html:38 part/models.py:2190
+#: company/models.py:497 company/templates/company/supplier_part_base.html:116
+#: company/templates/company/supplier_part_detail.html:38 part/models.py:2228
#: report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr ""
-#: company/models.py:504
+#: company/models.py:501 part/models.py:1614
msgid "base cost"
msgstr ""
-#: company/models.py:504
+#: company/models.py:501 part/models.py:1614
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:506 company/templates/company/supplier_part_base.html:108
-#: stock/models.py:397 stock/templates/stock/item_base.html:299
+#: company/models.py:503 company/templates/company/supplier_part_base.html:109
+#: stock/models.py:429 stock/templates/stock/item_base.html:305
#: templates/js/stock.js:667
msgid "Packaging"
msgstr ""
-#: company/models.py:506
+#: company/models.py:503
msgid "Part packaging"
msgstr ""
-#: company/models.py:508
+#: company/models.py:505 part/models.py:1616
msgid "multiple"
msgstr ""
-#: company/models.py:508
+#: company/models.py:505
msgid "Order multiple"
msgstr ""
@@ -1993,7 +2125,7 @@ msgstr ""
msgid "Download image from URL"
msgstr ""
-#: company/templates/company/company_base.html:46 order/views.py:306
+#: company/templates/company/company_base.html:46 order/views.py:311
msgid "Create Purchase Order"
msgstr ""
@@ -2022,8 +2154,7 @@ msgstr ""
#: company/templates/company/delete.html:12
#, python-format
-msgid ""
-"There are %(count)s parts sourced from this company.
\n"
+msgid "There are %(count)s parts sourced from this company.
\n"
"If this supplier is deleted, these supplier part entries will also be deleted."
msgstr ""
@@ -2039,10 +2170,11 @@ msgstr ""
msgid "Uses default currency"
msgstr ""
-#: company/templates/company/detail.html:67 order/models.py:450
-#: order/templates/order/sales_order_base.html:92 stock/models.py:415
-#: stock/models.py:416 stock/templates/stock/item_base.html:251
+#: company/templates/company/detail.html:67 order/models.py:461
+#: order/templates/order/sales_order_base.html:92 stock/models.py:447
+#: stock/models.py:448 stock/templates/stock/item_base.html:257
#: templates/js/company.js:40 templates/js/order.js:267
+#: templates/js/stock.js:1064
msgid "Customer"
msgstr ""
@@ -2088,7 +2220,7 @@ msgstr ""
#: company/templates/company/detail_manufacturer_part.html:66
#: company/templates/company/detail_supplier_part.html:66
#: part/templates/part/bom.html:159 part/templates/part/category.html:118
-#: templates/js/stock.js:1157
+#: templates/js/stock.js:1279
msgid "New Part"
msgstr ""
@@ -2135,19 +2267,19 @@ msgstr ""
#: company/templates/company/detail_supplier_part.html:22
#: company/templates/company/manufacturer_part_suppliers.html:17
#: order/templates/order/purchase_order_detail.html:49
-#: part/templates/part/supplier.html:17 templates/js/stock.js:1163
+#: part/templates/part/supplier.html:17 templates/js/stock.js:1285
msgid "New Supplier Part"
msgstr ""
#: company/templates/company/detail_supplier_part.html:72
#: company/templates/company/manufacturer_part_suppliers.html:47
-#: company/views.py:64 order/templates/order/purchase_orders.html:183
+#: company/views.py:64 order/templates/order/purchase_orders.html:185
#: part/templates/part/supplier.html:50
msgid "New Supplier"
msgstr ""
#: company/templates/company/detail_supplier_part.html:73 company/views.py:281
-#: order/templates/order/purchase_orders.html:184
+#: order/templates/order/purchase_orders.html:186
msgid "Create new Supplier"
msgstr ""
@@ -2205,7 +2337,7 @@ msgstr ""
#: company/templates/company/manufacturer_part_navbar.html:22
#: company/templates/company/navbar.html:41
#: company/templates/company/supplier_part_navbar.html:15
-#: part/templates/part/navbar.html:36 stock/api.py:51
+#: part/templates/part/navbar.html:36 stock/api.py:54
#: stock/templates/stock/loc_link.html:7 stock/templates/stock/location.html:36
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/index.html:128 templates/InvenTree/search.html:196
@@ -2258,7 +2390,7 @@ msgstr ""
#: stock/templates/stock/location_navbar.html:22
#: stock/templates/stock/location_navbar.html:29
#: templates/InvenTree/search.html:198 templates/js/stock.js:968
-#: templates/stats.html:72 templates/stats.html:81 users/models.py:42
+#: templates/stats.html:93 templates/stats.html:102 users/models.py:42
msgid "Stock Items"
msgstr ""
@@ -2313,8 +2445,8 @@ msgid "New Sales Order"
msgstr ""
#: company/templates/company/supplier_part_base.html:7
-#: company/templates/company/supplier_part_base.html:20 stock/models.py:382
-#: stock/templates/stock/item_base.html:358 templates/js/company.js:279
+#: company/templates/company/supplier_part_base.html:20 stock/models.py:414
+#: stock/templates/stock/item_base.html:364 templates/js/company.js:279
msgid "Supplier Part"
msgstr ""
@@ -2363,7 +2495,7 @@ msgid "Pricing Information"
msgstr ""
#: company/templates/company/supplier_part_pricing.html:19 company/views.py:794
-#: part/templates/part/sale_prices.html:17 part/views.py:2636
+#: part/templates/part/sale_prices.html:17 part/views.py:2644
msgid "Add Price Break"
msgstr ""
@@ -2393,7 +2525,7 @@ msgstr ""
msgid "Customers"
msgstr ""
-#: company/views.py:78 order/templates/order/sales_orders.html:185
+#: company/views.py:78 order/templates/order/sales_orders.html:187
msgid "New Customer"
msgstr ""
@@ -2413,6 +2545,11 @@ msgstr ""
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
+#: company/views.py:205 part/views.py:887
+#, python-brace-format
+msgid "Invalid response: {code}"
+msgstr ""
+
#: company/views.py:214 part/views.py:896
msgid "Supplied URL is not a valid image file"
msgstr ""
@@ -2433,7 +2570,7 @@ msgstr ""
msgid "Edited company information"
msgstr ""
-#: company/views.py:287 order/templates/order/sales_orders.html:186
+#: company/views.py:287 order/templates/order/sales_orders.html:188
msgid "Create new Customer"
msgstr ""
@@ -2465,7 +2602,7 @@ msgstr ""
msgid "Edit Supplier Part"
msgstr ""
-#: company/views.py:578 templates/js/stock.js:1164
+#: company/views.py:578 templates/js/stock.js:1286
msgid "Create new Supplier Part"
msgstr ""
@@ -2473,15 +2610,15 @@ msgstr ""
msgid "Delete Supplier Part"
msgstr ""
-#: company/views.py:799 part/views.py:2640
+#: company/views.py:799 part/views.py:2648
msgid "Added new price break"
msgstr ""
-#: company/views.py:855 part/views.py:2684
+#: company/views.py:855 part/views.py:2692
msgid "Edit Price Break"
msgstr ""
-#: company/views.py:870 part/views.py:2698
+#: company/views.py:870 part/views.py:2706
msgid "Delete Price Break"
msgstr ""
@@ -2489,51 +2626,59 @@ msgstr ""
msgid "No valid objects provided to template"
msgstr ""
-#: label/models.py:102
+#: label/models.py:103
msgid "Label name"
msgstr ""
-#: label/models.py:109
+#: label/models.py:110
msgid "Label description"
msgstr ""
-#: label/models.py:116 stock/forms.py:202
+#: label/models.py:117 stock/forms.py:202
msgid "Label"
msgstr ""
-#: label/models.py:117
+#: label/models.py:118
msgid "Label template file"
msgstr ""
-#: label/models.py:123 report/models.py:274
+#: label/models.py:124 report/models.py:274
msgid "Enabled"
msgstr ""
-#: label/models.py:124
+#: label/models.py:125
msgid "Label template is enabled"
msgstr ""
-#: label/models.py:129
+#: label/models.py:130
msgid "Width [mm]"
msgstr ""
-#: label/models.py:130
+#: label/models.py:131
msgid "Label width, specified in mm"
msgstr ""
-#: label/models.py:136
+#: label/models.py:137
msgid "Height [mm]"
msgstr ""
-#: label/models.py:137
+#: label/models.py:138
msgid "Label height, specified in mm"
msgstr ""
-#: label/models.py:222 label/models.py:275
+#: label/models.py:144
+msgid "Filename Pattern"
+msgstr ""
+
+#: label/models.py:145
+msgid "Pattern for generating label filenames"
+msgstr ""
+
+#: label/models.py:244 label/models.py:297
msgid "Query filters (comma-separated list of key=value pairs"
msgstr ""
-#: label/models.py:223 label/models.py:276 report/models.py:294
+#: label/models.py:245 label/models.py:298 report/models.py:294
#: report/models.py:415 report/models.py:449
msgid "Filters"
msgstr ""
@@ -2571,15 +2716,15 @@ msgstr ""
msgid "Enter sales order number"
msgstr ""
-#: order/forms.py:145 order/models.py:462
+#: order/forms.py:145 order/models.py:473
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/forms.py:235
+#: order/forms.py:236
msgid "Enter stock item serial numbers"
msgstr ""
-#: order/forms.py:241
+#: order/forms.py:242
msgid "Enter quantity of stock items"
msgstr ""
@@ -2607,7 +2752,7 @@ msgstr ""
msgid "Order notes"
msgstr ""
-#: order/models.py:182 order/models.py:455
+#: order/models.py:182 order/models.py:466
msgid "Purchase order status"
msgstr ""
@@ -2648,8 +2793,8 @@ msgstr ""
msgid "Date order was completed"
msgstr ""
-#: order/models.py:243 part/views.py:1586 stock/models.py:270
-#: stock/models.py:953
+#: order/models.py:243 part/views.py:1586 stock/models.py:302
+#: stock/models.py:1018
msgid "Quantity must be greater than zero"
msgstr ""
@@ -2657,128 +2802,134 @@ msgstr ""
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:344
+#: order/models.py:346
msgid "Lines can only be received against an order marked as 'Placed'"
msgstr ""
-#: order/models.py:348
+#: order/models.py:350
msgid "Quantity must be an integer"
msgstr ""
-#: order/models.py:350
+#: order/models.py:352
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:369
-msgid "Received items"
-msgstr ""
-
-#: order/models.py:451
+#: order/models.py:462
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:457
+#: order/models.py:468
msgid "Customer Reference "
msgstr ""
-#: order/models.py:457
+#: order/models.py:468
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:465 templates/js/order.js:303
+#: order/models.py:476 templates/js/order.js:303
msgid "Shipment Date"
msgstr ""
-#: order/models.py:472
+#: order/models.py:483
msgid "shipped by"
msgstr ""
-#: order/models.py:516
+#: order/models.py:527
msgid "SalesOrder cannot be shipped as it is not currently pending"
msgstr ""
-#: order/models.py:603
+#: order/models.py:614
msgid "Item quantity"
msgstr ""
-#: order/models.py:605
+#: order/models.py:616
msgid "Line item reference"
msgstr ""
-#: order/models.py:607
+#: order/models.py:618
msgid "Line item notes"
msgstr ""
-#: order/models.py:633 order/models.py:677
+#: order/models.py:644 order/models.py:689
#: part/templates/part/allocation.html:17
#: part/templates/part/allocation.html:45
msgid "Order"
msgstr ""
-#: order/models.py:634 order/templates/order/order_base.html:9
+#: order/models.py:645 order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:24
#: report/templates/report/inventree_po_report.html:77
-#: stock/templates/stock/item_base.html:313 templates/js/order.js:148
+#: stock/templates/stock/item_base.html:319 templates/js/order.js:148
+#: templates/js/stock.js:1045
msgid "Purchase Order"
msgstr ""
-#: order/models.py:648
+#: order/models.py:659
msgid "Supplier part"
msgstr ""
-#: order/models.py:651 order/templates/order/order_base.html:131
+#: order/models.py:662 order/templates/order/order_base.html:131
#: order/templates/order/purchase_order_detail.html:189
#: order/templates/order/receive_parts.html:22
#: order/templates/order/sales_order_base.html:131
msgid "Received"
msgstr ""
-#: order/models.py:651
+#: order/models.py:662
msgid "Number of items received"
msgstr ""
-#: order/models.py:658 stock/models.py:508
-#: stock/templates/stock/item_base.html:320
+#: order/models.py:669 stock/models.py:540
+#: stock/templates/stock/item_base.html:326
msgid "Purchase Price"
msgstr ""
-#: order/models.py:659
+#: order/models.py:670
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:753 order/models.py:755
+#: order/models.py:698 part/templates/part/navbar.html:95
+#: part/templates/part/part_pricing.html:78
+msgid "Sale Price"
+msgstr ""
+
+#: order/models.py:699
+msgid "Unit sale price"
+msgstr ""
+
+#: order/models.py:774 order/models.py:776
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:759
+#: order/models.py:780
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:761
+#: order/models.py:782
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:764
+#: order/models.py:785
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:774
+#: order/models.py:795
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:779
+#: order/models.py:800
msgid "Line"
msgstr ""
-#: order/models.py:790
+#: order/models.py:811
msgid "Item"
msgstr ""
-#: order/models.py:791
+#: order/models.py:812
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:794
+#: order/models.py:815
msgid "Enter stock allocation quantity"
msgstr ""
@@ -2830,7 +2981,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:100
#: part/templates/part/category.html:185 part/templates/part/category.html:227
#: stock/templates/stock/location.html:191 templates/js/stock.js:708
-#: templates/js/stock.js:1169
+#: templates/js/stock.js:1291
msgid "New Location"
msgstr ""
@@ -2864,6 +3015,75 @@ msgstr ""
msgid "Order Notes"
msgstr ""
+#: order/templates/order/order_wizard/match_fields.html:9
+#: part/templates/part/bom_upload/select_fields.html:21
+msgid "Missing selections for the following required columns"
+msgstr ""
+
+#: order/templates/order/order_wizard/match_fields.html:20
+msgid "Duplicate selections found, see below. Fix them then retry submitting."
+msgstr ""
+
+#: order/templates/order/order_wizard/match_fields.html:27
+#: order/templates/order/order_wizard/match_parts.html:18
+#: order/templates/order/order_wizard/po_upload.html:40
+msgid "Previous Step"
+msgstr ""
+
+#: order/templates/order/order_wizard/match_fields.html:29
+#: order/templates/order/order_wizard/match_parts.html:20
+#: part/templates/part/bom_upload/select_fields.html:32
+msgid "Submit Selections"
+msgstr ""
+
+#: order/templates/order/order_wizard/match_fields.html:35
+#: part/templates/part/bom_upload/select_fields.html:41
+msgid "File Fields"
+msgstr ""
+
+#: order/templates/order/order_wizard/match_fields.html:42
+#: part/templates/part/bom_upload/select_fields.html:47
+msgid "Remove column"
+msgstr ""
+
+#: order/templates/order/order_wizard/match_fields.html:60
+msgid "Duplicate selection"
+msgstr ""
+
+#: order/templates/order/order_wizard/match_fields.html:71
+#: order/templates/order/order_wizard/match_parts.html:51
+#: part/templates/part/bom_upload/select_fields.html:76
+#: part/templates/part/bom_upload/select_parts.html:58
+msgid "Remove row"
+msgstr ""
+
+#: order/templates/order/order_wizard/match_parts.html:11
+#: part/templates/part/bom_upload/select_parts.html:21
+msgid "Errors exist in the submitted data"
+msgstr ""
+
+#: order/templates/order/order_wizard/match_parts.html:27
+#: part/templates/part/bom_upload/select_parts.html:39
+msgid "Row"
+msgstr ""
+
+#: order/templates/order/order_wizard/match_parts.html:28
+msgid "Select Supplier Part"
+msgstr ""
+
+#: order/templates/order/order_wizard/po_upload.html:11
+msgid "Upload File for Purchase Order"
+msgstr ""
+
+#: order/templates/order/order_wizard/po_upload.html:18
+#, python-format
+msgid "Step %(step)s of %(count)s"
+msgstr ""
+
+#: order/templates/order/order_wizard/po_upload.html:48
+msgid "Order is already processed. Files cannot be uploaded."
+msgstr ""
+
#: order/templates/order/order_wizard/select_parts.html:9
msgid "Step 1 of 2 - Select Part Suppliers"
msgstr ""
@@ -2936,8 +3156,8 @@ msgid "Purchase Order Items"
msgstr ""
#: order/templates/order/purchase_order_detail.html:24
-#: order/templates/order/sales_order_detail.html:22 order/views.py:1120
-#: order/views.py:1203
+#: order/templates/order/sales_order_detail.html:22 order/views.py:1311
+#: order/views.py:1394
msgid "Add Line Item"
msgstr ""
@@ -2946,11 +3166,12 @@ msgid "No line items found"
msgstr ""
#: order/templates/order/purchase_order_detail.html:180
+#: order/templates/order/sales_order_detail.html:235
msgid "Unit Price"
msgstr ""
#: order/templates/order/purchase_order_detail.html:221
-#: order/templates/order/sales_order_detail.html:294
+#: order/templates/order/sales_order_detail.html:328
msgid "Edit line item"
msgstr ""
@@ -2980,7 +3201,7 @@ msgstr ""
#: part/templates/part/category_partlist.html:10
#: templates/InvenTree/index.html:97 templates/InvenTree/search.html:114
#: templates/InvenTree/settings/tabs.html:25 templates/js/part.js:577
-#: templates/navbar.html:23 templates/stats.html:59 templates/stats.html:68
+#: templates/navbar.html:23 templates/stats.html:80 templates/stats.html:89
#: users/models.py:40
msgid "Parts"
msgstr ""
@@ -3042,59 +3263,72 @@ msgstr ""
msgid "Sales Order Items"
msgstr ""
-#: order/templates/order/sales_order_detail.html:92 templates/js/bom.js:342
+#: order/templates/order/sales_order_detail.html:95 templates/js/bom.js:342
#: templates/js/build.js:627 templates/js/build.js:1044
msgid "Actions"
msgstr ""
-#: order/templates/order/sales_order_detail.html:99 templates/js/build.js:515
+#: order/templates/order/sales_order_detail.html:102 templates/js/build.js:515
#: templates/js/build.js:849
msgid "Edit stock allocation"
msgstr ""
-#: order/templates/order/sales_order_detail.html:100 templates/js/build.js:517
+#: order/templates/order/sales_order_detail.html:103 templates/js/build.js:517
#: templates/js/build.js:850
msgid "Delete stock allocation"
msgstr ""
-#: order/templates/order/sales_order_detail.html:170
+#: order/templates/order/sales_order_detail.html:176
msgid "No matching line items"
msgstr ""
-#: order/templates/order/sales_order_detail.html:199
+#: order/templates/order/sales_order_detail.html:205
msgid "ID"
msgstr ""
-#: order/templates/order/sales_order_detail.html:229 templates/js/build.js:579
+#: order/templates/order/sales_order_detail.html:243 templates/js/build.js:579
#: templates/js/build.js:845
msgid "Allocated"
msgstr ""
-#: order/templates/order/sales_order_detail.html:231
+#: order/templates/order/sales_order_detail.html:245
msgid "Fulfilled"
msgstr ""
-#: order/templates/order/sales_order_detail.html:279
+#: order/templates/order/sales_order_detail.html:282
+msgid "PO"
+msgstr ""
+
+#: order/templates/order/sales_order_detail.html:312
msgid "Allocate serial numbers"
msgstr ""
-#: order/templates/order/sales_order_detail.html:282 templates/js/build.js:641
+#: order/templates/order/sales_order_detail.html:315 templates/js/build.js:641
msgid "Allocate stock"
msgstr ""
-#: order/templates/order/sales_order_detail.html:285
+#: order/templates/order/sales_order_detail.html:318
msgid "Purchase stock"
msgstr ""
-#: order/templates/order/sales_order_detail.html:289 templates/js/build.js:634
+#: order/templates/order/sales_order_detail.html:322 templates/js/build.js:634
#: templates/js/build.js:1052
msgid "Build stock"
msgstr ""
-#: order/templates/order/sales_order_detail.html:295
+#: order/templates/order/sales_order_detail.html:325
+#: order/templates/order/sales_order_detail.html:434
+msgid "Calculate price"
+msgstr ""
+
+#: order/templates/order/sales_order_detail.html:329
msgid "Delete line item "
msgstr ""
+#: order/templates/order/sales_order_detail.html:440
+msgid "Update Unit Price"
+msgstr ""
+
#: order/templates/order/sales_order_notes.html:14
msgid "Sales Order Notes"
msgstr ""
@@ -3136,164 +3370,189 @@ msgstr ""
msgid "Are you sure you wish to delete this line item?"
msgstr ""
-#: order/views.py:99
+#: order/views.py:104
msgid "Add Purchase Order Attachment"
msgstr ""
-#: order/views.py:149
+#: order/views.py:154
msgid "Add Sales Order Attachment"
msgstr ""
-#: order/views.py:341
+#: order/views.py:346
msgid "Create Sales Order"
msgstr ""
-#: order/views.py:376
+#: order/views.py:381
msgid "Edit Purchase Order"
msgstr ""
-#: order/views.py:396
+#: order/views.py:401
msgid "Edit Sales Order"
msgstr ""
-#: order/views.py:412
+#: order/views.py:417
msgid "Cancel Order"
msgstr ""
-#: order/views.py:421 order/views.py:447
+#: order/views.py:426 order/views.py:452
msgid "Confirm order cancellation"
msgstr ""
-#: order/views.py:424 order/views.py:450
+#: order/views.py:429 order/views.py:455
msgid "Order cannot be cancelled"
msgstr ""
-#: order/views.py:438
+#: order/views.py:443
msgid "Cancel sales order"
msgstr ""
-#: order/views.py:464
+#: order/views.py:469
msgid "Issue Order"
msgstr ""
-#: order/views.py:473
+#: order/views.py:478
msgid "Confirm order placement"
msgstr ""
-#: order/views.py:483
+#: order/views.py:488
msgid "Purchase order issued"
msgstr ""
-#: order/views.py:494
+#: order/views.py:499
msgid "Complete Order"
msgstr ""
-#: order/views.py:510
+#: order/views.py:515
msgid "Confirm order completion"
msgstr ""
-#: order/views.py:521
+#: order/views.py:526
msgid "Purchase order completed"
msgstr ""
-#: order/views.py:531
+#: order/views.py:536
msgid "Ship Order"
msgstr ""
-#: order/views.py:547
+#: order/views.py:552
msgid "Confirm order shipment"
msgstr ""
-#: order/views.py:553
+#: order/views.py:558
msgid "Could not ship order"
msgstr ""
-#: order/views.py:607
+#: order/views.py:584
+msgid "Match Supplier Parts"
+msgstr ""
+
+#: order/views.py:798
msgid "Receive Parts"
msgstr ""
-#: order/views.py:677
+#: order/views.py:868
msgid "Items received"
msgstr ""
-#: order/views.py:691
+#: order/views.py:882
msgid "No destination set"
msgstr ""
-#: order/views.py:736
+#: order/views.py:927
msgid "Error converting quantity to number"
msgstr ""
-#: order/views.py:742
+#: order/views.py:933
msgid "Receive quantity less than zero"
msgstr ""
-#: order/views.py:748
+#: order/views.py:939
msgid "No lines specified"
msgstr ""
-#: order/views.py:1069
+#: order/views.py:1260
#, python-brace-format
msgid "Ordered {n} parts"
msgstr ""
-#: order/views.py:1129
+#: order/views.py:1320
msgid "Supplier part must be specified"
msgstr ""
-#: order/views.py:1135
+#: order/views.py:1326
msgid "Supplier must match for Part and Order"
msgstr ""
-#: order/views.py:1254 order/views.py:1272
+#: order/views.py:1457 order/views.py:1475
msgid "Edit Line Item"
msgstr ""
-#: order/views.py:1288 order/views.py:1300
+#: order/views.py:1491 order/views.py:1503
msgid "Delete Line Item"
msgstr ""
-#: order/views.py:1293 order/views.py:1305
+#: order/views.py:1496 order/views.py:1508
msgid "Deleted line item"
msgstr ""
-#: order/views.py:1318
+#: order/views.py:1521
msgid "Allocate Serial Numbers"
msgstr ""
-#: order/views.py:1363
+#: order/views.py:1566
#, python-brace-format
msgid "Allocated {n} items"
msgstr ""
-#: order/views.py:1379
+#: order/views.py:1582
msgid "Select line item"
msgstr ""
-#: order/views.py:1410
-msgid "No matching item for serial"
+#: order/views.py:1613
+#, python-brace-format
+msgid "No matching item for serial {serial}"
msgstr ""
-#: order/views.py:1420
-msgid "is not in stock"
+#: order/views.py:1623
+#, python-brace-format
+msgid "{serial} is not in stock"
msgstr ""
-#: order/views.py:1428
-msgid "already allocated to an order"
+#: order/views.py:1631
+#, python-brace-format
+msgid "{serial} already allocated to an order"
msgstr ""
-#: order/views.py:1482
+#: order/views.py:1685
msgid "Allocate Stock to Order"
msgstr ""
-#: order/views.py:1556
+#: order/views.py:1759
msgid "Edit Allocation Quantity"
msgstr ""
-#: order/views.py:1571
+#: order/views.py:1774
msgid "Remove allocation"
msgstr ""
+#: order/views.py:1846
+msgid "Sales order not found"
+msgstr ""
+
+#: order/views.py:1852
+msgid "Price not found"
+msgstr ""
+
+#: order/views.py:1855
+#, python-brace-format
+msgid "Updated {part} unit-price to {price}"
+msgstr ""
+
+#: order/views.py:1860
+#, python-brace-format
+msgid "Updated {part} unit-price to {price} and quantity to {qty}"
+msgstr ""
+
#: part/bom.py:138 part/models.py:72 part/models.py:762
#: part/templates/part/category.html:66 part/templates/part/detail.html:90
msgid "Default Location"
@@ -3372,7 +3631,7 @@ msgstr ""
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:122 part/models.py:2077
+#: part/forms.py:122 part/models.py:2115
msgid "Parent Part"
msgstr ""
@@ -3448,7 +3707,7 @@ msgstr ""
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:344 part/models.py:2171
+#: part/forms.py:344 part/models.py:2209
msgid "Sub part"
msgstr ""
@@ -3468,14 +3727,14 @@ msgstr ""
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:82 part/models.py:2123
+#: part/models.py:82 part/models.py:2161
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
#: part/models.py:83 part/templates/part/category.html:23
#: part/templates/part/category.html:94 part/templates/part/category.html:141
-#: templates/InvenTree/search.html:127 templates/stats.html:63
+#: templates/InvenTree/search.html:127 templates/stats.html:84
#: users/models.py:39
msgid "Part Categories"
msgstr ""
@@ -3538,7 +3797,7 @@ msgstr ""
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:724 part/models.py:2122 part/templates/part/detail.html:73
+#: part/models.py:724 part/models.py:2160 part/templates/part/detail.html:73
#: part/templates/part/set_category.html:15 templates/js/part.js:385
msgid "Category"
msgstr ""
@@ -3593,7 +3852,7 @@ msgstr ""
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:828 part/models.py:2051 part/templates/part/detail.html:106
+#: part/models.py:828 part/models.py:2089 part/templates/part/detail.html:106
#: part/templates/part/params.html:29
msgid "Units"
msgstr ""
@@ -3623,8 +3882,8 @@ msgid "Can this part be sold to customers?"
msgstr ""
#: part/models.py:861 part/templates/part/detail.html:227
-#: templates/js/table_filters.js:20 templates/js/table_filters.js:60
-#: templates/js/table_filters.js:236 templates/js/table_filters.js:305
+#: templates/js/table_filters.js:21 templates/js/table_filters.js:61
+#: templates/js/table_filters.js:237 templates/js/table_filters.js:306
msgid "Active"
msgstr ""
@@ -3660,167 +3919,171 @@ msgstr ""
msgid "Creation User"
msgstr ""
-#: part/models.py:1949
-msgid "Test templates can only be created for trackable parts"
-msgstr ""
-
-#: part/models.py:1966
-msgid "Test with this name already exists for this part"
-msgstr ""
-
-#: part/models.py:1986 templates/js/part.js:638 templates/js/stock.js:104
-msgid "Test Name"
+#: part/models.py:1616
+msgid "Sell multiple"
msgstr ""
#: part/models.py:1987
+msgid "Test templates can only be created for trackable parts"
+msgstr ""
+
+#: part/models.py:2004
+msgid "Test with this name already exists for this part"
+msgstr ""
+
+#: part/models.py:2024 templates/js/part.js:638 templates/js/stock.js:104
+msgid "Test Name"
+msgstr ""
+
+#: part/models.py:2025
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:1992
+#: part/models.py:2030
msgid "Test Description"
msgstr ""
-#: part/models.py:1993
+#: part/models.py:2031
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:1998 templates/js/part.js:647
-#: templates/js/table_filters.js:222
+#: part/models.py:2036 templates/js/part.js:647
+#: templates/js/table_filters.js:223
msgid "Required"
msgstr ""
-#: part/models.py:1999
+#: part/models.py:2037
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2004 templates/js/part.js:655
+#: part/models.py:2042 templates/js/part.js:655
msgid "Requires Value"
msgstr ""
-#: part/models.py:2005
+#: part/models.py:2043
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2010 templates/js/part.js:662
+#: part/models.py:2048 templates/js/part.js:662
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2011
+#: part/models.py:2049
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2044
+#: part/models.py:2082
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2049
+#: part/models.py:2087
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2051
+#: part/models.py:2089
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2079 part/models.py:2128 part/models.py:2129
+#: part/models.py:2117 part/models.py:2166 part/models.py:2167
#: templates/InvenTree/settings/category.html:62
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2081
+#: part/models.py:2119
msgid "Data"
msgstr ""
-#: part/models.py:2081
+#: part/models.py:2119
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2133 templates/InvenTree/settings/category.html:67
+#: part/models.py:2171 templates/InvenTree/settings/category.html:67
msgid "Default Value"
msgstr ""
-#: part/models.py:2134
+#: part/models.py:2172
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2163
+#: part/models.py:2201
msgid "Select parent part"
msgstr ""
-#: part/models.py:2172
+#: part/models.py:2210
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2178
+#: part/models.py:2216
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2180 templates/js/bom.js:216 templates/js/bom.js:269
+#: part/models.py:2218 templates/js/bom.js:216 templates/js/bom.js:269
msgid "Optional"
msgstr ""
-#: part/models.py:2180
+#: part/models.py:2218
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2183
+#: part/models.py:2221
msgid "Overage"
msgstr ""
-#: part/models.py:2184
+#: part/models.py:2222
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2187
+#: part/models.py:2225
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2190
+#: part/models.py:2228
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2192
+#: part/models.py:2230
msgid "Checksum"
msgstr ""
-#: part/models.py:2192
+#: part/models.py:2230
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2196 templates/js/bom.js:279 templates/js/bom.js:286
-#: templates/js/table_filters.js:50
+#: part/models.py:2234 templates/js/bom.js:279 templates/js/bom.js:286
+#: templates/js/table_filters.js:51
msgid "Inherited"
msgstr ""
-#: part/models.py:2197
+#: part/models.py:2235
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2273 part/views.py:1592 part/views.py:1644
-#: stock/models.py:260
+#: part/models.py:2311 part/views.py:1592 part/views.py:1644
+#: stock/models.py:292
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2282 part/models.py:2284
+#: part/models.py:2320 part/models.py:2322
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2287
+#: part/models.py:2325
msgid "BOM Item"
msgstr ""
-#: part/models.py:2404
+#: part/models.py:2442
msgid "Part 1"
msgstr ""
-#: part/models.py:2408
+#: part/models.py:2446
msgid "Part 2"
msgstr ""
-#: part/models.py:2408
+#: part/models.py:2446
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2440
+#: part/models.py:2478
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -3905,7 +4168,7 @@ msgid "All selected BOM items will be deleted"
msgstr ""
#: part/templates/part/bom.html:160 part/views.py:584
-#: templates/js/stock.js:1158
+#: templates/js/stock.js:1280
msgid "Create New Part"
msgstr ""
@@ -3923,51 +4186,18 @@ msgstr ""
msgid "Step 2 - Select Fields"
msgstr ""
-#: part/templates/part/bom_upload/select_fields.html:21
-msgid "Missing selections for the following required columns"
-msgstr ""
-
-#: part/templates/part/bom_upload/select_fields.html:32
-msgid "Submit Selections"
-msgstr ""
-
-#: part/templates/part/bom_upload/select_fields.html:41
-msgid "File Fields"
-msgstr ""
-
-#: part/templates/part/bom_upload/select_fields.html:47
-msgid "Remove column"
-msgstr ""
-
-#: part/templates/part/bom_upload/select_fields.html:58
-msgid "Match Fields"
-msgstr ""
-
#: part/templates/part/bom_upload/select_fields.html:68
msgid "Duplicate column selection"
msgstr ""
-#: part/templates/part/bom_upload/select_fields.html:76
-#: part/templates/part/bom_upload/select_parts.html:58
-msgid "Remove row"
-msgstr ""
-
#: part/templates/part/bom_upload/select_parts.html:16
msgid "Step 3 - Select Parts"
msgstr ""
-#: part/templates/part/bom_upload/select_parts.html:21
-msgid "Errors exist in the submitted data"
-msgstr ""
-
#: part/templates/part/bom_upload/select_parts.html:27
msgid "Submit BOM"
msgstr ""
-#: part/templates/part/bom_upload/select_parts.html:39
-msgid "Row"
-msgstr ""
-
#: part/templates/part/bom_upload/select_parts.html:40
#: part/templates/part/bom_upload/select_parts.html:69
msgid "Select Part"
@@ -3998,10 +4228,6 @@ msgstr ""
msgid "Each part must already exist in the database"
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:27
-msgid "Upload File"
-msgstr ""
-
#: part/templates/part/bom_validate.html:6
#, python-format
msgid "Confirm that the Bill of Materials (BOM) is valid for:
%(part)s"
@@ -4023,7 +4249,7 @@ msgstr ""
msgid "All parts"
msgstr ""
-#: part/templates/part/category.html:29 part/views.py:2282
+#: part/templates/part/category.html:29 part/views.py:2290
msgid "Create new part category"
msgstr ""
@@ -4091,7 +4317,7 @@ msgstr ""
msgid "Create new Part Category"
msgstr ""
-#: part/templates/part/category.html:228 stock/views.py:1359
+#: part/templates/part/category.html:228 stock/views.py:1391
msgid "Create new Stock Location"
msgstr ""
@@ -4282,15 +4508,11 @@ msgstr ""
msgid "Sales Price Information"
msgstr ""
-#: part/templates/part/navbar.html:95
-msgid "Sale Price"
-msgstr ""
-
#: part/templates/part/navbar.html:106 part/templates/part/part_tests.html:10
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/navbar.html:109 stock/templates/stock/item_base.html:398
+#: part/templates/part/navbar.html:109 stock/templates/stock/item_base.html:404
msgid "Tests"
msgstr ""
@@ -4315,7 +4537,7 @@ msgstr ""
#: part/templates/part/params.html:28
#: report/templates/report/inventree_test_report_base.html:90
-#: stock/models.py:1655 templates/InvenTree/settings/header.html:8
+#: stock/models.py:1754 templates/InvenTree/settings/header.html:8
#: templates/js/stock.js:124
msgid "Value"
msgstr ""
@@ -4351,19 +4573,19 @@ msgid "Star this part"
msgstr ""
#: part/templates/part/part_base.html:47
-#: stock/templates/stock/item_base.html:131
+#: stock/templates/stock/item_base.html:137
#: stock/templates/stock/location.html:51
msgid "Barcode actions"
msgstr ""
#: part/templates/part/part_base.html:49
-#: stock/templates/stock/item_base.html:133
+#: stock/templates/stock/item_base.html:139
#: stock/templates/stock/location.html:53 templates/qr_button.html:1
msgid "Show QR Code"
msgstr ""
#: part/templates/part/part_base.html:50
-#: stock/templates/stock/item_base.html:149
+#: stock/templates/stock/item_base.html:155
#: stock/templates/stock/location.html:54
msgid "Print Label"
msgstr ""
@@ -4392,7 +4614,7 @@ msgstr ""
msgid "Delete part"
msgstr ""
-#: part/templates/part/part_base.html:123 templates/js/table_filters.js:156
+#: part/templates/part/part_base.html:123 templates/js/table_filters.js:157
msgid "In Stock"
msgstr ""
@@ -4420,42 +4642,39 @@ msgstr ""
msgid "Calculate"
msgstr ""
-#: part/templates/part/part_pricing.html:8
-#, python-format
-msgid "Pricing information for:
%(part)s."
-msgstr ""
-
-#: part/templates/part/part_pricing.html:23
+#: part/templates/part/part_pricing.html:19
msgid "Supplier Pricing"
msgstr ""
-#: part/templates/part/part_pricing.html:27
-#: part/templates/part/part_pricing.html:53
+#: part/templates/part/part_pricing.html:23
+#: part/templates/part/part_pricing.html:49
+#: part/templates/part/part_pricing.html:81
msgid "Unit Cost"
msgstr ""
-#: part/templates/part/part_pricing.html:33
-#: part/templates/part/part_pricing.html:59
+#: part/templates/part/part_pricing.html:29
+#: part/templates/part/part_pricing.html:55
+#: part/templates/part/part_pricing.html:85
msgid "Total Cost"
msgstr ""
-#: part/templates/part/part_pricing.html:41
+#: part/templates/part/part_pricing.html:37
msgid "No supplier pricing available"
msgstr ""
-#: part/templates/part/part_pricing.html:49
+#: part/templates/part/part_pricing.html:45
msgid "BOM Pricing"
msgstr ""
-#: part/templates/part/part_pricing.html:67
+#: part/templates/part/part_pricing.html:63
msgid "Note: BOM pricing is incomplete for this part"
msgstr ""
-#: part/templates/part/part_pricing.html:74
+#: part/templates/part/part_pricing.html:70
msgid "No BOM pricing available"
msgstr ""
-#: part/templates/part/part_pricing.html:84
+#: part/templates/part/part_pricing.html:94
msgid "No pricing information is available for this part."
msgstr ""
@@ -4564,6 +4783,10 @@ msgstr ""
msgid "New Variant"
msgstr ""
+#: part/templatetags/inventree_extras.py:97
+msgid "Unknown database"
+msgstr ""
+
#: part/views.py:89
msgid "Add Related Part"
msgstr ""
@@ -4713,63 +4936,63 @@ msgstr ""
msgid "Part Pricing"
msgstr ""
-#: part/views.py:2081
+#: part/views.py:2089
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:2091
+#: part/views.py:2099
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:2098
+#: part/views.py:2106
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:2106
+#: part/views.py:2114
msgid "Create Part Parameter"
msgstr ""
-#: part/views.py:2156
+#: part/views.py:2164
msgid "Edit Part Parameter"
msgstr ""
-#: part/views.py:2170
+#: part/views.py:2178
msgid "Delete Part Parameter"
msgstr ""
-#: part/views.py:2230
+#: part/views.py:2238
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:2268
+#: part/views.py:2276
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:2274
+#: part/views.py:2282
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:2326
+#: part/views.py:2334
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:2427
+#: part/views.py:2435
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:2483
+#: part/views.py:2491
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:2502
+#: part/views.py:2510
msgid "Create BOM Item"
msgstr ""
-#: part/views.py:2572
+#: part/views.py:2580
msgid "Edit BOM item"
msgstr ""
-#: part/views.py:2628
+#: part/views.py:2636
msgid "Confim BOM item deletion"
msgstr ""
@@ -4871,17 +5094,17 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:1643
+#: stock/models.py:1742
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:89
-#: stock/models.py:1649
+#: stock/models.py:1748
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:92
-#: templates/js/order.js:195 templates/js/stock.js:986
+#: templates/js/order.js:195 templates/js/stock.js:984
msgid "Date"
msgstr ""
@@ -4893,22 +5116,22 @@ msgstr ""
msgid "Fail"
msgstr ""
-#: stock/api.py:199
+#: stock/api.py:212
#, python-brace-format
msgid "Updated stock for {n} items"
msgstr ""
-#: stock/api.py:268
+#: stock/api.py:281
#, python-brace-format
msgid "Moved {n} parts to {loc}"
msgstr ""
-#: stock/forms.py:114 stock/forms.py:406 stock/models.py:475
-#: stock/templates/stock/item_base.html:365 templates/js/stock.js:656
+#: stock/forms.py:114 stock/forms.py:418 stock/models.py:507
+#: stock/templates/stock/item_base.html:371 templates/js/stock.js:656
msgid "Expiry Date"
msgstr ""
-#: stock/forms.py:115 stock/forms.py:407
+#: stock/forms.py:115 stock/forms.py:419
msgid "Expiration date for this stock item"
msgstr ""
@@ -4936,8 +5159,8 @@ msgstr ""
msgid "Select test report template"
msgstr ""
-#: stock/forms.py:267 templates/js/table_filters.js:70
-#: templates/js/table_filters.js:133
+#: stock/forms.py:267 templates/js/table_filters.js:71
+#: templates/js/table_filters.js:134
msgid "Include sublocations"
msgstr ""
@@ -4993,243 +5216,187 @@ msgstr ""
msgid "Set the destination as the default location for selected parts"
msgstr ""
-#: stock/models.py:54 stock/models.py:513
+#: stock/models.py:54 stock/models.py:545
msgid "Owner"
msgstr ""
-#: stock/models.py:55 stock/models.py:514
+#: stock/models.py:55 stock/models.py:546
msgid "Select Owner"
msgstr ""
-#: stock/models.py:205
-msgid "Created stock item"
-msgstr ""
-
-#: stock/models.py:241
+#: stock/models.py:273
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:277
+#: stock/models.py:309
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:287 stock/models.py:296
+#: stock/models.py:319 stock/models.py:328
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:288
+#: stock/models.py:320
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:310
+#: stock/models.py:342
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:316
+#: stock/models.py:348
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:323
+#: stock/models.py:355
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:365
+#: stock/models.py:397
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:374
+#: stock/models.py:406
msgid "Base part"
msgstr ""
-#: stock/models.py:383
+#: stock/models.py:415
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:388 stock/templates/stock/stock_app_base.html:8
+#: stock/models.py:420 stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:391
+#: stock/models.py:423
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:398
+#: stock/models.py:430
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:403 stock/templates/stock/item_base.html:259
+#: stock/models.py:435 stock/templates/stock/item_base.html:265
msgid "Installed In"
msgstr ""
-#: stock/models.py:406
+#: stock/models.py:438
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:422
+#: stock/models.py:454
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:434
+#: stock/models.py:466
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:438
+#: stock/models.py:470
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:447
+#: stock/models.py:479
msgid "Source Build"
msgstr ""
-#: stock/models.py:449
+#: stock/models.py:481
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:460
+#: stock/models.py:492
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:463
+#: stock/models.py:495
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:469
+#: stock/models.py:501
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:476
+#: stock/models.py:508
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:489
+#: stock/models.py:521
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:489
+#: stock/models.py:521
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:499 stock/templates/stock/item_notes.html:13
+#: stock/models.py:531 stock/templates/stock/item_notes.html:13
#: stock/templates/stock/navbar.html:54
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:509
+#: stock/models.py:541
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:614
-msgid "Assigned to Customer"
-msgstr ""
-
-#: stock/models.py:616
-msgid "Manually assigned to customer"
-msgstr ""
-
-#: stock/models.py:629
-msgid "Returned from customer"
-msgstr ""
-
-#: stock/models.py:631
-msgid "Returned to location"
-msgstr ""
-
-#: stock/models.py:792
-msgid "Installed into stock item"
-msgstr ""
-
-#: stock/models.py:800
-msgid "Installed stock item"
-msgstr ""
-
-#: stock/models.py:824
-msgid "Uninstalled stock item"
-msgstr ""
-
-#: stock/models.py:843
-msgid "Uninstalled into location"
-msgstr ""
-
-#: stock/models.py:944
+#: stock/models.py:1009
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:950
+#: stock/models.py:1015
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:956
+#: stock/models.py:1021
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:959
+#: stock/models.py:1024
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:962
+#: stock/models.py:1027
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:994
-msgid "Add serial number"
-msgstr ""
-
-#: stock/models.py:997
+#: stock/models.py:1034
#, python-brace-format
-msgid "Serialized {n} items"
+msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1075
-msgid "Split from existing stock"
-msgstr ""
-
-#: stock/models.py:1113
+#: stock/models.py:1192
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1556
-msgid "Title"
-msgstr ""
-
-#: stock/models.py:1556
-msgid "Tracking entry title"
-msgstr ""
-
-#: stock/models.py:1558
+#: stock/models.py:1666
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1560
-msgid "Link to external page for further information"
-msgstr ""
-
-#: stock/models.py:1620
+#: stock/models.py:1719
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1626
+#: stock/models.py:1725
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1644
+#: stock/models.py:1743
msgid "Test name"
msgstr ""
-#: stock/models.py:1650 templates/js/table_filters.js:212
+#: stock/models.py:1749 templates/js/table_filters.js:213
msgid "Test result"
msgstr ""
-#: stock/models.py:1656
+#: stock/models.py:1755
msgid "Test output value"
msgstr ""
-#: stock/models.py:1663
+#: stock/models.py:1762
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1669
+#: stock/models.py:1768
msgid "Test notes"
msgstr ""
@@ -5284,134 +5451,134 @@ msgid "This stock item will be automatically deleted when all stock is depleted.
msgstr ""
#: stock/templates/stock/item_base.html:95
-#: stock/templates/stock/item_base.html:369 templates/js/table_filters.js:145
+#: stock/templates/stock/item_base.html:375 templates/js/table_filters.js:146
msgid "Expired"
msgstr ""
-#: stock/templates/stock/item_base.html:99
-#: stock/templates/stock/item_base.html:371 templates/js/table_filters.js:150
+#: stock/templates/stock/item_base.html:105
+#: stock/templates/stock/item_base.html:377 templates/js/table_filters.js:151
msgid "Stale"
msgstr ""
-#: stock/templates/stock/item_base.html:136 templates/js/barcode.js:309
+#: stock/templates/stock/item_base.html:142 templates/js/barcode.js:309
#: templates/js/barcode.js:314
msgid "Unlink Barcode"
msgstr ""
-#: stock/templates/stock/item_base.html:138
+#: stock/templates/stock/item_base.html:144
msgid "Link Barcode"
msgstr ""
-#: stock/templates/stock/item_base.html:140 templates/stock_table.html:31
+#: stock/templates/stock/item_base.html:146 templates/stock_table.html:31
msgid "Scan to Location"
msgstr ""
-#: stock/templates/stock/item_base.html:147
+#: stock/templates/stock/item_base.html:153
msgid "Printing actions"
msgstr ""
-#: stock/templates/stock/item_base.html:151
+#: stock/templates/stock/item_base.html:157
#: stock/templates/stock/item_tests.html:27
msgid "Test Report"
msgstr ""
-#: stock/templates/stock/item_base.html:160
+#: stock/templates/stock/item_base.html:166
msgid "Stock adjustment actions"
msgstr ""
-#: stock/templates/stock/item_base.html:164
+#: stock/templates/stock/item_base.html:170
#: stock/templates/stock/location.html:65 templates/stock_table.html:57
msgid "Count stock"
msgstr ""
-#: stock/templates/stock/item_base.html:167 templates/stock_table.html:55
+#: stock/templates/stock/item_base.html:173 templates/stock_table.html:55
msgid "Add stock"
msgstr ""
-#: stock/templates/stock/item_base.html:170 templates/stock_table.html:56
+#: stock/templates/stock/item_base.html:176 templates/stock_table.html:56
msgid "Remove stock"
msgstr ""
-#: stock/templates/stock/item_base.html:173
+#: stock/templates/stock/item_base.html:179
msgid "Serialize stock"
msgstr ""
-#: stock/templates/stock/item_base.html:177
+#: stock/templates/stock/item_base.html:183
msgid "Transfer stock"
msgstr ""
-#: stock/templates/stock/item_base.html:180
+#: stock/templates/stock/item_base.html:186
msgid "Assign to customer"
msgstr ""
-#: stock/templates/stock/item_base.html:183
+#: stock/templates/stock/item_base.html:189
msgid "Return to stock"
msgstr ""
-#: stock/templates/stock/item_base.html:187 templates/js/stock.js:1299
+#: stock/templates/stock/item_base.html:193 templates/js/stock.js:1421
msgid "Uninstall stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:187
+#: stock/templates/stock/item_base.html:193
msgid "Uninstall"
msgstr ""
-#: stock/templates/stock/item_base.html:196
+#: stock/templates/stock/item_base.html:202
#: stock/templates/stock/location.html:62
msgid "Stock actions"
msgstr ""
-#: stock/templates/stock/item_base.html:199
+#: stock/templates/stock/item_base.html:205
msgid "Convert to variant"
msgstr ""
-#: stock/templates/stock/item_base.html:202
+#: stock/templates/stock/item_base.html:208
msgid "Duplicate stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:204
+#: stock/templates/stock/item_base.html:210
msgid "Edit stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:207
+#: stock/templates/stock/item_base.html:213
msgid "Delete stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:219
+#: stock/templates/stock/item_base.html:225
msgid "Stock Item Details"
msgstr ""
-#: stock/templates/stock/item_base.html:278 templates/js/build.js:498
+#: stock/templates/stock/item_base.html:284 templates/js/build.js:498
msgid "No location set"
msgstr ""
-#: stock/templates/stock/item_base.html:285
+#: stock/templates/stock/item_base.html:291
msgid "Barcode Identifier"
msgstr ""
-#: stock/templates/stock/item_base.html:327
+#: stock/templates/stock/item_base.html:333
msgid "Parent Item"
msgstr ""
-#: stock/templates/stock/item_base.html:369
+#: stock/templates/stock/item_base.html:375
#, python-format
msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:371
+#: stock/templates/stock/item_base.html:377
#, python-format
msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:378 templates/js/stock.js:662
+#: stock/templates/stock/item_base.html:384 templates/js/stock.js:662
msgid "Last Updated"
msgstr ""
-#: stock/templates/stock/item_base.html:383
+#: stock/templates/stock/item_base.html:389
msgid "Last Stocktake"
msgstr ""
-#: stock/templates/stock/item_base.html:387
+#: stock/templates/stock/item_base.html:393
msgid "No stocktake performed"
msgstr ""
@@ -5522,7 +5689,7 @@ msgid "Stock Details"
msgstr ""
#: stock/templates/stock/location.html:117 templates/InvenTree/search.html:279
-#: templates/stats.html:76 users/models.py:41
+#: templates/stats.html:97 users/models.py:41
msgid "Stock Locations"
msgstr ""
@@ -5562,7 +5729,7 @@ msgstr ""
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:1332
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:1364
msgid "Convert Stock Item"
msgstr ""
@@ -5595,8 +5762,8 @@ msgstr ""
msgid "Edit Stock Location"
msgstr ""
-#: stock/views.py:230 stock/views.py:1322 stock/views.py:1433
-#: stock/views.py:1798
+#: stock/views.py:230 stock/views.py:1343 stock/views.py:1465
+#: stock/views.py:1830
msgid "Owner is required (ownership control is enabled)"
msgstr ""
@@ -5762,43 +5929,47 @@ msgstr ""
msgid "Deleted {n} stock items"
msgstr ""
-#: stock/views.py:1224
+#: stock/views.py:1222
+msgid "Edit Stock Item Status"
+msgstr ""
+
+#: stock/views.py:1245
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:1450
+#: stock/views.py:1482
msgid "Serialize Stock"
msgstr ""
-#: stock/views.py:1543 templates/js/build.js:244
+#: stock/views.py:1575 templates/js/build.js:244
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1685
+#: stock/views.py:1717
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1767
+#: stock/views.py:1799
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1867
+#: stock/views.py:1899
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:1880
+#: stock/views.py:1912
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1891
+#: stock/views.py:1923
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1898
+#: stock/views.py:1930
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1907
+#: stock/views.py:1939
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -5896,8 +6067,7 @@ msgstr ""
#: templates/InvenTree/settings/appearance.html:29
#, python-format
-msgid ""
-"\n"
+msgid "\n"
" The CSS sheet \"%(invalid_color_theme)s.css\" for the currently selected color theme was not found.
\n"
" Please select another color theme :)\n"
" "
@@ -6100,9 +6270,17 @@ msgstr ""
msgid "Submit Bug Report"
msgstr ""
-#: templates/about.html:82 templates/js/modals.js:550
-#: templates/js/modals.js:809 templates/modals.html:28 templates/modals.html:52
-#: templates/modals.html:93
+#: templates/about.html:80 templates/clip.html:4
+msgid "copy to clipboard"
+msgstr ""
+
+#: templates/about.html:80
+msgid "copy version information"
+msgstr ""
+
+#: templates/about.html:90 templates/js/modals.js:568
+#: templates/js/modals.js:846 templates/modals.html:29 templates/modals.html:54
+#: templates/modals.html:97
msgid "Close"
msgstr ""
@@ -6110,10 +6288,6 @@ msgstr ""
msgid "Add Attachment"
msgstr ""
-#: templates/attachment_table.html:15
-msgid "File"
-msgstr ""
-
#: templates/attachment_table.html:17
msgid "Uploaded"
msgstr ""
@@ -6166,7 +6340,7 @@ msgstr ""
msgid "Unknown response from server"
msgstr ""
-#: templates/js/barcode.js:119 templates/js/modals.js:857
+#: templates/js/barcode.js:119 templates/js/modals.js:901
msgid "Invalid server response"
msgstr ""
@@ -6311,7 +6485,7 @@ msgstr ""
#: templates/js/build.js:708 templates/js/part.js:324 templates/js/part.js:546
#: templates/js/stock.js:511 templates/js/stock.js:938
-#: templates/js/stock.js:1331
+#: templates/js/stock.js:1453
msgid "Select"
msgstr ""
@@ -6409,96 +6583,96 @@ msgstr ""
msgid "Select Label Template"
msgstr ""
-#: templates/js/modals.js:256
+#: templates/js/modals.js:265
msgid "Waiting for server..."
msgstr ""
-#: templates/js/modals.js:406
+#: templates/js/modals.js:424
msgid "Show Error Information"
msgstr ""
-#: templates/js/modals.js:473 templates/modals.html:73
+#: templates/js/modals.js:491 templates/modals.html:76
msgid "Accept"
msgstr ""
-#: templates/js/modals.js:474 templates/modals.html:72
+#: templates/js/modals.js:492 templates/modals.html:75
msgid "Cancel"
msgstr ""
-#: templates/js/modals.js:538
+#: templates/js/modals.js:556
msgid "Loading Data"
msgstr ""
-#: templates/js/modals.js:549 templates/js/modals.js:808
-#: templates/modals.html:29 templates/modals.html:53
+#: templates/js/modals.js:567 templates/js/modals.js:845
+#: templates/modals.html:30 templates/modals.html:55
msgid "Submit"
msgstr ""
-#: templates/js/modals.js:760
+#: templates/js/modals.js:797
msgid "Invalid response from server"
msgstr ""
-#: templates/js/modals.js:760
+#: templates/js/modals.js:797
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/modals.js:773
+#: templates/js/modals.js:810
msgid "Error posting form data"
msgstr ""
-#: templates/js/modals.js:857
+#: templates/js/modals.js:901
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/modals.js:867
+#: templates/js/modals.js:911
msgid "No Response"
msgstr ""
-#: templates/js/modals.js:868
+#: templates/js/modals.js:912
msgid "No response from the InvenTree server"
msgstr ""
-#: templates/js/modals.js:872
+#: templates/js/modals.js:916
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/modals.js:873
+#: templates/js/modals.js:917
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/modals.js:877
+#: templates/js/modals.js:921
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/modals.js:878
+#: templates/js/modals.js:922
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/modals.js:882
+#: templates/js/modals.js:926
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/modals.js:883
+#: templates/js/modals.js:927
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/modals.js:887
+#: templates/js/modals.js:931
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/modals.js:888
+#: templates/js/modals.js:932
msgid "The requested resource could not be located on the server"
msgstr ""
-#: templates/js/modals.js:892
+#: templates/js/modals.js:936
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/modals.js:893
+#: templates/js/modals.js:937
msgid "Connection timeout while requesting data from server"
msgstr ""
-#: templates/js/modals.js:896
+#: templates/js/modals.js:940
msgid "Error requesting form data"
msgstr ""
@@ -6542,7 +6716,7 @@ msgstr ""
msgid "No category"
msgstr ""
-#: templates/js/part.js:409 templates/js/table_filters.js:318
+#: templates/js/part.js:409 templates/js/table_filters.js:319
msgid "Low stock"
msgstr ""
@@ -6740,7 +6914,7 @@ msgstr ""
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/stock.js:620 templates/js/table_filters.js:138
+#: templates/js/stock.js:620 templates/js/table_filters.js:139
msgid "Depleted"
msgstr ""
@@ -6764,189 +6938,213 @@ msgstr ""
msgid "Status code must be selected"
msgstr ""
-#: templates/js/stock.js:1050
+#: templates/js/stock.js:994
+msgid "Invalid date"
+msgstr ""
+
+#: templates/js/stock.js:1036
+msgid "Location no longer exists"
+msgstr ""
+
+#: templates/js/stock.js:1055
+msgid "Purchase order no longer exists"
+msgstr ""
+
+#: templates/js/stock.js:1074
+msgid "Customer no longer exists"
+msgstr ""
+
+#: templates/js/stock.js:1092
+msgid "Stock item no longer exists"
+msgstr ""
+
+#: templates/js/stock.js:1115
+msgid "Added"
+msgstr ""
+
+#: templates/js/stock.js:1123
+msgid "Removed"
+msgstr ""
+
+#: templates/js/stock.js:1155
msgid "No user information"
msgstr ""
-#: templates/js/stock.js:1060
+#: templates/js/stock.js:1167
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/stock.js:1061
+#: templates/js/stock.js:1168
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/stock.js:1170
+#: templates/js/stock.js:1292
msgid "Create New Location"
msgstr ""
-#: templates/js/stock.js:1269
+#: templates/js/stock.js:1391
msgid "Serial"
msgstr ""
-#: templates/js/stock.js:1362 templates/js/table_filters.js:171
+#: templates/js/stock.js:1484 templates/js/table_filters.js:172
msgid "Installed"
msgstr ""
-#: templates/js/stock.js:1387
+#: templates/js/stock.js:1509
msgid "Install item"
msgstr ""
-#: templates/js/table_filters.js:42
+#: templates/js/table_filters.js:43
msgid "Trackable Part"
msgstr ""
-#: templates/js/table_filters.js:46
+#: templates/js/table_filters.js:47
msgid "Validated"
msgstr ""
-#: templates/js/table_filters.js:71
+#: templates/js/table_filters.js:72
msgid "Include locations"
msgstr ""
-#: templates/js/table_filters.js:81 templates/js/table_filters.js:82
-#: templates/js/table_filters.js:295
+#: templates/js/table_filters.js:82 templates/js/table_filters.js:83
+#: templates/js/table_filters.js:296
msgid "Include subcategories"
msgstr ""
-#: templates/js/table_filters.js:92 templates/js/table_filters.js:181
+#: templates/js/table_filters.js:93 templates/js/table_filters.js:182
msgid "Is Serialized"
msgstr ""
-#: templates/js/table_filters.js:95 templates/js/table_filters.js:188
+#: templates/js/table_filters.js:96 templates/js/table_filters.js:189
msgid "Serial number GTE"
msgstr ""
-#: templates/js/table_filters.js:96 templates/js/table_filters.js:189
+#: templates/js/table_filters.js:97 templates/js/table_filters.js:190
msgid "Serial number greater than or equal to"
msgstr ""
-#: templates/js/table_filters.js:99 templates/js/table_filters.js:192
+#: templates/js/table_filters.js:100 templates/js/table_filters.js:193
msgid "Serial number LTE"
msgstr ""
-#: templates/js/table_filters.js:100 templates/js/table_filters.js:193
+#: templates/js/table_filters.js:101 templates/js/table_filters.js:194
msgid "Serial number less than or equal to"
msgstr ""
-#: templates/js/table_filters.js:103 templates/js/table_filters.js:104
-#: templates/js/table_filters.js:184 templates/js/table_filters.js:185
+#: templates/js/table_filters.js:104 templates/js/table_filters.js:105
+#: templates/js/table_filters.js:185 templates/js/table_filters.js:186
msgid "Serial number"
msgstr ""
-#: templates/js/table_filters.js:108 templates/js/table_filters.js:202
+#: templates/js/table_filters.js:109 templates/js/table_filters.js:203
msgid "Batch code"
msgstr ""
-#: templates/js/table_filters.js:118 templates/js/table_filters.js:285
+#: templates/js/table_filters.js:119 templates/js/table_filters.js:286
msgid "Active parts"
msgstr ""
-#: templates/js/table_filters.js:119
+#: templates/js/table_filters.js:120
msgid "Show stock for active parts"
msgstr ""
-#: templates/js/table_filters.js:124
+#: templates/js/table_filters.js:125
msgid "Part is an assembly"
msgstr ""
-#: templates/js/table_filters.js:128
+#: templates/js/table_filters.js:129
msgid "Is allocated"
msgstr ""
-#: templates/js/table_filters.js:129
+#: templates/js/table_filters.js:130
msgid "Item has been allocated"
msgstr ""
-#: templates/js/table_filters.js:134
+#: templates/js/table_filters.js:135
msgid "Include stock in sublocations"
msgstr ""
-#: templates/js/table_filters.js:139
+#: templates/js/table_filters.js:140
msgid "Show stock items which are depleted"
msgstr ""
-#: templates/js/table_filters.js:146
+#: templates/js/table_filters.js:147
msgid "Show stock items which have expired"
msgstr ""
-#: templates/js/table_filters.js:151
+#: templates/js/table_filters.js:152
msgid "Show stock which is close to expiring"
msgstr ""
-#: templates/js/table_filters.js:157
+#: templates/js/table_filters.js:158
msgid "Show items which are in stock"
msgstr ""
-#: templates/js/table_filters.js:161
+#: templates/js/table_filters.js:162
msgid "In Production"
msgstr ""
-#: templates/js/table_filters.js:162
+#: templates/js/table_filters.js:163
msgid "Show items which are in production"
msgstr ""
-#: templates/js/table_filters.js:166
+#: templates/js/table_filters.js:167
msgid "Include Variants"
msgstr ""
-#: templates/js/table_filters.js:167
+#: templates/js/table_filters.js:168
msgid "Include stock items for variant parts"
msgstr ""
-#: templates/js/table_filters.js:172
+#: templates/js/table_filters.js:173
msgid "Show stock items which are installed in another item"
msgstr ""
-#: templates/js/table_filters.js:176
-msgid "Sent to customer"
-msgstr ""
-
-#: templates/js/table_filters.js:177
+#: templates/js/table_filters.js:178
msgid "Show items which have been assigned to a customer"
msgstr ""
-#: templates/js/table_filters.js:197 templates/js/table_filters.js:198
+#: templates/js/table_filters.js:198 templates/js/table_filters.js:199
msgid "Stock status"
msgstr ""
-#: templates/js/table_filters.js:231
+#: templates/js/table_filters.js:232
msgid "Build status"
msgstr ""
-#: templates/js/table_filters.js:250 templates/js/table_filters.js:267
+#: templates/js/table_filters.js:251 templates/js/table_filters.js:268
msgid "Order status"
msgstr ""
-#: templates/js/table_filters.js:255 templates/js/table_filters.js:272
+#: templates/js/table_filters.js:256 templates/js/table_filters.js:273
msgid "Outstanding"
msgstr ""
-#: templates/js/table_filters.js:296
+#: templates/js/table_filters.js:297
msgid "Include parts in subcategories"
msgstr ""
-#: templates/js/table_filters.js:300
+#: templates/js/table_filters.js:301
msgid "Has IPN"
msgstr ""
-#: templates/js/table_filters.js:301
+#: templates/js/table_filters.js:302
msgid "Part has internal part number"
msgstr ""
-#: templates/js/table_filters.js:306
+#: templates/js/table_filters.js:307
msgid "Show active parts"
msgstr ""
-#: templates/js/table_filters.js:314
+#: templates/js/table_filters.js:315
msgid "Stock available"
msgstr ""
-#: templates/js/table_filters.js:330
+#: templates/js/table_filters.js:331
msgid "Starred"
msgstr ""
-#: templates/js/table_filters.js:342
+#: templates/js/table_filters.js:343
msgid "Purchasable"
msgstr ""
@@ -7003,7 +7201,7 @@ msgstr ""
msgid "All"
msgstr ""
-#: templates/modals.html:21 templates/modals.html:46
+#: templates/modals.html:21 templates/modals.html:47
msgid "Form errors exist"
msgstr ""
@@ -7115,31 +7313,47 @@ msgstr ""
msgid "Instance Name"
msgstr ""
-#: templates/stats.html:19
-msgid "Server status"
+#: templates/stats.html:18
+msgid "Database"
msgstr ""
-#: templates/stats.html:22
-msgid "Healthy"
+#: templates/stats.html:26
+msgid "Server is running in debug mode"
msgstr ""
-#: templates/stats.html:24
-msgid "Issues detected"
-msgstr ""
-
-#: templates/stats.html:31
-msgid "Background Worker"
+#: templates/stats.html:33
+msgid "Docker Mode"
msgstr ""
#: templates/stats.html:34
-msgid "Background worker not running"
+msgid "Server is deployed using docker"
msgstr ""
-#: templates/stats.html:42
-msgid "Email Settings"
+#: templates/stats.html:40
+msgid "Server status"
+msgstr ""
+
+#: templates/stats.html:43
+msgid "Healthy"
msgstr ""
#: templates/stats.html:45
+msgid "Issues detected"
+msgstr ""
+
+#: templates/stats.html:52
+msgid "Background Worker"
+msgstr ""
+
+#: templates/stats.html:55
+msgid "Background worker not running"
+msgstr ""
+
+#: templates/stats.html:63
+msgid "Email Settings"
+msgstr ""
+
+#: templates/stats.html:66
msgid "Email settings not configured"
msgstr ""
@@ -7258,3 +7472,4 @@ msgstr ""
#: users/models.py:187
msgid "Permission to delete items"
msgstr ""
+
diff --git a/InvenTree/locale/ja/LC_MESSAGES/django.po b/InvenTree/locale/ja/LC_MESSAGES/django.po
index 23cec9e6fb..fe9b71062e 100644
--- a/InvenTree/locale/ja/LC_MESSAGES/django.po
+++ b/InvenTree/locale/ja/LC_MESSAGES/django.po
@@ -1,9 +1,9 @@
msgid ""
msgstr ""
-"Project-Id-Version: \n"
+"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-05-05 17:33+1000\n"
-"PO-Revision-Date: 2021-04-21 09:33\n"
+"POT-Creation-Date: 2021-05-17 10:46+0000\n"
+"PO-Revision-Date: 2021-05-17 10:47\n"
"Last-Translator: \n"
"Language-Team: Japanese\n"
"Language: ja_JP\n"
@@ -11,6 +11,11 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Crowdin-Project: inventree\n"
+"X-Crowdin-Project-ID: 452300\n"
+"X-Crowdin-Language: ja\n"
+"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
+"X-Crowdin-File-ID: 138\n"
#: InvenTree/api.py:64
msgid "API endpoint not found"
@@ -72,8 +77,8 @@ msgstr ""
msgid "Duplicate serial: {n}"
msgstr ""
-#: InvenTree/helpers.py:384 order/models.py:245 order/models.py:353
-#: stock/views.py:1763
+#: InvenTree/helpers.py:384 order/models.py:245 order/models.py:355
+#: stock/views.py:1795
msgid "Invalid quantity provided"
msgstr ""
@@ -101,7 +106,7 @@ msgstr ""
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr ""
-#: InvenTree/models.py:59 stock/models.py:1662
+#: InvenTree/models.py:59 stock/models.py:1761
msgid "Attachment"
msgstr ""
@@ -117,9 +122,9 @@ msgstr ""
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:1908
+#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:1946
#: report/templates/report/inventree_test_report_base.html:91
-#: templates/js/stock.js:1041
+#: templates/js/stock.js:1146
msgid "User"
msgstr ""
@@ -127,8 +132,8 @@ msgstr ""
msgid "upload date"
msgstr ""
-#: InvenTree/models.py:107 InvenTree/models.py:108 label/models.py:101
-#: part/models.py:686 part/models.py:2049 part/templates/part/params.html:27
+#: InvenTree/models.py:107 InvenTree/models.py:108 label/models.py:102
+#: part/models.py:686 part/models.py:2087 part/templates/part/params.html:27
#: report/models.py:179 templates/InvenTree/search.html:137
#: templates/InvenTree/search.html:289 templates/js/part.js:110
#: templates/js/part.js:553 templates/js/stock.js:944
@@ -136,11 +141,11 @@ msgid "Name"
msgstr ""
#: InvenTree/models.py:114 build/models.py:134
-#: build/templates/build/detail.html:21 company/models.py:342
-#: company/models.py:494 company/templates/company/detail.html:27
+#: build/templates/build/detail.html:21 company/models.py:339
+#: company/models.py:491 company/templates/company/detail.html:27
#: company/templates/company/manufacturer_part_base.html:72
#: company/templates/company/supplier_part_base.html:71
-#: company/templates/company/supplier_part_detail.html:31 label/models.py:108
+#: company/templates/company/supplier_part_detail.html:31 label/models.py:109
#: order/models.py:101 order/templates/order/purchase_order_detail.html:143
#: part/models.py:710 part/templates/part/detail.html:54
#: part/templates/part/set_category.html:14 report/models.py:192
@@ -154,7 +159,7 @@ msgstr ""
#: templates/js/order.js:280 templates/js/part.js:169 templates/js/part.js:252
#: templates/js/part.js:371 templates/js/part.js:565 templates/js/part.js:643
#: templates/js/stock.js:554 templates/js/stock.js:956
-#: templates/js/stock.js:1015
+#: templates/js/stock.js:1001
msgid "Description"
msgstr ""
@@ -166,23 +171,23 @@ msgstr ""
msgid "parent"
msgstr ""
-#: InvenTree/settings.py:491
+#: InvenTree/settings.py:501
msgid "English"
msgstr ""
-#: InvenTree/settings.py:492
+#: InvenTree/settings.py:502
msgid "French"
msgstr ""
-#: InvenTree/settings.py:493
+#: InvenTree/settings.py:503
msgid "German"
msgstr ""
-#: InvenTree/settings.py:494
+#: InvenTree/settings.py:504
msgid "Polish"
msgstr ""
-#: InvenTree/settings.py:495
+#: InvenTree/settings.py:505
msgid "Turkish"
msgstr ""
@@ -198,60 +203,136 @@ msgstr ""
msgid "InvenTree system health checks failed"
msgstr ""
-#: InvenTree/status_codes.py:102 InvenTree/status_codes.py:143
-#: InvenTree/status_codes.py:236
+#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:145
+#: InvenTree/status_codes.py:314
msgid "Pending"
msgstr ""
-#: InvenTree/status_codes.py:103
+#: InvenTree/status_codes.py:105
msgid "Placed"
msgstr ""
-#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:239
+#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:317
msgid "Complete"
msgstr ""
-#: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145
-#: InvenTree/status_codes.py:238
+#: InvenTree/status_codes.py:107 InvenTree/status_codes.py:147
+#: InvenTree/status_codes.py:316
msgid "Cancelled"
msgstr ""
-#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146
-#: InvenTree/status_codes.py:188
+#: InvenTree/status_codes.py:108 InvenTree/status_codes.py:148
+#: InvenTree/status_codes.py:190
msgid "Lost"
msgstr ""
-#: InvenTree/status_codes.py:107 InvenTree/status_codes.py:147
-#: InvenTree/status_codes.py:190
+#: InvenTree/status_codes.py:109 InvenTree/status_codes.py:149
+#: InvenTree/status_codes.py:192
msgid "Returned"
msgstr ""
-#: InvenTree/status_codes.py:144
+#: InvenTree/status_codes.py:146
#: order/templates/order/sales_order_base.html:124
msgid "Shipped"
msgstr ""
-#: InvenTree/status_codes.py:184
+#: InvenTree/status_codes.py:186
msgid "OK"
msgstr ""
-#: InvenTree/status_codes.py:185
+#: InvenTree/status_codes.py:187
msgid "Attention needed"
msgstr ""
-#: InvenTree/status_codes.py:186
+#: InvenTree/status_codes.py:188
msgid "Damaged"
msgstr ""
-#: InvenTree/status_codes.py:187
+#: InvenTree/status_codes.py:189
msgid "Destroyed"
msgstr ""
-#: InvenTree/status_codes.py:189
+#: InvenTree/status_codes.py:191
msgid "Rejected"
msgstr ""
-#: InvenTree/status_codes.py:237
+#: InvenTree/status_codes.py:272
+msgid "Legacy stock tracking entry"
+msgstr ""
+
+#: InvenTree/status_codes.py:274
+msgid "Stock item created"
+msgstr ""
+
+#: InvenTree/status_codes.py:276
+msgid "Edited stock item"
+msgstr ""
+
+#: InvenTree/status_codes.py:277
+msgid "Assigned serial number"
+msgstr ""
+
+#: InvenTree/status_codes.py:279
+msgid "Stock counted"
+msgstr ""
+
+#: InvenTree/status_codes.py:280
+msgid "Stock manually added"
+msgstr ""
+
+#: InvenTree/status_codes.py:281
+msgid "Stock manually removed"
+msgstr ""
+
+#: InvenTree/status_codes.py:283
+msgid "Location changed"
+msgstr ""
+
+#: InvenTree/status_codes.py:285
+msgid "Installed into assembly"
+msgstr ""
+
+#: InvenTree/status_codes.py:286
+msgid "Removed from assembly"
+msgstr ""
+
+#: InvenTree/status_codes.py:288
+msgid "Installed component item"
+msgstr ""
+
+#: InvenTree/status_codes.py:289
+msgid "Removed component item"
+msgstr ""
+
+#: InvenTree/status_codes.py:291
+msgid "Split from parent item"
+msgstr ""
+
+#: InvenTree/status_codes.py:292
+msgid "Split child item"
+msgstr ""
+
+#: InvenTree/status_codes.py:294 templates/js/table_filters.js:177
+msgid "Sent to customer"
+msgstr ""
+
+#: InvenTree/status_codes.py:295
+msgid "Returned from customer"
+msgstr ""
+
+#: InvenTree/status_codes.py:297
+msgid "Build order output created"
+msgstr ""
+
+#: InvenTree/status_codes.py:298
+msgid "Build order output completed"
+msgstr ""
+
+#: InvenTree/status_codes.py:300
+msgid "Received against purchase order"
+msgstr ""
+
+#: InvenTree/status_codes.py:315
msgid "Production"
msgstr ""
@@ -270,7 +351,8 @@ msgstr ""
#: InvenTree/validators.py:77 InvenTree/validators.py:91
#: InvenTree/validators.py:105
-msgid "Reference must match pattern"
+#, python-brace-format
+msgid "Reference must match pattern {pattern}"
msgstr ""
#: InvenTree/validators.py:113
@@ -376,35 +458,35 @@ msgstr ""
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1241
+#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1245
#: build/templates/build/allocation_card.html:23
#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:123
-#: build/templates/build/detail.html:31 common/models.py:703
+#: build/templates/build/detail.html:31 common/models.py:705
#: company/forms.py:176 company/templates/company/supplier_part_pricing.html:77
-#: order/forms.py:188 order/forms.py:205 order/forms.py:239 order/forms.py:261
-#: order/forms.py:278 order/models.py:603 order/models.py:794
+#: order/forms.py:188 order/forms.py:205 order/forms.py:240 order/forms.py:262
+#: order/forms.py:279 order/models.py:614 order/models.py:815
+#: order/templates/order/order_wizard/match_parts.html:29
#: order/templates/order/order_wizard/select_parts.html:32
#: order/templates/order/purchase_order_detail.html:175
#: order/templates/order/sales_order_detail.html:70
#: order/templates/order/sales_order_detail.html:77
-#: order/templates/order/sales_order_detail.html:159
-#: order/templates/order/sales_order_detail.html:224 part/forms.py:342
-#: part/forms.py:371 part/forms.py:387 part/models.py:2178
+#: order/templates/order/sales_order_detail.html:162
+#: order/templates/order/sales_order_detail.html:230 part/forms.py:342
+#: part/forms.py:371 part/forms.py:387 part/models.py:2216
#: part/templates/part/allocation.html:19
#: part/templates/part/allocation.html:53
-#: part/templates/part/part_pricing.html:11
-#: part/templates/part/part_pricing.html:18
+#: part/templates/part/part_pricing.html:13
#: part/templates/part/sale_prices.html:85
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:77
-#: stock/forms.py:175 stock/forms.py:308 stock/models.py:1566
-#: stock/templates/stock/item_base.html:244
+#: stock/forms.py:175 stock/forms.py:308
+#: stock/templates/stock/item_base.html:250
#: stock/templates/stock/stock_adjust.html:18 templates/js/barcode.js:364
#: templates/js/bom.js:205 templates/js/build.js:476 templates/js/build.js:1014
-#: templates/js/stock.js:1033 templates/js/stock.js:1271
+#: templates/js/stock.js:1131 templates/js/stock.js:1393
msgid "Quantity"
msgstr ""
@@ -416,7 +498,7 @@ msgstr ""
msgid "Enter quantity for build output"
msgstr ""
-#: build/forms.py:95 order/forms.py:233 stock/forms.py:118
+#: build/forms.py:95 order/forms.py:234 stock/forms.py:118
msgid "Serial Numbers"
msgstr ""
@@ -446,11 +528,11 @@ msgstr ""
#: build/forms.py:210 build/templates/build/auto_allocate.html:18
#: order/forms.py:82 stock/forms.py:347
-#: stock/templates/stock/item_base.html:274
+#: stock/templates/stock/item_base.html:280
#: stock/templates/stock/stock_adjust.html:17
#: templates/InvenTree/search.html:260 templates/js/barcode.js:363
#: templates/js/barcode.js:531 templates/js/build.js:490
-#: templates/js/stock.js:641
+#: templates/js/stock.js:641 templates/js/stock.js:1023
msgid "Location"
msgstr ""
@@ -459,12 +541,13 @@ msgid "Location of completed parts"
msgstr ""
#: build/forms.py:215 build/templates/build/build_base.html:128
-#: build/templates/build/detail.html:59 order/models.py:455
+#: build/templates/build/detail.html:59 order/models.py:466
#: order/templates/order/receive_parts.html:24
-#: stock/templates/stock/item_base.html:392 templates/InvenTree/search.html:252
+#: stock/templates/stock/item_base.html:398 templates/InvenTree/search.html:252
#: templates/js/barcode.js:119 templates/js/build.js:770
#: templates/js/order.js:187 templates/js/order.js:285
-#: templates/js/stock.js:628 templates/js/stock.js:1279
+#: templates/js/stock.js:628 templates/js/stock.js:1100
+#: templates/js/stock.js:1401
msgid "Status"
msgstr ""
@@ -517,9 +600,9 @@ msgstr ""
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:127 order/models.py:99 order/models.py:605
+#: build/models.py:127 order/models.py:99 order/models.py:616
#: order/templates/order/purchase_order_detail.html:170
-#: order/templates/order/sales_order_detail.html:219 part/models.py:2187
+#: order/templates/order/sales_order_detail.html:225 part/models.py:2225
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92 templates/js/bom.js:197
#: templates/js/build.js:565 templates/js/build.js:1008
@@ -541,16 +624,16 @@ msgstr ""
#: build/models.py:152 build/templates/build/auto_allocate.html:16
#: build/templates/build/build_base.html:118
-#: build/templates/build/detail.html:26 company/models.py:688
-#: order/models.py:647 order/models.py:679
+#: build/templates/build/detail.html:26 company/models.py:622
+#: order/models.py:658 order/models.py:691
#: order/templates/order/order_wizard/select_parts.html:30
#: order/templates/order/purchase_order_detail.html:131
#: order/templates/order/receive_parts.html:19
-#: order/templates/order/sales_order_detail.html:207 part/models.py:321
-#: part/models.py:1876 part/models.py:1888 part/models.py:1906
-#: part/models.py:1981 part/models.py:2077 part/models.py:2162
+#: order/templates/order/sales_order_detail.html:213 part/models.py:321
+#: part/models.py:1914 part/models.py:1926 part/models.py:1944
+#: part/models.py:2019 part/models.py:2115 part/models.py:2200
#: part/templates/part/part_app_base.html:8
-#: part/templates/part/part_pricing.html:14 part/templates/part/related.html:29
+#: part/templates/part/part_pricing.html:9 part/templates/part/related.html:29
#: part/templates/part/set_category.html:13
#: report/templates/report/inventree_build_order_base.html:110
#: report/templates/report/inventree_po_report.html:90
@@ -560,7 +643,7 @@ msgstr ""
#: templates/js/build.js:741 templates/js/build.js:981
#: templates/js/company.js:140 templates/js/company.js:238
#: templates/js/part.js:233 templates/js/part.js:338 templates/js/stock.js:523
-#: templates/js/stock.js:1343
+#: templates/js/stock.js:1465
msgid "Part"
msgstr ""
@@ -616,7 +699,7 @@ msgstr ""
msgid "Build status code"
msgstr ""
-#: build/models.py:212 stock/models.py:432
+#: build/models.py:212 stock/models.py:464
msgid "Batch Code"
msgstr ""
@@ -629,7 +712,7 @@ msgstr ""
msgid "Creation Date"
msgstr ""
-#: build/models.py:223 order/models.py:461
+#: build/models.py:223 order/models.py:472
msgid "Target completion date"
msgstr ""
@@ -667,28 +750,28 @@ msgstr ""
#: company/templates/company/supplier_part_base.html:78
#: company/templates/company/supplier_part_detail.html:28
#: part/templates/part/detail.html:83 part/templates/part/part_base.html:101
-#: stock/models.py:426 stock/templates/stock/item_base.html:334
+#: stock/models.py:458 stock/templates/stock/item_base.html:340
msgid "External Link"
msgstr ""
-#: build/models.py:257 part/models.py:744 stock/models.py:428
+#: build/models.py:257 part/models.py:744 stock/models.py:460
msgid "Link to external URL"
msgstr ""
#: build/models.py:261 build/templates/build/navbar.html:53
-#: company/models.py:135 company/models.py:501
+#: company/models.py:132 company/models.py:498
#: company/templates/company/navbar.html:70
#: company/templates/company/navbar.html:73 order/models.py:123
-#: order/models.py:607 order/templates/order/po_navbar.html:29
+#: order/models.py:618 order/templates/order/po_navbar.html:29
#: order/templates/order/po_navbar.html:32
#: order/templates/order/purchase_order_detail.html:209
-#: order/templates/order/sales_order_detail.html:264
+#: order/templates/order/sales_order_detail.html:278
#: order/templates/order/so_navbar.html:33
#: order/templates/order/so_navbar.html:36 part/models.py:871
#: part/templates/part/navbar.html:128
#: report/templates/report/inventree_build_order_base.html:173
#: stock/forms.py:173 stock/forms.py:317 stock/forms.py:349 stock/forms.py:377
-#: stock/models.py:498 stock/models.py:1558 stock/models.py:1668
+#: stock/models.py:530 stock/models.py:1665 stock/models.py:1767
#: stock/templates/stock/navbar.html:57 templates/js/barcode.js:37
#: templates/js/bom.js:333 templates/js/stock.js:128 templates/js/stock.js:671
msgid "Notes"
@@ -710,75 +793,71 @@ msgstr ""
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:838
-msgid "Completed build output"
-msgstr ""
-
-#: build/models.py:1132
+#: build/models.py:1136
msgid "BuildItem must be unique for build, stock_item and install_into"
msgstr ""
-#: build/models.py:1157
-msgid "Build item must specify a build output, as master part is marked as trackable"
-msgstr ""
-
#: build/models.py:1161
-#, python-brace-format
-msgid "Selected stock item not found in BOM for part '{p}'"
+msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
#: build/models.py:1165
#, python-brace-format
+msgid "Selected stock item not found in BOM for part '{p}'"
+msgstr ""
+
+#: build/models.py:1169
+#, python-brace-format
msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
msgstr ""
-#: build/models.py:1172 order/models.py:768
+#: build/models.py:1176 order/models.py:789
msgid "StockItem is over-allocated"
msgstr ""
-#: build/models.py:1176 order/models.py:771
+#: build/models.py:1180 order/models.py:792
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1180
+#: build/models.py:1184
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1220 stock/templates/stock/item_base.html:306
+#: build/models.py:1224 stock/templates/stock/item_base.html:312
#: templates/InvenTree/search.html:183 templates/js/build.js:714
#: templates/navbar.html:29
msgid "Build"
msgstr ""
-#: build/models.py:1221
+#: build/models.py:1225
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1228 part/templates/part/allocation.html:18
+#: build/models.py:1232 part/templates/part/allocation.html:18
#: part/templates/part/allocation.html:24
#: part/templates/part/allocation.html:31
#: part/templates/part/allocation.html:49
#: stock/templates/stock/item_base.html:8
#: stock/templates/stock/item_base.html:93
-#: stock/templates/stock/item_base.html:328
+#: stock/templates/stock/item_base.html:334
#: stock/templates/stock/stock_adjust.html:16 templates/js/build.js:831
-#: templates/js/stock.js:1004 templates/js/stock.js:1262
+#: templates/js/stock.js:1082 templates/js/stock.js:1384
msgid "Stock Item"
msgstr ""
-#: build/models.py:1229
+#: build/models.py:1233
msgid "Source stock item"
msgstr ""
-#: build/models.py:1242
+#: build/models.py:1246
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1250
+#: build/models.py:1254
msgid "Install into"
msgstr ""
-#: build/models.py:1251
+#: build/models.py:1255
msgid "Destination stock item"
msgstr ""
@@ -812,7 +891,7 @@ msgstr ""
#: build/templates/build/allocate.html:30
#: company/templates/company/detail_manufacturer_part.html:33
-#: company/templates/company/detail_supplier_part.html:32 order/views.py:795
+#: company/templates/company/detail_supplier_part.html:32 order/views.py:986
#: part/templates/part/category.html:127
msgid "Order Parts"
msgstr ""
@@ -832,9 +911,9 @@ msgstr ""
#: build/templates/build/allocation_card.html:21
#: build/templates/build/complete_output.html:46
#: order/templates/order/sales_order_detail.html:75
-#: order/templates/order/sales_order_detail.html:157
+#: order/templates/order/sales_order_detail.html:160
#: report/templates/report/inventree_test_report_base.html:75
-#: stock/models.py:420 stock/templates/stock/item_base.html:238
+#: stock/models.py:452 stock/templates/stock/item_base.html:244
#: templates/js/build.js:474
msgid "Serial Number"
msgstr ""
@@ -897,7 +976,7 @@ msgstr ""
#: order/templates/order/order_base.html:26
#: order/templates/order/sales_order_base.html:35
#: part/templates/part/category.html:18 part/templates/part/part_base.html:29
-#: stock/templates/stock/item_base.html:118
+#: stock/templates/stock/item_base.html:124
#: stock/templates/stock/location.html:31
msgid "Admin view"
msgstr ""
@@ -908,8 +987,8 @@ msgstr ""
#: order/templates/order/order_base.html:86
#: order/templates/order/sales_order_base.html:41
#: order/templates/order/sales_order_base.html:86
-#: templates/js/table_filters.js:240 templates/js/table_filters.js:259
-#: templates/js/table_filters.js:276
+#: templates/js/table_filters.js:241 templates/js/table_filters.js:260
+#: templates/js/table_filters.js:277
msgid "Overdue"
msgstr ""
@@ -955,14 +1034,14 @@ msgid "Progress"
msgstr ""
#: build/templates/build/build_base.html:160
-#: build/templates/build/detail.html:84 order/models.py:677
+#: build/templates/build/detail.html:84 order/models.py:689
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:33
#: order/templates/order/sales_order_ship.html:25
#: part/templates/part/allocation.html:30
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
-#: stock/templates/stock/item_base.html:268 templates/js/order.js:245
+#: stock/templates/stock/item_base.html:274 templates/js/order.js:245
msgid "Sales Order"
msgstr ""
@@ -1112,9 +1191,9 @@ msgid "Destination location not specified"
msgstr ""
#: build/templates/build/detail.html:70
-#: stock/templates/stock/item_base.html:292 templates/js/stock.js:636
-#: templates/js/stock.js:1286 templates/js/table_filters.js:107
-#: templates/js/table_filters.js:201
+#: stock/templates/stock/item_base.html:298 templates/js/stock.js:636
+#: templates/js/stock.js:1408 templates/js/table_filters.js:108
+#: templates/js/table_filters.js:202
msgid "Batch"
msgstr ""
@@ -1168,6 +1247,7 @@ msgstr ""
#: company/templates/company/navbar.html:15
#: order/templates/order/po_navbar.html:14
#: order/templates/order/so_navbar.html:15 part/templates/part/navbar.html:15
+#: templates/js/stock.js:1016
msgid "Details"
msgstr ""
@@ -1202,7 +1282,8 @@ msgstr ""
#: build/templates/build/notes.html:26 company/templates/company/notes.html:24
#: order/templates/order/order_notes.html:27
#: order/templates/order/sales_order_notes.html:29
-#: part/templates/part/notes.html:27 stock/templates/stock/item_base.html:470
+#: part/templates/part/notes.html:27 stock/templates/stock/item_base.html:477
+#: stock/templates/stock/item_base.html:487
#: stock/templates/stock/item_notes.html:26
msgid "Save"
msgstr ""
@@ -1231,7 +1312,7 @@ msgstr ""
msgid "Maximum output quantity is "
msgstr ""
-#: build/views.py:184 stock/models.py:969 stock/views.py:1789
+#: build/views.py:184 stock/views.py:1821
msgid "Serial numbers already exist"
msgstr ""
@@ -1348,372 +1429,405 @@ msgstr ""
msgid "Add Build Order Attachment"
msgstr ""
-#: build/views.py:1083 order/views.py:110 order/views.py:162 part/views.py:172
+#: build/views.py:1083 order/views.py:115 order/views.py:167 part/views.py:172
#: stock/views.py:277
msgid "Added attachment"
msgstr ""
-#: build/views.py:1119 order/views.py:189 order/views.py:210
+#: build/views.py:1119 order/views.py:194 order/views.py:215
msgid "Edit Attachment"
msgstr ""
-#: build/views.py:1129 order/views.py:193 order/views.py:214
+#: build/views.py:1129 order/views.py:198 order/views.py:219
msgid "Attachment updated"
msgstr ""
-#: build/views.py:1139 order/views.py:229 order/views.py:243
+#: build/views.py:1139 order/views.py:234 order/views.py:248
msgid "Delete Attachment"
msgstr ""
-#: build/views.py:1144 order/views.py:235 order/views.py:249 stock/views.py:333
+#: build/views.py:1144 order/views.py:240 order/views.py:254 stock/views.py:333
msgid "Deleted attachment"
msgstr ""
-#: common/models.py:56
-msgid "InvenTree Instance Name"
+#: common/files.py:64
+msgid "Unsupported file format: {ext.upper()}"
+msgstr ""
+
+#: common/files.py:69
+msgid "Error reading file (invalid format)"
+msgstr ""
+
+#: common/files.py:71
+msgid "Error reading file (incorrect dimension)"
+msgstr ""
+
+#: common/files.py:73
+msgid "Error reading file (data could be corrupted)"
+msgstr ""
+
+#: common/forms.py:38 templates/attachment_table.html:15
+msgid "File"
+msgstr ""
+
+#: common/forms.py:39
+msgid "Select file to upload"
+msgstr ""
+
+#: common/forms.py:54
+msgid "{name.title()} File"
+msgstr ""
+
+#: common/forms.py:55
+#, python-brace-format
+msgid "Select {name} file to upload"
msgstr ""
#: common/models.py:58
+msgid "InvenTree Instance Name"
+msgstr ""
+
+#: common/models.py:60
msgid "String descriptor for the server instance"
msgstr ""
-#: common/models.py:62
+#: common/models.py:64
msgid "Use instance name"
msgstr ""
-#: common/models.py:63
+#: common/models.py:65
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:69 company/models.py:97 company/models.py:98
+#: common/models.py:71 company/models.py:94 company/models.py:95
msgid "Company name"
msgstr ""
-#: common/models.py:70
+#: common/models.py:72
msgid "Internal company name"
msgstr ""
-#: common/models.py:75
+#: common/models.py:77
msgid "Base URL"
msgstr ""
-#: common/models.py:76
+#: common/models.py:78
msgid "Base URL for server instance"
msgstr ""
-#: common/models.py:82
+#: common/models.py:84
msgid "Default Currency"
msgstr ""
-#: common/models.py:83
+#: common/models.py:85
msgid "Default currency"
msgstr ""
-#: common/models.py:89
+#: common/models.py:91
msgid "Download from URL"
msgstr ""
-#: common/models.py:90
+#: common/models.py:92
msgid "Allow download of remote images and files from external URL"
msgstr ""
-#: common/models.py:96
+#: common/models.py:98
msgid "Barcode Support"
msgstr ""
-#: common/models.py:97
+#: common/models.py:99
msgid "Enable barcode scanner support"
msgstr ""
-#: common/models.py:103
+#: common/models.py:105
msgid "IPN Regex"
msgstr ""
-#: common/models.py:104
+#: common/models.py:106
msgid "Regular expression pattern for matching Part IPN"
msgstr ""
-#: common/models.py:108
+#: common/models.py:110
msgid "Allow Duplicate IPN"
msgstr ""
-#: common/models.py:109
+#: common/models.py:111
msgid "Allow multiple parts to share the same IPN"
msgstr ""
-#: common/models.py:115
+#: common/models.py:117
msgid "Allow Editing IPN"
msgstr ""
-#: common/models.py:116
+#: common/models.py:118
msgid "Allow changing the IPN value while editing a part"
msgstr ""
-#: common/models.py:122
+#: common/models.py:124
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:123
+#: common/models.py:125
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:129
+#: common/models.py:131
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:130
+#: common/models.py:132
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:136
+#: common/models.py:138
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:137
+#: common/models.py:139
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:143
+#: common/models.py:145
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:144
+#: common/models.py:146
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:150
+#: common/models.py:152
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:151
+#: common/models.py:153
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:157 part/models.py:2079 part/templates/part/detail.html:160
-#: report/models.py:185 stock/forms.py:259 templates/js/table_filters.js:24
-#: templates/js/table_filters.js:310
+#: common/models.py:159 part/models.py:2117 part/templates/part/detail.html:160
+#: report/models.py:185 stock/forms.py:259 templates/js/table_filters.js:25
+#: templates/js/table_filters.js:311
msgid "Template"
msgstr ""
-#: common/models.py:158
+#: common/models.py:160
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:164 part/models.py:834 part/templates/part/detail.html:170
-#: templates/js/table_filters.js:123 templates/js/table_filters.js:322
+#: common/models.py:166 part/models.py:834 part/templates/part/detail.html:170
+#: templates/js/table_filters.js:124 templates/js/table_filters.js:323
msgid "Assembly"
msgstr ""
-#: common/models.py:165
+#: common/models.py:167
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:171 part/models.py:840 part/templates/part/detail.html:180
-#: templates/js/table_filters.js:326
+#: common/models.py:173 part/models.py:840 part/templates/part/detail.html:180
+#: templates/js/table_filters.js:327
msgid "Component"
msgstr ""
-#: common/models.py:172
+#: common/models.py:174
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:178 part/models.py:851 part/templates/part/detail.html:200
+#: common/models.py:180 part/models.py:851 part/templates/part/detail.html:200
msgid "Purchaseable"
msgstr ""
-#: common/models.py:179
+#: common/models.py:181
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:185 part/models.py:856 part/templates/part/detail.html:210
-#: templates/js/table_filters.js:334
+#: common/models.py:187 part/models.py:856 part/templates/part/detail.html:210
+#: templates/js/table_filters.js:335
msgid "Salable"
msgstr ""
-#: common/models.py:186
+#: common/models.py:188
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:192 part/models.py:846 part/templates/part/detail.html:190
-#: templates/js/table_filters.js:32 templates/js/table_filters.js:338
+#: common/models.py:194 part/models.py:846 part/templates/part/detail.html:190
+#: templates/js/table_filters.js:33 templates/js/table_filters.js:339
msgid "Trackable"
msgstr ""
-#: common/models.py:193
+#: common/models.py:195
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:199 part/models.py:866 part/templates/part/detail.html:150
-#: templates/js/table_filters.js:28
+#: common/models.py:201 part/models.py:866 part/templates/part/detail.html:150
+#: templates/js/table_filters.js:29
msgid "Virtual"
msgstr ""
-#: common/models.py:200
+#: common/models.py:202
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:206
+#: common/models.py:208
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:207
+#: common/models.py:209
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:213
+#: common/models.py:215 templates/stats.html:25
msgid "Debug Mode"
msgstr ""
-#: common/models.py:214
+#: common/models.py:216
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:220
+#: common/models.py:222
msgid "Page Size"
msgstr ""
-#: common/models.py:221
+#: common/models.py:223
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:231
+#: common/models.py:233
msgid "Test Reports"
msgstr ""
-#: common/models.py:232
+#: common/models.py:234
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:238
+#: common/models.py:240
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:239
+#: common/models.py:241
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:245
+#: common/models.py:247
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:246
+#: common/models.py:248
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:252
+#: common/models.py:254
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:253
+#: common/models.py:255
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:255 part/templates/part/detail.html:121
+#: common/models.py:257 part/templates/part/detail.html:121
msgid "days"
msgstr ""
-#: common/models.py:260
+#: common/models.py:262
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:261
+#: common/models.py:263
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:267
+#: common/models.py:269
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:268
+#: common/models.py:270
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:274
+#: common/models.py:276
msgid "Group by Part"
msgstr ""
-#: common/models.py:275
+#: common/models.py:277
msgid "Group stock items by part reference in table views"
msgstr ""
-#: common/models.py:281
+#: common/models.py:283
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:282
+#: common/models.py:284
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:288
+#: common/models.py:290
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:289
+#: common/models.py:291
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:294
+#: common/models.py:296
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:295
+#: common/models.py:297
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:299
+#: common/models.py:301
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:300
+#: common/models.py:302
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:305
+#: common/models.py:307
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:306
+#: common/models.py:308
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:529
+#: common/models.py:531
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:531
+#: common/models.py:533
msgid "Settings value"
msgstr ""
-#: common/models.py:566
+#: common/models.py:568
msgid "Must be an integer value"
msgstr ""
-#: common/models.py:589
+#: common/models.py:591
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:600
+#: common/models.py:602
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:623
+#: common/models.py:625
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:704 company/forms.py:177
+#: common/models.py:706 company/forms.py:177
msgid "Price break quantity"
msgstr ""
-#: common/models.py:712 company/templates/company/supplier_part_pricing.html:82
+#: common/models.py:714 company/templates/company/supplier_part_pricing.html:82
#: part/templates/part/sale_prices.html:90 templates/js/bom.js:255
msgid "Price"
msgstr ""
-#: common/models.py:713
+#: common/models.py:715
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:736
+#: common/models.py:804
msgid "Default"
msgstr ""
@@ -1721,24 +1835,42 @@ msgstr ""
msgid "Current value"
msgstr ""
-#: common/views.py:25
+#: common/views.py:32
msgid "Change Setting"
msgstr ""
-#: common/views.py:94
+#: common/views.py:101
msgid "Supplied value is not allowed"
msgstr ""
-#: common/views.py:103
+#: common/views.py:110
msgid "Supplied value must be a boolean"
msgstr ""
-#: company/forms.py:38 company/models.py:145
+#: common/views.py:184 order/templates/order/order_wizard/po_upload.html:42
+#: order/views.py:582 part/templates/part/bom_upload/upload_file.html:27
+msgid "Upload File"
+msgstr ""
+
+#: common/views.py:185 order/templates/order/order_wizard/match_fields.html:52
+#: order/views.py:583 part/templates/part/bom_upload/select_fields.html:58
+msgid "Match Fields"
+msgstr ""
+
+#: common/views.py:186
+msgid "Match Items"
+msgstr ""
+
+#: common/views.py:479
+msgid "Fields matching failed"
+msgstr ""
+
+#: company/forms.py:38 company/models.py:142
#: company/templates/company/detail.html:42
msgid "Currency"
msgstr ""
-#: company/forms.py:39 company/models.py:147
+#: company/forms.py:39 company/models.py:144
msgid "Default currency used for this company"
msgstr ""
@@ -1758,216 +1890,216 @@ msgstr ""
msgid "Single quantity price"
msgstr ""
-#: company/forms.py:128 company/models.py:324
+#: company/forms.py:128 company/models.py:321
msgid "Select manufacturer"
msgstr ""
-#: company/forms.py:134 company/models.py:331
+#: company/forms.py:134 company/models.py:328
msgid "Manufacturer Part Number"
msgstr ""
-#: company/forms.py:136 company/models.py:330
+#: company/forms.py:136 company/models.py:327
#: company/templates/company/manufacturer_part_base.html:89
#: company/templates/company/manufacturer_part_detail.html:26
-#: company/templates/company/supplier_part_base.html:101
+#: company/templates/company/supplier_part_base.html:102
#: company/templates/company/supplier_part_detail.html:35
#: order/templates/order/purchase_order_detail.html:158 part/bom.py:171
#: part/bom.py:242 templates/js/company.js:181 templates/js/company.js:307
msgid "MPN"
msgstr ""
-#: company/models.py:102
+#: company/models.py:99
msgid "Company description"
msgstr ""
-#: company/models.py:103
+#: company/models.py:100
msgid "Description of the company"
msgstr ""
-#: company/models.py:107 company/templates/company/company_base.html:70
+#: company/models.py:104 company/templates/company/company_base.html:70
#: company/templates/company/detail.html:33 templates/js/company.js:60
msgid "Website"
msgstr ""
-#: company/models.py:107
+#: company/models.py:104
msgid "Company website URL"
msgstr ""
-#: company/models.py:110 company/templates/company/company_base.html:77
+#: company/models.py:107 company/templates/company/company_base.html:77
msgid "Address"
msgstr ""
-#: company/models.py:111
+#: company/models.py:108
msgid "Company address"
msgstr ""
-#: company/models.py:114
+#: company/models.py:111
msgid "Phone number"
msgstr ""
-#: company/models.py:115
+#: company/models.py:112
msgid "Contact phone number"
msgstr ""
-#: company/models.py:118 company/templates/company/company_base.html:91
+#: company/models.py:115 company/templates/company/company_base.html:91
msgid "Email"
msgstr ""
-#: company/models.py:118
+#: company/models.py:115
msgid "Contact email address"
msgstr ""
-#: company/models.py:121 company/templates/company/company_base.html:98
+#: company/models.py:118 company/templates/company/company_base.html:98
msgid "Contact"
msgstr ""
-#: company/models.py:122
+#: company/models.py:119
msgid "Point of contact"
msgstr ""
-#: company/models.py:124 company/models.py:336 company/models.py:488
+#: company/models.py:121 company/models.py:333 company/models.py:485
#: order/models.py:103 part/models.py:743
#: report/templates/report/inventree_build_order_base.html:165
-#: stock/models.py:1560 templates/js/company.js:188 templates/js/company.js:318
+#: templates/js/company.js:188 templates/js/company.js:318
#: templates/js/part.js:431
msgid "Link"
msgstr ""
-#: company/models.py:124
+#: company/models.py:121
msgid "Link to external company information"
msgstr ""
-#: company/models.py:132 part/models.py:753
+#: company/models.py:129 part/models.py:753
msgid "Image"
msgstr ""
-#: company/models.py:137
+#: company/models.py:134
msgid "is customer"
msgstr ""
-#: company/models.py:137
+#: company/models.py:134
msgid "Do you sell items to this company?"
msgstr ""
-#: company/models.py:139
+#: company/models.py:136
msgid "is supplier"
msgstr ""
-#: company/models.py:139
+#: company/models.py:136
msgid "Do you purchase items from this company?"
msgstr ""
-#: company/models.py:141
+#: company/models.py:138
msgid "is manufacturer"
msgstr ""
-#: company/models.py:141
+#: company/models.py:138
msgid "Does this company manufacture parts?"
msgstr ""
-#: company/models.py:308 company/models.py:459 stock/models.py:373
-#: stock/templates/stock/item_base.html:224
+#: company/models.py:305 company/models.py:456 stock/models.py:405
+#: stock/templates/stock/item_base.html:230
msgid "Base Part"
msgstr ""
-#: company/models.py:312 company/models.py:463 order/views.py:1384
+#: company/models.py:309 company/models.py:460 order/views.py:1587
msgid "Select part"
msgstr ""
-#: company/models.py:323 company/templates/company/detail.html:57
+#: company/models.py:320 company/templates/company/detail.html:57
#: company/templates/company/manufacturer_part_base.html:85
#: company/templates/company/manufacturer_part_detail.html:25
#: company/templates/company/supplier_part_base.html:94
#: company/templates/company/supplier_part_detail.html:34 part/bom.py:170
-#: part/bom.py:241 stock/templates/stock/item_base.html:341
+#: part/bom.py:241 stock/templates/stock/item_base.html:347
#: templates/js/company.js:44 templates/js/company.js:165
#: templates/js/company.js:289
msgid "Manufacturer"
msgstr ""
-#: company/models.py:337
+#: company/models.py:334
msgid "URL for external manufacturer part link"
msgstr ""
-#: company/models.py:343
+#: company/models.py:340
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:469 company/templates/company/detail.html:62
+#: company/models.py:466 company/templates/company/detail.html:62
#: company/templates/company/supplier_part_base.html:84
#: company/templates/company/supplier_part_detail.html:25 order/models.py:190
#: order/templates/order/order_base.html:92
#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:175
-#: part/bom.py:286 stock/templates/stock/item_base.html:353
+#: part/bom.py:286 stock/templates/stock/item_base.html:359
#: templates/js/company.js:48 templates/js/company.js:263
#: templates/js/order.js:170
msgid "Supplier"
msgstr ""
-#: company/models.py:470
+#: company/models.py:467
msgid "Select supplier"
msgstr ""
-#: company/models.py:475 company/templates/company/supplier_part_base.html:88
+#: company/models.py:472 company/templates/company/supplier_part_base.html:88
#: company/templates/company/supplier_part_detail.html:26
#: order/templates/order/purchase_order_detail.html:149 part/bom.py:176
#: part/bom.py:287
msgid "SKU"
msgstr ""
-#: company/models.py:476
+#: company/models.py:473
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:482
+#: company/models.py:479
#: company/templates/company/manufacturer_part_base.html:6
#: company/templates/company/manufacturer_part_base.html:19
-#: stock/templates/stock/item_base.html:346
+#: stock/templates/stock/item_base.html:352
msgid "Manufacturer Part"
msgstr ""
-#: company/models.py:483
+#: company/models.py:480
msgid "Select manufacturer part"
msgstr ""
-#: company/models.py:489
+#: company/models.py:486
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:495
+#: company/models.py:492
msgid "Supplier part description"
msgstr ""
-#: company/models.py:500 company/templates/company/supplier_part_base.html:115
-#: company/templates/company/supplier_part_detail.html:38 part/models.py:2190
+#: company/models.py:497 company/templates/company/supplier_part_base.html:116
+#: company/templates/company/supplier_part_detail.html:38 part/models.py:2228
#: report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr ""
-#: company/models.py:504
+#: company/models.py:501 part/models.py:1614
msgid "base cost"
msgstr ""
-#: company/models.py:504
+#: company/models.py:501 part/models.py:1614
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:506 company/templates/company/supplier_part_base.html:108
-#: stock/models.py:397 stock/templates/stock/item_base.html:299
+#: company/models.py:503 company/templates/company/supplier_part_base.html:109
+#: stock/models.py:429 stock/templates/stock/item_base.html:305
#: templates/js/stock.js:667
msgid "Packaging"
msgstr ""
-#: company/models.py:506
+#: company/models.py:503
msgid "Part packaging"
msgstr ""
-#: company/models.py:508
+#: company/models.py:505 part/models.py:1616
msgid "multiple"
msgstr ""
-#: company/models.py:508
+#: company/models.py:505
msgid "Order multiple"
msgstr ""
@@ -1993,7 +2125,7 @@ msgstr ""
msgid "Download image from URL"
msgstr ""
-#: company/templates/company/company_base.html:46 order/views.py:306
+#: company/templates/company/company_base.html:46 order/views.py:311
msgid "Create Purchase Order"
msgstr ""
@@ -2022,8 +2154,7 @@ msgstr ""
#: company/templates/company/delete.html:12
#, python-format
-msgid ""
-"There are %(count)s parts sourced from this company.
\n"
+msgid "There are %(count)s parts sourced from this company.
\n"
"If this supplier is deleted, these supplier part entries will also be deleted."
msgstr ""
@@ -2039,10 +2170,11 @@ msgstr ""
msgid "Uses default currency"
msgstr ""
-#: company/templates/company/detail.html:67 order/models.py:450
-#: order/templates/order/sales_order_base.html:92 stock/models.py:415
-#: stock/models.py:416 stock/templates/stock/item_base.html:251
+#: company/templates/company/detail.html:67 order/models.py:461
+#: order/templates/order/sales_order_base.html:92 stock/models.py:447
+#: stock/models.py:448 stock/templates/stock/item_base.html:257
#: templates/js/company.js:40 templates/js/order.js:267
+#: templates/js/stock.js:1064
msgid "Customer"
msgstr ""
@@ -2088,7 +2220,7 @@ msgstr ""
#: company/templates/company/detail_manufacturer_part.html:66
#: company/templates/company/detail_supplier_part.html:66
#: part/templates/part/bom.html:159 part/templates/part/category.html:118
-#: templates/js/stock.js:1157
+#: templates/js/stock.js:1279
msgid "New Part"
msgstr ""
@@ -2135,19 +2267,19 @@ msgstr ""
#: company/templates/company/detail_supplier_part.html:22
#: company/templates/company/manufacturer_part_suppliers.html:17
#: order/templates/order/purchase_order_detail.html:49
-#: part/templates/part/supplier.html:17 templates/js/stock.js:1163
+#: part/templates/part/supplier.html:17 templates/js/stock.js:1285
msgid "New Supplier Part"
msgstr ""
#: company/templates/company/detail_supplier_part.html:72
#: company/templates/company/manufacturer_part_suppliers.html:47
-#: company/views.py:64 order/templates/order/purchase_orders.html:183
+#: company/views.py:64 order/templates/order/purchase_orders.html:185
#: part/templates/part/supplier.html:50
msgid "New Supplier"
msgstr ""
#: company/templates/company/detail_supplier_part.html:73 company/views.py:281
-#: order/templates/order/purchase_orders.html:184
+#: order/templates/order/purchase_orders.html:186
msgid "Create new Supplier"
msgstr ""
@@ -2205,7 +2337,7 @@ msgstr ""
#: company/templates/company/manufacturer_part_navbar.html:22
#: company/templates/company/navbar.html:41
#: company/templates/company/supplier_part_navbar.html:15
-#: part/templates/part/navbar.html:36 stock/api.py:51
+#: part/templates/part/navbar.html:36 stock/api.py:54
#: stock/templates/stock/loc_link.html:7 stock/templates/stock/location.html:36
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/index.html:128 templates/InvenTree/search.html:196
@@ -2258,7 +2390,7 @@ msgstr ""
#: stock/templates/stock/location_navbar.html:22
#: stock/templates/stock/location_navbar.html:29
#: templates/InvenTree/search.html:198 templates/js/stock.js:968
-#: templates/stats.html:72 templates/stats.html:81 users/models.py:42
+#: templates/stats.html:93 templates/stats.html:102 users/models.py:42
msgid "Stock Items"
msgstr ""
@@ -2313,8 +2445,8 @@ msgid "New Sales Order"
msgstr ""
#: company/templates/company/supplier_part_base.html:7
-#: company/templates/company/supplier_part_base.html:20 stock/models.py:382
-#: stock/templates/stock/item_base.html:358 templates/js/company.js:279
+#: company/templates/company/supplier_part_base.html:20 stock/models.py:414
+#: stock/templates/stock/item_base.html:364 templates/js/company.js:279
msgid "Supplier Part"
msgstr ""
@@ -2363,7 +2495,7 @@ msgid "Pricing Information"
msgstr ""
#: company/templates/company/supplier_part_pricing.html:19 company/views.py:794
-#: part/templates/part/sale_prices.html:17 part/views.py:2636
+#: part/templates/part/sale_prices.html:17 part/views.py:2644
msgid "Add Price Break"
msgstr ""
@@ -2393,7 +2525,7 @@ msgstr ""
msgid "Customers"
msgstr ""
-#: company/views.py:78 order/templates/order/sales_orders.html:185
+#: company/views.py:78 order/templates/order/sales_orders.html:187
msgid "New Customer"
msgstr ""
@@ -2413,6 +2545,11 @@ msgstr ""
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
+#: company/views.py:205 part/views.py:887
+#, python-brace-format
+msgid "Invalid response: {code}"
+msgstr ""
+
#: company/views.py:214 part/views.py:896
msgid "Supplied URL is not a valid image file"
msgstr ""
@@ -2433,7 +2570,7 @@ msgstr ""
msgid "Edited company information"
msgstr ""
-#: company/views.py:287 order/templates/order/sales_orders.html:186
+#: company/views.py:287 order/templates/order/sales_orders.html:188
msgid "Create new Customer"
msgstr ""
@@ -2465,7 +2602,7 @@ msgstr ""
msgid "Edit Supplier Part"
msgstr ""
-#: company/views.py:578 templates/js/stock.js:1164
+#: company/views.py:578 templates/js/stock.js:1286
msgid "Create new Supplier Part"
msgstr ""
@@ -2473,15 +2610,15 @@ msgstr ""
msgid "Delete Supplier Part"
msgstr ""
-#: company/views.py:799 part/views.py:2640
+#: company/views.py:799 part/views.py:2648
msgid "Added new price break"
msgstr ""
-#: company/views.py:855 part/views.py:2684
+#: company/views.py:855 part/views.py:2692
msgid "Edit Price Break"
msgstr ""
-#: company/views.py:870 part/views.py:2698
+#: company/views.py:870 part/views.py:2706
msgid "Delete Price Break"
msgstr ""
@@ -2489,51 +2626,59 @@ msgstr ""
msgid "No valid objects provided to template"
msgstr ""
-#: label/models.py:102
+#: label/models.py:103
msgid "Label name"
msgstr ""
-#: label/models.py:109
+#: label/models.py:110
msgid "Label description"
msgstr ""
-#: label/models.py:116 stock/forms.py:202
+#: label/models.py:117 stock/forms.py:202
msgid "Label"
msgstr ""
-#: label/models.py:117
+#: label/models.py:118
msgid "Label template file"
msgstr ""
-#: label/models.py:123 report/models.py:274
+#: label/models.py:124 report/models.py:274
msgid "Enabled"
msgstr ""
-#: label/models.py:124
+#: label/models.py:125
msgid "Label template is enabled"
msgstr ""
-#: label/models.py:129
+#: label/models.py:130
msgid "Width [mm]"
msgstr ""
-#: label/models.py:130
+#: label/models.py:131
msgid "Label width, specified in mm"
msgstr ""
-#: label/models.py:136
+#: label/models.py:137
msgid "Height [mm]"
msgstr ""
-#: label/models.py:137
+#: label/models.py:138
msgid "Label height, specified in mm"
msgstr ""
-#: label/models.py:222 label/models.py:275
+#: label/models.py:144
+msgid "Filename Pattern"
+msgstr ""
+
+#: label/models.py:145
+msgid "Pattern for generating label filenames"
+msgstr ""
+
+#: label/models.py:244 label/models.py:297
msgid "Query filters (comma-separated list of key=value pairs"
msgstr ""
-#: label/models.py:223 label/models.py:276 report/models.py:294
+#: label/models.py:245 label/models.py:298 report/models.py:294
#: report/models.py:415 report/models.py:449
msgid "Filters"
msgstr ""
@@ -2571,15 +2716,15 @@ msgstr ""
msgid "Enter sales order number"
msgstr ""
-#: order/forms.py:145 order/models.py:462
+#: order/forms.py:145 order/models.py:473
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/forms.py:235
+#: order/forms.py:236
msgid "Enter stock item serial numbers"
msgstr ""
-#: order/forms.py:241
+#: order/forms.py:242
msgid "Enter quantity of stock items"
msgstr ""
@@ -2607,7 +2752,7 @@ msgstr ""
msgid "Order notes"
msgstr ""
-#: order/models.py:182 order/models.py:455
+#: order/models.py:182 order/models.py:466
msgid "Purchase order status"
msgstr ""
@@ -2648,8 +2793,8 @@ msgstr ""
msgid "Date order was completed"
msgstr ""
-#: order/models.py:243 part/views.py:1586 stock/models.py:270
-#: stock/models.py:953
+#: order/models.py:243 part/views.py:1586 stock/models.py:302
+#: stock/models.py:1018
msgid "Quantity must be greater than zero"
msgstr ""
@@ -2657,128 +2802,134 @@ msgstr ""
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:344
+#: order/models.py:346
msgid "Lines can only be received against an order marked as 'Placed'"
msgstr ""
-#: order/models.py:348
+#: order/models.py:350
msgid "Quantity must be an integer"
msgstr ""
-#: order/models.py:350
+#: order/models.py:352
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:369
-msgid "Received items"
-msgstr ""
-
-#: order/models.py:451
+#: order/models.py:462
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:457
+#: order/models.py:468
msgid "Customer Reference "
msgstr ""
-#: order/models.py:457
+#: order/models.py:468
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:465 templates/js/order.js:303
+#: order/models.py:476 templates/js/order.js:303
msgid "Shipment Date"
msgstr ""
-#: order/models.py:472
+#: order/models.py:483
msgid "shipped by"
msgstr ""
-#: order/models.py:516
+#: order/models.py:527
msgid "SalesOrder cannot be shipped as it is not currently pending"
msgstr ""
-#: order/models.py:603
+#: order/models.py:614
msgid "Item quantity"
msgstr ""
-#: order/models.py:605
+#: order/models.py:616
msgid "Line item reference"
msgstr ""
-#: order/models.py:607
+#: order/models.py:618
msgid "Line item notes"
msgstr ""
-#: order/models.py:633 order/models.py:677
+#: order/models.py:644 order/models.py:689
#: part/templates/part/allocation.html:17
#: part/templates/part/allocation.html:45
msgid "Order"
msgstr ""
-#: order/models.py:634 order/templates/order/order_base.html:9
+#: order/models.py:645 order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:24
#: report/templates/report/inventree_po_report.html:77
-#: stock/templates/stock/item_base.html:313 templates/js/order.js:148
+#: stock/templates/stock/item_base.html:319 templates/js/order.js:148
+#: templates/js/stock.js:1045
msgid "Purchase Order"
msgstr ""
-#: order/models.py:648
+#: order/models.py:659
msgid "Supplier part"
msgstr ""
-#: order/models.py:651 order/templates/order/order_base.html:131
+#: order/models.py:662 order/templates/order/order_base.html:131
#: order/templates/order/purchase_order_detail.html:189
#: order/templates/order/receive_parts.html:22
#: order/templates/order/sales_order_base.html:131
msgid "Received"
msgstr ""
-#: order/models.py:651
+#: order/models.py:662
msgid "Number of items received"
msgstr ""
-#: order/models.py:658 stock/models.py:508
-#: stock/templates/stock/item_base.html:320
+#: order/models.py:669 stock/models.py:540
+#: stock/templates/stock/item_base.html:326
msgid "Purchase Price"
msgstr ""
-#: order/models.py:659
+#: order/models.py:670
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:753 order/models.py:755
+#: order/models.py:698 part/templates/part/navbar.html:95
+#: part/templates/part/part_pricing.html:78
+msgid "Sale Price"
+msgstr ""
+
+#: order/models.py:699
+msgid "Unit sale price"
+msgstr ""
+
+#: order/models.py:774 order/models.py:776
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:759
+#: order/models.py:780
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:761
+#: order/models.py:782
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:764
+#: order/models.py:785
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:774
+#: order/models.py:795
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:779
+#: order/models.py:800
msgid "Line"
msgstr ""
-#: order/models.py:790
+#: order/models.py:811
msgid "Item"
msgstr ""
-#: order/models.py:791
+#: order/models.py:812
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:794
+#: order/models.py:815
msgid "Enter stock allocation quantity"
msgstr ""
@@ -2830,7 +2981,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:100
#: part/templates/part/category.html:185 part/templates/part/category.html:227
#: stock/templates/stock/location.html:191 templates/js/stock.js:708
-#: templates/js/stock.js:1169
+#: templates/js/stock.js:1291
msgid "New Location"
msgstr ""
@@ -2864,6 +3015,75 @@ msgstr ""
msgid "Order Notes"
msgstr ""
+#: order/templates/order/order_wizard/match_fields.html:9
+#: part/templates/part/bom_upload/select_fields.html:21
+msgid "Missing selections for the following required columns"
+msgstr ""
+
+#: order/templates/order/order_wizard/match_fields.html:20
+msgid "Duplicate selections found, see below. Fix them then retry submitting."
+msgstr ""
+
+#: order/templates/order/order_wizard/match_fields.html:27
+#: order/templates/order/order_wizard/match_parts.html:18
+#: order/templates/order/order_wizard/po_upload.html:40
+msgid "Previous Step"
+msgstr ""
+
+#: order/templates/order/order_wizard/match_fields.html:29
+#: order/templates/order/order_wizard/match_parts.html:20
+#: part/templates/part/bom_upload/select_fields.html:32
+msgid "Submit Selections"
+msgstr ""
+
+#: order/templates/order/order_wizard/match_fields.html:35
+#: part/templates/part/bom_upload/select_fields.html:41
+msgid "File Fields"
+msgstr ""
+
+#: order/templates/order/order_wizard/match_fields.html:42
+#: part/templates/part/bom_upload/select_fields.html:47
+msgid "Remove column"
+msgstr ""
+
+#: order/templates/order/order_wizard/match_fields.html:60
+msgid "Duplicate selection"
+msgstr ""
+
+#: order/templates/order/order_wizard/match_fields.html:71
+#: order/templates/order/order_wizard/match_parts.html:51
+#: part/templates/part/bom_upload/select_fields.html:76
+#: part/templates/part/bom_upload/select_parts.html:58
+msgid "Remove row"
+msgstr ""
+
+#: order/templates/order/order_wizard/match_parts.html:11
+#: part/templates/part/bom_upload/select_parts.html:21
+msgid "Errors exist in the submitted data"
+msgstr ""
+
+#: order/templates/order/order_wizard/match_parts.html:27
+#: part/templates/part/bom_upload/select_parts.html:39
+msgid "Row"
+msgstr ""
+
+#: order/templates/order/order_wizard/match_parts.html:28
+msgid "Select Supplier Part"
+msgstr ""
+
+#: order/templates/order/order_wizard/po_upload.html:11
+msgid "Upload File for Purchase Order"
+msgstr ""
+
+#: order/templates/order/order_wizard/po_upload.html:18
+#, python-format
+msgid "Step %(step)s of %(count)s"
+msgstr ""
+
+#: order/templates/order/order_wizard/po_upload.html:48
+msgid "Order is already processed. Files cannot be uploaded."
+msgstr ""
+
#: order/templates/order/order_wizard/select_parts.html:9
msgid "Step 1 of 2 - Select Part Suppliers"
msgstr ""
@@ -2936,8 +3156,8 @@ msgid "Purchase Order Items"
msgstr ""
#: order/templates/order/purchase_order_detail.html:24
-#: order/templates/order/sales_order_detail.html:22 order/views.py:1120
-#: order/views.py:1203
+#: order/templates/order/sales_order_detail.html:22 order/views.py:1311
+#: order/views.py:1394
msgid "Add Line Item"
msgstr ""
@@ -2946,11 +3166,12 @@ msgid "No line items found"
msgstr ""
#: order/templates/order/purchase_order_detail.html:180
+#: order/templates/order/sales_order_detail.html:235
msgid "Unit Price"
msgstr ""
#: order/templates/order/purchase_order_detail.html:221
-#: order/templates/order/sales_order_detail.html:294
+#: order/templates/order/sales_order_detail.html:328
msgid "Edit line item"
msgstr ""
@@ -2980,7 +3201,7 @@ msgstr ""
#: part/templates/part/category_partlist.html:10
#: templates/InvenTree/index.html:97 templates/InvenTree/search.html:114
#: templates/InvenTree/settings/tabs.html:25 templates/js/part.js:577
-#: templates/navbar.html:23 templates/stats.html:59 templates/stats.html:68
+#: templates/navbar.html:23 templates/stats.html:80 templates/stats.html:89
#: users/models.py:40
msgid "Parts"
msgstr ""
@@ -3042,59 +3263,72 @@ msgstr ""
msgid "Sales Order Items"
msgstr ""
-#: order/templates/order/sales_order_detail.html:92 templates/js/bom.js:342
+#: order/templates/order/sales_order_detail.html:95 templates/js/bom.js:342
#: templates/js/build.js:627 templates/js/build.js:1044
msgid "Actions"
msgstr ""
-#: order/templates/order/sales_order_detail.html:99 templates/js/build.js:515
+#: order/templates/order/sales_order_detail.html:102 templates/js/build.js:515
#: templates/js/build.js:849
msgid "Edit stock allocation"
msgstr ""
-#: order/templates/order/sales_order_detail.html:100 templates/js/build.js:517
+#: order/templates/order/sales_order_detail.html:103 templates/js/build.js:517
#: templates/js/build.js:850
msgid "Delete stock allocation"
msgstr ""
-#: order/templates/order/sales_order_detail.html:170
+#: order/templates/order/sales_order_detail.html:176
msgid "No matching line items"
msgstr ""
-#: order/templates/order/sales_order_detail.html:199
+#: order/templates/order/sales_order_detail.html:205
msgid "ID"
msgstr ""
-#: order/templates/order/sales_order_detail.html:229 templates/js/build.js:579
+#: order/templates/order/sales_order_detail.html:243 templates/js/build.js:579
#: templates/js/build.js:845
msgid "Allocated"
msgstr ""
-#: order/templates/order/sales_order_detail.html:231
+#: order/templates/order/sales_order_detail.html:245
msgid "Fulfilled"
msgstr ""
-#: order/templates/order/sales_order_detail.html:279
+#: order/templates/order/sales_order_detail.html:282
+msgid "PO"
+msgstr ""
+
+#: order/templates/order/sales_order_detail.html:312
msgid "Allocate serial numbers"
msgstr ""
-#: order/templates/order/sales_order_detail.html:282 templates/js/build.js:641
+#: order/templates/order/sales_order_detail.html:315 templates/js/build.js:641
msgid "Allocate stock"
msgstr ""
-#: order/templates/order/sales_order_detail.html:285
+#: order/templates/order/sales_order_detail.html:318
msgid "Purchase stock"
msgstr ""
-#: order/templates/order/sales_order_detail.html:289 templates/js/build.js:634
+#: order/templates/order/sales_order_detail.html:322 templates/js/build.js:634
#: templates/js/build.js:1052
msgid "Build stock"
msgstr ""
-#: order/templates/order/sales_order_detail.html:295
+#: order/templates/order/sales_order_detail.html:325
+#: order/templates/order/sales_order_detail.html:434
+msgid "Calculate price"
+msgstr ""
+
+#: order/templates/order/sales_order_detail.html:329
msgid "Delete line item "
msgstr ""
+#: order/templates/order/sales_order_detail.html:440
+msgid "Update Unit Price"
+msgstr ""
+
#: order/templates/order/sales_order_notes.html:14
msgid "Sales Order Notes"
msgstr ""
@@ -3136,164 +3370,189 @@ msgstr ""
msgid "Are you sure you wish to delete this line item?"
msgstr ""
-#: order/views.py:99
+#: order/views.py:104
msgid "Add Purchase Order Attachment"
msgstr ""
-#: order/views.py:149
+#: order/views.py:154
msgid "Add Sales Order Attachment"
msgstr ""
-#: order/views.py:341
+#: order/views.py:346
msgid "Create Sales Order"
msgstr ""
-#: order/views.py:376
+#: order/views.py:381
msgid "Edit Purchase Order"
msgstr ""
-#: order/views.py:396
+#: order/views.py:401
msgid "Edit Sales Order"
msgstr ""
-#: order/views.py:412
+#: order/views.py:417
msgid "Cancel Order"
msgstr ""
-#: order/views.py:421 order/views.py:447
+#: order/views.py:426 order/views.py:452
msgid "Confirm order cancellation"
msgstr ""
-#: order/views.py:424 order/views.py:450
+#: order/views.py:429 order/views.py:455
msgid "Order cannot be cancelled"
msgstr ""
-#: order/views.py:438
+#: order/views.py:443
msgid "Cancel sales order"
msgstr ""
-#: order/views.py:464
+#: order/views.py:469
msgid "Issue Order"
msgstr ""
-#: order/views.py:473
+#: order/views.py:478
msgid "Confirm order placement"
msgstr ""
-#: order/views.py:483
+#: order/views.py:488
msgid "Purchase order issued"
msgstr ""
-#: order/views.py:494
+#: order/views.py:499
msgid "Complete Order"
msgstr ""
-#: order/views.py:510
+#: order/views.py:515
msgid "Confirm order completion"
msgstr ""
-#: order/views.py:521
+#: order/views.py:526
msgid "Purchase order completed"
msgstr ""
-#: order/views.py:531
+#: order/views.py:536
msgid "Ship Order"
msgstr ""
-#: order/views.py:547
+#: order/views.py:552
msgid "Confirm order shipment"
msgstr ""
-#: order/views.py:553
+#: order/views.py:558
msgid "Could not ship order"
msgstr ""
-#: order/views.py:607
+#: order/views.py:584
+msgid "Match Supplier Parts"
+msgstr ""
+
+#: order/views.py:798
msgid "Receive Parts"
msgstr ""
-#: order/views.py:677
+#: order/views.py:868
msgid "Items received"
msgstr ""
-#: order/views.py:691
+#: order/views.py:882
msgid "No destination set"
msgstr ""
-#: order/views.py:736
+#: order/views.py:927
msgid "Error converting quantity to number"
msgstr ""
-#: order/views.py:742
+#: order/views.py:933
msgid "Receive quantity less than zero"
msgstr ""
-#: order/views.py:748
+#: order/views.py:939
msgid "No lines specified"
msgstr ""
-#: order/views.py:1069
+#: order/views.py:1260
#, python-brace-format
msgid "Ordered {n} parts"
msgstr ""
-#: order/views.py:1129
+#: order/views.py:1320
msgid "Supplier part must be specified"
msgstr ""
-#: order/views.py:1135
+#: order/views.py:1326
msgid "Supplier must match for Part and Order"
msgstr ""
-#: order/views.py:1254 order/views.py:1272
+#: order/views.py:1457 order/views.py:1475
msgid "Edit Line Item"
msgstr ""
-#: order/views.py:1288 order/views.py:1300
+#: order/views.py:1491 order/views.py:1503
msgid "Delete Line Item"
msgstr ""
-#: order/views.py:1293 order/views.py:1305
+#: order/views.py:1496 order/views.py:1508
msgid "Deleted line item"
msgstr ""
-#: order/views.py:1318
+#: order/views.py:1521
msgid "Allocate Serial Numbers"
msgstr ""
-#: order/views.py:1363
+#: order/views.py:1566
#, python-brace-format
msgid "Allocated {n} items"
msgstr ""
-#: order/views.py:1379
+#: order/views.py:1582
msgid "Select line item"
msgstr ""
-#: order/views.py:1410
-msgid "No matching item for serial"
+#: order/views.py:1613
+#, python-brace-format
+msgid "No matching item for serial {serial}"
msgstr ""
-#: order/views.py:1420
-msgid "is not in stock"
+#: order/views.py:1623
+#, python-brace-format
+msgid "{serial} is not in stock"
msgstr ""
-#: order/views.py:1428
-msgid "already allocated to an order"
+#: order/views.py:1631
+#, python-brace-format
+msgid "{serial} already allocated to an order"
msgstr ""
-#: order/views.py:1482
+#: order/views.py:1685
msgid "Allocate Stock to Order"
msgstr ""
-#: order/views.py:1556
+#: order/views.py:1759
msgid "Edit Allocation Quantity"
msgstr ""
-#: order/views.py:1571
+#: order/views.py:1774
msgid "Remove allocation"
msgstr ""
+#: order/views.py:1846
+msgid "Sales order not found"
+msgstr ""
+
+#: order/views.py:1852
+msgid "Price not found"
+msgstr ""
+
+#: order/views.py:1855
+#, python-brace-format
+msgid "Updated {part} unit-price to {price}"
+msgstr ""
+
+#: order/views.py:1860
+#, python-brace-format
+msgid "Updated {part} unit-price to {price} and quantity to {qty}"
+msgstr ""
+
#: part/bom.py:138 part/models.py:72 part/models.py:762
#: part/templates/part/category.html:66 part/templates/part/detail.html:90
msgid "Default Location"
@@ -3372,7 +3631,7 @@ msgstr ""
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:122 part/models.py:2077
+#: part/forms.py:122 part/models.py:2115
msgid "Parent Part"
msgstr ""
@@ -3448,7 +3707,7 @@ msgstr ""
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:344 part/models.py:2171
+#: part/forms.py:344 part/models.py:2209
msgid "Sub part"
msgstr ""
@@ -3468,14 +3727,14 @@ msgstr ""
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:82 part/models.py:2123
+#: part/models.py:82 part/models.py:2161
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
#: part/models.py:83 part/templates/part/category.html:23
#: part/templates/part/category.html:94 part/templates/part/category.html:141
-#: templates/InvenTree/search.html:127 templates/stats.html:63
+#: templates/InvenTree/search.html:127 templates/stats.html:84
#: users/models.py:39
msgid "Part Categories"
msgstr ""
@@ -3538,7 +3797,7 @@ msgstr ""
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:724 part/models.py:2122 part/templates/part/detail.html:73
+#: part/models.py:724 part/models.py:2160 part/templates/part/detail.html:73
#: part/templates/part/set_category.html:15 templates/js/part.js:385
msgid "Category"
msgstr ""
@@ -3593,7 +3852,7 @@ msgstr ""
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:828 part/models.py:2051 part/templates/part/detail.html:106
+#: part/models.py:828 part/models.py:2089 part/templates/part/detail.html:106
#: part/templates/part/params.html:29
msgid "Units"
msgstr ""
@@ -3623,8 +3882,8 @@ msgid "Can this part be sold to customers?"
msgstr ""
#: part/models.py:861 part/templates/part/detail.html:227
-#: templates/js/table_filters.js:20 templates/js/table_filters.js:60
-#: templates/js/table_filters.js:236 templates/js/table_filters.js:305
+#: templates/js/table_filters.js:21 templates/js/table_filters.js:61
+#: templates/js/table_filters.js:237 templates/js/table_filters.js:306
msgid "Active"
msgstr ""
@@ -3660,167 +3919,171 @@ msgstr ""
msgid "Creation User"
msgstr ""
-#: part/models.py:1949
-msgid "Test templates can only be created for trackable parts"
-msgstr ""
-
-#: part/models.py:1966
-msgid "Test with this name already exists for this part"
-msgstr ""
-
-#: part/models.py:1986 templates/js/part.js:638 templates/js/stock.js:104
-msgid "Test Name"
+#: part/models.py:1616
+msgid "Sell multiple"
msgstr ""
#: part/models.py:1987
+msgid "Test templates can only be created for trackable parts"
+msgstr ""
+
+#: part/models.py:2004
+msgid "Test with this name already exists for this part"
+msgstr ""
+
+#: part/models.py:2024 templates/js/part.js:638 templates/js/stock.js:104
+msgid "Test Name"
+msgstr ""
+
+#: part/models.py:2025
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:1992
+#: part/models.py:2030
msgid "Test Description"
msgstr ""
-#: part/models.py:1993
+#: part/models.py:2031
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:1998 templates/js/part.js:647
-#: templates/js/table_filters.js:222
+#: part/models.py:2036 templates/js/part.js:647
+#: templates/js/table_filters.js:223
msgid "Required"
msgstr ""
-#: part/models.py:1999
+#: part/models.py:2037
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2004 templates/js/part.js:655
+#: part/models.py:2042 templates/js/part.js:655
msgid "Requires Value"
msgstr ""
-#: part/models.py:2005
+#: part/models.py:2043
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2010 templates/js/part.js:662
+#: part/models.py:2048 templates/js/part.js:662
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2011
+#: part/models.py:2049
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2044
+#: part/models.py:2082
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2049
+#: part/models.py:2087
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2051
+#: part/models.py:2089
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2079 part/models.py:2128 part/models.py:2129
+#: part/models.py:2117 part/models.py:2166 part/models.py:2167
#: templates/InvenTree/settings/category.html:62
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2081
+#: part/models.py:2119
msgid "Data"
msgstr ""
-#: part/models.py:2081
+#: part/models.py:2119
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2133 templates/InvenTree/settings/category.html:67
+#: part/models.py:2171 templates/InvenTree/settings/category.html:67
msgid "Default Value"
msgstr ""
-#: part/models.py:2134
+#: part/models.py:2172
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2163
+#: part/models.py:2201
msgid "Select parent part"
msgstr ""
-#: part/models.py:2172
+#: part/models.py:2210
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2178
+#: part/models.py:2216
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2180 templates/js/bom.js:216 templates/js/bom.js:269
+#: part/models.py:2218 templates/js/bom.js:216 templates/js/bom.js:269
msgid "Optional"
msgstr ""
-#: part/models.py:2180
+#: part/models.py:2218
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2183
+#: part/models.py:2221
msgid "Overage"
msgstr ""
-#: part/models.py:2184
+#: part/models.py:2222
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2187
+#: part/models.py:2225
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2190
+#: part/models.py:2228
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2192
+#: part/models.py:2230
msgid "Checksum"
msgstr ""
-#: part/models.py:2192
+#: part/models.py:2230
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2196 templates/js/bom.js:279 templates/js/bom.js:286
-#: templates/js/table_filters.js:50
+#: part/models.py:2234 templates/js/bom.js:279 templates/js/bom.js:286
+#: templates/js/table_filters.js:51
msgid "Inherited"
msgstr ""
-#: part/models.py:2197
+#: part/models.py:2235
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2273 part/views.py:1592 part/views.py:1644
-#: stock/models.py:260
+#: part/models.py:2311 part/views.py:1592 part/views.py:1644
+#: stock/models.py:292
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2282 part/models.py:2284
+#: part/models.py:2320 part/models.py:2322
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2287
+#: part/models.py:2325
msgid "BOM Item"
msgstr ""
-#: part/models.py:2404
+#: part/models.py:2442
msgid "Part 1"
msgstr ""
-#: part/models.py:2408
+#: part/models.py:2446
msgid "Part 2"
msgstr ""
-#: part/models.py:2408
+#: part/models.py:2446
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2440
+#: part/models.py:2478
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -3905,7 +4168,7 @@ msgid "All selected BOM items will be deleted"
msgstr ""
#: part/templates/part/bom.html:160 part/views.py:584
-#: templates/js/stock.js:1158
+#: templates/js/stock.js:1280
msgid "Create New Part"
msgstr ""
@@ -3923,51 +4186,18 @@ msgstr ""
msgid "Step 2 - Select Fields"
msgstr ""
-#: part/templates/part/bom_upload/select_fields.html:21
-msgid "Missing selections for the following required columns"
-msgstr ""
-
-#: part/templates/part/bom_upload/select_fields.html:32
-msgid "Submit Selections"
-msgstr ""
-
-#: part/templates/part/bom_upload/select_fields.html:41
-msgid "File Fields"
-msgstr ""
-
-#: part/templates/part/bom_upload/select_fields.html:47
-msgid "Remove column"
-msgstr ""
-
-#: part/templates/part/bom_upload/select_fields.html:58
-msgid "Match Fields"
-msgstr ""
-
#: part/templates/part/bom_upload/select_fields.html:68
msgid "Duplicate column selection"
msgstr ""
-#: part/templates/part/bom_upload/select_fields.html:76
-#: part/templates/part/bom_upload/select_parts.html:58
-msgid "Remove row"
-msgstr ""
-
#: part/templates/part/bom_upload/select_parts.html:16
msgid "Step 3 - Select Parts"
msgstr ""
-#: part/templates/part/bom_upload/select_parts.html:21
-msgid "Errors exist in the submitted data"
-msgstr ""
-
#: part/templates/part/bom_upload/select_parts.html:27
msgid "Submit BOM"
msgstr ""
-#: part/templates/part/bom_upload/select_parts.html:39
-msgid "Row"
-msgstr ""
-
#: part/templates/part/bom_upload/select_parts.html:40
#: part/templates/part/bom_upload/select_parts.html:69
msgid "Select Part"
@@ -3998,10 +4228,6 @@ msgstr ""
msgid "Each part must already exist in the database"
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:27
-msgid "Upload File"
-msgstr ""
-
#: part/templates/part/bom_validate.html:6
#, python-format
msgid "Confirm that the Bill of Materials (BOM) is valid for:
%(part)s"
@@ -4023,7 +4249,7 @@ msgstr ""
msgid "All parts"
msgstr ""
-#: part/templates/part/category.html:29 part/views.py:2282
+#: part/templates/part/category.html:29 part/views.py:2290
msgid "Create new part category"
msgstr ""
@@ -4091,7 +4317,7 @@ msgstr ""
msgid "Create new Part Category"
msgstr ""
-#: part/templates/part/category.html:228 stock/views.py:1359
+#: part/templates/part/category.html:228 stock/views.py:1391
msgid "Create new Stock Location"
msgstr ""
@@ -4282,15 +4508,11 @@ msgstr ""
msgid "Sales Price Information"
msgstr ""
-#: part/templates/part/navbar.html:95
-msgid "Sale Price"
-msgstr ""
-
#: part/templates/part/navbar.html:106 part/templates/part/part_tests.html:10
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/navbar.html:109 stock/templates/stock/item_base.html:398
+#: part/templates/part/navbar.html:109 stock/templates/stock/item_base.html:404
msgid "Tests"
msgstr ""
@@ -4315,7 +4537,7 @@ msgstr ""
#: part/templates/part/params.html:28
#: report/templates/report/inventree_test_report_base.html:90
-#: stock/models.py:1655 templates/InvenTree/settings/header.html:8
+#: stock/models.py:1754 templates/InvenTree/settings/header.html:8
#: templates/js/stock.js:124
msgid "Value"
msgstr ""
@@ -4351,19 +4573,19 @@ msgid "Star this part"
msgstr ""
#: part/templates/part/part_base.html:47
-#: stock/templates/stock/item_base.html:131
+#: stock/templates/stock/item_base.html:137
#: stock/templates/stock/location.html:51
msgid "Barcode actions"
msgstr ""
#: part/templates/part/part_base.html:49
-#: stock/templates/stock/item_base.html:133
+#: stock/templates/stock/item_base.html:139
#: stock/templates/stock/location.html:53 templates/qr_button.html:1
msgid "Show QR Code"
msgstr ""
#: part/templates/part/part_base.html:50
-#: stock/templates/stock/item_base.html:149
+#: stock/templates/stock/item_base.html:155
#: stock/templates/stock/location.html:54
msgid "Print Label"
msgstr ""
@@ -4392,7 +4614,7 @@ msgstr ""
msgid "Delete part"
msgstr ""
-#: part/templates/part/part_base.html:123 templates/js/table_filters.js:156
+#: part/templates/part/part_base.html:123 templates/js/table_filters.js:157
msgid "In Stock"
msgstr ""
@@ -4420,42 +4642,39 @@ msgstr ""
msgid "Calculate"
msgstr ""
-#: part/templates/part/part_pricing.html:8
-#, python-format
-msgid "Pricing information for:
%(part)s."
-msgstr ""
-
-#: part/templates/part/part_pricing.html:23
+#: part/templates/part/part_pricing.html:19
msgid "Supplier Pricing"
msgstr ""
-#: part/templates/part/part_pricing.html:27
-#: part/templates/part/part_pricing.html:53
+#: part/templates/part/part_pricing.html:23
+#: part/templates/part/part_pricing.html:49
+#: part/templates/part/part_pricing.html:81
msgid "Unit Cost"
msgstr ""
-#: part/templates/part/part_pricing.html:33
-#: part/templates/part/part_pricing.html:59
+#: part/templates/part/part_pricing.html:29
+#: part/templates/part/part_pricing.html:55
+#: part/templates/part/part_pricing.html:85
msgid "Total Cost"
msgstr ""
-#: part/templates/part/part_pricing.html:41
+#: part/templates/part/part_pricing.html:37
msgid "No supplier pricing available"
msgstr ""
-#: part/templates/part/part_pricing.html:49
+#: part/templates/part/part_pricing.html:45
msgid "BOM Pricing"
msgstr ""
-#: part/templates/part/part_pricing.html:67
+#: part/templates/part/part_pricing.html:63
msgid "Note: BOM pricing is incomplete for this part"
msgstr ""
-#: part/templates/part/part_pricing.html:74
+#: part/templates/part/part_pricing.html:70
msgid "No BOM pricing available"
msgstr ""
-#: part/templates/part/part_pricing.html:84
+#: part/templates/part/part_pricing.html:94
msgid "No pricing information is available for this part."
msgstr ""
@@ -4564,6 +4783,10 @@ msgstr ""
msgid "New Variant"
msgstr ""
+#: part/templatetags/inventree_extras.py:97
+msgid "Unknown database"
+msgstr ""
+
#: part/views.py:89
msgid "Add Related Part"
msgstr ""
@@ -4713,63 +4936,63 @@ msgstr ""
msgid "Part Pricing"
msgstr ""
-#: part/views.py:2081
+#: part/views.py:2089
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:2091
+#: part/views.py:2099
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:2098
+#: part/views.py:2106
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:2106
+#: part/views.py:2114
msgid "Create Part Parameter"
msgstr ""
-#: part/views.py:2156
+#: part/views.py:2164
msgid "Edit Part Parameter"
msgstr ""
-#: part/views.py:2170
+#: part/views.py:2178
msgid "Delete Part Parameter"
msgstr ""
-#: part/views.py:2230
+#: part/views.py:2238
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:2268
+#: part/views.py:2276
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:2274
+#: part/views.py:2282
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:2326
+#: part/views.py:2334
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:2427
+#: part/views.py:2435
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:2483
+#: part/views.py:2491
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:2502
+#: part/views.py:2510
msgid "Create BOM Item"
msgstr ""
-#: part/views.py:2572
+#: part/views.py:2580
msgid "Edit BOM item"
msgstr ""
-#: part/views.py:2628
+#: part/views.py:2636
msgid "Confim BOM item deletion"
msgstr ""
@@ -4871,17 +5094,17 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:1643
+#: stock/models.py:1742
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:89
-#: stock/models.py:1649
+#: stock/models.py:1748
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:92
-#: templates/js/order.js:195 templates/js/stock.js:986
+#: templates/js/order.js:195 templates/js/stock.js:984
msgid "Date"
msgstr ""
@@ -4893,22 +5116,22 @@ msgstr ""
msgid "Fail"
msgstr ""
-#: stock/api.py:199
+#: stock/api.py:212
#, python-brace-format
msgid "Updated stock for {n} items"
msgstr ""
-#: stock/api.py:268
+#: stock/api.py:281
#, python-brace-format
msgid "Moved {n} parts to {loc}"
msgstr ""
-#: stock/forms.py:114 stock/forms.py:406 stock/models.py:475
-#: stock/templates/stock/item_base.html:365 templates/js/stock.js:656
+#: stock/forms.py:114 stock/forms.py:418 stock/models.py:507
+#: stock/templates/stock/item_base.html:371 templates/js/stock.js:656
msgid "Expiry Date"
msgstr ""
-#: stock/forms.py:115 stock/forms.py:407
+#: stock/forms.py:115 stock/forms.py:419
msgid "Expiration date for this stock item"
msgstr ""
@@ -4936,8 +5159,8 @@ msgstr ""
msgid "Select test report template"
msgstr ""
-#: stock/forms.py:267 templates/js/table_filters.js:70
-#: templates/js/table_filters.js:133
+#: stock/forms.py:267 templates/js/table_filters.js:71
+#: templates/js/table_filters.js:134
msgid "Include sublocations"
msgstr ""
@@ -4993,243 +5216,187 @@ msgstr ""
msgid "Set the destination as the default location for selected parts"
msgstr ""
-#: stock/models.py:54 stock/models.py:513
+#: stock/models.py:54 stock/models.py:545
msgid "Owner"
msgstr ""
-#: stock/models.py:55 stock/models.py:514
+#: stock/models.py:55 stock/models.py:546
msgid "Select Owner"
msgstr ""
-#: stock/models.py:205
-msgid "Created stock item"
-msgstr ""
-
-#: stock/models.py:241
+#: stock/models.py:273
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:277
+#: stock/models.py:309
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:287 stock/models.py:296
+#: stock/models.py:319 stock/models.py:328
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:288
+#: stock/models.py:320
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:310
+#: stock/models.py:342
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:316
+#: stock/models.py:348
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:323
+#: stock/models.py:355
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:365
+#: stock/models.py:397
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:374
+#: stock/models.py:406
msgid "Base part"
msgstr ""
-#: stock/models.py:383
+#: stock/models.py:415
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:388 stock/templates/stock/stock_app_base.html:8
+#: stock/models.py:420 stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:391
+#: stock/models.py:423
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:398
+#: stock/models.py:430
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:403 stock/templates/stock/item_base.html:259
+#: stock/models.py:435 stock/templates/stock/item_base.html:265
msgid "Installed In"
msgstr ""
-#: stock/models.py:406
+#: stock/models.py:438
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:422
+#: stock/models.py:454
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:434
+#: stock/models.py:466
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:438
+#: stock/models.py:470
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:447
+#: stock/models.py:479
msgid "Source Build"
msgstr ""
-#: stock/models.py:449
+#: stock/models.py:481
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:460
+#: stock/models.py:492
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:463
+#: stock/models.py:495
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:469
+#: stock/models.py:501
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:476
+#: stock/models.py:508
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:489
+#: stock/models.py:521
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:489
+#: stock/models.py:521
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:499 stock/templates/stock/item_notes.html:13
+#: stock/models.py:531 stock/templates/stock/item_notes.html:13
#: stock/templates/stock/navbar.html:54
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:509
+#: stock/models.py:541
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:614
-msgid "Assigned to Customer"
-msgstr ""
-
-#: stock/models.py:616
-msgid "Manually assigned to customer"
-msgstr ""
-
-#: stock/models.py:629
-msgid "Returned from customer"
-msgstr ""
-
-#: stock/models.py:631
-msgid "Returned to location"
-msgstr ""
-
-#: stock/models.py:792
-msgid "Installed into stock item"
-msgstr ""
-
-#: stock/models.py:800
-msgid "Installed stock item"
-msgstr ""
-
-#: stock/models.py:824
-msgid "Uninstalled stock item"
-msgstr ""
-
-#: stock/models.py:843
-msgid "Uninstalled into location"
-msgstr ""
-
-#: stock/models.py:944
+#: stock/models.py:1009
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:950
+#: stock/models.py:1015
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:956
+#: stock/models.py:1021
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:959
+#: stock/models.py:1024
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:962
+#: stock/models.py:1027
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:994
-msgid "Add serial number"
-msgstr ""
-
-#: stock/models.py:997
+#: stock/models.py:1034
#, python-brace-format
-msgid "Serialized {n} items"
+msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1075
-msgid "Split from existing stock"
-msgstr ""
-
-#: stock/models.py:1113
+#: stock/models.py:1192
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1556
-msgid "Title"
-msgstr ""
-
-#: stock/models.py:1556
-msgid "Tracking entry title"
-msgstr ""
-
-#: stock/models.py:1558
+#: stock/models.py:1666
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1560
-msgid "Link to external page for further information"
-msgstr ""
-
-#: stock/models.py:1620
+#: stock/models.py:1719
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1626
+#: stock/models.py:1725
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1644
+#: stock/models.py:1743
msgid "Test name"
msgstr ""
-#: stock/models.py:1650 templates/js/table_filters.js:212
+#: stock/models.py:1749 templates/js/table_filters.js:213
msgid "Test result"
msgstr ""
-#: stock/models.py:1656
+#: stock/models.py:1755
msgid "Test output value"
msgstr ""
-#: stock/models.py:1663
+#: stock/models.py:1762
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1669
+#: stock/models.py:1768
msgid "Test notes"
msgstr ""
@@ -5284,134 +5451,134 @@ msgid "This stock item will be automatically deleted when all stock is depleted.
msgstr ""
#: stock/templates/stock/item_base.html:95
-#: stock/templates/stock/item_base.html:369 templates/js/table_filters.js:145
+#: stock/templates/stock/item_base.html:375 templates/js/table_filters.js:146
msgid "Expired"
msgstr ""
-#: stock/templates/stock/item_base.html:99
-#: stock/templates/stock/item_base.html:371 templates/js/table_filters.js:150
+#: stock/templates/stock/item_base.html:105
+#: stock/templates/stock/item_base.html:377 templates/js/table_filters.js:151
msgid "Stale"
msgstr ""
-#: stock/templates/stock/item_base.html:136 templates/js/barcode.js:309
+#: stock/templates/stock/item_base.html:142 templates/js/barcode.js:309
#: templates/js/barcode.js:314
msgid "Unlink Barcode"
msgstr ""
-#: stock/templates/stock/item_base.html:138
+#: stock/templates/stock/item_base.html:144
msgid "Link Barcode"
msgstr ""
-#: stock/templates/stock/item_base.html:140 templates/stock_table.html:31
+#: stock/templates/stock/item_base.html:146 templates/stock_table.html:31
msgid "Scan to Location"
msgstr ""
-#: stock/templates/stock/item_base.html:147
+#: stock/templates/stock/item_base.html:153
msgid "Printing actions"
msgstr ""
-#: stock/templates/stock/item_base.html:151
+#: stock/templates/stock/item_base.html:157
#: stock/templates/stock/item_tests.html:27
msgid "Test Report"
msgstr ""
-#: stock/templates/stock/item_base.html:160
+#: stock/templates/stock/item_base.html:166
msgid "Stock adjustment actions"
msgstr ""
-#: stock/templates/stock/item_base.html:164
+#: stock/templates/stock/item_base.html:170
#: stock/templates/stock/location.html:65 templates/stock_table.html:57
msgid "Count stock"
msgstr ""
-#: stock/templates/stock/item_base.html:167 templates/stock_table.html:55
+#: stock/templates/stock/item_base.html:173 templates/stock_table.html:55
msgid "Add stock"
msgstr ""
-#: stock/templates/stock/item_base.html:170 templates/stock_table.html:56
+#: stock/templates/stock/item_base.html:176 templates/stock_table.html:56
msgid "Remove stock"
msgstr ""
-#: stock/templates/stock/item_base.html:173
+#: stock/templates/stock/item_base.html:179
msgid "Serialize stock"
msgstr ""
-#: stock/templates/stock/item_base.html:177
+#: stock/templates/stock/item_base.html:183
msgid "Transfer stock"
msgstr ""
-#: stock/templates/stock/item_base.html:180
+#: stock/templates/stock/item_base.html:186
msgid "Assign to customer"
msgstr ""
-#: stock/templates/stock/item_base.html:183
+#: stock/templates/stock/item_base.html:189
msgid "Return to stock"
msgstr ""
-#: stock/templates/stock/item_base.html:187 templates/js/stock.js:1299
+#: stock/templates/stock/item_base.html:193 templates/js/stock.js:1421
msgid "Uninstall stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:187
+#: stock/templates/stock/item_base.html:193
msgid "Uninstall"
msgstr ""
-#: stock/templates/stock/item_base.html:196
+#: stock/templates/stock/item_base.html:202
#: stock/templates/stock/location.html:62
msgid "Stock actions"
msgstr ""
-#: stock/templates/stock/item_base.html:199
+#: stock/templates/stock/item_base.html:205
msgid "Convert to variant"
msgstr ""
-#: stock/templates/stock/item_base.html:202
+#: stock/templates/stock/item_base.html:208
msgid "Duplicate stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:204
+#: stock/templates/stock/item_base.html:210
msgid "Edit stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:207
+#: stock/templates/stock/item_base.html:213
msgid "Delete stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:219
+#: stock/templates/stock/item_base.html:225
msgid "Stock Item Details"
msgstr ""
-#: stock/templates/stock/item_base.html:278 templates/js/build.js:498
+#: stock/templates/stock/item_base.html:284 templates/js/build.js:498
msgid "No location set"
msgstr ""
-#: stock/templates/stock/item_base.html:285
+#: stock/templates/stock/item_base.html:291
msgid "Barcode Identifier"
msgstr ""
-#: stock/templates/stock/item_base.html:327
+#: stock/templates/stock/item_base.html:333
msgid "Parent Item"
msgstr ""
-#: stock/templates/stock/item_base.html:369
+#: stock/templates/stock/item_base.html:375
#, python-format
msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:371
+#: stock/templates/stock/item_base.html:377
#, python-format
msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:378 templates/js/stock.js:662
+#: stock/templates/stock/item_base.html:384 templates/js/stock.js:662
msgid "Last Updated"
msgstr ""
-#: stock/templates/stock/item_base.html:383
+#: stock/templates/stock/item_base.html:389
msgid "Last Stocktake"
msgstr ""
-#: stock/templates/stock/item_base.html:387
+#: stock/templates/stock/item_base.html:393
msgid "No stocktake performed"
msgstr ""
@@ -5522,7 +5689,7 @@ msgid "Stock Details"
msgstr ""
#: stock/templates/stock/location.html:117 templates/InvenTree/search.html:279
-#: templates/stats.html:76 users/models.py:41
+#: templates/stats.html:97 users/models.py:41
msgid "Stock Locations"
msgstr ""
@@ -5562,7 +5729,7 @@ msgstr ""
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:1332
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:1364
msgid "Convert Stock Item"
msgstr ""
@@ -5595,8 +5762,8 @@ msgstr ""
msgid "Edit Stock Location"
msgstr ""
-#: stock/views.py:230 stock/views.py:1322 stock/views.py:1433
-#: stock/views.py:1798
+#: stock/views.py:230 stock/views.py:1343 stock/views.py:1465
+#: stock/views.py:1830
msgid "Owner is required (ownership control is enabled)"
msgstr ""
@@ -5762,43 +5929,47 @@ msgstr ""
msgid "Deleted {n} stock items"
msgstr ""
-#: stock/views.py:1224
+#: stock/views.py:1222
+msgid "Edit Stock Item Status"
+msgstr ""
+
+#: stock/views.py:1245
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:1450
+#: stock/views.py:1482
msgid "Serialize Stock"
msgstr ""
-#: stock/views.py:1543 templates/js/build.js:244
+#: stock/views.py:1575 templates/js/build.js:244
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1685
+#: stock/views.py:1717
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1767
+#: stock/views.py:1799
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1867
+#: stock/views.py:1899
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:1880
+#: stock/views.py:1912
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1891
+#: stock/views.py:1923
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1898
+#: stock/views.py:1930
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1907
+#: stock/views.py:1939
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -5896,8 +6067,7 @@ msgstr ""
#: templates/InvenTree/settings/appearance.html:29
#, python-format
-msgid ""
-"\n"
+msgid "\n"
" The CSS sheet \"%(invalid_color_theme)s.css\" for the currently selected color theme was not found.
\n"
" Please select another color theme :)\n"
" "
@@ -6100,9 +6270,17 @@ msgstr ""
msgid "Submit Bug Report"
msgstr ""
-#: templates/about.html:82 templates/js/modals.js:550
-#: templates/js/modals.js:809 templates/modals.html:28 templates/modals.html:52
-#: templates/modals.html:93
+#: templates/about.html:80 templates/clip.html:4
+msgid "copy to clipboard"
+msgstr ""
+
+#: templates/about.html:80
+msgid "copy version information"
+msgstr ""
+
+#: templates/about.html:90 templates/js/modals.js:568
+#: templates/js/modals.js:846 templates/modals.html:29 templates/modals.html:54
+#: templates/modals.html:97
msgid "Close"
msgstr ""
@@ -6110,10 +6288,6 @@ msgstr ""
msgid "Add Attachment"
msgstr ""
-#: templates/attachment_table.html:15
-msgid "File"
-msgstr ""
-
#: templates/attachment_table.html:17
msgid "Uploaded"
msgstr ""
@@ -6166,7 +6340,7 @@ msgstr ""
msgid "Unknown response from server"
msgstr ""
-#: templates/js/barcode.js:119 templates/js/modals.js:857
+#: templates/js/barcode.js:119 templates/js/modals.js:901
msgid "Invalid server response"
msgstr ""
@@ -6311,7 +6485,7 @@ msgstr ""
#: templates/js/build.js:708 templates/js/part.js:324 templates/js/part.js:546
#: templates/js/stock.js:511 templates/js/stock.js:938
-#: templates/js/stock.js:1331
+#: templates/js/stock.js:1453
msgid "Select"
msgstr ""
@@ -6409,96 +6583,96 @@ msgstr ""
msgid "Select Label Template"
msgstr ""
-#: templates/js/modals.js:256
+#: templates/js/modals.js:265
msgid "Waiting for server..."
msgstr ""
-#: templates/js/modals.js:406
+#: templates/js/modals.js:424
msgid "Show Error Information"
msgstr ""
-#: templates/js/modals.js:473 templates/modals.html:73
+#: templates/js/modals.js:491 templates/modals.html:76
msgid "Accept"
msgstr ""
-#: templates/js/modals.js:474 templates/modals.html:72
+#: templates/js/modals.js:492 templates/modals.html:75
msgid "Cancel"
msgstr ""
-#: templates/js/modals.js:538
+#: templates/js/modals.js:556
msgid "Loading Data"
msgstr ""
-#: templates/js/modals.js:549 templates/js/modals.js:808
-#: templates/modals.html:29 templates/modals.html:53
+#: templates/js/modals.js:567 templates/js/modals.js:845
+#: templates/modals.html:30 templates/modals.html:55
msgid "Submit"
msgstr ""
-#: templates/js/modals.js:760
+#: templates/js/modals.js:797
msgid "Invalid response from server"
msgstr ""
-#: templates/js/modals.js:760
+#: templates/js/modals.js:797
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/modals.js:773
+#: templates/js/modals.js:810
msgid "Error posting form data"
msgstr ""
-#: templates/js/modals.js:857
+#: templates/js/modals.js:901
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/modals.js:867
+#: templates/js/modals.js:911
msgid "No Response"
msgstr ""
-#: templates/js/modals.js:868
+#: templates/js/modals.js:912
msgid "No response from the InvenTree server"
msgstr ""
-#: templates/js/modals.js:872
+#: templates/js/modals.js:916
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/modals.js:873
+#: templates/js/modals.js:917
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/modals.js:877
+#: templates/js/modals.js:921
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/modals.js:878
+#: templates/js/modals.js:922
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/modals.js:882
+#: templates/js/modals.js:926
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/modals.js:883
+#: templates/js/modals.js:927
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/modals.js:887
+#: templates/js/modals.js:931
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/modals.js:888
+#: templates/js/modals.js:932
msgid "The requested resource could not be located on the server"
msgstr ""
-#: templates/js/modals.js:892
+#: templates/js/modals.js:936
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/modals.js:893
+#: templates/js/modals.js:937
msgid "Connection timeout while requesting data from server"
msgstr ""
-#: templates/js/modals.js:896
+#: templates/js/modals.js:940
msgid "Error requesting form data"
msgstr ""
@@ -6542,7 +6716,7 @@ msgstr ""
msgid "No category"
msgstr ""
-#: templates/js/part.js:409 templates/js/table_filters.js:318
+#: templates/js/part.js:409 templates/js/table_filters.js:319
msgid "Low stock"
msgstr ""
@@ -6740,7 +6914,7 @@ msgstr ""
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/stock.js:620 templates/js/table_filters.js:138
+#: templates/js/stock.js:620 templates/js/table_filters.js:139
msgid "Depleted"
msgstr ""
@@ -6764,189 +6938,213 @@ msgstr ""
msgid "Status code must be selected"
msgstr ""
-#: templates/js/stock.js:1050
+#: templates/js/stock.js:994
+msgid "Invalid date"
+msgstr ""
+
+#: templates/js/stock.js:1036
+msgid "Location no longer exists"
+msgstr ""
+
+#: templates/js/stock.js:1055
+msgid "Purchase order no longer exists"
+msgstr ""
+
+#: templates/js/stock.js:1074
+msgid "Customer no longer exists"
+msgstr ""
+
+#: templates/js/stock.js:1092
+msgid "Stock item no longer exists"
+msgstr ""
+
+#: templates/js/stock.js:1115
+msgid "Added"
+msgstr ""
+
+#: templates/js/stock.js:1123
+msgid "Removed"
+msgstr ""
+
+#: templates/js/stock.js:1155
msgid "No user information"
msgstr ""
-#: templates/js/stock.js:1060
+#: templates/js/stock.js:1167
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/stock.js:1061
+#: templates/js/stock.js:1168
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/stock.js:1170
+#: templates/js/stock.js:1292
msgid "Create New Location"
msgstr ""
-#: templates/js/stock.js:1269
+#: templates/js/stock.js:1391
msgid "Serial"
msgstr ""
-#: templates/js/stock.js:1362 templates/js/table_filters.js:171
+#: templates/js/stock.js:1484 templates/js/table_filters.js:172
msgid "Installed"
msgstr ""
-#: templates/js/stock.js:1387
+#: templates/js/stock.js:1509
msgid "Install item"
msgstr ""
-#: templates/js/table_filters.js:42
+#: templates/js/table_filters.js:43
msgid "Trackable Part"
msgstr ""
-#: templates/js/table_filters.js:46
+#: templates/js/table_filters.js:47
msgid "Validated"
msgstr ""
-#: templates/js/table_filters.js:71
+#: templates/js/table_filters.js:72
msgid "Include locations"
msgstr ""
-#: templates/js/table_filters.js:81 templates/js/table_filters.js:82
-#: templates/js/table_filters.js:295
+#: templates/js/table_filters.js:82 templates/js/table_filters.js:83
+#: templates/js/table_filters.js:296
msgid "Include subcategories"
msgstr ""
-#: templates/js/table_filters.js:92 templates/js/table_filters.js:181
+#: templates/js/table_filters.js:93 templates/js/table_filters.js:182
msgid "Is Serialized"
msgstr ""
-#: templates/js/table_filters.js:95 templates/js/table_filters.js:188
+#: templates/js/table_filters.js:96 templates/js/table_filters.js:189
msgid "Serial number GTE"
msgstr ""
-#: templates/js/table_filters.js:96 templates/js/table_filters.js:189
+#: templates/js/table_filters.js:97 templates/js/table_filters.js:190
msgid "Serial number greater than or equal to"
msgstr ""
-#: templates/js/table_filters.js:99 templates/js/table_filters.js:192
+#: templates/js/table_filters.js:100 templates/js/table_filters.js:193
msgid "Serial number LTE"
msgstr ""
-#: templates/js/table_filters.js:100 templates/js/table_filters.js:193
+#: templates/js/table_filters.js:101 templates/js/table_filters.js:194
msgid "Serial number less than or equal to"
msgstr ""
-#: templates/js/table_filters.js:103 templates/js/table_filters.js:104
-#: templates/js/table_filters.js:184 templates/js/table_filters.js:185
+#: templates/js/table_filters.js:104 templates/js/table_filters.js:105
+#: templates/js/table_filters.js:185 templates/js/table_filters.js:186
msgid "Serial number"
msgstr ""
-#: templates/js/table_filters.js:108 templates/js/table_filters.js:202
+#: templates/js/table_filters.js:109 templates/js/table_filters.js:203
msgid "Batch code"
msgstr ""
-#: templates/js/table_filters.js:118 templates/js/table_filters.js:285
+#: templates/js/table_filters.js:119 templates/js/table_filters.js:286
msgid "Active parts"
msgstr ""
-#: templates/js/table_filters.js:119
+#: templates/js/table_filters.js:120
msgid "Show stock for active parts"
msgstr ""
-#: templates/js/table_filters.js:124
+#: templates/js/table_filters.js:125
msgid "Part is an assembly"
msgstr ""
-#: templates/js/table_filters.js:128
+#: templates/js/table_filters.js:129
msgid "Is allocated"
msgstr ""
-#: templates/js/table_filters.js:129
+#: templates/js/table_filters.js:130
msgid "Item has been allocated"
msgstr ""
-#: templates/js/table_filters.js:134
+#: templates/js/table_filters.js:135
msgid "Include stock in sublocations"
msgstr ""
-#: templates/js/table_filters.js:139
+#: templates/js/table_filters.js:140
msgid "Show stock items which are depleted"
msgstr ""
-#: templates/js/table_filters.js:146
+#: templates/js/table_filters.js:147
msgid "Show stock items which have expired"
msgstr ""
-#: templates/js/table_filters.js:151
+#: templates/js/table_filters.js:152
msgid "Show stock which is close to expiring"
msgstr ""
-#: templates/js/table_filters.js:157
+#: templates/js/table_filters.js:158
msgid "Show items which are in stock"
msgstr ""
-#: templates/js/table_filters.js:161
+#: templates/js/table_filters.js:162
msgid "In Production"
msgstr ""
-#: templates/js/table_filters.js:162
+#: templates/js/table_filters.js:163
msgid "Show items which are in production"
msgstr ""
-#: templates/js/table_filters.js:166
+#: templates/js/table_filters.js:167
msgid "Include Variants"
msgstr ""
-#: templates/js/table_filters.js:167
+#: templates/js/table_filters.js:168
msgid "Include stock items for variant parts"
msgstr ""
-#: templates/js/table_filters.js:172
+#: templates/js/table_filters.js:173
msgid "Show stock items which are installed in another item"
msgstr ""
-#: templates/js/table_filters.js:176
-msgid "Sent to customer"
-msgstr ""
-
-#: templates/js/table_filters.js:177
+#: templates/js/table_filters.js:178
msgid "Show items which have been assigned to a customer"
msgstr ""
-#: templates/js/table_filters.js:197 templates/js/table_filters.js:198
+#: templates/js/table_filters.js:198 templates/js/table_filters.js:199
msgid "Stock status"
msgstr ""
-#: templates/js/table_filters.js:231
+#: templates/js/table_filters.js:232
msgid "Build status"
msgstr ""
-#: templates/js/table_filters.js:250 templates/js/table_filters.js:267
+#: templates/js/table_filters.js:251 templates/js/table_filters.js:268
msgid "Order status"
msgstr ""
-#: templates/js/table_filters.js:255 templates/js/table_filters.js:272
+#: templates/js/table_filters.js:256 templates/js/table_filters.js:273
msgid "Outstanding"
msgstr ""
-#: templates/js/table_filters.js:296
+#: templates/js/table_filters.js:297
msgid "Include parts in subcategories"
msgstr ""
-#: templates/js/table_filters.js:300
+#: templates/js/table_filters.js:301
msgid "Has IPN"
msgstr ""
-#: templates/js/table_filters.js:301
+#: templates/js/table_filters.js:302
msgid "Part has internal part number"
msgstr ""
-#: templates/js/table_filters.js:306
+#: templates/js/table_filters.js:307
msgid "Show active parts"
msgstr ""
-#: templates/js/table_filters.js:314
+#: templates/js/table_filters.js:315
msgid "Stock available"
msgstr ""
-#: templates/js/table_filters.js:330
+#: templates/js/table_filters.js:331
msgid "Starred"
msgstr ""
-#: templates/js/table_filters.js:342
+#: templates/js/table_filters.js:343
msgid "Purchasable"
msgstr ""
@@ -7003,7 +7201,7 @@ msgstr ""
msgid "All"
msgstr ""
-#: templates/modals.html:21 templates/modals.html:46
+#: templates/modals.html:21 templates/modals.html:47
msgid "Form errors exist"
msgstr ""
@@ -7115,31 +7313,47 @@ msgstr ""
msgid "Instance Name"
msgstr ""
-#: templates/stats.html:19
-msgid "Server status"
+#: templates/stats.html:18
+msgid "Database"
msgstr ""
-#: templates/stats.html:22
-msgid "Healthy"
+#: templates/stats.html:26
+msgid "Server is running in debug mode"
msgstr ""
-#: templates/stats.html:24
-msgid "Issues detected"
-msgstr ""
-
-#: templates/stats.html:31
-msgid "Background Worker"
+#: templates/stats.html:33
+msgid "Docker Mode"
msgstr ""
#: templates/stats.html:34
-msgid "Background worker not running"
+msgid "Server is deployed using docker"
msgstr ""
-#: templates/stats.html:42
-msgid "Email Settings"
+#: templates/stats.html:40
+msgid "Server status"
+msgstr ""
+
+#: templates/stats.html:43
+msgid "Healthy"
msgstr ""
#: templates/stats.html:45
+msgid "Issues detected"
+msgstr ""
+
+#: templates/stats.html:52
+msgid "Background Worker"
+msgstr ""
+
+#: templates/stats.html:55
+msgid "Background worker not running"
+msgstr ""
+
+#: templates/stats.html:63
+msgid "Email Settings"
+msgstr ""
+
+#: templates/stats.html:66
msgid "Email settings not configured"
msgstr ""
@@ -7258,3 +7472,4 @@ msgstr ""
#: users/models.py:187
msgid "Permission to delete items"
msgstr ""
+
diff --git a/InvenTree/locale/pl/LC_MESSAGES/django.po b/InvenTree/locale/pl/LC_MESSAGES/django.po
index edc3b32d2b..c9c9975b16 100644
--- a/InvenTree/locale/pl/LC_MESSAGES/django.po
+++ b/InvenTree/locale/pl/LC_MESSAGES/django.po
@@ -1,9 +1,9 @@
msgid ""
msgstr ""
-"Project-Id-Version: \n"
+"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-05-05 17:33+1000\n"
-"PO-Revision-Date: 2021-04-21 09:33\n"
+"POT-Creation-Date: 2021-05-17 10:46+0000\n"
+"PO-Revision-Date: 2021-05-17 10:47\n"
"Last-Translator: \n"
"Language-Team: Polish\n"
"Language: pl_PL\n"
@@ -11,136 +11,141 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n"
+"X-Crowdin-Project: inventree\n"
+"X-Crowdin-Project-ID: 452300\n"
+"X-Crowdin-Language: pl\n"
+"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
+"X-Crowdin-File-ID: 138\n"
#: InvenTree/api.py:64
msgid "API endpoint not found"
-msgstr ""
+msgstr "Nie znaleziono punktu końcowego API"
#: InvenTree/api.py:110
msgid "No action specified"
-msgstr ""
+msgstr "Nie określono działania"
#: InvenTree/api.py:124
msgid "No matching action found"
-msgstr ""
+msgstr "Nie znaleziono pasującej akcji"
#: InvenTree/fields.py:44
msgid "Enter date"
-msgstr ""
+msgstr "Wprowadź dane"
#: InvenTree/forms.py:110 build/forms.py:102 build/forms.py:123
#: build/forms.py:145 build/forms.py:169 build/forms.py:185 build/forms.py:227
#: order/forms.py:27 order/forms.py:38 order/forms.py:49 order/forms.py:60
#: order/forms.py:71 part/forms.py:134
msgid "Confirm"
-msgstr ""
+msgstr "Potwierdź"
#: InvenTree/forms.py:126
msgid "Confirm delete"
-msgstr ""
+msgstr "Potwierdź usunięcie"
#: InvenTree/forms.py:127
msgid "Confirm item deletion"
-msgstr ""
+msgstr "Potwierdź usuwanie elementu"
#: InvenTree/forms.py:159 templates/registration/login.html:77
msgid "Enter password"
-msgstr ""
+msgstr "Wprowadź hasło"
#: InvenTree/forms.py:160
msgid "Enter new password"
-msgstr ""
+msgstr "Wprowadź nowe hasło"
#: InvenTree/forms.py:167
msgid "Confirm password"
-msgstr ""
+msgstr "Potwierdź hasło"
#: InvenTree/forms.py:168
msgid "Confirm new password"
-msgstr ""
+msgstr "Potwierdź nowe hasło"
#: InvenTree/forms.py:203
msgid "Apply Theme"
-msgstr ""
+msgstr "Zastosuj motyw"
#: InvenTree/forms.py:233
msgid "Select Category"
-msgstr ""
+msgstr "Wybierz kategorię"
#: InvenTree/helpers.py:377
#, python-brace-format
msgid "Duplicate serial: {n}"
-msgstr ""
+msgstr "Powtórzony numer seryjny: {n}"
-#: InvenTree/helpers.py:384 order/models.py:245 order/models.py:353
-#: stock/views.py:1763
+#: InvenTree/helpers.py:384 order/models.py:245 order/models.py:355
+#: stock/views.py:1795
msgid "Invalid quantity provided"
-msgstr ""
+msgstr "Podano nieprawidłową ilość"
#: InvenTree/helpers.py:387
msgid "Empty serial number string"
-msgstr ""
+msgstr "Pusty ciąg numeru seryjnego"
#: InvenTree/helpers.py:409 InvenTree/helpers.py:412 InvenTree/helpers.py:415
#: InvenTree/helpers.py:440
#, python-brace-format
msgid "Invalid group: {g}"
-msgstr ""
+msgstr "Nieprawidłowa grupa: {g}"
#: InvenTree/helpers.py:445
#, python-brace-format
msgid "Duplicate serial: {g}"
-msgstr ""
+msgstr "Powtórzony numer seryjny: {g}"
#: InvenTree/helpers.py:453
msgid "No serial numbers found"
-msgstr ""
+msgstr "Nie znaleziono numerów seryjnych"
#: InvenTree/helpers.py:457
#, python-brace-format
msgid "Number of unique serial number ({s}) must match quantity ({q})"
-msgstr ""
+msgstr "Ilość numerów seryjnych ({s}) musi odpowiadać ilości ({q})"
-#: InvenTree/models.py:59 stock/models.py:1662
+#: InvenTree/models.py:59 stock/models.py:1761
msgid "Attachment"
-msgstr ""
+msgstr "Załącznik"
#: InvenTree/models.py:60
msgid "Select file to attach"
-msgstr ""
+msgstr "Wybierz plik do załączenia"
#: InvenTree/models.py:62 templates/attachment_table.html:16
msgid "Comment"
-msgstr ""
+msgstr "Komentarz"
#: InvenTree/models.py:62
msgid "File comment"
-msgstr ""
+msgstr "Komentarz pliku"
-#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:1908
+#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:1946
#: report/templates/report/inventree_test_report_base.html:91
-#: templates/js/stock.js:1041
+#: templates/js/stock.js:1146
msgid "User"
-msgstr ""
+msgstr "Użytkownik"
#: InvenTree/models.py:72
msgid "upload date"
-msgstr ""
+msgstr "data przesłania"
-#: InvenTree/models.py:107 InvenTree/models.py:108 label/models.py:101
-#: part/models.py:686 part/models.py:2049 part/templates/part/params.html:27
+#: InvenTree/models.py:107 InvenTree/models.py:108 label/models.py:102
+#: part/models.py:686 part/models.py:2087 part/templates/part/params.html:27
#: report/models.py:179 templates/InvenTree/search.html:137
#: templates/InvenTree/search.html:289 templates/js/part.js:110
#: templates/js/part.js:553 templates/js/stock.js:944
msgid "Name"
-msgstr ""
+msgstr "Nazwa"
#: InvenTree/models.py:114 build/models.py:134
-#: build/templates/build/detail.html:21 company/models.py:342
-#: company/models.py:494 company/templates/company/detail.html:27
+#: build/templates/build/detail.html:21 company/models.py:339
+#: company/models.py:491 company/templates/company/detail.html:27
#: company/templates/company/manufacturer_part_base.html:72
#: company/templates/company/supplier_part_base.html:71
-#: company/templates/company/supplier_part_detail.html:31 label/models.py:108
+#: company/templates/company/supplier_part_detail.html:31 label/models.py:109
#: order/models.py:101 order/templates/order/purchase_order_detail.html:143
#: part/models.py:710 part/templates/part/detail.html:54
#: part/templates/part/set_category.html:14 report/models.py:192
@@ -154,37 +159,37 @@ msgstr ""
#: templates/js/order.js:280 templates/js/part.js:169 templates/js/part.js:252
#: templates/js/part.js:371 templates/js/part.js:565 templates/js/part.js:643
#: templates/js/stock.js:554 templates/js/stock.js:956
-#: templates/js/stock.js:1015
+#: templates/js/stock.js:1001
msgid "Description"
-msgstr ""
+msgstr "Opis"
#: InvenTree/models.py:115
msgid "Description (optional)"
-msgstr ""
+msgstr "Opis (opcjonalny)"
#: InvenTree/models.py:123
msgid "parent"
-msgstr ""
+msgstr "nadrzędny"
-#: InvenTree/settings.py:491
+#: InvenTree/settings.py:501
msgid "English"
-msgstr ""
+msgstr "Angielski"
-#: InvenTree/settings.py:492
+#: InvenTree/settings.py:502
msgid "French"
-msgstr ""
+msgstr "Francuski"
-#: InvenTree/settings.py:493
+#: InvenTree/settings.py:503
msgid "German"
-msgstr ""
+msgstr "Niemiecki"
-#: InvenTree/settings.py:494
+#: InvenTree/settings.py:504
msgid "Polish"
-msgstr ""
+msgstr "Polski"
-#: InvenTree/settings.py:495
+#: InvenTree/settings.py:505
msgid "Turkish"
-msgstr ""
+msgstr "Turecki"
#: InvenTree/status.py:93
msgid "Background worker check failed"
@@ -192,91 +197,168 @@ msgstr ""
#: InvenTree/status.py:97
msgid "Email backend not configured"
-msgstr ""
+msgstr "Nie skonfigurowano backendu e-mail"
#: InvenTree/status.py:100
msgid "InvenTree system health checks failed"
msgstr ""
-#: InvenTree/status_codes.py:102 InvenTree/status_codes.py:143
-#: InvenTree/status_codes.py:236
+#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:145
+#: InvenTree/status_codes.py:314
msgid "Pending"
-msgstr ""
+msgstr "W toku"
-#: InvenTree/status_codes.py:103
+#: InvenTree/status_codes.py:105
msgid "Placed"
-msgstr ""
+msgstr "Umieszczony"
-#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:239
+#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:317
msgid "Complete"
-msgstr ""
-
-#: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145
-#: InvenTree/status_codes.py:238
-msgid "Cancelled"
-msgstr ""
-
-#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146
-#: InvenTree/status_codes.py:188
-msgid "Lost"
-msgstr ""
+msgstr "Zakończono"
#: InvenTree/status_codes.py:107 InvenTree/status_codes.py:147
-#: InvenTree/status_codes.py:190
-msgid "Returned"
-msgstr ""
+#: InvenTree/status_codes.py:316
+msgid "Cancelled"
+msgstr "Anulowano"
-#: InvenTree/status_codes.py:144
+#: InvenTree/status_codes.py:108 InvenTree/status_codes.py:148
+#: InvenTree/status_codes.py:190
+msgid "Lost"
+msgstr "Zagubiono"
+
+#: InvenTree/status_codes.py:109 InvenTree/status_codes.py:149
+#: InvenTree/status_codes.py:192
+msgid "Returned"
+msgstr "Zwrócone"
+
+#: InvenTree/status_codes.py:146
#: order/templates/order/sales_order_base.html:124
msgid "Shipped"
-msgstr ""
-
-#: InvenTree/status_codes.py:184
-msgid "OK"
-msgstr ""
-
-#: InvenTree/status_codes.py:185
-msgid "Attention needed"
-msgstr ""
+msgstr "Wysłane"
#: InvenTree/status_codes.py:186
-msgid "Damaged"
-msgstr ""
+msgid "OK"
+msgstr "OK"
#: InvenTree/status_codes.py:187
-msgid "Destroyed"
-msgstr ""
+msgid "Attention needed"
+msgstr "Wymaga uwagi"
+
+#: InvenTree/status_codes.py:188
+msgid "Damaged"
+msgstr "Uszkodzone"
#: InvenTree/status_codes.py:189
+msgid "Destroyed"
+msgstr "Zniszczone"
+
+#: InvenTree/status_codes.py:191
msgid "Rejected"
+msgstr "Odrzucone"
+
+#: InvenTree/status_codes.py:272
+msgid "Legacy stock tracking entry"
msgstr ""
-#: InvenTree/status_codes.py:237
-msgid "Production"
+#: InvenTree/status_codes.py:274
+msgid "Stock item created"
msgstr ""
+#: InvenTree/status_codes.py:276
+msgid "Edited stock item"
+msgstr ""
+
+#: InvenTree/status_codes.py:277
+msgid "Assigned serial number"
+msgstr ""
+
+#: InvenTree/status_codes.py:279
+msgid "Stock counted"
+msgstr ""
+
+#: InvenTree/status_codes.py:280
+msgid "Stock manually added"
+msgstr ""
+
+#: InvenTree/status_codes.py:281
+msgid "Stock manually removed"
+msgstr ""
+
+#: InvenTree/status_codes.py:283
+msgid "Location changed"
+msgstr "Lokalizacja zmieniona"
+
+#: InvenTree/status_codes.py:285
+msgid "Installed into assembly"
+msgstr ""
+
+#: InvenTree/status_codes.py:286
+msgid "Removed from assembly"
+msgstr ""
+
+#: InvenTree/status_codes.py:288
+msgid "Installed component item"
+msgstr ""
+
+#: InvenTree/status_codes.py:289
+msgid "Removed component item"
+msgstr ""
+
+#: InvenTree/status_codes.py:291
+msgid "Split from parent item"
+msgstr ""
+
+#: InvenTree/status_codes.py:292
+msgid "Split child item"
+msgstr "Podziel element podrzędny"
+
+#: InvenTree/status_codes.py:294 templates/js/table_filters.js:177
+msgid "Sent to customer"
+msgstr "Wyślij do klienta"
+
+#: InvenTree/status_codes.py:295
+msgid "Returned from customer"
+msgstr "Zwrócony od klienta"
+
+#: InvenTree/status_codes.py:297
+msgid "Build order output created"
+msgstr ""
+
+#: InvenTree/status_codes.py:298
+msgid "Build order output completed"
+msgstr ""
+
+#: InvenTree/status_codes.py:300
+msgid "Received against purchase order"
+msgstr ""
+
+#: InvenTree/status_codes.py:315
+msgid "Production"
+msgstr "Produkcja"
+
#: InvenTree/validators.py:22
msgid "Not a valid currency code"
-msgstr ""
+msgstr "Nieprawidłowy kod waluty"
#: InvenTree/validators.py:50
msgid "Invalid character in part name"
-msgstr ""
+msgstr "Błędny znak w nazwie elementu"
#: InvenTree/validators.py:63
#, python-brace-format
msgid "IPN must match regex pattern {pat}"
-msgstr ""
+msgstr "IPN musi być zgodny z wyrażeniem regularnym {pat}"
#: InvenTree/validators.py:77 InvenTree/validators.py:91
#: InvenTree/validators.py:105
-msgid "Reference must match pattern"
+#, python-brace-format
+msgid "Reference must match pattern {pattern}"
msgstr ""
#: InvenTree/validators.py:113
#, python-brace-format
msgid "Illegal character in name ({x})"
-msgstr ""
+msgstr "Niedozwolony znak w nazwie ({x})"
#: InvenTree/validators.py:132 InvenTree/validators.py:148
msgid "Overage value must not be negative"
@@ -292,27 +374,27 @@ msgstr ""
#: InvenTree/views.py:587
msgid "Delete Item"
-msgstr ""
+msgstr "Usuń element"
#: InvenTree/views.py:636
msgid "Check box to confirm item deletion"
-msgstr ""
+msgstr "Zaznacz pole aby potwierdzić usunięcie elementu"
#: InvenTree/views.py:651 templates/InvenTree/settings/user.html:18
msgid "Edit User Information"
-msgstr ""
+msgstr "Edytuj informacje użytkownika"
#: InvenTree/views.py:662 templates/InvenTree/settings/user.html:22
msgid "Set Password"
-msgstr ""
+msgstr "Ustaw hasło"
#: InvenTree/views.py:681
msgid "Password fields must match"
-msgstr ""
+msgstr "Hasła muszą być zgodne"
#: InvenTree/views.py:887 templates/navbar.html:95
msgid "System Information"
-msgstr ""
+msgstr "Informacja systemowa"
#: barcodes/api.py:53 barcodes/api.py:150
msgid "Must provide barcode_data parameter"
@@ -356,7 +438,7 @@ msgstr ""
#: build/forms.py:37
msgid "Build Order reference"
-msgstr ""
+msgstr "Numer Zlecenia Budowy"
#: build/forms.py:38
msgid "Order target date"
@@ -370,43 +452,43 @@ msgstr ""
#: templates/js/build.js:783 templates/js/order.js:200
#: templates/js/order.js:298
msgid "Target Date"
-msgstr ""
+msgstr "Data docelowa"
#: build/forms.py:43 build/models.py:224
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1241
+#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1245
#: build/templates/build/allocation_card.html:23
#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:123
-#: build/templates/build/detail.html:31 common/models.py:703
+#: build/templates/build/detail.html:31 common/models.py:705
#: company/forms.py:176 company/templates/company/supplier_part_pricing.html:77
-#: order/forms.py:188 order/forms.py:205 order/forms.py:239 order/forms.py:261
-#: order/forms.py:278 order/models.py:603 order/models.py:794
+#: order/forms.py:188 order/forms.py:205 order/forms.py:240 order/forms.py:262
+#: order/forms.py:279 order/models.py:614 order/models.py:815
+#: order/templates/order/order_wizard/match_parts.html:29
#: order/templates/order/order_wizard/select_parts.html:32
#: order/templates/order/purchase_order_detail.html:175
#: order/templates/order/sales_order_detail.html:70
#: order/templates/order/sales_order_detail.html:77
-#: order/templates/order/sales_order_detail.html:159
-#: order/templates/order/sales_order_detail.html:224 part/forms.py:342
-#: part/forms.py:371 part/forms.py:387 part/models.py:2178
+#: order/templates/order/sales_order_detail.html:162
+#: order/templates/order/sales_order_detail.html:230 part/forms.py:342
+#: part/forms.py:371 part/forms.py:387 part/models.py:2216
#: part/templates/part/allocation.html:19
#: part/templates/part/allocation.html:53
-#: part/templates/part/part_pricing.html:11
-#: part/templates/part/part_pricing.html:18
+#: part/templates/part/part_pricing.html:13
#: part/templates/part/sale_prices.html:85
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:77
-#: stock/forms.py:175 stock/forms.py:308 stock/models.py:1566
-#: stock/templates/stock/item_base.html:244
+#: stock/forms.py:175 stock/forms.py:308
+#: stock/templates/stock/item_base.html:250
#: stock/templates/stock/stock_adjust.html:18 templates/js/barcode.js:364
#: templates/js/bom.js:205 templates/js/build.js:476 templates/js/build.js:1014
-#: templates/js/stock.js:1033 templates/js/stock.js:1271
+#: templates/js/stock.js:1131 templates/js/stock.js:1393
msgid "Quantity"
-msgstr ""
+msgstr "Ilość"
#: build/forms.py:49
msgid "Number of items to build"
@@ -416,9 +498,9 @@ msgstr ""
msgid "Enter quantity for build output"
msgstr ""
-#: build/forms.py:95 order/forms.py:233 stock/forms.py:118
+#: build/forms.py:95 order/forms.py:234 stock/forms.py:118
msgid "Serial Numbers"
-msgstr ""
+msgstr "Numer seryjny"
#: build/forms.py:97
msgid "Enter serial numbers for build outputs"
@@ -438,35 +520,36 @@ msgstr ""
#: build/forms.py:169
msgid "Confirm stock allocation"
-msgstr ""
+msgstr "Potwierdź przydział zapasów"
#: build/forms.py:186
msgid "Mark build as complete"
-msgstr ""
+msgstr "Oznacz budowę jako ukończoną"
#: build/forms.py:210 build/templates/build/auto_allocate.html:18
#: order/forms.py:82 stock/forms.py:347
-#: stock/templates/stock/item_base.html:274
+#: stock/templates/stock/item_base.html:280
#: stock/templates/stock/stock_adjust.html:17
#: templates/InvenTree/search.html:260 templates/js/barcode.js:363
#: templates/js/barcode.js:531 templates/js/build.js:490
-#: templates/js/stock.js:641
+#: templates/js/stock.js:641 templates/js/stock.js:1023
msgid "Location"
-msgstr ""
+msgstr "Lokalizacja"
#: build/forms.py:211
msgid "Location of completed parts"
-msgstr ""
+msgstr "Lokalizacja ukończonych części"
#: build/forms.py:215 build/templates/build/build_base.html:128
-#: build/templates/build/detail.html:59 order/models.py:455
+#: build/templates/build/detail.html:59 order/models.py:466
#: order/templates/order/receive_parts.html:24
-#: stock/templates/stock/item_base.html:392 templates/InvenTree/search.html:252
+#: stock/templates/stock/item_base.html:398 templates/InvenTree/search.html:252
#: templates/js/barcode.js:119 templates/js/build.js:770
#: templates/js/order.js:187 templates/js/order.js:285
-#: templates/js/stock.js:628 templates/js/stock.js:1279
+#: templates/js/stock.js:628 templates/js/stock.js:1100
+#: templates/js/stock.js:1401
msgid "Status"
-msgstr ""
+msgstr "Status"
#: build/forms.py:216
msgid "Build output stock status"
@@ -474,7 +557,7 @@ msgstr ""
#: build/forms.py:223
msgid "Confirm incomplete"
-msgstr ""
+msgstr "Potwierdź nieukończone"
#: build/forms.py:224
msgid "Confirm completion with incomplete stock allocation"
@@ -486,7 +569,7 @@ msgstr ""
#: build/forms.py:252
msgid "Confirm cancel"
-msgstr ""
+msgstr "Na pewno anulować?"
#: build/forms.py:252 build/views.py:66
msgid "Confirm build cancellation"
@@ -501,7 +584,7 @@ msgstr ""
#: part/templates/part/allocation.html:23
#: report/templates/report/inventree_build_order_base.html:106
msgid "Build Order"
-msgstr ""
+msgstr "Zlecenie Budowy"
#: build/models.py:66 build/templates/build/index.html:8
#: build/templates/build/index.html:15 order/templates/order/so_builds.html:12
@@ -511,46 +594,46 @@ msgstr ""
#: templates/InvenTree/search.html:185
#: templates/InvenTree/settings/tabs.html:31 users/models.py:43
msgid "Build Orders"
-msgstr ""
+msgstr "Zlecenia budowy"
#: build/models.py:126
msgid "Build Order Reference"
-msgstr ""
+msgstr "Odwołanie do zamówienia wykonania"
-#: build/models.py:127 order/models.py:99 order/models.py:605
+#: build/models.py:127 order/models.py:99 order/models.py:616
#: order/templates/order/purchase_order_detail.html:170
-#: order/templates/order/sales_order_detail.html:219 part/models.py:2187
+#: order/templates/order/sales_order_detail.html:225 part/models.py:2225
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92 templates/js/bom.js:197
#: templates/js/build.js:565 templates/js/build.js:1008
msgid "Reference"
-msgstr ""
+msgstr "Referencja"
#: build/models.py:137
msgid "Brief description of the build"
-msgstr ""
+msgstr "Krótki opis budowy"
#: build/models.py:146 build/templates/build/build_base.html:153
#: build/templates/build/detail.html:77
msgid "Parent Build"
-msgstr ""
+msgstr "Budowa nadrzędna"
#: build/models.py:147
msgid "BuildOrder to which this build is allocated"
-msgstr ""
+msgstr "Zamówienie budowy, do którego budowa jest przypisana"
#: build/models.py:152 build/templates/build/auto_allocate.html:16
#: build/templates/build/build_base.html:118
-#: build/templates/build/detail.html:26 company/models.py:688
-#: order/models.py:647 order/models.py:679
+#: build/templates/build/detail.html:26 company/models.py:622
+#: order/models.py:658 order/models.py:691
#: order/templates/order/order_wizard/select_parts.html:30
#: order/templates/order/purchase_order_detail.html:131
#: order/templates/order/receive_parts.html:19
-#: order/templates/order/sales_order_detail.html:207 part/models.py:321
-#: part/models.py:1876 part/models.py:1888 part/models.py:1906
-#: part/models.py:1981 part/models.py:2077 part/models.py:2162
+#: order/templates/order/sales_order_detail.html:213 part/models.py:321
+#: part/models.py:1914 part/models.py:1926 part/models.py:1944
+#: part/models.py:2019 part/models.py:2115 part/models.py:2200
#: part/templates/part/part_app_base.html:8
-#: part/templates/part/part_pricing.html:14 part/templates/part/related.html:29
+#: part/templates/part/part_pricing.html:9 part/templates/part/related.html:29
#: part/templates/part/set_category.html:13
#: report/templates/report/inventree_build_order_base.html:110
#: report/templates/report/inventree_po_report.html:90
@@ -560,94 +643,94 @@ msgstr ""
#: templates/js/build.js:741 templates/js/build.js:981
#: templates/js/company.js:140 templates/js/company.js:238
#: templates/js/part.js:233 templates/js/part.js:338 templates/js/stock.js:523
-#: templates/js/stock.js:1343
+#: templates/js/stock.js:1465
msgid "Part"
-msgstr ""
+msgstr "Część"
#: build/models.py:160
msgid "Select part to build"
-msgstr ""
+msgstr "Wybierz część do budowy"
#: build/models.py:165
msgid "Sales Order Reference"
-msgstr ""
+msgstr "Odwołanie do zamówienia sprzedaży"
#: build/models.py:169
msgid "SalesOrder to which this build is allocated"
-msgstr ""
+msgstr "Zamówienie sprzedaży, do którego budowa jest przypisana"
#: build/models.py:174
msgid "Source Location"
-msgstr ""
+msgstr "Lokalizacja źródła"
#: build/models.py:178
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
-msgstr ""
+msgstr "Wybierz lokalizację, z której pobrać element do budowy (pozostaw puste, aby wziąć z dowolnej lokalizacji)"
#: build/models.py:183
msgid "Destination Location"
-msgstr ""
+msgstr "Lokalizacja docelowa"
#: build/models.py:187
msgid "Select location where the completed items will be stored"
-msgstr ""
+msgstr "Wybierz lokalizację, w której będą przechowywane ukończone elementy"
#: build/models.py:191
msgid "Build Quantity"
-msgstr ""
+msgstr "Ilość do stworzenia"
#: build/models.py:194
msgid "Number of stock items to build"
-msgstr ""
+msgstr "Ilość przedmiotów do zbudowania"
#: build/models.py:198
msgid "Completed items"
-msgstr ""
+msgstr "Ukończone elementy"
#: build/models.py:200
msgid "Number of stock items which have been completed"
-msgstr ""
+msgstr "Ilość produktów magazynowych które zostały ukończone"
#: build/models.py:204 part/templates/part/part_base.html:160
msgid "Build Status"
-msgstr ""
+msgstr "Status budowania"
#: build/models.py:208
msgid "Build status code"
-msgstr ""
+msgstr "Kod statusu budowania"
-#: build/models.py:212 stock/models.py:432
+#: build/models.py:212 stock/models.py:464
msgid "Batch Code"
-msgstr ""
+msgstr "Kod partii"
#: build/models.py:216
msgid "Batch code for this build output"
-msgstr ""
+msgstr "Kod partii dla wyjścia budowy"
#: build/models.py:219 order/models.py:105 part/models.py:882
#: part/templates/part/detail.html:126 templates/js/order.js:293
msgid "Creation Date"
-msgstr ""
+msgstr "Data utworzenia"
-#: build/models.py:223 order/models.py:461
+#: build/models.py:223 order/models.py:472
msgid "Target completion date"
-msgstr ""
+msgstr "Docelowy termin zakończenia"
#: build/models.py:227 order/models.py:218 templates/js/build.js:788
msgid "Completion Date"
-msgstr ""
+msgstr "Data zakończenia"
#: build/models.py:233
msgid "completed by"
-msgstr ""
+msgstr "zrealizowane przez"
#: build/models.py:241
msgid "Issued by"
-msgstr ""
+msgstr "Wydany przez"
#: build/models.py:242
msgid "User who issued this build order"
-msgstr ""
+msgstr "Użytkownik, który wydał to zamówienie"
#: build/models.py:250 build/templates/build/build_base.html:174
#: build/templates/build/detail.html:105 order/models.py:119
@@ -655,11 +738,11 @@ msgstr ""
#: order/templates/order/sales_order_base.html:138 part/models.py:886
#: report/templates/report/inventree_build_order_base.html:159
msgid "Responsible"
-msgstr ""
+msgstr "Odpowiedzialny"
#: build/models.py:251
msgid "User responsible for this build order"
-msgstr ""
+msgstr "Użytkownik odpowiedzialny za to zamówienie budowy"
#: build/models.py:256 build/templates/build/detail.html:91
#: company/templates/company/manufacturer_part_base.html:79
@@ -667,155 +750,151 @@ msgstr ""
#: company/templates/company/supplier_part_base.html:78
#: company/templates/company/supplier_part_detail.html:28
#: part/templates/part/detail.html:83 part/templates/part/part_base.html:101
-#: stock/models.py:426 stock/templates/stock/item_base.html:334
+#: stock/models.py:458 stock/templates/stock/item_base.html:340
msgid "External Link"
-msgstr ""
+msgstr "Link Zewnętrzny"
-#: build/models.py:257 part/models.py:744 stock/models.py:428
+#: build/models.py:257 part/models.py:744 stock/models.py:460
msgid "Link to external URL"
-msgstr ""
+msgstr "Link do zewnętrznego adresu URL"
#: build/models.py:261 build/templates/build/navbar.html:53
-#: company/models.py:135 company/models.py:501
+#: company/models.py:132 company/models.py:498
#: company/templates/company/navbar.html:70
#: company/templates/company/navbar.html:73 order/models.py:123
-#: order/models.py:607 order/templates/order/po_navbar.html:29
+#: order/models.py:618 order/templates/order/po_navbar.html:29
#: order/templates/order/po_navbar.html:32
#: order/templates/order/purchase_order_detail.html:209
-#: order/templates/order/sales_order_detail.html:264
+#: order/templates/order/sales_order_detail.html:278
#: order/templates/order/so_navbar.html:33
#: order/templates/order/so_navbar.html:36 part/models.py:871
#: part/templates/part/navbar.html:128
#: report/templates/report/inventree_build_order_base.html:173
#: stock/forms.py:173 stock/forms.py:317 stock/forms.py:349 stock/forms.py:377
-#: stock/models.py:498 stock/models.py:1558 stock/models.py:1668
+#: stock/models.py:530 stock/models.py:1665 stock/models.py:1767
#: stock/templates/stock/navbar.html:57 templates/js/barcode.js:37
#: templates/js/bom.js:333 templates/js/stock.js:128 templates/js/stock.js:671
msgid "Notes"
-msgstr ""
+msgstr "Uwagi"
#: build/models.py:262
msgid "Extra build notes"
-msgstr ""
+msgstr "Dodatkowe notatki do budowy"
#: build/models.py:739
msgid "No build output specified"
-msgstr ""
+msgstr "Nie określono danych wyjściowych budowy"
#: build/models.py:742
msgid "Build output is already completed"
-msgstr ""
+msgstr "Budowanie wyjścia jest już ukończone"
#: build/models.py:745
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:838
-msgid "Completed build output"
-msgstr ""
-
-#: build/models.py:1132
+#: build/models.py:1136
msgid "BuildItem must be unique for build, stock_item and install_into"
msgstr ""
-#: build/models.py:1157
-msgid "Build item must specify a build output, as master part is marked as trackable"
-msgstr ""
-
#: build/models.py:1161
-#, python-brace-format
-msgid "Selected stock item not found in BOM for part '{p}'"
+msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
#: build/models.py:1165
#, python-brace-format
+msgid "Selected stock item not found in BOM for part '{p}'"
+msgstr ""
+
+#: build/models.py:1169
+#, python-brace-format
msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
msgstr ""
-#: build/models.py:1172 order/models.py:768
+#: build/models.py:1176 order/models.py:789
msgid "StockItem is over-allocated"
msgstr ""
-#: build/models.py:1176 order/models.py:771
+#: build/models.py:1180 order/models.py:792
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1180
+#: build/models.py:1184
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1220 stock/templates/stock/item_base.html:306
+#: build/models.py:1224 stock/templates/stock/item_base.html:312
#: templates/InvenTree/search.html:183 templates/js/build.js:714
#: templates/navbar.html:29
msgid "Build"
-msgstr ""
+msgstr "Budowa"
-#: build/models.py:1221
+#: build/models.py:1225
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1228 part/templates/part/allocation.html:18
+#: build/models.py:1232 part/templates/part/allocation.html:18
#: part/templates/part/allocation.html:24
#: part/templates/part/allocation.html:31
#: part/templates/part/allocation.html:49
#: stock/templates/stock/item_base.html:8
#: stock/templates/stock/item_base.html:93
-#: stock/templates/stock/item_base.html:328
+#: stock/templates/stock/item_base.html:334
#: stock/templates/stock/stock_adjust.html:16 templates/js/build.js:831
-#: templates/js/stock.js:1004 templates/js/stock.js:1262
+#: templates/js/stock.js:1082 templates/js/stock.js:1384
msgid "Stock Item"
-msgstr ""
+msgstr "Element magazynowy"
-#: build/models.py:1229
+#: build/models.py:1233
msgid "Source stock item"
-msgstr ""
+msgstr "Lokalizacja magazynowania przedmiotu"
-#: build/models.py:1242
+#: build/models.py:1246
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1250
+#: build/models.py:1254
msgid "Install into"
-msgstr ""
+msgstr "Zainstaluj do"
-#: build/models.py:1251
+#: build/models.py:1255
msgid "Destination stock item"
-msgstr ""
+msgstr "Docelowa lokalizacja magazynowa przedmiotu"
#: build/templates/build/allocate.html:7
msgid "Allocate Parts"
-msgstr ""
+msgstr "Przydziel części"
#: build/templates/build/allocate.html:15
msgid "Allocate Stock to Build"
-msgstr ""
+msgstr "Przydziel zapasy do budowy"
#: build/templates/build/allocate.html:22
msgid "Allocate stock to build"
-msgstr ""
+msgstr "Przydziel zapasy do budowy"
#: build/templates/build/allocate.html:23
msgid "Auto Allocate"
-msgstr ""
+msgstr "Automatyczne przypisywanie"
#: build/templates/build/allocate.html:25 templates/js/build.js:646
msgid "Unallocate stock"
-msgstr ""
+msgstr "Cofnij przydział zapasów"
#: build/templates/build/allocate.html:26 build/views.py:319 build/views.py:805
msgid "Unallocate Stock"
-msgstr ""
+msgstr "Cofnij przydział zapasów"
#: build/templates/build/allocate.html:29
msgid "Order required parts"
-msgstr ""
+msgstr "Zamów wymagane komponenty"
#: build/templates/build/allocate.html:30
#: company/templates/company/detail_manufacturer_part.html:33
-#: company/templates/company/detail_supplier_part.html:32 order/views.py:795
+#: company/templates/company/detail_supplier_part.html:32 order/views.py:986
#: part/templates/part/category.html:127
msgid "Order Parts"
-msgstr ""
+msgstr "Zamów części"
#: build/templates/build/allocate.html:36
msgid "Untracked stock has been fully allocated for this Build Order"
@@ -832,12 +911,12 @@ msgstr ""
#: build/templates/build/allocation_card.html:21
#: build/templates/build/complete_output.html:46
#: order/templates/order/sales_order_detail.html:75
-#: order/templates/order/sales_order_detail.html:157
+#: order/templates/order/sales_order_detail.html:160
#: report/templates/report/inventree_test_report_base.html:75
-#: stock/models.py:420 stock/templates/stock/item_base.html:238
+#: stock/models.py:452 stock/templates/stock/item_base.html:244
#: templates/js/build.js:474
msgid "Serial Number"
-msgstr ""
+msgstr "Numer Seryjny"
#: build/templates/build/attachments.html:12
#: build/templates/build/navbar.html:43 build/templates/build/navbar.html:46
@@ -846,11 +925,11 @@ msgstr ""
#: part/templates/part/navbar.html:122 stock/templates/stock/navbar.html:47
#: stock/templates/stock/navbar.html:50
msgid "Attachments"
-msgstr ""
+msgstr "Załączniki"
#: build/templates/build/auto_allocate.html:9
msgid "Automatically Allocate Stock"
-msgstr ""
+msgstr "Przydziel automatycznie zapasy"
#: build/templates/build/auto_allocate.html:10
msgid "The following stock items will be allocated to the specified build output"
@@ -897,10 +976,10 @@ msgstr ""
#: order/templates/order/order_base.html:26
#: order/templates/order/sales_order_base.html:35
#: part/templates/part/category.html:18 part/templates/part/part_base.html:29
-#: stock/templates/stock/item_base.html:118
+#: stock/templates/stock/item_base.html:124
#: stock/templates/stock/location.html:31
msgid "Admin view"
-msgstr ""
+msgstr "Widok administratora"
#: build/templates/build/build_base.html:71
#: build/templates/build/build_base.html:140
@@ -908,18 +987,18 @@ msgstr ""
#: order/templates/order/order_base.html:86
#: order/templates/order/sales_order_base.html:41
#: order/templates/order/sales_order_base.html:86
-#: templates/js/table_filters.js:240 templates/js/table_filters.js:259
-#: templates/js/table_filters.js:276
+#: templates/js/table_filters.js:241 templates/js/table_filters.js:260
+#: templates/js/table_filters.js:277
msgid "Overdue"
-msgstr ""
+msgstr "Zaległe"
#: build/templates/build/build_base.html:80
msgid "Print actions"
-msgstr ""
+msgstr "Akcje druku"
#: build/templates/build/build_base.html:84
msgid "Print Build Order"
-msgstr ""
+msgstr "Wydrukuj Numer Zlecenia Budowy"
#: build/templates/build/build_base.html:90
#: build/templates/build/build_base.html:215
@@ -932,17 +1011,17 @@ msgstr ""
#: build/templates/build/build_base.html:99
msgid "Edit Build"
-msgstr ""
+msgstr "Edytuj Budowę"
#: build/templates/build/build_base.html:101
#: build/templates/build/build_base.html:199 build/views.py:57
msgid "Cancel Build"
-msgstr ""
+msgstr "Anuluj Budowę"
#: build/templates/build/build_base.html:114
#: build/templates/build/detail.html:11
msgid "Build Details"
-msgstr ""
+msgstr "Szczegóły budowy"
#: build/templates/build/build_base.html:140
#, python-format
@@ -952,25 +1031,25 @@ msgstr ""
#: build/templates/build/build_base.html:147
#: build/templates/build/detail.html:64
msgid "Progress"
-msgstr ""
+msgstr "Postęp"
#: build/templates/build/build_base.html:160
-#: build/templates/build/detail.html:84 order/models.py:677
+#: build/templates/build/detail.html:84 order/models.py:689
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:33
#: order/templates/order/sales_order_ship.html:25
#: part/templates/part/allocation.html:30
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
-#: stock/templates/stock/item_base.html:268 templates/js/order.js:245
+#: stock/templates/stock/item_base.html:274 templates/js/order.js:245
msgid "Sales Order"
-msgstr ""
+msgstr "Zamówienie zakupu"
#: build/templates/build/build_base.html:167
#: build/templates/build/detail.html:98
#: report/templates/report/inventree_build_order_base.html:153
msgid "Issued By"
-msgstr ""
+msgstr "Dodane przez"
#: build/templates/build/build_base.html:207
msgid "Incomplete Outputs"
@@ -995,7 +1074,7 @@ msgstr ""
#: build/templates/build/build_output.html:23
msgid "Create New Output"
-msgstr ""
+msgstr "Utwórz nowe wyjście"
#: build/templates/build/build_output.html:36
msgid "Create a new build output"
@@ -1035,7 +1114,7 @@ msgstr ""
#: build/templates/build/cancel.html:5
msgid "Are you sure you wish to cancel this build?"
-msgstr ""
+msgstr "Czy na pewno przerwać tę budowę?"
#: build/templates/build/complete.html:8
msgid "Build Order is complete"
@@ -1085,11 +1164,11 @@ msgstr ""
#: build/templates/build/create_build_item.html:17
#, python-format
msgid "No stock available for %(part)s"
-msgstr ""
+msgstr "Brak zapasów dla %(part)s"
#: build/templates/build/delete_build_item.html:8
msgid "Are you sure you want to unallocate this stock?"
-msgstr ""
+msgstr "Czy na pewno chcesz anulować przydział tego zapasu?"
#: build/templates/build/delete_build_item.html:11
msgid "The selected stock will be unallocated from the build output"
@@ -1097,7 +1176,7 @@ msgstr ""
#: build/templates/build/detail.html:35
msgid "Stock Source"
-msgstr ""
+msgstr "Źródło magazynu"
#: build/templates/build/detail.html:40
msgid "Stock can be taken from any available location."
@@ -1105,24 +1184,24 @@ msgstr ""
#: build/templates/build/detail.html:46 stock/forms.py:169 stock/forms.py:375
msgid "Destination"
-msgstr ""
+msgstr "Przeznaczenie"
#: build/templates/build/detail.html:53
msgid "Destination location not specified"
-msgstr ""
+msgstr "Nie określono lokalizacji docelowej"
#: build/templates/build/detail.html:70
-#: stock/templates/stock/item_base.html:292 templates/js/stock.js:636
-#: templates/js/stock.js:1286 templates/js/table_filters.js:107
-#: templates/js/table_filters.js:201
+#: stock/templates/stock/item_base.html:298 templates/js/stock.js:636
+#: templates/js/stock.js:1408 templates/js/table_filters.js:108
+#: templates/js/table_filters.js:202
msgid "Batch"
-msgstr ""
+msgstr "Partia"
#: build/templates/build/detail.html:116
#: order/templates/order/order_base.html:111
#: order/templates/order/sales_order_base.html:111 templates/js/build.js:778
msgid "Created"
-msgstr ""
+msgstr "Utworzony"
#: build/templates/build/detail.html:127
msgid "No target date set"
@@ -1130,11 +1209,11 @@ msgstr ""
#: build/templates/build/detail.html:132 templates/js/build.js:756
msgid "Completed"
-msgstr ""
+msgstr "Zakończone"
#: build/templates/build/detail.html:136
msgid "Build not complete"
-msgstr ""
+msgstr "Budowa niezakończona"
#: build/templates/build/edit_build_item.html:7
msgid "Alter the quantity of stock allocated to the build output"
@@ -1142,39 +1221,40 @@ msgstr ""
#: build/templates/build/index.html:28 build/views.py:678
msgid "New Build Order"
-msgstr ""
+msgstr "Nowe zlecenie budowy"
#: build/templates/build/index.html:37 build/templates/build/index.html:38
msgid "Print Build Orders"
-msgstr ""
+msgstr "Wydrukuj zlecenia budowy"
#: build/templates/build/index.html:43
#: order/templates/order/purchase_orders.html:27
#: order/templates/order/sales_orders.html:27
msgid "Display calendar view"
-msgstr ""
+msgstr "Pokaż widok kalendarza"
#: build/templates/build/index.html:46
#: order/templates/order/purchase_orders.html:30
#: order/templates/order/sales_orders.html:30
msgid "Display list view"
-msgstr ""
+msgstr "Pokaż widok listy"
#: build/templates/build/navbar.html:12
msgid "Build Order Details"
-msgstr ""
+msgstr "Szczegóły zlecenia budowy"
#: build/templates/build/navbar.html:15
#: company/templates/company/navbar.html:15
#: order/templates/order/po_navbar.html:14
#: order/templates/order/so_navbar.html:15 part/templates/part/navbar.html:15
+#: templates/js/stock.js:1016
msgid "Details"
-msgstr ""
+msgstr "Szczegóły"
#: build/templates/build/navbar.html:21 build/templates/build/navbar.html:24
#: build/views.py:91
msgid "Allocate Stock"
-msgstr ""
+msgstr "Przydziel zapasy"
#: build/templates/build/navbar.html:29 build/templates/build/navbar.html:32
msgid "Build Outputs"
@@ -1182,34 +1262,35 @@ msgstr ""
#: build/templates/build/navbar.html:39
msgid "Child Builds"
-msgstr ""
+msgstr "Budowy podrzędne"
#: build/templates/build/navbar.html:50
msgid "Build Order Notes"
-msgstr ""
+msgstr "Notatki zlecenia budowy"
#: build/templates/build/notes.html:12
msgid "Build Notes"
-msgstr ""
+msgstr "Notatki tworzenia"
#: build/templates/build/notes.html:14 company/templates/company/notes.html:13
#: order/templates/order/order_notes.html:15
#: order/templates/order/sales_order_notes.html:16
#: part/templates/part/notes.html:14 stock/templates/stock/item_notes.html:15
msgid "Edit notes"
-msgstr ""
+msgstr "Edytuj uwagi"
#: build/templates/build/notes.html:26 company/templates/company/notes.html:24
#: order/templates/order/order_notes.html:27
#: order/templates/order/sales_order_notes.html:29
-#: part/templates/part/notes.html:27 stock/templates/stock/item_base.html:470
+#: part/templates/part/notes.html:27 stock/templates/stock/item_base.html:477
+#: stock/templates/stock/item_base.html:487
#: stock/templates/stock/item_notes.html:26
msgid "Save"
-msgstr ""
+msgstr "Zapisz"
#: build/templates/build/unallocate.html:10
msgid "Are you sure you wish to unallocate all stock for this build?"
-msgstr ""
+msgstr "Czy na pewno chcesz cofnąć przydział wszystkich zapasów dla tej budowy?"
#: build/templates/build/unallocate.html:12
msgid "All incomplete stock allocations will be removed from the build"
@@ -1217,7 +1298,7 @@ msgstr ""
#: build/views.py:77
msgid "Build was cancelled"
-msgstr ""
+msgstr "Tworzenie zostało przerwane"
#: build/views.py:138
msgid "Allocated stock to build output"
@@ -1225,15 +1306,15 @@ msgstr ""
#: build/views.py:150
msgid "Create Build Output"
-msgstr ""
+msgstr "Utwórz zlecenie budowy"
#: build/views.py:168
msgid "Maximum output quantity is "
msgstr ""
-#: build/views.py:184 stock/models.py:969 stock/views.py:1789
+#: build/views.py:184 stock/views.py:1821
msgid "Serial numbers already exist"
-msgstr ""
+msgstr "Numer seryjny już istnieje"
#: build/views.py:193
msgid "Serial numbers required for trackable build output"
@@ -1297,7 +1378,7 @@ msgstr ""
#: build/views.py:732
msgid "Created new build"
-msgstr ""
+msgstr "Utworzona nowa budowa"
#: build/views.py:753
msgid "Edit Build Order Details"
@@ -1330,7 +1411,7 @@ msgstr ""
#: build/views.py:872 templates/js/bom.js:230 templates/js/build.js:575
#: templates/js/build.js:838 templates/js/build.js:1021
msgid "Available"
-msgstr ""
+msgstr "Dostępne"
#: build/views.py:874
msgid "Stock item must be selected"
@@ -1348,626 +1429,677 @@ msgstr ""
msgid "Add Build Order Attachment"
msgstr ""
-#: build/views.py:1083 order/views.py:110 order/views.py:162 part/views.py:172
+#: build/views.py:1083 order/views.py:115 order/views.py:167 part/views.py:172
#: stock/views.py:277
msgid "Added attachment"
-msgstr ""
+msgstr "Dodano załącznik"
-#: build/views.py:1119 order/views.py:189 order/views.py:210
+#: build/views.py:1119 order/views.py:194 order/views.py:215
msgid "Edit Attachment"
-msgstr ""
+msgstr "Edytuj załącznik"
-#: build/views.py:1129 order/views.py:193 order/views.py:214
+#: build/views.py:1129 order/views.py:198 order/views.py:219
msgid "Attachment updated"
-msgstr ""
+msgstr "Załącznik zaktualizowany"
-#: build/views.py:1139 order/views.py:229 order/views.py:243
+#: build/views.py:1139 order/views.py:234 order/views.py:248
msgid "Delete Attachment"
-msgstr ""
+msgstr "Usuń załącznik"
-#: build/views.py:1144 order/views.py:235 order/views.py:249 stock/views.py:333
+#: build/views.py:1144 order/views.py:240 order/views.py:254 stock/views.py:333
msgid "Deleted attachment"
+msgstr "Załącznik usunięto"
+
+#: common/files.py:64
+msgid "Unsupported file format: {ext.upper()}"
msgstr ""
-#: common/models.py:56
-msgid "InvenTree Instance Name"
+#: common/files.py:69
+msgid "Error reading file (invalid format)"
+msgstr ""
+
+#: common/files.py:71
+msgid "Error reading file (incorrect dimension)"
+msgstr ""
+
+#: common/files.py:73
+msgid "Error reading file (data could be corrupted)"
+msgstr ""
+
+#: common/forms.py:38 templates/attachment_table.html:15
+msgid "File"
+msgstr ""
+
+#: common/forms.py:39
+msgid "Select file to upload"
+msgstr ""
+
+#: common/forms.py:54
+msgid "{name.title()} File"
+msgstr ""
+
+#: common/forms.py:55
+#, python-brace-format
+msgid "Select {name} file to upload"
msgstr ""
#: common/models.py:58
+msgid "InvenTree Instance Name"
+msgstr "Nazwa instancji InvenTree"
+
+#: common/models.py:60
msgid "String descriptor for the server instance"
msgstr ""
-#: common/models.py:62
+#: common/models.py:64
msgid "Use instance name"
msgstr ""
-#: common/models.py:63
+#: common/models.py:65
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:69 company/models.py:97 company/models.py:98
+#: common/models.py:71 company/models.py:94 company/models.py:95
msgid "Company name"
-msgstr ""
+msgstr "Nazwa firmy"
-#: common/models.py:70
+#: common/models.py:72
msgid "Internal company name"
msgstr ""
-#: common/models.py:75
+#: common/models.py:77
msgid "Base URL"
-msgstr ""
+msgstr "Bazowy URL"
-#: common/models.py:76
+#: common/models.py:78
msgid "Base URL for server instance"
-msgstr ""
+msgstr "Bazowy adres URL dla instancji serwera"
-#: common/models.py:82
+#: common/models.py:84
msgid "Default Currency"
-msgstr ""
+msgstr "Domyślna waluta"
-#: common/models.py:83
+#: common/models.py:85
msgid "Default currency"
-msgstr ""
+msgstr "Domyślna waluta"
-#: common/models.py:89
+#: common/models.py:91
msgid "Download from URL"
-msgstr ""
+msgstr "Pobierz z adresu URL"
-#: common/models.py:90
+#: common/models.py:92
msgid "Allow download of remote images and files from external URL"
-msgstr ""
+msgstr "Zezwól na pobieranie zewnętrznych obrazów i plików z zewnętrznego URL"
-#: common/models.py:96
+#: common/models.py:98
msgid "Barcode Support"
-msgstr ""
+msgstr "Obsługa kodu kreskowego"
-#: common/models.py:97
+#: common/models.py:99
msgid "Enable barcode scanner support"
-msgstr ""
+msgstr "Włącz obsługę skanera kodów"
-#: common/models.py:103
+#: common/models.py:105
msgid "IPN Regex"
-msgstr ""
+msgstr "Wyrażenie regularne IPN"
-#: common/models.py:104
+#: common/models.py:106
msgid "Regular expression pattern for matching Part IPN"
msgstr ""
-#: common/models.py:108
+#: common/models.py:110
msgid "Allow Duplicate IPN"
-msgstr ""
+msgstr "Zezwól na powtarzający się IPN"
-#: common/models.py:109
+#: common/models.py:111
msgid "Allow multiple parts to share the same IPN"
msgstr ""
-#: common/models.py:115
+#: common/models.py:117
msgid "Allow Editing IPN"
-msgstr ""
+msgstr "Zezwól na edycję IPN"
-#: common/models.py:116
+#: common/models.py:118
msgid "Allow changing the IPN value while editing a part"
msgstr ""
-#: common/models.py:122
+#: common/models.py:124
msgid "Copy Part BOM Data"
-msgstr ""
+msgstr "Skopiuj BOM komponentu"
-#: common/models.py:123
+#: common/models.py:125
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:129
+#: common/models.py:131
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:130
+#: common/models.py:132
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:136
+#: common/models.py:138
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:137
+#: common/models.py:139
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:143
+#: common/models.py:145
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:144
+#: common/models.py:146
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:150
+#: common/models.py:152
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:151
+#: common/models.py:153
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:157 part/models.py:2079 part/templates/part/detail.html:160
-#: report/models.py:185 stock/forms.py:259 templates/js/table_filters.js:24
-#: templates/js/table_filters.js:310
+#: common/models.py:159 part/models.py:2117 part/templates/part/detail.html:160
+#: report/models.py:185 stock/forms.py:259 templates/js/table_filters.js:25
+#: templates/js/table_filters.js:311
msgid "Template"
-msgstr ""
+msgstr "Szablon"
-#: common/models.py:158
+#: common/models.py:160
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:164 part/models.py:834 part/templates/part/detail.html:170
-#: templates/js/table_filters.js:123 templates/js/table_filters.js:322
+#: common/models.py:166 part/models.py:834 part/templates/part/detail.html:170
+#: templates/js/table_filters.js:124 templates/js/table_filters.js:323
msgid "Assembly"
-msgstr ""
+msgstr "Złożenie"
-#: common/models.py:165
+#: common/models.py:167
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:171 part/models.py:840 part/templates/part/detail.html:180
-#: templates/js/table_filters.js:326
+#: common/models.py:173 part/models.py:840 part/templates/part/detail.html:180
+#: templates/js/table_filters.js:327
msgid "Component"
-msgstr ""
+msgstr "Komponent"
-#: common/models.py:172
+#: common/models.py:174
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:178 part/models.py:851 part/templates/part/detail.html:200
+#: common/models.py:180 part/models.py:851 part/templates/part/detail.html:200
msgid "Purchaseable"
-msgstr ""
+msgstr "Możliwość zakupu"
-#: common/models.py:179
+#: common/models.py:181
msgid "Parts are purchaseable by default"
-msgstr ""
+msgstr "Części są domyślnie z możliwością zakupu"
-#: common/models.py:185 part/models.py:856 part/templates/part/detail.html:210
-#: templates/js/table_filters.js:334
+#: common/models.py:187 part/models.py:856 part/templates/part/detail.html:210
+#: templates/js/table_filters.js:335
msgid "Salable"
-msgstr ""
+msgstr "Możliwość sprzedaży"
-#: common/models.py:186
+#: common/models.py:188
msgid "Parts are salable by default"
-msgstr ""
+msgstr "Części są domyślnie z możliwością sprzedaży"
-#: common/models.py:192 part/models.py:846 part/templates/part/detail.html:190
-#: templates/js/table_filters.js:32 templates/js/table_filters.js:338
+#: common/models.py:194 part/models.py:846 part/templates/part/detail.html:190
+#: templates/js/table_filters.js:33 templates/js/table_filters.js:339
msgid "Trackable"
-msgstr ""
+msgstr "Możliwość śledzenia"
-#: common/models.py:193
+#: common/models.py:195
msgid "Parts are trackable by default"
-msgstr ""
+msgstr "Części są domyślnie z możliwością śledzenia"
-#: common/models.py:199 part/models.py:866 part/templates/part/detail.html:150
-#: templates/js/table_filters.js:28
+#: common/models.py:201 part/models.py:866 part/templates/part/detail.html:150
+#: templates/js/table_filters.js:29
msgid "Virtual"
-msgstr ""
+msgstr "Wirtualny"
-#: common/models.py:200
+#: common/models.py:202
msgid "Parts are virtual by default"
-msgstr ""
+msgstr "Części są domyślnie wirtualne"
-#: common/models.py:206
+#: common/models.py:208
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:207
+#: common/models.py:209
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:213
+#: common/models.py:215 templates/stats.html:25
msgid "Debug Mode"
-msgstr ""
+msgstr "Tryb Debugowania"
-#: common/models.py:214
+#: common/models.py:216
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:220
+#: common/models.py:222
msgid "Page Size"
-msgstr ""
+msgstr "Rozmiar strony"
-#: common/models.py:221
+#: common/models.py:223
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:231
+#: common/models.py:233
msgid "Test Reports"
-msgstr ""
+msgstr "Raporty testów"
-#: common/models.py:232
+#: common/models.py:234
msgid "Enable generation of test reports"
-msgstr ""
+msgstr "Włącz generowanie raportów testów"
-#: common/models.py:238
+#: common/models.py:240
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:239
+#: common/models.py:241
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:245
+#: common/models.py:247
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:246
+#: common/models.py:248
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:252
+#: common/models.py:254
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:253
+#: common/models.py:255
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:255 part/templates/part/detail.html:121
+#: common/models.py:257 part/templates/part/detail.html:121
msgid "days"
-msgstr ""
+msgstr "dni"
-#: common/models.py:260
+#: common/models.py:262
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:261
+#: common/models.py:263
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:267
+#: common/models.py:269
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:268
+#: common/models.py:270
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:274
+#: common/models.py:276
msgid "Group by Part"
-msgstr ""
+msgstr "Grupuj według komponentu"
-#: common/models.py:275
+#: common/models.py:277
msgid "Group stock items by part reference in table views"
msgstr ""
-#: common/models.py:281
+#: common/models.py:283
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:282
+#: common/models.py:284
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:288
+#: common/models.py:290
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:289
+#: common/models.py:291
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:294
+#: common/models.py:296
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:295
+#: common/models.py:297
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:299
+#: common/models.py:301
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:300
+#: common/models.py:302
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:305
+#: common/models.py:307
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:306
+#: common/models.py:308
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:529
+#: common/models.py:531
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:531
+#: common/models.py:533
msgid "Settings value"
-msgstr ""
+msgstr "Ustawienia wartości"
-#: common/models.py:566
+#: common/models.py:568
msgid "Must be an integer value"
msgstr ""
-#: common/models.py:589
+#: common/models.py:591
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:600
+#: common/models.py:602
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:623
+#: common/models.py:625
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:704 company/forms.py:177
+#: common/models.py:706 company/forms.py:177
msgid "Price break quantity"
msgstr ""
-#: common/models.py:712 company/templates/company/supplier_part_pricing.html:82
+#: common/models.py:714 company/templates/company/supplier_part_pricing.html:82
#: part/templates/part/sale_prices.html:90 templates/js/bom.js:255
msgid "Price"
-msgstr ""
+msgstr "Cena"
-#: common/models.py:713
+#: common/models.py:715
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:736
+#: common/models.py:804
msgid "Default"
-msgstr ""
+msgstr "Domyślny"
#: common/templates/common/edit_setting.html:11
msgid "Current value"
-msgstr ""
+msgstr "Aktualna wartość"
-#: common/views.py:25
+#: common/views.py:32
msgid "Change Setting"
-msgstr ""
+msgstr "Zmień ustawienie"
-#: common/views.py:94
+#: common/views.py:101
msgid "Supplied value is not allowed"
msgstr ""
-#: common/views.py:103
+#: common/views.py:110
msgid "Supplied value must be a boolean"
msgstr ""
-#: company/forms.py:38 company/models.py:145
-#: company/templates/company/detail.html:42
-msgid "Currency"
+#: common/views.py:184 order/templates/order/order_wizard/po_upload.html:42
+#: order/views.py:582 part/templates/part/bom_upload/upload_file.html:27
+msgid "Upload File"
+msgstr "Wyślik plik"
+
+#: common/views.py:185 order/templates/order/order_wizard/match_fields.html:52
+#: order/views.py:583 part/templates/part/bom_upload/select_fields.html:58
+msgid "Match Fields"
msgstr ""
-#: company/forms.py:39 company/models.py:147
+#: common/views.py:186
+msgid "Match Items"
+msgstr ""
+
+#: common/views.py:479
+msgid "Fields matching failed"
+msgstr ""
+
+#: company/forms.py:38 company/models.py:142
+#: company/templates/company/detail.html:42
+msgid "Currency"
+msgstr "Waluta"
+
+#: company/forms.py:39 company/models.py:144
msgid "Default currency used for this company"
msgstr ""
#: company/forms.py:77 part/forms.py:46
msgid "URL"
-msgstr ""
+msgstr "URL"
#: company/forms.py:78 part/forms.py:47
msgid "Image URL"
-msgstr ""
+msgstr "URL zdjęcia"
#: company/forms.py:118
msgid "Single Price"
-msgstr ""
+msgstr "Cena jednostkowa"
#: company/forms.py:120
msgid "Single quantity price"
-msgstr ""
+msgstr "Cena jednostkowa"
-#: company/forms.py:128 company/models.py:324
+#: company/forms.py:128 company/models.py:321
msgid "Select manufacturer"
-msgstr ""
+msgstr "Wybierz producenta"
-#: company/forms.py:134 company/models.py:331
+#: company/forms.py:134 company/models.py:328
msgid "Manufacturer Part Number"
-msgstr ""
+msgstr "Numer producenta"
-#: company/forms.py:136 company/models.py:330
+#: company/forms.py:136 company/models.py:327
#: company/templates/company/manufacturer_part_base.html:89
#: company/templates/company/manufacturer_part_detail.html:26
-#: company/templates/company/supplier_part_base.html:101
+#: company/templates/company/supplier_part_base.html:102
#: company/templates/company/supplier_part_detail.html:35
#: order/templates/order/purchase_order_detail.html:158 part/bom.py:171
#: part/bom.py:242 templates/js/company.js:181 templates/js/company.js:307
msgid "MPN"
-msgstr ""
+msgstr "MPN"
-#: company/models.py:102
+#: company/models.py:99
msgid "Company description"
-msgstr ""
+msgstr "Opis firmy"
-#: company/models.py:103
+#: company/models.py:100
msgid "Description of the company"
-msgstr ""
+msgstr "Opis firmy"
-#: company/models.py:107 company/templates/company/company_base.html:70
+#: company/models.py:104 company/templates/company/company_base.html:70
#: company/templates/company/detail.html:33 templates/js/company.js:60
msgid "Website"
-msgstr ""
+msgstr "Strona WWW"
-#: company/models.py:107
+#: company/models.py:104
msgid "Company website URL"
-msgstr ""
+msgstr "Witryna internetowa firmy"
-#: company/models.py:110 company/templates/company/company_base.html:77
+#: company/models.py:107 company/templates/company/company_base.html:77
msgid "Address"
-msgstr ""
+msgstr "Adres"
+
+#: company/models.py:108
+msgid "Company address"
+msgstr "Adres firmy"
#: company/models.py:111
-msgid "Company address"
-msgstr ""
-
-#: company/models.py:114
msgid "Phone number"
-msgstr ""
+msgstr "Numer telefonu"
+
+#: company/models.py:112
+msgid "Contact phone number"
+msgstr "Numer telefonu kontaktowego"
+
+#: company/models.py:115 company/templates/company/company_base.html:91
+msgid "Email"
+msgstr "Adres E-Mail"
#: company/models.py:115
-msgid "Contact phone number"
-msgstr ""
-
-#: company/models.py:118 company/templates/company/company_base.html:91
-msgid "Email"
-msgstr ""
-
-#: company/models.py:118
msgid "Contact email address"
-msgstr ""
+msgstr "Kontaktowy adres e-mail"
-#: company/models.py:121 company/templates/company/company_base.html:98
+#: company/models.py:118 company/templates/company/company_base.html:98
msgid "Contact"
-msgstr ""
+msgstr "Kontakt"
-#: company/models.py:122
+#: company/models.py:119
msgid "Point of contact"
-msgstr ""
+msgstr "Punkt kontaktowy"
-#: company/models.py:124 company/models.py:336 company/models.py:488
+#: company/models.py:121 company/models.py:333 company/models.py:485
#: order/models.py:103 part/models.py:743
#: report/templates/report/inventree_build_order_base.html:165
-#: stock/models.py:1560 templates/js/company.js:188 templates/js/company.js:318
+#: templates/js/company.js:188 templates/js/company.js:318
#: templates/js/part.js:431
msgid "Link"
-msgstr ""
+msgstr "Łącze"
-#: company/models.py:124
+#: company/models.py:121
msgid "Link to external company information"
-msgstr ""
+msgstr "Link do informacji o zewnętrznym przedsiębiorstwie"
-#: company/models.py:132 part/models.py:753
+#: company/models.py:129 part/models.py:753
msgid "Image"
-msgstr ""
+msgstr "Obraz"
-#: company/models.py:137
+#: company/models.py:134
msgid "is customer"
-msgstr ""
+msgstr "jest klientem"
-#: company/models.py:137
+#: company/models.py:134
msgid "Do you sell items to this company?"
-msgstr ""
+msgstr "Czy sprzedajesz produkty tej firmie?"
-#: company/models.py:139
+#: company/models.py:136
msgid "is supplier"
-msgstr ""
+msgstr "jest dostawcą"
-#: company/models.py:139
+#: company/models.py:136
msgid "Do you purchase items from this company?"
-msgstr ""
+msgstr "Czy kupujesz przedmioty od tej firmy?"
-#: company/models.py:141
+#: company/models.py:138
msgid "is manufacturer"
-msgstr ""
+msgstr "jest producentem"
-#: company/models.py:141
+#: company/models.py:138
msgid "Does this company manufacture parts?"
-msgstr ""
+msgstr "Czy to przedsiębiorstwo produkuje części?"
-#: company/models.py:308 company/models.py:459 stock/models.py:373
-#: stock/templates/stock/item_base.html:224
+#: company/models.py:305 company/models.py:456 stock/models.py:405
+#: stock/templates/stock/item_base.html:230
msgid "Base Part"
-msgstr ""
+msgstr "Część bazowa"
-#: company/models.py:312 company/models.py:463 order/views.py:1384
+#: company/models.py:309 company/models.py:460 order/views.py:1587
msgid "Select part"
-msgstr ""
+msgstr "Wybierz część"
-#: company/models.py:323 company/templates/company/detail.html:57
+#: company/models.py:320 company/templates/company/detail.html:57
#: company/templates/company/manufacturer_part_base.html:85
#: company/templates/company/manufacturer_part_detail.html:25
#: company/templates/company/supplier_part_base.html:94
#: company/templates/company/supplier_part_detail.html:34 part/bom.py:170
-#: part/bom.py:241 stock/templates/stock/item_base.html:341
+#: part/bom.py:241 stock/templates/stock/item_base.html:347
#: templates/js/company.js:44 templates/js/company.js:165
#: templates/js/company.js:289
msgid "Manufacturer"
-msgstr ""
+msgstr "Producent"
-#: company/models.py:337
+#: company/models.py:334
msgid "URL for external manufacturer part link"
msgstr ""
-#: company/models.py:343
+#: company/models.py:340
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:469 company/templates/company/detail.html:62
+#: company/models.py:466 company/templates/company/detail.html:62
#: company/templates/company/supplier_part_base.html:84
#: company/templates/company/supplier_part_detail.html:25 order/models.py:190
#: order/templates/order/order_base.html:92
#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:175
-#: part/bom.py:286 stock/templates/stock/item_base.html:353
+#: part/bom.py:286 stock/templates/stock/item_base.html:359
#: templates/js/company.js:48 templates/js/company.js:263
#: templates/js/order.js:170
msgid "Supplier"
-msgstr ""
+msgstr "Dostawca"
-#: company/models.py:470
+#: company/models.py:467
msgid "Select supplier"
-msgstr ""
+msgstr "Wybierz dostawcę"
-#: company/models.py:475 company/templates/company/supplier_part_base.html:88
+#: company/models.py:472 company/templates/company/supplier_part_base.html:88
#: company/templates/company/supplier_part_detail.html:26
#: order/templates/order/purchase_order_detail.html:149 part/bom.py:176
#: part/bom.py:287
msgid "SKU"
-msgstr ""
+msgstr "SKU"
-#: company/models.py:476
+#: company/models.py:473
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:482
+#: company/models.py:479
#: company/templates/company/manufacturer_part_base.html:6
#: company/templates/company/manufacturer_part_base.html:19
-#: stock/templates/stock/item_base.html:346
+#: stock/templates/stock/item_base.html:352
msgid "Manufacturer Part"
-msgstr ""
+msgstr "Część producenta"
-#: company/models.py:483
+#: company/models.py:480
msgid "Select manufacturer part"
msgstr ""
-#: company/models.py:489
+#: company/models.py:486
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:495
+#: company/models.py:492
msgid "Supplier part description"
msgstr ""
-#: company/models.py:500 company/templates/company/supplier_part_base.html:115
-#: company/templates/company/supplier_part_detail.html:38 part/models.py:2190
+#: company/models.py:497 company/templates/company/supplier_part_base.html:116
+#: company/templates/company/supplier_part_detail.html:38 part/models.py:2228
#: report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
-msgstr ""
+msgstr "Uwaga"
-#: company/models.py:504
+#: company/models.py:501 part/models.py:1614
msgid "base cost"
-msgstr ""
+msgstr "koszt podstawowy"
-#: company/models.py:504
+#: company/models.py:501 part/models.py:1614
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:506 company/templates/company/supplier_part_base.html:108
-#: stock/models.py:397 stock/templates/stock/item_base.html:299
+#: company/models.py:503 company/templates/company/supplier_part_base.html:109
+#: stock/models.py:429 stock/templates/stock/item_base.html:305
#: templates/js/stock.js:667
msgid "Packaging"
-msgstr ""
+msgstr "Opakowanie"
-#: company/models.py:506
+#: company/models.py:503
msgid "Part packaging"
-msgstr ""
+msgstr "Opakowanie części"
-#: company/models.py:508
+#: company/models.py:505 part/models.py:1616
msgid "multiple"
-msgstr ""
+msgstr "wielokrotność"
-#: company/models.py:508
+#: company/models.py:505
msgid "Order multiple"
msgstr ""
@@ -1981,19 +2113,19 @@ msgstr ""
#: company/templates/company/company_base.html:35
#: templates/InvenTree/search.html:304 templates/js/company.js:33
msgid "Company"
-msgstr ""
+msgstr "Firma"
#: company/templates/company/company_base.html:25
#: part/templates/part/part_thumb.html:21
msgid "Upload new image"
-msgstr ""
+msgstr "Prześlij nowy obraz"
#: company/templates/company/company_base.html:27
#: part/templates/part/part_thumb.html:23
msgid "Download image from URL"
msgstr ""
-#: company/templates/company/company_base.html:46 order/views.py:306
+#: company/templates/company/company_base.html:46 order/views.py:311
msgid "Create Purchase Order"
msgstr ""
@@ -2013,7 +2145,7 @@ msgstr ""
#: company/templates/company/company_base.html:84
msgid "Phone"
-msgstr ""
+msgstr "Telefon"
#: company/templates/company/delete.html:7
#, python-format
@@ -2022,43 +2154,43 @@ msgstr ""
#: company/templates/company/delete.html:12
#, python-format
-msgid ""
-"There are %(count)s parts sourced from this company.
\n"
+msgid "There are %(count)s parts sourced from this company.
\n"
"If this supplier is deleted, these supplier part entries will also be deleted."
msgstr ""
#: company/templates/company/detail.html:21
msgid "Company Name"
-msgstr ""
+msgstr "Nazwa firmy"
#: company/templates/company/detail.html:36
msgid "No website specified"
-msgstr ""
+msgstr "Nie określono strony internetowej"
#: company/templates/company/detail.html:45
msgid "Uses default currency"
msgstr ""
-#: company/templates/company/detail.html:67 order/models.py:450
-#: order/templates/order/sales_order_base.html:92 stock/models.py:415
-#: stock/models.py:416 stock/templates/stock/item_base.html:251
+#: company/templates/company/detail.html:67 order/models.py:461
+#: order/templates/order/sales_order_base.html:92 stock/models.py:447
+#: stock/models.py:448 stock/templates/stock/item_base.html:257
#: templates/js/company.js:40 templates/js/order.js:267
+#: templates/js/stock.js:1064
msgid "Customer"
-msgstr ""
+msgstr "Klient"
#: company/templates/company/detail_manufacturer_part.html:11
#: templates/InvenTree/search.html:149
msgid "Manufacturer Parts"
-msgstr ""
+msgstr "Części producenta"
#: company/templates/company/detail_manufacturer_part.html:22
msgid "Create new manufacturer part"
-msgstr ""
+msgstr "Utwórz nową część producenta"
#: company/templates/company/detail_manufacturer_part.html:23
#: part/templates/part/manufacturer.html:19
msgid "New Manufacturer Part"
-msgstr ""
+msgstr "Nowa część producenta"
#: company/templates/company/detail_manufacturer_part.html:28
#: company/templates/company/detail_supplier_part.html:27
@@ -2067,120 +2199,120 @@ msgstr ""
#: part/templates/part/manufacturer.html:22
#: part/templates/part/supplier.html:20
msgid "Options"
-msgstr ""
+msgstr "Opcje"
#: company/templates/company/detail_manufacturer_part.html:33
#: company/templates/company/detail_supplier_part.html:32
#: part/templates/part/category.html:127
msgid "Order parts"
-msgstr ""
+msgstr "Zamów części"
#: company/templates/company/detail_manufacturer_part.html:36
#: company/templates/company/detail_supplier_part.html:35
msgid "Delete parts"
-msgstr ""
+msgstr "Usuń części"
#: company/templates/company/detail_manufacturer_part.html:36
#: company/templates/company/detail_supplier_part.html:35
msgid "Delete Parts"
-msgstr ""
+msgstr "Usuń części"
#: company/templates/company/detail_manufacturer_part.html:66
#: company/templates/company/detail_supplier_part.html:66
#: part/templates/part/bom.html:159 part/templates/part/category.html:118
-#: templates/js/stock.js:1157
+#: templates/js/stock.js:1279
msgid "New Part"
-msgstr ""
+msgstr "Nowy komponent"
#: company/templates/company/detail_manufacturer_part.html:67
#: company/templates/company/detail_supplier_part.html:67
msgid "Create new Part"
-msgstr ""
+msgstr "Utwórz nowy komponent"
#: company/templates/company/detail_manufacturer_part.html:72
#: company/views.py:71 part/templates/part/manufacturer.html:52
#: part/templates/part/supplier.html:56
msgid "New Manufacturer"
-msgstr ""
+msgstr "Now producent"
#: company/templates/company/detail_manufacturer_part.html:73
#: company/views.py:284
msgid "Create new Manufacturer"
-msgstr ""
+msgstr "Utwórz nowego producenta"
#: company/templates/company/detail_stock.html:10
msgid "Supplier Stock"
-msgstr ""
+msgstr "Zapasy dostawcy"
#: company/templates/company/detail_stock.html:37
#: company/templates/company/supplier_part_stock.html:34
#: part/templates/part/category.html:114 part/templates/part/category.html:128
#: part/templates/part/stock.html:54 stock/templates/stock/location.html:163
msgid "Export"
-msgstr ""
+msgstr "Eksportuj"
#: company/templates/company/detail_supplier_part.html:11
#: company/templates/company/manufacturer_part_navbar.html:11
#: company/templates/company/manufacturer_part_suppliers.html:10
#: templates/InvenTree/search.html:164
msgid "Supplier Parts"
-msgstr ""
+msgstr "Komponenty dostawcy"
#: company/templates/company/detail_supplier_part.html:21
#: order/templates/order/order_wizard/select_parts.html:42
#: order/templates/order/purchase_order_detail.html:50
msgid "Create new supplier part"
-msgstr ""
+msgstr "Utwórz nowego dostawcę części"
#: company/templates/company/detail_supplier_part.html:22
#: company/templates/company/manufacturer_part_suppliers.html:17
#: order/templates/order/purchase_order_detail.html:49
-#: part/templates/part/supplier.html:17 templates/js/stock.js:1163
+#: part/templates/part/supplier.html:17 templates/js/stock.js:1285
msgid "New Supplier Part"
-msgstr ""
+msgstr "Now dostawca części"
#: company/templates/company/detail_supplier_part.html:72
#: company/templates/company/manufacturer_part_suppliers.html:47
-#: company/views.py:64 order/templates/order/purchase_orders.html:183
+#: company/views.py:64 order/templates/order/purchase_orders.html:185
#: part/templates/part/supplier.html:50
msgid "New Supplier"
-msgstr ""
+msgstr "Nowy dostawca"
#: company/templates/company/detail_supplier_part.html:73 company/views.py:281
-#: order/templates/order/purchase_orders.html:184
+#: order/templates/order/purchase_orders.html:186
msgid "Create new Supplier"
-msgstr ""
+msgstr "Dodaj nowego dostawcę"
#: company/templates/company/index.html:8
msgid "Supplier List"
-msgstr ""
+msgstr "Lista dostawców"
#: company/templates/company/manufacturer_part_base.html:36
#: company/templates/company/supplier_part_base.html:36
#: company/templates/company/supplier_part_orders.html:17
#: part/templates/part/orders.html:17 part/templates/part/part_base.html:65
msgid "Order part"
-msgstr ""
+msgstr "Zamów część"
#: company/templates/company/manufacturer_part_base.html:41
msgid "Edit manufacturer part"
-msgstr ""
+msgstr "Edytuj część producenta"
#: company/templates/company/manufacturer_part_base.html:45
msgid "Delete manufacturer part"
-msgstr ""
+msgstr "Usuń cześć producenta"
#: company/templates/company/manufacturer_part_base.html:57
#: company/templates/company/manufacturer_part_detail.html:10
msgid "Manufacturer Part Details"
-msgstr ""
+msgstr "Szczegóły części producenta"
#: company/templates/company/manufacturer_part_base.html:62
#: company/templates/company/manufacturer_part_detail.html:18
#: company/templates/company/supplier_part_base.html:61
#: company/templates/company/supplier_part_detail.html:18
msgid "Internal Part"
-msgstr ""
+msgstr "Część wewnętrzna"
#: company/templates/company/manufacturer_part_delete.html:6
msgid "Are you sure you want to delete the following Manufacturer Parts?"
@@ -2196,7 +2328,7 @@ msgstr ""
#: part/templates/part/navbar.html:81 templates/InvenTree/search.html:316
#: templates/navbar.html:35
msgid "Suppliers"
-msgstr ""
+msgstr "Dostawcy"
#: company/templates/company/manufacturer_part_navbar.html:19
msgid "Manufacturer Part Stock"
@@ -2205,7 +2337,7 @@ msgstr ""
#: company/templates/company/manufacturer_part_navbar.html:22
#: company/templates/company/navbar.html:41
#: company/templates/company/supplier_part_navbar.html:15
-#: part/templates/part/navbar.html:36 stock/api.py:51
+#: part/templates/part/navbar.html:36 stock/api.py:54
#: stock/templates/stock/loc_link.html:7 stock/templates/stock/location.html:36
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/index.html:128 templates/InvenTree/search.html:196
@@ -2213,7 +2345,7 @@ msgstr ""
#: templates/InvenTree/settings/tabs.html:28 templates/js/part.js:173
#: templates/js/part.js:398 templates/js/stock.js:563 templates/navbar.html:26
msgid "Stock"
-msgstr ""
+msgstr "Stan"
#: company/templates/company/manufacturer_part_navbar.html:26
msgid "Manufacturer Part Orders"
@@ -2222,7 +2354,7 @@ msgstr ""
#: company/templates/company/manufacturer_part_navbar.html:29
#: company/templates/company/supplier_part_navbar.html:22
msgid "Orders"
-msgstr ""
+msgstr "Zamówienia"
#: company/templates/company/manufacturer_part_suppliers.html:22
#: part/templates/part/supplier.html:22
@@ -2234,12 +2366,12 @@ msgstr ""
#: part/templates/part/related.html:44 part/templates/part/supplier.html:22
#: stock/views.py:1002 users/models.py:187
msgid "Delete"
-msgstr ""
+msgstr "Usuń"
#: company/templates/company/manufacturer_part_suppliers.html:48
#: part/templates/part/supplier.html:51
msgid "Create new supplier"
-msgstr ""
+msgstr "Utwórz nowego dostawcę"
#: company/templates/company/navbar.html:20
#: company/templates/company/navbar.html:23
@@ -2249,7 +2381,7 @@ msgstr ""
#: company/templates/company/navbar.html:29
#: company/templates/company/navbar.html:32
msgid "Supplied Parts"
-msgstr ""
+msgstr "Dostarczone części"
#: company/templates/company/navbar.html:38 part/templates/part/navbar.html:33
#: stock/templates/stock/location.html:107
@@ -2258,7 +2390,7 @@ msgstr ""
#: stock/templates/stock/location_navbar.html:22
#: stock/templates/stock/location_navbar.html:29
#: templates/InvenTree/search.html:198 templates/js/stock.js:968
-#: templates/stats.html:72 templates/stats.html:81 users/models.py:42
+#: templates/stats.html:93 templates/stats.html:102 users/models.py:42
msgid "Stock Items"
msgstr ""
@@ -2313,8 +2445,8 @@ msgid "New Sales Order"
msgstr ""
#: company/templates/company/supplier_part_base.html:7
-#: company/templates/company/supplier_part_base.html:20 stock/models.py:382
-#: stock/templates/stock/item_base.html:358 templates/js/company.js:279
+#: company/templates/company/supplier_part_base.html:20 stock/models.py:414
+#: stock/templates/stock/item_base.html:364 templates/js/company.js:279
msgid "Supplier Part"
msgstr ""
@@ -2351,7 +2483,7 @@ msgstr ""
#: company/templates/company/supplier_part_navbar.html:29
msgid "Pricing"
-msgstr ""
+msgstr "Cennik"
#: company/templates/company/supplier_part_orders.html:18
#: part/templates/part/orders.html:18
@@ -2360,10 +2492,10 @@ msgstr ""
#: company/templates/company/supplier_part_pricing.html:11
msgid "Pricing Information"
-msgstr ""
+msgstr "Informacja cenowa"
#: company/templates/company/supplier_part_pricing.html:19 company/views.py:794
-#: part/templates/part/sale_prices.html:17 part/views.py:2636
+#: part/templates/part/sale_prices.html:17 part/views.py:2644
msgid "Add Price Break"
msgstr ""
@@ -2375,7 +2507,7 @@ msgstr ""
#: company/templates/company/supplier_part_pricing.html:89
#: part/templates/part/sale_prices.html:97
msgid "Edit price break"
-msgstr ""
+msgstr "Edytuj przedział cenowy"
#: company/templates/company/supplier_part_pricing.html:90
#: part/templates/part/sale_prices.html:98
@@ -2386,33 +2518,38 @@ msgstr ""
#: part/templates/part/navbar.html:75 templates/InvenTree/search.html:306
#: templates/navbar.html:36
msgid "Manufacturers"
-msgstr ""
+msgstr "Producenci"
#: company/views.py:77 templates/InvenTree/search.html:336
#: templates/navbar.html:45
msgid "Customers"
-msgstr ""
+msgstr "Klienci"
-#: company/views.py:78 order/templates/order/sales_orders.html:185
+#: company/views.py:78 order/templates/order/sales_orders.html:187
msgid "New Customer"
-msgstr ""
+msgstr "Nowy klient"
#: company/views.py:86
msgid "Companies"
-msgstr ""
+msgstr "Firmy"
#: company/views.py:87
msgid "New Company"
-msgstr ""
+msgstr "Nowa firma"
#: company/views.py:169 part/views.py:848
msgid "Download Image"
-msgstr ""
+msgstr "Pobierz obraz"
#: company/views.py:198 part/views.py:880
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
+#: company/views.py:205 part/views.py:887
+#, python-brace-format
+msgid "Invalid response: {code}"
+msgstr ""
+
#: company/views.py:214 part/views.py:896
msgid "Supplied URL is not a valid image file"
msgstr ""
@@ -2427,27 +2564,27 @@ msgstr ""
#: company/views.py:259
msgid "Edit Company"
-msgstr ""
+msgstr "Edytuj firmę"
#: company/views.py:264
msgid "Edited company information"
msgstr ""
-#: company/views.py:287 order/templates/order/sales_orders.html:186
+#: company/views.py:287 order/templates/order/sales_orders.html:188
msgid "Create new Customer"
-msgstr ""
+msgstr "Utwórz nowego klienta"
#: company/views.py:289
msgid "Create new Company"
-msgstr ""
+msgstr "Utwórz nową firmę"
#: company/views.py:316
msgid "Created new company"
-msgstr ""
+msgstr "Utwórz nową firmę"
#: company/views.py:332
msgid "Company was deleted"
-msgstr ""
+msgstr "Usunięto firmę"
#: company/views.py:357
msgid "Edit Manufacturer Part"
@@ -2465,7 +2602,7 @@ msgstr ""
msgid "Edit Supplier Part"
msgstr ""
-#: company/views.py:578 templates/js/stock.js:1164
+#: company/views.py:578 templates/js/stock.js:1286
msgid "Create new Supplier Part"
msgstr ""
@@ -2473,15 +2610,15 @@ msgstr ""
msgid "Delete Supplier Part"
msgstr ""
-#: company/views.py:799 part/views.py:2640
+#: company/views.py:799 part/views.py:2648
msgid "Added new price break"
msgstr ""
-#: company/views.py:855 part/views.py:2684
+#: company/views.py:855 part/views.py:2692
msgid "Edit Price Break"
-msgstr ""
+msgstr "Edytuj przedział cenowy"
-#: company/views.py:870 part/views.py:2698
+#: company/views.py:870 part/views.py:2706
msgid "Delete Price Break"
msgstr ""
@@ -2489,71 +2626,79 @@ msgstr ""
msgid "No valid objects provided to template"
msgstr ""
-#: label/models.py:102
+#: label/models.py:103
msgid "Label name"
-msgstr ""
+msgstr "Nazwa etykiety"
-#: label/models.py:109
+#: label/models.py:110
msgid "Label description"
-msgstr ""
+msgstr "Opis etykiety"
-#: label/models.py:116 stock/forms.py:202
+#: label/models.py:117 stock/forms.py:202
msgid "Label"
-msgstr ""
+msgstr "Etykieta"
-#: label/models.py:117
+#: label/models.py:118
msgid "Label template file"
msgstr ""
-#: label/models.py:123 report/models.py:274
+#: label/models.py:124 report/models.py:274
msgid "Enabled"
-msgstr ""
+msgstr "Aktywne"
-#: label/models.py:124
+#: label/models.py:125
msgid "Label template is enabled"
msgstr ""
-#: label/models.py:129
-msgid "Width [mm]"
-msgstr ""
-
#: label/models.py:130
+msgid "Width [mm]"
+msgstr "Szerokość [mm]"
+
+#: label/models.py:131
msgid "Label width, specified in mm"
msgstr ""
-#: label/models.py:136
-msgid "Height [mm]"
-msgstr ""
-
#: label/models.py:137
+msgid "Height [mm]"
+msgstr "Wysokość [mm]"
+
+#: label/models.py:138
msgid "Label height, specified in mm"
msgstr ""
-#: label/models.py:222 label/models.py:275
+#: label/models.py:144
+msgid "Filename Pattern"
+msgstr ""
+
+#: label/models.py:145
+msgid "Pattern for generating label filenames"
+msgstr ""
+
+#: label/models.py:244 label/models.py:297
msgid "Query filters (comma-separated list of key=value pairs"
msgstr ""
-#: label/models.py:223 label/models.py:276 report/models.py:294
+#: label/models.py:245 label/models.py:298 report/models.py:294
#: report/models.py:415 report/models.py:449
msgid "Filters"
-msgstr ""
+msgstr "Filtry"
#: order/forms.py:27 order/templates/order/order_base.html:47
msgid "Place order"
-msgstr ""
+msgstr "Złóż zamówienie"
#: order/forms.py:38 order/templates/order/order_base.html:54
msgid "Mark order as complete"
-msgstr ""
+msgstr "Oznacz zamówienie jako zakończone"
#: order/forms.py:49 order/forms.py:60 order/templates/order/order_base.html:59
#: order/templates/order/sales_order_base.html:59
msgid "Cancel order"
-msgstr ""
+msgstr "Anuluj zamówienie"
#: order/forms.py:71 order/templates/order/sales_order_base.html:56
msgid "Ship order"
-msgstr ""
+msgstr "Wyślij zamówienie"
#: order/forms.py:82
msgid "Receive parts to this location"
@@ -2571,43 +2716,43 @@ msgstr ""
msgid "Enter sales order number"
msgstr ""
-#: order/forms.py:145 order/models.py:462
+#: order/forms.py:145 order/models.py:473
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/forms.py:235
+#: order/forms.py:236
msgid "Enter stock item serial numbers"
msgstr ""
-#: order/forms.py:241
+#: order/forms.py:242
msgid "Enter quantity of stock items"
-msgstr ""
+msgstr "Wprowadź ilość produktów magazynowych"
#: order/models.py:99
msgid "Order reference"
-msgstr ""
+msgstr "Odniesienie zamówienia"
#: order/models.py:101
msgid "Order description"
-msgstr ""
+msgstr "Opis Zamówienia"
#: order/models.py:103
msgid "Link to external page"
-msgstr ""
+msgstr "Link do zewnętrznej witryny"
#: order/models.py:111 part/templates/part/detail.html:132
msgid "Created By"
-msgstr ""
+msgstr "Utworzony przez"
#: order/models.py:118
msgid "User or group responsible for this order"
-msgstr ""
+msgstr "Użytkownik lub grupa odpowiedzialna za to zamówienie"
#: order/models.py:123
msgid "Order notes"
-msgstr ""
+msgstr "Notatki do zamówienia"
-#: order/models.py:182 order/models.py:455
+#: order/models.py:182 order/models.py:466
msgid "Purchase order status"
msgstr ""
@@ -2626,11 +2771,11 @@ msgstr ""
#: order/models.py:201
msgid "received by"
-msgstr ""
+msgstr "odebrane przez"
#: order/models.py:206
msgid "Issue Date"
-msgstr ""
+msgstr "Data wydania"
#: order/models.py:207
msgid "Date order was issued"
@@ -2648,8 +2793,8 @@ msgstr ""
msgid "Date order was completed"
msgstr ""
-#: order/models.py:243 part/views.py:1586 stock/models.py:270
-#: stock/models.py:953
+#: order/models.py:243 part/views.py:1586 stock/models.py:302
+#: stock/models.py:1018
msgid "Quantity must be greater than zero"
msgstr ""
@@ -2657,128 +2802,134 @@ msgstr ""
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:344
+#: order/models.py:346
msgid "Lines can only be received against an order marked as 'Placed'"
msgstr ""
-#: order/models.py:348
+#: order/models.py:350
msgid "Quantity must be an integer"
msgstr ""
-#: order/models.py:350
+#: order/models.py:352
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:369
-msgid "Received items"
-msgstr ""
-
-#: order/models.py:451
+#: order/models.py:462
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:457
+#: order/models.py:468
msgid "Customer Reference "
msgstr ""
-#: order/models.py:457
+#: order/models.py:468
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:465 templates/js/order.js:303
+#: order/models.py:476 templates/js/order.js:303
msgid "Shipment Date"
-msgstr ""
+msgstr "Data wysyłki"
-#: order/models.py:472
+#: order/models.py:483
msgid "shipped by"
-msgstr ""
+msgstr "wysłane przez"
-#: order/models.py:516
+#: order/models.py:527
msgid "SalesOrder cannot be shipped as it is not currently pending"
msgstr ""
-#: order/models.py:603
+#: order/models.py:614
msgid "Item quantity"
-msgstr ""
+msgstr "Ilość elementów"
-#: order/models.py:605
+#: order/models.py:616
msgid "Line item reference"
msgstr ""
-#: order/models.py:607
+#: order/models.py:618
msgid "Line item notes"
msgstr ""
-#: order/models.py:633 order/models.py:677
+#: order/models.py:644 order/models.py:689
#: part/templates/part/allocation.html:17
#: part/templates/part/allocation.html:45
msgid "Order"
-msgstr ""
+msgstr "Zamówienie"
-#: order/models.py:634 order/templates/order/order_base.html:9
+#: order/models.py:645 order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:24
#: report/templates/report/inventree_po_report.html:77
-#: stock/templates/stock/item_base.html:313 templates/js/order.js:148
+#: stock/templates/stock/item_base.html:319 templates/js/order.js:148
+#: templates/js/stock.js:1045
msgid "Purchase Order"
msgstr ""
-#: order/models.py:648
+#: order/models.py:659
msgid "Supplier part"
msgstr ""
-#: order/models.py:651 order/templates/order/order_base.html:131
+#: order/models.py:662 order/templates/order/order_base.html:131
#: order/templates/order/purchase_order_detail.html:189
#: order/templates/order/receive_parts.html:22
#: order/templates/order/sales_order_base.html:131
msgid "Received"
-msgstr ""
+msgstr "Odebrane"
-#: order/models.py:651
+#: order/models.py:662
msgid "Number of items received"
msgstr ""
-#: order/models.py:658 stock/models.py:508
-#: stock/templates/stock/item_base.html:320
+#: order/models.py:669 stock/models.py:540
+#: stock/templates/stock/item_base.html:326
msgid "Purchase Price"
-msgstr ""
+msgstr "Cena zakupu"
-#: order/models.py:659
+#: order/models.py:670
msgid "Unit purchase price"
-msgstr ""
+msgstr "Cena zakupu jednostkowego"
-#: order/models.py:753 order/models.py:755
+#: order/models.py:698 part/templates/part/navbar.html:95
+#: part/templates/part/part_pricing.html:78
+msgid "Sale Price"
+msgstr "Cena sprzedaży"
+
+#: order/models.py:699
+msgid "Unit sale price"
+msgstr "Jednostkowa cena sprzedaży"
+
+#: order/models.py:774 order/models.py:776
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:759
+#: order/models.py:780
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:761
+#: order/models.py:782
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:764
+#: order/models.py:785
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:774
+#: order/models.py:795
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:779
+#: order/models.py:800
msgid "Line"
-msgstr ""
+msgstr "Linia"
-#: order/models.py:790
+#: order/models.py:811
msgid "Item"
-msgstr ""
+msgstr "Komponent"
-#: order/models.py:791
+#: order/models.py:812
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:794
+#: order/models.py:815
msgid "Enter stock allocation quantity"
msgstr ""
@@ -2819,20 +2970,20 @@ msgstr ""
#: order/templates/order/order_base.html:82
#: order/templates/order/sales_order_base.html:82
msgid "Order Status"
-msgstr ""
+msgstr "Status zamówienia"
#: order/templates/order/order_base.html:117
#: report/templates/report/inventree_build_order_base.html:122
msgid "Issued"
-msgstr ""
+msgstr "Wydany"
#: order/templates/order/order_base.html:180
#: order/templates/order/purchase_order_detail.html:100
#: part/templates/part/category.html:185 part/templates/part/category.html:227
#: stock/templates/stock/location.html:191 templates/js/stock.js:708
-#: templates/js/stock.js:1169
+#: templates/js/stock.js:1291
msgid "New Location"
-msgstr ""
+msgstr "Nowa lokalizacja"
#: order/templates/order/order_base.html:181
#: order/templates/order/purchase_order_detail.html:101
@@ -2862,6 +3013,75 @@ msgstr ""
#: order/templates/order/order_notes.html:13
msgid "Order Notes"
+msgstr "Notatki zamówień"
+
+#: order/templates/order/order_wizard/match_fields.html:9
+#: part/templates/part/bom_upload/select_fields.html:21
+msgid "Missing selections for the following required columns"
+msgstr ""
+
+#: order/templates/order/order_wizard/match_fields.html:20
+msgid "Duplicate selections found, see below. Fix them then retry submitting."
+msgstr ""
+
+#: order/templates/order/order_wizard/match_fields.html:27
+#: order/templates/order/order_wizard/match_parts.html:18
+#: order/templates/order/order_wizard/po_upload.html:40
+msgid "Previous Step"
+msgstr ""
+
+#: order/templates/order/order_wizard/match_fields.html:29
+#: order/templates/order/order_wizard/match_parts.html:20
+#: part/templates/part/bom_upload/select_fields.html:32
+msgid "Submit Selections"
+msgstr ""
+
+#: order/templates/order/order_wizard/match_fields.html:35
+#: part/templates/part/bom_upload/select_fields.html:41
+msgid "File Fields"
+msgstr ""
+
+#: order/templates/order/order_wizard/match_fields.html:42
+#: part/templates/part/bom_upload/select_fields.html:47
+msgid "Remove column"
+msgstr ""
+
+#: order/templates/order/order_wizard/match_fields.html:60
+msgid "Duplicate selection"
+msgstr ""
+
+#: order/templates/order/order_wizard/match_fields.html:71
+#: order/templates/order/order_wizard/match_parts.html:51
+#: part/templates/part/bom_upload/select_fields.html:76
+#: part/templates/part/bom_upload/select_parts.html:58
+msgid "Remove row"
+msgstr ""
+
+#: order/templates/order/order_wizard/match_parts.html:11
+#: part/templates/part/bom_upload/select_parts.html:21
+msgid "Errors exist in the submitted data"
+msgstr ""
+
+#: order/templates/order/order_wizard/match_parts.html:27
+#: part/templates/part/bom_upload/select_parts.html:39
+msgid "Row"
+msgstr "Wiersz"
+
+#: order/templates/order/order_wizard/match_parts.html:28
+msgid "Select Supplier Part"
+msgstr ""
+
+#: order/templates/order/order_wizard/po_upload.html:11
+msgid "Upload File for Purchase Order"
+msgstr ""
+
+#: order/templates/order/order_wizard/po_upload.html:18
+#, python-format
+msgid "Step %(step)s of %(count)s"
+msgstr ""
+
+#: order/templates/order/order_wizard/po_upload.html:48
+msgid "Order is already processed. Files cannot be uploaded."
msgstr ""
#: order/templates/order/order_wizard/select_parts.html:9
@@ -2878,7 +3098,7 @@ msgstr ""
#: order/templates/order/order_wizard/select_parts.html:31
msgid "Select Supplier"
-msgstr ""
+msgstr "Wybierz dostawcę"
#: order/templates/order/order_wizard/select_parts.html:57
#, python-format
@@ -2888,7 +3108,7 @@ msgstr ""
#: order/templates/order/order_wizard/select_parts.html:69
#: part/templates/part/set_category.html:32
msgid "Remove part"
-msgstr ""
+msgstr "Usuń część"
#: order/templates/order/order_wizard/select_pos.html:8
msgid "Step 2 of 2 - Select Purchase Orders"
@@ -2901,7 +3121,7 @@ msgstr ""
#: order/templates/order/order_wizard/select_pos.html:31
#: templates/js/order.js:205 templates/js/order.js:308
msgid "Items"
-msgstr ""
+msgstr "Przedmioty"
#: order/templates/order/order_wizard/select_pos.html:32
msgid "Select Purchase Order"
@@ -2929,15 +3149,15 @@ msgstr ""
#: order/templates/order/po_navbar.html:20
#: order/templates/order/po_received_items.html:12
msgid "Received Items"
-msgstr ""
+msgstr "Otrzymane elementy"
#: order/templates/order/purchase_order_detail.html:14
msgid "Purchase Order Items"
msgstr ""
#: order/templates/order/purchase_order_detail.html:24
-#: order/templates/order/sales_order_detail.html:22 order/views.py:1120
-#: order/views.py:1203
+#: order/templates/order/sales_order_detail.html:22 order/views.py:1311
+#: order/views.py:1394
msgid "Add Line Item"
msgstr ""
@@ -2946,11 +3166,12 @@ msgid "No line items found"
msgstr ""
#: order/templates/order/purchase_order_detail.html:180
+#: order/templates/order/sales_order_detail.html:235
msgid "Unit Price"
-msgstr ""
+msgstr "Cena jednostkowa"
#: order/templates/order/purchase_order_detail.html:221
-#: order/templates/order/sales_order_detail.html:294
+#: order/templates/order/sales_order_detail.html:328
msgid "Edit line item"
msgstr ""
@@ -2980,10 +3201,10 @@ msgstr ""
#: part/templates/part/category_partlist.html:10
#: templates/InvenTree/index.html:97 templates/InvenTree/search.html:114
#: templates/InvenTree/settings/tabs.html:25 templates/js/part.js:577
-#: templates/navbar.html:23 templates/stats.html:59 templates/stats.html:68
+#: templates/navbar.html:23 templates/stats.html:80 templates/stats.html:89
#: users/models.py:40
msgid "Parts"
-msgstr ""
+msgstr "Części"
#: order/templates/order/receive_parts.html:15
msgid "Select parts to receive against this order"
@@ -2991,7 +3212,7 @@ msgstr ""
#: order/templates/order/receive_parts.html:20
msgid "Order Code"
-msgstr ""
+msgstr "Kod zamówienia"
#: order/templates/order/receive_parts.html:21
#: part/templates/part/part_base.html:129 templates/js/part.js:414
@@ -3000,7 +3221,7 @@ msgstr ""
#: order/templates/order/receive_parts.html:23
msgid "Receive"
-msgstr ""
+msgstr "Odbierz"
#: order/templates/order/receive_parts.html:36
msgid "Error: Referenced part has been removed"
@@ -3008,7 +3229,7 @@ msgstr ""
#: order/templates/order/receive_parts.html:57
msgid "Remove line"
-msgstr ""
+msgstr "Usuń linie"
#: order/templates/order/sales_order_base.html:15
msgid "This SalesOrder has not been fully allocated"
@@ -3042,59 +3263,72 @@ msgstr ""
msgid "Sales Order Items"
msgstr ""
-#: order/templates/order/sales_order_detail.html:92 templates/js/bom.js:342
+#: order/templates/order/sales_order_detail.html:95 templates/js/bom.js:342
#: templates/js/build.js:627 templates/js/build.js:1044
msgid "Actions"
-msgstr ""
+msgstr "Akcje"
-#: order/templates/order/sales_order_detail.html:99 templates/js/build.js:515
+#: order/templates/order/sales_order_detail.html:102 templates/js/build.js:515
#: templates/js/build.js:849
msgid "Edit stock allocation"
msgstr ""
-#: order/templates/order/sales_order_detail.html:100 templates/js/build.js:517
+#: order/templates/order/sales_order_detail.html:103 templates/js/build.js:517
#: templates/js/build.js:850
msgid "Delete stock allocation"
msgstr ""
-#: order/templates/order/sales_order_detail.html:170
+#: order/templates/order/sales_order_detail.html:176
msgid "No matching line items"
msgstr ""
-#: order/templates/order/sales_order_detail.html:199
+#: order/templates/order/sales_order_detail.html:205
msgid "ID"
-msgstr ""
+msgstr "Numer ID"
-#: order/templates/order/sales_order_detail.html:229 templates/js/build.js:579
+#: order/templates/order/sales_order_detail.html:243 templates/js/build.js:579
#: templates/js/build.js:845
msgid "Allocated"
-msgstr ""
+msgstr "Przydzielono"
-#: order/templates/order/sales_order_detail.html:231
+#: order/templates/order/sales_order_detail.html:245
msgid "Fulfilled"
msgstr ""
-#: order/templates/order/sales_order_detail.html:279
+#: order/templates/order/sales_order_detail.html:282
+msgid "PO"
+msgstr ""
+
+#: order/templates/order/sales_order_detail.html:312
msgid "Allocate serial numbers"
msgstr ""
-#: order/templates/order/sales_order_detail.html:282 templates/js/build.js:641
+#: order/templates/order/sales_order_detail.html:315 templates/js/build.js:641
msgid "Allocate stock"
msgstr ""
-#: order/templates/order/sales_order_detail.html:285
+#: order/templates/order/sales_order_detail.html:318
msgid "Purchase stock"
msgstr ""
-#: order/templates/order/sales_order_detail.html:289 templates/js/build.js:634
+#: order/templates/order/sales_order_detail.html:322 templates/js/build.js:634
#: templates/js/build.js:1052
msgid "Build stock"
msgstr ""
-#: order/templates/order/sales_order_detail.html:295
+#: order/templates/order/sales_order_detail.html:325
+#: order/templates/order/sales_order_detail.html:434
+msgid "Calculate price"
+msgstr "Oblicz cenę"
+
+#: order/templates/order/sales_order_detail.html:329
msgid "Delete line item "
msgstr ""
+#: order/templates/order/sales_order_detail.html:440
+msgid "Update Unit Price"
+msgstr ""
+
#: order/templates/order/sales_order_notes.html:14
msgid "Sales Order Notes"
msgstr ""
@@ -3136,172 +3370,197 @@ msgstr ""
msgid "Are you sure you wish to delete this line item?"
msgstr ""
-#: order/views.py:99
+#: order/views.py:104
msgid "Add Purchase Order Attachment"
msgstr ""
-#: order/views.py:149
+#: order/views.py:154
msgid "Add Sales Order Attachment"
msgstr ""
-#: order/views.py:341
+#: order/views.py:346
msgid "Create Sales Order"
msgstr ""
-#: order/views.py:376
+#: order/views.py:381
msgid "Edit Purchase Order"
msgstr ""
-#: order/views.py:396
+#: order/views.py:401
msgid "Edit Sales Order"
msgstr ""
-#: order/views.py:412
+#: order/views.py:417
msgid "Cancel Order"
msgstr ""
-#: order/views.py:421 order/views.py:447
+#: order/views.py:426 order/views.py:452
msgid "Confirm order cancellation"
msgstr ""
-#: order/views.py:424 order/views.py:450
+#: order/views.py:429 order/views.py:455
msgid "Order cannot be cancelled"
msgstr ""
-#: order/views.py:438
+#: order/views.py:443
msgid "Cancel sales order"
msgstr ""
-#: order/views.py:464
+#: order/views.py:469
msgid "Issue Order"
msgstr ""
-#: order/views.py:473
+#: order/views.py:478
msgid "Confirm order placement"
msgstr ""
-#: order/views.py:483
+#: order/views.py:488
msgid "Purchase order issued"
msgstr ""
-#: order/views.py:494
+#: order/views.py:499
msgid "Complete Order"
msgstr ""
-#: order/views.py:510
+#: order/views.py:515
msgid "Confirm order completion"
msgstr ""
-#: order/views.py:521
+#: order/views.py:526
msgid "Purchase order completed"
msgstr ""
-#: order/views.py:531
+#: order/views.py:536
msgid "Ship Order"
-msgstr ""
+msgstr "Wyślij zamówienie"
-#: order/views.py:547
+#: order/views.py:552
msgid "Confirm order shipment"
msgstr ""
-#: order/views.py:553
+#: order/views.py:558
msgid "Could not ship order"
msgstr ""
-#: order/views.py:607
+#: order/views.py:584
+msgid "Match Supplier Parts"
+msgstr ""
+
+#: order/views.py:798
msgid "Receive Parts"
msgstr ""
-#: order/views.py:677
+#: order/views.py:868
msgid "Items received"
-msgstr ""
+msgstr "Otrzymane przedmioty"
-#: order/views.py:691
+#: order/views.py:882
msgid "No destination set"
-msgstr ""
+msgstr "Nie ustawiono miejsca docelowego"
-#: order/views.py:736
+#: order/views.py:927
msgid "Error converting quantity to number"
-msgstr ""
+msgstr "Błąd konwersji ilości na liczbę"
-#: order/views.py:742
+#: order/views.py:933
msgid "Receive quantity less than zero"
msgstr ""
-#: order/views.py:748
+#: order/views.py:939
msgid "No lines specified"
msgstr ""
-#: order/views.py:1069
+#: order/views.py:1260
#, python-brace-format
msgid "Ordered {n} parts"
msgstr ""
-#: order/views.py:1129
+#: order/views.py:1320
msgid "Supplier part must be specified"
msgstr ""
-#: order/views.py:1135
+#: order/views.py:1326
msgid "Supplier must match for Part and Order"
msgstr ""
-#: order/views.py:1254 order/views.py:1272
+#: order/views.py:1457 order/views.py:1475
msgid "Edit Line Item"
msgstr ""
-#: order/views.py:1288 order/views.py:1300
+#: order/views.py:1491 order/views.py:1503
msgid "Delete Line Item"
msgstr ""
-#: order/views.py:1293 order/views.py:1305
+#: order/views.py:1496 order/views.py:1508
msgid "Deleted line item"
msgstr ""
-#: order/views.py:1318
+#: order/views.py:1521
msgid "Allocate Serial Numbers"
msgstr ""
-#: order/views.py:1363
+#: order/views.py:1566
#, python-brace-format
msgid "Allocated {n} items"
msgstr ""
-#: order/views.py:1379
+#: order/views.py:1582
msgid "Select line item"
msgstr ""
-#: order/views.py:1410
-msgid "No matching item for serial"
+#: order/views.py:1613
+#, python-brace-format
+msgid "No matching item for serial {serial}"
msgstr ""
-#: order/views.py:1420
-msgid "is not in stock"
+#: order/views.py:1623
+#, python-brace-format
+msgid "{serial} is not in stock"
msgstr ""
-#: order/views.py:1428
-msgid "already allocated to an order"
+#: order/views.py:1631
+#, python-brace-format
+msgid "{serial} already allocated to an order"
msgstr ""
-#: order/views.py:1482
+#: order/views.py:1685
msgid "Allocate Stock to Order"
msgstr ""
-#: order/views.py:1556
+#: order/views.py:1759
msgid "Edit Allocation Quantity"
msgstr ""
-#: order/views.py:1571
+#: order/views.py:1774
msgid "Remove allocation"
msgstr ""
+#: order/views.py:1846
+msgid "Sales order not found"
+msgstr ""
+
+#: order/views.py:1852
+msgid "Price not found"
+msgstr "Nie znaleziono ceny"
+
+#: order/views.py:1855
+#, python-brace-format
+msgid "Updated {part} unit-price to {price}"
+msgstr ""
+
+#: order/views.py:1860
+#, python-brace-format
+msgid "Updated {part} unit-price to {price} and quantity to {qty}"
+msgstr ""
+
#: part/bom.py:138 part/models.py:72 part/models.py:762
#: part/templates/part/category.html:66 part/templates/part/detail.html:90
msgid "Default Location"
-msgstr ""
+msgstr "Domyślna lokalizacja"
#: part/bom.py:139 part/templates/part/part_base.html:117
msgid "Available Stock"
-msgstr ""
+msgstr "Dostępna ilość"
#: part/bom.py:379
#, python-brace-format
@@ -3318,15 +3577,15 @@ msgstr ""
#: part/forms.py:89 stock/forms.py:265
msgid "File Format"
-msgstr ""
+msgstr "Format pliku"
#: part/forms.py:89 stock/forms.py:265
msgid "Select output file format"
-msgstr ""
+msgstr "Wybierz format pliku wyjściowego"
#: part/forms.py:91
msgid "Cascading"
-msgstr ""
+msgstr "Kaskadowe"
#: part/forms.py:91
msgid "Download cascading / multi-level BOM"
@@ -3334,7 +3593,7 @@ msgstr ""
#: part/forms.py:93
msgid "Levels"
-msgstr ""
+msgstr "Poziomy"
#: part/forms.py:93
msgid "Select maximum number of BOM levels to export (0 = all levels)"
@@ -3372,9 +3631,9 @@ msgstr ""
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:122 part/models.py:2077
+#: part/forms.py:122 part/models.py:2115
msgid "Parent Part"
-msgstr ""
+msgstr "Część nadrzędna"
#: part/forms.py:123 part/templates/part/bom_duplicate.html:7
msgid "Select parent part to copy BOM from"
@@ -3390,7 +3649,7 @@ msgstr ""
#: part/forms.py:153
msgid "validate"
-msgstr ""
+msgstr "potwierdź"
#: part/forms.py:153
msgid "Confirm that the BOM is correct"
@@ -3448,9 +3707,9 @@ msgstr ""
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:344 part/models.py:2171
+#: part/forms.py:344 part/models.py:2209
msgid "Sub part"
-msgstr ""
+msgstr "Podczęść"
#: part/forms.py:372
msgid "Input quantity for price calculation"
@@ -3462,20 +3721,20 @@ msgstr ""
#: part/models.py:76
msgid "Default keywords"
-msgstr ""
+msgstr "Domyślne słowa kluczowe"
#: part/models.py:76
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:82 part/models.py:2123
+#: part/models.py:82 part/models.py:2161
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
#: part/models.py:83 part/templates/part/category.html:23
#: part/templates/part/category.html:94 part/templates/part/category.html:141
-#: templates/InvenTree/search.html:127 templates/stats.html:63
+#: templates/InvenTree/search.html:127 templates/stats.html:84
#: users/models.py:39
msgid "Part Categories"
msgstr ""
@@ -3523,25 +3782,25 @@ msgstr ""
#: part/models.py:705 part/templates/part/detail.html:60
msgid "Variant Of"
-msgstr ""
+msgstr "Wariant"
#: part/models.py:711
msgid "Part description"
-msgstr ""
+msgstr "Opis części"
#: part/models.py:716 part/templates/part/category.html:73
#: part/templates/part/detail.html:67
msgid "Keywords"
-msgstr ""
+msgstr "Słowa kluczowe"
#: part/models.py:717
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:724 part/models.py:2122 part/templates/part/detail.html:73
+#: part/models.py:724 part/models.py:2160 part/templates/part/detail.html:73
#: part/templates/part/set_category.html:15 templates/js/part.js:385
msgid "Category"
-msgstr ""
+msgstr "Kategoria"
#: part/models.py:725
msgid "Part category"
@@ -3550,7 +3809,7 @@ msgstr ""
#: part/models.py:730 part/templates/part/detail.html:28
#: part/templates/part/part_base.html:94 templates/js/part.js:161
msgid "IPN"
-msgstr ""
+msgstr "IPN"
#: part/models.py:731
msgid "Internal Part Number"
@@ -3563,7 +3822,7 @@ msgstr ""
#: part/models.py:738 part/templates/part/detail.html:35 report/models.py:198
#: templates/js/part.js:165
msgid "Revision"
-msgstr ""
+msgstr "Wersja"
#: part/models.py:760
msgid "Where is this item normally stored?"
@@ -3587,16 +3846,16 @@ msgstr ""
#: part/models.py:821 part/templates/part/detail.html:113
msgid "Minimum Stock"
-msgstr ""
+msgstr "Minimalny stan magazynowy"
#: part/models.py:822
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:828 part/models.py:2051 part/templates/part/detail.html:106
+#: part/models.py:828 part/models.py:2089 part/templates/part/detail.html:106
#: part/templates/part/params.html:29
msgid "Units"
-msgstr ""
+msgstr "Jednostki"
#: part/models.py:829
msgid "Stock keeping units for this part"
@@ -3623,14 +3882,14 @@ msgid "Can this part be sold to customers?"
msgstr ""
#: part/models.py:861 part/templates/part/detail.html:227
-#: templates/js/table_filters.js:20 templates/js/table_filters.js:60
-#: templates/js/table_filters.js:236 templates/js/table_filters.js:305
+#: templates/js/table_filters.js:21 templates/js/table_filters.js:61
+#: templates/js/table_filters.js:237 templates/js/table_filters.js:306
msgid "Active"
-msgstr ""
+msgstr "Aktywny"
#: part/models.py:862
msgid "Is this part active?"
-msgstr ""
+msgstr "Czy ta część jest aktywna?"
#: part/models.py:867
msgid "Is this a virtual part, such as a software product or license?"
@@ -3660,167 +3919,171 @@ msgstr ""
msgid "Creation User"
msgstr ""
-#: part/models.py:1949
+#: part/models.py:1616
+msgid "Sell multiple"
+msgstr "Sprzedaj wiele"
+
+#: part/models.py:1987
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:1966
+#: part/models.py:2004
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:1986 templates/js/part.js:638 templates/js/stock.js:104
+#: part/models.py:2024 templates/js/part.js:638 templates/js/stock.js:104
msgid "Test Name"
-msgstr ""
+msgstr "Nazwa testu"
-#: part/models.py:1987
+#: part/models.py:2025
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:1992
+#: part/models.py:2030
msgid "Test Description"
msgstr ""
-#: part/models.py:1993
+#: part/models.py:2031
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:1998 templates/js/part.js:647
-#: templates/js/table_filters.js:222
+#: part/models.py:2036 templates/js/part.js:647
+#: templates/js/table_filters.js:223
msgid "Required"
-msgstr ""
+msgstr "Wymagane"
-#: part/models.py:1999
+#: part/models.py:2037
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2004 templates/js/part.js:655
+#: part/models.py:2042 templates/js/part.js:655
msgid "Requires Value"
msgstr ""
-#: part/models.py:2005
+#: part/models.py:2043
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2010 templates/js/part.js:662
+#: part/models.py:2048 templates/js/part.js:662
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2011
+#: part/models.py:2049
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2044
+#: part/models.py:2082
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2049
+#: part/models.py:2087
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2051
+#: part/models.py:2089
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2079 part/models.py:2128 part/models.py:2129
+#: part/models.py:2117 part/models.py:2166 part/models.py:2167
#: templates/InvenTree/settings/category.html:62
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2081
+#: part/models.py:2119
msgid "Data"
-msgstr ""
+msgstr "Dane"
-#: part/models.py:2081
+#: part/models.py:2119
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2133 templates/InvenTree/settings/category.html:67
+#: part/models.py:2171 templates/InvenTree/settings/category.html:67
msgid "Default Value"
-msgstr ""
+msgstr "Wartość domyślna"
-#: part/models.py:2134
+#: part/models.py:2172
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2163
+#: part/models.py:2201
msgid "Select parent part"
msgstr ""
-#: part/models.py:2172
+#: part/models.py:2210
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2178
+#: part/models.py:2216
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2180 templates/js/bom.js:216 templates/js/bom.js:269
+#: part/models.py:2218 templates/js/bom.js:216 templates/js/bom.js:269
msgid "Optional"
msgstr ""
-#: part/models.py:2180
+#: part/models.py:2218
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2183
+#: part/models.py:2221
msgid "Overage"
msgstr ""
-#: part/models.py:2184
+#: part/models.py:2222
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2187
+#: part/models.py:2225
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2190
+#: part/models.py:2228
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2192
+#: part/models.py:2230
msgid "Checksum"
-msgstr ""
+msgstr "Suma kontrolna"
-#: part/models.py:2192
+#: part/models.py:2230
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2196 templates/js/bom.js:279 templates/js/bom.js:286
-#: templates/js/table_filters.js:50
+#: part/models.py:2234 templates/js/bom.js:279 templates/js/bom.js:286
+#: templates/js/table_filters.js:51
msgid "Inherited"
msgstr ""
-#: part/models.py:2197
+#: part/models.py:2235
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2273 part/views.py:1592 part/views.py:1644
-#: stock/models.py:260
+#: part/models.py:2311 part/views.py:1592 part/views.py:1644
+#: stock/models.py:292
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2282 part/models.py:2284
+#: part/models.py:2320 part/models.py:2322
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2287
+#: part/models.py:2325
msgid "BOM Item"
msgstr ""
-#: part/models.py:2404
+#: part/models.py:2442
msgid "Part 1"
-msgstr ""
+msgstr "Część 1"
-#: part/models.py:2408
+#: part/models.py:2446
msgid "Part 2"
-msgstr ""
+msgstr "Część 2"
-#: part/models.py:2408
+#: part/models.py:2446
msgid "Select Related Part"
-msgstr ""
+msgstr "Wybierz powiązaną część"
-#: part/models.py:2440
+#: part/models.py:2478
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -3843,7 +4106,7 @@ msgstr ""
#: part/templates/part/bom.html:10 part/templates/part/navbar.html:48
#: part/templates/part/navbar.html:51
msgid "Bill of Materials"
-msgstr ""
+msgstr "Zestawienie materiałowe"
#: part/templates/part/bom.html:19
#, python-format
@@ -3866,11 +4129,11 @@ msgstr ""
#: part/templates/part/bom.html:35
msgid "Import BOM data"
-msgstr ""
+msgstr "Importuj dane BOM"
#: part/templates/part/bom.html:39
msgid "Copy BOM from parent part"
-msgstr ""
+msgstr "Kopiuj BOM z części nadrzędnej"
#: part/templates/part/bom.html:43
msgid "New BOM Item"
@@ -3878,7 +4141,7 @@ msgstr ""
#: part/templates/part/bom.html:46
msgid "Finish Editing"
-msgstr ""
+msgstr "Zakończ edycję"
#: part/templates/part/bom.html:51
msgid "Edit BOM"
@@ -3905,7 +4168,7 @@ msgid "All selected BOM items will be deleted"
msgstr ""
#: part/templates/part/bom.html:160 part/views.py:584
-#: templates/js/stock.js:1158
+#: templates/js/stock.js:1280
msgid "Create New Part"
msgstr ""
@@ -3923,51 +4186,18 @@ msgstr ""
msgid "Step 2 - Select Fields"
msgstr ""
-#: part/templates/part/bom_upload/select_fields.html:21
-msgid "Missing selections for the following required columns"
-msgstr ""
-
-#: part/templates/part/bom_upload/select_fields.html:32
-msgid "Submit Selections"
-msgstr ""
-
-#: part/templates/part/bom_upload/select_fields.html:41
-msgid "File Fields"
-msgstr ""
-
-#: part/templates/part/bom_upload/select_fields.html:47
-msgid "Remove column"
-msgstr ""
-
-#: part/templates/part/bom_upload/select_fields.html:58
-msgid "Match Fields"
-msgstr ""
-
#: part/templates/part/bom_upload/select_fields.html:68
msgid "Duplicate column selection"
msgstr ""
-#: part/templates/part/bom_upload/select_fields.html:76
-#: part/templates/part/bom_upload/select_parts.html:58
-msgid "Remove row"
-msgstr ""
-
#: part/templates/part/bom_upload/select_parts.html:16
msgid "Step 3 - Select Parts"
msgstr ""
-#: part/templates/part/bom_upload/select_parts.html:21
-msgid "Errors exist in the submitted data"
-msgstr ""
-
#: part/templates/part/bom_upload/select_parts.html:27
msgid "Submit BOM"
msgstr ""
-#: part/templates/part/bom_upload/select_parts.html:39
-msgid "Row"
-msgstr ""
-
#: part/templates/part/bom_upload/select_parts.html:40
#: part/templates/part/bom_upload/select_parts.html:69
msgid "Select Part"
@@ -3998,10 +4228,6 @@ msgstr ""
msgid "Each part must already exist in the database"
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:27
-msgid "Upload File"
-msgstr ""
-
#: part/templates/part/bom_validate.html:6
#, python-format
msgid "Confirm that the Bill of Materials (BOM) is valid for:
%(part)s"
@@ -4021,11 +4247,11 @@ msgstr ""
#: part/templates/part/category.html:24
msgid "All parts"
-msgstr ""
+msgstr "Wszystkie części"
-#: part/templates/part/category.html:29 part/views.py:2282
+#: part/templates/part/category.html:29 part/views.py:2290
msgid "Create new part category"
-msgstr ""
+msgstr "Stwórz nową kategorię komponentów"
#: part/templates/part/category.html:35
msgid "Edit part category"
@@ -4091,9 +4317,9 @@ msgstr ""
msgid "Create new Part Category"
msgstr ""
-#: part/templates/part/category.html:228 stock/views.py:1359
+#: part/templates/part/category.html:228 stock/views.py:1391
msgid "Create new Stock Location"
-msgstr ""
+msgstr "Utwórz nową lokalizację magazynową"
#: part/templates/part/category_delete.html:5
msgid "Are you sure you want to delete category"
@@ -4110,7 +4336,7 @@ msgstr ""
#: part/templates/part/category_delete.html:11
msgid "category"
-msgstr ""
+msgstr "kategoria"
#: part/templates/part/category_delete.html:13
msgid "top level Parts category"
@@ -4134,16 +4360,16 @@ msgstr ""
#: part/templates/part/category_navbar.html:37
#: part/templates/part/navbar.html:22
msgid "Parameters"
-msgstr ""
+msgstr "Parametry"
#: part/templates/part/category_parametric.html:10
#: part/templates/part/navbar.html:19 part/templates/part/params.html:10
msgid "Part Parameters"
-msgstr ""
+msgstr "Parametry części"
#: part/templates/part/copy_part.html:9 part/views.py:460
msgid "Duplicate Part"
-msgstr ""
+msgstr "Duplikuj część"
#: part/templates/part/copy_part.html:10
#, python-format
@@ -4167,11 +4393,11 @@ msgstr ""
#: part/templates/part/detail.html:11 part/templates/part/navbar.html:11
msgid "Part Details"
-msgstr ""
+msgstr "Szczegóły części"
#: part/templates/part/detail.html:42
msgid "Latest Serial Number"
-msgstr ""
+msgstr "Ostatni numer seryjny"
#: part/templates/part/detail.html:47
msgid "No serial numbers recorded"
@@ -4183,15 +4409,15 @@ msgstr ""
#: part/templates/part/detail.html:139
msgid "Responsible User"
-msgstr ""
+msgstr "Odpowiedzialny użytkownik"
#: part/templates/part/detail.html:153
msgid "Part is virtual (not a physical part)"
-msgstr ""
+msgstr "Część jest wirtualna (nie fizyczna)"
#: part/templates/part/detail.html:155
msgid "Part is not a virtual part"
-msgstr ""
+msgstr "Część nie jest częścią wirtualną"
#: part/templates/part/detail.html:163
msgid "Part is a template part (variants can be made from this part)"
@@ -4282,15 +4508,11 @@ msgstr ""
msgid "Sales Price Information"
msgstr ""
-#: part/templates/part/navbar.html:95
-msgid "Sale Price"
-msgstr ""
-
#: part/templates/part/navbar.html:106 part/templates/part/part_tests.html:10
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/navbar.html:109 stock/templates/stock/item_base.html:398
+#: part/templates/part/navbar.html:109 stock/templates/stock/item_base.html:404
msgid "Tests"
msgstr ""
@@ -4315,7 +4537,7 @@ msgstr ""
#: part/templates/part/params.html:28
#: report/templates/report/inventree_test_report_base.html:90
-#: stock/models.py:1655 templates/InvenTree/settings/header.html:8
+#: stock/models.py:1754 templates/InvenTree/settings/header.html:8
#: templates/js/stock.js:124
msgid "Value"
msgstr ""
@@ -4351,19 +4573,19 @@ msgid "Star this part"
msgstr ""
#: part/templates/part/part_base.html:47
-#: stock/templates/stock/item_base.html:131
+#: stock/templates/stock/item_base.html:137
#: stock/templates/stock/location.html:51
msgid "Barcode actions"
msgstr ""
#: part/templates/part/part_base.html:49
-#: stock/templates/stock/item_base.html:133
+#: stock/templates/stock/item_base.html:139
#: stock/templates/stock/location.html:53 templates/qr_button.html:1
msgid "Show QR Code"
msgstr ""
#: part/templates/part/part_base.html:50
-#: stock/templates/stock/item_base.html:149
+#: stock/templates/stock/item_base.html:155
#: stock/templates/stock/location.html:54
msgid "Print Label"
msgstr ""
@@ -4392,7 +4614,7 @@ msgstr ""
msgid "Delete part"
msgstr ""
-#: part/templates/part/part_base.html:123 templates/js/table_filters.js:156
+#: part/templates/part/part_base.html:123 templates/js/table_filters.js:157
msgid "In Stock"
msgstr ""
@@ -4420,42 +4642,39 @@ msgstr ""
msgid "Calculate"
msgstr ""
-#: part/templates/part/part_pricing.html:8
-#, python-format
-msgid "Pricing information for:
%(part)s."
-msgstr ""
-
-#: part/templates/part/part_pricing.html:23
+#: part/templates/part/part_pricing.html:19
msgid "Supplier Pricing"
msgstr ""
-#: part/templates/part/part_pricing.html:27
-#: part/templates/part/part_pricing.html:53
+#: part/templates/part/part_pricing.html:23
+#: part/templates/part/part_pricing.html:49
+#: part/templates/part/part_pricing.html:81
msgid "Unit Cost"
msgstr ""
-#: part/templates/part/part_pricing.html:33
-#: part/templates/part/part_pricing.html:59
+#: part/templates/part/part_pricing.html:29
+#: part/templates/part/part_pricing.html:55
+#: part/templates/part/part_pricing.html:85
msgid "Total Cost"
msgstr ""
-#: part/templates/part/part_pricing.html:41
+#: part/templates/part/part_pricing.html:37
msgid "No supplier pricing available"
msgstr ""
-#: part/templates/part/part_pricing.html:49
+#: part/templates/part/part_pricing.html:45
msgid "BOM Pricing"
msgstr ""
-#: part/templates/part/part_pricing.html:67
+#: part/templates/part/part_pricing.html:63
msgid "Note: BOM pricing is incomplete for this part"
msgstr ""
-#: part/templates/part/part_pricing.html:74
+#: part/templates/part/part_pricing.html:70
msgid "No BOM pricing available"
msgstr ""
-#: part/templates/part/part_pricing.html:84
+#: part/templates/part/part_pricing.html:94
msgid "No pricing information is available for this part."
msgstr ""
@@ -4564,6 +4783,10 @@ msgstr ""
msgid "New Variant"
msgstr ""
+#: part/templatetags/inventree_extras.py:97
+msgid "Unknown database"
+msgstr ""
+
#: part/views.py:89
msgid "Add Related Part"
msgstr ""
@@ -4713,63 +4936,63 @@ msgstr ""
msgid "Part Pricing"
msgstr ""
-#: part/views.py:2081
+#: part/views.py:2089
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:2091
+#: part/views.py:2099
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:2098
+#: part/views.py:2106
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:2106
+#: part/views.py:2114
msgid "Create Part Parameter"
msgstr ""
-#: part/views.py:2156
+#: part/views.py:2164
msgid "Edit Part Parameter"
msgstr ""
-#: part/views.py:2170
+#: part/views.py:2178
msgid "Delete Part Parameter"
msgstr ""
-#: part/views.py:2230
+#: part/views.py:2238
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:2268
+#: part/views.py:2276
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:2274
+#: part/views.py:2282
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:2326
+#: part/views.py:2334
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:2427
+#: part/views.py:2435
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:2483
+#: part/views.py:2491
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:2502
+#: part/views.py:2510
msgid "Create BOM Item"
msgstr ""
-#: part/views.py:2572
+#: part/views.py:2580
msgid "Edit BOM item"
msgstr ""
-#: part/views.py:2628
+#: part/views.py:2636
msgid "Confim BOM item deletion"
msgstr ""
@@ -4871,17 +5094,17 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:1643
+#: stock/models.py:1742
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:89
-#: stock/models.py:1649
+#: stock/models.py:1748
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:92
-#: templates/js/order.js:195 templates/js/stock.js:986
+#: templates/js/order.js:195 templates/js/stock.js:984
msgid "Date"
msgstr ""
@@ -4893,22 +5116,22 @@ msgstr ""
msgid "Fail"
msgstr ""
-#: stock/api.py:199
+#: stock/api.py:212
#, python-brace-format
msgid "Updated stock for {n} items"
msgstr ""
-#: stock/api.py:268
+#: stock/api.py:281
#, python-brace-format
msgid "Moved {n} parts to {loc}"
msgstr ""
-#: stock/forms.py:114 stock/forms.py:406 stock/models.py:475
-#: stock/templates/stock/item_base.html:365 templates/js/stock.js:656
+#: stock/forms.py:114 stock/forms.py:418 stock/models.py:507
+#: stock/templates/stock/item_base.html:371 templates/js/stock.js:656
msgid "Expiry Date"
msgstr ""
-#: stock/forms.py:115 stock/forms.py:407
+#: stock/forms.py:115 stock/forms.py:419
msgid "Expiration date for this stock item"
msgstr ""
@@ -4936,8 +5159,8 @@ msgstr ""
msgid "Select test report template"
msgstr ""
-#: stock/forms.py:267 templates/js/table_filters.js:70
-#: templates/js/table_filters.js:133
+#: stock/forms.py:267 templates/js/table_filters.js:71
+#: templates/js/table_filters.js:134
msgid "Include sublocations"
msgstr ""
@@ -4993,243 +5216,187 @@ msgstr ""
msgid "Set the destination as the default location for selected parts"
msgstr ""
-#: stock/models.py:54 stock/models.py:513
+#: stock/models.py:54 stock/models.py:545
msgid "Owner"
msgstr ""
-#: stock/models.py:55 stock/models.py:514
+#: stock/models.py:55 stock/models.py:546
msgid "Select Owner"
msgstr ""
-#: stock/models.py:205
-msgid "Created stock item"
-msgstr ""
-
-#: stock/models.py:241
+#: stock/models.py:273
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:277
+#: stock/models.py:309
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:287 stock/models.py:296
+#: stock/models.py:319 stock/models.py:328
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:288
+#: stock/models.py:320
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:310
+#: stock/models.py:342
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:316
+#: stock/models.py:348
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:323
+#: stock/models.py:355
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:365
+#: stock/models.py:397
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:374
+#: stock/models.py:406
msgid "Base part"
msgstr ""
-#: stock/models.py:383
+#: stock/models.py:415
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:388 stock/templates/stock/stock_app_base.html:8
+#: stock/models.py:420 stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:391
+#: stock/models.py:423
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:398
+#: stock/models.py:430
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:403 stock/templates/stock/item_base.html:259
+#: stock/models.py:435 stock/templates/stock/item_base.html:265
msgid "Installed In"
msgstr ""
-#: stock/models.py:406
+#: stock/models.py:438
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:422
+#: stock/models.py:454
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:434
+#: stock/models.py:466
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:438
+#: stock/models.py:470
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:447
+#: stock/models.py:479
msgid "Source Build"
msgstr ""
-#: stock/models.py:449
+#: stock/models.py:481
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:460
+#: stock/models.py:492
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:463
+#: stock/models.py:495
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:469
+#: stock/models.py:501
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:476
+#: stock/models.py:508
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:489
+#: stock/models.py:521
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:489
+#: stock/models.py:521
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:499 stock/templates/stock/item_notes.html:13
+#: stock/models.py:531 stock/templates/stock/item_notes.html:13
#: stock/templates/stock/navbar.html:54
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:509
+#: stock/models.py:541
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:614
-msgid "Assigned to Customer"
-msgstr ""
-
-#: stock/models.py:616
-msgid "Manually assigned to customer"
-msgstr ""
-
-#: stock/models.py:629
-msgid "Returned from customer"
-msgstr ""
-
-#: stock/models.py:631
-msgid "Returned to location"
-msgstr ""
-
-#: stock/models.py:792
-msgid "Installed into stock item"
-msgstr ""
-
-#: stock/models.py:800
-msgid "Installed stock item"
-msgstr ""
-
-#: stock/models.py:824
-msgid "Uninstalled stock item"
-msgstr ""
-
-#: stock/models.py:843
-msgid "Uninstalled into location"
-msgstr ""
-
-#: stock/models.py:944
+#: stock/models.py:1009
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:950
+#: stock/models.py:1015
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:956
+#: stock/models.py:1021
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:959
+#: stock/models.py:1024
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:962
+#: stock/models.py:1027
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:994
-msgid "Add serial number"
-msgstr ""
-
-#: stock/models.py:997
+#: stock/models.py:1034
#, python-brace-format
-msgid "Serialized {n} items"
+msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1075
-msgid "Split from existing stock"
-msgstr ""
-
-#: stock/models.py:1113
+#: stock/models.py:1192
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1556
-msgid "Title"
-msgstr ""
-
-#: stock/models.py:1556
-msgid "Tracking entry title"
-msgstr ""
-
-#: stock/models.py:1558
+#: stock/models.py:1666
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1560
-msgid "Link to external page for further information"
-msgstr ""
-
-#: stock/models.py:1620
+#: stock/models.py:1719
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1626
+#: stock/models.py:1725
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1644
+#: stock/models.py:1743
msgid "Test name"
msgstr ""
-#: stock/models.py:1650 templates/js/table_filters.js:212
+#: stock/models.py:1749 templates/js/table_filters.js:213
msgid "Test result"
msgstr ""
-#: stock/models.py:1656
+#: stock/models.py:1755
msgid "Test output value"
msgstr ""
-#: stock/models.py:1663
+#: stock/models.py:1762
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1669
+#: stock/models.py:1768
msgid "Test notes"
msgstr ""
@@ -5284,134 +5451,134 @@ msgid "This stock item will be automatically deleted when all stock is depleted.
msgstr ""
#: stock/templates/stock/item_base.html:95
-#: stock/templates/stock/item_base.html:369 templates/js/table_filters.js:145
+#: stock/templates/stock/item_base.html:375 templates/js/table_filters.js:146
msgid "Expired"
msgstr ""
-#: stock/templates/stock/item_base.html:99
-#: stock/templates/stock/item_base.html:371 templates/js/table_filters.js:150
+#: stock/templates/stock/item_base.html:105
+#: stock/templates/stock/item_base.html:377 templates/js/table_filters.js:151
msgid "Stale"
msgstr ""
-#: stock/templates/stock/item_base.html:136 templates/js/barcode.js:309
+#: stock/templates/stock/item_base.html:142 templates/js/barcode.js:309
#: templates/js/barcode.js:314
msgid "Unlink Barcode"
msgstr ""
-#: stock/templates/stock/item_base.html:138
+#: stock/templates/stock/item_base.html:144
msgid "Link Barcode"
msgstr ""
-#: stock/templates/stock/item_base.html:140 templates/stock_table.html:31
+#: stock/templates/stock/item_base.html:146 templates/stock_table.html:31
msgid "Scan to Location"
msgstr ""
-#: stock/templates/stock/item_base.html:147
+#: stock/templates/stock/item_base.html:153
msgid "Printing actions"
msgstr ""
-#: stock/templates/stock/item_base.html:151
+#: stock/templates/stock/item_base.html:157
#: stock/templates/stock/item_tests.html:27
msgid "Test Report"
msgstr ""
-#: stock/templates/stock/item_base.html:160
+#: stock/templates/stock/item_base.html:166
msgid "Stock adjustment actions"
msgstr ""
-#: stock/templates/stock/item_base.html:164
+#: stock/templates/stock/item_base.html:170
#: stock/templates/stock/location.html:65 templates/stock_table.html:57
msgid "Count stock"
msgstr ""
-#: stock/templates/stock/item_base.html:167 templates/stock_table.html:55
+#: stock/templates/stock/item_base.html:173 templates/stock_table.html:55
msgid "Add stock"
msgstr ""
-#: stock/templates/stock/item_base.html:170 templates/stock_table.html:56
+#: stock/templates/stock/item_base.html:176 templates/stock_table.html:56
msgid "Remove stock"
msgstr ""
-#: stock/templates/stock/item_base.html:173
+#: stock/templates/stock/item_base.html:179
msgid "Serialize stock"
msgstr ""
-#: stock/templates/stock/item_base.html:177
+#: stock/templates/stock/item_base.html:183
msgid "Transfer stock"
msgstr ""
-#: stock/templates/stock/item_base.html:180
+#: stock/templates/stock/item_base.html:186
msgid "Assign to customer"
msgstr ""
-#: stock/templates/stock/item_base.html:183
+#: stock/templates/stock/item_base.html:189
msgid "Return to stock"
msgstr ""
-#: stock/templates/stock/item_base.html:187 templates/js/stock.js:1299
+#: stock/templates/stock/item_base.html:193 templates/js/stock.js:1421
msgid "Uninstall stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:187
+#: stock/templates/stock/item_base.html:193
msgid "Uninstall"
msgstr ""
-#: stock/templates/stock/item_base.html:196
+#: stock/templates/stock/item_base.html:202
#: stock/templates/stock/location.html:62
msgid "Stock actions"
msgstr ""
-#: stock/templates/stock/item_base.html:199
+#: stock/templates/stock/item_base.html:205
msgid "Convert to variant"
msgstr ""
-#: stock/templates/stock/item_base.html:202
+#: stock/templates/stock/item_base.html:208
msgid "Duplicate stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:204
+#: stock/templates/stock/item_base.html:210
msgid "Edit stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:207
+#: stock/templates/stock/item_base.html:213
msgid "Delete stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:219
+#: stock/templates/stock/item_base.html:225
msgid "Stock Item Details"
msgstr ""
-#: stock/templates/stock/item_base.html:278 templates/js/build.js:498
+#: stock/templates/stock/item_base.html:284 templates/js/build.js:498
msgid "No location set"
msgstr ""
-#: stock/templates/stock/item_base.html:285
+#: stock/templates/stock/item_base.html:291
msgid "Barcode Identifier"
msgstr ""
-#: stock/templates/stock/item_base.html:327
+#: stock/templates/stock/item_base.html:333
msgid "Parent Item"
msgstr ""
-#: stock/templates/stock/item_base.html:369
+#: stock/templates/stock/item_base.html:375
#, python-format
msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:371
+#: stock/templates/stock/item_base.html:377
#, python-format
msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:378 templates/js/stock.js:662
+#: stock/templates/stock/item_base.html:384 templates/js/stock.js:662
msgid "Last Updated"
msgstr ""
-#: stock/templates/stock/item_base.html:383
+#: stock/templates/stock/item_base.html:389
msgid "Last Stocktake"
msgstr ""
-#: stock/templates/stock/item_base.html:387
+#: stock/templates/stock/item_base.html:393
msgid "No stocktake performed"
msgstr ""
@@ -5522,7 +5689,7 @@ msgid "Stock Details"
msgstr ""
#: stock/templates/stock/location.html:117 templates/InvenTree/search.html:279
-#: templates/stats.html:76 users/models.py:41
+#: templates/stats.html:97 users/models.py:41
msgid "Stock Locations"
msgstr ""
@@ -5562,7 +5729,7 @@ msgstr ""
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:1332
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:1364
msgid "Convert Stock Item"
msgstr ""
@@ -5595,8 +5762,8 @@ msgstr ""
msgid "Edit Stock Location"
msgstr ""
-#: stock/views.py:230 stock/views.py:1322 stock/views.py:1433
-#: stock/views.py:1798
+#: stock/views.py:230 stock/views.py:1343 stock/views.py:1465
+#: stock/views.py:1830
msgid "Owner is required (ownership control is enabled)"
msgstr ""
@@ -5762,43 +5929,47 @@ msgstr ""
msgid "Deleted {n} stock items"
msgstr ""
-#: stock/views.py:1224
+#: stock/views.py:1222
+msgid "Edit Stock Item Status"
+msgstr ""
+
+#: stock/views.py:1245
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:1450
+#: stock/views.py:1482
msgid "Serialize Stock"
msgstr ""
-#: stock/views.py:1543 templates/js/build.js:244
+#: stock/views.py:1575 templates/js/build.js:244
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1685
+#: stock/views.py:1717
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1767
+#: stock/views.py:1799
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1867
+#: stock/views.py:1899
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:1880
+#: stock/views.py:1912
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1891
+#: stock/views.py:1923
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1898
+#: stock/views.py:1930
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1907
+#: stock/views.py:1939
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -5896,8 +6067,7 @@ msgstr ""
#: templates/InvenTree/settings/appearance.html:29
#, python-format
-msgid ""
-"\n"
+msgid "\n"
" The CSS sheet \"%(invalid_color_theme)s.css\" for the currently selected color theme was not found.
\n"
" Please select another color theme :)\n"
" "
@@ -6100,9 +6270,17 @@ msgstr ""
msgid "Submit Bug Report"
msgstr ""
-#: templates/about.html:82 templates/js/modals.js:550
-#: templates/js/modals.js:809 templates/modals.html:28 templates/modals.html:52
-#: templates/modals.html:93
+#: templates/about.html:80 templates/clip.html:4
+msgid "copy to clipboard"
+msgstr ""
+
+#: templates/about.html:80
+msgid "copy version information"
+msgstr ""
+
+#: templates/about.html:90 templates/js/modals.js:568
+#: templates/js/modals.js:846 templates/modals.html:29 templates/modals.html:54
+#: templates/modals.html:97
msgid "Close"
msgstr ""
@@ -6110,10 +6288,6 @@ msgstr ""
msgid "Add Attachment"
msgstr ""
-#: templates/attachment_table.html:15
-msgid "File"
-msgstr ""
-
#: templates/attachment_table.html:17
msgid "Uploaded"
msgstr ""
@@ -6166,7 +6340,7 @@ msgstr ""
msgid "Unknown response from server"
msgstr ""
-#: templates/js/barcode.js:119 templates/js/modals.js:857
+#: templates/js/barcode.js:119 templates/js/modals.js:901
msgid "Invalid server response"
msgstr ""
@@ -6311,7 +6485,7 @@ msgstr ""
#: templates/js/build.js:708 templates/js/part.js:324 templates/js/part.js:546
#: templates/js/stock.js:511 templates/js/stock.js:938
-#: templates/js/stock.js:1331
+#: templates/js/stock.js:1453
msgid "Select"
msgstr ""
@@ -6409,96 +6583,96 @@ msgstr ""
msgid "Select Label Template"
msgstr ""
-#: templates/js/modals.js:256
+#: templates/js/modals.js:265
msgid "Waiting for server..."
msgstr ""
-#: templates/js/modals.js:406
+#: templates/js/modals.js:424
msgid "Show Error Information"
msgstr ""
-#: templates/js/modals.js:473 templates/modals.html:73
+#: templates/js/modals.js:491 templates/modals.html:76
msgid "Accept"
msgstr ""
-#: templates/js/modals.js:474 templates/modals.html:72
+#: templates/js/modals.js:492 templates/modals.html:75
msgid "Cancel"
msgstr ""
-#: templates/js/modals.js:538
+#: templates/js/modals.js:556
msgid "Loading Data"
msgstr ""
-#: templates/js/modals.js:549 templates/js/modals.js:808
-#: templates/modals.html:29 templates/modals.html:53
+#: templates/js/modals.js:567 templates/js/modals.js:845
+#: templates/modals.html:30 templates/modals.html:55
msgid "Submit"
msgstr ""
-#: templates/js/modals.js:760
+#: templates/js/modals.js:797
msgid "Invalid response from server"
msgstr ""
-#: templates/js/modals.js:760
+#: templates/js/modals.js:797
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/modals.js:773
+#: templates/js/modals.js:810
msgid "Error posting form data"
msgstr ""
-#: templates/js/modals.js:857
+#: templates/js/modals.js:901
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/modals.js:867
+#: templates/js/modals.js:911
msgid "No Response"
msgstr ""
-#: templates/js/modals.js:868
+#: templates/js/modals.js:912
msgid "No response from the InvenTree server"
msgstr ""
-#: templates/js/modals.js:872
+#: templates/js/modals.js:916
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/modals.js:873
+#: templates/js/modals.js:917
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/modals.js:877
+#: templates/js/modals.js:921
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/modals.js:878
+#: templates/js/modals.js:922
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/modals.js:882
+#: templates/js/modals.js:926
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/modals.js:883
+#: templates/js/modals.js:927
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/modals.js:887
+#: templates/js/modals.js:931
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/modals.js:888
+#: templates/js/modals.js:932
msgid "The requested resource could not be located on the server"
msgstr ""
-#: templates/js/modals.js:892
+#: templates/js/modals.js:936
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/modals.js:893
+#: templates/js/modals.js:937
msgid "Connection timeout while requesting data from server"
msgstr ""
-#: templates/js/modals.js:896
+#: templates/js/modals.js:940
msgid "Error requesting form data"
msgstr ""
@@ -6542,7 +6716,7 @@ msgstr ""
msgid "No category"
msgstr ""
-#: templates/js/part.js:409 templates/js/table_filters.js:318
+#: templates/js/part.js:409 templates/js/table_filters.js:319
msgid "Low stock"
msgstr ""
@@ -6740,7 +6914,7 @@ msgstr ""
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/stock.js:620 templates/js/table_filters.js:138
+#: templates/js/stock.js:620 templates/js/table_filters.js:139
msgid "Depleted"
msgstr ""
@@ -6764,189 +6938,213 @@ msgstr ""
msgid "Status code must be selected"
msgstr ""
-#: templates/js/stock.js:1050
+#: templates/js/stock.js:994
+msgid "Invalid date"
+msgstr ""
+
+#: templates/js/stock.js:1036
+msgid "Location no longer exists"
+msgstr ""
+
+#: templates/js/stock.js:1055
+msgid "Purchase order no longer exists"
+msgstr ""
+
+#: templates/js/stock.js:1074
+msgid "Customer no longer exists"
+msgstr ""
+
+#: templates/js/stock.js:1092
+msgid "Stock item no longer exists"
+msgstr ""
+
+#: templates/js/stock.js:1115
+msgid "Added"
+msgstr ""
+
+#: templates/js/stock.js:1123
+msgid "Removed"
+msgstr ""
+
+#: templates/js/stock.js:1155
msgid "No user information"
msgstr ""
-#: templates/js/stock.js:1060
+#: templates/js/stock.js:1167
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/stock.js:1061
+#: templates/js/stock.js:1168
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/stock.js:1170
+#: templates/js/stock.js:1292
msgid "Create New Location"
msgstr ""
-#: templates/js/stock.js:1269
+#: templates/js/stock.js:1391
msgid "Serial"
msgstr ""
-#: templates/js/stock.js:1362 templates/js/table_filters.js:171
+#: templates/js/stock.js:1484 templates/js/table_filters.js:172
msgid "Installed"
msgstr ""
-#: templates/js/stock.js:1387
+#: templates/js/stock.js:1509
msgid "Install item"
msgstr ""
-#: templates/js/table_filters.js:42
+#: templates/js/table_filters.js:43
msgid "Trackable Part"
msgstr ""
-#: templates/js/table_filters.js:46
+#: templates/js/table_filters.js:47
msgid "Validated"
msgstr ""
-#: templates/js/table_filters.js:71
+#: templates/js/table_filters.js:72
msgid "Include locations"
msgstr ""
-#: templates/js/table_filters.js:81 templates/js/table_filters.js:82
-#: templates/js/table_filters.js:295
+#: templates/js/table_filters.js:82 templates/js/table_filters.js:83
+#: templates/js/table_filters.js:296
msgid "Include subcategories"
msgstr ""
-#: templates/js/table_filters.js:92 templates/js/table_filters.js:181
+#: templates/js/table_filters.js:93 templates/js/table_filters.js:182
msgid "Is Serialized"
msgstr ""
-#: templates/js/table_filters.js:95 templates/js/table_filters.js:188
+#: templates/js/table_filters.js:96 templates/js/table_filters.js:189
msgid "Serial number GTE"
msgstr ""
-#: templates/js/table_filters.js:96 templates/js/table_filters.js:189
+#: templates/js/table_filters.js:97 templates/js/table_filters.js:190
msgid "Serial number greater than or equal to"
msgstr ""
-#: templates/js/table_filters.js:99 templates/js/table_filters.js:192
+#: templates/js/table_filters.js:100 templates/js/table_filters.js:193
msgid "Serial number LTE"
msgstr ""
-#: templates/js/table_filters.js:100 templates/js/table_filters.js:193
+#: templates/js/table_filters.js:101 templates/js/table_filters.js:194
msgid "Serial number less than or equal to"
msgstr ""
-#: templates/js/table_filters.js:103 templates/js/table_filters.js:104
-#: templates/js/table_filters.js:184 templates/js/table_filters.js:185
+#: templates/js/table_filters.js:104 templates/js/table_filters.js:105
+#: templates/js/table_filters.js:185 templates/js/table_filters.js:186
msgid "Serial number"
msgstr ""
-#: templates/js/table_filters.js:108 templates/js/table_filters.js:202
+#: templates/js/table_filters.js:109 templates/js/table_filters.js:203
msgid "Batch code"
msgstr ""
-#: templates/js/table_filters.js:118 templates/js/table_filters.js:285
+#: templates/js/table_filters.js:119 templates/js/table_filters.js:286
msgid "Active parts"
msgstr ""
-#: templates/js/table_filters.js:119
+#: templates/js/table_filters.js:120
msgid "Show stock for active parts"
msgstr ""
-#: templates/js/table_filters.js:124
+#: templates/js/table_filters.js:125
msgid "Part is an assembly"
msgstr ""
-#: templates/js/table_filters.js:128
+#: templates/js/table_filters.js:129
msgid "Is allocated"
msgstr ""
-#: templates/js/table_filters.js:129
+#: templates/js/table_filters.js:130
msgid "Item has been allocated"
msgstr ""
-#: templates/js/table_filters.js:134
+#: templates/js/table_filters.js:135
msgid "Include stock in sublocations"
msgstr ""
-#: templates/js/table_filters.js:139
+#: templates/js/table_filters.js:140
msgid "Show stock items which are depleted"
msgstr ""
-#: templates/js/table_filters.js:146
+#: templates/js/table_filters.js:147
msgid "Show stock items which have expired"
msgstr ""
-#: templates/js/table_filters.js:151
+#: templates/js/table_filters.js:152
msgid "Show stock which is close to expiring"
msgstr ""
-#: templates/js/table_filters.js:157
+#: templates/js/table_filters.js:158
msgid "Show items which are in stock"
msgstr ""
-#: templates/js/table_filters.js:161
+#: templates/js/table_filters.js:162
msgid "In Production"
msgstr ""
-#: templates/js/table_filters.js:162
+#: templates/js/table_filters.js:163
msgid "Show items which are in production"
msgstr ""
-#: templates/js/table_filters.js:166
+#: templates/js/table_filters.js:167
msgid "Include Variants"
msgstr ""
-#: templates/js/table_filters.js:167
+#: templates/js/table_filters.js:168
msgid "Include stock items for variant parts"
msgstr ""
-#: templates/js/table_filters.js:172
+#: templates/js/table_filters.js:173
msgid "Show stock items which are installed in another item"
msgstr ""
-#: templates/js/table_filters.js:176
-msgid "Sent to customer"
-msgstr ""
-
-#: templates/js/table_filters.js:177
+#: templates/js/table_filters.js:178
msgid "Show items which have been assigned to a customer"
msgstr ""
-#: templates/js/table_filters.js:197 templates/js/table_filters.js:198
+#: templates/js/table_filters.js:198 templates/js/table_filters.js:199
msgid "Stock status"
msgstr ""
-#: templates/js/table_filters.js:231
+#: templates/js/table_filters.js:232
msgid "Build status"
msgstr ""
-#: templates/js/table_filters.js:250 templates/js/table_filters.js:267
+#: templates/js/table_filters.js:251 templates/js/table_filters.js:268
msgid "Order status"
msgstr ""
-#: templates/js/table_filters.js:255 templates/js/table_filters.js:272
+#: templates/js/table_filters.js:256 templates/js/table_filters.js:273
msgid "Outstanding"
msgstr ""
-#: templates/js/table_filters.js:296
+#: templates/js/table_filters.js:297
msgid "Include parts in subcategories"
msgstr ""
-#: templates/js/table_filters.js:300
+#: templates/js/table_filters.js:301
msgid "Has IPN"
msgstr ""
-#: templates/js/table_filters.js:301
+#: templates/js/table_filters.js:302
msgid "Part has internal part number"
msgstr ""
-#: templates/js/table_filters.js:306
+#: templates/js/table_filters.js:307
msgid "Show active parts"
msgstr ""
-#: templates/js/table_filters.js:314
+#: templates/js/table_filters.js:315
msgid "Stock available"
msgstr ""
-#: templates/js/table_filters.js:330
+#: templates/js/table_filters.js:331
msgid "Starred"
msgstr ""
-#: templates/js/table_filters.js:342
+#: templates/js/table_filters.js:343
msgid "Purchasable"
msgstr ""
@@ -7003,7 +7201,7 @@ msgstr ""
msgid "All"
msgstr ""
-#: templates/modals.html:21 templates/modals.html:46
+#: templates/modals.html:21 templates/modals.html:47
msgid "Form errors exist"
msgstr ""
@@ -7115,31 +7313,47 @@ msgstr ""
msgid "Instance Name"
msgstr ""
-#: templates/stats.html:19
-msgid "Server status"
+#: templates/stats.html:18
+msgid "Database"
msgstr ""
-#: templates/stats.html:22
-msgid "Healthy"
+#: templates/stats.html:26
+msgid "Server is running in debug mode"
msgstr ""
-#: templates/stats.html:24
-msgid "Issues detected"
-msgstr ""
-
-#: templates/stats.html:31
-msgid "Background Worker"
+#: templates/stats.html:33
+msgid "Docker Mode"
msgstr ""
#: templates/stats.html:34
-msgid "Background worker not running"
+msgid "Server is deployed using docker"
msgstr ""
-#: templates/stats.html:42
-msgid "Email Settings"
+#: templates/stats.html:40
+msgid "Server status"
+msgstr ""
+
+#: templates/stats.html:43
+msgid "Healthy"
msgstr ""
#: templates/stats.html:45
+msgid "Issues detected"
+msgstr ""
+
+#: templates/stats.html:52
+msgid "Background Worker"
+msgstr ""
+
+#: templates/stats.html:55
+msgid "Background worker not running"
+msgstr ""
+
+#: templates/stats.html:63
+msgid "Email Settings"
+msgstr ""
+
+#: templates/stats.html:66
msgid "Email settings not configured"
msgstr ""
@@ -7258,3 +7472,4 @@ msgstr ""
#: users/models.py:187
msgid "Permission to delete items"
msgstr ""
+
diff --git a/InvenTree/locale/ru/LC_MESSAGES/django.po b/InvenTree/locale/ru/LC_MESSAGES/django.po
index d14c214d50..df6f0336c7 100644
--- a/InvenTree/locale/ru/LC_MESSAGES/django.po
+++ b/InvenTree/locale/ru/LC_MESSAGES/django.po
@@ -1,9 +1,9 @@
msgid ""
msgstr ""
-"Project-Id-Version: \n"
+"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-05-05 17:33+1000\n"
-"PO-Revision-Date: 2021-04-21 09:33\n"
+"POT-Creation-Date: 2021-05-17 10:46+0000\n"
+"PO-Revision-Date: 2021-05-17 10:47\n"
"Last-Translator: \n"
"Language-Team: Russian\n"
"Language: ru_RU\n"
@@ -11,6 +11,11 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=4; plural=((n%10==1 && n%100!=11) ? 0 : ((n%10 >= 2 && n%10 <=4 && (n%100 < 12 || n%100 > 14)) ? 1 : ((n%10 == 0 || (n%10 >= 5 && n%10 <=9)) || (n%100 >= 11 && n%100 <= 14)) ? 2 : 3));\n"
+"X-Crowdin-Project: inventree\n"
+"X-Crowdin-Project-ID: 452300\n"
+"X-Crowdin-Language: ru\n"
+"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
+"X-Crowdin-File-ID: 138\n"
#: InvenTree/api.py:64
msgid "API endpoint not found"
@@ -72,8 +77,8 @@ msgstr ""
msgid "Duplicate serial: {n}"
msgstr ""
-#: InvenTree/helpers.py:384 order/models.py:245 order/models.py:353
-#: stock/views.py:1763
+#: InvenTree/helpers.py:384 order/models.py:245 order/models.py:355
+#: stock/views.py:1795
msgid "Invalid quantity provided"
msgstr ""
@@ -101,7 +106,7 @@ msgstr ""
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr ""
-#: InvenTree/models.py:59 stock/models.py:1662
+#: InvenTree/models.py:59 stock/models.py:1761
msgid "Attachment"
msgstr ""
@@ -117,9 +122,9 @@ msgstr ""
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:1908
+#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:1946
#: report/templates/report/inventree_test_report_base.html:91
-#: templates/js/stock.js:1041
+#: templates/js/stock.js:1146
msgid "User"
msgstr ""
@@ -127,8 +132,8 @@ msgstr ""
msgid "upload date"
msgstr ""
-#: InvenTree/models.py:107 InvenTree/models.py:108 label/models.py:101
-#: part/models.py:686 part/models.py:2049 part/templates/part/params.html:27
+#: InvenTree/models.py:107 InvenTree/models.py:108 label/models.py:102
+#: part/models.py:686 part/models.py:2087 part/templates/part/params.html:27
#: report/models.py:179 templates/InvenTree/search.html:137
#: templates/InvenTree/search.html:289 templates/js/part.js:110
#: templates/js/part.js:553 templates/js/stock.js:944
@@ -136,11 +141,11 @@ msgid "Name"
msgstr ""
#: InvenTree/models.py:114 build/models.py:134
-#: build/templates/build/detail.html:21 company/models.py:342
-#: company/models.py:494 company/templates/company/detail.html:27
+#: build/templates/build/detail.html:21 company/models.py:339
+#: company/models.py:491 company/templates/company/detail.html:27
#: company/templates/company/manufacturer_part_base.html:72
#: company/templates/company/supplier_part_base.html:71
-#: company/templates/company/supplier_part_detail.html:31 label/models.py:108
+#: company/templates/company/supplier_part_detail.html:31 label/models.py:109
#: order/models.py:101 order/templates/order/purchase_order_detail.html:143
#: part/models.py:710 part/templates/part/detail.html:54
#: part/templates/part/set_category.html:14 report/models.py:192
@@ -154,7 +159,7 @@ msgstr ""
#: templates/js/order.js:280 templates/js/part.js:169 templates/js/part.js:252
#: templates/js/part.js:371 templates/js/part.js:565 templates/js/part.js:643
#: templates/js/stock.js:554 templates/js/stock.js:956
-#: templates/js/stock.js:1015
+#: templates/js/stock.js:1001
msgid "Description"
msgstr ""
@@ -166,23 +171,23 @@ msgstr ""
msgid "parent"
msgstr ""
-#: InvenTree/settings.py:491
+#: InvenTree/settings.py:501
msgid "English"
msgstr ""
-#: InvenTree/settings.py:492
+#: InvenTree/settings.py:502
msgid "French"
msgstr ""
-#: InvenTree/settings.py:493
+#: InvenTree/settings.py:503
msgid "German"
msgstr ""
-#: InvenTree/settings.py:494
+#: InvenTree/settings.py:504
msgid "Polish"
msgstr ""
-#: InvenTree/settings.py:495
+#: InvenTree/settings.py:505
msgid "Turkish"
msgstr ""
@@ -198,60 +203,136 @@ msgstr ""
msgid "InvenTree system health checks failed"
msgstr ""
-#: InvenTree/status_codes.py:102 InvenTree/status_codes.py:143
-#: InvenTree/status_codes.py:236
+#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:145
+#: InvenTree/status_codes.py:314
msgid "Pending"
msgstr ""
-#: InvenTree/status_codes.py:103
+#: InvenTree/status_codes.py:105
msgid "Placed"
msgstr ""
-#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:239
+#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:317
msgid "Complete"
msgstr ""
-#: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145
-#: InvenTree/status_codes.py:238
+#: InvenTree/status_codes.py:107 InvenTree/status_codes.py:147
+#: InvenTree/status_codes.py:316
msgid "Cancelled"
msgstr ""
-#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146
-#: InvenTree/status_codes.py:188
+#: InvenTree/status_codes.py:108 InvenTree/status_codes.py:148
+#: InvenTree/status_codes.py:190
msgid "Lost"
msgstr ""
-#: InvenTree/status_codes.py:107 InvenTree/status_codes.py:147
-#: InvenTree/status_codes.py:190
+#: InvenTree/status_codes.py:109 InvenTree/status_codes.py:149
+#: InvenTree/status_codes.py:192
msgid "Returned"
msgstr ""
-#: InvenTree/status_codes.py:144
+#: InvenTree/status_codes.py:146
#: order/templates/order/sales_order_base.html:124
msgid "Shipped"
msgstr ""
-#: InvenTree/status_codes.py:184
+#: InvenTree/status_codes.py:186
msgid "OK"
msgstr ""
-#: InvenTree/status_codes.py:185
+#: InvenTree/status_codes.py:187
msgid "Attention needed"
msgstr ""
-#: InvenTree/status_codes.py:186
+#: InvenTree/status_codes.py:188
msgid "Damaged"
msgstr ""
-#: InvenTree/status_codes.py:187
+#: InvenTree/status_codes.py:189
msgid "Destroyed"
msgstr ""
-#: InvenTree/status_codes.py:189
+#: InvenTree/status_codes.py:191
msgid "Rejected"
msgstr ""
-#: InvenTree/status_codes.py:237
+#: InvenTree/status_codes.py:272
+msgid "Legacy stock tracking entry"
+msgstr ""
+
+#: InvenTree/status_codes.py:274
+msgid "Stock item created"
+msgstr ""
+
+#: InvenTree/status_codes.py:276
+msgid "Edited stock item"
+msgstr ""
+
+#: InvenTree/status_codes.py:277
+msgid "Assigned serial number"
+msgstr ""
+
+#: InvenTree/status_codes.py:279
+msgid "Stock counted"
+msgstr ""
+
+#: InvenTree/status_codes.py:280
+msgid "Stock manually added"
+msgstr ""
+
+#: InvenTree/status_codes.py:281
+msgid "Stock manually removed"
+msgstr ""
+
+#: InvenTree/status_codes.py:283
+msgid "Location changed"
+msgstr ""
+
+#: InvenTree/status_codes.py:285
+msgid "Installed into assembly"
+msgstr ""
+
+#: InvenTree/status_codes.py:286
+msgid "Removed from assembly"
+msgstr ""
+
+#: InvenTree/status_codes.py:288
+msgid "Installed component item"
+msgstr ""
+
+#: InvenTree/status_codes.py:289
+msgid "Removed component item"
+msgstr ""
+
+#: InvenTree/status_codes.py:291
+msgid "Split from parent item"
+msgstr ""
+
+#: InvenTree/status_codes.py:292
+msgid "Split child item"
+msgstr ""
+
+#: InvenTree/status_codes.py:294 templates/js/table_filters.js:177
+msgid "Sent to customer"
+msgstr ""
+
+#: InvenTree/status_codes.py:295
+msgid "Returned from customer"
+msgstr ""
+
+#: InvenTree/status_codes.py:297
+msgid "Build order output created"
+msgstr ""
+
+#: InvenTree/status_codes.py:298
+msgid "Build order output completed"
+msgstr ""
+
+#: InvenTree/status_codes.py:300
+msgid "Received against purchase order"
+msgstr ""
+
+#: InvenTree/status_codes.py:315
msgid "Production"
msgstr ""
@@ -270,7 +351,8 @@ msgstr ""
#: InvenTree/validators.py:77 InvenTree/validators.py:91
#: InvenTree/validators.py:105
-msgid "Reference must match pattern"
+#, python-brace-format
+msgid "Reference must match pattern {pattern}"
msgstr ""
#: InvenTree/validators.py:113
@@ -376,35 +458,35 @@ msgstr ""
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1241
+#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1245
#: build/templates/build/allocation_card.html:23
#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:123
-#: build/templates/build/detail.html:31 common/models.py:703
+#: build/templates/build/detail.html:31 common/models.py:705
#: company/forms.py:176 company/templates/company/supplier_part_pricing.html:77
-#: order/forms.py:188 order/forms.py:205 order/forms.py:239 order/forms.py:261
-#: order/forms.py:278 order/models.py:603 order/models.py:794
+#: order/forms.py:188 order/forms.py:205 order/forms.py:240 order/forms.py:262
+#: order/forms.py:279 order/models.py:614 order/models.py:815
+#: order/templates/order/order_wizard/match_parts.html:29
#: order/templates/order/order_wizard/select_parts.html:32
#: order/templates/order/purchase_order_detail.html:175
#: order/templates/order/sales_order_detail.html:70
#: order/templates/order/sales_order_detail.html:77
-#: order/templates/order/sales_order_detail.html:159
-#: order/templates/order/sales_order_detail.html:224 part/forms.py:342
-#: part/forms.py:371 part/forms.py:387 part/models.py:2178
+#: order/templates/order/sales_order_detail.html:162
+#: order/templates/order/sales_order_detail.html:230 part/forms.py:342
+#: part/forms.py:371 part/forms.py:387 part/models.py:2216
#: part/templates/part/allocation.html:19
#: part/templates/part/allocation.html:53
-#: part/templates/part/part_pricing.html:11
-#: part/templates/part/part_pricing.html:18
+#: part/templates/part/part_pricing.html:13
#: part/templates/part/sale_prices.html:85
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:77
-#: stock/forms.py:175 stock/forms.py:308 stock/models.py:1566
-#: stock/templates/stock/item_base.html:244
+#: stock/forms.py:175 stock/forms.py:308
+#: stock/templates/stock/item_base.html:250
#: stock/templates/stock/stock_adjust.html:18 templates/js/barcode.js:364
#: templates/js/bom.js:205 templates/js/build.js:476 templates/js/build.js:1014
-#: templates/js/stock.js:1033 templates/js/stock.js:1271
+#: templates/js/stock.js:1131 templates/js/stock.js:1393
msgid "Quantity"
msgstr ""
@@ -416,7 +498,7 @@ msgstr ""
msgid "Enter quantity for build output"
msgstr ""
-#: build/forms.py:95 order/forms.py:233 stock/forms.py:118
+#: build/forms.py:95 order/forms.py:234 stock/forms.py:118
msgid "Serial Numbers"
msgstr ""
@@ -446,11 +528,11 @@ msgstr ""
#: build/forms.py:210 build/templates/build/auto_allocate.html:18
#: order/forms.py:82 stock/forms.py:347
-#: stock/templates/stock/item_base.html:274
+#: stock/templates/stock/item_base.html:280
#: stock/templates/stock/stock_adjust.html:17
#: templates/InvenTree/search.html:260 templates/js/barcode.js:363
#: templates/js/barcode.js:531 templates/js/build.js:490
-#: templates/js/stock.js:641
+#: templates/js/stock.js:641 templates/js/stock.js:1023
msgid "Location"
msgstr ""
@@ -459,12 +541,13 @@ msgid "Location of completed parts"
msgstr ""
#: build/forms.py:215 build/templates/build/build_base.html:128
-#: build/templates/build/detail.html:59 order/models.py:455
+#: build/templates/build/detail.html:59 order/models.py:466
#: order/templates/order/receive_parts.html:24
-#: stock/templates/stock/item_base.html:392 templates/InvenTree/search.html:252
+#: stock/templates/stock/item_base.html:398 templates/InvenTree/search.html:252
#: templates/js/barcode.js:119 templates/js/build.js:770
#: templates/js/order.js:187 templates/js/order.js:285
-#: templates/js/stock.js:628 templates/js/stock.js:1279
+#: templates/js/stock.js:628 templates/js/stock.js:1100
+#: templates/js/stock.js:1401
msgid "Status"
msgstr ""
@@ -517,9 +600,9 @@ msgstr ""
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:127 order/models.py:99 order/models.py:605
+#: build/models.py:127 order/models.py:99 order/models.py:616
#: order/templates/order/purchase_order_detail.html:170
-#: order/templates/order/sales_order_detail.html:219 part/models.py:2187
+#: order/templates/order/sales_order_detail.html:225 part/models.py:2225
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92 templates/js/bom.js:197
#: templates/js/build.js:565 templates/js/build.js:1008
@@ -541,16 +624,16 @@ msgstr ""
#: build/models.py:152 build/templates/build/auto_allocate.html:16
#: build/templates/build/build_base.html:118
-#: build/templates/build/detail.html:26 company/models.py:688
-#: order/models.py:647 order/models.py:679
+#: build/templates/build/detail.html:26 company/models.py:622
+#: order/models.py:658 order/models.py:691
#: order/templates/order/order_wizard/select_parts.html:30
#: order/templates/order/purchase_order_detail.html:131
#: order/templates/order/receive_parts.html:19
-#: order/templates/order/sales_order_detail.html:207 part/models.py:321
-#: part/models.py:1876 part/models.py:1888 part/models.py:1906
-#: part/models.py:1981 part/models.py:2077 part/models.py:2162
+#: order/templates/order/sales_order_detail.html:213 part/models.py:321
+#: part/models.py:1914 part/models.py:1926 part/models.py:1944
+#: part/models.py:2019 part/models.py:2115 part/models.py:2200
#: part/templates/part/part_app_base.html:8
-#: part/templates/part/part_pricing.html:14 part/templates/part/related.html:29
+#: part/templates/part/part_pricing.html:9 part/templates/part/related.html:29
#: part/templates/part/set_category.html:13
#: report/templates/report/inventree_build_order_base.html:110
#: report/templates/report/inventree_po_report.html:90
@@ -560,7 +643,7 @@ msgstr ""
#: templates/js/build.js:741 templates/js/build.js:981
#: templates/js/company.js:140 templates/js/company.js:238
#: templates/js/part.js:233 templates/js/part.js:338 templates/js/stock.js:523
-#: templates/js/stock.js:1343
+#: templates/js/stock.js:1465
msgid "Part"
msgstr ""
@@ -616,7 +699,7 @@ msgstr ""
msgid "Build status code"
msgstr ""
-#: build/models.py:212 stock/models.py:432
+#: build/models.py:212 stock/models.py:464
msgid "Batch Code"
msgstr ""
@@ -629,7 +712,7 @@ msgstr ""
msgid "Creation Date"
msgstr ""
-#: build/models.py:223 order/models.py:461
+#: build/models.py:223 order/models.py:472
msgid "Target completion date"
msgstr ""
@@ -667,28 +750,28 @@ msgstr ""
#: company/templates/company/supplier_part_base.html:78
#: company/templates/company/supplier_part_detail.html:28
#: part/templates/part/detail.html:83 part/templates/part/part_base.html:101
-#: stock/models.py:426 stock/templates/stock/item_base.html:334
+#: stock/models.py:458 stock/templates/stock/item_base.html:340
msgid "External Link"
msgstr ""
-#: build/models.py:257 part/models.py:744 stock/models.py:428
+#: build/models.py:257 part/models.py:744 stock/models.py:460
msgid "Link to external URL"
msgstr ""
#: build/models.py:261 build/templates/build/navbar.html:53
-#: company/models.py:135 company/models.py:501
+#: company/models.py:132 company/models.py:498
#: company/templates/company/navbar.html:70
#: company/templates/company/navbar.html:73 order/models.py:123
-#: order/models.py:607 order/templates/order/po_navbar.html:29
+#: order/models.py:618 order/templates/order/po_navbar.html:29
#: order/templates/order/po_navbar.html:32
#: order/templates/order/purchase_order_detail.html:209
-#: order/templates/order/sales_order_detail.html:264
+#: order/templates/order/sales_order_detail.html:278
#: order/templates/order/so_navbar.html:33
#: order/templates/order/so_navbar.html:36 part/models.py:871
#: part/templates/part/navbar.html:128
#: report/templates/report/inventree_build_order_base.html:173
#: stock/forms.py:173 stock/forms.py:317 stock/forms.py:349 stock/forms.py:377
-#: stock/models.py:498 stock/models.py:1558 stock/models.py:1668
+#: stock/models.py:530 stock/models.py:1665 stock/models.py:1767
#: stock/templates/stock/navbar.html:57 templates/js/barcode.js:37
#: templates/js/bom.js:333 templates/js/stock.js:128 templates/js/stock.js:671
msgid "Notes"
@@ -710,75 +793,71 @@ msgstr ""
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:838
-msgid "Completed build output"
-msgstr ""
-
-#: build/models.py:1132
+#: build/models.py:1136
msgid "BuildItem must be unique for build, stock_item and install_into"
msgstr ""
-#: build/models.py:1157
-msgid "Build item must specify a build output, as master part is marked as trackable"
-msgstr ""
-
#: build/models.py:1161
-#, python-brace-format
-msgid "Selected stock item not found in BOM for part '{p}'"
+msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
#: build/models.py:1165
#, python-brace-format
+msgid "Selected stock item not found in BOM for part '{p}'"
+msgstr ""
+
+#: build/models.py:1169
+#, python-brace-format
msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
msgstr ""
-#: build/models.py:1172 order/models.py:768
+#: build/models.py:1176 order/models.py:789
msgid "StockItem is over-allocated"
msgstr ""
-#: build/models.py:1176 order/models.py:771
+#: build/models.py:1180 order/models.py:792
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1180
+#: build/models.py:1184
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1220 stock/templates/stock/item_base.html:306
+#: build/models.py:1224 stock/templates/stock/item_base.html:312
#: templates/InvenTree/search.html:183 templates/js/build.js:714
#: templates/navbar.html:29
msgid "Build"
msgstr ""
-#: build/models.py:1221
+#: build/models.py:1225
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1228 part/templates/part/allocation.html:18
+#: build/models.py:1232 part/templates/part/allocation.html:18
#: part/templates/part/allocation.html:24
#: part/templates/part/allocation.html:31
#: part/templates/part/allocation.html:49
#: stock/templates/stock/item_base.html:8
#: stock/templates/stock/item_base.html:93
-#: stock/templates/stock/item_base.html:328
+#: stock/templates/stock/item_base.html:334
#: stock/templates/stock/stock_adjust.html:16 templates/js/build.js:831
-#: templates/js/stock.js:1004 templates/js/stock.js:1262
+#: templates/js/stock.js:1082 templates/js/stock.js:1384
msgid "Stock Item"
msgstr ""
-#: build/models.py:1229
+#: build/models.py:1233
msgid "Source stock item"
msgstr ""
-#: build/models.py:1242
+#: build/models.py:1246
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1250
+#: build/models.py:1254
msgid "Install into"
msgstr ""
-#: build/models.py:1251
+#: build/models.py:1255
msgid "Destination stock item"
msgstr ""
@@ -812,7 +891,7 @@ msgstr ""
#: build/templates/build/allocate.html:30
#: company/templates/company/detail_manufacturer_part.html:33
-#: company/templates/company/detail_supplier_part.html:32 order/views.py:795
+#: company/templates/company/detail_supplier_part.html:32 order/views.py:986
#: part/templates/part/category.html:127
msgid "Order Parts"
msgstr ""
@@ -832,9 +911,9 @@ msgstr ""
#: build/templates/build/allocation_card.html:21
#: build/templates/build/complete_output.html:46
#: order/templates/order/sales_order_detail.html:75
-#: order/templates/order/sales_order_detail.html:157
+#: order/templates/order/sales_order_detail.html:160
#: report/templates/report/inventree_test_report_base.html:75
-#: stock/models.py:420 stock/templates/stock/item_base.html:238
+#: stock/models.py:452 stock/templates/stock/item_base.html:244
#: templates/js/build.js:474
msgid "Serial Number"
msgstr ""
@@ -897,7 +976,7 @@ msgstr ""
#: order/templates/order/order_base.html:26
#: order/templates/order/sales_order_base.html:35
#: part/templates/part/category.html:18 part/templates/part/part_base.html:29
-#: stock/templates/stock/item_base.html:118
+#: stock/templates/stock/item_base.html:124
#: stock/templates/stock/location.html:31
msgid "Admin view"
msgstr ""
@@ -908,8 +987,8 @@ msgstr ""
#: order/templates/order/order_base.html:86
#: order/templates/order/sales_order_base.html:41
#: order/templates/order/sales_order_base.html:86
-#: templates/js/table_filters.js:240 templates/js/table_filters.js:259
-#: templates/js/table_filters.js:276
+#: templates/js/table_filters.js:241 templates/js/table_filters.js:260
+#: templates/js/table_filters.js:277
msgid "Overdue"
msgstr ""
@@ -955,14 +1034,14 @@ msgid "Progress"
msgstr ""
#: build/templates/build/build_base.html:160
-#: build/templates/build/detail.html:84 order/models.py:677
+#: build/templates/build/detail.html:84 order/models.py:689
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:33
#: order/templates/order/sales_order_ship.html:25
#: part/templates/part/allocation.html:30
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
-#: stock/templates/stock/item_base.html:268 templates/js/order.js:245
+#: stock/templates/stock/item_base.html:274 templates/js/order.js:245
msgid "Sales Order"
msgstr ""
@@ -1112,9 +1191,9 @@ msgid "Destination location not specified"
msgstr ""
#: build/templates/build/detail.html:70
-#: stock/templates/stock/item_base.html:292 templates/js/stock.js:636
-#: templates/js/stock.js:1286 templates/js/table_filters.js:107
-#: templates/js/table_filters.js:201
+#: stock/templates/stock/item_base.html:298 templates/js/stock.js:636
+#: templates/js/stock.js:1408 templates/js/table_filters.js:108
+#: templates/js/table_filters.js:202
msgid "Batch"
msgstr ""
@@ -1168,6 +1247,7 @@ msgstr ""
#: company/templates/company/navbar.html:15
#: order/templates/order/po_navbar.html:14
#: order/templates/order/so_navbar.html:15 part/templates/part/navbar.html:15
+#: templates/js/stock.js:1016
msgid "Details"
msgstr ""
@@ -1202,7 +1282,8 @@ msgstr ""
#: build/templates/build/notes.html:26 company/templates/company/notes.html:24
#: order/templates/order/order_notes.html:27
#: order/templates/order/sales_order_notes.html:29
-#: part/templates/part/notes.html:27 stock/templates/stock/item_base.html:470
+#: part/templates/part/notes.html:27 stock/templates/stock/item_base.html:477
+#: stock/templates/stock/item_base.html:487
#: stock/templates/stock/item_notes.html:26
msgid "Save"
msgstr ""
@@ -1231,7 +1312,7 @@ msgstr ""
msgid "Maximum output quantity is "
msgstr ""
-#: build/views.py:184 stock/models.py:969 stock/views.py:1789
+#: build/views.py:184 stock/views.py:1821
msgid "Serial numbers already exist"
msgstr ""
@@ -1348,372 +1429,405 @@ msgstr ""
msgid "Add Build Order Attachment"
msgstr ""
-#: build/views.py:1083 order/views.py:110 order/views.py:162 part/views.py:172
+#: build/views.py:1083 order/views.py:115 order/views.py:167 part/views.py:172
#: stock/views.py:277
msgid "Added attachment"
msgstr ""
-#: build/views.py:1119 order/views.py:189 order/views.py:210
+#: build/views.py:1119 order/views.py:194 order/views.py:215
msgid "Edit Attachment"
msgstr ""
-#: build/views.py:1129 order/views.py:193 order/views.py:214
+#: build/views.py:1129 order/views.py:198 order/views.py:219
msgid "Attachment updated"
msgstr ""
-#: build/views.py:1139 order/views.py:229 order/views.py:243
+#: build/views.py:1139 order/views.py:234 order/views.py:248
msgid "Delete Attachment"
msgstr ""
-#: build/views.py:1144 order/views.py:235 order/views.py:249 stock/views.py:333
+#: build/views.py:1144 order/views.py:240 order/views.py:254 stock/views.py:333
msgid "Deleted attachment"
msgstr ""
-#: common/models.py:56
-msgid "InvenTree Instance Name"
+#: common/files.py:64
+msgid "Unsupported file format: {ext.upper()}"
+msgstr ""
+
+#: common/files.py:69
+msgid "Error reading file (invalid format)"
+msgstr ""
+
+#: common/files.py:71
+msgid "Error reading file (incorrect dimension)"
+msgstr ""
+
+#: common/files.py:73
+msgid "Error reading file (data could be corrupted)"
+msgstr ""
+
+#: common/forms.py:38 templates/attachment_table.html:15
+msgid "File"
+msgstr ""
+
+#: common/forms.py:39
+msgid "Select file to upload"
+msgstr ""
+
+#: common/forms.py:54
+msgid "{name.title()} File"
+msgstr ""
+
+#: common/forms.py:55
+#, python-brace-format
+msgid "Select {name} file to upload"
msgstr ""
#: common/models.py:58
+msgid "InvenTree Instance Name"
+msgstr ""
+
+#: common/models.py:60
msgid "String descriptor for the server instance"
msgstr ""
-#: common/models.py:62
+#: common/models.py:64
msgid "Use instance name"
msgstr ""
-#: common/models.py:63
+#: common/models.py:65
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:69 company/models.py:97 company/models.py:98
+#: common/models.py:71 company/models.py:94 company/models.py:95
msgid "Company name"
msgstr ""
-#: common/models.py:70
+#: common/models.py:72
msgid "Internal company name"
msgstr ""
-#: common/models.py:75
+#: common/models.py:77
msgid "Base URL"
msgstr ""
-#: common/models.py:76
+#: common/models.py:78
msgid "Base URL for server instance"
msgstr ""
-#: common/models.py:82
+#: common/models.py:84
msgid "Default Currency"
msgstr ""
-#: common/models.py:83
+#: common/models.py:85
msgid "Default currency"
msgstr ""
-#: common/models.py:89
+#: common/models.py:91
msgid "Download from URL"
msgstr ""
-#: common/models.py:90
+#: common/models.py:92
msgid "Allow download of remote images and files from external URL"
msgstr ""
-#: common/models.py:96
+#: common/models.py:98
msgid "Barcode Support"
msgstr ""
-#: common/models.py:97
+#: common/models.py:99
msgid "Enable barcode scanner support"
msgstr ""
-#: common/models.py:103
+#: common/models.py:105
msgid "IPN Regex"
msgstr ""
-#: common/models.py:104
+#: common/models.py:106
msgid "Regular expression pattern for matching Part IPN"
msgstr ""
-#: common/models.py:108
+#: common/models.py:110
msgid "Allow Duplicate IPN"
msgstr ""
-#: common/models.py:109
+#: common/models.py:111
msgid "Allow multiple parts to share the same IPN"
msgstr ""
-#: common/models.py:115
+#: common/models.py:117
msgid "Allow Editing IPN"
msgstr ""
-#: common/models.py:116
+#: common/models.py:118
msgid "Allow changing the IPN value while editing a part"
msgstr ""
-#: common/models.py:122
+#: common/models.py:124
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:123
+#: common/models.py:125
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:129
+#: common/models.py:131
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:130
+#: common/models.py:132
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:136
+#: common/models.py:138
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:137
+#: common/models.py:139
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:143
+#: common/models.py:145
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:144
+#: common/models.py:146
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:150
+#: common/models.py:152
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:151
+#: common/models.py:153
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:157 part/models.py:2079 part/templates/part/detail.html:160
-#: report/models.py:185 stock/forms.py:259 templates/js/table_filters.js:24
-#: templates/js/table_filters.js:310
+#: common/models.py:159 part/models.py:2117 part/templates/part/detail.html:160
+#: report/models.py:185 stock/forms.py:259 templates/js/table_filters.js:25
+#: templates/js/table_filters.js:311
msgid "Template"
msgstr ""
-#: common/models.py:158
+#: common/models.py:160
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:164 part/models.py:834 part/templates/part/detail.html:170
-#: templates/js/table_filters.js:123 templates/js/table_filters.js:322
+#: common/models.py:166 part/models.py:834 part/templates/part/detail.html:170
+#: templates/js/table_filters.js:124 templates/js/table_filters.js:323
msgid "Assembly"
msgstr ""
-#: common/models.py:165
+#: common/models.py:167
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:171 part/models.py:840 part/templates/part/detail.html:180
-#: templates/js/table_filters.js:326
+#: common/models.py:173 part/models.py:840 part/templates/part/detail.html:180
+#: templates/js/table_filters.js:327
msgid "Component"
msgstr ""
-#: common/models.py:172
+#: common/models.py:174
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:178 part/models.py:851 part/templates/part/detail.html:200
+#: common/models.py:180 part/models.py:851 part/templates/part/detail.html:200
msgid "Purchaseable"
msgstr ""
-#: common/models.py:179
+#: common/models.py:181
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:185 part/models.py:856 part/templates/part/detail.html:210
-#: templates/js/table_filters.js:334
+#: common/models.py:187 part/models.py:856 part/templates/part/detail.html:210
+#: templates/js/table_filters.js:335
msgid "Salable"
msgstr ""
-#: common/models.py:186
+#: common/models.py:188
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:192 part/models.py:846 part/templates/part/detail.html:190
-#: templates/js/table_filters.js:32 templates/js/table_filters.js:338
+#: common/models.py:194 part/models.py:846 part/templates/part/detail.html:190
+#: templates/js/table_filters.js:33 templates/js/table_filters.js:339
msgid "Trackable"
msgstr ""
-#: common/models.py:193
+#: common/models.py:195
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:199 part/models.py:866 part/templates/part/detail.html:150
-#: templates/js/table_filters.js:28
+#: common/models.py:201 part/models.py:866 part/templates/part/detail.html:150
+#: templates/js/table_filters.js:29
msgid "Virtual"
msgstr ""
-#: common/models.py:200
+#: common/models.py:202
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:206
+#: common/models.py:208
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:207
+#: common/models.py:209
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:213
+#: common/models.py:215 templates/stats.html:25
msgid "Debug Mode"
msgstr ""
-#: common/models.py:214
+#: common/models.py:216
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:220
+#: common/models.py:222
msgid "Page Size"
msgstr ""
-#: common/models.py:221
+#: common/models.py:223
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:231
+#: common/models.py:233
msgid "Test Reports"
msgstr ""
-#: common/models.py:232
+#: common/models.py:234
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:238
+#: common/models.py:240
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:239
+#: common/models.py:241
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:245
+#: common/models.py:247
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:246
+#: common/models.py:248
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:252
+#: common/models.py:254
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:253
+#: common/models.py:255
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:255 part/templates/part/detail.html:121
+#: common/models.py:257 part/templates/part/detail.html:121
msgid "days"
msgstr ""
-#: common/models.py:260
+#: common/models.py:262
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:261
+#: common/models.py:263
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:267
+#: common/models.py:269
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:268
+#: common/models.py:270
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:274
+#: common/models.py:276
msgid "Group by Part"
msgstr ""
-#: common/models.py:275
+#: common/models.py:277
msgid "Group stock items by part reference in table views"
msgstr ""
-#: common/models.py:281
+#: common/models.py:283
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:282
+#: common/models.py:284
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:288
+#: common/models.py:290
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:289
+#: common/models.py:291
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:294
+#: common/models.py:296
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:295
+#: common/models.py:297
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:299
+#: common/models.py:301
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:300
+#: common/models.py:302
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:305
+#: common/models.py:307
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:306
+#: common/models.py:308
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:529
+#: common/models.py:531
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:531
+#: common/models.py:533
msgid "Settings value"
msgstr ""
-#: common/models.py:566
+#: common/models.py:568
msgid "Must be an integer value"
msgstr ""
-#: common/models.py:589
+#: common/models.py:591
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:600
+#: common/models.py:602
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:623
+#: common/models.py:625
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:704 company/forms.py:177
+#: common/models.py:706 company/forms.py:177
msgid "Price break quantity"
msgstr ""
-#: common/models.py:712 company/templates/company/supplier_part_pricing.html:82
+#: common/models.py:714 company/templates/company/supplier_part_pricing.html:82
#: part/templates/part/sale_prices.html:90 templates/js/bom.js:255
msgid "Price"
msgstr ""
-#: common/models.py:713
+#: common/models.py:715
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:736
+#: common/models.py:804
msgid "Default"
msgstr ""
@@ -1721,24 +1835,42 @@ msgstr ""
msgid "Current value"
msgstr ""
-#: common/views.py:25
+#: common/views.py:32
msgid "Change Setting"
msgstr ""
-#: common/views.py:94
+#: common/views.py:101
msgid "Supplied value is not allowed"
msgstr ""
-#: common/views.py:103
+#: common/views.py:110
msgid "Supplied value must be a boolean"
msgstr ""
-#: company/forms.py:38 company/models.py:145
+#: common/views.py:184 order/templates/order/order_wizard/po_upload.html:42
+#: order/views.py:582 part/templates/part/bom_upload/upload_file.html:27
+msgid "Upload File"
+msgstr ""
+
+#: common/views.py:185 order/templates/order/order_wizard/match_fields.html:52
+#: order/views.py:583 part/templates/part/bom_upload/select_fields.html:58
+msgid "Match Fields"
+msgstr ""
+
+#: common/views.py:186
+msgid "Match Items"
+msgstr ""
+
+#: common/views.py:479
+msgid "Fields matching failed"
+msgstr ""
+
+#: company/forms.py:38 company/models.py:142
#: company/templates/company/detail.html:42
msgid "Currency"
msgstr ""
-#: company/forms.py:39 company/models.py:147
+#: company/forms.py:39 company/models.py:144
msgid "Default currency used for this company"
msgstr ""
@@ -1758,216 +1890,216 @@ msgstr ""
msgid "Single quantity price"
msgstr ""
-#: company/forms.py:128 company/models.py:324
+#: company/forms.py:128 company/models.py:321
msgid "Select manufacturer"
msgstr ""
-#: company/forms.py:134 company/models.py:331
+#: company/forms.py:134 company/models.py:328
msgid "Manufacturer Part Number"
msgstr ""
-#: company/forms.py:136 company/models.py:330
+#: company/forms.py:136 company/models.py:327
#: company/templates/company/manufacturer_part_base.html:89
#: company/templates/company/manufacturer_part_detail.html:26
-#: company/templates/company/supplier_part_base.html:101
+#: company/templates/company/supplier_part_base.html:102
#: company/templates/company/supplier_part_detail.html:35
#: order/templates/order/purchase_order_detail.html:158 part/bom.py:171
#: part/bom.py:242 templates/js/company.js:181 templates/js/company.js:307
msgid "MPN"
msgstr ""
-#: company/models.py:102
+#: company/models.py:99
msgid "Company description"
msgstr ""
-#: company/models.py:103
+#: company/models.py:100
msgid "Description of the company"
msgstr ""
-#: company/models.py:107 company/templates/company/company_base.html:70
+#: company/models.py:104 company/templates/company/company_base.html:70
#: company/templates/company/detail.html:33 templates/js/company.js:60
msgid "Website"
msgstr ""
-#: company/models.py:107
+#: company/models.py:104
msgid "Company website URL"
msgstr ""
-#: company/models.py:110 company/templates/company/company_base.html:77
+#: company/models.py:107 company/templates/company/company_base.html:77
msgid "Address"
msgstr ""
-#: company/models.py:111
+#: company/models.py:108
msgid "Company address"
msgstr ""
-#: company/models.py:114
+#: company/models.py:111
msgid "Phone number"
msgstr ""
-#: company/models.py:115
+#: company/models.py:112
msgid "Contact phone number"
msgstr ""
-#: company/models.py:118 company/templates/company/company_base.html:91
+#: company/models.py:115 company/templates/company/company_base.html:91
msgid "Email"
msgstr ""
-#: company/models.py:118
+#: company/models.py:115
msgid "Contact email address"
msgstr ""
-#: company/models.py:121 company/templates/company/company_base.html:98
+#: company/models.py:118 company/templates/company/company_base.html:98
msgid "Contact"
msgstr ""
-#: company/models.py:122
+#: company/models.py:119
msgid "Point of contact"
msgstr ""
-#: company/models.py:124 company/models.py:336 company/models.py:488
+#: company/models.py:121 company/models.py:333 company/models.py:485
#: order/models.py:103 part/models.py:743
#: report/templates/report/inventree_build_order_base.html:165
-#: stock/models.py:1560 templates/js/company.js:188 templates/js/company.js:318
+#: templates/js/company.js:188 templates/js/company.js:318
#: templates/js/part.js:431
msgid "Link"
msgstr ""
-#: company/models.py:124
+#: company/models.py:121
msgid "Link to external company information"
msgstr ""
-#: company/models.py:132 part/models.py:753
+#: company/models.py:129 part/models.py:753
msgid "Image"
msgstr ""
-#: company/models.py:137
+#: company/models.py:134
msgid "is customer"
msgstr ""
-#: company/models.py:137
+#: company/models.py:134
msgid "Do you sell items to this company?"
msgstr ""
-#: company/models.py:139
+#: company/models.py:136
msgid "is supplier"
msgstr ""
-#: company/models.py:139
+#: company/models.py:136
msgid "Do you purchase items from this company?"
msgstr ""
-#: company/models.py:141
+#: company/models.py:138
msgid "is manufacturer"
msgstr ""
-#: company/models.py:141
+#: company/models.py:138
msgid "Does this company manufacture parts?"
msgstr ""
-#: company/models.py:308 company/models.py:459 stock/models.py:373
-#: stock/templates/stock/item_base.html:224
+#: company/models.py:305 company/models.py:456 stock/models.py:405
+#: stock/templates/stock/item_base.html:230
msgid "Base Part"
msgstr ""
-#: company/models.py:312 company/models.py:463 order/views.py:1384
+#: company/models.py:309 company/models.py:460 order/views.py:1587
msgid "Select part"
msgstr ""
-#: company/models.py:323 company/templates/company/detail.html:57
+#: company/models.py:320 company/templates/company/detail.html:57
#: company/templates/company/manufacturer_part_base.html:85
#: company/templates/company/manufacturer_part_detail.html:25
#: company/templates/company/supplier_part_base.html:94
#: company/templates/company/supplier_part_detail.html:34 part/bom.py:170
-#: part/bom.py:241 stock/templates/stock/item_base.html:341
+#: part/bom.py:241 stock/templates/stock/item_base.html:347
#: templates/js/company.js:44 templates/js/company.js:165
#: templates/js/company.js:289
msgid "Manufacturer"
msgstr ""
-#: company/models.py:337
+#: company/models.py:334
msgid "URL for external manufacturer part link"
msgstr ""
-#: company/models.py:343
+#: company/models.py:340
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:469 company/templates/company/detail.html:62
+#: company/models.py:466 company/templates/company/detail.html:62
#: company/templates/company/supplier_part_base.html:84
#: company/templates/company/supplier_part_detail.html:25 order/models.py:190
#: order/templates/order/order_base.html:92
#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:175
-#: part/bom.py:286 stock/templates/stock/item_base.html:353
+#: part/bom.py:286 stock/templates/stock/item_base.html:359
#: templates/js/company.js:48 templates/js/company.js:263
#: templates/js/order.js:170
msgid "Supplier"
msgstr ""
-#: company/models.py:470
+#: company/models.py:467
msgid "Select supplier"
msgstr ""
-#: company/models.py:475 company/templates/company/supplier_part_base.html:88
+#: company/models.py:472 company/templates/company/supplier_part_base.html:88
#: company/templates/company/supplier_part_detail.html:26
#: order/templates/order/purchase_order_detail.html:149 part/bom.py:176
#: part/bom.py:287
msgid "SKU"
msgstr ""
-#: company/models.py:476
+#: company/models.py:473
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:482
+#: company/models.py:479
#: company/templates/company/manufacturer_part_base.html:6
#: company/templates/company/manufacturer_part_base.html:19
-#: stock/templates/stock/item_base.html:346
+#: stock/templates/stock/item_base.html:352
msgid "Manufacturer Part"
msgstr ""
-#: company/models.py:483
+#: company/models.py:480
msgid "Select manufacturer part"
msgstr ""
-#: company/models.py:489
+#: company/models.py:486
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:495
+#: company/models.py:492
msgid "Supplier part description"
msgstr ""
-#: company/models.py:500 company/templates/company/supplier_part_base.html:115
-#: company/templates/company/supplier_part_detail.html:38 part/models.py:2190
+#: company/models.py:497 company/templates/company/supplier_part_base.html:116
+#: company/templates/company/supplier_part_detail.html:38 part/models.py:2228
#: report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr ""
-#: company/models.py:504
+#: company/models.py:501 part/models.py:1614
msgid "base cost"
msgstr ""
-#: company/models.py:504
+#: company/models.py:501 part/models.py:1614
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:506 company/templates/company/supplier_part_base.html:108
-#: stock/models.py:397 stock/templates/stock/item_base.html:299
+#: company/models.py:503 company/templates/company/supplier_part_base.html:109
+#: stock/models.py:429 stock/templates/stock/item_base.html:305
#: templates/js/stock.js:667
msgid "Packaging"
msgstr ""
-#: company/models.py:506
+#: company/models.py:503
msgid "Part packaging"
msgstr ""
-#: company/models.py:508
+#: company/models.py:505 part/models.py:1616
msgid "multiple"
msgstr ""
-#: company/models.py:508
+#: company/models.py:505
msgid "Order multiple"
msgstr ""
@@ -1993,7 +2125,7 @@ msgstr ""
msgid "Download image from URL"
msgstr ""
-#: company/templates/company/company_base.html:46 order/views.py:306
+#: company/templates/company/company_base.html:46 order/views.py:311
msgid "Create Purchase Order"
msgstr ""
@@ -2022,8 +2154,7 @@ msgstr ""
#: company/templates/company/delete.html:12
#, python-format
-msgid ""
-"There are %(count)s parts sourced from this company.
\n"
+msgid "There are %(count)s parts sourced from this company.
\n"
"If this supplier is deleted, these supplier part entries will also be deleted."
msgstr ""
@@ -2039,10 +2170,11 @@ msgstr ""
msgid "Uses default currency"
msgstr ""
-#: company/templates/company/detail.html:67 order/models.py:450
-#: order/templates/order/sales_order_base.html:92 stock/models.py:415
-#: stock/models.py:416 stock/templates/stock/item_base.html:251
+#: company/templates/company/detail.html:67 order/models.py:461
+#: order/templates/order/sales_order_base.html:92 stock/models.py:447
+#: stock/models.py:448 stock/templates/stock/item_base.html:257
#: templates/js/company.js:40 templates/js/order.js:267
+#: templates/js/stock.js:1064
msgid "Customer"
msgstr ""
@@ -2088,7 +2220,7 @@ msgstr ""
#: company/templates/company/detail_manufacturer_part.html:66
#: company/templates/company/detail_supplier_part.html:66
#: part/templates/part/bom.html:159 part/templates/part/category.html:118
-#: templates/js/stock.js:1157
+#: templates/js/stock.js:1279
msgid "New Part"
msgstr ""
@@ -2135,19 +2267,19 @@ msgstr ""
#: company/templates/company/detail_supplier_part.html:22
#: company/templates/company/manufacturer_part_suppliers.html:17
#: order/templates/order/purchase_order_detail.html:49
-#: part/templates/part/supplier.html:17 templates/js/stock.js:1163
+#: part/templates/part/supplier.html:17 templates/js/stock.js:1285
msgid "New Supplier Part"
msgstr ""
#: company/templates/company/detail_supplier_part.html:72
#: company/templates/company/manufacturer_part_suppliers.html:47
-#: company/views.py:64 order/templates/order/purchase_orders.html:183
+#: company/views.py:64 order/templates/order/purchase_orders.html:185
#: part/templates/part/supplier.html:50
msgid "New Supplier"
msgstr ""
#: company/templates/company/detail_supplier_part.html:73 company/views.py:281
-#: order/templates/order/purchase_orders.html:184
+#: order/templates/order/purchase_orders.html:186
msgid "Create new Supplier"
msgstr ""
@@ -2205,7 +2337,7 @@ msgstr ""
#: company/templates/company/manufacturer_part_navbar.html:22
#: company/templates/company/navbar.html:41
#: company/templates/company/supplier_part_navbar.html:15
-#: part/templates/part/navbar.html:36 stock/api.py:51
+#: part/templates/part/navbar.html:36 stock/api.py:54
#: stock/templates/stock/loc_link.html:7 stock/templates/stock/location.html:36
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/index.html:128 templates/InvenTree/search.html:196
@@ -2258,7 +2390,7 @@ msgstr ""
#: stock/templates/stock/location_navbar.html:22
#: stock/templates/stock/location_navbar.html:29
#: templates/InvenTree/search.html:198 templates/js/stock.js:968
-#: templates/stats.html:72 templates/stats.html:81 users/models.py:42
+#: templates/stats.html:93 templates/stats.html:102 users/models.py:42
msgid "Stock Items"
msgstr ""
@@ -2313,8 +2445,8 @@ msgid "New Sales Order"
msgstr ""
#: company/templates/company/supplier_part_base.html:7
-#: company/templates/company/supplier_part_base.html:20 stock/models.py:382
-#: stock/templates/stock/item_base.html:358 templates/js/company.js:279
+#: company/templates/company/supplier_part_base.html:20 stock/models.py:414
+#: stock/templates/stock/item_base.html:364 templates/js/company.js:279
msgid "Supplier Part"
msgstr ""
@@ -2363,7 +2495,7 @@ msgid "Pricing Information"
msgstr ""
#: company/templates/company/supplier_part_pricing.html:19 company/views.py:794
-#: part/templates/part/sale_prices.html:17 part/views.py:2636
+#: part/templates/part/sale_prices.html:17 part/views.py:2644
msgid "Add Price Break"
msgstr ""
@@ -2393,7 +2525,7 @@ msgstr ""
msgid "Customers"
msgstr ""
-#: company/views.py:78 order/templates/order/sales_orders.html:185
+#: company/views.py:78 order/templates/order/sales_orders.html:187
msgid "New Customer"
msgstr ""
@@ -2413,6 +2545,11 @@ msgstr ""
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
+#: company/views.py:205 part/views.py:887
+#, python-brace-format
+msgid "Invalid response: {code}"
+msgstr ""
+
#: company/views.py:214 part/views.py:896
msgid "Supplied URL is not a valid image file"
msgstr ""
@@ -2433,7 +2570,7 @@ msgstr ""
msgid "Edited company information"
msgstr ""
-#: company/views.py:287 order/templates/order/sales_orders.html:186
+#: company/views.py:287 order/templates/order/sales_orders.html:188
msgid "Create new Customer"
msgstr ""
@@ -2465,7 +2602,7 @@ msgstr ""
msgid "Edit Supplier Part"
msgstr ""
-#: company/views.py:578 templates/js/stock.js:1164
+#: company/views.py:578 templates/js/stock.js:1286
msgid "Create new Supplier Part"
msgstr ""
@@ -2473,15 +2610,15 @@ msgstr ""
msgid "Delete Supplier Part"
msgstr ""
-#: company/views.py:799 part/views.py:2640
+#: company/views.py:799 part/views.py:2648
msgid "Added new price break"
msgstr ""
-#: company/views.py:855 part/views.py:2684
+#: company/views.py:855 part/views.py:2692
msgid "Edit Price Break"
msgstr ""
-#: company/views.py:870 part/views.py:2698
+#: company/views.py:870 part/views.py:2706
msgid "Delete Price Break"
msgstr ""
@@ -2489,51 +2626,59 @@ msgstr ""
msgid "No valid objects provided to template"
msgstr ""
-#: label/models.py:102
+#: label/models.py:103
msgid "Label name"
msgstr ""
-#: label/models.py:109
+#: label/models.py:110
msgid "Label description"
msgstr ""
-#: label/models.py:116 stock/forms.py:202
+#: label/models.py:117 stock/forms.py:202
msgid "Label"
msgstr ""
-#: label/models.py:117
+#: label/models.py:118
msgid "Label template file"
msgstr ""
-#: label/models.py:123 report/models.py:274
+#: label/models.py:124 report/models.py:274
msgid "Enabled"
msgstr ""
-#: label/models.py:124
+#: label/models.py:125
msgid "Label template is enabled"
msgstr ""
-#: label/models.py:129
+#: label/models.py:130
msgid "Width [mm]"
msgstr ""
-#: label/models.py:130
+#: label/models.py:131
msgid "Label width, specified in mm"
msgstr ""
-#: label/models.py:136
+#: label/models.py:137
msgid "Height [mm]"
msgstr ""
-#: label/models.py:137
+#: label/models.py:138
msgid "Label height, specified in mm"
msgstr ""
-#: label/models.py:222 label/models.py:275
+#: label/models.py:144
+msgid "Filename Pattern"
+msgstr ""
+
+#: label/models.py:145
+msgid "Pattern for generating label filenames"
+msgstr ""
+
+#: label/models.py:244 label/models.py:297
msgid "Query filters (comma-separated list of key=value pairs"
msgstr ""
-#: label/models.py:223 label/models.py:276 report/models.py:294
+#: label/models.py:245 label/models.py:298 report/models.py:294
#: report/models.py:415 report/models.py:449
msgid "Filters"
msgstr ""
@@ -2571,15 +2716,15 @@ msgstr ""
msgid "Enter sales order number"
msgstr ""
-#: order/forms.py:145 order/models.py:462
+#: order/forms.py:145 order/models.py:473
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/forms.py:235
+#: order/forms.py:236
msgid "Enter stock item serial numbers"
msgstr ""
-#: order/forms.py:241
+#: order/forms.py:242
msgid "Enter quantity of stock items"
msgstr ""
@@ -2607,7 +2752,7 @@ msgstr ""
msgid "Order notes"
msgstr ""
-#: order/models.py:182 order/models.py:455
+#: order/models.py:182 order/models.py:466
msgid "Purchase order status"
msgstr ""
@@ -2648,8 +2793,8 @@ msgstr ""
msgid "Date order was completed"
msgstr ""
-#: order/models.py:243 part/views.py:1586 stock/models.py:270
-#: stock/models.py:953
+#: order/models.py:243 part/views.py:1586 stock/models.py:302
+#: stock/models.py:1018
msgid "Quantity must be greater than zero"
msgstr ""
@@ -2657,128 +2802,134 @@ msgstr ""
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:344
+#: order/models.py:346
msgid "Lines can only be received against an order marked as 'Placed'"
msgstr ""
-#: order/models.py:348
+#: order/models.py:350
msgid "Quantity must be an integer"
msgstr ""
-#: order/models.py:350
+#: order/models.py:352
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:369
-msgid "Received items"
-msgstr ""
-
-#: order/models.py:451
+#: order/models.py:462
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:457
+#: order/models.py:468
msgid "Customer Reference "
msgstr ""
-#: order/models.py:457
+#: order/models.py:468
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:465 templates/js/order.js:303
+#: order/models.py:476 templates/js/order.js:303
msgid "Shipment Date"
msgstr ""
-#: order/models.py:472
+#: order/models.py:483
msgid "shipped by"
msgstr ""
-#: order/models.py:516
+#: order/models.py:527
msgid "SalesOrder cannot be shipped as it is not currently pending"
msgstr ""
-#: order/models.py:603
+#: order/models.py:614
msgid "Item quantity"
msgstr ""
-#: order/models.py:605
+#: order/models.py:616
msgid "Line item reference"
msgstr ""
-#: order/models.py:607
+#: order/models.py:618
msgid "Line item notes"
msgstr ""
-#: order/models.py:633 order/models.py:677
+#: order/models.py:644 order/models.py:689
#: part/templates/part/allocation.html:17
#: part/templates/part/allocation.html:45
msgid "Order"
msgstr ""
-#: order/models.py:634 order/templates/order/order_base.html:9
+#: order/models.py:645 order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:24
#: report/templates/report/inventree_po_report.html:77
-#: stock/templates/stock/item_base.html:313 templates/js/order.js:148
+#: stock/templates/stock/item_base.html:319 templates/js/order.js:148
+#: templates/js/stock.js:1045
msgid "Purchase Order"
msgstr ""
-#: order/models.py:648
+#: order/models.py:659
msgid "Supplier part"
msgstr ""
-#: order/models.py:651 order/templates/order/order_base.html:131
+#: order/models.py:662 order/templates/order/order_base.html:131
#: order/templates/order/purchase_order_detail.html:189
#: order/templates/order/receive_parts.html:22
#: order/templates/order/sales_order_base.html:131
msgid "Received"
msgstr ""
-#: order/models.py:651
+#: order/models.py:662
msgid "Number of items received"
msgstr ""
-#: order/models.py:658 stock/models.py:508
-#: stock/templates/stock/item_base.html:320
+#: order/models.py:669 stock/models.py:540
+#: stock/templates/stock/item_base.html:326
msgid "Purchase Price"
msgstr ""
-#: order/models.py:659
+#: order/models.py:670
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:753 order/models.py:755
+#: order/models.py:698 part/templates/part/navbar.html:95
+#: part/templates/part/part_pricing.html:78
+msgid "Sale Price"
+msgstr ""
+
+#: order/models.py:699
+msgid "Unit sale price"
+msgstr ""
+
+#: order/models.py:774 order/models.py:776
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:759
+#: order/models.py:780
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:761
+#: order/models.py:782
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:764
+#: order/models.py:785
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:774
+#: order/models.py:795
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:779
+#: order/models.py:800
msgid "Line"
msgstr ""
-#: order/models.py:790
+#: order/models.py:811
msgid "Item"
msgstr ""
-#: order/models.py:791
+#: order/models.py:812
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:794
+#: order/models.py:815
msgid "Enter stock allocation quantity"
msgstr ""
@@ -2830,7 +2981,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:100
#: part/templates/part/category.html:185 part/templates/part/category.html:227
#: stock/templates/stock/location.html:191 templates/js/stock.js:708
-#: templates/js/stock.js:1169
+#: templates/js/stock.js:1291
msgid "New Location"
msgstr ""
@@ -2864,6 +3015,75 @@ msgstr ""
msgid "Order Notes"
msgstr ""
+#: order/templates/order/order_wizard/match_fields.html:9
+#: part/templates/part/bom_upload/select_fields.html:21
+msgid "Missing selections for the following required columns"
+msgstr ""
+
+#: order/templates/order/order_wizard/match_fields.html:20
+msgid "Duplicate selections found, see below. Fix them then retry submitting."
+msgstr ""
+
+#: order/templates/order/order_wizard/match_fields.html:27
+#: order/templates/order/order_wizard/match_parts.html:18
+#: order/templates/order/order_wizard/po_upload.html:40
+msgid "Previous Step"
+msgstr ""
+
+#: order/templates/order/order_wizard/match_fields.html:29
+#: order/templates/order/order_wizard/match_parts.html:20
+#: part/templates/part/bom_upload/select_fields.html:32
+msgid "Submit Selections"
+msgstr ""
+
+#: order/templates/order/order_wizard/match_fields.html:35
+#: part/templates/part/bom_upload/select_fields.html:41
+msgid "File Fields"
+msgstr ""
+
+#: order/templates/order/order_wizard/match_fields.html:42
+#: part/templates/part/bom_upload/select_fields.html:47
+msgid "Remove column"
+msgstr ""
+
+#: order/templates/order/order_wizard/match_fields.html:60
+msgid "Duplicate selection"
+msgstr ""
+
+#: order/templates/order/order_wizard/match_fields.html:71
+#: order/templates/order/order_wizard/match_parts.html:51
+#: part/templates/part/bom_upload/select_fields.html:76
+#: part/templates/part/bom_upload/select_parts.html:58
+msgid "Remove row"
+msgstr ""
+
+#: order/templates/order/order_wizard/match_parts.html:11
+#: part/templates/part/bom_upload/select_parts.html:21
+msgid "Errors exist in the submitted data"
+msgstr ""
+
+#: order/templates/order/order_wizard/match_parts.html:27
+#: part/templates/part/bom_upload/select_parts.html:39
+msgid "Row"
+msgstr ""
+
+#: order/templates/order/order_wizard/match_parts.html:28
+msgid "Select Supplier Part"
+msgstr ""
+
+#: order/templates/order/order_wizard/po_upload.html:11
+msgid "Upload File for Purchase Order"
+msgstr ""
+
+#: order/templates/order/order_wizard/po_upload.html:18
+#, python-format
+msgid "Step %(step)s of %(count)s"
+msgstr ""
+
+#: order/templates/order/order_wizard/po_upload.html:48
+msgid "Order is already processed. Files cannot be uploaded."
+msgstr ""
+
#: order/templates/order/order_wizard/select_parts.html:9
msgid "Step 1 of 2 - Select Part Suppliers"
msgstr ""
@@ -2936,8 +3156,8 @@ msgid "Purchase Order Items"
msgstr ""
#: order/templates/order/purchase_order_detail.html:24
-#: order/templates/order/sales_order_detail.html:22 order/views.py:1120
-#: order/views.py:1203
+#: order/templates/order/sales_order_detail.html:22 order/views.py:1311
+#: order/views.py:1394
msgid "Add Line Item"
msgstr ""
@@ -2946,11 +3166,12 @@ msgid "No line items found"
msgstr ""
#: order/templates/order/purchase_order_detail.html:180
+#: order/templates/order/sales_order_detail.html:235
msgid "Unit Price"
msgstr ""
#: order/templates/order/purchase_order_detail.html:221
-#: order/templates/order/sales_order_detail.html:294
+#: order/templates/order/sales_order_detail.html:328
msgid "Edit line item"
msgstr ""
@@ -2980,7 +3201,7 @@ msgstr ""
#: part/templates/part/category_partlist.html:10
#: templates/InvenTree/index.html:97 templates/InvenTree/search.html:114
#: templates/InvenTree/settings/tabs.html:25 templates/js/part.js:577
-#: templates/navbar.html:23 templates/stats.html:59 templates/stats.html:68
+#: templates/navbar.html:23 templates/stats.html:80 templates/stats.html:89
#: users/models.py:40
msgid "Parts"
msgstr ""
@@ -3042,59 +3263,72 @@ msgstr ""
msgid "Sales Order Items"
msgstr ""
-#: order/templates/order/sales_order_detail.html:92 templates/js/bom.js:342
+#: order/templates/order/sales_order_detail.html:95 templates/js/bom.js:342
#: templates/js/build.js:627 templates/js/build.js:1044
msgid "Actions"
msgstr ""
-#: order/templates/order/sales_order_detail.html:99 templates/js/build.js:515
+#: order/templates/order/sales_order_detail.html:102 templates/js/build.js:515
#: templates/js/build.js:849
msgid "Edit stock allocation"
msgstr ""
-#: order/templates/order/sales_order_detail.html:100 templates/js/build.js:517
+#: order/templates/order/sales_order_detail.html:103 templates/js/build.js:517
#: templates/js/build.js:850
msgid "Delete stock allocation"
msgstr ""
-#: order/templates/order/sales_order_detail.html:170
+#: order/templates/order/sales_order_detail.html:176
msgid "No matching line items"
msgstr ""
-#: order/templates/order/sales_order_detail.html:199
+#: order/templates/order/sales_order_detail.html:205
msgid "ID"
msgstr ""
-#: order/templates/order/sales_order_detail.html:229 templates/js/build.js:579
+#: order/templates/order/sales_order_detail.html:243 templates/js/build.js:579
#: templates/js/build.js:845
msgid "Allocated"
msgstr ""
-#: order/templates/order/sales_order_detail.html:231
+#: order/templates/order/sales_order_detail.html:245
msgid "Fulfilled"
msgstr ""
-#: order/templates/order/sales_order_detail.html:279
+#: order/templates/order/sales_order_detail.html:282
+msgid "PO"
+msgstr ""
+
+#: order/templates/order/sales_order_detail.html:312
msgid "Allocate serial numbers"
msgstr ""
-#: order/templates/order/sales_order_detail.html:282 templates/js/build.js:641
+#: order/templates/order/sales_order_detail.html:315 templates/js/build.js:641
msgid "Allocate stock"
msgstr ""
-#: order/templates/order/sales_order_detail.html:285
+#: order/templates/order/sales_order_detail.html:318
msgid "Purchase stock"
msgstr ""
-#: order/templates/order/sales_order_detail.html:289 templates/js/build.js:634
+#: order/templates/order/sales_order_detail.html:322 templates/js/build.js:634
#: templates/js/build.js:1052
msgid "Build stock"
msgstr ""
-#: order/templates/order/sales_order_detail.html:295
+#: order/templates/order/sales_order_detail.html:325
+#: order/templates/order/sales_order_detail.html:434
+msgid "Calculate price"
+msgstr ""
+
+#: order/templates/order/sales_order_detail.html:329
msgid "Delete line item "
msgstr ""
+#: order/templates/order/sales_order_detail.html:440
+msgid "Update Unit Price"
+msgstr ""
+
#: order/templates/order/sales_order_notes.html:14
msgid "Sales Order Notes"
msgstr ""
@@ -3136,164 +3370,189 @@ msgstr ""
msgid "Are you sure you wish to delete this line item?"
msgstr ""
-#: order/views.py:99
+#: order/views.py:104
msgid "Add Purchase Order Attachment"
msgstr ""
-#: order/views.py:149
+#: order/views.py:154
msgid "Add Sales Order Attachment"
msgstr ""
-#: order/views.py:341
+#: order/views.py:346
msgid "Create Sales Order"
msgstr ""
-#: order/views.py:376
+#: order/views.py:381
msgid "Edit Purchase Order"
msgstr ""
-#: order/views.py:396
+#: order/views.py:401
msgid "Edit Sales Order"
msgstr ""
-#: order/views.py:412
+#: order/views.py:417
msgid "Cancel Order"
msgstr ""
-#: order/views.py:421 order/views.py:447
+#: order/views.py:426 order/views.py:452
msgid "Confirm order cancellation"
msgstr ""
-#: order/views.py:424 order/views.py:450
+#: order/views.py:429 order/views.py:455
msgid "Order cannot be cancelled"
msgstr ""
-#: order/views.py:438
+#: order/views.py:443
msgid "Cancel sales order"
msgstr ""
-#: order/views.py:464
+#: order/views.py:469
msgid "Issue Order"
msgstr ""
-#: order/views.py:473
+#: order/views.py:478
msgid "Confirm order placement"
msgstr ""
-#: order/views.py:483
+#: order/views.py:488
msgid "Purchase order issued"
msgstr ""
-#: order/views.py:494
+#: order/views.py:499
msgid "Complete Order"
msgstr ""
-#: order/views.py:510
+#: order/views.py:515
msgid "Confirm order completion"
msgstr ""
-#: order/views.py:521
+#: order/views.py:526
msgid "Purchase order completed"
msgstr ""
-#: order/views.py:531
+#: order/views.py:536
msgid "Ship Order"
msgstr ""
-#: order/views.py:547
+#: order/views.py:552
msgid "Confirm order shipment"
msgstr ""
-#: order/views.py:553
+#: order/views.py:558
msgid "Could not ship order"
msgstr ""
-#: order/views.py:607
+#: order/views.py:584
+msgid "Match Supplier Parts"
+msgstr ""
+
+#: order/views.py:798
msgid "Receive Parts"
msgstr ""
-#: order/views.py:677
+#: order/views.py:868
msgid "Items received"
msgstr ""
-#: order/views.py:691
+#: order/views.py:882
msgid "No destination set"
msgstr ""
-#: order/views.py:736
+#: order/views.py:927
msgid "Error converting quantity to number"
msgstr ""
-#: order/views.py:742
+#: order/views.py:933
msgid "Receive quantity less than zero"
msgstr ""
-#: order/views.py:748
+#: order/views.py:939
msgid "No lines specified"
msgstr ""
-#: order/views.py:1069
+#: order/views.py:1260
#, python-brace-format
msgid "Ordered {n} parts"
msgstr ""
-#: order/views.py:1129
+#: order/views.py:1320
msgid "Supplier part must be specified"
msgstr ""
-#: order/views.py:1135
+#: order/views.py:1326
msgid "Supplier must match for Part and Order"
msgstr ""
-#: order/views.py:1254 order/views.py:1272
+#: order/views.py:1457 order/views.py:1475
msgid "Edit Line Item"
msgstr ""
-#: order/views.py:1288 order/views.py:1300
+#: order/views.py:1491 order/views.py:1503
msgid "Delete Line Item"
msgstr ""
-#: order/views.py:1293 order/views.py:1305
+#: order/views.py:1496 order/views.py:1508
msgid "Deleted line item"
msgstr ""
-#: order/views.py:1318
+#: order/views.py:1521
msgid "Allocate Serial Numbers"
msgstr ""
-#: order/views.py:1363
+#: order/views.py:1566
#, python-brace-format
msgid "Allocated {n} items"
msgstr ""
-#: order/views.py:1379
+#: order/views.py:1582
msgid "Select line item"
msgstr ""
-#: order/views.py:1410
-msgid "No matching item for serial"
+#: order/views.py:1613
+#, python-brace-format
+msgid "No matching item for serial {serial}"
msgstr ""
-#: order/views.py:1420
-msgid "is not in stock"
+#: order/views.py:1623
+#, python-brace-format
+msgid "{serial} is not in stock"
msgstr ""
-#: order/views.py:1428
-msgid "already allocated to an order"
+#: order/views.py:1631
+#, python-brace-format
+msgid "{serial} already allocated to an order"
msgstr ""
-#: order/views.py:1482
+#: order/views.py:1685
msgid "Allocate Stock to Order"
msgstr ""
-#: order/views.py:1556
+#: order/views.py:1759
msgid "Edit Allocation Quantity"
msgstr ""
-#: order/views.py:1571
+#: order/views.py:1774
msgid "Remove allocation"
msgstr ""
+#: order/views.py:1846
+msgid "Sales order not found"
+msgstr ""
+
+#: order/views.py:1852
+msgid "Price not found"
+msgstr ""
+
+#: order/views.py:1855
+#, python-brace-format
+msgid "Updated {part} unit-price to {price}"
+msgstr ""
+
+#: order/views.py:1860
+#, python-brace-format
+msgid "Updated {part} unit-price to {price} and quantity to {qty}"
+msgstr ""
+
#: part/bom.py:138 part/models.py:72 part/models.py:762
#: part/templates/part/category.html:66 part/templates/part/detail.html:90
msgid "Default Location"
@@ -3372,7 +3631,7 @@ msgstr ""
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:122 part/models.py:2077
+#: part/forms.py:122 part/models.py:2115
msgid "Parent Part"
msgstr ""
@@ -3448,7 +3707,7 @@ msgstr ""
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:344 part/models.py:2171
+#: part/forms.py:344 part/models.py:2209
msgid "Sub part"
msgstr ""
@@ -3468,14 +3727,14 @@ msgstr ""
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:82 part/models.py:2123
+#: part/models.py:82 part/models.py:2161
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
#: part/models.py:83 part/templates/part/category.html:23
#: part/templates/part/category.html:94 part/templates/part/category.html:141
-#: templates/InvenTree/search.html:127 templates/stats.html:63
+#: templates/InvenTree/search.html:127 templates/stats.html:84
#: users/models.py:39
msgid "Part Categories"
msgstr ""
@@ -3538,7 +3797,7 @@ msgstr ""
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:724 part/models.py:2122 part/templates/part/detail.html:73
+#: part/models.py:724 part/models.py:2160 part/templates/part/detail.html:73
#: part/templates/part/set_category.html:15 templates/js/part.js:385
msgid "Category"
msgstr ""
@@ -3593,7 +3852,7 @@ msgstr ""
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:828 part/models.py:2051 part/templates/part/detail.html:106
+#: part/models.py:828 part/models.py:2089 part/templates/part/detail.html:106
#: part/templates/part/params.html:29
msgid "Units"
msgstr ""
@@ -3623,8 +3882,8 @@ msgid "Can this part be sold to customers?"
msgstr ""
#: part/models.py:861 part/templates/part/detail.html:227
-#: templates/js/table_filters.js:20 templates/js/table_filters.js:60
-#: templates/js/table_filters.js:236 templates/js/table_filters.js:305
+#: templates/js/table_filters.js:21 templates/js/table_filters.js:61
+#: templates/js/table_filters.js:237 templates/js/table_filters.js:306
msgid "Active"
msgstr ""
@@ -3660,167 +3919,171 @@ msgstr ""
msgid "Creation User"
msgstr ""
-#: part/models.py:1949
-msgid "Test templates can only be created for trackable parts"
-msgstr ""
-
-#: part/models.py:1966
-msgid "Test with this name already exists for this part"
-msgstr ""
-
-#: part/models.py:1986 templates/js/part.js:638 templates/js/stock.js:104
-msgid "Test Name"
+#: part/models.py:1616
+msgid "Sell multiple"
msgstr ""
#: part/models.py:1987
+msgid "Test templates can only be created for trackable parts"
+msgstr ""
+
+#: part/models.py:2004
+msgid "Test with this name already exists for this part"
+msgstr ""
+
+#: part/models.py:2024 templates/js/part.js:638 templates/js/stock.js:104
+msgid "Test Name"
+msgstr ""
+
+#: part/models.py:2025
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:1992
+#: part/models.py:2030
msgid "Test Description"
msgstr ""
-#: part/models.py:1993
+#: part/models.py:2031
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:1998 templates/js/part.js:647
-#: templates/js/table_filters.js:222
+#: part/models.py:2036 templates/js/part.js:647
+#: templates/js/table_filters.js:223
msgid "Required"
msgstr ""
-#: part/models.py:1999
+#: part/models.py:2037
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2004 templates/js/part.js:655
+#: part/models.py:2042 templates/js/part.js:655
msgid "Requires Value"
msgstr ""
-#: part/models.py:2005
+#: part/models.py:2043
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2010 templates/js/part.js:662
+#: part/models.py:2048 templates/js/part.js:662
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2011
+#: part/models.py:2049
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2044
+#: part/models.py:2082
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2049
+#: part/models.py:2087
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2051
+#: part/models.py:2089
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2079 part/models.py:2128 part/models.py:2129
+#: part/models.py:2117 part/models.py:2166 part/models.py:2167
#: templates/InvenTree/settings/category.html:62
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2081
+#: part/models.py:2119
msgid "Data"
msgstr ""
-#: part/models.py:2081
+#: part/models.py:2119
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2133 templates/InvenTree/settings/category.html:67
+#: part/models.py:2171 templates/InvenTree/settings/category.html:67
msgid "Default Value"
msgstr ""
-#: part/models.py:2134
+#: part/models.py:2172
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2163
+#: part/models.py:2201
msgid "Select parent part"
msgstr ""
-#: part/models.py:2172
+#: part/models.py:2210
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2178
+#: part/models.py:2216
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2180 templates/js/bom.js:216 templates/js/bom.js:269
+#: part/models.py:2218 templates/js/bom.js:216 templates/js/bom.js:269
msgid "Optional"
msgstr ""
-#: part/models.py:2180
+#: part/models.py:2218
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2183
+#: part/models.py:2221
msgid "Overage"
msgstr ""
-#: part/models.py:2184
+#: part/models.py:2222
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2187
+#: part/models.py:2225
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2190
+#: part/models.py:2228
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2192
+#: part/models.py:2230
msgid "Checksum"
msgstr ""
-#: part/models.py:2192
+#: part/models.py:2230
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2196 templates/js/bom.js:279 templates/js/bom.js:286
-#: templates/js/table_filters.js:50
+#: part/models.py:2234 templates/js/bom.js:279 templates/js/bom.js:286
+#: templates/js/table_filters.js:51
msgid "Inherited"
msgstr ""
-#: part/models.py:2197
+#: part/models.py:2235
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2273 part/views.py:1592 part/views.py:1644
-#: stock/models.py:260
+#: part/models.py:2311 part/views.py:1592 part/views.py:1644
+#: stock/models.py:292
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2282 part/models.py:2284
+#: part/models.py:2320 part/models.py:2322
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2287
+#: part/models.py:2325
msgid "BOM Item"
msgstr ""
-#: part/models.py:2404
+#: part/models.py:2442
msgid "Part 1"
msgstr ""
-#: part/models.py:2408
+#: part/models.py:2446
msgid "Part 2"
msgstr ""
-#: part/models.py:2408
+#: part/models.py:2446
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2440
+#: part/models.py:2478
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -3905,7 +4168,7 @@ msgid "All selected BOM items will be deleted"
msgstr ""
#: part/templates/part/bom.html:160 part/views.py:584
-#: templates/js/stock.js:1158
+#: templates/js/stock.js:1280
msgid "Create New Part"
msgstr ""
@@ -3923,51 +4186,18 @@ msgstr ""
msgid "Step 2 - Select Fields"
msgstr ""
-#: part/templates/part/bom_upload/select_fields.html:21
-msgid "Missing selections for the following required columns"
-msgstr ""
-
-#: part/templates/part/bom_upload/select_fields.html:32
-msgid "Submit Selections"
-msgstr ""
-
-#: part/templates/part/bom_upload/select_fields.html:41
-msgid "File Fields"
-msgstr ""
-
-#: part/templates/part/bom_upload/select_fields.html:47
-msgid "Remove column"
-msgstr ""
-
-#: part/templates/part/bom_upload/select_fields.html:58
-msgid "Match Fields"
-msgstr ""
-
#: part/templates/part/bom_upload/select_fields.html:68
msgid "Duplicate column selection"
msgstr ""
-#: part/templates/part/bom_upload/select_fields.html:76
-#: part/templates/part/bom_upload/select_parts.html:58
-msgid "Remove row"
-msgstr ""
-
#: part/templates/part/bom_upload/select_parts.html:16
msgid "Step 3 - Select Parts"
msgstr ""
-#: part/templates/part/bom_upload/select_parts.html:21
-msgid "Errors exist in the submitted data"
-msgstr ""
-
#: part/templates/part/bom_upload/select_parts.html:27
msgid "Submit BOM"
msgstr ""
-#: part/templates/part/bom_upload/select_parts.html:39
-msgid "Row"
-msgstr ""
-
#: part/templates/part/bom_upload/select_parts.html:40
#: part/templates/part/bom_upload/select_parts.html:69
msgid "Select Part"
@@ -3998,10 +4228,6 @@ msgstr ""
msgid "Each part must already exist in the database"
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:27
-msgid "Upload File"
-msgstr ""
-
#: part/templates/part/bom_validate.html:6
#, python-format
msgid "Confirm that the Bill of Materials (BOM) is valid for:
%(part)s"
@@ -4023,7 +4249,7 @@ msgstr ""
msgid "All parts"
msgstr ""
-#: part/templates/part/category.html:29 part/views.py:2282
+#: part/templates/part/category.html:29 part/views.py:2290
msgid "Create new part category"
msgstr ""
@@ -4091,7 +4317,7 @@ msgstr ""
msgid "Create new Part Category"
msgstr ""
-#: part/templates/part/category.html:228 stock/views.py:1359
+#: part/templates/part/category.html:228 stock/views.py:1391
msgid "Create new Stock Location"
msgstr ""
@@ -4282,15 +4508,11 @@ msgstr ""
msgid "Sales Price Information"
msgstr ""
-#: part/templates/part/navbar.html:95
-msgid "Sale Price"
-msgstr ""
-
#: part/templates/part/navbar.html:106 part/templates/part/part_tests.html:10
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/navbar.html:109 stock/templates/stock/item_base.html:398
+#: part/templates/part/navbar.html:109 stock/templates/stock/item_base.html:404
msgid "Tests"
msgstr ""
@@ -4315,7 +4537,7 @@ msgstr ""
#: part/templates/part/params.html:28
#: report/templates/report/inventree_test_report_base.html:90
-#: stock/models.py:1655 templates/InvenTree/settings/header.html:8
+#: stock/models.py:1754 templates/InvenTree/settings/header.html:8
#: templates/js/stock.js:124
msgid "Value"
msgstr ""
@@ -4351,19 +4573,19 @@ msgid "Star this part"
msgstr ""
#: part/templates/part/part_base.html:47
-#: stock/templates/stock/item_base.html:131
+#: stock/templates/stock/item_base.html:137
#: stock/templates/stock/location.html:51
msgid "Barcode actions"
msgstr ""
#: part/templates/part/part_base.html:49
-#: stock/templates/stock/item_base.html:133
+#: stock/templates/stock/item_base.html:139
#: stock/templates/stock/location.html:53 templates/qr_button.html:1
msgid "Show QR Code"
msgstr ""
#: part/templates/part/part_base.html:50
-#: stock/templates/stock/item_base.html:149
+#: stock/templates/stock/item_base.html:155
#: stock/templates/stock/location.html:54
msgid "Print Label"
msgstr ""
@@ -4392,7 +4614,7 @@ msgstr ""
msgid "Delete part"
msgstr ""
-#: part/templates/part/part_base.html:123 templates/js/table_filters.js:156
+#: part/templates/part/part_base.html:123 templates/js/table_filters.js:157
msgid "In Stock"
msgstr ""
@@ -4420,42 +4642,39 @@ msgstr ""
msgid "Calculate"
msgstr ""
-#: part/templates/part/part_pricing.html:8
-#, python-format
-msgid "Pricing information for:
%(part)s."
-msgstr ""
-
-#: part/templates/part/part_pricing.html:23
+#: part/templates/part/part_pricing.html:19
msgid "Supplier Pricing"
msgstr ""
-#: part/templates/part/part_pricing.html:27
-#: part/templates/part/part_pricing.html:53
+#: part/templates/part/part_pricing.html:23
+#: part/templates/part/part_pricing.html:49
+#: part/templates/part/part_pricing.html:81
msgid "Unit Cost"
msgstr ""
-#: part/templates/part/part_pricing.html:33
-#: part/templates/part/part_pricing.html:59
+#: part/templates/part/part_pricing.html:29
+#: part/templates/part/part_pricing.html:55
+#: part/templates/part/part_pricing.html:85
msgid "Total Cost"
msgstr ""
-#: part/templates/part/part_pricing.html:41
+#: part/templates/part/part_pricing.html:37
msgid "No supplier pricing available"
msgstr ""
-#: part/templates/part/part_pricing.html:49
+#: part/templates/part/part_pricing.html:45
msgid "BOM Pricing"
msgstr ""
-#: part/templates/part/part_pricing.html:67
+#: part/templates/part/part_pricing.html:63
msgid "Note: BOM pricing is incomplete for this part"
msgstr ""
-#: part/templates/part/part_pricing.html:74
+#: part/templates/part/part_pricing.html:70
msgid "No BOM pricing available"
msgstr ""
-#: part/templates/part/part_pricing.html:84
+#: part/templates/part/part_pricing.html:94
msgid "No pricing information is available for this part."
msgstr ""
@@ -4564,6 +4783,10 @@ msgstr ""
msgid "New Variant"
msgstr ""
+#: part/templatetags/inventree_extras.py:97
+msgid "Unknown database"
+msgstr ""
+
#: part/views.py:89
msgid "Add Related Part"
msgstr ""
@@ -4713,63 +4936,63 @@ msgstr ""
msgid "Part Pricing"
msgstr ""
-#: part/views.py:2081
+#: part/views.py:2089
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:2091
+#: part/views.py:2099
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:2098
+#: part/views.py:2106
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:2106
+#: part/views.py:2114
msgid "Create Part Parameter"
msgstr ""
-#: part/views.py:2156
+#: part/views.py:2164
msgid "Edit Part Parameter"
msgstr ""
-#: part/views.py:2170
+#: part/views.py:2178
msgid "Delete Part Parameter"
msgstr ""
-#: part/views.py:2230
+#: part/views.py:2238
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:2268
+#: part/views.py:2276
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:2274
+#: part/views.py:2282
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:2326
+#: part/views.py:2334
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:2427
+#: part/views.py:2435
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:2483
+#: part/views.py:2491
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:2502
+#: part/views.py:2510
msgid "Create BOM Item"
msgstr ""
-#: part/views.py:2572
+#: part/views.py:2580
msgid "Edit BOM item"
msgstr ""
-#: part/views.py:2628
+#: part/views.py:2636
msgid "Confim BOM item deletion"
msgstr ""
@@ -4871,17 +5094,17 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:1643
+#: stock/models.py:1742
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:89
-#: stock/models.py:1649
+#: stock/models.py:1748
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:92
-#: templates/js/order.js:195 templates/js/stock.js:986
+#: templates/js/order.js:195 templates/js/stock.js:984
msgid "Date"
msgstr ""
@@ -4893,22 +5116,22 @@ msgstr ""
msgid "Fail"
msgstr ""
-#: stock/api.py:199
+#: stock/api.py:212
#, python-brace-format
msgid "Updated stock for {n} items"
msgstr ""
-#: stock/api.py:268
+#: stock/api.py:281
#, python-brace-format
msgid "Moved {n} parts to {loc}"
msgstr ""
-#: stock/forms.py:114 stock/forms.py:406 stock/models.py:475
-#: stock/templates/stock/item_base.html:365 templates/js/stock.js:656
+#: stock/forms.py:114 stock/forms.py:418 stock/models.py:507
+#: stock/templates/stock/item_base.html:371 templates/js/stock.js:656
msgid "Expiry Date"
msgstr ""
-#: stock/forms.py:115 stock/forms.py:407
+#: stock/forms.py:115 stock/forms.py:419
msgid "Expiration date for this stock item"
msgstr ""
@@ -4936,8 +5159,8 @@ msgstr ""
msgid "Select test report template"
msgstr ""
-#: stock/forms.py:267 templates/js/table_filters.js:70
-#: templates/js/table_filters.js:133
+#: stock/forms.py:267 templates/js/table_filters.js:71
+#: templates/js/table_filters.js:134
msgid "Include sublocations"
msgstr ""
@@ -4993,243 +5216,187 @@ msgstr ""
msgid "Set the destination as the default location for selected parts"
msgstr ""
-#: stock/models.py:54 stock/models.py:513
+#: stock/models.py:54 stock/models.py:545
msgid "Owner"
msgstr ""
-#: stock/models.py:55 stock/models.py:514
+#: stock/models.py:55 stock/models.py:546
msgid "Select Owner"
msgstr ""
-#: stock/models.py:205
-msgid "Created stock item"
-msgstr ""
-
-#: stock/models.py:241
+#: stock/models.py:273
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:277
+#: stock/models.py:309
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:287 stock/models.py:296
+#: stock/models.py:319 stock/models.py:328
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:288
+#: stock/models.py:320
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:310
+#: stock/models.py:342
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:316
+#: stock/models.py:348
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:323
+#: stock/models.py:355
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:365
+#: stock/models.py:397
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:374
+#: stock/models.py:406
msgid "Base part"
msgstr ""
-#: stock/models.py:383
+#: stock/models.py:415
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:388 stock/templates/stock/stock_app_base.html:8
+#: stock/models.py:420 stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:391
+#: stock/models.py:423
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:398
+#: stock/models.py:430
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:403 stock/templates/stock/item_base.html:259
+#: stock/models.py:435 stock/templates/stock/item_base.html:265
msgid "Installed In"
msgstr ""
-#: stock/models.py:406
+#: stock/models.py:438
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:422
+#: stock/models.py:454
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:434
+#: stock/models.py:466
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:438
+#: stock/models.py:470
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:447
+#: stock/models.py:479
msgid "Source Build"
msgstr ""
-#: stock/models.py:449
+#: stock/models.py:481
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:460
+#: stock/models.py:492
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:463
+#: stock/models.py:495
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:469
+#: stock/models.py:501
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:476
+#: stock/models.py:508
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:489
+#: stock/models.py:521
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:489
+#: stock/models.py:521
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:499 stock/templates/stock/item_notes.html:13
+#: stock/models.py:531 stock/templates/stock/item_notes.html:13
#: stock/templates/stock/navbar.html:54
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:509
+#: stock/models.py:541
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:614
-msgid "Assigned to Customer"
-msgstr ""
-
-#: stock/models.py:616
-msgid "Manually assigned to customer"
-msgstr ""
-
-#: stock/models.py:629
-msgid "Returned from customer"
-msgstr ""
-
-#: stock/models.py:631
-msgid "Returned to location"
-msgstr ""
-
-#: stock/models.py:792
-msgid "Installed into stock item"
-msgstr ""
-
-#: stock/models.py:800
-msgid "Installed stock item"
-msgstr ""
-
-#: stock/models.py:824
-msgid "Uninstalled stock item"
-msgstr ""
-
-#: stock/models.py:843
-msgid "Uninstalled into location"
-msgstr ""
-
-#: stock/models.py:944
+#: stock/models.py:1009
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:950
+#: stock/models.py:1015
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:956
+#: stock/models.py:1021
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:959
+#: stock/models.py:1024
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:962
+#: stock/models.py:1027
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:994
-msgid "Add serial number"
-msgstr ""
-
-#: stock/models.py:997
+#: stock/models.py:1034
#, python-brace-format
-msgid "Serialized {n} items"
+msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1075
-msgid "Split from existing stock"
-msgstr ""
-
-#: stock/models.py:1113
+#: stock/models.py:1192
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1556
-msgid "Title"
-msgstr ""
-
-#: stock/models.py:1556
-msgid "Tracking entry title"
-msgstr ""
-
-#: stock/models.py:1558
+#: stock/models.py:1666
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1560
-msgid "Link to external page for further information"
-msgstr ""
-
-#: stock/models.py:1620
+#: stock/models.py:1719
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1626
+#: stock/models.py:1725
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1644
+#: stock/models.py:1743
msgid "Test name"
msgstr ""
-#: stock/models.py:1650 templates/js/table_filters.js:212
+#: stock/models.py:1749 templates/js/table_filters.js:213
msgid "Test result"
msgstr ""
-#: stock/models.py:1656
+#: stock/models.py:1755
msgid "Test output value"
msgstr ""
-#: stock/models.py:1663
+#: stock/models.py:1762
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1669
+#: stock/models.py:1768
msgid "Test notes"
msgstr ""
@@ -5284,134 +5451,134 @@ msgid "This stock item will be automatically deleted when all stock is depleted.
msgstr ""
#: stock/templates/stock/item_base.html:95
-#: stock/templates/stock/item_base.html:369 templates/js/table_filters.js:145
+#: stock/templates/stock/item_base.html:375 templates/js/table_filters.js:146
msgid "Expired"
msgstr ""
-#: stock/templates/stock/item_base.html:99
-#: stock/templates/stock/item_base.html:371 templates/js/table_filters.js:150
+#: stock/templates/stock/item_base.html:105
+#: stock/templates/stock/item_base.html:377 templates/js/table_filters.js:151
msgid "Stale"
msgstr ""
-#: stock/templates/stock/item_base.html:136 templates/js/barcode.js:309
+#: stock/templates/stock/item_base.html:142 templates/js/barcode.js:309
#: templates/js/barcode.js:314
msgid "Unlink Barcode"
msgstr ""
-#: stock/templates/stock/item_base.html:138
+#: stock/templates/stock/item_base.html:144
msgid "Link Barcode"
msgstr ""
-#: stock/templates/stock/item_base.html:140 templates/stock_table.html:31
+#: stock/templates/stock/item_base.html:146 templates/stock_table.html:31
msgid "Scan to Location"
msgstr ""
-#: stock/templates/stock/item_base.html:147
+#: stock/templates/stock/item_base.html:153
msgid "Printing actions"
msgstr ""
-#: stock/templates/stock/item_base.html:151
+#: stock/templates/stock/item_base.html:157
#: stock/templates/stock/item_tests.html:27
msgid "Test Report"
msgstr ""
-#: stock/templates/stock/item_base.html:160
+#: stock/templates/stock/item_base.html:166
msgid "Stock adjustment actions"
msgstr ""
-#: stock/templates/stock/item_base.html:164
+#: stock/templates/stock/item_base.html:170
#: stock/templates/stock/location.html:65 templates/stock_table.html:57
msgid "Count stock"
msgstr ""
-#: stock/templates/stock/item_base.html:167 templates/stock_table.html:55
+#: stock/templates/stock/item_base.html:173 templates/stock_table.html:55
msgid "Add stock"
msgstr ""
-#: stock/templates/stock/item_base.html:170 templates/stock_table.html:56
+#: stock/templates/stock/item_base.html:176 templates/stock_table.html:56
msgid "Remove stock"
msgstr ""
-#: stock/templates/stock/item_base.html:173
+#: stock/templates/stock/item_base.html:179
msgid "Serialize stock"
msgstr ""
-#: stock/templates/stock/item_base.html:177
+#: stock/templates/stock/item_base.html:183
msgid "Transfer stock"
msgstr ""
-#: stock/templates/stock/item_base.html:180
+#: stock/templates/stock/item_base.html:186
msgid "Assign to customer"
msgstr ""
-#: stock/templates/stock/item_base.html:183
+#: stock/templates/stock/item_base.html:189
msgid "Return to stock"
msgstr ""
-#: stock/templates/stock/item_base.html:187 templates/js/stock.js:1299
+#: stock/templates/stock/item_base.html:193 templates/js/stock.js:1421
msgid "Uninstall stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:187
+#: stock/templates/stock/item_base.html:193
msgid "Uninstall"
msgstr ""
-#: stock/templates/stock/item_base.html:196
+#: stock/templates/stock/item_base.html:202
#: stock/templates/stock/location.html:62
msgid "Stock actions"
msgstr ""
-#: stock/templates/stock/item_base.html:199
+#: stock/templates/stock/item_base.html:205
msgid "Convert to variant"
msgstr ""
-#: stock/templates/stock/item_base.html:202
+#: stock/templates/stock/item_base.html:208
msgid "Duplicate stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:204
+#: stock/templates/stock/item_base.html:210
msgid "Edit stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:207
+#: stock/templates/stock/item_base.html:213
msgid "Delete stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:219
+#: stock/templates/stock/item_base.html:225
msgid "Stock Item Details"
msgstr ""
-#: stock/templates/stock/item_base.html:278 templates/js/build.js:498
+#: stock/templates/stock/item_base.html:284 templates/js/build.js:498
msgid "No location set"
msgstr ""
-#: stock/templates/stock/item_base.html:285
+#: stock/templates/stock/item_base.html:291
msgid "Barcode Identifier"
msgstr ""
-#: stock/templates/stock/item_base.html:327
+#: stock/templates/stock/item_base.html:333
msgid "Parent Item"
msgstr ""
-#: stock/templates/stock/item_base.html:369
+#: stock/templates/stock/item_base.html:375
#, python-format
msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:371
+#: stock/templates/stock/item_base.html:377
#, python-format
msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:378 templates/js/stock.js:662
+#: stock/templates/stock/item_base.html:384 templates/js/stock.js:662
msgid "Last Updated"
msgstr ""
-#: stock/templates/stock/item_base.html:383
+#: stock/templates/stock/item_base.html:389
msgid "Last Stocktake"
msgstr ""
-#: stock/templates/stock/item_base.html:387
+#: stock/templates/stock/item_base.html:393
msgid "No stocktake performed"
msgstr ""
@@ -5522,7 +5689,7 @@ msgid "Stock Details"
msgstr ""
#: stock/templates/stock/location.html:117 templates/InvenTree/search.html:279
-#: templates/stats.html:76 users/models.py:41
+#: templates/stats.html:97 users/models.py:41
msgid "Stock Locations"
msgstr ""
@@ -5562,7 +5729,7 @@ msgstr ""
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:1332
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:1364
msgid "Convert Stock Item"
msgstr ""
@@ -5595,8 +5762,8 @@ msgstr ""
msgid "Edit Stock Location"
msgstr ""
-#: stock/views.py:230 stock/views.py:1322 stock/views.py:1433
-#: stock/views.py:1798
+#: stock/views.py:230 stock/views.py:1343 stock/views.py:1465
+#: stock/views.py:1830
msgid "Owner is required (ownership control is enabled)"
msgstr ""
@@ -5762,43 +5929,47 @@ msgstr ""
msgid "Deleted {n} stock items"
msgstr ""
-#: stock/views.py:1224
+#: stock/views.py:1222
+msgid "Edit Stock Item Status"
+msgstr ""
+
+#: stock/views.py:1245
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:1450
+#: stock/views.py:1482
msgid "Serialize Stock"
msgstr ""
-#: stock/views.py:1543 templates/js/build.js:244
+#: stock/views.py:1575 templates/js/build.js:244
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1685
+#: stock/views.py:1717
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1767
+#: stock/views.py:1799
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1867
+#: stock/views.py:1899
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:1880
+#: stock/views.py:1912
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1891
+#: stock/views.py:1923
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1898
+#: stock/views.py:1930
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1907
+#: stock/views.py:1939
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -5896,8 +6067,7 @@ msgstr ""
#: templates/InvenTree/settings/appearance.html:29
#, python-format
-msgid ""
-"\n"
+msgid "\n"
" The CSS sheet \"%(invalid_color_theme)s.css\" for the currently selected color theme was not found.
\n"
" Please select another color theme :)\n"
" "
@@ -6100,9 +6270,17 @@ msgstr ""
msgid "Submit Bug Report"
msgstr ""
-#: templates/about.html:82 templates/js/modals.js:550
-#: templates/js/modals.js:809 templates/modals.html:28 templates/modals.html:52
-#: templates/modals.html:93
+#: templates/about.html:80 templates/clip.html:4
+msgid "copy to clipboard"
+msgstr ""
+
+#: templates/about.html:80
+msgid "copy version information"
+msgstr ""
+
+#: templates/about.html:90 templates/js/modals.js:568
+#: templates/js/modals.js:846 templates/modals.html:29 templates/modals.html:54
+#: templates/modals.html:97
msgid "Close"
msgstr ""
@@ -6110,10 +6288,6 @@ msgstr ""
msgid "Add Attachment"
msgstr ""
-#: templates/attachment_table.html:15
-msgid "File"
-msgstr ""
-
#: templates/attachment_table.html:17
msgid "Uploaded"
msgstr ""
@@ -6166,7 +6340,7 @@ msgstr ""
msgid "Unknown response from server"
msgstr ""
-#: templates/js/barcode.js:119 templates/js/modals.js:857
+#: templates/js/barcode.js:119 templates/js/modals.js:901
msgid "Invalid server response"
msgstr ""
@@ -6311,7 +6485,7 @@ msgstr ""
#: templates/js/build.js:708 templates/js/part.js:324 templates/js/part.js:546
#: templates/js/stock.js:511 templates/js/stock.js:938
-#: templates/js/stock.js:1331
+#: templates/js/stock.js:1453
msgid "Select"
msgstr ""
@@ -6409,96 +6583,96 @@ msgstr ""
msgid "Select Label Template"
msgstr ""
-#: templates/js/modals.js:256
+#: templates/js/modals.js:265
msgid "Waiting for server..."
msgstr ""
-#: templates/js/modals.js:406
+#: templates/js/modals.js:424
msgid "Show Error Information"
msgstr ""
-#: templates/js/modals.js:473 templates/modals.html:73
+#: templates/js/modals.js:491 templates/modals.html:76
msgid "Accept"
msgstr ""
-#: templates/js/modals.js:474 templates/modals.html:72
+#: templates/js/modals.js:492 templates/modals.html:75
msgid "Cancel"
msgstr ""
-#: templates/js/modals.js:538
+#: templates/js/modals.js:556
msgid "Loading Data"
msgstr ""
-#: templates/js/modals.js:549 templates/js/modals.js:808
-#: templates/modals.html:29 templates/modals.html:53
+#: templates/js/modals.js:567 templates/js/modals.js:845
+#: templates/modals.html:30 templates/modals.html:55
msgid "Submit"
msgstr ""
-#: templates/js/modals.js:760
+#: templates/js/modals.js:797
msgid "Invalid response from server"
msgstr ""
-#: templates/js/modals.js:760
+#: templates/js/modals.js:797
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/modals.js:773
+#: templates/js/modals.js:810
msgid "Error posting form data"
msgstr ""
-#: templates/js/modals.js:857
+#: templates/js/modals.js:901
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/modals.js:867
+#: templates/js/modals.js:911
msgid "No Response"
msgstr ""
-#: templates/js/modals.js:868
+#: templates/js/modals.js:912
msgid "No response from the InvenTree server"
msgstr ""
-#: templates/js/modals.js:872
+#: templates/js/modals.js:916
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/modals.js:873
+#: templates/js/modals.js:917
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/modals.js:877
+#: templates/js/modals.js:921
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/modals.js:878
+#: templates/js/modals.js:922
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/modals.js:882
+#: templates/js/modals.js:926
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/modals.js:883
+#: templates/js/modals.js:927
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/modals.js:887
+#: templates/js/modals.js:931
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/modals.js:888
+#: templates/js/modals.js:932
msgid "The requested resource could not be located on the server"
msgstr ""
-#: templates/js/modals.js:892
+#: templates/js/modals.js:936
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/modals.js:893
+#: templates/js/modals.js:937
msgid "Connection timeout while requesting data from server"
msgstr ""
-#: templates/js/modals.js:896
+#: templates/js/modals.js:940
msgid "Error requesting form data"
msgstr ""
@@ -6542,7 +6716,7 @@ msgstr ""
msgid "No category"
msgstr ""
-#: templates/js/part.js:409 templates/js/table_filters.js:318
+#: templates/js/part.js:409 templates/js/table_filters.js:319
msgid "Low stock"
msgstr ""
@@ -6740,7 +6914,7 @@ msgstr ""
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/stock.js:620 templates/js/table_filters.js:138
+#: templates/js/stock.js:620 templates/js/table_filters.js:139
msgid "Depleted"
msgstr ""
@@ -6764,189 +6938,213 @@ msgstr ""
msgid "Status code must be selected"
msgstr ""
-#: templates/js/stock.js:1050
+#: templates/js/stock.js:994
+msgid "Invalid date"
+msgstr ""
+
+#: templates/js/stock.js:1036
+msgid "Location no longer exists"
+msgstr ""
+
+#: templates/js/stock.js:1055
+msgid "Purchase order no longer exists"
+msgstr ""
+
+#: templates/js/stock.js:1074
+msgid "Customer no longer exists"
+msgstr ""
+
+#: templates/js/stock.js:1092
+msgid "Stock item no longer exists"
+msgstr ""
+
+#: templates/js/stock.js:1115
+msgid "Added"
+msgstr ""
+
+#: templates/js/stock.js:1123
+msgid "Removed"
+msgstr ""
+
+#: templates/js/stock.js:1155
msgid "No user information"
msgstr ""
-#: templates/js/stock.js:1060
+#: templates/js/stock.js:1167
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/stock.js:1061
+#: templates/js/stock.js:1168
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/stock.js:1170
+#: templates/js/stock.js:1292
msgid "Create New Location"
msgstr ""
-#: templates/js/stock.js:1269
+#: templates/js/stock.js:1391
msgid "Serial"
msgstr ""
-#: templates/js/stock.js:1362 templates/js/table_filters.js:171
+#: templates/js/stock.js:1484 templates/js/table_filters.js:172
msgid "Installed"
msgstr ""
-#: templates/js/stock.js:1387
+#: templates/js/stock.js:1509
msgid "Install item"
msgstr ""
-#: templates/js/table_filters.js:42
+#: templates/js/table_filters.js:43
msgid "Trackable Part"
msgstr ""
-#: templates/js/table_filters.js:46
+#: templates/js/table_filters.js:47
msgid "Validated"
msgstr ""
-#: templates/js/table_filters.js:71
+#: templates/js/table_filters.js:72
msgid "Include locations"
msgstr ""
-#: templates/js/table_filters.js:81 templates/js/table_filters.js:82
-#: templates/js/table_filters.js:295
+#: templates/js/table_filters.js:82 templates/js/table_filters.js:83
+#: templates/js/table_filters.js:296
msgid "Include subcategories"
msgstr ""
-#: templates/js/table_filters.js:92 templates/js/table_filters.js:181
+#: templates/js/table_filters.js:93 templates/js/table_filters.js:182
msgid "Is Serialized"
msgstr ""
-#: templates/js/table_filters.js:95 templates/js/table_filters.js:188
+#: templates/js/table_filters.js:96 templates/js/table_filters.js:189
msgid "Serial number GTE"
msgstr ""
-#: templates/js/table_filters.js:96 templates/js/table_filters.js:189
+#: templates/js/table_filters.js:97 templates/js/table_filters.js:190
msgid "Serial number greater than or equal to"
msgstr ""
-#: templates/js/table_filters.js:99 templates/js/table_filters.js:192
+#: templates/js/table_filters.js:100 templates/js/table_filters.js:193
msgid "Serial number LTE"
msgstr ""
-#: templates/js/table_filters.js:100 templates/js/table_filters.js:193
+#: templates/js/table_filters.js:101 templates/js/table_filters.js:194
msgid "Serial number less than or equal to"
msgstr ""
-#: templates/js/table_filters.js:103 templates/js/table_filters.js:104
-#: templates/js/table_filters.js:184 templates/js/table_filters.js:185
+#: templates/js/table_filters.js:104 templates/js/table_filters.js:105
+#: templates/js/table_filters.js:185 templates/js/table_filters.js:186
msgid "Serial number"
msgstr ""
-#: templates/js/table_filters.js:108 templates/js/table_filters.js:202
+#: templates/js/table_filters.js:109 templates/js/table_filters.js:203
msgid "Batch code"
msgstr ""
-#: templates/js/table_filters.js:118 templates/js/table_filters.js:285
+#: templates/js/table_filters.js:119 templates/js/table_filters.js:286
msgid "Active parts"
msgstr ""
-#: templates/js/table_filters.js:119
+#: templates/js/table_filters.js:120
msgid "Show stock for active parts"
msgstr ""
-#: templates/js/table_filters.js:124
+#: templates/js/table_filters.js:125
msgid "Part is an assembly"
msgstr ""
-#: templates/js/table_filters.js:128
+#: templates/js/table_filters.js:129
msgid "Is allocated"
msgstr ""
-#: templates/js/table_filters.js:129
+#: templates/js/table_filters.js:130
msgid "Item has been allocated"
msgstr ""
-#: templates/js/table_filters.js:134
+#: templates/js/table_filters.js:135
msgid "Include stock in sublocations"
msgstr ""
-#: templates/js/table_filters.js:139
+#: templates/js/table_filters.js:140
msgid "Show stock items which are depleted"
msgstr ""
-#: templates/js/table_filters.js:146
+#: templates/js/table_filters.js:147
msgid "Show stock items which have expired"
msgstr ""
-#: templates/js/table_filters.js:151
+#: templates/js/table_filters.js:152
msgid "Show stock which is close to expiring"
msgstr ""
-#: templates/js/table_filters.js:157
+#: templates/js/table_filters.js:158
msgid "Show items which are in stock"
msgstr ""
-#: templates/js/table_filters.js:161
+#: templates/js/table_filters.js:162
msgid "In Production"
msgstr ""
-#: templates/js/table_filters.js:162
+#: templates/js/table_filters.js:163
msgid "Show items which are in production"
msgstr ""
-#: templates/js/table_filters.js:166
+#: templates/js/table_filters.js:167
msgid "Include Variants"
msgstr ""
-#: templates/js/table_filters.js:167
+#: templates/js/table_filters.js:168
msgid "Include stock items for variant parts"
msgstr ""
-#: templates/js/table_filters.js:172
+#: templates/js/table_filters.js:173
msgid "Show stock items which are installed in another item"
msgstr ""
-#: templates/js/table_filters.js:176
-msgid "Sent to customer"
-msgstr ""
-
-#: templates/js/table_filters.js:177
+#: templates/js/table_filters.js:178
msgid "Show items which have been assigned to a customer"
msgstr ""
-#: templates/js/table_filters.js:197 templates/js/table_filters.js:198
+#: templates/js/table_filters.js:198 templates/js/table_filters.js:199
msgid "Stock status"
msgstr ""
-#: templates/js/table_filters.js:231
+#: templates/js/table_filters.js:232
msgid "Build status"
msgstr ""
-#: templates/js/table_filters.js:250 templates/js/table_filters.js:267
+#: templates/js/table_filters.js:251 templates/js/table_filters.js:268
msgid "Order status"
msgstr ""
-#: templates/js/table_filters.js:255 templates/js/table_filters.js:272
+#: templates/js/table_filters.js:256 templates/js/table_filters.js:273
msgid "Outstanding"
msgstr ""
-#: templates/js/table_filters.js:296
+#: templates/js/table_filters.js:297
msgid "Include parts in subcategories"
msgstr ""
-#: templates/js/table_filters.js:300
+#: templates/js/table_filters.js:301
msgid "Has IPN"
msgstr ""
-#: templates/js/table_filters.js:301
+#: templates/js/table_filters.js:302
msgid "Part has internal part number"
msgstr ""
-#: templates/js/table_filters.js:306
+#: templates/js/table_filters.js:307
msgid "Show active parts"
msgstr ""
-#: templates/js/table_filters.js:314
+#: templates/js/table_filters.js:315
msgid "Stock available"
msgstr ""
-#: templates/js/table_filters.js:330
+#: templates/js/table_filters.js:331
msgid "Starred"
msgstr ""
-#: templates/js/table_filters.js:342
+#: templates/js/table_filters.js:343
msgid "Purchasable"
msgstr ""
@@ -7003,7 +7201,7 @@ msgstr ""
msgid "All"
msgstr ""
-#: templates/modals.html:21 templates/modals.html:46
+#: templates/modals.html:21 templates/modals.html:47
msgid "Form errors exist"
msgstr ""
@@ -7115,31 +7313,47 @@ msgstr ""
msgid "Instance Name"
msgstr ""
-#: templates/stats.html:19
-msgid "Server status"
+#: templates/stats.html:18
+msgid "Database"
msgstr ""
-#: templates/stats.html:22
-msgid "Healthy"
+#: templates/stats.html:26
+msgid "Server is running in debug mode"
msgstr ""
-#: templates/stats.html:24
-msgid "Issues detected"
-msgstr ""
-
-#: templates/stats.html:31
-msgid "Background Worker"
+#: templates/stats.html:33
+msgid "Docker Mode"
msgstr ""
#: templates/stats.html:34
-msgid "Background worker not running"
+msgid "Server is deployed using docker"
msgstr ""
-#: templates/stats.html:42
-msgid "Email Settings"
+#: templates/stats.html:40
+msgid "Server status"
+msgstr ""
+
+#: templates/stats.html:43
+msgid "Healthy"
msgstr ""
#: templates/stats.html:45
+msgid "Issues detected"
+msgstr ""
+
+#: templates/stats.html:52
+msgid "Background Worker"
+msgstr ""
+
+#: templates/stats.html:55
+msgid "Background worker not running"
+msgstr ""
+
+#: templates/stats.html:63
+msgid "Email Settings"
+msgstr ""
+
+#: templates/stats.html:66
msgid "Email settings not configured"
msgstr ""
@@ -7258,3 +7472,4 @@ msgstr ""
#: users/models.py:187
msgid "Permission to delete items"
msgstr ""
+
diff --git a/InvenTree/locale/tr/LC_MESSAGES/django.po b/InvenTree/locale/tr/LC_MESSAGES/django.po
index db257af1fe..9d3d99e1c6 100644
--- a/InvenTree/locale/tr/LC_MESSAGES/django.po
+++ b/InvenTree/locale/tr/LC_MESSAGES/django.po
@@ -1,152 +1,151 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR , YEAR.
-#
-#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
+"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-05-05 17:33+1000\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME \n"
-"Language-Team: LANGUAGE \n"
-"Language: \n"
+"POT-Creation-Date: 2021-05-17 10:46+0000\n"
+"PO-Revision-Date: 2021-05-17 10:47\n"
+"Last-Translator: \n"
+"Language-Team: Turkish\n"
+"Language: tr_TR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Crowdin-Project: inventree\n"
+"X-Crowdin-Project-ID: 452300\n"
+"X-Crowdin-Language: tr\n"
+"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
+"X-Crowdin-File-ID: 138\n"
#: InvenTree/api.py:64
msgid "API endpoint not found"
-msgstr ""
+msgstr "API uçnoktası bulunmadı"
#: InvenTree/api.py:110
msgid "No action specified"
-msgstr ""
+msgstr "Hiçbir eylem belirtilmedi"
#: InvenTree/api.py:124
msgid "No matching action found"
-msgstr ""
+msgstr "Eşleşen eylem bulunamadı"
#: InvenTree/fields.py:44
msgid "Enter date"
-msgstr ""
+msgstr "Tarih giriniz"
#: InvenTree/forms.py:110 build/forms.py:102 build/forms.py:123
#: build/forms.py:145 build/forms.py:169 build/forms.py:185 build/forms.py:227
#: order/forms.py:27 order/forms.py:38 order/forms.py:49 order/forms.py:60
#: order/forms.py:71 part/forms.py:134
msgid "Confirm"
-msgstr ""
+msgstr "Onay"
#: InvenTree/forms.py:126
msgid "Confirm delete"
-msgstr ""
+msgstr "Silmeyi Onayla"
#: InvenTree/forms.py:127
msgid "Confirm item deletion"
-msgstr ""
+msgstr "Silmeyi onayla"
#: InvenTree/forms.py:159 templates/registration/login.html:77
msgid "Enter password"
-msgstr ""
+msgstr "Şifrenizi girin"
#: InvenTree/forms.py:160
msgid "Enter new password"
-msgstr ""
+msgstr "Lütfen Yeni Parolayı Girin"
#: InvenTree/forms.py:167
msgid "Confirm password"
-msgstr ""
+msgstr "Parolayı doğrulayın"
#: InvenTree/forms.py:168
msgid "Confirm new password"
-msgstr ""
+msgstr "Yeni parolayı doğrulayın"
#: InvenTree/forms.py:203
msgid "Apply Theme"
-msgstr ""
+msgstr "Temayı Uygula"
#: InvenTree/forms.py:233
msgid "Select Category"
-msgstr ""
+msgstr "Kategori Seçin"
#: InvenTree/helpers.py:377
#, python-brace-format
msgid "Duplicate serial: {n}"
-msgstr ""
+msgstr "Tekrarlanan seri {n}"
-#: InvenTree/helpers.py:384 order/models.py:245 order/models.py:353
-#: stock/views.py:1763
+#: InvenTree/helpers.py:384 order/models.py:245 order/models.py:355
+#: stock/views.py:1795
msgid "Invalid quantity provided"
-msgstr ""
+msgstr "Geçersiz veri sağlandı"
#: InvenTree/helpers.py:387
msgid "Empty serial number string"
-msgstr ""
+msgstr "Boş seri numarası dizesi"
#: InvenTree/helpers.py:409 InvenTree/helpers.py:412 InvenTree/helpers.py:415
#: InvenTree/helpers.py:440
#, python-brace-format
msgid "Invalid group: {g}"
-msgstr ""
+msgstr "Geçersiz grup: {g}"
#: InvenTree/helpers.py:445
#, python-brace-format
msgid "Duplicate serial: {g}"
-msgstr ""
+msgstr "Tekrarlanan seri {g}"
#: InvenTree/helpers.py:453
msgid "No serial numbers found"
-msgstr ""
+msgstr "Seri numarası bulunamadı"
#: InvenTree/helpers.py:457
#, python-brace-format
msgid "Number of unique serial number ({s}) must match quantity ({q})"
-msgstr ""
+msgstr "Benzersiz serinin numaraları ({s}) miktarla eşleşmeli ({q})"
-#: InvenTree/models.py:59 stock/models.py:1662
+#: InvenTree/models.py:59 stock/models.py:1761
msgid "Attachment"
-msgstr ""
+msgstr "Ek"
#: InvenTree/models.py:60
msgid "Select file to attach"
-msgstr ""
+msgstr "Eklenecek dosyayı seç"
#: InvenTree/models.py:62 templates/attachment_table.html:16
msgid "Comment"
-msgstr ""
+msgstr "Yorum"
#: InvenTree/models.py:62
msgid "File comment"
-msgstr ""
+msgstr "Yorum"
-#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:1908
+#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:1946
#: report/templates/report/inventree_test_report_base.html:91
-#: templates/js/stock.js:1041
+#: templates/js/stock.js:1146
msgid "User"
-msgstr ""
+msgstr "Kullanıcı"
#: InvenTree/models.py:72
msgid "upload date"
-msgstr ""
+msgstr "Yükleme tarihi"
-#: InvenTree/models.py:107 InvenTree/models.py:108 label/models.py:101
-#: part/models.py:686 part/models.py:2049 part/templates/part/params.html:27
+#: InvenTree/models.py:107 InvenTree/models.py:108 label/models.py:102
+#: part/models.py:686 part/models.py:2087 part/templates/part/params.html:27
#: report/models.py:179 templates/InvenTree/search.html:137
#: templates/InvenTree/search.html:289 templates/js/part.js:110
#: templates/js/part.js:553 templates/js/stock.js:944
msgid "Name"
-msgstr ""
+msgstr "Adı"
#: InvenTree/models.py:114 build/models.py:134
-#: build/templates/build/detail.html:21 company/models.py:342
-#: company/models.py:494 company/templates/company/detail.html:27
+#: build/templates/build/detail.html:21 company/models.py:339
+#: company/models.py:491 company/templates/company/detail.html:27
#: company/templates/company/manufacturer_part_base.html:72
#: company/templates/company/supplier_part_base.html:71
-#: company/templates/company/supplier_part_detail.html:31 label/models.py:108
+#: company/templates/company/supplier_part_detail.html:31 label/models.py:109
#: order/models.py:101 order/templates/order/purchase_order_detail.html:143
#: part/models.py:710 part/templates/part/detail.html:54
#: part/templates/part/set_category.html:14 report/models.py:192
@@ -160,123 +159,200 @@ msgstr ""
#: templates/js/order.js:280 templates/js/part.js:169 templates/js/part.js:252
#: templates/js/part.js:371 templates/js/part.js:565 templates/js/part.js:643
#: templates/js/stock.js:554 templates/js/stock.js:956
-#: templates/js/stock.js:1015
+#: templates/js/stock.js:1001
msgid "Description"
-msgstr ""
+msgstr "Açıklama"
#: InvenTree/models.py:115
msgid "Description (optional)"
-msgstr ""
+msgstr "Açıklama(opsiyonel)"
#: InvenTree/models.py:123
msgid "parent"
-msgstr ""
+msgstr "ebeveyn"
-#: InvenTree/settings.py:491
+#: InvenTree/settings.py:501
msgid "English"
-msgstr ""
+msgstr "İngilizce"
-#: InvenTree/settings.py:492
+#: InvenTree/settings.py:502
msgid "French"
-msgstr ""
+msgstr "Fransızca"
-#: InvenTree/settings.py:493
+#: InvenTree/settings.py:503
msgid "German"
-msgstr ""
+msgstr "Almanca"
-#: InvenTree/settings.py:494
+#: InvenTree/settings.py:504
msgid "Polish"
-msgstr ""
+msgstr "Polonyaca"
-#: InvenTree/settings.py:495
+#: InvenTree/settings.py:505
msgid "Turkish"
-msgstr ""
+msgstr "Türkçe"
#: InvenTree/status.py:93
msgid "Background worker check failed"
-msgstr ""
+msgstr "Arka plan çalışanı kontrolü başarısız oldu"
#: InvenTree/status.py:97
msgid "Email backend not configured"
-msgstr ""
+msgstr "E-posta arka ucu yapılandırılmadı"
#: InvenTree/status.py:100
msgid "InvenTree system health checks failed"
-msgstr ""
+msgstr "InvenTree sistem sağlık kontrolü başarısız"
-#: InvenTree/status_codes.py:102 InvenTree/status_codes.py:143
-#: InvenTree/status_codes.py:236
+#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:145
+#: InvenTree/status_codes.py:314
msgid "Pending"
-msgstr ""
+msgstr "Bekliyor"
-#: InvenTree/status_codes.py:103
+#: InvenTree/status_codes.py:105
msgid "Placed"
-msgstr ""
+msgstr "Sipariş verildi"
-#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:239
+#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:317
msgid "Complete"
-msgstr ""
-
-#: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145
-#: InvenTree/status_codes.py:238
-msgid "Cancelled"
-msgstr ""
-
-#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146
-#: InvenTree/status_codes.py:188
-msgid "Lost"
-msgstr ""
+msgstr "Tamamlandı"
#: InvenTree/status_codes.py:107 InvenTree/status_codes.py:147
-#: InvenTree/status_codes.py:190
-msgid "Returned"
-msgstr ""
+#: InvenTree/status_codes.py:316
+msgid "Cancelled"
+msgstr "İptal edildi"
-#: InvenTree/status_codes.py:144
+#: InvenTree/status_codes.py:108 InvenTree/status_codes.py:148
+#: InvenTree/status_codes.py:190
+msgid "Lost"
+msgstr "Kayıp"
+
+#: InvenTree/status_codes.py:109 InvenTree/status_codes.py:149
+#: InvenTree/status_codes.py:192
+msgid "Returned"
+msgstr "İade"
+
+#: InvenTree/status_codes.py:146
#: order/templates/order/sales_order_base.html:124
msgid "Shipped"
-msgstr ""
-
-#: InvenTree/status_codes.py:184
-msgid "OK"
-msgstr ""
-
-#: InvenTree/status_codes.py:185
-msgid "Attention needed"
-msgstr ""
+msgstr "Sevk edildi"
#: InvenTree/status_codes.py:186
-msgid "Damaged"
-msgstr ""
+msgid "OK"
+msgstr "TAMAM"
#: InvenTree/status_codes.py:187
-msgid "Destroyed"
-msgstr ""
+msgid "Attention needed"
+msgstr "Dikkat gerekli"
+
+#: InvenTree/status_codes.py:188
+msgid "Damaged"
+msgstr "Hasarlı"
#: InvenTree/status_codes.py:189
+msgid "Destroyed"
+msgstr "Kullanılamaz durumda"
+
+#: InvenTree/status_codes.py:191
msgid "Rejected"
+msgstr "Reddedildi"
+
+#: InvenTree/status_codes.py:272
+msgid "Legacy stock tracking entry"
msgstr ""
-#: InvenTree/status_codes.py:237
-msgid "Production"
+#: InvenTree/status_codes.py:274
+msgid "Stock item created"
msgstr ""
+#: InvenTree/status_codes.py:276
+msgid "Edited stock item"
+msgstr ""
+
+#: InvenTree/status_codes.py:277
+msgid "Assigned serial number"
+msgstr ""
+
+#: InvenTree/status_codes.py:279
+msgid "Stock counted"
+msgstr ""
+
+#: InvenTree/status_codes.py:280
+msgid "Stock manually added"
+msgstr ""
+
+#: InvenTree/status_codes.py:281
+msgid "Stock manually removed"
+msgstr ""
+
+#: InvenTree/status_codes.py:283
+msgid "Location changed"
+msgstr ""
+
+#: InvenTree/status_codes.py:285
+msgid "Installed into assembly"
+msgstr ""
+
+#: InvenTree/status_codes.py:286
+msgid "Removed from assembly"
+msgstr ""
+
+#: InvenTree/status_codes.py:288
+msgid "Installed component item"
+msgstr ""
+
+#: InvenTree/status_codes.py:289
+msgid "Removed component item"
+msgstr ""
+
+#: InvenTree/status_codes.py:291
+msgid "Split from parent item"
+msgstr ""
+
+#: InvenTree/status_codes.py:292
+msgid "Split child item"
+msgstr ""
+
+#: InvenTree/status_codes.py:294 templates/js/table_filters.js:177
+msgid "Sent to customer"
+msgstr ""
+
+#: InvenTree/status_codes.py:295
+msgid "Returned from customer"
+msgstr ""
+
+#: InvenTree/status_codes.py:297
+msgid "Build order output created"
+msgstr ""
+
+#: InvenTree/status_codes.py:298
+msgid "Build order output completed"
+msgstr ""
+
+#: InvenTree/status_codes.py:300
+msgid "Received against purchase order"
+msgstr ""
+
+#: InvenTree/status_codes.py:315
+msgid "Production"
+msgstr "Üretim"
+
#: InvenTree/validators.py:22
msgid "Not a valid currency code"
-msgstr ""
+msgstr "Geçerli para birimi yok"
#: InvenTree/validators.py:50
msgid "Invalid character in part name"
-msgstr ""
+msgstr "Parça adında geçersiniz karakter bulunuyor"
#: InvenTree/validators.py:63
#, python-brace-format
msgid "IPN must match regex pattern {pat}"
-msgstr ""
+msgstr "IPN regex kalıbıyla eşleşmelidir {pat}"
#: InvenTree/validators.py:77 InvenTree/validators.py:91
#: InvenTree/validators.py:105
-msgid "Reference must match pattern"
+#, python-brace-format
+msgid "Reference must match pattern {pattern}"
msgstr ""
#: InvenTree/validators.py:113
@@ -382,35 +458,35 @@ msgstr ""
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1241
+#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1245
#: build/templates/build/allocation_card.html:23
#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:123
-#: build/templates/build/detail.html:31 common/models.py:703
+#: build/templates/build/detail.html:31 common/models.py:705
#: company/forms.py:176 company/templates/company/supplier_part_pricing.html:77
-#: order/forms.py:188 order/forms.py:205 order/forms.py:239 order/forms.py:261
-#: order/forms.py:278 order/models.py:603 order/models.py:794
+#: order/forms.py:188 order/forms.py:205 order/forms.py:240 order/forms.py:262
+#: order/forms.py:279 order/models.py:614 order/models.py:815
+#: order/templates/order/order_wizard/match_parts.html:29
#: order/templates/order/order_wizard/select_parts.html:32
#: order/templates/order/purchase_order_detail.html:175
#: order/templates/order/sales_order_detail.html:70
#: order/templates/order/sales_order_detail.html:77
-#: order/templates/order/sales_order_detail.html:159
-#: order/templates/order/sales_order_detail.html:224 part/forms.py:342
-#: part/forms.py:371 part/forms.py:387 part/models.py:2178
+#: order/templates/order/sales_order_detail.html:162
+#: order/templates/order/sales_order_detail.html:230 part/forms.py:342
+#: part/forms.py:371 part/forms.py:387 part/models.py:2216
#: part/templates/part/allocation.html:19
#: part/templates/part/allocation.html:53
-#: part/templates/part/part_pricing.html:11
-#: part/templates/part/part_pricing.html:18
+#: part/templates/part/part_pricing.html:13
#: part/templates/part/sale_prices.html:85
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:77
-#: stock/forms.py:175 stock/forms.py:308 stock/models.py:1566
-#: stock/templates/stock/item_base.html:244
+#: stock/forms.py:175 stock/forms.py:308
+#: stock/templates/stock/item_base.html:250
#: stock/templates/stock/stock_adjust.html:18 templates/js/barcode.js:364
#: templates/js/bom.js:205 templates/js/build.js:476 templates/js/build.js:1014
-#: templates/js/stock.js:1033 templates/js/stock.js:1271
+#: templates/js/stock.js:1131 templates/js/stock.js:1393
msgid "Quantity"
msgstr ""
@@ -422,7 +498,7 @@ msgstr ""
msgid "Enter quantity for build output"
msgstr ""
-#: build/forms.py:95 order/forms.py:233 stock/forms.py:118
+#: build/forms.py:95 order/forms.py:234 stock/forms.py:118
msgid "Serial Numbers"
msgstr ""
@@ -452,11 +528,11 @@ msgstr ""
#: build/forms.py:210 build/templates/build/auto_allocate.html:18
#: order/forms.py:82 stock/forms.py:347
-#: stock/templates/stock/item_base.html:274
+#: stock/templates/stock/item_base.html:280
#: stock/templates/stock/stock_adjust.html:17
#: templates/InvenTree/search.html:260 templates/js/barcode.js:363
#: templates/js/barcode.js:531 templates/js/build.js:490
-#: templates/js/stock.js:641
+#: templates/js/stock.js:641 templates/js/stock.js:1023
msgid "Location"
msgstr ""
@@ -465,12 +541,13 @@ msgid "Location of completed parts"
msgstr ""
#: build/forms.py:215 build/templates/build/build_base.html:128
-#: build/templates/build/detail.html:59 order/models.py:455
+#: build/templates/build/detail.html:59 order/models.py:466
#: order/templates/order/receive_parts.html:24
-#: stock/templates/stock/item_base.html:392 templates/InvenTree/search.html:252
+#: stock/templates/stock/item_base.html:398 templates/InvenTree/search.html:252
#: templates/js/barcode.js:119 templates/js/build.js:770
#: templates/js/order.js:187 templates/js/order.js:285
-#: templates/js/stock.js:628 templates/js/stock.js:1279
+#: templates/js/stock.js:628 templates/js/stock.js:1100
+#: templates/js/stock.js:1401
msgid "Status"
msgstr ""
@@ -523,9 +600,9 @@ msgstr ""
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:127 order/models.py:99 order/models.py:605
+#: build/models.py:127 order/models.py:99 order/models.py:616
#: order/templates/order/purchase_order_detail.html:170
-#: order/templates/order/sales_order_detail.html:219 part/models.py:2187
+#: order/templates/order/sales_order_detail.html:225 part/models.py:2225
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92 templates/js/bom.js:197
#: templates/js/build.js:565 templates/js/build.js:1008
@@ -547,16 +624,16 @@ msgstr ""
#: build/models.py:152 build/templates/build/auto_allocate.html:16
#: build/templates/build/build_base.html:118
-#: build/templates/build/detail.html:26 company/models.py:688
-#: order/models.py:647 order/models.py:679
+#: build/templates/build/detail.html:26 company/models.py:622
+#: order/models.py:658 order/models.py:691
#: order/templates/order/order_wizard/select_parts.html:30
#: order/templates/order/purchase_order_detail.html:131
#: order/templates/order/receive_parts.html:19
-#: order/templates/order/sales_order_detail.html:207 part/models.py:321
-#: part/models.py:1876 part/models.py:1888 part/models.py:1906
-#: part/models.py:1981 part/models.py:2077 part/models.py:2162
+#: order/templates/order/sales_order_detail.html:213 part/models.py:321
+#: part/models.py:1914 part/models.py:1926 part/models.py:1944
+#: part/models.py:2019 part/models.py:2115 part/models.py:2200
#: part/templates/part/part_app_base.html:8
-#: part/templates/part/part_pricing.html:14 part/templates/part/related.html:29
+#: part/templates/part/part_pricing.html:9 part/templates/part/related.html:29
#: part/templates/part/set_category.html:13
#: report/templates/report/inventree_build_order_base.html:110
#: report/templates/report/inventree_po_report.html:90
@@ -566,7 +643,7 @@ msgstr ""
#: templates/js/build.js:741 templates/js/build.js:981
#: templates/js/company.js:140 templates/js/company.js:238
#: templates/js/part.js:233 templates/js/part.js:338 templates/js/stock.js:523
-#: templates/js/stock.js:1343
+#: templates/js/stock.js:1465
msgid "Part"
msgstr ""
@@ -622,7 +699,7 @@ msgstr ""
msgid "Build status code"
msgstr ""
-#: build/models.py:212 stock/models.py:432
+#: build/models.py:212 stock/models.py:464
msgid "Batch Code"
msgstr ""
@@ -635,7 +712,7 @@ msgstr ""
msgid "Creation Date"
msgstr ""
-#: build/models.py:223 order/models.py:461
+#: build/models.py:223 order/models.py:472
msgid "Target completion date"
msgstr ""
@@ -673,28 +750,28 @@ msgstr ""
#: company/templates/company/supplier_part_base.html:78
#: company/templates/company/supplier_part_detail.html:28
#: part/templates/part/detail.html:83 part/templates/part/part_base.html:101
-#: stock/models.py:426 stock/templates/stock/item_base.html:334
+#: stock/models.py:458 stock/templates/stock/item_base.html:340
msgid "External Link"
msgstr ""
-#: build/models.py:257 part/models.py:744 stock/models.py:428
+#: build/models.py:257 part/models.py:744 stock/models.py:460
msgid "Link to external URL"
msgstr ""
#: build/models.py:261 build/templates/build/navbar.html:53
-#: company/models.py:135 company/models.py:501
+#: company/models.py:132 company/models.py:498
#: company/templates/company/navbar.html:70
#: company/templates/company/navbar.html:73 order/models.py:123
-#: order/models.py:607 order/templates/order/po_navbar.html:29
+#: order/models.py:618 order/templates/order/po_navbar.html:29
#: order/templates/order/po_navbar.html:32
#: order/templates/order/purchase_order_detail.html:209
-#: order/templates/order/sales_order_detail.html:264
+#: order/templates/order/sales_order_detail.html:278
#: order/templates/order/so_navbar.html:33
#: order/templates/order/so_navbar.html:36 part/models.py:871
#: part/templates/part/navbar.html:128
#: report/templates/report/inventree_build_order_base.html:173
#: stock/forms.py:173 stock/forms.py:317 stock/forms.py:349 stock/forms.py:377
-#: stock/models.py:498 stock/models.py:1558 stock/models.py:1668
+#: stock/models.py:530 stock/models.py:1665 stock/models.py:1767
#: stock/templates/stock/navbar.html:57 templates/js/barcode.js:37
#: templates/js/bom.js:333 templates/js/stock.js:128 templates/js/stock.js:671
msgid "Notes"
@@ -716,75 +793,71 @@ msgstr ""
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:838
-msgid "Completed build output"
-msgstr ""
-
-#: build/models.py:1132
+#: build/models.py:1136
msgid "BuildItem must be unique for build, stock_item and install_into"
msgstr ""
-#: build/models.py:1157
-msgid "Build item must specify a build output, as master part is marked as trackable"
-msgstr ""
-
#: build/models.py:1161
-#, python-brace-format
-msgid "Selected stock item not found in BOM for part '{p}'"
+msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
#: build/models.py:1165
#, python-brace-format
+msgid "Selected stock item not found in BOM for part '{p}'"
+msgstr ""
+
+#: build/models.py:1169
+#, python-brace-format
msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
msgstr ""
-#: build/models.py:1172 order/models.py:768
+#: build/models.py:1176 order/models.py:789
msgid "StockItem is over-allocated"
msgstr ""
-#: build/models.py:1176 order/models.py:771
+#: build/models.py:1180 order/models.py:792
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1180
+#: build/models.py:1184
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1220 stock/templates/stock/item_base.html:306
+#: build/models.py:1224 stock/templates/stock/item_base.html:312
#: templates/InvenTree/search.html:183 templates/js/build.js:714
#: templates/navbar.html:29
msgid "Build"
msgstr ""
-#: build/models.py:1221
+#: build/models.py:1225
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1228 part/templates/part/allocation.html:18
+#: build/models.py:1232 part/templates/part/allocation.html:18
#: part/templates/part/allocation.html:24
#: part/templates/part/allocation.html:31
#: part/templates/part/allocation.html:49
#: stock/templates/stock/item_base.html:8
#: stock/templates/stock/item_base.html:93
-#: stock/templates/stock/item_base.html:328
+#: stock/templates/stock/item_base.html:334
#: stock/templates/stock/stock_adjust.html:16 templates/js/build.js:831
-#: templates/js/stock.js:1004 templates/js/stock.js:1262
+#: templates/js/stock.js:1082 templates/js/stock.js:1384
msgid "Stock Item"
msgstr ""
-#: build/models.py:1229
+#: build/models.py:1233
msgid "Source stock item"
msgstr ""
-#: build/models.py:1242
+#: build/models.py:1246
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1250
+#: build/models.py:1254
msgid "Install into"
msgstr ""
-#: build/models.py:1251
+#: build/models.py:1255
msgid "Destination stock item"
msgstr ""
@@ -818,7 +891,7 @@ msgstr ""
#: build/templates/build/allocate.html:30
#: company/templates/company/detail_manufacturer_part.html:33
-#: company/templates/company/detail_supplier_part.html:32 order/views.py:795
+#: company/templates/company/detail_supplier_part.html:32 order/views.py:986
#: part/templates/part/category.html:127
msgid "Order Parts"
msgstr ""
@@ -838,9 +911,9 @@ msgstr ""
#: build/templates/build/allocation_card.html:21
#: build/templates/build/complete_output.html:46
#: order/templates/order/sales_order_detail.html:75
-#: order/templates/order/sales_order_detail.html:157
+#: order/templates/order/sales_order_detail.html:160
#: report/templates/report/inventree_test_report_base.html:75
-#: stock/models.py:420 stock/templates/stock/item_base.html:238
+#: stock/models.py:452 stock/templates/stock/item_base.html:244
#: templates/js/build.js:474
msgid "Serial Number"
msgstr ""
@@ -903,7 +976,7 @@ msgstr ""
#: order/templates/order/order_base.html:26
#: order/templates/order/sales_order_base.html:35
#: part/templates/part/category.html:18 part/templates/part/part_base.html:29
-#: stock/templates/stock/item_base.html:118
+#: stock/templates/stock/item_base.html:124
#: stock/templates/stock/location.html:31
msgid "Admin view"
msgstr ""
@@ -914,8 +987,8 @@ msgstr ""
#: order/templates/order/order_base.html:86
#: order/templates/order/sales_order_base.html:41
#: order/templates/order/sales_order_base.html:86
-#: templates/js/table_filters.js:240 templates/js/table_filters.js:259
-#: templates/js/table_filters.js:276
+#: templates/js/table_filters.js:241 templates/js/table_filters.js:260
+#: templates/js/table_filters.js:277
msgid "Overdue"
msgstr ""
@@ -961,14 +1034,14 @@ msgid "Progress"
msgstr ""
#: build/templates/build/build_base.html:160
-#: build/templates/build/detail.html:84 order/models.py:677
+#: build/templates/build/detail.html:84 order/models.py:689
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:33
#: order/templates/order/sales_order_ship.html:25
#: part/templates/part/allocation.html:30
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
-#: stock/templates/stock/item_base.html:268 templates/js/order.js:245
+#: stock/templates/stock/item_base.html:274 templates/js/order.js:245
msgid "Sales Order"
msgstr ""
@@ -1118,9 +1191,9 @@ msgid "Destination location not specified"
msgstr ""
#: build/templates/build/detail.html:70
-#: stock/templates/stock/item_base.html:292 templates/js/stock.js:636
-#: templates/js/stock.js:1286 templates/js/table_filters.js:107
-#: templates/js/table_filters.js:201
+#: stock/templates/stock/item_base.html:298 templates/js/stock.js:636
+#: templates/js/stock.js:1408 templates/js/table_filters.js:108
+#: templates/js/table_filters.js:202
msgid "Batch"
msgstr ""
@@ -1174,6 +1247,7 @@ msgstr ""
#: company/templates/company/navbar.html:15
#: order/templates/order/po_navbar.html:14
#: order/templates/order/so_navbar.html:15 part/templates/part/navbar.html:15
+#: templates/js/stock.js:1016
msgid "Details"
msgstr ""
@@ -1208,7 +1282,8 @@ msgstr ""
#: build/templates/build/notes.html:26 company/templates/company/notes.html:24
#: order/templates/order/order_notes.html:27
#: order/templates/order/sales_order_notes.html:29
-#: part/templates/part/notes.html:27 stock/templates/stock/item_base.html:470
+#: part/templates/part/notes.html:27 stock/templates/stock/item_base.html:477
+#: stock/templates/stock/item_base.html:487
#: stock/templates/stock/item_notes.html:26
msgid "Save"
msgstr ""
@@ -1237,7 +1312,7 @@ msgstr ""
msgid "Maximum output quantity is "
msgstr ""
-#: build/views.py:184 stock/models.py:969 stock/views.py:1789
+#: build/views.py:184 stock/views.py:1821
msgid "Serial numbers already exist"
msgstr ""
@@ -1354,372 +1429,405 @@ msgstr ""
msgid "Add Build Order Attachment"
msgstr ""
-#: build/views.py:1083 order/views.py:110 order/views.py:162 part/views.py:172
+#: build/views.py:1083 order/views.py:115 order/views.py:167 part/views.py:172
#: stock/views.py:277
msgid "Added attachment"
msgstr ""
-#: build/views.py:1119 order/views.py:189 order/views.py:210
+#: build/views.py:1119 order/views.py:194 order/views.py:215
msgid "Edit Attachment"
msgstr ""
-#: build/views.py:1129 order/views.py:193 order/views.py:214
+#: build/views.py:1129 order/views.py:198 order/views.py:219
msgid "Attachment updated"
msgstr ""
-#: build/views.py:1139 order/views.py:229 order/views.py:243
+#: build/views.py:1139 order/views.py:234 order/views.py:248
msgid "Delete Attachment"
msgstr ""
-#: build/views.py:1144 order/views.py:235 order/views.py:249 stock/views.py:333
+#: build/views.py:1144 order/views.py:240 order/views.py:254 stock/views.py:333
msgid "Deleted attachment"
msgstr ""
-#: common/models.py:56
-msgid "InvenTree Instance Name"
+#: common/files.py:64
+msgid "Unsupported file format: {ext.upper()}"
+msgstr ""
+
+#: common/files.py:69
+msgid "Error reading file (invalid format)"
+msgstr ""
+
+#: common/files.py:71
+msgid "Error reading file (incorrect dimension)"
+msgstr ""
+
+#: common/files.py:73
+msgid "Error reading file (data could be corrupted)"
+msgstr ""
+
+#: common/forms.py:38 templates/attachment_table.html:15
+msgid "File"
+msgstr ""
+
+#: common/forms.py:39
+msgid "Select file to upload"
+msgstr ""
+
+#: common/forms.py:54
+msgid "{name.title()} File"
+msgstr ""
+
+#: common/forms.py:55
+#, python-brace-format
+msgid "Select {name} file to upload"
msgstr ""
#: common/models.py:58
+msgid "InvenTree Instance Name"
+msgstr ""
+
+#: common/models.py:60
msgid "String descriptor for the server instance"
msgstr ""
-#: common/models.py:62
+#: common/models.py:64
msgid "Use instance name"
msgstr ""
-#: common/models.py:63
+#: common/models.py:65
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:69 company/models.py:97 company/models.py:98
+#: common/models.py:71 company/models.py:94 company/models.py:95
msgid "Company name"
msgstr ""
-#: common/models.py:70
+#: common/models.py:72
msgid "Internal company name"
msgstr ""
-#: common/models.py:75
+#: common/models.py:77
msgid "Base URL"
msgstr ""
-#: common/models.py:76
+#: common/models.py:78
msgid "Base URL for server instance"
msgstr ""
-#: common/models.py:82
+#: common/models.py:84
msgid "Default Currency"
msgstr ""
-#: common/models.py:83
+#: common/models.py:85
msgid "Default currency"
msgstr ""
-#: common/models.py:89
+#: common/models.py:91
msgid "Download from URL"
msgstr ""
-#: common/models.py:90
+#: common/models.py:92
msgid "Allow download of remote images and files from external URL"
msgstr ""
-#: common/models.py:96
+#: common/models.py:98
msgid "Barcode Support"
msgstr ""
-#: common/models.py:97
+#: common/models.py:99
msgid "Enable barcode scanner support"
msgstr ""
-#: common/models.py:103
+#: common/models.py:105
msgid "IPN Regex"
msgstr ""
-#: common/models.py:104
+#: common/models.py:106
msgid "Regular expression pattern for matching Part IPN"
msgstr ""
-#: common/models.py:108
+#: common/models.py:110
msgid "Allow Duplicate IPN"
msgstr ""
-#: common/models.py:109
+#: common/models.py:111
msgid "Allow multiple parts to share the same IPN"
msgstr ""
-#: common/models.py:115
+#: common/models.py:117
msgid "Allow Editing IPN"
msgstr ""
-#: common/models.py:116
+#: common/models.py:118
msgid "Allow changing the IPN value while editing a part"
msgstr ""
-#: common/models.py:122
+#: common/models.py:124
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:123
+#: common/models.py:125
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:129
+#: common/models.py:131
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:130
+#: common/models.py:132
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:136
+#: common/models.py:138
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:137
+#: common/models.py:139
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:143
+#: common/models.py:145
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:144
+#: common/models.py:146
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:150
+#: common/models.py:152
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:151
+#: common/models.py:153
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:157 part/models.py:2079 part/templates/part/detail.html:160
-#: report/models.py:185 stock/forms.py:259 templates/js/table_filters.js:24
-#: templates/js/table_filters.js:310
+#: common/models.py:159 part/models.py:2117 part/templates/part/detail.html:160
+#: report/models.py:185 stock/forms.py:259 templates/js/table_filters.js:25
+#: templates/js/table_filters.js:311
msgid "Template"
msgstr ""
-#: common/models.py:158
+#: common/models.py:160
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:164 part/models.py:834 part/templates/part/detail.html:170
-#: templates/js/table_filters.js:123 templates/js/table_filters.js:322
+#: common/models.py:166 part/models.py:834 part/templates/part/detail.html:170
+#: templates/js/table_filters.js:124 templates/js/table_filters.js:323
msgid "Assembly"
msgstr ""
-#: common/models.py:165
+#: common/models.py:167
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:171 part/models.py:840 part/templates/part/detail.html:180
-#: templates/js/table_filters.js:326
+#: common/models.py:173 part/models.py:840 part/templates/part/detail.html:180
+#: templates/js/table_filters.js:327
msgid "Component"
msgstr ""
-#: common/models.py:172
+#: common/models.py:174
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:178 part/models.py:851 part/templates/part/detail.html:200
+#: common/models.py:180 part/models.py:851 part/templates/part/detail.html:200
msgid "Purchaseable"
msgstr ""
-#: common/models.py:179
+#: common/models.py:181
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:185 part/models.py:856 part/templates/part/detail.html:210
-#: templates/js/table_filters.js:334
+#: common/models.py:187 part/models.py:856 part/templates/part/detail.html:210
+#: templates/js/table_filters.js:335
msgid "Salable"
msgstr ""
-#: common/models.py:186
+#: common/models.py:188
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:192 part/models.py:846 part/templates/part/detail.html:190
-#: templates/js/table_filters.js:32 templates/js/table_filters.js:338
+#: common/models.py:194 part/models.py:846 part/templates/part/detail.html:190
+#: templates/js/table_filters.js:33 templates/js/table_filters.js:339
msgid "Trackable"
msgstr ""
-#: common/models.py:193
+#: common/models.py:195
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:199 part/models.py:866 part/templates/part/detail.html:150
-#: templates/js/table_filters.js:28
+#: common/models.py:201 part/models.py:866 part/templates/part/detail.html:150
+#: templates/js/table_filters.js:29
msgid "Virtual"
msgstr ""
-#: common/models.py:200
+#: common/models.py:202
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:206
+#: common/models.py:208
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:207
+#: common/models.py:209
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:213
+#: common/models.py:215 templates/stats.html:25
msgid "Debug Mode"
msgstr ""
-#: common/models.py:214
+#: common/models.py:216
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:220
+#: common/models.py:222
msgid "Page Size"
msgstr ""
-#: common/models.py:221
+#: common/models.py:223
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:231
+#: common/models.py:233
msgid "Test Reports"
msgstr ""
-#: common/models.py:232
+#: common/models.py:234
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:238
+#: common/models.py:240
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:239
+#: common/models.py:241
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:245
+#: common/models.py:247
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:246
+#: common/models.py:248
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:252
+#: common/models.py:254
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:253
+#: common/models.py:255
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:255 part/templates/part/detail.html:121
+#: common/models.py:257 part/templates/part/detail.html:121
msgid "days"
msgstr ""
-#: common/models.py:260
+#: common/models.py:262
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:261
+#: common/models.py:263
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:267
+#: common/models.py:269
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:268
+#: common/models.py:270
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:274
+#: common/models.py:276
msgid "Group by Part"
msgstr ""
-#: common/models.py:275
+#: common/models.py:277
msgid "Group stock items by part reference in table views"
msgstr ""
-#: common/models.py:281
+#: common/models.py:283
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:282
+#: common/models.py:284
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:288
+#: common/models.py:290
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:289
+#: common/models.py:291
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:294
+#: common/models.py:296
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:295
+#: common/models.py:297
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:299
+#: common/models.py:301
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:300
+#: common/models.py:302
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:305
+#: common/models.py:307
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:306
+#: common/models.py:308
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:529
+#: common/models.py:531
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:531
+#: common/models.py:533
msgid "Settings value"
msgstr ""
-#: common/models.py:566
+#: common/models.py:568
msgid "Must be an integer value"
msgstr ""
-#: common/models.py:589
+#: common/models.py:591
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:600
+#: common/models.py:602
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:623
+#: common/models.py:625
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:704 company/forms.py:177
+#: common/models.py:706 company/forms.py:177
msgid "Price break quantity"
msgstr ""
-#: common/models.py:712 company/templates/company/supplier_part_pricing.html:82
+#: common/models.py:714 company/templates/company/supplier_part_pricing.html:82
#: part/templates/part/sale_prices.html:90 templates/js/bom.js:255
msgid "Price"
msgstr ""
-#: common/models.py:713
+#: common/models.py:715
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:736
+#: common/models.py:804
msgid "Default"
msgstr ""
@@ -1727,24 +1835,42 @@ msgstr ""
msgid "Current value"
msgstr ""
-#: common/views.py:25
+#: common/views.py:32
msgid "Change Setting"
msgstr ""
-#: common/views.py:94
+#: common/views.py:101
msgid "Supplied value is not allowed"
msgstr ""
-#: common/views.py:103
+#: common/views.py:110
msgid "Supplied value must be a boolean"
msgstr ""
-#: company/forms.py:38 company/models.py:145
+#: common/views.py:184 order/templates/order/order_wizard/po_upload.html:42
+#: order/views.py:582 part/templates/part/bom_upload/upload_file.html:27
+msgid "Upload File"
+msgstr ""
+
+#: common/views.py:185 order/templates/order/order_wizard/match_fields.html:52
+#: order/views.py:583 part/templates/part/bom_upload/select_fields.html:58
+msgid "Match Fields"
+msgstr ""
+
+#: common/views.py:186
+msgid "Match Items"
+msgstr ""
+
+#: common/views.py:479
+msgid "Fields matching failed"
+msgstr ""
+
+#: company/forms.py:38 company/models.py:142
#: company/templates/company/detail.html:42
msgid "Currency"
msgstr ""
-#: company/forms.py:39 company/models.py:147
+#: company/forms.py:39 company/models.py:144
msgid "Default currency used for this company"
msgstr ""
@@ -1764,216 +1890,216 @@ msgstr ""
msgid "Single quantity price"
msgstr ""
-#: company/forms.py:128 company/models.py:324
+#: company/forms.py:128 company/models.py:321
msgid "Select manufacturer"
msgstr ""
-#: company/forms.py:134 company/models.py:331
+#: company/forms.py:134 company/models.py:328
msgid "Manufacturer Part Number"
msgstr ""
-#: company/forms.py:136 company/models.py:330
+#: company/forms.py:136 company/models.py:327
#: company/templates/company/manufacturer_part_base.html:89
#: company/templates/company/manufacturer_part_detail.html:26
-#: company/templates/company/supplier_part_base.html:101
+#: company/templates/company/supplier_part_base.html:102
#: company/templates/company/supplier_part_detail.html:35
#: order/templates/order/purchase_order_detail.html:158 part/bom.py:171
#: part/bom.py:242 templates/js/company.js:181 templates/js/company.js:307
msgid "MPN"
msgstr ""
-#: company/models.py:102
+#: company/models.py:99
msgid "Company description"
msgstr ""
-#: company/models.py:103
+#: company/models.py:100
msgid "Description of the company"
msgstr ""
-#: company/models.py:107 company/templates/company/company_base.html:70
+#: company/models.py:104 company/templates/company/company_base.html:70
#: company/templates/company/detail.html:33 templates/js/company.js:60
msgid "Website"
msgstr ""
-#: company/models.py:107
+#: company/models.py:104
msgid "Company website URL"
msgstr ""
-#: company/models.py:110 company/templates/company/company_base.html:77
+#: company/models.py:107 company/templates/company/company_base.html:77
msgid "Address"
msgstr ""
-#: company/models.py:111
+#: company/models.py:108
msgid "Company address"
msgstr ""
-#: company/models.py:114
+#: company/models.py:111
msgid "Phone number"
msgstr ""
-#: company/models.py:115
+#: company/models.py:112
msgid "Contact phone number"
msgstr ""
-#: company/models.py:118 company/templates/company/company_base.html:91
+#: company/models.py:115 company/templates/company/company_base.html:91
msgid "Email"
msgstr ""
-#: company/models.py:118
+#: company/models.py:115
msgid "Contact email address"
msgstr ""
-#: company/models.py:121 company/templates/company/company_base.html:98
+#: company/models.py:118 company/templates/company/company_base.html:98
msgid "Contact"
msgstr ""
-#: company/models.py:122
+#: company/models.py:119
msgid "Point of contact"
msgstr ""
-#: company/models.py:124 company/models.py:336 company/models.py:488
+#: company/models.py:121 company/models.py:333 company/models.py:485
#: order/models.py:103 part/models.py:743
#: report/templates/report/inventree_build_order_base.html:165
-#: stock/models.py:1560 templates/js/company.js:188 templates/js/company.js:318
+#: templates/js/company.js:188 templates/js/company.js:318
#: templates/js/part.js:431
msgid "Link"
msgstr ""
-#: company/models.py:124
+#: company/models.py:121
msgid "Link to external company information"
msgstr ""
-#: company/models.py:132 part/models.py:753
+#: company/models.py:129 part/models.py:753
msgid "Image"
msgstr ""
-#: company/models.py:137
+#: company/models.py:134
msgid "is customer"
msgstr ""
-#: company/models.py:137
+#: company/models.py:134
msgid "Do you sell items to this company?"
msgstr ""
-#: company/models.py:139
+#: company/models.py:136
msgid "is supplier"
msgstr ""
-#: company/models.py:139
+#: company/models.py:136
msgid "Do you purchase items from this company?"
msgstr ""
-#: company/models.py:141
+#: company/models.py:138
msgid "is manufacturer"
msgstr ""
-#: company/models.py:141
+#: company/models.py:138
msgid "Does this company manufacture parts?"
msgstr ""
-#: company/models.py:308 company/models.py:459 stock/models.py:373
-#: stock/templates/stock/item_base.html:224
+#: company/models.py:305 company/models.py:456 stock/models.py:405
+#: stock/templates/stock/item_base.html:230
msgid "Base Part"
msgstr ""
-#: company/models.py:312 company/models.py:463 order/views.py:1384
+#: company/models.py:309 company/models.py:460 order/views.py:1587
msgid "Select part"
msgstr ""
-#: company/models.py:323 company/templates/company/detail.html:57
+#: company/models.py:320 company/templates/company/detail.html:57
#: company/templates/company/manufacturer_part_base.html:85
#: company/templates/company/manufacturer_part_detail.html:25
#: company/templates/company/supplier_part_base.html:94
#: company/templates/company/supplier_part_detail.html:34 part/bom.py:170
-#: part/bom.py:241 stock/templates/stock/item_base.html:341
+#: part/bom.py:241 stock/templates/stock/item_base.html:347
#: templates/js/company.js:44 templates/js/company.js:165
#: templates/js/company.js:289
msgid "Manufacturer"
msgstr ""
-#: company/models.py:337
+#: company/models.py:334
msgid "URL for external manufacturer part link"
msgstr ""
-#: company/models.py:343
+#: company/models.py:340
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:469 company/templates/company/detail.html:62
+#: company/models.py:466 company/templates/company/detail.html:62
#: company/templates/company/supplier_part_base.html:84
#: company/templates/company/supplier_part_detail.html:25 order/models.py:190
#: order/templates/order/order_base.html:92
#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:175
-#: part/bom.py:286 stock/templates/stock/item_base.html:353
+#: part/bom.py:286 stock/templates/stock/item_base.html:359
#: templates/js/company.js:48 templates/js/company.js:263
#: templates/js/order.js:170
msgid "Supplier"
msgstr ""
-#: company/models.py:470
+#: company/models.py:467
msgid "Select supplier"
msgstr ""
-#: company/models.py:475 company/templates/company/supplier_part_base.html:88
+#: company/models.py:472 company/templates/company/supplier_part_base.html:88
#: company/templates/company/supplier_part_detail.html:26
#: order/templates/order/purchase_order_detail.html:149 part/bom.py:176
#: part/bom.py:287
msgid "SKU"
msgstr ""
-#: company/models.py:476
+#: company/models.py:473
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:482
+#: company/models.py:479
#: company/templates/company/manufacturer_part_base.html:6
#: company/templates/company/manufacturer_part_base.html:19
-#: stock/templates/stock/item_base.html:346
+#: stock/templates/stock/item_base.html:352
msgid "Manufacturer Part"
msgstr ""
-#: company/models.py:483
+#: company/models.py:480
msgid "Select manufacturer part"
msgstr ""
-#: company/models.py:489
+#: company/models.py:486
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:495
+#: company/models.py:492
msgid "Supplier part description"
msgstr ""
-#: company/models.py:500 company/templates/company/supplier_part_base.html:115
-#: company/templates/company/supplier_part_detail.html:38 part/models.py:2190
+#: company/models.py:497 company/templates/company/supplier_part_base.html:116
+#: company/templates/company/supplier_part_detail.html:38 part/models.py:2228
#: report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr ""
-#: company/models.py:504
+#: company/models.py:501 part/models.py:1614
msgid "base cost"
msgstr ""
-#: company/models.py:504
+#: company/models.py:501 part/models.py:1614
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:506 company/templates/company/supplier_part_base.html:108
-#: stock/models.py:397 stock/templates/stock/item_base.html:299
+#: company/models.py:503 company/templates/company/supplier_part_base.html:109
+#: stock/models.py:429 stock/templates/stock/item_base.html:305
#: templates/js/stock.js:667
msgid "Packaging"
msgstr ""
-#: company/models.py:506
+#: company/models.py:503
msgid "Part packaging"
msgstr ""
-#: company/models.py:508
+#: company/models.py:505 part/models.py:1616
msgid "multiple"
msgstr ""
-#: company/models.py:508
+#: company/models.py:505
msgid "Order multiple"
msgstr ""
@@ -1999,7 +2125,7 @@ msgstr ""
msgid "Download image from URL"
msgstr ""
-#: company/templates/company/company_base.html:46 order/views.py:306
+#: company/templates/company/company_base.html:46 order/views.py:311
msgid "Create Purchase Order"
msgstr ""
@@ -2028,8 +2154,7 @@ msgstr ""
#: company/templates/company/delete.html:12
#, python-format
-msgid ""
-"There are %(count)s parts sourced from this company.
\n"
+msgid "There are %(count)s parts sourced from this company.
\n"
"If this supplier is deleted, these supplier part entries will also be deleted."
msgstr ""
@@ -2045,10 +2170,11 @@ msgstr ""
msgid "Uses default currency"
msgstr ""
-#: company/templates/company/detail.html:67 order/models.py:450
-#: order/templates/order/sales_order_base.html:92 stock/models.py:415
-#: stock/models.py:416 stock/templates/stock/item_base.html:251
+#: company/templates/company/detail.html:67 order/models.py:461
+#: order/templates/order/sales_order_base.html:92 stock/models.py:447
+#: stock/models.py:448 stock/templates/stock/item_base.html:257
#: templates/js/company.js:40 templates/js/order.js:267
+#: templates/js/stock.js:1064
msgid "Customer"
msgstr ""
@@ -2094,7 +2220,7 @@ msgstr ""
#: company/templates/company/detail_manufacturer_part.html:66
#: company/templates/company/detail_supplier_part.html:66
#: part/templates/part/bom.html:159 part/templates/part/category.html:118
-#: templates/js/stock.js:1157
+#: templates/js/stock.js:1279
msgid "New Part"
msgstr ""
@@ -2141,19 +2267,19 @@ msgstr ""
#: company/templates/company/detail_supplier_part.html:22
#: company/templates/company/manufacturer_part_suppliers.html:17
#: order/templates/order/purchase_order_detail.html:49
-#: part/templates/part/supplier.html:17 templates/js/stock.js:1163
+#: part/templates/part/supplier.html:17 templates/js/stock.js:1285
msgid "New Supplier Part"
msgstr ""
#: company/templates/company/detail_supplier_part.html:72
#: company/templates/company/manufacturer_part_suppliers.html:47
-#: company/views.py:64 order/templates/order/purchase_orders.html:183
+#: company/views.py:64 order/templates/order/purchase_orders.html:185
#: part/templates/part/supplier.html:50
msgid "New Supplier"
msgstr ""
#: company/templates/company/detail_supplier_part.html:73 company/views.py:281
-#: order/templates/order/purchase_orders.html:184
+#: order/templates/order/purchase_orders.html:186
msgid "Create new Supplier"
msgstr ""
@@ -2211,7 +2337,7 @@ msgstr ""
#: company/templates/company/manufacturer_part_navbar.html:22
#: company/templates/company/navbar.html:41
#: company/templates/company/supplier_part_navbar.html:15
-#: part/templates/part/navbar.html:36 stock/api.py:51
+#: part/templates/part/navbar.html:36 stock/api.py:54
#: stock/templates/stock/loc_link.html:7 stock/templates/stock/location.html:36
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/index.html:128 templates/InvenTree/search.html:196
@@ -2264,7 +2390,7 @@ msgstr ""
#: stock/templates/stock/location_navbar.html:22
#: stock/templates/stock/location_navbar.html:29
#: templates/InvenTree/search.html:198 templates/js/stock.js:968
-#: templates/stats.html:72 templates/stats.html:81 users/models.py:42
+#: templates/stats.html:93 templates/stats.html:102 users/models.py:42
msgid "Stock Items"
msgstr ""
@@ -2319,8 +2445,8 @@ msgid "New Sales Order"
msgstr ""
#: company/templates/company/supplier_part_base.html:7
-#: company/templates/company/supplier_part_base.html:20 stock/models.py:382
-#: stock/templates/stock/item_base.html:358 templates/js/company.js:279
+#: company/templates/company/supplier_part_base.html:20 stock/models.py:414
+#: stock/templates/stock/item_base.html:364 templates/js/company.js:279
msgid "Supplier Part"
msgstr ""
@@ -2369,7 +2495,7 @@ msgid "Pricing Information"
msgstr ""
#: company/templates/company/supplier_part_pricing.html:19 company/views.py:794
-#: part/templates/part/sale_prices.html:17 part/views.py:2636
+#: part/templates/part/sale_prices.html:17 part/views.py:2644
msgid "Add Price Break"
msgstr ""
@@ -2399,7 +2525,7 @@ msgstr ""
msgid "Customers"
msgstr ""
-#: company/views.py:78 order/templates/order/sales_orders.html:185
+#: company/views.py:78 order/templates/order/sales_orders.html:187
msgid "New Customer"
msgstr ""
@@ -2419,6 +2545,11 @@ msgstr ""
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
+#: company/views.py:205 part/views.py:887
+#, python-brace-format
+msgid "Invalid response: {code}"
+msgstr ""
+
#: company/views.py:214 part/views.py:896
msgid "Supplied URL is not a valid image file"
msgstr ""
@@ -2439,7 +2570,7 @@ msgstr ""
msgid "Edited company information"
msgstr ""
-#: company/views.py:287 order/templates/order/sales_orders.html:186
+#: company/views.py:287 order/templates/order/sales_orders.html:188
msgid "Create new Customer"
msgstr ""
@@ -2471,7 +2602,7 @@ msgstr ""
msgid "Edit Supplier Part"
msgstr ""
-#: company/views.py:578 templates/js/stock.js:1164
+#: company/views.py:578 templates/js/stock.js:1286
msgid "Create new Supplier Part"
msgstr ""
@@ -2479,15 +2610,15 @@ msgstr ""
msgid "Delete Supplier Part"
msgstr ""
-#: company/views.py:799 part/views.py:2640
+#: company/views.py:799 part/views.py:2648
msgid "Added new price break"
msgstr ""
-#: company/views.py:855 part/views.py:2684
+#: company/views.py:855 part/views.py:2692
msgid "Edit Price Break"
msgstr ""
-#: company/views.py:870 part/views.py:2698
+#: company/views.py:870 part/views.py:2706
msgid "Delete Price Break"
msgstr ""
@@ -2495,51 +2626,59 @@ msgstr ""
msgid "No valid objects provided to template"
msgstr ""
-#: label/models.py:102
+#: label/models.py:103
msgid "Label name"
msgstr ""
-#: label/models.py:109
+#: label/models.py:110
msgid "Label description"
msgstr ""
-#: label/models.py:116 stock/forms.py:202
+#: label/models.py:117 stock/forms.py:202
msgid "Label"
msgstr ""
-#: label/models.py:117
+#: label/models.py:118
msgid "Label template file"
msgstr ""
-#: label/models.py:123 report/models.py:274
+#: label/models.py:124 report/models.py:274
msgid "Enabled"
msgstr ""
-#: label/models.py:124
+#: label/models.py:125
msgid "Label template is enabled"
msgstr ""
-#: label/models.py:129
+#: label/models.py:130
msgid "Width [mm]"
msgstr ""
-#: label/models.py:130
+#: label/models.py:131
msgid "Label width, specified in mm"
msgstr ""
-#: label/models.py:136
+#: label/models.py:137
msgid "Height [mm]"
msgstr ""
-#: label/models.py:137
+#: label/models.py:138
msgid "Label height, specified in mm"
msgstr ""
-#: label/models.py:222 label/models.py:275
+#: label/models.py:144
+msgid "Filename Pattern"
+msgstr ""
+
+#: label/models.py:145
+msgid "Pattern for generating label filenames"
+msgstr ""
+
+#: label/models.py:244 label/models.py:297
msgid "Query filters (comma-separated list of key=value pairs"
msgstr ""
-#: label/models.py:223 label/models.py:276 report/models.py:294
+#: label/models.py:245 label/models.py:298 report/models.py:294
#: report/models.py:415 report/models.py:449
msgid "Filters"
msgstr ""
@@ -2577,15 +2716,15 @@ msgstr ""
msgid "Enter sales order number"
msgstr ""
-#: order/forms.py:145 order/models.py:462
+#: order/forms.py:145 order/models.py:473
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/forms.py:235
+#: order/forms.py:236
msgid "Enter stock item serial numbers"
msgstr ""
-#: order/forms.py:241
+#: order/forms.py:242
msgid "Enter quantity of stock items"
msgstr ""
@@ -2613,7 +2752,7 @@ msgstr ""
msgid "Order notes"
msgstr ""
-#: order/models.py:182 order/models.py:455
+#: order/models.py:182 order/models.py:466
msgid "Purchase order status"
msgstr ""
@@ -2654,8 +2793,8 @@ msgstr ""
msgid "Date order was completed"
msgstr ""
-#: order/models.py:243 part/views.py:1586 stock/models.py:270
-#: stock/models.py:953
+#: order/models.py:243 part/views.py:1586 stock/models.py:302
+#: stock/models.py:1018
msgid "Quantity must be greater than zero"
msgstr ""
@@ -2663,128 +2802,134 @@ msgstr ""
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:344
+#: order/models.py:346
msgid "Lines can only be received against an order marked as 'Placed'"
msgstr ""
-#: order/models.py:348
+#: order/models.py:350
msgid "Quantity must be an integer"
msgstr ""
-#: order/models.py:350
+#: order/models.py:352
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:369
-msgid "Received items"
-msgstr ""
-
-#: order/models.py:451
+#: order/models.py:462
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:457
+#: order/models.py:468
msgid "Customer Reference "
msgstr ""
-#: order/models.py:457
+#: order/models.py:468
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:465 templates/js/order.js:303
+#: order/models.py:476 templates/js/order.js:303
msgid "Shipment Date"
msgstr ""
-#: order/models.py:472
+#: order/models.py:483
msgid "shipped by"
msgstr ""
-#: order/models.py:516
+#: order/models.py:527
msgid "SalesOrder cannot be shipped as it is not currently pending"
msgstr ""
-#: order/models.py:603
+#: order/models.py:614
msgid "Item quantity"
msgstr ""
-#: order/models.py:605
+#: order/models.py:616
msgid "Line item reference"
msgstr ""
-#: order/models.py:607
+#: order/models.py:618
msgid "Line item notes"
msgstr ""
-#: order/models.py:633 order/models.py:677
+#: order/models.py:644 order/models.py:689
#: part/templates/part/allocation.html:17
#: part/templates/part/allocation.html:45
msgid "Order"
msgstr ""
-#: order/models.py:634 order/templates/order/order_base.html:9
+#: order/models.py:645 order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:24
#: report/templates/report/inventree_po_report.html:77
-#: stock/templates/stock/item_base.html:313 templates/js/order.js:148
+#: stock/templates/stock/item_base.html:319 templates/js/order.js:148
+#: templates/js/stock.js:1045
msgid "Purchase Order"
msgstr ""
-#: order/models.py:648
+#: order/models.py:659
msgid "Supplier part"
msgstr ""
-#: order/models.py:651 order/templates/order/order_base.html:131
+#: order/models.py:662 order/templates/order/order_base.html:131
#: order/templates/order/purchase_order_detail.html:189
#: order/templates/order/receive_parts.html:22
#: order/templates/order/sales_order_base.html:131
msgid "Received"
msgstr ""
-#: order/models.py:651
+#: order/models.py:662
msgid "Number of items received"
msgstr ""
-#: order/models.py:658 stock/models.py:508
-#: stock/templates/stock/item_base.html:320
+#: order/models.py:669 stock/models.py:540
+#: stock/templates/stock/item_base.html:326
msgid "Purchase Price"
msgstr ""
-#: order/models.py:659
+#: order/models.py:670
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:753 order/models.py:755
+#: order/models.py:698 part/templates/part/navbar.html:95
+#: part/templates/part/part_pricing.html:78
+msgid "Sale Price"
+msgstr ""
+
+#: order/models.py:699
+msgid "Unit sale price"
+msgstr ""
+
+#: order/models.py:774 order/models.py:776
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:759
+#: order/models.py:780
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:761
+#: order/models.py:782
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:764
+#: order/models.py:785
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:774
+#: order/models.py:795
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:779
+#: order/models.py:800
msgid "Line"
msgstr ""
-#: order/models.py:790
+#: order/models.py:811
msgid "Item"
msgstr ""
-#: order/models.py:791
+#: order/models.py:812
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:794
+#: order/models.py:815
msgid "Enter stock allocation quantity"
msgstr ""
@@ -2836,7 +2981,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:100
#: part/templates/part/category.html:185 part/templates/part/category.html:227
#: stock/templates/stock/location.html:191 templates/js/stock.js:708
-#: templates/js/stock.js:1169
+#: templates/js/stock.js:1291
msgid "New Location"
msgstr ""
@@ -2870,6 +3015,75 @@ msgstr ""
msgid "Order Notes"
msgstr ""
+#: order/templates/order/order_wizard/match_fields.html:9
+#: part/templates/part/bom_upload/select_fields.html:21
+msgid "Missing selections for the following required columns"
+msgstr ""
+
+#: order/templates/order/order_wizard/match_fields.html:20
+msgid "Duplicate selections found, see below. Fix them then retry submitting."
+msgstr ""
+
+#: order/templates/order/order_wizard/match_fields.html:27
+#: order/templates/order/order_wizard/match_parts.html:18
+#: order/templates/order/order_wizard/po_upload.html:40
+msgid "Previous Step"
+msgstr ""
+
+#: order/templates/order/order_wizard/match_fields.html:29
+#: order/templates/order/order_wizard/match_parts.html:20
+#: part/templates/part/bom_upload/select_fields.html:32
+msgid "Submit Selections"
+msgstr ""
+
+#: order/templates/order/order_wizard/match_fields.html:35
+#: part/templates/part/bom_upload/select_fields.html:41
+msgid "File Fields"
+msgstr ""
+
+#: order/templates/order/order_wizard/match_fields.html:42
+#: part/templates/part/bom_upload/select_fields.html:47
+msgid "Remove column"
+msgstr ""
+
+#: order/templates/order/order_wizard/match_fields.html:60
+msgid "Duplicate selection"
+msgstr ""
+
+#: order/templates/order/order_wizard/match_fields.html:71
+#: order/templates/order/order_wizard/match_parts.html:51
+#: part/templates/part/bom_upload/select_fields.html:76
+#: part/templates/part/bom_upload/select_parts.html:58
+msgid "Remove row"
+msgstr ""
+
+#: order/templates/order/order_wizard/match_parts.html:11
+#: part/templates/part/bom_upload/select_parts.html:21
+msgid "Errors exist in the submitted data"
+msgstr ""
+
+#: order/templates/order/order_wizard/match_parts.html:27
+#: part/templates/part/bom_upload/select_parts.html:39
+msgid "Row"
+msgstr ""
+
+#: order/templates/order/order_wizard/match_parts.html:28
+msgid "Select Supplier Part"
+msgstr ""
+
+#: order/templates/order/order_wizard/po_upload.html:11
+msgid "Upload File for Purchase Order"
+msgstr ""
+
+#: order/templates/order/order_wizard/po_upload.html:18
+#, python-format
+msgid "Step %(step)s of %(count)s"
+msgstr ""
+
+#: order/templates/order/order_wizard/po_upload.html:48
+msgid "Order is already processed. Files cannot be uploaded."
+msgstr ""
+
#: order/templates/order/order_wizard/select_parts.html:9
msgid "Step 1 of 2 - Select Part Suppliers"
msgstr ""
@@ -2942,8 +3156,8 @@ msgid "Purchase Order Items"
msgstr ""
#: order/templates/order/purchase_order_detail.html:24
-#: order/templates/order/sales_order_detail.html:22 order/views.py:1120
-#: order/views.py:1203
+#: order/templates/order/sales_order_detail.html:22 order/views.py:1311
+#: order/views.py:1394
msgid "Add Line Item"
msgstr ""
@@ -2952,11 +3166,12 @@ msgid "No line items found"
msgstr ""
#: order/templates/order/purchase_order_detail.html:180
+#: order/templates/order/sales_order_detail.html:235
msgid "Unit Price"
msgstr ""
#: order/templates/order/purchase_order_detail.html:221
-#: order/templates/order/sales_order_detail.html:294
+#: order/templates/order/sales_order_detail.html:328
msgid "Edit line item"
msgstr ""
@@ -2986,7 +3201,7 @@ msgstr ""
#: part/templates/part/category_partlist.html:10
#: templates/InvenTree/index.html:97 templates/InvenTree/search.html:114
#: templates/InvenTree/settings/tabs.html:25 templates/js/part.js:577
-#: templates/navbar.html:23 templates/stats.html:59 templates/stats.html:68
+#: templates/navbar.html:23 templates/stats.html:80 templates/stats.html:89
#: users/models.py:40
msgid "Parts"
msgstr ""
@@ -3048,59 +3263,72 @@ msgstr ""
msgid "Sales Order Items"
msgstr ""
-#: order/templates/order/sales_order_detail.html:92 templates/js/bom.js:342
+#: order/templates/order/sales_order_detail.html:95 templates/js/bom.js:342
#: templates/js/build.js:627 templates/js/build.js:1044
msgid "Actions"
msgstr ""
-#: order/templates/order/sales_order_detail.html:99 templates/js/build.js:515
+#: order/templates/order/sales_order_detail.html:102 templates/js/build.js:515
#: templates/js/build.js:849
msgid "Edit stock allocation"
msgstr ""
-#: order/templates/order/sales_order_detail.html:100 templates/js/build.js:517
+#: order/templates/order/sales_order_detail.html:103 templates/js/build.js:517
#: templates/js/build.js:850
msgid "Delete stock allocation"
msgstr ""
-#: order/templates/order/sales_order_detail.html:170
+#: order/templates/order/sales_order_detail.html:176
msgid "No matching line items"
msgstr ""
-#: order/templates/order/sales_order_detail.html:199
+#: order/templates/order/sales_order_detail.html:205
msgid "ID"
msgstr ""
-#: order/templates/order/sales_order_detail.html:229 templates/js/build.js:579
+#: order/templates/order/sales_order_detail.html:243 templates/js/build.js:579
#: templates/js/build.js:845
msgid "Allocated"
msgstr ""
-#: order/templates/order/sales_order_detail.html:231
+#: order/templates/order/sales_order_detail.html:245
msgid "Fulfilled"
msgstr ""
-#: order/templates/order/sales_order_detail.html:279
+#: order/templates/order/sales_order_detail.html:282
+msgid "PO"
+msgstr ""
+
+#: order/templates/order/sales_order_detail.html:312
msgid "Allocate serial numbers"
msgstr ""
-#: order/templates/order/sales_order_detail.html:282 templates/js/build.js:641
+#: order/templates/order/sales_order_detail.html:315 templates/js/build.js:641
msgid "Allocate stock"
msgstr ""
-#: order/templates/order/sales_order_detail.html:285
+#: order/templates/order/sales_order_detail.html:318
msgid "Purchase stock"
msgstr ""
-#: order/templates/order/sales_order_detail.html:289 templates/js/build.js:634
+#: order/templates/order/sales_order_detail.html:322 templates/js/build.js:634
#: templates/js/build.js:1052
msgid "Build stock"
msgstr ""
-#: order/templates/order/sales_order_detail.html:295
+#: order/templates/order/sales_order_detail.html:325
+#: order/templates/order/sales_order_detail.html:434
+msgid "Calculate price"
+msgstr ""
+
+#: order/templates/order/sales_order_detail.html:329
msgid "Delete line item "
msgstr ""
+#: order/templates/order/sales_order_detail.html:440
+msgid "Update Unit Price"
+msgstr ""
+
#: order/templates/order/sales_order_notes.html:14
msgid "Sales Order Notes"
msgstr ""
@@ -3142,164 +3370,189 @@ msgstr ""
msgid "Are you sure you wish to delete this line item?"
msgstr ""
-#: order/views.py:99
+#: order/views.py:104
msgid "Add Purchase Order Attachment"
msgstr ""
-#: order/views.py:149
+#: order/views.py:154
msgid "Add Sales Order Attachment"
msgstr ""
-#: order/views.py:341
+#: order/views.py:346
msgid "Create Sales Order"
msgstr ""
-#: order/views.py:376
+#: order/views.py:381
msgid "Edit Purchase Order"
msgstr ""
-#: order/views.py:396
+#: order/views.py:401
msgid "Edit Sales Order"
msgstr ""
-#: order/views.py:412
+#: order/views.py:417
msgid "Cancel Order"
msgstr ""
-#: order/views.py:421 order/views.py:447
+#: order/views.py:426 order/views.py:452
msgid "Confirm order cancellation"
msgstr ""
-#: order/views.py:424 order/views.py:450
+#: order/views.py:429 order/views.py:455
msgid "Order cannot be cancelled"
msgstr ""
-#: order/views.py:438
+#: order/views.py:443
msgid "Cancel sales order"
msgstr ""
-#: order/views.py:464
+#: order/views.py:469
msgid "Issue Order"
msgstr ""
-#: order/views.py:473
+#: order/views.py:478
msgid "Confirm order placement"
msgstr ""
-#: order/views.py:483
+#: order/views.py:488
msgid "Purchase order issued"
msgstr ""
-#: order/views.py:494
+#: order/views.py:499
msgid "Complete Order"
msgstr ""
-#: order/views.py:510
+#: order/views.py:515
msgid "Confirm order completion"
msgstr ""
-#: order/views.py:521
+#: order/views.py:526
msgid "Purchase order completed"
msgstr ""
-#: order/views.py:531
+#: order/views.py:536
msgid "Ship Order"
msgstr ""
-#: order/views.py:547
+#: order/views.py:552
msgid "Confirm order shipment"
msgstr ""
-#: order/views.py:553
+#: order/views.py:558
msgid "Could not ship order"
msgstr ""
-#: order/views.py:607
+#: order/views.py:584
+msgid "Match Supplier Parts"
+msgstr ""
+
+#: order/views.py:798
msgid "Receive Parts"
msgstr ""
-#: order/views.py:677
+#: order/views.py:868
msgid "Items received"
msgstr ""
-#: order/views.py:691
+#: order/views.py:882
msgid "No destination set"
msgstr ""
-#: order/views.py:736
+#: order/views.py:927
msgid "Error converting quantity to number"
msgstr ""
-#: order/views.py:742
+#: order/views.py:933
msgid "Receive quantity less than zero"
msgstr ""
-#: order/views.py:748
+#: order/views.py:939
msgid "No lines specified"
msgstr ""
-#: order/views.py:1069
+#: order/views.py:1260
#, python-brace-format
msgid "Ordered {n} parts"
msgstr ""
-#: order/views.py:1129
+#: order/views.py:1320
msgid "Supplier part must be specified"
msgstr ""
-#: order/views.py:1135
+#: order/views.py:1326
msgid "Supplier must match for Part and Order"
msgstr ""
-#: order/views.py:1254 order/views.py:1272
+#: order/views.py:1457 order/views.py:1475
msgid "Edit Line Item"
msgstr ""
-#: order/views.py:1288 order/views.py:1300
+#: order/views.py:1491 order/views.py:1503
msgid "Delete Line Item"
msgstr ""
-#: order/views.py:1293 order/views.py:1305
+#: order/views.py:1496 order/views.py:1508
msgid "Deleted line item"
msgstr ""
-#: order/views.py:1318
+#: order/views.py:1521
msgid "Allocate Serial Numbers"
msgstr ""
-#: order/views.py:1363
+#: order/views.py:1566
#, python-brace-format
msgid "Allocated {n} items"
msgstr ""
-#: order/views.py:1379
+#: order/views.py:1582
msgid "Select line item"
msgstr ""
-#: order/views.py:1410
-msgid "No matching item for serial"
+#: order/views.py:1613
+#, python-brace-format
+msgid "No matching item for serial {serial}"
msgstr ""
-#: order/views.py:1420
-msgid "is not in stock"
+#: order/views.py:1623
+#, python-brace-format
+msgid "{serial} is not in stock"
msgstr ""
-#: order/views.py:1428
-msgid "already allocated to an order"
+#: order/views.py:1631
+#, python-brace-format
+msgid "{serial} already allocated to an order"
msgstr ""
-#: order/views.py:1482
+#: order/views.py:1685
msgid "Allocate Stock to Order"
msgstr ""
-#: order/views.py:1556
+#: order/views.py:1759
msgid "Edit Allocation Quantity"
msgstr ""
-#: order/views.py:1571
+#: order/views.py:1774
msgid "Remove allocation"
msgstr ""
+#: order/views.py:1846
+msgid "Sales order not found"
+msgstr ""
+
+#: order/views.py:1852
+msgid "Price not found"
+msgstr ""
+
+#: order/views.py:1855
+#, python-brace-format
+msgid "Updated {part} unit-price to {price}"
+msgstr ""
+
+#: order/views.py:1860
+#, python-brace-format
+msgid "Updated {part} unit-price to {price} and quantity to {qty}"
+msgstr ""
+
#: part/bom.py:138 part/models.py:72 part/models.py:762
#: part/templates/part/category.html:66 part/templates/part/detail.html:90
msgid "Default Location"
@@ -3378,7 +3631,7 @@ msgstr ""
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:122 part/models.py:2077
+#: part/forms.py:122 part/models.py:2115
msgid "Parent Part"
msgstr ""
@@ -3454,7 +3707,7 @@ msgstr ""
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:344 part/models.py:2171
+#: part/forms.py:344 part/models.py:2209
msgid "Sub part"
msgstr ""
@@ -3474,14 +3727,14 @@ msgstr ""
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:82 part/models.py:2123
+#: part/models.py:82 part/models.py:2161
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
#: part/models.py:83 part/templates/part/category.html:23
#: part/templates/part/category.html:94 part/templates/part/category.html:141
-#: templates/InvenTree/search.html:127 templates/stats.html:63
+#: templates/InvenTree/search.html:127 templates/stats.html:84
#: users/models.py:39
msgid "Part Categories"
msgstr ""
@@ -3544,7 +3797,7 @@ msgstr ""
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:724 part/models.py:2122 part/templates/part/detail.html:73
+#: part/models.py:724 part/models.py:2160 part/templates/part/detail.html:73
#: part/templates/part/set_category.html:15 templates/js/part.js:385
msgid "Category"
msgstr ""
@@ -3599,7 +3852,7 @@ msgstr ""
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:828 part/models.py:2051 part/templates/part/detail.html:106
+#: part/models.py:828 part/models.py:2089 part/templates/part/detail.html:106
#: part/templates/part/params.html:29
msgid "Units"
msgstr ""
@@ -3629,8 +3882,8 @@ msgid "Can this part be sold to customers?"
msgstr ""
#: part/models.py:861 part/templates/part/detail.html:227
-#: templates/js/table_filters.js:20 templates/js/table_filters.js:60
-#: templates/js/table_filters.js:236 templates/js/table_filters.js:305
+#: templates/js/table_filters.js:21 templates/js/table_filters.js:61
+#: templates/js/table_filters.js:237 templates/js/table_filters.js:306
msgid "Active"
msgstr ""
@@ -3666,167 +3919,171 @@ msgstr ""
msgid "Creation User"
msgstr ""
-#: part/models.py:1949
-msgid "Test templates can only be created for trackable parts"
-msgstr ""
-
-#: part/models.py:1966
-msgid "Test with this name already exists for this part"
-msgstr ""
-
-#: part/models.py:1986 templates/js/part.js:638 templates/js/stock.js:104
-msgid "Test Name"
+#: part/models.py:1616
+msgid "Sell multiple"
msgstr ""
#: part/models.py:1987
+msgid "Test templates can only be created for trackable parts"
+msgstr ""
+
+#: part/models.py:2004
+msgid "Test with this name already exists for this part"
+msgstr ""
+
+#: part/models.py:2024 templates/js/part.js:638 templates/js/stock.js:104
+msgid "Test Name"
+msgstr ""
+
+#: part/models.py:2025
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:1992
+#: part/models.py:2030
msgid "Test Description"
msgstr ""
-#: part/models.py:1993
+#: part/models.py:2031
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:1998 templates/js/part.js:647
-#: templates/js/table_filters.js:222
+#: part/models.py:2036 templates/js/part.js:647
+#: templates/js/table_filters.js:223
msgid "Required"
msgstr ""
-#: part/models.py:1999
+#: part/models.py:2037
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2004 templates/js/part.js:655
+#: part/models.py:2042 templates/js/part.js:655
msgid "Requires Value"
msgstr ""
-#: part/models.py:2005
+#: part/models.py:2043
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2010 templates/js/part.js:662
+#: part/models.py:2048 templates/js/part.js:662
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2011
+#: part/models.py:2049
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2044
+#: part/models.py:2082
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2049
+#: part/models.py:2087
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2051
+#: part/models.py:2089
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2079 part/models.py:2128 part/models.py:2129
+#: part/models.py:2117 part/models.py:2166 part/models.py:2167
#: templates/InvenTree/settings/category.html:62
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2081
+#: part/models.py:2119
msgid "Data"
msgstr ""
-#: part/models.py:2081
+#: part/models.py:2119
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2133 templates/InvenTree/settings/category.html:67
+#: part/models.py:2171 templates/InvenTree/settings/category.html:67
msgid "Default Value"
msgstr ""
-#: part/models.py:2134
+#: part/models.py:2172
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2163
+#: part/models.py:2201
msgid "Select parent part"
msgstr ""
-#: part/models.py:2172
+#: part/models.py:2210
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2178
+#: part/models.py:2216
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2180 templates/js/bom.js:216 templates/js/bom.js:269
+#: part/models.py:2218 templates/js/bom.js:216 templates/js/bom.js:269
msgid "Optional"
msgstr ""
-#: part/models.py:2180
+#: part/models.py:2218
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2183
+#: part/models.py:2221
msgid "Overage"
msgstr ""
-#: part/models.py:2184
+#: part/models.py:2222
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2187
+#: part/models.py:2225
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2190
+#: part/models.py:2228
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2192
+#: part/models.py:2230
msgid "Checksum"
msgstr ""
-#: part/models.py:2192
+#: part/models.py:2230
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2196 templates/js/bom.js:279 templates/js/bom.js:286
-#: templates/js/table_filters.js:50
+#: part/models.py:2234 templates/js/bom.js:279 templates/js/bom.js:286
+#: templates/js/table_filters.js:51
msgid "Inherited"
msgstr ""
-#: part/models.py:2197
+#: part/models.py:2235
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2273 part/views.py:1592 part/views.py:1644
-#: stock/models.py:260
+#: part/models.py:2311 part/views.py:1592 part/views.py:1644
+#: stock/models.py:292
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2282 part/models.py:2284
+#: part/models.py:2320 part/models.py:2322
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2287
+#: part/models.py:2325
msgid "BOM Item"
msgstr ""
-#: part/models.py:2404
+#: part/models.py:2442
msgid "Part 1"
msgstr ""
-#: part/models.py:2408
+#: part/models.py:2446
msgid "Part 2"
msgstr ""
-#: part/models.py:2408
+#: part/models.py:2446
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2440
+#: part/models.py:2478
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -3911,7 +4168,7 @@ msgid "All selected BOM items will be deleted"
msgstr ""
#: part/templates/part/bom.html:160 part/views.py:584
-#: templates/js/stock.js:1158
+#: templates/js/stock.js:1280
msgid "Create New Part"
msgstr ""
@@ -3929,51 +4186,18 @@ msgstr ""
msgid "Step 2 - Select Fields"
msgstr ""
-#: part/templates/part/bom_upload/select_fields.html:21
-msgid "Missing selections for the following required columns"
-msgstr ""
-
-#: part/templates/part/bom_upload/select_fields.html:32
-msgid "Submit Selections"
-msgstr ""
-
-#: part/templates/part/bom_upload/select_fields.html:41
-msgid "File Fields"
-msgstr ""
-
-#: part/templates/part/bom_upload/select_fields.html:47
-msgid "Remove column"
-msgstr ""
-
-#: part/templates/part/bom_upload/select_fields.html:58
-msgid "Match Fields"
-msgstr ""
-
#: part/templates/part/bom_upload/select_fields.html:68
msgid "Duplicate column selection"
msgstr ""
-#: part/templates/part/bom_upload/select_fields.html:76
-#: part/templates/part/bom_upload/select_parts.html:58
-msgid "Remove row"
-msgstr ""
-
#: part/templates/part/bom_upload/select_parts.html:16
msgid "Step 3 - Select Parts"
msgstr ""
-#: part/templates/part/bom_upload/select_parts.html:21
-msgid "Errors exist in the submitted data"
-msgstr ""
-
#: part/templates/part/bom_upload/select_parts.html:27
msgid "Submit BOM"
msgstr ""
-#: part/templates/part/bom_upload/select_parts.html:39
-msgid "Row"
-msgstr ""
-
#: part/templates/part/bom_upload/select_parts.html:40
#: part/templates/part/bom_upload/select_parts.html:69
msgid "Select Part"
@@ -4004,10 +4228,6 @@ msgstr ""
msgid "Each part must already exist in the database"
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:27
-msgid "Upload File"
-msgstr ""
-
#: part/templates/part/bom_validate.html:6
#, python-format
msgid "Confirm that the Bill of Materials (BOM) is valid for:
%(part)s"
@@ -4029,7 +4249,7 @@ msgstr ""
msgid "All parts"
msgstr ""
-#: part/templates/part/category.html:29 part/views.py:2282
+#: part/templates/part/category.html:29 part/views.py:2290
msgid "Create new part category"
msgstr ""
@@ -4097,7 +4317,7 @@ msgstr ""
msgid "Create new Part Category"
msgstr ""
-#: part/templates/part/category.html:228 stock/views.py:1359
+#: part/templates/part/category.html:228 stock/views.py:1391
msgid "Create new Stock Location"
msgstr ""
@@ -4288,15 +4508,11 @@ msgstr ""
msgid "Sales Price Information"
msgstr ""
-#: part/templates/part/navbar.html:95
-msgid "Sale Price"
-msgstr ""
-
#: part/templates/part/navbar.html:106 part/templates/part/part_tests.html:10
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/navbar.html:109 stock/templates/stock/item_base.html:398
+#: part/templates/part/navbar.html:109 stock/templates/stock/item_base.html:404
msgid "Tests"
msgstr ""
@@ -4321,7 +4537,7 @@ msgstr ""
#: part/templates/part/params.html:28
#: report/templates/report/inventree_test_report_base.html:90
-#: stock/models.py:1655 templates/InvenTree/settings/header.html:8
+#: stock/models.py:1754 templates/InvenTree/settings/header.html:8
#: templates/js/stock.js:124
msgid "Value"
msgstr ""
@@ -4357,19 +4573,19 @@ msgid "Star this part"
msgstr ""
#: part/templates/part/part_base.html:47
-#: stock/templates/stock/item_base.html:131
+#: stock/templates/stock/item_base.html:137
#: stock/templates/stock/location.html:51
msgid "Barcode actions"
msgstr ""
#: part/templates/part/part_base.html:49
-#: stock/templates/stock/item_base.html:133
+#: stock/templates/stock/item_base.html:139
#: stock/templates/stock/location.html:53 templates/qr_button.html:1
msgid "Show QR Code"
msgstr ""
#: part/templates/part/part_base.html:50
-#: stock/templates/stock/item_base.html:149
+#: stock/templates/stock/item_base.html:155
#: stock/templates/stock/location.html:54
msgid "Print Label"
msgstr ""
@@ -4398,7 +4614,7 @@ msgstr ""
msgid "Delete part"
msgstr ""
-#: part/templates/part/part_base.html:123 templates/js/table_filters.js:156
+#: part/templates/part/part_base.html:123 templates/js/table_filters.js:157
msgid "In Stock"
msgstr ""
@@ -4426,42 +4642,39 @@ msgstr ""
msgid "Calculate"
msgstr ""
-#: part/templates/part/part_pricing.html:8
-#, python-format
-msgid "Pricing information for:
%(part)s."
-msgstr ""
-
-#: part/templates/part/part_pricing.html:23
+#: part/templates/part/part_pricing.html:19
msgid "Supplier Pricing"
msgstr ""
-#: part/templates/part/part_pricing.html:27
-#: part/templates/part/part_pricing.html:53
+#: part/templates/part/part_pricing.html:23
+#: part/templates/part/part_pricing.html:49
+#: part/templates/part/part_pricing.html:81
msgid "Unit Cost"
msgstr ""
-#: part/templates/part/part_pricing.html:33
-#: part/templates/part/part_pricing.html:59
+#: part/templates/part/part_pricing.html:29
+#: part/templates/part/part_pricing.html:55
+#: part/templates/part/part_pricing.html:85
msgid "Total Cost"
msgstr ""
-#: part/templates/part/part_pricing.html:41
+#: part/templates/part/part_pricing.html:37
msgid "No supplier pricing available"
msgstr ""
-#: part/templates/part/part_pricing.html:49
+#: part/templates/part/part_pricing.html:45
msgid "BOM Pricing"
msgstr ""
-#: part/templates/part/part_pricing.html:67
+#: part/templates/part/part_pricing.html:63
msgid "Note: BOM pricing is incomplete for this part"
msgstr ""
-#: part/templates/part/part_pricing.html:74
+#: part/templates/part/part_pricing.html:70
msgid "No BOM pricing available"
msgstr ""
-#: part/templates/part/part_pricing.html:84
+#: part/templates/part/part_pricing.html:94
msgid "No pricing information is available for this part."
msgstr ""
@@ -4570,6 +4783,10 @@ msgstr ""
msgid "New Variant"
msgstr ""
+#: part/templatetags/inventree_extras.py:97
+msgid "Unknown database"
+msgstr ""
+
#: part/views.py:89
msgid "Add Related Part"
msgstr ""
@@ -4719,63 +4936,63 @@ msgstr ""
msgid "Part Pricing"
msgstr ""
-#: part/views.py:2081
+#: part/views.py:2089
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:2091
+#: part/views.py:2099
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:2098
+#: part/views.py:2106
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:2106
+#: part/views.py:2114
msgid "Create Part Parameter"
msgstr ""
-#: part/views.py:2156
+#: part/views.py:2164
msgid "Edit Part Parameter"
msgstr ""
-#: part/views.py:2170
+#: part/views.py:2178
msgid "Delete Part Parameter"
msgstr ""
-#: part/views.py:2230
+#: part/views.py:2238
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:2268
+#: part/views.py:2276
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:2274
+#: part/views.py:2282
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:2326
+#: part/views.py:2334
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:2427
+#: part/views.py:2435
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:2483
+#: part/views.py:2491
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:2502
+#: part/views.py:2510
msgid "Create BOM Item"
msgstr ""
-#: part/views.py:2572
+#: part/views.py:2580
msgid "Edit BOM item"
msgstr ""
-#: part/views.py:2628
+#: part/views.py:2636
msgid "Confim BOM item deletion"
msgstr ""
@@ -4877,17 +5094,17 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:1643
+#: stock/models.py:1742
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:89
-#: stock/models.py:1649
+#: stock/models.py:1748
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:92
-#: templates/js/order.js:195 templates/js/stock.js:986
+#: templates/js/order.js:195 templates/js/stock.js:984
msgid "Date"
msgstr ""
@@ -4899,22 +5116,22 @@ msgstr ""
msgid "Fail"
msgstr ""
-#: stock/api.py:199
+#: stock/api.py:212
#, python-brace-format
msgid "Updated stock for {n} items"
msgstr ""
-#: stock/api.py:268
+#: stock/api.py:281
#, python-brace-format
msgid "Moved {n} parts to {loc}"
msgstr ""
-#: stock/forms.py:114 stock/forms.py:406 stock/models.py:475
-#: stock/templates/stock/item_base.html:365 templates/js/stock.js:656
+#: stock/forms.py:114 stock/forms.py:418 stock/models.py:507
+#: stock/templates/stock/item_base.html:371 templates/js/stock.js:656
msgid "Expiry Date"
msgstr ""
-#: stock/forms.py:115 stock/forms.py:407
+#: stock/forms.py:115 stock/forms.py:419
msgid "Expiration date for this stock item"
msgstr ""
@@ -4942,8 +5159,8 @@ msgstr ""
msgid "Select test report template"
msgstr ""
-#: stock/forms.py:267 templates/js/table_filters.js:70
-#: templates/js/table_filters.js:133
+#: stock/forms.py:267 templates/js/table_filters.js:71
+#: templates/js/table_filters.js:134
msgid "Include sublocations"
msgstr ""
@@ -4999,243 +5216,187 @@ msgstr ""
msgid "Set the destination as the default location for selected parts"
msgstr ""
-#: stock/models.py:54 stock/models.py:513
+#: stock/models.py:54 stock/models.py:545
msgid "Owner"
msgstr ""
-#: stock/models.py:55 stock/models.py:514
+#: stock/models.py:55 stock/models.py:546
msgid "Select Owner"
msgstr ""
-#: stock/models.py:205
-msgid "Created stock item"
-msgstr ""
-
-#: stock/models.py:241
+#: stock/models.py:273
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:277
+#: stock/models.py:309
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:287 stock/models.py:296
+#: stock/models.py:319 stock/models.py:328
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:288
+#: stock/models.py:320
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:310
+#: stock/models.py:342
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:316
+#: stock/models.py:348
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:323
+#: stock/models.py:355
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:365
+#: stock/models.py:397
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:374
+#: stock/models.py:406
msgid "Base part"
msgstr ""
-#: stock/models.py:383
+#: stock/models.py:415
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:388 stock/templates/stock/stock_app_base.html:8
+#: stock/models.py:420 stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:391
+#: stock/models.py:423
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:398
+#: stock/models.py:430
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:403 stock/templates/stock/item_base.html:259
+#: stock/models.py:435 stock/templates/stock/item_base.html:265
msgid "Installed In"
msgstr ""
-#: stock/models.py:406
+#: stock/models.py:438
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:422
+#: stock/models.py:454
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:434
+#: stock/models.py:466
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:438
+#: stock/models.py:470
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:447
+#: stock/models.py:479
msgid "Source Build"
msgstr ""
-#: stock/models.py:449
+#: stock/models.py:481
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:460
+#: stock/models.py:492
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:463
+#: stock/models.py:495
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:469
+#: stock/models.py:501
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:476
+#: stock/models.py:508
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:489
+#: stock/models.py:521
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:489
+#: stock/models.py:521
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:499 stock/templates/stock/item_notes.html:13
+#: stock/models.py:531 stock/templates/stock/item_notes.html:13
#: stock/templates/stock/navbar.html:54
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:509
+#: stock/models.py:541
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:614
-msgid "Assigned to Customer"
-msgstr ""
-
-#: stock/models.py:616
-msgid "Manually assigned to customer"
-msgstr ""
-
-#: stock/models.py:629
-msgid "Returned from customer"
-msgstr ""
-
-#: stock/models.py:631
-msgid "Returned to location"
-msgstr ""
-
-#: stock/models.py:792
-msgid "Installed into stock item"
-msgstr ""
-
-#: stock/models.py:800
-msgid "Installed stock item"
-msgstr ""
-
-#: stock/models.py:824
-msgid "Uninstalled stock item"
-msgstr ""
-
-#: stock/models.py:843
-msgid "Uninstalled into location"
-msgstr ""
-
-#: stock/models.py:944
+#: stock/models.py:1009
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:950
+#: stock/models.py:1015
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:956
+#: stock/models.py:1021
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:959
+#: stock/models.py:1024
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:962
+#: stock/models.py:1027
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:994
-msgid "Add serial number"
-msgstr ""
-
-#: stock/models.py:997
+#: stock/models.py:1034
#, python-brace-format
-msgid "Serialized {n} items"
+msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1075
-msgid "Split from existing stock"
-msgstr ""
-
-#: stock/models.py:1113
+#: stock/models.py:1192
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1556
-msgid "Title"
-msgstr ""
-
-#: stock/models.py:1556
-msgid "Tracking entry title"
-msgstr ""
-
-#: stock/models.py:1558
+#: stock/models.py:1666
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1560
-msgid "Link to external page for further information"
-msgstr ""
-
-#: stock/models.py:1620
+#: stock/models.py:1719
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1626
+#: stock/models.py:1725
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1644
+#: stock/models.py:1743
msgid "Test name"
msgstr ""
-#: stock/models.py:1650 templates/js/table_filters.js:212
+#: stock/models.py:1749 templates/js/table_filters.js:213
msgid "Test result"
msgstr ""
-#: stock/models.py:1656
+#: stock/models.py:1755
msgid "Test output value"
msgstr ""
-#: stock/models.py:1663
+#: stock/models.py:1762
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1669
+#: stock/models.py:1768
msgid "Test notes"
msgstr ""
@@ -5290,134 +5451,134 @@ msgid "This stock item will be automatically deleted when all stock is depleted.
msgstr ""
#: stock/templates/stock/item_base.html:95
-#: stock/templates/stock/item_base.html:369 templates/js/table_filters.js:145
+#: stock/templates/stock/item_base.html:375 templates/js/table_filters.js:146
msgid "Expired"
msgstr ""
-#: stock/templates/stock/item_base.html:99
-#: stock/templates/stock/item_base.html:371 templates/js/table_filters.js:150
+#: stock/templates/stock/item_base.html:105
+#: stock/templates/stock/item_base.html:377 templates/js/table_filters.js:151
msgid "Stale"
msgstr ""
-#: stock/templates/stock/item_base.html:136 templates/js/barcode.js:309
+#: stock/templates/stock/item_base.html:142 templates/js/barcode.js:309
#: templates/js/barcode.js:314
msgid "Unlink Barcode"
msgstr ""
-#: stock/templates/stock/item_base.html:138
+#: stock/templates/stock/item_base.html:144
msgid "Link Barcode"
msgstr ""
-#: stock/templates/stock/item_base.html:140 templates/stock_table.html:31
+#: stock/templates/stock/item_base.html:146 templates/stock_table.html:31
msgid "Scan to Location"
msgstr ""
-#: stock/templates/stock/item_base.html:147
+#: stock/templates/stock/item_base.html:153
msgid "Printing actions"
msgstr ""
-#: stock/templates/stock/item_base.html:151
+#: stock/templates/stock/item_base.html:157
#: stock/templates/stock/item_tests.html:27
msgid "Test Report"
msgstr ""
-#: stock/templates/stock/item_base.html:160
+#: stock/templates/stock/item_base.html:166
msgid "Stock adjustment actions"
msgstr ""
-#: stock/templates/stock/item_base.html:164
+#: stock/templates/stock/item_base.html:170
#: stock/templates/stock/location.html:65 templates/stock_table.html:57
msgid "Count stock"
msgstr ""
-#: stock/templates/stock/item_base.html:167 templates/stock_table.html:55
+#: stock/templates/stock/item_base.html:173 templates/stock_table.html:55
msgid "Add stock"
msgstr ""
-#: stock/templates/stock/item_base.html:170 templates/stock_table.html:56
+#: stock/templates/stock/item_base.html:176 templates/stock_table.html:56
msgid "Remove stock"
msgstr ""
-#: stock/templates/stock/item_base.html:173
+#: stock/templates/stock/item_base.html:179
msgid "Serialize stock"
msgstr ""
-#: stock/templates/stock/item_base.html:177
+#: stock/templates/stock/item_base.html:183
msgid "Transfer stock"
msgstr ""
-#: stock/templates/stock/item_base.html:180
+#: stock/templates/stock/item_base.html:186
msgid "Assign to customer"
msgstr ""
-#: stock/templates/stock/item_base.html:183
+#: stock/templates/stock/item_base.html:189
msgid "Return to stock"
msgstr ""
-#: stock/templates/stock/item_base.html:187 templates/js/stock.js:1299
+#: stock/templates/stock/item_base.html:193 templates/js/stock.js:1421
msgid "Uninstall stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:187
+#: stock/templates/stock/item_base.html:193
msgid "Uninstall"
msgstr ""
-#: stock/templates/stock/item_base.html:196
+#: stock/templates/stock/item_base.html:202
#: stock/templates/stock/location.html:62
msgid "Stock actions"
msgstr ""
-#: stock/templates/stock/item_base.html:199
+#: stock/templates/stock/item_base.html:205
msgid "Convert to variant"
msgstr ""
-#: stock/templates/stock/item_base.html:202
+#: stock/templates/stock/item_base.html:208
msgid "Duplicate stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:204
+#: stock/templates/stock/item_base.html:210
msgid "Edit stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:207
+#: stock/templates/stock/item_base.html:213
msgid "Delete stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:219
+#: stock/templates/stock/item_base.html:225
msgid "Stock Item Details"
msgstr ""
-#: stock/templates/stock/item_base.html:278 templates/js/build.js:498
+#: stock/templates/stock/item_base.html:284 templates/js/build.js:498
msgid "No location set"
msgstr ""
-#: stock/templates/stock/item_base.html:285
+#: stock/templates/stock/item_base.html:291
msgid "Barcode Identifier"
msgstr ""
-#: stock/templates/stock/item_base.html:327
+#: stock/templates/stock/item_base.html:333
msgid "Parent Item"
msgstr ""
-#: stock/templates/stock/item_base.html:369
+#: stock/templates/stock/item_base.html:375
#, python-format
msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:371
+#: stock/templates/stock/item_base.html:377
#, python-format
msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:378 templates/js/stock.js:662
+#: stock/templates/stock/item_base.html:384 templates/js/stock.js:662
msgid "Last Updated"
msgstr ""
-#: stock/templates/stock/item_base.html:383
+#: stock/templates/stock/item_base.html:389
msgid "Last Stocktake"
msgstr ""
-#: stock/templates/stock/item_base.html:387
+#: stock/templates/stock/item_base.html:393
msgid "No stocktake performed"
msgstr ""
@@ -5528,7 +5689,7 @@ msgid "Stock Details"
msgstr ""
#: stock/templates/stock/location.html:117 templates/InvenTree/search.html:279
-#: templates/stats.html:76 users/models.py:41
+#: templates/stats.html:97 users/models.py:41
msgid "Stock Locations"
msgstr ""
@@ -5568,7 +5729,7 @@ msgstr ""
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:1332
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:1364
msgid "Convert Stock Item"
msgstr ""
@@ -5601,8 +5762,8 @@ msgstr ""
msgid "Edit Stock Location"
msgstr ""
-#: stock/views.py:230 stock/views.py:1322 stock/views.py:1433
-#: stock/views.py:1798
+#: stock/views.py:230 stock/views.py:1343 stock/views.py:1465
+#: stock/views.py:1830
msgid "Owner is required (ownership control is enabled)"
msgstr ""
@@ -5768,43 +5929,47 @@ msgstr ""
msgid "Deleted {n} stock items"
msgstr ""
-#: stock/views.py:1224
+#: stock/views.py:1222
+msgid "Edit Stock Item Status"
+msgstr ""
+
+#: stock/views.py:1245
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:1450
+#: stock/views.py:1482
msgid "Serialize Stock"
msgstr ""
-#: stock/views.py:1543 templates/js/build.js:244
+#: stock/views.py:1575 templates/js/build.js:244
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1685
+#: stock/views.py:1717
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1767
+#: stock/views.py:1799
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1867
+#: stock/views.py:1899
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:1880
+#: stock/views.py:1912
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1891
+#: stock/views.py:1923
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1898
+#: stock/views.py:1930
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1907
+#: stock/views.py:1939
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -5902,8 +6067,7 @@ msgstr ""
#: templates/InvenTree/settings/appearance.html:29
#, python-format
-msgid ""
-"\n"
+msgid "\n"
" The CSS sheet \"%(invalid_color_theme)s.css\" for the currently selected color theme was not found.
\n"
" Please select another color theme :)\n"
" "
@@ -6106,9 +6270,17 @@ msgstr ""
msgid "Submit Bug Report"
msgstr ""
-#: templates/about.html:82 templates/js/modals.js:550
-#: templates/js/modals.js:809 templates/modals.html:28 templates/modals.html:52
-#: templates/modals.html:93
+#: templates/about.html:80 templates/clip.html:4
+msgid "copy to clipboard"
+msgstr ""
+
+#: templates/about.html:80
+msgid "copy version information"
+msgstr ""
+
+#: templates/about.html:90 templates/js/modals.js:568
+#: templates/js/modals.js:846 templates/modals.html:29 templates/modals.html:54
+#: templates/modals.html:97
msgid "Close"
msgstr ""
@@ -6116,10 +6288,6 @@ msgstr ""
msgid "Add Attachment"
msgstr ""
-#: templates/attachment_table.html:15
-msgid "File"
-msgstr ""
-
#: templates/attachment_table.html:17
msgid "Uploaded"
msgstr ""
@@ -6172,7 +6340,7 @@ msgstr ""
msgid "Unknown response from server"
msgstr ""
-#: templates/js/barcode.js:119 templates/js/modals.js:857
+#: templates/js/barcode.js:119 templates/js/modals.js:901
msgid "Invalid server response"
msgstr ""
@@ -6317,7 +6485,7 @@ msgstr ""
#: templates/js/build.js:708 templates/js/part.js:324 templates/js/part.js:546
#: templates/js/stock.js:511 templates/js/stock.js:938
-#: templates/js/stock.js:1331
+#: templates/js/stock.js:1453
msgid "Select"
msgstr ""
@@ -6415,96 +6583,96 @@ msgstr ""
msgid "Select Label Template"
msgstr ""
-#: templates/js/modals.js:256
+#: templates/js/modals.js:265
msgid "Waiting for server..."
msgstr ""
-#: templates/js/modals.js:406
+#: templates/js/modals.js:424
msgid "Show Error Information"
msgstr ""
-#: templates/js/modals.js:473 templates/modals.html:73
+#: templates/js/modals.js:491 templates/modals.html:76
msgid "Accept"
msgstr ""
-#: templates/js/modals.js:474 templates/modals.html:72
+#: templates/js/modals.js:492 templates/modals.html:75
msgid "Cancel"
msgstr ""
-#: templates/js/modals.js:538
+#: templates/js/modals.js:556
msgid "Loading Data"
msgstr ""
-#: templates/js/modals.js:549 templates/js/modals.js:808
-#: templates/modals.html:29 templates/modals.html:53
+#: templates/js/modals.js:567 templates/js/modals.js:845
+#: templates/modals.html:30 templates/modals.html:55
msgid "Submit"
msgstr ""
-#: templates/js/modals.js:760
+#: templates/js/modals.js:797
msgid "Invalid response from server"
msgstr ""
-#: templates/js/modals.js:760
+#: templates/js/modals.js:797
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/modals.js:773
+#: templates/js/modals.js:810
msgid "Error posting form data"
msgstr ""
-#: templates/js/modals.js:857
+#: templates/js/modals.js:901
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/modals.js:867
+#: templates/js/modals.js:911
msgid "No Response"
msgstr ""
-#: templates/js/modals.js:868
+#: templates/js/modals.js:912
msgid "No response from the InvenTree server"
msgstr ""
-#: templates/js/modals.js:872
+#: templates/js/modals.js:916
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/modals.js:873
+#: templates/js/modals.js:917
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/modals.js:877
+#: templates/js/modals.js:921
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/modals.js:878
+#: templates/js/modals.js:922
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/modals.js:882
+#: templates/js/modals.js:926
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/modals.js:883
+#: templates/js/modals.js:927
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/modals.js:887
+#: templates/js/modals.js:931
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/modals.js:888
+#: templates/js/modals.js:932
msgid "The requested resource could not be located on the server"
msgstr ""
-#: templates/js/modals.js:892
+#: templates/js/modals.js:936
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/modals.js:893
+#: templates/js/modals.js:937
msgid "Connection timeout while requesting data from server"
msgstr ""
-#: templates/js/modals.js:896
+#: templates/js/modals.js:940
msgid "Error requesting form data"
msgstr ""
@@ -6548,7 +6716,7 @@ msgstr ""
msgid "No category"
msgstr ""
-#: templates/js/part.js:409 templates/js/table_filters.js:318
+#: templates/js/part.js:409 templates/js/table_filters.js:319
msgid "Low stock"
msgstr ""
@@ -6746,7 +6914,7 @@ msgstr ""
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/stock.js:620 templates/js/table_filters.js:138
+#: templates/js/stock.js:620 templates/js/table_filters.js:139
msgid "Depleted"
msgstr ""
@@ -6770,189 +6938,213 @@ msgstr ""
msgid "Status code must be selected"
msgstr ""
-#: templates/js/stock.js:1050
+#: templates/js/stock.js:994
+msgid "Invalid date"
+msgstr ""
+
+#: templates/js/stock.js:1036
+msgid "Location no longer exists"
+msgstr ""
+
+#: templates/js/stock.js:1055
+msgid "Purchase order no longer exists"
+msgstr ""
+
+#: templates/js/stock.js:1074
+msgid "Customer no longer exists"
+msgstr ""
+
+#: templates/js/stock.js:1092
+msgid "Stock item no longer exists"
+msgstr ""
+
+#: templates/js/stock.js:1115
+msgid "Added"
+msgstr ""
+
+#: templates/js/stock.js:1123
+msgid "Removed"
+msgstr ""
+
+#: templates/js/stock.js:1155
msgid "No user information"
msgstr ""
-#: templates/js/stock.js:1060
+#: templates/js/stock.js:1167
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/stock.js:1061
+#: templates/js/stock.js:1168
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/stock.js:1170
+#: templates/js/stock.js:1292
msgid "Create New Location"
msgstr ""
-#: templates/js/stock.js:1269
+#: templates/js/stock.js:1391
msgid "Serial"
msgstr ""
-#: templates/js/stock.js:1362 templates/js/table_filters.js:171
+#: templates/js/stock.js:1484 templates/js/table_filters.js:172
msgid "Installed"
msgstr ""
-#: templates/js/stock.js:1387
+#: templates/js/stock.js:1509
msgid "Install item"
msgstr ""
-#: templates/js/table_filters.js:42
+#: templates/js/table_filters.js:43
msgid "Trackable Part"
msgstr ""
-#: templates/js/table_filters.js:46
+#: templates/js/table_filters.js:47
msgid "Validated"
msgstr ""
-#: templates/js/table_filters.js:71
+#: templates/js/table_filters.js:72
msgid "Include locations"
msgstr ""
-#: templates/js/table_filters.js:81 templates/js/table_filters.js:82
-#: templates/js/table_filters.js:295
+#: templates/js/table_filters.js:82 templates/js/table_filters.js:83
+#: templates/js/table_filters.js:296
msgid "Include subcategories"
msgstr ""
-#: templates/js/table_filters.js:92 templates/js/table_filters.js:181
+#: templates/js/table_filters.js:93 templates/js/table_filters.js:182
msgid "Is Serialized"
msgstr ""
-#: templates/js/table_filters.js:95 templates/js/table_filters.js:188
+#: templates/js/table_filters.js:96 templates/js/table_filters.js:189
msgid "Serial number GTE"
msgstr ""
-#: templates/js/table_filters.js:96 templates/js/table_filters.js:189
+#: templates/js/table_filters.js:97 templates/js/table_filters.js:190
msgid "Serial number greater than or equal to"
msgstr ""
-#: templates/js/table_filters.js:99 templates/js/table_filters.js:192
+#: templates/js/table_filters.js:100 templates/js/table_filters.js:193
msgid "Serial number LTE"
msgstr ""
-#: templates/js/table_filters.js:100 templates/js/table_filters.js:193
+#: templates/js/table_filters.js:101 templates/js/table_filters.js:194
msgid "Serial number less than or equal to"
msgstr ""
-#: templates/js/table_filters.js:103 templates/js/table_filters.js:104
-#: templates/js/table_filters.js:184 templates/js/table_filters.js:185
+#: templates/js/table_filters.js:104 templates/js/table_filters.js:105
+#: templates/js/table_filters.js:185 templates/js/table_filters.js:186
msgid "Serial number"
msgstr ""
-#: templates/js/table_filters.js:108 templates/js/table_filters.js:202
+#: templates/js/table_filters.js:109 templates/js/table_filters.js:203
msgid "Batch code"
msgstr ""
-#: templates/js/table_filters.js:118 templates/js/table_filters.js:285
+#: templates/js/table_filters.js:119 templates/js/table_filters.js:286
msgid "Active parts"
msgstr ""
-#: templates/js/table_filters.js:119
+#: templates/js/table_filters.js:120
msgid "Show stock for active parts"
msgstr ""
-#: templates/js/table_filters.js:124
+#: templates/js/table_filters.js:125
msgid "Part is an assembly"
msgstr ""
-#: templates/js/table_filters.js:128
+#: templates/js/table_filters.js:129
msgid "Is allocated"
msgstr ""
-#: templates/js/table_filters.js:129
+#: templates/js/table_filters.js:130
msgid "Item has been allocated"
msgstr ""
-#: templates/js/table_filters.js:134
+#: templates/js/table_filters.js:135
msgid "Include stock in sublocations"
msgstr ""
-#: templates/js/table_filters.js:139
+#: templates/js/table_filters.js:140
msgid "Show stock items which are depleted"
msgstr ""
-#: templates/js/table_filters.js:146
+#: templates/js/table_filters.js:147
msgid "Show stock items which have expired"
msgstr ""
-#: templates/js/table_filters.js:151
+#: templates/js/table_filters.js:152
msgid "Show stock which is close to expiring"
msgstr ""
-#: templates/js/table_filters.js:157
+#: templates/js/table_filters.js:158
msgid "Show items which are in stock"
msgstr ""
-#: templates/js/table_filters.js:161
+#: templates/js/table_filters.js:162
msgid "In Production"
msgstr ""
-#: templates/js/table_filters.js:162
+#: templates/js/table_filters.js:163
msgid "Show items which are in production"
msgstr ""
-#: templates/js/table_filters.js:166
+#: templates/js/table_filters.js:167
msgid "Include Variants"
msgstr ""
-#: templates/js/table_filters.js:167
+#: templates/js/table_filters.js:168
msgid "Include stock items for variant parts"
msgstr ""
-#: templates/js/table_filters.js:172
+#: templates/js/table_filters.js:173
msgid "Show stock items which are installed in another item"
msgstr ""
-#: templates/js/table_filters.js:176
-msgid "Sent to customer"
-msgstr ""
-
-#: templates/js/table_filters.js:177
+#: templates/js/table_filters.js:178
msgid "Show items which have been assigned to a customer"
msgstr ""
-#: templates/js/table_filters.js:197 templates/js/table_filters.js:198
+#: templates/js/table_filters.js:198 templates/js/table_filters.js:199
msgid "Stock status"
msgstr ""
-#: templates/js/table_filters.js:231
+#: templates/js/table_filters.js:232
msgid "Build status"
msgstr ""
-#: templates/js/table_filters.js:250 templates/js/table_filters.js:267
+#: templates/js/table_filters.js:251 templates/js/table_filters.js:268
msgid "Order status"
msgstr ""
-#: templates/js/table_filters.js:255 templates/js/table_filters.js:272
+#: templates/js/table_filters.js:256 templates/js/table_filters.js:273
msgid "Outstanding"
msgstr ""
-#: templates/js/table_filters.js:296
+#: templates/js/table_filters.js:297
msgid "Include parts in subcategories"
msgstr ""
-#: templates/js/table_filters.js:300
+#: templates/js/table_filters.js:301
msgid "Has IPN"
msgstr ""
-#: templates/js/table_filters.js:301
+#: templates/js/table_filters.js:302
msgid "Part has internal part number"
msgstr ""
-#: templates/js/table_filters.js:306
+#: templates/js/table_filters.js:307
msgid "Show active parts"
msgstr ""
-#: templates/js/table_filters.js:314
+#: templates/js/table_filters.js:315
msgid "Stock available"
msgstr ""
-#: templates/js/table_filters.js:330
+#: templates/js/table_filters.js:331
msgid "Starred"
msgstr ""
-#: templates/js/table_filters.js:342
+#: templates/js/table_filters.js:343
msgid "Purchasable"
msgstr ""
@@ -7009,7 +7201,7 @@ msgstr ""
msgid "All"
msgstr ""
-#: templates/modals.html:21 templates/modals.html:46
+#: templates/modals.html:21 templates/modals.html:47
msgid "Form errors exist"
msgstr ""
@@ -7121,31 +7313,47 @@ msgstr ""
msgid "Instance Name"
msgstr ""
-#: templates/stats.html:19
-msgid "Server status"
+#: templates/stats.html:18
+msgid "Database"
msgstr ""
-#: templates/stats.html:22
-msgid "Healthy"
+#: templates/stats.html:26
+msgid "Server is running in debug mode"
msgstr ""
-#: templates/stats.html:24
-msgid "Issues detected"
-msgstr ""
-
-#: templates/stats.html:31
-msgid "Background Worker"
+#: templates/stats.html:33
+msgid "Docker Mode"
msgstr ""
#: templates/stats.html:34
-msgid "Background worker not running"
+msgid "Server is deployed using docker"
msgstr ""
-#: templates/stats.html:42
-msgid "Email Settings"
+#: templates/stats.html:40
+msgid "Server status"
+msgstr ""
+
+#: templates/stats.html:43
+msgid "Healthy"
msgstr ""
#: templates/stats.html:45
+msgid "Issues detected"
+msgstr ""
+
+#: templates/stats.html:52
+msgid "Background Worker"
+msgstr ""
+
+#: templates/stats.html:55
+msgid "Background worker not running"
+msgstr ""
+
+#: templates/stats.html:63
+msgid "Email Settings"
+msgstr ""
+
+#: templates/stats.html:66
msgid "Email settings not configured"
msgstr ""
@@ -7264,3 +7472,4 @@ msgstr ""
#: users/models.py:187
msgid "Permission to delete items"
msgstr ""
+
diff --git a/InvenTree/locale/zh/LC_MESSAGES/django.po b/InvenTree/locale/zh/LC_MESSAGES/django.po
index 2075ec9326..c897b54b5a 100644
--- a/InvenTree/locale/zh/LC_MESSAGES/django.po
+++ b/InvenTree/locale/zh/LC_MESSAGES/django.po
@@ -1,9 +1,9 @@
msgid ""
msgstr ""
-"Project-Id-Version: \n"
+"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-05-05 17:33+1000\n"
-"PO-Revision-Date: 2021-04-21 09:33\n"
+"POT-Creation-Date: 2021-05-17 10:46+0000\n"
+"PO-Revision-Date: 2021-05-17 14:58\n"
"Last-Translator: \n"
"Language-Team: Chinese Simplified\n"
"Language: zh_CN\n"
@@ -11,33 +11,38 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Crowdin-Project: inventree\n"
+"X-Crowdin-Project-ID: 452300\n"
+"X-Crowdin-Language: zh-CN\n"
+"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
+"X-Crowdin-File-ID: 138\n"
#: InvenTree/api.py:64
msgid "API endpoint not found"
-msgstr ""
+msgstr "未找到 API 端点"
#: InvenTree/api.py:110
msgid "No action specified"
-msgstr ""
+msgstr "未指定操作"
#: InvenTree/api.py:124
msgid "No matching action found"
-msgstr ""
+msgstr "未找到指定操作"
#: InvenTree/fields.py:44
msgid "Enter date"
-msgstr ""
+msgstr "输入日期"
#: InvenTree/forms.py:110 build/forms.py:102 build/forms.py:123
#: build/forms.py:145 build/forms.py:169 build/forms.py:185 build/forms.py:227
#: order/forms.py:27 order/forms.py:38 order/forms.py:49 order/forms.py:60
#: order/forms.py:71 part/forms.py:134
msgid "Confirm"
-msgstr ""
+msgstr "确认"
#: InvenTree/forms.py:126
msgid "Confirm delete"
-msgstr ""
+msgstr "确认删除"
#: InvenTree/forms.py:127
msgid "Confirm item deletion"
@@ -45,35 +50,35 @@ msgstr ""
#: InvenTree/forms.py:159 templates/registration/login.html:77
msgid "Enter password"
-msgstr ""
+msgstr "输入密码"
#: InvenTree/forms.py:160
msgid "Enter new password"
-msgstr ""
+msgstr "输入新密码"
#: InvenTree/forms.py:167
msgid "Confirm password"
-msgstr ""
+msgstr "确认密码"
#: InvenTree/forms.py:168
msgid "Confirm new password"
-msgstr ""
+msgstr "确认新密码"
#: InvenTree/forms.py:203
msgid "Apply Theme"
-msgstr ""
+msgstr "应用主题"
#: InvenTree/forms.py:233
msgid "Select Category"
-msgstr ""
+msgstr "选择分类"
#: InvenTree/helpers.py:377
#, python-brace-format
msgid "Duplicate serial: {n}"
msgstr ""
-#: InvenTree/helpers.py:384 order/models.py:245 order/models.py:353
-#: stock/views.py:1763
+#: InvenTree/helpers.py:384 order/models.py:245 order/models.py:355
+#: stock/views.py:1795
msgid "Invalid quantity provided"
msgstr ""
@@ -94,53 +99,53 @@ msgstr ""
#: InvenTree/helpers.py:453
msgid "No serial numbers found"
-msgstr ""
+msgstr "未找到序列号"
#: InvenTree/helpers.py:457
#, python-brace-format
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr ""
-#: InvenTree/models.py:59 stock/models.py:1662
+#: InvenTree/models.py:59 stock/models.py:1761
msgid "Attachment"
-msgstr ""
+msgstr "附件"
#: InvenTree/models.py:60
msgid "Select file to attach"
-msgstr ""
+msgstr "选择附件"
#: InvenTree/models.py:62 templates/attachment_table.html:16
msgid "Comment"
-msgstr ""
+msgstr "注释"
#: InvenTree/models.py:62
msgid "File comment"
-msgstr ""
+msgstr "文件注释"
-#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:1908
+#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:1946
#: report/templates/report/inventree_test_report_base.html:91
-#: templates/js/stock.js:1041
+#: templates/js/stock.js:1146
msgid "User"
-msgstr ""
+msgstr "用户"
#: InvenTree/models.py:72
msgid "upload date"
-msgstr ""
+msgstr "上传日期"
-#: InvenTree/models.py:107 InvenTree/models.py:108 label/models.py:101
-#: part/models.py:686 part/models.py:2049 part/templates/part/params.html:27
+#: InvenTree/models.py:107 InvenTree/models.py:108 label/models.py:102
+#: part/models.py:686 part/models.py:2087 part/templates/part/params.html:27
#: report/models.py:179 templates/InvenTree/search.html:137
#: templates/InvenTree/search.html:289 templates/js/part.js:110
#: templates/js/part.js:553 templates/js/stock.js:944
msgid "Name"
-msgstr ""
+msgstr "名称"
#: InvenTree/models.py:114 build/models.py:134
-#: build/templates/build/detail.html:21 company/models.py:342
-#: company/models.py:494 company/templates/company/detail.html:27
+#: build/templates/build/detail.html:21 company/models.py:339
+#: company/models.py:491 company/templates/company/detail.html:27
#: company/templates/company/manufacturer_part_base.html:72
#: company/templates/company/supplier_part_base.html:71
-#: company/templates/company/supplier_part_detail.html:31 label/models.py:108
+#: company/templates/company/supplier_part_detail.html:31 label/models.py:109
#: order/models.py:101 order/templates/order/purchase_order_detail.html:143
#: part/models.py:710 part/templates/part/detail.html:54
#: part/templates/part/set_category.html:14 report/models.py:192
@@ -154,7 +159,7 @@ msgstr ""
#: templates/js/order.js:280 templates/js/part.js:169 templates/js/part.js:252
#: templates/js/part.js:371 templates/js/part.js:565 templates/js/part.js:643
#: templates/js/stock.js:554 templates/js/stock.js:956
-#: templates/js/stock.js:1015
+#: templates/js/stock.js:1001
msgid "Description"
msgstr ""
@@ -166,23 +171,23 @@ msgstr ""
msgid "parent"
msgstr ""
-#: InvenTree/settings.py:491
+#: InvenTree/settings.py:501
msgid "English"
msgstr ""
-#: InvenTree/settings.py:492
+#: InvenTree/settings.py:502
msgid "French"
msgstr ""
-#: InvenTree/settings.py:493
+#: InvenTree/settings.py:503
msgid "German"
msgstr ""
-#: InvenTree/settings.py:494
+#: InvenTree/settings.py:504
msgid "Polish"
msgstr ""
-#: InvenTree/settings.py:495
+#: InvenTree/settings.py:505
msgid "Turkish"
msgstr ""
@@ -198,60 +203,136 @@ msgstr ""
msgid "InvenTree system health checks failed"
msgstr ""
-#: InvenTree/status_codes.py:102 InvenTree/status_codes.py:143
-#: InvenTree/status_codes.py:236
+#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:145
+#: InvenTree/status_codes.py:314
msgid "Pending"
msgstr ""
-#: InvenTree/status_codes.py:103
+#: InvenTree/status_codes.py:105
msgid "Placed"
msgstr ""
-#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:239
+#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:317
msgid "Complete"
msgstr ""
-#: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145
-#: InvenTree/status_codes.py:238
+#: InvenTree/status_codes.py:107 InvenTree/status_codes.py:147
+#: InvenTree/status_codes.py:316
msgid "Cancelled"
msgstr ""
-#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146
-#: InvenTree/status_codes.py:188
+#: InvenTree/status_codes.py:108 InvenTree/status_codes.py:148
+#: InvenTree/status_codes.py:190
msgid "Lost"
msgstr ""
-#: InvenTree/status_codes.py:107 InvenTree/status_codes.py:147
-#: InvenTree/status_codes.py:190
+#: InvenTree/status_codes.py:109 InvenTree/status_codes.py:149
+#: InvenTree/status_codes.py:192
msgid "Returned"
msgstr ""
-#: InvenTree/status_codes.py:144
+#: InvenTree/status_codes.py:146
#: order/templates/order/sales_order_base.html:124
msgid "Shipped"
msgstr ""
-#: InvenTree/status_codes.py:184
+#: InvenTree/status_codes.py:186
msgid "OK"
msgstr ""
-#: InvenTree/status_codes.py:185
+#: InvenTree/status_codes.py:187
msgid "Attention needed"
msgstr ""
-#: InvenTree/status_codes.py:186
+#: InvenTree/status_codes.py:188
msgid "Damaged"
msgstr ""
-#: InvenTree/status_codes.py:187
+#: InvenTree/status_codes.py:189
msgid "Destroyed"
msgstr ""
-#: InvenTree/status_codes.py:189
+#: InvenTree/status_codes.py:191
msgid "Rejected"
msgstr ""
-#: InvenTree/status_codes.py:237
+#: InvenTree/status_codes.py:272
+msgid "Legacy stock tracking entry"
+msgstr ""
+
+#: InvenTree/status_codes.py:274
+msgid "Stock item created"
+msgstr ""
+
+#: InvenTree/status_codes.py:276
+msgid "Edited stock item"
+msgstr ""
+
+#: InvenTree/status_codes.py:277
+msgid "Assigned serial number"
+msgstr ""
+
+#: InvenTree/status_codes.py:279
+msgid "Stock counted"
+msgstr ""
+
+#: InvenTree/status_codes.py:280
+msgid "Stock manually added"
+msgstr ""
+
+#: InvenTree/status_codes.py:281
+msgid "Stock manually removed"
+msgstr ""
+
+#: InvenTree/status_codes.py:283
+msgid "Location changed"
+msgstr ""
+
+#: InvenTree/status_codes.py:285
+msgid "Installed into assembly"
+msgstr ""
+
+#: InvenTree/status_codes.py:286
+msgid "Removed from assembly"
+msgstr ""
+
+#: InvenTree/status_codes.py:288
+msgid "Installed component item"
+msgstr ""
+
+#: InvenTree/status_codes.py:289
+msgid "Removed component item"
+msgstr ""
+
+#: InvenTree/status_codes.py:291
+msgid "Split from parent item"
+msgstr ""
+
+#: InvenTree/status_codes.py:292
+msgid "Split child item"
+msgstr ""
+
+#: InvenTree/status_codes.py:294 templates/js/table_filters.js:177
+msgid "Sent to customer"
+msgstr ""
+
+#: InvenTree/status_codes.py:295
+msgid "Returned from customer"
+msgstr ""
+
+#: InvenTree/status_codes.py:297
+msgid "Build order output created"
+msgstr ""
+
+#: InvenTree/status_codes.py:298
+msgid "Build order output completed"
+msgstr ""
+
+#: InvenTree/status_codes.py:300
+msgid "Received against purchase order"
+msgstr ""
+
+#: InvenTree/status_codes.py:315
msgid "Production"
msgstr ""
@@ -270,7 +351,8 @@ msgstr ""
#: InvenTree/validators.py:77 InvenTree/validators.py:91
#: InvenTree/validators.py:105
-msgid "Reference must match pattern"
+#, python-brace-format
+msgid "Reference must match pattern {pattern}"
msgstr ""
#: InvenTree/validators.py:113
@@ -376,35 +458,35 @@ msgstr ""
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1241
+#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1245
#: build/templates/build/allocation_card.html:23
#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:123
-#: build/templates/build/detail.html:31 common/models.py:703
+#: build/templates/build/detail.html:31 common/models.py:705
#: company/forms.py:176 company/templates/company/supplier_part_pricing.html:77
-#: order/forms.py:188 order/forms.py:205 order/forms.py:239 order/forms.py:261
-#: order/forms.py:278 order/models.py:603 order/models.py:794
+#: order/forms.py:188 order/forms.py:205 order/forms.py:240 order/forms.py:262
+#: order/forms.py:279 order/models.py:614 order/models.py:815
+#: order/templates/order/order_wizard/match_parts.html:29
#: order/templates/order/order_wizard/select_parts.html:32
#: order/templates/order/purchase_order_detail.html:175
#: order/templates/order/sales_order_detail.html:70
#: order/templates/order/sales_order_detail.html:77
-#: order/templates/order/sales_order_detail.html:159
-#: order/templates/order/sales_order_detail.html:224 part/forms.py:342
-#: part/forms.py:371 part/forms.py:387 part/models.py:2178
+#: order/templates/order/sales_order_detail.html:162
+#: order/templates/order/sales_order_detail.html:230 part/forms.py:342
+#: part/forms.py:371 part/forms.py:387 part/models.py:2216
#: part/templates/part/allocation.html:19
#: part/templates/part/allocation.html:53
-#: part/templates/part/part_pricing.html:11
-#: part/templates/part/part_pricing.html:18
+#: part/templates/part/part_pricing.html:13
#: part/templates/part/sale_prices.html:85
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:77
-#: stock/forms.py:175 stock/forms.py:308 stock/models.py:1566
-#: stock/templates/stock/item_base.html:244
+#: stock/forms.py:175 stock/forms.py:308
+#: stock/templates/stock/item_base.html:250
#: stock/templates/stock/stock_adjust.html:18 templates/js/barcode.js:364
#: templates/js/bom.js:205 templates/js/build.js:476 templates/js/build.js:1014
-#: templates/js/stock.js:1033 templates/js/stock.js:1271
+#: templates/js/stock.js:1131 templates/js/stock.js:1393
msgid "Quantity"
msgstr ""
@@ -416,7 +498,7 @@ msgstr ""
msgid "Enter quantity for build output"
msgstr ""
-#: build/forms.py:95 order/forms.py:233 stock/forms.py:118
+#: build/forms.py:95 order/forms.py:234 stock/forms.py:118
msgid "Serial Numbers"
msgstr ""
@@ -446,11 +528,11 @@ msgstr ""
#: build/forms.py:210 build/templates/build/auto_allocate.html:18
#: order/forms.py:82 stock/forms.py:347
-#: stock/templates/stock/item_base.html:274
+#: stock/templates/stock/item_base.html:280
#: stock/templates/stock/stock_adjust.html:17
#: templates/InvenTree/search.html:260 templates/js/barcode.js:363
#: templates/js/barcode.js:531 templates/js/build.js:490
-#: templates/js/stock.js:641
+#: templates/js/stock.js:641 templates/js/stock.js:1023
msgid "Location"
msgstr ""
@@ -459,12 +541,13 @@ msgid "Location of completed parts"
msgstr ""
#: build/forms.py:215 build/templates/build/build_base.html:128
-#: build/templates/build/detail.html:59 order/models.py:455
+#: build/templates/build/detail.html:59 order/models.py:466
#: order/templates/order/receive_parts.html:24
-#: stock/templates/stock/item_base.html:392 templates/InvenTree/search.html:252
+#: stock/templates/stock/item_base.html:398 templates/InvenTree/search.html:252
#: templates/js/barcode.js:119 templates/js/build.js:770
#: templates/js/order.js:187 templates/js/order.js:285
-#: templates/js/stock.js:628 templates/js/stock.js:1279
+#: templates/js/stock.js:628 templates/js/stock.js:1100
+#: templates/js/stock.js:1401
msgid "Status"
msgstr ""
@@ -517,9 +600,9 @@ msgstr ""
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:127 order/models.py:99 order/models.py:605
+#: build/models.py:127 order/models.py:99 order/models.py:616
#: order/templates/order/purchase_order_detail.html:170
-#: order/templates/order/sales_order_detail.html:219 part/models.py:2187
+#: order/templates/order/sales_order_detail.html:225 part/models.py:2225
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92 templates/js/bom.js:197
#: templates/js/build.js:565 templates/js/build.js:1008
@@ -541,16 +624,16 @@ msgstr ""
#: build/models.py:152 build/templates/build/auto_allocate.html:16
#: build/templates/build/build_base.html:118
-#: build/templates/build/detail.html:26 company/models.py:688
-#: order/models.py:647 order/models.py:679
+#: build/templates/build/detail.html:26 company/models.py:622
+#: order/models.py:658 order/models.py:691
#: order/templates/order/order_wizard/select_parts.html:30
#: order/templates/order/purchase_order_detail.html:131
#: order/templates/order/receive_parts.html:19
-#: order/templates/order/sales_order_detail.html:207 part/models.py:321
-#: part/models.py:1876 part/models.py:1888 part/models.py:1906
-#: part/models.py:1981 part/models.py:2077 part/models.py:2162
+#: order/templates/order/sales_order_detail.html:213 part/models.py:321
+#: part/models.py:1914 part/models.py:1926 part/models.py:1944
+#: part/models.py:2019 part/models.py:2115 part/models.py:2200
#: part/templates/part/part_app_base.html:8
-#: part/templates/part/part_pricing.html:14 part/templates/part/related.html:29
+#: part/templates/part/part_pricing.html:9 part/templates/part/related.html:29
#: part/templates/part/set_category.html:13
#: report/templates/report/inventree_build_order_base.html:110
#: report/templates/report/inventree_po_report.html:90
@@ -560,7 +643,7 @@ msgstr ""
#: templates/js/build.js:741 templates/js/build.js:981
#: templates/js/company.js:140 templates/js/company.js:238
#: templates/js/part.js:233 templates/js/part.js:338 templates/js/stock.js:523
-#: templates/js/stock.js:1343
+#: templates/js/stock.js:1465
msgid "Part"
msgstr ""
@@ -616,7 +699,7 @@ msgstr ""
msgid "Build status code"
msgstr ""
-#: build/models.py:212 stock/models.py:432
+#: build/models.py:212 stock/models.py:464
msgid "Batch Code"
msgstr ""
@@ -629,7 +712,7 @@ msgstr ""
msgid "Creation Date"
msgstr ""
-#: build/models.py:223 order/models.py:461
+#: build/models.py:223 order/models.py:472
msgid "Target completion date"
msgstr ""
@@ -667,28 +750,28 @@ msgstr ""
#: company/templates/company/supplier_part_base.html:78
#: company/templates/company/supplier_part_detail.html:28
#: part/templates/part/detail.html:83 part/templates/part/part_base.html:101
-#: stock/models.py:426 stock/templates/stock/item_base.html:334
+#: stock/models.py:458 stock/templates/stock/item_base.html:340
msgid "External Link"
msgstr ""
-#: build/models.py:257 part/models.py:744 stock/models.py:428
+#: build/models.py:257 part/models.py:744 stock/models.py:460
msgid "Link to external URL"
msgstr ""
#: build/models.py:261 build/templates/build/navbar.html:53
-#: company/models.py:135 company/models.py:501
+#: company/models.py:132 company/models.py:498
#: company/templates/company/navbar.html:70
#: company/templates/company/navbar.html:73 order/models.py:123
-#: order/models.py:607 order/templates/order/po_navbar.html:29
+#: order/models.py:618 order/templates/order/po_navbar.html:29
#: order/templates/order/po_navbar.html:32
#: order/templates/order/purchase_order_detail.html:209
-#: order/templates/order/sales_order_detail.html:264
+#: order/templates/order/sales_order_detail.html:278
#: order/templates/order/so_navbar.html:33
#: order/templates/order/so_navbar.html:36 part/models.py:871
#: part/templates/part/navbar.html:128
#: report/templates/report/inventree_build_order_base.html:173
#: stock/forms.py:173 stock/forms.py:317 stock/forms.py:349 stock/forms.py:377
-#: stock/models.py:498 stock/models.py:1558 stock/models.py:1668
+#: stock/models.py:530 stock/models.py:1665 stock/models.py:1767
#: stock/templates/stock/navbar.html:57 templates/js/barcode.js:37
#: templates/js/bom.js:333 templates/js/stock.js:128 templates/js/stock.js:671
msgid "Notes"
@@ -710,75 +793,71 @@ msgstr ""
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:838
-msgid "Completed build output"
-msgstr ""
-
-#: build/models.py:1132
+#: build/models.py:1136
msgid "BuildItem must be unique for build, stock_item and install_into"
msgstr ""
-#: build/models.py:1157
-msgid "Build item must specify a build output, as master part is marked as trackable"
-msgstr ""
-
#: build/models.py:1161
-#, python-brace-format
-msgid "Selected stock item not found in BOM for part '{p}'"
+msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
#: build/models.py:1165
#, python-brace-format
+msgid "Selected stock item not found in BOM for part '{p}'"
+msgstr ""
+
+#: build/models.py:1169
+#, python-brace-format
msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
msgstr ""
-#: build/models.py:1172 order/models.py:768
+#: build/models.py:1176 order/models.py:789
msgid "StockItem is over-allocated"
msgstr ""
-#: build/models.py:1176 order/models.py:771
+#: build/models.py:1180 order/models.py:792
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1180
+#: build/models.py:1184
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1220 stock/templates/stock/item_base.html:306
+#: build/models.py:1224 stock/templates/stock/item_base.html:312
#: templates/InvenTree/search.html:183 templates/js/build.js:714
#: templates/navbar.html:29
msgid "Build"
msgstr ""
-#: build/models.py:1221
+#: build/models.py:1225
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1228 part/templates/part/allocation.html:18
+#: build/models.py:1232 part/templates/part/allocation.html:18
#: part/templates/part/allocation.html:24
#: part/templates/part/allocation.html:31
#: part/templates/part/allocation.html:49
#: stock/templates/stock/item_base.html:8
#: stock/templates/stock/item_base.html:93
-#: stock/templates/stock/item_base.html:328
+#: stock/templates/stock/item_base.html:334
#: stock/templates/stock/stock_adjust.html:16 templates/js/build.js:831
-#: templates/js/stock.js:1004 templates/js/stock.js:1262
+#: templates/js/stock.js:1082 templates/js/stock.js:1384
msgid "Stock Item"
msgstr ""
-#: build/models.py:1229
+#: build/models.py:1233
msgid "Source stock item"
msgstr ""
-#: build/models.py:1242
+#: build/models.py:1246
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1250
+#: build/models.py:1254
msgid "Install into"
msgstr ""
-#: build/models.py:1251
+#: build/models.py:1255
msgid "Destination stock item"
msgstr ""
@@ -812,7 +891,7 @@ msgstr ""
#: build/templates/build/allocate.html:30
#: company/templates/company/detail_manufacturer_part.html:33
-#: company/templates/company/detail_supplier_part.html:32 order/views.py:795
+#: company/templates/company/detail_supplier_part.html:32 order/views.py:986
#: part/templates/part/category.html:127
msgid "Order Parts"
msgstr ""
@@ -832,9 +911,9 @@ msgstr ""
#: build/templates/build/allocation_card.html:21
#: build/templates/build/complete_output.html:46
#: order/templates/order/sales_order_detail.html:75
-#: order/templates/order/sales_order_detail.html:157
+#: order/templates/order/sales_order_detail.html:160
#: report/templates/report/inventree_test_report_base.html:75
-#: stock/models.py:420 stock/templates/stock/item_base.html:238
+#: stock/models.py:452 stock/templates/stock/item_base.html:244
#: templates/js/build.js:474
msgid "Serial Number"
msgstr ""
@@ -897,7 +976,7 @@ msgstr ""
#: order/templates/order/order_base.html:26
#: order/templates/order/sales_order_base.html:35
#: part/templates/part/category.html:18 part/templates/part/part_base.html:29
-#: stock/templates/stock/item_base.html:118
+#: stock/templates/stock/item_base.html:124
#: stock/templates/stock/location.html:31
msgid "Admin view"
msgstr ""
@@ -908,8 +987,8 @@ msgstr ""
#: order/templates/order/order_base.html:86
#: order/templates/order/sales_order_base.html:41
#: order/templates/order/sales_order_base.html:86
-#: templates/js/table_filters.js:240 templates/js/table_filters.js:259
-#: templates/js/table_filters.js:276
+#: templates/js/table_filters.js:241 templates/js/table_filters.js:260
+#: templates/js/table_filters.js:277
msgid "Overdue"
msgstr ""
@@ -955,14 +1034,14 @@ msgid "Progress"
msgstr ""
#: build/templates/build/build_base.html:160
-#: build/templates/build/detail.html:84 order/models.py:677
+#: build/templates/build/detail.html:84 order/models.py:689
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:33
#: order/templates/order/sales_order_ship.html:25
#: part/templates/part/allocation.html:30
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
-#: stock/templates/stock/item_base.html:268 templates/js/order.js:245
+#: stock/templates/stock/item_base.html:274 templates/js/order.js:245
msgid "Sales Order"
msgstr ""
@@ -1112,9 +1191,9 @@ msgid "Destination location not specified"
msgstr ""
#: build/templates/build/detail.html:70
-#: stock/templates/stock/item_base.html:292 templates/js/stock.js:636
-#: templates/js/stock.js:1286 templates/js/table_filters.js:107
-#: templates/js/table_filters.js:201
+#: stock/templates/stock/item_base.html:298 templates/js/stock.js:636
+#: templates/js/stock.js:1408 templates/js/table_filters.js:108
+#: templates/js/table_filters.js:202
msgid "Batch"
msgstr ""
@@ -1168,6 +1247,7 @@ msgstr ""
#: company/templates/company/navbar.html:15
#: order/templates/order/po_navbar.html:14
#: order/templates/order/so_navbar.html:15 part/templates/part/navbar.html:15
+#: templates/js/stock.js:1016
msgid "Details"
msgstr ""
@@ -1202,7 +1282,8 @@ msgstr ""
#: build/templates/build/notes.html:26 company/templates/company/notes.html:24
#: order/templates/order/order_notes.html:27
#: order/templates/order/sales_order_notes.html:29
-#: part/templates/part/notes.html:27 stock/templates/stock/item_base.html:470
+#: part/templates/part/notes.html:27 stock/templates/stock/item_base.html:477
+#: stock/templates/stock/item_base.html:487
#: stock/templates/stock/item_notes.html:26
msgid "Save"
msgstr ""
@@ -1231,7 +1312,7 @@ msgstr ""
msgid "Maximum output quantity is "
msgstr ""
-#: build/views.py:184 stock/models.py:969 stock/views.py:1789
+#: build/views.py:184 stock/views.py:1821
msgid "Serial numbers already exist"
msgstr ""
@@ -1348,372 +1429,405 @@ msgstr ""
msgid "Add Build Order Attachment"
msgstr ""
-#: build/views.py:1083 order/views.py:110 order/views.py:162 part/views.py:172
+#: build/views.py:1083 order/views.py:115 order/views.py:167 part/views.py:172
#: stock/views.py:277
msgid "Added attachment"
msgstr ""
-#: build/views.py:1119 order/views.py:189 order/views.py:210
+#: build/views.py:1119 order/views.py:194 order/views.py:215
msgid "Edit Attachment"
msgstr ""
-#: build/views.py:1129 order/views.py:193 order/views.py:214
+#: build/views.py:1129 order/views.py:198 order/views.py:219
msgid "Attachment updated"
msgstr ""
-#: build/views.py:1139 order/views.py:229 order/views.py:243
+#: build/views.py:1139 order/views.py:234 order/views.py:248
msgid "Delete Attachment"
msgstr ""
-#: build/views.py:1144 order/views.py:235 order/views.py:249 stock/views.py:333
+#: build/views.py:1144 order/views.py:240 order/views.py:254 stock/views.py:333
msgid "Deleted attachment"
msgstr ""
-#: common/models.py:56
-msgid "InvenTree Instance Name"
+#: common/files.py:64
+msgid "Unsupported file format: {ext.upper()}"
+msgstr ""
+
+#: common/files.py:69
+msgid "Error reading file (invalid format)"
+msgstr ""
+
+#: common/files.py:71
+msgid "Error reading file (incorrect dimension)"
+msgstr ""
+
+#: common/files.py:73
+msgid "Error reading file (data could be corrupted)"
+msgstr ""
+
+#: common/forms.py:38 templates/attachment_table.html:15
+msgid "File"
+msgstr ""
+
+#: common/forms.py:39
+msgid "Select file to upload"
+msgstr ""
+
+#: common/forms.py:54
+msgid "{name.title()} File"
+msgstr ""
+
+#: common/forms.py:55
+#, python-brace-format
+msgid "Select {name} file to upload"
msgstr ""
#: common/models.py:58
+msgid "InvenTree Instance Name"
+msgstr ""
+
+#: common/models.py:60
msgid "String descriptor for the server instance"
msgstr ""
-#: common/models.py:62
+#: common/models.py:64
msgid "Use instance name"
msgstr ""
-#: common/models.py:63
+#: common/models.py:65
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:69 company/models.py:97 company/models.py:98
+#: common/models.py:71 company/models.py:94 company/models.py:95
msgid "Company name"
msgstr ""
-#: common/models.py:70
+#: common/models.py:72
msgid "Internal company name"
msgstr ""
-#: common/models.py:75
+#: common/models.py:77
msgid "Base URL"
msgstr ""
-#: common/models.py:76
+#: common/models.py:78
msgid "Base URL for server instance"
msgstr ""
-#: common/models.py:82
+#: common/models.py:84
msgid "Default Currency"
msgstr ""
-#: common/models.py:83
+#: common/models.py:85
msgid "Default currency"
msgstr ""
-#: common/models.py:89
+#: common/models.py:91
msgid "Download from URL"
msgstr ""
-#: common/models.py:90
+#: common/models.py:92
msgid "Allow download of remote images and files from external URL"
msgstr ""
-#: common/models.py:96
+#: common/models.py:98
msgid "Barcode Support"
msgstr ""
-#: common/models.py:97
+#: common/models.py:99
msgid "Enable barcode scanner support"
msgstr ""
-#: common/models.py:103
+#: common/models.py:105
msgid "IPN Regex"
msgstr ""
-#: common/models.py:104
+#: common/models.py:106
msgid "Regular expression pattern for matching Part IPN"
msgstr ""
-#: common/models.py:108
+#: common/models.py:110
msgid "Allow Duplicate IPN"
msgstr ""
-#: common/models.py:109
+#: common/models.py:111
msgid "Allow multiple parts to share the same IPN"
msgstr ""
-#: common/models.py:115
+#: common/models.py:117
msgid "Allow Editing IPN"
msgstr ""
-#: common/models.py:116
+#: common/models.py:118
msgid "Allow changing the IPN value while editing a part"
msgstr ""
-#: common/models.py:122
+#: common/models.py:124
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:123
+#: common/models.py:125
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:129
+#: common/models.py:131
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:130
+#: common/models.py:132
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:136
+#: common/models.py:138
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:137
+#: common/models.py:139
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:143
+#: common/models.py:145
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:144
+#: common/models.py:146
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:150
+#: common/models.py:152
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:151
+#: common/models.py:153
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:157 part/models.py:2079 part/templates/part/detail.html:160
-#: report/models.py:185 stock/forms.py:259 templates/js/table_filters.js:24
-#: templates/js/table_filters.js:310
+#: common/models.py:159 part/models.py:2117 part/templates/part/detail.html:160
+#: report/models.py:185 stock/forms.py:259 templates/js/table_filters.js:25
+#: templates/js/table_filters.js:311
msgid "Template"
msgstr ""
-#: common/models.py:158
+#: common/models.py:160
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:164 part/models.py:834 part/templates/part/detail.html:170
-#: templates/js/table_filters.js:123 templates/js/table_filters.js:322
+#: common/models.py:166 part/models.py:834 part/templates/part/detail.html:170
+#: templates/js/table_filters.js:124 templates/js/table_filters.js:323
msgid "Assembly"
msgstr ""
-#: common/models.py:165
+#: common/models.py:167
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:171 part/models.py:840 part/templates/part/detail.html:180
-#: templates/js/table_filters.js:326
+#: common/models.py:173 part/models.py:840 part/templates/part/detail.html:180
+#: templates/js/table_filters.js:327
msgid "Component"
msgstr ""
-#: common/models.py:172
+#: common/models.py:174
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:178 part/models.py:851 part/templates/part/detail.html:200
+#: common/models.py:180 part/models.py:851 part/templates/part/detail.html:200
msgid "Purchaseable"
msgstr ""
-#: common/models.py:179
+#: common/models.py:181
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:185 part/models.py:856 part/templates/part/detail.html:210
-#: templates/js/table_filters.js:334
+#: common/models.py:187 part/models.py:856 part/templates/part/detail.html:210
+#: templates/js/table_filters.js:335
msgid "Salable"
msgstr ""
-#: common/models.py:186
+#: common/models.py:188
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:192 part/models.py:846 part/templates/part/detail.html:190
-#: templates/js/table_filters.js:32 templates/js/table_filters.js:338
+#: common/models.py:194 part/models.py:846 part/templates/part/detail.html:190
+#: templates/js/table_filters.js:33 templates/js/table_filters.js:339
msgid "Trackable"
msgstr ""
-#: common/models.py:193
+#: common/models.py:195
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:199 part/models.py:866 part/templates/part/detail.html:150
-#: templates/js/table_filters.js:28
+#: common/models.py:201 part/models.py:866 part/templates/part/detail.html:150
+#: templates/js/table_filters.js:29
msgid "Virtual"
msgstr ""
-#: common/models.py:200
+#: common/models.py:202
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:206
+#: common/models.py:208
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:207
+#: common/models.py:209
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:213
+#: common/models.py:215 templates/stats.html:25
msgid "Debug Mode"
msgstr ""
-#: common/models.py:214
+#: common/models.py:216
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:220
+#: common/models.py:222
msgid "Page Size"
msgstr ""
-#: common/models.py:221
+#: common/models.py:223
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:231
+#: common/models.py:233
msgid "Test Reports"
msgstr ""
-#: common/models.py:232
+#: common/models.py:234
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:238
+#: common/models.py:240
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:239
+#: common/models.py:241
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:245
+#: common/models.py:247
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:246
+#: common/models.py:248
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:252
+#: common/models.py:254
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:253
+#: common/models.py:255
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:255 part/templates/part/detail.html:121
+#: common/models.py:257 part/templates/part/detail.html:121
msgid "days"
msgstr ""
-#: common/models.py:260
+#: common/models.py:262
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:261
+#: common/models.py:263
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:267
+#: common/models.py:269
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:268
+#: common/models.py:270
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:274
+#: common/models.py:276
msgid "Group by Part"
msgstr ""
-#: common/models.py:275
+#: common/models.py:277
msgid "Group stock items by part reference in table views"
msgstr ""
-#: common/models.py:281
+#: common/models.py:283
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:282
+#: common/models.py:284
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:288
+#: common/models.py:290
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:289
+#: common/models.py:291
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:294
+#: common/models.py:296
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:295
+#: common/models.py:297
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:299
+#: common/models.py:301
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:300
+#: common/models.py:302
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:305
+#: common/models.py:307
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:306
+#: common/models.py:308
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:529
+#: common/models.py:531
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:531
+#: common/models.py:533
msgid "Settings value"
msgstr ""
-#: common/models.py:566
+#: common/models.py:568
msgid "Must be an integer value"
msgstr ""
-#: common/models.py:589
+#: common/models.py:591
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:600
+#: common/models.py:602
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:623
+#: common/models.py:625
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:704 company/forms.py:177
+#: common/models.py:706 company/forms.py:177
msgid "Price break quantity"
msgstr ""
-#: common/models.py:712 company/templates/company/supplier_part_pricing.html:82
+#: common/models.py:714 company/templates/company/supplier_part_pricing.html:82
#: part/templates/part/sale_prices.html:90 templates/js/bom.js:255
msgid "Price"
msgstr ""
-#: common/models.py:713
+#: common/models.py:715
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:736
+#: common/models.py:804
msgid "Default"
msgstr ""
@@ -1721,24 +1835,42 @@ msgstr ""
msgid "Current value"
msgstr ""
-#: common/views.py:25
+#: common/views.py:32
msgid "Change Setting"
msgstr ""
-#: common/views.py:94
+#: common/views.py:101
msgid "Supplied value is not allowed"
msgstr ""
-#: common/views.py:103
+#: common/views.py:110
msgid "Supplied value must be a boolean"
msgstr ""
-#: company/forms.py:38 company/models.py:145
+#: common/views.py:184 order/templates/order/order_wizard/po_upload.html:42
+#: order/views.py:582 part/templates/part/bom_upload/upload_file.html:27
+msgid "Upload File"
+msgstr ""
+
+#: common/views.py:185 order/templates/order/order_wizard/match_fields.html:52
+#: order/views.py:583 part/templates/part/bom_upload/select_fields.html:58
+msgid "Match Fields"
+msgstr ""
+
+#: common/views.py:186
+msgid "Match Items"
+msgstr ""
+
+#: common/views.py:479
+msgid "Fields matching failed"
+msgstr ""
+
+#: company/forms.py:38 company/models.py:142
#: company/templates/company/detail.html:42
msgid "Currency"
msgstr ""
-#: company/forms.py:39 company/models.py:147
+#: company/forms.py:39 company/models.py:144
msgid "Default currency used for this company"
msgstr ""
@@ -1758,216 +1890,216 @@ msgstr ""
msgid "Single quantity price"
msgstr ""
-#: company/forms.py:128 company/models.py:324
+#: company/forms.py:128 company/models.py:321
msgid "Select manufacturer"
msgstr ""
-#: company/forms.py:134 company/models.py:331
+#: company/forms.py:134 company/models.py:328
msgid "Manufacturer Part Number"
msgstr ""
-#: company/forms.py:136 company/models.py:330
+#: company/forms.py:136 company/models.py:327
#: company/templates/company/manufacturer_part_base.html:89
#: company/templates/company/manufacturer_part_detail.html:26
-#: company/templates/company/supplier_part_base.html:101
+#: company/templates/company/supplier_part_base.html:102
#: company/templates/company/supplier_part_detail.html:35
#: order/templates/order/purchase_order_detail.html:158 part/bom.py:171
#: part/bom.py:242 templates/js/company.js:181 templates/js/company.js:307
msgid "MPN"
msgstr ""
-#: company/models.py:102
+#: company/models.py:99
msgid "Company description"
msgstr ""
-#: company/models.py:103
+#: company/models.py:100
msgid "Description of the company"
msgstr ""
-#: company/models.py:107 company/templates/company/company_base.html:70
+#: company/models.py:104 company/templates/company/company_base.html:70
#: company/templates/company/detail.html:33 templates/js/company.js:60
msgid "Website"
msgstr ""
-#: company/models.py:107
+#: company/models.py:104
msgid "Company website URL"
msgstr ""
-#: company/models.py:110 company/templates/company/company_base.html:77
+#: company/models.py:107 company/templates/company/company_base.html:77
msgid "Address"
msgstr ""
-#: company/models.py:111
+#: company/models.py:108
msgid "Company address"
msgstr ""
-#: company/models.py:114
+#: company/models.py:111
msgid "Phone number"
msgstr ""
-#: company/models.py:115
+#: company/models.py:112
msgid "Contact phone number"
msgstr ""
-#: company/models.py:118 company/templates/company/company_base.html:91
+#: company/models.py:115 company/templates/company/company_base.html:91
msgid "Email"
msgstr ""
-#: company/models.py:118
+#: company/models.py:115
msgid "Contact email address"
msgstr ""
-#: company/models.py:121 company/templates/company/company_base.html:98
+#: company/models.py:118 company/templates/company/company_base.html:98
msgid "Contact"
msgstr ""
-#: company/models.py:122
+#: company/models.py:119
msgid "Point of contact"
msgstr ""
-#: company/models.py:124 company/models.py:336 company/models.py:488
+#: company/models.py:121 company/models.py:333 company/models.py:485
#: order/models.py:103 part/models.py:743
#: report/templates/report/inventree_build_order_base.html:165
-#: stock/models.py:1560 templates/js/company.js:188 templates/js/company.js:318
+#: templates/js/company.js:188 templates/js/company.js:318
#: templates/js/part.js:431
msgid "Link"
msgstr ""
-#: company/models.py:124
+#: company/models.py:121
msgid "Link to external company information"
msgstr ""
-#: company/models.py:132 part/models.py:753
+#: company/models.py:129 part/models.py:753
msgid "Image"
msgstr ""
-#: company/models.py:137
+#: company/models.py:134
msgid "is customer"
msgstr ""
-#: company/models.py:137
+#: company/models.py:134
msgid "Do you sell items to this company?"
msgstr ""
-#: company/models.py:139
+#: company/models.py:136
msgid "is supplier"
msgstr ""
-#: company/models.py:139
+#: company/models.py:136
msgid "Do you purchase items from this company?"
msgstr ""
-#: company/models.py:141
+#: company/models.py:138
msgid "is manufacturer"
msgstr ""
-#: company/models.py:141
+#: company/models.py:138
msgid "Does this company manufacture parts?"
msgstr ""
-#: company/models.py:308 company/models.py:459 stock/models.py:373
-#: stock/templates/stock/item_base.html:224
+#: company/models.py:305 company/models.py:456 stock/models.py:405
+#: stock/templates/stock/item_base.html:230
msgid "Base Part"
msgstr ""
-#: company/models.py:312 company/models.py:463 order/views.py:1384
+#: company/models.py:309 company/models.py:460 order/views.py:1587
msgid "Select part"
msgstr ""
-#: company/models.py:323 company/templates/company/detail.html:57
+#: company/models.py:320 company/templates/company/detail.html:57
#: company/templates/company/manufacturer_part_base.html:85
#: company/templates/company/manufacturer_part_detail.html:25
#: company/templates/company/supplier_part_base.html:94
#: company/templates/company/supplier_part_detail.html:34 part/bom.py:170
-#: part/bom.py:241 stock/templates/stock/item_base.html:341
+#: part/bom.py:241 stock/templates/stock/item_base.html:347
#: templates/js/company.js:44 templates/js/company.js:165
#: templates/js/company.js:289
msgid "Manufacturer"
msgstr ""
-#: company/models.py:337
+#: company/models.py:334
msgid "URL for external manufacturer part link"
msgstr ""
-#: company/models.py:343
+#: company/models.py:340
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:469 company/templates/company/detail.html:62
+#: company/models.py:466 company/templates/company/detail.html:62
#: company/templates/company/supplier_part_base.html:84
#: company/templates/company/supplier_part_detail.html:25 order/models.py:190
#: order/templates/order/order_base.html:92
#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:175
-#: part/bom.py:286 stock/templates/stock/item_base.html:353
+#: part/bom.py:286 stock/templates/stock/item_base.html:359
#: templates/js/company.js:48 templates/js/company.js:263
#: templates/js/order.js:170
msgid "Supplier"
msgstr ""
-#: company/models.py:470
+#: company/models.py:467
msgid "Select supplier"
msgstr ""
-#: company/models.py:475 company/templates/company/supplier_part_base.html:88
+#: company/models.py:472 company/templates/company/supplier_part_base.html:88
#: company/templates/company/supplier_part_detail.html:26
#: order/templates/order/purchase_order_detail.html:149 part/bom.py:176
#: part/bom.py:287
msgid "SKU"
msgstr ""
-#: company/models.py:476
+#: company/models.py:473
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:482
+#: company/models.py:479
#: company/templates/company/manufacturer_part_base.html:6
#: company/templates/company/manufacturer_part_base.html:19
-#: stock/templates/stock/item_base.html:346
+#: stock/templates/stock/item_base.html:352
msgid "Manufacturer Part"
msgstr ""
-#: company/models.py:483
+#: company/models.py:480
msgid "Select manufacturer part"
msgstr ""
-#: company/models.py:489
+#: company/models.py:486
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:495
+#: company/models.py:492
msgid "Supplier part description"
msgstr ""
-#: company/models.py:500 company/templates/company/supplier_part_base.html:115
-#: company/templates/company/supplier_part_detail.html:38 part/models.py:2190
+#: company/models.py:497 company/templates/company/supplier_part_base.html:116
+#: company/templates/company/supplier_part_detail.html:38 part/models.py:2228
#: report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr ""
-#: company/models.py:504
+#: company/models.py:501 part/models.py:1614
msgid "base cost"
msgstr ""
-#: company/models.py:504
+#: company/models.py:501 part/models.py:1614
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:506 company/templates/company/supplier_part_base.html:108
-#: stock/models.py:397 stock/templates/stock/item_base.html:299
+#: company/models.py:503 company/templates/company/supplier_part_base.html:109
+#: stock/models.py:429 stock/templates/stock/item_base.html:305
#: templates/js/stock.js:667
msgid "Packaging"
msgstr ""
-#: company/models.py:506
+#: company/models.py:503
msgid "Part packaging"
msgstr ""
-#: company/models.py:508
+#: company/models.py:505 part/models.py:1616
msgid "multiple"
msgstr ""
-#: company/models.py:508
+#: company/models.py:505
msgid "Order multiple"
msgstr ""
@@ -1993,7 +2125,7 @@ msgstr ""
msgid "Download image from URL"
msgstr ""
-#: company/templates/company/company_base.html:46 order/views.py:306
+#: company/templates/company/company_base.html:46 order/views.py:311
msgid "Create Purchase Order"
msgstr ""
@@ -2022,8 +2154,7 @@ msgstr ""
#: company/templates/company/delete.html:12
#, python-format
-msgid ""
-"There are %(count)s parts sourced from this company.
\n"
+msgid "There are %(count)s parts sourced from this company.
\n"
"If this supplier is deleted, these supplier part entries will also be deleted."
msgstr ""
@@ -2039,10 +2170,11 @@ msgstr ""
msgid "Uses default currency"
msgstr ""
-#: company/templates/company/detail.html:67 order/models.py:450
-#: order/templates/order/sales_order_base.html:92 stock/models.py:415
-#: stock/models.py:416 stock/templates/stock/item_base.html:251
+#: company/templates/company/detail.html:67 order/models.py:461
+#: order/templates/order/sales_order_base.html:92 stock/models.py:447
+#: stock/models.py:448 stock/templates/stock/item_base.html:257
#: templates/js/company.js:40 templates/js/order.js:267
+#: templates/js/stock.js:1064
msgid "Customer"
msgstr ""
@@ -2088,7 +2220,7 @@ msgstr ""
#: company/templates/company/detail_manufacturer_part.html:66
#: company/templates/company/detail_supplier_part.html:66
#: part/templates/part/bom.html:159 part/templates/part/category.html:118
-#: templates/js/stock.js:1157
+#: templates/js/stock.js:1279
msgid "New Part"
msgstr ""
@@ -2135,19 +2267,19 @@ msgstr ""
#: company/templates/company/detail_supplier_part.html:22
#: company/templates/company/manufacturer_part_suppliers.html:17
#: order/templates/order/purchase_order_detail.html:49
-#: part/templates/part/supplier.html:17 templates/js/stock.js:1163
+#: part/templates/part/supplier.html:17 templates/js/stock.js:1285
msgid "New Supplier Part"
msgstr ""
#: company/templates/company/detail_supplier_part.html:72
#: company/templates/company/manufacturer_part_suppliers.html:47
-#: company/views.py:64 order/templates/order/purchase_orders.html:183
+#: company/views.py:64 order/templates/order/purchase_orders.html:185
#: part/templates/part/supplier.html:50
msgid "New Supplier"
msgstr ""
#: company/templates/company/detail_supplier_part.html:73 company/views.py:281
-#: order/templates/order/purchase_orders.html:184
+#: order/templates/order/purchase_orders.html:186
msgid "Create new Supplier"
msgstr ""
@@ -2205,7 +2337,7 @@ msgstr ""
#: company/templates/company/manufacturer_part_navbar.html:22
#: company/templates/company/navbar.html:41
#: company/templates/company/supplier_part_navbar.html:15
-#: part/templates/part/navbar.html:36 stock/api.py:51
+#: part/templates/part/navbar.html:36 stock/api.py:54
#: stock/templates/stock/loc_link.html:7 stock/templates/stock/location.html:36
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/index.html:128 templates/InvenTree/search.html:196
@@ -2258,7 +2390,7 @@ msgstr ""
#: stock/templates/stock/location_navbar.html:22
#: stock/templates/stock/location_navbar.html:29
#: templates/InvenTree/search.html:198 templates/js/stock.js:968
-#: templates/stats.html:72 templates/stats.html:81 users/models.py:42
+#: templates/stats.html:93 templates/stats.html:102 users/models.py:42
msgid "Stock Items"
msgstr ""
@@ -2313,8 +2445,8 @@ msgid "New Sales Order"
msgstr ""
#: company/templates/company/supplier_part_base.html:7
-#: company/templates/company/supplier_part_base.html:20 stock/models.py:382
-#: stock/templates/stock/item_base.html:358 templates/js/company.js:279
+#: company/templates/company/supplier_part_base.html:20 stock/models.py:414
+#: stock/templates/stock/item_base.html:364 templates/js/company.js:279
msgid "Supplier Part"
msgstr ""
@@ -2363,7 +2495,7 @@ msgid "Pricing Information"
msgstr ""
#: company/templates/company/supplier_part_pricing.html:19 company/views.py:794
-#: part/templates/part/sale_prices.html:17 part/views.py:2636
+#: part/templates/part/sale_prices.html:17 part/views.py:2644
msgid "Add Price Break"
msgstr ""
@@ -2393,7 +2525,7 @@ msgstr ""
msgid "Customers"
msgstr ""
-#: company/views.py:78 order/templates/order/sales_orders.html:185
+#: company/views.py:78 order/templates/order/sales_orders.html:187
msgid "New Customer"
msgstr ""
@@ -2413,6 +2545,11 @@ msgstr ""
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
+#: company/views.py:205 part/views.py:887
+#, python-brace-format
+msgid "Invalid response: {code}"
+msgstr ""
+
#: company/views.py:214 part/views.py:896
msgid "Supplied URL is not a valid image file"
msgstr ""
@@ -2433,7 +2570,7 @@ msgstr ""
msgid "Edited company information"
msgstr ""
-#: company/views.py:287 order/templates/order/sales_orders.html:186
+#: company/views.py:287 order/templates/order/sales_orders.html:188
msgid "Create new Customer"
msgstr ""
@@ -2465,7 +2602,7 @@ msgstr ""
msgid "Edit Supplier Part"
msgstr ""
-#: company/views.py:578 templates/js/stock.js:1164
+#: company/views.py:578 templates/js/stock.js:1286
msgid "Create new Supplier Part"
msgstr ""
@@ -2473,15 +2610,15 @@ msgstr ""
msgid "Delete Supplier Part"
msgstr ""
-#: company/views.py:799 part/views.py:2640
+#: company/views.py:799 part/views.py:2648
msgid "Added new price break"
msgstr ""
-#: company/views.py:855 part/views.py:2684
+#: company/views.py:855 part/views.py:2692
msgid "Edit Price Break"
msgstr ""
-#: company/views.py:870 part/views.py:2698
+#: company/views.py:870 part/views.py:2706
msgid "Delete Price Break"
msgstr ""
@@ -2489,51 +2626,59 @@ msgstr ""
msgid "No valid objects provided to template"
msgstr ""
-#: label/models.py:102
+#: label/models.py:103
msgid "Label name"
msgstr ""
-#: label/models.py:109
+#: label/models.py:110
msgid "Label description"
msgstr ""
-#: label/models.py:116 stock/forms.py:202
+#: label/models.py:117 stock/forms.py:202
msgid "Label"
msgstr ""
-#: label/models.py:117
+#: label/models.py:118
msgid "Label template file"
msgstr ""
-#: label/models.py:123 report/models.py:274
+#: label/models.py:124 report/models.py:274
msgid "Enabled"
msgstr ""
-#: label/models.py:124
+#: label/models.py:125
msgid "Label template is enabled"
msgstr ""
-#: label/models.py:129
+#: label/models.py:130
msgid "Width [mm]"
msgstr ""
-#: label/models.py:130
+#: label/models.py:131
msgid "Label width, specified in mm"
msgstr ""
-#: label/models.py:136
+#: label/models.py:137
msgid "Height [mm]"
msgstr ""
-#: label/models.py:137
+#: label/models.py:138
msgid "Label height, specified in mm"
msgstr ""
-#: label/models.py:222 label/models.py:275
+#: label/models.py:144
+msgid "Filename Pattern"
+msgstr ""
+
+#: label/models.py:145
+msgid "Pattern for generating label filenames"
+msgstr ""
+
+#: label/models.py:244 label/models.py:297
msgid "Query filters (comma-separated list of key=value pairs"
msgstr ""
-#: label/models.py:223 label/models.py:276 report/models.py:294
+#: label/models.py:245 label/models.py:298 report/models.py:294
#: report/models.py:415 report/models.py:449
msgid "Filters"
msgstr ""
@@ -2571,15 +2716,15 @@ msgstr ""
msgid "Enter sales order number"
msgstr ""
-#: order/forms.py:145 order/models.py:462
+#: order/forms.py:145 order/models.py:473
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/forms.py:235
+#: order/forms.py:236
msgid "Enter stock item serial numbers"
msgstr ""
-#: order/forms.py:241
+#: order/forms.py:242
msgid "Enter quantity of stock items"
msgstr ""
@@ -2607,7 +2752,7 @@ msgstr ""
msgid "Order notes"
msgstr ""
-#: order/models.py:182 order/models.py:455
+#: order/models.py:182 order/models.py:466
msgid "Purchase order status"
msgstr ""
@@ -2648,8 +2793,8 @@ msgstr ""
msgid "Date order was completed"
msgstr ""
-#: order/models.py:243 part/views.py:1586 stock/models.py:270
-#: stock/models.py:953
+#: order/models.py:243 part/views.py:1586 stock/models.py:302
+#: stock/models.py:1018
msgid "Quantity must be greater than zero"
msgstr ""
@@ -2657,128 +2802,134 @@ msgstr ""
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:344
+#: order/models.py:346
msgid "Lines can only be received against an order marked as 'Placed'"
msgstr ""
-#: order/models.py:348
+#: order/models.py:350
msgid "Quantity must be an integer"
msgstr ""
-#: order/models.py:350
+#: order/models.py:352
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:369
-msgid "Received items"
-msgstr ""
-
-#: order/models.py:451
+#: order/models.py:462
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:457
+#: order/models.py:468
msgid "Customer Reference "
msgstr ""
-#: order/models.py:457
+#: order/models.py:468
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:465 templates/js/order.js:303
+#: order/models.py:476 templates/js/order.js:303
msgid "Shipment Date"
msgstr ""
-#: order/models.py:472
+#: order/models.py:483
msgid "shipped by"
msgstr ""
-#: order/models.py:516
+#: order/models.py:527
msgid "SalesOrder cannot be shipped as it is not currently pending"
msgstr ""
-#: order/models.py:603
+#: order/models.py:614
msgid "Item quantity"
msgstr ""
-#: order/models.py:605
+#: order/models.py:616
msgid "Line item reference"
msgstr ""
-#: order/models.py:607
+#: order/models.py:618
msgid "Line item notes"
msgstr ""
-#: order/models.py:633 order/models.py:677
+#: order/models.py:644 order/models.py:689
#: part/templates/part/allocation.html:17
#: part/templates/part/allocation.html:45
msgid "Order"
msgstr ""
-#: order/models.py:634 order/templates/order/order_base.html:9
+#: order/models.py:645 order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:24
#: report/templates/report/inventree_po_report.html:77
-#: stock/templates/stock/item_base.html:313 templates/js/order.js:148
+#: stock/templates/stock/item_base.html:319 templates/js/order.js:148
+#: templates/js/stock.js:1045
msgid "Purchase Order"
msgstr ""
-#: order/models.py:648
+#: order/models.py:659
msgid "Supplier part"
msgstr ""
-#: order/models.py:651 order/templates/order/order_base.html:131
+#: order/models.py:662 order/templates/order/order_base.html:131
#: order/templates/order/purchase_order_detail.html:189
#: order/templates/order/receive_parts.html:22
#: order/templates/order/sales_order_base.html:131
msgid "Received"
msgstr ""
-#: order/models.py:651
+#: order/models.py:662
msgid "Number of items received"
msgstr ""
-#: order/models.py:658 stock/models.py:508
-#: stock/templates/stock/item_base.html:320
+#: order/models.py:669 stock/models.py:540
+#: stock/templates/stock/item_base.html:326
msgid "Purchase Price"
msgstr ""
-#: order/models.py:659
+#: order/models.py:670
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:753 order/models.py:755
+#: order/models.py:698 part/templates/part/navbar.html:95
+#: part/templates/part/part_pricing.html:78
+msgid "Sale Price"
+msgstr ""
+
+#: order/models.py:699
+msgid "Unit sale price"
+msgstr ""
+
+#: order/models.py:774 order/models.py:776
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:759
+#: order/models.py:780
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:761
+#: order/models.py:782
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:764
+#: order/models.py:785
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:774
+#: order/models.py:795
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:779
+#: order/models.py:800
msgid "Line"
msgstr ""
-#: order/models.py:790
+#: order/models.py:811
msgid "Item"
msgstr ""
-#: order/models.py:791
+#: order/models.py:812
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:794
+#: order/models.py:815
msgid "Enter stock allocation quantity"
msgstr ""
@@ -2830,7 +2981,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:100
#: part/templates/part/category.html:185 part/templates/part/category.html:227
#: stock/templates/stock/location.html:191 templates/js/stock.js:708
-#: templates/js/stock.js:1169
+#: templates/js/stock.js:1291
msgid "New Location"
msgstr ""
@@ -2864,6 +3015,75 @@ msgstr ""
msgid "Order Notes"
msgstr ""
+#: order/templates/order/order_wizard/match_fields.html:9
+#: part/templates/part/bom_upload/select_fields.html:21
+msgid "Missing selections for the following required columns"
+msgstr ""
+
+#: order/templates/order/order_wizard/match_fields.html:20
+msgid "Duplicate selections found, see below. Fix them then retry submitting."
+msgstr ""
+
+#: order/templates/order/order_wizard/match_fields.html:27
+#: order/templates/order/order_wizard/match_parts.html:18
+#: order/templates/order/order_wizard/po_upload.html:40
+msgid "Previous Step"
+msgstr ""
+
+#: order/templates/order/order_wizard/match_fields.html:29
+#: order/templates/order/order_wizard/match_parts.html:20
+#: part/templates/part/bom_upload/select_fields.html:32
+msgid "Submit Selections"
+msgstr ""
+
+#: order/templates/order/order_wizard/match_fields.html:35
+#: part/templates/part/bom_upload/select_fields.html:41
+msgid "File Fields"
+msgstr ""
+
+#: order/templates/order/order_wizard/match_fields.html:42
+#: part/templates/part/bom_upload/select_fields.html:47
+msgid "Remove column"
+msgstr ""
+
+#: order/templates/order/order_wizard/match_fields.html:60
+msgid "Duplicate selection"
+msgstr ""
+
+#: order/templates/order/order_wizard/match_fields.html:71
+#: order/templates/order/order_wizard/match_parts.html:51
+#: part/templates/part/bom_upload/select_fields.html:76
+#: part/templates/part/bom_upload/select_parts.html:58
+msgid "Remove row"
+msgstr ""
+
+#: order/templates/order/order_wizard/match_parts.html:11
+#: part/templates/part/bom_upload/select_parts.html:21
+msgid "Errors exist in the submitted data"
+msgstr ""
+
+#: order/templates/order/order_wizard/match_parts.html:27
+#: part/templates/part/bom_upload/select_parts.html:39
+msgid "Row"
+msgstr ""
+
+#: order/templates/order/order_wizard/match_parts.html:28
+msgid "Select Supplier Part"
+msgstr ""
+
+#: order/templates/order/order_wizard/po_upload.html:11
+msgid "Upload File for Purchase Order"
+msgstr ""
+
+#: order/templates/order/order_wizard/po_upload.html:18
+#, python-format
+msgid "Step %(step)s of %(count)s"
+msgstr ""
+
+#: order/templates/order/order_wizard/po_upload.html:48
+msgid "Order is already processed. Files cannot be uploaded."
+msgstr ""
+
#: order/templates/order/order_wizard/select_parts.html:9
msgid "Step 1 of 2 - Select Part Suppliers"
msgstr ""
@@ -2936,8 +3156,8 @@ msgid "Purchase Order Items"
msgstr ""
#: order/templates/order/purchase_order_detail.html:24
-#: order/templates/order/sales_order_detail.html:22 order/views.py:1120
-#: order/views.py:1203
+#: order/templates/order/sales_order_detail.html:22 order/views.py:1311
+#: order/views.py:1394
msgid "Add Line Item"
msgstr ""
@@ -2946,11 +3166,12 @@ msgid "No line items found"
msgstr ""
#: order/templates/order/purchase_order_detail.html:180
+#: order/templates/order/sales_order_detail.html:235
msgid "Unit Price"
msgstr ""
#: order/templates/order/purchase_order_detail.html:221
-#: order/templates/order/sales_order_detail.html:294
+#: order/templates/order/sales_order_detail.html:328
msgid "Edit line item"
msgstr ""
@@ -2980,7 +3201,7 @@ msgstr ""
#: part/templates/part/category_partlist.html:10
#: templates/InvenTree/index.html:97 templates/InvenTree/search.html:114
#: templates/InvenTree/settings/tabs.html:25 templates/js/part.js:577
-#: templates/navbar.html:23 templates/stats.html:59 templates/stats.html:68
+#: templates/navbar.html:23 templates/stats.html:80 templates/stats.html:89
#: users/models.py:40
msgid "Parts"
msgstr ""
@@ -3042,59 +3263,72 @@ msgstr ""
msgid "Sales Order Items"
msgstr ""
-#: order/templates/order/sales_order_detail.html:92 templates/js/bom.js:342
+#: order/templates/order/sales_order_detail.html:95 templates/js/bom.js:342
#: templates/js/build.js:627 templates/js/build.js:1044
msgid "Actions"
msgstr ""
-#: order/templates/order/sales_order_detail.html:99 templates/js/build.js:515
+#: order/templates/order/sales_order_detail.html:102 templates/js/build.js:515
#: templates/js/build.js:849
msgid "Edit stock allocation"
msgstr ""
-#: order/templates/order/sales_order_detail.html:100 templates/js/build.js:517
+#: order/templates/order/sales_order_detail.html:103 templates/js/build.js:517
#: templates/js/build.js:850
msgid "Delete stock allocation"
msgstr ""
-#: order/templates/order/sales_order_detail.html:170
+#: order/templates/order/sales_order_detail.html:176
msgid "No matching line items"
msgstr ""
-#: order/templates/order/sales_order_detail.html:199
+#: order/templates/order/sales_order_detail.html:205
msgid "ID"
msgstr ""
-#: order/templates/order/sales_order_detail.html:229 templates/js/build.js:579
+#: order/templates/order/sales_order_detail.html:243 templates/js/build.js:579
#: templates/js/build.js:845
msgid "Allocated"
msgstr ""
-#: order/templates/order/sales_order_detail.html:231
+#: order/templates/order/sales_order_detail.html:245
msgid "Fulfilled"
msgstr ""
-#: order/templates/order/sales_order_detail.html:279
+#: order/templates/order/sales_order_detail.html:282
+msgid "PO"
+msgstr ""
+
+#: order/templates/order/sales_order_detail.html:312
msgid "Allocate serial numbers"
msgstr ""
-#: order/templates/order/sales_order_detail.html:282 templates/js/build.js:641
+#: order/templates/order/sales_order_detail.html:315 templates/js/build.js:641
msgid "Allocate stock"
msgstr ""
-#: order/templates/order/sales_order_detail.html:285
+#: order/templates/order/sales_order_detail.html:318
msgid "Purchase stock"
msgstr ""
-#: order/templates/order/sales_order_detail.html:289 templates/js/build.js:634
+#: order/templates/order/sales_order_detail.html:322 templates/js/build.js:634
#: templates/js/build.js:1052
msgid "Build stock"
msgstr ""
-#: order/templates/order/sales_order_detail.html:295
+#: order/templates/order/sales_order_detail.html:325
+#: order/templates/order/sales_order_detail.html:434
+msgid "Calculate price"
+msgstr ""
+
+#: order/templates/order/sales_order_detail.html:329
msgid "Delete line item "
msgstr ""
+#: order/templates/order/sales_order_detail.html:440
+msgid "Update Unit Price"
+msgstr ""
+
#: order/templates/order/sales_order_notes.html:14
msgid "Sales Order Notes"
msgstr ""
@@ -3136,164 +3370,189 @@ msgstr ""
msgid "Are you sure you wish to delete this line item?"
msgstr ""
-#: order/views.py:99
+#: order/views.py:104
msgid "Add Purchase Order Attachment"
msgstr ""
-#: order/views.py:149
+#: order/views.py:154
msgid "Add Sales Order Attachment"
msgstr ""
-#: order/views.py:341
+#: order/views.py:346
msgid "Create Sales Order"
msgstr ""
-#: order/views.py:376
+#: order/views.py:381
msgid "Edit Purchase Order"
msgstr ""
-#: order/views.py:396
+#: order/views.py:401
msgid "Edit Sales Order"
msgstr ""
-#: order/views.py:412
+#: order/views.py:417
msgid "Cancel Order"
msgstr ""
-#: order/views.py:421 order/views.py:447
+#: order/views.py:426 order/views.py:452
msgid "Confirm order cancellation"
msgstr ""
-#: order/views.py:424 order/views.py:450
+#: order/views.py:429 order/views.py:455
msgid "Order cannot be cancelled"
msgstr ""
-#: order/views.py:438
+#: order/views.py:443
msgid "Cancel sales order"
msgstr ""
-#: order/views.py:464
+#: order/views.py:469
msgid "Issue Order"
msgstr ""
-#: order/views.py:473
+#: order/views.py:478
msgid "Confirm order placement"
msgstr ""
-#: order/views.py:483
+#: order/views.py:488
msgid "Purchase order issued"
msgstr ""
-#: order/views.py:494
+#: order/views.py:499
msgid "Complete Order"
msgstr ""
-#: order/views.py:510
+#: order/views.py:515
msgid "Confirm order completion"
msgstr ""
-#: order/views.py:521
+#: order/views.py:526
msgid "Purchase order completed"
msgstr ""
-#: order/views.py:531
+#: order/views.py:536
msgid "Ship Order"
msgstr ""
-#: order/views.py:547
+#: order/views.py:552
msgid "Confirm order shipment"
msgstr ""
-#: order/views.py:553
+#: order/views.py:558
msgid "Could not ship order"
msgstr ""
-#: order/views.py:607
+#: order/views.py:584
+msgid "Match Supplier Parts"
+msgstr ""
+
+#: order/views.py:798
msgid "Receive Parts"
msgstr ""
-#: order/views.py:677
+#: order/views.py:868
msgid "Items received"
msgstr ""
-#: order/views.py:691
+#: order/views.py:882
msgid "No destination set"
msgstr ""
-#: order/views.py:736
+#: order/views.py:927
msgid "Error converting quantity to number"
msgstr ""
-#: order/views.py:742
+#: order/views.py:933
msgid "Receive quantity less than zero"
msgstr ""
-#: order/views.py:748
+#: order/views.py:939
msgid "No lines specified"
msgstr ""
-#: order/views.py:1069
+#: order/views.py:1260
#, python-brace-format
msgid "Ordered {n} parts"
msgstr ""
-#: order/views.py:1129
+#: order/views.py:1320
msgid "Supplier part must be specified"
msgstr ""
-#: order/views.py:1135
+#: order/views.py:1326
msgid "Supplier must match for Part and Order"
msgstr ""
-#: order/views.py:1254 order/views.py:1272
+#: order/views.py:1457 order/views.py:1475
msgid "Edit Line Item"
msgstr ""
-#: order/views.py:1288 order/views.py:1300
+#: order/views.py:1491 order/views.py:1503
msgid "Delete Line Item"
msgstr ""
-#: order/views.py:1293 order/views.py:1305
+#: order/views.py:1496 order/views.py:1508
msgid "Deleted line item"
msgstr ""
-#: order/views.py:1318
+#: order/views.py:1521
msgid "Allocate Serial Numbers"
msgstr ""
-#: order/views.py:1363
+#: order/views.py:1566
#, python-brace-format
msgid "Allocated {n} items"
msgstr ""
-#: order/views.py:1379
+#: order/views.py:1582
msgid "Select line item"
msgstr ""
-#: order/views.py:1410
-msgid "No matching item for serial"
+#: order/views.py:1613
+#, python-brace-format
+msgid "No matching item for serial {serial}"
msgstr ""
-#: order/views.py:1420
-msgid "is not in stock"
+#: order/views.py:1623
+#, python-brace-format
+msgid "{serial} is not in stock"
msgstr ""
-#: order/views.py:1428
-msgid "already allocated to an order"
+#: order/views.py:1631
+#, python-brace-format
+msgid "{serial} already allocated to an order"
msgstr ""
-#: order/views.py:1482
+#: order/views.py:1685
msgid "Allocate Stock to Order"
msgstr ""
-#: order/views.py:1556
+#: order/views.py:1759
msgid "Edit Allocation Quantity"
msgstr ""
-#: order/views.py:1571
+#: order/views.py:1774
msgid "Remove allocation"
msgstr ""
+#: order/views.py:1846
+msgid "Sales order not found"
+msgstr ""
+
+#: order/views.py:1852
+msgid "Price not found"
+msgstr ""
+
+#: order/views.py:1855
+#, python-brace-format
+msgid "Updated {part} unit-price to {price}"
+msgstr ""
+
+#: order/views.py:1860
+#, python-brace-format
+msgid "Updated {part} unit-price to {price} and quantity to {qty}"
+msgstr ""
+
#: part/bom.py:138 part/models.py:72 part/models.py:762
#: part/templates/part/category.html:66 part/templates/part/detail.html:90
msgid "Default Location"
@@ -3372,7 +3631,7 @@ msgstr ""
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:122 part/models.py:2077
+#: part/forms.py:122 part/models.py:2115
msgid "Parent Part"
msgstr ""
@@ -3448,7 +3707,7 @@ msgstr ""
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:344 part/models.py:2171
+#: part/forms.py:344 part/models.py:2209
msgid "Sub part"
msgstr ""
@@ -3468,14 +3727,14 @@ msgstr ""
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:82 part/models.py:2123
+#: part/models.py:82 part/models.py:2161
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
#: part/models.py:83 part/templates/part/category.html:23
#: part/templates/part/category.html:94 part/templates/part/category.html:141
-#: templates/InvenTree/search.html:127 templates/stats.html:63
+#: templates/InvenTree/search.html:127 templates/stats.html:84
#: users/models.py:39
msgid "Part Categories"
msgstr ""
@@ -3538,7 +3797,7 @@ msgstr ""
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:724 part/models.py:2122 part/templates/part/detail.html:73
+#: part/models.py:724 part/models.py:2160 part/templates/part/detail.html:73
#: part/templates/part/set_category.html:15 templates/js/part.js:385
msgid "Category"
msgstr ""
@@ -3593,7 +3852,7 @@ msgstr ""
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:828 part/models.py:2051 part/templates/part/detail.html:106
+#: part/models.py:828 part/models.py:2089 part/templates/part/detail.html:106
#: part/templates/part/params.html:29
msgid "Units"
msgstr ""
@@ -3623,8 +3882,8 @@ msgid "Can this part be sold to customers?"
msgstr ""
#: part/models.py:861 part/templates/part/detail.html:227
-#: templates/js/table_filters.js:20 templates/js/table_filters.js:60
-#: templates/js/table_filters.js:236 templates/js/table_filters.js:305
+#: templates/js/table_filters.js:21 templates/js/table_filters.js:61
+#: templates/js/table_filters.js:237 templates/js/table_filters.js:306
msgid "Active"
msgstr ""
@@ -3660,167 +3919,171 @@ msgstr ""
msgid "Creation User"
msgstr ""
-#: part/models.py:1949
-msgid "Test templates can only be created for trackable parts"
-msgstr ""
-
-#: part/models.py:1966
-msgid "Test with this name already exists for this part"
-msgstr ""
-
-#: part/models.py:1986 templates/js/part.js:638 templates/js/stock.js:104
-msgid "Test Name"
+#: part/models.py:1616
+msgid "Sell multiple"
msgstr ""
#: part/models.py:1987
+msgid "Test templates can only be created for trackable parts"
+msgstr ""
+
+#: part/models.py:2004
+msgid "Test with this name already exists for this part"
+msgstr ""
+
+#: part/models.py:2024 templates/js/part.js:638 templates/js/stock.js:104
+msgid "Test Name"
+msgstr ""
+
+#: part/models.py:2025
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:1992
+#: part/models.py:2030
msgid "Test Description"
msgstr ""
-#: part/models.py:1993
+#: part/models.py:2031
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:1998 templates/js/part.js:647
-#: templates/js/table_filters.js:222
+#: part/models.py:2036 templates/js/part.js:647
+#: templates/js/table_filters.js:223
msgid "Required"
msgstr ""
-#: part/models.py:1999
+#: part/models.py:2037
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2004 templates/js/part.js:655
+#: part/models.py:2042 templates/js/part.js:655
msgid "Requires Value"
msgstr ""
-#: part/models.py:2005
+#: part/models.py:2043
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2010 templates/js/part.js:662
+#: part/models.py:2048 templates/js/part.js:662
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2011
+#: part/models.py:2049
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2044
+#: part/models.py:2082
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2049
+#: part/models.py:2087
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2051
+#: part/models.py:2089
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2079 part/models.py:2128 part/models.py:2129
+#: part/models.py:2117 part/models.py:2166 part/models.py:2167
#: templates/InvenTree/settings/category.html:62
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2081
+#: part/models.py:2119
msgid "Data"
msgstr ""
-#: part/models.py:2081
+#: part/models.py:2119
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2133 templates/InvenTree/settings/category.html:67
+#: part/models.py:2171 templates/InvenTree/settings/category.html:67
msgid "Default Value"
msgstr ""
-#: part/models.py:2134
+#: part/models.py:2172
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2163
+#: part/models.py:2201
msgid "Select parent part"
msgstr ""
-#: part/models.py:2172
+#: part/models.py:2210
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2178
+#: part/models.py:2216
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2180 templates/js/bom.js:216 templates/js/bom.js:269
+#: part/models.py:2218 templates/js/bom.js:216 templates/js/bom.js:269
msgid "Optional"
msgstr ""
-#: part/models.py:2180
+#: part/models.py:2218
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2183
+#: part/models.py:2221
msgid "Overage"
msgstr ""
-#: part/models.py:2184
+#: part/models.py:2222
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2187
+#: part/models.py:2225
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2190
+#: part/models.py:2228
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2192
+#: part/models.py:2230
msgid "Checksum"
msgstr ""
-#: part/models.py:2192
+#: part/models.py:2230
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2196 templates/js/bom.js:279 templates/js/bom.js:286
-#: templates/js/table_filters.js:50
+#: part/models.py:2234 templates/js/bom.js:279 templates/js/bom.js:286
+#: templates/js/table_filters.js:51
msgid "Inherited"
msgstr ""
-#: part/models.py:2197
+#: part/models.py:2235
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2273 part/views.py:1592 part/views.py:1644
-#: stock/models.py:260
+#: part/models.py:2311 part/views.py:1592 part/views.py:1644
+#: stock/models.py:292
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2282 part/models.py:2284
+#: part/models.py:2320 part/models.py:2322
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2287
+#: part/models.py:2325
msgid "BOM Item"
msgstr ""
-#: part/models.py:2404
+#: part/models.py:2442
msgid "Part 1"
msgstr ""
-#: part/models.py:2408
+#: part/models.py:2446
msgid "Part 2"
msgstr ""
-#: part/models.py:2408
+#: part/models.py:2446
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2440
+#: part/models.py:2478
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -3905,7 +4168,7 @@ msgid "All selected BOM items will be deleted"
msgstr ""
#: part/templates/part/bom.html:160 part/views.py:584
-#: templates/js/stock.js:1158
+#: templates/js/stock.js:1280
msgid "Create New Part"
msgstr ""
@@ -3923,51 +4186,18 @@ msgstr ""
msgid "Step 2 - Select Fields"
msgstr ""
-#: part/templates/part/bom_upload/select_fields.html:21
-msgid "Missing selections for the following required columns"
-msgstr ""
-
-#: part/templates/part/bom_upload/select_fields.html:32
-msgid "Submit Selections"
-msgstr ""
-
-#: part/templates/part/bom_upload/select_fields.html:41
-msgid "File Fields"
-msgstr ""
-
-#: part/templates/part/bom_upload/select_fields.html:47
-msgid "Remove column"
-msgstr ""
-
-#: part/templates/part/bom_upload/select_fields.html:58
-msgid "Match Fields"
-msgstr ""
-
#: part/templates/part/bom_upload/select_fields.html:68
msgid "Duplicate column selection"
msgstr ""
-#: part/templates/part/bom_upload/select_fields.html:76
-#: part/templates/part/bom_upload/select_parts.html:58
-msgid "Remove row"
-msgstr ""
-
#: part/templates/part/bom_upload/select_parts.html:16
msgid "Step 3 - Select Parts"
msgstr ""
-#: part/templates/part/bom_upload/select_parts.html:21
-msgid "Errors exist in the submitted data"
-msgstr ""
-
#: part/templates/part/bom_upload/select_parts.html:27
msgid "Submit BOM"
msgstr ""
-#: part/templates/part/bom_upload/select_parts.html:39
-msgid "Row"
-msgstr ""
-
#: part/templates/part/bom_upload/select_parts.html:40
#: part/templates/part/bom_upload/select_parts.html:69
msgid "Select Part"
@@ -3998,10 +4228,6 @@ msgstr ""
msgid "Each part must already exist in the database"
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:27
-msgid "Upload File"
-msgstr ""
-
#: part/templates/part/bom_validate.html:6
#, python-format
msgid "Confirm that the Bill of Materials (BOM) is valid for:
%(part)s"
@@ -4023,7 +4249,7 @@ msgstr ""
msgid "All parts"
msgstr ""
-#: part/templates/part/category.html:29 part/views.py:2282
+#: part/templates/part/category.html:29 part/views.py:2290
msgid "Create new part category"
msgstr ""
@@ -4091,7 +4317,7 @@ msgstr ""
msgid "Create new Part Category"
msgstr ""
-#: part/templates/part/category.html:228 stock/views.py:1359
+#: part/templates/part/category.html:228 stock/views.py:1391
msgid "Create new Stock Location"
msgstr ""
@@ -4282,15 +4508,11 @@ msgstr ""
msgid "Sales Price Information"
msgstr ""
-#: part/templates/part/navbar.html:95
-msgid "Sale Price"
-msgstr ""
-
#: part/templates/part/navbar.html:106 part/templates/part/part_tests.html:10
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/navbar.html:109 stock/templates/stock/item_base.html:398
+#: part/templates/part/navbar.html:109 stock/templates/stock/item_base.html:404
msgid "Tests"
msgstr ""
@@ -4315,7 +4537,7 @@ msgstr ""
#: part/templates/part/params.html:28
#: report/templates/report/inventree_test_report_base.html:90
-#: stock/models.py:1655 templates/InvenTree/settings/header.html:8
+#: stock/models.py:1754 templates/InvenTree/settings/header.html:8
#: templates/js/stock.js:124
msgid "Value"
msgstr ""
@@ -4351,19 +4573,19 @@ msgid "Star this part"
msgstr ""
#: part/templates/part/part_base.html:47
-#: stock/templates/stock/item_base.html:131
+#: stock/templates/stock/item_base.html:137
#: stock/templates/stock/location.html:51
msgid "Barcode actions"
msgstr ""
#: part/templates/part/part_base.html:49
-#: stock/templates/stock/item_base.html:133
+#: stock/templates/stock/item_base.html:139
#: stock/templates/stock/location.html:53 templates/qr_button.html:1
msgid "Show QR Code"
msgstr ""
#: part/templates/part/part_base.html:50
-#: stock/templates/stock/item_base.html:149
+#: stock/templates/stock/item_base.html:155
#: stock/templates/stock/location.html:54
msgid "Print Label"
msgstr ""
@@ -4392,7 +4614,7 @@ msgstr ""
msgid "Delete part"
msgstr ""
-#: part/templates/part/part_base.html:123 templates/js/table_filters.js:156
+#: part/templates/part/part_base.html:123 templates/js/table_filters.js:157
msgid "In Stock"
msgstr ""
@@ -4420,42 +4642,39 @@ msgstr ""
msgid "Calculate"
msgstr ""
-#: part/templates/part/part_pricing.html:8
-#, python-format
-msgid "Pricing information for:
%(part)s."
-msgstr ""
-
-#: part/templates/part/part_pricing.html:23
+#: part/templates/part/part_pricing.html:19
msgid "Supplier Pricing"
msgstr ""
-#: part/templates/part/part_pricing.html:27
-#: part/templates/part/part_pricing.html:53
+#: part/templates/part/part_pricing.html:23
+#: part/templates/part/part_pricing.html:49
+#: part/templates/part/part_pricing.html:81
msgid "Unit Cost"
msgstr ""
-#: part/templates/part/part_pricing.html:33
-#: part/templates/part/part_pricing.html:59
+#: part/templates/part/part_pricing.html:29
+#: part/templates/part/part_pricing.html:55
+#: part/templates/part/part_pricing.html:85
msgid "Total Cost"
msgstr ""
-#: part/templates/part/part_pricing.html:41
+#: part/templates/part/part_pricing.html:37
msgid "No supplier pricing available"
msgstr ""
-#: part/templates/part/part_pricing.html:49
+#: part/templates/part/part_pricing.html:45
msgid "BOM Pricing"
msgstr ""
-#: part/templates/part/part_pricing.html:67
+#: part/templates/part/part_pricing.html:63
msgid "Note: BOM pricing is incomplete for this part"
msgstr ""
-#: part/templates/part/part_pricing.html:74
+#: part/templates/part/part_pricing.html:70
msgid "No BOM pricing available"
msgstr ""
-#: part/templates/part/part_pricing.html:84
+#: part/templates/part/part_pricing.html:94
msgid "No pricing information is available for this part."
msgstr ""
@@ -4564,6 +4783,10 @@ msgstr ""
msgid "New Variant"
msgstr ""
+#: part/templatetags/inventree_extras.py:97
+msgid "Unknown database"
+msgstr ""
+
#: part/views.py:89
msgid "Add Related Part"
msgstr ""
@@ -4713,63 +4936,63 @@ msgstr ""
msgid "Part Pricing"
msgstr ""
-#: part/views.py:2081
+#: part/views.py:2089
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:2091
+#: part/views.py:2099
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:2098
+#: part/views.py:2106
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:2106
+#: part/views.py:2114
msgid "Create Part Parameter"
msgstr ""
-#: part/views.py:2156
+#: part/views.py:2164
msgid "Edit Part Parameter"
msgstr ""
-#: part/views.py:2170
+#: part/views.py:2178
msgid "Delete Part Parameter"
msgstr ""
-#: part/views.py:2230
+#: part/views.py:2238
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:2268
+#: part/views.py:2276
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:2274
+#: part/views.py:2282
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:2326
+#: part/views.py:2334
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:2427
+#: part/views.py:2435
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:2483
+#: part/views.py:2491
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:2502
+#: part/views.py:2510
msgid "Create BOM Item"
msgstr ""
-#: part/views.py:2572
+#: part/views.py:2580
msgid "Edit BOM item"
msgstr ""
-#: part/views.py:2628
+#: part/views.py:2636
msgid "Confim BOM item deletion"
msgstr ""
@@ -4871,17 +5094,17 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:1643
+#: stock/models.py:1742
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:89
-#: stock/models.py:1649
+#: stock/models.py:1748
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:92
-#: templates/js/order.js:195 templates/js/stock.js:986
+#: templates/js/order.js:195 templates/js/stock.js:984
msgid "Date"
msgstr ""
@@ -4893,22 +5116,22 @@ msgstr ""
msgid "Fail"
msgstr ""
-#: stock/api.py:199
+#: stock/api.py:212
#, python-brace-format
msgid "Updated stock for {n} items"
msgstr ""
-#: stock/api.py:268
+#: stock/api.py:281
#, python-brace-format
msgid "Moved {n} parts to {loc}"
msgstr ""
-#: stock/forms.py:114 stock/forms.py:406 stock/models.py:475
-#: stock/templates/stock/item_base.html:365 templates/js/stock.js:656
+#: stock/forms.py:114 stock/forms.py:418 stock/models.py:507
+#: stock/templates/stock/item_base.html:371 templates/js/stock.js:656
msgid "Expiry Date"
msgstr ""
-#: stock/forms.py:115 stock/forms.py:407
+#: stock/forms.py:115 stock/forms.py:419
msgid "Expiration date for this stock item"
msgstr ""
@@ -4936,8 +5159,8 @@ msgstr ""
msgid "Select test report template"
msgstr ""
-#: stock/forms.py:267 templates/js/table_filters.js:70
-#: templates/js/table_filters.js:133
+#: stock/forms.py:267 templates/js/table_filters.js:71
+#: templates/js/table_filters.js:134
msgid "Include sublocations"
msgstr ""
@@ -4993,243 +5216,187 @@ msgstr ""
msgid "Set the destination as the default location for selected parts"
msgstr ""
-#: stock/models.py:54 stock/models.py:513
+#: stock/models.py:54 stock/models.py:545
msgid "Owner"
msgstr ""
-#: stock/models.py:55 stock/models.py:514
+#: stock/models.py:55 stock/models.py:546
msgid "Select Owner"
msgstr ""
-#: stock/models.py:205
-msgid "Created stock item"
-msgstr ""
-
-#: stock/models.py:241
+#: stock/models.py:273
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:277
+#: stock/models.py:309
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:287 stock/models.py:296
+#: stock/models.py:319 stock/models.py:328
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:288
+#: stock/models.py:320
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:310
+#: stock/models.py:342
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:316
+#: stock/models.py:348
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:323
+#: stock/models.py:355
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:365
+#: stock/models.py:397
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:374
+#: stock/models.py:406
msgid "Base part"
msgstr ""
-#: stock/models.py:383
+#: stock/models.py:415
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:388 stock/templates/stock/stock_app_base.html:8
+#: stock/models.py:420 stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:391
+#: stock/models.py:423
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:398
+#: stock/models.py:430
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:403 stock/templates/stock/item_base.html:259
+#: stock/models.py:435 stock/templates/stock/item_base.html:265
msgid "Installed In"
msgstr ""
-#: stock/models.py:406
+#: stock/models.py:438
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:422
+#: stock/models.py:454
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:434
+#: stock/models.py:466
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:438
+#: stock/models.py:470
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:447
+#: stock/models.py:479
msgid "Source Build"
msgstr ""
-#: stock/models.py:449
+#: stock/models.py:481
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:460
+#: stock/models.py:492
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:463
+#: stock/models.py:495
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:469
+#: stock/models.py:501
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:476
+#: stock/models.py:508
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:489
+#: stock/models.py:521
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:489
+#: stock/models.py:521
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:499 stock/templates/stock/item_notes.html:13
+#: stock/models.py:531 stock/templates/stock/item_notes.html:13
#: stock/templates/stock/navbar.html:54
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:509
+#: stock/models.py:541
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:614
-msgid "Assigned to Customer"
-msgstr ""
-
-#: stock/models.py:616
-msgid "Manually assigned to customer"
-msgstr ""
-
-#: stock/models.py:629
-msgid "Returned from customer"
-msgstr ""
-
-#: stock/models.py:631
-msgid "Returned to location"
-msgstr ""
-
-#: stock/models.py:792
-msgid "Installed into stock item"
-msgstr ""
-
-#: stock/models.py:800
-msgid "Installed stock item"
-msgstr ""
-
-#: stock/models.py:824
-msgid "Uninstalled stock item"
-msgstr ""
-
-#: stock/models.py:843
-msgid "Uninstalled into location"
-msgstr ""
-
-#: stock/models.py:944
+#: stock/models.py:1009
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:950
+#: stock/models.py:1015
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:956
+#: stock/models.py:1021
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:959
+#: stock/models.py:1024
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:962
+#: stock/models.py:1027
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:994
-msgid "Add serial number"
-msgstr ""
-
-#: stock/models.py:997
+#: stock/models.py:1034
#, python-brace-format
-msgid "Serialized {n} items"
+msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1075
-msgid "Split from existing stock"
-msgstr ""
-
-#: stock/models.py:1113
+#: stock/models.py:1192
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1556
-msgid "Title"
-msgstr ""
-
-#: stock/models.py:1556
-msgid "Tracking entry title"
-msgstr ""
-
-#: stock/models.py:1558
+#: stock/models.py:1666
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1560
-msgid "Link to external page for further information"
-msgstr ""
-
-#: stock/models.py:1620
+#: stock/models.py:1719
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1626
+#: stock/models.py:1725
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1644
+#: stock/models.py:1743
msgid "Test name"
msgstr ""
-#: stock/models.py:1650 templates/js/table_filters.js:212
+#: stock/models.py:1749 templates/js/table_filters.js:213
msgid "Test result"
msgstr ""
-#: stock/models.py:1656
+#: stock/models.py:1755
msgid "Test output value"
msgstr ""
-#: stock/models.py:1663
+#: stock/models.py:1762
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1669
+#: stock/models.py:1768
msgid "Test notes"
msgstr ""
@@ -5284,134 +5451,134 @@ msgid "This stock item will be automatically deleted when all stock is depleted.
msgstr ""
#: stock/templates/stock/item_base.html:95
-#: stock/templates/stock/item_base.html:369 templates/js/table_filters.js:145
+#: stock/templates/stock/item_base.html:375 templates/js/table_filters.js:146
msgid "Expired"
msgstr ""
-#: stock/templates/stock/item_base.html:99
-#: stock/templates/stock/item_base.html:371 templates/js/table_filters.js:150
+#: stock/templates/stock/item_base.html:105
+#: stock/templates/stock/item_base.html:377 templates/js/table_filters.js:151
msgid "Stale"
msgstr ""
-#: stock/templates/stock/item_base.html:136 templates/js/barcode.js:309
+#: stock/templates/stock/item_base.html:142 templates/js/barcode.js:309
#: templates/js/barcode.js:314
msgid "Unlink Barcode"
msgstr ""
-#: stock/templates/stock/item_base.html:138
+#: stock/templates/stock/item_base.html:144
msgid "Link Barcode"
msgstr ""
-#: stock/templates/stock/item_base.html:140 templates/stock_table.html:31
+#: stock/templates/stock/item_base.html:146 templates/stock_table.html:31
msgid "Scan to Location"
msgstr ""
-#: stock/templates/stock/item_base.html:147
+#: stock/templates/stock/item_base.html:153
msgid "Printing actions"
msgstr ""
-#: stock/templates/stock/item_base.html:151
+#: stock/templates/stock/item_base.html:157
#: stock/templates/stock/item_tests.html:27
msgid "Test Report"
msgstr ""
-#: stock/templates/stock/item_base.html:160
+#: stock/templates/stock/item_base.html:166
msgid "Stock adjustment actions"
msgstr ""
-#: stock/templates/stock/item_base.html:164
+#: stock/templates/stock/item_base.html:170
#: stock/templates/stock/location.html:65 templates/stock_table.html:57
msgid "Count stock"
msgstr ""
-#: stock/templates/stock/item_base.html:167 templates/stock_table.html:55
+#: stock/templates/stock/item_base.html:173 templates/stock_table.html:55
msgid "Add stock"
msgstr ""
-#: stock/templates/stock/item_base.html:170 templates/stock_table.html:56
+#: stock/templates/stock/item_base.html:176 templates/stock_table.html:56
msgid "Remove stock"
msgstr ""
-#: stock/templates/stock/item_base.html:173
+#: stock/templates/stock/item_base.html:179
msgid "Serialize stock"
msgstr ""
-#: stock/templates/stock/item_base.html:177
+#: stock/templates/stock/item_base.html:183
msgid "Transfer stock"
msgstr ""
-#: stock/templates/stock/item_base.html:180
+#: stock/templates/stock/item_base.html:186
msgid "Assign to customer"
msgstr ""
-#: stock/templates/stock/item_base.html:183
+#: stock/templates/stock/item_base.html:189
msgid "Return to stock"
msgstr ""
-#: stock/templates/stock/item_base.html:187 templates/js/stock.js:1299
+#: stock/templates/stock/item_base.html:193 templates/js/stock.js:1421
msgid "Uninstall stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:187
+#: stock/templates/stock/item_base.html:193
msgid "Uninstall"
msgstr ""
-#: stock/templates/stock/item_base.html:196
+#: stock/templates/stock/item_base.html:202
#: stock/templates/stock/location.html:62
msgid "Stock actions"
msgstr ""
-#: stock/templates/stock/item_base.html:199
+#: stock/templates/stock/item_base.html:205
msgid "Convert to variant"
msgstr ""
-#: stock/templates/stock/item_base.html:202
+#: stock/templates/stock/item_base.html:208
msgid "Duplicate stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:204
+#: stock/templates/stock/item_base.html:210
msgid "Edit stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:207
+#: stock/templates/stock/item_base.html:213
msgid "Delete stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:219
+#: stock/templates/stock/item_base.html:225
msgid "Stock Item Details"
msgstr ""
-#: stock/templates/stock/item_base.html:278 templates/js/build.js:498
+#: stock/templates/stock/item_base.html:284 templates/js/build.js:498
msgid "No location set"
msgstr ""
-#: stock/templates/stock/item_base.html:285
+#: stock/templates/stock/item_base.html:291
msgid "Barcode Identifier"
msgstr ""
-#: stock/templates/stock/item_base.html:327
+#: stock/templates/stock/item_base.html:333
msgid "Parent Item"
msgstr ""
-#: stock/templates/stock/item_base.html:369
+#: stock/templates/stock/item_base.html:375
#, python-format
msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:371
+#: stock/templates/stock/item_base.html:377
#, python-format
msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:378 templates/js/stock.js:662
+#: stock/templates/stock/item_base.html:384 templates/js/stock.js:662
msgid "Last Updated"
msgstr ""
-#: stock/templates/stock/item_base.html:383
+#: stock/templates/stock/item_base.html:389
msgid "Last Stocktake"
msgstr ""
-#: stock/templates/stock/item_base.html:387
+#: stock/templates/stock/item_base.html:393
msgid "No stocktake performed"
msgstr ""
@@ -5522,7 +5689,7 @@ msgid "Stock Details"
msgstr ""
#: stock/templates/stock/location.html:117 templates/InvenTree/search.html:279
-#: templates/stats.html:76 users/models.py:41
+#: templates/stats.html:97 users/models.py:41
msgid "Stock Locations"
msgstr ""
@@ -5562,7 +5729,7 @@ msgstr ""
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:1332
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:1364
msgid "Convert Stock Item"
msgstr ""
@@ -5595,8 +5762,8 @@ msgstr ""
msgid "Edit Stock Location"
msgstr ""
-#: stock/views.py:230 stock/views.py:1322 stock/views.py:1433
-#: stock/views.py:1798
+#: stock/views.py:230 stock/views.py:1343 stock/views.py:1465
+#: stock/views.py:1830
msgid "Owner is required (ownership control is enabled)"
msgstr ""
@@ -5762,43 +5929,47 @@ msgstr ""
msgid "Deleted {n} stock items"
msgstr ""
-#: stock/views.py:1224
+#: stock/views.py:1222
+msgid "Edit Stock Item Status"
+msgstr ""
+
+#: stock/views.py:1245
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:1450
+#: stock/views.py:1482
msgid "Serialize Stock"
msgstr ""
-#: stock/views.py:1543 templates/js/build.js:244
+#: stock/views.py:1575 templates/js/build.js:244
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1685
+#: stock/views.py:1717
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1767
+#: stock/views.py:1799
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1867
+#: stock/views.py:1899
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:1880
+#: stock/views.py:1912
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1891
+#: stock/views.py:1923
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1898
+#: stock/views.py:1930
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1907
+#: stock/views.py:1939
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -5896,8 +6067,7 @@ msgstr ""
#: templates/InvenTree/settings/appearance.html:29
#, python-format
-msgid ""
-"\n"
+msgid "\n"
" The CSS sheet \"%(invalid_color_theme)s.css\" for the currently selected color theme was not found.
\n"
" Please select another color theme :)\n"
" "
@@ -6100,9 +6270,17 @@ msgstr ""
msgid "Submit Bug Report"
msgstr ""
-#: templates/about.html:82 templates/js/modals.js:550
-#: templates/js/modals.js:809 templates/modals.html:28 templates/modals.html:52
-#: templates/modals.html:93
+#: templates/about.html:80 templates/clip.html:4
+msgid "copy to clipboard"
+msgstr ""
+
+#: templates/about.html:80
+msgid "copy version information"
+msgstr ""
+
+#: templates/about.html:90 templates/js/modals.js:568
+#: templates/js/modals.js:846 templates/modals.html:29 templates/modals.html:54
+#: templates/modals.html:97
msgid "Close"
msgstr ""
@@ -6110,10 +6288,6 @@ msgstr ""
msgid "Add Attachment"
msgstr ""
-#: templates/attachment_table.html:15
-msgid "File"
-msgstr ""
-
#: templates/attachment_table.html:17
msgid "Uploaded"
msgstr ""
@@ -6166,7 +6340,7 @@ msgstr ""
msgid "Unknown response from server"
msgstr ""
-#: templates/js/barcode.js:119 templates/js/modals.js:857
+#: templates/js/barcode.js:119 templates/js/modals.js:901
msgid "Invalid server response"
msgstr ""
@@ -6311,7 +6485,7 @@ msgstr ""
#: templates/js/build.js:708 templates/js/part.js:324 templates/js/part.js:546
#: templates/js/stock.js:511 templates/js/stock.js:938
-#: templates/js/stock.js:1331
+#: templates/js/stock.js:1453
msgid "Select"
msgstr ""
@@ -6409,96 +6583,96 @@ msgstr ""
msgid "Select Label Template"
msgstr ""
-#: templates/js/modals.js:256
+#: templates/js/modals.js:265
msgid "Waiting for server..."
msgstr ""
-#: templates/js/modals.js:406
+#: templates/js/modals.js:424
msgid "Show Error Information"
msgstr ""
-#: templates/js/modals.js:473 templates/modals.html:73
+#: templates/js/modals.js:491 templates/modals.html:76
msgid "Accept"
msgstr ""
-#: templates/js/modals.js:474 templates/modals.html:72
+#: templates/js/modals.js:492 templates/modals.html:75
msgid "Cancel"
msgstr ""
-#: templates/js/modals.js:538
+#: templates/js/modals.js:556
msgid "Loading Data"
msgstr ""
-#: templates/js/modals.js:549 templates/js/modals.js:808
-#: templates/modals.html:29 templates/modals.html:53
+#: templates/js/modals.js:567 templates/js/modals.js:845
+#: templates/modals.html:30 templates/modals.html:55
msgid "Submit"
msgstr ""
-#: templates/js/modals.js:760
+#: templates/js/modals.js:797
msgid "Invalid response from server"
msgstr ""
-#: templates/js/modals.js:760
+#: templates/js/modals.js:797
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/modals.js:773
+#: templates/js/modals.js:810
msgid "Error posting form data"
msgstr ""
-#: templates/js/modals.js:857
+#: templates/js/modals.js:901
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/modals.js:867
+#: templates/js/modals.js:911
msgid "No Response"
msgstr ""
-#: templates/js/modals.js:868
+#: templates/js/modals.js:912
msgid "No response from the InvenTree server"
msgstr ""
-#: templates/js/modals.js:872
+#: templates/js/modals.js:916
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/modals.js:873
+#: templates/js/modals.js:917
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/modals.js:877
+#: templates/js/modals.js:921
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/modals.js:878
+#: templates/js/modals.js:922
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/modals.js:882
+#: templates/js/modals.js:926
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/modals.js:883
+#: templates/js/modals.js:927
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/modals.js:887
+#: templates/js/modals.js:931
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/modals.js:888
+#: templates/js/modals.js:932
msgid "The requested resource could not be located on the server"
msgstr ""
-#: templates/js/modals.js:892
+#: templates/js/modals.js:936
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/modals.js:893
+#: templates/js/modals.js:937
msgid "Connection timeout while requesting data from server"
msgstr ""
-#: templates/js/modals.js:896
+#: templates/js/modals.js:940
msgid "Error requesting form data"
msgstr ""
@@ -6542,7 +6716,7 @@ msgstr ""
msgid "No category"
msgstr ""
-#: templates/js/part.js:409 templates/js/table_filters.js:318
+#: templates/js/part.js:409 templates/js/table_filters.js:319
msgid "Low stock"
msgstr ""
@@ -6740,7 +6914,7 @@ msgstr ""
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/stock.js:620 templates/js/table_filters.js:138
+#: templates/js/stock.js:620 templates/js/table_filters.js:139
msgid "Depleted"
msgstr ""
@@ -6764,189 +6938,213 @@ msgstr ""
msgid "Status code must be selected"
msgstr ""
-#: templates/js/stock.js:1050
+#: templates/js/stock.js:994
+msgid "Invalid date"
+msgstr ""
+
+#: templates/js/stock.js:1036
+msgid "Location no longer exists"
+msgstr ""
+
+#: templates/js/stock.js:1055
+msgid "Purchase order no longer exists"
+msgstr ""
+
+#: templates/js/stock.js:1074
+msgid "Customer no longer exists"
+msgstr ""
+
+#: templates/js/stock.js:1092
+msgid "Stock item no longer exists"
+msgstr ""
+
+#: templates/js/stock.js:1115
+msgid "Added"
+msgstr ""
+
+#: templates/js/stock.js:1123
+msgid "Removed"
+msgstr ""
+
+#: templates/js/stock.js:1155
msgid "No user information"
msgstr ""
-#: templates/js/stock.js:1060
+#: templates/js/stock.js:1167
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/stock.js:1061
+#: templates/js/stock.js:1168
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/stock.js:1170
+#: templates/js/stock.js:1292
msgid "Create New Location"
msgstr ""
-#: templates/js/stock.js:1269
+#: templates/js/stock.js:1391
msgid "Serial"
msgstr ""
-#: templates/js/stock.js:1362 templates/js/table_filters.js:171
+#: templates/js/stock.js:1484 templates/js/table_filters.js:172
msgid "Installed"
msgstr ""
-#: templates/js/stock.js:1387
+#: templates/js/stock.js:1509
msgid "Install item"
msgstr ""
-#: templates/js/table_filters.js:42
+#: templates/js/table_filters.js:43
msgid "Trackable Part"
msgstr ""
-#: templates/js/table_filters.js:46
+#: templates/js/table_filters.js:47
msgid "Validated"
msgstr ""
-#: templates/js/table_filters.js:71
+#: templates/js/table_filters.js:72
msgid "Include locations"
msgstr ""
-#: templates/js/table_filters.js:81 templates/js/table_filters.js:82
-#: templates/js/table_filters.js:295
+#: templates/js/table_filters.js:82 templates/js/table_filters.js:83
+#: templates/js/table_filters.js:296
msgid "Include subcategories"
msgstr ""
-#: templates/js/table_filters.js:92 templates/js/table_filters.js:181
+#: templates/js/table_filters.js:93 templates/js/table_filters.js:182
msgid "Is Serialized"
msgstr ""
-#: templates/js/table_filters.js:95 templates/js/table_filters.js:188
+#: templates/js/table_filters.js:96 templates/js/table_filters.js:189
msgid "Serial number GTE"
msgstr ""
-#: templates/js/table_filters.js:96 templates/js/table_filters.js:189
+#: templates/js/table_filters.js:97 templates/js/table_filters.js:190
msgid "Serial number greater than or equal to"
msgstr ""
-#: templates/js/table_filters.js:99 templates/js/table_filters.js:192
+#: templates/js/table_filters.js:100 templates/js/table_filters.js:193
msgid "Serial number LTE"
msgstr ""
-#: templates/js/table_filters.js:100 templates/js/table_filters.js:193
+#: templates/js/table_filters.js:101 templates/js/table_filters.js:194
msgid "Serial number less than or equal to"
msgstr ""
-#: templates/js/table_filters.js:103 templates/js/table_filters.js:104
-#: templates/js/table_filters.js:184 templates/js/table_filters.js:185
+#: templates/js/table_filters.js:104 templates/js/table_filters.js:105
+#: templates/js/table_filters.js:185 templates/js/table_filters.js:186
msgid "Serial number"
msgstr ""
-#: templates/js/table_filters.js:108 templates/js/table_filters.js:202
+#: templates/js/table_filters.js:109 templates/js/table_filters.js:203
msgid "Batch code"
msgstr ""
-#: templates/js/table_filters.js:118 templates/js/table_filters.js:285
+#: templates/js/table_filters.js:119 templates/js/table_filters.js:286
msgid "Active parts"
msgstr ""
-#: templates/js/table_filters.js:119
+#: templates/js/table_filters.js:120
msgid "Show stock for active parts"
msgstr ""
-#: templates/js/table_filters.js:124
+#: templates/js/table_filters.js:125
msgid "Part is an assembly"
msgstr ""
-#: templates/js/table_filters.js:128
+#: templates/js/table_filters.js:129
msgid "Is allocated"
msgstr ""
-#: templates/js/table_filters.js:129
+#: templates/js/table_filters.js:130
msgid "Item has been allocated"
msgstr ""
-#: templates/js/table_filters.js:134
+#: templates/js/table_filters.js:135
msgid "Include stock in sublocations"
msgstr ""
-#: templates/js/table_filters.js:139
+#: templates/js/table_filters.js:140
msgid "Show stock items which are depleted"
msgstr ""
-#: templates/js/table_filters.js:146
+#: templates/js/table_filters.js:147
msgid "Show stock items which have expired"
msgstr ""
-#: templates/js/table_filters.js:151
+#: templates/js/table_filters.js:152
msgid "Show stock which is close to expiring"
msgstr ""
-#: templates/js/table_filters.js:157
+#: templates/js/table_filters.js:158
msgid "Show items which are in stock"
msgstr ""
-#: templates/js/table_filters.js:161
+#: templates/js/table_filters.js:162
msgid "In Production"
msgstr ""
-#: templates/js/table_filters.js:162
+#: templates/js/table_filters.js:163
msgid "Show items which are in production"
msgstr ""
-#: templates/js/table_filters.js:166
+#: templates/js/table_filters.js:167
msgid "Include Variants"
msgstr ""
-#: templates/js/table_filters.js:167
+#: templates/js/table_filters.js:168
msgid "Include stock items for variant parts"
msgstr ""
-#: templates/js/table_filters.js:172
+#: templates/js/table_filters.js:173
msgid "Show stock items which are installed in another item"
msgstr ""
-#: templates/js/table_filters.js:176
-msgid "Sent to customer"
-msgstr ""
-
-#: templates/js/table_filters.js:177
+#: templates/js/table_filters.js:178
msgid "Show items which have been assigned to a customer"
msgstr ""
-#: templates/js/table_filters.js:197 templates/js/table_filters.js:198
+#: templates/js/table_filters.js:198 templates/js/table_filters.js:199
msgid "Stock status"
msgstr ""
-#: templates/js/table_filters.js:231
+#: templates/js/table_filters.js:232
msgid "Build status"
msgstr ""
-#: templates/js/table_filters.js:250 templates/js/table_filters.js:267
+#: templates/js/table_filters.js:251 templates/js/table_filters.js:268
msgid "Order status"
msgstr ""
-#: templates/js/table_filters.js:255 templates/js/table_filters.js:272
+#: templates/js/table_filters.js:256 templates/js/table_filters.js:273
msgid "Outstanding"
msgstr ""
-#: templates/js/table_filters.js:296
+#: templates/js/table_filters.js:297
msgid "Include parts in subcategories"
msgstr ""
-#: templates/js/table_filters.js:300
+#: templates/js/table_filters.js:301
msgid "Has IPN"
msgstr ""
-#: templates/js/table_filters.js:301
+#: templates/js/table_filters.js:302
msgid "Part has internal part number"
msgstr ""
-#: templates/js/table_filters.js:306
+#: templates/js/table_filters.js:307
msgid "Show active parts"
msgstr ""
-#: templates/js/table_filters.js:314
+#: templates/js/table_filters.js:315
msgid "Stock available"
msgstr ""
-#: templates/js/table_filters.js:330
+#: templates/js/table_filters.js:331
msgid "Starred"
msgstr ""
-#: templates/js/table_filters.js:342
+#: templates/js/table_filters.js:343
msgid "Purchasable"
msgstr ""
@@ -7003,7 +7201,7 @@ msgstr ""
msgid "All"
msgstr ""
-#: templates/modals.html:21 templates/modals.html:46
+#: templates/modals.html:21 templates/modals.html:47
msgid "Form errors exist"
msgstr ""
@@ -7115,31 +7313,47 @@ msgstr ""
msgid "Instance Name"
msgstr ""
-#: templates/stats.html:19
-msgid "Server status"
+#: templates/stats.html:18
+msgid "Database"
msgstr ""
-#: templates/stats.html:22
-msgid "Healthy"
+#: templates/stats.html:26
+msgid "Server is running in debug mode"
msgstr ""
-#: templates/stats.html:24
-msgid "Issues detected"
-msgstr ""
-
-#: templates/stats.html:31
-msgid "Background Worker"
+#: templates/stats.html:33
+msgid "Docker Mode"
msgstr ""
#: templates/stats.html:34
-msgid "Background worker not running"
+msgid "Server is deployed using docker"
msgstr ""
-#: templates/stats.html:42
-msgid "Email Settings"
+#: templates/stats.html:40
+msgid "Server status"
+msgstr ""
+
+#: templates/stats.html:43
+msgid "Healthy"
msgstr ""
#: templates/stats.html:45
+msgid "Issues detected"
+msgstr ""
+
+#: templates/stats.html:52
+msgid "Background Worker"
+msgstr ""
+
+#: templates/stats.html:55
+msgid "Background worker not running"
+msgstr ""
+
+#: templates/stats.html:63
+msgid "Email Settings"
+msgstr ""
+
+#: templates/stats.html:66
msgid "Email settings not configured"
msgstr ""
@@ -7258,3 +7472,4 @@ msgstr ""
#: users/models.py:187
msgid "Permission to delete items"
msgstr ""
+
diff --git a/crowdin.yml b/crowdin.yml
index 0fa92db24d..ad69a576eb 100644
--- a/crowdin.yml
+++ b/crowdin.yml
@@ -1,3 +1,6 @@
+"commit_message": "Fix: New translations %original_file_name% from Crowdin"
+"append_commit_message": false
+
files:
- source: /InvenTree/locale/en/LC_MESSAGES/django.po
translation: /InvenTree/locale/%two_letters_code%/LC_MESSAGES/%original_file_name%