diff --git a/InvenTree/locale/de/LC_MESSAGES/django.po b/InvenTree/locale/de/LC_MESSAGES/django.po
index 768f5a9304..60d2d7b8a4 100644
--- a/InvenTree/locale/de/LC_MESSAGES/django.po
+++ b/InvenTree/locale/de/LC_MESSAGES/django.po
@@ -1,9 +1,10 @@
+#: templates/js/translated/order.js:1973
msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-12-03 10:37+0000\n"
-"PO-Revision-Date: 2021-12-03 11:26\n"
+"POT-Creation-Date: 2021-12-08 23:43+0000\n"
+"PO-Revision-Date: 2021-12-08 23:46\n"
"Last-Translator: \n"
"Language-Team: German\n"
"Language: de_DE\n"
@@ -34,8 +35,8 @@ msgid "Enter date"
msgstr "Datum eingeben"
#: InvenTree/forms.py:120 build/forms.py:48 build/forms.py:69 build/forms.py:93
-#: order/forms.py:26 order/forms.py:37 order/forms.py:48 order/forms.py:59
-#: order/forms.py:70 part/forms.py:108 templates/account/email_confirm.html:20
+#: order/forms.py:24 order/forms.py:35 order/forms.py:46 order/forms.py:57
+#: part/forms.py:108 templates/account/email_confirm.html:20
#: templates/js/translated/forms.js:595
msgid "Confirm"
msgstr "Bestätigen"
@@ -85,8 +86,8 @@ msgstr "E-Mail Adressen müssen übereinstimmen."
msgid "Duplicate serial: {n}"
msgstr "Doppelte Seriennummer: {n}"
-#: InvenTree/helpers.py:437 order/models.py:318 order/models.py:440
-#: stock/views.py:1264
+#: InvenTree/helpers.py:437 order/models.py:279 order/models.py:420
+#: stock/views.py:1231
msgid "Invalid quantity provided"
msgstr "Keine gültige Menge"
@@ -122,7 +123,7 @@ msgstr "Fehlende Datei"
msgid "Missing external link"
msgstr "Fehlender externer Link"
-#: InvenTree/models.py:132 stock/models.py:1864
+#: InvenTree/models.py:132 stock/models.py:1852
#: templates/js/translated/attachment.js:117
msgid "Attachment"
msgstr "Anhang"
@@ -132,7 +133,7 @@ msgid "Select file to attach"
msgstr "Datei zum Anhängen auswählen"
#: InvenTree/models.py:139 company/models.py:131 company/models.py:348
-#: company/models.py:564 order/models.py:163 part/models.py:797
+#: company/models.py:564 order/models.py:124 part/models.py:797
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:537
#: templates/js/translated/company.js:826 templates/js/translated/part.js:1258
@@ -140,7 +141,7 @@ msgid "Link"
msgstr "Link"
#: InvenTree/models.py:140 build/models.py:330 part/models.py:798
-#: stock/models.py:530
+#: stock/models.py:524
msgid "Link to external URL"
msgstr "Link zu einer externen URL"
@@ -152,10 +153,10 @@ msgstr "Kommentar"
msgid "File comment"
msgstr "Datei-Kommentar"
-#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1185
-#: common/models.py:1186 part/models.py:2205 part/models.py:2225
+#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1213
+#: common/models.py:1214 part/models.py:2205 part/models.py:2225
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2166
+#: templates/js/translated/stock.js:2341
msgid "User"
msgstr "Benutzer"
@@ -194,10 +195,15 @@ msgstr "Ungültige Auswahl"
#: InvenTree/models.py:277 InvenTree/models.py:278 company/models.py:415
#: label/models.py:112 part/models.py:741 part/models.py:2389
-#: report/models.py:181 templates/InvenTree/settings/settings.html:259
+#: plugin/models.py:39 report/models.py:181
+#: templates/InvenTree/settings/mixins/urls.html:11
+#: templates/InvenTree/settings/plugin.html:47
+#: templates/InvenTree/settings/plugin.html:124
+#: templates/InvenTree/settings/plugin_settings.html:23
+#: templates/InvenTree/settings/settings.html:268
#: templates/js/translated/company.js:638 templates/js/translated/part.js:506
#: templates/js/translated/part.js:643 templates/js/translated/part.js:1565
-#: templates/js/translated/stock.js:1959
+#: templates/js/translated/stock.js:2134
msgid "Name"
msgstr "Name"
@@ -206,22 +212,23 @@ msgstr "Name"
#: company/models.py:570 company/templates/company/company_base.html:68
#: company/templates/company/manufacturer_part.html:76
#: company/templates/company/supplier_part.html:73 label/models.py:119
-#: order/models.py:161 part/models.py:764 part/templates/part/category.html:70
+#: order/models.py:122 part/models.py:764 part/templates/part/category.html:70
#: part/templates/part/part_base.html:163
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:553 report/models.py:592
#: report/templates/report/inventree_build_order_base.html:118
-#: stock/templates/stock/location.html:89 templates/js/translated/bom.js:215
-#: templates/js/translated/bom.js:428 templates/js/translated/build.js:1621
-#: templates/js/translated/company.js:345
+#: stock/templates/stock/location.html:89
+#: templates/InvenTree/settings/plugin_settings.html:33
+#: templates/js/translated/bom.js:215 templates/js/translated/bom.js:428
+#: templates/js/translated/build.js:1627 templates/js/translated/company.js:345
#: templates/js/translated/company.js:548
-#: templates/js/translated/company.js:837 templates/js/translated/order.js:680
-#: templates/js/translated/order.js:854 templates/js/translated/order.js:1090
+#: templates/js/translated/company.js:837 templates/js/translated/order.js:836
+#: templates/js/translated/order.js:1019 templates/js/translated/order.js:1258
#: templates/js/translated/part.js:565 templates/js/translated/part.js:933
#: templates/js/translated/part.js:1018 templates/js/translated/part.js:1188
#: templates/js/translated/part.js:1584 templates/js/translated/part.js:1653
-#: templates/js/translated/stock.js:1233 templates/js/translated/stock.js:1971
-#: templates/js/translated/stock.js:2016
+#: templates/js/translated/stock.js:1390 templates/js/translated/stock.js:2146
+#: templates/js/translated/stock.js:2191
msgid "Description"
msgstr "Beschreibung"
@@ -241,83 +248,83 @@ msgstr "Muss eine gültige Nummer sein"
msgid "Filename"
msgstr "Dateiname"
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:689
msgid "German"
msgstr "Deutsch"
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:690
msgid "Greek"
msgstr "Griechisch"
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:691
msgid "English"
msgstr "Englisch"
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:692
msgid "Spanish"
msgstr "Spanisch"
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:693
msgid "Spanish (Mexican)"
msgstr "Spanisch (Mexikanisch)"
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:694
msgid "French"
msgstr "Französisch"
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:695
msgid "Hebrew"
msgstr "Hebräisch"
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:696
msgid "Italian"
msgstr "Italienisch"
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:697
msgid "Japanese"
msgstr "Japanisch"
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:698
msgid "Korean"
msgstr "Koreanisch"
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:699
msgid "Dutch"
msgstr "Niederländisch"
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:700
msgid "Norwegian"
msgstr "Norwegisch"
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:701
msgid "Polish"
msgstr "Polnisch"
-#: InvenTree/settings.py:683
+#: InvenTree/settings.py:702
msgid "Portugese"
msgstr "Portugiesisch"
-#: InvenTree/settings.py:684
+#: InvenTree/settings.py:703
msgid "Russian"
msgstr "Russisch"
-#: InvenTree/settings.py:685
+#: InvenTree/settings.py:704
msgid "Swedish"
msgstr "Schwedisch"
-#: InvenTree/settings.py:686
+#: InvenTree/settings.py:705
msgid "Thai"
msgstr "Thailändisch"
-#: InvenTree/settings.py:687
+#: InvenTree/settings.py:706
msgid "Turkish"
msgstr "Türkisch"
-#: InvenTree/settings.py:688
+#: InvenTree/settings.py:707
msgid "Vietnamese"
msgstr "Vietnamesisch"
-#: InvenTree/settings.py:689
+#: InvenTree/settings.py:708
msgid "Chinese"
msgstr "Chinesisch"
@@ -334,7 +341,7 @@ msgid "InvenTree system health checks failed"
msgstr "InvenTree Status-Überprüfung fehlgeschlagen"
#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142
-#: InvenTree/status_codes.py:311
+#: InvenTree/status_codes.py:311 templates/js/translated/table_filters.js:313
msgid "Pending"
msgstr "Ausstehend"
@@ -343,6 +350,8 @@ msgid "Placed"
msgstr "Platziert"
#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:314
+#: order/templates/order/order_base.html:128
+#: order/templates/order/sales_order_base.html:132
msgid "Complete"
msgstr "Fertig"
@@ -361,8 +370,8 @@ msgstr "Verloren"
msgid "Returned"
msgstr "Zurückgegeben"
-#: InvenTree/status_codes.py:143
-#: order/templates/order/sales_order_base.html:148
+#: InvenTree/status_codes.py:143 order/models.py:939
+#: templates/js/translated/order.js:1980 templates/js/translated/order.js:2255
msgid "Shipped"
msgstr "Versendet"
@@ -442,7 +451,7 @@ msgstr "Vom übergeordneten Element geteilt"
msgid "Split child item"
msgstr "Unterobjekt geteilt"
-#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:208
+#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:213
msgid "Sent to customer"
msgstr "Zum Kunden geschickt"
@@ -522,55 +531,55 @@ msgstr "Passwort eingeben"
msgid "Password fields must match"
msgstr "Passwörter stimmen nicht überein"
-#: InvenTree/views.py:883 templates/navbar.html:101
+#: InvenTree/views.py:883 templates/navbar.html:126
msgid "System Information"
msgstr "Systeminformationen"
-#: barcodes/api.py:53 barcodes/api.py:150
+#: barcodes/api.py:54 barcodes/api.py:151
msgid "Must provide barcode_data parameter"
msgstr "barcode_data Parameter angeben"
-#: barcodes/api.py:126
+#: barcodes/api.py:127
msgid "No match found for barcode data"
msgstr "Keine Treffer für Barcode"
-#: barcodes/api.py:128
+#: barcodes/api.py:129
msgid "Match found for barcode data"
msgstr "Treffer für Barcode gefunden"
-#: barcodes/api.py:153
+#: barcodes/api.py:154
msgid "Must provide stockitem parameter"
msgstr "Lagerartikel-Parameter muss angegeben werden"
-#: barcodes/api.py:160
+#: barcodes/api.py:161
msgid "No matching stock item found"
msgstr "Keine passende Lagerartikel gefunden"
-#: barcodes/api.py:190
-msgid "Barcode already matches StockItem object"
-msgstr "Barcode entspricht bereits einem Lagerartikel"
+#: barcodes/api.py:191
+msgid "Barcode already matches Stock Item"
+msgstr ""
-#: barcodes/api.py:194
-msgid "Barcode already matches StockLocation object"
-msgstr "Barcode entspricht bereits Bestandslagerort"
+#: barcodes/api.py:195
+msgid "Barcode already matches Stock Location"
+msgstr ""
-#: barcodes/api.py:198
-msgid "Barcode already matches Part object"
-msgstr "Barcode entspricht bereits Teil"
+#: barcodes/api.py:199
+msgid "Barcode already matches Part"
+msgstr ""
-#: barcodes/api.py:204 barcodes/api.py:216
-msgid "Barcode hash already matches StockItem object"
-msgstr "Barcode ist bereits Lagerartikel zugeordnet"
+#: barcodes/api.py:205 barcodes/api.py:217
+msgid "Barcode hash already matches Stock Item"
+msgstr ""
-#: barcodes/api.py:222
-msgid "Barcode associated with StockItem"
-msgstr "Barcode Lagerartikel zugeordnet"
+#: barcodes/api.py:223
+msgid "Barcode associated with Stock Item"
+msgstr ""
#: build/forms.py:36 build/models.py:1283
#: build/templates/build/build_base.html:132
-#: build/templates/build/detail.html:35 common/models.py:1225
+#: build/templates/build/detail.html:35 common/models.py:1253
#: company/forms.py:42 company/templates/company/supplier_part.html:251
-#: order/forms.py:102 order/models.py:729 order/models.py:991
+#: order/models.py:794 order/models.py:1205 order/serializers.py:810
#: order/templates/order/order_wizard/match_parts.html:30
#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:223
#: part/forms.py:239 part/forms.py:255 part/models.py:2576
@@ -582,20 +591,23 @@ msgstr "Barcode Lagerartikel zugeordnet"
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:81
#: report/templates/report/inventree_test_report_base.html:139
-#: stock/forms.py:156 stock/serializers.py:291
+#: stock/forms.py:142 stock/serializers.py:293
#: stock/templates/stock/item_base.html:174
+#: stock/templates/stock/item_base.html:255
+#: stock/templates/stock/item_base.html:263
#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443
-#: templates/js/translated/build.js:235 templates/js/translated/build.js:435
-#: templates/js/translated/build.js:629 templates/js/translated/build.js:639
-#: templates/js/translated/build.js:1015 templates/js/translated/build.js:1362
+#: templates/js/translated/build.js:240 templates/js/translated/build.js:440
+#: templates/js/translated/build.js:634 templates/js/translated/build.js:644
+#: templates/js/translated/build.js:1020 templates/js/translated/build.js:1367
#: templates/js/translated/model_renderers.js:99
-#: templates/js/translated/order.js:891 templates/js/translated/order.js:1204
-#: templates/js/translated/order.js:1282 templates/js/translated/order.js:1289
-#: templates/js/translated/order.js:1378 templates/js/translated/order.js:1478
-#: templates/js/translated/part.js:843 templates/js/translated/part.js:1796
-#: templates/js/translated/part.js:1919 templates/js/translated/part.js:1997
-#: templates/js/translated/stock.js:378 templates/js/translated/stock.js:2151
-#: templates/js/translated/stock.js:2253
+#: templates/js/translated/order.js:101 templates/js/translated/order.js:1056
+#: templates/js/translated/order.js:1578 templates/js/translated/order.js:1859
+#: templates/js/translated/order.js:1947 templates/js/translated/order.js:2036
+#: templates/js/translated/order.js:2150 templates/js/translated/part.js:843
+#: templates/js/translated/part.js:1796 templates/js/translated/part.js:1919
+#: templates/js/translated/part.js:1997 templates/js/translated/stock.js:382
+#: templates/js/translated/stock.js:579 templates/js/translated/stock.js:2326
+#: templates/js/translated/stock.js:2428
msgid "Quantity"
msgstr "Anzahl"
@@ -603,9 +615,9 @@ msgstr "Anzahl"
msgid "Enter quantity for build output"
msgstr "Menge der Endprodukte angeben"
-#: build/forms.py:41 order/forms.py:96 stock/forms.py:95
-#: stock/serializers.py:312 templates/js/translated/stock.js:225
-#: templates/js/translated/stock.js:379
+#: build/forms.py:41 order/serializers.py:814 stock/forms.py:81
+#: stock/serializers.py:314 templates/js/translated/stock.js:229
+#: templates/js/translated/stock.js:383
msgid "Serial Numbers"
msgstr "Seriennummer"
@@ -640,17 +652,17 @@ msgstr "Ungültige Wahl für übergeordneten Bauauftrag"
#: build/models.py:137 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:397
+#: templates/js/translated/build.js:402
msgid "Build Order"
msgstr "Bauauftrag"
#: build/models.py:138 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
-#: order/templates/order/sales_order_detail.html:42
-#: order/templates/order/so_sidebar.html:7
+#: order/templates/order/sales_order_detail.html:92
+#: order/templates/order/so_sidebar.html:13
#: part/templates/part/part_sidebar.html:20 templates/InvenTree/index.html:221
#: templates/InvenTree/search.html:145
-#: templates/InvenTree/settings/sidebar.html:42 users/models.py:44
+#: templates/InvenTree/settings/sidebar.html:43 users/models.py:44
msgid "Build Orders"
msgstr "Bauaufträge"
@@ -658,13 +670,13 @@ msgstr "Bauaufträge"
msgid "Build Order Reference"
msgstr "Bauauftragsreferenz"
-#: build/models.py:199 order/models.py:249 order/models.py:556
-#: order/models.py:736 part/models.py:2585
+#: build/models.py:199 order/models.py:210 order/models.py:536
+#: order/models.py:801 part/models.py:2585
#: part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1119
-#: templates/js/translated/order.js:885 templates/js/translated/order.js:1472
+#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1124
+#: templates/js/translated/order.js:1050 templates/js/translated/order.js:2144
msgid "Reference"
msgstr "Referenz"
@@ -683,7 +695,7 @@ msgstr "Bauauftrag, zu dem dieser Bauauftrag zugwiesen ist"
#: build/models.py:225 build/templates/build/build_base.html:77
#: build/templates/build/detail.html:30 company/models.py:705
-#: order/models.py:789 order/models.py:860
+#: order/models.py:854 order/models.py:928
#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357
#: part/models.py:2151 part/models.py:2167 part/models.py:2186
#: part/models.py:2203 part/models.py:2305 part/models.py:2427
@@ -698,14 +710,16 @@ msgstr "Bauauftrag, zu dem dieser Bauauftrag zugwiesen ist"
#: templates/email/build_order_required_stock.html:17
#: templates/email/low_stock_notification.html:16
#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:214
-#: templates/js/translated/bom.js:393 templates/js/translated/build.js:620
-#: templates/js/translated/build.js:988 templates/js/translated/build.js:1359
-#: templates/js/translated/build.js:1626 templates/js/translated/company.js:489
-#: templates/js/translated/company.js:746 templates/js/translated/order.js:426
-#: templates/js/translated/order.js:839 templates/js/translated/order.js:1456
-#: templates/js/translated/part.js:918 templates/js/translated/part.js:999
-#: templates/js/translated/part.js:1166 templates/js/translated/stock.js:590
-#: templates/js/translated/stock.js:1190 templates/js/translated/stock.js:2241
+#: templates/js/translated/bom.js:393 templates/js/translated/build.js:625
+#: templates/js/translated/build.js:993 templates/js/translated/build.js:1364
+#: templates/js/translated/build.js:1632 templates/js/translated/company.js:489
+#: templates/js/translated/company.js:746 templates/js/translated/order.js:84
+#: templates/js/translated/order.js:586 templates/js/translated/order.js:1004
+#: templates/js/translated/order.js:1576 templates/js/translated/order.js:1933
+#: templates/js/translated/order.js:2128 templates/js/translated/part.js:918
+#: templates/js/translated/part.js:999 templates/js/translated/part.js:1166
+#: templates/js/translated/stock.js:553 templates/js/translated/stock.js:747
+#: templates/js/translated/stock.js:1347 templates/js/translated/stock.js:2416
msgid "Part"
msgstr "Teil"
@@ -721,7 +735,8 @@ msgstr "Auftrag Referenz"
msgid "SalesOrder to which this build is allocated"
msgstr "Bestellung, die diesem Bauauftrag zugewiesen ist"
-#: build/models.py:247 templates/js/translated/build.js:1347
+#: build/models.py:247 templates/js/translated/build.js:1352
+#: templates/js/translated/order.js:1564
msgid "Source Location"
msgstr "Quell-Lagerort"
@@ -761,7 +776,7 @@ msgstr "Bauauftrags-Status"
msgid "Build status code"
msgstr "Bau-Statuscode"
-#: build/models.py:285 stock/models.py:534
+#: build/models.py:285 stock/models.py:528
msgid "Batch Code"
msgstr "Losnummer"
@@ -769,12 +784,12 @@ msgstr "Losnummer"
msgid "Batch code for this build output"
msgstr "Losnummer für dieses Endprodukt"
-#: build/models.py:292 order/models.py:165 part/models.py:936
-#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1103
+#: build/models.py:292 order/models.py:126 part/models.py:936
+#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1271
msgid "Creation Date"
msgstr "Erstelldatum"
-#: build/models.py:296 order/models.py:578
+#: build/models.py:296 order/models.py:558
msgid "Target completion date"
msgstr "geplantes Fertigstellungsdatum"
@@ -782,8 +797,8 @@ msgstr "geplantes Fertigstellungsdatum"
msgid "Target date for build completion. Build will be overdue after this date."
msgstr "Zieldatum für Bauauftrag-Fertigstellung."
-#: build/models.py:300 order/models.py:291
-#: templates/js/translated/build.js:1697
+#: build/models.py:300 order/models.py:252
+#: templates/js/translated/build.js:1703
msgid "Completion Date"
msgstr "Fertigstellungsdatum"
@@ -791,7 +806,7 @@ msgstr "Fertigstellungsdatum"
msgid "completed by"
msgstr "Fertiggestellt von"
-#: build/models.py:314 templates/js/translated/build.js:1668
+#: build/models.py:314 templates/js/translated/build.js:1674
msgid "Issued by"
msgstr "Aufgegeben von"
@@ -800,11 +815,11 @@ msgid "User who issued this build order"
msgstr "Nutzer der diesen Bauauftrag erstellt hat"
#: build/models.py:323 build/templates/build/build_base.html:185
-#: build/templates/build/detail.html:116 order/models.py:179
-#: order/templates/order/order_base.html:158
-#: order/templates/order/sales_order_base.html:162 part/models.py:940
+#: build/templates/build/detail.html:116 order/models.py:140
+#: order/templates/order/order_base.html:170
+#: order/templates/order/sales_order_base.html:182 part/models.py:940
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:1680 templates/js/translated/order.js:699
+#: templates/js/translated/build.js:1686 templates/js/translated/order.js:864
msgid "Responsible"
msgstr "Verantwortlicher Benutzer"
@@ -815,7 +830,7 @@ msgstr "Nutzer der für diesen Bauauftrag zuständig ist"
#: build/models.py:329 build/templates/build/detail.html:102
#: company/templates/company/manufacturer_part.html:102
#: company/templates/company/supplier_part.html:126
-#: part/templates/part/part_base.html:354 stock/models.py:528
+#: part/templates/part/part_base.html:354 stock/models.py:522
#: stock/templates/stock/item_base.html:374
msgid "External Link"
msgstr "Externer Link"
@@ -823,18 +838,19 @@ msgstr "Externer Link"
#: build/models.py:334 build/serializers.py:201
#: build/templates/build/sidebar.html:21 company/models.py:142
#: company/models.py:577 company/templates/company/sidebar.html:25
-#: order/models.py:183 order/models.py:738
+#: order/models.py:144 order/models.py:803 order/models.py:1049
#: order/templates/order/po_sidebar.html:11
-#: order/templates/order/so_sidebar.html:11 part/models.py:925
+#: order/templates/order/so_sidebar.html:17 part/models.py:925
#: part/templates/part/detail.html:116 part/templates/part/part_sidebar.html:50
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/forms.py:154 stock/forms.py:204 stock/forms.py:238 stock/models.py:600
-#: stock/models.py:1764 stock/models.py:1870 stock/serializers.py:330
-#: stock/serializers.py:588 stock/templates/stock/stock_sidebar.html:21
+#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:594
+#: stock/models.py:1752 stock/models.py:1858 stock/serializers.py:332
+#: stock/serializers.py:624 stock/serializers.py:711
+#: stock/templates/stock/stock_sidebar.html:21
#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599
-#: templates/js/translated/company.js:842 templates/js/translated/order.js:984
-#: templates/js/translated/order.js:1582 templates/js/translated/stock.js:973
-#: templates/js/translated/stock.js:1452
+#: templates/js/translated/company.js:842 templates/js/translated/order.js:1149
+#: templates/js/translated/order.js:1445 templates/js/translated/order.js:2280
+#: templates/js/translated/stock.js:1130 templates/js/translated/stock.js:1616
msgid "Notes"
msgstr "Notizen"
@@ -867,7 +883,7 @@ msgstr "Zugewiesene Menge ({q}) darf nicht verfügbare Menge ({a}) übersteigen"
msgid "Stock item is over-allocated"
msgstr "BestandObjekt ist zu oft zugewiesen"
-#: build/models.py:1133 order/models.py:964
+#: build/models.py:1133 order/models.py:1165
msgid "Allocation quantity must be greater than zero"
msgstr "Reserviermenge muss größer null sein"
@@ -880,8 +896,8 @@ msgid "Selected stock item not found in BOM"
msgstr "Ausgewähltes Bestands-Objekt nicht in Stückliste für Teil '{p}' gefunden"
#: build/models.py:1253 stock/templates/stock/item_base.html:346
-#: templates/InvenTree/search.html:143 templates/js/translated/build.js:1599
-#: templates/navbar.html:33
+#: templates/InvenTree/search.html:143 templates/js/translated/build.js:1605
+#: templates/navbar.html:35
msgid "Build"
msgstr "Bauauftrag"
@@ -889,14 +905,17 @@ msgstr "Bauauftrag"
msgid "Build to allocate parts"
msgstr "Bauauftrag starten um Teile zuzuweisen"
-#: build/models.py:1270 build/serializers.py:328
+#: build/models.py:1270 build/serializers.py:328 order/serializers.py:690
+#: order/serializers.py:708 stock/serializers.py:562
#: stock/templates/stock/item_base.html:8
#: stock/templates/stock/item_base.html:16
#: stock/templates/stock/item_base.html:368
-#: templates/js/translated/build.js:408 templates/js/translated/build.js:413
-#: templates/js/translated/build.js:1361 templates/js/translated/build.js:1742
-#: templates/js/translated/order.js:1177 templates/js/translated/order.js:1182
-#: templates/js/translated/stock.js:2102
+#: templates/js/translated/build.js:413 templates/js/translated/build.js:418
+#: templates/js/translated/build.js:1366 templates/js/translated/build.js:1748
+#: templates/js/translated/order.js:85 templates/js/translated/order.js:1577
+#: templates/js/translated/order.js:1832 templates/js/translated/order.js:1837
+#: templates/js/translated/order.js:1940 templates/js/translated/order.js:2030
+#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:2277
msgid "Stock Item"
msgstr "Lagerartikel"
@@ -936,16 +955,17 @@ msgstr "Dieses Endprodukt wurde bereits fertiggestellt"
msgid "This build output is not fully allocated"
msgstr "Dieses Endprodukt ist nicht vollständig zugewiesen"
-#: build/serializers.py:190 order/serializers.py:228 order/serializers.py:296
-#: stock/forms.py:236 stock/serializers.py:323 stock/serializers.py:690
+#: build/serializers.py:190 order/serializers.py:226 order/serializers.py:294
+#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:813
#: stock/templates/stock/item_base.html:314
#: templates/js/translated/barcode.js:384
-#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:420
-#: templates/js/translated/build.js:1027 templates/js/translated/order.js:348
-#: templates/js/translated/order.js:1189 templates/js/translated/order.js:1297
-#: templates/js/translated/order.js:1303 templates/js/translated/part.js:177
-#: templates/js/translated/stock.js:592 templates/js/translated/stock.js:1333
-#: templates/js/translated/stock.js:2043
+#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:425
+#: templates/js/translated/build.js:1032 templates/js/translated/order.js:508
+#: templates/js/translated/order.js:1844 templates/js/translated/order.js:1955
+#: templates/js/translated/order.js:1963 templates/js/translated/order.js:2044
+#: templates/js/translated/part.js:177 templates/js/translated/stock.js:555
+#: templates/js/translated/stock.js:749 templates/js/translated/stock.js:1497
+#: templates/js/translated/stock.js:2218
msgid "Location"
msgstr "Lagerort"
@@ -954,12 +974,12 @@ msgid "Location for completed build outputs"
msgstr "Lagerort für fertige Endprodukte"
#: build/serializers.py:197 build/templates/build/build_base.html:137
-#: build/templates/build/detail.html:63 order/models.py:572
-#: order/serializers.py:249 stock/templates/stock/item_base.html:180
-#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1655
-#: templates/js/translated/order.js:431 templates/js/translated/order.js:1095
-#: templates/js/translated/stock.js:1308 templates/js/translated/stock.js:2120
-#: templates/js/translated/stock.js:2269
+#: build/templates/build/detail.html:63 order/models.py:552
+#: order/serializers.py:247 stock/templates/stock/item_base.html:180
+#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1661
+#: templates/js/translated/order.js:591 templates/js/translated/order.js:840
+#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1472
+#: templates/js/translated/stock.js:2295 templates/js/translated/stock.js:2444
msgid "Status"
msgstr "Status"
@@ -984,16 +1004,16 @@ msgstr "Endprodukt muss auf den gleichen Bauauftrag verweisen"
msgid "bom_item.part must point to the same part as the build order"
msgstr "bom_item.part muss auf dasselbe Teil verweisen wie der Bauauftrag"
-#: build/serializers.py:334
+#: build/serializers.py:334 stock/serializers.py:569
msgid "Item must be in stock"
msgstr "Teil muss auf Lager sein"
-#: build/serializers.py:348 order/models.py:316 order/serializers.py:242
-#: stock/models.py:371 stock/models.py:1093 stock/serializers.py:303
+#: build/serializers.py:348 order/models.py:277 order/serializers.py:240
+#: stock/models.py:365 stock/models.py:1081 stock/serializers.py:305
msgid "Quantity must be greater than zero"
msgstr "Anzahl muss größer Null sein"
-#: build/serializers.py:390
+#: build/serializers.py:390 order/serializers.py:741
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr "Verfügbare Menge ({q}) überschritten"
@@ -1006,7 +1026,7 @@ msgstr "Für Zuweisung von verfolgten Teilen muss ein Endprodukt angegeben sein"
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr "Endprodukt kann bei Zuweisung nicht-verfolgter Teile nicht angegeben werden"
-#: build/serializers.py:431
+#: build/serializers.py:431 order/serializers.py:984
msgid "Allocation items must be provided"
msgstr "Zuweisungen müssen angegeben werden"
@@ -1079,11 +1099,11 @@ msgstr "Bestand wurde Bauauftrag noch nicht vollständig zugewiesen"
#: build/templates/build/build_base.html:146
#: build/templates/build/detail.html:132
-#: order/templates/order/order_base.html:144
-#: order/templates/order/sales_order_base.html:141
+#: order/templates/order/order_base.html:156
+#: order/templates/order/sales_order_base.html:163
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:1692 templates/js/translated/order.js:689
-#: templates/js/translated/order.js:1108
+#: templates/js/translated/build.js:1698 templates/js/translated/order.js:854
+#: templates/js/translated/order.js:1276
msgid "Target Date"
msgstr "Zieldatum"
@@ -1096,28 +1116,28 @@ msgstr "Bauauftrag war fällig am %(target)s"
#: build/templates/build/build_base.html:196
#: order/templates/order/order_base.html:98
#: order/templates/order/sales_order_base.html:93
-#: templates/js/translated/table_filters.js:294
-#: templates/js/translated/table_filters.js:322
-#: templates/js/translated/table_filters.js:339
+#: templates/js/translated/table_filters.js:299
+#: templates/js/translated/table_filters.js:340
+#: templates/js/translated/table_filters.js:361
msgid "Overdue"
msgstr "Überfällig"
#: build/templates/build/build_base.html:158
#: build/templates/build/detail.html:68 build/templates/build/detail.html:143
-#: templates/js/translated/build.js:1641
-#: templates/js/translated/table_filters.js:304
+#: order/templates/order/sales_order_base.html:170
+#: templates/js/translated/build.js:1647
+#: templates/js/translated/table_filters.js:370
msgid "Completed"
msgstr "Fertig"
#: build/templates/build/build_base.html:171
-#: build/templates/build/detail.html:95 order/models.py:857
-#: order/templates/order/sales_order_base.html:9
+#: build/templates/build/detail.html:95 order/models.py:925
+#: order/models.py:1021 order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
-#: order/templates/order/sales_order_ship.html:25
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:308
-#: templates/js/translated/order.js:1050
+#: templates/js/translated/order.js:1218
msgid "Sales Order"
msgstr "Auftrag"
@@ -1191,8 +1211,8 @@ msgstr "Ausgangs-Lager"
msgid "Stock can be taken from any available location."
msgstr "Bestand kann jedem verfügbaren Lagerort entnommen werden."
-#: build/templates/build/detail.html:50 order/models.py:811 stock/forms.py:150
-#: templates/js/translated/order.js:432 templates/js/translated/order.js:973
+#: build/templates/build/detail.html:50 order/models.py:876 stock/forms.py:136
+#: templates/js/translated/order.js:592 templates/js/translated/order.js:1138
msgid "Destination"
msgstr "Ziel-Lager"
@@ -1200,22 +1220,22 @@ msgstr "Ziel-Lager"
msgid "Destination location not specified"
msgstr "Ziel-Lagerort nicht angegeben"
-#: build/templates/build/detail.html:74 templates/js/translated/build.js:647
+#: build/templates/build/detail.html:74 templates/js/translated/build.js:652
msgid "Allocated Parts"
msgstr "Zugewiesene Teile"
#: build/templates/build/detail.html:81
#: stock/templates/stock/item_base.html:332
-#: templates/js/translated/stock.js:1322 templates/js/translated/stock.js:2276
+#: templates/js/translated/stock.js:1486 templates/js/translated/stock.js:2451
#: templates/js/translated/table_filters.js:151
-#: templates/js/translated/table_filters.js:233
+#: templates/js/translated/table_filters.js:238
msgid "Batch"
msgstr "Losnummer"
#: build/templates/build/detail.html:127
-#: order/templates/order/order_base.html:131
-#: order/templates/order/sales_order_base.html:135
-#: templates/js/translated/build.js:1663
+#: order/templates/order/order_base.html:143
+#: order/templates/order/sales_order_base.html:157
+#: templates/js/translated/build.js:1669
msgid "Created"
msgstr "Erstellt"
@@ -1235,7 +1255,7 @@ msgstr "Unter-Bauaufträge"
msgid "Allocate Stock to Build"
msgstr "Bestand Bauauftrag zuweisen"
-#: build/templates/build/detail.html:177 templates/js/translated/build.js:1202
+#: build/templates/build/detail.html:177 templates/js/translated/build.js:1207
msgid "Unallocate stock"
msgstr "Bestandszuordnung aufheben"
@@ -1257,7 +1277,7 @@ msgstr "Benötigte Teile bestellen"
#: build/templates/build/detail.html:185
#: company/templates/company/detail.html:38
-#: company/templates/company/detail.html:85 order/views.py:509
+#: company/templates/company/detail.html:85 order/views.py:463
#: part/templates/part/category.html:173
msgid "Order Parts"
msgstr "Teile bestellen"
@@ -1309,8 +1329,8 @@ msgstr "Fertiggestellte Endprodukte"
#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:60
-#: order/templates/order/sales_order_detail.html:52
-#: order/templates/order/so_sidebar.html:9 part/templates/part/detail.html:193
+#: order/templates/order/sales_order_detail.html:107
+#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:193
#: part/templates/part/part_sidebar.html:48 stock/templates/stock/item.html:95
#: stock/templates/stock/stock_sidebar.html:19
msgid "Attachments"
@@ -1325,8 +1345,8 @@ msgstr "Bauauftrags-Notizen"
#: company/templates/company/detail.html:215
#: order/templates/order/purchase_order_detail.html:80
#: order/templates/order/purchase_order_detail.html:108
-#: order/templates/order/sales_order_detail.html:72
-#: order/templates/order/sales_order_detail.html:99
+#: order/templates/order/sales_order_detail.html:127
+#: order/templates/order/sales_order_detail.html:186
#: part/templates/part/detail.html:120 stock/templates/stock/item.html:115
#: stock/templates/stock/item.html:205
msgid "Edit Notes"
@@ -1384,7 +1404,7 @@ msgstr "Endprodukt anlegen"
msgid "Maximum output quantity is "
msgstr "Maximale Endproduktmenge ist "
-#: build/views.py:122 stock/serializers.py:361 stock/views.py:1290
+#: build/views.py:122 stock/serializers.py:363 stock/views.py:1257
msgid "Serial numbers already exist"
msgstr "Seriennummern existieren bereits"
@@ -1400,7 +1420,7 @@ msgstr "Endprodukt entfernen"
msgid "Confirm unallocation of build stock"
msgstr "Entfernung von Bestands-Zuordnung bestätigen"
-#: build/views.py:219 stock/views.py:385
+#: build/views.py:219 stock/views.py:352
msgid "Check the confirmation box"
msgstr "Bestätigungsbox bestätigen"
@@ -1469,7 +1489,7 @@ msgstr "{name.title()} Datei"
msgid "Select {name} file to upload"
msgstr "{name} Datei zum Hochladen auswählen"
-#: common/models.py:340 common/models.py:970 common/models.py:1178
+#: common/models.py:340 common/models.py:998 common/models.py:1206
msgid "Settings key (must be unique - case insensitive"
msgstr "Einstellungs-Schlüssel (muss einzigartig sein, Groß-/ Kleinschreibung wird nicht beachtet)"
@@ -1557,7 +1577,7 @@ msgstr "Von URL herunterladen"
msgid "Allow download of remote images and files from external URL"
msgstr "Herunterladen von externen Bildern und Dateien von URLs erlaubt"
-#: common/models.py:649 templates/InvenTree/settings/sidebar.html:30
+#: common/models.py:649 templates/InvenTree/settings/sidebar.html:31
msgid "Barcode Support"
msgstr "Bacode-Feature verwenden"
@@ -1623,7 +1643,7 @@ msgstr "Kategorie-Parameter Vorlagen kopieren wenn ein Teil angelegt wird"
#: common/models.py:703 part/models.py:2429 report/models.py:187
#: templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:373
+#: templates/js/translated/table_filters.js:404
msgid "Template"
msgstr "Vorlage"
@@ -1633,7 +1653,7 @@ msgstr "Teile sind standardmäßig Vorlagen"
#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:956
#: templates/js/translated/table_filters.js:168
-#: templates/js/translated/table_filters.js:385
+#: templates/js/translated/table_filters.js:416
msgid "Assembly"
msgstr "Baugruppe"
@@ -1642,7 +1662,7 @@ msgid "Parts can be assembled from other components by default"
msgstr "Teile können standardmäßig aus anderen Teilen angefertigt werden"
#: common/models.py:717 part/models.py:894
-#: templates/js/translated/table_filters.js:389
+#: templates/js/translated/table_filters.js:420
msgid "Component"
msgstr "Komponente"
@@ -1659,7 +1679,7 @@ msgid "Parts are purchaseable by default"
msgstr "Artikel sind grundsätzlich kaufbar"
#: common/models.py:731 part/models.py:910
-#: templates/js/translated/table_filters.js:397
+#: templates/js/translated/table_filters.js:428
msgid "Salable"
msgstr "Verkäuflich"
@@ -1670,7 +1690,7 @@ msgstr "Artikel sind grundsätzlich verkaufbar"
#: common/models.py:738 part/models.py:900
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:100
-#: templates/js/translated/table_filters.js:401
+#: templates/js/translated/table_filters.js:432
msgid "Trackable"
msgstr "Nachverfolgbar"
@@ -1932,230 +1952,262 @@ msgstr "Gruppe bei Registrierung"
msgid "Group to which new users are assigned on registration"
msgstr "Gruppe der neue Benutzer bei der Registrierung zugewiesen werden"
-#: common/models.py:1001
+#: common/models.py:961
+msgid "Enable URL integration"
+msgstr ""
+
+#: common/models.py:962
+msgid "Enable plugins to add URL routes"
+msgstr ""
+
+#: common/models.py:968
+msgid "Enable navigation integration"
+msgstr ""
+
+#: common/models.py:969
+msgid "Enable plugins to integrate into navigation"
+msgstr ""
+
+#: common/models.py:975
+msgid "Enable global setting integration"
+msgstr ""
+
+#: common/models.py:976
+msgid "Enable plugins to integrate into inventree global settings"
+msgstr ""
+
+#: common/models.py:982
+msgid "Enable app integration"
+msgstr ""
+
+#: common/models.py:983
+msgid "Enable plugins to add apps"
+msgstr ""
+
+#: common/models.py:1029
msgid "Show subscribed parts"
msgstr "Abonnierte Teile anzeigen"
-#: common/models.py:1002
+#: common/models.py:1030
msgid "Show subscribed parts on the homepage"
msgstr "Zeige abonnierte Teile auf der Startseite"
-#: common/models.py:1007
+#: common/models.py:1035
msgid "Show subscribed categories"
msgstr "Abonnierte Kategorien anzeigen"
-#: common/models.py:1008
+#: common/models.py:1036
msgid "Show subscribed part categories on the homepage"
msgstr "Zeige abonnierte Teilkategorien auf der Startseite"
-#: common/models.py:1013
+#: common/models.py:1041
msgid "Show latest parts"
msgstr "Neueste Teile anzeigen"
-#: common/models.py:1014
+#: common/models.py:1042
msgid "Show latest parts on the homepage"
msgstr "Zeige neueste Teile auf der Startseite"
-#: common/models.py:1019
+#: common/models.py:1047
msgid "Recent Part Count"
msgstr "Aktuelle Teile-Stände"
-#: common/models.py:1020
+#: common/models.py:1048
msgid "Number of recent parts to display on index page"
msgstr "Anzahl der neusten Teile auf der Startseite"
-#: common/models.py:1026
+#: common/models.py:1054
msgid "Show unvalidated BOMs"
msgstr "Nicht validierte Stücklisten anzeigen"
-#: common/models.py:1027
+#: common/models.py:1055
msgid "Show BOMs that await validation on the homepage"
msgstr "Zeige Stücklisten, die noch nicht validiert sind, auf der Startseite"
-#: common/models.py:1032
+#: common/models.py:1060
msgid "Show recent stock changes"
msgstr "Neueste Bestandänderungen anzeigen"
-#: common/models.py:1033
+#: common/models.py:1061
msgid "Show recently changed stock items on the homepage"
msgstr "Zeige zuletzt geänderte Lagerbestände auf der Startseite"
-#: common/models.py:1038
+#: common/models.py:1066
msgid "Recent Stock Count"
msgstr "aktueller Bestand"
-#: common/models.py:1039
+#: common/models.py:1067
msgid "Number of recent stock items to display on index page"
msgstr "Anzahl des geänderten Bestands auf der Startseite"
-#: common/models.py:1044
+#: common/models.py:1072
msgid "Show low stock"
msgstr "Niedrigen Bestand anzeigen"
-#: common/models.py:1045
+#: common/models.py:1073
msgid "Show low stock items on the homepage"
msgstr "Zeige geringen Bestand auf der Startseite"
-#: common/models.py:1050
+#: common/models.py:1078
msgid "Show depleted stock"
msgstr "Lerren Bestand anzeigen"
-#: common/models.py:1051
+#: common/models.py:1079
msgid "Show depleted stock items on the homepage"
msgstr "Zeige aufgebrauchte Lagerartikel auf der Startseite"
-#: common/models.py:1056
+#: common/models.py:1084
msgid "Show needed stock"
msgstr "Benötigten Bestand anzeigen"
-#: common/models.py:1057
+#: common/models.py:1085
msgid "Show stock items needed for builds on the homepage"
msgstr "Zeige Bestand für Bauaufträge auf der Startseite"
-#: common/models.py:1062
+#: common/models.py:1090
msgid "Show expired stock"
msgstr "Abgelaufenen Bestand anzeigen"
-#: common/models.py:1063
+#: common/models.py:1091
msgid "Show expired stock items on the homepage"
msgstr "Zeige abgelaufene Lagerbestände auf der Startseite"
-#: common/models.py:1068
+#: common/models.py:1096
msgid "Show stale stock"
msgstr "Alten Bestand anzeigen"
-#: common/models.py:1069
+#: common/models.py:1097
msgid "Show stale stock items on the homepage"
msgstr "Zeige überfällige Lagerartikel auf der Startseite"
-#: common/models.py:1074
+#: common/models.py:1102
msgid "Show pending builds"
msgstr "Ausstehende Bauaufträge anzeigen"
-#: common/models.py:1075
+#: common/models.py:1103
msgid "Show pending builds on the homepage"
msgstr "Zeige ausstehende Bauaufträge auf der Startseite"
-#: common/models.py:1080
+#: common/models.py:1108
msgid "Show overdue builds"
msgstr "Zeige überfällige Bauaufträge"
-#: common/models.py:1081
+#: common/models.py:1109
msgid "Show overdue builds on the homepage"
msgstr "Zeige überfällige Bauaufträge auf der Startseite"
-#: common/models.py:1086
+#: common/models.py:1114
msgid "Show outstanding POs"
msgstr "Ausstehende POs anzeigen"
-#: common/models.py:1087
+#: common/models.py:1115
msgid "Show outstanding POs on the homepage"
msgstr "Zeige ausstehende POs auf der Startseite"
-#: common/models.py:1092
+#: common/models.py:1120
msgid "Show overdue POs"
msgstr "Überfällige POs anzeigen"
-#: common/models.py:1093
+#: common/models.py:1121
msgid "Show overdue POs on the homepage"
msgstr "Zeige überfällige POs auf der Startseite"
-#: common/models.py:1098
+#: common/models.py:1126
msgid "Show outstanding SOs"
msgstr "Ausstehende SOs anzeigen"
-#: common/models.py:1099
+#: common/models.py:1127
msgid "Show outstanding SOs on the homepage"
msgstr "Zeige ausstehende SOs auf der Startseite"
-#: common/models.py:1104
+#: common/models.py:1132
msgid "Show overdue SOs"
msgstr "Überfällige SOs anzeigen"
-#: common/models.py:1105
+#: common/models.py:1133
msgid "Show overdue SOs on the homepage"
msgstr "Zeige überfällige SOs auf der Startseite"
-#: common/models.py:1111
+#: common/models.py:1139
msgid "Inline label display"
msgstr "Label inline anzeigen"
-#: common/models.py:1112
+#: common/models.py:1140
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr "PDF-Labels im Browser anzeigen, anstatt als Datei herunterzuladen"
-#: common/models.py:1118
+#: common/models.py:1146
msgid "Inline report display"
msgstr "Berichte inline anzeigen"
-#: common/models.py:1119
+#: common/models.py:1147
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr "PDF-Berichte im Browser anzeigen, anstatt als Datei herunterzuladen"
-#: common/models.py:1125
+#: common/models.py:1153
msgid "Search Preview Results"
msgstr "Anzahl Suchergebnisse"
-#: common/models.py:1126
+#: common/models.py:1154
msgid "Number of results to show in search preview window"
msgstr "Anzahl der Ergebnisse, die in der Vorschau angezeigt werden sollen"
-#: common/models.py:1132
+#: common/models.py:1160
msgid "Search Show Stock"
msgstr "Suche Bestand anzeigen"
-#: common/models.py:1133
+#: common/models.py:1161
msgid "Display stock levels in search preview window"
msgstr "Bestand in Suchvorschau anzeigen"
-#: common/models.py:1139
+#: common/models.py:1167
msgid "Hide Inactive Parts"
msgstr "Inaktive Teile ausblenden"
-#: common/models.py:1140
+#: common/models.py:1168
msgid "Hide inactive parts in search preview window"
msgstr "Inaktive Teile in der Suchvorschau ausblenden"
-#: common/models.py:1146
+#: common/models.py:1174
msgid "Show Quantity in Forms"
msgstr "zeige Bestand in Eingabemasken"
-#: common/models.py:1147
+#: common/models.py:1175
msgid "Display available part quantity in some forms"
msgstr "Zeige den verfügbaren Bestand in einigen Eingabemasken"
-#: common/models.py:1153
+#: common/models.py:1181
msgid "Escape Key Closes Forms"
msgstr "Esc-Taste schließt Formulare"
-#: common/models.py:1154
+#: common/models.py:1182
msgid "Use the escape key to close modal forms"
msgstr "Benutze die Esc-Taste, um Formulare zu schließen"
-#: common/models.py:1160
+#: common/models.py:1188
msgid "Fixed Navbar"
msgstr "Fixierter Navigationsleiste"
-#: common/models.py:1161
+#: common/models.py:1189
msgid "InvenTree navbar position is fixed to the top of the screen"
msgstr "Position der InvenTree Navigationsleiste am oberen Bildschirmrand fixieren"
-#: common/models.py:1226 company/forms.py:43
+#: common/models.py:1254 company/forms.py:43
msgid "Price break quantity"
msgstr "Preisstaffelungs Anzahl"
-#: common/models.py:1233 company/serializers.py:264
+#: common/models.py:1261 company/serializers.py:264
#: company/templates/company/supplier_part.html:256
#: templates/js/translated/part.js:852 templates/js/translated/part.js:1801
msgid "Price"
msgstr "Preis"
-#: common/models.py:1234
+#: common/models.py:1262
msgid "Unit price at specified quantity"
msgstr "Stückpreis für die angegebene Anzahl"
#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49
-#: order/templates/order/purchase_order_detail.html:24 order/views.py:289
+#: order/templates/order/purchase_order_detail.html:24 order/views.py:243
#: part/templates/part/bom_upload/upload_file.html:52
#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:212
#: part/views.py:858
@@ -2163,7 +2215,7 @@ msgid "Upload File"
msgstr "Datei hochgeladen"
#: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52
-#: order/views.py:290 part/templates/part/bom_upload/match_fields.html:52
+#: order/views.py:244 part/templates/part/bom_upload/match_fields.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:45
#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:213
#: part/views.py:859
@@ -2195,6 +2247,7 @@ msgid "Previous Step"
msgstr "Vorheriger Schritt"
#: company/forms.py:24 part/forms.py:46
+#: templates/InvenTree/settings/mixins/urls.html:12
msgid "URL"
msgstr "URL"
@@ -2211,6 +2264,7 @@ msgid "Description of the company"
msgstr "Firmenbeschreibung"
#: company/models.py:112 company/templates/company/company_base.html:97
+#: templates/InvenTree/settings/plugin_settings.html:55
#: templates/js/translated/company.js:349
msgid "Website"
msgstr "Website"
@@ -2285,7 +2339,7 @@ msgid "Does this company manufacture parts?"
msgstr "Produziert diese Firma Teile?"
#: company/models.py:152 company/serializers.py:270
-#: company/templates/company/company_base.html:103 stock/serializers.py:177
+#: company/templates/company/company_base.html:103 stock/serializers.py:179
msgid "Currency"
msgstr "Währung"
@@ -2293,12 +2347,12 @@ msgstr "Währung"
msgid "Default currency used for this company"
msgstr "Standard-Währung für diese Firma"
-#: company/models.py:320 company/models.py:535 stock/models.py:474
+#: company/models.py:320 company/models.py:535 stock/models.py:468
#: stock/templates/stock/item_base.html:135
msgid "Base Part"
msgstr "Basisteil"
-#: company/models.py:324 company/models.py:539 order/views.py:912
+#: company/models.py:324 company/models.py:539
msgid "Select part"
msgstr "Teil auswählen"
@@ -2319,7 +2373,7 @@ msgstr "Hersteller auswählen"
#: company/models.py:342 company/templates/company/manufacturer_part.html:96
#: company/templates/company/supplier_part.html:105
#: templates/js/translated/company.js:530
-#: templates/js/translated/company.js:815 templates/js/translated/order.js:873
+#: templates/js/translated/company.js:815 templates/js/translated/order.js:1038
#: templates/js/translated/part.js:243 templates/js/translated/part.js:832
msgid "MPN"
msgstr "MPN"
@@ -2349,8 +2403,8 @@ msgstr "Parametername"
#: company/models.py:422
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:1857 templates/js/translated/company.js:644
-#: templates/js/translated/part.js:652 templates/js/translated/stock.js:960
+#: stock/models.py:1845 templates/js/translated/company.js:644
+#: templates/js/translated/part.js:652 templates/js/translated/stock.js:1117
msgid "Value"
msgstr "Wert"
@@ -2360,7 +2414,7 @@ msgstr "Parameterwert"
#: company/models.py:429 part/models.py:882 part/models.py:2397
#: part/templates/part/part_base.html:288
-#: templates/InvenTree/settings/settings.html:264
+#: templates/InvenTree/settings/settings.html:273
#: templates/js/translated/company.js:650 templates/js/translated/part.js:658
msgid "Units"
msgstr "Einheiten"
@@ -2374,12 +2428,12 @@ msgid "Linked manufacturer part must reference the same base part"
msgstr "Verlinktes Herstellerteil muss dasselbe Basisteil referenzieren"
#: company/models.py:545 company/templates/company/company_base.html:78
-#: company/templates/company/supplier_part.html:87 order/models.py:263
+#: company/templates/company/supplier_part.html:87 order/models.py:224
#: order/templates/order/order_base.html:112
#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219
#: part/bom.py:247 stock/templates/stock/item_base.html:398
#: templates/js/translated/company.js:337
-#: templates/js/translated/company.js:771 templates/js/translated/order.js:667
+#: templates/js/translated/company.js:771 templates/js/translated/order.js:823
#: templates/js/translated/part.js:213 templates/js/translated/part.js:800
msgid "Supplier"
msgstr "Zulieferer"
@@ -2389,7 +2443,7 @@ msgid "Select supplier"
msgstr "Zulieferer auswählen"
#: company/models.py:551 company/templates/company/supplier_part.html:91
-#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:860
+#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:1025
#: templates/js/translated/part.js:224 templates/js/translated/part.js:818
msgid "SKU"
msgstr "SKU (Lagerbestandseinheit)"
@@ -2425,8 +2479,8 @@ msgid "Minimum charge (e.g. stocking fee)"
msgstr "Mindestpreis"
#: company/models.py:582 company/templates/company/supplier_part.html:112
-#: stock/models.py:497 stock/templates/stock/item_base.html:339
-#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1448
+#: stock/models.py:491 stock/templates/stock/item_base.html:339
+#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1612
msgid "Packaging"
msgstr "Verpackungen"
@@ -2457,7 +2511,7 @@ msgid "Company"
msgstr "Firma"
#: company/templates/company/company_base.html:22
-#: templates/js/translated/order.js:121
+#: templates/js/translated/order.js:279
msgid "Create Purchase Order"
msgstr "Bestellung anlegen"
@@ -2493,11 +2547,12 @@ msgstr "Neues Bild hochladen"
msgid "Download image from URL"
msgstr "Bild von URL herunterladen"
-#: company/templates/company/company_base.html:83 order/models.py:567
-#: order/templates/order/sales_order_base.html:115 stock/models.py:515
-#: stock/models.py:516 stock/templates/stock/item_base.html:291
-#: templates/js/translated/company.js:329 templates/js/translated/order.js:1072
-#: templates/js/translated/stock.js:2084
+#: company/templates/company/company_base.html:83 order/models.py:547
+#: order/templates/order/sales_order_base.html:115 stock/models.py:509
+#: stock/models.py:510 stock/serializers.py:610
+#: stock/templates/stock/item_base.html:291
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1240
+#: templates/js/translated/stock.js:2259
msgid "Customer"
msgstr "Kunde"
@@ -2580,7 +2635,7 @@ msgstr "Zulieferer-Bestand"
#: order/templates/order/purchase_orders.html:12
#: part/templates/part/detail.html:64 part/templates/part/part_sidebar.html:33
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:203
-#: templates/InvenTree/settings/sidebar.html:44 templates/navbar.html:45
+#: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47
#: users/models.py:45
msgid "Purchase Orders"
msgstr "Bestellungen"
@@ -2602,7 +2657,7 @@ msgstr "Neue Bestellung"
#: order/templates/order/sales_orders.html:15
#: part/templates/part/detail.html:87 part/templates/part/part_sidebar.html:37
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:223
-#: templates/InvenTree/settings/sidebar.html:46 templates/navbar.html:56
+#: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58
#: users/models.py:46
msgid "Sales Orders"
msgstr "Aufträge"
@@ -2618,7 +2673,7 @@ msgid "New Sales Order"
msgstr "Neuer Auftrag"
#: company/templates/company/detail.html:168
-#: templates/js/translated/build.js:999
+#: templates/js/translated/build.js:1004
msgid "Assigned Stock"
msgstr "Zugeordneter Bestand"
@@ -2644,7 +2699,7 @@ msgstr "Zulieferer-Liste"
#: company/templates/company/manufacturer_part.html:14 company/views.py:55
#: part/templates/part/prices.html:167 templates/InvenTree/search.html:184
-#: templates/navbar.html:44
+#: templates/navbar.html:46
msgid "Manufacturers"
msgstr "Hersteller"
@@ -2673,7 +2728,7 @@ msgstr "Internes Teil"
#: company/templates/company/manufacturer_part.html:114
#: company/templates/company/supplier_part.html:15 company/views.py:49
#: part/templates/part/part_sidebar.html:31 part/templates/part/prices.html:163
-#: templates/InvenTree/search.html:194 templates/navbar.html:43
+#: templates/InvenTree/search.html:194 templates/navbar.html:45
msgid "Suppliers"
msgstr "Zulieferer"
@@ -2687,7 +2742,7 @@ msgstr "Zuliefererteil entfernen"
#: company/templates/company/manufacturer_part.html:254
#: part/templates/part/detail.html:344 part/templates/part/detail.html:372
#: templates/js/translated/company.js:425 templates/js/translated/helpers.js:31
-#: users/models.py:204
+#: users/models.py:206
msgid "Delete"
msgstr "Löschen"
@@ -2739,9 +2794,9 @@ msgid "Assigned Stock Items"
msgstr "Zugewiesene Lagerartikel"
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:482
+#: company/templates/company/supplier_part.html:24 stock/models.py:476
#: stock/templates/stock/item_base.html:403
-#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1405
+#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1569
msgid "Supplier Part"
msgstr "Zuliefererteil"
@@ -2767,7 +2822,7 @@ msgstr "Neuen Lagerartikel hinzufügen"
#: company/templates/company/supplier_part.html:142
#: part/templates/part/detail.html:21 stock/templates/stock/location.html:163
-#: templates/js/translated/stock.js:355
+#: templates/js/translated/stock.js:359
msgid "New Stock Item"
msgstr "Neuer Lagerartikel"
@@ -2817,11 +2872,11 @@ msgstr "Preisstaffel löschen"
#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:14
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:156
-#: templates/InvenTree/settings/sidebar.html:40
+#: templates/InvenTree/settings/sidebar.html:41
#: templates/js/translated/bom.js:216 templates/js/translated/part.js:434
#: templates/js/translated/part.js:569 templates/js/translated/part.js:1059
-#: templates/js/translated/part.js:1220 templates/js/translated/stock.js:591
-#: templates/js/translated/stock.js:1244 templates/navbar.html:26
+#: templates/js/translated/part.js:1220 templates/js/translated/stock.js:748
+#: templates/js/translated/stock.js:1401 templates/navbar.html:28
msgid "Stock"
msgstr "Bestand"
@@ -2844,7 +2899,7 @@ msgstr "Bepreisung"
#: stock/templates/stock/location.html:147
#: stock/templates/stock/location.html:159
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1983
+#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:2158
#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
msgid "Stock Items"
msgstr "Lagerartikel"
@@ -2858,7 +2913,7 @@ msgid "New Manufacturer"
msgstr "Neuer Hersteller"
#: company/views.py:61 templates/InvenTree/search.html:214
-#: templates/navbar.html:55
+#: templates/navbar.html:57
msgid "Customers"
msgstr "Kunden"
@@ -2960,284 +3015,374 @@ msgstr "Abfragefilter (kommagetrennte Liste mit Schlüssel=Wert-Paaren)"
msgid "Part query filters (comma-separated value of key=value pairs)"
msgstr "Teile-Abfragefilter (kommagetrennte Liste mit Schlüssel=Wert-Paaren)"
-#: order/forms.py:26 order/templates/order/order_base.html:52
+#: order/forms.py:24 order/templates/order/order_base.html:52
msgid "Place order"
msgstr "Bestellung aufgeben"
-#: order/forms.py:37 order/templates/order/order_base.html:60
+#: order/forms.py:35 order/templates/order/order_base.html:60
msgid "Mark order as complete"
msgstr "Bestellung als vollständig markieren"
-#: order/forms.py:48 order/forms.py:59 order/templates/order/order_base.html:47
+#: order/forms.py:46 order/forms.py:57 order/templates/order/order_base.html:47
#: order/templates/order/sales_order_base.html:60
msgid "Cancel order"
msgstr "Bestellung stornieren"
-#: order/forms.py:70
-msgid "Ship order"
-msgstr "Bestellung versenden"
-
-#: order/forms.py:98
-msgid "Enter stock item serial numbers"
-msgstr "Seriennummern für Lagerartikel eingeben"
-
-#: order/forms.py:104
-msgid "Enter quantity of stock items"
-msgstr "Menge der Lagerartikel eingeben"
-
-#: order/models.py:161
+#: order/models.py:122
msgid "Order description"
msgstr "Bestellungs-Beschreibung"
-#: order/models.py:163
+#: order/models.py:124
msgid "Link to external page"
msgstr "Link auf externe Seite"
-#: order/models.py:171
+#: order/models.py:132
msgid "Created By"
msgstr "Erstellt von"
-#: order/models.py:178
+#: order/models.py:139
msgid "User or group responsible for this order"
msgstr "Nutzer oder Gruppe der/die für diesen Auftrag zuständig ist/sind"
-#: order/models.py:183
+#: order/models.py:144
msgid "Order notes"
msgstr "Bestell-Notizen"
-#: order/models.py:250 order/models.py:557
+#: order/models.py:211 order/models.py:537
msgid "Order reference"
msgstr "Bestell-Referenz"
-#: order/models.py:255 order/models.py:572
+#: order/models.py:216 order/models.py:552
msgid "Purchase order status"
msgstr "Bestellungs-Status"
-#: order/models.py:264
+#: order/models.py:225
msgid "Company from which the items are being ordered"
msgstr "Firma bei der die Teile bestellt werden"
-#: order/models.py:267 order/templates/order/order_base.html:118
-#: templates/js/translated/order.js:676
+#: order/models.py:228 order/templates/order/order_base.html:118
+#: templates/js/translated/order.js:832
msgid "Supplier Reference"
msgstr "Zulieferer-Referenz"
-#: order/models.py:267
+#: order/models.py:228
msgid "Supplier order reference code"
msgstr "Zulieferer Bestellreferenz"
-#: order/models.py:274
+#: order/models.py:235
msgid "received by"
msgstr "Empfangen von"
-#: order/models.py:279
+#: order/models.py:240
msgid "Issue Date"
msgstr "Aufgabedatum"
-#: order/models.py:280
+#: order/models.py:241
msgid "Date order was issued"
msgstr "Datum an dem die Bestellung aufgegeben wurde"
-#: order/models.py:285
+#: order/models.py:246
msgid "Target Delivery Date"
msgstr "Ziel-Versanddatum"
-#: order/models.py:286
+#: order/models.py:247
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr "Geplantes Lieferdatum für Auftrag."
-#: order/models.py:292
+#: order/models.py:253
msgid "Date order was completed"
msgstr "Datum an dem der Auftrag fertigstellt wurde"
-#: order/models.py:321
+#: order/models.py:282
msgid "Part supplier must match PO supplier"
msgstr "Teile-Zulieferer muss dem Zulieferer der Bestellung entsprechen"
-#: order/models.py:431
+#: order/models.py:411
msgid "Quantity must be an integer"
msgstr "Anzahl muss eine Ganzzahl sein"
-#: order/models.py:435
+#: order/models.py:415
msgid "Quantity must be a positive number"
msgstr "Anzahl muss eine positive Zahl sein"
-#: order/models.py:568
+#: order/models.py:548
msgid "Company to which the items are being sold"
msgstr "Firma an die die Teile verkauft werden"
-#: order/models.py:574
+#: order/models.py:554
msgid "Customer Reference "
msgstr "Kundenreferenz"
-#: order/models.py:574
+#: order/models.py:554
msgid "Customer order reference code"
msgstr "Bestellreferenz"
-#: order/models.py:579
+#: order/models.py:559
msgid "Target date for order completion. Order will be overdue after this date."
msgstr "Zieldatum für Auftrags-Fertigstellung."
-#: order/models.py:582 templates/js/translated/order.js:1113
+#: order/models.py:562 order/models.py:1026
+#: templates/js/translated/order.js:1281 templates/js/translated/order.js:1429
msgid "Shipment Date"
msgstr "Versanddatum"
-#: order/models.py:589
+#: order/models.py:569
msgid "shipped by"
msgstr "Versand von"
-#: order/models.py:633
-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:634
+msgid "Order cannot be completed as no parts have been assigned"
+msgstr ""
-#: order/models.py:730
+#: order/models.py:639
+msgid "Only a pending order can be marked as complete"
+msgstr ""
+
+#: order/models.py:643
+msgid "Order cannot be completed as there are incomplete shipments"
+msgstr ""
+
+#: order/models.py:647
+msgid "Order cannot be completed as there are incomplete line items"
+msgstr ""
+
+#: order/models.py:795
msgid "Item quantity"
msgstr "Anzahl"
-#: order/models.py:736
+#: order/models.py:801
msgid "Line item reference"
msgstr "Position - Referenz"
-#: order/models.py:738
+#: order/models.py:803
msgid "Line item notes"
msgstr "Position - Notizen"
-#: order/models.py:768 order/models.py:856
-#: templates/js/translated/order.js:1165
+#: order/models.py:833 order/models.py:924 order/models.py:1020
+#: templates/js/translated/order.js:1820
msgid "Order"
msgstr "Bestellung"
-#: order/models.py:769 order/templates/order/order_base.html:9
+#: order/models.py:834 order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:353
-#: templates/js/translated/order.js:638 templates/js/translated/part.js:775
-#: templates/js/translated/stock.js:1382 templates/js/translated/stock.js:2065
+#: templates/js/translated/order.js:801 templates/js/translated/part.js:775
+#: templates/js/translated/stock.js:1546 templates/js/translated/stock.js:2240
msgid "Purchase Order"
msgstr "Bestellung"
-#: order/models.py:790
+#: order/models.py:855
msgid "Supplier part"
msgstr "Zuliefererteil"
-#: order/models.py:797 order/templates/order/order_base.html:151
-#: order/templates/order/sales_order_base.html:155
-#: templates/js/translated/order.js:429 templates/js/translated/order.js:953
+#: order/models.py:862 order/templates/order/order_base.html:163
+#: templates/js/translated/order.js:589 templates/js/translated/order.js:1118
#: templates/js/translated/part.js:847 templates/js/translated/part.js:873
+#: templates/js/translated/table_filters.js:317
msgid "Received"
msgstr "Empfangen"
-#: order/models.py:798
+#: order/models.py:863
msgid "Number of items received"
msgstr "Empfangene Objekt-Anzahl"
-#: order/models.py:805 part/templates/part/prices.html:176 stock/models.py:609
-#: stock/serializers.py:168 stock/templates/stock/item_base.html:360
-#: templates/js/translated/stock.js:1436
+#: order/models.py:870 part/templates/part/prices.html:176 stock/models.py:603
+#: stock/serializers.py:170 stock/templates/stock/item_base.html:360
+#: templates/js/translated/stock.js:1600
msgid "Purchase Price"
msgstr "Preis"
-#: order/models.py:806
+#: order/models.py:871
msgid "Unit purchase price"
msgstr "Preis pro Einheit"
-#: order/models.py:814
+#: order/models.py:879
msgid "Where does the Purchaser want this item to be stored?"
msgstr "Wo möchte der Käufer diesen Artikel gelagert haben?"
-#: order/models.py:866 part/templates/part/part_pricing.html:112
+#: order/models.py:934 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:116 part/templates/part/prices.html:284
msgid "Sale Price"
msgstr "Verkaufspreis"
-#: order/models.py:867
+#: order/models.py:935
msgid "Unit sale price"
msgstr "Stückverkaufspreis"
-#: order/models.py:946 order/models.py:948
+#: order/models.py:940
+msgid "Shipped quantity"
+msgstr ""
+
+#: order/models.py:1027
+msgid "Date of shipment"
+msgstr ""
+
+#: order/models.py:1034
+msgid "Checked By"
+msgstr ""
+
+#: order/models.py:1035
+msgid "User who checked this shipment"
+msgstr ""
+
+#: order/models.py:1043
+msgid "Shipment number"
+msgstr ""
+
+#: order/models.py:1050
+msgid "Shipment notes"
+msgstr ""
+
+#: order/models.py:1057
+msgid "Tracking Number"
+msgstr ""
+
+#: order/models.py:1058
+msgid "Shipment tracking information"
+msgstr ""
+
+#: order/models.py:1068
+msgid "Shipment has already been sent"
+msgstr ""
+
+#: order/models.py:1071
+msgid "Shipment has no allocated stock items"
+msgstr ""
+
+#: order/models.py:1147 order/models.py:1149
msgid "Stock item has not been assigned"
msgstr "Lagerartikel wurde nicht zugewiesen"
-#: order/models.py:952
+#: order/models.py:1153
msgid "Cannot allocate stock item to a line with a different part"
msgstr "Kann Lagerartikel keiner Zeile mit einem anderen Teil hinzufügen"
-#: order/models.py:954
+#: order/models.py:1155
msgid "Cannot allocate stock to a line without a part"
msgstr "Kann Lagerartikel keiner Zeile ohne Teil hinzufügen"
-#: order/models.py:957
+#: order/models.py:1158
msgid "Allocation quantity cannot exceed stock quantity"
msgstr "Die zugeordnete Anzahl darf nicht die verfügbare Anzahl überschreiten"
-#: order/models.py:961
+#: order/models.py:1162
msgid "StockItem is over-allocated"
msgstr "Zu viele Lagerartikel zugewiesen"
-#: order/models.py:967
+#: order/models.py:1168 order/serializers.py:734
msgid "Quantity must be 1 for serialized stock item"
msgstr "Anzahl für serialisierte Lagerartikel muss 1 sein"
-#: order/models.py:975
+#: order/models.py:1171
+msgid "Sales order does not match shipment"
+msgstr ""
+
+#: order/models.py:1172
+msgid "Shipment does not match sales order"
+msgstr ""
+
+#: order/models.py:1180
msgid "Line"
msgstr "Position"
-#: order/models.py:987
+#: order/models.py:1188 order/serializers.py:825 order/serializers.py:953
+#: templates/js/translated/model_renderers.js:251
+msgid "Shipment"
+msgstr ""
+
+#: order/models.py:1189
+msgid "Sales order shipment reference"
+msgstr ""
+
+#: order/models.py:1201
msgid "Item"
msgstr "Position"
-#: order/models.py:988
+#: order/models.py:1202
msgid "Select stock item to allocate"
msgstr "Lagerartikel für Zuordnung auswählen"
-#: order/models.py:991
+#: order/models.py:1205
msgid "Enter stock allocation quantity"
msgstr "Anzahl für Bestandszuordnung eingeben"
-#: order/serializers.py:175
+#: order/serializers.py:173
msgid "Purchase price currency"
msgstr "Kaufpreiswährung"
-#: order/serializers.py:213
+#: order/serializers.py:211 order/serializers.py:790
msgid "Line Item"
msgstr "Position"
-#: order/serializers.py:219
+#: order/serializers.py:217
msgid "Line item does not match purchase order"
msgstr "Position stimmt nicht mit Kaufauftrag überein"
-#: order/serializers.py:229 order/serializers.py:297
+#: order/serializers.py:227 order/serializers.py:295
msgid "Select destination location for received items"
msgstr "Zielort für empfangene Teile auswählen"
-#: order/serializers.py:253
+#: order/serializers.py:251
msgid "Barcode Hash"
msgstr "Barcode-Hash"
-#: order/serializers.py:254
+#: order/serializers.py:252
msgid "Unique identifier field"
msgstr "Einzigartiger Identifikator"
-#: order/serializers.py:271
+#: order/serializers.py:269
msgid "Barcode is already in use"
msgstr "Barcode ist bereits in Verwendung"
-#: order/serializers.py:309
+#: order/serializers.py:307
msgid "Line items must be provided"
msgstr "Positionen müssen angegeben werden"
-#: order/serializers.py:326
+#: order/serializers.py:324
msgid "Destination location must be specified"
msgstr "Ziel-Lagerort muss angegeben werden"
-#: order/serializers.py:337
+#: order/serializers.py:335
msgid "Supplied barcode values must be unique"
msgstr "Barcode muss eindeutig sein"
-#: order/serializers.py:578
+#: order/serializers.py:581
msgid "Sale price currency"
msgstr "Verkaufspreis-Währung"
+#: order/serializers.py:649
+msgid "No shipment details provided"
+msgstr ""
+
+#: order/serializers.py:699 order/serializers.py:802
+msgid "Line item is not associated with this order"
+msgstr ""
+
+#: order/serializers.py:721
+msgid "Quantity must be positive"
+msgstr ""
+
+#: order/serializers.py:815
+msgid "Enter serial numbers to allocate"
+msgstr ""
+
+#: order/serializers.py:839 order/serializers.py:964
+msgid "Shipment has already been shipped"
+msgstr ""
+
+#: order/serializers.py:842 order/serializers.py:967
+msgid "Shipment is not associated with this order"
+msgstr ""
+
+#: order/serializers.py:894
+msgid "No match found for the following serial numbers"
+msgstr ""
+
+#: order/serializers.py:904
+msgid "The following serial numbers are already allocated"
+msgstr ""
+
#: order/templates/order/delete_attachment.html:5
#: stock/templates/stock/attachment_delete.html:5
msgid "Are you sure you want to delete this attachment?"
@@ -3271,7 +3416,8 @@ msgstr "Elemente empfangen"
msgid "Receive Items"
msgstr "Teile empfangen"
-#: order/templates/order/order_base.html:62 order/views.py:185
+#: order/templates/order/order_base.html:62
+#: order/templates/order/sales_order_base.html:67 order/views.py:181
msgid "Complete Order"
msgstr "Auftrag fertigstellen"
@@ -3290,12 +3436,23 @@ msgstr "Bestellungsbeschreibung"
msgid "Order Status"
msgstr "Bestellstatus"
-#: order/templates/order/order_base.html:137
+#: order/templates/order/order_base.html:124
+#: order/templates/order/sales_order_base.html:128
+msgid "Completed Line Items"
+msgstr ""
+
+#: order/templates/order/order_base.html:130
+#: order/templates/order/sales_order_base.html:134
+#: order/templates/order/sales_order_base.html:144
+msgid "Incomplete"
+msgstr ""
+
+#: order/templates/order/order_base.html:149
#: report/templates/report/inventree_build_order_base.html:122
msgid "Issued"
msgstr "Aufgegeben"
-#: order/templates/order/order_base.html:207
+#: order/templates/order/order_base.html:219
msgid "Edit Purchase Order"
msgstr "Bestellung bearbeiten"
@@ -3371,8 +3528,9 @@ msgstr "Auswahl duplizieren"
#: part/templates/part/import_wizard/ajax_match_references.html:42
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
-#: templates/js/translated/build.js:240 templates/js/translated/build.js:1251
-#: templates/js/translated/order.js:377
+#: templates/js/translated/build.js:245 templates/js/translated/build.js:1256
+#: templates/js/translated/order.js:537 templates/js/translated/order.js:1488
+#: templates/js/translated/stock.js:592
msgid "Remove row"
msgstr "Zeile entfernen"
@@ -3453,7 +3611,8 @@ msgid "Select existing purchase orders, or create new orders."
msgstr "Bestellungen auswählen oder anlegen."
#: order/templates/order/order_wizard/select_pos.html:31
-#: templates/js/translated/order.js:694 templates/js/translated/order.js:1118
+#: templates/js/translated/order.js:859 templates/js/translated/order.js:1286
+#: templates/js/translated/order.js:1416
msgid "Items"
msgstr "Positionen"
@@ -3489,7 +3648,7 @@ msgstr "Bestellungs-Positionen"
#: order/templates/order/purchase_order_detail.html:27
#: order/templates/order/purchase_order_detail.html:181
#: order/templates/order/sales_order_detail.html:23
-#: order/templates/order/sales_order_detail.html:157
+#: order/templates/order/sales_order_detail.html:244
msgid "Add Line Item"
msgstr "Position hinzufügen"
@@ -3502,7 +3661,7 @@ msgid "Received Items"
msgstr "Empfangene Teile"
#: order/templates/order/purchase_order_detail.html:76
-#: order/templates/order/sales_order_detail.html:68
+#: order/templates/order/sales_order_detail.html:123
msgid "Order Notes"
msgstr "Notizen zur Bestellung"
@@ -3520,25 +3679,30 @@ msgid "Print packing list"
msgstr "Paketliste drucken"
#: order/templates/order/sales_order_base.html:66
-#: order/templates/order/sales_order_base.html:67 order/views.py:222
-msgid "Ship Order"
-msgstr "Versenden"
+#: order/templates/order/sales_order_base.html:229
+msgid "Complete Sales Order"
+msgstr ""
#: order/templates/order/sales_order_base.html:102
msgid "This Sales Order has not been fully allocated"
msgstr "Dieser Auftrag ist nicht vollständig zugeordnet"
#: order/templates/order/sales_order_base.html:122
-#: templates/js/translated/order.js:1085
+#: templates/js/translated/order.js:1253
msgid "Customer Reference"
msgstr "Kundenreferenz"
-#: order/templates/order/sales_order_base.html:195
+#: order/templates/order/sales_order_base.html:140
+#: order/templates/order/sales_order_detail.html:78
+#: order/templates/order/so_sidebar.html:11
+msgid "Completed Shipments"
+msgstr ""
+
+#: order/templates/order/sales_order_base.html:215
msgid "Edit Sales Order"
msgstr "Auftrag bearbeiten"
#: order/templates/order/sales_order_cancel.html:8
-#: order/templates/order/sales_order_ship.html:9
#: part/templates/part/bom_duplicate.html:12
#: stock/templates/stock/stockitem_convert.html:13
msgid "Warning"
@@ -3552,146 +3716,100 @@ msgstr "Abbruch dieser Bestellung bedeutet, dass sie nicht länger bearbeitbar i
msgid "Sales Order Items"
msgstr "Auftrags-Positionen"
-#: order/templates/order/sales_order_ship.html:10
-msgid "This order has not been fully allocated. If the order is marked as shipped, it can no longer be adjusted."
-msgstr "Dieser Auftrag ist nicht vollständig zugeordnet. Wenn der Auftrag als versendet markiert wird, kann er nicht mehr geändert werden."
+#: order/templates/order/sales_order_detail.html:44
+#: order/templates/order/so_sidebar.html:8
+msgid "Pending Shipments"
+msgstr ""
-#: order/templates/order/sales_order_ship.html:12
-msgid "Ensure that the order allocation is correct before shipping the order."
-msgstr "Vor dem Versand sicherstellen, dass die Zuordnung richtig ist."
+#: order/templates/order/sales_order_detail.html:48
+#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1188
+msgid "Actions"
+msgstr "Aktionen"
-#: order/templates/order/sales_order_ship.html:18
-msgid "Some line items in this order have been over-allocated"
-msgstr "Einige Positionen dieses Auftrags sind überzugeordnet"
+#: order/templates/order/sales_order_detail.html:57
+msgid "New Shipment"
+msgstr ""
-#: order/templates/order/sales_order_ship.html:20
-msgid "Ensure that this is correct before shipping the order."
-msgstr "Vor dem Versand sicherstellen, dass dies richtig ist."
-
-#: order/templates/order/sales_order_ship.html:27
-msgid "Shipping this order means that the order will no longer be editable."
-msgstr "Versenden dieses Auftrags bedeutet, dass der Auftrag nicht mehr bearbeitbar ist."
-
-#: order/templates/order/so_allocate_by_serial.html:9
-msgid "Allocate stock items by serial number"
-msgstr "Teilebestand per Seriennummer zuweisen"
-
-#: order/views.py:103
+#: order/views.py:99
msgid "Cancel Order"
msgstr "Bestellung stornieren"
-#: order/views.py:112 order/views.py:138
+#: order/views.py:108 order/views.py:134
msgid "Confirm order cancellation"
msgstr "Bestellstornierung bestätigen"
-#: order/views.py:115 order/views.py:141
+#: order/views.py:111 order/views.py:137
msgid "Order cannot be cancelled"
msgstr "Bestellung kann nicht verworfen werden"
-#: order/views.py:129
+#: order/views.py:125
msgid "Cancel sales order"
msgstr "Auftrag stornieren"
-#: order/views.py:155
+#: order/views.py:151
msgid "Issue Order"
msgstr "Bestellung aufgeben"
-#: order/views.py:164
+#: order/views.py:160
msgid "Confirm order placement"
msgstr "Bestellungstätigung bestätigen"
-#: order/views.py:174
+#: order/views.py:170
msgid "Purchase order issued"
msgstr "Bestellung plaziert"
-#: order/views.py:201
+#: order/views.py:197
msgid "Confirm order completion"
msgstr "Fertigstellung bestätigen"
-#: order/views.py:212
+#: order/views.py:208
msgid "Purchase order completed"
msgstr "Bestellung als vollständig markieren"
-#: order/views.py:238
-msgid "Confirm order shipment"
-msgstr "Versand bestätigen"
-
-#: order/views.py:244
-msgid "Could not ship order"
-msgstr "Versand fehlgeschlagen"
-
-#: order/views.py:291
+#: order/views.py:245
msgid "Match Supplier Parts"
msgstr "Zuliefererteile zuordnen"
-#: order/views.py:535
+#: order/views.py:489
msgid "Update prices"
msgstr "Preise aktualisieren"
-#: order/views.py:793
+#: order/views.py:747
#, python-brace-format
msgid "Ordered {n} parts"
msgstr "{n} Teile bestellt"
-#: order/views.py:846
-msgid "Allocate Serial Numbers"
-msgstr "Seriennummern zuweisen"
-
-#: order/views.py:891
-#, python-brace-format
-msgid "Allocated {n} items"
-msgstr "{n} Positionen zugeordnet"
-
-#: order/views.py:907
-msgid "Select line item"
-msgstr "Position auswählen"
-
-#: order/views.py:938
-#, python-brace-format
-msgid "No matching item for serial {serial}"
-msgstr "Kein passends Teil für Seriennummer {serial} gefunden"
-
-#: order/views.py:948
-#, python-brace-format
-msgid "{serial} is not in stock"
-msgstr "{serial} ist nicht auf Lager"
-
-#: order/views.py:956
-#, python-brace-format
-msgid "{serial} already allocated to an order"
-msgstr "{serial} bereits einem Auftrag zugeordnet"
-
-#: order/views.py:1072
+#: order/views.py:858
msgid "Sales order not found"
msgstr "Auftrag nicht gefunden"
-#: order/views.py:1078
+#: order/views.py:864
msgid "Price not found"
msgstr "Preis nicht gefunden"
-#: order/views.py:1081
+#: order/views.py:867
#, python-brace-format
msgid "Updated {part} unit-price to {price}"
msgstr "Stückpreis für {part} auf {price} aktualisiert"
-#: order/views.py:1086
+#: order/views.py:872
#, 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/api.py:758
+#: part/api.py:760
msgid "Must be greater than zero"
msgstr "Muss größer als 0 sein"
-#: part/api.py:762
+#: part/api.py:764
msgid "Must be a valid quantity"
msgstr "Muss eine gültige Nummer sein"
-#: part/api.py:777
+#: part/api.py:779
msgid "Specify location for initial part stock"
msgstr "Standort für anfänglichen Bestand angeben"
-#: part/api.py:808 part/api.py:812 part/api.py:827 part/api.py:831
+#: part/api.py:810 part/api.py:814 part/api.py:829 part/api.py:833
msgid "This field is required"
msgstr "Dieses Feld ist erforderlich"
@@ -3828,8 +3946,8 @@ msgstr "Teil-Kategorien"
#: part/templates/part/category.html:149
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:88
-#: templates/InvenTree/settings/sidebar.html:36
-#: templates/js/translated/part.js:1597 templates/navbar.html:19
+#: templates/InvenTree/settings/sidebar.html:37
+#: templates/js/translated/part.js:1597 templates/navbar.html:21
#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
msgid "Parts"
msgstr "Teile"
@@ -3895,7 +4013,7 @@ msgstr "Schlüsselworte um die Sichtbarkeit in Suchergebnissen zu verbessern"
#: part/models.py:778 part/models.py:2223 part/models.py:2472
#: part/templates/part/part_base.html:265
#: part/templates/part/set_category.html:15
-#: templates/InvenTree/settings/settings.html:163
+#: templates/InvenTree/settings/settings.html:172
#: templates/js/translated/part.js:1202
msgid "Category"
msgstr "Kategorie"
@@ -3906,7 +4024,7 @@ msgstr "Teile-Kategorie"
#: part/models.py:784 part/templates/part/part_base.html:274
#: templates/js/translated/part.js:557 templates/js/translated/part.js:1155
-#: templates/js/translated/stock.js:1216
+#: templates/js/translated/stock.js:1373
msgid "IPN"
msgstr "IPN (Interne Produktnummer)"
@@ -3975,10 +4093,11 @@ msgstr "Kann dieses Teil von externen Zulieferern gekauft werden?"
msgid "Can this part be sold to customers?"
msgstr "Kann dieses Teil an Kunden verkauft werden?"
-#: part/models.py:915 templates/js/translated/table_filters.js:34
+#: part/models.py:915 plugin/models.py:45
+#: templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:96
-#: templates/js/translated/table_filters.js:290
-#: templates/js/translated/table_filters.js:368
+#: templates/js/translated/table_filters.js:295
+#: templates/js/translated/table_filters.js:399
msgid "Active"
msgstr "Aktiv"
@@ -4027,7 +4146,7 @@ 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:2310 templates/js/translated/part.js:1648
-#: templates/js/translated/stock.js:940
+#: templates/js/translated/stock.js:1097
msgid "Test Name"
msgstr "Test-Name"
@@ -4044,7 +4163,7 @@ msgid "Enter description for this test"
msgstr "Beschreibung für diesen Test eingeben"
#: part/models.py:2322 templates/js/translated/part.js:1657
-#: templates/js/translated/table_filters.js:276
+#: templates/js/translated/table_filters.js:281
msgid "Required"
msgstr "Benötigt"
@@ -4086,7 +4205,7 @@ msgid "Parameter Units"
msgstr "Einheit des Parameters"
#: part/models.py:2429 part/models.py:2478 part/models.py:2479
-#: templates/InvenTree/settings/settings.html:158
+#: templates/InvenTree/settings/settings.html:167
msgid "Parameter Template"
msgstr "Parameter Vorlage"
@@ -4098,7 +4217,7 @@ msgstr "Wert"
msgid "Parameter Value"
msgstr "Parameter Wert"
-#: part/models.py:2483 templates/InvenTree/settings/settings.html:167
+#: part/models.py:2483 templates/InvenTree/settings/settings.html:176
msgid "Default Value"
msgstr "Standard-Wert"
@@ -4175,7 +4294,7 @@ msgstr "Varianten zulassen"
msgid "Stock items for variant parts can be used for this BOM item"
msgstr "Bestand von Varianten kann für diese Stücklisten-Position verwendet werden"
-#: part/models.py:2686 stock/models.py:361
+#: part/models.py:2686 stock/models.py:355
msgid "Quantity must be integer value for trackable parts"
msgstr "Menge muss eine Ganzzahl sein"
@@ -4724,8 +4843,8 @@ msgstr "Teildetails anzeigen"
msgid "This part is a variant of %(link)s"
msgstr "Dieses Teil ist eine Variante von %(link)s"
-#: part/templates/part/part_base.html:190 templates/js/translated/order.js:1545
-#: templates/js/translated/table_filters.js:188
+#: part/templates/part/part_base.html:190 templates/js/translated/order.js:2217
+#: templates/js/translated/table_filters.js:193
msgid "In Stock"
msgstr "Auf Lager"
@@ -5101,6 +5220,78 @@ msgstr "Interne Preisspanne bearbeiten"
msgid "Delete Internal Price Break"
msgstr "Interne Preisspanne löschen"
+#: plugin/integration.py:116
+msgid "No author found"
+msgstr ""
+
+#: plugin/integration.py:128
+msgid "No date found"
+msgstr ""
+
+#: plugin/models.py:25
+msgid "Plugin Configuration"
+msgstr ""
+
+#: plugin/models.py:26
+msgid "Plugin Configurations"
+msgstr ""
+
+#: plugin/models.py:31
+msgid "Key"
+msgstr ""
+
+#: plugin/models.py:32
+msgid "Key of plugin"
+msgstr ""
+
+#: plugin/models.py:40
+msgid "PluginName of the plugin"
+msgstr ""
+
+#: plugin/models.py:46
+msgid "Is the plugin active"
+msgstr ""
+
+#: plugin/samples/integration/sample.py:39
+msgid "Enable PO"
+msgstr ""
+
+#: plugin/samples/integration/sample.py:40
+msgid "Enable PO functionality in InvenTree interface"
+msgstr ""
+
+#: plugin/serializers.py:46
+msgid "Source URL"
+msgstr ""
+
+#: plugin/serializers.py:47
+msgid "Source for the package - this can be a custom registry or a VCS path"
+msgstr ""
+
+#: plugin/serializers.py:52
+msgid "Package Name"
+msgstr ""
+
+#: plugin/serializers.py:53
+msgid "Name for the Plugin Package - can also contain a version indicator"
+msgstr ""
+
+#: plugin/serializers.py:56
+msgid "Confirm plugin installation"
+msgstr ""
+
+#: plugin/serializers.py:57
+msgid "This will install this plugin now into the current instance. The instance will go into maintenance."
+msgstr ""
+
+#: plugin/serializers.py:72
+msgid "Installation not confirmed"
+msgstr ""
+
+#: plugin/serializers.py:74
+msgid "Either packagenmae of url must be provided"
+msgstr ""
+
#: report/api.py:234 report/api.py:278
#, python-brace-format
msgid "Template file '{filename}' is missing or does not exist"
@@ -5199,12 +5390,12 @@ msgid "Stock Item Test Report"
msgstr "Lagerartikel Test-Bericht"
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:520 stock/templates/stock/item_base.html:149
-#: templates/js/translated/build.js:233 templates/js/translated/build.js:637
-#: templates/js/translated/build.js:1013
+#: stock/models.py:514 stock/templates/stock/item_base.html:149
+#: templates/js/translated/build.js:238 templates/js/translated/build.js:642
+#: templates/js/translated/build.js:1018
#: templates/js/translated/model_renderers.js:95
-#: templates/js/translated/order.js:1287 templates/js/translated/order.js:1376
-#: templates/js/translated/stock.js:410
+#: templates/js/translated/order.js:99 templates/js/translated/order.js:1945
+#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:414
msgid "Serial Number"
msgstr "Seriennummer"
@@ -5213,17 +5404,19 @@ msgid "Test Results"
msgstr "Testergebnisse"
#: report/templates/report/inventree_test_report_base.html:93
-#: stock/models.py:1845
+#: stock/models.py:1833
msgid "Test"
msgstr "Test"
#: report/templates/report/inventree_test_report_base.html:94
-#: stock/models.py:1851
+#: stock/models.py:1839
msgid "Result"
msgstr "Ergebnis"
#: report/templates/report/inventree_test_report_base.html:97
-#: templates/js/translated/order.js:684 templates/js/translated/stock.js:1999
+#: templates/InvenTree/settings/plugin.html:49
+#: templates/InvenTree/settings/plugin_settings.html:38
+#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2174
msgid "Date"
msgstr "Datum"
@@ -5241,302 +5434,318 @@ msgid "Installed Items"
msgstr "Verbaute Objekte"
#: report/templates/report/inventree_test_report_base.html:137
-#: templates/js/translated/stock.js:2259
+#: templates/js/translated/stock.js:577 templates/js/translated/stock.js:2434
msgid "Serial"
msgstr "Seriennummer"
-#: stock/api.py:422
+#: stock/api.py:446
msgid "Quantity is required"
msgstr "Menge ist erforderlich"
-#: stock/forms.py:91 stock/forms.py:265 stock/models.py:577
+#: stock/forms.py:77 stock/forms.py:251 stock/models.py:571
#: stock/templates/stock/item_base.html:186
-#: templates/js/translated/stock.js:1358
+#: templates/js/translated/stock.js:1522
msgid "Expiry Date"
msgstr "Ablaufdatum"
-#: stock/forms.py:92 stock/forms.py:266
+#: stock/forms.py:78 stock/forms.py:252
msgid "Expiration date for this stock item"
msgstr "Ablaufdatum für diesen Lagerartikel"
-#: stock/forms.py:95
+#: stock/forms.py:81
msgid "Enter unique serial numbers (or leave blank)"
msgstr "Eindeutige Seriennummern eingeben (oder leer lassen)"
-#: stock/forms.py:150
+#: stock/forms.py:136
msgid "Destination for serialized stock (by default, will remain in current location)"
msgstr "Lagerort für serial"
-#: stock/forms.py:152
+#: stock/forms.py:138
msgid "Serial numbers"
msgstr "Seriennummern"
-#: stock/forms.py:152
+#: stock/forms.py:138
msgid "Unique serial numbers (must match quantity)"
msgstr "Anzahl der eindeutigen Seriennummern (muss mit der Anzahl übereinstimmen)"
-#: stock/forms.py:154 stock/forms.py:238
+#: stock/forms.py:140 stock/forms.py:224
msgid "Add transaction note (optional)"
msgstr " Transaktionsnotizen hinzufügen (optional)"
-#: stock/forms.py:194
+#: stock/forms.py:180
msgid "Stock item to install"
msgstr "Lagerartikel für Einbau"
-#: stock/forms.py:224
+#: stock/forms.py:210
msgid "Must not exceed available quantity"
msgstr "Anzahl darf die verfügbare Anzahl nicht überschreiten"
-#: stock/forms.py:236
+#: stock/forms.py:222
msgid "Destination location for uninstalled items"
msgstr "Ziel Lagerort für unverbaute Objekte"
-#: stock/forms.py:240
+#: stock/forms.py:226
msgid "Confirm uninstall"
msgstr "nicht mehr verbauen bestätigen"
-#: stock/forms.py:240
+#: stock/forms.py:226
msgid "Confirm removal of installed stock items"
msgstr "Entfernen der verbauten Lagerartikel bestätigen"
-#: stock/models.py:60 stock/models.py:614
+#: stock/models.py:60 stock/models.py:608
#: stock/templates/stock/item_base.html:417
msgid "Owner"
msgstr "Besitzer"
-#: stock/models.py:61 stock/models.py:615
+#: stock/models.py:61 stock/models.py:609
msgid "Select Owner"
msgstr "Besitzer auswählen"
-#: stock/models.py:342
+#: stock/models.py:336
msgid "StockItem with this serial number already exists"
msgstr "Ein Lagerartikel mit dieser Seriennummer existiert bereits"
-#: stock/models.py:378
+#: stock/models.py:372
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr "Teile-Typ ('{pf}') muss {pe} sein"
-#: stock/models.py:388 stock/models.py:397
+#: stock/models.py:382 stock/models.py:391
msgid "Quantity must be 1 for item with a serial number"
msgstr "Anzahl muss für Objekte mit Seriennummer 1 sein"
-#: stock/models.py:389
+#: stock/models.py:383
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:411
+#: stock/models.py:405
msgid "Item cannot belong to itself"
msgstr "Teil kann nicht zu sich selbst gehören"
-#: stock/models.py:417
+#: stock/models.py:411
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:424
+#: stock/models.py:418
msgid "Build reference does not point to the same part object"
msgstr "Referenz verweist nicht auf das gleiche Teil"
-#: stock/models.py:466
+#: stock/models.py:460
msgid "Parent Stock Item"
msgstr "Eltern-Lagerartikel"
-#: stock/models.py:475
+#: stock/models.py:469
msgid "Base part"
msgstr "Basis-Teil"
-#: stock/models.py:483
+#: stock/models.py:477
msgid "Select a matching supplier part for this stock item"
msgstr "Passendes Zuliefererteil für diesen Lagerartikel auswählen"
-#: stock/models.py:488 stock/templates/stock/location.html:12
+#: stock/models.py:482 stock/templates/stock/location.html:12
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr "Bestand-Lagerort"
-#: stock/models.py:491
+#: stock/models.py:485
msgid "Where is this stock item located?"
msgstr "Wo wird dieses Teil normalerweise gelagert?"
-#: stock/models.py:498
+#: stock/models.py:492
msgid "Packaging this stock item is stored in"
msgstr "Die Verpackung dieses Lagerartikel ist gelagert in"
-#: stock/models.py:503 stock/templates/stock/item_base.html:299
+#: stock/models.py:497 stock/templates/stock/item_base.html:299
msgid "Installed In"
msgstr "verbaut in"
-#: stock/models.py:506
+#: stock/models.py:500
msgid "Is this item installed in another item?"
msgstr "Ist dieses Teil in einem anderen verbaut?"
-#: stock/models.py:522
+#: stock/models.py:516
msgid "Serial number for this item"
msgstr "Seriennummer für dieses Teil"
-#: stock/models.py:536
+#: stock/models.py:530
msgid "Batch code for this stock item"
msgstr "Losnummer für diesen Lagerartikel"
-#: stock/models.py:540
+#: stock/models.py:534
msgid "Stock Quantity"
msgstr "Bestand"
-#: stock/models.py:549
+#: stock/models.py:543
msgid "Source Build"
msgstr "Quellbau"
-#: stock/models.py:551
+#: stock/models.py:545
msgid "Build for this stock item"
msgstr "Bauauftrag für diesen Lagerartikel"
-#: stock/models.py:562
+#: stock/models.py:556
msgid "Source Purchase Order"
msgstr "Quelle Bestellung"
-#: stock/models.py:565
+#: stock/models.py:559
msgid "Purchase order for this stock item"
msgstr "Bestellung für diesen Lagerartikel"
-#: stock/models.py:571
+#: stock/models.py:565
msgid "Destination Sales Order"
msgstr "Ziel-Auftrag"
-#: stock/models.py:578
+#: stock/models.py:572
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr "Ablaufdatum für Lagerartikel. Bestand wird danach als abgelaufen gekennzeichnet"
-#: stock/models.py:591
+#: stock/models.py:585
msgid "Delete on deplete"
msgstr "Löschen wenn leer"
-#: stock/models.py:591
+#: stock/models.py:585
msgid "Delete this Stock Item when stock is depleted"
msgstr "Diesen Lagerartikel löschen wenn der Bestand aufgebraucht ist"
-#: stock/models.py:601 stock/templates/stock/item.html:111
+#: stock/models.py:595 stock/templates/stock/item.html:111
msgid "Stock Item Notes"
msgstr "Lagerartikel-Notizen"
-#: stock/models.py:610
+#: stock/models.py:604
msgid "Single unit purchase price at time of purchase"
msgstr "Preis für eine Einheit bei Einkauf"
-#: stock/models.py:620
-msgid "Scheduled for deletion"
-msgstr "Zur Löschung vorgesehen"
-
-#: stock/models.py:621
-msgid "This StockItem will be deleted by the background worker"
-msgstr "Dieser Lagerartikel wird vom Hintergrund-Prozess gelöscht"
-
-#: stock/models.py:1084
+#: stock/models.py:1072
msgid "Part is not set as trackable"
msgstr "Teil ist nicht verfolgbar"
-#: stock/models.py:1090
+#: stock/models.py:1078
msgid "Quantity must be integer"
msgstr "Anzahl muss eine Ganzzahl sein"
-#: stock/models.py:1096
+#: stock/models.py:1084
#, 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:1099
+#: stock/models.py:1087
msgid "Serial numbers must be a list of integers"
msgstr "Seriennummern muss eine Liste von Ganzzahlen sein"
-#: stock/models.py:1102
+#: stock/models.py:1090
msgid "Quantity does not match serial numbers"
msgstr "Anzahl stimmt nicht mit den Seriennummern überein"
-#: stock/models.py:1109
+#: stock/models.py:1097
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr "Seriennummern {exists} existieren bereits"
-#: stock/models.py:1267
+#: stock/models.py:1255
msgid "StockItem cannot be moved as it is not in stock"
msgstr "Lagerartikel kann nicht bewegt werden, da kein Bestand vorhanden ist"
-#: stock/models.py:1765
+#: stock/models.py:1753
msgid "Entry notes"
msgstr "Eintrags-Notizen"
-#: stock/models.py:1822
+#: stock/models.py:1810
msgid "Value must be provided for this test"
msgstr "Wert muss für diesen Test angegeben werden"
-#: stock/models.py:1828
+#: stock/models.py:1816
msgid "Attachment must be uploaded for this test"
msgstr "Anhang muss für diesen Test hochgeladen werden"
-#: stock/models.py:1846
+#: stock/models.py:1834
msgid "Test name"
msgstr "Name des Tests"
-#: stock/models.py:1852 templates/js/translated/table_filters.js:266
+#: stock/models.py:1840 templates/js/translated/table_filters.js:271
msgid "Test result"
msgstr "Testergebnis"
-#: stock/models.py:1858
+#: stock/models.py:1846
msgid "Test output value"
msgstr "Test Ausgabe Wert"
-#: stock/models.py:1865
+#: stock/models.py:1853
msgid "Test result attachment"
msgstr "Test Ergebnis Anhang"
-#: stock/models.py:1871
+#: stock/models.py:1859
msgid "Test notes"
msgstr "Test Notizen"
-#: stock/serializers.py:171
+#: stock/serializers.py:173
msgid "Purchase price of this stock item"
msgstr "Kaufpreis für diesen Lagerartikel"
-#: stock/serializers.py:178
+#: stock/serializers.py:180
msgid "Purchase currency of this stock item"
msgstr "Kaufwährung dieses Lagerartikels"
-#: stock/serializers.py:292
+#: stock/serializers.py:294
msgid "Enter number of stock items to serialize"
msgstr "Anzahl der zu serialisierenden Lagerartikel eingeben"
-#: stock/serializers.py:307
+#: stock/serializers.py:309
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr "Anzahl darf nicht die verfügbare Menge überschreiten ({q})"
-#: stock/serializers.py:313
+#: stock/serializers.py:315
msgid "Enter serial numbers for new items"
msgstr "Seriennummern für neue Teile eingeben"
-#: stock/serializers.py:324 stock/serializers.py:691
+#: stock/serializers.py:326 stock/serializers.py:814
msgid "Destination stock location"
msgstr "Ziel-Bestand"
-#: stock/serializers.py:331
+#: stock/serializers.py:333
msgid "Optional note field"
msgstr "Optionales Notizfeld"
-#: stock/serializers.py:344
+#: stock/serializers.py:346
msgid "Serial numbers cannot be assigned to this part"
msgstr "Seriennummern können diesem Teil nicht zugewiesen werden"
-#: stock/serializers.py:561
+#: stock/serializers.py:573
+msgid "Part must be salable"
+msgstr ""
+
+#: stock/serializers.py:577
+msgid "Item is allocated to a sales order"
+msgstr ""
+
+#: stock/serializers.py:581
+msgid "Item is allocated to a build order"
+msgstr ""
+
+#: stock/serializers.py:611
+msgid "Customer to assign stock items"
+msgstr ""
+
+#: stock/serializers.py:617
+msgid "Selected company is not a customer"
+msgstr ""
+
+#: stock/serializers.py:625
+msgid "Stock assignment notes"
+msgstr ""
+
+#: stock/serializers.py:635 stock/serializers.py:722
+msgid "A list of stock items must be provided"
+msgstr "Eine Liste der Lagerbestände muss angegeben werden"
+
+#: stock/serializers.py:684
msgid "StockItem primary key value"
msgstr "Primärschlüssel Lagerelement"
-#: stock/serializers.py:589
+#: stock/serializers.py:712
msgid "Stock transaction notes"
msgstr "Bestandsbewegungsnotizen"
-#: stock/serializers.py:599
-msgid "A list of stock items must be provided"
-msgstr "Eine Liste der Lagerbestände muss angegeben werden"
-
#: stock/templates/stock/item.html:18
msgid "Stock Tracking Information"
msgstr "Informationen zur Bestand-Verfolgung"
@@ -5574,7 +5783,7 @@ msgstr "Testdaten hinzufügen"
msgid "Installed Stock Items"
msgstr "Installierte Lagerartikel"
-#: stock/templates/stock/item.html:137 stock/views.py:515
+#: stock/templates/stock/item.html:137 stock/views.py:482
msgid "Install Stock Item"
msgstr "Lagerartikel installieren"
@@ -5634,7 +5843,7 @@ msgstr "Bestand serialisieren"
msgid "Transfer stock"
msgstr "Bestand verschieben"
-#: stock/templates/stock/item_base.html:85
+#: stock/templates/stock/item_base.html:85 templates/stock_table.html:53
msgid "Assign to customer"
msgstr "Kunden zuweisen"
@@ -5696,7 +5905,7 @@ msgid "This StockItem expired on %(item.expiry_date)s"
msgstr "Dieser Lagerartikel lief am %(item.expiry_date)s ab"
#: stock/templates/stock/item_base.html:190
-#: templates/js/translated/table_filters.js:247
+#: templates/js/translated/table_filters.js:252
msgid "Expired"
msgstr "abgelaufen"
@@ -5706,12 +5915,12 @@ msgid "This StockItem expires on %(item.expiry_date)s"
msgstr "Dieser Lagerartikel läuft am %(item.expiry_date)s ab"
#: stock/templates/stock/item_base.html:192
-#: templates/js/translated/table_filters.js:253
+#: templates/js/translated/table_filters.js:258
msgid "Stale"
msgstr "überfällig"
#: stock/templates/stock/item_base.html:199
-#: templates/js/translated/stock.js:1371
+#: templates/js/translated/stock.js:1535
msgid "Last Updated"
msgstr "Zuletzt aktualisiert"
@@ -5740,14 +5949,12 @@ msgid "This stock item has not passed all required tests"
msgstr "Dieser Lagerartikel hat nicht alle Tests bestanden"
#: stock/templates/stock/item_base.html:255
-#, python-format
-msgid "This stock item is allocated to Sales Order %(link)s (Quantity: %(qty)s)"
-msgstr "Dieser Lagerartikel ist dem Auftrag %(link)s zugewiesen (Menge: %(qty)s)"
+msgid "This stock item is allocated to Sales Order"
+msgstr ""
#: stock/templates/stock/item_base.html:263
-#, python-format
-msgid "This stock item is allocated to Build %(link)s (Quantity: %(qty)s)"
-msgstr "Dieser Lagerartikel ist dem Bauauftrag %(link)s zugewiesen (Menge: %(qty)s)"
+msgid "This stock item is allocated to Build Order"
+msgstr ""
#: stock/templates/stock/item_base.html:269
msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted."
@@ -5762,7 +5969,7 @@ msgid "This stock item will be automatically deleted when all stock is depleted.
msgstr "Dieser Bestand wird automatisch gelöscht wenn der Bestand aufgebraucht ist."
#: stock/templates/stock/item_base.html:318
-#: templates/js/translated/build.js:1035
+#: templates/js/translated/build.js:1040
msgid "No location set"
msgstr "Kein Lagerort gesetzt"
@@ -5912,7 +6119,7 @@ msgstr "Untergeordnete Objekte"
msgid "The following stock items will be uninstalled"
msgstr "Die folgenden Lagerartikel werden nicht mehr verbaut"
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:912
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:879
msgid "Convert Stock Item"
msgstr "Lagerartikel umwandeln"
@@ -5937,8 +6144,7 @@ msgstr "Sind Sie sicher, dass Sie diesen Lagerartikel-Verfolgungs-Eintrag lösch
msgid "Edit Stock Location"
msgstr "Lagerartikel-Ort bearbeiten"
-#: stock/views.py:269 stock/views.py:891 stock/views.py:1017
-#: stock/views.py:1299
+#: stock/views.py:269 stock/views.py:858 stock/views.py:984 stock/views.py:1266
msgid "Owner is required (ownership control is enabled)"
msgstr "Eigentümer notwendig (Eigentümerkontrolle aktiv)"
@@ -5947,86 +6153,78 @@ msgid "Stock Location QR code"
msgstr "QR-Code für diesen Lagerort"
#: stock/views.py:303
-msgid "Assign to Customer"
-msgstr "Kunden zuweisen"
-
-#: stock/views.py:312
-msgid "Customer must be specified"
-msgstr "Kunde muss angegeben werden"
-
-#: stock/views.py:336
msgid "Return to Stock"
msgstr "zurück ins Lager"
-#: stock/views.py:345
+#: stock/views.py:312
msgid "Specify a valid location"
msgstr "gültigen Lagerort angeben"
-#: stock/views.py:356
+#: stock/views.py:323
msgid "Stock item returned from customer"
msgstr "Lagerartikel retoure vom Kunden"
-#: stock/views.py:367
+#: stock/views.py:334
msgid "Delete All Test Data"
msgstr "alle Testdaten löschen"
-#: stock/views.py:384
+#: stock/views.py:351
msgid "Confirm test data deletion"
msgstr "Löschen Testdaten bestätigen"
-#: stock/views.py:489
+#: stock/views.py:456
msgid "Stock Item QR Code"
msgstr "Lagerartikel-QR-Code"
-#: stock/views.py:663
+#: stock/views.py:630
msgid "Uninstall Stock Items"
msgstr "Lagerartikel deinstallieren"
-#: stock/views.py:760 templates/js/translated/stock.js:730
+#: stock/views.py:727 templates/js/translated/stock.js:887
msgid "Confirm stock adjustment"
msgstr "Bestands-Anpassung bestätigen"
-#: stock/views.py:771
+#: stock/views.py:738
msgid "Uninstalled stock items"
msgstr "Lagerartikel deinstalliert"
-#: stock/views.py:793 templates/js/translated/stock.js:319
+#: stock/views.py:760 templates/js/translated/stock.js:323
msgid "Edit Stock Item"
msgstr "Lagerartikel bearbeiten"
-#: stock/views.py:943
+#: stock/views.py:910
msgid "Create new Stock Location"
msgstr "Neuen Lagerort erstellen"
-#: stock/views.py:1044
+#: stock/views.py:1011
msgid "Create new Stock Item"
msgstr "Neuen Lagerartikel hinzufügen"
-#: stock/views.py:1186 templates/js/translated/stock.js:299
+#: stock/views.py:1153 templates/js/translated/stock.js:303
msgid "Duplicate Stock Item"
msgstr "Bestand duplizieren"
-#: stock/views.py:1268
+#: stock/views.py:1235
msgid "Quantity cannot be negative"
msgstr "Anzahl kann nicht negativ sein"
-#: stock/views.py:1368
+#: stock/views.py:1335
msgid "Delete Stock Location"
msgstr "Bestand-Lagerort löschen"
-#: stock/views.py:1381
+#: stock/views.py:1348
msgid "Delete Stock Item"
msgstr "Lagerartikel löschen"
-#: stock/views.py:1392
+#: stock/views.py:1359
msgid "Delete Stock Tracking Entry"
msgstr "Bestand-Tracking-Eintrag löschen"
-#: stock/views.py:1399
+#: stock/views.py:1366
msgid "Edit Stock Tracking Entry"
msgstr "Bestand-Verfolgungs-Eintrag bearbeiten"
-#: stock/views.py:1408
+#: stock/views.py:1375
msgid "Add Stock Tracking Entry"
msgstr "Bestand-Verfolgungs-Eintrag hinzufügen"
@@ -6046,6 +6244,14 @@ msgstr "Seite nicht gefunden"
msgid "The requested page does not exist"
msgstr "Seite existiert nicht"
+#: templates/503.html:10 templates/503.html:35
+msgid "Site is in Maintenance"
+msgstr ""
+
+#: templates/503.html:41
+msgid "The site is currently in maintenance and should be up again soon!"
+msgstr ""
+
#: templates/InvenTree/index.html:7
msgid "Index"
msgstr "Index"
@@ -6155,7 +6361,7 @@ msgid "Server Settings"
msgstr "Server Einstellungen"
#: templates/InvenTree/settings/login.html:9
-#: templates/InvenTree/settings/sidebar.html:28
+#: templates/InvenTree/settings/sidebar.html:29
msgid "Login Settings"
msgstr "Anmeldeeinstellungen"
@@ -6163,6 +6369,24 @@ msgstr "Anmeldeeinstellungen"
msgid "Signup"
msgstr "Anmelden"
+#: templates/InvenTree/settings/mixins/settings.html:4
+#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:118
+msgid "Settings"
+msgstr "Einstellungen"
+
+#: templates/InvenTree/settings/mixins/urls.html:4
+msgid "URLs"
+msgstr ""
+
+#: templates/InvenTree/settings/mixins/urls.html:6
+#, python-format
+msgid "The Base-URL for this plugin is %(base)s."
+msgstr ""
+
+#: templates/InvenTree/settings/mixins/urls.html:21
+msgid "open in new tab"
+msgstr ""
+
#: templates/InvenTree/settings/part.html:7
msgid "Part Settings"
msgstr "Teil-Einstellungen"
@@ -6179,6 +6403,126 @@ msgstr "Teil importieren"
msgid "Part Parameter Templates"
msgstr "Teil-Parametervorlage"
+#: templates/InvenTree/settings/plugin.html:10
+msgid "Plugin Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:16
+msgid "Changing the settings below require you to immediatly restart InvenTree. Do not change this while under active usage."
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:32
+msgid "Plugin list"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:37
+#: templates/js/translated/plugin.js:15
+msgid "Install Plugin"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:46 templates/navbar.html:111
+#: users/models.py:39
+msgid "Admin"
+msgstr "Admin"
+
+#: templates/InvenTree/settings/plugin.html:48
+#: templates/InvenTree/settings/plugin_settings.html:28
+msgid "Author"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:50
+#: templates/InvenTree/settings/plugin_settings.html:43
+msgid "Version"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:73
+#, python-format
+msgid "has %(name)s"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:91
+msgid "Inactive plugins"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:114
+msgid "Plugin Error Stack"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:123
+msgid "Stage"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:125
+msgid "Message"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:10
+#, python-format
+msgid "Plugin details for %(name)s"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:17
+msgid "Plugin information"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:48
+msgid "no version information supplied"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:62
+msgid "License"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:70
+msgid "The code information is pulled from the latest git commit for this plugin. It might not reflect official version numbers or information but the actual code running."
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:74
+msgid "Package information"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:80
+msgid "Installation method"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:83
+msgid "This plugin was installed as a package"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:85
+msgid "This plugin was found in a local InvenTree path"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:91
+msgid "Installation path"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:97
+msgid "Commit Author"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:101
+#: templates/about.html:47
+msgid "Commit Date"
+msgstr "Commit-Datum"
+
+#: templates/InvenTree/settings/plugin_settings.html:105
+#: templates/about.html:40
+msgid "Commit Hash"
+msgstr "Commit-Hash"
+
+#: templates/InvenTree/settings/plugin_settings.html:109
+msgid "Commit Message"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:114
+msgid "Sign Status"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:119
+msgid "Sign Key"
+msgstr ""
+
#: templates/InvenTree/settings/po.html:7
msgid "Purchase Order Settings"
msgstr "Bestellungs-Einstellungen"
@@ -6196,86 +6540,82 @@ msgstr "Kein Wert angegeben"
msgid "Edit setting"
msgstr "Einstellungen ändern"
-#: templates/InvenTree/settings/settings.html:11 templates/navbar.html:93
-msgid "Settings"
-msgstr "Einstellungen"
-
-#: templates/InvenTree/settings/settings.html:65
+#: templates/InvenTree/settings/settings.html:74
msgid "Edit Global Setting"
msgstr "Allgemeine Einstellungen bearbeiten"
-#: templates/InvenTree/settings/settings.html:65
+#: templates/InvenTree/settings/settings.html:74
msgid "Edit User Setting"
msgstr "Benutzereinstellungen bearbeiten"
-#: templates/InvenTree/settings/settings.html:148
+#: templates/InvenTree/settings/settings.html:157
msgid "No category parameter templates found"
msgstr "Keine Kategorie-Parametervorlagen gefunden"
-#: templates/InvenTree/settings/settings.html:170
-#: templates/InvenTree/settings/settings.html:269
+#: templates/InvenTree/settings/settings.html:179
+#: templates/InvenTree/settings/settings.html:278
msgid "Edit Template"
msgstr "Vorlage bearbeiten"
-#: templates/InvenTree/settings/settings.html:171
-#: templates/InvenTree/settings/settings.html:270
+#: templates/InvenTree/settings/settings.html:180
+#: templates/InvenTree/settings/settings.html:279
msgid "Delete Template"
msgstr "Vorlage löschen"
-#: templates/InvenTree/settings/settings.html:249
+#: templates/InvenTree/settings/settings.html:258
msgid "No part parameter templates found"
msgstr "Keine Teilparametervorlagen gefunden"
-#: templates/InvenTree/settings/settings.html:253
+#: templates/InvenTree/settings/settings.html:262
msgid "ID"
msgstr "ID"
-#: templates/InvenTree/settings/sidebar.html:5
+#: templates/InvenTree/settings/sidebar.html:6
#: templates/InvenTree/settings/user_settings.html:9
msgid "User Settings"
msgstr "Benutzer-Einstellungen"
-#: templates/InvenTree/settings/sidebar.html:8
+#: templates/InvenTree/settings/sidebar.html:9
#: templates/InvenTree/settings/user.html:12
msgid "Account Settings"
msgstr "Kontoeinstellungen"
-#: templates/InvenTree/settings/sidebar.html:10
+#: templates/InvenTree/settings/sidebar.html:11
#: templates/InvenTree/settings/user_display.html:9
msgid "Display Settings"
msgstr "Anzeigeeinstellungen"
-#: templates/InvenTree/settings/sidebar.html:12
+#: templates/InvenTree/settings/sidebar.html:13
msgid "Home Page"
msgstr "Startseite"
-#: templates/InvenTree/settings/sidebar.html:14
+#: templates/InvenTree/settings/sidebar.html:15
#: templates/InvenTree/settings/user_search.html:9
msgid "Search Settings"
msgstr "Sucheinstellungen"
-#: templates/InvenTree/settings/sidebar.html:16
+#: templates/InvenTree/settings/sidebar.html:17
msgid "Label Printing"
msgstr "Etikettendruck"
-#: templates/InvenTree/settings/sidebar.html:18
-#: templates/InvenTree/settings/sidebar.html:34
+#: templates/InvenTree/settings/sidebar.html:19
+#: templates/InvenTree/settings/sidebar.html:35
msgid "Reporting"
msgstr "Berichte"
-#: templates/InvenTree/settings/sidebar.html:23
+#: templates/InvenTree/settings/sidebar.html:24
msgid "Global Settings"
msgstr "Allgemeine Einstellungen"
-#: templates/InvenTree/settings/sidebar.html:26
+#: templates/InvenTree/settings/sidebar.html:27
msgid "Server Configuration"
msgstr "Serverkonfiguration"
-#: templates/InvenTree/settings/sidebar.html:32
+#: templates/InvenTree/settings/sidebar.html:33
msgid "Currencies"
msgstr "Währungen"
-#: templates/InvenTree/settings/sidebar.html:38
+#: templates/InvenTree/settings/sidebar.html:39
msgid "Categories"
msgstr "Kategorien"
@@ -6493,8 +6833,8 @@ msgstr "InvenTree-Versionsinformationen"
#: templates/about.html:11 templates/about.html:105
#: templates/js/translated/bom.js:283 templates/js/translated/modals.js:53
-#: templates/js/translated/modals.js:567 templates/js/translated/modals.js:661
-#: templates/js/translated/modals.js:964 templates/modals.html:15
+#: templates/js/translated/modals.js:568 templates/js/translated/modals.js:662
+#: templates/js/translated/modals.js:965 templates/modals.html:15
#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
msgid "Close"
msgstr "Schliessen"
@@ -6515,14 +6855,6 @@ msgstr "Aktuell"
msgid "Update Available"
msgstr "Aktualisierung verfügbar"
-#: templates/about.html:40
-msgid "Commit Hash"
-msgstr "Commit-Hash"
-
-#: templates/about.html:47
-msgid "Commit Date"
-msgstr "Commit-Datum"
-
#: templates/about.html:53
msgid "InvenTree Documentation"
msgstr "InvenTree-Dokumentation"
@@ -6720,8 +7052,9 @@ msgstr "Benötigte Menge"
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1129
-#: templates/js/translated/build.js:1749
+#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1134
+#: templates/js/translated/build.js:1755
+#: templates/js/translated/table_filters.js:178
msgid "Available"
msgstr "Verfügbar"
@@ -6767,11 +7100,11 @@ msgstr "Der angegebene Server muss erreichbar sein"
msgid "Remote image must not exceed maximum allowable file size"
msgstr "Das Bild darf nicht größer als die maximal-erlaubte Größe sein"
-#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1034
+#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1035
msgid "No Response"
msgstr "Keine Antwort"
-#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1035
+#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1036
msgid "No response from the InvenTree server"
msgstr "keine Antwort vom InvenTree Server"
@@ -6783,35 +7116,35 @@ msgstr "Fehler 400: Fehlerhafte Anfrage"
msgid "API request returned error code 400"
msgstr "Fehler-Code 400 zurückgegeben"
-#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1044
+#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1045
msgid "Error 401: Not Authenticated"
msgstr "Fehler 401: Nicht Angemeldet"
-#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1045
+#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1046
msgid "Authentication credentials not supplied"
msgstr "Authentication Kredentials nicht angegeben"
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1049
+#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1050
msgid "Error 403: Permission Denied"
msgstr "Fehler 403: keine Berechtigung"
-#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1050
+#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1051
msgid "You do not have the required permissions to access this function"
msgstr "Fehlende Berechtigung für diese Aktion"
-#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1054
+#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1055
msgid "Error 404: Resource Not Found"
msgstr "Fehler 404: Ressource nicht gefunden"
-#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1055
+#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1056
msgid "The requested resource could not be located on the server"
msgstr "Die angefragte Ressource kann auf diesem Server nicht gefunden werden"
-#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1059
+#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1060
msgid "Error 408: Timeout"
msgstr "Fehler 408: Zeitüberschreitung"
-#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1060
+#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1061
msgid "Connection timeout while requesting data from server"
msgstr "Verbindungszeitüberschreitung bei der Datenanforderung"
@@ -6880,7 +7213,7 @@ msgid "Unknown response from server"
msgstr "Unbekannte Antwort von Server erhalten"
#: templates/js/translated/barcode.js:140
-#: templates/js/translated/modals.js:1024
+#: templates/js/translated/modals.js:1025
msgid "Invalid server response"
msgstr "Ungültige Antwort von Server"
@@ -6888,7 +7221,7 @@ msgstr "Ungültige Antwort von Server"
msgid "Scan barcode data below"
msgstr "Barcode unterhalb scannen"
-#: templates/js/translated/barcode.js:280 templates/navbar.html:69
+#: templates/js/translated/barcode.js:280 templates/navbar.html:94
msgid "Scan Barcode"
msgstr "Barcode scannen"
@@ -6908,7 +7241,7 @@ msgstr "Dadurch wird die Verknüpfung zwischen diesem Lagerartikel und dem Barco
msgid "Unlink"
msgstr "Entfernen"
-#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:682
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:839
msgid "Remove stock item"
msgstr "Lagerartikel entfernen"
@@ -6978,7 +7311,7 @@ msgstr "Stücklisten Ersatzteile bearbeiten"
msgid "Substitutes Available"
msgstr "Ersatzteile verfügbar"
-#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1111
+#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1116
msgid "Variant stock allowed"
msgstr "Varianten erlaubt"
@@ -7002,11 +7335,6 @@ msgstr "Durchschnittlicher Kaufpreis"
msgid "View BOM"
msgstr "Stückliste anzeigen"
-#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1183
-#: templates/js/translated/order.js:1319
-msgid "Actions"
-msgstr "Aktionen"
-
#: templates/js/translated/bom.js:616
msgid "Validate BOM Item"
msgstr "Stücklisten-Position kontrollieren"
@@ -7027,7 +7355,7 @@ msgstr "Stücklisten-Position bearbeiten"
msgid "Delete BOM Item"
msgstr "Stücklisten-Position löschen"
-#: templates/js/translated/bom.js:718 templates/js/translated/build.js:855
+#: templates/js/translated/bom.js:718 templates/js/translated/build.js:860
msgid "No BOM items found"
msgstr "Keine Stücklisten-Position(en) gefunden"
@@ -7035,7 +7363,7 @@ msgstr "Keine Stücklisten-Position(en) gefunden"
msgid "Are you sure you want to delete this BOM item?"
msgstr "Sind Sie sicher, dass Sie diese Stücklisten-Position löschen wollen?"
-#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1095
+#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1100
msgid "Required Part"
msgstr "benötigtes Teil"
@@ -7043,165 +7371,165 @@ msgstr "benötigtes Teil"
msgid "Inherited from parent BOM"
msgstr "Geerbt von übergeordneter Stückliste"
-#: templates/js/translated/build.js:78
+#: templates/js/translated/build.js:83
msgid "Edit Build Order"
msgstr "Bauauftrag bearbeiten"
-#: templates/js/translated/build.js:112
+#: templates/js/translated/build.js:117
msgid "Create Build Order"
msgstr "Bauauftrag erstellen"
-#: templates/js/translated/build.js:133
+#: templates/js/translated/build.js:138
msgid "Allocate stock items to this build output"
msgstr "Lagerartikel zu diesem Endprodukt zuweisen"
-#: templates/js/translated/build.js:144
+#: templates/js/translated/build.js:149
msgid "Unallocate stock from build output"
msgstr "Bestand von Endpordukt zurücknehmen"
-#: templates/js/translated/build.js:153
+#: templates/js/translated/build.js:158
msgid "Complete build output"
msgstr "Endprodukt fertigstellen"
-#: templates/js/translated/build.js:161
+#: templates/js/translated/build.js:166
msgid "Delete build output"
msgstr "Endprodukt entfernen"
-#: templates/js/translated/build.js:184
+#: templates/js/translated/build.js:189
msgid "Are you sure you wish to unallocate stock items from this build?"
msgstr "Sind Sie sicher, dass sie alle Lagerartikel von diesem Bauauftrag entfernen möchten?"
-#: templates/js/translated/build.js:202
+#: templates/js/translated/build.js:207
msgid "Unallocate Stock Items"
msgstr "Lagerartikel zurücknehmen"
-#: templates/js/translated/build.js:220
+#: templates/js/translated/build.js:225
msgid "Select Build Outputs"
msgstr "Endprodukte auswählen"
-#: templates/js/translated/build.js:221
+#: templates/js/translated/build.js:226
msgid "At least one build output must be selected"
msgstr "Mindestens ein Endprodukt muss ausgewählt werden"
-#: templates/js/translated/build.js:275
+#: templates/js/translated/build.js:280
msgid "Output"
msgstr "Endprodukt"
-#: templates/js/translated/build.js:291
+#: templates/js/translated/build.js:296
msgid "Complete Build Outputs"
msgstr "Endprodukte fertigstellen"
-#: templates/js/translated/build.js:386
+#: templates/js/translated/build.js:391
msgid "No build order allocations found"
msgstr "Keine Allokationen für Bauauftrag gefunden"
-#: templates/js/translated/build.js:424 templates/js/translated/order.js:1193
+#: templates/js/translated/build.js:429 templates/js/translated/order.js:1848
msgid "Location not specified"
msgstr "Standort nicht angegeben"
-#: templates/js/translated/build.js:603
+#: templates/js/translated/build.js:608
msgid "No active build outputs found"
msgstr "Keine aktiven Endprodukte gefunden"
-#: templates/js/translated/build.js:1052 templates/js/translated/build.js:1760
-#: templates/js/translated/order.js:1326
+#: templates/js/translated/build.js:1057 templates/js/translated/build.js:1766
+#: templates/js/translated/order.js:1982
msgid "Edit stock allocation"
msgstr "Bestands-Zuordnung bearbeiten"
-#: templates/js/translated/build.js:1054 templates/js/translated/build.js:1761
-#: templates/js/translated/order.js:1327
+#: templates/js/translated/build.js:1059 templates/js/translated/build.js:1767
+#: templates/js/translated/order.js:1983
msgid "Delete stock allocation"
msgstr "Bestands-Zuordnung löschen"
-#: templates/js/translated/build.js:1072
+#: templates/js/translated/build.js:1077
msgid "Edit Allocation"
msgstr "Zuordnung bearbeiten"
-#: templates/js/translated/build.js:1082
+#: templates/js/translated/build.js:1087
msgid "Remove Allocation"
msgstr "Zuordnung entfernen"
-#: templates/js/translated/build.js:1107
+#: templates/js/translated/build.js:1112
msgid "Substitute parts available"
msgstr "Ersatzteile verfügbar"
-#: templates/js/translated/build.js:1124
+#: templates/js/translated/build.js:1129
msgid "Quantity Per"
msgstr "Anzahl pro"
-#: templates/js/translated/build.js:1134 templates/js/translated/build.js:1360
-#: templates/js/translated/build.js:1756 templates/js/translated/order.js:1556
+#: templates/js/translated/build.js:1139 templates/js/translated/build.js:1365
+#: templates/js/translated/build.js:1762 templates/js/translated/order.js:2227
msgid "Allocated"
msgstr "Zugeordnet"
-#: templates/js/translated/build.js:1190 templates/js/translated/order.js:1610
+#: templates/js/translated/build.js:1195 templates/js/translated/order.js:2307
msgid "Build stock"
msgstr "Bestand bauen"
-#: templates/js/translated/build.js:1194 templates/stock_table.html:52
+#: templates/js/translated/build.js:1199 templates/stock_table.html:52
msgid "Order stock"
msgstr "Bestand bestellen"
-#: templates/js/translated/build.js:1197 templates/js/translated/order.js:1603
+#: templates/js/translated/build.js:1202 templates/js/translated/order.js:2300
msgid "Allocate stock"
msgstr "Bestand zuweisen"
-#: templates/js/translated/build.js:1262
+#: templates/js/translated/build.js:1267 templates/js/translated/order.js:1499
msgid "Specify stock allocation quantity"
msgstr "Anzahl für Bestandszuordnung eingeben"
-#: templates/js/translated/build.js:1333 templates/js/translated/label.js:134
-#: templates/js/translated/report.js:225
+#: templates/js/translated/build.js:1338 templates/js/translated/label.js:134
+#: templates/js/translated/order.js:1550 templates/js/translated/report.js:225
msgid "Select Parts"
msgstr "Teile auswählen"
-#: templates/js/translated/build.js:1334
+#: templates/js/translated/build.js:1339 templates/js/translated/order.js:1551
msgid "You must select at least one part to allocate"
msgstr "Sie müssen mindestens ein Teil auswählen"
-#: templates/js/translated/build.js:1348
+#: templates/js/translated/build.js:1353 templates/js/translated/order.js:1565
msgid "Select source location (leave blank to take from all locations)"
msgstr "Wählen Sie den Quellort aus (leer lassen um von allen Standorten zu nehmen)"
-#: templates/js/translated/build.js:1377
+#: templates/js/translated/build.js:1382 templates/js/translated/order.js:1600
msgid "Confirm stock allocation"
msgstr "Bestandszuordnung bestätigen"
-#: templates/js/translated/build.js:1378
+#: templates/js/translated/build.js:1383
msgid "Allocate Stock Items to Build Order"
msgstr "Lagerartikel für Bauauftrag zuweisen"
-#: templates/js/translated/build.js:1389
+#: templates/js/translated/build.js:1394 templates/js/translated/order.js:1613
msgid "No matching stock locations"
msgstr "Keine passenden Lagerstandorte"
-#: templates/js/translated/build.js:1451
+#: templates/js/translated/build.js:1464 templates/js/translated/order.js:1690
msgid "No matching stock items"
msgstr "Keine passenden Lagerbestände"
-#: templates/js/translated/build.js:1576
+#: templates/js/translated/build.js:1582
msgid "No builds matching query"
msgstr "Keine Bauaufträge passen zur Anfrage"
-#: templates/js/translated/build.js:1593 templates/js/translated/part.js:1147
-#: templates/js/translated/part.js:1558 templates/js/translated/stock.js:1176
-#: templates/js/translated/stock.js:1953
+#: templates/js/translated/build.js:1599 templates/js/translated/part.js:1147
+#: templates/js/translated/part.js:1558 templates/js/translated/stock.js:1333
+#: templates/js/translated/stock.js:2128
msgid "Select"
msgstr "Auswählen"
-#: templates/js/translated/build.js:1613
+#: templates/js/translated/build.js:1619
msgid "Build order is overdue"
msgstr "Bauauftrag ist überfällig"
-#: templates/js/translated/build.js:1674 templates/js/translated/stock.js:2172
+#: templates/js/translated/build.js:1680 templates/js/translated/stock.js:2347
msgid "No user information"
msgstr "Keine Benutzerinformation"
-#: templates/js/translated/build.js:1686
+#: templates/js/translated/build.js:1692
msgid "No information"
msgstr "Keine Information"
-#: templates/js/translated/build.js:1737
+#: templates/js/translated/build.js:1743
msgid "No parts allocated for"
msgstr "Keine Teile zugeordnet zu"
@@ -7221,7 +7549,7 @@ msgstr "Herstellerteil ändern"
msgid "Delete Manufacturer Part"
msgstr "Herstellerteil löschen"
-#: templates/js/translated/company.js:165 templates/js/translated/order.js:90
+#: templates/js/translated/company.js:165 templates/js/translated/order.js:248
msgid "Add Supplier"
msgstr "Zulieferer hinzufügen"
@@ -7356,20 +7684,20 @@ msgstr "Anzeigevorgang nicht erlaubt"
msgid "Enter a valid number"
msgstr "Gib eine gültige Nummer ein"
-#: templates/js/translated/forms.js:1072 templates/modals.html:19
+#: templates/js/translated/forms.js:1078 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr "Fehler in Formular"
-#: templates/js/translated/forms.js:1463
+#: templates/js/translated/forms.js:1469
msgid "No results found"
msgstr "Keine Ergebnisse gefunden"
-#: templates/js/translated/forms.js:1667
+#: templates/js/translated/forms.js:1673
msgid "Searching"
msgstr "Suche"
-#: templates/js/translated/forms.js:1884
+#: templates/js/translated/forms.js:1893
msgid "Clear input"
msgstr "Eingabe leeren"
@@ -7382,7 +7710,7 @@ msgid "NO"
msgstr "NEIN"
#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:706
+#: templates/js/translated/stock.js:863
msgid "Select Stock Items"
msgstr "Lagerartikel auswählen"
@@ -7431,62 +7759,62 @@ msgstr "Label auswählen"
msgid "Select Label Template"
msgstr "Label-Vorlage auswählen"
-#: templates/js/translated/modals.js:75 templates/js/translated/modals.js:119
-#: templates/js/translated/modals.js:593
+#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:120
+#: templates/js/translated/modals.js:594
msgid "Cancel"
msgstr "Abbrechen"
-#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:118
-#: templates/js/translated/modals.js:660 templates/js/translated/modals.js:963
+#: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119
+#: templates/js/translated/modals.js:661 templates/js/translated/modals.js:964
#: templates/modals.html:28 templates/modals.html:51
msgid "Submit"
msgstr "Abschicken"
-#: templates/js/translated/modals.js:117
+#: templates/js/translated/modals.js:118
msgid "Form Title"
msgstr "Formulartitel"
-#: templates/js/translated/modals.js:380
+#: templates/js/translated/modals.js:381
msgid "Waiting for server..."
msgstr "Warte auf Server..."
-#: templates/js/translated/modals.js:539
+#: templates/js/translated/modals.js:540
msgid "Show Error Information"
msgstr "Fehler-Informationen anzeigen"
-#: templates/js/translated/modals.js:592
+#: templates/js/translated/modals.js:593
msgid "Accept"
msgstr "Akzeptieren"
-#: templates/js/translated/modals.js:649
+#: templates/js/translated/modals.js:650
msgid "Loading Data"
msgstr "Lade Daten"
-#: templates/js/translated/modals.js:915
+#: templates/js/translated/modals.js:916
msgid "Invalid response from server"
msgstr "ungültige Antwort vom Server"
-#: templates/js/translated/modals.js:915
+#: templates/js/translated/modals.js:916
msgid "Form data missing from server response"
msgstr "Formulardaten fehlen bei Serverantwort"
-#: templates/js/translated/modals.js:927
+#: templates/js/translated/modals.js:928
msgid "Error posting form data"
msgstr "Formulardaten fehlerhaft"
-#: templates/js/translated/modals.js:1024
+#: templates/js/translated/modals.js:1025
msgid "JSON response missing form data"
msgstr "JSON Antwort enthält keine Formulardaten"
-#: templates/js/translated/modals.js:1039
+#: templates/js/translated/modals.js:1040
msgid "Error 400: Bad Request"
msgstr "Fehler 400: Ungültige Anfrage"
-#: templates/js/translated/modals.js:1040
+#: templates/js/translated/modals.js:1041
msgid "Server returned error code 400"
msgstr "Fehler 400 von Server erhalten"
-#: templates/js/translated/modals.js:1063
+#: templates/js/translated/modals.js:1064
msgid "Error requesting form data"
msgstr "Fehler bei Formulardaten-Anfrage"
@@ -7514,176 +7842,245 @@ msgstr "Teil-ID"
msgid "Order ID"
msgstr "Bestell-ID"
-#: templates/js/translated/model_renderers.js:256
+#: templates/js/translated/model_renderers.js:253
+msgid "Shipment ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:273
msgid "Category ID"
msgstr "Kategorie-ID"
-#: templates/js/translated/model_renderers.js:293
+#: templates/js/translated/model_renderers.js:310
msgid "Manufacturer Part ID"
msgstr "Herstellerteil-ID"
-#: templates/js/translated/model_renderers.js:322
+#: templates/js/translated/model_renderers.js:339
msgid "Supplier Part ID"
msgstr "Zuliefererteil-ID"
-#: templates/js/translated/order.js:48
+#: templates/js/translated/order.js:75
+msgid "No stock items have been allocated to this shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:80
+msgid "The following stock items will be shipped"
+msgstr ""
+
+#: templates/js/translated/order.js:120
+msgid "Complete Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:126
+msgid "Confirm Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:181
+msgid "Create New Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:206
msgid "Add Customer"
msgstr "Kunden hinzufügen"
-#: templates/js/translated/order.js:73
+#: templates/js/translated/order.js:231
msgid "Create Sales Order"
msgstr "Auftrag anlegen"
-#: templates/js/translated/order.js:208
+#: templates/js/translated/order.js:366
msgid "Export Order"
msgstr "Bestellung exportieren"
-#: templates/js/translated/order.js:211 templates/js/translated/stock.js:505
+#: templates/js/translated/order.js:369 templates/js/translated/stock.js:509
msgid "Format"
msgstr "Format"
-#: templates/js/translated/order.js:212 templates/js/translated/stock.js:506
+#: templates/js/translated/order.js:370 templates/js/translated/stock.js:510
msgid "Select file format"
msgstr "Dateiformat auswählen"
-#: templates/js/translated/order.js:300
+#: templates/js/translated/order.js:460
msgid "Select Line Items"
msgstr "Positionen auswählen"
-#: templates/js/translated/order.js:301
+#: templates/js/translated/order.js:461
msgid "At least one line item must be selected"
msgstr "Mindestens eine Position muss ausgewählt werden"
-#: templates/js/translated/order.js:326
+#: templates/js/translated/order.js:486
msgid "Quantity to receive"
msgstr "Zu erhaltende Menge"
-#: templates/js/translated/order.js:360 templates/js/translated/stock.js:1755
+#: templates/js/translated/order.js:520 templates/js/translated/stock.js:1930
msgid "Stock Status"
msgstr "Status"
-#: templates/js/translated/order.js:427
+#: templates/js/translated/order.js:587
msgid "Order Code"
msgstr "Bestellnummer"
-#: templates/js/translated/order.js:428
+#: templates/js/translated/order.js:588
msgid "Ordered"
msgstr "Bestellt"
-#: templates/js/translated/order.js:430
+#: templates/js/translated/order.js:590
msgid "Receive"
msgstr "Empfangen"
-#: templates/js/translated/order.js:449
+#: templates/js/translated/order.js:609
msgid "Confirm receipt of items"
msgstr "Empfang der Teile bestätigen"
-#: templates/js/translated/order.js:450
+#: templates/js/translated/order.js:610
msgid "Receive Purchase Order Items"
msgstr "Bestellpositionen erhalten"
-#: templates/js/translated/order.js:627 templates/js/translated/part.js:746
+#: templates/js/translated/order.js:790 templates/js/translated/part.js:746
msgid "No purchase orders found"
msgstr "Keine Bestellungen gefunden"
-#: templates/js/translated/order.js:659 templates/js/translated/order.js:1062
+#: templates/js/translated/order.js:815 templates/js/translated/order.js:1230
msgid "Order is overdue"
msgstr "Bestellung überfällig"
-#: templates/js/translated/order.js:771 templates/js/translated/order.js:1645
+#: templates/js/translated/order.js:936 templates/js/translated/order.js:2356
msgid "Edit Line Item"
msgstr "Position bearbeiten"
-#: templates/js/translated/order.js:783 templates/js/translated/order.js:1656
+#: templates/js/translated/order.js:948 templates/js/translated/order.js:2367
msgid "Delete Line Item"
msgstr "Position löschen"
-#: templates/js/translated/order.js:822
+#: templates/js/translated/order.js:987
msgid "No line items found"
msgstr "Keine Positionen gefunden"
-#: templates/js/translated/order.js:849 templates/js/translated/order.js:1466
+#: templates/js/translated/order.js:1014 templates/js/translated/order.js:2138
msgid "Total"
msgstr "Summe"
-#: templates/js/translated/order.js:903 templates/js/translated/order.js:1491
+#: templates/js/translated/order.js:1068 templates/js/translated/order.js:2163
#: templates/js/translated/part.js:1775 templates/js/translated/part.js:1986
msgid "Unit Price"
msgstr "Stück-Preis"
-#: templates/js/translated/order.js:918 templates/js/translated/order.js:1507
+#: templates/js/translated/order.js:1083 templates/js/translated/order.js:2179
msgid "Total Price"
msgstr "Gesamtpreis"
-#: templates/js/translated/order.js:996 templates/js/translated/order.js:1616
+#: templates/js/translated/order.js:1161 templates/js/translated/order.js:2313
msgid "Edit line item"
msgstr "Position bearbeiten"
-#: templates/js/translated/order.js:997
+#: templates/js/translated/order.js:1162 templates/js/translated/order.js:2317
msgid "Delete line item"
msgstr "Position löschen"
-#: templates/js/translated/order.js:1001 templates/js/translated/part.js:878
+#: templates/js/translated/order.js:1166 templates/js/translated/part.js:878
msgid "Receive line item"
msgstr "Position empfangen"
-#: templates/js/translated/order.js:1038
+#: templates/js/translated/order.js:1206
msgid "No sales orders found"
msgstr "Keine Aufträge gefunden"
-#: templates/js/translated/order.js:1076
+#: templates/js/translated/order.js:1244
msgid "Invalid Customer"
msgstr "Ungültiger Kunde"
-#: templates/js/translated/order.js:1154
+#: templates/js/translated/order.js:1322
+msgid "Edit shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1325
+msgid "Complete shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1330
+msgid "Delete shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1350
+msgid "Edit Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1367
+msgid "Delete Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1401
+msgid "No matching shipments found"
+msgstr ""
+
+#: templates/js/translated/order.js:1411
+msgid "Shipment Reference"
+msgstr ""
+
+#: templates/js/translated/order.js:1435
+msgid "Not shipped"
+msgstr ""
+
+#: templates/js/translated/order.js:1441
+msgid "Tracking"
+msgstr ""
+
+#: templates/js/translated/order.js:1601
+msgid "Allocate Stock Items to Sales Order"
+msgstr ""
+
+#: templates/js/translated/order.js:1809
msgid "No sales order allocations found"
msgstr "Keine Allokationen für Verkaufsaufträge gefunden"
-#: templates/js/translated/order.js:1247
+#: templates/js/translated/order.js:1898
msgid "Edit Stock Allocation"
msgstr "Bestandszuordnung bearbeiten"
-#: templates/js/translated/order.js:1264
+#: templates/js/translated/order.js:1915
msgid "Confirm Delete Operation"
msgstr "Löschvorgang bestätigen"
-#: templates/js/translated/order.js:1265
+#: templates/js/translated/order.js:1916
msgid "Delete Stock Allocation"
msgstr "Bestands-Zuordnung löschen"
-#: templates/js/translated/order.js:1307
+#: templates/js/translated/order.js:1959 templates/js/translated/order.js:2048
+#: templates/js/translated/stock.js:1249
+msgid "Shipped to customer"
+msgstr "an Kunde versand"
+
+#: templates/js/translated/order.js:1967 templates/js/translated/order.js:2057
msgid "Stock location not specified"
msgstr "Lagerstandort nicht angegeben"
-#: templates/js/translated/order.js:1556
-msgid "Fulfilled"
-msgstr "Erledigt"
-
-#: templates/js/translated/order.js:1600
+#: templates/js/translated/order.js:2297
msgid "Allocate serial numbers"
msgstr "Seriennummern zuweisen"
-#: templates/js/translated/order.js:1606
+#: templates/js/translated/order.js:2303
msgid "Purchase stock"
msgstr "Bestand kaufen"
-#: templates/js/translated/order.js:1613 templates/js/translated/order.js:1792
+#: templates/js/translated/order.js:2310 templates/js/translated/order.js:2476
msgid "Calculate price"
msgstr "Preis berechnen"
-#: templates/js/translated/order.js:1617
-msgid "Delete line item "
-msgstr "Position löschen "
+#: templates/js/translated/order.js:2321
+msgid "Cannot be deleted as items have been shipped"
+msgstr ""
-#: templates/js/translated/order.js:1740
-msgid "Allocate Stock Item"
-msgstr "Bestand zuweisen"
+#: templates/js/translated/order.js:2324
+msgid "Cannot be deleted as items have been allocated"
+msgstr ""
-#: templates/js/translated/order.js:1800
+#: templates/js/translated/order.js:2382
+msgid "Allocate Serial Numbers"
+msgstr "Seriennummern zuweisen"
+
+#: templates/js/translated/order.js:2484
msgid "Update Unit Price"
msgstr "Stückpreis aktualisieren"
-#: templates/js/translated/order.js:1814
+#: templates/js/translated/order.js:2498
msgid "No matching line items"
msgstr "Keine passenden Positionen gefunden"
@@ -7828,12 +8225,12 @@ msgid "No category"
msgstr "Keine Kategorie"
#: templates/js/translated/part.js:1230
-#: templates/js/translated/table_filters.js:381
+#: templates/js/translated/table_filters.js:412
msgid "Low stock"
msgstr "Bestand niedrig"
#: templates/js/translated/part.js:1321 templates/js/translated/part.js:1493
-#: templates/js/translated/stock.js:1914
+#: templates/js/translated/stock.js:2089
msgid "Display as list"
msgstr "Listenansicht"
@@ -7841,7 +8238,7 @@ msgstr "Listenansicht"
msgid "Display as grid"
msgstr "Rasteransicht"
-#: templates/js/translated/part.js:1512 templates/js/translated/stock.js:1933
+#: templates/js/translated/part.js:1512 templates/js/translated/stock.js:2108
msgid "Display as tree"
msgstr "Baumansicht"
@@ -7849,7 +8246,7 @@ msgstr "Baumansicht"
msgid "Subscribed category"
msgstr "Abonnierte Kategorie"
-#: templates/js/translated/part.js:1590 templates/js/translated/stock.js:1977
+#: templates/js/translated/part.js:1590 templates/js/translated/stock.js:2152
msgid "Path"
msgstr "Pfad"
@@ -7857,11 +8254,11 @@ msgstr "Pfad"
msgid "No test templates matching query"
msgstr "Keine zur Anfrage passenden Testvorlagen"
-#: templates/js/translated/part.js:1685 templates/js/translated/stock.js:898
+#: templates/js/translated/part.js:1685 templates/js/translated/stock.js:1055
msgid "Edit test result"
msgstr "Testergebnis bearbeiten"
-#: templates/js/translated/part.js:1686 templates/js/translated/stock.js:899
+#: templates/js/translated/part.js:1686 templates/js/translated/stock.js:1056
msgid "Delete test result"
msgstr "Testergebnis löschen"
@@ -7900,6 +8297,10 @@ msgstr "Einzelpreis"
msgid "Single Price Difference"
msgstr "Einzelpreisdifferenz"
+#: templates/js/translated/plugin.js:22
+msgid "The Plugin was installed"
+msgstr ""
+
#: templates/js/translated/report.js:67
msgid "items selected"
msgstr "Lagerartikel ausgewählt"
@@ -7966,300 +8367,316 @@ msgstr "Aufträge auswählen"
msgid "Sales Order(s) must be selected before printing report"
msgstr "Auftrag muss vor dem Berichtsdruck ausgewählt werden"
-#: templates/js/translated/stock.js:71
+#: templates/js/translated/stock.js:72
msgid "Serialize Stock Item"
msgstr "Lagerartikel serialisieren"
-#: templates/js/translated/stock.js:89 templates/js/translated/stock.js:168
+#: templates/js/translated/stock.js:90 templates/js/translated/stock.js:172
msgid "Next available serial number"
msgstr "Nächste verfügbare Seriennummer"
-#: templates/js/translated/stock.js:91 templates/js/translated/stock.js:170
+#: templates/js/translated/stock.js:92 templates/js/translated/stock.js:174
msgid "Latest serial number"
msgstr "Letzte Seriennummer"
-#: templates/js/translated/stock.js:105
+#: templates/js/translated/stock.js:100
+msgid "Confirm Stock Serialization"
+msgstr "Lager-Serialisierung bestätigen"
+
+#: templates/js/translated/stock.js:109
msgid "Parent stock location"
msgstr "Übergeordneter Lagerort"
-#: templates/js/translated/stock.js:141
+#: templates/js/translated/stock.js:145
msgid "New Stock Location"
msgstr "Neuer Lagerstandort"
-#: templates/js/translated/stock.js:181
+#: templates/js/translated/stock.js:185
msgid "This part cannot be serialized"
msgstr "Dieser Teil kann nicht serialisiert werden"
-#: templates/js/translated/stock.js:220
+#: templates/js/translated/stock.js:224
msgid "Enter initial quantity for this stock item"
msgstr "Ausgangsmenge für diesen Lagerartikel eingeben"
-#: templates/js/translated/stock.js:226
+#: templates/js/translated/stock.js:230
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr "Seriennummern für neue Lagerartikel eingeben (oder leer lassen)"
-#: templates/js/translated/stock.js:369
+#: templates/js/translated/stock.js:373
msgid "Created new stock item"
msgstr "Neuer Lagerartikel erstellt"
-#: templates/js/translated/stock.js:382
+#: templates/js/translated/stock.js:386
msgid "Created multiple stock items"
msgstr "Mehrere Lagerartikel erstellt"
-#: templates/js/translated/stock.js:407
+#: templates/js/translated/stock.js:411
msgid "Find Serial Number"
msgstr "Seriennummer finden"
-#: templates/js/translated/stock.js:411 templates/js/translated/stock.js:412
+#: templates/js/translated/stock.js:415 templates/js/translated/stock.js:416
msgid "Enter serial number"
msgstr "Seriennummer eingeben"
-#: templates/js/translated/stock.js:428
+#: templates/js/translated/stock.js:432
msgid "Enter a serial number"
msgstr "Eine Seriennummer eingeben"
-#: templates/js/translated/stock.js:448
+#: templates/js/translated/stock.js:452
msgid "No matching serial number"
msgstr "Keine passende Seriennummer"
-#: templates/js/translated/stock.js:457
+#: templates/js/translated/stock.js:461
msgid "More than one matching result found"
msgstr "Mehrere Ergebnisse gefunden"
-#: templates/js/translated/stock.js:502
+#: templates/js/translated/stock.js:506
msgid "Export Stock"
msgstr "Bestand exportieren"
-#: templates/js/translated/stock.js:513
+#: templates/js/translated/stock.js:517
msgid "Include Sublocations"
msgstr "Einschließlich Unterstandorte"
-#: templates/js/translated/stock.js:514
+#: templates/js/translated/stock.js:518
msgid "Include stock items in sublocations"
msgstr "Lagerartikel in untergeordneten Lagerorten einschließen"
-#: templates/js/translated/stock.js:556
+#: templates/js/translated/stock.js:627
+msgid "Confirm stock assignment"
+msgstr ""
+
+#: templates/js/translated/stock.js:628
+msgid "Assign Stock to Customer"
+msgstr ""
+
+#: templates/js/translated/stock.js:713
msgid "Transfer Stock"
msgstr "Bestand verschieben"
-#: templates/js/translated/stock.js:557
+#: templates/js/translated/stock.js:714
msgid "Move"
msgstr "Verschieben"
-#: templates/js/translated/stock.js:563
+#: templates/js/translated/stock.js:720
msgid "Count Stock"
msgstr "Bestand zählen"
-#: templates/js/translated/stock.js:564
+#: templates/js/translated/stock.js:721
msgid "Count"
msgstr "Anzahl"
-#: templates/js/translated/stock.js:568
+#: templates/js/translated/stock.js:725
msgid "Remove Stock"
msgstr "Bestand entfernen"
-#: templates/js/translated/stock.js:569
+#: templates/js/translated/stock.js:726
msgid "Take"
msgstr "Entfernen"
-#: templates/js/translated/stock.js:573
+#: templates/js/translated/stock.js:730
msgid "Add Stock"
msgstr "Bestand hinzufügen"
-#: templates/js/translated/stock.js:574 users/models.py:200
+#: templates/js/translated/stock.js:731 users/models.py:202
msgid "Add"
msgstr "Hinzufügen"
-#: templates/js/translated/stock.js:578 templates/stock_table.html:56
+#: templates/js/translated/stock.js:735 templates/stock_table.html:57
msgid "Delete Stock"
msgstr "Bestand löschen"
-#: templates/js/translated/stock.js:667
+#: templates/js/translated/stock.js:824
msgid "Quantity cannot be adjusted for serialized stock"
msgstr "Menge von serialisiertem Bestand kann nicht bearbeitet werden"
-#: templates/js/translated/stock.js:667
+#: templates/js/translated/stock.js:824
msgid "Specify stock quantity"
msgstr "Bestandsanzahl angeben"
-#: templates/js/translated/stock.js:707
+#: templates/js/translated/stock.js:864
msgid "You must select at least one available stock item"
msgstr "Sie müssen mindestens einen Lagerartikel auswählen"
-#: templates/js/translated/stock.js:865
+#: templates/js/translated/stock.js:1022
msgid "PASS"
msgstr "ERFOLGREICH"
-#: templates/js/translated/stock.js:867
+#: templates/js/translated/stock.js:1024
msgid "FAIL"
msgstr "FEHLGESCHLAGEN"
-#: templates/js/translated/stock.js:872
+#: templates/js/translated/stock.js:1029
msgid "NO RESULT"
msgstr "KEIN ERGEBNIS"
-#: templates/js/translated/stock.js:894
+#: templates/js/translated/stock.js:1051
msgid "Add test result"
msgstr "Testergebnis hinzufügen"
-#: templates/js/translated/stock.js:920
+#: templates/js/translated/stock.js:1077
msgid "No test results found"
msgstr "Keine Testergebnisse gefunden"
-#: templates/js/translated/stock.js:977
+#: templates/js/translated/stock.js:1134
msgid "Test Date"
msgstr "Testdatum"
-#: templates/js/translated/stock.js:1084
+#: templates/js/translated/stock.js:1241
msgid "In production"
msgstr "In Arbeit"
-#: templates/js/translated/stock.js:1088
+#: templates/js/translated/stock.js:1245
msgid "Installed in Stock Item"
msgstr "In Lagerartikel installiert"
-#: templates/js/translated/stock.js:1092
-msgid "Shipped to customer"
-msgstr "an Kunde versand"
-
-#: templates/js/translated/stock.js:1096
+#: templates/js/translated/stock.js:1253
msgid "Assigned to Sales Order"
msgstr "Auftrag zugewiesen"
-#: templates/js/translated/stock.js:1102
+#: templates/js/translated/stock.js:1259
msgid "No stock location set"
msgstr "Kein Lagerort gesetzt"
-#: templates/js/translated/stock.js:1260
+#: templates/js/translated/stock.js:1417
msgid "Stock item is in production"
msgstr "Lagerartikel wird produziert"
-#: templates/js/translated/stock.js:1265
+#: templates/js/translated/stock.js:1422
msgid "Stock item assigned to sales order"
msgstr "Lagerartikel wurde Auftrag zugewiesen"
-#: templates/js/translated/stock.js:1268
+#: templates/js/translated/stock.js:1425
msgid "Stock item assigned to customer"
msgstr "Lagerartikel wurde Kunden zugewiesen"
-#: templates/js/translated/stock.js:1272
+#: templates/js/translated/stock.js:1429
msgid "Stock item has expired"
msgstr "Lagerartikel ist abgelaufen"
-#: templates/js/translated/stock.js:1274
+#: templates/js/translated/stock.js:1431
msgid "Stock item will expire soon"
msgstr "Lagerartikel läuft demnächst ab"
-#: templates/js/translated/stock.js:1278
-msgid "Stock item has been allocated"
-msgstr "Lagerartikel zugewiesen"
+#: templates/js/translated/stock.js:1437
+msgid "Serialized stock item has been allocated"
+msgstr "Serialisierter Lagerartikel wurde zugewiesen"
-#: templates/js/translated/stock.js:1282
+#: templates/js/translated/stock.js:1439
+msgid "Stock item has been fully allocated"
+msgstr "Lagerartikel wurde vollständig zugewiesen"
+
+#: templates/js/translated/stock.js:1441
+msgid "Stock item has been partially allocated"
+msgstr "Lagerartikel wurde teilweise zugewiesen"
+
+#: templates/js/translated/stock.js:1446
msgid "Stock item has been installed in another item"
msgstr "Lagerartikel in anderem Element verbaut"
-#: templates/js/translated/stock.js:1289
+#: templates/js/translated/stock.js:1453
msgid "Stock item has been rejected"
msgstr "Lagerartikel abgewiesen"
-#: templates/js/translated/stock.js:1291
+#: templates/js/translated/stock.js:1455
msgid "Stock item is lost"
msgstr "Lagerartikel verloren"
-#: templates/js/translated/stock.js:1293
+#: templates/js/translated/stock.js:1457
msgid "Stock item is destroyed"
msgstr "Lagerartikel zerstört"
-#: templates/js/translated/stock.js:1297
-#: templates/js/translated/table_filters.js:183
+#: templates/js/translated/stock.js:1461
+#: templates/js/translated/table_filters.js:188
msgid "Depleted"
msgstr "gelöscht"
-#: templates/js/translated/stock.js:1347
+#: templates/js/translated/stock.js:1511
msgid "Stocktake"
msgstr "Inventur"
-#: templates/js/translated/stock.js:1420
+#: templates/js/translated/stock.js:1584
msgid "Supplier part not specified"
msgstr "Zuliefererteil nicht angegeben"
-#: templates/js/translated/stock.js:1458
+#: templates/js/translated/stock.js:1622
msgid "No stock items matching query"
msgstr "Keine zur Anfrage passenden Lagerartikel"
-#: templates/js/translated/stock.js:1479 templates/js/translated/stock.js:1527
+#: templates/js/translated/stock.js:1643 templates/js/translated/stock.js:1691
msgid "items"
msgstr "Teile"
-#: templates/js/translated/stock.js:1567
+#: templates/js/translated/stock.js:1731
msgid "batches"
msgstr "lose"
-#: templates/js/translated/stock.js:1594
+#: templates/js/translated/stock.js:1758
msgid "locations"
msgstr "Lagerorte"
-#: templates/js/translated/stock.js:1596
+#: templates/js/translated/stock.js:1760
msgid "Undefined location"
msgstr "unbekannter Lagerort"
-#: templates/js/translated/stock.js:1770
+#: templates/js/translated/stock.js:1945
msgid "Set Stock Status"
msgstr "Status setzen"
-#: templates/js/translated/stock.js:1784
+#: templates/js/translated/stock.js:1959
msgid "Select Status Code"
msgstr "Status Code setzen"
-#: templates/js/translated/stock.js:1785
+#: templates/js/translated/stock.js:1960
msgid "Status code must be selected"
msgstr "Status Code muss ausgewählt werden"
-#: templates/js/translated/stock.js:2009
+#: templates/js/translated/stock.js:2184
msgid "Invalid date"
msgstr "Ungültiges Datum"
-#: templates/js/translated/stock.js:2031
+#: templates/js/translated/stock.js:2206
msgid "Details"
msgstr "Details"
-#: templates/js/translated/stock.js:2056
+#: templates/js/translated/stock.js:2231
msgid "Location no longer exists"
msgstr "Standort nicht mehr vorhanden"
-#: templates/js/translated/stock.js:2075
+#: templates/js/translated/stock.js:2250
msgid "Purchase order no longer exists"
msgstr "Bestellung existiert nicht mehr"
-#: templates/js/translated/stock.js:2094
+#: templates/js/translated/stock.js:2269
msgid "Customer no longer exists"
msgstr "Kunde existiert nicht mehr"
-#: templates/js/translated/stock.js:2112
+#: templates/js/translated/stock.js:2287
msgid "Stock item no longer exists"
msgstr "Lagerartikel existiert nicht mehr"
-#: templates/js/translated/stock.js:2135
+#: templates/js/translated/stock.js:2310
msgid "Added"
msgstr "Hinzugefügt"
-#: templates/js/translated/stock.js:2143
+#: templates/js/translated/stock.js:2318
msgid "Removed"
msgstr "Entfernt"
-#: templates/js/translated/stock.js:2184
+#: templates/js/translated/stock.js:2359
msgid "Edit tracking entry"
msgstr "Tracking-Eintrag bearbeiten"
-#: templates/js/translated/stock.js:2185
+#: templates/js/translated/stock.js:2360
msgid "Delete tracking entry"
msgstr "Tracking-Eintrag löschen"
-#: templates/js/translated/stock.js:2236
+#: templates/js/translated/stock.js:2411
msgid "No installed items"
msgstr "Keine installierten Elemente"
-#: templates/js/translated/stock.js:2287
+#: templates/js/translated/stock.js:2462
msgid "Uninstall Stock Item"
msgstr "Lagerartikel entfernen"
@@ -8280,7 +8697,7 @@ msgid "Allow Variant Stock"
msgstr "Bestand an Varianten zulassen"
#: templates/js/translated/table_filters.js:110
-#: templates/js/translated/table_filters.js:178
+#: templates/js/translated/table_filters.js:183
msgid "Include sublocations"
msgstr "Unter-Lagerorte einschließen"
@@ -8290,54 +8707,54 @@ msgstr "Lagerorte einschließen"
#: templates/js/translated/table_filters.js:121
#: templates/js/translated/table_filters.js:122
-#: templates/js/translated/table_filters.js:358
+#: templates/js/translated/table_filters.js:389
msgid "Include subcategories"
msgstr "Unterkategorien einschließen"
#: templates/js/translated/table_filters.js:126
-#: templates/js/translated/table_filters.js:393
+#: templates/js/translated/table_filters.js:424
msgid "Subscribed"
msgstr "Abonniert"
#: templates/js/translated/table_filters.js:136
-#: templates/js/translated/table_filters.js:213
+#: templates/js/translated/table_filters.js:218
msgid "Is Serialized"
msgstr "Hat Seriennummer"
#: templates/js/translated/table_filters.js:139
-#: templates/js/translated/table_filters.js:220
+#: templates/js/translated/table_filters.js:225
msgid "Serial number GTE"
msgstr "Seriennummer >="
#: templates/js/translated/table_filters.js:140
-#: templates/js/translated/table_filters.js:221
+#: templates/js/translated/table_filters.js:226
msgid "Serial number greater than or equal to"
msgstr "Seriennummer größer oder gleich"
#: templates/js/translated/table_filters.js:143
-#: templates/js/translated/table_filters.js:224
+#: templates/js/translated/table_filters.js:229
msgid "Serial number LTE"
msgstr "Seriennummer <="
#: templates/js/translated/table_filters.js:144
-#: templates/js/translated/table_filters.js:225
+#: templates/js/translated/table_filters.js:230
msgid "Serial number less than or equal to"
msgstr "Seriennummern kleiner oder gleich"
#: templates/js/translated/table_filters.js:147
#: templates/js/translated/table_filters.js:148
-#: templates/js/translated/table_filters.js:216
-#: templates/js/translated/table_filters.js:217
+#: templates/js/translated/table_filters.js:221
+#: templates/js/translated/table_filters.js:222
msgid "Serial number"
msgstr "Seriennummer"
#: templates/js/translated/table_filters.js:152
-#: templates/js/translated/table_filters.js:234
+#: templates/js/translated/table_filters.js:239
msgid "Batch code"
msgstr "Losnummer"
#: templates/js/translated/table_filters.js:163
-#: templates/js/translated/table_filters.js:348
+#: templates/js/translated/table_filters.js:379
msgid "Active parts"
msgstr "Aktive Teile"
@@ -8358,101 +8775,111 @@ msgid "Item has been allocated"
msgstr "Teil wurde zugeordnet"
#: templates/js/translated/table_filters.js:179
+msgid "Stock is available for use"
+msgstr "Lagerartikel ist zur Verwendung verfügbar"
+
+#: templates/js/translated/table_filters.js:184
msgid "Include stock in sublocations"
msgstr "Bestand in Unter-Lagerorten einschließen"
-#: templates/js/translated/table_filters.js:184
+#: templates/js/translated/table_filters.js:189
msgid "Show stock items which are depleted"
msgstr "Zeige aufgebrauchte Lagerartikel"
-#: templates/js/translated/table_filters.js:189
+#: templates/js/translated/table_filters.js:194
msgid "Show items which are in stock"
msgstr "Zeige Objekte welche im Lager sind"
-#: templates/js/translated/table_filters.js:193
+#: templates/js/translated/table_filters.js:198
msgid "In Production"
msgstr "In Arbeit"
-#: templates/js/translated/table_filters.js:194
+#: templates/js/translated/table_filters.js:199
msgid "Show items which are in production"
msgstr "Elemente, die in Produktion sind, anzeigen"
-#: templates/js/translated/table_filters.js:198
+#: templates/js/translated/table_filters.js:203
msgid "Include Variants"
msgstr "Varianten einschließen"
-#: templates/js/translated/table_filters.js:199
+#: templates/js/translated/table_filters.js:204
msgid "Include stock items for variant parts"
msgstr "Lagerartikel für Teil-Varianten einschließen"
-#: templates/js/translated/table_filters.js:203
+#: templates/js/translated/table_filters.js:208
msgid "Installed"
msgstr "Installiert"
-#: templates/js/translated/table_filters.js:204
+#: templates/js/translated/table_filters.js:209
msgid "Show stock items which are installed in another item"
msgstr "Lagerartikel, die in anderen Elementen verbaut sind, anzeigen"
-#: templates/js/translated/table_filters.js:209
+#: templates/js/translated/table_filters.js:214
msgid "Show items which have been assigned to a customer"
msgstr "zeige zu Kunden zugeordnete Einträge"
-#: templates/js/translated/table_filters.js:229
-#: templates/js/translated/table_filters.js:230
+#: templates/js/translated/table_filters.js:234
+#: templates/js/translated/table_filters.js:235
msgid "Stock status"
msgstr "Status"
-#: templates/js/translated/table_filters.js:238
+#: templates/js/translated/table_filters.js:243
msgid "Has purchase price"
msgstr "Hat Einkaufspreis"
-#: templates/js/translated/table_filters.js:239
+#: templates/js/translated/table_filters.js:244
msgid "Show stock items which have a purchase price set"
msgstr "Bestand mit Einkaufspreis anzeigen"
-#: templates/js/translated/table_filters.js:248
+#: templates/js/translated/table_filters.js:253
msgid "Show stock items which have expired"
msgstr "Zeige abgelaufene Lagerartikel"
-#: templates/js/translated/table_filters.js:254
+#: templates/js/translated/table_filters.js:259
msgid "Show stock which is close to expiring"
msgstr "Bestand, der bald ablaufen, anzeigen"
-#: templates/js/translated/table_filters.js:285
+#: templates/js/translated/table_filters.js:290
msgid "Build status"
msgstr "Bauauftrags-Status"
-#: templates/js/translated/table_filters.js:313
-#: templates/js/translated/table_filters.js:330
+#: templates/js/translated/table_filters.js:303
+#: templates/js/translated/table_filters.js:344
+msgid "Assigned to me"
+msgstr "Mir zugewiesen"
+
+#: templates/js/translated/table_filters.js:320
+#: templates/js/translated/table_filters.js:331
+#: templates/js/translated/table_filters.js:352
msgid "Order status"
msgstr "Bestellstatus"
-#: templates/js/translated/table_filters.js:318
-#: templates/js/translated/table_filters.js:335
+#: templates/js/translated/table_filters.js:336
+#: templates/js/translated/table_filters.js:357
msgid "Outstanding"
msgstr "ausstehend"
-#: templates/js/translated/table_filters.js:359
+#: templates/js/translated/table_filters.js:390
msgid "Include parts in subcategories"
msgstr "Teile in Unterkategorien einschließen"
-#: templates/js/translated/table_filters.js:363
+#: templates/js/translated/table_filters.js:394
msgid "Has IPN"
msgstr "Hat IPN"
-#: templates/js/translated/table_filters.js:364
+#: templates/js/translated/table_filters.js:395
msgid "Part has internal part number"
msgstr "Teil hat Interne Teilenummer"
-#: templates/js/translated/table_filters.js:369
+#: templates/js/translated/table_filters.js:400
msgid "Show active parts"
msgstr "Aktive Teile anzeigen"
-#: templates/js/translated/table_filters.js:377
+#: templates/js/translated/table_filters.js:408
msgid "Stock available"
msgstr "verfügbarer Bestand"
-#: templates/js/translated/table_filters.js:405
+#: templates/js/translated/table_filters.js:436
msgid "Purchasable"
msgstr "Käuflich"
@@ -8509,27 +8936,23 @@ msgstr "Spalten"
msgid "All"
msgstr "Alle"
-#: templates/navbar.html:40
+#: templates/navbar.html:42
msgid "Buy"
msgstr "Kaufen"
-#: templates/navbar.html:52
+#: templates/navbar.html:54
msgid "Sell"
msgstr "Verkaufen"
-#: templates/navbar.html:86 users/models.py:39
-msgid "Admin"
-msgstr "Admin"
-
-#: templates/navbar.html:88
+#: templates/navbar.html:113
msgid "Logout"
msgstr "Ausloggen"
-#: templates/navbar.html:90
+#: templates/navbar.html:115
msgid "Login"
msgstr "Einloggen"
-#: templates/navbar.html:111
+#: templates/navbar.html:136
msgid "About InvenTree"
msgstr "Über InvenTree"
@@ -8641,15 +9064,15 @@ msgstr "Bestand verschieben"
msgid "Order selected items"
msgstr "Ausgewählte Positionen bestellen"
-#: templates/stock_table.html:53
+#: templates/stock_table.html:54
msgid "Change status"
msgstr "Status ändern"
-#: templates/stock_table.html:53
+#: templates/stock_table.html:54
msgid "Change stock status"
msgstr "Status ändern"
-#: templates/stock_table.html:56
+#: templates/stock_table.html:57
msgid "Delete selected items"
msgstr "Ausgewählte Positionen löschen"
@@ -8685,35 +9108,35 @@ msgstr "Berechtigungen"
msgid "Important dates"
msgstr "wichtige Daten"
-#: users/models.py:187
+#: users/models.py:189
msgid "Permission set"
msgstr "Berechtigung geändert"
-#: users/models.py:195
+#: users/models.py:197
msgid "Group"
msgstr "Gruppe"
-#: users/models.py:198
+#: users/models.py:200
msgid "View"
msgstr "Ansicht"
-#: users/models.py:198
+#: users/models.py:200
msgid "Permission to view items"
msgstr "Berechtigung Einträge anzuzeigen"
-#: users/models.py:200
+#: users/models.py:202
msgid "Permission to add items"
msgstr "Berechtigung Einträge zu erstellen"
-#: users/models.py:202
+#: users/models.py:204
msgid "Change"
msgstr "Ändern"
-#: users/models.py:202
+#: users/models.py:204
msgid "Permissions to edit items"
msgstr "Berechtigungen Einträge zu ändern"
-#: users/models.py:204
+#: users/models.py:206
msgid "Permission to delete items"
msgstr "Berechtigung Einträge zu löschen"
diff --git a/InvenTree/locale/el/LC_MESSAGES/django.po b/InvenTree/locale/el/LC_MESSAGES/django.po
index 3b6d4f01a4..8882c2081b 100644
--- a/InvenTree/locale/el/LC_MESSAGES/django.po
+++ b/InvenTree/locale/el/LC_MESSAGES/django.po
@@ -1,9 +1,10 @@
+#: templates/js/translated/order.js:1973
msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-12-03 10:37+0000\n"
-"PO-Revision-Date: 2021-12-03 11:26\n"
+"POT-Creation-Date: 2021-12-08 23:43+0000\n"
+"PO-Revision-Date: 2021-12-08 23:46\n"
"Last-Translator: \n"
"Language-Team: Greek\n"
"Language: el_GR\n"
@@ -34,8 +35,8 @@ msgid "Enter date"
msgstr ""
#: InvenTree/forms.py:120 build/forms.py:48 build/forms.py:69 build/forms.py:93
-#: order/forms.py:26 order/forms.py:37 order/forms.py:48 order/forms.py:59
-#: order/forms.py:70 part/forms.py:108 templates/account/email_confirm.html:20
+#: order/forms.py:24 order/forms.py:35 order/forms.py:46 order/forms.py:57
+#: part/forms.py:108 templates/account/email_confirm.html:20
#: templates/js/translated/forms.js:595
msgid "Confirm"
msgstr ""
@@ -85,8 +86,8 @@ msgstr ""
msgid "Duplicate serial: {n}"
msgstr ""
-#: InvenTree/helpers.py:437 order/models.py:318 order/models.py:440
-#: stock/views.py:1264
+#: InvenTree/helpers.py:437 order/models.py:279 order/models.py:420
+#: stock/views.py:1231
msgid "Invalid quantity provided"
msgstr ""
@@ -122,7 +123,7 @@ msgstr ""
msgid "Missing external link"
msgstr ""
-#: InvenTree/models.py:132 stock/models.py:1864
+#: InvenTree/models.py:132 stock/models.py:1852
#: templates/js/translated/attachment.js:117
msgid "Attachment"
msgstr ""
@@ -132,7 +133,7 @@ msgid "Select file to attach"
msgstr ""
#: InvenTree/models.py:139 company/models.py:131 company/models.py:348
-#: company/models.py:564 order/models.py:163 part/models.py:797
+#: company/models.py:564 order/models.py:124 part/models.py:797
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:537
#: templates/js/translated/company.js:826 templates/js/translated/part.js:1258
@@ -140,7 +141,7 @@ msgid "Link"
msgstr ""
#: InvenTree/models.py:140 build/models.py:330 part/models.py:798
-#: stock/models.py:530
+#: stock/models.py:524
msgid "Link to external URL"
msgstr ""
@@ -152,10 +153,10 @@ msgstr ""
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1185
-#: common/models.py:1186 part/models.py:2205 part/models.py:2225
+#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1213
+#: common/models.py:1214 part/models.py:2205 part/models.py:2225
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2166
+#: templates/js/translated/stock.js:2341
msgid "User"
msgstr ""
@@ -194,10 +195,15 @@ msgstr ""
#: InvenTree/models.py:277 InvenTree/models.py:278 company/models.py:415
#: label/models.py:112 part/models.py:741 part/models.py:2389
-#: report/models.py:181 templates/InvenTree/settings/settings.html:259
+#: plugin/models.py:39 report/models.py:181
+#: templates/InvenTree/settings/mixins/urls.html:11
+#: templates/InvenTree/settings/plugin.html:47
+#: templates/InvenTree/settings/plugin.html:124
+#: templates/InvenTree/settings/plugin_settings.html:23
+#: templates/InvenTree/settings/settings.html:268
#: templates/js/translated/company.js:638 templates/js/translated/part.js:506
#: templates/js/translated/part.js:643 templates/js/translated/part.js:1565
-#: templates/js/translated/stock.js:1959
+#: templates/js/translated/stock.js:2134
msgid "Name"
msgstr ""
@@ -206,22 +212,23 @@ msgstr ""
#: company/models.py:570 company/templates/company/company_base.html:68
#: company/templates/company/manufacturer_part.html:76
#: company/templates/company/supplier_part.html:73 label/models.py:119
-#: order/models.py:161 part/models.py:764 part/templates/part/category.html:70
+#: order/models.py:122 part/models.py:764 part/templates/part/category.html:70
#: part/templates/part/part_base.html:163
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:553 report/models.py:592
#: report/templates/report/inventree_build_order_base.html:118
-#: stock/templates/stock/location.html:89 templates/js/translated/bom.js:215
-#: templates/js/translated/bom.js:428 templates/js/translated/build.js:1621
-#: templates/js/translated/company.js:345
+#: stock/templates/stock/location.html:89
+#: templates/InvenTree/settings/plugin_settings.html:33
+#: templates/js/translated/bom.js:215 templates/js/translated/bom.js:428
+#: templates/js/translated/build.js:1627 templates/js/translated/company.js:345
#: templates/js/translated/company.js:548
-#: templates/js/translated/company.js:837 templates/js/translated/order.js:680
-#: templates/js/translated/order.js:854 templates/js/translated/order.js:1090
+#: templates/js/translated/company.js:837 templates/js/translated/order.js:836
+#: templates/js/translated/order.js:1019 templates/js/translated/order.js:1258
#: templates/js/translated/part.js:565 templates/js/translated/part.js:933
#: templates/js/translated/part.js:1018 templates/js/translated/part.js:1188
#: templates/js/translated/part.js:1584 templates/js/translated/part.js:1653
-#: templates/js/translated/stock.js:1233 templates/js/translated/stock.js:1971
-#: templates/js/translated/stock.js:2016
+#: templates/js/translated/stock.js:1390 templates/js/translated/stock.js:2146
+#: templates/js/translated/stock.js:2191
msgid "Description"
msgstr ""
@@ -241,83 +248,83 @@ msgstr ""
msgid "Filename"
msgstr ""
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:689
msgid "German"
msgstr ""
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:690
msgid "Greek"
msgstr ""
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:691
msgid "English"
msgstr ""
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:692
msgid "Spanish"
msgstr ""
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:693
msgid "Spanish (Mexican)"
msgstr ""
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:694
msgid "French"
msgstr ""
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:695
msgid "Hebrew"
msgstr ""
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:696
msgid "Italian"
msgstr ""
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:697
msgid "Japanese"
msgstr ""
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:698
msgid "Korean"
msgstr ""
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:699
msgid "Dutch"
msgstr ""
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:700
msgid "Norwegian"
msgstr ""
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:701
msgid "Polish"
msgstr ""
-#: InvenTree/settings.py:683
+#: InvenTree/settings.py:702
msgid "Portugese"
msgstr ""
-#: InvenTree/settings.py:684
+#: InvenTree/settings.py:703
msgid "Russian"
msgstr ""
-#: InvenTree/settings.py:685
+#: InvenTree/settings.py:704
msgid "Swedish"
msgstr ""
-#: InvenTree/settings.py:686
+#: InvenTree/settings.py:705
msgid "Thai"
msgstr ""
-#: InvenTree/settings.py:687
+#: InvenTree/settings.py:706
msgid "Turkish"
msgstr ""
-#: InvenTree/settings.py:688
+#: InvenTree/settings.py:707
msgid "Vietnamese"
msgstr ""
-#: InvenTree/settings.py:689
+#: InvenTree/settings.py:708
msgid "Chinese"
msgstr ""
@@ -334,7 +341,7 @@ msgid "InvenTree system health checks failed"
msgstr ""
#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142
-#: InvenTree/status_codes.py:311
+#: InvenTree/status_codes.py:311 templates/js/translated/table_filters.js:313
msgid "Pending"
msgstr ""
@@ -343,6 +350,8 @@ msgid "Placed"
msgstr ""
#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:314
+#: order/templates/order/order_base.html:128
+#: order/templates/order/sales_order_base.html:132
msgid "Complete"
msgstr ""
@@ -361,8 +370,8 @@ msgstr ""
msgid "Returned"
msgstr ""
-#: InvenTree/status_codes.py:143
-#: order/templates/order/sales_order_base.html:148
+#: InvenTree/status_codes.py:143 order/models.py:939
+#: templates/js/translated/order.js:1980 templates/js/translated/order.js:2255
msgid "Shipped"
msgstr ""
@@ -442,7 +451,7 @@ msgstr ""
msgid "Split child item"
msgstr ""
-#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:208
+#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:213
msgid "Sent to customer"
msgstr ""
@@ -522,55 +531,55 @@ msgstr ""
msgid "Password fields must match"
msgstr ""
-#: InvenTree/views.py:883 templates/navbar.html:101
+#: InvenTree/views.py:883 templates/navbar.html:126
msgid "System Information"
msgstr ""
-#: barcodes/api.py:53 barcodes/api.py:150
+#: barcodes/api.py:54 barcodes/api.py:151
msgid "Must provide barcode_data parameter"
msgstr ""
-#: barcodes/api.py:126
+#: barcodes/api.py:127
msgid "No match found for barcode data"
msgstr ""
-#: barcodes/api.py:128
+#: barcodes/api.py:129
msgid "Match found for barcode data"
msgstr ""
-#: barcodes/api.py:153
+#: barcodes/api.py:154
msgid "Must provide stockitem parameter"
msgstr ""
-#: barcodes/api.py:160
+#: barcodes/api.py:161
msgid "No matching stock item found"
msgstr ""
-#: barcodes/api.py:190
-msgid "Barcode already matches StockItem object"
+#: barcodes/api.py:191
+msgid "Barcode already matches Stock Item"
msgstr ""
-#: barcodes/api.py:194
-msgid "Barcode already matches StockLocation object"
+#: barcodes/api.py:195
+msgid "Barcode already matches Stock Location"
msgstr ""
-#: barcodes/api.py:198
-msgid "Barcode already matches Part object"
+#: barcodes/api.py:199
+msgid "Barcode already matches Part"
msgstr ""
-#: barcodes/api.py:204 barcodes/api.py:216
-msgid "Barcode hash already matches StockItem object"
+#: barcodes/api.py:205 barcodes/api.py:217
+msgid "Barcode hash already matches Stock Item"
msgstr ""
-#: barcodes/api.py:222
-msgid "Barcode associated with StockItem"
+#: barcodes/api.py:223
+msgid "Barcode associated with Stock Item"
msgstr ""
#: build/forms.py:36 build/models.py:1283
#: build/templates/build/build_base.html:132
-#: build/templates/build/detail.html:35 common/models.py:1225
+#: build/templates/build/detail.html:35 common/models.py:1253
#: company/forms.py:42 company/templates/company/supplier_part.html:251
-#: order/forms.py:102 order/models.py:729 order/models.py:991
+#: order/models.py:794 order/models.py:1205 order/serializers.py:810
#: order/templates/order/order_wizard/match_parts.html:30
#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:223
#: part/forms.py:239 part/forms.py:255 part/models.py:2576
@@ -582,20 +591,23 @@ msgstr ""
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:81
#: report/templates/report/inventree_test_report_base.html:139
-#: stock/forms.py:156 stock/serializers.py:291
+#: stock/forms.py:142 stock/serializers.py:293
#: stock/templates/stock/item_base.html:174
+#: stock/templates/stock/item_base.html:255
+#: stock/templates/stock/item_base.html:263
#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443
-#: templates/js/translated/build.js:235 templates/js/translated/build.js:435
-#: templates/js/translated/build.js:629 templates/js/translated/build.js:639
-#: templates/js/translated/build.js:1015 templates/js/translated/build.js:1362
+#: templates/js/translated/build.js:240 templates/js/translated/build.js:440
+#: templates/js/translated/build.js:634 templates/js/translated/build.js:644
+#: templates/js/translated/build.js:1020 templates/js/translated/build.js:1367
#: templates/js/translated/model_renderers.js:99
-#: templates/js/translated/order.js:891 templates/js/translated/order.js:1204
-#: templates/js/translated/order.js:1282 templates/js/translated/order.js:1289
-#: templates/js/translated/order.js:1378 templates/js/translated/order.js:1478
-#: templates/js/translated/part.js:843 templates/js/translated/part.js:1796
-#: templates/js/translated/part.js:1919 templates/js/translated/part.js:1997
-#: templates/js/translated/stock.js:378 templates/js/translated/stock.js:2151
-#: templates/js/translated/stock.js:2253
+#: templates/js/translated/order.js:101 templates/js/translated/order.js:1056
+#: templates/js/translated/order.js:1578 templates/js/translated/order.js:1859
+#: templates/js/translated/order.js:1947 templates/js/translated/order.js:2036
+#: templates/js/translated/order.js:2150 templates/js/translated/part.js:843
+#: templates/js/translated/part.js:1796 templates/js/translated/part.js:1919
+#: templates/js/translated/part.js:1997 templates/js/translated/stock.js:382
+#: templates/js/translated/stock.js:579 templates/js/translated/stock.js:2326
+#: templates/js/translated/stock.js:2428
msgid "Quantity"
msgstr ""
@@ -603,9 +615,9 @@ msgstr ""
msgid "Enter quantity for build output"
msgstr ""
-#: build/forms.py:41 order/forms.py:96 stock/forms.py:95
-#: stock/serializers.py:312 templates/js/translated/stock.js:225
-#: templates/js/translated/stock.js:379
+#: build/forms.py:41 order/serializers.py:814 stock/forms.py:81
+#: stock/serializers.py:314 templates/js/translated/stock.js:229
+#: templates/js/translated/stock.js:383
msgid "Serial Numbers"
msgstr ""
@@ -640,17 +652,17 @@ msgstr ""
#: build/models.py:137 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:397
+#: templates/js/translated/build.js:402
msgid "Build Order"
msgstr ""
#: build/models.py:138 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
-#: order/templates/order/sales_order_detail.html:42
-#: order/templates/order/so_sidebar.html:7
+#: order/templates/order/sales_order_detail.html:92
+#: order/templates/order/so_sidebar.html:13
#: part/templates/part/part_sidebar.html:20 templates/InvenTree/index.html:221
#: templates/InvenTree/search.html:145
-#: templates/InvenTree/settings/sidebar.html:42 users/models.py:44
+#: templates/InvenTree/settings/sidebar.html:43 users/models.py:44
msgid "Build Orders"
msgstr ""
@@ -658,13 +670,13 @@ msgstr ""
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:199 order/models.py:249 order/models.py:556
-#: order/models.py:736 part/models.py:2585
+#: build/models.py:199 order/models.py:210 order/models.py:536
+#: order/models.py:801 part/models.py:2585
#: part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1119
-#: templates/js/translated/order.js:885 templates/js/translated/order.js:1472
+#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1124
+#: templates/js/translated/order.js:1050 templates/js/translated/order.js:2144
msgid "Reference"
msgstr ""
@@ -683,7 +695,7 @@ msgstr ""
#: build/models.py:225 build/templates/build/build_base.html:77
#: build/templates/build/detail.html:30 company/models.py:705
-#: order/models.py:789 order/models.py:860
+#: order/models.py:854 order/models.py:928
#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357
#: part/models.py:2151 part/models.py:2167 part/models.py:2186
#: part/models.py:2203 part/models.py:2305 part/models.py:2427
@@ -698,14 +710,16 @@ msgstr ""
#: templates/email/build_order_required_stock.html:17
#: templates/email/low_stock_notification.html:16
#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:214
-#: templates/js/translated/bom.js:393 templates/js/translated/build.js:620
-#: templates/js/translated/build.js:988 templates/js/translated/build.js:1359
-#: templates/js/translated/build.js:1626 templates/js/translated/company.js:489
-#: templates/js/translated/company.js:746 templates/js/translated/order.js:426
-#: templates/js/translated/order.js:839 templates/js/translated/order.js:1456
-#: templates/js/translated/part.js:918 templates/js/translated/part.js:999
-#: templates/js/translated/part.js:1166 templates/js/translated/stock.js:590
-#: templates/js/translated/stock.js:1190 templates/js/translated/stock.js:2241
+#: templates/js/translated/bom.js:393 templates/js/translated/build.js:625
+#: templates/js/translated/build.js:993 templates/js/translated/build.js:1364
+#: templates/js/translated/build.js:1632 templates/js/translated/company.js:489
+#: templates/js/translated/company.js:746 templates/js/translated/order.js:84
+#: templates/js/translated/order.js:586 templates/js/translated/order.js:1004
+#: templates/js/translated/order.js:1576 templates/js/translated/order.js:1933
+#: templates/js/translated/order.js:2128 templates/js/translated/part.js:918
+#: templates/js/translated/part.js:999 templates/js/translated/part.js:1166
+#: templates/js/translated/stock.js:553 templates/js/translated/stock.js:747
+#: templates/js/translated/stock.js:1347 templates/js/translated/stock.js:2416
msgid "Part"
msgstr ""
@@ -721,7 +735,8 @@ msgstr ""
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:247 templates/js/translated/build.js:1347
+#: build/models.py:247 templates/js/translated/build.js:1352
+#: templates/js/translated/order.js:1564
msgid "Source Location"
msgstr ""
@@ -761,7 +776,7 @@ msgstr ""
msgid "Build status code"
msgstr ""
-#: build/models.py:285 stock/models.py:534
+#: build/models.py:285 stock/models.py:528
msgid "Batch Code"
msgstr ""
@@ -769,12 +784,12 @@ msgstr ""
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:292 order/models.py:165 part/models.py:936
-#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1103
+#: build/models.py:292 order/models.py:126 part/models.py:936
+#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1271
msgid "Creation Date"
msgstr ""
-#: build/models.py:296 order/models.py:578
+#: build/models.py:296 order/models.py:558
msgid "Target completion date"
msgstr ""
@@ -782,8 +797,8 @@ msgstr ""
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/models.py:300 order/models.py:291
-#: templates/js/translated/build.js:1697
+#: build/models.py:300 order/models.py:252
+#: templates/js/translated/build.js:1703
msgid "Completion Date"
msgstr ""
@@ -791,7 +806,7 @@ msgstr ""
msgid "completed by"
msgstr ""
-#: build/models.py:314 templates/js/translated/build.js:1668
+#: build/models.py:314 templates/js/translated/build.js:1674
msgid "Issued by"
msgstr ""
@@ -800,11 +815,11 @@ msgid "User who issued this build order"
msgstr ""
#: build/models.py:323 build/templates/build/build_base.html:185
-#: build/templates/build/detail.html:116 order/models.py:179
-#: order/templates/order/order_base.html:158
-#: order/templates/order/sales_order_base.html:162 part/models.py:940
+#: build/templates/build/detail.html:116 order/models.py:140
+#: order/templates/order/order_base.html:170
+#: order/templates/order/sales_order_base.html:182 part/models.py:940
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:1680 templates/js/translated/order.js:699
+#: templates/js/translated/build.js:1686 templates/js/translated/order.js:864
msgid "Responsible"
msgstr ""
@@ -815,7 +830,7 @@ msgstr ""
#: build/models.py:329 build/templates/build/detail.html:102
#: company/templates/company/manufacturer_part.html:102
#: company/templates/company/supplier_part.html:126
-#: part/templates/part/part_base.html:354 stock/models.py:528
+#: part/templates/part/part_base.html:354 stock/models.py:522
#: stock/templates/stock/item_base.html:374
msgid "External Link"
msgstr ""
@@ -823,18 +838,19 @@ msgstr ""
#: build/models.py:334 build/serializers.py:201
#: build/templates/build/sidebar.html:21 company/models.py:142
#: company/models.py:577 company/templates/company/sidebar.html:25
-#: order/models.py:183 order/models.py:738
+#: order/models.py:144 order/models.py:803 order/models.py:1049
#: order/templates/order/po_sidebar.html:11
-#: order/templates/order/so_sidebar.html:11 part/models.py:925
+#: order/templates/order/so_sidebar.html:17 part/models.py:925
#: part/templates/part/detail.html:116 part/templates/part/part_sidebar.html:50
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/forms.py:154 stock/forms.py:204 stock/forms.py:238 stock/models.py:600
-#: stock/models.py:1764 stock/models.py:1870 stock/serializers.py:330
-#: stock/serializers.py:588 stock/templates/stock/stock_sidebar.html:21
+#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:594
+#: stock/models.py:1752 stock/models.py:1858 stock/serializers.py:332
+#: stock/serializers.py:624 stock/serializers.py:711
+#: stock/templates/stock/stock_sidebar.html:21
#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599
-#: templates/js/translated/company.js:842 templates/js/translated/order.js:984
-#: templates/js/translated/order.js:1582 templates/js/translated/stock.js:973
-#: templates/js/translated/stock.js:1452
+#: templates/js/translated/company.js:842 templates/js/translated/order.js:1149
+#: templates/js/translated/order.js:1445 templates/js/translated/order.js:2280
+#: templates/js/translated/stock.js:1130 templates/js/translated/stock.js:1616
msgid "Notes"
msgstr ""
@@ -867,7 +883,7 @@ msgstr ""
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1133 order/models.py:964
+#: build/models.py:1133 order/models.py:1165
msgid "Allocation quantity must be greater than zero"
msgstr ""
@@ -880,8 +896,8 @@ msgid "Selected stock item not found in BOM"
msgstr ""
#: build/models.py:1253 stock/templates/stock/item_base.html:346
-#: templates/InvenTree/search.html:143 templates/js/translated/build.js:1599
-#: templates/navbar.html:33
+#: templates/InvenTree/search.html:143 templates/js/translated/build.js:1605
+#: templates/navbar.html:35
msgid "Build"
msgstr ""
@@ -889,14 +905,17 @@ msgstr ""
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1270 build/serializers.py:328
+#: build/models.py:1270 build/serializers.py:328 order/serializers.py:690
+#: order/serializers.py:708 stock/serializers.py:562
#: stock/templates/stock/item_base.html:8
#: stock/templates/stock/item_base.html:16
#: stock/templates/stock/item_base.html:368
-#: templates/js/translated/build.js:408 templates/js/translated/build.js:413
-#: templates/js/translated/build.js:1361 templates/js/translated/build.js:1742
-#: templates/js/translated/order.js:1177 templates/js/translated/order.js:1182
-#: templates/js/translated/stock.js:2102
+#: templates/js/translated/build.js:413 templates/js/translated/build.js:418
+#: templates/js/translated/build.js:1366 templates/js/translated/build.js:1748
+#: templates/js/translated/order.js:85 templates/js/translated/order.js:1577
+#: templates/js/translated/order.js:1832 templates/js/translated/order.js:1837
+#: templates/js/translated/order.js:1940 templates/js/translated/order.js:2030
+#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:2277
msgid "Stock Item"
msgstr ""
@@ -936,16 +955,17 @@ msgstr ""
msgid "This build output is not fully allocated"
msgstr ""
-#: build/serializers.py:190 order/serializers.py:228 order/serializers.py:296
-#: stock/forms.py:236 stock/serializers.py:323 stock/serializers.py:690
+#: build/serializers.py:190 order/serializers.py:226 order/serializers.py:294
+#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:813
#: stock/templates/stock/item_base.html:314
#: templates/js/translated/barcode.js:384
-#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:420
-#: templates/js/translated/build.js:1027 templates/js/translated/order.js:348
-#: templates/js/translated/order.js:1189 templates/js/translated/order.js:1297
-#: templates/js/translated/order.js:1303 templates/js/translated/part.js:177
-#: templates/js/translated/stock.js:592 templates/js/translated/stock.js:1333
-#: templates/js/translated/stock.js:2043
+#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:425
+#: templates/js/translated/build.js:1032 templates/js/translated/order.js:508
+#: templates/js/translated/order.js:1844 templates/js/translated/order.js:1955
+#: templates/js/translated/order.js:1963 templates/js/translated/order.js:2044
+#: templates/js/translated/part.js:177 templates/js/translated/stock.js:555
+#: templates/js/translated/stock.js:749 templates/js/translated/stock.js:1497
+#: templates/js/translated/stock.js:2218
msgid "Location"
msgstr ""
@@ -954,12 +974,12 @@ msgid "Location for completed build outputs"
msgstr ""
#: build/serializers.py:197 build/templates/build/build_base.html:137
-#: build/templates/build/detail.html:63 order/models.py:572
-#: order/serializers.py:249 stock/templates/stock/item_base.html:180
-#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1655
-#: templates/js/translated/order.js:431 templates/js/translated/order.js:1095
-#: templates/js/translated/stock.js:1308 templates/js/translated/stock.js:2120
-#: templates/js/translated/stock.js:2269
+#: build/templates/build/detail.html:63 order/models.py:552
+#: order/serializers.py:247 stock/templates/stock/item_base.html:180
+#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1661
+#: templates/js/translated/order.js:591 templates/js/translated/order.js:840
+#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1472
+#: templates/js/translated/stock.js:2295 templates/js/translated/stock.js:2444
msgid "Status"
msgstr ""
@@ -984,16 +1004,16 @@ msgstr ""
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:334
+#: build/serializers.py:334 stock/serializers.py:569
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:348 order/models.py:316 order/serializers.py:242
-#: stock/models.py:371 stock/models.py:1093 stock/serializers.py:303
+#: build/serializers.py:348 order/models.py:277 order/serializers.py:240
+#: stock/models.py:365 stock/models.py:1081 stock/serializers.py:305
msgid "Quantity must be greater than zero"
msgstr ""
-#: build/serializers.py:390
+#: build/serializers.py:390 order/serializers.py:741
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
@@ -1006,7 +1026,7 @@ msgstr ""
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:431
+#: build/serializers.py:431 order/serializers.py:984
msgid "Allocation items must be provided"
msgstr ""
@@ -1079,11 +1099,11 @@ msgstr ""
#: build/templates/build/build_base.html:146
#: build/templates/build/detail.html:132
-#: order/templates/order/order_base.html:144
-#: order/templates/order/sales_order_base.html:141
+#: order/templates/order/order_base.html:156
+#: order/templates/order/sales_order_base.html:163
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:1692 templates/js/translated/order.js:689
-#: templates/js/translated/order.js:1108
+#: templates/js/translated/build.js:1698 templates/js/translated/order.js:854
+#: templates/js/translated/order.js:1276
msgid "Target Date"
msgstr ""
@@ -1096,28 +1116,28 @@ msgstr ""
#: build/templates/build/build_base.html:196
#: order/templates/order/order_base.html:98
#: order/templates/order/sales_order_base.html:93
-#: templates/js/translated/table_filters.js:294
-#: templates/js/translated/table_filters.js:322
-#: templates/js/translated/table_filters.js:339
+#: templates/js/translated/table_filters.js:299
+#: templates/js/translated/table_filters.js:340
+#: templates/js/translated/table_filters.js:361
msgid "Overdue"
msgstr ""
#: build/templates/build/build_base.html:158
#: build/templates/build/detail.html:68 build/templates/build/detail.html:143
-#: templates/js/translated/build.js:1641
-#: templates/js/translated/table_filters.js:304
+#: order/templates/order/sales_order_base.html:170
+#: templates/js/translated/build.js:1647
+#: templates/js/translated/table_filters.js:370
msgid "Completed"
msgstr ""
#: build/templates/build/build_base.html:171
-#: build/templates/build/detail.html:95 order/models.py:857
-#: order/templates/order/sales_order_base.html:9
+#: build/templates/build/detail.html:95 order/models.py:925
+#: order/models.py:1021 order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
-#: order/templates/order/sales_order_ship.html:25
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:308
-#: templates/js/translated/order.js:1050
+#: templates/js/translated/order.js:1218
msgid "Sales Order"
msgstr ""
@@ -1191,8 +1211,8 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:50 order/models.py:811 stock/forms.py:150
-#: templates/js/translated/order.js:432 templates/js/translated/order.js:973
+#: build/templates/build/detail.html:50 order/models.py:876 stock/forms.py:136
+#: templates/js/translated/order.js:592 templates/js/translated/order.js:1138
msgid "Destination"
msgstr ""
@@ -1200,22 +1220,22 @@ msgstr ""
msgid "Destination location not specified"
msgstr ""
-#: build/templates/build/detail.html:74 templates/js/translated/build.js:647
+#: build/templates/build/detail.html:74 templates/js/translated/build.js:652
msgid "Allocated Parts"
msgstr ""
#: build/templates/build/detail.html:81
#: stock/templates/stock/item_base.html:332
-#: templates/js/translated/stock.js:1322 templates/js/translated/stock.js:2276
+#: templates/js/translated/stock.js:1486 templates/js/translated/stock.js:2451
#: templates/js/translated/table_filters.js:151
-#: templates/js/translated/table_filters.js:233
+#: templates/js/translated/table_filters.js:238
msgid "Batch"
msgstr ""
#: build/templates/build/detail.html:127
-#: order/templates/order/order_base.html:131
-#: order/templates/order/sales_order_base.html:135
-#: templates/js/translated/build.js:1663
+#: order/templates/order/order_base.html:143
+#: order/templates/order/sales_order_base.html:157
+#: templates/js/translated/build.js:1669
msgid "Created"
msgstr ""
@@ -1235,7 +1255,7 @@ msgstr ""
msgid "Allocate Stock to Build"
msgstr ""
-#: build/templates/build/detail.html:177 templates/js/translated/build.js:1202
+#: build/templates/build/detail.html:177 templates/js/translated/build.js:1207
msgid "Unallocate stock"
msgstr ""
@@ -1257,7 +1277,7 @@ msgstr ""
#: build/templates/build/detail.html:185
#: company/templates/company/detail.html:38
-#: company/templates/company/detail.html:85 order/views.py:509
+#: company/templates/company/detail.html:85 order/views.py:463
#: part/templates/part/category.html:173
msgid "Order Parts"
msgstr ""
@@ -1309,8 +1329,8 @@ msgstr ""
#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:60
-#: order/templates/order/sales_order_detail.html:52
-#: order/templates/order/so_sidebar.html:9 part/templates/part/detail.html:193
+#: order/templates/order/sales_order_detail.html:107
+#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:193
#: part/templates/part/part_sidebar.html:48 stock/templates/stock/item.html:95
#: stock/templates/stock/stock_sidebar.html:19
msgid "Attachments"
@@ -1325,8 +1345,8 @@ msgstr ""
#: company/templates/company/detail.html:215
#: order/templates/order/purchase_order_detail.html:80
#: order/templates/order/purchase_order_detail.html:108
-#: order/templates/order/sales_order_detail.html:72
-#: order/templates/order/sales_order_detail.html:99
+#: order/templates/order/sales_order_detail.html:127
+#: order/templates/order/sales_order_detail.html:186
#: part/templates/part/detail.html:120 stock/templates/stock/item.html:115
#: stock/templates/stock/item.html:205
msgid "Edit Notes"
@@ -1384,7 +1404,7 @@ msgstr ""
msgid "Maximum output quantity is "
msgstr ""
-#: build/views.py:122 stock/serializers.py:361 stock/views.py:1290
+#: build/views.py:122 stock/serializers.py:363 stock/views.py:1257
msgid "Serial numbers already exist"
msgstr ""
@@ -1400,7 +1420,7 @@ msgstr ""
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:219 stock/views.py:385
+#: build/views.py:219 stock/views.py:352
msgid "Check the confirmation box"
msgstr ""
@@ -1469,7 +1489,7 @@ msgstr ""
msgid "Select {name} file to upload"
msgstr ""
-#: common/models.py:340 common/models.py:970 common/models.py:1178
+#: common/models.py:340 common/models.py:998 common/models.py:1206
msgid "Settings key (must be unique - case insensitive"
msgstr ""
@@ -1557,7 +1577,7 @@ msgstr ""
msgid "Allow download of remote images and files from external URL"
msgstr ""
-#: common/models.py:649 templates/InvenTree/settings/sidebar.html:30
+#: common/models.py:649 templates/InvenTree/settings/sidebar.html:31
msgid "Barcode Support"
msgstr ""
@@ -1623,7 +1643,7 @@ msgstr ""
#: common/models.py:703 part/models.py:2429 report/models.py:187
#: templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:373
+#: templates/js/translated/table_filters.js:404
msgid "Template"
msgstr ""
@@ -1633,7 +1653,7 @@ msgstr ""
#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:956
#: templates/js/translated/table_filters.js:168
-#: templates/js/translated/table_filters.js:385
+#: templates/js/translated/table_filters.js:416
msgid "Assembly"
msgstr ""
@@ -1642,7 +1662,7 @@ msgid "Parts can be assembled from other components by default"
msgstr ""
#: common/models.py:717 part/models.py:894
-#: templates/js/translated/table_filters.js:389
+#: templates/js/translated/table_filters.js:420
msgid "Component"
msgstr ""
@@ -1659,7 +1679,7 @@ msgid "Parts are purchaseable by default"
msgstr ""
#: common/models.py:731 part/models.py:910
-#: templates/js/translated/table_filters.js:397
+#: templates/js/translated/table_filters.js:428
msgid "Salable"
msgstr ""
@@ -1670,7 +1690,7 @@ msgstr ""
#: common/models.py:738 part/models.py:900
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:100
-#: templates/js/translated/table_filters.js:401
+#: templates/js/translated/table_filters.js:432
msgid "Trackable"
msgstr ""
@@ -1932,230 +1952,262 @@ msgstr ""
msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:1001
+#: common/models.py:961
+msgid "Enable URL integration"
+msgstr ""
+
+#: common/models.py:962
+msgid "Enable plugins to add URL routes"
+msgstr ""
+
+#: common/models.py:968
+msgid "Enable navigation integration"
+msgstr ""
+
+#: common/models.py:969
+msgid "Enable plugins to integrate into navigation"
+msgstr ""
+
+#: common/models.py:975
+msgid "Enable global setting integration"
+msgstr ""
+
+#: common/models.py:976
+msgid "Enable plugins to integrate into inventree global settings"
+msgstr ""
+
+#: common/models.py:982
+msgid "Enable app integration"
+msgstr ""
+
+#: common/models.py:983
+msgid "Enable plugins to add apps"
+msgstr ""
+
+#: common/models.py:1029
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:1002
+#: common/models.py:1030
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:1007
+#: common/models.py:1035
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:1008
+#: common/models.py:1036
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:1013
+#: common/models.py:1041
msgid "Show latest parts"
msgstr ""
-#: common/models.py:1014
+#: common/models.py:1042
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:1019
+#: common/models.py:1047
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:1020
+#: common/models.py:1048
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:1026
+#: common/models.py:1054
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1027
+#: common/models.py:1055
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1032
+#: common/models.py:1060
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:1033
+#: common/models.py:1061
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:1038
+#: common/models.py:1066
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:1039
+#: common/models.py:1067
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:1044
+#: common/models.py:1072
msgid "Show low stock"
msgstr ""
-#: common/models.py:1045
+#: common/models.py:1073
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:1050
+#: common/models.py:1078
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:1051
+#: common/models.py:1079
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:1056
+#: common/models.py:1084
msgid "Show needed stock"
msgstr ""
-#: common/models.py:1057
+#: common/models.py:1085
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1062
+#: common/models.py:1090
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1063
+#: common/models.py:1091
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1068
+#: common/models.py:1096
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1069
+#: common/models.py:1097
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1074
+#: common/models.py:1102
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1075
+#: common/models.py:1103
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:1080
+#: common/models.py:1108
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:1081
+#: common/models.py:1109
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:1086
+#: common/models.py:1114
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:1087
+#: common/models.py:1115
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:1092
+#: common/models.py:1120
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:1093
+#: common/models.py:1121
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:1098
+#: common/models.py:1126
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:1099
+#: common/models.py:1127
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:1104
+#: common/models.py:1132
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:1105
+#: common/models.py:1133
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:1111
+#: common/models.py:1139
msgid "Inline label display"
msgstr ""
-#: common/models.py:1112
+#: common/models.py:1140
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1118
+#: common/models.py:1146
msgid "Inline report display"
msgstr ""
-#: common/models.py:1119
+#: common/models.py:1147
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1125
+#: common/models.py:1153
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:1126
+#: common/models.py:1154
msgid "Number of results to show in search preview window"
msgstr ""
-#: common/models.py:1132
+#: common/models.py:1160
msgid "Search Show Stock"
msgstr ""
-#: common/models.py:1133
+#: common/models.py:1161
msgid "Display stock levels in search preview window"
msgstr ""
-#: common/models.py:1139
+#: common/models.py:1167
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:1140
+#: common/models.py:1168
msgid "Hide inactive parts in search preview window"
msgstr ""
-#: common/models.py:1146
+#: common/models.py:1174
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:1147
+#: common/models.py:1175
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:1153
+#: common/models.py:1181
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1154
+#: common/models.py:1182
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1160
+#: common/models.py:1188
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:1161
+#: common/models.py:1189
msgid "InvenTree navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:1226 company/forms.py:43
+#: common/models.py:1254 company/forms.py:43
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1233 company/serializers.py:264
+#: common/models.py:1261 company/serializers.py:264
#: company/templates/company/supplier_part.html:256
#: templates/js/translated/part.js:852 templates/js/translated/part.js:1801
msgid "Price"
msgstr ""
-#: common/models.py:1234
+#: common/models.py:1262
msgid "Unit price at specified quantity"
msgstr ""
#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49
-#: order/templates/order/purchase_order_detail.html:24 order/views.py:289
+#: order/templates/order/purchase_order_detail.html:24 order/views.py:243
#: part/templates/part/bom_upload/upload_file.html:52
#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:212
#: part/views.py:858
@@ -2163,7 +2215,7 @@ msgid "Upload File"
msgstr ""
#: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52
-#: order/views.py:290 part/templates/part/bom_upload/match_fields.html:52
+#: order/views.py:244 part/templates/part/bom_upload/match_fields.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:45
#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:213
#: part/views.py:859
@@ -2195,6 +2247,7 @@ msgid "Previous Step"
msgstr ""
#: company/forms.py:24 part/forms.py:46
+#: templates/InvenTree/settings/mixins/urls.html:12
msgid "URL"
msgstr ""
@@ -2211,6 +2264,7 @@ msgid "Description of the company"
msgstr ""
#: company/models.py:112 company/templates/company/company_base.html:97
+#: templates/InvenTree/settings/plugin_settings.html:55
#: templates/js/translated/company.js:349
msgid "Website"
msgstr ""
@@ -2285,7 +2339,7 @@ msgid "Does this company manufacture parts?"
msgstr ""
#: company/models.py:152 company/serializers.py:270
-#: company/templates/company/company_base.html:103 stock/serializers.py:177
+#: company/templates/company/company_base.html:103 stock/serializers.py:179
msgid "Currency"
msgstr ""
@@ -2293,12 +2347,12 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:320 company/models.py:535 stock/models.py:474
+#: company/models.py:320 company/models.py:535 stock/models.py:468
#: stock/templates/stock/item_base.html:135
msgid "Base Part"
msgstr ""
-#: company/models.py:324 company/models.py:539 order/views.py:912
+#: company/models.py:324 company/models.py:539
msgid "Select part"
msgstr ""
@@ -2319,7 +2373,7 @@ msgstr ""
#: company/models.py:342 company/templates/company/manufacturer_part.html:96
#: company/templates/company/supplier_part.html:105
#: templates/js/translated/company.js:530
-#: templates/js/translated/company.js:815 templates/js/translated/order.js:873
+#: templates/js/translated/company.js:815 templates/js/translated/order.js:1038
#: templates/js/translated/part.js:243 templates/js/translated/part.js:832
msgid "MPN"
msgstr ""
@@ -2349,8 +2403,8 @@ msgstr ""
#: company/models.py:422
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:1857 templates/js/translated/company.js:644
-#: templates/js/translated/part.js:652 templates/js/translated/stock.js:960
+#: stock/models.py:1845 templates/js/translated/company.js:644
+#: templates/js/translated/part.js:652 templates/js/translated/stock.js:1117
msgid "Value"
msgstr ""
@@ -2360,7 +2414,7 @@ msgstr ""
#: company/models.py:429 part/models.py:882 part/models.py:2397
#: part/templates/part/part_base.html:288
-#: templates/InvenTree/settings/settings.html:264
+#: templates/InvenTree/settings/settings.html:273
#: templates/js/translated/company.js:650 templates/js/translated/part.js:658
msgid "Units"
msgstr ""
@@ -2374,12 +2428,12 @@ msgid "Linked manufacturer part must reference the same base part"
msgstr ""
#: company/models.py:545 company/templates/company/company_base.html:78
-#: company/templates/company/supplier_part.html:87 order/models.py:263
+#: company/templates/company/supplier_part.html:87 order/models.py:224
#: order/templates/order/order_base.html:112
#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219
#: part/bom.py:247 stock/templates/stock/item_base.html:398
#: templates/js/translated/company.js:337
-#: templates/js/translated/company.js:771 templates/js/translated/order.js:667
+#: templates/js/translated/company.js:771 templates/js/translated/order.js:823
#: templates/js/translated/part.js:213 templates/js/translated/part.js:800
msgid "Supplier"
msgstr ""
@@ -2389,7 +2443,7 @@ msgid "Select supplier"
msgstr ""
#: company/models.py:551 company/templates/company/supplier_part.html:91
-#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:860
+#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:1025
#: templates/js/translated/part.js:224 templates/js/translated/part.js:818
msgid "SKU"
msgstr ""
@@ -2425,8 +2479,8 @@ msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:582 company/templates/company/supplier_part.html:112
-#: stock/models.py:497 stock/templates/stock/item_base.html:339
-#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1448
+#: stock/models.py:491 stock/templates/stock/item_base.html:339
+#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1612
msgid "Packaging"
msgstr ""
@@ -2457,7 +2511,7 @@ msgid "Company"
msgstr ""
#: company/templates/company/company_base.html:22
-#: templates/js/translated/order.js:121
+#: templates/js/translated/order.js:279
msgid "Create Purchase Order"
msgstr ""
@@ -2493,11 +2547,12 @@ msgstr ""
msgid "Download image from URL"
msgstr ""
-#: company/templates/company/company_base.html:83 order/models.py:567
-#: order/templates/order/sales_order_base.html:115 stock/models.py:515
-#: stock/models.py:516 stock/templates/stock/item_base.html:291
-#: templates/js/translated/company.js:329 templates/js/translated/order.js:1072
-#: templates/js/translated/stock.js:2084
+#: company/templates/company/company_base.html:83 order/models.py:547
+#: order/templates/order/sales_order_base.html:115 stock/models.py:509
+#: stock/models.py:510 stock/serializers.py:610
+#: stock/templates/stock/item_base.html:291
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1240
+#: templates/js/translated/stock.js:2259
msgid "Customer"
msgstr ""
@@ -2580,7 +2635,7 @@ msgstr ""
#: order/templates/order/purchase_orders.html:12
#: part/templates/part/detail.html:64 part/templates/part/part_sidebar.html:33
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:203
-#: templates/InvenTree/settings/sidebar.html:44 templates/navbar.html:45
+#: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47
#: users/models.py:45
msgid "Purchase Orders"
msgstr ""
@@ -2602,7 +2657,7 @@ msgstr ""
#: order/templates/order/sales_orders.html:15
#: part/templates/part/detail.html:87 part/templates/part/part_sidebar.html:37
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:223
-#: templates/InvenTree/settings/sidebar.html:46 templates/navbar.html:56
+#: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58
#: users/models.py:46
msgid "Sales Orders"
msgstr ""
@@ -2618,7 +2673,7 @@ msgid "New Sales Order"
msgstr ""
#: company/templates/company/detail.html:168
-#: templates/js/translated/build.js:999
+#: templates/js/translated/build.js:1004
msgid "Assigned Stock"
msgstr ""
@@ -2644,7 +2699,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:14 company/views.py:55
#: part/templates/part/prices.html:167 templates/InvenTree/search.html:184
-#: templates/navbar.html:44
+#: templates/navbar.html:46
msgid "Manufacturers"
msgstr ""
@@ -2673,7 +2728,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:114
#: company/templates/company/supplier_part.html:15 company/views.py:49
#: part/templates/part/part_sidebar.html:31 part/templates/part/prices.html:163
-#: templates/InvenTree/search.html:194 templates/navbar.html:43
+#: templates/InvenTree/search.html:194 templates/navbar.html:45
msgid "Suppliers"
msgstr ""
@@ -2687,7 +2742,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:254
#: part/templates/part/detail.html:344 part/templates/part/detail.html:372
#: templates/js/translated/company.js:425 templates/js/translated/helpers.js:31
-#: users/models.py:204
+#: users/models.py:206
msgid "Delete"
msgstr ""
@@ -2739,9 +2794,9 @@ msgid "Assigned Stock Items"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:482
+#: company/templates/company/supplier_part.html:24 stock/models.py:476
#: stock/templates/stock/item_base.html:403
-#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1405
+#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1569
msgid "Supplier Part"
msgstr ""
@@ -2767,7 +2822,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:142
#: part/templates/part/detail.html:21 stock/templates/stock/location.html:163
-#: templates/js/translated/stock.js:355
+#: templates/js/translated/stock.js:359
msgid "New Stock Item"
msgstr ""
@@ -2817,11 +2872,11 @@ msgstr ""
#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:14
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:156
-#: templates/InvenTree/settings/sidebar.html:40
+#: templates/InvenTree/settings/sidebar.html:41
#: templates/js/translated/bom.js:216 templates/js/translated/part.js:434
#: templates/js/translated/part.js:569 templates/js/translated/part.js:1059
-#: templates/js/translated/part.js:1220 templates/js/translated/stock.js:591
-#: templates/js/translated/stock.js:1244 templates/navbar.html:26
+#: templates/js/translated/part.js:1220 templates/js/translated/stock.js:748
+#: templates/js/translated/stock.js:1401 templates/navbar.html:28
msgid "Stock"
msgstr ""
@@ -2844,7 +2899,7 @@ msgstr ""
#: stock/templates/stock/location.html:147
#: stock/templates/stock/location.html:159
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1983
+#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:2158
#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
msgid "Stock Items"
msgstr ""
@@ -2858,7 +2913,7 @@ msgid "New Manufacturer"
msgstr ""
#: company/views.py:61 templates/InvenTree/search.html:214
-#: templates/navbar.html:55
+#: templates/navbar.html:57
msgid "Customers"
msgstr ""
@@ -2960,284 +3015,374 @@ msgstr ""
msgid "Part query filters (comma-separated value of key=value pairs)"
msgstr ""
-#: order/forms.py:26 order/templates/order/order_base.html:52
+#: order/forms.py:24 order/templates/order/order_base.html:52
msgid "Place order"
msgstr ""
-#: order/forms.py:37 order/templates/order/order_base.html:60
+#: order/forms.py:35 order/templates/order/order_base.html:60
msgid "Mark order as complete"
msgstr ""
-#: order/forms.py:48 order/forms.py:59 order/templates/order/order_base.html:47
+#: order/forms.py:46 order/forms.py:57 order/templates/order/order_base.html:47
#: order/templates/order/sales_order_base.html:60
msgid "Cancel order"
msgstr ""
-#: order/forms.py:70
-msgid "Ship order"
-msgstr ""
-
-#: order/forms.py:98
-msgid "Enter stock item serial numbers"
-msgstr ""
-
-#: order/forms.py:104
-msgid "Enter quantity of stock items"
-msgstr ""
-
-#: order/models.py:161
+#: order/models.py:122
msgid "Order description"
msgstr ""
-#: order/models.py:163
+#: order/models.py:124
msgid "Link to external page"
msgstr ""
-#: order/models.py:171
+#: order/models.py:132
msgid "Created By"
msgstr ""
-#: order/models.py:178
+#: order/models.py:139
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:183
+#: order/models.py:144
msgid "Order notes"
msgstr ""
-#: order/models.py:250 order/models.py:557
+#: order/models.py:211 order/models.py:537
msgid "Order reference"
msgstr ""
-#: order/models.py:255 order/models.py:572
+#: order/models.py:216 order/models.py:552
msgid "Purchase order status"
msgstr ""
-#: order/models.py:264
+#: order/models.py:225
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:267 order/templates/order/order_base.html:118
-#: templates/js/translated/order.js:676
+#: order/models.py:228 order/templates/order/order_base.html:118
+#: templates/js/translated/order.js:832
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:267
+#: order/models.py:228
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:274
+#: order/models.py:235
msgid "received by"
msgstr ""
-#: order/models.py:279
+#: order/models.py:240
msgid "Issue Date"
msgstr ""
-#: order/models.py:280
+#: order/models.py:241
msgid "Date order was issued"
msgstr ""
-#: order/models.py:285
+#: order/models.py:246
msgid "Target Delivery Date"
msgstr ""
-#: order/models.py:286
+#: order/models.py:247
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:292
+#: order/models.py:253
msgid "Date order was completed"
msgstr ""
-#: order/models.py:321
+#: order/models.py:282
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:431
+#: order/models.py:411
msgid "Quantity must be an integer"
msgstr ""
-#: order/models.py:435
+#: order/models.py:415
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:568
+#: order/models.py:548
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:574
+#: order/models.py:554
msgid "Customer Reference "
msgstr ""
-#: order/models.py:574
+#: order/models.py:554
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:579
+#: order/models.py:559
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:582 templates/js/translated/order.js:1113
+#: order/models.py:562 order/models.py:1026
+#: templates/js/translated/order.js:1281 templates/js/translated/order.js:1429
msgid "Shipment Date"
msgstr ""
-#: order/models.py:589
+#: order/models.py:569
msgid "shipped by"
msgstr ""
-#: order/models.py:633
-msgid "SalesOrder cannot be shipped as it is not currently pending"
+#: order/models.py:634
+msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:730
+#: order/models.py:639
+msgid "Only a pending order can be marked as complete"
+msgstr ""
+
+#: order/models.py:643
+msgid "Order cannot be completed as there are incomplete shipments"
+msgstr ""
+
+#: order/models.py:647
+msgid "Order cannot be completed as there are incomplete line items"
+msgstr ""
+
+#: order/models.py:795
msgid "Item quantity"
msgstr ""
-#: order/models.py:736
+#: order/models.py:801
msgid "Line item reference"
msgstr ""
-#: order/models.py:738
+#: order/models.py:803
msgid "Line item notes"
msgstr ""
-#: order/models.py:768 order/models.py:856
-#: templates/js/translated/order.js:1165
+#: order/models.py:833 order/models.py:924 order/models.py:1020
+#: templates/js/translated/order.js:1820
msgid "Order"
msgstr ""
-#: order/models.py:769 order/templates/order/order_base.html:9
+#: order/models.py:834 order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:353
-#: templates/js/translated/order.js:638 templates/js/translated/part.js:775
-#: templates/js/translated/stock.js:1382 templates/js/translated/stock.js:2065
+#: templates/js/translated/order.js:801 templates/js/translated/part.js:775
+#: templates/js/translated/stock.js:1546 templates/js/translated/stock.js:2240
msgid "Purchase Order"
msgstr ""
-#: order/models.py:790
+#: order/models.py:855
msgid "Supplier part"
msgstr ""
-#: order/models.py:797 order/templates/order/order_base.html:151
-#: order/templates/order/sales_order_base.html:155
-#: templates/js/translated/order.js:429 templates/js/translated/order.js:953
+#: order/models.py:862 order/templates/order/order_base.html:163
+#: templates/js/translated/order.js:589 templates/js/translated/order.js:1118
#: templates/js/translated/part.js:847 templates/js/translated/part.js:873
+#: templates/js/translated/table_filters.js:317
msgid "Received"
msgstr ""
-#: order/models.py:798
+#: order/models.py:863
msgid "Number of items received"
msgstr ""
-#: order/models.py:805 part/templates/part/prices.html:176 stock/models.py:609
-#: stock/serializers.py:168 stock/templates/stock/item_base.html:360
-#: templates/js/translated/stock.js:1436
+#: order/models.py:870 part/templates/part/prices.html:176 stock/models.py:603
+#: stock/serializers.py:170 stock/templates/stock/item_base.html:360
+#: templates/js/translated/stock.js:1600
msgid "Purchase Price"
msgstr ""
-#: order/models.py:806
+#: order/models.py:871
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:814
+#: order/models.py:879
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:866 part/templates/part/part_pricing.html:112
+#: order/models.py:934 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:116 part/templates/part/prices.html:284
msgid "Sale Price"
msgstr ""
-#: order/models.py:867
+#: order/models.py:935
msgid "Unit sale price"
msgstr ""
-#: order/models.py:946 order/models.py:948
+#: order/models.py:940
+msgid "Shipped quantity"
+msgstr ""
+
+#: order/models.py:1027
+msgid "Date of shipment"
+msgstr ""
+
+#: order/models.py:1034
+msgid "Checked By"
+msgstr ""
+
+#: order/models.py:1035
+msgid "User who checked this shipment"
+msgstr ""
+
+#: order/models.py:1043
+msgid "Shipment number"
+msgstr ""
+
+#: order/models.py:1050
+msgid "Shipment notes"
+msgstr ""
+
+#: order/models.py:1057
+msgid "Tracking Number"
+msgstr ""
+
+#: order/models.py:1058
+msgid "Shipment tracking information"
+msgstr ""
+
+#: order/models.py:1068
+msgid "Shipment has already been sent"
+msgstr ""
+
+#: order/models.py:1071
+msgid "Shipment has no allocated stock items"
+msgstr ""
+
+#: order/models.py:1147 order/models.py:1149
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:952
+#: order/models.py:1153
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:954
+#: order/models.py:1155
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:957
+#: order/models.py:1158
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:961
+#: order/models.py:1162
msgid "StockItem is over-allocated"
msgstr ""
-#: order/models.py:967
+#: order/models.py:1168 order/serializers.py:734
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:975
+#: order/models.py:1171
+msgid "Sales order does not match shipment"
+msgstr ""
+
+#: order/models.py:1172
+msgid "Shipment does not match sales order"
+msgstr ""
+
+#: order/models.py:1180
msgid "Line"
msgstr ""
-#: order/models.py:987
+#: order/models.py:1188 order/serializers.py:825 order/serializers.py:953
+#: templates/js/translated/model_renderers.js:251
+msgid "Shipment"
+msgstr ""
+
+#: order/models.py:1189
+msgid "Sales order shipment reference"
+msgstr ""
+
+#: order/models.py:1201
msgid "Item"
msgstr ""
-#: order/models.py:988
+#: order/models.py:1202
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:991
+#: order/models.py:1205
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/serializers.py:175
+#: order/serializers.py:173
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:213
+#: order/serializers.py:211 order/serializers.py:790
msgid "Line Item"
msgstr ""
-#: order/serializers.py:219
+#: order/serializers.py:217
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:229 order/serializers.py:297
+#: order/serializers.py:227 order/serializers.py:295
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:253
+#: order/serializers.py:251
msgid "Barcode Hash"
msgstr ""
-#: order/serializers.py:254
+#: order/serializers.py:252
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:271
+#: order/serializers.py:269
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:309
+#: order/serializers.py:307
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:326
+#: order/serializers.py:324
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:337
+#: order/serializers.py:335
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:578
+#: order/serializers.py:581
msgid "Sale price currency"
msgstr ""
+#: order/serializers.py:649
+msgid "No shipment details provided"
+msgstr ""
+
+#: order/serializers.py:699 order/serializers.py:802
+msgid "Line item is not associated with this order"
+msgstr ""
+
+#: order/serializers.py:721
+msgid "Quantity must be positive"
+msgstr ""
+
+#: order/serializers.py:815
+msgid "Enter serial numbers to allocate"
+msgstr ""
+
+#: order/serializers.py:839 order/serializers.py:964
+msgid "Shipment has already been shipped"
+msgstr ""
+
+#: order/serializers.py:842 order/serializers.py:967
+msgid "Shipment is not associated with this order"
+msgstr ""
+
+#: order/serializers.py:894
+msgid "No match found for the following serial numbers"
+msgstr ""
+
+#: order/serializers.py:904
+msgid "The following serial numbers are already allocated"
+msgstr ""
+
#: order/templates/order/delete_attachment.html:5
#: stock/templates/stock/attachment_delete.html:5
msgid "Are you sure you want to delete this attachment?"
@@ -3271,7 +3416,8 @@ msgstr ""
msgid "Receive Items"
msgstr ""
-#: order/templates/order/order_base.html:62 order/views.py:185
+#: order/templates/order/order_base.html:62
+#: order/templates/order/sales_order_base.html:67 order/views.py:181
msgid "Complete Order"
msgstr ""
@@ -3290,12 +3436,23 @@ msgstr ""
msgid "Order Status"
msgstr ""
-#: order/templates/order/order_base.html:137
+#: order/templates/order/order_base.html:124
+#: order/templates/order/sales_order_base.html:128
+msgid "Completed Line Items"
+msgstr ""
+
+#: order/templates/order/order_base.html:130
+#: order/templates/order/sales_order_base.html:134
+#: order/templates/order/sales_order_base.html:144
+msgid "Incomplete"
+msgstr ""
+
+#: order/templates/order/order_base.html:149
#: report/templates/report/inventree_build_order_base.html:122
msgid "Issued"
msgstr ""
-#: order/templates/order/order_base.html:207
+#: order/templates/order/order_base.html:219
msgid "Edit Purchase Order"
msgstr ""
@@ -3371,8 +3528,9 @@ msgstr ""
#: part/templates/part/import_wizard/ajax_match_references.html:42
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
-#: templates/js/translated/build.js:240 templates/js/translated/build.js:1251
-#: templates/js/translated/order.js:377
+#: templates/js/translated/build.js:245 templates/js/translated/build.js:1256
+#: templates/js/translated/order.js:537 templates/js/translated/order.js:1488
+#: templates/js/translated/stock.js:592
msgid "Remove row"
msgstr ""
@@ -3453,7 +3611,8 @@ msgid "Select existing purchase orders, or create new orders."
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:31
-#: templates/js/translated/order.js:694 templates/js/translated/order.js:1118
+#: templates/js/translated/order.js:859 templates/js/translated/order.js:1286
+#: templates/js/translated/order.js:1416
msgid "Items"
msgstr ""
@@ -3489,7 +3648,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:27
#: order/templates/order/purchase_order_detail.html:181
#: order/templates/order/sales_order_detail.html:23
-#: order/templates/order/sales_order_detail.html:157
+#: order/templates/order/sales_order_detail.html:244
msgid "Add Line Item"
msgstr ""
@@ -3502,7 +3661,7 @@ msgid "Received Items"
msgstr ""
#: order/templates/order/purchase_order_detail.html:76
-#: order/templates/order/sales_order_detail.html:68
+#: order/templates/order/sales_order_detail.html:123
msgid "Order Notes"
msgstr ""
@@ -3520,8 +3679,8 @@ msgid "Print packing list"
msgstr ""
#: order/templates/order/sales_order_base.html:66
-#: order/templates/order/sales_order_base.html:67 order/views.py:222
-msgid "Ship Order"
+#: order/templates/order/sales_order_base.html:229
+msgid "Complete Sales Order"
msgstr ""
#: order/templates/order/sales_order_base.html:102
@@ -3529,16 +3688,21 @@ msgid "This Sales Order has not been fully allocated"
msgstr ""
#: order/templates/order/sales_order_base.html:122
-#: templates/js/translated/order.js:1085
+#: templates/js/translated/order.js:1253
msgid "Customer Reference"
msgstr ""
-#: order/templates/order/sales_order_base.html:195
+#: order/templates/order/sales_order_base.html:140
+#: order/templates/order/sales_order_detail.html:78
+#: order/templates/order/so_sidebar.html:11
+msgid "Completed Shipments"
+msgstr ""
+
+#: order/templates/order/sales_order_base.html:215
msgid "Edit Sales Order"
msgstr ""
#: order/templates/order/sales_order_cancel.html:8
-#: order/templates/order/sales_order_ship.html:9
#: part/templates/part/bom_duplicate.html:12
#: stock/templates/stock/stockitem_convert.html:13
msgid "Warning"
@@ -3552,146 +3716,100 @@ msgstr ""
msgid "Sales Order Items"
msgstr ""
-#: order/templates/order/sales_order_ship.html:10
-msgid "This order has not been fully allocated. If the order is marked as shipped, it can no longer be adjusted."
+#: order/templates/order/sales_order_detail.html:44
+#: order/templates/order/so_sidebar.html:8
+msgid "Pending Shipments"
msgstr ""
-#: order/templates/order/sales_order_ship.html:12
-msgid "Ensure that the order allocation is correct before shipping the order."
+#: order/templates/order/sales_order_detail.html:48
+#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1188
+msgid "Actions"
msgstr ""
-#: order/templates/order/sales_order_ship.html:18
-msgid "Some line items in this order have been over-allocated"
+#: order/templates/order/sales_order_detail.html:57
+msgid "New Shipment"
msgstr ""
-#: order/templates/order/sales_order_ship.html:20
-msgid "Ensure that this is correct before shipping the order."
-msgstr ""
-
-#: order/templates/order/sales_order_ship.html:27
-msgid "Shipping this order means that the order will no longer be editable."
-msgstr ""
-
-#: order/templates/order/so_allocate_by_serial.html:9
-msgid "Allocate stock items by serial number"
-msgstr ""
-
-#: order/views.py:103
+#: order/views.py:99
msgid "Cancel Order"
msgstr ""
-#: order/views.py:112 order/views.py:138
+#: order/views.py:108 order/views.py:134
msgid "Confirm order cancellation"
msgstr ""
-#: order/views.py:115 order/views.py:141
+#: order/views.py:111 order/views.py:137
msgid "Order cannot be cancelled"
msgstr ""
-#: order/views.py:129
+#: order/views.py:125
msgid "Cancel sales order"
msgstr ""
-#: order/views.py:155
+#: order/views.py:151
msgid "Issue Order"
msgstr ""
-#: order/views.py:164
+#: order/views.py:160
msgid "Confirm order placement"
msgstr ""
-#: order/views.py:174
+#: order/views.py:170
msgid "Purchase order issued"
msgstr ""
-#: order/views.py:201
+#: order/views.py:197
msgid "Confirm order completion"
msgstr ""
-#: order/views.py:212
+#: order/views.py:208
msgid "Purchase order completed"
msgstr ""
-#: order/views.py:238
-msgid "Confirm order shipment"
-msgstr ""
-
-#: order/views.py:244
-msgid "Could not ship order"
-msgstr ""
-
-#: order/views.py:291
+#: order/views.py:245
msgid "Match Supplier Parts"
msgstr ""
-#: order/views.py:535
+#: order/views.py:489
msgid "Update prices"
msgstr ""
-#: order/views.py:793
+#: order/views.py:747
#, python-brace-format
msgid "Ordered {n} parts"
msgstr ""
-#: order/views.py:846
-msgid "Allocate Serial Numbers"
-msgstr ""
-
-#: order/views.py:891
-#, python-brace-format
-msgid "Allocated {n} items"
-msgstr ""
-
-#: order/views.py:907
-msgid "Select line item"
-msgstr ""
-
-#: order/views.py:938
-#, python-brace-format
-msgid "No matching item for serial {serial}"
-msgstr ""
-
-#: order/views.py:948
-#, python-brace-format
-msgid "{serial} is not in stock"
-msgstr ""
-
-#: order/views.py:956
-#, python-brace-format
-msgid "{serial} already allocated to an order"
-msgstr ""
-
-#: order/views.py:1072
+#: order/views.py:858
msgid "Sales order not found"
msgstr ""
-#: order/views.py:1078
+#: order/views.py:864
msgid "Price not found"
msgstr ""
-#: order/views.py:1081
+#: order/views.py:867
#, python-brace-format
msgid "Updated {part} unit-price to {price}"
msgstr ""
-#: order/views.py:1086
+#: order/views.py:872
#, python-brace-format
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/api.py:758
+#: part/api.py:760
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:762
+#: part/api.py:764
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:777
+#: part/api.py:779
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:808 part/api.py:812 part/api.py:827 part/api.py:831
+#: part/api.py:810 part/api.py:814 part/api.py:829 part/api.py:833
msgid "This field is required"
msgstr ""
@@ -3828,8 +3946,8 @@ msgstr ""
#: part/templates/part/category.html:149
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:88
-#: templates/InvenTree/settings/sidebar.html:36
-#: templates/js/translated/part.js:1597 templates/navbar.html:19
+#: templates/InvenTree/settings/sidebar.html:37
+#: templates/js/translated/part.js:1597 templates/navbar.html:21
#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
msgid "Parts"
msgstr ""
@@ -3895,7 +4013,7 @@ msgstr ""
#: part/models.py:778 part/models.py:2223 part/models.py:2472
#: part/templates/part/part_base.html:265
#: part/templates/part/set_category.html:15
-#: templates/InvenTree/settings/settings.html:163
+#: templates/InvenTree/settings/settings.html:172
#: templates/js/translated/part.js:1202
msgid "Category"
msgstr ""
@@ -3906,7 +4024,7 @@ msgstr ""
#: part/models.py:784 part/templates/part/part_base.html:274
#: templates/js/translated/part.js:557 templates/js/translated/part.js:1155
-#: templates/js/translated/stock.js:1216
+#: templates/js/translated/stock.js:1373
msgid "IPN"
msgstr ""
@@ -3975,10 +4093,11 @@ msgstr ""
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:915 templates/js/translated/table_filters.js:34
+#: part/models.py:915 plugin/models.py:45
+#: templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:96
-#: templates/js/translated/table_filters.js:290
-#: templates/js/translated/table_filters.js:368
+#: templates/js/translated/table_filters.js:295
+#: templates/js/translated/table_filters.js:399
msgid "Active"
msgstr ""
@@ -4027,7 +4146,7 @@ msgid "Test with this name already exists for this part"
msgstr ""
#: part/models.py:2310 templates/js/translated/part.js:1648
-#: templates/js/translated/stock.js:940
+#: templates/js/translated/stock.js:1097
msgid "Test Name"
msgstr ""
@@ -4044,7 +4163,7 @@ msgid "Enter description for this test"
msgstr ""
#: part/models.py:2322 templates/js/translated/part.js:1657
-#: templates/js/translated/table_filters.js:276
+#: templates/js/translated/table_filters.js:281
msgid "Required"
msgstr ""
@@ -4086,7 +4205,7 @@ msgid "Parameter Units"
msgstr ""
#: part/models.py:2429 part/models.py:2478 part/models.py:2479
-#: templates/InvenTree/settings/settings.html:158
+#: templates/InvenTree/settings/settings.html:167
msgid "Parameter Template"
msgstr ""
@@ -4098,7 +4217,7 @@ msgstr ""
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2483 templates/InvenTree/settings/settings.html:167
+#: part/models.py:2483 templates/InvenTree/settings/settings.html:176
msgid "Default Value"
msgstr ""
@@ -4175,7 +4294,7 @@ msgstr ""
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2686 stock/models.py:361
+#: part/models.py:2686 stock/models.py:355
msgid "Quantity must be integer value for trackable parts"
msgstr ""
@@ -4724,8 +4843,8 @@ msgstr ""
msgid "This part is a variant of %(link)s"
msgstr ""
-#: part/templates/part/part_base.html:190 templates/js/translated/order.js:1545
-#: templates/js/translated/table_filters.js:188
+#: part/templates/part/part_base.html:190 templates/js/translated/order.js:2217
+#: templates/js/translated/table_filters.js:193
msgid "In Stock"
msgstr ""
@@ -5099,6 +5218,78 @@ msgstr ""
msgid "Delete Internal Price Break"
msgstr ""
+#: plugin/integration.py:116
+msgid "No author found"
+msgstr ""
+
+#: plugin/integration.py:128
+msgid "No date found"
+msgstr ""
+
+#: plugin/models.py:25
+msgid "Plugin Configuration"
+msgstr ""
+
+#: plugin/models.py:26
+msgid "Plugin Configurations"
+msgstr ""
+
+#: plugin/models.py:31
+msgid "Key"
+msgstr ""
+
+#: plugin/models.py:32
+msgid "Key of plugin"
+msgstr ""
+
+#: plugin/models.py:40
+msgid "PluginName of the plugin"
+msgstr ""
+
+#: plugin/models.py:46
+msgid "Is the plugin active"
+msgstr ""
+
+#: plugin/samples/integration/sample.py:39
+msgid "Enable PO"
+msgstr ""
+
+#: plugin/samples/integration/sample.py:40
+msgid "Enable PO functionality in InvenTree interface"
+msgstr ""
+
+#: plugin/serializers.py:46
+msgid "Source URL"
+msgstr ""
+
+#: plugin/serializers.py:47
+msgid "Source for the package - this can be a custom registry or a VCS path"
+msgstr ""
+
+#: plugin/serializers.py:52
+msgid "Package Name"
+msgstr ""
+
+#: plugin/serializers.py:53
+msgid "Name for the Plugin Package - can also contain a version indicator"
+msgstr ""
+
+#: plugin/serializers.py:56
+msgid "Confirm plugin installation"
+msgstr ""
+
+#: plugin/serializers.py:57
+msgid "This will install this plugin now into the current instance. The instance will go into maintenance."
+msgstr ""
+
+#: plugin/serializers.py:72
+msgid "Installation not confirmed"
+msgstr ""
+
+#: plugin/serializers.py:74
+msgid "Either packagenmae of url must be provided"
+msgstr ""
+
#: report/api.py:234 report/api.py:278
#, python-brace-format
msgid "Template file '{filename}' is missing or does not exist"
@@ -5197,12 +5388,12 @@ msgid "Stock Item Test Report"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:520 stock/templates/stock/item_base.html:149
-#: templates/js/translated/build.js:233 templates/js/translated/build.js:637
-#: templates/js/translated/build.js:1013
+#: stock/models.py:514 stock/templates/stock/item_base.html:149
+#: templates/js/translated/build.js:238 templates/js/translated/build.js:642
+#: templates/js/translated/build.js:1018
#: templates/js/translated/model_renderers.js:95
-#: templates/js/translated/order.js:1287 templates/js/translated/order.js:1376
-#: templates/js/translated/stock.js:410
+#: templates/js/translated/order.js:99 templates/js/translated/order.js:1945
+#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:414
msgid "Serial Number"
msgstr ""
@@ -5211,17 +5402,19 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:93
-#: stock/models.py:1845
+#: stock/models.py:1833
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:94
-#: stock/models.py:1851
+#: stock/models.py:1839
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:97
-#: templates/js/translated/order.js:684 templates/js/translated/stock.js:1999
+#: templates/InvenTree/settings/plugin.html:49
+#: templates/InvenTree/settings/plugin_settings.html:38
+#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2174
msgid "Date"
msgstr ""
@@ -5239,302 +5432,318 @@ msgid "Installed Items"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
-#: templates/js/translated/stock.js:2259
+#: templates/js/translated/stock.js:577 templates/js/translated/stock.js:2434
msgid "Serial"
msgstr ""
-#: stock/api.py:422
+#: stock/api.py:446
msgid "Quantity is required"
msgstr ""
-#: stock/forms.py:91 stock/forms.py:265 stock/models.py:577
+#: stock/forms.py:77 stock/forms.py:251 stock/models.py:571
#: stock/templates/stock/item_base.html:186
-#: templates/js/translated/stock.js:1358
+#: templates/js/translated/stock.js:1522
msgid "Expiry Date"
msgstr ""
-#: stock/forms.py:92 stock/forms.py:266
+#: stock/forms.py:78 stock/forms.py:252
msgid "Expiration date for this stock item"
msgstr ""
-#: stock/forms.py:95
+#: stock/forms.py:81
msgid "Enter unique serial numbers (or leave blank)"
msgstr ""
-#: stock/forms.py:150
+#: stock/forms.py:136
msgid "Destination for serialized stock (by default, will remain in current location)"
msgstr ""
-#: stock/forms.py:152
+#: stock/forms.py:138
msgid "Serial numbers"
msgstr ""
-#: stock/forms.py:152
+#: stock/forms.py:138
msgid "Unique serial numbers (must match quantity)"
msgstr ""
-#: stock/forms.py:154 stock/forms.py:238
+#: stock/forms.py:140 stock/forms.py:224
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/forms.py:194
+#: stock/forms.py:180
msgid "Stock item to install"
msgstr ""
-#: stock/forms.py:224
+#: stock/forms.py:210
msgid "Must not exceed available quantity"
msgstr ""
-#: stock/forms.py:236
+#: stock/forms.py:222
msgid "Destination location for uninstalled items"
msgstr ""
-#: stock/forms.py:240
+#: stock/forms.py:226
msgid "Confirm uninstall"
msgstr ""
-#: stock/forms.py:240
+#: stock/forms.py:226
msgid "Confirm removal of installed stock items"
msgstr ""
-#: stock/models.py:60 stock/models.py:614
+#: stock/models.py:60 stock/models.py:608
#: stock/templates/stock/item_base.html:417
msgid "Owner"
msgstr ""
-#: stock/models.py:61 stock/models.py:615
+#: stock/models.py:61 stock/models.py:609
msgid "Select Owner"
msgstr ""
-#: stock/models.py:342
+#: stock/models.py:336
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:378
+#: stock/models.py:372
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:388 stock/models.py:397
+#: stock/models.py:382 stock/models.py:391
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:389
+#: stock/models.py:383
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:411
+#: stock/models.py:405
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:417
+#: stock/models.py:411
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:424
+#: stock/models.py:418
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:466
+#: stock/models.py:460
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:475
+#: stock/models.py:469
msgid "Base part"
msgstr ""
-#: stock/models.py:483
+#: stock/models.py:477
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:488 stock/templates/stock/location.html:12
+#: stock/models.py:482 stock/templates/stock/location.html:12
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:491
+#: stock/models.py:485
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:498
+#: stock/models.py:492
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:503 stock/templates/stock/item_base.html:299
+#: stock/models.py:497 stock/templates/stock/item_base.html:299
msgid "Installed In"
msgstr ""
-#: stock/models.py:506
+#: stock/models.py:500
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:522
+#: stock/models.py:516
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:536
+#: stock/models.py:530
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:540
+#: stock/models.py:534
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:549
+#: stock/models.py:543
msgid "Source Build"
msgstr ""
-#: stock/models.py:551
+#: stock/models.py:545
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:562
+#: stock/models.py:556
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:565
+#: stock/models.py:559
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:571
+#: stock/models.py:565
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:578
+#: stock/models.py:572
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:591
+#: stock/models.py:585
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:591
+#: stock/models.py:585
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:601 stock/templates/stock/item.html:111
+#: stock/models.py:595 stock/templates/stock/item.html:111
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:610
+#: stock/models.py:604
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:620
-msgid "Scheduled for deletion"
-msgstr ""
-
-#: stock/models.py:621
-msgid "This StockItem will be deleted by the background worker"
-msgstr ""
-
-#: stock/models.py:1084
+#: stock/models.py:1072
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1090
+#: stock/models.py:1078
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1096
+#: stock/models.py:1084
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1099
+#: stock/models.py:1087
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1102
+#: stock/models.py:1090
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1109
+#: stock/models.py:1097
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1267
+#: stock/models.py:1255
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1765
+#: stock/models.py:1753
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1822
+#: stock/models.py:1810
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1828
+#: stock/models.py:1816
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1846
+#: stock/models.py:1834
msgid "Test name"
msgstr ""
-#: stock/models.py:1852 templates/js/translated/table_filters.js:266
+#: stock/models.py:1840 templates/js/translated/table_filters.js:271
msgid "Test result"
msgstr ""
-#: stock/models.py:1858
+#: stock/models.py:1846
msgid "Test output value"
msgstr ""
-#: stock/models.py:1865
+#: stock/models.py:1853
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1871
+#: stock/models.py:1859
msgid "Test notes"
msgstr ""
-#: stock/serializers.py:171
+#: stock/serializers.py:173
msgid "Purchase price of this stock item"
msgstr ""
-#: stock/serializers.py:178
+#: stock/serializers.py:180
msgid "Purchase currency of this stock item"
msgstr ""
-#: stock/serializers.py:292
+#: stock/serializers.py:294
msgid "Enter number of stock items to serialize"
msgstr ""
-#: stock/serializers.py:307
+#: stock/serializers.py:309
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:313
+#: stock/serializers.py:315
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:324 stock/serializers.py:691
+#: stock/serializers.py:326 stock/serializers.py:814
msgid "Destination stock location"
msgstr ""
-#: stock/serializers.py:331
+#: stock/serializers.py:333
msgid "Optional note field"
msgstr ""
-#: stock/serializers.py:344
+#: stock/serializers.py:346
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:561
+#: stock/serializers.py:573
+msgid "Part must be salable"
+msgstr ""
+
+#: stock/serializers.py:577
+msgid "Item is allocated to a sales order"
+msgstr ""
+
+#: stock/serializers.py:581
+msgid "Item is allocated to a build order"
+msgstr ""
+
+#: stock/serializers.py:611
+msgid "Customer to assign stock items"
+msgstr ""
+
+#: stock/serializers.py:617
+msgid "Selected company is not a customer"
+msgstr ""
+
+#: stock/serializers.py:625
+msgid "Stock assignment notes"
+msgstr ""
+
+#: stock/serializers.py:635 stock/serializers.py:722
+msgid "A list of stock items must be provided"
+msgstr ""
+
+#: stock/serializers.py:684
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:589
+#: stock/serializers.py:712
msgid "Stock transaction notes"
msgstr ""
-#: stock/serializers.py:599
-msgid "A list of stock items must be provided"
-msgstr ""
-
#: stock/templates/stock/item.html:18
msgid "Stock Tracking Information"
msgstr ""
@@ -5572,7 +5781,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:137 stock/views.py:515
+#: stock/templates/stock/item.html:137 stock/views.py:482
msgid "Install Stock Item"
msgstr ""
@@ -5632,7 +5841,7 @@ msgstr ""
msgid "Transfer stock"
msgstr ""
-#: stock/templates/stock/item_base.html:85
+#: stock/templates/stock/item_base.html:85 templates/stock_table.html:53
msgid "Assign to customer"
msgstr ""
@@ -5694,7 +5903,7 @@ msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:190
-#: templates/js/translated/table_filters.js:247
+#: templates/js/translated/table_filters.js:252
msgid "Expired"
msgstr ""
@@ -5704,12 +5913,12 @@ msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:192
-#: templates/js/translated/table_filters.js:253
+#: templates/js/translated/table_filters.js:258
msgid "Stale"
msgstr ""
#: stock/templates/stock/item_base.html:199
-#: templates/js/translated/stock.js:1371
+#: templates/js/translated/stock.js:1535
msgid "Last Updated"
msgstr ""
@@ -5738,13 +5947,11 @@ msgid "This stock item has not passed all required tests"
msgstr ""
#: stock/templates/stock/item_base.html:255
-#, python-format
-msgid "This stock item is allocated to Sales Order %(link)s (Quantity: %(qty)s)"
+msgid "This stock item is allocated to Sales Order"
msgstr ""
#: stock/templates/stock/item_base.html:263
-#, python-format
-msgid "This stock item is allocated to Build %(link)s (Quantity: %(qty)s)"
+msgid "This stock item is allocated to Build Order"
msgstr ""
#: stock/templates/stock/item_base.html:269
@@ -5760,7 +5967,7 @@ msgid "This stock item will be automatically deleted when all stock is depleted.
msgstr ""
#: stock/templates/stock/item_base.html:318
-#: templates/js/translated/build.js:1035
+#: templates/js/translated/build.js:1040
msgid "No location set"
msgstr ""
@@ -5910,7 +6117,7 @@ msgstr ""
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:912
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:879
msgid "Convert Stock Item"
msgstr ""
@@ -5935,8 +6142,7 @@ msgstr ""
msgid "Edit Stock Location"
msgstr ""
-#: stock/views.py:269 stock/views.py:891 stock/views.py:1017
-#: stock/views.py:1299
+#: stock/views.py:269 stock/views.py:858 stock/views.py:984 stock/views.py:1266
msgid "Owner is required (ownership control is enabled)"
msgstr ""
@@ -5945,86 +6151,78 @@ msgid "Stock Location QR code"
msgstr ""
#: stock/views.py:303
-msgid "Assign to Customer"
-msgstr ""
-
-#: stock/views.py:312
-msgid "Customer must be specified"
-msgstr ""
-
-#: stock/views.py:336
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:345
+#: stock/views.py:312
msgid "Specify a valid location"
msgstr ""
-#: stock/views.py:356
+#: stock/views.py:323
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:367
+#: stock/views.py:334
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:384
+#: stock/views.py:351
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:489
+#: stock/views.py:456
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:663
+#: stock/views.py:630
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:760 templates/js/translated/stock.js:730
+#: stock/views.py:727 templates/js/translated/stock.js:887
msgid "Confirm stock adjustment"
msgstr ""
-#: stock/views.py:771
+#: stock/views.py:738
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:793 templates/js/translated/stock.js:319
+#: stock/views.py:760 templates/js/translated/stock.js:323
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:943
+#: stock/views.py:910
msgid "Create new Stock Location"
msgstr ""
-#: stock/views.py:1044
+#: stock/views.py:1011
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1186 templates/js/translated/stock.js:299
+#: stock/views.py:1153 templates/js/translated/stock.js:303
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1268
+#: stock/views.py:1235
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1368
+#: stock/views.py:1335
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:1381
+#: stock/views.py:1348
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1392
+#: stock/views.py:1359
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1399
+#: stock/views.py:1366
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1408
+#: stock/views.py:1375
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -6044,6 +6242,14 @@ msgstr ""
msgid "The requested page does not exist"
msgstr ""
+#: templates/503.html:10 templates/503.html:35
+msgid "Site is in Maintenance"
+msgstr ""
+
+#: templates/503.html:41
+msgid "The site is currently in maintenance and should be up again soon!"
+msgstr ""
+
#: templates/InvenTree/index.html:7
msgid "Index"
msgstr ""
@@ -6153,7 +6359,7 @@ msgid "Server Settings"
msgstr ""
#: templates/InvenTree/settings/login.html:9
-#: templates/InvenTree/settings/sidebar.html:28
+#: templates/InvenTree/settings/sidebar.html:29
msgid "Login Settings"
msgstr ""
@@ -6161,6 +6367,24 @@ msgstr ""
msgid "Signup"
msgstr ""
+#: templates/InvenTree/settings/mixins/settings.html:4
+#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:118
+msgid "Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/mixins/urls.html:4
+msgid "URLs"
+msgstr ""
+
+#: templates/InvenTree/settings/mixins/urls.html:6
+#, python-format
+msgid "The Base-URL for this plugin is %(base)s."
+msgstr ""
+
+#: templates/InvenTree/settings/mixins/urls.html:21
+msgid "open in new tab"
+msgstr ""
+
#: templates/InvenTree/settings/part.html:7
msgid "Part Settings"
msgstr ""
@@ -6177,6 +6401,126 @@ msgstr ""
msgid "Part Parameter Templates"
msgstr ""
+#: templates/InvenTree/settings/plugin.html:10
+msgid "Plugin Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:16
+msgid "Changing the settings below require you to immediatly restart InvenTree. Do not change this while under active usage."
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:32
+msgid "Plugin list"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:37
+#: templates/js/translated/plugin.js:15
+msgid "Install Plugin"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:46 templates/navbar.html:111
+#: users/models.py:39
+msgid "Admin"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:48
+#: templates/InvenTree/settings/plugin_settings.html:28
+msgid "Author"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:50
+#: templates/InvenTree/settings/plugin_settings.html:43
+msgid "Version"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:73
+#, python-format
+msgid "has %(name)s"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:91
+msgid "Inactive plugins"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:114
+msgid "Plugin Error Stack"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:123
+msgid "Stage"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:125
+msgid "Message"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:10
+#, python-format
+msgid "Plugin details for %(name)s"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:17
+msgid "Plugin information"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:48
+msgid "no version information supplied"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:62
+msgid "License"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:70
+msgid "The code information is pulled from the latest git commit for this plugin. It might not reflect official version numbers or information but the actual code running."
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:74
+msgid "Package information"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:80
+msgid "Installation method"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:83
+msgid "This plugin was installed as a package"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:85
+msgid "This plugin was found in a local InvenTree path"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:91
+msgid "Installation path"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:97
+msgid "Commit Author"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:101
+#: templates/about.html:47
+msgid "Commit Date"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:105
+#: templates/about.html:40
+msgid "Commit Hash"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:109
+msgid "Commit Message"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:114
+msgid "Sign Status"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:119
+msgid "Sign Key"
+msgstr ""
+
#: templates/InvenTree/settings/po.html:7
msgid "Purchase Order Settings"
msgstr ""
@@ -6194,86 +6538,82 @@ msgstr ""
msgid "Edit setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:11 templates/navbar.html:93
-msgid "Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/settings.html:65
+#: templates/InvenTree/settings/settings.html:74
msgid "Edit Global Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:65
+#: templates/InvenTree/settings/settings.html:74
msgid "Edit User Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:148
+#: templates/InvenTree/settings/settings.html:157
msgid "No category parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:170
-#: templates/InvenTree/settings/settings.html:269
+#: templates/InvenTree/settings/settings.html:179
+#: templates/InvenTree/settings/settings.html:278
msgid "Edit Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:171
-#: templates/InvenTree/settings/settings.html:270
+#: templates/InvenTree/settings/settings.html:180
+#: templates/InvenTree/settings/settings.html:279
msgid "Delete Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:249
+#: templates/InvenTree/settings/settings.html:258
msgid "No part parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:253
+#: templates/InvenTree/settings/settings.html:262
msgid "ID"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:5
+#: templates/InvenTree/settings/sidebar.html:6
#: templates/InvenTree/settings/user_settings.html:9
msgid "User Settings"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:8
+#: templates/InvenTree/settings/sidebar.html:9
#: templates/InvenTree/settings/user.html:12
msgid "Account Settings"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:10
+#: templates/InvenTree/settings/sidebar.html:11
#: templates/InvenTree/settings/user_display.html:9
msgid "Display Settings"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:12
+#: templates/InvenTree/settings/sidebar.html:13
msgid "Home Page"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:14
+#: templates/InvenTree/settings/sidebar.html:15
#: templates/InvenTree/settings/user_search.html:9
msgid "Search Settings"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:16
+#: templates/InvenTree/settings/sidebar.html:17
msgid "Label Printing"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:18
-#: templates/InvenTree/settings/sidebar.html:34
+#: templates/InvenTree/settings/sidebar.html:19
+#: templates/InvenTree/settings/sidebar.html:35
msgid "Reporting"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:23
+#: templates/InvenTree/settings/sidebar.html:24
msgid "Global Settings"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:26
+#: templates/InvenTree/settings/sidebar.html:27
msgid "Server Configuration"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:32
+#: templates/InvenTree/settings/sidebar.html:33
msgid "Currencies"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:38
+#: templates/InvenTree/settings/sidebar.html:39
msgid "Categories"
msgstr ""
@@ -6491,8 +6831,8 @@ msgstr ""
#: templates/about.html:11 templates/about.html:105
#: templates/js/translated/bom.js:283 templates/js/translated/modals.js:53
-#: templates/js/translated/modals.js:567 templates/js/translated/modals.js:661
-#: templates/js/translated/modals.js:964 templates/modals.html:15
+#: templates/js/translated/modals.js:568 templates/js/translated/modals.js:662
+#: templates/js/translated/modals.js:965 templates/modals.html:15
#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
msgid "Close"
msgstr ""
@@ -6513,14 +6853,6 @@ msgstr ""
msgid "Update Available"
msgstr ""
-#: templates/about.html:40
-msgid "Commit Hash"
-msgstr ""
-
-#: templates/about.html:47
-msgid "Commit Date"
-msgstr ""
-
#: templates/about.html:53
msgid "InvenTree Documentation"
msgstr ""
@@ -6718,8 +7050,9 @@ msgstr ""
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1129
-#: templates/js/translated/build.js:1749
+#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1134
+#: templates/js/translated/build.js:1755
+#: templates/js/translated/table_filters.js:178
msgid "Available"
msgstr ""
@@ -6765,11 +7098,11 @@ msgstr ""
msgid "Remote image must not exceed maximum allowable file size"
msgstr ""
-#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1034
+#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1035
msgid "No Response"
msgstr ""
-#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1035
+#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1036
msgid "No response from the InvenTree server"
msgstr ""
@@ -6781,35 +7114,35 @@ msgstr ""
msgid "API request returned error code 400"
msgstr ""
-#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1044
+#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1045
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1045
+#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1046
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1049
+#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1050
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1050
+#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1051
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1054
+#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1055
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1055
+#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1056
msgid "The requested resource could not be located on the server"
msgstr ""
-#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1059
+#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1060
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1060
+#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1061
msgid "Connection timeout while requesting data from server"
msgstr ""
@@ -6878,7 +7211,7 @@ msgid "Unknown response from server"
msgstr ""
#: templates/js/translated/barcode.js:140
-#: templates/js/translated/modals.js:1024
+#: templates/js/translated/modals.js:1025
msgid "Invalid server response"
msgstr ""
@@ -6886,7 +7219,7 @@ msgstr ""
msgid "Scan barcode data below"
msgstr ""
-#: templates/js/translated/barcode.js:280 templates/navbar.html:69
+#: templates/js/translated/barcode.js:280 templates/navbar.html:94
msgid "Scan Barcode"
msgstr ""
@@ -6906,7 +7239,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:682
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:839
msgid "Remove stock item"
msgstr ""
@@ -6976,7 +7309,7 @@ msgstr ""
msgid "Substitutes Available"
msgstr ""
-#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1111
+#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1116
msgid "Variant stock allowed"
msgstr ""
@@ -7000,11 +7333,6 @@ msgstr ""
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1183
-#: templates/js/translated/order.js:1319
-msgid "Actions"
-msgstr ""
-
#: templates/js/translated/bom.js:616
msgid "Validate BOM Item"
msgstr ""
@@ -7025,7 +7353,7 @@ msgstr ""
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:718 templates/js/translated/build.js:855
+#: templates/js/translated/bom.js:718 templates/js/translated/build.js:860
msgid "No BOM items found"
msgstr ""
@@ -7033,7 +7361,7 @@ msgstr ""
msgid "Are you sure you want to delete this BOM item?"
msgstr ""
-#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1095
+#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1100
msgid "Required Part"
msgstr ""
@@ -7041,165 +7369,165 @@ msgstr ""
msgid "Inherited from parent BOM"
msgstr ""
-#: templates/js/translated/build.js:78
+#: templates/js/translated/build.js:83
msgid "Edit Build Order"
msgstr ""
-#: templates/js/translated/build.js:112
+#: templates/js/translated/build.js:117
msgid "Create Build Order"
msgstr ""
-#: templates/js/translated/build.js:133
+#: templates/js/translated/build.js:138
msgid "Allocate stock items to this build output"
msgstr ""
-#: templates/js/translated/build.js:144
+#: templates/js/translated/build.js:149
msgid "Unallocate stock from build output"
msgstr ""
-#: templates/js/translated/build.js:153
+#: templates/js/translated/build.js:158
msgid "Complete build output"
msgstr ""
-#: templates/js/translated/build.js:161
+#: templates/js/translated/build.js:166
msgid "Delete build output"
msgstr ""
-#: templates/js/translated/build.js:184
+#: templates/js/translated/build.js:189
msgid "Are you sure you wish to unallocate stock items from this build?"
msgstr ""
-#: templates/js/translated/build.js:202
+#: templates/js/translated/build.js:207
msgid "Unallocate Stock Items"
msgstr ""
-#: templates/js/translated/build.js:220
+#: templates/js/translated/build.js:225
msgid "Select Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:221
+#: templates/js/translated/build.js:226
msgid "At least one build output must be selected"
msgstr ""
-#: templates/js/translated/build.js:275
+#: templates/js/translated/build.js:280
msgid "Output"
msgstr ""
-#: templates/js/translated/build.js:291
+#: templates/js/translated/build.js:296
msgid "Complete Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:386
+#: templates/js/translated/build.js:391
msgid "No build order allocations found"
msgstr ""
-#: templates/js/translated/build.js:424 templates/js/translated/order.js:1193
+#: templates/js/translated/build.js:429 templates/js/translated/order.js:1848
msgid "Location not specified"
msgstr ""
-#: templates/js/translated/build.js:603
+#: templates/js/translated/build.js:608
msgid "No active build outputs found"
msgstr ""
-#: templates/js/translated/build.js:1052 templates/js/translated/build.js:1760
-#: templates/js/translated/order.js:1326
+#: templates/js/translated/build.js:1057 templates/js/translated/build.js:1766
+#: templates/js/translated/order.js:1982
msgid "Edit stock allocation"
msgstr ""
-#: templates/js/translated/build.js:1054 templates/js/translated/build.js:1761
-#: templates/js/translated/order.js:1327
+#: templates/js/translated/build.js:1059 templates/js/translated/build.js:1767
+#: templates/js/translated/order.js:1983
msgid "Delete stock allocation"
msgstr ""
-#: templates/js/translated/build.js:1072
+#: templates/js/translated/build.js:1077
msgid "Edit Allocation"
msgstr ""
-#: templates/js/translated/build.js:1082
+#: templates/js/translated/build.js:1087
msgid "Remove Allocation"
msgstr ""
-#: templates/js/translated/build.js:1107
+#: templates/js/translated/build.js:1112
msgid "Substitute parts available"
msgstr ""
-#: templates/js/translated/build.js:1124
+#: templates/js/translated/build.js:1129
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:1134 templates/js/translated/build.js:1360
-#: templates/js/translated/build.js:1756 templates/js/translated/order.js:1556
+#: templates/js/translated/build.js:1139 templates/js/translated/build.js:1365
+#: templates/js/translated/build.js:1762 templates/js/translated/order.js:2227
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:1190 templates/js/translated/order.js:1610
+#: templates/js/translated/build.js:1195 templates/js/translated/order.js:2307
msgid "Build stock"
msgstr ""
-#: templates/js/translated/build.js:1194 templates/stock_table.html:52
+#: templates/js/translated/build.js:1199 templates/stock_table.html:52
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:1197 templates/js/translated/order.js:1603
+#: templates/js/translated/build.js:1202 templates/js/translated/order.js:2300
msgid "Allocate stock"
msgstr ""
-#: templates/js/translated/build.js:1262
+#: templates/js/translated/build.js:1267 templates/js/translated/order.js:1499
msgid "Specify stock allocation quantity"
msgstr ""
-#: templates/js/translated/build.js:1333 templates/js/translated/label.js:134
-#: templates/js/translated/report.js:225
+#: templates/js/translated/build.js:1338 templates/js/translated/label.js:134
+#: templates/js/translated/order.js:1550 templates/js/translated/report.js:225
msgid "Select Parts"
msgstr ""
-#: templates/js/translated/build.js:1334
+#: templates/js/translated/build.js:1339 templates/js/translated/order.js:1551
msgid "You must select at least one part to allocate"
msgstr ""
-#: templates/js/translated/build.js:1348
+#: templates/js/translated/build.js:1353 templates/js/translated/order.js:1565
msgid "Select source location (leave blank to take from all locations)"
msgstr ""
-#: templates/js/translated/build.js:1377
+#: templates/js/translated/build.js:1382 templates/js/translated/order.js:1600
msgid "Confirm stock allocation"
msgstr ""
-#: templates/js/translated/build.js:1378
+#: templates/js/translated/build.js:1383
msgid "Allocate Stock Items to Build Order"
msgstr ""
-#: templates/js/translated/build.js:1389
+#: templates/js/translated/build.js:1394 templates/js/translated/order.js:1613
msgid "No matching stock locations"
msgstr ""
-#: templates/js/translated/build.js:1451
+#: templates/js/translated/build.js:1464 templates/js/translated/order.js:1690
msgid "No matching stock items"
msgstr ""
-#: templates/js/translated/build.js:1576
+#: templates/js/translated/build.js:1582
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:1593 templates/js/translated/part.js:1147
-#: templates/js/translated/part.js:1558 templates/js/translated/stock.js:1176
-#: templates/js/translated/stock.js:1953
+#: templates/js/translated/build.js:1599 templates/js/translated/part.js:1147
+#: templates/js/translated/part.js:1558 templates/js/translated/stock.js:1333
+#: templates/js/translated/stock.js:2128
msgid "Select"
msgstr ""
-#: templates/js/translated/build.js:1613
+#: templates/js/translated/build.js:1619
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1674 templates/js/translated/stock.js:2172
+#: templates/js/translated/build.js:1680 templates/js/translated/stock.js:2347
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:1686
+#: templates/js/translated/build.js:1692
msgid "No information"
msgstr ""
-#: templates/js/translated/build.js:1737
+#: templates/js/translated/build.js:1743
msgid "No parts allocated for"
msgstr ""
@@ -7219,7 +7547,7 @@ msgstr ""
msgid "Delete Manufacturer Part"
msgstr ""
-#: templates/js/translated/company.js:165 templates/js/translated/order.js:90
+#: templates/js/translated/company.js:165 templates/js/translated/order.js:248
msgid "Add Supplier"
msgstr ""
@@ -7354,20 +7682,20 @@ msgstr ""
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1072 templates/modals.html:19
+#: templates/js/translated/forms.js:1078 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1463
+#: templates/js/translated/forms.js:1469
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1667
+#: templates/js/translated/forms.js:1673
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1884
+#: templates/js/translated/forms.js:1893
msgid "Clear input"
msgstr ""
@@ -7380,7 +7708,7 @@ msgid "NO"
msgstr ""
#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:706
+#: templates/js/translated/stock.js:863
msgid "Select Stock Items"
msgstr ""
@@ -7429,62 +7757,62 @@ msgstr ""
msgid "Select Label Template"
msgstr ""
-#: templates/js/translated/modals.js:75 templates/js/translated/modals.js:119
-#: templates/js/translated/modals.js:593
+#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:120
+#: templates/js/translated/modals.js:594
msgid "Cancel"
msgstr ""
-#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:118
-#: templates/js/translated/modals.js:660 templates/js/translated/modals.js:963
+#: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119
+#: templates/js/translated/modals.js:661 templates/js/translated/modals.js:964
#: templates/modals.html:28 templates/modals.html:51
msgid "Submit"
msgstr ""
-#: templates/js/translated/modals.js:117
+#: templates/js/translated/modals.js:118
msgid "Form Title"
msgstr ""
-#: templates/js/translated/modals.js:380
+#: templates/js/translated/modals.js:381
msgid "Waiting for server..."
msgstr ""
-#: templates/js/translated/modals.js:539
+#: templates/js/translated/modals.js:540
msgid "Show Error Information"
msgstr ""
-#: templates/js/translated/modals.js:592
+#: templates/js/translated/modals.js:593
msgid "Accept"
msgstr ""
-#: templates/js/translated/modals.js:649
+#: templates/js/translated/modals.js:650
msgid "Loading Data"
msgstr ""
-#: templates/js/translated/modals.js:915
+#: templates/js/translated/modals.js:916
msgid "Invalid response from server"
msgstr ""
-#: templates/js/translated/modals.js:915
+#: templates/js/translated/modals.js:916
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/translated/modals.js:927
+#: templates/js/translated/modals.js:928
msgid "Error posting form data"
msgstr ""
-#: templates/js/translated/modals.js:1024
+#: templates/js/translated/modals.js:1025
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/translated/modals.js:1039
+#: templates/js/translated/modals.js:1040
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/translated/modals.js:1040
+#: templates/js/translated/modals.js:1041
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/translated/modals.js:1063
+#: templates/js/translated/modals.js:1064
msgid "Error requesting form data"
msgstr ""
@@ -7512,176 +7840,245 @@ msgstr ""
msgid "Order ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:256
+#: templates/js/translated/model_renderers.js:253
+msgid "Shipment ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:273
msgid "Category ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:293
+#: templates/js/translated/model_renderers.js:310
msgid "Manufacturer Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:322
+#: templates/js/translated/model_renderers.js:339
msgid "Supplier Part ID"
msgstr ""
-#: templates/js/translated/order.js:48
+#: templates/js/translated/order.js:75
+msgid "No stock items have been allocated to this shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:80
+msgid "The following stock items will be shipped"
+msgstr ""
+
+#: templates/js/translated/order.js:120
+msgid "Complete Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:126
+msgid "Confirm Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:181
+msgid "Create New Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:206
msgid "Add Customer"
msgstr ""
-#: templates/js/translated/order.js:73
+#: templates/js/translated/order.js:231
msgid "Create Sales Order"
msgstr ""
-#: templates/js/translated/order.js:208
+#: templates/js/translated/order.js:366
msgid "Export Order"
msgstr ""
-#: templates/js/translated/order.js:211 templates/js/translated/stock.js:505
+#: templates/js/translated/order.js:369 templates/js/translated/stock.js:509
msgid "Format"
msgstr ""
-#: templates/js/translated/order.js:212 templates/js/translated/stock.js:506
+#: templates/js/translated/order.js:370 templates/js/translated/stock.js:510
msgid "Select file format"
msgstr ""
-#: templates/js/translated/order.js:300
+#: templates/js/translated/order.js:460
msgid "Select Line Items"
msgstr ""
-#: templates/js/translated/order.js:301
+#: templates/js/translated/order.js:461
msgid "At least one line item must be selected"
msgstr ""
-#: templates/js/translated/order.js:326
+#: templates/js/translated/order.js:486
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:360 templates/js/translated/stock.js:1755
+#: templates/js/translated/order.js:520 templates/js/translated/stock.js:1930
msgid "Stock Status"
msgstr ""
-#: templates/js/translated/order.js:427
+#: templates/js/translated/order.js:587
msgid "Order Code"
msgstr ""
-#: templates/js/translated/order.js:428
+#: templates/js/translated/order.js:588
msgid "Ordered"
msgstr ""
-#: templates/js/translated/order.js:430
+#: templates/js/translated/order.js:590
msgid "Receive"
msgstr ""
-#: templates/js/translated/order.js:449
+#: templates/js/translated/order.js:609
msgid "Confirm receipt of items"
msgstr ""
-#: templates/js/translated/order.js:450
+#: templates/js/translated/order.js:610
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:627 templates/js/translated/part.js:746
+#: templates/js/translated/order.js:790 templates/js/translated/part.js:746
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:659 templates/js/translated/order.js:1062
+#: templates/js/translated/order.js:815 templates/js/translated/order.js:1230
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:771 templates/js/translated/order.js:1645
+#: templates/js/translated/order.js:936 templates/js/translated/order.js:2356
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:783 templates/js/translated/order.js:1656
+#: templates/js/translated/order.js:948 templates/js/translated/order.js:2367
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/order.js:822
+#: templates/js/translated/order.js:987
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:849 templates/js/translated/order.js:1466
+#: templates/js/translated/order.js:1014 templates/js/translated/order.js:2138
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:903 templates/js/translated/order.js:1491
+#: templates/js/translated/order.js:1068 templates/js/translated/order.js:2163
#: templates/js/translated/part.js:1775 templates/js/translated/part.js:1986
msgid "Unit Price"
msgstr ""
-#: templates/js/translated/order.js:918 templates/js/translated/order.js:1507
+#: templates/js/translated/order.js:1083 templates/js/translated/order.js:2179
msgid "Total Price"
msgstr ""
-#: templates/js/translated/order.js:996 templates/js/translated/order.js:1616
+#: templates/js/translated/order.js:1161 templates/js/translated/order.js:2313
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:997
+#: templates/js/translated/order.js:1162 templates/js/translated/order.js:2317
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:1001 templates/js/translated/part.js:878
+#: templates/js/translated/order.js:1166 templates/js/translated/part.js:878
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:1038
+#: templates/js/translated/order.js:1206
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:1076
+#: templates/js/translated/order.js:1244
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:1154
+#: templates/js/translated/order.js:1322
+msgid "Edit shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1325
+msgid "Complete shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1330
+msgid "Delete shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1350
+msgid "Edit Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1367
+msgid "Delete Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1401
+msgid "No matching shipments found"
+msgstr ""
+
+#: templates/js/translated/order.js:1411
+msgid "Shipment Reference"
+msgstr ""
+
+#: templates/js/translated/order.js:1435
+msgid "Not shipped"
+msgstr ""
+
+#: templates/js/translated/order.js:1441
+msgid "Tracking"
+msgstr ""
+
+#: templates/js/translated/order.js:1601
+msgid "Allocate Stock Items to Sales Order"
+msgstr ""
+
+#: templates/js/translated/order.js:1809
msgid "No sales order allocations found"
msgstr ""
-#: templates/js/translated/order.js:1247
+#: templates/js/translated/order.js:1898
msgid "Edit Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1264
+#: templates/js/translated/order.js:1915
msgid "Confirm Delete Operation"
msgstr ""
-#: templates/js/translated/order.js:1265
+#: templates/js/translated/order.js:1916
msgid "Delete Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1307
+#: templates/js/translated/order.js:1959 templates/js/translated/order.js:2048
+#: templates/js/translated/stock.js:1249
+msgid "Shipped to customer"
+msgstr ""
+
+#: templates/js/translated/order.js:1967 templates/js/translated/order.js:2057
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:1556
-msgid "Fulfilled"
-msgstr ""
-
-#: templates/js/translated/order.js:1600
+#: templates/js/translated/order.js:2297
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:1606
+#: templates/js/translated/order.js:2303
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:1613 templates/js/translated/order.js:1792
+#: templates/js/translated/order.js:2310 templates/js/translated/order.js:2476
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:1617
-msgid "Delete line item "
+#: templates/js/translated/order.js:2321
+msgid "Cannot be deleted as items have been shipped"
msgstr ""
-#: templates/js/translated/order.js:1740
-msgid "Allocate Stock Item"
+#: templates/js/translated/order.js:2324
+msgid "Cannot be deleted as items have been allocated"
msgstr ""
-#: templates/js/translated/order.js:1800
+#: templates/js/translated/order.js:2382
+msgid "Allocate Serial Numbers"
+msgstr ""
+
+#: templates/js/translated/order.js:2484
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:1814
+#: templates/js/translated/order.js:2498
msgid "No matching line items"
msgstr ""
@@ -7826,12 +8223,12 @@ msgid "No category"
msgstr ""
#: templates/js/translated/part.js:1230
-#: templates/js/translated/table_filters.js:381
+#: templates/js/translated/table_filters.js:412
msgid "Low stock"
msgstr ""
#: templates/js/translated/part.js:1321 templates/js/translated/part.js:1493
-#: templates/js/translated/stock.js:1914
+#: templates/js/translated/stock.js:2089
msgid "Display as list"
msgstr ""
@@ -7839,7 +8236,7 @@ msgstr ""
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1512 templates/js/translated/stock.js:1933
+#: templates/js/translated/part.js:1512 templates/js/translated/stock.js:2108
msgid "Display as tree"
msgstr ""
@@ -7847,7 +8244,7 @@ msgstr ""
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:1590 templates/js/translated/stock.js:1977
+#: templates/js/translated/part.js:1590 templates/js/translated/stock.js:2152
msgid "Path"
msgstr ""
@@ -7855,11 +8252,11 @@ msgstr ""
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1685 templates/js/translated/stock.js:898
+#: templates/js/translated/part.js:1685 templates/js/translated/stock.js:1055
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1686 templates/js/translated/stock.js:899
+#: templates/js/translated/part.js:1686 templates/js/translated/stock.js:1056
msgid "Delete test result"
msgstr ""
@@ -7898,6 +8295,10 @@ msgstr ""
msgid "Single Price Difference"
msgstr ""
+#: templates/js/translated/plugin.js:22
+msgid "The Plugin was installed"
+msgstr ""
+
#: templates/js/translated/report.js:67
msgid "items selected"
msgstr ""
@@ -7964,300 +8365,316 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/stock.js:71
+#: templates/js/translated/stock.js:72
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:89 templates/js/translated/stock.js:168
+#: templates/js/translated/stock.js:90 templates/js/translated/stock.js:172
msgid "Next available serial number"
msgstr ""
-#: templates/js/translated/stock.js:91 templates/js/translated/stock.js:170
+#: templates/js/translated/stock.js:92 templates/js/translated/stock.js:174
msgid "Latest serial number"
msgstr ""
-#: templates/js/translated/stock.js:105
+#: templates/js/translated/stock.js:100
+msgid "Confirm Stock Serialization"
+msgstr ""
+
+#: templates/js/translated/stock.js:109
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:141
+#: templates/js/translated/stock.js:145
msgid "New Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:181
+#: templates/js/translated/stock.js:185
msgid "This part cannot be serialized"
msgstr ""
-#: templates/js/translated/stock.js:220
+#: templates/js/translated/stock.js:224
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: templates/js/translated/stock.js:226
+#: templates/js/translated/stock.js:230
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: templates/js/translated/stock.js:369
+#: templates/js/translated/stock.js:373
msgid "Created new stock item"
msgstr ""
-#: templates/js/translated/stock.js:382
+#: templates/js/translated/stock.js:386
msgid "Created multiple stock items"
msgstr ""
-#: templates/js/translated/stock.js:407
+#: templates/js/translated/stock.js:411
msgid "Find Serial Number"
msgstr ""
-#: templates/js/translated/stock.js:411 templates/js/translated/stock.js:412
+#: templates/js/translated/stock.js:415 templates/js/translated/stock.js:416
msgid "Enter serial number"
msgstr ""
-#: templates/js/translated/stock.js:428
+#: templates/js/translated/stock.js:432
msgid "Enter a serial number"
msgstr ""
-#: templates/js/translated/stock.js:448
+#: templates/js/translated/stock.js:452
msgid "No matching serial number"
msgstr ""
-#: templates/js/translated/stock.js:457
+#: templates/js/translated/stock.js:461
msgid "More than one matching result found"
msgstr ""
-#: templates/js/translated/stock.js:502
+#: templates/js/translated/stock.js:506
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:513
+#: templates/js/translated/stock.js:517
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:514
+#: templates/js/translated/stock.js:518
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:556
+#: templates/js/translated/stock.js:627
+msgid "Confirm stock assignment"
+msgstr ""
+
+#: templates/js/translated/stock.js:628
+msgid "Assign Stock to Customer"
+msgstr ""
+
+#: templates/js/translated/stock.js:713
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:557
+#: templates/js/translated/stock.js:714
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:563
+#: templates/js/translated/stock.js:720
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:564
+#: templates/js/translated/stock.js:721
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:568
+#: templates/js/translated/stock.js:725
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:569
+#: templates/js/translated/stock.js:726
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:573
+#: templates/js/translated/stock.js:730
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:574 users/models.py:200
+#: templates/js/translated/stock.js:731 users/models.py:202
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:578 templates/stock_table.html:56
+#: templates/js/translated/stock.js:735 templates/stock_table.html:57
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:667
+#: templates/js/translated/stock.js:824
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:667
+#: templates/js/translated/stock.js:824
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:707
+#: templates/js/translated/stock.js:864
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:865
+#: templates/js/translated/stock.js:1022
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:867
+#: templates/js/translated/stock.js:1024
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:872
+#: templates/js/translated/stock.js:1029
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:894
+#: templates/js/translated/stock.js:1051
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:920
+#: templates/js/translated/stock.js:1077
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:977
+#: templates/js/translated/stock.js:1134
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:1084
+#: templates/js/translated/stock.js:1241
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:1088
+#: templates/js/translated/stock.js:1245
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:1092
-msgid "Shipped to customer"
-msgstr ""
-
-#: templates/js/translated/stock.js:1096
+#: templates/js/translated/stock.js:1253
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:1102
+#: templates/js/translated/stock.js:1259
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:1260
+#: templates/js/translated/stock.js:1417
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1265
+#: templates/js/translated/stock.js:1422
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1268
+#: templates/js/translated/stock.js:1425
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1272
+#: templates/js/translated/stock.js:1429
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1274
+#: templates/js/translated/stock.js:1431
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1278
-msgid "Stock item has been allocated"
+#: templates/js/translated/stock.js:1437
+msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1282
+#: templates/js/translated/stock.js:1439
+msgid "Stock item has been fully allocated"
+msgstr ""
+
+#: templates/js/translated/stock.js:1441
+msgid "Stock item has been partially allocated"
+msgstr ""
+
+#: templates/js/translated/stock.js:1446
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1289
+#: templates/js/translated/stock.js:1453
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1291
+#: templates/js/translated/stock.js:1455
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1293
+#: templates/js/translated/stock.js:1457
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1297
-#: templates/js/translated/table_filters.js:183
+#: templates/js/translated/stock.js:1461
+#: templates/js/translated/table_filters.js:188
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1347
+#: templates/js/translated/stock.js:1511
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1420
+#: templates/js/translated/stock.js:1584
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1458
+#: templates/js/translated/stock.js:1622
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1479 templates/js/translated/stock.js:1527
+#: templates/js/translated/stock.js:1643 templates/js/translated/stock.js:1691
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1567
+#: templates/js/translated/stock.js:1731
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1594
+#: templates/js/translated/stock.js:1758
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:1596
+#: templates/js/translated/stock.js:1760
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:1770
+#: templates/js/translated/stock.js:1945
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:1784
+#: templates/js/translated/stock.js:1959
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:1785
+#: templates/js/translated/stock.js:1960
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:2009
+#: templates/js/translated/stock.js:2184
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:2031
+#: templates/js/translated/stock.js:2206
msgid "Details"
msgstr ""
-#: templates/js/translated/stock.js:2056
+#: templates/js/translated/stock.js:2231
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2075
+#: templates/js/translated/stock.js:2250
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2094
+#: templates/js/translated/stock.js:2269
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2112
+#: templates/js/translated/stock.js:2287
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2135
+#: templates/js/translated/stock.js:2310
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2143
+#: templates/js/translated/stock.js:2318
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2184
+#: templates/js/translated/stock.js:2359
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2185
+#: templates/js/translated/stock.js:2360
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2236
+#: templates/js/translated/stock.js:2411
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2287
+#: templates/js/translated/stock.js:2462
msgid "Uninstall Stock Item"
msgstr ""
@@ -8278,7 +8695,7 @@ msgid "Allow Variant Stock"
msgstr ""
#: templates/js/translated/table_filters.js:110
-#: templates/js/translated/table_filters.js:178
+#: templates/js/translated/table_filters.js:183
msgid "Include sublocations"
msgstr ""
@@ -8288,54 +8705,54 @@ msgstr ""
#: templates/js/translated/table_filters.js:121
#: templates/js/translated/table_filters.js:122
-#: templates/js/translated/table_filters.js:358
+#: templates/js/translated/table_filters.js:389
msgid "Include subcategories"
msgstr ""
#: templates/js/translated/table_filters.js:126
-#: templates/js/translated/table_filters.js:393
+#: templates/js/translated/table_filters.js:424
msgid "Subscribed"
msgstr ""
#: templates/js/translated/table_filters.js:136
-#: templates/js/translated/table_filters.js:213
+#: templates/js/translated/table_filters.js:218
msgid "Is Serialized"
msgstr ""
#: templates/js/translated/table_filters.js:139
-#: templates/js/translated/table_filters.js:220
+#: templates/js/translated/table_filters.js:225
msgid "Serial number GTE"
msgstr ""
#: templates/js/translated/table_filters.js:140
-#: templates/js/translated/table_filters.js:221
+#: templates/js/translated/table_filters.js:226
msgid "Serial number greater than or equal to"
msgstr ""
#: templates/js/translated/table_filters.js:143
-#: templates/js/translated/table_filters.js:224
+#: templates/js/translated/table_filters.js:229
msgid "Serial number LTE"
msgstr ""
#: templates/js/translated/table_filters.js:144
-#: templates/js/translated/table_filters.js:225
+#: templates/js/translated/table_filters.js:230
msgid "Serial number less than or equal to"
msgstr ""
#: templates/js/translated/table_filters.js:147
#: templates/js/translated/table_filters.js:148
-#: templates/js/translated/table_filters.js:216
-#: templates/js/translated/table_filters.js:217
+#: templates/js/translated/table_filters.js:221
+#: templates/js/translated/table_filters.js:222
msgid "Serial number"
msgstr ""
#: templates/js/translated/table_filters.js:152
-#: templates/js/translated/table_filters.js:234
+#: templates/js/translated/table_filters.js:239
msgid "Batch code"
msgstr ""
#: templates/js/translated/table_filters.js:163
-#: templates/js/translated/table_filters.js:348
+#: templates/js/translated/table_filters.js:379
msgid "Active parts"
msgstr ""
@@ -8356,101 +8773,111 @@ msgid "Item has been allocated"
msgstr ""
#: templates/js/translated/table_filters.js:179
-msgid "Include stock in sublocations"
+msgid "Stock is available for use"
msgstr ""
#: templates/js/translated/table_filters.js:184
-msgid "Show stock items which are depleted"
+msgid "Include stock in sublocations"
msgstr ""
#: templates/js/translated/table_filters.js:189
-msgid "Show items which are in stock"
-msgstr ""
-
-#: templates/js/translated/table_filters.js:193
-msgid "In Production"
+msgid "Show stock items which are depleted"
msgstr ""
#: templates/js/translated/table_filters.js:194
-msgid "Show items which are in production"
+msgid "Show items which are in stock"
msgstr ""
#: templates/js/translated/table_filters.js:198
-msgid "Include Variants"
+msgid "In Production"
msgstr ""
#: templates/js/translated/table_filters.js:199
-msgid "Include stock items for variant parts"
+msgid "Show items which are in production"
msgstr ""
#: templates/js/translated/table_filters.js:203
-msgid "Installed"
+msgid "Include Variants"
msgstr ""
#: templates/js/translated/table_filters.js:204
-msgid "Show stock items which are installed in another item"
+msgid "Include stock items for variant parts"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:208
+msgid "Installed"
msgstr ""
#: templates/js/translated/table_filters.js:209
+msgid "Show stock items which are installed in another item"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:214
msgid "Show items which have been assigned to a customer"
msgstr ""
-#: templates/js/translated/table_filters.js:229
-#: templates/js/translated/table_filters.js:230
+#: templates/js/translated/table_filters.js:234
+#: templates/js/translated/table_filters.js:235
msgid "Stock status"
msgstr ""
-#: templates/js/translated/table_filters.js:238
+#: templates/js/translated/table_filters.js:243
msgid "Has purchase price"
msgstr ""
-#: templates/js/translated/table_filters.js:239
+#: templates/js/translated/table_filters.js:244
msgid "Show stock items which have a purchase price set"
msgstr ""
-#: templates/js/translated/table_filters.js:248
+#: templates/js/translated/table_filters.js:253
msgid "Show stock items which have expired"
msgstr ""
-#: templates/js/translated/table_filters.js:254
+#: templates/js/translated/table_filters.js:259
msgid "Show stock which is close to expiring"
msgstr ""
-#: templates/js/translated/table_filters.js:285
+#: templates/js/translated/table_filters.js:290
msgid "Build status"
msgstr ""
-#: templates/js/translated/table_filters.js:313
-#: templates/js/translated/table_filters.js:330
+#: templates/js/translated/table_filters.js:303
+#: templates/js/translated/table_filters.js:344
+msgid "Assigned to me"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:320
+#: templates/js/translated/table_filters.js:331
+#: templates/js/translated/table_filters.js:352
msgid "Order status"
msgstr ""
-#: templates/js/translated/table_filters.js:318
-#: templates/js/translated/table_filters.js:335
+#: templates/js/translated/table_filters.js:336
+#: templates/js/translated/table_filters.js:357
msgid "Outstanding"
msgstr ""
-#: templates/js/translated/table_filters.js:359
+#: templates/js/translated/table_filters.js:390
msgid "Include parts in subcategories"
msgstr ""
-#: templates/js/translated/table_filters.js:363
+#: templates/js/translated/table_filters.js:394
msgid "Has IPN"
msgstr ""
-#: templates/js/translated/table_filters.js:364
+#: templates/js/translated/table_filters.js:395
msgid "Part has internal part number"
msgstr ""
-#: templates/js/translated/table_filters.js:369
+#: templates/js/translated/table_filters.js:400
msgid "Show active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:377
+#: templates/js/translated/table_filters.js:408
msgid "Stock available"
msgstr ""
-#: templates/js/translated/table_filters.js:405
+#: templates/js/translated/table_filters.js:436
msgid "Purchasable"
msgstr ""
@@ -8507,27 +8934,23 @@ msgstr ""
msgid "All"
msgstr ""
-#: templates/navbar.html:40
+#: templates/navbar.html:42
msgid "Buy"
msgstr ""
-#: templates/navbar.html:52
+#: templates/navbar.html:54
msgid "Sell"
msgstr ""
-#: templates/navbar.html:86 users/models.py:39
-msgid "Admin"
-msgstr ""
-
-#: templates/navbar.html:88
+#: templates/navbar.html:113
msgid "Logout"
msgstr ""
-#: templates/navbar.html:90
+#: templates/navbar.html:115
msgid "Login"
msgstr ""
-#: templates/navbar.html:111
+#: templates/navbar.html:136
msgid "About InvenTree"
msgstr ""
@@ -8639,15 +9062,15 @@ msgstr ""
msgid "Order selected items"
msgstr ""
-#: templates/stock_table.html:53
+#: templates/stock_table.html:54
msgid "Change status"
msgstr ""
-#: templates/stock_table.html:53
+#: templates/stock_table.html:54
msgid "Change stock status"
msgstr ""
-#: templates/stock_table.html:56
+#: templates/stock_table.html:57
msgid "Delete selected items"
msgstr ""
@@ -8683,35 +9106,35 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:187
+#: users/models.py:189
msgid "Permission set"
msgstr ""
-#: users/models.py:195
+#: users/models.py:197
msgid "Group"
msgstr ""
-#: users/models.py:198
+#: users/models.py:200
msgid "View"
msgstr ""
-#: users/models.py:198
+#: users/models.py:200
msgid "Permission to view items"
msgstr ""
-#: users/models.py:200
+#: users/models.py:202
msgid "Permission to add items"
msgstr ""
-#: users/models.py:202
+#: users/models.py:204
msgid "Change"
msgstr ""
-#: users/models.py:202
+#: users/models.py:204
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:204
+#: users/models.py:206
msgid "Permission to delete items"
msgstr ""
diff --git a/InvenTree/locale/es/LC_MESSAGES/django.po b/InvenTree/locale/es/LC_MESSAGES/django.po
index ed69daafd0..4f7aa77d3e 100644
--- a/InvenTree/locale/es/LC_MESSAGES/django.po
+++ b/InvenTree/locale/es/LC_MESSAGES/django.po
@@ -1,9 +1,10 @@
+#: templates/js/translated/order.js:1973
msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-12-03 10:37+0000\n"
-"PO-Revision-Date: 2021-12-03 11:26\n"
+"POT-Creation-Date: 2021-12-08 23:43+0000\n"
+"PO-Revision-Date: 2021-12-08 23:47\n"
"Last-Translator: \n"
"Language-Team: Spanish, Mexico\n"
"Language: es_MX\n"
@@ -34,8 +35,8 @@ msgid "Enter date"
msgstr "Ingrese fecha"
#: InvenTree/forms.py:120 build/forms.py:48 build/forms.py:69 build/forms.py:93
-#: order/forms.py:26 order/forms.py:37 order/forms.py:48 order/forms.py:59
-#: order/forms.py:70 part/forms.py:108 templates/account/email_confirm.html:20
+#: order/forms.py:24 order/forms.py:35 order/forms.py:46 order/forms.py:57
+#: part/forms.py:108 templates/account/email_confirm.html:20
#: templates/js/translated/forms.js:595
msgid "Confirm"
msgstr "Confirmar"
@@ -85,8 +86,8 @@ msgstr "Debe escribir el mismo correo electrónico cada vez."
msgid "Duplicate serial: {n}"
msgstr "Duplicar serie: {n}"
-#: InvenTree/helpers.py:437 order/models.py:318 order/models.py:440
-#: stock/views.py:1264
+#: InvenTree/helpers.py:437 order/models.py:279 order/models.py:420
+#: stock/views.py:1231
msgid "Invalid quantity provided"
msgstr "Cantidad proporcionada no válida"
@@ -122,7 +123,7 @@ msgstr "Falta archivo"
msgid "Missing external link"
msgstr "Falta enlace externo"
-#: InvenTree/models.py:132 stock/models.py:1864
+#: InvenTree/models.py:132 stock/models.py:1852
#: templates/js/translated/attachment.js:117
msgid "Attachment"
msgstr "Adjunto"
@@ -132,7 +133,7 @@ msgid "Select file to attach"
msgstr "Seleccionar archivo a adjuntar"
#: InvenTree/models.py:139 company/models.py:131 company/models.py:348
-#: company/models.py:564 order/models.py:163 part/models.py:797
+#: company/models.py:564 order/models.py:124 part/models.py:797
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:537
#: templates/js/translated/company.js:826 templates/js/translated/part.js:1258
@@ -140,7 +141,7 @@ msgid "Link"
msgstr "Enlace"
#: InvenTree/models.py:140 build/models.py:330 part/models.py:798
-#: stock/models.py:530
+#: stock/models.py:524
msgid "Link to external URL"
msgstr "Enlace a URL externa"
@@ -152,10 +153,10 @@ msgstr "Comentario"
msgid "File comment"
msgstr "Comentario de archivo"
-#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1185
-#: common/models.py:1186 part/models.py:2205 part/models.py:2225
+#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1213
+#: common/models.py:1214 part/models.py:2205 part/models.py:2225
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2166
+#: templates/js/translated/stock.js:2341
msgid "User"
msgstr "Usuario"
@@ -194,10 +195,15 @@ msgstr "Elección no válida"
#: InvenTree/models.py:277 InvenTree/models.py:278 company/models.py:415
#: label/models.py:112 part/models.py:741 part/models.py:2389
-#: report/models.py:181 templates/InvenTree/settings/settings.html:259
+#: plugin/models.py:39 report/models.py:181
+#: templates/InvenTree/settings/mixins/urls.html:11
+#: templates/InvenTree/settings/plugin.html:47
+#: templates/InvenTree/settings/plugin.html:124
+#: templates/InvenTree/settings/plugin_settings.html:23
+#: templates/InvenTree/settings/settings.html:268
#: templates/js/translated/company.js:638 templates/js/translated/part.js:506
#: templates/js/translated/part.js:643 templates/js/translated/part.js:1565
-#: templates/js/translated/stock.js:1959
+#: templates/js/translated/stock.js:2134
msgid "Name"
msgstr "Nombre"
@@ -206,22 +212,23 @@ msgstr "Nombre"
#: company/models.py:570 company/templates/company/company_base.html:68
#: company/templates/company/manufacturer_part.html:76
#: company/templates/company/supplier_part.html:73 label/models.py:119
-#: order/models.py:161 part/models.py:764 part/templates/part/category.html:70
+#: order/models.py:122 part/models.py:764 part/templates/part/category.html:70
#: part/templates/part/part_base.html:163
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:553 report/models.py:592
#: report/templates/report/inventree_build_order_base.html:118
-#: stock/templates/stock/location.html:89 templates/js/translated/bom.js:215
-#: templates/js/translated/bom.js:428 templates/js/translated/build.js:1621
-#: templates/js/translated/company.js:345
+#: stock/templates/stock/location.html:89
+#: templates/InvenTree/settings/plugin_settings.html:33
+#: templates/js/translated/bom.js:215 templates/js/translated/bom.js:428
+#: templates/js/translated/build.js:1627 templates/js/translated/company.js:345
#: templates/js/translated/company.js:548
-#: templates/js/translated/company.js:837 templates/js/translated/order.js:680
-#: templates/js/translated/order.js:854 templates/js/translated/order.js:1090
+#: templates/js/translated/company.js:837 templates/js/translated/order.js:836
+#: templates/js/translated/order.js:1019 templates/js/translated/order.js:1258
#: templates/js/translated/part.js:565 templates/js/translated/part.js:933
#: templates/js/translated/part.js:1018 templates/js/translated/part.js:1188
#: templates/js/translated/part.js:1584 templates/js/translated/part.js:1653
-#: templates/js/translated/stock.js:1233 templates/js/translated/stock.js:1971
-#: templates/js/translated/stock.js:2016
+#: templates/js/translated/stock.js:1390 templates/js/translated/stock.js:2146
+#: templates/js/translated/stock.js:2191
msgid "Description"
msgstr "Descripción"
@@ -241,83 +248,83 @@ msgstr "Debe ser un número válido"
msgid "Filename"
msgstr "Nombre de archivo"
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:689
msgid "German"
msgstr "Alemán"
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:690
msgid "Greek"
msgstr "Griego"
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:691
msgid "English"
msgstr "Inglés"
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:692
msgid "Spanish"
msgstr "Español"
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:693
msgid "Spanish (Mexican)"
msgstr "Español (México)"
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:694
msgid "French"
msgstr ""
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:695
msgid "Hebrew"
msgstr ""
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:696
msgid "Italian"
msgstr ""
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:697
msgid "Japanese"
msgstr ""
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:698
msgid "Korean"
msgstr ""
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:699
msgid "Dutch"
msgstr ""
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:700
msgid "Norwegian"
msgstr ""
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:701
msgid "Polish"
msgstr ""
-#: InvenTree/settings.py:683
+#: InvenTree/settings.py:702
msgid "Portugese"
msgstr ""
-#: InvenTree/settings.py:684
+#: InvenTree/settings.py:703
msgid "Russian"
msgstr ""
-#: InvenTree/settings.py:685
+#: InvenTree/settings.py:704
msgid "Swedish"
msgstr ""
-#: InvenTree/settings.py:686
+#: InvenTree/settings.py:705
msgid "Thai"
msgstr ""
-#: InvenTree/settings.py:687
+#: InvenTree/settings.py:706
msgid "Turkish"
msgstr ""
-#: InvenTree/settings.py:688
+#: InvenTree/settings.py:707
msgid "Vietnamese"
msgstr ""
-#: InvenTree/settings.py:689
+#: InvenTree/settings.py:708
msgid "Chinese"
msgstr ""
@@ -334,7 +341,7 @@ msgid "InvenTree system health checks failed"
msgstr ""
#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142
-#: InvenTree/status_codes.py:311
+#: InvenTree/status_codes.py:311 templates/js/translated/table_filters.js:313
msgid "Pending"
msgstr ""
@@ -343,6 +350,8 @@ msgid "Placed"
msgstr ""
#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:314
+#: order/templates/order/order_base.html:128
+#: order/templates/order/sales_order_base.html:132
msgid "Complete"
msgstr ""
@@ -361,8 +370,8 @@ msgstr ""
msgid "Returned"
msgstr ""
-#: InvenTree/status_codes.py:143
-#: order/templates/order/sales_order_base.html:148
+#: InvenTree/status_codes.py:143 order/models.py:939
+#: templates/js/translated/order.js:1980 templates/js/translated/order.js:2255
msgid "Shipped"
msgstr ""
@@ -442,7 +451,7 @@ msgstr "Separar del artículo principal"
msgid "Split child item"
msgstr ""
-#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:208
+#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:213
msgid "Sent to customer"
msgstr ""
@@ -522,55 +531,55 @@ msgstr ""
msgid "Password fields must match"
msgstr ""
-#: InvenTree/views.py:883 templates/navbar.html:101
+#: InvenTree/views.py:883 templates/navbar.html:126
msgid "System Information"
msgstr ""
-#: barcodes/api.py:53 barcodes/api.py:150
+#: barcodes/api.py:54 barcodes/api.py:151
msgid "Must provide barcode_data parameter"
msgstr ""
-#: barcodes/api.py:126
+#: barcodes/api.py:127
msgid "No match found for barcode data"
msgstr ""
-#: barcodes/api.py:128
+#: barcodes/api.py:129
msgid "Match found for barcode data"
msgstr ""
-#: barcodes/api.py:153
+#: barcodes/api.py:154
msgid "Must provide stockitem parameter"
msgstr ""
-#: barcodes/api.py:160
+#: barcodes/api.py:161
msgid "No matching stock item found"
msgstr ""
-#: barcodes/api.py:190
-msgid "Barcode already matches StockItem object"
+#: barcodes/api.py:191
+msgid "Barcode already matches Stock Item"
msgstr ""
-#: barcodes/api.py:194
-msgid "Barcode already matches StockLocation object"
+#: barcodes/api.py:195
+msgid "Barcode already matches Stock Location"
msgstr ""
-#: barcodes/api.py:198
-msgid "Barcode already matches Part object"
+#: barcodes/api.py:199
+msgid "Barcode already matches Part"
msgstr ""
-#: barcodes/api.py:204 barcodes/api.py:216
-msgid "Barcode hash already matches StockItem object"
+#: barcodes/api.py:205 barcodes/api.py:217
+msgid "Barcode hash already matches Stock Item"
msgstr ""
-#: barcodes/api.py:222
-msgid "Barcode associated with StockItem"
+#: barcodes/api.py:223
+msgid "Barcode associated with Stock Item"
msgstr ""
#: build/forms.py:36 build/models.py:1283
#: build/templates/build/build_base.html:132
-#: build/templates/build/detail.html:35 common/models.py:1225
+#: build/templates/build/detail.html:35 common/models.py:1253
#: company/forms.py:42 company/templates/company/supplier_part.html:251
-#: order/forms.py:102 order/models.py:729 order/models.py:991
+#: order/models.py:794 order/models.py:1205 order/serializers.py:810
#: order/templates/order/order_wizard/match_parts.html:30
#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:223
#: part/forms.py:239 part/forms.py:255 part/models.py:2576
@@ -582,20 +591,23 @@ msgstr ""
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:81
#: report/templates/report/inventree_test_report_base.html:139
-#: stock/forms.py:156 stock/serializers.py:291
+#: stock/forms.py:142 stock/serializers.py:293
#: stock/templates/stock/item_base.html:174
+#: stock/templates/stock/item_base.html:255
+#: stock/templates/stock/item_base.html:263
#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443
-#: templates/js/translated/build.js:235 templates/js/translated/build.js:435
-#: templates/js/translated/build.js:629 templates/js/translated/build.js:639
-#: templates/js/translated/build.js:1015 templates/js/translated/build.js:1362
+#: templates/js/translated/build.js:240 templates/js/translated/build.js:440
+#: templates/js/translated/build.js:634 templates/js/translated/build.js:644
+#: templates/js/translated/build.js:1020 templates/js/translated/build.js:1367
#: templates/js/translated/model_renderers.js:99
-#: templates/js/translated/order.js:891 templates/js/translated/order.js:1204
-#: templates/js/translated/order.js:1282 templates/js/translated/order.js:1289
-#: templates/js/translated/order.js:1378 templates/js/translated/order.js:1478
-#: templates/js/translated/part.js:843 templates/js/translated/part.js:1796
-#: templates/js/translated/part.js:1919 templates/js/translated/part.js:1997
-#: templates/js/translated/stock.js:378 templates/js/translated/stock.js:2151
-#: templates/js/translated/stock.js:2253
+#: templates/js/translated/order.js:101 templates/js/translated/order.js:1056
+#: templates/js/translated/order.js:1578 templates/js/translated/order.js:1859
+#: templates/js/translated/order.js:1947 templates/js/translated/order.js:2036
+#: templates/js/translated/order.js:2150 templates/js/translated/part.js:843
+#: templates/js/translated/part.js:1796 templates/js/translated/part.js:1919
+#: templates/js/translated/part.js:1997 templates/js/translated/stock.js:382
+#: templates/js/translated/stock.js:579 templates/js/translated/stock.js:2326
+#: templates/js/translated/stock.js:2428
msgid "Quantity"
msgstr ""
@@ -603,9 +615,9 @@ msgstr ""
msgid "Enter quantity for build output"
msgstr ""
-#: build/forms.py:41 order/forms.py:96 stock/forms.py:95
-#: stock/serializers.py:312 templates/js/translated/stock.js:225
-#: templates/js/translated/stock.js:379
+#: build/forms.py:41 order/serializers.py:814 stock/forms.py:81
+#: stock/serializers.py:314 templates/js/translated/stock.js:229
+#: templates/js/translated/stock.js:383
msgid "Serial Numbers"
msgstr ""
@@ -640,17 +652,17 @@ msgstr "Opción no válida para el armado principal"
#: build/models.py:137 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:397
+#: templates/js/translated/build.js:402
msgid "Build Order"
msgstr ""
#: build/models.py:138 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
-#: order/templates/order/sales_order_detail.html:42
-#: order/templates/order/so_sidebar.html:7
+#: order/templates/order/sales_order_detail.html:92
+#: order/templates/order/so_sidebar.html:13
#: part/templates/part/part_sidebar.html:20 templates/InvenTree/index.html:221
#: templates/InvenTree/search.html:145
-#: templates/InvenTree/settings/sidebar.html:42 users/models.py:44
+#: templates/InvenTree/settings/sidebar.html:43 users/models.py:44
msgid "Build Orders"
msgstr ""
@@ -658,13 +670,13 @@ msgstr ""
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:199 order/models.py:249 order/models.py:556
-#: order/models.py:736 part/models.py:2585
+#: build/models.py:199 order/models.py:210 order/models.py:536
+#: order/models.py:801 part/models.py:2585
#: part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1119
-#: templates/js/translated/order.js:885 templates/js/translated/order.js:1472
+#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1124
+#: templates/js/translated/order.js:1050 templates/js/translated/order.js:2144
msgid "Reference"
msgstr ""
@@ -683,7 +695,7 @@ msgstr ""
#: build/models.py:225 build/templates/build/build_base.html:77
#: build/templates/build/detail.html:30 company/models.py:705
-#: order/models.py:789 order/models.py:860
+#: order/models.py:854 order/models.py:928
#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357
#: part/models.py:2151 part/models.py:2167 part/models.py:2186
#: part/models.py:2203 part/models.py:2305 part/models.py:2427
@@ -698,14 +710,16 @@ msgstr ""
#: templates/email/build_order_required_stock.html:17
#: templates/email/low_stock_notification.html:16
#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:214
-#: templates/js/translated/bom.js:393 templates/js/translated/build.js:620
-#: templates/js/translated/build.js:988 templates/js/translated/build.js:1359
-#: templates/js/translated/build.js:1626 templates/js/translated/company.js:489
-#: templates/js/translated/company.js:746 templates/js/translated/order.js:426
-#: templates/js/translated/order.js:839 templates/js/translated/order.js:1456
-#: templates/js/translated/part.js:918 templates/js/translated/part.js:999
-#: templates/js/translated/part.js:1166 templates/js/translated/stock.js:590
-#: templates/js/translated/stock.js:1190 templates/js/translated/stock.js:2241
+#: templates/js/translated/bom.js:393 templates/js/translated/build.js:625
+#: templates/js/translated/build.js:993 templates/js/translated/build.js:1364
+#: templates/js/translated/build.js:1632 templates/js/translated/company.js:489
+#: templates/js/translated/company.js:746 templates/js/translated/order.js:84
+#: templates/js/translated/order.js:586 templates/js/translated/order.js:1004
+#: templates/js/translated/order.js:1576 templates/js/translated/order.js:1933
+#: templates/js/translated/order.js:2128 templates/js/translated/part.js:918
+#: templates/js/translated/part.js:999 templates/js/translated/part.js:1166
+#: templates/js/translated/stock.js:553 templates/js/translated/stock.js:747
+#: templates/js/translated/stock.js:1347 templates/js/translated/stock.js:2416
msgid "Part"
msgstr ""
@@ -721,7 +735,8 @@ msgstr ""
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:247 templates/js/translated/build.js:1347
+#: build/models.py:247 templates/js/translated/build.js:1352
+#: templates/js/translated/order.js:1564
msgid "Source Location"
msgstr ""
@@ -761,7 +776,7 @@ msgstr ""
msgid "Build status code"
msgstr ""
-#: build/models.py:285 stock/models.py:534
+#: build/models.py:285 stock/models.py:528
msgid "Batch Code"
msgstr ""
@@ -769,12 +784,12 @@ msgstr ""
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:292 order/models.py:165 part/models.py:936
-#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1103
+#: build/models.py:292 order/models.py:126 part/models.py:936
+#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1271
msgid "Creation Date"
msgstr ""
-#: build/models.py:296 order/models.py:578
+#: build/models.py:296 order/models.py:558
msgid "Target completion date"
msgstr ""
@@ -782,8 +797,8 @@ msgstr ""
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/models.py:300 order/models.py:291
-#: templates/js/translated/build.js:1697
+#: build/models.py:300 order/models.py:252
+#: templates/js/translated/build.js:1703
msgid "Completion Date"
msgstr ""
@@ -791,7 +806,7 @@ msgstr ""
msgid "completed by"
msgstr ""
-#: build/models.py:314 templates/js/translated/build.js:1668
+#: build/models.py:314 templates/js/translated/build.js:1674
msgid "Issued by"
msgstr ""
@@ -800,11 +815,11 @@ msgid "User who issued this build order"
msgstr ""
#: build/models.py:323 build/templates/build/build_base.html:185
-#: build/templates/build/detail.html:116 order/models.py:179
-#: order/templates/order/order_base.html:158
-#: order/templates/order/sales_order_base.html:162 part/models.py:940
+#: build/templates/build/detail.html:116 order/models.py:140
+#: order/templates/order/order_base.html:170
+#: order/templates/order/sales_order_base.html:182 part/models.py:940
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:1680 templates/js/translated/order.js:699
+#: templates/js/translated/build.js:1686 templates/js/translated/order.js:864
msgid "Responsible"
msgstr ""
@@ -815,7 +830,7 @@ msgstr ""
#: build/models.py:329 build/templates/build/detail.html:102
#: company/templates/company/manufacturer_part.html:102
#: company/templates/company/supplier_part.html:126
-#: part/templates/part/part_base.html:354 stock/models.py:528
+#: part/templates/part/part_base.html:354 stock/models.py:522
#: stock/templates/stock/item_base.html:374
msgid "External Link"
msgstr ""
@@ -823,18 +838,19 @@ msgstr ""
#: build/models.py:334 build/serializers.py:201
#: build/templates/build/sidebar.html:21 company/models.py:142
#: company/models.py:577 company/templates/company/sidebar.html:25
-#: order/models.py:183 order/models.py:738
+#: order/models.py:144 order/models.py:803 order/models.py:1049
#: order/templates/order/po_sidebar.html:11
-#: order/templates/order/so_sidebar.html:11 part/models.py:925
+#: order/templates/order/so_sidebar.html:17 part/models.py:925
#: part/templates/part/detail.html:116 part/templates/part/part_sidebar.html:50
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/forms.py:154 stock/forms.py:204 stock/forms.py:238 stock/models.py:600
-#: stock/models.py:1764 stock/models.py:1870 stock/serializers.py:330
-#: stock/serializers.py:588 stock/templates/stock/stock_sidebar.html:21
+#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:594
+#: stock/models.py:1752 stock/models.py:1858 stock/serializers.py:332
+#: stock/serializers.py:624 stock/serializers.py:711
+#: stock/templates/stock/stock_sidebar.html:21
#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599
-#: templates/js/translated/company.js:842 templates/js/translated/order.js:984
-#: templates/js/translated/order.js:1582 templates/js/translated/stock.js:973
-#: templates/js/translated/stock.js:1452
+#: templates/js/translated/company.js:842 templates/js/translated/order.js:1149
+#: templates/js/translated/order.js:1445 templates/js/translated/order.js:2280
+#: templates/js/translated/stock.js:1130 templates/js/translated/stock.js:1616
msgid "Notes"
msgstr ""
@@ -867,7 +883,7 @@ msgstr ""
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1133 order/models.py:964
+#: build/models.py:1133 order/models.py:1165
msgid "Allocation quantity must be greater than zero"
msgstr ""
@@ -880,8 +896,8 @@ msgid "Selected stock item not found in BOM"
msgstr ""
#: build/models.py:1253 stock/templates/stock/item_base.html:346
-#: templates/InvenTree/search.html:143 templates/js/translated/build.js:1599
-#: templates/navbar.html:33
+#: templates/InvenTree/search.html:143 templates/js/translated/build.js:1605
+#: templates/navbar.html:35
msgid "Build"
msgstr ""
@@ -889,14 +905,17 @@ msgstr ""
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1270 build/serializers.py:328
+#: build/models.py:1270 build/serializers.py:328 order/serializers.py:690
+#: order/serializers.py:708 stock/serializers.py:562
#: stock/templates/stock/item_base.html:8
#: stock/templates/stock/item_base.html:16
#: stock/templates/stock/item_base.html:368
-#: templates/js/translated/build.js:408 templates/js/translated/build.js:413
-#: templates/js/translated/build.js:1361 templates/js/translated/build.js:1742
-#: templates/js/translated/order.js:1177 templates/js/translated/order.js:1182
-#: templates/js/translated/stock.js:2102
+#: templates/js/translated/build.js:413 templates/js/translated/build.js:418
+#: templates/js/translated/build.js:1366 templates/js/translated/build.js:1748
+#: templates/js/translated/order.js:85 templates/js/translated/order.js:1577
+#: templates/js/translated/order.js:1832 templates/js/translated/order.js:1837
+#: templates/js/translated/order.js:1940 templates/js/translated/order.js:2030
+#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:2277
msgid "Stock Item"
msgstr ""
@@ -936,16 +955,17 @@ msgstr ""
msgid "This build output is not fully allocated"
msgstr ""
-#: build/serializers.py:190 order/serializers.py:228 order/serializers.py:296
-#: stock/forms.py:236 stock/serializers.py:323 stock/serializers.py:690
+#: build/serializers.py:190 order/serializers.py:226 order/serializers.py:294
+#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:813
#: stock/templates/stock/item_base.html:314
#: templates/js/translated/barcode.js:384
-#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:420
-#: templates/js/translated/build.js:1027 templates/js/translated/order.js:348
-#: templates/js/translated/order.js:1189 templates/js/translated/order.js:1297
-#: templates/js/translated/order.js:1303 templates/js/translated/part.js:177
-#: templates/js/translated/stock.js:592 templates/js/translated/stock.js:1333
-#: templates/js/translated/stock.js:2043
+#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:425
+#: templates/js/translated/build.js:1032 templates/js/translated/order.js:508
+#: templates/js/translated/order.js:1844 templates/js/translated/order.js:1955
+#: templates/js/translated/order.js:1963 templates/js/translated/order.js:2044
+#: templates/js/translated/part.js:177 templates/js/translated/stock.js:555
+#: templates/js/translated/stock.js:749 templates/js/translated/stock.js:1497
+#: templates/js/translated/stock.js:2218
msgid "Location"
msgstr ""
@@ -954,12 +974,12 @@ msgid "Location for completed build outputs"
msgstr ""
#: build/serializers.py:197 build/templates/build/build_base.html:137
-#: build/templates/build/detail.html:63 order/models.py:572
-#: order/serializers.py:249 stock/templates/stock/item_base.html:180
-#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1655
-#: templates/js/translated/order.js:431 templates/js/translated/order.js:1095
-#: templates/js/translated/stock.js:1308 templates/js/translated/stock.js:2120
-#: templates/js/translated/stock.js:2269
+#: build/templates/build/detail.html:63 order/models.py:552
+#: order/serializers.py:247 stock/templates/stock/item_base.html:180
+#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1661
+#: templates/js/translated/order.js:591 templates/js/translated/order.js:840
+#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1472
+#: templates/js/translated/stock.js:2295 templates/js/translated/stock.js:2444
msgid "Status"
msgstr ""
@@ -984,16 +1004,16 @@ msgstr ""
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:334
+#: build/serializers.py:334 stock/serializers.py:569
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:348 order/models.py:316 order/serializers.py:242
-#: stock/models.py:371 stock/models.py:1093 stock/serializers.py:303
+#: build/serializers.py:348 order/models.py:277 order/serializers.py:240
+#: stock/models.py:365 stock/models.py:1081 stock/serializers.py:305
msgid "Quantity must be greater than zero"
msgstr ""
-#: build/serializers.py:390
+#: build/serializers.py:390 order/serializers.py:741
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
@@ -1006,7 +1026,7 @@ msgstr ""
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:431
+#: build/serializers.py:431 order/serializers.py:984
msgid "Allocation items must be provided"
msgstr "Debe proporcionar adjudicación de artículos"
@@ -1079,11 +1099,11 @@ msgstr ""
#: build/templates/build/build_base.html:146
#: build/templates/build/detail.html:132
-#: order/templates/order/order_base.html:144
-#: order/templates/order/sales_order_base.html:141
+#: order/templates/order/order_base.html:156
+#: order/templates/order/sales_order_base.html:163
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:1692 templates/js/translated/order.js:689
-#: templates/js/translated/order.js:1108
+#: templates/js/translated/build.js:1698 templates/js/translated/order.js:854
+#: templates/js/translated/order.js:1276
msgid "Target Date"
msgstr ""
@@ -1096,28 +1116,28 @@ msgstr ""
#: build/templates/build/build_base.html:196
#: order/templates/order/order_base.html:98
#: order/templates/order/sales_order_base.html:93
-#: templates/js/translated/table_filters.js:294
-#: templates/js/translated/table_filters.js:322
-#: templates/js/translated/table_filters.js:339
+#: templates/js/translated/table_filters.js:299
+#: templates/js/translated/table_filters.js:340
+#: templates/js/translated/table_filters.js:361
msgid "Overdue"
msgstr ""
#: build/templates/build/build_base.html:158
#: build/templates/build/detail.html:68 build/templates/build/detail.html:143
-#: templates/js/translated/build.js:1641
-#: templates/js/translated/table_filters.js:304
+#: order/templates/order/sales_order_base.html:170
+#: templates/js/translated/build.js:1647
+#: templates/js/translated/table_filters.js:370
msgid "Completed"
msgstr ""
#: build/templates/build/build_base.html:171
-#: build/templates/build/detail.html:95 order/models.py:857
-#: order/templates/order/sales_order_base.html:9
+#: build/templates/build/detail.html:95 order/models.py:925
+#: order/models.py:1021 order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
-#: order/templates/order/sales_order_ship.html:25
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:308
-#: templates/js/translated/order.js:1050
+#: templates/js/translated/order.js:1218
msgid "Sales Order"
msgstr ""
@@ -1191,8 +1211,8 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:50 order/models.py:811 stock/forms.py:150
-#: templates/js/translated/order.js:432 templates/js/translated/order.js:973
+#: build/templates/build/detail.html:50 order/models.py:876 stock/forms.py:136
+#: templates/js/translated/order.js:592 templates/js/translated/order.js:1138
msgid "Destination"
msgstr ""
@@ -1200,22 +1220,22 @@ msgstr ""
msgid "Destination location not specified"
msgstr ""
-#: build/templates/build/detail.html:74 templates/js/translated/build.js:647
+#: build/templates/build/detail.html:74 templates/js/translated/build.js:652
msgid "Allocated Parts"
msgstr ""
#: build/templates/build/detail.html:81
#: stock/templates/stock/item_base.html:332
-#: templates/js/translated/stock.js:1322 templates/js/translated/stock.js:2276
+#: templates/js/translated/stock.js:1486 templates/js/translated/stock.js:2451
#: templates/js/translated/table_filters.js:151
-#: templates/js/translated/table_filters.js:233
+#: templates/js/translated/table_filters.js:238
msgid "Batch"
msgstr ""
#: build/templates/build/detail.html:127
-#: order/templates/order/order_base.html:131
-#: order/templates/order/sales_order_base.html:135
-#: templates/js/translated/build.js:1663
+#: order/templates/order/order_base.html:143
+#: order/templates/order/sales_order_base.html:157
+#: templates/js/translated/build.js:1669
msgid "Created"
msgstr ""
@@ -1235,7 +1255,7 @@ msgstr ""
msgid "Allocate Stock to Build"
msgstr ""
-#: build/templates/build/detail.html:177 templates/js/translated/build.js:1202
+#: build/templates/build/detail.html:177 templates/js/translated/build.js:1207
msgid "Unallocate stock"
msgstr ""
@@ -1257,7 +1277,7 @@ msgstr ""
#: build/templates/build/detail.html:185
#: company/templates/company/detail.html:38
-#: company/templates/company/detail.html:85 order/views.py:509
+#: company/templates/company/detail.html:85 order/views.py:463
#: part/templates/part/category.html:173
msgid "Order Parts"
msgstr ""
@@ -1309,8 +1329,8 @@ msgstr ""
#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:60
-#: order/templates/order/sales_order_detail.html:52
-#: order/templates/order/so_sidebar.html:9 part/templates/part/detail.html:193
+#: order/templates/order/sales_order_detail.html:107
+#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:193
#: part/templates/part/part_sidebar.html:48 stock/templates/stock/item.html:95
#: stock/templates/stock/stock_sidebar.html:19
msgid "Attachments"
@@ -1325,8 +1345,8 @@ msgstr ""
#: company/templates/company/detail.html:215
#: order/templates/order/purchase_order_detail.html:80
#: order/templates/order/purchase_order_detail.html:108
-#: order/templates/order/sales_order_detail.html:72
-#: order/templates/order/sales_order_detail.html:99
+#: order/templates/order/sales_order_detail.html:127
+#: order/templates/order/sales_order_detail.html:186
#: part/templates/part/detail.html:120 stock/templates/stock/item.html:115
#: stock/templates/stock/item.html:205
msgid "Edit Notes"
@@ -1384,7 +1404,7 @@ msgstr ""
msgid "Maximum output quantity is "
msgstr ""
-#: build/views.py:122 stock/serializers.py:361 stock/views.py:1290
+#: build/views.py:122 stock/serializers.py:363 stock/views.py:1257
msgid "Serial numbers already exist"
msgstr ""
@@ -1400,7 +1420,7 @@ msgstr ""
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:219 stock/views.py:385
+#: build/views.py:219 stock/views.py:352
msgid "Check the confirmation box"
msgstr ""
@@ -1469,7 +1489,7 @@ msgstr ""
msgid "Select {name} file to upload"
msgstr ""
-#: common/models.py:340 common/models.py:970 common/models.py:1178
+#: common/models.py:340 common/models.py:998 common/models.py:1206
msgid "Settings key (must be unique - case insensitive"
msgstr ""
@@ -1557,7 +1577,7 @@ msgstr ""
msgid "Allow download of remote images and files from external URL"
msgstr ""
-#: common/models.py:649 templates/InvenTree/settings/sidebar.html:30
+#: common/models.py:649 templates/InvenTree/settings/sidebar.html:31
msgid "Barcode Support"
msgstr ""
@@ -1623,7 +1643,7 @@ msgstr ""
#: common/models.py:703 part/models.py:2429 report/models.py:187
#: templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:373
+#: templates/js/translated/table_filters.js:404
msgid "Template"
msgstr ""
@@ -1633,7 +1653,7 @@ msgstr ""
#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:956
#: templates/js/translated/table_filters.js:168
-#: templates/js/translated/table_filters.js:385
+#: templates/js/translated/table_filters.js:416
msgid "Assembly"
msgstr ""
@@ -1642,7 +1662,7 @@ msgid "Parts can be assembled from other components by default"
msgstr ""
#: common/models.py:717 part/models.py:894
-#: templates/js/translated/table_filters.js:389
+#: templates/js/translated/table_filters.js:420
msgid "Component"
msgstr ""
@@ -1659,7 +1679,7 @@ msgid "Parts are purchaseable by default"
msgstr ""
#: common/models.py:731 part/models.py:910
-#: templates/js/translated/table_filters.js:397
+#: templates/js/translated/table_filters.js:428
msgid "Salable"
msgstr ""
@@ -1670,7 +1690,7 @@ msgstr ""
#: common/models.py:738 part/models.py:900
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:100
-#: templates/js/translated/table_filters.js:401
+#: templates/js/translated/table_filters.js:432
msgid "Trackable"
msgstr ""
@@ -1932,230 +1952,262 @@ msgstr ""
msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:1001
+#: common/models.py:961
+msgid "Enable URL integration"
+msgstr ""
+
+#: common/models.py:962
+msgid "Enable plugins to add URL routes"
+msgstr ""
+
+#: common/models.py:968
+msgid "Enable navigation integration"
+msgstr ""
+
+#: common/models.py:969
+msgid "Enable plugins to integrate into navigation"
+msgstr ""
+
+#: common/models.py:975
+msgid "Enable global setting integration"
+msgstr ""
+
+#: common/models.py:976
+msgid "Enable plugins to integrate into inventree global settings"
+msgstr ""
+
+#: common/models.py:982
+msgid "Enable app integration"
+msgstr ""
+
+#: common/models.py:983
+msgid "Enable plugins to add apps"
+msgstr ""
+
+#: common/models.py:1029
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:1002
+#: common/models.py:1030
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:1007
+#: common/models.py:1035
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:1008
+#: common/models.py:1036
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:1013
+#: common/models.py:1041
msgid "Show latest parts"
msgstr ""
-#: common/models.py:1014
+#: common/models.py:1042
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:1019
+#: common/models.py:1047
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:1020
+#: common/models.py:1048
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:1026
+#: common/models.py:1054
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1027
+#: common/models.py:1055
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1032
+#: common/models.py:1060
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:1033
+#: common/models.py:1061
msgid "Show recently changed stock items on the homepage"
msgstr "Mostrar artículos de stock recientemente modificados en la página de inicio"
-#: common/models.py:1038
+#: common/models.py:1066
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:1039
+#: common/models.py:1067
msgid "Number of recent stock items to display on index page"
msgstr "Número de elementos de stock recientes a mostrar en la página de índice"
-#: common/models.py:1044
+#: common/models.py:1072
msgid "Show low stock"
msgstr ""
-#: common/models.py:1045
+#: common/models.py:1073
msgid "Show low stock items on the homepage"
msgstr "Mostrar artículos de stock bajo en la página de inicio"
-#: common/models.py:1050
+#: common/models.py:1078
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:1051
+#: common/models.py:1079
msgid "Show depleted stock items on the homepage"
msgstr "Mostrar artículos agotados en la página de inicio"
-#: common/models.py:1056
+#: common/models.py:1084
msgid "Show needed stock"
msgstr ""
-#: common/models.py:1057
+#: common/models.py:1085
msgid "Show stock items needed for builds on the homepage"
msgstr "Mostrar elementos de stock necesarios para construir en la página de inicio"
-#: common/models.py:1062
+#: common/models.py:1090
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1063
+#: common/models.py:1091
msgid "Show expired stock items on the homepage"
msgstr "Mostrar artículos de stock caducados en la página de inicio"
-#: common/models.py:1068
+#: common/models.py:1096
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1069
+#: common/models.py:1097
msgid "Show stale stock items on the homepage"
msgstr "Mostrar elementos de stock obsoletos en la página de inicio"
-#: common/models.py:1074
+#: common/models.py:1102
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1075
+#: common/models.py:1103
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:1080
+#: common/models.py:1108
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:1081
+#: common/models.py:1109
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:1086
+#: common/models.py:1114
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:1087
+#: common/models.py:1115
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:1092
+#: common/models.py:1120
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:1093
+#: common/models.py:1121
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:1098
+#: common/models.py:1126
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:1099
+#: common/models.py:1127
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:1104
+#: common/models.py:1132
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:1105
+#: common/models.py:1133
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:1111
+#: common/models.py:1139
msgid "Inline label display"
msgstr ""
-#: common/models.py:1112
+#: common/models.py:1140
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1118
+#: common/models.py:1146
msgid "Inline report display"
msgstr ""
-#: common/models.py:1119
+#: common/models.py:1147
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1125
+#: common/models.py:1153
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:1126
+#: common/models.py:1154
msgid "Number of results to show in search preview window"
msgstr ""
-#: common/models.py:1132
+#: common/models.py:1160
msgid "Search Show Stock"
msgstr ""
-#: common/models.py:1133
+#: common/models.py:1161
msgid "Display stock levels in search preview window"
msgstr ""
-#: common/models.py:1139
+#: common/models.py:1167
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:1140
+#: common/models.py:1168
msgid "Hide inactive parts in search preview window"
msgstr ""
-#: common/models.py:1146
+#: common/models.py:1174
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:1147
+#: common/models.py:1175
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:1153
+#: common/models.py:1181
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1154
+#: common/models.py:1182
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1160
+#: common/models.py:1188
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:1161
+#: common/models.py:1189
msgid "InvenTree navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:1226 company/forms.py:43
+#: common/models.py:1254 company/forms.py:43
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1233 company/serializers.py:264
+#: common/models.py:1261 company/serializers.py:264
#: company/templates/company/supplier_part.html:256
#: templates/js/translated/part.js:852 templates/js/translated/part.js:1801
msgid "Price"
msgstr ""
-#: common/models.py:1234
+#: common/models.py:1262
msgid "Unit price at specified quantity"
msgstr ""
#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49
-#: order/templates/order/purchase_order_detail.html:24 order/views.py:289
+#: order/templates/order/purchase_order_detail.html:24 order/views.py:243
#: part/templates/part/bom_upload/upload_file.html:52
#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:212
#: part/views.py:858
@@ -2163,7 +2215,7 @@ msgid "Upload File"
msgstr ""
#: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52
-#: order/views.py:290 part/templates/part/bom_upload/match_fields.html:52
+#: order/views.py:244 part/templates/part/bom_upload/match_fields.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:45
#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:213
#: part/views.py:859
@@ -2195,6 +2247,7 @@ msgid "Previous Step"
msgstr ""
#: company/forms.py:24 part/forms.py:46
+#: templates/InvenTree/settings/mixins/urls.html:12
msgid "URL"
msgstr ""
@@ -2211,6 +2264,7 @@ msgid "Description of the company"
msgstr ""
#: company/models.py:112 company/templates/company/company_base.html:97
+#: templates/InvenTree/settings/plugin_settings.html:55
#: templates/js/translated/company.js:349
msgid "Website"
msgstr ""
@@ -2285,7 +2339,7 @@ msgid "Does this company manufacture parts?"
msgstr ""
#: company/models.py:152 company/serializers.py:270
-#: company/templates/company/company_base.html:103 stock/serializers.py:177
+#: company/templates/company/company_base.html:103 stock/serializers.py:179
msgid "Currency"
msgstr ""
@@ -2293,12 +2347,12 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:320 company/models.py:535 stock/models.py:474
+#: company/models.py:320 company/models.py:535 stock/models.py:468
#: stock/templates/stock/item_base.html:135
msgid "Base Part"
msgstr ""
-#: company/models.py:324 company/models.py:539 order/views.py:912
+#: company/models.py:324 company/models.py:539
msgid "Select part"
msgstr ""
@@ -2319,7 +2373,7 @@ msgstr ""
#: company/models.py:342 company/templates/company/manufacturer_part.html:96
#: company/templates/company/supplier_part.html:105
#: templates/js/translated/company.js:530
-#: templates/js/translated/company.js:815 templates/js/translated/order.js:873
+#: templates/js/translated/company.js:815 templates/js/translated/order.js:1038
#: templates/js/translated/part.js:243 templates/js/translated/part.js:832
msgid "MPN"
msgstr ""
@@ -2349,8 +2403,8 @@ msgstr ""
#: company/models.py:422
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:1857 templates/js/translated/company.js:644
-#: templates/js/translated/part.js:652 templates/js/translated/stock.js:960
+#: stock/models.py:1845 templates/js/translated/company.js:644
+#: templates/js/translated/part.js:652 templates/js/translated/stock.js:1117
msgid "Value"
msgstr ""
@@ -2360,7 +2414,7 @@ msgstr ""
#: company/models.py:429 part/models.py:882 part/models.py:2397
#: part/templates/part/part_base.html:288
-#: templates/InvenTree/settings/settings.html:264
+#: templates/InvenTree/settings/settings.html:273
#: templates/js/translated/company.js:650 templates/js/translated/part.js:658
msgid "Units"
msgstr ""
@@ -2374,12 +2428,12 @@ msgid "Linked manufacturer part must reference the same base part"
msgstr ""
#: company/models.py:545 company/templates/company/company_base.html:78
-#: company/templates/company/supplier_part.html:87 order/models.py:263
+#: company/templates/company/supplier_part.html:87 order/models.py:224
#: order/templates/order/order_base.html:112
#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219
#: part/bom.py:247 stock/templates/stock/item_base.html:398
#: templates/js/translated/company.js:337
-#: templates/js/translated/company.js:771 templates/js/translated/order.js:667
+#: templates/js/translated/company.js:771 templates/js/translated/order.js:823
#: templates/js/translated/part.js:213 templates/js/translated/part.js:800
msgid "Supplier"
msgstr ""
@@ -2389,7 +2443,7 @@ msgid "Select supplier"
msgstr ""
#: company/models.py:551 company/templates/company/supplier_part.html:91
-#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:860
+#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:1025
#: templates/js/translated/part.js:224 templates/js/translated/part.js:818
msgid "SKU"
msgstr ""
@@ -2425,8 +2479,8 @@ msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:582 company/templates/company/supplier_part.html:112
-#: stock/models.py:497 stock/templates/stock/item_base.html:339
-#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1448
+#: stock/models.py:491 stock/templates/stock/item_base.html:339
+#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1612
msgid "Packaging"
msgstr ""
@@ -2457,7 +2511,7 @@ msgid "Company"
msgstr ""
#: company/templates/company/company_base.html:22
-#: templates/js/translated/order.js:121
+#: templates/js/translated/order.js:279
msgid "Create Purchase Order"
msgstr ""
@@ -2493,11 +2547,12 @@ msgstr ""
msgid "Download image from URL"
msgstr ""
-#: company/templates/company/company_base.html:83 order/models.py:567
-#: order/templates/order/sales_order_base.html:115 stock/models.py:515
-#: stock/models.py:516 stock/templates/stock/item_base.html:291
-#: templates/js/translated/company.js:329 templates/js/translated/order.js:1072
-#: templates/js/translated/stock.js:2084
+#: company/templates/company/company_base.html:83 order/models.py:547
+#: order/templates/order/sales_order_base.html:115 stock/models.py:509
+#: stock/models.py:510 stock/serializers.py:610
+#: stock/templates/stock/item_base.html:291
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1240
+#: templates/js/translated/stock.js:2259
msgid "Customer"
msgstr ""
@@ -2580,7 +2635,7 @@ msgstr ""
#: order/templates/order/purchase_orders.html:12
#: part/templates/part/detail.html:64 part/templates/part/part_sidebar.html:33
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:203
-#: templates/InvenTree/settings/sidebar.html:44 templates/navbar.html:45
+#: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47
#: users/models.py:45
msgid "Purchase Orders"
msgstr ""
@@ -2602,7 +2657,7 @@ msgstr ""
#: order/templates/order/sales_orders.html:15
#: part/templates/part/detail.html:87 part/templates/part/part_sidebar.html:37
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:223
-#: templates/InvenTree/settings/sidebar.html:46 templates/navbar.html:56
+#: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58
#: users/models.py:46
msgid "Sales Orders"
msgstr ""
@@ -2618,7 +2673,7 @@ msgid "New Sales Order"
msgstr ""
#: company/templates/company/detail.html:168
-#: templates/js/translated/build.js:999
+#: templates/js/translated/build.js:1004
msgid "Assigned Stock"
msgstr ""
@@ -2644,7 +2699,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:14 company/views.py:55
#: part/templates/part/prices.html:167 templates/InvenTree/search.html:184
-#: templates/navbar.html:44
+#: templates/navbar.html:46
msgid "Manufacturers"
msgstr ""
@@ -2673,7 +2728,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:114
#: company/templates/company/supplier_part.html:15 company/views.py:49
#: part/templates/part/part_sidebar.html:31 part/templates/part/prices.html:163
-#: templates/InvenTree/search.html:194 templates/navbar.html:43
+#: templates/InvenTree/search.html:194 templates/navbar.html:45
msgid "Suppliers"
msgstr ""
@@ -2687,7 +2742,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:254
#: part/templates/part/detail.html:344 part/templates/part/detail.html:372
#: templates/js/translated/company.js:425 templates/js/translated/helpers.js:31
-#: users/models.py:204
+#: users/models.py:206
msgid "Delete"
msgstr ""
@@ -2739,9 +2794,9 @@ msgid "Assigned Stock Items"
msgstr "Artículos de Stock Asignados"
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:482
+#: company/templates/company/supplier_part.html:24 stock/models.py:476
#: stock/templates/stock/item_base.html:403
-#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1405
+#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1569
msgid "Supplier Part"
msgstr ""
@@ -2767,7 +2822,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:142
#: part/templates/part/detail.html:21 stock/templates/stock/location.html:163
-#: templates/js/translated/stock.js:355
+#: templates/js/translated/stock.js:359
msgid "New Stock Item"
msgstr ""
@@ -2817,11 +2872,11 @@ msgstr ""
#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:14
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:156
-#: templates/InvenTree/settings/sidebar.html:40
+#: templates/InvenTree/settings/sidebar.html:41
#: templates/js/translated/bom.js:216 templates/js/translated/part.js:434
#: templates/js/translated/part.js:569 templates/js/translated/part.js:1059
-#: templates/js/translated/part.js:1220 templates/js/translated/stock.js:591
-#: templates/js/translated/stock.js:1244 templates/navbar.html:26
+#: templates/js/translated/part.js:1220 templates/js/translated/stock.js:748
+#: templates/js/translated/stock.js:1401 templates/navbar.html:28
msgid "Stock"
msgstr ""
@@ -2844,7 +2899,7 @@ msgstr ""
#: stock/templates/stock/location.html:147
#: stock/templates/stock/location.html:159
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1983
+#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:2158
#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
msgid "Stock Items"
msgstr "Artículos de Stock"
@@ -2858,7 +2913,7 @@ msgid "New Manufacturer"
msgstr ""
#: company/views.py:61 templates/InvenTree/search.html:214
-#: templates/navbar.html:55
+#: templates/navbar.html:57
msgid "Customers"
msgstr ""
@@ -2960,284 +3015,374 @@ msgstr ""
msgid "Part query filters (comma-separated value of key=value pairs)"
msgstr ""
-#: order/forms.py:26 order/templates/order/order_base.html:52
+#: order/forms.py:24 order/templates/order/order_base.html:52
msgid "Place order"
msgstr ""
-#: order/forms.py:37 order/templates/order/order_base.html:60
+#: order/forms.py:35 order/templates/order/order_base.html:60
msgid "Mark order as complete"
msgstr ""
-#: order/forms.py:48 order/forms.py:59 order/templates/order/order_base.html:47
+#: order/forms.py:46 order/forms.py:57 order/templates/order/order_base.html:47
#: order/templates/order/sales_order_base.html:60
msgid "Cancel order"
msgstr ""
-#: order/forms.py:70
-msgid "Ship order"
-msgstr ""
-
-#: order/forms.py:98
-msgid "Enter stock item serial numbers"
-msgstr ""
-
-#: order/forms.py:104
-msgid "Enter quantity of stock items"
-msgstr "Introducir cantidad de artículos de stock"
-
-#: order/models.py:161
+#: order/models.py:122
msgid "Order description"
msgstr ""
-#: order/models.py:163
+#: order/models.py:124
msgid "Link to external page"
msgstr ""
-#: order/models.py:171
+#: order/models.py:132
msgid "Created By"
msgstr ""
-#: order/models.py:178
+#: order/models.py:139
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:183
+#: order/models.py:144
msgid "Order notes"
msgstr ""
-#: order/models.py:250 order/models.py:557
+#: order/models.py:211 order/models.py:537
msgid "Order reference"
msgstr ""
-#: order/models.py:255 order/models.py:572
+#: order/models.py:216 order/models.py:552
msgid "Purchase order status"
msgstr ""
-#: order/models.py:264
+#: order/models.py:225
msgid "Company from which the items are being ordered"
msgstr "Empresa de la que se están pidiendo los artículos"
-#: order/models.py:267 order/templates/order/order_base.html:118
-#: templates/js/translated/order.js:676
+#: order/models.py:228 order/templates/order/order_base.html:118
+#: templates/js/translated/order.js:832
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:267
+#: order/models.py:228
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:274
+#: order/models.py:235
msgid "received by"
msgstr ""
-#: order/models.py:279
+#: order/models.py:240
msgid "Issue Date"
msgstr ""
-#: order/models.py:280
+#: order/models.py:241
msgid "Date order was issued"
msgstr ""
-#: order/models.py:285
+#: order/models.py:246
msgid "Target Delivery Date"
msgstr ""
-#: order/models.py:286
+#: order/models.py:247
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:292
+#: order/models.py:253
msgid "Date order was completed"
msgstr ""
-#: order/models.py:321
+#: order/models.py:282
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:431
+#: order/models.py:411
msgid "Quantity must be an integer"
msgstr ""
-#: order/models.py:435
+#: order/models.py:415
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:568
+#: order/models.py:548
msgid "Company to which the items are being sold"
msgstr "Empresa a la que se venden los artículos"
-#: order/models.py:574
+#: order/models.py:554
msgid "Customer Reference "
msgstr ""
-#: order/models.py:574
+#: order/models.py:554
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:579
+#: order/models.py:559
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:582 templates/js/translated/order.js:1113
+#: order/models.py:562 order/models.py:1026
+#: templates/js/translated/order.js:1281 templates/js/translated/order.js:1429
msgid "Shipment Date"
msgstr ""
-#: order/models.py:589
+#: order/models.py:569
msgid "shipped by"
msgstr ""
-#: order/models.py:633
-msgid "SalesOrder cannot be shipped as it is not currently pending"
+#: order/models.py:634
+msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:730
+#: order/models.py:639
+msgid "Only a pending order can be marked as complete"
+msgstr ""
+
+#: order/models.py:643
+msgid "Order cannot be completed as there are incomplete shipments"
+msgstr ""
+
+#: order/models.py:647
+msgid "Order cannot be completed as there are incomplete line items"
+msgstr ""
+
+#: order/models.py:795
msgid "Item quantity"
msgstr ""
-#: order/models.py:736
+#: order/models.py:801
msgid "Line item reference"
msgstr ""
-#: order/models.py:738
+#: order/models.py:803
msgid "Line item notes"
msgstr ""
-#: order/models.py:768 order/models.py:856
-#: templates/js/translated/order.js:1165
+#: order/models.py:833 order/models.py:924 order/models.py:1020
+#: templates/js/translated/order.js:1820
msgid "Order"
msgstr ""
-#: order/models.py:769 order/templates/order/order_base.html:9
+#: order/models.py:834 order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:353
-#: templates/js/translated/order.js:638 templates/js/translated/part.js:775
-#: templates/js/translated/stock.js:1382 templates/js/translated/stock.js:2065
+#: templates/js/translated/order.js:801 templates/js/translated/part.js:775
+#: templates/js/translated/stock.js:1546 templates/js/translated/stock.js:2240
msgid "Purchase Order"
msgstr ""
-#: order/models.py:790
+#: order/models.py:855
msgid "Supplier part"
msgstr ""
-#: order/models.py:797 order/templates/order/order_base.html:151
-#: order/templates/order/sales_order_base.html:155
-#: templates/js/translated/order.js:429 templates/js/translated/order.js:953
+#: order/models.py:862 order/templates/order/order_base.html:163
+#: templates/js/translated/order.js:589 templates/js/translated/order.js:1118
#: templates/js/translated/part.js:847 templates/js/translated/part.js:873
+#: templates/js/translated/table_filters.js:317
msgid "Received"
msgstr ""
-#: order/models.py:798
+#: order/models.py:863
msgid "Number of items received"
msgstr "Número de artículos recibidos"
-#: order/models.py:805 part/templates/part/prices.html:176 stock/models.py:609
-#: stock/serializers.py:168 stock/templates/stock/item_base.html:360
-#: templates/js/translated/stock.js:1436
+#: order/models.py:870 part/templates/part/prices.html:176 stock/models.py:603
+#: stock/serializers.py:170 stock/templates/stock/item_base.html:360
+#: templates/js/translated/stock.js:1600
msgid "Purchase Price"
msgstr ""
-#: order/models.py:806
+#: order/models.py:871
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:814
+#: order/models.py:879
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:866 part/templates/part/part_pricing.html:112
+#: order/models.py:934 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:116 part/templates/part/prices.html:284
msgid "Sale Price"
msgstr ""
-#: order/models.py:867
+#: order/models.py:935
msgid "Unit sale price"
msgstr ""
-#: order/models.py:946 order/models.py:948
+#: order/models.py:940
+msgid "Shipped quantity"
+msgstr ""
+
+#: order/models.py:1027
+msgid "Date of shipment"
+msgstr ""
+
+#: order/models.py:1034
+msgid "Checked By"
+msgstr ""
+
+#: order/models.py:1035
+msgid "User who checked this shipment"
+msgstr ""
+
+#: order/models.py:1043
+msgid "Shipment number"
+msgstr ""
+
+#: order/models.py:1050
+msgid "Shipment notes"
+msgstr ""
+
+#: order/models.py:1057
+msgid "Tracking Number"
+msgstr ""
+
+#: order/models.py:1058
+msgid "Shipment tracking information"
+msgstr ""
+
+#: order/models.py:1068
+msgid "Shipment has already been sent"
+msgstr ""
+
+#: order/models.py:1071
+msgid "Shipment has no allocated stock items"
+msgstr ""
+
+#: order/models.py:1147 order/models.py:1149
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:952
+#: order/models.py:1153
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:954
+#: order/models.py:1155
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:957
+#: order/models.py:1158
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:961
+#: order/models.py:1162
msgid "StockItem is over-allocated"
msgstr ""
-#: order/models.py:967
+#: order/models.py:1168 order/serializers.py:734
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:975
+#: order/models.py:1171
+msgid "Sales order does not match shipment"
+msgstr ""
+
+#: order/models.py:1172
+msgid "Shipment does not match sales order"
+msgstr ""
+
+#: order/models.py:1180
msgid "Line"
msgstr ""
-#: order/models.py:987
+#: order/models.py:1188 order/serializers.py:825 order/serializers.py:953
+#: templates/js/translated/model_renderers.js:251
+msgid "Shipment"
+msgstr ""
+
+#: order/models.py:1189
+msgid "Sales order shipment reference"
+msgstr ""
+
+#: order/models.py:1201
msgid "Item"
msgstr ""
-#: order/models.py:988
+#: order/models.py:1202
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:991
+#: order/models.py:1205
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/serializers.py:175
+#: order/serializers.py:173
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:213
+#: order/serializers.py:211 order/serializers.py:790
msgid "Line Item"
msgstr ""
-#: order/serializers.py:219
+#: order/serializers.py:217
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:229 order/serializers.py:297
+#: order/serializers.py:227 order/serializers.py:295
msgid "Select destination location for received items"
msgstr "Seleccione la ubicación de destino para los artículos recibidos"
-#: order/serializers.py:253
+#: order/serializers.py:251
msgid "Barcode Hash"
msgstr ""
-#: order/serializers.py:254
+#: order/serializers.py:252
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:271
+#: order/serializers.py:269
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:309
+#: order/serializers.py:307
msgid "Line items must be provided"
msgstr "Debe proporcionar elementos de línea"
-#: order/serializers.py:326
+#: order/serializers.py:324
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:337
+#: order/serializers.py:335
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:578
+#: order/serializers.py:581
msgid "Sale price currency"
msgstr ""
+#: order/serializers.py:649
+msgid "No shipment details provided"
+msgstr ""
+
+#: order/serializers.py:699 order/serializers.py:802
+msgid "Line item is not associated with this order"
+msgstr ""
+
+#: order/serializers.py:721
+msgid "Quantity must be positive"
+msgstr ""
+
+#: order/serializers.py:815
+msgid "Enter serial numbers to allocate"
+msgstr ""
+
+#: order/serializers.py:839 order/serializers.py:964
+msgid "Shipment has already been shipped"
+msgstr ""
+
+#: order/serializers.py:842 order/serializers.py:967
+msgid "Shipment is not associated with this order"
+msgstr ""
+
+#: order/serializers.py:894
+msgid "No match found for the following serial numbers"
+msgstr ""
+
+#: order/serializers.py:904
+msgid "The following serial numbers are already allocated"
+msgstr ""
+
#: order/templates/order/delete_attachment.html:5
#: stock/templates/stock/attachment_delete.html:5
msgid "Are you sure you want to delete this attachment?"
@@ -3271,7 +3416,8 @@ msgstr "Recibir artículos"
msgid "Receive Items"
msgstr "Recibir Artículos"
-#: order/templates/order/order_base.html:62 order/views.py:185
+#: order/templates/order/order_base.html:62
+#: order/templates/order/sales_order_base.html:67 order/views.py:181
msgid "Complete Order"
msgstr ""
@@ -3290,12 +3436,23 @@ msgstr ""
msgid "Order Status"
msgstr ""
-#: order/templates/order/order_base.html:137
+#: order/templates/order/order_base.html:124
+#: order/templates/order/sales_order_base.html:128
+msgid "Completed Line Items"
+msgstr ""
+
+#: order/templates/order/order_base.html:130
+#: order/templates/order/sales_order_base.html:134
+#: order/templates/order/sales_order_base.html:144
+msgid "Incomplete"
+msgstr ""
+
+#: order/templates/order/order_base.html:149
#: report/templates/report/inventree_build_order_base.html:122
msgid "Issued"
msgstr ""
-#: order/templates/order/order_base.html:207
+#: order/templates/order/order_base.html:219
msgid "Edit Purchase Order"
msgstr ""
@@ -3371,8 +3528,9 @@ msgstr ""
#: part/templates/part/import_wizard/ajax_match_references.html:42
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
-#: templates/js/translated/build.js:240 templates/js/translated/build.js:1251
-#: templates/js/translated/order.js:377
+#: templates/js/translated/build.js:245 templates/js/translated/build.js:1256
+#: templates/js/translated/order.js:537 templates/js/translated/order.js:1488
+#: templates/js/translated/stock.js:592
msgid "Remove row"
msgstr ""
@@ -3453,7 +3611,8 @@ msgid "Select existing purchase orders, or create new orders."
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:31
-#: templates/js/translated/order.js:694 templates/js/translated/order.js:1118
+#: templates/js/translated/order.js:859 templates/js/translated/order.js:1286
+#: templates/js/translated/order.js:1416
msgid "Items"
msgstr "Artículos"
@@ -3489,7 +3648,7 @@ msgstr "Comprar Artículos de Orden"
#: order/templates/order/purchase_order_detail.html:27
#: order/templates/order/purchase_order_detail.html:181
#: order/templates/order/sales_order_detail.html:23
-#: order/templates/order/sales_order_detail.html:157
+#: order/templates/order/sales_order_detail.html:244
msgid "Add Line Item"
msgstr ""
@@ -3502,7 +3661,7 @@ msgid "Received Items"
msgstr "Artículos Recibidos"
#: order/templates/order/purchase_order_detail.html:76
-#: order/templates/order/sales_order_detail.html:68
+#: order/templates/order/sales_order_detail.html:123
msgid "Order Notes"
msgstr ""
@@ -3520,8 +3679,8 @@ msgid "Print packing list"
msgstr ""
#: order/templates/order/sales_order_base.html:66
-#: order/templates/order/sales_order_base.html:67 order/views.py:222
-msgid "Ship Order"
+#: order/templates/order/sales_order_base.html:229
+msgid "Complete Sales Order"
msgstr ""
#: order/templates/order/sales_order_base.html:102
@@ -3529,16 +3688,21 @@ msgid "This Sales Order has not been fully allocated"
msgstr ""
#: order/templates/order/sales_order_base.html:122
-#: templates/js/translated/order.js:1085
+#: templates/js/translated/order.js:1253
msgid "Customer Reference"
msgstr ""
-#: order/templates/order/sales_order_base.html:195
+#: order/templates/order/sales_order_base.html:140
+#: order/templates/order/sales_order_detail.html:78
+#: order/templates/order/so_sidebar.html:11
+msgid "Completed Shipments"
+msgstr ""
+
+#: order/templates/order/sales_order_base.html:215
msgid "Edit Sales Order"
msgstr ""
#: order/templates/order/sales_order_cancel.html:8
-#: order/templates/order/sales_order_ship.html:9
#: part/templates/part/bom_duplicate.html:12
#: stock/templates/stock/stockitem_convert.html:13
msgid "Warning"
@@ -3552,146 +3716,100 @@ msgstr ""
msgid "Sales Order Items"
msgstr "Artículos de Orden de Venta"
-#: order/templates/order/sales_order_ship.html:10
-msgid "This order has not been fully allocated. If the order is marked as shipped, it can no longer be adjusted."
+#: order/templates/order/sales_order_detail.html:44
+#: order/templates/order/so_sidebar.html:8
+msgid "Pending Shipments"
msgstr ""
-#: order/templates/order/sales_order_ship.html:12
-msgid "Ensure that the order allocation is correct before shipping the order."
+#: order/templates/order/sales_order_detail.html:48
+#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1188
+msgid "Actions"
msgstr ""
-#: order/templates/order/sales_order_ship.html:18
-msgid "Some line items in this order have been over-allocated"
-msgstr "Algunos artículos de línea en este pedido han sido sobreasignados"
-
-#: order/templates/order/sales_order_ship.html:20
-msgid "Ensure that this is correct before shipping the order."
+#: order/templates/order/sales_order_detail.html:57
+msgid "New Shipment"
msgstr ""
-#: order/templates/order/sales_order_ship.html:27
-msgid "Shipping this order means that the order will no longer be editable."
-msgstr ""
-
-#: order/templates/order/so_allocate_by_serial.html:9
-msgid "Allocate stock items by serial number"
-msgstr "Asignar artículos de stock por número de serie"
-
-#: order/views.py:103
+#: order/views.py:99
msgid "Cancel Order"
msgstr ""
-#: order/views.py:112 order/views.py:138
+#: order/views.py:108 order/views.py:134
msgid "Confirm order cancellation"
msgstr ""
-#: order/views.py:115 order/views.py:141
+#: order/views.py:111 order/views.py:137
msgid "Order cannot be cancelled"
msgstr ""
-#: order/views.py:129
+#: order/views.py:125
msgid "Cancel sales order"
msgstr ""
-#: order/views.py:155
+#: order/views.py:151
msgid "Issue Order"
msgstr ""
-#: order/views.py:164
+#: order/views.py:160
msgid "Confirm order placement"
msgstr ""
-#: order/views.py:174
+#: order/views.py:170
msgid "Purchase order issued"
msgstr ""
-#: order/views.py:201
+#: order/views.py:197
msgid "Confirm order completion"
msgstr ""
-#: order/views.py:212
+#: order/views.py:208
msgid "Purchase order completed"
msgstr ""
-#: order/views.py:238
-msgid "Confirm order shipment"
-msgstr ""
-
-#: order/views.py:244
-msgid "Could not ship order"
-msgstr ""
-
-#: order/views.py:291
+#: order/views.py:245
msgid "Match Supplier Parts"
msgstr ""
-#: order/views.py:535
+#: order/views.py:489
msgid "Update prices"
msgstr ""
-#: order/views.py:793
+#: order/views.py:747
#, python-brace-format
msgid "Ordered {n} parts"
msgstr ""
-#: order/views.py:846
-msgid "Allocate Serial Numbers"
-msgstr ""
-
-#: order/views.py:891
-#, python-brace-format
-msgid "Allocated {n} items"
-msgstr "Asignados {n} artículos"
-
-#: order/views.py:907
-msgid "Select line item"
-msgstr ""
-
-#: order/views.py:938
-#, python-brace-format
-msgid "No matching item for serial {serial}"
-msgstr ""
-
-#: order/views.py:948
-#, python-brace-format
-msgid "{serial} is not in stock"
-msgstr ""
-
-#: order/views.py:956
-#, python-brace-format
-msgid "{serial} already allocated to an order"
-msgstr ""
-
-#: order/views.py:1072
+#: order/views.py:858
msgid "Sales order not found"
msgstr ""
-#: order/views.py:1078
+#: order/views.py:864
msgid "Price not found"
msgstr ""
-#: order/views.py:1081
+#: order/views.py:867
#, python-brace-format
msgid "Updated {part} unit-price to {price}"
msgstr ""
-#: order/views.py:1086
+#: order/views.py:872
#, python-brace-format
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/api.py:758
+#: part/api.py:760
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:762
+#: part/api.py:764
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:777
+#: part/api.py:779
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:808 part/api.py:812 part/api.py:827 part/api.py:831
+#: part/api.py:810 part/api.py:814 part/api.py:829 part/api.py:833
msgid "This field is required"
msgstr ""
@@ -3828,8 +3946,8 @@ msgstr ""
#: part/templates/part/category.html:149
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:88
-#: templates/InvenTree/settings/sidebar.html:36
-#: templates/js/translated/part.js:1597 templates/navbar.html:19
+#: templates/InvenTree/settings/sidebar.html:37
+#: templates/js/translated/part.js:1597 templates/navbar.html:21
#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
msgid "Parts"
msgstr ""
@@ -3895,7 +4013,7 @@ msgstr ""
#: part/models.py:778 part/models.py:2223 part/models.py:2472
#: part/templates/part/part_base.html:265
#: part/templates/part/set_category.html:15
-#: templates/InvenTree/settings/settings.html:163
+#: templates/InvenTree/settings/settings.html:172
#: templates/js/translated/part.js:1202
msgid "Category"
msgstr ""
@@ -3906,7 +4024,7 @@ msgstr ""
#: part/models.py:784 part/templates/part/part_base.html:274
#: templates/js/translated/part.js:557 templates/js/translated/part.js:1155
-#: templates/js/translated/stock.js:1216
+#: templates/js/translated/stock.js:1373
msgid "IPN"
msgstr ""
@@ -3975,10 +4093,11 @@ msgstr ""
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:915 templates/js/translated/table_filters.js:34
+#: part/models.py:915 plugin/models.py:45
+#: templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:96
-#: templates/js/translated/table_filters.js:290
-#: templates/js/translated/table_filters.js:368
+#: templates/js/translated/table_filters.js:295
+#: templates/js/translated/table_filters.js:399
msgid "Active"
msgstr ""
@@ -4027,7 +4146,7 @@ msgid "Test with this name already exists for this part"
msgstr ""
#: part/models.py:2310 templates/js/translated/part.js:1648
-#: templates/js/translated/stock.js:940
+#: templates/js/translated/stock.js:1097
msgid "Test Name"
msgstr ""
@@ -4044,7 +4163,7 @@ msgid "Enter description for this test"
msgstr ""
#: part/models.py:2322 templates/js/translated/part.js:1657
-#: templates/js/translated/table_filters.js:276
+#: templates/js/translated/table_filters.js:281
msgid "Required"
msgstr ""
@@ -4086,7 +4205,7 @@ msgid "Parameter Units"
msgstr ""
#: part/models.py:2429 part/models.py:2478 part/models.py:2479
-#: templates/InvenTree/settings/settings.html:158
+#: templates/InvenTree/settings/settings.html:167
msgid "Parameter Template"
msgstr ""
@@ -4098,7 +4217,7 @@ msgstr ""
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2483 templates/InvenTree/settings/settings.html:167
+#: part/models.py:2483 templates/InvenTree/settings/settings.html:176
msgid "Default Value"
msgstr ""
@@ -4175,7 +4294,7 @@ msgstr ""
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2686 stock/models.py:361
+#: part/models.py:2686 stock/models.py:355
msgid "Quantity must be integer value for trackable parts"
msgstr ""
@@ -4724,8 +4843,8 @@ msgstr ""
msgid "This part is a variant of %(link)s"
msgstr ""
-#: part/templates/part/part_base.html:190 templates/js/translated/order.js:1545
-#: templates/js/translated/table_filters.js:188
+#: part/templates/part/part_base.html:190 templates/js/translated/order.js:2217
+#: templates/js/translated/table_filters.js:193
msgid "In Stock"
msgstr ""
@@ -5099,6 +5218,78 @@ msgstr ""
msgid "Delete Internal Price Break"
msgstr ""
+#: plugin/integration.py:116
+msgid "No author found"
+msgstr ""
+
+#: plugin/integration.py:128
+msgid "No date found"
+msgstr ""
+
+#: plugin/models.py:25
+msgid "Plugin Configuration"
+msgstr ""
+
+#: plugin/models.py:26
+msgid "Plugin Configurations"
+msgstr ""
+
+#: plugin/models.py:31
+msgid "Key"
+msgstr ""
+
+#: plugin/models.py:32
+msgid "Key of plugin"
+msgstr ""
+
+#: plugin/models.py:40
+msgid "PluginName of the plugin"
+msgstr ""
+
+#: plugin/models.py:46
+msgid "Is the plugin active"
+msgstr ""
+
+#: plugin/samples/integration/sample.py:39
+msgid "Enable PO"
+msgstr ""
+
+#: plugin/samples/integration/sample.py:40
+msgid "Enable PO functionality in InvenTree interface"
+msgstr ""
+
+#: plugin/serializers.py:46
+msgid "Source URL"
+msgstr ""
+
+#: plugin/serializers.py:47
+msgid "Source for the package - this can be a custom registry or a VCS path"
+msgstr ""
+
+#: plugin/serializers.py:52
+msgid "Package Name"
+msgstr ""
+
+#: plugin/serializers.py:53
+msgid "Name for the Plugin Package - can also contain a version indicator"
+msgstr ""
+
+#: plugin/serializers.py:56
+msgid "Confirm plugin installation"
+msgstr ""
+
+#: plugin/serializers.py:57
+msgid "This will install this plugin now into the current instance. The instance will go into maintenance."
+msgstr ""
+
+#: plugin/serializers.py:72
+msgid "Installation not confirmed"
+msgstr ""
+
+#: plugin/serializers.py:74
+msgid "Either packagenmae of url must be provided"
+msgstr ""
+
#: report/api.py:234 report/api.py:278
#, python-brace-format
msgid "Template file '{filename}' is missing or does not exist"
@@ -5197,12 +5388,12 @@ msgid "Stock Item Test Report"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:520 stock/templates/stock/item_base.html:149
-#: templates/js/translated/build.js:233 templates/js/translated/build.js:637
-#: templates/js/translated/build.js:1013
+#: stock/models.py:514 stock/templates/stock/item_base.html:149
+#: templates/js/translated/build.js:238 templates/js/translated/build.js:642
+#: templates/js/translated/build.js:1018
#: templates/js/translated/model_renderers.js:95
-#: templates/js/translated/order.js:1287 templates/js/translated/order.js:1376
-#: templates/js/translated/stock.js:410
+#: templates/js/translated/order.js:99 templates/js/translated/order.js:1945
+#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:414
msgid "Serial Number"
msgstr ""
@@ -5211,17 +5402,19 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:93
-#: stock/models.py:1845
+#: stock/models.py:1833
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:94
-#: stock/models.py:1851
+#: stock/models.py:1839
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:97
-#: templates/js/translated/order.js:684 templates/js/translated/stock.js:1999
+#: templates/InvenTree/settings/plugin.html:49
+#: templates/InvenTree/settings/plugin_settings.html:38
+#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2174
msgid "Date"
msgstr ""
@@ -5239,302 +5432,318 @@ msgid "Installed Items"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
-#: templates/js/translated/stock.js:2259
+#: templates/js/translated/stock.js:577 templates/js/translated/stock.js:2434
msgid "Serial"
msgstr ""
-#: stock/api.py:422
+#: stock/api.py:446
msgid "Quantity is required"
msgstr ""
-#: stock/forms.py:91 stock/forms.py:265 stock/models.py:577
+#: stock/forms.py:77 stock/forms.py:251 stock/models.py:571
#: stock/templates/stock/item_base.html:186
-#: templates/js/translated/stock.js:1358
+#: templates/js/translated/stock.js:1522
msgid "Expiry Date"
msgstr ""
-#: stock/forms.py:92 stock/forms.py:266
+#: stock/forms.py:78 stock/forms.py:252
msgid "Expiration date for this stock item"
msgstr ""
-#: stock/forms.py:95
+#: stock/forms.py:81
msgid "Enter unique serial numbers (or leave blank)"
msgstr ""
-#: stock/forms.py:150
+#: stock/forms.py:136
msgid "Destination for serialized stock (by default, will remain in current location)"
msgstr ""
-#: stock/forms.py:152
+#: stock/forms.py:138
msgid "Serial numbers"
msgstr ""
-#: stock/forms.py:152
+#: stock/forms.py:138
msgid "Unique serial numbers (must match quantity)"
msgstr ""
-#: stock/forms.py:154 stock/forms.py:238
+#: stock/forms.py:140 stock/forms.py:224
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/forms.py:194
+#: stock/forms.py:180
msgid "Stock item to install"
msgstr ""
-#: stock/forms.py:224
+#: stock/forms.py:210
msgid "Must not exceed available quantity"
msgstr ""
-#: stock/forms.py:236
+#: stock/forms.py:222
msgid "Destination location for uninstalled items"
msgstr ""
-#: stock/forms.py:240
+#: stock/forms.py:226
msgid "Confirm uninstall"
msgstr ""
-#: stock/forms.py:240
+#: stock/forms.py:226
msgid "Confirm removal of installed stock items"
msgstr ""
-#: stock/models.py:60 stock/models.py:614
+#: stock/models.py:60 stock/models.py:608
#: stock/templates/stock/item_base.html:417
msgid "Owner"
msgstr ""
-#: stock/models.py:61 stock/models.py:615
+#: stock/models.py:61 stock/models.py:609
msgid "Select Owner"
msgstr ""
-#: stock/models.py:342
+#: stock/models.py:336
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:378
+#: stock/models.py:372
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:388 stock/models.py:397
+#: stock/models.py:382 stock/models.py:391
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:389
+#: stock/models.py:383
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:411
+#: stock/models.py:405
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:417
+#: stock/models.py:411
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:424
+#: stock/models.py:418
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:466
+#: stock/models.py:460
msgid "Parent Stock Item"
msgstr "Artículo de stock principal"
-#: stock/models.py:475
+#: stock/models.py:469
msgid "Base part"
msgstr ""
-#: stock/models.py:483
+#: stock/models.py:477
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:488 stock/templates/stock/location.html:12
+#: stock/models.py:482 stock/templates/stock/location.html:12
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:491
+#: stock/models.py:485
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:498
+#: stock/models.py:492
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:503 stock/templates/stock/item_base.html:299
+#: stock/models.py:497 stock/templates/stock/item_base.html:299
msgid "Installed In"
msgstr ""
-#: stock/models.py:506
+#: stock/models.py:500
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:522
+#: stock/models.py:516
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:536
+#: stock/models.py:530
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:540
+#: stock/models.py:534
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:549
+#: stock/models.py:543
msgid "Source Build"
msgstr ""
-#: stock/models.py:551
+#: stock/models.py:545
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:562
+#: stock/models.py:556
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:565
+#: stock/models.py:559
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:571
+#: stock/models.py:565
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:578
+#: stock/models.py:572
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:591
+#: stock/models.py:585
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:591
+#: stock/models.py:585
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:601 stock/templates/stock/item.html:111
+#: stock/models.py:595 stock/templates/stock/item.html:111
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:610
+#: stock/models.py:604
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:620
-msgid "Scheduled for deletion"
-msgstr ""
-
-#: stock/models.py:621
-msgid "This StockItem will be deleted by the background worker"
-msgstr ""
-
-#: stock/models.py:1084
+#: stock/models.py:1072
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1090
+#: stock/models.py:1078
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1096
+#: stock/models.py:1084
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1099
+#: stock/models.py:1087
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1102
+#: stock/models.py:1090
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1109
+#: stock/models.py:1097
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1267
+#: stock/models.py:1255
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1765
+#: stock/models.py:1753
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1822
+#: stock/models.py:1810
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1828
+#: stock/models.py:1816
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1846
+#: stock/models.py:1834
msgid "Test name"
msgstr ""
-#: stock/models.py:1852 templates/js/translated/table_filters.js:266
+#: stock/models.py:1840 templates/js/translated/table_filters.js:271
msgid "Test result"
msgstr ""
-#: stock/models.py:1858
+#: stock/models.py:1846
msgid "Test output value"
msgstr ""
-#: stock/models.py:1865
+#: stock/models.py:1853
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1871
+#: stock/models.py:1859
msgid "Test notes"
msgstr ""
-#: stock/serializers.py:171
+#: stock/serializers.py:173
msgid "Purchase price of this stock item"
msgstr ""
-#: stock/serializers.py:178
+#: stock/serializers.py:180
msgid "Purchase currency of this stock item"
msgstr ""
-#: stock/serializers.py:292
+#: stock/serializers.py:294
msgid "Enter number of stock items to serialize"
msgstr ""
-#: stock/serializers.py:307
+#: stock/serializers.py:309
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:313
+#: stock/serializers.py:315
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:324 stock/serializers.py:691
+#: stock/serializers.py:326 stock/serializers.py:814
msgid "Destination stock location"
msgstr ""
-#: stock/serializers.py:331
+#: stock/serializers.py:333
msgid "Optional note field"
msgstr ""
-#: stock/serializers.py:344
+#: stock/serializers.py:346
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:561
+#: stock/serializers.py:573
+msgid "Part must be salable"
+msgstr ""
+
+#: stock/serializers.py:577
+msgid "Item is allocated to a sales order"
+msgstr ""
+
+#: stock/serializers.py:581
+msgid "Item is allocated to a build order"
+msgstr ""
+
+#: stock/serializers.py:611
+msgid "Customer to assign stock items"
+msgstr ""
+
+#: stock/serializers.py:617
+msgid "Selected company is not a customer"
+msgstr ""
+
+#: stock/serializers.py:625
+msgid "Stock assignment notes"
+msgstr ""
+
+#: stock/serializers.py:635 stock/serializers.py:722
+msgid "A list of stock items must be provided"
+msgstr ""
+
+#: stock/serializers.py:684
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:589
+#: stock/serializers.py:712
msgid "Stock transaction notes"
msgstr ""
-#: stock/serializers.py:599
-msgid "A list of stock items must be provided"
-msgstr ""
-
#: stock/templates/stock/item.html:18
msgid "Stock Tracking Information"
msgstr ""
@@ -5572,7 +5781,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:137 stock/views.py:515
+#: stock/templates/stock/item.html:137 stock/views.py:482
msgid "Install Stock Item"
msgstr ""
@@ -5632,7 +5841,7 @@ msgstr ""
msgid "Transfer stock"
msgstr ""
-#: stock/templates/stock/item_base.html:85
+#: stock/templates/stock/item_base.html:85 templates/stock_table.html:53
msgid "Assign to customer"
msgstr ""
@@ -5694,7 +5903,7 @@ msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:190
-#: templates/js/translated/table_filters.js:247
+#: templates/js/translated/table_filters.js:252
msgid "Expired"
msgstr ""
@@ -5704,12 +5913,12 @@ msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:192
-#: templates/js/translated/table_filters.js:253
+#: templates/js/translated/table_filters.js:258
msgid "Stale"
msgstr ""
#: stock/templates/stock/item_base.html:199
-#: templates/js/translated/stock.js:1371
+#: templates/js/translated/stock.js:1535
msgid "Last Updated"
msgstr ""
@@ -5738,13 +5947,11 @@ msgid "This stock item has not passed all required tests"
msgstr ""
#: stock/templates/stock/item_base.html:255
-#, python-format
-msgid "This stock item is allocated to Sales Order %(link)s (Quantity: %(qty)s)"
+msgid "This stock item is allocated to Sales Order"
msgstr ""
#: stock/templates/stock/item_base.html:263
-#, python-format
-msgid "This stock item is allocated to Build %(link)s (Quantity: %(qty)s)"
+msgid "This stock item is allocated to Build Order"
msgstr ""
#: stock/templates/stock/item_base.html:269
@@ -5760,7 +5967,7 @@ msgid "This stock item will be automatically deleted when all stock is depleted.
msgstr ""
#: stock/templates/stock/item_base.html:318
-#: templates/js/translated/build.js:1035
+#: templates/js/translated/build.js:1040
msgid "No location set"
msgstr ""
@@ -5910,7 +6117,7 @@ msgstr ""
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:912
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:879
msgid "Convert Stock Item"
msgstr ""
@@ -5935,8 +6142,7 @@ msgstr ""
msgid "Edit Stock Location"
msgstr ""
-#: stock/views.py:269 stock/views.py:891 stock/views.py:1017
-#: stock/views.py:1299
+#: stock/views.py:269 stock/views.py:858 stock/views.py:984 stock/views.py:1266
msgid "Owner is required (ownership control is enabled)"
msgstr ""
@@ -5945,86 +6151,78 @@ msgid "Stock Location QR code"
msgstr ""
#: stock/views.py:303
-msgid "Assign to Customer"
-msgstr ""
-
-#: stock/views.py:312
-msgid "Customer must be specified"
-msgstr ""
-
-#: stock/views.py:336
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:345
+#: stock/views.py:312
msgid "Specify a valid location"
msgstr ""
-#: stock/views.py:356
+#: stock/views.py:323
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:367
+#: stock/views.py:334
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:384
+#: stock/views.py:351
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:489
+#: stock/views.py:456
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:663
+#: stock/views.py:630
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:760 templates/js/translated/stock.js:730
+#: stock/views.py:727 templates/js/translated/stock.js:887
msgid "Confirm stock adjustment"
msgstr ""
-#: stock/views.py:771
+#: stock/views.py:738
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:793 templates/js/translated/stock.js:319
+#: stock/views.py:760 templates/js/translated/stock.js:323
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:943
+#: stock/views.py:910
msgid "Create new Stock Location"
msgstr ""
-#: stock/views.py:1044
+#: stock/views.py:1011
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1186 templates/js/translated/stock.js:299
+#: stock/views.py:1153 templates/js/translated/stock.js:303
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1268
+#: stock/views.py:1235
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1368
+#: stock/views.py:1335
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:1381
+#: stock/views.py:1348
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1392
+#: stock/views.py:1359
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1399
+#: stock/views.py:1366
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1408
+#: stock/views.py:1375
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -6044,6 +6242,14 @@ msgstr ""
msgid "The requested page does not exist"
msgstr ""
+#: templates/503.html:10 templates/503.html:35
+msgid "Site is in Maintenance"
+msgstr ""
+
+#: templates/503.html:41
+msgid "The site is currently in maintenance and should be up again soon!"
+msgstr ""
+
#: templates/InvenTree/index.html:7
msgid "Index"
msgstr ""
@@ -6153,7 +6359,7 @@ msgid "Server Settings"
msgstr ""
#: templates/InvenTree/settings/login.html:9
-#: templates/InvenTree/settings/sidebar.html:28
+#: templates/InvenTree/settings/sidebar.html:29
msgid "Login Settings"
msgstr ""
@@ -6161,6 +6367,24 @@ msgstr ""
msgid "Signup"
msgstr ""
+#: templates/InvenTree/settings/mixins/settings.html:4
+#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:118
+msgid "Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/mixins/urls.html:4
+msgid "URLs"
+msgstr ""
+
+#: templates/InvenTree/settings/mixins/urls.html:6
+#, python-format
+msgid "The Base-URL for this plugin is %(base)s."
+msgstr ""
+
+#: templates/InvenTree/settings/mixins/urls.html:21
+msgid "open in new tab"
+msgstr ""
+
#: templates/InvenTree/settings/part.html:7
msgid "Part Settings"
msgstr ""
@@ -6177,6 +6401,126 @@ msgstr ""
msgid "Part Parameter Templates"
msgstr ""
+#: templates/InvenTree/settings/plugin.html:10
+msgid "Plugin Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:16
+msgid "Changing the settings below require you to immediatly restart InvenTree. Do not change this while under active usage."
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:32
+msgid "Plugin list"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:37
+#: templates/js/translated/plugin.js:15
+msgid "Install Plugin"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:46 templates/navbar.html:111
+#: users/models.py:39
+msgid "Admin"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:48
+#: templates/InvenTree/settings/plugin_settings.html:28
+msgid "Author"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:50
+#: templates/InvenTree/settings/plugin_settings.html:43
+msgid "Version"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:73
+#, python-format
+msgid "has %(name)s"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:91
+msgid "Inactive plugins"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:114
+msgid "Plugin Error Stack"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:123
+msgid "Stage"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:125
+msgid "Message"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:10
+#, python-format
+msgid "Plugin details for %(name)s"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:17
+msgid "Plugin information"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:48
+msgid "no version information supplied"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:62
+msgid "License"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:70
+msgid "The code information is pulled from the latest git commit for this plugin. It might not reflect official version numbers or information but the actual code running."
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:74
+msgid "Package information"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:80
+msgid "Installation method"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:83
+msgid "This plugin was installed as a package"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:85
+msgid "This plugin was found in a local InvenTree path"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:91
+msgid "Installation path"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:97
+msgid "Commit Author"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:101
+#: templates/about.html:47
+msgid "Commit Date"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:105
+#: templates/about.html:40
+msgid "Commit Hash"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:109
+msgid "Commit Message"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:114
+msgid "Sign Status"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:119
+msgid "Sign Key"
+msgstr ""
+
#: templates/InvenTree/settings/po.html:7
msgid "Purchase Order Settings"
msgstr ""
@@ -6194,86 +6538,82 @@ msgstr ""
msgid "Edit setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:11 templates/navbar.html:93
-msgid "Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/settings.html:65
+#: templates/InvenTree/settings/settings.html:74
msgid "Edit Global Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:65
+#: templates/InvenTree/settings/settings.html:74
msgid "Edit User Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:148
+#: templates/InvenTree/settings/settings.html:157
msgid "No category parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:170
-#: templates/InvenTree/settings/settings.html:269
+#: templates/InvenTree/settings/settings.html:179
+#: templates/InvenTree/settings/settings.html:278
msgid "Edit Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:171
-#: templates/InvenTree/settings/settings.html:270
+#: templates/InvenTree/settings/settings.html:180
+#: templates/InvenTree/settings/settings.html:279
msgid "Delete Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:249
+#: templates/InvenTree/settings/settings.html:258
msgid "No part parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:253
+#: templates/InvenTree/settings/settings.html:262
msgid "ID"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:5
+#: templates/InvenTree/settings/sidebar.html:6
#: templates/InvenTree/settings/user_settings.html:9
msgid "User Settings"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:8
+#: templates/InvenTree/settings/sidebar.html:9
#: templates/InvenTree/settings/user.html:12
msgid "Account Settings"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:10
+#: templates/InvenTree/settings/sidebar.html:11
#: templates/InvenTree/settings/user_display.html:9
msgid "Display Settings"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:12
+#: templates/InvenTree/settings/sidebar.html:13
msgid "Home Page"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:14
+#: templates/InvenTree/settings/sidebar.html:15
#: templates/InvenTree/settings/user_search.html:9
msgid "Search Settings"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:16
+#: templates/InvenTree/settings/sidebar.html:17
msgid "Label Printing"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:18
-#: templates/InvenTree/settings/sidebar.html:34
+#: templates/InvenTree/settings/sidebar.html:19
+#: templates/InvenTree/settings/sidebar.html:35
msgid "Reporting"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:23
+#: templates/InvenTree/settings/sidebar.html:24
msgid "Global Settings"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:26
+#: templates/InvenTree/settings/sidebar.html:27
msgid "Server Configuration"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:32
+#: templates/InvenTree/settings/sidebar.html:33
msgid "Currencies"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:38
+#: templates/InvenTree/settings/sidebar.html:39
msgid "Categories"
msgstr ""
@@ -6491,8 +6831,8 @@ msgstr ""
#: templates/about.html:11 templates/about.html:105
#: templates/js/translated/bom.js:283 templates/js/translated/modals.js:53
-#: templates/js/translated/modals.js:567 templates/js/translated/modals.js:661
-#: templates/js/translated/modals.js:964 templates/modals.html:15
+#: templates/js/translated/modals.js:568 templates/js/translated/modals.js:662
+#: templates/js/translated/modals.js:965 templates/modals.html:15
#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
msgid "Close"
msgstr ""
@@ -6513,14 +6853,6 @@ msgstr ""
msgid "Update Available"
msgstr ""
-#: templates/about.html:40
-msgid "Commit Hash"
-msgstr ""
-
-#: templates/about.html:47
-msgid "Commit Date"
-msgstr ""
-
#: templates/about.html:53
msgid "InvenTree Documentation"
msgstr ""
@@ -6718,8 +7050,9 @@ msgstr ""
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1129
-#: templates/js/translated/build.js:1749
+#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1134
+#: templates/js/translated/build.js:1755
+#: templates/js/translated/table_filters.js:178
msgid "Available"
msgstr ""
@@ -6765,11 +7098,11 @@ msgstr ""
msgid "Remote image must not exceed maximum allowable file size"
msgstr ""
-#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1034
+#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1035
msgid "No Response"
msgstr ""
-#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1035
+#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1036
msgid "No response from the InvenTree server"
msgstr ""
@@ -6781,35 +7114,35 @@ msgstr ""
msgid "API request returned error code 400"
msgstr ""
-#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1044
+#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1045
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1045
+#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1046
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1049
+#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1050
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1050
+#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1051
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1054
+#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1055
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1055
+#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1056
msgid "The requested resource could not be located on the server"
msgstr ""
-#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1059
+#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1060
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1060
+#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1061
msgid "Connection timeout while requesting data from server"
msgstr ""
@@ -6878,7 +7211,7 @@ msgid "Unknown response from server"
msgstr ""
#: templates/js/translated/barcode.js:140
-#: templates/js/translated/modals.js:1024
+#: templates/js/translated/modals.js:1025
msgid "Invalid server response"
msgstr ""
@@ -6886,7 +7219,7 @@ msgstr ""
msgid "Scan barcode data below"
msgstr ""
-#: templates/js/translated/barcode.js:280 templates/navbar.html:69
+#: templates/js/translated/barcode.js:280 templates/navbar.html:94
msgid "Scan Barcode"
msgstr ""
@@ -6906,7 +7239,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:682
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:839
msgid "Remove stock item"
msgstr ""
@@ -6976,7 +7309,7 @@ msgstr ""
msgid "Substitutes Available"
msgstr ""
-#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1111
+#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1116
msgid "Variant stock allowed"
msgstr ""
@@ -7000,11 +7333,6 @@ msgstr ""
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1183
-#: templates/js/translated/order.js:1319
-msgid "Actions"
-msgstr ""
-
#: templates/js/translated/bom.js:616
msgid "Validate BOM Item"
msgstr ""
@@ -7025,7 +7353,7 @@ msgstr ""
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:718 templates/js/translated/build.js:855
+#: templates/js/translated/bom.js:718 templates/js/translated/build.js:860
msgid "No BOM items found"
msgstr ""
@@ -7033,7 +7361,7 @@ msgstr ""
msgid "Are you sure you want to delete this BOM item?"
msgstr ""
-#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1095
+#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1100
msgid "Required Part"
msgstr ""
@@ -7041,165 +7369,165 @@ msgstr ""
msgid "Inherited from parent BOM"
msgstr "Heredado de BOM principal"
-#: templates/js/translated/build.js:78
+#: templates/js/translated/build.js:83
msgid "Edit Build Order"
msgstr ""
-#: templates/js/translated/build.js:112
+#: templates/js/translated/build.js:117
msgid "Create Build Order"
msgstr ""
-#: templates/js/translated/build.js:133
+#: templates/js/translated/build.js:138
msgid "Allocate stock items to this build output"
msgstr ""
-#: templates/js/translated/build.js:144
+#: templates/js/translated/build.js:149
msgid "Unallocate stock from build output"
msgstr ""
-#: templates/js/translated/build.js:153
+#: templates/js/translated/build.js:158
msgid "Complete build output"
msgstr ""
-#: templates/js/translated/build.js:161
+#: templates/js/translated/build.js:166
msgid "Delete build output"
msgstr ""
-#: templates/js/translated/build.js:184
+#: templates/js/translated/build.js:189
msgid "Are you sure you wish to unallocate stock items from this build?"
msgstr ""
-#: templates/js/translated/build.js:202
+#: templates/js/translated/build.js:207
msgid "Unallocate Stock Items"
msgstr ""
-#: templates/js/translated/build.js:220
+#: templates/js/translated/build.js:225
msgid "Select Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:221
+#: templates/js/translated/build.js:226
msgid "At least one build output must be selected"
msgstr ""
-#: templates/js/translated/build.js:275
+#: templates/js/translated/build.js:280
msgid "Output"
msgstr ""
-#: templates/js/translated/build.js:291
+#: templates/js/translated/build.js:296
msgid "Complete Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:386
+#: templates/js/translated/build.js:391
msgid "No build order allocations found"
msgstr ""
-#: templates/js/translated/build.js:424 templates/js/translated/order.js:1193
+#: templates/js/translated/build.js:429 templates/js/translated/order.js:1848
msgid "Location not specified"
msgstr ""
-#: templates/js/translated/build.js:603
+#: templates/js/translated/build.js:608
msgid "No active build outputs found"
msgstr ""
-#: templates/js/translated/build.js:1052 templates/js/translated/build.js:1760
-#: templates/js/translated/order.js:1326
+#: templates/js/translated/build.js:1057 templates/js/translated/build.js:1766
+#: templates/js/translated/order.js:1982
msgid "Edit stock allocation"
msgstr ""
-#: templates/js/translated/build.js:1054 templates/js/translated/build.js:1761
-#: templates/js/translated/order.js:1327
+#: templates/js/translated/build.js:1059 templates/js/translated/build.js:1767
+#: templates/js/translated/order.js:1983
msgid "Delete stock allocation"
msgstr ""
-#: templates/js/translated/build.js:1072
+#: templates/js/translated/build.js:1077
msgid "Edit Allocation"
msgstr ""
-#: templates/js/translated/build.js:1082
+#: templates/js/translated/build.js:1087
msgid "Remove Allocation"
msgstr ""
-#: templates/js/translated/build.js:1107
+#: templates/js/translated/build.js:1112
msgid "Substitute parts available"
msgstr ""
-#: templates/js/translated/build.js:1124
+#: templates/js/translated/build.js:1129
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:1134 templates/js/translated/build.js:1360
-#: templates/js/translated/build.js:1756 templates/js/translated/order.js:1556
+#: templates/js/translated/build.js:1139 templates/js/translated/build.js:1365
+#: templates/js/translated/build.js:1762 templates/js/translated/order.js:2227
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:1190 templates/js/translated/order.js:1610
+#: templates/js/translated/build.js:1195 templates/js/translated/order.js:2307
msgid "Build stock"
msgstr ""
-#: templates/js/translated/build.js:1194 templates/stock_table.html:52
+#: templates/js/translated/build.js:1199 templates/stock_table.html:52
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:1197 templates/js/translated/order.js:1603
+#: templates/js/translated/build.js:1202 templates/js/translated/order.js:2300
msgid "Allocate stock"
msgstr ""
-#: templates/js/translated/build.js:1262
+#: templates/js/translated/build.js:1267 templates/js/translated/order.js:1499
msgid "Specify stock allocation quantity"
msgstr ""
-#: templates/js/translated/build.js:1333 templates/js/translated/label.js:134
-#: templates/js/translated/report.js:225
+#: templates/js/translated/build.js:1338 templates/js/translated/label.js:134
+#: templates/js/translated/order.js:1550 templates/js/translated/report.js:225
msgid "Select Parts"
msgstr ""
-#: templates/js/translated/build.js:1334
+#: templates/js/translated/build.js:1339 templates/js/translated/order.js:1551
msgid "You must select at least one part to allocate"
msgstr ""
-#: templates/js/translated/build.js:1348
+#: templates/js/translated/build.js:1353 templates/js/translated/order.js:1565
msgid "Select source location (leave blank to take from all locations)"
msgstr ""
-#: templates/js/translated/build.js:1377
+#: templates/js/translated/build.js:1382 templates/js/translated/order.js:1600
msgid "Confirm stock allocation"
msgstr ""
-#: templates/js/translated/build.js:1378
+#: templates/js/translated/build.js:1383
msgid "Allocate Stock Items to Build Order"
msgstr ""
-#: templates/js/translated/build.js:1389
+#: templates/js/translated/build.js:1394 templates/js/translated/order.js:1613
msgid "No matching stock locations"
msgstr ""
-#: templates/js/translated/build.js:1451
+#: templates/js/translated/build.js:1464 templates/js/translated/order.js:1690
msgid "No matching stock items"
msgstr ""
-#: templates/js/translated/build.js:1576
+#: templates/js/translated/build.js:1582
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:1593 templates/js/translated/part.js:1147
-#: templates/js/translated/part.js:1558 templates/js/translated/stock.js:1176
-#: templates/js/translated/stock.js:1953
+#: templates/js/translated/build.js:1599 templates/js/translated/part.js:1147
+#: templates/js/translated/part.js:1558 templates/js/translated/stock.js:1333
+#: templates/js/translated/stock.js:2128
msgid "Select"
msgstr ""
-#: templates/js/translated/build.js:1613
+#: templates/js/translated/build.js:1619
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1674 templates/js/translated/stock.js:2172
+#: templates/js/translated/build.js:1680 templates/js/translated/stock.js:2347
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:1686
+#: templates/js/translated/build.js:1692
msgid "No information"
msgstr ""
-#: templates/js/translated/build.js:1737
+#: templates/js/translated/build.js:1743
msgid "No parts allocated for"
msgstr ""
@@ -7219,7 +7547,7 @@ msgstr ""
msgid "Delete Manufacturer Part"
msgstr ""
-#: templates/js/translated/company.js:165 templates/js/translated/order.js:90
+#: templates/js/translated/company.js:165 templates/js/translated/order.js:248
msgid "Add Supplier"
msgstr ""
@@ -7354,20 +7682,20 @@ msgstr ""
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1072 templates/modals.html:19
+#: templates/js/translated/forms.js:1078 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1463
+#: templates/js/translated/forms.js:1469
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1667
+#: templates/js/translated/forms.js:1673
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1884
+#: templates/js/translated/forms.js:1893
msgid "Clear input"
msgstr ""
@@ -7380,7 +7708,7 @@ msgid "NO"
msgstr ""
#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:706
+#: templates/js/translated/stock.js:863
msgid "Select Stock Items"
msgstr ""
@@ -7429,62 +7757,62 @@ msgstr ""
msgid "Select Label Template"
msgstr ""
-#: templates/js/translated/modals.js:75 templates/js/translated/modals.js:119
-#: templates/js/translated/modals.js:593
+#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:120
+#: templates/js/translated/modals.js:594
msgid "Cancel"
msgstr ""
-#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:118
-#: templates/js/translated/modals.js:660 templates/js/translated/modals.js:963
+#: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119
+#: templates/js/translated/modals.js:661 templates/js/translated/modals.js:964
#: templates/modals.html:28 templates/modals.html:51
msgid "Submit"
msgstr ""
-#: templates/js/translated/modals.js:117
+#: templates/js/translated/modals.js:118
msgid "Form Title"
msgstr ""
-#: templates/js/translated/modals.js:380
+#: templates/js/translated/modals.js:381
msgid "Waiting for server..."
msgstr ""
-#: templates/js/translated/modals.js:539
+#: templates/js/translated/modals.js:540
msgid "Show Error Information"
msgstr ""
-#: templates/js/translated/modals.js:592
+#: templates/js/translated/modals.js:593
msgid "Accept"
msgstr ""
-#: templates/js/translated/modals.js:649
+#: templates/js/translated/modals.js:650
msgid "Loading Data"
msgstr ""
-#: templates/js/translated/modals.js:915
+#: templates/js/translated/modals.js:916
msgid "Invalid response from server"
msgstr ""
-#: templates/js/translated/modals.js:915
+#: templates/js/translated/modals.js:916
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/translated/modals.js:927
+#: templates/js/translated/modals.js:928
msgid "Error posting form data"
msgstr ""
-#: templates/js/translated/modals.js:1024
+#: templates/js/translated/modals.js:1025
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/translated/modals.js:1039
+#: templates/js/translated/modals.js:1040
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/translated/modals.js:1040
+#: templates/js/translated/modals.js:1041
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/translated/modals.js:1063
+#: templates/js/translated/modals.js:1064
msgid "Error requesting form data"
msgstr ""
@@ -7512,176 +7840,245 @@ msgstr ""
msgid "Order ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:256
+#: templates/js/translated/model_renderers.js:253
+msgid "Shipment ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:273
msgid "Category ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:293
+#: templates/js/translated/model_renderers.js:310
msgid "Manufacturer Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:322
+#: templates/js/translated/model_renderers.js:339
msgid "Supplier Part ID"
msgstr ""
-#: templates/js/translated/order.js:48
+#: templates/js/translated/order.js:75
+msgid "No stock items have been allocated to this shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:80
+msgid "The following stock items will be shipped"
+msgstr ""
+
+#: templates/js/translated/order.js:120
+msgid "Complete Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:126
+msgid "Confirm Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:181
+msgid "Create New Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:206
msgid "Add Customer"
msgstr ""
-#: templates/js/translated/order.js:73
+#: templates/js/translated/order.js:231
msgid "Create Sales Order"
msgstr ""
-#: templates/js/translated/order.js:208
+#: templates/js/translated/order.js:366
msgid "Export Order"
msgstr ""
-#: templates/js/translated/order.js:211 templates/js/translated/stock.js:505
+#: templates/js/translated/order.js:369 templates/js/translated/stock.js:509
msgid "Format"
msgstr ""
-#: templates/js/translated/order.js:212 templates/js/translated/stock.js:506
+#: templates/js/translated/order.js:370 templates/js/translated/stock.js:510
msgid "Select file format"
msgstr ""
-#: templates/js/translated/order.js:300
+#: templates/js/translated/order.js:460
msgid "Select Line Items"
msgstr ""
-#: templates/js/translated/order.js:301
+#: templates/js/translated/order.js:461
msgid "At least one line item must be selected"
msgstr ""
-#: templates/js/translated/order.js:326
+#: templates/js/translated/order.js:486
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:360 templates/js/translated/stock.js:1755
+#: templates/js/translated/order.js:520 templates/js/translated/stock.js:1930
msgid "Stock Status"
msgstr ""
-#: templates/js/translated/order.js:427
+#: templates/js/translated/order.js:587
msgid "Order Code"
msgstr ""
-#: templates/js/translated/order.js:428
+#: templates/js/translated/order.js:588
msgid "Ordered"
msgstr ""
-#: templates/js/translated/order.js:430
+#: templates/js/translated/order.js:590
msgid "Receive"
msgstr ""
-#: templates/js/translated/order.js:449
+#: templates/js/translated/order.js:609
msgid "Confirm receipt of items"
msgstr ""
-#: templates/js/translated/order.js:450
+#: templates/js/translated/order.js:610
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:627 templates/js/translated/part.js:746
+#: templates/js/translated/order.js:790 templates/js/translated/part.js:746
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:659 templates/js/translated/order.js:1062
+#: templates/js/translated/order.js:815 templates/js/translated/order.js:1230
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:771 templates/js/translated/order.js:1645
+#: templates/js/translated/order.js:936 templates/js/translated/order.js:2356
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:783 templates/js/translated/order.js:1656
+#: templates/js/translated/order.js:948 templates/js/translated/order.js:2367
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/order.js:822
+#: templates/js/translated/order.js:987
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:849 templates/js/translated/order.js:1466
+#: templates/js/translated/order.js:1014 templates/js/translated/order.js:2138
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:903 templates/js/translated/order.js:1491
+#: templates/js/translated/order.js:1068 templates/js/translated/order.js:2163
#: templates/js/translated/part.js:1775 templates/js/translated/part.js:1986
msgid "Unit Price"
msgstr ""
-#: templates/js/translated/order.js:918 templates/js/translated/order.js:1507
+#: templates/js/translated/order.js:1083 templates/js/translated/order.js:2179
msgid "Total Price"
msgstr ""
-#: templates/js/translated/order.js:996 templates/js/translated/order.js:1616
+#: templates/js/translated/order.js:1161 templates/js/translated/order.js:2313
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:997
+#: templates/js/translated/order.js:1162 templates/js/translated/order.js:2317
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:1001 templates/js/translated/part.js:878
+#: templates/js/translated/order.js:1166 templates/js/translated/part.js:878
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:1038
+#: templates/js/translated/order.js:1206
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:1076
+#: templates/js/translated/order.js:1244
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:1154
+#: templates/js/translated/order.js:1322
+msgid "Edit shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1325
+msgid "Complete shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1330
+msgid "Delete shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1350
+msgid "Edit Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1367
+msgid "Delete Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1401
+msgid "No matching shipments found"
+msgstr ""
+
+#: templates/js/translated/order.js:1411
+msgid "Shipment Reference"
+msgstr ""
+
+#: templates/js/translated/order.js:1435
+msgid "Not shipped"
+msgstr ""
+
+#: templates/js/translated/order.js:1441
+msgid "Tracking"
+msgstr ""
+
+#: templates/js/translated/order.js:1601
+msgid "Allocate Stock Items to Sales Order"
+msgstr ""
+
+#: templates/js/translated/order.js:1809
msgid "No sales order allocations found"
msgstr ""
-#: templates/js/translated/order.js:1247
+#: templates/js/translated/order.js:1898
msgid "Edit Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1264
+#: templates/js/translated/order.js:1915
msgid "Confirm Delete Operation"
msgstr ""
-#: templates/js/translated/order.js:1265
+#: templates/js/translated/order.js:1916
msgid "Delete Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1307
+#: templates/js/translated/order.js:1959 templates/js/translated/order.js:2048
+#: templates/js/translated/stock.js:1249
+msgid "Shipped to customer"
+msgstr ""
+
+#: templates/js/translated/order.js:1967 templates/js/translated/order.js:2057
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:1556
-msgid "Fulfilled"
-msgstr ""
-
-#: templates/js/translated/order.js:1600
+#: templates/js/translated/order.js:2297
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:1606
+#: templates/js/translated/order.js:2303
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:1613 templates/js/translated/order.js:1792
+#: templates/js/translated/order.js:2310 templates/js/translated/order.js:2476
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:1617
-msgid "Delete line item "
+#: templates/js/translated/order.js:2321
+msgid "Cannot be deleted as items have been shipped"
msgstr ""
-#: templates/js/translated/order.js:1740
-msgid "Allocate Stock Item"
+#: templates/js/translated/order.js:2324
+msgid "Cannot be deleted as items have been allocated"
msgstr ""
-#: templates/js/translated/order.js:1800
+#: templates/js/translated/order.js:2382
+msgid "Allocate Serial Numbers"
+msgstr ""
+
+#: templates/js/translated/order.js:2484
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:1814
+#: templates/js/translated/order.js:2498
msgid "No matching line items"
msgstr ""
@@ -7826,12 +8223,12 @@ msgid "No category"
msgstr ""
#: templates/js/translated/part.js:1230
-#: templates/js/translated/table_filters.js:381
+#: templates/js/translated/table_filters.js:412
msgid "Low stock"
msgstr ""
#: templates/js/translated/part.js:1321 templates/js/translated/part.js:1493
-#: templates/js/translated/stock.js:1914
+#: templates/js/translated/stock.js:2089
msgid "Display as list"
msgstr ""
@@ -7839,7 +8236,7 @@ msgstr ""
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1512 templates/js/translated/stock.js:1933
+#: templates/js/translated/part.js:1512 templates/js/translated/stock.js:2108
msgid "Display as tree"
msgstr ""
@@ -7847,7 +8244,7 @@ msgstr ""
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:1590 templates/js/translated/stock.js:1977
+#: templates/js/translated/part.js:1590 templates/js/translated/stock.js:2152
msgid "Path"
msgstr ""
@@ -7855,11 +8252,11 @@ msgstr ""
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1685 templates/js/translated/stock.js:898
+#: templates/js/translated/part.js:1685 templates/js/translated/stock.js:1055
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1686 templates/js/translated/stock.js:899
+#: templates/js/translated/part.js:1686 templates/js/translated/stock.js:1056
msgid "Delete test result"
msgstr ""
@@ -7898,6 +8295,10 @@ msgstr ""
msgid "Single Price Difference"
msgstr ""
+#: templates/js/translated/plugin.js:22
+msgid "The Plugin was installed"
+msgstr ""
+
#: templates/js/translated/report.js:67
msgid "items selected"
msgstr ""
@@ -7964,300 +8365,316 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/stock.js:71
+#: templates/js/translated/stock.js:72
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:89 templates/js/translated/stock.js:168
+#: templates/js/translated/stock.js:90 templates/js/translated/stock.js:172
msgid "Next available serial number"
msgstr ""
-#: templates/js/translated/stock.js:91 templates/js/translated/stock.js:170
+#: templates/js/translated/stock.js:92 templates/js/translated/stock.js:174
msgid "Latest serial number"
msgstr ""
-#: templates/js/translated/stock.js:105
+#: templates/js/translated/stock.js:100
+msgid "Confirm Stock Serialization"
+msgstr ""
+
+#: templates/js/translated/stock.js:109
msgid "Parent stock location"
msgstr "Ubicación del stock principal"
-#: templates/js/translated/stock.js:141
+#: templates/js/translated/stock.js:145
msgid "New Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:181
+#: templates/js/translated/stock.js:185
msgid "This part cannot be serialized"
msgstr ""
-#: templates/js/translated/stock.js:220
+#: templates/js/translated/stock.js:224
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: templates/js/translated/stock.js:226
+#: templates/js/translated/stock.js:230
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: templates/js/translated/stock.js:369
+#: templates/js/translated/stock.js:373
msgid "Created new stock item"
msgstr ""
-#: templates/js/translated/stock.js:382
+#: templates/js/translated/stock.js:386
msgid "Created multiple stock items"
msgstr ""
-#: templates/js/translated/stock.js:407
+#: templates/js/translated/stock.js:411
msgid "Find Serial Number"
msgstr ""
-#: templates/js/translated/stock.js:411 templates/js/translated/stock.js:412
+#: templates/js/translated/stock.js:415 templates/js/translated/stock.js:416
msgid "Enter serial number"
msgstr ""
-#: templates/js/translated/stock.js:428
+#: templates/js/translated/stock.js:432
msgid "Enter a serial number"
msgstr ""
-#: templates/js/translated/stock.js:448
+#: templates/js/translated/stock.js:452
msgid "No matching serial number"
msgstr ""
-#: templates/js/translated/stock.js:457
+#: templates/js/translated/stock.js:461
msgid "More than one matching result found"
msgstr ""
-#: templates/js/translated/stock.js:502
+#: templates/js/translated/stock.js:506
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:513
+#: templates/js/translated/stock.js:517
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:514
+#: templates/js/translated/stock.js:518
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:556
+#: templates/js/translated/stock.js:627
+msgid "Confirm stock assignment"
+msgstr ""
+
+#: templates/js/translated/stock.js:628
+msgid "Assign Stock to Customer"
+msgstr ""
+
+#: templates/js/translated/stock.js:713
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:557
+#: templates/js/translated/stock.js:714
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:563
+#: templates/js/translated/stock.js:720
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:564
+#: templates/js/translated/stock.js:721
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:568
+#: templates/js/translated/stock.js:725
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:569
+#: templates/js/translated/stock.js:726
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:573
+#: templates/js/translated/stock.js:730
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:574 users/models.py:200
+#: templates/js/translated/stock.js:731 users/models.py:202
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:578 templates/stock_table.html:56
+#: templates/js/translated/stock.js:735 templates/stock_table.html:57
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:667
+#: templates/js/translated/stock.js:824
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:667
+#: templates/js/translated/stock.js:824
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:707
+#: templates/js/translated/stock.js:864
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:865
+#: templates/js/translated/stock.js:1022
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:867
+#: templates/js/translated/stock.js:1024
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:872
+#: templates/js/translated/stock.js:1029
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:894
+#: templates/js/translated/stock.js:1051
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:920
+#: templates/js/translated/stock.js:1077
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:977
+#: templates/js/translated/stock.js:1134
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:1084
+#: templates/js/translated/stock.js:1241
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:1088
+#: templates/js/translated/stock.js:1245
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:1092
-msgid "Shipped to customer"
-msgstr ""
-
-#: templates/js/translated/stock.js:1096
+#: templates/js/translated/stock.js:1253
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:1102
+#: templates/js/translated/stock.js:1259
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:1260
+#: templates/js/translated/stock.js:1417
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1265
+#: templates/js/translated/stock.js:1422
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1268
+#: templates/js/translated/stock.js:1425
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1272
+#: templates/js/translated/stock.js:1429
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1274
+#: templates/js/translated/stock.js:1431
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1278
-msgid "Stock item has been allocated"
+#: templates/js/translated/stock.js:1437
+msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1282
+#: templates/js/translated/stock.js:1439
+msgid "Stock item has been fully allocated"
+msgstr ""
+
+#: templates/js/translated/stock.js:1441
+msgid "Stock item has been partially allocated"
+msgstr ""
+
+#: templates/js/translated/stock.js:1446
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1289
+#: templates/js/translated/stock.js:1453
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1291
+#: templates/js/translated/stock.js:1455
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1293
+#: templates/js/translated/stock.js:1457
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1297
-#: templates/js/translated/table_filters.js:183
+#: templates/js/translated/stock.js:1461
+#: templates/js/translated/table_filters.js:188
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1347
+#: templates/js/translated/stock.js:1511
msgid "Stocktake"
msgstr "Inventario"
-#: templates/js/translated/stock.js:1420
+#: templates/js/translated/stock.js:1584
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1458
+#: templates/js/translated/stock.js:1622
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1479 templates/js/translated/stock.js:1527
+#: templates/js/translated/stock.js:1643 templates/js/translated/stock.js:1691
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1567
+#: templates/js/translated/stock.js:1731
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1594
+#: templates/js/translated/stock.js:1758
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:1596
+#: templates/js/translated/stock.js:1760
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:1770
+#: templates/js/translated/stock.js:1945
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:1784
+#: templates/js/translated/stock.js:1959
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:1785
+#: templates/js/translated/stock.js:1960
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:2009
+#: templates/js/translated/stock.js:2184
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:2031
+#: templates/js/translated/stock.js:2206
msgid "Details"
msgstr ""
-#: templates/js/translated/stock.js:2056
+#: templates/js/translated/stock.js:2231
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2075
+#: templates/js/translated/stock.js:2250
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2094
+#: templates/js/translated/stock.js:2269
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2112
+#: templates/js/translated/stock.js:2287
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2135
+#: templates/js/translated/stock.js:2310
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2143
+#: templates/js/translated/stock.js:2318
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2184
+#: templates/js/translated/stock.js:2359
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2185
+#: templates/js/translated/stock.js:2360
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2236
+#: templates/js/translated/stock.js:2411
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2287
+#: templates/js/translated/stock.js:2462
msgid "Uninstall Stock Item"
msgstr ""
@@ -8278,7 +8695,7 @@ msgid "Allow Variant Stock"
msgstr ""
#: templates/js/translated/table_filters.js:110
-#: templates/js/translated/table_filters.js:178
+#: templates/js/translated/table_filters.js:183
msgid "Include sublocations"
msgstr ""
@@ -8288,54 +8705,54 @@ msgstr ""
#: templates/js/translated/table_filters.js:121
#: templates/js/translated/table_filters.js:122
-#: templates/js/translated/table_filters.js:358
+#: templates/js/translated/table_filters.js:389
msgid "Include subcategories"
msgstr ""
#: templates/js/translated/table_filters.js:126
-#: templates/js/translated/table_filters.js:393
+#: templates/js/translated/table_filters.js:424
msgid "Subscribed"
msgstr ""
#: templates/js/translated/table_filters.js:136
-#: templates/js/translated/table_filters.js:213
+#: templates/js/translated/table_filters.js:218
msgid "Is Serialized"
msgstr ""
#: templates/js/translated/table_filters.js:139
-#: templates/js/translated/table_filters.js:220
+#: templates/js/translated/table_filters.js:225
msgid "Serial number GTE"
msgstr ""
#: templates/js/translated/table_filters.js:140
-#: templates/js/translated/table_filters.js:221
+#: templates/js/translated/table_filters.js:226
msgid "Serial number greater than or equal to"
msgstr ""
#: templates/js/translated/table_filters.js:143
-#: templates/js/translated/table_filters.js:224
+#: templates/js/translated/table_filters.js:229
msgid "Serial number LTE"
msgstr ""
#: templates/js/translated/table_filters.js:144
-#: templates/js/translated/table_filters.js:225
+#: templates/js/translated/table_filters.js:230
msgid "Serial number less than or equal to"
msgstr ""
#: templates/js/translated/table_filters.js:147
#: templates/js/translated/table_filters.js:148
-#: templates/js/translated/table_filters.js:216
-#: templates/js/translated/table_filters.js:217
+#: templates/js/translated/table_filters.js:221
+#: templates/js/translated/table_filters.js:222
msgid "Serial number"
msgstr ""
#: templates/js/translated/table_filters.js:152
-#: templates/js/translated/table_filters.js:234
+#: templates/js/translated/table_filters.js:239
msgid "Batch code"
msgstr ""
#: templates/js/translated/table_filters.js:163
-#: templates/js/translated/table_filters.js:348
+#: templates/js/translated/table_filters.js:379
msgid "Active parts"
msgstr ""
@@ -8356,101 +8773,111 @@ msgid "Item has been allocated"
msgstr ""
#: templates/js/translated/table_filters.js:179
-msgid "Include stock in sublocations"
+msgid "Stock is available for use"
msgstr ""
#: templates/js/translated/table_filters.js:184
-msgid "Show stock items which are depleted"
+msgid "Include stock in sublocations"
msgstr ""
#: templates/js/translated/table_filters.js:189
-msgid "Show items which are in stock"
-msgstr ""
-
-#: templates/js/translated/table_filters.js:193
-msgid "In Production"
+msgid "Show stock items which are depleted"
msgstr ""
#: templates/js/translated/table_filters.js:194
-msgid "Show items which are in production"
+msgid "Show items which are in stock"
msgstr ""
#: templates/js/translated/table_filters.js:198
-msgid "Include Variants"
+msgid "In Production"
msgstr ""
#: templates/js/translated/table_filters.js:199
-msgid "Include stock items for variant parts"
+msgid "Show items which are in production"
msgstr ""
#: templates/js/translated/table_filters.js:203
-msgid "Installed"
+msgid "Include Variants"
msgstr ""
#: templates/js/translated/table_filters.js:204
-msgid "Show stock items which are installed in another item"
+msgid "Include stock items for variant parts"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:208
+msgid "Installed"
msgstr ""
#: templates/js/translated/table_filters.js:209
+msgid "Show stock items which are installed in another item"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:214
msgid "Show items which have been assigned to a customer"
msgstr ""
-#: templates/js/translated/table_filters.js:229
-#: templates/js/translated/table_filters.js:230
+#: templates/js/translated/table_filters.js:234
+#: templates/js/translated/table_filters.js:235
msgid "Stock status"
msgstr ""
-#: templates/js/translated/table_filters.js:238
+#: templates/js/translated/table_filters.js:243
msgid "Has purchase price"
msgstr ""
-#: templates/js/translated/table_filters.js:239
+#: templates/js/translated/table_filters.js:244
msgid "Show stock items which have a purchase price set"
msgstr ""
-#: templates/js/translated/table_filters.js:248
+#: templates/js/translated/table_filters.js:253
msgid "Show stock items which have expired"
msgstr "Mostrar artículos de stock que han caducado"
-#: templates/js/translated/table_filters.js:254
+#: templates/js/translated/table_filters.js:259
msgid "Show stock which is close to expiring"
msgstr ""
-#: templates/js/translated/table_filters.js:285
+#: templates/js/translated/table_filters.js:290
msgid "Build status"
msgstr ""
-#: templates/js/translated/table_filters.js:313
-#: templates/js/translated/table_filters.js:330
+#: templates/js/translated/table_filters.js:303
+#: templates/js/translated/table_filters.js:344
+msgid "Assigned to me"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:320
+#: templates/js/translated/table_filters.js:331
+#: templates/js/translated/table_filters.js:352
msgid "Order status"
msgstr ""
-#: templates/js/translated/table_filters.js:318
-#: templates/js/translated/table_filters.js:335
+#: templates/js/translated/table_filters.js:336
+#: templates/js/translated/table_filters.js:357
msgid "Outstanding"
msgstr ""
-#: templates/js/translated/table_filters.js:359
+#: templates/js/translated/table_filters.js:390
msgid "Include parts in subcategories"
msgstr ""
-#: templates/js/translated/table_filters.js:363
+#: templates/js/translated/table_filters.js:394
msgid "Has IPN"
msgstr ""
-#: templates/js/translated/table_filters.js:364
+#: templates/js/translated/table_filters.js:395
msgid "Part has internal part number"
msgstr ""
-#: templates/js/translated/table_filters.js:369
+#: templates/js/translated/table_filters.js:400
msgid "Show active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:377
+#: templates/js/translated/table_filters.js:408
msgid "Stock available"
msgstr ""
-#: templates/js/translated/table_filters.js:405
+#: templates/js/translated/table_filters.js:436
msgid "Purchasable"
msgstr ""
@@ -8507,27 +8934,23 @@ msgstr ""
msgid "All"
msgstr ""
-#: templates/navbar.html:40
+#: templates/navbar.html:42
msgid "Buy"
msgstr ""
-#: templates/navbar.html:52
+#: templates/navbar.html:54
msgid "Sell"
msgstr ""
-#: templates/navbar.html:86 users/models.py:39
-msgid "Admin"
-msgstr ""
-
-#: templates/navbar.html:88
+#: templates/navbar.html:113
msgid "Logout"
msgstr ""
-#: templates/navbar.html:90
+#: templates/navbar.html:115
msgid "Login"
msgstr ""
-#: templates/navbar.html:111
+#: templates/navbar.html:136
msgid "About InvenTree"
msgstr ""
@@ -8639,15 +9062,15 @@ msgstr ""
msgid "Order selected items"
msgstr "Pedir artículos seleccionados"
-#: templates/stock_table.html:53
+#: templates/stock_table.html:54
msgid "Change status"
msgstr ""
-#: templates/stock_table.html:53
+#: templates/stock_table.html:54
msgid "Change stock status"
msgstr ""
-#: templates/stock_table.html:56
+#: templates/stock_table.html:57
msgid "Delete selected items"
msgstr "Eliminar artículos seleccionados"
@@ -8683,35 +9106,35 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:187
+#: users/models.py:189
msgid "Permission set"
msgstr ""
-#: users/models.py:195
+#: users/models.py:197
msgid "Group"
msgstr ""
-#: users/models.py:198
+#: users/models.py:200
msgid "View"
msgstr ""
-#: users/models.py:198
+#: users/models.py:200
msgid "Permission to view items"
msgstr "Permiso para ver artículos"
-#: users/models.py:200
+#: users/models.py:202
msgid "Permission to add items"
msgstr "Permiso para añadir artículos"
-#: users/models.py:202
+#: users/models.py:204
msgid "Change"
msgstr ""
-#: users/models.py:202
+#: users/models.py:204
msgid "Permissions to edit items"
msgstr "Permisos para editar artículos"
-#: users/models.py:204
+#: users/models.py:206
msgid "Permission to delete items"
msgstr "Permiso para eliminar artículos"
diff --git a/InvenTree/locale/fr/LC_MESSAGES/django.po b/InvenTree/locale/fr/LC_MESSAGES/django.po
index ccbb92c1b4..17c4d272c4 100644
--- a/InvenTree/locale/fr/LC_MESSAGES/django.po
+++ b/InvenTree/locale/fr/LC_MESSAGES/django.po
@@ -1,9 +1,10 @@
+#: templates/js/translated/order.js:1973
msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-12-03 10:37+0000\n"
-"PO-Revision-Date: 2021-12-03 11:25\n"
+"POT-Creation-Date: 2021-12-08 23:43+0000\n"
+"PO-Revision-Date: 2021-12-08 23:46\n"
"Last-Translator: \n"
"Language-Team: French\n"
"Language: fr_FR\n"
@@ -34,8 +35,8 @@ msgid "Enter date"
msgstr "Entrer la date"
#: InvenTree/forms.py:120 build/forms.py:48 build/forms.py:69 build/forms.py:93
-#: order/forms.py:26 order/forms.py:37 order/forms.py:48 order/forms.py:59
-#: order/forms.py:70 part/forms.py:108 templates/account/email_confirm.html:20
+#: order/forms.py:24 order/forms.py:35 order/forms.py:46 order/forms.py:57
+#: part/forms.py:108 templates/account/email_confirm.html:20
#: templates/js/translated/forms.js:595
msgid "Confirm"
msgstr "Confirmer"
@@ -85,8 +86,8 @@ msgstr "Vous devez taper le même e-mail à chaque fois."
msgid "Duplicate serial: {n}"
msgstr "Dupliquer le numéro de série: {n}"
-#: InvenTree/helpers.py:437 order/models.py:318 order/models.py:440
-#: stock/views.py:1264
+#: InvenTree/helpers.py:437 order/models.py:279 order/models.py:420
+#: stock/views.py:1231
msgid "Invalid quantity provided"
msgstr "Quantité fournie invalide"
@@ -116,13 +117,13 @@ msgstr "Le nombre de numéros de série uniques ({s}) doit correspondre à la qu
#: InvenTree/models.py:120
msgid "Missing file"
-msgstr ""
+msgstr "Fichier manquant"
#: InvenTree/models.py:121
msgid "Missing external link"
-msgstr ""
+msgstr "Lien externe manquant"
-#: InvenTree/models.py:132 stock/models.py:1864
+#: InvenTree/models.py:132 stock/models.py:1852
#: templates/js/translated/attachment.js:117
msgid "Attachment"
msgstr "Pièce jointe"
@@ -132,7 +133,7 @@ msgid "Select file to attach"
msgstr "Sélectionnez un fichier à joindre"
#: InvenTree/models.py:139 company/models.py:131 company/models.py:348
-#: company/models.py:564 order/models.py:163 part/models.py:797
+#: company/models.py:564 order/models.py:124 part/models.py:797
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:537
#: templates/js/translated/company.js:826 templates/js/translated/part.js:1258
@@ -140,7 +141,7 @@ msgid "Link"
msgstr "Lien"
#: InvenTree/models.py:140 build/models.py:330 part/models.py:798
-#: stock/models.py:530
+#: stock/models.py:524
msgid "Link to external URL"
msgstr "Lien vers une url externe"
@@ -152,10 +153,10 @@ msgstr "Commentaire"
msgid "File comment"
msgstr "Commentaire du fichier"
-#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1185
-#: common/models.py:1186 part/models.py:2205 part/models.py:2225
+#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1213
+#: common/models.py:1214 part/models.py:2205 part/models.py:2225
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2166
+#: templates/js/translated/stock.js:2341
msgid "User"
msgstr "Utilisateur"
@@ -194,10 +195,15 @@ msgstr "Choix invalide"
#: InvenTree/models.py:277 InvenTree/models.py:278 company/models.py:415
#: label/models.py:112 part/models.py:741 part/models.py:2389
-#: report/models.py:181 templates/InvenTree/settings/settings.html:259
+#: plugin/models.py:39 report/models.py:181
+#: templates/InvenTree/settings/mixins/urls.html:11
+#: templates/InvenTree/settings/plugin.html:47
+#: templates/InvenTree/settings/plugin.html:124
+#: templates/InvenTree/settings/plugin_settings.html:23
+#: templates/InvenTree/settings/settings.html:268
#: templates/js/translated/company.js:638 templates/js/translated/part.js:506
#: templates/js/translated/part.js:643 templates/js/translated/part.js:1565
-#: templates/js/translated/stock.js:1959
+#: templates/js/translated/stock.js:2134
msgid "Name"
msgstr "Nom"
@@ -206,22 +212,23 @@ msgstr "Nom"
#: company/models.py:570 company/templates/company/company_base.html:68
#: company/templates/company/manufacturer_part.html:76
#: company/templates/company/supplier_part.html:73 label/models.py:119
-#: order/models.py:161 part/models.py:764 part/templates/part/category.html:70
+#: order/models.py:122 part/models.py:764 part/templates/part/category.html:70
#: part/templates/part/part_base.html:163
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:553 report/models.py:592
#: report/templates/report/inventree_build_order_base.html:118
-#: stock/templates/stock/location.html:89 templates/js/translated/bom.js:215
-#: templates/js/translated/bom.js:428 templates/js/translated/build.js:1621
-#: templates/js/translated/company.js:345
+#: stock/templates/stock/location.html:89
+#: templates/InvenTree/settings/plugin_settings.html:33
+#: templates/js/translated/bom.js:215 templates/js/translated/bom.js:428
+#: templates/js/translated/build.js:1627 templates/js/translated/company.js:345
#: templates/js/translated/company.js:548
-#: templates/js/translated/company.js:837 templates/js/translated/order.js:680
-#: templates/js/translated/order.js:854 templates/js/translated/order.js:1090
+#: templates/js/translated/company.js:837 templates/js/translated/order.js:836
+#: templates/js/translated/order.js:1019 templates/js/translated/order.js:1258
#: templates/js/translated/part.js:565 templates/js/translated/part.js:933
#: templates/js/translated/part.js:1018 templates/js/translated/part.js:1188
#: templates/js/translated/part.js:1584 templates/js/translated/part.js:1653
-#: templates/js/translated/stock.js:1233 templates/js/translated/stock.js:1971
-#: templates/js/translated/stock.js:2016
+#: templates/js/translated/stock.js:1390 templates/js/translated/stock.js:2146
+#: templates/js/translated/stock.js:2191
msgid "Description"
msgstr "Description"
@@ -241,83 +248,83 @@ msgstr "Doit être un nombre valide"
msgid "Filename"
msgstr "Nom du fichier"
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:689
msgid "German"
msgstr "Allemand"
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:690
msgid "Greek"
msgstr "Greek"
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:691
msgid "English"
msgstr "Anglais"
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:692
msgid "Spanish"
msgstr "Spanish"
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:693
msgid "Spanish (Mexican)"
msgstr "Espagnol (Mexique)"
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:694
msgid "French"
msgstr "Français"
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:695
msgid "Hebrew"
msgstr "Hebrew"
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:696
msgid "Italian"
msgstr "Italian"
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:697
msgid "Japanese"
msgstr "Japanese"
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:698
msgid "Korean"
msgstr "Korean"
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:699
msgid "Dutch"
msgstr "Dutch"
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:700
msgid "Norwegian"
msgstr "Norwegian"
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:701
msgid "Polish"
msgstr "Polonais"
-#: InvenTree/settings.py:683
+#: InvenTree/settings.py:702
msgid "Portugese"
msgstr "Portugais"
-#: InvenTree/settings.py:684
+#: InvenTree/settings.py:703
msgid "Russian"
msgstr "Russian"
-#: InvenTree/settings.py:685
+#: InvenTree/settings.py:704
msgid "Swedish"
msgstr "Swedish"
-#: InvenTree/settings.py:686
+#: InvenTree/settings.py:705
msgid "Thai"
msgstr "Thai"
-#: InvenTree/settings.py:687
+#: InvenTree/settings.py:706
msgid "Turkish"
msgstr "Turc"
-#: InvenTree/settings.py:688
+#: InvenTree/settings.py:707
msgid "Vietnamese"
msgstr "Vietnamese"
-#: InvenTree/settings.py:689
+#: InvenTree/settings.py:708
msgid "Chinese"
msgstr "Chinese"
@@ -334,7 +341,7 @@ msgid "InvenTree system health checks failed"
msgstr "Échec des contrôles de santé du système"
#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142
-#: InvenTree/status_codes.py:311
+#: InvenTree/status_codes.py:311 templates/js/translated/table_filters.js:313
msgid "Pending"
msgstr "En attente"
@@ -343,6 +350,8 @@ msgid "Placed"
msgstr "Placé"
#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:314
+#: order/templates/order/order_base.html:128
+#: order/templates/order/sales_order_base.html:132
msgid "Complete"
msgstr "Terminé"
@@ -361,8 +370,8 @@ msgstr "Perdu"
msgid "Returned"
msgstr "Retourné"
-#: InvenTree/status_codes.py:143
-#: order/templates/order/sales_order_base.html:148
+#: InvenTree/status_codes.py:143 order/models.py:939
+#: templates/js/translated/order.js:1980 templates/js/translated/order.js:2255
msgid "Shipped"
msgstr "Expédié"
@@ -442,7 +451,7 @@ msgstr "Séparer de l'élément parent"
msgid "Split child item"
msgstr "Fractionner l'élément enfant"
-#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:208
+#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:213
msgid "Sent to customer"
msgstr "Envoyé au client"
@@ -492,15 +501,15 @@ msgstr "Caractère invalide dans le nom ({x})"
#: InvenTree/validators.py:133 InvenTree/validators.py:149
msgid "Overage value must not be negative"
-msgstr ""
+msgstr "La valeur de surplus ne doit pas être négative"
#: InvenTree/validators.py:151
msgid "Overage must not exceed 100%"
-msgstr ""
+msgstr "Le surplus ne doit pas dépasser 100%"
#: InvenTree/validators.py:158
msgid "Overage must be an integer value or a percentage"
-msgstr ""
+msgstr "La valeur de surplus doit être un nombre entier ou un pourcentage"
#: InvenTree/views.py:538
msgid "Delete Item"
@@ -522,55 +531,55 @@ msgstr "Définir le mot de passe"
msgid "Password fields must match"
msgstr "Les mots de passe doivent correspondre"
-#: InvenTree/views.py:883 templates/navbar.html:101
+#: InvenTree/views.py:883 templates/navbar.html:126
msgid "System Information"
msgstr "Informations système"
-#: barcodes/api.py:53 barcodes/api.py:150
+#: barcodes/api.py:54 barcodes/api.py:151
msgid "Must provide barcode_data parameter"
msgstr "Le paramètre barcode_data doit être fourni"
-#: barcodes/api.py:126
+#: barcodes/api.py:127
msgid "No match found for barcode data"
msgstr "Aucune correspondance trouvée pour les données du code-barres"
-#: barcodes/api.py:128
+#: barcodes/api.py:129
msgid "Match found for barcode data"
msgstr "Correspondance trouvée pour les données du code-barres"
-#: barcodes/api.py:153
+#: barcodes/api.py:154
msgid "Must provide stockitem parameter"
msgstr "Vous devez fournir le paramètre stockitem"
-#: barcodes/api.py:160
+#: barcodes/api.py:161
msgid "No matching stock item found"
msgstr "Aucun article d'inventaire correspondant trouvé"
-#: barcodes/api.py:190
-msgid "Barcode already matches StockItem object"
+#: barcodes/api.py:191
+msgid "Barcode already matches Stock Item"
msgstr ""
-#: barcodes/api.py:194
-msgid "Barcode already matches StockLocation object"
+#: barcodes/api.py:195
+msgid "Barcode already matches Stock Location"
msgstr ""
-#: barcodes/api.py:198
-msgid "Barcode already matches Part object"
-msgstr "Le code-barres correspond déjà à une Pièce"
-
-#: barcodes/api.py:204 barcodes/api.py:216
-msgid "Barcode hash already matches StockItem object"
+#: barcodes/api.py:199
+msgid "Barcode already matches Part"
msgstr ""
-#: barcodes/api.py:222
-msgid "Barcode associated with StockItem"
+#: barcodes/api.py:205 barcodes/api.py:217
+msgid "Barcode hash already matches Stock Item"
+msgstr ""
+
+#: barcodes/api.py:223
+msgid "Barcode associated with Stock Item"
msgstr ""
#: build/forms.py:36 build/models.py:1283
#: build/templates/build/build_base.html:132
-#: build/templates/build/detail.html:35 common/models.py:1225
+#: build/templates/build/detail.html:35 common/models.py:1253
#: company/forms.py:42 company/templates/company/supplier_part.html:251
-#: order/forms.py:102 order/models.py:729 order/models.py:991
+#: order/models.py:794 order/models.py:1205 order/serializers.py:810
#: order/templates/order/order_wizard/match_parts.html:30
#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:223
#: part/forms.py:239 part/forms.py:255 part/models.py:2576
@@ -582,36 +591,39 @@ msgstr ""
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:81
#: report/templates/report/inventree_test_report_base.html:139
-#: stock/forms.py:156 stock/serializers.py:291
+#: stock/forms.py:142 stock/serializers.py:293
#: stock/templates/stock/item_base.html:174
+#: stock/templates/stock/item_base.html:255
+#: stock/templates/stock/item_base.html:263
#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443
-#: templates/js/translated/build.js:235 templates/js/translated/build.js:435
-#: templates/js/translated/build.js:629 templates/js/translated/build.js:639
-#: templates/js/translated/build.js:1015 templates/js/translated/build.js:1362
+#: templates/js/translated/build.js:240 templates/js/translated/build.js:440
+#: templates/js/translated/build.js:634 templates/js/translated/build.js:644
+#: templates/js/translated/build.js:1020 templates/js/translated/build.js:1367
#: templates/js/translated/model_renderers.js:99
-#: templates/js/translated/order.js:891 templates/js/translated/order.js:1204
-#: templates/js/translated/order.js:1282 templates/js/translated/order.js:1289
-#: templates/js/translated/order.js:1378 templates/js/translated/order.js:1478
-#: templates/js/translated/part.js:843 templates/js/translated/part.js:1796
-#: templates/js/translated/part.js:1919 templates/js/translated/part.js:1997
-#: templates/js/translated/stock.js:378 templates/js/translated/stock.js:2151
-#: templates/js/translated/stock.js:2253
+#: templates/js/translated/order.js:101 templates/js/translated/order.js:1056
+#: templates/js/translated/order.js:1578 templates/js/translated/order.js:1859
+#: templates/js/translated/order.js:1947 templates/js/translated/order.js:2036
+#: templates/js/translated/order.js:2150 templates/js/translated/part.js:843
+#: templates/js/translated/part.js:1796 templates/js/translated/part.js:1919
+#: templates/js/translated/part.js:1997 templates/js/translated/stock.js:382
+#: templates/js/translated/stock.js:579 templates/js/translated/stock.js:2326
+#: templates/js/translated/stock.js:2428
msgid "Quantity"
msgstr "Quantité"
#: build/forms.py:37
msgid "Enter quantity for build output"
-msgstr ""
+msgstr "Entrer la quantité désiré pour la fabrication"
-#: build/forms.py:41 order/forms.py:96 stock/forms.py:95
-#: stock/serializers.py:312 templates/js/translated/stock.js:225
-#: templates/js/translated/stock.js:379
+#: build/forms.py:41 order/serializers.py:814 stock/forms.py:81
+#: stock/serializers.py:314 templates/js/translated/stock.js:229
+#: templates/js/translated/stock.js:383
msgid "Serial Numbers"
msgstr "Numéros de série"
#: build/forms.py:43
msgid "Enter serial numbers for build outputs"
-msgstr ""
+msgstr "Entrer les numéros de séries pour la fabrication"
#: build/forms.py:49
msgid "Confirm creation of build output"
@@ -619,11 +631,11 @@ msgstr "Confirmer la création de la sortie de l'assemblage"
#: build/forms.py:70
msgid "Confirm deletion of build output"
-msgstr ""
+msgstr "Confirmer la supression de la fabrication"
#: build/forms.py:94
msgid "Mark build as complete"
-msgstr ""
+msgstr "Indiquer la fabrication comme terminé"
#: build/forms.py:107
msgid "Confirm cancel"
@@ -631,26 +643,26 @@ msgstr "Confirmer l'annulation"
#: build/forms.py:107 build/views.py:65
msgid "Confirm build cancellation"
-msgstr ""
+msgstr "Confirmer l'annulation de la fabrication"
#: build/models.py:133
msgid "Invalid choice for parent build"
-msgstr ""
+msgstr "Choix invalide pour la fabrication parente"
#: build/models.py:137 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:397
+#: templates/js/translated/build.js:402
msgid "Build Order"
msgstr "Ordre de Fabrication"
#: build/models.py:138 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
-#: order/templates/order/sales_order_detail.html:42
-#: order/templates/order/so_sidebar.html:7
+#: order/templates/order/sales_order_detail.html:92
+#: order/templates/order/so_sidebar.html:13
#: part/templates/part/part_sidebar.html:20 templates/InvenTree/index.html:221
#: templates/InvenTree/search.html:145
-#: templates/InvenTree/settings/sidebar.html:42 users/models.py:44
+#: templates/InvenTree/settings/sidebar.html:43 users/models.py:44
msgid "Build Orders"
msgstr "Ordres de Fabrication"
@@ -658,32 +670,32 @@ msgstr "Ordres de Fabrication"
msgid "Build Order Reference"
msgstr "Référence de l' Ordre de Fabrication"
-#: build/models.py:199 order/models.py:249 order/models.py:556
-#: order/models.py:736 part/models.py:2585
+#: build/models.py:199 order/models.py:210 order/models.py:536
+#: order/models.py:801 part/models.py:2585
#: part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1119
-#: templates/js/translated/order.js:885 templates/js/translated/order.js:1472
+#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1124
+#: templates/js/translated/order.js:1050 templates/js/translated/order.js:2144
msgid "Reference"
msgstr "Référence"
#: build/models.py:210
msgid "Brief description of the build"
-msgstr ""
+msgstr "Brève description de la fabrication"
#: build/models.py:219 build/templates/build/build_base.html:164
#: build/templates/build/detail.html:88
msgid "Parent Build"
-msgstr ""
+msgstr "Fabrication parente"
#: build/models.py:220
msgid "BuildOrder to which this build is allocated"
-msgstr ""
+msgstr "BuildOrder associé a cette fabrication"
#: build/models.py:225 build/templates/build/build_base.html:77
#: build/templates/build/detail.html:30 company/models.py:705
-#: order/models.py:789 order/models.py:860
+#: order/models.py:854 order/models.py:928
#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357
#: part/models.py:2151 part/models.py:2167 part/models.py:2186
#: part/models.py:2203 part/models.py:2305 part/models.py:2427
@@ -698,14 +710,16 @@ msgstr ""
#: templates/email/build_order_required_stock.html:17
#: templates/email/low_stock_notification.html:16
#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:214
-#: templates/js/translated/bom.js:393 templates/js/translated/build.js:620
-#: templates/js/translated/build.js:988 templates/js/translated/build.js:1359
-#: templates/js/translated/build.js:1626 templates/js/translated/company.js:489
-#: templates/js/translated/company.js:746 templates/js/translated/order.js:426
-#: templates/js/translated/order.js:839 templates/js/translated/order.js:1456
-#: templates/js/translated/part.js:918 templates/js/translated/part.js:999
-#: templates/js/translated/part.js:1166 templates/js/translated/stock.js:590
-#: templates/js/translated/stock.js:1190 templates/js/translated/stock.js:2241
+#: templates/js/translated/bom.js:393 templates/js/translated/build.js:625
+#: templates/js/translated/build.js:993 templates/js/translated/build.js:1364
+#: templates/js/translated/build.js:1632 templates/js/translated/company.js:489
+#: templates/js/translated/company.js:746 templates/js/translated/order.js:84
+#: templates/js/translated/order.js:586 templates/js/translated/order.js:1004
+#: templates/js/translated/order.js:1576 templates/js/translated/order.js:1933
+#: templates/js/translated/order.js:2128 templates/js/translated/part.js:918
+#: templates/js/translated/part.js:999 templates/js/translated/part.js:1166
+#: templates/js/translated/stock.js:553 templates/js/translated/stock.js:747
+#: templates/js/translated/stock.js:1347 templates/js/translated/stock.js:2416
msgid "Part"
msgstr "Pièce"
@@ -715,13 +729,14 @@ msgstr "Sélectionnez la pièce à construire"
#: build/models.py:238
msgid "Sales Order Reference"
-msgstr ""
+msgstr "Bon de commande de référence"
#: build/models.py:242
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:247 templates/js/translated/build.js:1347
+#: build/models.py:247 templates/js/translated/build.js:1352
+#: templates/js/translated/order.js:1564
msgid "Source Location"
msgstr "Emplacement d'origine"
@@ -739,7 +754,7 @@ msgstr "Sélectionnez l'emplacement où les éléments complétés seront stock
#: build/models.py:264
msgid "Build Quantity"
-msgstr ""
+msgstr "Quantité a fabriquer"
#: build/models.py:267
msgid "Number of stock items to build"
@@ -761,7 +776,7 @@ msgstr ""
msgid "Build status code"
msgstr ""
-#: build/models.py:285 stock/models.py:534
+#: build/models.py:285 stock/models.py:528
msgid "Batch Code"
msgstr ""
@@ -769,12 +784,12 @@ msgstr ""
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:292 order/models.py:165 part/models.py:936
-#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1103
+#: build/models.py:292 order/models.py:126 part/models.py:936
+#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1271
msgid "Creation Date"
msgstr "Date de création"
-#: build/models.py:296 order/models.py:578
+#: build/models.py:296 order/models.py:558
msgid "Target completion date"
msgstr ""
@@ -782,8 +797,8 @@ msgstr ""
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/models.py:300 order/models.py:291
-#: templates/js/translated/build.js:1697
+#: build/models.py:300 order/models.py:252
+#: templates/js/translated/build.js:1703
msgid "Completion Date"
msgstr ""
@@ -791,7 +806,7 @@ msgstr ""
msgid "completed by"
msgstr ""
-#: build/models.py:314 templates/js/translated/build.js:1668
+#: build/models.py:314 templates/js/translated/build.js:1674
msgid "Issued by"
msgstr ""
@@ -800,11 +815,11 @@ msgid "User who issued this build order"
msgstr ""
#: build/models.py:323 build/templates/build/build_base.html:185
-#: build/templates/build/detail.html:116 order/models.py:179
-#: order/templates/order/order_base.html:158
-#: order/templates/order/sales_order_base.html:162 part/models.py:940
+#: build/templates/build/detail.html:116 order/models.py:140
+#: order/templates/order/order_base.html:170
+#: order/templates/order/sales_order_base.html:182 part/models.py:940
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:1680 templates/js/translated/order.js:699
+#: templates/js/translated/build.js:1686 templates/js/translated/order.js:864
msgid "Responsible"
msgstr ""
@@ -815,7 +830,7 @@ msgstr ""
#: build/models.py:329 build/templates/build/detail.html:102
#: company/templates/company/manufacturer_part.html:102
#: company/templates/company/supplier_part.html:126
-#: part/templates/part/part_base.html:354 stock/models.py:528
+#: part/templates/part/part_base.html:354 stock/models.py:522
#: stock/templates/stock/item_base.html:374
msgid "External Link"
msgstr "Lien Externe"
@@ -823,18 +838,19 @@ msgstr "Lien Externe"
#: build/models.py:334 build/serializers.py:201
#: build/templates/build/sidebar.html:21 company/models.py:142
#: company/models.py:577 company/templates/company/sidebar.html:25
-#: order/models.py:183 order/models.py:738
+#: order/models.py:144 order/models.py:803 order/models.py:1049
#: order/templates/order/po_sidebar.html:11
-#: order/templates/order/so_sidebar.html:11 part/models.py:925
+#: order/templates/order/so_sidebar.html:17 part/models.py:925
#: part/templates/part/detail.html:116 part/templates/part/part_sidebar.html:50
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/forms.py:154 stock/forms.py:204 stock/forms.py:238 stock/models.py:600
-#: stock/models.py:1764 stock/models.py:1870 stock/serializers.py:330
-#: stock/serializers.py:588 stock/templates/stock/stock_sidebar.html:21
+#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:594
+#: stock/models.py:1752 stock/models.py:1858 stock/serializers.py:332
+#: stock/serializers.py:624 stock/serializers.py:711
+#: stock/templates/stock/stock_sidebar.html:21
#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599
-#: templates/js/translated/company.js:842 templates/js/translated/order.js:984
-#: templates/js/translated/order.js:1582 templates/js/translated/stock.js:973
-#: templates/js/translated/stock.js:1452
+#: templates/js/translated/company.js:842 templates/js/translated/order.js:1149
+#: templates/js/translated/order.js:1445 templates/js/translated/order.js:2280
+#: templates/js/translated/stock.js:1130 templates/js/translated/stock.js:1616
msgid "Notes"
msgstr "Notes"
@@ -867,7 +883,7 @@ msgstr ""
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1133 order/models.py:964
+#: build/models.py:1133 order/models.py:1165
msgid "Allocation quantity must be greater than zero"
msgstr ""
@@ -880,8 +896,8 @@ msgid "Selected stock item not found in BOM"
msgstr ""
#: build/models.py:1253 stock/templates/stock/item_base.html:346
-#: templates/InvenTree/search.html:143 templates/js/translated/build.js:1599
-#: templates/navbar.html:33
+#: templates/InvenTree/search.html:143 templates/js/translated/build.js:1605
+#: templates/navbar.html:35
msgid "Build"
msgstr "Assemblage"
@@ -889,14 +905,17 @@ msgstr "Assemblage"
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1270 build/serializers.py:328
+#: build/models.py:1270 build/serializers.py:328 order/serializers.py:690
+#: order/serializers.py:708 stock/serializers.py:562
#: stock/templates/stock/item_base.html:8
#: stock/templates/stock/item_base.html:16
#: stock/templates/stock/item_base.html:368
-#: templates/js/translated/build.js:408 templates/js/translated/build.js:413
-#: templates/js/translated/build.js:1361 templates/js/translated/build.js:1742
-#: templates/js/translated/order.js:1177 templates/js/translated/order.js:1182
-#: templates/js/translated/stock.js:2102
+#: templates/js/translated/build.js:413 templates/js/translated/build.js:418
+#: templates/js/translated/build.js:1366 templates/js/translated/build.js:1748
+#: templates/js/translated/order.js:85 templates/js/translated/order.js:1577
+#: templates/js/translated/order.js:1832 templates/js/translated/order.js:1837
+#: templates/js/translated/order.js:1940 templates/js/translated/order.js:2030
+#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:2277
msgid "Stock Item"
msgstr "Article en stock"
@@ -936,16 +955,17 @@ msgstr ""
msgid "This build output is not fully allocated"
msgstr ""
-#: build/serializers.py:190 order/serializers.py:228 order/serializers.py:296
-#: stock/forms.py:236 stock/serializers.py:323 stock/serializers.py:690
+#: build/serializers.py:190 order/serializers.py:226 order/serializers.py:294
+#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:813
#: stock/templates/stock/item_base.html:314
#: templates/js/translated/barcode.js:384
-#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:420
-#: templates/js/translated/build.js:1027 templates/js/translated/order.js:348
-#: templates/js/translated/order.js:1189 templates/js/translated/order.js:1297
-#: templates/js/translated/order.js:1303 templates/js/translated/part.js:177
-#: templates/js/translated/stock.js:592 templates/js/translated/stock.js:1333
-#: templates/js/translated/stock.js:2043
+#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:425
+#: templates/js/translated/build.js:1032 templates/js/translated/order.js:508
+#: templates/js/translated/order.js:1844 templates/js/translated/order.js:1955
+#: templates/js/translated/order.js:1963 templates/js/translated/order.js:2044
+#: templates/js/translated/part.js:177 templates/js/translated/stock.js:555
+#: templates/js/translated/stock.js:749 templates/js/translated/stock.js:1497
+#: templates/js/translated/stock.js:2218
msgid "Location"
msgstr "Emplacement"
@@ -954,12 +974,12 @@ msgid "Location for completed build outputs"
msgstr ""
#: build/serializers.py:197 build/templates/build/build_base.html:137
-#: build/templates/build/detail.html:63 order/models.py:572
-#: order/serializers.py:249 stock/templates/stock/item_base.html:180
-#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1655
-#: templates/js/translated/order.js:431 templates/js/translated/order.js:1095
-#: templates/js/translated/stock.js:1308 templates/js/translated/stock.js:2120
-#: templates/js/translated/stock.js:2269
+#: build/templates/build/detail.html:63 order/models.py:552
+#: order/serializers.py:247 stock/templates/stock/item_base.html:180
+#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1661
+#: templates/js/translated/order.js:591 templates/js/translated/order.js:840
+#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1472
+#: templates/js/translated/stock.js:2295 templates/js/translated/stock.js:2444
msgid "Status"
msgstr "État"
@@ -984,16 +1004,16 @@ msgstr ""
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:334
+#: build/serializers.py:334 stock/serializers.py:569
msgid "Item must be in stock"
msgstr "L'article doit être en stock"
-#: build/serializers.py:348 order/models.py:316 order/serializers.py:242
-#: stock/models.py:371 stock/models.py:1093 stock/serializers.py:303
+#: build/serializers.py:348 order/models.py:277 order/serializers.py:240
+#: stock/models.py:365 stock/models.py:1081 stock/serializers.py:305
msgid "Quantity must be greater than zero"
msgstr "La quantité doit être supérieure à zéro"
-#: build/serializers.py:390
+#: build/serializers.py:390 order/serializers.py:741
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr "Quantité disponible ({q}) dépassée"
@@ -1006,7 +1026,7 @@ msgstr ""
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:431
+#: build/serializers.py:431 order/serializers.py:984
msgid "Allocation items must be provided"
msgstr ""
@@ -1079,11 +1099,11 @@ msgstr ""
#: build/templates/build/build_base.html:146
#: build/templates/build/detail.html:132
-#: order/templates/order/order_base.html:144
-#: order/templates/order/sales_order_base.html:141
+#: order/templates/order/order_base.html:156
+#: order/templates/order/sales_order_base.html:163
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:1692 templates/js/translated/order.js:689
-#: templates/js/translated/order.js:1108
+#: templates/js/translated/build.js:1698 templates/js/translated/order.js:854
+#: templates/js/translated/order.js:1276
msgid "Target Date"
msgstr "Date Cible"
@@ -1096,28 +1116,28 @@ msgstr ""
#: build/templates/build/build_base.html:196
#: order/templates/order/order_base.html:98
#: order/templates/order/sales_order_base.html:93
-#: templates/js/translated/table_filters.js:294
-#: templates/js/translated/table_filters.js:322
-#: templates/js/translated/table_filters.js:339
+#: templates/js/translated/table_filters.js:299
+#: templates/js/translated/table_filters.js:340
+#: templates/js/translated/table_filters.js:361
msgid "Overdue"
msgstr "En retard"
#: build/templates/build/build_base.html:158
#: build/templates/build/detail.html:68 build/templates/build/detail.html:143
-#: templates/js/translated/build.js:1641
-#: templates/js/translated/table_filters.js:304
+#: order/templates/order/sales_order_base.html:170
+#: templates/js/translated/build.js:1647
+#: templates/js/translated/table_filters.js:370
msgid "Completed"
msgstr "Terminé"
#: build/templates/build/build_base.html:171
-#: build/templates/build/detail.html:95 order/models.py:857
-#: order/templates/order/sales_order_base.html:9
+#: build/templates/build/detail.html:95 order/models.py:925
+#: order/models.py:1021 order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
-#: order/templates/order/sales_order_ship.html:25
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:308
-#: templates/js/translated/order.js:1050
+#: templates/js/translated/order.js:1218
msgid "Sales Order"
msgstr "Commandes"
@@ -1191,8 +1211,8 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:50 order/models.py:811 stock/forms.py:150
-#: templates/js/translated/order.js:432 templates/js/translated/order.js:973
+#: build/templates/build/detail.html:50 order/models.py:876 stock/forms.py:136
+#: templates/js/translated/order.js:592 templates/js/translated/order.js:1138
msgid "Destination"
msgstr "Destination"
@@ -1200,22 +1220,22 @@ msgstr "Destination"
msgid "Destination location not specified"
msgstr ""
-#: build/templates/build/detail.html:74 templates/js/translated/build.js:647
+#: build/templates/build/detail.html:74 templates/js/translated/build.js:652
msgid "Allocated Parts"
msgstr ""
#: build/templates/build/detail.html:81
#: stock/templates/stock/item_base.html:332
-#: templates/js/translated/stock.js:1322 templates/js/translated/stock.js:2276
+#: templates/js/translated/stock.js:1486 templates/js/translated/stock.js:2451
#: templates/js/translated/table_filters.js:151
-#: templates/js/translated/table_filters.js:233
+#: templates/js/translated/table_filters.js:238
msgid "Batch"
msgstr ""
#: build/templates/build/detail.html:127
-#: order/templates/order/order_base.html:131
-#: order/templates/order/sales_order_base.html:135
-#: templates/js/translated/build.js:1663
+#: order/templates/order/order_base.html:143
+#: order/templates/order/sales_order_base.html:157
+#: templates/js/translated/build.js:1669
msgid "Created"
msgstr "Créé le"
@@ -1235,7 +1255,7 @@ msgstr ""
msgid "Allocate Stock to Build"
msgstr ""
-#: build/templates/build/detail.html:177 templates/js/translated/build.js:1202
+#: build/templates/build/detail.html:177 templates/js/translated/build.js:1207
msgid "Unallocate stock"
msgstr ""
@@ -1257,7 +1277,7 @@ msgstr "Commander les pièces requises"
#: build/templates/build/detail.html:185
#: company/templates/company/detail.html:38
-#: company/templates/company/detail.html:85 order/views.py:509
+#: company/templates/company/detail.html:85 order/views.py:463
#: part/templates/part/category.html:173
msgid "Order Parts"
msgstr "Commander des pièces"
@@ -1309,8 +1329,8 @@ msgstr ""
#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:60
-#: order/templates/order/sales_order_detail.html:52
-#: order/templates/order/so_sidebar.html:9 part/templates/part/detail.html:193
+#: order/templates/order/sales_order_detail.html:107
+#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:193
#: part/templates/part/part_sidebar.html:48 stock/templates/stock/item.html:95
#: stock/templates/stock/stock_sidebar.html:19
msgid "Attachments"
@@ -1325,8 +1345,8 @@ msgstr ""
#: company/templates/company/detail.html:215
#: order/templates/order/purchase_order_detail.html:80
#: order/templates/order/purchase_order_detail.html:108
-#: order/templates/order/sales_order_detail.html:72
-#: order/templates/order/sales_order_detail.html:99
+#: order/templates/order/sales_order_detail.html:127
+#: order/templates/order/sales_order_detail.html:186
#: part/templates/part/detail.html:120 stock/templates/stock/item.html:115
#: stock/templates/stock/item.html:205
msgid "Edit Notes"
@@ -1384,7 +1404,7 @@ msgstr ""
msgid "Maximum output quantity is "
msgstr "La quantité maximale de sortie est "
-#: build/views.py:122 stock/serializers.py:361 stock/views.py:1290
+#: build/views.py:122 stock/serializers.py:363 stock/views.py:1257
msgid "Serial numbers already exist"
msgstr ""
@@ -1400,7 +1420,7 @@ msgstr ""
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:219 stock/views.py:385
+#: build/views.py:219 stock/views.py:352
msgid "Check the confirmation box"
msgstr ""
@@ -1469,7 +1489,7 @@ msgstr "{name.title()} Fichier"
msgid "Select {name} file to upload"
msgstr ""
-#: common/models.py:340 common/models.py:970 common/models.py:1178
+#: common/models.py:340 common/models.py:998 common/models.py:1206
msgid "Settings key (must be unique - case insensitive"
msgstr ""
@@ -1557,7 +1577,7 @@ msgstr "Télécharger depuis l'URL"
msgid "Allow download of remote images and files from external URL"
msgstr ""
-#: common/models.py:649 templates/InvenTree/settings/sidebar.html:30
+#: common/models.py:649 templates/InvenTree/settings/sidebar.html:31
msgid "Barcode Support"
msgstr ""
@@ -1623,7 +1643,7 @@ msgstr ""
#: common/models.py:703 part/models.py:2429 report/models.py:187
#: templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:373
+#: templates/js/translated/table_filters.js:404
msgid "Template"
msgstr ""
@@ -1633,7 +1653,7 @@ msgstr ""
#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:956
#: templates/js/translated/table_filters.js:168
-#: templates/js/translated/table_filters.js:385
+#: templates/js/translated/table_filters.js:416
msgid "Assembly"
msgstr ""
@@ -1642,7 +1662,7 @@ msgid "Parts can be assembled from other components by default"
msgstr ""
#: common/models.py:717 part/models.py:894
-#: templates/js/translated/table_filters.js:389
+#: templates/js/translated/table_filters.js:420
msgid "Component"
msgstr "Composant"
@@ -1659,7 +1679,7 @@ msgid "Parts are purchaseable by default"
msgstr "Les pièces sont achetables par défaut"
#: common/models.py:731 part/models.py:910
-#: templates/js/translated/table_filters.js:397
+#: templates/js/translated/table_filters.js:428
msgid "Salable"
msgstr ""
@@ -1670,7 +1690,7 @@ msgstr ""
#: common/models.py:738 part/models.py:900
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:100
-#: templates/js/translated/table_filters.js:401
+#: templates/js/translated/table_filters.js:432
msgid "Trackable"
msgstr ""
@@ -1932,230 +1952,262 @@ msgstr ""
msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:1001
+#: common/models.py:961
+msgid "Enable URL integration"
+msgstr ""
+
+#: common/models.py:962
+msgid "Enable plugins to add URL routes"
+msgstr ""
+
+#: common/models.py:968
+msgid "Enable navigation integration"
+msgstr ""
+
+#: common/models.py:969
+msgid "Enable plugins to integrate into navigation"
+msgstr ""
+
+#: common/models.py:975
+msgid "Enable global setting integration"
+msgstr ""
+
+#: common/models.py:976
+msgid "Enable plugins to integrate into inventree global settings"
+msgstr ""
+
+#: common/models.py:982
+msgid "Enable app integration"
+msgstr ""
+
+#: common/models.py:983
+msgid "Enable plugins to add apps"
+msgstr ""
+
+#: common/models.py:1029
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:1002
+#: common/models.py:1030
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:1007
+#: common/models.py:1035
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:1008
+#: common/models.py:1036
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:1013
+#: common/models.py:1041
msgid "Show latest parts"
msgstr "Afficher les dernières pièces"
-#: common/models.py:1014
+#: common/models.py:1042
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:1019
+#: common/models.py:1047
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:1020
+#: common/models.py:1048
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:1026
+#: common/models.py:1054
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1027
+#: common/models.py:1055
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1032
+#: common/models.py:1060
msgid "Show recent stock changes"
msgstr "Afficher les dernières modifications du stock"
-#: common/models.py:1033
+#: common/models.py:1061
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:1038
+#: common/models.py:1066
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:1039
+#: common/models.py:1067
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:1044
+#: common/models.py:1072
msgid "Show low stock"
msgstr ""
-#: common/models.py:1045
+#: common/models.py:1073
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:1050
+#: common/models.py:1078
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:1051
+#: common/models.py:1079
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:1056
+#: common/models.py:1084
msgid "Show needed stock"
msgstr ""
-#: common/models.py:1057
+#: common/models.py:1085
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1062
+#: common/models.py:1090
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1063
+#: common/models.py:1091
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1068
+#: common/models.py:1096
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1069
+#: common/models.py:1097
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1074
+#: common/models.py:1102
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1075
+#: common/models.py:1103
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:1080
+#: common/models.py:1108
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:1081
+#: common/models.py:1109
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:1086
+#: common/models.py:1114
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:1087
+#: common/models.py:1115
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:1092
+#: common/models.py:1120
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:1093
+#: common/models.py:1121
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:1098
+#: common/models.py:1126
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:1099
+#: common/models.py:1127
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:1104
+#: common/models.py:1132
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:1105
+#: common/models.py:1133
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:1111
+#: common/models.py:1139
msgid "Inline label display"
msgstr ""
-#: common/models.py:1112
+#: common/models.py:1140
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1118
+#: common/models.py:1146
msgid "Inline report display"
msgstr ""
-#: common/models.py:1119
+#: common/models.py:1147
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1125
+#: common/models.py:1153
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:1126
+#: common/models.py:1154
msgid "Number of results to show in search preview window"
msgstr ""
-#: common/models.py:1132
+#: common/models.py:1160
msgid "Search Show Stock"
msgstr ""
-#: common/models.py:1133
+#: common/models.py:1161
msgid "Display stock levels in search preview window"
msgstr ""
-#: common/models.py:1139
+#: common/models.py:1167
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:1140
+#: common/models.py:1168
msgid "Hide inactive parts in search preview window"
msgstr ""
-#: common/models.py:1146
+#: common/models.py:1174
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:1147
+#: common/models.py:1175
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:1153
+#: common/models.py:1181
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1154
+#: common/models.py:1182
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1160
+#: common/models.py:1188
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:1161
+#: common/models.py:1189
msgid "InvenTree navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:1226 company/forms.py:43
+#: common/models.py:1254 company/forms.py:43
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1233 company/serializers.py:264
+#: common/models.py:1261 company/serializers.py:264
#: company/templates/company/supplier_part.html:256
#: templates/js/translated/part.js:852 templates/js/translated/part.js:1801
msgid "Price"
msgstr ""
-#: common/models.py:1234
+#: common/models.py:1262
msgid "Unit price at specified quantity"
msgstr ""
#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49
-#: order/templates/order/purchase_order_detail.html:24 order/views.py:289
+#: order/templates/order/purchase_order_detail.html:24 order/views.py:243
#: part/templates/part/bom_upload/upload_file.html:52
#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:212
#: part/views.py:858
@@ -2163,7 +2215,7 @@ msgid "Upload File"
msgstr ""
#: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52
-#: order/views.py:290 part/templates/part/bom_upload/match_fields.html:52
+#: order/views.py:244 part/templates/part/bom_upload/match_fields.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:45
#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:213
#: part/views.py:859
@@ -2195,6 +2247,7 @@ msgid "Previous Step"
msgstr ""
#: company/forms.py:24 part/forms.py:46
+#: templates/InvenTree/settings/mixins/urls.html:12
msgid "URL"
msgstr "URL"
@@ -2211,6 +2264,7 @@ msgid "Description of the company"
msgstr ""
#: company/models.py:112 company/templates/company/company_base.html:97
+#: templates/InvenTree/settings/plugin_settings.html:55
#: templates/js/translated/company.js:349
msgid "Website"
msgstr ""
@@ -2285,7 +2339,7 @@ msgid "Does this company manufacture parts?"
msgstr "Cette entreprise fabrique-t-elle des pièces?"
#: company/models.py:152 company/serializers.py:270
-#: company/templates/company/company_base.html:103 stock/serializers.py:177
+#: company/templates/company/company_base.html:103 stock/serializers.py:179
msgid "Currency"
msgstr "Devise"
@@ -2293,12 +2347,12 @@ msgstr "Devise"
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:320 company/models.py:535 stock/models.py:474
+#: company/models.py:320 company/models.py:535 stock/models.py:468
#: stock/templates/stock/item_base.html:135
msgid "Base Part"
msgstr ""
-#: company/models.py:324 company/models.py:539 order/views.py:912
+#: company/models.py:324 company/models.py:539
msgid "Select part"
msgstr ""
@@ -2319,7 +2373,7 @@ msgstr "Sélectionner un fabricant"
#: company/models.py:342 company/templates/company/manufacturer_part.html:96
#: company/templates/company/supplier_part.html:105
#: templates/js/translated/company.js:530
-#: templates/js/translated/company.js:815 templates/js/translated/order.js:873
+#: templates/js/translated/company.js:815 templates/js/translated/order.js:1038
#: templates/js/translated/part.js:243 templates/js/translated/part.js:832
msgid "MPN"
msgstr ""
@@ -2349,8 +2403,8 @@ msgstr ""
#: company/models.py:422
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:1857 templates/js/translated/company.js:644
-#: templates/js/translated/part.js:652 templates/js/translated/stock.js:960
+#: stock/models.py:1845 templates/js/translated/company.js:644
+#: templates/js/translated/part.js:652 templates/js/translated/stock.js:1117
msgid "Value"
msgstr "Valeur"
@@ -2360,7 +2414,7 @@ msgstr ""
#: company/models.py:429 part/models.py:882 part/models.py:2397
#: part/templates/part/part_base.html:288
-#: templates/InvenTree/settings/settings.html:264
+#: templates/InvenTree/settings/settings.html:273
#: templates/js/translated/company.js:650 templates/js/translated/part.js:658
msgid "Units"
msgstr ""
@@ -2374,12 +2428,12 @@ msgid "Linked manufacturer part must reference the same base part"
msgstr ""
#: company/models.py:545 company/templates/company/company_base.html:78
-#: company/templates/company/supplier_part.html:87 order/models.py:263
+#: company/templates/company/supplier_part.html:87 order/models.py:224
#: order/templates/order/order_base.html:112
#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219
#: part/bom.py:247 stock/templates/stock/item_base.html:398
#: templates/js/translated/company.js:337
-#: templates/js/translated/company.js:771 templates/js/translated/order.js:667
+#: templates/js/translated/company.js:771 templates/js/translated/order.js:823
#: templates/js/translated/part.js:213 templates/js/translated/part.js:800
msgid "Supplier"
msgstr "Fournisseur"
@@ -2389,7 +2443,7 @@ msgid "Select supplier"
msgstr ""
#: company/models.py:551 company/templates/company/supplier_part.html:91
-#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:860
+#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:1025
#: templates/js/translated/part.js:224 templates/js/translated/part.js:818
msgid "SKU"
msgstr ""
@@ -2425,8 +2479,8 @@ msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:582 company/templates/company/supplier_part.html:112
-#: stock/models.py:497 stock/templates/stock/item_base.html:339
-#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1448
+#: stock/models.py:491 stock/templates/stock/item_base.html:339
+#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1612
msgid "Packaging"
msgstr ""
@@ -2457,7 +2511,7 @@ msgid "Company"
msgstr ""
#: company/templates/company/company_base.html:22
-#: templates/js/translated/order.js:121
+#: templates/js/translated/order.js:279
msgid "Create Purchase Order"
msgstr "Créer une commande d'achat"
@@ -2493,11 +2547,12 @@ msgstr "Ajouter une nouvelle image"
msgid "Download image from URL"
msgstr "Télécharger l'image depuis l'URL"
-#: company/templates/company/company_base.html:83 order/models.py:567
-#: order/templates/order/sales_order_base.html:115 stock/models.py:515
-#: stock/models.py:516 stock/templates/stock/item_base.html:291
-#: templates/js/translated/company.js:329 templates/js/translated/order.js:1072
-#: templates/js/translated/stock.js:2084
+#: company/templates/company/company_base.html:83 order/models.py:547
+#: order/templates/order/sales_order_base.html:115 stock/models.py:509
+#: stock/models.py:510 stock/serializers.py:610
+#: stock/templates/stock/item_base.html:291
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1240
+#: templates/js/translated/stock.js:2259
msgid "Customer"
msgstr ""
@@ -2580,7 +2635,7 @@ msgstr ""
#: order/templates/order/purchase_orders.html:12
#: part/templates/part/detail.html:64 part/templates/part/part_sidebar.html:33
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:203
-#: templates/InvenTree/settings/sidebar.html:44 templates/navbar.html:45
+#: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47
#: users/models.py:45
msgid "Purchase Orders"
msgstr "Commandes d'achat"
@@ -2602,7 +2657,7 @@ msgstr "Nouvelle commande achat"
#: order/templates/order/sales_orders.html:15
#: part/templates/part/detail.html:87 part/templates/part/part_sidebar.html:37
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:223
-#: templates/InvenTree/settings/sidebar.html:46 templates/navbar.html:56
+#: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58
#: users/models.py:46
msgid "Sales Orders"
msgstr "Ventes"
@@ -2618,7 +2673,7 @@ msgid "New Sales Order"
msgstr "Nouvelle commande de vente"
#: company/templates/company/detail.html:168
-#: templates/js/translated/build.js:999
+#: templates/js/translated/build.js:1004
msgid "Assigned Stock"
msgstr "Stock affecté"
@@ -2644,7 +2699,7 @@ msgstr "Liste des Fournisseurs"
#: company/templates/company/manufacturer_part.html:14 company/views.py:55
#: part/templates/part/prices.html:167 templates/InvenTree/search.html:184
-#: templates/navbar.html:44
+#: templates/navbar.html:46
msgid "Manufacturers"
msgstr "Fabricants"
@@ -2673,7 +2728,7 @@ msgstr "Pièces Internes"
#: company/templates/company/manufacturer_part.html:114
#: company/templates/company/supplier_part.html:15 company/views.py:49
#: part/templates/part/part_sidebar.html:31 part/templates/part/prices.html:163
-#: templates/InvenTree/search.html:194 templates/navbar.html:43
+#: templates/InvenTree/search.html:194 templates/navbar.html:45
msgid "Suppliers"
msgstr "Fournisseurs"
@@ -2687,7 +2742,7 @@ msgstr "Supprimer les pièces du fournisseur"
#: company/templates/company/manufacturer_part.html:254
#: part/templates/part/detail.html:344 part/templates/part/detail.html:372
#: templates/js/translated/company.js:425 templates/js/translated/helpers.js:31
-#: users/models.py:204
+#: users/models.py:206
msgid "Delete"
msgstr "Supprimer"
@@ -2739,9 +2794,9 @@ msgid "Assigned Stock Items"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:482
+#: company/templates/company/supplier_part.html:24 stock/models.py:476
#: stock/templates/stock/item_base.html:403
-#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1405
+#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1569
msgid "Supplier Part"
msgstr ""
@@ -2767,7 +2822,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:142
#: part/templates/part/detail.html:21 stock/templates/stock/location.html:163
-#: templates/js/translated/stock.js:355
+#: templates/js/translated/stock.js:359
msgid "New Stock Item"
msgstr ""
@@ -2817,11 +2872,11 @@ msgstr ""
#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:14
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:156
-#: templates/InvenTree/settings/sidebar.html:40
+#: templates/InvenTree/settings/sidebar.html:41
#: templates/js/translated/bom.js:216 templates/js/translated/part.js:434
#: templates/js/translated/part.js:569 templates/js/translated/part.js:1059
-#: templates/js/translated/part.js:1220 templates/js/translated/stock.js:591
-#: templates/js/translated/stock.js:1244 templates/navbar.html:26
+#: templates/js/translated/part.js:1220 templates/js/translated/stock.js:748
+#: templates/js/translated/stock.js:1401 templates/navbar.html:28
msgid "Stock"
msgstr "Stock"
@@ -2844,7 +2899,7 @@ msgstr "Tarif"
#: stock/templates/stock/location.html:147
#: stock/templates/stock/location.html:159
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1983
+#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:2158
#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
msgid "Stock Items"
msgstr "Éléments en stock"
@@ -2858,7 +2913,7 @@ msgid "New Manufacturer"
msgstr "Nouveau Fabricant"
#: company/views.py:61 templates/InvenTree/search.html:214
-#: templates/navbar.html:55
+#: templates/navbar.html:57
msgid "Customers"
msgstr "Clients"
@@ -2960,284 +3015,374 @@ msgstr ""
msgid "Part query filters (comma-separated value of key=value pairs)"
msgstr ""
-#: order/forms.py:26 order/templates/order/order_base.html:52
+#: order/forms.py:24 order/templates/order/order_base.html:52
msgid "Place order"
msgstr "Passer la commande"
-#: order/forms.py:37 order/templates/order/order_base.html:60
+#: order/forms.py:35 order/templates/order/order_base.html:60
msgid "Mark order as complete"
msgstr "Marquer la commande comme complète"
-#: order/forms.py:48 order/forms.py:59 order/templates/order/order_base.html:47
+#: order/forms.py:46 order/forms.py:57 order/templates/order/order_base.html:47
#: order/templates/order/sales_order_base.html:60
msgid "Cancel order"
msgstr "Annuler la commande"
-#: order/forms.py:70
-msgid "Ship order"
-msgstr "Expédier la commande"
-
-#: order/forms.py:98
-msgid "Enter stock item serial numbers"
-msgstr ""
-
-#: order/forms.py:104
-msgid "Enter quantity of stock items"
-msgstr ""
-
-#: order/models.py:161
+#: order/models.py:122
msgid "Order description"
msgstr "Description de la commande"
-#: order/models.py:163
+#: order/models.py:124
msgid "Link to external page"
msgstr "Lien vers une page externe"
-#: order/models.py:171
+#: order/models.py:132
msgid "Created By"
msgstr "Créé par"
-#: order/models.py:178
+#: order/models.py:139
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:183
+#: order/models.py:144
msgid "Order notes"
msgstr ""
-#: order/models.py:250 order/models.py:557
+#: order/models.py:211 order/models.py:537
msgid "Order reference"
msgstr ""
-#: order/models.py:255 order/models.py:572
+#: order/models.py:216 order/models.py:552
msgid "Purchase order status"
msgstr ""
-#: order/models.py:264
+#: order/models.py:225
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:267 order/templates/order/order_base.html:118
-#: templates/js/translated/order.js:676
+#: order/models.py:228 order/templates/order/order_base.html:118
+#: templates/js/translated/order.js:832
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:267
+#: order/models.py:228
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:274
+#: order/models.py:235
msgid "received by"
msgstr ""
-#: order/models.py:279
+#: order/models.py:240
msgid "Issue Date"
msgstr ""
-#: order/models.py:280
+#: order/models.py:241
msgid "Date order was issued"
msgstr ""
-#: order/models.py:285
+#: order/models.py:246
msgid "Target Delivery Date"
msgstr ""
-#: order/models.py:286
+#: order/models.py:247
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:292
+#: order/models.py:253
msgid "Date order was completed"
msgstr ""
-#: order/models.py:321
+#: order/models.py:282
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:431
+#: order/models.py:411
msgid "Quantity must be an integer"
msgstr ""
-#: order/models.py:435
+#: order/models.py:415
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:568
+#: order/models.py:548
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:574
+#: order/models.py:554
msgid "Customer Reference "
msgstr ""
-#: order/models.py:574
+#: order/models.py:554
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:579
+#: order/models.py:559
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:582 templates/js/translated/order.js:1113
+#: order/models.py:562 order/models.py:1026
+#: templates/js/translated/order.js:1281 templates/js/translated/order.js:1429
msgid "Shipment Date"
msgstr ""
-#: order/models.py:589
+#: order/models.py:569
msgid "shipped by"
msgstr "expédié par"
-#: order/models.py:633
-msgid "SalesOrder cannot be shipped as it is not currently pending"
+#: order/models.py:634
+msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:730
+#: order/models.py:639
+msgid "Only a pending order can be marked as complete"
+msgstr ""
+
+#: order/models.py:643
+msgid "Order cannot be completed as there are incomplete shipments"
+msgstr ""
+
+#: order/models.py:647
+msgid "Order cannot be completed as there are incomplete line items"
+msgstr ""
+
+#: order/models.py:795
msgid "Item quantity"
msgstr "Nombre d'élement"
-#: order/models.py:736
+#: order/models.py:801
msgid "Line item reference"
msgstr ""
-#: order/models.py:738
+#: order/models.py:803
msgid "Line item notes"
msgstr ""
-#: order/models.py:768 order/models.py:856
-#: templates/js/translated/order.js:1165
+#: order/models.py:833 order/models.py:924 order/models.py:1020
+#: templates/js/translated/order.js:1820
msgid "Order"
msgstr "Commande"
-#: order/models.py:769 order/templates/order/order_base.html:9
+#: order/models.py:834 order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:353
-#: templates/js/translated/order.js:638 templates/js/translated/part.js:775
-#: templates/js/translated/stock.js:1382 templates/js/translated/stock.js:2065
+#: templates/js/translated/order.js:801 templates/js/translated/part.js:775
+#: templates/js/translated/stock.js:1546 templates/js/translated/stock.js:2240
msgid "Purchase Order"
msgstr "Commande d’achat"
-#: order/models.py:790
+#: order/models.py:855
msgid "Supplier part"
msgstr "Pièce fournisseur"
-#: order/models.py:797 order/templates/order/order_base.html:151
-#: order/templates/order/sales_order_base.html:155
-#: templates/js/translated/order.js:429 templates/js/translated/order.js:953
+#: order/models.py:862 order/templates/order/order_base.html:163
+#: templates/js/translated/order.js:589 templates/js/translated/order.js:1118
#: templates/js/translated/part.js:847 templates/js/translated/part.js:873
+#: templates/js/translated/table_filters.js:317
msgid "Received"
msgstr "Reçu"
-#: order/models.py:798
+#: order/models.py:863
msgid "Number of items received"
msgstr "Nombre d'éléments reçus"
-#: order/models.py:805 part/templates/part/prices.html:176 stock/models.py:609
-#: stock/serializers.py:168 stock/templates/stock/item_base.html:360
-#: templates/js/translated/stock.js:1436
+#: order/models.py:870 part/templates/part/prices.html:176 stock/models.py:603
+#: stock/serializers.py:170 stock/templates/stock/item_base.html:360
+#: templates/js/translated/stock.js:1600
msgid "Purchase Price"
msgstr "Prix d'achat"
-#: order/models.py:806
+#: order/models.py:871
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:814
+#: order/models.py:879
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:866 part/templates/part/part_pricing.html:112
+#: order/models.py:934 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:116 part/templates/part/prices.html:284
msgid "Sale Price"
msgstr "Prix de vente"
-#: order/models.py:867
+#: order/models.py:935
msgid "Unit sale price"
msgstr ""
-#: order/models.py:946 order/models.py:948
+#: order/models.py:940
+msgid "Shipped quantity"
+msgstr ""
+
+#: order/models.py:1027
+msgid "Date of shipment"
+msgstr ""
+
+#: order/models.py:1034
+msgid "Checked By"
+msgstr ""
+
+#: order/models.py:1035
+msgid "User who checked this shipment"
+msgstr ""
+
+#: order/models.py:1043
+msgid "Shipment number"
+msgstr ""
+
+#: order/models.py:1050
+msgid "Shipment notes"
+msgstr ""
+
+#: order/models.py:1057
+msgid "Tracking Number"
+msgstr ""
+
+#: order/models.py:1058
+msgid "Shipment tracking information"
+msgstr ""
+
+#: order/models.py:1068
+msgid "Shipment has already been sent"
+msgstr ""
+
+#: order/models.py:1071
+msgid "Shipment has no allocated stock items"
+msgstr ""
+
+#: order/models.py:1147 order/models.py:1149
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:952
+#: order/models.py:1153
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:954
+#: order/models.py:1155
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:957
+#: order/models.py:1158
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:961
+#: order/models.py:1162
msgid "StockItem is over-allocated"
msgstr ""
-#: order/models.py:967
+#: order/models.py:1168 order/serializers.py:734
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:975
+#: order/models.py:1171
+msgid "Sales order does not match shipment"
+msgstr ""
+
+#: order/models.py:1172
+msgid "Shipment does not match sales order"
+msgstr ""
+
+#: order/models.py:1180
msgid "Line"
msgstr "Ligne"
-#: order/models.py:987
+#: order/models.py:1188 order/serializers.py:825 order/serializers.py:953
+#: templates/js/translated/model_renderers.js:251
+msgid "Shipment"
+msgstr ""
+
+#: order/models.py:1189
+msgid "Sales order shipment reference"
+msgstr ""
+
+#: order/models.py:1201
msgid "Item"
msgstr "Article"
-#: order/models.py:988
+#: order/models.py:1202
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:991
+#: order/models.py:1205
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/serializers.py:175
+#: order/serializers.py:173
msgid "Purchase price currency"
msgstr "Devise du prix d'achat"
-#: order/serializers.py:213
+#: order/serializers.py:211 order/serializers.py:790
msgid "Line Item"
msgstr ""
-#: order/serializers.py:219
+#: order/serializers.py:217
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:229 order/serializers.py:297
+#: order/serializers.py:227 order/serializers.py:295
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:253
+#: order/serializers.py:251
msgid "Barcode Hash"
msgstr ""
-#: order/serializers.py:254
+#: order/serializers.py:252
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:271
+#: order/serializers.py:269
msgid "Barcode is already in use"
msgstr "Le code-barres est déjà utilisé"
-#: order/serializers.py:309
+#: order/serializers.py:307
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:326
+#: order/serializers.py:324
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:337
+#: order/serializers.py:335
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:578
+#: order/serializers.py:581
msgid "Sale price currency"
msgstr ""
+#: order/serializers.py:649
+msgid "No shipment details provided"
+msgstr ""
+
+#: order/serializers.py:699 order/serializers.py:802
+msgid "Line item is not associated with this order"
+msgstr ""
+
+#: order/serializers.py:721
+msgid "Quantity must be positive"
+msgstr ""
+
+#: order/serializers.py:815
+msgid "Enter serial numbers to allocate"
+msgstr ""
+
+#: order/serializers.py:839 order/serializers.py:964
+msgid "Shipment has already been shipped"
+msgstr ""
+
+#: order/serializers.py:842 order/serializers.py:967
+msgid "Shipment is not associated with this order"
+msgstr ""
+
+#: order/serializers.py:894
+msgid "No match found for the following serial numbers"
+msgstr ""
+
+#: order/serializers.py:904
+msgid "The following serial numbers are already allocated"
+msgstr ""
+
#: order/templates/order/delete_attachment.html:5
#: stock/templates/stock/attachment_delete.html:5
msgid "Are you sure you want to delete this attachment?"
@@ -3271,7 +3416,8 @@ msgstr ""
msgid "Receive Items"
msgstr ""
-#: order/templates/order/order_base.html:62 order/views.py:185
+#: order/templates/order/order_base.html:62
+#: order/templates/order/sales_order_base.html:67 order/views.py:181
msgid "Complete Order"
msgstr "Finaliser la commande"
@@ -3290,12 +3436,23 @@ msgstr ""
msgid "Order Status"
msgstr "Statut de la commande"
-#: order/templates/order/order_base.html:137
+#: order/templates/order/order_base.html:124
+#: order/templates/order/sales_order_base.html:128
+msgid "Completed Line Items"
+msgstr ""
+
+#: order/templates/order/order_base.html:130
+#: order/templates/order/sales_order_base.html:134
+#: order/templates/order/sales_order_base.html:144
+msgid "Incomplete"
+msgstr ""
+
+#: order/templates/order/order_base.html:149
#: report/templates/report/inventree_build_order_base.html:122
msgid "Issued"
msgstr ""
-#: order/templates/order/order_base.html:207
+#: order/templates/order/order_base.html:219
msgid "Edit Purchase Order"
msgstr ""
@@ -3371,8 +3528,9 @@ msgstr "Dupliquer la sélection"
#: part/templates/part/import_wizard/ajax_match_references.html:42
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
-#: templates/js/translated/build.js:240 templates/js/translated/build.js:1251
-#: templates/js/translated/order.js:377
+#: templates/js/translated/build.js:245 templates/js/translated/build.js:1256
+#: templates/js/translated/order.js:537 templates/js/translated/order.js:1488
+#: templates/js/translated/stock.js:592
msgid "Remove row"
msgstr "Supprimer la ligne"
@@ -3453,7 +3611,8 @@ msgid "Select existing purchase orders, or create new orders."
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:31
-#: templates/js/translated/order.js:694 templates/js/translated/order.js:1118
+#: templates/js/translated/order.js:859 templates/js/translated/order.js:1286
+#: templates/js/translated/order.js:1416
msgid "Items"
msgstr ""
@@ -3489,7 +3648,7 @@ msgstr "Articles de la commande d'achat"
#: order/templates/order/purchase_order_detail.html:27
#: order/templates/order/purchase_order_detail.html:181
#: order/templates/order/sales_order_detail.html:23
-#: order/templates/order/sales_order_detail.html:157
+#: order/templates/order/sales_order_detail.html:244
msgid "Add Line Item"
msgstr ""
@@ -3502,7 +3661,7 @@ msgid "Received Items"
msgstr ""
#: order/templates/order/purchase_order_detail.html:76
-#: order/templates/order/sales_order_detail.html:68
+#: order/templates/order/sales_order_detail.html:123
msgid "Order Notes"
msgstr ""
@@ -3520,8 +3679,8 @@ msgid "Print packing list"
msgstr ""
#: order/templates/order/sales_order_base.html:66
-#: order/templates/order/sales_order_base.html:67 order/views.py:222
-msgid "Ship Order"
+#: order/templates/order/sales_order_base.html:229
+msgid "Complete Sales Order"
msgstr ""
#: order/templates/order/sales_order_base.html:102
@@ -3529,16 +3688,21 @@ msgid "This Sales Order has not been fully allocated"
msgstr ""
#: order/templates/order/sales_order_base.html:122
-#: templates/js/translated/order.js:1085
+#: templates/js/translated/order.js:1253
msgid "Customer Reference"
msgstr ""
-#: order/templates/order/sales_order_base.html:195
+#: order/templates/order/sales_order_base.html:140
+#: order/templates/order/sales_order_detail.html:78
+#: order/templates/order/so_sidebar.html:11
+msgid "Completed Shipments"
+msgstr ""
+
+#: order/templates/order/sales_order_base.html:215
msgid "Edit Sales Order"
msgstr ""
#: order/templates/order/sales_order_cancel.html:8
-#: order/templates/order/sales_order_ship.html:9
#: part/templates/part/bom_duplicate.html:12
#: stock/templates/stock/stockitem_convert.html:13
msgid "Warning"
@@ -3552,146 +3716,100 @@ msgstr ""
msgid "Sales Order Items"
msgstr ""
-#: order/templates/order/sales_order_ship.html:10
-msgid "This order has not been fully allocated. If the order is marked as shipped, it can no longer be adjusted."
+#: order/templates/order/sales_order_detail.html:44
+#: order/templates/order/so_sidebar.html:8
+msgid "Pending Shipments"
msgstr ""
-#: order/templates/order/sales_order_ship.html:12
-msgid "Ensure that the order allocation is correct before shipping the order."
+#: order/templates/order/sales_order_detail.html:48
+#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1188
+msgid "Actions"
msgstr ""
-#: order/templates/order/sales_order_ship.html:18
-msgid "Some line items in this order have been over-allocated"
+#: order/templates/order/sales_order_detail.html:57
+msgid "New Shipment"
msgstr ""
-#: order/templates/order/sales_order_ship.html:20
-msgid "Ensure that this is correct before shipping the order."
-msgstr ""
-
-#: order/templates/order/sales_order_ship.html:27
-msgid "Shipping this order means that the order will no longer be editable."
-msgstr ""
-
-#: order/templates/order/so_allocate_by_serial.html:9
-msgid "Allocate stock items by serial number"
-msgstr ""
-
-#: order/views.py:103
+#: order/views.py:99
msgid "Cancel Order"
msgstr "Annuler la commande"
-#: order/views.py:112 order/views.py:138
+#: order/views.py:108 order/views.py:134
msgid "Confirm order cancellation"
msgstr ""
-#: order/views.py:115 order/views.py:141
+#: order/views.py:111 order/views.py:137
msgid "Order cannot be cancelled"
msgstr "La commande ne peut pas être annulée"
-#: order/views.py:129
+#: order/views.py:125
msgid "Cancel sales order"
msgstr "Annuler la vente"
-#: order/views.py:155
+#: order/views.py:151
msgid "Issue Order"
msgstr ""
-#: order/views.py:164
+#: order/views.py:160
msgid "Confirm order placement"
msgstr ""
-#: order/views.py:174
+#: order/views.py:170
msgid "Purchase order issued"
msgstr ""
-#: order/views.py:201
+#: order/views.py:197
msgid "Confirm order completion"
msgstr ""
-#: order/views.py:212
+#: order/views.py:208
msgid "Purchase order completed"
msgstr ""
-#: order/views.py:238
-msgid "Confirm order shipment"
-msgstr ""
-
-#: order/views.py:244
-msgid "Could not ship order"
-msgstr ""
-
-#: order/views.py:291
+#: order/views.py:245
msgid "Match Supplier Parts"
msgstr ""
-#: order/views.py:535
+#: order/views.py:489
msgid "Update prices"
msgstr "Mettre à jour les prix"
-#: order/views.py:793
+#: order/views.py:747
#, python-brace-format
msgid "Ordered {n} parts"
msgstr ""
-#: order/views.py:846
-msgid "Allocate Serial Numbers"
-msgstr ""
-
-#: order/views.py:891
-#, python-brace-format
-msgid "Allocated {n} items"
-msgstr ""
-
-#: order/views.py:907
-msgid "Select line item"
-msgstr ""
-
-#: order/views.py:938
-#, python-brace-format
-msgid "No matching item for serial {serial}"
-msgstr ""
-
-#: order/views.py:948
-#, python-brace-format
-msgid "{serial} is not in stock"
-msgstr ""
-
-#: order/views.py:956
-#, python-brace-format
-msgid "{serial} already allocated to an order"
-msgstr ""
-
-#: order/views.py:1072
+#: order/views.py:858
msgid "Sales order not found"
msgstr ""
-#: order/views.py:1078
+#: order/views.py:864
msgid "Price not found"
msgstr "Prix introuvable"
-#: order/views.py:1081
+#: order/views.py:867
#, python-brace-format
msgid "Updated {part} unit-price to {price}"
msgstr ""
-#: order/views.py:1086
+#: order/views.py:872
#, python-brace-format
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/api.py:758
+#: part/api.py:760
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:762
+#: part/api.py:764
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:777
+#: part/api.py:779
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:808 part/api.py:812 part/api.py:827 part/api.py:831
+#: part/api.py:810 part/api.py:814 part/api.py:829 part/api.py:833
msgid "This field is required"
msgstr ""
@@ -3828,8 +3946,8 @@ msgstr ""
#: part/templates/part/category.html:149
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:88
-#: templates/InvenTree/settings/sidebar.html:36
-#: templates/js/translated/part.js:1597 templates/navbar.html:19
+#: templates/InvenTree/settings/sidebar.html:37
+#: templates/js/translated/part.js:1597 templates/navbar.html:21
#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
msgid "Parts"
msgstr ""
@@ -3895,7 +4013,7 @@ msgstr ""
#: part/models.py:778 part/models.py:2223 part/models.py:2472
#: part/templates/part/part_base.html:265
#: part/templates/part/set_category.html:15
-#: templates/InvenTree/settings/settings.html:163
+#: templates/InvenTree/settings/settings.html:172
#: templates/js/translated/part.js:1202
msgid "Category"
msgstr "Catégorie"
@@ -3906,7 +4024,7 @@ msgstr "Catégorie de la pièce"
#: part/models.py:784 part/templates/part/part_base.html:274
#: templates/js/translated/part.js:557 templates/js/translated/part.js:1155
-#: templates/js/translated/stock.js:1216
+#: templates/js/translated/stock.js:1373
msgid "IPN"
msgstr "IPN"
@@ -3975,10 +4093,11 @@ msgstr ""
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:915 templates/js/translated/table_filters.js:34
+#: part/models.py:915 plugin/models.py:45
+#: templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:96
-#: templates/js/translated/table_filters.js:290
-#: templates/js/translated/table_filters.js:368
+#: templates/js/translated/table_filters.js:295
+#: templates/js/translated/table_filters.js:399
msgid "Active"
msgstr "Actif"
@@ -4027,7 +4146,7 @@ msgid "Test with this name already exists for this part"
msgstr ""
#: part/models.py:2310 templates/js/translated/part.js:1648
-#: templates/js/translated/stock.js:940
+#: templates/js/translated/stock.js:1097
msgid "Test Name"
msgstr "Nom de test"
@@ -4044,7 +4163,7 @@ msgid "Enter description for this test"
msgstr ""
#: part/models.py:2322 templates/js/translated/part.js:1657
-#: templates/js/translated/table_filters.js:276
+#: templates/js/translated/table_filters.js:281
msgid "Required"
msgstr "Requis"
@@ -4086,7 +4205,7 @@ msgid "Parameter Units"
msgstr ""
#: part/models.py:2429 part/models.py:2478 part/models.py:2479
-#: templates/InvenTree/settings/settings.html:158
+#: templates/InvenTree/settings/settings.html:167
msgid "Parameter Template"
msgstr ""
@@ -4098,7 +4217,7 @@ msgstr "Données"
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2483 templates/InvenTree/settings/settings.html:167
+#: part/models.py:2483 templates/InvenTree/settings/settings.html:176
msgid "Default Value"
msgstr ""
@@ -4175,7 +4294,7 @@ msgstr ""
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2686 stock/models.py:361
+#: part/models.py:2686 stock/models.py:355
msgid "Quantity must be integer value for trackable parts"
msgstr ""
@@ -4724,8 +4843,8 @@ msgstr ""
msgid "This part is a variant of %(link)s"
msgstr ""
-#: part/templates/part/part_base.html:190 templates/js/translated/order.js:1545
-#: templates/js/translated/table_filters.js:188
+#: part/templates/part/part_base.html:190 templates/js/translated/order.js:2217
+#: templates/js/translated/table_filters.js:193
msgid "In Stock"
msgstr ""
@@ -5099,6 +5218,78 @@ msgstr ""
msgid "Delete Internal Price Break"
msgstr ""
+#: plugin/integration.py:116
+msgid "No author found"
+msgstr ""
+
+#: plugin/integration.py:128
+msgid "No date found"
+msgstr ""
+
+#: plugin/models.py:25
+msgid "Plugin Configuration"
+msgstr ""
+
+#: plugin/models.py:26
+msgid "Plugin Configurations"
+msgstr ""
+
+#: plugin/models.py:31
+msgid "Key"
+msgstr ""
+
+#: plugin/models.py:32
+msgid "Key of plugin"
+msgstr ""
+
+#: plugin/models.py:40
+msgid "PluginName of the plugin"
+msgstr ""
+
+#: plugin/models.py:46
+msgid "Is the plugin active"
+msgstr ""
+
+#: plugin/samples/integration/sample.py:39
+msgid "Enable PO"
+msgstr ""
+
+#: plugin/samples/integration/sample.py:40
+msgid "Enable PO functionality in InvenTree interface"
+msgstr ""
+
+#: plugin/serializers.py:46
+msgid "Source URL"
+msgstr ""
+
+#: plugin/serializers.py:47
+msgid "Source for the package - this can be a custom registry or a VCS path"
+msgstr ""
+
+#: plugin/serializers.py:52
+msgid "Package Name"
+msgstr ""
+
+#: plugin/serializers.py:53
+msgid "Name for the Plugin Package - can also contain a version indicator"
+msgstr ""
+
+#: plugin/serializers.py:56
+msgid "Confirm plugin installation"
+msgstr ""
+
+#: plugin/serializers.py:57
+msgid "This will install this plugin now into the current instance. The instance will go into maintenance."
+msgstr ""
+
+#: plugin/serializers.py:72
+msgid "Installation not confirmed"
+msgstr ""
+
+#: plugin/serializers.py:74
+msgid "Either packagenmae of url must be provided"
+msgstr ""
+
#: report/api.py:234 report/api.py:278
#, python-brace-format
msgid "Template file '{filename}' is missing or does not exist"
@@ -5197,12 +5388,12 @@ msgid "Stock Item Test Report"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:520 stock/templates/stock/item_base.html:149
-#: templates/js/translated/build.js:233 templates/js/translated/build.js:637
-#: templates/js/translated/build.js:1013
+#: stock/models.py:514 stock/templates/stock/item_base.html:149
+#: templates/js/translated/build.js:238 templates/js/translated/build.js:642
+#: templates/js/translated/build.js:1018
#: templates/js/translated/model_renderers.js:95
-#: templates/js/translated/order.js:1287 templates/js/translated/order.js:1376
-#: templates/js/translated/stock.js:410
+#: templates/js/translated/order.js:99 templates/js/translated/order.js:1945
+#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:414
msgid "Serial Number"
msgstr ""
@@ -5211,17 +5402,19 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:93
-#: stock/models.py:1845
+#: stock/models.py:1833
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:94
-#: stock/models.py:1851
+#: stock/models.py:1839
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:97
-#: templates/js/translated/order.js:684 templates/js/translated/stock.js:1999
+#: templates/InvenTree/settings/plugin.html:49
+#: templates/InvenTree/settings/plugin_settings.html:38
+#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2174
msgid "Date"
msgstr ""
@@ -5239,302 +5432,318 @@ msgid "Installed Items"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
-#: templates/js/translated/stock.js:2259
+#: templates/js/translated/stock.js:577 templates/js/translated/stock.js:2434
msgid "Serial"
msgstr ""
-#: stock/api.py:422
+#: stock/api.py:446
msgid "Quantity is required"
msgstr ""
-#: stock/forms.py:91 stock/forms.py:265 stock/models.py:577
+#: stock/forms.py:77 stock/forms.py:251 stock/models.py:571
#: stock/templates/stock/item_base.html:186
-#: templates/js/translated/stock.js:1358
+#: templates/js/translated/stock.js:1522
msgid "Expiry Date"
msgstr ""
-#: stock/forms.py:92 stock/forms.py:266
+#: stock/forms.py:78 stock/forms.py:252
msgid "Expiration date for this stock item"
msgstr ""
-#: stock/forms.py:95
+#: stock/forms.py:81
msgid "Enter unique serial numbers (or leave blank)"
msgstr ""
-#: stock/forms.py:150
+#: stock/forms.py:136
msgid "Destination for serialized stock (by default, will remain in current location)"
msgstr ""
-#: stock/forms.py:152
+#: stock/forms.py:138
msgid "Serial numbers"
msgstr ""
-#: stock/forms.py:152
+#: stock/forms.py:138
msgid "Unique serial numbers (must match quantity)"
msgstr ""
-#: stock/forms.py:154 stock/forms.py:238
+#: stock/forms.py:140 stock/forms.py:224
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/forms.py:194
+#: stock/forms.py:180
msgid "Stock item to install"
msgstr ""
-#: stock/forms.py:224
+#: stock/forms.py:210
msgid "Must not exceed available quantity"
msgstr ""
-#: stock/forms.py:236
+#: stock/forms.py:222
msgid "Destination location for uninstalled items"
msgstr ""
-#: stock/forms.py:240
+#: stock/forms.py:226
msgid "Confirm uninstall"
msgstr ""
-#: stock/forms.py:240
+#: stock/forms.py:226
msgid "Confirm removal of installed stock items"
msgstr ""
-#: stock/models.py:60 stock/models.py:614
+#: stock/models.py:60 stock/models.py:608
#: stock/templates/stock/item_base.html:417
msgid "Owner"
msgstr "Propriétaire"
-#: stock/models.py:61 stock/models.py:615
+#: stock/models.py:61 stock/models.py:609
msgid "Select Owner"
msgstr "Sélectionner un propriétaire"
-#: stock/models.py:342
+#: stock/models.py:336
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:378
+#: stock/models.py:372
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:388 stock/models.py:397
+#: stock/models.py:382 stock/models.py:391
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:389
+#: stock/models.py:383
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:411
+#: stock/models.py:405
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:417
+#: stock/models.py:411
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:424
+#: stock/models.py:418
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:466
+#: stock/models.py:460
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:475
+#: stock/models.py:469
msgid "Base part"
msgstr ""
-#: stock/models.py:483
+#: stock/models.py:477
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:488 stock/templates/stock/location.html:12
+#: stock/models.py:482 stock/templates/stock/location.html:12
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:491
+#: stock/models.py:485
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:498
+#: stock/models.py:492
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:503 stock/templates/stock/item_base.html:299
+#: stock/models.py:497 stock/templates/stock/item_base.html:299
msgid "Installed In"
msgstr ""
-#: stock/models.py:506
+#: stock/models.py:500
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:522
+#: stock/models.py:516
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:536
+#: stock/models.py:530
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:540
+#: stock/models.py:534
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:549
+#: stock/models.py:543
msgid "Source Build"
msgstr ""
-#: stock/models.py:551
+#: stock/models.py:545
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:562
+#: stock/models.py:556
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:565
+#: stock/models.py:559
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:571
+#: stock/models.py:565
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:578
+#: stock/models.py:572
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:591
+#: stock/models.py:585
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:591
+#: stock/models.py:585
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:601 stock/templates/stock/item.html:111
+#: stock/models.py:595 stock/templates/stock/item.html:111
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:610
+#: stock/models.py:604
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:620
-msgid "Scheduled for deletion"
-msgstr ""
-
-#: stock/models.py:621
-msgid "This StockItem will be deleted by the background worker"
-msgstr ""
-
-#: stock/models.py:1084
+#: stock/models.py:1072
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1090
+#: stock/models.py:1078
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1096
+#: stock/models.py:1084
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1099
+#: stock/models.py:1087
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1102
+#: stock/models.py:1090
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1109
+#: stock/models.py:1097
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1267
+#: stock/models.py:1255
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1765
+#: stock/models.py:1753
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1822
+#: stock/models.py:1810
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1828
+#: stock/models.py:1816
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1846
+#: stock/models.py:1834
msgid "Test name"
msgstr ""
-#: stock/models.py:1852 templates/js/translated/table_filters.js:266
+#: stock/models.py:1840 templates/js/translated/table_filters.js:271
msgid "Test result"
msgstr ""
-#: stock/models.py:1858
+#: stock/models.py:1846
msgid "Test output value"
msgstr ""
-#: stock/models.py:1865
+#: stock/models.py:1853
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1871
+#: stock/models.py:1859
msgid "Test notes"
msgstr ""
-#: stock/serializers.py:171
+#: stock/serializers.py:173
msgid "Purchase price of this stock item"
msgstr ""
-#: stock/serializers.py:178
+#: stock/serializers.py:180
msgid "Purchase currency of this stock item"
msgstr ""
-#: stock/serializers.py:292
+#: stock/serializers.py:294
msgid "Enter number of stock items to serialize"
msgstr ""
-#: stock/serializers.py:307
+#: stock/serializers.py:309
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:313
+#: stock/serializers.py:315
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:324 stock/serializers.py:691
+#: stock/serializers.py:326 stock/serializers.py:814
msgid "Destination stock location"
msgstr ""
-#: stock/serializers.py:331
+#: stock/serializers.py:333
msgid "Optional note field"
msgstr ""
-#: stock/serializers.py:344
+#: stock/serializers.py:346
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:561
+#: stock/serializers.py:573
+msgid "Part must be salable"
+msgstr ""
+
+#: stock/serializers.py:577
+msgid "Item is allocated to a sales order"
+msgstr ""
+
+#: stock/serializers.py:581
+msgid "Item is allocated to a build order"
+msgstr ""
+
+#: stock/serializers.py:611
+msgid "Customer to assign stock items"
+msgstr ""
+
+#: stock/serializers.py:617
+msgid "Selected company is not a customer"
+msgstr ""
+
+#: stock/serializers.py:625
+msgid "Stock assignment notes"
+msgstr ""
+
+#: stock/serializers.py:635 stock/serializers.py:722
+msgid "A list of stock items must be provided"
+msgstr ""
+
+#: stock/serializers.py:684
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:589
+#: stock/serializers.py:712
msgid "Stock transaction notes"
msgstr ""
-#: stock/serializers.py:599
-msgid "A list of stock items must be provided"
-msgstr ""
-
#: stock/templates/stock/item.html:18
msgid "Stock Tracking Information"
msgstr ""
@@ -5572,7 +5781,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:137 stock/views.py:515
+#: stock/templates/stock/item.html:137 stock/views.py:482
msgid "Install Stock Item"
msgstr ""
@@ -5632,7 +5841,7 @@ msgstr ""
msgid "Transfer stock"
msgstr ""
-#: stock/templates/stock/item_base.html:85
+#: stock/templates/stock/item_base.html:85 templates/stock_table.html:53
msgid "Assign to customer"
msgstr ""
@@ -5694,7 +5903,7 @@ msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:190
-#: templates/js/translated/table_filters.js:247
+#: templates/js/translated/table_filters.js:252
msgid "Expired"
msgstr ""
@@ -5704,12 +5913,12 @@ msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:192
-#: templates/js/translated/table_filters.js:253
+#: templates/js/translated/table_filters.js:258
msgid "Stale"
msgstr ""
#: stock/templates/stock/item_base.html:199
-#: templates/js/translated/stock.js:1371
+#: templates/js/translated/stock.js:1535
msgid "Last Updated"
msgstr ""
@@ -5738,13 +5947,11 @@ msgid "This stock item has not passed all required tests"
msgstr ""
#: stock/templates/stock/item_base.html:255
-#, python-format
-msgid "This stock item is allocated to Sales Order %(link)s (Quantity: %(qty)s)"
+msgid "This stock item is allocated to Sales Order"
msgstr ""
#: stock/templates/stock/item_base.html:263
-#, python-format
-msgid "This stock item is allocated to Build %(link)s (Quantity: %(qty)s)"
+msgid "This stock item is allocated to Build Order"
msgstr ""
#: stock/templates/stock/item_base.html:269
@@ -5760,7 +5967,7 @@ msgid "This stock item will be automatically deleted when all stock is depleted.
msgstr ""
#: stock/templates/stock/item_base.html:318
-#: templates/js/translated/build.js:1035
+#: templates/js/translated/build.js:1040
msgid "No location set"
msgstr ""
@@ -5910,7 +6117,7 @@ msgstr ""
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:912
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:879
msgid "Convert Stock Item"
msgstr ""
@@ -5935,8 +6142,7 @@ msgstr ""
msgid "Edit Stock Location"
msgstr ""
-#: stock/views.py:269 stock/views.py:891 stock/views.py:1017
-#: stock/views.py:1299
+#: stock/views.py:269 stock/views.py:858 stock/views.py:984 stock/views.py:1266
msgid "Owner is required (ownership control is enabled)"
msgstr ""
@@ -5945,86 +6151,78 @@ msgid "Stock Location QR code"
msgstr ""
#: stock/views.py:303
-msgid "Assign to Customer"
-msgstr ""
-
-#: stock/views.py:312
-msgid "Customer must be specified"
-msgstr ""
-
-#: stock/views.py:336
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:345
+#: stock/views.py:312
msgid "Specify a valid location"
msgstr ""
-#: stock/views.py:356
+#: stock/views.py:323
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:367
+#: stock/views.py:334
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:384
+#: stock/views.py:351
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:489
+#: stock/views.py:456
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:663
+#: stock/views.py:630
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:760 templates/js/translated/stock.js:730
+#: stock/views.py:727 templates/js/translated/stock.js:887
msgid "Confirm stock adjustment"
msgstr ""
-#: stock/views.py:771
+#: stock/views.py:738
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:793 templates/js/translated/stock.js:319
+#: stock/views.py:760 templates/js/translated/stock.js:323
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:943
+#: stock/views.py:910
msgid "Create new Stock Location"
msgstr ""
-#: stock/views.py:1044
+#: stock/views.py:1011
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1186 templates/js/translated/stock.js:299
+#: stock/views.py:1153 templates/js/translated/stock.js:303
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1268
+#: stock/views.py:1235
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1368
+#: stock/views.py:1335
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:1381
+#: stock/views.py:1348
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1392
+#: stock/views.py:1359
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1399
+#: stock/views.py:1366
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1408
+#: stock/views.py:1375
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -6044,6 +6242,14 @@ msgstr ""
msgid "The requested page does not exist"
msgstr ""
+#: templates/503.html:10 templates/503.html:35
+msgid "Site is in Maintenance"
+msgstr ""
+
+#: templates/503.html:41
+msgid "The site is currently in maintenance and should be up again soon!"
+msgstr ""
+
#: templates/InvenTree/index.html:7
msgid "Index"
msgstr ""
@@ -6153,7 +6359,7 @@ msgid "Server Settings"
msgstr ""
#: templates/InvenTree/settings/login.html:9
-#: templates/InvenTree/settings/sidebar.html:28
+#: templates/InvenTree/settings/sidebar.html:29
msgid "Login Settings"
msgstr ""
@@ -6161,6 +6367,24 @@ msgstr ""
msgid "Signup"
msgstr ""
+#: templates/InvenTree/settings/mixins/settings.html:4
+#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:118
+msgid "Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/mixins/urls.html:4
+msgid "URLs"
+msgstr ""
+
+#: templates/InvenTree/settings/mixins/urls.html:6
+#, python-format
+msgid "The Base-URL for this plugin is %(base)s."
+msgstr ""
+
+#: templates/InvenTree/settings/mixins/urls.html:21
+msgid "open in new tab"
+msgstr ""
+
#: templates/InvenTree/settings/part.html:7
msgid "Part Settings"
msgstr ""
@@ -6177,6 +6401,126 @@ msgstr ""
msgid "Part Parameter Templates"
msgstr ""
+#: templates/InvenTree/settings/plugin.html:10
+msgid "Plugin Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:16
+msgid "Changing the settings below require you to immediatly restart InvenTree. Do not change this while under active usage."
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:32
+msgid "Plugin list"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:37
+#: templates/js/translated/plugin.js:15
+msgid "Install Plugin"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:46 templates/navbar.html:111
+#: users/models.py:39
+msgid "Admin"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:48
+#: templates/InvenTree/settings/plugin_settings.html:28
+msgid "Author"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:50
+#: templates/InvenTree/settings/plugin_settings.html:43
+msgid "Version"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:73
+#, python-format
+msgid "has %(name)s"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:91
+msgid "Inactive plugins"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:114
+msgid "Plugin Error Stack"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:123
+msgid "Stage"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:125
+msgid "Message"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:10
+#, python-format
+msgid "Plugin details for %(name)s"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:17
+msgid "Plugin information"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:48
+msgid "no version information supplied"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:62
+msgid "License"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:70
+msgid "The code information is pulled from the latest git commit for this plugin. It might not reflect official version numbers or information but the actual code running."
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:74
+msgid "Package information"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:80
+msgid "Installation method"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:83
+msgid "This plugin was installed as a package"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:85
+msgid "This plugin was found in a local InvenTree path"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:91
+msgid "Installation path"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:97
+msgid "Commit Author"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:101
+#: templates/about.html:47
+msgid "Commit Date"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:105
+#: templates/about.html:40
+msgid "Commit Hash"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:109
+msgid "Commit Message"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:114
+msgid "Sign Status"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:119
+msgid "Sign Key"
+msgstr ""
+
#: templates/InvenTree/settings/po.html:7
msgid "Purchase Order Settings"
msgstr ""
@@ -6194,86 +6538,82 @@ msgstr ""
msgid "Edit setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:11 templates/navbar.html:93
-msgid "Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/settings.html:65
+#: templates/InvenTree/settings/settings.html:74
msgid "Edit Global Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:65
+#: templates/InvenTree/settings/settings.html:74
msgid "Edit User Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:148
+#: templates/InvenTree/settings/settings.html:157
msgid "No category parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:170
-#: templates/InvenTree/settings/settings.html:269
+#: templates/InvenTree/settings/settings.html:179
+#: templates/InvenTree/settings/settings.html:278
msgid "Edit Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:171
-#: templates/InvenTree/settings/settings.html:270
+#: templates/InvenTree/settings/settings.html:180
+#: templates/InvenTree/settings/settings.html:279
msgid "Delete Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:249
+#: templates/InvenTree/settings/settings.html:258
msgid "No part parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:253
+#: templates/InvenTree/settings/settings.html:262
msgid "ID"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:5
+#: templates/InvenTree/settings/sidebar.html:6
#: templates/InvenTree/settings/user_settings.html:9
msgid "User Settings"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:8
+#: templates/InvenTree/settings/sidebar.html:9
#: templates/InvenTree/settings/user.html:12
msgid "Account Settings"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:10
+#: templates/InvenTree/settings/sidebar.html:11
#: templates/InvenTree/settings/user_display.html:9
msgid "Display Settings"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:12
+#: templates/InvenTree/settings/sidebar.html:13
msgid "Home Page"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:14
+#: templates/InvenTree/settings/sidebar.html:15
#: templates/InvenTree/settings/user_search.html:9
msgid "Search Settings"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:16
+#: templates/InvenTree/settings/sidebar.html:17
msgid "Label Printing"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:18
-#: templates/InvenTree/settings/sidebar.html:34
+#: templates/InvenTree/settings/sidebar.html:19
+#: templates/InvenTree/settings/sidebar.html:35
msgid "Reporting"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:23
+#: templates/InvenTree/settings/sidebar.html:24
msgid "Global Settings"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:26
+#: templates/InvenTree/settings/sidebar.html:27
msgid "Server Configuration"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:32
+#: templates/InvenTree/settings/sidebar.html:33
msgid "Currencies"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:38
+#: templates/InvenTree/settings/sidebar.html:39
msgid "Categories"
msgstr ""
@@ -6491,8 +6831,8 @@ msgstr ""
#: templates/about.html:11 templates/about.html:105
#: templates/js/translated/bom.js:283 templates/js/translated/modals.js:53
-#: templates/js/translated/modals.js:567 templates/js/translated/modals.js:661
-#: templates/js/translated/modals.js:964 templates/modals.html:15
+#: templates/js/translated/modals.js:568 templates/js/translated/modals.js:662
+#: templates/js/translated/modals.js:965 templates/modals.html:15
#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
msgid "Close"
msgstr ""
@@ -6513,14 +6853,6 @@ msgstr ""
msgid "Update Available"
msgstr ""
-#: templates/about.html:40
-msgid "Commit Hash"
-msgstr ""
-
-#: templates/about.html:47
-msgid "Commit Date"
-msgstr ""
-
#: templates/about.html:53
msgid "InvenTree Documentation"
msgstr ""
@@ -6718,8 +7050,9 @@ msgstr ""
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1129
-#: templates/js/translated/build.js:1749
+#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1134
+#: templates/js/translated/build.js:1755
+#: templates/js/translated/table_filters.js:178
msgid "Available"
msgstr "Disponible"
@@ -6765,11 +7098,11 @@ msgstr ""
msgid "Remote image must not exceed maximum allowable file size"
msgstr ""
-#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1034
+#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1035
msgid "No Response"
msgstr ""
-#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1035
+#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1036
msgid "No response from the InvenTree server"
msgstr ""
@@ -6781,35 +7114,35 @@ msgstr ""
msgid "API request returned error code 400"
msgstr ""
-#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1044
+#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1045
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1045
+#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1046
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1049
+#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1050
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1050
+#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1051
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1054
+#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1055
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1055
+#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1056
msgid "The requested resource could not be located on the server"
msgstr ""
-#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1059
+#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1060
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1060
+#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1061
msgid "Connection timeout while requesting data from server"
msgstr ""
@@ -6878,7 +7211,7 @@ msgid "Unknown response from server"
msgstr ""
#: templates/js/translated/barcode.js:140
-#: templates/js/translated/modals.js:1024
+#: templates/js/translated/modals.js:1025
msgid "Invalid server response"
msgstr ""
@@ -6886,7 +7219,7 @@ msgstr ""
msgid "Scan barcode data below"
msgstr ""
-#: templates/js/translated/barcode.js:280 templates/navbar.html:69
+#: templates/js/translated/barcode.js:280 templates/navbar.html:94
msgid "Scan Barcode"
msgstr ""
@@ -6906,7 +7239,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:682
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:839
msgid "Remove stock item"
msgstr ""
@@ -6976,7 +7309,7 @@ msgstr ""
msgid "Substitutes Available"
msgstr ""
-#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1111
+#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1116
msgid "Variant stock allowed"
msgstr ""
@@ -7000,11 +7333,6 @@ msgstr ""
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1183
-#: templates/js/translated/order.js:1319
-msgid "Actions"
-msgstr ""
-
#: templates/js/translated/bom.js:616
msgid "Validate BOM Item"
msgstr ""
@@ -7025,7 +7353,7 @@ msgstr ""
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:718 templates/js/translated/build.js:855
+#: templates/js/translated/bom.js:718 templates/js/translated/build.js:860
msgid "No BOM items found"
msgstr ""
@@ -7033,7 +7361,7 @@ msgstr ""
msgid "Are you sure you want to delete this BOM item?"
msgstr ""
-#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1095
+#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1100
msgid "Required Part"
msgstr ""
@@ -7041,165 +7369,165 @@ msgstr ""
msgid "Inherited from parent BOM"
msgstr ""
-#: templates/js/translated/build.js:78
+#: templates/js/translated/build.js:83
msgid "Edit Build Order"
msgstr ""
-#: templates/js/translated/build.js:112
+#: templates/js/translated/build.js:117
msgid "Create Build Order"
msgstr ""
-#: templates/js/translated/build.js:133
+#: templates/js/translated/build.js:138
msgid "Allocate stock items to this build output"
msgstr ""
-#: templates/js/translated/build.js:144
+#: templates/js/translated/build.js:149
msgid "Unallocate stock from build output"
msgstr ""
-#: templates/js/translated/build.js:153
+#: templates/js/translated/build.js:158
msgid "Complete build output"
msgstr ""
-#: templates/js/translated/build.js:161
+#: templates/js/translated/build.js:166
msgid "Delete build output"
msgstr ""
-#: templates/js/translated/build.js:184
+#: templates/js/translated/build.js:189
msgid "Are you sure you wish to unallocate stock items from this build?"
msgstr ""
-#: templates/js/translated/build.js:202
+#: templates/js/translated/build.js:207
msgid "Unallocate Stock Items"
msgstr ""
-#: templates/js/translated/build.js:220
+#: templates/js/translated/build.js:225
msgid "Select Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:221
+#: templates/js/translated/build.js:226
msgid "At least one build output must be selected"
msgstr ""
-#: templates/js/translated/build.js:275
+#: templates/js/translated/build.js:280
msgid "Output"
msgstr ""
-#: templates/js/translated/build.js:291
+#: templates/js/translated/build.js:296
msgid "Complete Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:386
+#: templates/js/translated/build.js:391
msgid "No build order allocations found"
msgstr ""
-#: templates/js/translated/build.js:424 templates/js/translated/order.js:1193
+#: templates/js/translated/build.js:429 templates/js/translated/order.js:1848
msgid "Location not specified"
msgstr ""
-#: templates/js/translated/build.js:603
+#: templates/js/translated/build.js:608
msgid "No active build outputs found"
msgstr ""
-#: templates/js/translated/build.js:1052 templates/js/translated/build.js:1760
-#: templates/js/translated/order.js:1326
+#: templates/js/translated/build.js:1057 templates/js/translated/build.js:1766
+#: templates/js/translated/order.js:1982
msgid "Edit stock allocation"
msgstr ""
-#: templates/js/translated/build.js:1054 templates/js/translated/build.js:1761
-#: templates/js/translated/order.js:1327
+#: templates/js/translated/build.js:1059 templates/js/translated/build.js:1767
+#: templates/js/translated/order.js:1983
msgid "Delete stock allocation"
msgstr ""
-#: templates/js/translated/build.js:1072
+#: templates/js/translated/build.js:1077
msgid "Edit Allocation"
msgstr ""
-#: templates/js/translated/build.js:1082
+#: templates/js/translated/build.js:1087
msgid "Remove Allocation"
msgstr ""
-#: templates/js/translated/build.js:1107
+#: templates/js/translated/build.js:1112
msgid "Substitute parts available"
msgstr ""
-#: templates/js/translated/build.js:1124
+#: templates/js/translated/build.js:1129
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:1134 templates/js/translated/build.js:1360
-#: templates/js/translated/build.js:1756 templates/js/translated/order.js:1556
+#: templates/js/translated/build.js:1139 templates/js/translated/build.js:1365
+#: templates/js/translated/build.js:1762 templates/js/translated/order.js:2227
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:1190 templates/js/translated/order.js:1610
+#: templates/js/translated/build.js:1195 templates/js/translated/order.js:2307
msgid "Build stock"
msgstr ""
-#: templates/js/translated/build.js:1194 templates/stock_table.html:52
+#: templates/js/translated/build.js:1199 templates/stock_table.html:52
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:1197 templates/js/translated/order.js:1603
+#: templates/js/translated/build.js:1202 templates/js/translated/order.js:2300
msgid "Allocate stock"
msgstr ""
-#: templates/js/translated/build.js:1262
+#: templates/js/translated/build.js:1267 templates/js/translated/order.js:1499
msgid "Specify stock allocation quantity"
msgstr ""
-#: templates/js/translated/build.js:1333 templates/js/translated/label.js:134
-#: templates/js/translated/report.js:225
+#: templates/js/translated/build.js:1338 templates/js/translated/label.js:134
+#: templates/js/translated/order.js:1550 templates/js/translated/report.js:225
msgid "Select Parts"
msgstr ""
-#: templates/js/translated/build.js:1334
+#: templates/js/translated/build.js:1339 templates/js/translated/order.js:1551
msgid "You must select at least one part to allocate"
msgstr ""
-#: templates/js/translated/build.js:1348
+#: templates/js/translated/build.js:1353 templates/js/translated/order.js:1565
msgid "Select source location (leave blank to take from all locations)"
msgstr ""
-#: templates/js/translated/build.js:1377
+#: templates/js/translated/build.js:1382 templates/js/translated/order.js:1600
msgid "Confirm stock allocation"
msgstr ""
-#: templates/js/translated/build.js:1378
+#: templates/js/translated/build.js:1383
msgid "Allocate Stock Items to Build Order"
msgstr ""
-#: templates/js/translated/build.js:1389
+#: templates/js/translated/build.js:1394 templates/js/translated/order.js:1613
msgid "No matching stock locations"
msgstr ""
-#: templates/js/translated/build.js:1451
+#: templates/js/translated/build.js:1464 templates/js/translated/order.js:1690
msgid "No matching stock items"
msgstr ""
-#: templates/js/translated/build.js:1576
+#: templates/js/translated/build.js:1582
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:1593 templates/js/translated/part.js:1147
-#: templates/js/translated/part.js:1558 templates/js/translated/stock.js:1176
-#: templates/js/translated/stock.js:1953
+#: templates/js/translated/build.js:1599 templates/js/translated/part.js:1147
+#: templates/js/translated/part.js:1558 templates/js/translated/stock.js:1333
+#: templates/js/translated/stock.js:2128
msgid "Select"
msgstr ""
-#: templates/js/translated/build.js:1613
+#: templates/js/translated/build.js:1619
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1674 templates/js/translated/stock.js:2172
+#: templates/js/translated/build.js:1680 templates/js/translated/stock.js:2347
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:1686
+#: templates/js/translated/build.js:1692
msgid "No information"
msgstr ""
-#: templates/js/translated/build.js:1737
+#: templates/js/translated/build.js:1743
msgid "No parts allocated for"
msgstr ""
@@ -7219,7 +7547,7 @@ msgstr ""
msgid "Delete Manufacturer Part"
msgstr ""
-#: templates/js/translated/company.js:165 templates/js/translated/order.js:90
+#: templates/js/translated/company.js:165 templates/js/translated/order.js:248
msgid "Add Supplier"
msgstr ""
@@ -7354,20 +7682,20 @@ msgstr ""
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1072 templates/modals.html:19
+#: templates/js/translated/forms.js:1078 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1463
+#: templates/js/translated/forms.js:1469
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1667
+#: templates/js/translated/forms.js:1673
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1884
+#: templates/js/translated/forms.js:1893
msgid "Clear input"
msgstr ""
@@ -7380,7 +7708,7 @@ msgid "NO"
msgstr ""
#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:706
+#: templates/js/translated/stock.js:863
msgid "Select Stock Items"
msgstr ""
@@ -7429,62 +7757,62 @@ msgstr ""
msgid "Select Label Template"
msgstr ""
-#: templates/js/translated/modals.js:75 templates/js/translated/modals.js:119
-#: templates/js/translated/modals.js:593
+#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:120
+#: templates/js/translated/modals.js:594
msgid "Cancel"
msgstr "Annuler"
-#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:118
-#: templates/js/translated/modals.js:660 templates/js/translated/modals.js:963
+#: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119
+#: templates/js/translated/modals.js:661 templates/js/translated/modals.js:964
#: templates/modals.html:28 templates/modals.html:51
msgid "Submit"
msgstr ""
-#: templates/js/translated/modals.js:117
+#: templates/js/translated/modals.js:118
msgid "Form Title"
msgstr ""
-#: templates/js/translated/modals.js:380
+#: templates/js/translated/modals.js:381
msgid "Waiting for server..."
msgstr ""
-#: templates/js/translated/modals.js:539
+#: templates/js/translated/modals.js:540
msgid "Show Error Information"
msgstr ""
-#: templates/js/translated/modals.js:592
+#: templates/js/translated/modals.js:593
msgid "Accept"
msgstr ""
-#: templates/js/translated/modals.js:649
+#: templates/js/translated/modals.js:650
msgid "Loading Data"
msgstr ""
-#: templates/js/translated/modals.js:915
+#: templates/js/translated/modals.js:916
msgid "Invalid response from server"
msgstr ""
-#: templates/js/translated/modals.js:915
+#: templates/js/translated/modals.js:916
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/translated/modals.js:927
+#: templates/js/translated/modals.js:928
msgid "Error posting form data"
msgstr ""
-#: templates/js/translated/modals.js:1024
+#: templates/js/translated/modals.js:1025
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/translated/modals.js:1039
+#: templates/js/translated/modals.js:1040
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/translated/modals.js:1040
+#: templates/js/translated/modals.js:1041
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/translated/modals.js:1063
+#: templates/js/translated/modals.js:1064
msgid "Error requesting form data"
msgstr ""
@@ -7512,176 +7840,245 @@ msgstr ""
msgid "Order ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:256
+#: templates/js/translated/model_renderers.js:253
+msgid "Shipment ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:273
msgid "Category ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:293
+#: templates/js/translated/model_renderers.js:310
msgid "Manufacturer Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:322
+#: templates/js/translated/model_renderers.js:339
msgid "Supplier Part ID"
msgstr ""
-#: templates/js/translated/order.js:48
+#: templates/js/translated/order.js:75
+msgid "No stock items have been allocated to this shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:80
+msgid "The following stock items will be shipped"
+msgstr ""
+
+#: templates/js/translated/order.js:120
+msgid "Complete Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:126
+msgid "Confirm Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:181
+msgid "Create New Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:206
msgid "Add Customer"
msgstr ""
-#: templates/js/translated/order.js:73
+#: templates/js/translated/order.js:231
msgid "Create Sales Order"
msgstr ""
-#: templates/js/translated/order.js:208
+#: templates/js/translated/order.js:366
msgid "Export Order"
msgstr ""
-#: templates/js/translated/order.js:211 templates/js/translated/stock.js:505
+#: templates/js/translated/order.js:369 templates/js/translated/stock.js:509
msgid "Format"
msgstr ""
-#: templates/js/translated/order.js:212 templates/js/translated/stock.js:506
+#: templates/js/translated/order.js:370 templates/js/translated/stock.js:510
msgid "Select file format"
msgstr ""
-#: templates/js/translated/order.js:300
+#: templates/js/translated/order.js:460
msgid "Select Line Items"
msgstr ""
-#: templates/js/translated/order.js:301
+#: templates/js/translated/order.js:461
msgid "At least one line item must be selected"
msgstr ""
-#: templates/js/translated/order.js:326
+#: templates/js/translated/order.js:486
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:360 templates/js/translated/stock.js:1755
+#: templates/js/translated/order.js:520 templates/js/translated/stock.js:1930
msgid "Stock Status"
msgstr ""
-#: templates/js/translated/order.js:427
+#: templates/js/translated/order.js:587
msgid "Order Code"
msgstr ""
-#: templates/js/translated/order.js:428
+#: templates/js/translated/order.js:588
msgid "Ordered"
msgstr ""
-#: templates/js/translated/order.js:430
+#: templates/js/translated/order.js:590
msgid "Receive"
msgstr ""
-#: templates/js/translated/order.js:449
+#: templates/js/translated/order.js:609
msgid "Confirm receipt of items"
msgstr ""
-#: templates/js/translated/order.js:450
+#: templates/js/translated/order.js:610
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:627 templates/js/translated/part.js:746
+#: templates/js/translated/order.js:790 templates/js/translated/part.js:746
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:659 templates/js/translated/order.js:1062
+#: templates/js/translated/order.js:815 templates/js/translated/order.js:1230
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:771 templates/js/translated/order.js:1645
+#: templates/js/translated/order.js:936 templates/js/translated/order.js:2356
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:783 templates/js/translated/order.js:1656
+#: templates/js/translated/order.js:948 templates/js/translated/order.js:2367
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/order.js:822
+#: templates/js/translated/order.js:987
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:849 templates/js/translated/order.js:1466
+#: templates/js/translated/order.js:1014 templates/js/translated/order.js:2138
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:903 templates/js/translated/order.js:1491
+#: templates/js/translated/order.js:1068 templates/js/translated/order.js:2163
#: templates/js/translated/part.js:1775 templates/js/translated/part.js:1986
msgid "Unit Price"
msgstr ""
-#: templates/js/translated/order.js:918 templates/js/translated/order.js:1507
+#: templates/js/translated/order.js:1083 templates/js/translated/order.js:2179
msgid "Total Price"
msgstr ""
-#: templates/js/translated/order.js:996 templates/js/translated/order.js:1616
+#: templates/js/translated/order.js:1161 templates/js/translated/order.js:2313
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:997
+#: templates/js/translated/order.js:1162 templates/js/translated/order.js:2317
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:1001 templates/js/translated/part.js:878
+#: templates/js/translated/order.js:1166 templates/js/translated/part.js:878
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:1038
+#: templates/js/translated/order.js:1206
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:1076
+#: templates/js/translated/order.js:1244
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:1154
+#: templates/js/translated/order.js:1322
+msgid "Edit shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1325
+msgid "Complete shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1330
+msgid "Delete shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1350
+msgid "Edit Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1367
+msgid "Delete Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1401
+msgid "No matching shipments found"
+msgstr ""
+
+#: templates/js/translated/order.js:1411
+msgid "Shipment Reference"
+msgstr ""
+
+#: templates/js/translated/order.js:1435
+msgid "Not shipped"
+msgstr ""
+
+#: templates/js/translated/order.js:1441
+msgid "Tracking"
+msgstr ""
+
+#: templates/js/translated/order.js:1601
+msgid "Allocate Stock Items to Sales Order"
+msgstr ""
+
+#: templates/js/translated/order.js:1809
msgid "No sales order allocations found"
msgstr ""
-#: templates/js/translated/order.js:1247
+#: templates/js/translated/order.js:1898
msgid "Edit Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1264
+#: templates/js/translated/order.js:1915
msgid "Confirm Delete Operation"
msgstr ""
-#: templates/js/translated/order.js:1265
+#: templates/js/translated/order.js:1916
msgid "Delete Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1307
+#: templates/js/translated/order.js:1959 templates/js/translated/order.js:2048
+#: templates/js/translated/stock.js:1249
+msgid "Shipped to customer"
+msgstr ""
+
+#: templates/js/translated/order.js:1967 templates/js/translated/order.js:2057
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:1556
-msgid "Fulfilled"
-msgstr ""
-
-#: templates/js/translated/order.js:1600
+#: templates/js/translated/order.js:2297
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:1606
+#: templates/js/translated/order.js:2303
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:1613 templates/js/translated/order.js:1792
+#: templates/js/translated/order.js:2310 templates/js/translated/order.js:2476
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:1617
-msgid "Delete line item "
+#: templates/js/translated/order.js:2321
+msgid "Cannot be deleted as items have been shipped"
msgstr ""
-#: templates/js/translated/order.js:1740
-msgid "Allocate Stock Item"
+#: templates/js/translated/order.js:2324
+msgid "Cannot be deleted as items have been allocated"
msgstr ""
-#: templates/js/translated/order.js:1800
+#: templates/js/translated/order.js:2382
+msgid "Allocate Serial Numbers"
+msgstr ""
+
+#: templates/js/translated/order.js:2484
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:1814
+#: templates/js/translated/order.js:2498
msgid "No matching line items"
msgstr ""
@@ -7826,12 +8223,12 @@ msgid "No category"
msgstr ""
#: templates/js/translated/part.js:1230
-#: templates/js/translated/table_filters.js:381
+#: templates/js/translated/table_filters.js:412
msgid "Low stock"
msgstr ""
#: templates/js/translated/part.js:1321 templates/js/translated/part.js:1493
-#: templates/js/translated/stock.js:1914
+#: templates/js/translated/stock.js:2089
msgid "Display as list"
msgstr ""
@@ -7839,7 +8236,7 @@ msgstr ""
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1512 templates/js/translated/stock.js:1933
+#: templates/js/translated/part.js:1512 templates/js/translated/stock.js:2108
msgid "Display as tree"
msgstr ""
@@ -7847,7 +8244,7 @@ msgstr ""
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:1590 templates/js/translated/stock.js:1977
+#: templates/js/translated/part.js:1590 templates/js/translated/stock.js:2152
msgid "Path"
msgstr ""
@@ -7855,11 +8252,11 @@ msgstr ""
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1685 templates/js/translated/stock.js:898
+#: templates/js/translated/part.js:1685 templates/js/translated/stock.js:1055
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1686 templates/js/translated/stock.js:899
+#: templates/js/translated/part.js:1686 templates/js/translated/stock.js:1056
msgid "Delete test result"
msgstr ""
@@ -7898,6 +8295,10 @@ msgstr ""
msgid "Single Price Difference"
msgstr ""
+#: templates/js/translated/plugin.js:22
+msgid "The Plugin was installed"
+msgstr ""
+
#: templates/js/translated/report.js:67
msgid "items selected"
msgstr ""
@@ -7964,300 +8365,316 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/stock.js:71
+#: templates/js/translated/stock.js:72
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:89 templates/js/translated/stock.js:168
+#: templates/js/translated/stock.js:90 templates/js/translated/stock.js:172
msgid "Next available serial number"
msgstr ""
-#: templates/js/translated/stock.js:91 templates/js/translated/stock.js:170
+#: templates/js/translated/stock.js:92 templates/js/translated/stock.js:174
msgid "Latest serial number"
msgstr ""
-#: templates/js/translated/stock.js:105
+#: templates/js/translated/stock.js:100
+msgid "Confirm Stock Serialization"
+msgstr ""
+
+#: templates/js/translated/stock.js:109
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:141
+#: templates/js/translated/stock.js:145
msgid "New Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:181
+#: templates/js/translated/stock.js:185
msgid "This part cannot be serialized"
msgstr ""
-#: templates/js/translated/stock.js:220
+#: templates/js/translated/stock.js:224
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: templates/js/translated/stock.js:226
+#: templates/js/translated/stock.js:230
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: templates/js/translated/stock.js:369
+#: templates/js/translated/stock.js:373
msgid "Created new stock item"
msgstr ""
-#: templates/js/translated/stock.js:382
+#: templates/js/translated/stock.js:386
msgid "Created multiple stock items"
msgstr ""
-#: templates/js/translated/stock.js:407
+#: templates/js/translated/stock.js:411
msgid "Find Serial Number"
msgstr ""
-#: templates/js/translated/stock.js:411 templates/js/translated/stock.js:412
+#: templates/js/translated/stock.js:415 templates/js/translated/stock.js:416
msgid "Enter serial number"
msgstr ""
-#: templates/js/translated/stock.js:428
+#: templates/js/translated/stock.js:432
msgid "Enter a serial number"
msgstr ""
-#: templates/js/translated/stock.js:448
+#: templates/js/translated/stock.js:452
msgid "No matching serial number"
msgstr ""
-#: templates/js/translated/stock.js:457
+#: templates/js/translated/stock.js:461
msgid "More than one matching result found"
msgstr ""
-#: templates/js/translated/stock.js:502
+#: templates/js/translated/stock.js:506
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:513
+#: templates/js/translated/stock.js:517
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:514
+#: templates/js/translated/stock.js:518
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:556
+#: templates/js/translated/stock.js:627
+msgid "Confirm stock assignment"
+msgstr ""
+
+#: templates/js/translated/stock.js:628
+msgid "Assign Stock to Customer"
+msgstr ""
+
+#: templates/js/translated/stock.js:713
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:557
+#: templates/js/translated/stock.js:714
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:563
+#: templates/js/translated/stock.js:720
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:564
+#: templates/js/translated/stock.js:721
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:568
+#: templates/js/translated/stock.js:725
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:569
+#: templates/js/translated/stock.js:726
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:573
+#: templates/js/translated/stock.js:730
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:574 users/models.py:200
+#: templates/js/translated/stock.js:731 users/models.py:202
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:578 templates/stock_table.html:56
+#: templates/js/translated/stock.js:735 templates/stock_table.html:57
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:667
+#: templates/js/translated/stock.js:824
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:667
+#: templates/js/translated/stock.js:824
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:707
+#: templates/js/translated/stock.js:864
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:865
+#: templates/js/translated/stock.js:1022
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:867
+#: templates/js/translated/stock.js:1024
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:872
+#: templates/js/translated/stock.js:1029
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:894
+#: templates/js/translated/stock.js:1051
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:920
+#: templates/js/translated/stock.js:1077
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:977
+#: templates/js/translated/stock.js:1134
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:1084
+#: templates/js/translated/stock.js:1241
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:1088
+#: templates/js/translated/stock.js:1245
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:1092
-msgid "Shipped to customer"
-msgstr ""
-
-#: templates/js/translated/stock.js:1096
+#: templates/js/translated/stock.js:1253
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:1102
+#: templates/js/translated/stock.js:1259
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:1260
+#: templates/js/translated/stock.js:1417
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1265
+#: templates/js/translated/stock.js:1422
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1268
+#: templates/js/translated/stock.js:1425
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1272
+#: templates/js/translated/stock.js:1429
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1274
+#: templates/js/translated/stock.js:1431
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1278
-msgid "Stock item has been allocated"
+#: templates/js/translated/stock.js:1437
+msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1282
+#: templates/js/translated/stock.js:1439
+msgid "Stock item has been fully allocated"
+msgstr ""
+
+#: templates/js/translated/stock.js:1441
+msgid "Stock item has been partially allocated"
+msgstr ""
+
+#: templates/js/translated/stock.js:1446
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1289
+#: templates/js/translated/stock.js:1453
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1291
+#: templates/js/translated/stock.js:1455
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1293
+#: templates/js/translated/stock.js:1457
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1297
-#: templates/js/translated/table_filters.js:183
+#: templates/js/translated/stock.js:1461
+#: templates/js/translated/table_filters.js:188
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1347
+#: templates/js/translated/stock.js:1511
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1420
+#: templates/js/translated/stock.js:1584
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1458
+#: templates/js/translated/stock.js:1622
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1479 templates/js/translated/stock.js:1527
+#: templates/js/translated/stock.js:1643 templates/js/translated/stock.js:1691
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1567
+#: templates/js/translated/stock.js:1731
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1594
+#: templates/js/translated/stock.js:1758
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:1596
+#: templates/js/translated/stock.js:1760
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:1770
+#: templates/js/translated/stock.js:1945
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:1784
+#: templates/js/translated/stock.js:1959
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:1785
+#: templates/js/translated/stock.js:1960
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:2009
+#: templates/js/translated/stock.js:2184
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:2031
+#: templates/js/translated/stock.js:2206
msgid "Details"
msgstr "Détails"
-#: templates/js/translated/stock.js:2056
+#: templates/js/translated/stock.js:2231
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2075
+#: templates/js/translated/stock.js:2250
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2094
+#: templates/js/translated/stock.js:2269
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2112
+#: templates/js/translated/stock.js:2287
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2135
+#: templates/js/translated/stock.js:2310
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2143
+#: templates/js/translated/stock.js:2318
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2184
+#: templates/js/translated/stock.js:2359
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2185
+#: templates/js/translated/stock.js:2360
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2236
+#: templates/js/translated/stock.js:2411
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2287
+#: templates/js/translated/stock.js:2462
msgid "Uninstall Stock Item"
msgstr ""
@@ -8278,7 +8695,7 @@ msgid "Allow Variant Stock"
msgstr ""
#: templates/js/translated/table_filters.js:110
-#: templates/js/translated/table_filters.js:178
+#: templates/js/translated/table_filters.js:183
msgid "Include sublocations"
msgstr ""
@@ -8288,54 +8705,54 @@ msgstr ""
#: templates/js/translated/table_filters.js:121
#: templates/js/translated/table_filters.js:122
-#: templates/js/translated/table_filters.js:358
+#: templates/js/translated/table_filters.js:389
msgid "Include subcategories"
msgstr ""
#: templates/js/translated/table_filters.js:126
-#: templates/js/translated/table_filters.js:393
+#: templates/js/translated/table_filters.js:424
msgid "Subscribed"
msgstr ""
#: templates/js/translated/table_filters.js:136
-#: templates/js/translated/table_filters.js:213
+#: templates/js/translated/table_filters.js:218
msgid "Is Serialized"
msgstr ""
#: templates/js/translated/table_filters.js:139
-#: templates/js/translated/table_filters.js:220
+#: templates/js/translated/table_filters.js:225
msgid "Serial number GTE"
msgstr ""
#: templates/js/translated/table_filters.js:140
-#: templates/js/translated/table_filters.js:221
+#: templates/js/translated/table_filters.js:226
msgid "Serial number greater than or equal to"
msgstr ""
#: templates/js/translated/table_filters.js:143
-#: templates/js/translated/table_filters.js:224
+#: templates/js/translated/table_filters.js:229
msgid "Serial number LTE"
msgstr ""
#: templates/js/translated/table_filters.js:144
-#: templates/js/translated/table_filters.js:225
+#: templates/js/translated/table_filters.js:230
msgid "Serial number less than or equal to"
msgstr ""
#: templates/js/translated/table_filters.js:147
#: templates/js/translated/table_filters.js:148
-#: templates/js/translated/table_filters.js:216
-#: templates/js/translated/table_filters.js:217
+#: templates/js/translated/table_filters.js:221
+#: templates/js/translated/table_filters.js:222
msgid "Serial number"
msgstr ""
#: templates/js/translated/table_filters.js:152
-#: templates/js/translated/table_filters.js:234
+#: templates/js/translated/table_filters.js:239
msgid "Batch code"
msgstr ""
#: templates/js/translated/table_filters.js:163
-#: templates/js/translated/table_filters.js:348
+#: templates/js/translated/table_filters.js:379
msgid "Active parts"
msgstr ""
@@ -8356,101 +8773,111 @@ msgid "Item has been allocated"
msgstr ""
#: templates/js/translated/table_filters.js:179
-msgid "Include stock in sublocations"
+msgid "Stock is available for use"
msgstr ""
#: templates/js/translated/table_filters.js:184
-msgid "Show stock items which are depleted"
+msgid "Include stock in sublocations"
msgstr ""
#: templates/js/translated/table_filters.js:189
-msgid "Show items which are in stock"
-msgstr ""
-
-#: templates/js/translated/table_filters.js:193
-msgid "In Production"
+msgid "Show stock items which are depleted"
msgstr ""
#: templates/js/translated/table_filters.js:194
-msgid "Show items which are in production"
+msgid "Show items which are in stock"
msgstr ""
#: templates/js/translated/table_filters.js:198
-msgid "Include Variants"
+msgid "In Production"
msgstr ""
#: templates/js/translated/table_filters.js:199
-msgid "Include stock items for variant parts"
+msgid "Show items which are in production"
msgstr ""
#: templates/js/translated/table_filters.js:203
-msgid "Installed"
+msgid "Include Variants"
msgstr ""
#: templates/js/translated/table_filters.js:204
-msgid "Show stock items which are installed in another item"
+msgid "Include stock items for variant parts"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:208
+msgid "Installed"
msgstr ""
#: templates/js/translated/table_filters.js:209
+msgid "Show stock items which are installed in another item"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:214
msgid "Show items which have been assigned to a customer"
msgstr ""
-#: templates/js/translated/table_filters.js:229
-#: templates/js/translated/table_filters.js:230
+#: templates/js/translated/table_filters.js:234
+#: templates/js/translated/table_filters.js:235
msgid "Stock status"
msgstr ""
-#: templates/js/translated/table_filters.js:238
+#: templates/js/translated/table_filters.js:243
msgid "Has purchase price"
msgstr ""
-#: templates/js/translated/table_filters.js:239
+#: templates/js/translated/table_filters.js:244
msgid "Show stock items which have a purchase price set"
msgstr ""
-#: templates/js/translated/table_filters.js:248
+#: templates/js/translated/table_filters.js:253
msgid "Show stock items which have expired"
msgstr ""
-#: templates/js/translated/table_filters.js:254
+#: templates/js/translated/table_filters.js:259
msgid "Show stock which is close to expiring"
msgstr ""
-#: templates/js/translated/table_filters.js:285
+#: templates/js/translated/table_filters.js:290
msgid "Build status"
msgstr ""
-#: templates/js/translated/table_filters.js:313
-#: templates/js/translated/table_filters.js:330
+#: templates/js/translated/table_filters.js:303
+#: templates/js/translated/table_filters.js:344
+msgid "Assigned to me"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:320
+#: templates/js/translated/table_filters.js:331
+#: templates/js/translated/table_filters.js:352
msgid "Order status"
msgstr ""
-#: templates/js/translated/table_filters.js:318
-#: templates/js/translated/table_filters.js:335
+#: templates/js/translated/table_filters.js:336
+#: templates/js/translated/table_filters.js:357
msgid "Outstanding"
msgstr ""
-#: templates/js/translated/table_filters.js:359
+#: templates/js/translated/table_filters.js:390
msgid "Include parts in subcategories"
msgstr ""
-#: templates/js/translated/table_filters.js:363
+#: templates/js/translated/table_filters.js:394
msgid "Has IPN"
msgstr "A un IPN"
-#: templates/js/translated/table_filters.js:364
+#: templates/js/translated/table_filters.js:395
msgid "Part has internal part number"
msgstr ""
-#: templates/js/translated/table_filters.js:369
+#: templates/js/translated/table_filters.js:400
msgid "Show active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:377
+#: templates/js/translated/table_filters.js:408
msgid "Stock available"
msgstr ""
-#: templates/js/translated/table_filters.js:405
+#: templates/js/translated/table_filters.js:436
msgid "Purchasable"
msgstr ""
@@ -8507,27 +8934,23 @@ msgstr ""
msgid "All"
msgstr ""
-#: templates/navbar.html:40
+#: templates/navbar.html:42
msgid "Buy"
msgstr ""
-#: templates/navbar.html:52
+#: templates/navbar.html:54
msgid "Sell"
msgstr "Ventes"
-#: templates/navbar.html:86 users/models.py:39
-msgid "Admin"
-msgstr ""
-
-#: templates/navbar.html:88
+#: templates/navbar.html:113
msgid "Logout"
msgstr ""
-#: templates/navbar.html:90
+#: templates/navbar.html:115
msgid "Login"
msgstr ""
-#: templates/navbar.html:111
+#: templates/navbar.html:136
msgid "About InvenTree"
msgstr ""
@@ -8639,15 +9062,15 @@ msgstr ""
msgid "Order selected items"
msgstr ""
-#: templates/stock_table.html:53
+#: templates/stock_table.html:54
msgid "Change status"
msgstr ""
-#: templates/stock_table.html:53
+#: templates/stock_table.html:54
msgid "Change stock status"
msgstr ""
-#: templates/stock_table.html:56
+#: templates/stock_table.html:57
msgid "Delete selected items"
msgstr ""
@@ -8683,35 +9106,35 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:187
+#: users/models.py:189
msgid "Permission set"
msgstr ""
-#: users/models.py:195
+#: users/models.py:197
msgid "Group"
msgstr ""
-#: users/models.py:198
+#: users/models.py:200
msgid "View"
msgstr ""
-#: users/models.py:198
+#: users/models.py:200
msgid "Permission to view items"
msgstr ""
-#: users/models.py:200
+#: users/models.py:202
msgid "Permission to add items"
msgstr ""
-#: users/models.py:202
+#: users/models.py:204
msgid "Change"
msgstr ""
-#: users/models.py:202
+#: users/models.py:204
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:204
+#: users/models.py:206
msgid "Permission to delete items"
msgstr ""
diff --git a/InvenTree/locale/he/LC_MESSAGES/django.po b/InvenTree/locale/he/LC_MESSAGES/django.po
index 634eb7da35..9938394fec 100644
--- a/InvenTree/locale/he/LC_MESSAGES/django.po
+++ b/InvenTree/locale/he/LC_MESSAGES/django.po
@@ -1,9 +1,10 @@
+#: templates/js/translated/order.js:1973
msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-12-03 10:37+0000\n"
-"PO-Revision-Date: 2021-12-03 11:25\n"
+"POT-Creation-Date: 2021-12-08 23:43+0000\n"
+"PO-Revision-Date: 2021-12-08 23:47\n"
"Last-Translator: \n"
"Language-Team: Hebrew\n"
"Language: he_IL\n"
@@ -34,8 +35,8 @@ msgid "Enter date"
msgstr ""
#: InvenTree/forms.py:120 build/forms.py:48 build/forms.py:69 build/forms.py:93
-#: order/forms.py:26 order/forms.py:37 order/forms.py:48 order/forms.py:59
-#: order/forms.py:70 part/forms.py:108 templates/account/email_confirm.html:20
+#: order/forms.py:24 order/forms.py:35 order/forms.py:46 order/forms.py:57
+#: part/forms.py:108 templates/account/email_confirm.html:20
#: templates/js/translated/forms.js:595
msgid "Confirm"
msgstr ""
@@ -85,8 +86,8 @@ msgstr ""
msgid "Duplicate serial: {n}"
msgstr ""
-#: InvenTree/helpers.py:437 order/models.py:318 order/models.py:440
-#: stock/views.py:1264
+#: InvenTree/helpers.py:437 order/models.py:279 order/models.py:420
+#: stock/views.py:1231
msgid "Invalid quantity provided"
msgstr ""
@@ -122,7 +123,7 @@ msgstr ""
msgid "Missing external link"
msgstr ""
-#: InvenTree/models.py:132 stock/models.py:1864
+#: InvenTree/models.py:132 stock/models.py:1852
#: templates/js/translated/attachment.js:117
msgid "Attachment"
msgstr ""
@@ -132,7 +133,7 @@ msgid "Select file to attach"
msgstr ""
#: InvenTree/models.py:139 company/models.py:131 company/models.py:348
-#: company/models.py:564 order/models.py:163 part/models.py:797
+#: company/models.py:564 order/models.py:124 part/models.py:797
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:537
#: templates/js/translated/company.js:826 templates/js/translated/part.js:1258
@@ -140,7 +141,7 @@ msgid "Link"
msgstr ""
#: InvenTree/models.py:140 build/models.py:330 part/models.py:798
-#: stock/models.py:530
+#: stock/models.py:524
msgid "Link to external URL"
msgstr ""
@@ -152,10 +153,10 @@ msgstr ""
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1185
-#: common/models.py:1186 part/models.py:2205 part/models.py:2225
+#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1213
+#: common/models.py:1214 part/models.py:2205 part/models.py:2225
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2166
+#: templates/js/translated/stock.js:2341
msgid "User"
msgstr ""
@@ -194,10 +195,15 @@ msgstr ""
#: InvenTree/models.py:277 InvenTree/models.py:278 company/models.py:415
#: label/models.py:112 part/models.py:741 part/models.py:2389
-#: report/models.py:181 templates/InvenTree/settings/settings.html:259
+#: plugin/models.py:39 report/models.py:181
+#: templates/InvenTree/settings/mixins/urls.html:11
+#: templates/InvenTree/settings/plugin.html:47
+#: templates/InvenTree/settings/plugin.html:124
+#: templates/InvenTree/settings/plugin_settings.html:23
+#: templates/InvenTree/settings/settings.html:268
#: templates/js/translated/company.js:638 templates/js/translated/part.js:506
#: templates/js/translated/part.js:643 templates/js/translated/part.js:1565
-#: templates/js/translated/stock.js:1959
+#: templates/js/translated/stock.js:2134
msgid "Name"
msgstr ""
@@ -206,22 +212,23 @@ msgstr ""
#: company/models.py:570 company/templates/company/company_base.html:68
#: company/templates/company/manufacturer_part.html:76
#: company/templates/company/supplier_part.html:73 label/models.py:119
-#: order/models.py:161 part/models.py:764 part/templates/part/category.html:70
+#: order/models.py:122 part/models.py:764 part/templates/part/category.html:70
#: part/templates/part/part_base.html:163
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:553 report/models.py:592
#: report/templates/report/inventree_build_order_base.html:118
-#: stock/templates/stock/location.html:89 templates/js/translated/bom.js:215
-#: templates/js/translated/bom.js:428 templates/js/translated/build.js:1621
-#: templates/js/translated/company.js:345
+#: stock/templates/stock/location.html:89
+#: templates/InvenTree/settings/plugin_settings.html:33
+#: templates/js/translated/bom.js:215 templates/js/translated/bom.js:428
+#: templates/js/translated/build.js:1627 templates/js/translated/company.js:345
#: templates/js/translated/company.js:548
-#: templates/js/translated/company.js:837 templates/js/translated/order.js:680
-#: templates/js/translated/order.js:854 templates/js/translated/order.js:1090
+#: templates/js/translated/company.js:837 templates/js/translated/order.js:836
+#: templates/js/translated/order.js:1019 templates/js/translated/order.js:1258
#: templates/js/translated/part.js:565 templates/js/translated/part.js:933
#: templates/js/translated/part.js:1018 templates/js/translated/part.js:1188
#: templates/js/translated/part.js:1584 templates/js/translated/part.js:1653
-#: templates/js/translated/stock.js:1233 templates/js/translated/stock.js:1971
-#: templates/js/translated/stock.js:2016
+#: templates/js/translated/stock.js:1390 templates/js/translated/stock.js:2146
+#: templates/js/translated/stock.js:2191
msgid "Description"
msgstr ""
@@ -241,83 +248,83 @@ msgstr ""
msgid "Filename"
msgstr ""
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:689
msgid "German"
msgstr ""
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:690
msgid "Greek"
msgstr ""
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:691
msgid "English"
msgstr ""
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:692
msgid "Spanish"
msgstr ""
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:693
msgid "Spanish (Mexican)"
msgstr ""
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:694
msgid "French"
msgstr ""
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:695
msgid "Hebrew"
msgstr ""
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:696
msgid "Italian"
msgstr ""
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:697
msgid "Japanese"
msgstr ""
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:698
msgid "Korean"
msgstr ""
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:699
msgid "Dutch"
msgstr ""
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:700
msgid "Norwegian"
msgstr ""
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:701
msgid "Polish"
msgstr ""
-#: InvenTree/settings.py:683
+#: InvenTree/settings.py:702
msgid "Portugese"
msgstr ""
-#: InvenTree/settings.py:684
+#: InvenTree/settings.py:703
msgid "Russian"
msgstr ""
-#: InvenTree/settings.py:685
+#: InvenTree/settings.py:704
msgid "Swedish"
msgstr ""
-#: InvenTree/settings.py:686
+#: InvenTree/settings.py:705
msgid "Thai"
msgstr ""
-#: InvenTree/settings.py:687
+#: InvenTree/settings.py:706
msgid "Turkish"
msgstr ""
-#: InvenTree/settings.py:688
+#: InvenTree/settings.py:707
msgid "Vietnamese"
msgstr ""
-#: InvenTree/settings.py:689
+#: InvenTree/settings.py:708
msgid "Chinese"
msgstr ""
@@ -334,7 +341,7 @@ msgid "InvenTree system health checks failed"
msgstr ""
#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142
-#: InvenTree/status_codes.py:311
+#: InvenTree/status_codes.py:311 templates/js/translated/table_filters.js:313
msgid "Pending"
msgstr ""
@@ -343,6 +350,8 @@ msgid "Placed"
msgstr ""
#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:314
+#: order/templates/order/order_base.html:128
+#: order/templates/order/sales_order_base.html:132
msgid "Complete"
msgstr ""
@@ -361,8 +370,8 @@ msgstr ""
msgid "Returned"
msgstr ""
-#: InvenTree/status_codes.py:143
-#: order/templates/order/sales_order_base.html:148
+#: InvenTree/status_codes.py:143 order/models.py:939
+#: templates/js/translated/order.js:1980 templates/js/translated/order.js:2255
msgid "Shipped"
msgstr ""
@@ -442,7 +451,7 @@ msgstr ""
msgid "Split child item"
msgstr ""
-#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:208
+#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:213
msgid "Sent to customer"
msgstr ""
@@ -522,55 +531,55 @@ msgstr ""
msgid "Password fields must match"
msgstr ""
-#: InvenTree/views.py:883 templates/navbar.html:101
+#: InvenTree/views.py:883 templates/navbar.html:126
msgid "System Information"
msgstr ""
-#: barcodes/api.py:53 barcodes/api.py:150
+#: barcodes/api.py:54 barcodes/api.py:151
msgid "Must provide barcode_data parameter"
msgstr ""
-#: barcodes/api.py:126
+#: barcodes/api.py:127
msgid "No match found for barcode data"
msgstr ""
-#: barcodes/api.py:128
+#: barcodes/api.py:129
msgid "Match found for barcode data"
msgstr ""
-#: barcodes/api.py:153
+#: barcodes/api.py:154
msgid "Must provide stockitem parameter"
msgstr ""
-#: barcodes/api.py:160
+#: barcodes/api.py:161
msgid "No matching stock item found"
msgstr ""
-#: barcodes/api.py:190
-msgid "Barcode already matches StockItem object"
+#: barcodes/api.py:191
+msgid "Barcode already matches Stock Item"
msgstr ""
-#: barcodes/api.py:194
-msgid "Barcode already matches StockLocation object"
+#: barcodes/api.py:195
+msgid "Barcode already matches Stock Location"
msgstr ""
-#: barcodes/api.py:198
-msgid "Barcode already matches Part object"
+#: barcodes/api.py:199
+msgid "Barcode already matches Part"
msgstr ""
-#: barcodes/api.py:204 barcodes/api.py:216
-msgid "Barcode hash already matches StockItem object"
+#: barcodes/api.py:205 barcodes/api.py:217
+msgid "Barcode hash already matches Stock Item"
msgstr ""
-#: barcodes/api.py:222
-msgid "Barcode associated with StockItem"
+#: barcodes/api.py:223
+msgid "Barcode associated with Stock Item"
msgstr ""
#: build/forms.py:36 build/models.py:1283
#: build/templates/build/build_base.html:132
-#: build/templates/build/detail.html:35 common/models.py:1225
+#: build/templates/build/detail.html:35 common/models.py:1253
#: company/forms.py:42 company/templates/company/supplier_part.html:251
-#: order/forms.py:102 order/models.py:729 order/models.py:991
+#: order/models.py:794 order/models.py:1205 order/serializers.py:810
#: order/templates/order/order_wizard/match_parts.html:30
#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:223
#: part/forms.py:239 part/forms.py:255 part/models.py:2576
@@ -582,20 +591,23 @@ msgstr ""
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:81
#: report/templates/report/inventree_test_report_base.html:139
-#: stock/forms.py:156 stock/serializers.py:291
+#: stock/forms.py:142 stock/serializers.py:293
#: stock/templates/stock/item_base.html:174
+#: stock/templates/stock/item_base.html:255
+#: stock/templates/stock/item_base.html:263
#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443
-#: templates/js/translated/build.js:235 templates/js/translated/build.js:435
-#: templates/js/translated/build.js:629 templates/js/translated/build.js:639
-#: templates/js/translated/build.js:1015 templates/js/translated/build.js:1362
+#: templates/js/translated/build.js:240 templates/js/translated/build.js:440
+#: templates/js/translated/build.js:634 templates/js/translated/build.js:644
+#: templates/js/translated/build.js:1020 templates/js/translated/build.js:1367
#: templates/js/translated/model_renderers.js:99
-#: templates/js/translated/order.js:891 templates/js/translated/order.js:1204
-#: templates/js/translated/order.js:1282 templates/js/translated/order.js:1289
-#: templates/js/translated/order.js:1378 templates/js/translated/order.js:1478
-#: templates/js/translated/part.js:843 templates/js/translated/part.js:1796
-#: templates/js/translated/part.js:1919 templates/js/translated/part.js:1997
-#: templates/js/translated/stock.js:378 templates/js/translated/stock.js:2151
-#: templates/js/translated/stock.js:2253
+#: templates/js/translated/order.js:101 templates/js/translated/order.js:1056
+#: templates/js/translated/order.js:1578 templates/js/translated/order.js:1859
+#: templates/js/translated/order.js:1947 templates/js/translated/order.js:2036
+#: templates/js/translated/order.js:2150 templates/js/translated/part.js:843
+#: templates/js/translated/part.js:1796 templates/js/translated/part.js:1919
+#: templates/js/translated/part.js:1997 templates/js/translated/stock.js:382
+#: templates/js/translated/stock.js:579 templates/js/translated/stock.js:2326
+#: templates/js/translated/stock.js:2428
msgid "Quantity"
msgstr ""
@@ -603,9 +615,9 @@ msgstr ""
msgid "Enter quantity for build output"
msgstr ""
-#: build/forms.py:41 order/forms.py:96 stock/forms.py:95
-#: stock/serializers.py:312 templates/js/translated/stock.js:225
-#: templates/js/translated/stock.js:379
+#: build/forms.py:41 order/serializers.py:814 stock/forms.py:81
+#: stock/serializers.py:314 templates/js/translated/stock.js:229
+#: templates/js/translated/stock.js:383
msgid "Serial Numbers"
msgstr ""
@@ -640,17 +652,17 @@ msgstr ""
#: build/models.py:137 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:397
+#: templates/js/translated/build.js:402
msgid "Build Order"
msgstr ""
#: build/models.py:138 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
-#: order/templates/order/sales_order_detail.html:42
-#: order/templates/order/so_sidebar.html:7
+#: order/templates/order/sales_order_detail.html:92
+#: order/templates/order/so_sidebar.html:13
#: part/templates/part/part_sidebar.html:20 templates/InvenTree/index.html:221
#: templates/InvenTree/search.html:145
-#: templates/InvenTree/settings/sidebar.html:42 users/models.py:44
+#: templates/InvenTree/settings/sidebar.html:43 users/models.py:44
msgid "Build Orders"
msgstr ""
@@ -658,13 +670,13 @@ msgstr ""
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:199 order/models.py:249 order/models.py:556
-#: order/models.py:736 part/models.py:2585
+#: build/models.py:199 order/models.py:210 order/models.py:536
+#: order/models.py:801 part/models.py:2585
#: part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1119
-#: templates/js/translated/order.js:885 templates/js/translated/order.js:1472
+#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1124
+#: templates/js/translated/order.js:1050 templates/js/translated/order.js:2144
msgid "Reference"
msgstr ""
@@ -683,7 +695,7 @@ msgstr ""
#: build/models.py:225 build/templates/build/build_base.html:77
#: build/templates/build/detail.html:30 company/models.py:705
-#: order/models.py:789 order/models.py:860
+#: order/models.py:854 order/models.py:928
#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357
#: part/models.py:2151 part/models.py:2167 part/models.py:2186
#: part/models.py:2203 part/models.py:2305 part/models.py:2427
@@ -698,14 +710,16 @@ msgstr ""
#: templates/email/build_order_required_stock.html:17
#: templates/email/low_stock_notification.html:16
#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:214
-#: templates/js/translated/bom.js:393 templates/js/translated/build.js:620
-#: templates/js/translated/build.js:988 templates/js/translated/build.js:1359
-#: templates/js/translated/build.js:1626 templates/js/translated/company.js:489
-#: templates/js/translated/company.js:746 templates/js/translated/order.js:426
-#: templates/js/translated/order.js:839 templates/js/translated/order.js:1456
-#: templates/js/translated/part.js:918 templates/js/translated/part.js:999
-#: templates/js/translated/part.js:1166 templates/js/translated/stock.js:590
-#: templates/js/translated/stock.js:1190 templates/js/translated/stock.js:2241
+#: templates/js/translated/bom.js:393 templates/js/translated/build.js:625
+#: templates/js/translated/build.js:993 templates/js/translated/build.js:1364
+#: templates/js/translated/build.js:1632 templates/js/translated/company.js:489
+#: templates/js/translated/company.js:746 templates/js/translated/order.js:84
+#: templates/js/translated/order.js:586 templates/js/translated/order.js:1004
+#: templates/js/translated/order.js:1576 templates/js/translated/order.js:1933
+#: templates/js/translated/order.js:2128 templates/js/translated/part.js:918
+#: templates/js/translated/part.js:999 templates/js/translated/part.js:1166
+#: templates/js/translated/stock.js:553 templates/js/translated/stock.js:747
+#: templates/js/translated/stock.js:1347 templates/js/translated/stock.js:2416
msgid "Part"
msgstr ""
@@ -721,7 +735,8 @@ msgstr ""
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:247 templates/js/translated/build.js:1347
+#: build/models.py:247 templates/js/translated/build.js:1352
+#: templates/js/translated/order.js:1564
msgid "Source Location"
msgstr ""
@@ -761,7 +776,7 @@ msgstr ""
msgid "Build status code"
msgstr ""
-#: build/models.py:285 stock/models.py:534
+#: build/models.py:285 stock/models.py:528
msgid "Batch Code"
msgstr ""
@@ -769,12 +784,12 @@ msgstr ""
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:292 order/models.py:165 part/models.py:936
-#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1103
+#: build/models.py:292 order/models.py:126 part/models.py:936
+#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1271
msgid "Creation Date"
msgstr ""
-#: build/models.py:296 order/models.py:578
+#: build/models.py:296 order/models.py:558
msgid "Target completion date"
msgstr ""
@@ -782,8 +797,8 @@ msgstr ""
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/models.py:300 order/models.py:291
-#: templates/js/translated/build.js:1697
+#: build/models.py:300 order/models.py:252
+#: templates/js/translated/build.js:1703
msgid "Completion Date"
msgstr ""
@@ -791,7 +806,7 @@ msgstr ""
msgid "completed by"
msgstr ""
-#: build/models.py:314 templates/js/translated/build.js:1668
+#: build/models.py:314 templates/js/translated/build.js:1674
msgid "Issued by"
msgstr ""
@@ -800,11 +815,11 @@ msgid "User who issued this build order"
msgstr ""
#: build/models.py:323 build/templates/build/build_base.html:185
-#: build/templates/build/detail.html:116 order/models.py:179
-#: order/templates/order/order_base.html:158
-#: order/templates/order/sales_order_base.html:162 part/models.py:940
+#: build/templates/build/detail.html:116 order/models.py:140
+#: order/templates/order/order_base.html:170
+#: order/templates/order/sales_order_base.html:182 part/models.py:940
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:1680 templates/js/translated/order.js:699
+#: templates/js/translated/build.js:1686 templates/js/translated/order.js:864
msgid "Responsible"
msgstr ""
@@ -815,7 +830,7 @@ msgstr ""
#: build/models.py:329 build/templates/build/detail.html:102
#: company/templates/company/manufacturer_part.html:102
#: company/templates/company/supplier_part.html:126
-#: part/templates/part/part_base.html:354 stock/models.py:528
+#: part/templates/part/part_base.html:354 stock/models.py:522
#: stock/templates/stock/item_base.html:374
msgid "External Link"
msgstr ""
@@ -823,18 +838,19 @@ msgstr ""
#: build/models.py:334 build/serializers.py:201
#: build/templates/build/sidebar.html:21 company/models.py:142
#: company/models.py:577 company/templates/company/sidebar.html:25
-#: order/models.py:183 order/models.py:738
+#: order/models.py:144 order/models.py:803 order/models.py:1049
#: order/templates/order/po_sidebar.html:11
-#: order/templates/order/so_sidebar.html:11 part/models.py:925
+#: order/templates/order/so_sidebar.html:17 part/models.py:925
#: part/templates/part/detail.html:116 part/templates/part/part_sidebar.html:50
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/forms.py:154 stock/forms.py:204 stock/forms.py:238 stock/models.py:600
-#: stock/models.py:1764 stock/models.py:1870 stock/serializers.py:330
-#: stock/serializers.py:588 stock/templates/stock/stock_sidebar.html:21
+#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:594
+#: stock/models.py:1752 stock/models.py:1858 stock/serializers.py:332
+#: stock/serializers.py:624 stock/serializers.py:711
+#: stock/templates/stock/stock_sidebar.html:21
#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599
-#: templates/js/translated/company.js:842 templates/js/translated/order.js:984
-#: templates/js/translated/order.js:1582 templates/js/translated/stock.js:973
-#: templates/js/translated/stock.js:1452
+#: templates/js/translated/company.js:842 templates/js/translated/order.js:1149
+#: templates/js/translated/order.js:1445 templates/js/translated/order.js:2280
+#: templates/js/translated/stock.js:1130 templates/js/translated/stock.js:1616
msgid "Notes"
msgstr ""
@@ -867,7 +883,7 @@ msgstr ""
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1133 order/models.py:964
+#: build/models.py:1133 order/models.py:1165
msgid "Allocation quantity must be greater than zero"
msgstr ""
@@ -880,8 +896,8 @@ msgid "Selected stock item not found in BOM"
msgstr ""
#: build/models.py:1253 stock/templates/stock/item_base.html:346
-#: templates/InvenTree/search.html:143 templates/js/translated/build.js:1599
-#: templates/navbar.html:33
+#: templates/InvenTree/search.html:143 templates/js/translated/build.js:1605
+#: templates/navbar.html:35
msgid "Build"
msgstr ""
@@ -889,14 +905,17 @@ msgstr ""
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1270 build/serializers.py:328
+#: build/models.py:1270 build/serializers.py:328 order/serializers.py:690
+#: order/serializers.py:708 stock/serializers.py:562
#: stock/templates/stock/item_base.html:8
#: stock/templates/stock/item_base.html:16
#: stock/templates/stock/item_base.html:368
-#: templates/js/translated/build.js:408 templates/js/translated/build.js:413
-#: templates/js/translated/build.js:1361 templates/js/translated/build.js:1742
-#: templates/js/translated/order.js:1177 templates/js/translated/order.js:1182
-#: templates/js/translated/stock.js:2102
+#: templates/js/translated/build.js:413 templates/js/translated/build.js:418
+#: templates/js/translated/build.js:1366 templates/js/translated/build.js:1748
+#: templates/js/translated/order.js:85 templates/js/translated/order.js:1577
+#: templates/js/translated/order.js:1832 templates/js/translated/order.js:1837
+#: templates/js/translated/order.js:1940 templates/js/translated/order.js:2030
+#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:2277
msgid "Stock Item"
msgstr ""
@@ -936,16 +955,17 @@ msgstr ""
msgid "This build output is not fully allocated"
msgstr ""
-#: build/serializers.py:190 order/serializers.py:228 order/serializers.py:296
-#: stock/forms.py:236 stock/serializers.py:323 stock/serializers.py:690
+#: build/serializers.py:190 order/serializers.py:226 order/serializers.py:294
+#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:813
#: stock/templates/stock/item_base.html:314
#: templates/js/translated/barcode.js:384
-#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:420
-#: templates/js/translated/build.js:1027 templates/js/translated/order.js:348
-#: templates/js/translated/order.js:1189 templates/js/translated/order.js:1297
-#: templates/js/translated/order.js:1303 templates/js/translated/part.js:177
-#: templates/js/translated/stock.js:592 templates/js/translated/stock.js:1333
-#: templates/js/translated/stock.js:2043
+#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:425
+#: templates/js/translated/build.js:1032 templates/js/translated/order.js:508
+#: templates/js/translated/order.js:1844 templates/js/translated/order.js:1955
+#: templates/js/translated/order.js:1963 templates/js/translated/order.js:2044
+#: templates/js/translated/part.js:177 templates/js/translated/stock.js:555
+#: templates/js/translated/stock.js:749 templates/js/translated/stock.js:1497
+#: templates/js/translated/stock.js:2218
msgid "Location"
msgstr ""
@@ -954,12 +974,12 @@ msgid "Location for completed build outputs"
msgstr ""
#: build/serializers.py:197 build/templates/build/build_base.html:137
-#: build/templates/build/detail.html:63 order/models.py:572
-#: order/serializers.py:249 stock/templates/stock/item_base.html:180
-#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1655
-#: templates/js/translated/order.js:431 templates/js/translated/order.js:1095
-#: templates/js/translated/stock.js:1308 templates/js/translated/stock.js:2120
-#: templates/js/translated/stock.js:2269
+#: build/templates/build/detail.html:63 order/models.py:552
+#: order/serializers.py:247 stock/templates/stock/item_base.html:180
+#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1661
+#: templates/js/translated/order.js:591 templates/js/translated/order.js:840
+#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1472
+#: templates/js/translated/stock.js:2295 templates/js/translated/stock.js:2444
msgid "Status"
msgstr ""
@@ -984,16 +1004,16 @@ msgstr ""
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:334
+#: build/serializers.py:334 stock/serializers.py:569
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:348 order/models.py:316 order/serializers.py:242
-#: stock/models.py:371 stock/models.py:1093 stock/serializers.py:303
+#: build/serializers.py:348 order/models.py:277 order/serializers.py:240
+#: stock/models.py:365 stock/models.py:1081 stock/serializers.py:305
msgid "Quantity must be greater than zero"
msgstr ""
-#: build/serializers.py:390
+#: build/serializers.py:390 order/serializers.py:741
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
@@ -1006,7 +1026,7 @@ msgstr ""
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:431
+#: build/serializers.py:431 order/serializers.py:984
msgid "Allocation items must be provided"
msgstr ""
@@ -1079,11 +1099,11 @@ msgstr ""
#: build/templates/build/build_base.html:146
#: build/templates/build/detail.html:132
-#: order/templates/order/order_base.html:144
-#: order/templates/order/sales_order_base.html:141
+#: order/templates/order/order_base.html:156
+#: order/templates/order/sales_order_base.html:163
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:1692 templates/js/translated/order.js:689
-#: templates/js/translated/order.js:1108
+#: templates/js/translated/build.js:1698 templates/js/translated/order.js:854
+#: templates/js/translated/order.js:1276
msgid "Target Date"
msgstr ""
@@ -1096,28 +1116,28 @@ msgstr ""
#: build/templates/build/build_base.html:196
#: order/templates/order/order_base.html:98
#: order/templates/order/sales_order_base.html:93
-#: templates/js/translated/table_filters.js:294
-#: templates/js/translated/table_filters.js:322
-#: templates/js/translated/table_filters.js:339
+#: templates/js/translated/table_filters.js:299
+#: templates/js/translated/table_filters.js:340
+#: templates/js/translated/table_filters.js:361
msgid "Overdue"
msgstr ""
#: build/templates/build/build_base.html:158
#: build/templates/build/detail.html:68 build/templates/build/detail.html:143
-#: templates/js/translated/build.js:1641
-#: templates/js/translated/table_filters.js:304
+#: order/templates/order/sales_order_base.html:170
+#: templates/js/translated/build.js:1647
+#: templates/js/translated/table_filters.js:370
msgid "Completed"
msgstr ""
#: build/templates/build/build_base.html:171
-#: build/templates/build/detail.html:95 order/models.py:857
-#: order/templates/order/sales_order_base.html:9
+#: build/templates/build/detail.html:95 order/models.py:925
+#: order/models.py:1021 order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
-#: order/templates/order/sales_order_ship.html:25
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:308
-#: templates/js/translated/order.js:1050
+#: templates/js/translated/order.js:1218
msgid "Sales Order"
msgstr ""
@@ -1191,8 +1211,8 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:50 order/models.py:811 stock/forms.py:150
-#: templates/js/translated/order.js:432 templates/js/translated/order.js:973
+#: build/templates/build/detail.html:50 order/models.py:876 stock/forms.py:136
+#: templates/js/translated/order.js:592 templates/js/translated/order.js:1138
msgid "Destination"
msgstr ""
@@ -1200,22 +1220,22 @@ msgstr ""
msgid "Destination location not specified"
msgstr ""
-#: build/templates/build/detail.html:74 templates/js/translated/build.js:647
+#: build/templates/build/detail.html:74 templates/js/translated/build.js:652
msgid "Allocated Parts"
msgstr ""
#: build/templates/build/detail.html:81
#: stock/templates/stock/item_base.html:332
-#: templates/js/translated/stock.js:1322 templates/js/translated/stock.js:2276
+#: templates/js/translated/stock.js:1486 templates/js/translated/stock.js:2451
#: templates/js/translated/table_filters.js:151
-#: templates/js/translated/table_filters.js:233
+#: templates/js/translated/table_filters.js:238
msgid "Batch"
msgstr ""
#: build/templates/build/detail.html:127
-#: order/templates/order/order_base.html:131
-#: order/templates/order/sales_order_base.html:135
-#: templates/js/translated/build.js:1663
+#: order/templates/order/order_base.html:143
+#: order/templates/order/sales_order_base.html:157
+#: templates/js/translated/build.js:1669
msgid "Created"
msgstr ""
@@ -1235,7 +1255,7 @@ msgstr ""
msgid "Allocate Stock to Build"
msgstr ""
-#: build/templates/build/detail.html:177 templates/js/translated/build.js:1202
+#: build/templates/build/detail.html:177 templates/js/translated/build.js:1207
msgid "Unallocate stock"
msgstr ""
@@ -1257,7 +1277,7 @@ msgstr ""
#: build/templates/build/detail.html:185
#: company/templates/company/detail.html:38
-#: company/templates/company/detail.html:85 order/views.py:509
+#: company/templates/company/detail.html:85 order/views.py:463
#: part/templates/part/category.html:173
msgid "Order Parts"
msgstr ""
@@ -1309,8 +1329,8 @@ msgstr ""
#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:60
-#: order/templates/order/sales_order_detail.html:52
-#: order/templates/order/so_sidebar.html:9 part/templates/part/detail.html:193
+#: order/templates/order/sales_order_detail.html:107
+#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:193
#: part/templates/part/part_sidebar.html:48 stock/templates/stock/item.html:95
#: stock/templates/stock/stock_sidebar.html:19
msgid "Attachments"
@@ -1325,8 +1345,8 @@ msgstr ""
#: company/templates/company/detail.html:215
#: order/templates/order/purchase_order_detail.html:80
#: order/templates/order/purchase_order_detail.html:108
-#: order/templates/order/sales_order_detail.html:72
-#: order/templates/order/sales_order_detail.html:99
+#: order/templates/order/sales_order_detail.html:127
+#: order/templates/order/sales_order_detail.html:186
#: part/templates/part/detail.html:120 stock/templates/stock/item.html:115
#: stock/templates/stock/item.html:205
msgid "Edit Notes"
@@ -1384,7 +1404,7 @@ msgstr ""
msgid "Maximum output quantity is "
msgstr ""
-#: build/views.py:122 stock/serializers.py:361 stock/views.py:1290
+#: build/views.py:122 stock/serializers.py:363 stock/views.py:1257
msgid "Serial numbers already exist"
msgstr ""
@@ -1400,7 +1420,7 @@ msgstr ""
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:219 stock/views.py:385
+#: build/views.py:219 stock/views.py:352
msgid "Check the confirmation box"
msgstr ""
@@ -1469,7 +1489,7 @@ msgstr ""
msgid "Select {name} file to upload"
msgstr ""
-#: common/models.py:340 common/models.py:970 common/models.py:1178
+#: common/models.py:340 common/models.py:998 common/models.py:1206
msgid "Settings key (must be unique - case insensitive"
msgstr ""
@@ -1557,7 +1577,7 @@ msgstr ""
msgid "Allow download of remote images and files from external URL"
msgstr ""
-#: common/models.py:649 templates/InvenTree/settings/sidebar.html:30
+#: common/models.py:649 templates/InvenTree/settings/sidebar.html:31
msgid "Barcode Support"
msgstr ""
@@ -1623,7 +1643,7 @@ msgstr ""
#: common/models.py:703 part/models.py:2429 report/models.py:187
#: templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:373
+#: templates/js/translated/table_filters.js:404
msgid "Template"
msgstr ""
@@ -1633,7 +1653,7 @@ msgstr ""
#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:956
#: templates/js/translated/table_filters.js:168
-#: templates/js/translated/table_filters.js:385
+#: templates/js/translated/table_filters.js:416
msgid "Assembly"
msgstr ""
@@ -1642,7 +1662,7 @@ msgid "Parts can be assembled from other components by default"
msgstr ""
#: common/models.py:717 part/models.py:894
-#: templates/js/translated/table_filters.js:389
+#: templates/js/translated/table_filters.js:420
msgid "Component"
msgstr ""
@@ -1659,7 +1679,7 @@ msgid "Parts are purchaseable by default"
msgstr ""
#: common/models.py:731 part/models.py:910
-#: templates/js/translated/table_filters.js:397
+#: templates/js/translated/table_filters.js:428
msgid "Salable"
msgstr ""
@@ -1670,7 +1690,7 @@ msgstr ""
#: common/models.py:738 part/models.py:900
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:100
-#: templates/js/translated/table_filters.js:401
+#: templates/js/translated/table_filters.js:432
msgid "Trackable"
msgstr ""
@@ -1932,230 +1952,262 @@ msgstr ""
msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:1001
+#: common/models.py:961
+msgid "Enable URL integration"
+msgstr ""
+
+#: common/models.py:962
+msgid "Enable plugins to add URL routes"
+msgstr ""
+
+#: common/models.py:968
+msgid "Enable navigation integration"
+msgstr ""
+
+#: common/models.py:969
+msgid "Enable plugins to integrate into navigation"
+msgstr ""
+
+#: common/models.py:975
+msgid "Enable global setting integration"
+msgstr ""
+
+#: common/models.py:976
+msgid "Enable plugins to integrate into inventree global settings"
+msgstr ""
+
+#: common/models.py:982
+msgid "Enable app integration"
+msgstr ""
+
+#: common/models.py:983
+msgid "Enable plugins to add apps"
+msgstr ""
+
+#: common/models.py:1029
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:1002
+#: common/models.py:1030
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:1007
+#: common/models.py:1035
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:1008
+#: common/models.py:1036
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:1013
+#: common/models.py:1041
msgid "Show latest parts"
msgstr ""
-#: common/models.py:1014
+#: common/models.py:1042
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:1019
+#: common/models.py:1047
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:1020
+#: common/models.py:1048
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:1026
+#: common/models.py:1054
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1027
+#: common/models.py:1055
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1032
+#: common/models.py:1060
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:1033
+#: common/models.py:1061
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:1038
+#: common/models.py:1066
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:1039
+#: common/models.py:1067
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:1044
+#: common/models.py:1072
msgid "Show low stock"
msgstr ""
-#: common/models.py:1045
+#: common/models.py:1073
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:1050
+#: common/models.py:1078
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:1051
+#: common/models.py:1079
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:1056
+#: common/models.py:1084
msgid "Show needed stock"
msgstr ""
-#: common/models.py:1057
+#: common/models.py:1085
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1062
+#: common/models.py:1090
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1063
+#: common/models.py:1091
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1068
+#: common/models.py:1096
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1069
+#: common/models.py:1097
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1074
+#: common/models.py:1102
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1075
+#: common/models.py:1103
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:1080
+#: common/models.py:1108
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:1081
+#: common/models.py:1109
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:1086
+#: common/models.py:1114
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:1087
+#: common/models.py:1115
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:1092
+#: common/models.py:1120
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:1093
+#: common/models.py:1121
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:1098
+#: common/models.py:1126
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:1099
+#: common/models.py:1127
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:1104
+#: common/models.py:1132
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:1105
+#: common/models.py:1133
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:1111
+#: common/models.py:1139
msgid "Inline label display"
msgstr ""
-#: common/models.py:1112
+#: common/models.py:1140
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1118
+#: common/models.py:1146
msgid "Inline report display"
msgstr ""
-#: common/models.py:1119
+#: common/models.py:1147
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1125
+#: common/models.py:1153
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:1126
+#: common/models.py:1154
msgid "Number of results to show in search preview window"
msgstr ""
-#: common/models.py:1132
+#: common/models.py:1160
msgid "Search Show Stock"
msgstr ""
-#: common/models.py:1133
+#: common/models.py:1161
msgid "Display stock levels in search preview window"
msgstr ""
-#: common/models.py:1139
+#: common/models.py:1167
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:1140
+#: common/models.py:1168
msgid "Hide inactive parts in search preview window"
msgstr ""
-#: common/models.py:1146
+#: common/models.py:1174
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:1147
+#: common/models.py:1175
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:1153
+#: common/models.py:1181
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1154
+#: common/models.py:1182
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1160
+#: common/models.py:1188
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:1161
+#: common/models.py:1189
msgid "InvenTree navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:1226 company/forms.py:43
+#: common/models.py:1254 company/forms.py:43
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1233 company/serializers.py:264
+#: common/models.py:1261 company/serializers.py:264
#: company/templates/company/supplier_part.html:256
#: templates/js/translated/part.js:852 templates/js/translated/part.js:1801
msgid "Price"
msgstr ""
-#: common/models.py:1234
+#: common/models.py:1262
msgid "Unit price at specified quantity"
msgstr ""
#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49
-#: order/templates/order/purchase_order_detail.html:24 order/views.py:289
+#: order/templates/order/purchase_order_detail.html:24 order/views.py:243
#: part/templates/part/bom_upload/upload_file.html:52
#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:212
#: part/views.py:858
@@ -2163,7 +2215,7 @@ msgid "Upload File"
msgstr ""
#: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52
-#: order/views.py:290 part/templates/part/bom_upload/match_fields.html:52
+#: order/views.py:244 part/templates/part/bom_upload/match_fields.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:45
#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:213
#: part/views.py:859
@@ -2195,6 +2247,7 @@ msgid "Previous Step"
msgstr ""
#: company/forms.py:24 part/forms.py:46
+#: templates/InvenTree/settings/mixins/urls.html:12
msgid "URL"
msgstr ""
@@ -2211,6 +2264,7 @@ msgid "Description of the company"
msgstr ""
#: company/models.py:112 company/templates/company/company_base.html:97
+#: templates/InvenTree/settings/plugin_settings.html:55
#: templates/js/translated/company.js:349
msgid "Website"
msgstr ""
@@ -2285,7 +2339,7 @@ msgid "Does this company manufacture parts?"
msgstr ""
#: company/models.py:152 company/serializers.py:270
-#: company/templates/company/company_base.html:103 stock/serializers.py:177
+#: company/templates/company/company_base.html:103 stock/serializers.py:179
msgid "Currency"
msgstr ""
@@ -2293,12 +2347,12 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:320 company/models.py:535 stock/models.py:474
+#: company/models.py:320 company/models.py:535 stock/models.py:468
#: stock/templates/stock/item_base.html:135
msgid "Base Part"
msgstr ""
-#: company/models.py:324 company/models.py:539 order/views.py:912
+#: company/models.py:324 company/models.py:539
msgid "Select part"
msgstr ""
@@ -2319,7 +2373,7 @@ msgstr ""
#: company/models.py:342 company/templates/company/manufacturer_part.html:96
#: company/templates/company/supplier_part.html:105
#: templates/js/translated/company.js:530
-#: templates/js/translated/company.js:815 templates/js/translated/order.js:873
+#: templates/js/translated/company.js:815 templates/js/translated/order.js:1038
#: templates/js/translated/part.js:243 templates/js/translated/part.js:832
msgid "MPN"
msgstr ""
@@ -2349,8 +2403,8 @@ msgstr ""
#: company/models.py:422
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:1857 templates/js/translated/company.js:644
-#: templates/js/translated/part.js:652 templates/js/translated/stock.js:960
+#: stock/models.py:1845 templates/js/translated/company.js:644
+#: templates/js/translated/part.js:652 templates/js/translated/stock.js:1117
msgid "Value"
msgstr ""
@@ -2360,7 +2414,7 @@ msgstr ""
#: company/models.py:429 part/models.py:882 part/models.py:2397
#: part/templates/part/part_base.html:288
-#: templates/InvenTree/settings/settings.html:264
+#: templates/InvenTree/settings/settings.html:273
#: templates/js/translated/company.js:650 templates/js/translated/part.js:658
msgid "Units"
msgstr ""
@@ -2374,12 +2428,12 @@ msgid "Linked manufacturer part must reference the same base part"
msgstr ""
#: company/models.py:545 company/templates/company/company_base.html:78
-#: company/templates/company/supplier_part.html:87 order/models.py:263
+#: company/templates/company/supplier_part.html:87 order/models.py:224
#: order/templates/order/order_base.html:112
#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219
#: part/bom.py:247 stock/templates/stock/item_base.html:398
#: templates/js/translated/company.js:337
-#: templates/js/translated/company.js:771 templates/js/translated/order.js:667
+#: templates/js/translated/company.js:771 templates/js/translated/order.js:823
#: templates/js/translated/part.js:213 templates/js/translated/part.js:800
msgid "Supplier"
msgstr ""
@@ -2389,7 +2443,7 @@ msgid "Select supplier"
msgstr ""
#: company/models.py:551 company/templates/company/supplier_part.html:91
-#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:860
+#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:1025
#: templates/js/translated/part.js:224 templates/js/translated/part.js:818
msgid "SKU"
msgstr ""
@@ -2425,8 +2479,8 @@ msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:582 company/templates/company/supplier_part.html:112
-#: stock/models.py:497 stock/templates/stock/item_base.html:339
-#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1448
+#: stock/models.py:491 stock/templates/stock/item_base.html:339
+#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1612
msgid "Packaging"
msgstr ""
@@ -2457,7 +2511,7 @@ msgid "Company"
msgstr ""
#: company/templates/company/company_base.html:22
-#: templates/js/translated/order.js:121
+#: templates/js/translated/order.js:279
msgid "Create Purchase Order"
msgstr ""
@@ -2493,11 +2547,12 @@ msgstr ""
msgid "Download image from URL"
msgstr ""
-#: company/templates/company/company_base.html:83 order/models.py:567
-#: order/templates/order/sales_order_base.html:115 stock/models.py:515
-#: stock/models.py:516 stock/templates/stock/item_base.html:291
-#: templates/js/translated/company.js:329 templates/js/translated/order.js:1072
-#: templates/js/translated/stock.js:2084
+#: company/templates/company/company_base.html:83 order/models.py:547
+#: order/templates/order/sales_order_base.html:115 stock/models.py:509
+#: stock/models.py:510 stock/serializers.py:610
+#: stock/templates/stock/item_base.html:291
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1240
+#: templates/js/translated/stock.js:2259
msgid "Customer"
msgstr ""
@@ -2580,7 +2635,7 @@ msgstr ""
#: order/templates/order/purchase_orders.html:12
#: part/templates/part/detail.html:64 part/templates/part/part_sidebar.html:33
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:203
-#: templates/InvenTree/settings/sidebar.html:44 templates/navbar.html:45
+#: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47
#: users/models.py:45
msgid "Purchase Orders"
msgstr ""
@@ -2602,7 +2657,7 @@ msgstr ""
#: order/templates/order/sales_orders.html:15
#: part/templates/part/detail.html:87 part/templates/part/part_sidebar.html:37
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:223
-#: templates/InvenTree/settings/sidebar.html:46 templates/navbar.html:56
+#: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58
#: users/models.py:46
msgid "Sales Orders"
msgstr ""
@@ -2618,7 +2673,7 @@ msgid "New Sales Order"
msgstr ""
#: company/templates/company/detail.html:168
-#: templates/js/translated/build.js:999
+#: templates/js/translated/build.js:1004
msgid "Assigned Stock"
msgstr ""
@@ -2644,7 +2699,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:14 company/views.py:55
#: part/templates/part/prices.html:167 templates/InvenTree/search.html:184
-#: templates/navbar.html:44
+#: templates/navbar.html:46
msgid "Manufacturers"
msgstr ""
@@ -2673,7 +2728,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:114
#: company/templates/company/supplier_part.html:15 company/views.py:49
#: part/templates/part/part_sidebar.html:31 part/templates/part/prices.html:163
-#: templates/InvenTree/search.html:194 templates/navbar.html:43
+#: templates/InvenTree/search.html:194 templates/navbar.html:45
msgid "Suppliers"
msgstr ""
@@ -2687,7 +2742,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:254
#: part/templates/part/detail.html:344 part/templates/part/detail.html:372
#: templates/js/translated/company.js:425 templates/js/translated/helpers.js:31
-#: users/models.py:204
+#: users/models.py:206
msgid "Delete"
msgstr ""
@@ -2739,9 +2794,9 @@ msgid "Assigned Stock Items"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:482
+#: company/templates/company/supplier_part.html:24 stock/models.py:476
#: stock/templates/stock/item_base.html:403
-#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1405
+#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1569
msgid "Supplier Part"
msgstr ""
@@ -2767,7 +2822,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:142
#: part/templates/part/detail.html:21 stock/templates/stock/location.html:163
-#: templates/js/translated/stock.js:355
+#: templates/js/translated/stock.js:359
msgid "New Stock Item"
msgstr ""
@@ -2817,11 +2872,11 @@ msgstr ""
#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:14
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:156
-#: templates/InvenTree/settings/sidebar.html:40
+#: templates/InvenTree/settings/sidebar.html:41
#: templates/js/translated/bom.js:216 templates/js/translated/part.js:434
#: templates/js/translated/part.js:569 templates/js/translated/part.js:1059
-#: templates/js/translated/part.js:1220 templates/js/translated/stock.js:591
-#: templates/js/translated/stock.js:1244 templates/navbar.html:26
+#: templates/js/translated/part.js:1220 templates/js/translated/stock.js:748
+#: templates/js/translated/stock.js:1401 templates/navbar.html:28
msgid "Stock"
msgstr ""
@@ -2844,7 +2899,7 @@ msgstr ""
#: stock/templates/stock/location.html:147
#: stock/templates/stock/location.html:159
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1983
+#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:2158
#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
msgid "Stock Items"
msgstr ""
@@ -2858,7 +2913,7 @@ msgid "New Manufacturer"
msgstr ""
#: company/views.py:61 templates/InvenTree/search.html:214
-#: templates/navbar.html:55
+#: templates/navbar.html:57
msgid "Customers"
msgstr ""
@@ -2960,284 +3015,374 @@ msgstr ""
msgid "Part query filters (comma-separated value of key=value pairs)"
msgstr ""
-#: order/forms.py:26 order/templates/order/order_base.html:52
+#: order/forms.py:24 order/templates/order/order_base.html:52
msgid "Place order"
msgstr ""
-#: order/forms.py:37 order/templates/order/order_base.html:60
+#: order/forms.py:35 order/templates/order/order_base.html:60
msgid "Mark order as complete"
msgstr ""
-#: order/forms.py:48 order/forms.py:59 order/templates/order/order_base.html:47
+#: order/forms.py:46 order/forms.py:57 order/templates/order/order_base.html:47
#: order/templates/order/sales_order_base.html:60
msgid "Cancel order"
msgstr ""
-#: order/forms.py:70
-msgid "Ship order"
-msgstr ""
-
-#: order/forms.py:98
-msgid "Enter stock item serial numbers"
-msgstr ""
-
-#: order/forms.py:104
-msgid "Enter quantity of stock items"
-msgstr ""
-
-#: order/models.py:161
+#: order/models.py:122
msgid "Order description"
msgstr ""
-#: order/models.py:163
+#: order/models.py:124
msgid "Link to external page"
msgstr ""
-#: order/models.py:171
+#: order/models.py:132
msgid "Created By"
msgstr ""
-#: order/models.py:178
+#: order/models.py:139
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:183
+#: order/models.py:144
msgid "Order notes"
msgstr ""
-#: order/models.py:250 order/models.py:557
+#: order/models.py:211 order/models.py:537
msgid "Order reference"
msgstr ""
-#: order/models.py:255 order/models.py:572
+#: order/models.py:216 order/models.py:552
msgid "Purchase order status"
msgstr ""
-#: order/models.py:264
+#: order/models.py:225
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:267 order/templates/order/order_base.html:118
-#: templates/js/translated/order.js:676
+#: order/models.py:228 order/templates/order/order_base.html:118
+#: templates/js/translated/order.js:832
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:267
+#: order/models.py:228
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:274
+#: order/models.py:235
msgid "received by"
msgstr ""
-#: order/models.py:279
+#: order/models.py:240
msgid "Issue Date"
msgstr ""
-#: order/models.py:280
+#: order/models.py:241
msgid "Date order was issued"
msgstr ""
-#: order/models.py:285
+#: order/models.py:246
msgid "Target Delivery Date"
msgstr ""
-#: order/models.py:286
+#: order/models.py:247
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:292
+#: order/models.py:253
msgid "Date order was completed"
msgstr ""
-#: order/models.py:321
+#: order/models.py:282
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:431
+#: order/models.py:411
msgid "Quantity must be an integer"
msgstr ""
-#: order/models.py:435
+#: order/models.py:415
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:568
+#: order/models.py:548
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:574
+#: order/models.py:554
msgid "Customer Reference "
msgstr ""
-#: order/models.py:574
+#: order/models.py:554
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:579
+#: order/models.py:559
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:582 templates/js/translated/order.js:1113
+#: order/models.py:562 order/models.py:1026
+#: templates/js/translated/order.js:1281 templates/js/translated/order.js:1429
msgid "Shipment Date"
msgstr ""
-#: order/models.py:589
+#: order/models.py:569
msgid "shipped by"
msgstr ""
-#: order/models.py:633
-msgid "SalesOrder cannot be shipped as it is not currently pending"
+#: order/models.py:634
+msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:730
+#: order/models.py:639
+msgid "Only a pending order can be marked as complete"
+msgstr ""
+
+#: order/models.py:643
+msgid "Order cannot be completed as there are incomplete shipments"
+msgstr ""
+
+#: order/models.py:647
+msgid "Order cannot be completed as there are incomplete line items"
+msgstr ""
+
+#: order/models.py:795
msgid "Item quantity"
msgstr ""
-#: order/models.py:736
+#: order/models.py:801
msgid "Line item reference"
msgstr ""
-#: order/models.py:738
+#: order/models.py:803
msgid "Line item notes"
msgstr ""
-#: order/models.py:768 order/models.py:856
-#: templates/js/translated/order.js:1165
+#: order/models.py:833 order/models.py:924 order/models.py:1020
+#: templates/js/translated/order.js:1820
msgid "Order"
msgstr ""
-#: order/models.py:769 order/templates/order/order_base.html:9
+#: order/models.py:834 order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:353
-#: templates/js/translated/order.js:638 templates/js/translated/part.js:775
-#: templates/js/translated/stock.js:1382 templates/js/translated/stock.js:2065
+#: templates/js/translated/order.js:801 templates/js/translated/part.js:775
+#: templates/js/translated/stock.js:1546 templates/js/translated/stock.js:2240
msgid "Purchase Order"
msgstr ""
-#: order/models.py:790
+#: order/models.py:855
msgid "Supplier part"
msgstr ""
-#: order/models.py:797 order/templates/order/order_base.html:151
-#: order/templates/order/sales_order_base.html:155
-#: templates/js/translated/order.js:429 templates/js/translated/order.js:953
+#: order/models.py:862 order/templates/order/order_base.html:163
+#: templates/js/translated/order.js:589 templates/js/translated/order.js:1118
#: templates/js/translated/part.js:847 templates/js/translated/part.js:873
+#: templates/js/translated/table_filters.js:317
msgid "Received"
msgstr ""
-#: order/models.py:798
+#: order/models.py:863
msgid "Number of items received"
msgstr ""
-#: order/models.py:805 part/templates/part/prices.html:176 stock/models.py:609
-#: stock/serializers.py:168 stock/templates/stock/item_base.html:360
-#: templates/js/translated/stock.js:1436
+#: order/models.py:870 part/templates/part/prices.html:176 stock/models.py:603
+#: stock/serializers.py:170 stock/templates/stock/item_base.html:360
+#: templates/js/translated/stock.js:1600
msgid "Purchase Price"
msgstr ""
-#: order/models.py:806
+#: order/models.py:871
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:814
+#: order/models.py:879
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:866 part/templates/part/part_pricing.html:112
+#: order/models.py:934 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:116 part/templates/part/prices.html:284
msgid "Sale Price"
msgstr ""
-#: order/models.py:867
+#: order/models.py:935
msgid "Unit sale price"
msgstr ""
-#: order/models.py:946 order/models.py:948
+#: order/models.py:940
+msgid "Shipped quantity"
+msgstr ""
+
+#: order/models.py:1027
+msgid "Date of shipment"
+msgstr ""
+
+#: order/models.py:1034
+msgid "Checked By"
+msgstr ""
+
+#: order/models.py:1035
+msgid "User who checked this shipment"
+msgstr ""
+
+#: order/models.py:1043
+msgid "Shipment number"
+msgstr ""
+
+#: order/models.py:1050
+msgid "Shipment notes"
+msgstr ""
+
+#: order/models.py:1057
+msgid "Tracking Number"
+msgstr ""
+
+#: order/models.py:1058
+msgid "Shipment tracking information"
+msgstr ""
+
+#: order/models.py:1068
+msgid "Shipment has already been sent"
+msgstr ""
+
+#: order/models.py:1071
+msgid "Shipment has no allocated stock items"
+msgstr ""
+
+#: order/models.py:1147 order/models.py:1149
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:952
+#: order/models.py:1153
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:954
+#: order/models.py:1155
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:957
+#: order/models.py:1158
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:961
+#: order/models.py:1162
msgid "StockItem is over-allocated"
msgstr ""
-#: order/models.py:967
+#: order/models.py:1168 order/serializers.py:734
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:975
+#: order/models.py:1171
+msgid "Sales order does not match shipment"
+msgstr ""
+
+#: order/models.py:1172
+msgid "Shipment does not match sales order"
+msgstr ""
+
+#: order/models.py:1180
msgid "Line"
msgstr ""
-#: order/models.py:987
+#: order/models.py:1188 order/serializers.py:825 order/serializers.py:953
+#: templates/js/translated/model_renderers.js:251
+msgid "Shipment"
+msgstr ""
+
+#: order/models.py:1189
+msgid "Sales order shipment reference"
+msgstr ""
+
+#: order/models.py:1201
msgid "Item"
msgstr ""
-#: order/models.py:988
+#: order/models.py:1202
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:991
+#: order/models.py:1205
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/serializers.py:175
+#: order/serializers.py:173
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:213
+#: order/serializers.py:211 order/serializers.py:790
msgid "Line Item"
msgstr ""
-#: order/serializers.py:219
+#: order/serializers.py:217
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:229 order/serializers.py:297
+#: order/serializers.py:227 order/serializers.py:295
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:253
+#: order/serializers.py:251
msgid "Barcode Hash"
msgstr ""
-#: order/serializers.py:254
+#: order/serializers.py:252
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:271
+#: order/serializers.py:269
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:309
+#: order/serializers.py:307
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:326
+#: order/serializers.py:324
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:337
+#: order/serializers.py:335
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:578
+#: order/serializers.py:581
msgid "Sale price currency"
msgstr ""
+#: order/serializers.py:649
+msgid "No shipment details provided"
+msgstr ""
+
+#: order/serializers.py:699 order/serializers.py:802
+msgid "Line item is not associated with this order"
+msgstr ""
+
+#: order/serializers.py:721
+msgid "Quantity must be positive"
+msgstr ""
+
+#: order/serializers.py:815
+msgid "Enter serial numbers to allocate"
+msgstr ""
+
+#: order/serializers.py:839 order/serializers.py:964
+msgid "Shipment has already been shipped"
+msgstr ""
+
+#: order/serializers.py:842 order/serializers.py:967
+msgid "Shipment is not associated with this order"
+msgstr ""
+
+#: order/serializers.py:894
+msgid "No match found for the following serial numbers"
+msgstr ""
+
+#: order/serializers.py:904
+msgid "The following serial numbers are already allocated"
+msgstr ""
+
#: order/templates/order/delete_attachment.html:5
#: stock/templates/stock/attachment_delete.html:5
msgid "Are you sure you want to delete this attachment?"
@@ -3271,7 +3416,8 @@ msgstr ""
msgid "Receive Items"
msgstr ""
-#: order/templates/order/order_base.html:62 order/views.py:185
+#: order/templates/order/order_base.html:62
+#: order/templates/order/sales_order_base.html:67 order/views.py:181
msgid "Complete Order"
msgstr ""
@@ -3290,12 +3436,23 @@ msgstr ""
msgid "Order Status"
msgstr ""
-#: order/templates/order/order_base.html:137
+#: order/templates/order/order_base.html:124
+#: order/templates/order/sales_order_base.html:128
+msgid "Completed Line Items"
+msgstr ""
+
+#: order/templates/order/order_base.html:130
+#: order/templates/order/sales_order_base.html:134
+#: order/templates/order/sales_order_base.html:144
+msgid "Incomplete"
+msgstr ""
+
+#: order/templates/order/order_base.html:149
#: report/templates/report/inventree_build_order_base.html:122
msgid "Issued"
msgstr ""
-#: order/templates/order/order_base.html:207
+#: order/templates/order/order_base.html:219
msgid "Edit Purchase Order"
msgstr ""
@@ -3371,8 +3528,9 @@ msgstr ""
#: part/templates/part/import_wizard/ajax_match_references.html:42
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
-#: templates/js/translated/build.js:240 templates/js/translated/build.js:1251
-#: templates/js/translated/order.js:377
+#: templates/js/translated/build.js:245 templates/js/translated/build.js:1256
+#: templates/js/translated/order.js:537 templates/js/translated/order.js:1488
+#: templates/js/translated/stock.js:592
msgid "Remove row"
msgstr ""
@@ -3453,7 +3611,8 @@ msgid "Select existing purchase orders, or create new orders."
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:31
-#: templates/js/translated/order.js:694 templates/js/translated/order.js:1118
+#: templates/js/translated/order.js:859 templates/js/translated/order.js:1286
+#: templates/js/translated/order.js:1416
msgid "Items"
msgstr ""
@@ -3489,7 +3648,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:27
#: order/templates/order/purchase_order_detail.html:181
#: order/templates/order/sales_order_detail.html:23
-#: order/templates/order/sales_order_detail.html:157
+#: order/templates/order/sales_order_detail.html:244
msgid "Add Line Item"
msgstr ""
@@ -3502,7 +3661,7 @@ msgid "Received Items"
msgstr ""
#: order/templates/order/purchase_order_detail.html:76
-#: order/templates/order/sales_order_detail.html:68
+#: order/templates/order/sales_order_detail.html:123
msgid "Order Notes"
msgstr ""
@@ -3520,8 +3679,8 @@ msgid "Print packing list"
msgstr ""
#: order/templates/order/sales_order_base.html:66
-#: order/templates/order/sales_order_base.html:67 order/views.py:222
-msgid "Ship Order"
+#: order/templates/order/sales_order_base.html:229
+msgid "Complete Sales Order"
msgstr ""
#: order/templates/order/sales_order_base.html:102
@@ -3529,16 +3688,21 @@ msgid "This Sales Order has not been fully allocated"
msgstr ""
#: order/templates/order/sales_order_base.html:122
-#: templates/js/translated/order.js:1085
+#: templates/js/translated/order.js:1253
msgid "Customer Reference"
msgstr ""
-#: order/templates/order/sales_order_base.html:195
+#: order/templates/order/sales_order_base.html:140
+#: order/templates/order/sales_order_detail.html:78
+#: order/templates/order/so_sidebar.html:11
+msgid "Completed Shipments"
+msgstr ""
+
+#: order/templates/order/sales_order_base.html:215
msgid "Edit Sales Order"
msgstr ""
#: order/templates/order/sales_order_cancel.html:8
-#: order/templates/order/sales_order_ship.html:9
#: part/templates/part/bom_duplicate.html:12
#: stock/templates/stock/stockitem_convert.html:13
msgid "Warning"
@@ -3552,146 +3716,100 @@ msgstr ""
msgid "Sales Order Items"
msgstr ""
-#: order/templates/order/sales_order_ship.html:10
-msgid "This order has not been fully allocated. If the order is marked as shipped, it can no longer be adjusted."
+#: order/templates/order/sales_order_detail.html:44
+#: order/templates/order/so_sidebar.html:8
+msgid "Pending Shipments"
msgstr ""
-#: order/templates/order/sales_order_ship.html:12
-msgid "Ensure that the order allocation is correct before shipping the order."
+#: order/templates/order/sales_order_detail.html:48
+#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1188
+msgid "Actions"
msgstr ""
-#: order/templates/order/sales_order_ship.html:18
-msgid "Some line items in this order have been over-allocated"
+#: order/templates/order/sales_order_detail.html:57
+msgid "New Shipment"
msgstr ""
-#: order/templates/order/sales_order_ship.html:20
-msgid "Ensure that this is correct before shipping the order."
-msgstr ""
-
-#: order/templates/order/sales_order_ship.html:27
-msgid "Shipping this order means that the order will no longer be editable."
-msgstr ""
-
-#: order/templates/order/so_allocate_by_serial.html:9
-msgid "Allocate stock items by serial number"
-msgstr ""
-
-#: order/views.py:103
+#: order/views.py:99
msgid "Cancel Order"
msgstr ""
-#: order/views.py:112 order/views.py:138
+#: order/views.py:108 order/views.py:134
msgid "Confirm order cancellation"
msgstr ""
-#: order/views.py:115 order/views.py:141
+#: order/views.py:111 order/views.py:137
msgid "Order cannot be cancelled"
msgstr ""
-#: order/views.py:129
+#: order/views.py:125
msgid "Cancel sales order"
msgstr ""
-#: order/views.py:155
+#: order/views.py:151
msgid "Issue Order"
msgstr ""
-#: order/views.py:164
+#: order/views.py:160
msgid "Confirm order placement"
msgstr ""
-#: order/views.py:174
+#: order/views.py:170
msgid "Purchase order issued"
msgstr ""
-#: order/views.py:201
+#: order/views.py:197
msgid "Confirm order completion"
msgstr ""
-#: order/views.py:212
+#: order/views.py:208
msgid "Purchase order completed"
msgstr ""
-#: order/views.py:238
-msgid "Confirm order shipment"
-msgstr ""
-
-#: order/views.py:244
-msgid "Could not ship order"
-msgstr ""
-
-#: order/views.py:291
+#: order/views.py:245
msgid "Match Supplier Parts"
msgstr ""
-#: order/views.py:535
+#: order/views.py:489
msgid "Update prices"
msgstr ""
-#: order/views.py:793
+#: order/views.py:747
#, python-brace-format
msgid "Ordered {n} parts"
msgstr ""
-#: order/views.py:846
-msgid "Allocate Serial Numbers"
-msgstr ""
-
-#: order/views.py:891
-#, python-brace-format
-msgid "Allocated {n} items"
-msgstr ""
-
-#: order/views.py:907
-msgid "Select line item"
-msgstr ""
-
-#: order/views.py:938
-#, python-brace-format
-msgid "No matching item for serial {serial}"
-msgstr ""
-
-#: order/views.py:948
-#, python-brace-format
-msgid "{serial} is not in stock"
-msgstr ""
-
-#: order/views.py:956
-#, python-brace-format
-msgid "{serial} already allocated to an order"
-msgstr ""
-
-#: order/views.py:1072
+#: order/views.py:858
msgid "Sales order not found"
msgstr ""
-#: order/views.py:1078
+#: order/views.py:864
msgid "Price not found"
msgstr ""
-#: order/views.py:1081
+#: order/views.py:867
#, python-brace-format
msgid "Updated {part} unit-price to {price}"
msgstr ""
-#: order/views.py:1086
+#: order/views.py:872
#, python-brace-format
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/api.py:758
+#: part/api.py:760
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:762
+#: part/api.py:764
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:777
+#: part/api.py:779
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:808 part/api.py:812 part/api.py:827 part/api.py:831
+#: part/api.py:810 part/api.py:814 part/api.py:829 part/api.py:833
msgid "This field is required"
msgstr ""
@@ -3828,8 +3946,8 @@ msgstr ""
#: part/templates/part/category.html:149
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:88
-#: templates/InvenTree/settings/sidebar.html:36
-#: templates/js/translated/part.js:1597 templates/navbar.html:19
+#: templates/InvenTree/settings/sidebar.html:37
+#: templates/js/translated/part.js:1597 templates/navbar.html:21
#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
msgid "Parts"
msgstr ""
@@ -3895,7 +4013,7 @@ msgstr ""
#: part/models.py:778 part/models.py:2223 part/models.py:2472
#: part/templates/part/part_base.html:265
#: part/templates/part/set_category.html:15
-#: templates/InvenTree/settings/settings.html:163
+#: templates/InvenTree/settings/settings.html:172
#: templates/js/translated/part.js:1202
msgid "Category"
msgstr ""
@@ -3906,7 +4024,7 @@ msgstr ""
#: part/models.py:784 part/templates/part/part_base.html:274
#: templates/js/translated/part.js:557 templates/js/translated/part.js:1155
-#: templates/js/translated/stock.js:1216
+#: templates/js/translated/stock.js:1373
msgid "IPN"
msgstr ""
@@ -3975,10 +4093,11 @@ msgstr ""
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:915 templates/js/translated/table_filters.js:34
+#: part/models.py:915 plugin/models.py:45
+#: templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:96
-#: templates/js/translated/table_filters.js:290
-#: templates/js/translated/table_filters.js:368
+#: templates/js/translated/table_filters.js:295
+#: templates/js/translated/table_filters.js:399
msgid "Active"
msgstr ""
@@ -4027,7 +4146,7 @@ msgid "Test with this name already exists for this part"
msgstr ""
#: part/models.py:2310 templates/js/translated/part.js:1648
-#: templates/js/translated/stock.js:940
+#: templates/js/translated/stock.js:1097
msgid "Test Name"
msgstr ""
@@ -4044,7 +4163,7 @@ msgid "Enter description for this test"
msgstr ""
#: part/models.py:2322 templates/js/translated/part.js:1657
-#: templates/js/translated/table_filters.js:276
+#: templates/js/translated/table_filters.js:281
msgid "Required"
msgstr ""
@@ -4086,7 +4205,7 @@ msgid "Parameter Units"
msgstr ""
#: part/models.py:2429 part/models.py:2478 part/models.py:2479
-#: templates/InvenTree/settings/settings.html:158
+#: templates/InvenTree/settings/settings.html:167
msgid "Parameter Template"
msgstr ""
@@ -4098,7 +4217,7 @@ msgstr ""
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2483 templates/InvenTree/settings/settings.html:167
+#: part/models.py:2483 templates/InvenTree/settings/settings.html:176
msgid "Default Value"
msgstr ""
@@ -4175,7 +4294,7 @@ msgstr ""
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2686 stock/models.py:361
+#: part/models.py:2686 stock/models.py:355
msgid "Quantity must be integer value for trackable parts"
msgstr ""
@@ -4724,8 +4843,8 @@ msgstr ""
msgid "This part is a variant of %(link)s"
msgstr ""
-#: part/templates/part/part_base.html:190 templates/js/translated/order.js:1545
-#: templates/js/translated/table_filters.js:188
+#: part/templates/part/part_base.html:190 templates/js/translated/order.js:2217
+#: templates/js/translated/table_filters.js:193
msgid "In Stock"
msgstr ""
@@ -5099,6 +5218,78 @@ msgstr ""
msgid "Delete Internal Price Break"
msgstr ""
+#: plugin/integration.py:116
+msgid "No author found"
+msgstr ""
+
+#: plugin/integration.py:128
+msgid "No date found"
+msgstr ""
+
+#: plugin/models.py:25
+msgid "Plugin Configuration"
+msgstr ""
+
+#: plugin/models.py:26
+msgid "Plugin Configurations"
+msgstr ""
+
+#: plugin/models.py:31
+msgid "Key"
+msgstr ""
+
+#: plugin/models.py:32
+msgid "Key of plugin"
+msgstr ""
+
+#: plugin/models.py:40
+msgid "PluginName of the plugin"
+msgstr ""
+
+#: plugin/models.py:46
+msgid "Is the plugin active"
+msgstr ""
+
+#: plugin/samples/integration/sample.py:39
+msgid "Enable PO"
+msgstr ""
+
+#: plugin/samples/integration/sample.py:40
+msgid "Enable PO functionality in InvenTree interface"
+msgstr ""
+
+#: plugin/serializers.py:46
+msgid "Source URL"
+msgstr ""
+
+#: plugin/serializers.py:47
+msgid "Source for the package - this can be a custom registry or a VCS path"
+msgstr ""
+
+#: plugin/serializers.py:52
+msgid "Package Name"
+msgstr ""
+
+#: plugin/serializers.py:53
+msgid "Name for the Plugin Package - can also contain a version indicator"
+msgstr ""
+
+#: plugin/serializers.py:56
+msgid "Confirm plugin installation"
+msgstr ""
+
+#: plugin/serializers.py:57
+msgid "This will install this plugin now into the current instance. The instance will go into maintenance."
+msgstr ""
+
+#: plugin/serializers.py:72
+msgid "Installation not confirmed"
+msgstr ""
+
+#: plugin/serializers.py:74
+msgid "Either packagenmae of url must be provided"
+msgstr ""
+
#: report/api.py:234 report/api.py:278
#, python-brace-format
msgid "Template file '{filename}' is missing or does not exist"
@@ -5197,12 +5388,12 @@ msgid "Stock Item Test Report"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:520 stock/templates/stock/item_base.html:149
-#: templates/js/translated/build.js:233 templates/js/translated/build.js:637
-#: templates/js/translated/build.js:1013
+#: stock/models.py:514 stock/templates/stock/item_base.html:149
+#: templates/js/translated/build.js:238 templates/js/translated/build.js:642
+#: templates/js/translated/build.js:1018
#: templates/js/translated/model_renderers.js:95
-#: templates/js/translated/order.js:1287 templates/js/translated/order.js:1376
-#: templates/js/translated/stock.js:410
+#: templates/js/translated/order.js:99 templates/js/translated/order.js:1945
+#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:414
msgid "Serial Number"
msgstr ""
@@ -5211,17 +5402,19 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:93
-#: stock/models.py:1845
+#: stock/models.py:1833
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:94
-#: stock/models.py:1851
+#: stock/models.py:1839
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:97
-#: templates/js/translated/order.js:684 templates/js/translated/stock.js:1999
+#: templates/InvenTree/settings/plugin.html:49
+#: templates/InvenTree/settings/plugin_settings.html:38
+#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2174
msgid "Date"
msgstr ""
@@ -5239,302 +5432,318 @@ msgid "Installed Items"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
-#: templates/js/translated/stock.js:2259
+#: templates/js/translated/stock.js:577 templates/js/translated/stock.js:2434
msgid "Serial"
msgstr ""
-#: stock/api.py:422
+#: stock/api.py:446
msgid "Quantity is required"
msgstr ""
-#: stock/forms.py:91 stock/forms.py:265 stock/models.py:577
+#: stock/forms.py:77 stock/forms.py:251 stock/models.py:571
#: stock/templates/stock/item_base.html:186
-#: templates/js/translated/stock.js:1358
+#: templates/js/translated/stock.js:1522
msgid "Expiry Date"
msgstr ""
-#: stock/forms.py:92 stock/forms.py:266
+#: stock/forms.py:78 stock/forms.py:252
msgid "Expiration date for this stock item"
msgstr ""
-#: stock/forms.py:95
+#: stock/forms.py:81
msgid "Enter unique serial numbers (or leave blank)"
msgstr ""
-#: stock/forms.py:150
+#: stock/forms.py:136
msgid "Destination for serialized stock (by default, will remain in current location)"
msgstr ""
-#: stock/forms.py:152
+#: stock/forms.py:138
msgid "Serial numbers"
msgstr ""
-#: stock/forms.py:152
+#: stock/forms.py:138
msgid "Unique serial numbers (must match quantity)"
msgstr ""
-#: stock/forms.py:154 stock/forms.py:238
+#: stock/forms.py:140 stock/forms.py:224
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/forms.py:194
+#: stock/forms.py:180
msgid "Stock item to install"
msgstr ""
-#: stock/forms.py:224
+#: stock/forms.py:210
msgid "Must not exceed available quantity"
msgstr ""
-#: stock/forms.py:236
+#: stock/forms.py:222
msgid "Destination location for uninstalled items"
msgstr ""
-#: stock/forms.py:240
+#: stock/forms.py:226
msgid "Confirm uninstall"
msgstr ""
-#: stock/forms.py:240
+#: stock/forms.py:226
msgid "Confirm removal of installed stock items"
msgstr ""
-#: stock/models.py:60 stock/models.py:614
+#: stock/models.py:60 stock/models.py:608
#: stock/templates/stock/item_base.html:417
msgid "Owner"
msgstr ""
-#: stock/models.py:61 stock/models.py:615
+#: stock/models.py:61 stock/models.py:609
msgid "Select Owner"
msgstr ""
-#: stock/models.py:342
+#: stock/models.py:336
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:378
+#: stock/models.py:372
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:388 stock/models.py:397
+#: stock/models.py:382 stock/models.py:391
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:389
+#: stock/models.py:383
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:411
+#: stock/models.py:405
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:417
+#: stock/models.py:411
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:424
+#: stock/models.py:418
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:466
+#: stock/models.py:460
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:475
+#: stock/models.py:469
msgid "Base part"
msgstr ""
-#: stock/models.py:483
+#: stock/models.py:477
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:488 stock/templates/stock/location.html:12
+#: stock/models.py:482 stock/templates/stock/location.html:12
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:491
+#: stock/models.py:485
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:498
+#: stock/models.py:492
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:503 stock/templates/stock/item_base.html:299
+#: stock/models.py:497 stock/templates/stock/item_base.html:299
msgid "Installed In"
msgstr ""
-#: stock/models.py:506
+#: stock/models.py:500
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:522
+#: stock/models.py:516
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:536
+#: stock/models.py:530
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:540
+#: stock/models.py:534
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:549
+#: stock/models.py:543
msgid "Source Build"
msgstr ""
-#: stock/models.py:551
+#: stock/models.py:545
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:562
+#: stock/models.py:556
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:565
+#: stock/models.py:559
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:571
+#: stock/models.py:565
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:578
+#: stock/models.py:572
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:591
+#: stock/models.py:585
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:591
+#: stock/models.py:585
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:601 stock/templates/stock/item.html:111
+#: stock/models.py:595 stock/templates/stock/item.html:111
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:610
+#: stock/models.py:604
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:620
-msgid "Scheduled for deletion"
-msgstr ""
-
-#: stock/models.py:621
-msgid "This StockItem will be deleted by the background worker"
-msgstr ""
-
-#: stock/models.py:1084
+#: stock/models.py:1072
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1090
+#: stock/models.py:1078
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1096
+#: stock/models.py:1084
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1099
+#: stock/models.py:1087
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1102
+#: stock/models.py:1090
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1109
+#: stock/models.py:1097
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1267
+#: stock/models.py:1255
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1765
+#: stock/models.py:1753
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1822
+#: stock/models.py:1810
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1828
+#: stock/models.py:1816
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1846
+#: stock/models.py:1834
msgid "Test name"
msgstr ""
-#: stock/models.py:1852 templates/js/translated/table_filters.js:266
+#: stock/models.py:1840 templates/js/translated/table_filters.js:271
msgid "Test result"
msgstr ""
-#: stock/models.py:1858
+#: stock/models.py:1846
msgid "Test output value"
msgstr ""
-#: stock/models.py:1865
+#: stock/models.py:1853
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1871
+#: stock/models.py:1859
msgid "Test notes"
msgstr ""
-#: stock/serializers.py:171
+#: stock/serializers.py:173
msgid "Purchase price of this stock item"
msgstr ""
-#: stock/serializers.py:178
+#: stock/serializers.py:180
msgid "Purchase currency of this stock item"
msgstr ""
-#: stock/serializers.py:292
+#: stock/serializers.py:294
msgid "Enter number of stock items to serialize"
msgstr ""
-#: stock/serializers.py:307
+#: stock/serializers.py:309
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:313
+#: stock/serializers.py:315
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:324 stock/serializers.py:691
+#: stock/serializers.py:326 stock/serializers.py:814
msgid "Destination stock location"
msgstr ""
-#: stock/serializers.py:331
+#: stock/serializers.py:333
msgid "Optional note field"
msgstr ""
-#: stock/serializers.py:344
+#: stock/serializers.py:346
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:561
+#: stock/serializers.py:573
+msgid "Part must be salable"
+msgstr ""
+
+#: stock/serializers.py:577
+msgid "Item is allocated to a sales order"
+msgstr ""
+
+#: stock/serializers.py:581
+msgid "Item is allocated to a build order"
+msgstr ""
+
+#: stock/serializers.py:611
+msgid "Customer to assign stock items"
+msgstr ""
+
+#: stock/serializers.py:617
+msgid "Selected company is not a customer"
+msgstr ""
+
+#: stock/serializers.py:625
+msgid "Stock assignment notes"
+msgstr ""
+
+#: stock/serializers.py:635 stock/serializers.py:722
+msgid "A list of stock items must be provided"
+msgstr ""
+
+#: stock/serializers.py:684
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:589
+#: stock/serializers.py:712
msgid "Stock transaction notes"
msgstr ""
-#: stock/serializers.py:599
-msgid "A list of stock items must be provided"
-msgstr ""
-
#: stock/templates/stock/item.html:18
msgid "Stock Tracking Information"
msgstr ""
@@ -5572,7 +5781,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:137 stock/views.py:515
+#: stock/templates/stock/item.html:137 stock/views.py:482
msgid "Install Stock Item"
msgstr ""
@@ -5632,7 +5841,7 @@ msgstr ""
msgid "Transfer stock"
msgstr ""
-#: stock/templates/stock/item_base.html:85
+#: stock/templates/stock/item_base.html:85 templates/stock_table.html:53
msgid "Assign to customer"
msgstr ""
@@ -5694,7 +5903,7 @@ msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:190
-#: templates/js/translated/table_filters.js:247
+#: templates/js/translated/table_filters.js:252
msgid "Expired"
msgstr ""
@@ -5704,12 +5913,12 @@ msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:192
-#: templates/js/translated/table_filters.js:253
+#: templates/js/translated/table_filters.js:258
msgid "Stale"
msgstr ""
#: stock/templates/stock/item_base.html:199
-#: templates/js/translated/stock.js:1371
+#: templates/js/translated/stock.js:1535
msgid "Last Updated"
msgstr ""
@@ -5738,13 +5947,11 @@ msgid "This stock item has not passed all required tests"
msgstr ""
#: stock/templates/stock/item_base.html:255
-#, python-format
-msgid "This stock item is allocated to Sales Order %(link)s (Quantity: %(qty)s)"
+msgid "This stock item is allocated to Sales Order"
msgstr ""
#: stock/templates/stock/item_base.html:263
-#, python-format
-msgid "This stock item is allocated to Build %(link)s (Quantity: %(qty)s)"
+msgid "This stock item is allocated to Build Order"
msgstr ""
#: stock/templates/stock/item_base.html:269
@@ -5760,7 +5967,7 @@ msgid "This stock item will be automatically deleted when all stock is depleted.
msgstr ""
#: stock/templates/stock/item_base.html:318
-#: templates/js/translated/build.js:1035
+#: templates/js/translated/build.js:1040
msgid "No location set"
msgstr ""
@@ -5910,7 +6117,7 @@ msgstr ""
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:912
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:879
msgid "Convert Stock Item"
msgstr ""
@@ -5935,8 +6142,7 @@ msgstr ""
msgid "Edit Stock Location"
msgstr ""
-#: stock/views.py:269 stock/views.py:891 stock/views.py:1017
-#: stock/views.py:1299
+#: stock/views.py:269 stock/views.py:858 stock/views.py:984 stock/views.py:1266
msgid "Owner is required (ownership control is enabled)"
msgstr ""
@@ -5945,86 +6151,78 @@ msgid "Stock Location QR code"
msgstr ""
#: stock/views.py:303
-msgid "Assign to Customer"
-msgstr ""
-
-#: stock/views.py:312
-msgid "Customer must be specified"
-msgstr ""
-
-#: stock/views.py:336
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:345
+#: stock/views.py:312
msgid "Specify a valid location"
msgstr ""
-#: stock/views.py:356
+#: stock/views.py:323
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:367
+#: stock/views.py:334
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:384
+#: stock/views.py:351
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:489
+#: stock/views.py:456
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:663
+#: stock/views.py:630
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:760 templates/js/translated/stock.js:730
+#: stock/views.py:727 templates/js/translated/stock.js:887
msgid "Confirm stock adjustment"
msgstr ""
-#: stock/views.py:771
+#: stock/views.py:738
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:793 templates/js/translated/stock.js:319
+#: stock/views.py:760 templates/js/translated/stock.js:323
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:943
+#: stock/views.py:910
msgid "Create new Stock Location"
msgstr ""
-#: stock/views.py:1044
+#: stock/views.py:1011
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1186 templates/js/translated/stock.js:299
+#: stock/views.py:1153 templates/js/translated/stock.js:303
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1268
+#: stock/views.py:1235
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1368
+#: stock/views.py:1335
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:1381
+#: stock/views.py:1348
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1392
+#: stock/views.py:1359
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1399
+#: stock/views.py:1366
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1408
+#: stock/views.py:1375
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -6044,6 +6242,14 @@ msgstr ""
msgid "The requested page does not exist"
msgstr ""
+#: templates/503.html:10 templates/503.html:35
+msgid "Site is in Maintenance"
+msgstr ""
+
+#: templates/503.html:41
+msgid "The site is currently in maintenance and should be up again soon!"
+msgstr ""
+
#: templates/InvenTree/index.html:7
msgid "Index"
msgstr ""
@@ -6153,7 +6359,7 @@ msgid "Server Settings"
msgstr ""
#: templates/InvenTree/settings/login.html:9
-#: templates/InvenTree/settings/sidebar.html:28
+#: templates/InvenTree/settings/sidebar.html:29
msgid "Login Settings"
msgstr ""
@@ -6161,6 +6367,24 @@ msgstr ""
msgid "Signup"
msgstr ""
+#: templates/InvenTree/settings/mixins/settings.html:4
+#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:118
+msgid "Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/mixins/urls.html:4
+msgid "URLs"
+msgstr ""
+
+#: templates/InvenTree/settings/mixins/urls.html:6
+#, python-format
+msgid "The Base-URL for this plugin is %(base)s."
+msgstr ""
+
+#: templates/InvenTree/settings/mixins/urls.html:21
+msgid "open in new tab"
+msgstr ""
+
#: templates/InvenTree/settings/part.html:7
msgid "Part Settings"
msgstr ""
@@ -6177,6 +6401,126 @@ msgstr ""
msgid "Part Parameter Templates"
msgstr ""
+#: templates/InvenTree/settings/plugin.html:10
+msgid "Plugin Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:16
+msgid "Changing the settings below require you to immediatly restart InvenTree. Do not change this while under active usage."
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:32
+msgid "Plugin list"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:37
+#: templates/js/translated/plugin.js:15
+msgid "Install Plugin"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:46 templates/navbar.html:111
+#: users/models.py:39
+msgid "Admin"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:48
+#: templates/InvenTree/settings/plugin_settings.html:28
+msgid "Author"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:50
+#: templates/InvenTree/settings/plugin_settings.html:43
+msgid "Version"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:73
+#, python-format
+msgid "has %(name)s"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:91
+msgid "Inactive plugins"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:114
+msgid "Plugin Error Stack"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:123
+msgid "Stage"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:125
+msgid "Message"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:10
+#, python-format
+msgid "Plugin details for %(name)s"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:17
+msgid "Plugin information"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:48
+msgid "no version information supplied"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:62
+msgid "License"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:70
+msgid "The code information is pulled from the latest git commit for this plugin. It might not reflect official version numbers or information but the actual code running."
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:74
+msgid "Package information"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:80
+msgid "Installation method"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:83
+msgid "This plugin was installed as a package"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:85
+msgid "This plugin was found in a local InvenTree path"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:91
+msgid "Installation path"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:97
+msgid "Commit Author"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:101
+#: templates/about.html:47
+msgid "Commit Date"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:105
+#: templates/about.html:40
+msgid "Commit Hash"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:109
+msgid "Commit Message"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:114
+msgid "Sign Status"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:119
+msgid "Sign Key"
+msgstr ""
+
#: templates/InvenTree/settings/po.html:7
msgid "Purchase Order Settings"
msgstr ""
@@ -6194,86 +6538,82 @@ msgstr ""
msgid "Edit setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:11 templates/navbar.html:93
-msgid "Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/settings.html:65
+#: templates/InvenTree/settings/settings.html:74
msgid "Edit Global Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:65
+#: templates/InvenTree/settings/settings.html:74
msgid "Edit User Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:148
+#: templates/InvenTree/settings/settings.html:157
msgid "No category parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:170
-#: templates/InvenTree/settings/settings.html:269
+#: templates/InvenTree/settings/settings.html:179
+#: templates/InvenTree/settings/settings.html:278
msgid "Edit Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:171
-#: templates/InvenTree/settings/settings.html:270
+#: templates/InvenTree/settings/settings.html:180
+#: templates/InvenTree/settings/settings.html:279
msgid "Delete Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:249
+#: templates/InvenTree/settings/settings.html:258
msgid "No part parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:253
+#: templates/InvenTree/settings/settings.html:262
msgid "ID"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:5
+#: templates/InvenTree/settings/sidebar.html:6
#: templates/InvenTree/settings/user_settings.html:9
msgid "User Settings"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:8
+#: templates/InvenTree/settings/sidebar.html:9
#: templates/InvenTree/settings/user.html:12
msgid "Account Settings"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:10
+#: templates/InvenTree/settings/sidebar.html:11
#: templates/InvenTree/settings/user_display.html:9
msgid "Display Settings"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:12
+#: templates/InvenTree/settings/sidebar.html:13
msgid "Home Page"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:14
+#: templates/InvenTree/settings/sidebar.html:15
#: templates/InvenTree/settings/user_search.html:9
msgid "Search Settings"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:16
+#: templates/InvenTree/settings/sidebar.html:17
msgid "Label Printing"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:18
-#: templates/InvenTree/settings/sidebar.html:34
+#: templates/InvenTree/settings/sidebar.html:19
+#: templates/InvenTree/settings/sidebar.html:35
msgid "Reporting"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:23
+#: templates/InvenTree/settings/sidebar.html:24
msgid "Global Settings"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:26
+#: templates/InvenTree/settings/sidebar.html:27
msgid "Server Configuration"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:32
+#: templates/InvenTree/settings/sidebar.html:33
msgid "Currencies"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:38
+#: templates/InvenTree/settings/sidebar.html:39
msgid "Categories"
msgstr ""
@@ -6491,8 +6831,8 @@ msgstr ""
#: templates/about.html:11 templates/about.html:105
#: templates/js/translated/bom.js:283 templates/js/translated/modals.js:53
-#: templates/js/translated/modals.js:567 templates/js/translated/modals.js:661
-#: templates/js/translated/modals.js:964 templates/modals.html:15
+#: templates/js/translated/modals.js:568 templates/js/translated/modals.js:662
+#: templates/js/translated/modals.js:965 templates/modals.html:15
#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
msgid "Close"
msgstr ""
@@ -6513,14 +6853,6 @@ msgstr ""
msgid "Update Available"
msgstr ""
-#: templates/about.html:40
-msgid "Commit Hash"
-msgstr ""
-
-#: templates/about.html:47
-msgid "Commit Date"
-msgstr ""
-
#: templates/about.html:53
msgid "InvenTree Documentation"
msgstr ""
@@ -6718,8 +7050,9 @@ msgstr ""
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1129
-#: templates/js/translated/build.js:1749
+#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1134
+#: templates/js/translated/build.js:1755
+#: templates/js/translated/table_filters.js:178
msgid "Available"
msgstr ""
@@ -6765,11 +7098,11 @@ msgstr ""
msgid "Remote image must not exceed maximum allowable file size"
msgstr ""
-#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1034
+#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1035
msgid "No Response"
msgstr ""
-#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1035
+#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1036
msgid "No response from the InvenTree server"
msgstr ""
@@ -6781,35 +7114,35 @@ msgstr ""
msgid "API request returned error code 400"
msgstr ""
-#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1044
+#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1045
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1045
+#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1046
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1049
+#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1050
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1050
+#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1051
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1054
+#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1055
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1055
+#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1056
msgid "The requested resource could not be located on the server"
msgstr ""
-#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1059
+#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1060
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1060
+#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1061
msgid "Connection timeout while requesting data from server"
msgstr ""
@@ -6878,7 +7211,7 @@ msgid "Unknown response from server"
msgstr ""
#: templates/js/translated/barcode.js:140
-#: templates/js/translated/modals.js:1024
+#: templates/js/translated/modals.js:1025
msgid "Invalid server response"
msgstr ""
@@ -6886,7 +7219,7 @@ msgstr ""
msgid "Scan barcode data below"
msgstr ""
-#: templates/js/translated/barcode.js:280 templates/navbar.html:69
+#: templates/js/translated/barcode.js:280 templates/navbar.html:94
msgid "Scan Barcode"
msgstr ""
@@ -6906,7 +7239,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:682
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:839
msgid "Remove stock item"
msgstr ""
@@ -6976,7 +7309,7 @@ msgstr ""
msgid "Substitutes Available"
msgstr ""
-#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1111
+#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1116
msgid "Variant stock allowed"
msgstr ""
@@ -7000,11 +7333,6 @@ msgstr ""
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1183
-#: templates/js/translated/order.js:1319
-msgid "Actions"
-msgstr ""
-
#: templates/js/translated/bom.js:616
msgid "Validate BOM Item"
msgstr ""
@@ -7025,7 +7353,7 @@ msgstr ""
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:718 templates/js/translated/build.js:855
+#: templates/js/translated/bom.js:718 templates/js/translated/build.js:860
msgid "No BOM items found"
msgstr ""
@@ -7033,7 +7361,7 @@ msgstr ""
msgid "Are you sure you want to delete this BOM item?"
msgstr ""
-#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1095
+#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1100
msgid "Required Part"
msgstr ""
@@ -7041,165 +7369,165 @@ msgstr ""
msgid "Inherited from parent BOM"
msgstr ""
-#: templates/js/translated/build.js:78
+#: templates/js/translated/build.js:83
msgid "Edit Build Order"
msgstr ""
-#: templates/js/translated/build.js:112
+#: templates/js/translated/build.js:117
msgid "Create Build Order"
msgstr ""
-#: templates/js/translated/build.js:133
+#: templates/js/translated/build.js:138
msgid "Allocate stock items to this build output"
msgstr ""
-#: templates/js/translated/build.js:144
+#: templates/js/translated/build.js:149
msgid "Unallocate stock from build output"
msgstr ""
-#: templates/js/translated/build.js:153
+#: templates/js/translated/build.js:158
msgid "Complete build output"
msgstr ""
-#: templates/js/translated/build.js:161
+#: templates/js/translated/build.js:166
msgid "Delete build output"
msgstr ""
-#: templates/js/translated/build.js:184
+#: templates/js/translated/build.js:189
msgid "Are you sure you wish to unallocate stock items from this build?"
msgstr ""
-#: templates/js/translated/build.js:202
+#: templates/js/translated/build.js:207
msgid "Unallocate Stock Items"
msgstr ""
-#: templates/js/translated/build.js:220
+#: templates/js/translated/build.js:225
msgid "Select Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:221
+#: templates/js/translated/build.js:226
msgid "At least one build output must be selected"
msgstr ""
-#: templates/js/translated/build.js:275
+#: templates/js/translated/build.js:280
msgid "Output"
msgstr ""
-#: templates/js/translated/build.js:291
+#: templates/js/translated/build.js:296
msgid "Complete Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:386
+#: templates/js/translated/build.js:391
msgid "No build order allocations found"
msgstr ""
-#: templates/js/translated/build.js:424 templates/js/translated/order.js:1193
+#: templates/js/translated/build.js:429 templates/js/translated/order.js:1848
msgid "Location not specified"
msgstr ""
-#: templates/js/translated/build.js:603
+#: templates/js/translated/build.js:608
msgid "No active build outputs found"
msgstr ""
-#: templates/js/translated/build.js:1052 templates/js/translated/build.js:1760
-#: templates/js/translated/order.js:1326
+#: templates/js/translated/build.js:1057 templates/js/translated/build.js:1766
+#: templates/js/translated/order.js:1982
msgid "Edit stock allocation"
msgstr ""
-#: templates/js/translated/build.js:1054 templates/js/translated/build.js:1761
-#: templates/js/translated/order.js:1327
+#: templates/js/translated/build.js:1059 templates/js/translated/build.js:1767
+#: templates/js/translated/order.js:1983
msgid "Delete stock allocation"
msgstr ""
-#: templates/js/translated/build.js:1072
+#: templates/js/translated/build.js:1077
msgid "Edit Allocation"
msgstr ""
-#: templates/js/translated/build.js:1082
+#: templates/js/translated/build.js:1087
msgid "Remove Allocation"
msgstr ""
-#: templates/js/translated/build.js:1107
+#: templates/js/translated/build.js:1112
msgid "Substitute parts available"
msgstr ""
-#: templates/js/translated/build.js:1124
+#: templates/js/translated/build.js:1129
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:1134 templates/js/translated/build.js:1360
-#: templates/js/translated/build.js:1756 templates/js/translated/order.js:1556
+#: templates/js/translated/build.js:1139 templates/js/translated/build.js:1365
+#: templates/js/translated/build.js:1762 templates/js/translated/order.js:2227
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:1190 templates/js/translated/order.js:1610
+#: templates/js/translated/build.js:1195 templates/js/translated/order.js:2307
msgid "Build stock"
msgstr ""
-#: templates/js/translated/build.js:1194 templates/stock_table.html:52
+#: templates/js/translated/build.js:1199 templates/stock_table.html:52
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:1197 templates/js/translated/order.js:1603
+#: templates/js/translated/build.js:1202 templates/js/translated/order.js:2300
msgid "Allocate stock"
msgstr ""
-#: templates/js/translated/build.js:1262
+#: templates/js/translated/build.js:1267 templates/js/translated/order.js:1499
msgid "Specify stock allocation quantity"
msgstr ""
-#: templates/js/translated/build.js:1333 templates/js/translated/label.js:134
-#: templates/js/translated/report.js:225
+#: templates/js/translated/build.js:1338 templates/js/translated/label.js:134
+#: templates/js/translated/order.js:1550 templates/js/translated/report.js:225
msgid "Select Parts"
msgstr ""
-#: templates/js/translated/build.js:1334
+#: templates/js/translated/build.js:1339 templates/js/translated/order.js:1551
msgid "You must select at least one part to allocate"
msgstr ""
-#: templates/js/translated/build.js:1348
+#: templates/js/translated/build.js:1353 templates/js/translated/order.js:1565
msgid "Select source location (leave blank to take from all locations)"
msgstr ""
-#: templates/js/translated/build.js:1377
+#: templates/js/translated/build.js:1382 templates/js/translated/order.js:1600
msgid "Confirm stock allocation"
msgstr ""
-#: templates/js/translated/build.js:1378
+#: templates/js/translated/build.js:1383
msgid "Allocate Stock Items to Build Order"
msgstr ""
-#: templates/js/translated/build.js:1389
+#: templates/js/translated/build.js:1394 templates/js/translated/order.js:1613
msgid "No matching stock locations"
msgstr ""
-#: templates/js/translated/build.js:1451
+#: templates/js/translated/build.js:1464 templates/js/translated/order.js:1690
msgid "No matching stock items"
msgstr ""
-#: templates/js/translated/build.js:1576
+#: templates/js/translated/build.js:1582
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:1593 templates/js/translated/part.js:1147
-#: templates/js/translated/part.js:1558 templates/js/translated/stock.js:1176
-#: templates/js/translated/stock.js:1953
+#: templates/js/translated/build.js:1599 templates/js/translated/part.js:1147
+#: templates/js/translated/part.js:1558 templates/js/translated/stock.js:1333
+#: templates/js/translated/stock.js:2128
msgid "Select"
msgstr ""
-#: templates/js/translated/build.js:1613
+#: templates/js/translated/build.js:1619
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1674 templates/js/translated/stock.js:2172
+#: templates/js/translated/build.js:1680 templates/js/translated/stock.js:2347
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:1686
+#: templates/js/translated/build.js:1692
msgid "No information"
msgstr ""
-#: templates/js/translated/build.js:1737
+#: templates/js/translated/build.js:1743
msgid "No parts allocated for"
msgstr ""
@@ -7219,7 +7547,7 @@ msgstr ""
msgid "Delete Manufacturer Part"
msgstr ""
-#: templates/js/translated/company.js:165 templates/js/translated/order.js:90
+#: templates/js/translated/company.js:165 templates/js/translated/order.js:248
msgid "Add Supplier"
msgstr ""
@@ -7354,20 +7682,20 @@ msgstr ""
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1072 templates/modals.html:19
+#: templates/js/translated/forms.js:1078 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1463
+#: templates/js/translated/forms.js:1469
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1667
+#: templates/js/translated/forms.js:1673
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1884
+#: templates/js/translated/forms.js:1893
msgid "Clear input"
msgstr ""
@@ -7380,7 +7708,7 @@ msgid "NO"
msgstr ""
#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:706
+#: templates/js/translated/stock.js:863
msgid "Select Stock Items"
msgstr ""
@@ -7429,62 +7757,62 @@ msgstr ""
msgid "Select Label Template"
msgstr ""
-#: templates/js/translated/modals.js:75 templates/js/translated/modals.js:119
-#: templates/js/translated/modals.js:593
+#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:120
+#: templates/js/translated/modals.js:594
msgid "Cancel"
msgstr ""
-#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:118
-#: templates/js/translated/modals.js:660 templates/js/translated/modals.js:963
+#: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119
+#: templates/js/translated/modals.js:661 templates/js/translated/modals.js:964
#: templates/modals.html:28 templates/modals.html:51
msgid "Submit"
msgstr ""
-#: templates/js/translated/modals.js:117
+#: templates/js/translated/modals.js:118
msgid "Form Title"
msgstr ""
-#: templates/js/translated/modals.js:380
+#: templates/js/translated/modals.js:381
msgid "Waiting for server..."
msgstr ""
-#: templates/js/translated/modals.js:539
+#: templates/js/translated/modals.js:540
msgid "Show Error Information"
msgstr ""
-#: templates/js/translated/modals.js:592
+#: templates/js/translated/modals.js:593
msgid "Accept"
msgstr ""
-#: templates/js/translated/modals.js:649
+#: templates/js/translated/modals.js:650
msgid "Loading Data"
msgstr ""
-#: templates/js/translated/modals.js:915
+#: templates/js/translated/modals.js:916
msgid "Invalid response from server"
msgstr ""
-#: templates/js/translated/modals.js:915
+#: templates/js/translated/modals.js:916
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/translated/modals.js:927
+#: templates/js/translated/modals.js:928
msgid "Error posting form data"
msgstr ""
-#: templates/js/translated/modals.js:1024
+#: templates/js/translated/modals.js:1025
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/translated/modals.js:1039
+#: templates/js/translated/modals.js:1040
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/translated/modals.js:1040
+#: templates/js/translated/modals.js:1041
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/translated/modals.js:1063
+#: templates/js/translated/modals.js:1064
msgid "Error requesting form data"
msgstr ""
@@ -7512,176 +7840,245 @@ msgstr ""
msgid "Order ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:256
+#: templates/js/translated/model_renderers.js:253
+msgid "Shipment ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:273
msgid "Category ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:293
+#: templates/js/translated/model_renderers.js:310
msgid "Manufacturer Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:322
+#: templates/js/translated/model_renderers.js:339
msgid "Supplier Part ID"
msgstr ""
-#: templates/js/translated/order.js:48
+#: templates/js/translated/order.js:75
+msgid "No stock items have been allocated to this shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:80
+msgid "The following stock items will be shipped"
+msgstr ""
+
+#: templates/js/translated/order.js:120
+msgid "Complete Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:126
+msgid "Confirm Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:181
+msgid "Create New Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:206
msgid "Add Customer"
msgstr ""
-#: templates/js/translated/order.js:73
+#: templates/js/translated/order.js:231
msgid "Create Sales Order"
msgstr ""
-#: templates/js/translated/order.js:208
+#: templates/js/translated/order.js:366
msgid "Export Order"
msgstr ""
-#: templates/js/translated/order.js:211 templates/js/translated/stock.js:505
+#: templates/js/translated/order.js:369 templates/js/translated/stock.js:509
msgid "Format"
msgstr ""
-#: templates/js/translated/order.js:212 templates/js/translated/stock.js:506
+#: templates/js/translated/order.js:370 templates/js/translated/stock.js:510
msgid "Select file format"
msgstr ""
-#: templates/js/translated/order.js:300
+#: templates/js/translated/order.js:460
msgid "Select Line Items"
msgstr ""
-#: templates/js/translated/order.js:301
+#: templates/js/translated/order.js:461
msgid "At least one line item must be selected"
msgstr ""
-#: templates/js/translated/order.js:326
+#: templates/js/translated/order.js:486
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:360 templates/js/translated/stock.js:1755
+#: templates/js/translated/order.js:520 templates/js/translated/stock.js:1930
msgid "Stock Status"
msgstr ""
-#: templates/js/translated/order.js:427
+#: templates/js/translated/order.js:587
msgid "Order Code"
msgstr ""
-#: templates/js/translated/order.js:428
+#: templates/js/translated/order.js:588
msgid "Ordered"
msgstr ""
-#: templates/js/translated/order.js:430
+#: templates/js/translated/order.js:590
msgid "Receive"
msgstr ""
-#: templates/js/translated/order.js:449
+#: templates/js/translated/order.js:609
msgid "Confirm receipt of items"
msgstr ""
-#: templates/js/translated/order.js:450
+#: templates/js/translated/order.js:610
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:627 templates/js/translated/part.js:746
+#: templates/js/translated/order.js:790 templates/js/translated/part.js:746
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:659 templates/js/translated/order.js:1062
+#: templates/js/translated/order.js:815 templates/js/translated/order.js:1230
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:771 templates/js/translated/order.js:1645
+#: templates/js/translated/order.js:936 templates/js/translated/order.js:2356
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:783 templates/js/translated/order.js:1656
+#: templates/js/translated/order.js:948 templates/js/translated/order.js:2367
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/order.js:822
+#: templates/js/translated/order.js:987
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:849 templates/js/translated/order.js:1466
+#: templates/js/translated/order.js:1014 templates/js/translated/order.js:2138
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:903 templates/js/translated/order.js:1491
+#: templates/js/translated/order.js:1068 templates/js/translated/order.js:2163
#: templates/js/translated/part.js:1775 templates/js/translated/part.js:1986
msgid "Unit Price"
msgstr ""
-#: templates/js/translated/order.js:918 templates/js/translated/order.js:1507
+#: templates/js/translated/order.js:1083 templates/js/translated/order.js:2179
msgid "Total Price"
msgstr ""
-#: templates/js/translated/order.js:996 templates/js/translated/order.js:1616
+#: templates/js/translated/order.js:1161 templates/js/translated/order.js:2313
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:997
+#: templates/js/translated/order.js:1162 templates/js/translated/order.js:2317
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:1001 templates/js/translated/part.js:878
+#: templates/js/translated/order.js:1166 templates/js/translated/part.js:878
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:1038
+#: templates/js/translated/order.js:1206
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:1076
+#: templates/js/translated/order.js:1244
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:1154
+#: templates/js/translated/order.js:1322
+msgid "Edit shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1325
+msgid "Complete shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1330
+msgid "Delete shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1350
+msgid "Edit Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1367
+msgid "Delete Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1401
+msgid "No matching shipments found"
+msgstr ""
+
+#: templates/js/translated/order.js:1411
+msgid "Shipment Reference"
+msgstr ""
+
+#: templates/js/translated/order.js:1435
+msgid "Not shipped"
+msgstr ""
+
+#: templates/js/translated/order.js:1441
+msgid "Tracking"
+msgstr ""
+
+#: templates/js/translated/order.js:1601
+msgid "Allocate Stock Items to Sales Order"
+msgstr ""
+
+#: templates/js/translated/order.js:1809
msgid "No sales order allocations found"
msgstr ""
-#: templates/js/translated/order.js:1247
+#: templates/js/translated/order.js:1898
msgid "Edit Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1264
+#: templates/js/translated/order.js:1915
msgid "Confirm Delete Operation"
msgstr ""
-#: templates/js/translated/order.js:1265
+#: templates/js/translated/order.js:1916
msgid "Delete Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1307
+#: templates/js/translated/order.js:1959 templates/js/translated/order.js:2048
+#: templates/js/translated/stock.js:1249
+msgid "Shipped to customer"
+msgstr ""
+
+#: templates/js/translated/order.js:1967 templates/js/translated/order.js:2057
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:1556
-msgid "Fulfilled"
-msgstr ""
-
-#: templates/js/translated/order.js:1600
+#: templates/js/translated/order.js:2297
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:1606
+#: templates/js/translated/order.js:2303
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:1613 templates/js/translated/order.js:1792
+#: templates/js/translated/order.js:2310 templates/js/translated/order.js:2476
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:1617
-msgid "Delete line item "
+#: templates/js/translated/order.js:2321
+msgid "Cannot be deleted as items have been shipped"
msgstr ""
-#: templates/js/translated/order.js:1740
-msgid "Allocate Stock Item"
+#: templates/js/translated/order.js:2324
+msgid "Cannot be deleted as items have been allocated"
msgstr ""
-#: templates/js/translated/order.js:1800
+#: templates/js/translated/order.js:2382
+msgid "Allocate Serial Numbers"
+msgstr ""
+
+#: templates/js/translated/order.js:2484
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:1814
+#: templates/js/translated/order.js:2498
msgid "No matching line items"
msgstr ""
@@ -7826,12 +8223,12 @@ msgid "No category"
msgstr ""
#: templates/js/translated/part.js:1230
-#: templates/js/translated/table_filters.js:381
+#: templates/js/translated/table_filters.js:412
msgid "Low stock"
msgstr ""
#: templates/js/translated/part.js:1321 templates/js/translated/part.js:1493
-#: templates/js/translated/stock.js:1914
+#: templates/js/translated/stock.js:2089
msgid "Display as list"
msgstr ""
@@ -7839,7 +8236,7 @@ msgstr ""
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1512 templates/js/translated/stock.js:1933
+#: templates/js/translated/part.js:1512 templates/js/translated/stock.js:2108
msgid "Display as tree"
msgstr ""
@@ -7847,7 +8244,7 @@ msgstr ""
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:1590 templates/js/translated/stock.js:1977
+#: templates/js/translated/part.js:1590 templates/js/translated/stock.js:2152
msgid "Path"
msgstr ""
@@ -7855,11 +8252,11 @@ msgstr ""
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1685 templates/js/translated/stock.js:898
+#: templates/js/translated/part.js:1685 templates/js/translated/stock.js:1055
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1686 templates/js/translated/stock.js:899
+#: templates/js/translated/part.js:1686 templates/js/translated/stock.js:1056
msgid "Delete test result"
msgstr ""
@@ -7898,6 +8295,10 @@ msgstr ""
msgid "Single Price Difference"
msgstr ""
+#: templates/js/translated/plugin.js:22
+msgid "The Plugin was installed"
+msgstr ""
+
#: templates/js/translated/report.js:67
msgid "items selected"
msgstr ""
@@ -7964,300 +8365,316 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/stock.js:71
+#: templates/js/translated/stock.js:72
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:89 templates/js/translated/stock.js:168
+#: templates/js/translated/stock.js:90 templates/js/translated/stock.js:172
msgid "Next available serial number"
msgstr ""
-#: templates/js/translated/stock.js:91 templates/js/translated/stock.js:170
+#: templates/js/translated/stock.js:92 templates/js/translated/stock.js:174
msgid "Latest serial number"
msgstr ""
-#: templates/js/translated/stock.js:105
+#: templates/js/translated/stock.js:100
+msgid "Confirm Stock Serialization"
+msgstr ""
+
+#: templates/js/translated/stock.js:109
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:141
+#: templates/js/translated/stock.js:145
msgid "New Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:181
+#: templates/js/translated/stock.js:185
msgid "This part cannot be serialized"
msgstr ""
-#: templates/js/translated/stock.js:220
+#: templates/js/translated/stock.js:224
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: templates/js/translated/stock.js:226
+#: templates/js/translated/stock.js:230
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: templates/js/translated/stock.js:369
+#: templates/js/translated/stock.js:373
msgid "Created new stock item"
msgstr ""
-#: templates/js/translated/stock.js:382
+#: templates/js/translated/stock.js:386
msgid "Created multiple stock items"
msgstr ""
-#: templates/js/translated/stock.js:407
+#: templates/js/translated/stock.js:411
msgid "Find Serial Number"
msgstr ""
-#: templates/js/translated/stock.js:411 templates/js/translated/stock.js:412
+#: templates/js/translated/stock.js:415 templates/js/translated/stock.js:416
msgid "Enter serial number"
msgstr ""
-#: templates/js/translated/stock.js:428
+#: templates/js/translated/stock.js:432
msgid "Enter a serial number"
msgstr ""
-#: templates/js/translated/stock.js:448
+#: templates/js/translated/stock.js:452
msgid "No matching serial number"
msgstr ""
-#: templates/js/translated/stock.js:457
+#: templates/js/translated/stock.js:461
msgid "More than one matching result found"
msgstr ""
-#: templates/js/translated/stock.js:502
+#: templates/js/translated/stock.js:506
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:513
+#: templates/js/translated/stock.js:517
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:514
+#: templates/js/translated/stock.js:518
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:556
+#: templates/js/translated/stock.js:627
+msgid "Confirm stock assignment"
+msgstr ""
+
+#: templates/js/translated/stock.js:628
+msgid "Assign Stock to Customer"
+msgstr ""
+
+#: templates/js/translated/stock.js:713
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:557
+#: templates/js/translated/stock.js:714
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:563
+#: templates/js/translated/stock.js:720
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:564
+#: templates/js/translated/stock.js:721
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:568
+#: templates/js/translated/stock.js:725
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:569
+#: templates/js/translated/stock.js:726
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:573
+#: templates/js/translated/stock.js:730
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:574 users/models.py:200
+#: templates/js/translated/stock.js:731 users/models.py:202
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:578 templates/stock_table.html:56
+#: templates/js/translated/stock.js:735 templates/stock_table.html:57
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:667
+#: templates/js/translated/stock.js:824
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:667
+#: templates/js/translated/stock.js:824
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:707
+#: templates/js/translated/stock.js:864
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:865
+#: templates/js/translated/stock.js:1022
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:867
+#: templates/js/translated/stock.js:1024
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:872
+#: templates/js/translated/stock.js:1029
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:894
+#: templates/js/translated/stock.js:1051
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:920
+#: templates/js/translated/stock.js:1077
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:977
+#: templates/js/translated/stock.js:1134
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:1084
+#: templates/js/translated/stock.js:1241
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:1088
+#: templates/js/translated/stock.js:1245
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:1092
-msgid "Shipped to customer"
-msgstr ""
-
-#: templates/js/translated/stock.js:1096
+#: templates/js/translated/stock.js:1253
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:1102
+#: templates/js/translated/stock.js:1259
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:1260
+#: templates/js/translated/stock.js:1417
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1265
+#: templates/js/translated/stock.js:1422
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1268
+#: templates/js/translated/stock.js:1425
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1272
+#: templates/js/translated/stock.js:1429
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1274
+#: templates/js/translated/stock.js:1431
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1278
-msgid "Stock item has been allocated"
+#: templates/js/translated/stock.js:1437
+msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1282
+#: templates/js/translated/stock.js:1439
+msgid "Stock item has been fully allocated"
+msgstr ""
+
+#: templates/js/translated/stock.js:1441
+msgid "Stock item has been partially allocated"
+msgstr ""
+
+#: templates/js/translated/stock.js:1446
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1289
+#: templates/js/translated/stock.js:1453
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1291
+#: templates/js/translated/stock.js:1455
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1293
+#: templates/js/translated/stock.js:1457
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1297
-#: templates/js/translated/table_filters.js:183
+#: templates/js/translated/stock.js:1461
+#: templates/js/translated/table_filters.js:188
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1347
+#: templates/js/translated/stock.js:1511
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1420
+#: templates/js/translated/stock.js:1584
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1458
+#: templates/js/translated/stock.js:1622
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1479 templates/js/translated/stock.js:1527
+#: templates/js/translated/stock.js:1643 templates/js/translated/stock.js:1691
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1567
+#: templates/js/translated/stock.js:1731
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1594
+#: templates/js/translated/stock.js:1758
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:1596
+#: templates/js/translated/stock.js:1760
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:1770
+#: templates/js/translated/stock.js:1945
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:1784
+#: templates/js/translated/stock.js:1959
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:1785
+#: templates/js/translated/stock.js:1960
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:2009
+#: templates/js/translated/stock.js:2184
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:2031
+#: templates/js/translated/stock.js:2206
msgid "Details"
msgstr ""
-#: templates/js/translated/stock.js:2056
+#: templates/js/translated/stock.js:2231
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2075
+#: templates/js/translated/stock.js:2250
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2094
+#: templates/js/translated/stock.js:2269
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2112
+#: templates/js/translated/stock.js:2287
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2135
+#: templates/js/translated/stock.js:2310
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2143
+#: templates/js/translated/stock.js:2318
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2184
+#: templates/js/translated/stock.js:2359
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2185
+#: templates/js/translated/stock.js:2360
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2236
+#: templates/js/translated/stock.js:2411
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2287
+#: templates/js/translated/stock.js:2462
msgid "Uninstall Stock Item"
msgstr ""
@@ -8278,7 +8695,7 @@ msgid "Allow Variant Stock"
msgstr ""
#: templates/js/translated/table_filters.js:110
-#: templates/js/translated/table_filters.js:178
+#: templates/js/translated/table_filters.js:183
msgid "Include sublocations"
msgstr ""
@@ -8288,54 +8705,54 @@ msgstr ""
#: templates/js/translated/table_filters.js:121
#: templates/js/translated/table_filters.js:122
-#: templates/js/translated/table_filters.js:358
+#: templates/js/translated/table_filters.js:389
msgid "Include subcategories"
msgstr ""
#: templates/js/translated/table_filters.js:126
-#: templates/js/translated/table_filters.js:393
+#: templates/js/translated/table_filters.js:424
msgid "Subscribed"
msgstr ""
#: templates/js/translated/table_filters.js:136
-#: templates/js/translated/table_filters.js:213
+#: templates/js/translated/table_filters.js:218
msgid "Is Serialized"
msgstr ""
#: templates/js/translated/table_filters.js:139
-#: templates/js/translated/table_filters.js:220
+#: templates/js/translated/table_filters.js:225
msgid "Serial number GTE"
msgstr ""
#: templates/js/translated/table_filters.js:140
-#: templates/js/translated/table_filters.js:221
+#: templates/js/translated/table_filters.js:226
msgid "Serial number greater than or equal to"
msgstr ""
#: templates/js/translated/table_filters.js:143
-#: templates/js/translated/table_filters.js:224
+#: templates/js/translated/table_filters.js:229
msgid "Serial number LTE"
msgstr ""
#: templates/js/translated/table_filters.js:144
-#: templates/js/translated/table_filters.js:225
+#: templates/js/translated/table_filters.js:230
msgid "Serial number less than or equal to"
msgstr ""
#: templates/js/translated/table_filters.js:147
#: templates/js/translated/table_filters.js:148
-#: templates/js/translated/table_filters.js:216
-#: templates/js/translated/table_filters.js:217
+#: templates/js/translated/table_filters.js:221
+#: templates/js/translated/table_filters.js:222
msgid "Serial number"
msgstr ""
#: templates/js/translated/table_filters.js:152
-#: templates/js/translated/table_filters.js:234
+#: templates/js/translated/table_filters.js:239
msgid "Batch code"
msgstr ""
#: templates/js/translated/table_filters.js:163
-#: templates/js/translated/table_filters.js:348
+#: templates/js/translated/table_filters.js:379
msgid "Active parts"
msgstr ""
@@ -8356,101 +8773,111 @@ msgid "Item has been allocated"
msgstr ""
#: templates/js/translated/table_filters.js:179
-msgid "Include stock in sublocations"
+msgid "Stock is available for use"
msgstr ""
#: templates/js/translated/table_filters.js:184
-msgid "Show stock items which are depleted"
+msgid "Include stock in sublocations"
msgstr ""
#: templates/js/translated/table_filters.js:189
-msgid "Show items which are in stock"
-msgstr ""
-
-#: templates/js/translated/table_filters.js:193
-msgid "In Production"
+msgid "Show stock items which are depleted"
msgstr ""
#: templates/js/translated/table_filters.js:194
-msgid "Show items which are in production"
+msgid "Show items which are in stock"
msgstr ""
#: templates/js/translated/table_filters.js:198
-msgid "Include Variants"
+msgid "In Production"
msgstr ""
#: templates/js/translated/table_filters.js:199
-msgid "Include stock items for variant parts"
+msgid "Show items which are in production"
msgstr ""
#: templates/js/translated/table_filters.js:203
-msgid "Installed"
+msgid "Include Variants"
msgstr ""
#: templates/js/translated/table_filters.js:204
-msgid "Show stock items which are installed in another item"
+msgid "Include stock items for variant parts"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:208
+msgid "Installed"
msgstr ""
#: templates/js/translated/table_filters.js:209
+msgid "Show stock items which are installed in another item"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:214
msgid "Show items which have been assigned to a customer"
msgstr ""
-#: templates/js/translated/table_filters.js:229
-#: templates/js/translated/table_filters.js:230
+#: templates/js/translated/table_filters.js:234
+#: templates/js/translated/table_filters.js:235
msgid "Stock status"
msgstr ""
-#: templates/js/translated/table_filters.js:238
+#: templates/js/translated/table_filters.js:243
msgid "Has purchase price"
msgstr ""
-#: templates/js/translated/table_filters.js:239
+#: templates/js/translated/table_filters.js:244
msgid "Show stock items which have a purchase price set"
msgstr ""
-#: templates/js/translated/table_filters.js:248
+#: templates/js/translated/table_filters.js:253
msgid "Show stock items which have expired"
msgstr ""
-#: templates/js/translated/table_filters.js:254
+#: templates/js/translated/table_filters.js:259
msgid "Show stock which is close to expiring"
msgstr ""
-#: templates/js/translated/table_filters.js:285
+#: templates/js/translated/table_filters.js:290
msgid "Build status"
msgstr ""
-#: templates/js/translated/table_filters.js:313
-#: templates/js/translated/table_filters.js:330
+#: templates/js/translated/table_filters.js:303
+#: templates/js/translated/table_filters.js:344
+msgid "Assigned to me"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:320
+#: templates/js/translated/table_filters.js:331
+#: templates/js/translated/table_filters.js:352
msgid "Order status"
msgstr ""
-#: templates/js/translated/table_filters.js:318
-#: templates/js/translated/table_filters.js:335
+#: templates/js/translated/table_filters.js:336
+#: templates/js/translated/table_filters.js:357
msgid "Outstanding"
msgstr ""
-#: templates/js/translated/table_filters.js:359
+#: templates/js/translated/table_filters.js:390
msgid "Include parts in subcategories"
msgstr ""
-#: templates/js/translated/table_filters.js:363
+#: templates/js/translated/table_filters.js:394
msgid "Has IPN"
msgstr ""
-#: templates/js/translated/table_filters.js:364
+#: templates/js/translated/table_filters.js:395
msgid "Part has internal part number"
msgstr ""
-#: templates/js/translated/table_filters.js:369
+#: templates/js/translated/table_filters.js:400
msgid "Show active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:377
+#: templates/js/translated/table_filters.js:408
msgid "Stock available"
msgstr ""
-#: templates/js/translated/table_filters.js:405
+#: templates/js/translated/table_filters.js:436
msgid "Purchasable"
msgstr ""
@@ -8507,27 +8934,23 @@ msgstr ""
msgid "All"
msgstr ""
-#: templates/navbar.html:40
+#: templates/navbar.html:42
msgid "Buy"
msgstr ""
-#: templates/navbar.html:52
+#: templates/navbar.html:54
msgid "Sell"
msgstr ""
-#: templates/navbar.html:86 users/models.py:39
-msgid "Admin"
-msgstr ""
-
-#: templates/navbar.html:88
+#: templates/navbar.html:113
msgid "Logout"
msgstr ""
-#: templates/navbar.html:90
+#: templates/navbar.html:115
msgid "Login"
msgstr ""
-#: templates/navbar.html:111
+#: templates/navbar.html:136
msgid "About InvenTree"
msgstr ""
@@ -8639,15 +9062,15 @@ msgstr ""
msgid "Order selected items"
msgstr ""
-#: templates/stock_table.html:53
+#: templates/stock_table.html:54
msgid "Change status"
msgstr ""
-#: templates/stock_table.html:53
+#: templates/stock_table.html:54
msgid "Change stock status"
msgstr ""
-#: templates/stock_table.html:56
+#: templates/stock_table.html:57
msgid "Delete selected items"
msgstr ""
@@ -8683,35 +9106,35 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:187
+#: users/models.py:189
msgid "Permission set"
msgstr ""
-#: users/models.py:195
+#: users/models.py:197
msgid "Group"
msgstr ""
-#: users/models.py:198
+#: users/models.py:200
msgid "View"
msgstr ""
-#: users/models.py:198
+#: users/models.py:200
msgid "Permission to view items"
msgstr ""
-#: users/models.py:200
+#: users/models.py:202
msgid "Permission to add items"
msgstr ""
-#: users/models.py:202
+#: users/models.py:204
msgid "Change"
msgstr ""
-#: users/models.py:202
+#: users/models.py:204
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:204
+#: users/models.py:206
msgid "Permission to delete items"
msgstr ""
diff --git a/InvenTree/locale/id/LC_MESSAGES/django.po b/InvenTree/locale/id/LC_MESSAGES/django.po
index cfcf2e1d88..6ee9158635 100644
--- a/InvenTree/locale/id/LC_MESSAGES/django.po
+++ b/InvenTree/locale/id/LC_MESSAGES/django.po
@@ -1,9 +1,10 @@
+#: templates/js/translated/order.js:1973
msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-12-03 10:37+0000\n"
-"PO-Revision-Date: 2021-12-03 11:25\n"
+"POT-Creation-Date: 2021-12-08 23:43+0000\n"
+"PO-Revision-Date: 2021-12-08 23:47\n"
"Last-Translator: \n"
"Language-Team: Indonesian\n"
"Language: id_ID\n"
@@ -34,8 +35,8 @@ msgid "Enter date"
msgstr "Masukkan tanggal"
#: InvenTree/forms.py:120 build/forms.py:48 build/forms.py:69 build/forms.py:93
-#: order/forms.py:26 order/forms.py:37 order/forms.py:48 order/forms.py:59
-#: order/forms.py:70 part/forms.py:108 templates/account/email_confirm.html:20
+#: order/forms.py:24 order/forms.py:35 order/forms.py:46 order/forms.py:57
+#: part/forms.py:108 templates/account/email_confirm.html:20
#: templates/js/translated/forms.js:595
msgid "Confirm"
msgstr "Konfirmasi"
@@ -85,8 +86,8 @@ msgstr ""
msgid "Duplicate serial: {n}"
msgstr ""
-#: InvenTree/helpers.py:437 order/models.py:318 order/models.py:440
-#: stock/views.py:1264
+#: InvenTree/helpers.py:437 order/models.py:279 order/models.py:420
+#: stock/views.py:1231
msgid "Invalid quantity provided"
msgstr ""
@@ -122,7 +123,7 @@ msgstr ""
msgid "Missing external link"
msgstr ""
-#: InvenTree/models.py:132 stock/models.py:1864
+#: InvenTree/models.py:132 stock/models.py:1852
#: templates/js/translated/attachment.js:117
msgid "Attachment"
msgstr ""
@@ -132,7 +133,7 @@ msgid "Select file to attach"
msgstr ""
#: InvenTree/models.py:139 company/models.py:131 company/models.py:348
-#: company/models.py:564 order/models.py:163 part/models.py:797
+#: company/models.py:564 order/models.py:124 part/models.py:797
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:537
#: templates/js/translated/company.js:826 templates/js/translated/part.js:1258
@@ -140,7 +141,7 @@ msgid "Link"
msgstr ""
#: InvenTree/models.py:140 build/models.py:330 part/models.py:798
-#: stock/models.py:530
+#: stock/models.py:524
msgid "Link to external URL"
msgstr ""
@@ -152,10 +153,10 @@ msgstr ""
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1185
-#: common/models.py:1186 part/models.py:2205 part/models.py:2225
+#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1213
+#: common/models.py:1214 part/models.py:2205 part/models.py:2225
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2166
+#: templates/js/translated/stock.js:2341
msgid "User"
msgstr ""
@@ -194,10 +195,15 @@ msgstr ""
#: InvenTree/models.py:277 InvenTree/models.py:278 company/models.py:415
#: label/models.py:112 part/models.py:741 part/models.py:2389
-#: report/models.py:181 templates/InvenTree/settings/settings.html:259
+#: plugin/models.py:39 report/models.py:181
+#: templates/InvenTree/settings/mixins/urls.html:11
+#: templates/InvenTree/settings/plugin.html:47
+#: templates/InvenTree/settings/plugin.html:124
+#: templates/InvenTree/settings/plugin_settings.html:23
+#: templates/InvenTree/settings/settings.html:268
#: templates/js/translated/company.js:638 templates/js/translated/part.js:506
#: templates/js/translated/part.js:643 templates/js/translated/part.js:1565
-#: templates/js/translated/stock.js:1959
+#: templates/js/translated/stock.js:2134
msgid "Name"
msgstr ""
@@ -206,22 +212,23 @@ msgstr ""
#: company/models.py:570 company/templates/company/company_base.html:68
#: company/templates/company/manufacturer_part.html:76
#: company/templates/company/supplier_part.html:73 label/models.py:119
-#: order/models.py:161 part/models.py:764 part/templates/part/category.html:70
+#: order/models.py:122 part/models.py:764 part/templates/part/category.html:70
#: part/templates/part/part_base.html:163
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:553 report/models.py:592
#: report/templates/report/inventree_build_order_base.html:118
-#: stock/templates/stock/location.html:89 templates/js/translated/bom.js:215
-#: templates/js/translated/bom.js:428 templates/js/translated/build.js:1621
-#: templates/js/translated/company.js:345
+#: stock/templates/stock/location.html:89
+#: templates/InvenTree/settings/plugin_settings.html:33
+#: templates/js/translated/bom.js:215 templates/js/translated/bom.js:428
+#: templates/js/translated/build.js:1627 templates/js/translated/company.js:345
#: templates/js/translated/company.js:548
-#: templates/js/translated/company.js:837 templates/js/translated/order.js:680
-#: templates/js/translated/order.js:854 templates/js/translated/order.js:1090
+#: templates/js/translated/company.js:837 templates/js/translated/order.js:836
+#: templates/js/translated/order.js:1019 templates/js/translated/order.js:1258
#: templates/js/translated/part.js:565 templates/js/translated/part.js:933
#: templates/js/translated/part.js:1018 templates/js/translated/part.js:1188
#: templates/js/translated/part.js:1584 templates/js/translated/part.js:1653
-#: templates/js/translated/stock.js:1233 templates/js/translated/stock.js:1971
-#: templates/js/translated/stock.js:2016
+#: templates/js/translated/stock.js:1390 templates/js/translated/stock.js:2146
+#: templates/js/translated/stock.js:2191
msgid "Description"
msgstr ""
@@ -241,83 +248,83 @@ msgstr ""
msgid "Filename"
msgstr ""
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:689
msgid "German"
msgstr ""
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:690
msgid "Greek"
msgstr ""
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:691
msgid "English"
msgstr ""
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:692
msgid "Spanish"
msgstr ""
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:693
msgid "Spanish (Mexican)"
msgstr ""
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:694
msgid "French"
msgstr ""
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:695
msgid "Hebrew"
msgstr ""
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:696
msgid "Italian"
msgstr ""
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:697
msgid "Japanese"
msgstr ""
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:698
msgid "Korean"
msgstr ""
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:699
msgid "Dutch"
msgstr ""
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:700
msgid "Norwegian"
msgstr ""
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:701
msgid "Polish"
msgstr ""
-#: InvenTree/settings.py:683
+#: InvenTree/settings.py:702
msgid "Portugese"
msgstr ""
-#: InvenTree/settings.py:684
+#: InvenTree/settings.py:703
msgid "Russian"
msgstr ""
-#: InvenTree/settings.py:685
+#: InvenTree/settings.py:704
msgid "Swedish"
msgstr ""
-#: InvenTree/settings.py:686
+#: InvenTree/settings.py:705
msgid "Thai"
msgstr ""
-#: InvenTree/settings.py:687
+#: InvenTree/settings.py:706
msgid "Turkish"
msgstr ""
-#: InvenTree/settings.py:688
+#: InvenTree/settings.py:707
msgid "Vietnamese"
msgstr ""
-#: InvenTree/settings.py:689
+#: InvenTree/settings.py:708
msgid "Chinese"
msgstr ""
@@ -334,7 +341,7 @@ msgid "InvenTree system health checks failed"
msgstr ""
#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142
-#: InvenTree/status_codes.py:311
+#: InvenTree/status_codes.py:311 templates/js/translated/table_filters.js:313
msgid "Pending"
msgstr ""
@@ -343,6 +350,8 @@ msgid "Placed"
msgstr ""
#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:314
+#: order/templates/order/order_base.html:128
+#: order/templates/order/sales_order_base.html:132
msgid "Complete"
msgstr ""
@@ -361,8 +370,8 @@ msgstr ""
msgid "Returned"
msgstr ""
-#: InvenTree/status_codes.py:143
-#: order/templates/order/sales_order_base.html:148
+#: InvenTree/status_codes.py:143 order/models.py:939
+#: templates/js/translated/order.js:1980 templates/js/translated/order.js:2255
msgid "Shipped"
msgstr ""
@@ -442,7 +451,7 @@ msgstr ""
msgid "Split child item"
msgstr ""
-#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:208
+#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:213
msgid "Sent to customer"
msgstr ""
@@ -522,55 +531,55 @@ msgstr ""
msgid "Password fields must match"
msgstr ""
-#: InvenTree/views.py:883 templates/navbar.html:101
+#: InvenTree/views.py:883 templates/navbar.html:126
msgid "System Information"
msgstr ""
-#: barcodes/api.py:53 barcodes/api.py:150
+#: barcodes/api.py:54 barcodes/api.py:151
msgid "Must provide barcode_data parameter"
msgstr ""
-#: barcodes/api.py:126
+#: barcodes/api.py:127
msgid "No match found for barcode data"
msgstr ""
-#: barcodes/api.py:128
+#: barcodes/api.py:129
msgid "Match found for barcode data"
msgstr ""
-#: barcodes/api.py:153
+#: barcodes/api.py:154
msgid "Must provide stockitem parameter"
msgstr ""
-#: barcodes/api.py:160
+#: barcodes/api.py:161
msgid "No matching stock item found"
msgstr ""
-#: barcodes/api.py:190
-msgid "Barcode already matches StockItem object"
+#: barcodes/api.py:191
+msgid "Barcode already matches Stock Item"
msgstr ""
-#: barcodes/api.py:194
-msgid "Barcode already matches StockLocation object"
+#: barcodes/api.py:195
+msgid "Barcode already matches Stock Location"
msgstr ""
-#: barcodes/api.py:198
-msgid "Barcode already matches Part object"
+#: barcodes/api.py:199
+msgid "Barcode already matches Part"
msgstr ""
-#: barcodes/api.py:204 barcodes/api.py:216
-msgid "Barcode hash already matches StockItem object"
+#: barcodes/api.py:205 barcodes/api.py:217
+msgid "Barcode hash already matches Stock Item"
msgstr ""
-#: barcodes/api.py:222
-msgid "Barcode associated with StockItem"
+#: barcodes/api.py:223
+msgid "Barcode associated with Stock Item"
msgstr ""
#: build/forms.py:36 build/models.py:1283
#: build/templates/build/build_base.html:132
-#: build/templates/build/detail.html:35 common/models.py:1225
+#: build/templates/build/detail.html:35 common/models.py:1253
#: company/forms.py:42 company/templates/company/supplier_part.html:251
-#: order/forms.py:102 order/models.py:729 order/models.py:991
+#: order/models.py:794 order/models.py:1205 order/serializers.py:810
#: order/templates/order/order_wizard/match_parts.html:30
#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:223
#: part/forms.py:239 part/forms.py:255 part/models.py:2576
@@ -582,20 +591,23 @@ msgstr ""
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:81
#: report/templates/report/inventree_test_report_base.html:139
-#: stock/forms.py:156 stock/serializers.py:291
+#: stock/forms.py:142 stock/serializers.py:293
#: stock/templates/stock/item_base.html:174
+#: stock/templates/stock/item_base.html:255
+#: stock/templates/stock/item_base.html:263
#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443
-#: templates/js/translated/build.js:235 templates/js/translated/build.js:435
-#: templates/js/translated/build.js:629 templates/js/translated/build.js:639
-#: templates/js/translated/build.js:1015 templates/js/translated/build.js:1362
+#: templates/js/translated/build.js:240 templates/js/translated/build.js:440
+#: templates/js/translated/build.js:634 templates/js/translated/build.js:644
+#: templates/js/translated/build.js:1020 templates/js/translated/build.js:1367
#: templates/js/translated/model_renderers.js:99
-#: templates/js/translated/order.js:891 templates/js/translated/order.js:1204
-#: templates/js/translated/order.js:1282 templates/js/translated/order.js:1289
-#: templates/js/translated/order.js:1378 templates/js/translated/order.js:1478
-#: templates/js/translated/part.js:843 templates/js/translated/part.js:1796
-#: templates/js/translated/part.js:1919 templates/js/translated/part.js:1997
-#: templates/js/translated/stock.js:378 templates/js/translated/stock.js:2151
-#: templates/js/translated/stock.js:2253
+#: templates/js/translated/order.js:101 templates/js/translated/order.js:1056
+#: templates/js/translated/order.js:1578 templates/js/translated/order.js:1859
+#: templates/js/translated/order.js:1947 templates/js/translated/order.js:2036
+#: templates/js/translated/order.js:2150 templates/js/translated/part.js:843
+#: templates/js/translated/part.js:1796 templates/js/translated/part.js:1919
+#: templates/js/translated/part.js:1997 templates/js/translated/stock.js:382
+#: templates/js/translated/stock.js:579 templates/js/translated/stock.js:2326
+#: templates/js/translated/stock.js:2428
msgid "Quantity"
msgstr ""
@@ -603,9 +615,9 @@ msgstr ""
msgid "Enter quantity for build output"
msgstr ""
-#: build/forms.py:41 order/forms.py:96 stock/forms.py:95
-#: stock/serializers.py:312 templates/js/translated/stock.js:225
-#: templates/js/translated/stock.js:379
+#: build/forms.py:41 order/serializers.py:814 stock/forms.py:81
+#: stock/serializers.py:314 templates/js/translated/stock.js:229
+#: templates/js/translated/stock.js:383
msgid "Serial Numbers"
msgstr ""
@@ -640,17 +652,17 @@ msgstr ""
#: build/models.py:137 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:397
+#: templates/js/translated/build.js:402
msgid "Build Order"
msgstr ""
#: build/models.py:138 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
-#: order/templates/order/sales_order_detail.html:42
-#: order/templates/order/so_sidebar.html:7
+#: order/templates/order/sales_order_detail.html:92
+#: order/templates/order/so_sidebar.html:13
#: part/templates/part/part_sidebar.html:20 templates/InvenTree/index.html:221
#: templates/InvenTree/search.html:145
-#: templates/InvenTree/settings/sidebar.html:42 users/models.py:44
+#: templates/InvenTree/settings/sidebar.html:43 users/models.py:44
msgid "Build Orders"
msgstr ""
@@ -658,13 +670,13 @@ msgstr ""
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:199 order/models.py:249 order/models.py:556
-#: order/models.py:736 part/models.py:2585
+#: build/models.py:199 order/models.py:210 order/models.py:536
+#: order/models.py:801 part/models.py:2585
#: part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1119
-#: templates/js/translated/order.js:885 templates/js/translated/order.js:1472
+#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1124
+#: templates/js/translated/order.js:1050 templates/js/translated/order.js:2144
msgid "Reference"
msgstr ""
@@ -683,7 +695,7 @@ msgstr ""
#: build/models.py:225 build/templates/build/build_base.html:77
#: build/templates/build/detail.html:30 company/models.py:705
-#: order/models.py:789 order/models.py:860
+#: order/models.py:854 order/models.py:928
#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357
#: part/models.py:2151 part/models.py:2167 part/models.py:2186
#: part/models.py:2203 part/models.py:2305 part/models.py:2427
@@ -698,14 +710,16 @@ msgstr ""
#: templates/email/build_order_required_stock.html:17
#: templates/email/low_stock_notification.html:16
#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:214
-#: templates/js/translated/bom.js:393 templates/js/translated/build.js:620
-#: templates/js/translated/build.js:988 templates/js/translated/build.js:1359
-#: templates/js/translated/build.js:1626 templates/js/translated/company.js:489
-#: templates/js/translated/company.js:746 templates/js/translated/order.js:426
-#: templates/js/translated/order.js:839 templates/js/translated/order.js:1456
-#: templates/js/translated/part.js:918 templates/js/translated/part.js:999
-#: templates/js/translated/part.js:1166 templates/js/translated/stock.js:590
-#: templates/js/translated/stock.js:1190 templates/js/translated/stock.js:2241
+#: templates/js/translated/bom.js:393 templates/js/translated/build.js:625
+#: templates/js/translated/build.js:993 templates/js/translated/build.js:1364
+#: templates/js/translated/build.js:1632 templates/js/translated/company.js:489
+#: templates/js/translated/company.js:746 templates/js/translated/order.js:84
+#: templates/js/translated/order.js:586 templates/js/translated/order.js:1004
+#: templates/js/translated/order.js:1576 templates/js/translated/order.js:1933
+#: templates/js/translated/order.js:2128 templates/js/translated/part.js:918
+#: templates/js/translated/part.js:999 templates/js/translated/part.js:1166
+#: templates/js/translated/stock.js:553 templates/js/translated/stock.js:747
+#: templates/js/translated/stock.js:1347 templates/js/translated/stock.js:2416
msgid "Part"
msgstr ""
@@ -721,7 +735,8 @@ msgstr ""
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:247 templates/js/translated/build.js:1347
+#: build/models.py:247 templates/js/translated/build.js:1352
+#: templates/js/translated/order.js:1564
msgid "Source Location"
msgstr ""
@@ -761,7 +776,7 @@ msgstr ""
msgid "Build status code"
msgstr ""
-#: build/models.py:285 stock/models.py:534
+#: build/models.py:285 stock/models.py:528
msgid "Batch Code"
msgstr ""
@@ -769,12 +784,12 @@ msgstr ""
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:292 order/models.py:165 part/models.py:936
-#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1103
+#: build/models.py:292 order/models.py:126 part/models.py:936
+#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1271
msgid "Creation Date"
msgstr ""
-#: build/models.py:296 order/models.py:578
+#: build/models.py:296 order/models.py:558
msgid "Target completion date"
msgstr ""
@@ -782,8 +797,8 @@ msgstr ""
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/models.py:300 order/models.py:291
-#: templates/js/translated/build.js:1697
+#: build/models.py:300 order/models.py:252
+#: templates/js/translated/build.js:1703
msgid "Completion Date"
msgstr ""
@@ -791,7 +806,7 @@ msgstr ""
msgid "completed by"
msgstr ""
-#: build/models.py:314 templates/js/translated/build.js:1668
+#: build/models.py:314 templates/js/translated/build.js:1674
msgid "Issued by"
msgstr ""
@@ -800,11 +815,11 @@ msgid "User who issued this build order"
msgstr ""
#: build/models.py:323 build/templates/build/build_base.html:185
-#: build/templates/build/detail.html:116 order/models.py:179
-#: order/templates/order/order_base.html:158
-#: order/templates/order/sales_order_base.html:162 part/models.py:940
+#: build/templates/build/detail.html:116 order/models.py:140
+#: order/templates/order/order_base.html:170
+#: order/templates/order/sales_order_base.html:182 part/models.py:940
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:1680 templates/js/translated/order.js:699
+#: templates/js/translated/build.js:1686 templates/js/translated/order.js:864
msgid "Responsible"
msgstr ""
@@ -815,7 +830,7 @@ msgstr ""
#: build/models.py:329 build/templates/build/detail.html:102
#: company/templates/company/manufacturer_part.html:102
#: company/templates/company/supplier_part.html:126
-#: part/templates/part/part_base.html:354 stock/models.py:528
+#: part/templates/part/part_base.html:354 stock/models.py:522
#: stock/templates/stock/item_base.html:374
msgid "External Link"
msgstr ""
@@ -823,18 +838,19 @@ msgstr ""
#: build/models.py:334 build/serializers.py:201
#: build/templates/build/sidebar.html:21 company/models.py:142
#: company/models.py:577 company/templates/company/sidebar.html:25
-#: order/models.py:183 order/models.py:738
+#: order/models.py:144 order/models.py:803 order/models.py:1049
#: order/templates/order/po_sidebar.html:11
-#: order/templates/order/so_sidebar.html:11 part/models.py:925
+#: order/templates/order/so_sidebar.html:17 part/models.py:925
#: part/templates/part/detail.html:116 part/templates/part/part_sidebar.html:50
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/forms.py:154 stock/forms.py:204 stock/forms.py:238 stock/models.py:600
-#: stock/models.py:1764 stock/models.py:1870 stock/serializers.py:330
-#: stock/serializers.py:588 stock/templates/stock/stock_sidebar.html:21
+#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:594
+#: stock/models.py:1752 stock/models.py:1858 stock/serializers.py:332
+#: stock/serializers.py:624 stock/serializers.py:711
+#: stock/templates/stock/stock_sidebar.html:21
#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599
-#: templates/js/translated/company.js:842 templates/js/translated/order.js:984
-#: templates/js/translated/order.js:1582 templates/js/translated/stock.js:973
-#: templates/js/translated/stock.js:1452
+#: templates/js/translated/company.js:842 templates/js/translated/order.js:1149
+#: templates/js/translated/order.js:1445 templates/js/translated/order.js:2280
+#: templates/js/translated/stock.js:1130 templates/js/translated/stock.js:1616
msgid "Notes"
msgstr ""
@@ -867,7 +883,7 @@ msgstr ""
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1133 order/models.py:964
+#: build/models.py:1133 order/models.py:1165
msgid "Allocation quantity must be greater than zero"
msgstr ""
@@ -880,8 +896,8 @@ msgid "Selected stock item not found in BOM"
msgstr ""
#: build/models.py:1253 stock/templates/stock/item_base.html:346
-#: templates/InvenTree/search.html:143 templates/js/translated/build.js:1599
-#: templates/navbar.html:33
+#: templates/InvenTree/search.html:143 templates/js/translated/build.js:1605
+#: templates/navbar.html:35
msgid "Build"
msgstr ""
@@ -889,14 +905,17 @@ msgstr ""
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1270 build/serializers.py:328
+#: build/models.py:1270 build/serializers.py:328 order/serializers.py:690
+#: order/serializers.py:708 stock/serializers.py:562
#: stock/templates/stock/item_base.html:8
#: stock/templates/stock/item_base.html:16
#: stock/templates/stock/item_base.html:368
-#: templates/js/translated/build.js:408 templates/js/translated/build.js:413
-#: templates/js/translated/build.js:1361 templates/js/translated/build.js:1742
-#: templates/js/translated/order.js:1177 templates/js/translated/order.js:1182
-#: templates/js/translated/stock.js:2102
+#: templates/js/translated/build.js:413 templates/js/translated/build.js:418
+#: templates/js/translated/build.js:1366 templates/js/translated/build.js:1748
+#: templates/js/translated/order.js:85 templates/js/translated/order.js:1577
+#: templates/js/translated/order.js:1832 templates/js/translated/order.js:1837
+#: templates/js/translated/order.js:1940 templates/js/translated/order.js:2030
+#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:2277
msgid "Stock Item"
msgstr ""
@@ -936,16 +955,17 @@ msgstr ""
msgid "This build output is not fully allocated"
msgstr ""
-#: build/serializers.py:190 order/serializers.py:228 order/serializers.py:296
-#: stock/forms.py:236 stock/serializers.py:323 stock/serializers.py:690
+#: build/serializers.py:190 order/serializers.py:226 order/serializers.py:294
+#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:813
#: stock/templates/stock/item_base.html:314
#: templates/js/translated/barcode.js:384
-#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:420
-#: templates/js/translated/build.js:1027 templates/js/translated/order.js:348
-#: templates/js/translated/order.js:1189 templates/js/translated/order.js:1297
-#: templates/js/translated/order.js:1303 templates/js/translated/part.js:177
-#: templates/js/translated/stock.js:592 templates/js/translated/stock.js:1333
-#: templates/js/translated/stock.js:2043
+#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:425
+#: templates/js/translated/build.js:1032 templates/js/translated/order.js:508
+#: templates/js/translated/order.js:1844 templates/js/translated/order.js:1955
+#: templates/js/translated/order.js:1963 templates/js/translated/order.js:2044
+#: templates/js/translated/part.js:177 templates/js/translated/stock.js:555
+#: templates/js/translated/stock.js:749 templates/js/translated/stock.js:1497
+#: templates/js/translated/stock.js:2218
msgid "Location"
msgstr ""
@@ -954,12 +974,12 @@ msgid "Location for completed build outputs"
msgstr ""
#: build/serializers.py:197 build/templates/build/build_base.html:137
-#: build/templates/build/detail.html:63 order/models.py:572
-#: order/serializers.py:249 stock/templates/stock/item_base.html:180
-#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1655
-#: templates/js/translated/order.js:431 templates/js/translated/order.js:1095
-#: templates/js/translated/stock.js:1308 templates/js/translated/stock.js:2120
-#: templates/js/translated/stock.js:2269
+#: build/templates/build/detail.html:63 order/models.py:552
+#: order/serializers.py:247 stock/templates/stock/item_base.html:180
+#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1661
+#: templates/js/translated/order.js:591 templates/js/translated/order.js:840
+#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1472
+#: templates/js/translated/stock.js:2295 templates/js/translated/stock.js:2444
msgid "Status"
msgstr ""
@@ -984,16 +1004,16 @@ msgstr ""
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:334
+#: build/serializers.py:334 stock/serializers.py:569
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:348 order/models.py:316 order/serializers.py:242
-#: stock/models.py:371 stock/models.py:1093 stock/serializers.py:303
+#: build/serializers.py:348 order/models.py:277 order/serializers.py:240
+#: stock/models.py:365 stock/models.py:1081 stock/serializers.py:305
msgid "Quantity must be greater than zero"
msgstr ""
-#: build/serializers.py:390
+#: build/serializers.py:390 order/serializers.py:741
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
@@ -1006,7 +1026,7 @@ msgstr ""
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:431
+#: build/serializers.py:431 order/serializers.py:984
msgid "Allocation items must be provided"
msgstr ""
@@ -1079,11 +1099,11 @@ msgstr ""
#: build/templates/build/build_base.html:146
#: build/templates/build/detail.html:132
-#: order/templates/order/order_base.html:144
-#: order/templates/order/sales_order_base.html:141
+#: order/templates/order/order_base.html:156
+#: order/templates/order/sales_order_base.html:163
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:1692 templates/js/translated/order.js:689
-#: templates/js/translated/order.js:1108
+#: templates/js/translated/build.js:1698 templates/js/translated/order.js:854
+#: templates/js/translated/order.js:1276
msgid "Target Date"
msgstr ""
@@ -1096,28 +1116,28 @@ msgstr ""
#: build/templates/build/build_base.html:196
#: order/templates/order/order_base.html:98
#: order/templates/order/sales_order_base.html:93
-#: templates/js/translated/table_filters.js:294
-#: templates/js/translated/table_filters.js:322
-#: templates/js/translated/table_filters.js:339
+#: templates/js/translated/table_filters.js:299
+#: templates/js/translated/table_filters.js:340
+#: templates/js/translated/table_filters.js:361
msgid "Overdue"
msgstr ""
#: build/templates/build/build_base.html:158
#: build/templates/build/detail.html:68 build/templates/build/detail.html:143
-#: templates/js/translated/build.js:1641
-#: templates/js/translated/table_filters.js:304
+#: order/templates/order/sales_order_base.html:170
+#: templates/js/translated/build.js:1647
+#: templates/js/translated/table_filters.js:370
msgid "Completed"
msgstr ""
#: build/templates/build/build_base.html:171
-#: build/templates/build/detail.html:95 order/models.py:857
-#: order/templates/order/sales_order_base.html:9
+#: build/templates/build/detail.html:95 order/models.py:925
+#: order/models.py:1021 order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
-#: order/templates/order/sales_order_ship.html:25
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:308
-#: templates/js/translated/order.js:1050
+#: templates/js/translated/order.js:1218
msgid "Sales Order"
msgstr ""
@@ -1191,8 +1211,8 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:50 order/models.py:811 stock/forms.py:150
-#: templates/js/translated/order.js:432 templates/js/translated/order.js:973
+#: build/templates/build/detail.html:50 order/models.py:876 stock/forms.py:136
+#: templates/js/translated/order.js:592 templates/js/translated/order.js:1138
msgid "Destination"
msgstr ""
@@ -1200,22 +1220,22 @@ msgstr ""
msgid "Destination location not specified"
msgstr ""
-#: build/templates/build/detail.html:74 templates/js/translated/build.js:647
+#: build/templates/build/detail.html:74 templates/js/translated/build.js:652
msgid "Allocated Parts"
msgstr ""
#: build/templates/build/detail.html:81
#: stock/templates/stock/item_base.html:332
-#: templates/js/translated/stock.js:1322 templates/js/translated/stock.js:2276
+#: templates/js/translated/stock.js:1486 templates/js/translated/stock.js:2451
#: templates/js/translated/table_filters.js:151
-#: templates/js/translated/table_filters.js:233
+#: templates/js/translated/table_filters.js:238
msgid "Batch"
msgstr ""
#: build/templates/build/detail.html:127
-#: order/templates/order/order_base.html:131
-#: order/templates/order/sales_order_base.html:135
-#: templates/js/translated/build.js:1663
+#: order/templates/order/order_base.html:143
+#: order/templates/order/sales_order_base.html:157
+#: templates/js/translated/build.js:1669
msgid "Created"
msgstr ""
@@ -1235,7 +1255,7 @@ msgstr ""
msgid "Allocate Stock to Build"
msgstr ""
-#: build/templates/build/detail.html:177 templates/js/translated/build.js:1202
+#: build/templates/build/detail.html:177 templates/js/translated/build.js:1207
msgid "Unallocate stock"
msgstr ""
@@ -1257,7 +1277,7 @@ msgstr ""
#: build/templates/build/detail.html:185
#: company/templates/company/detail.html:38
-#: company/templates/company/detail.html:85 order/views.py:509
+#: company/templates/company/detail.html:85 order/views.py:463
#: part/templates/part/category.html:173
msgid "Order Parts"
msgstr ""
@@ -1309,8 +1329,8 @@ msgstr ""
#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:60
-#: order/templates/order/sales_order_detail.html:52
-#: order/templates/order/so_sidebar.html:9 part/templates/part/detail.html:193
+#: order/templates/order/sales_order_detail.html:107
+#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:193
#: part/templates/part/part_sidebar.html:48 stock/templates/stock/item.html:95
#: stock/templates/stock/stock_sidebar.html:19
msgid "Attachments"
@@ -1325,8 +1345,8 @@ msgstr ""
#: company/templates/company/detail.html:215
#: order/templates/order/purchase_order_detail.html:80
#: order/templates/order/purchase_order_detail.html:108
-#: order/templates/order/sales_order_detail.html:72
-#: order/templates/order/sales_order_detail.html:99
+#: order/templates/order/sales_order_detail.html:127
+#: order/templates/order/sales_order_detail.html:186
#: part/templates/part/detail.html:120 stock/templates/stock/item.html:115
#: stock/templates/stock/item.html:205
msgid "Edit Notes"
@@ -1384,7 +1404,7 @@ msgstr ""
msgid "Maximum output quantity is "
msgstr ""
-#: build/views.py:122 stock/serializers.py:361 stock/views.py:1290
+#: build/views.py:122 stock/serializers.py:363 stock/views.py:1257
msgid "Serial numbers already exist"
msgstr ""
@@ -1400,7 +1420,7 @@ msgstr ""
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:219 stock/views.py:385
+#: build/views.py:219 stock/views.py:352
msgid "Check the confirmation box"
msgstr ""
@@ -1469,7 +1489,7 @@ msgstr ""
msgid "Select {name} file to upload"
msgstr ""
-#: common/models.py:340 common/models.py:970 common/models.py:1178
+#: common/models.py:340 common/models.py:998 common/models.py:1206
msgid "Settings key (must be unique - case insensitive"
msgstr ""
@@ -1557,7 +1577,7 @@ msgstr ""
msgid "Allow download of remote images and files from external URL"
msgstr ""
-#: common/models.py:649 templates/InvenTree/settings/sidebar.html:30
+#: common/models.py:649 templates/InvenTree/settings/sidebar.html:31
msgid "Barcode Support"
msgstr ""
@@ -1623,7 +1643,7 @@ msgstr ""
#: common/models.py:703 part/models.py:2429 report/models.py:187
#: templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:373
+#: templates/js/translated/table_filters.js:404
msgid "Template"
msgstr ""
@@ -1633,7 +1653,7 @@ msgstr ""
#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:956
#: templates/js/translated/table_filters.js:168
-#: templates/js/translated/table_filters.js:385
+#: templates/js/translated/table_filters.js:416
msgid "Assembly"
msgstr ""
@@ -1642,7 +1662,7 @@ msgid "Parts can be assembled from other components by default"
msgstr ""
#: common/models.py:717 part/models.py:894
-#: templates/js/translated/table_filters.js:389
+#: templates/js/translated/table_filters.js:420
msgid "Component"
msgstr ""
@@ -1659,7 +1679,7 @@ msgid "Parts are purchaseable by default"
msgstr ""
#: common/models.py:731 part/models.py:910
-#: templates/js/translated/table_filters.js:397
+#: templates/js/translated/table_filters.js:428
msgid "Salable"
msgstr ""
@@ -1670,7 +1690,7 @@ msgstr ""
#: common/models.py:738 part/models.py:900
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:100
-#: templates/js/translated/table_filters.js:401
+#: templates/js/translated/table_filters.js:432
msgid "Trackable"
msgstr ""
@@ -1932,230 +1952,262 @@ msgstr ""
msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:1001
+#: common/models.py:961
+msgid "Enable URL integration"
+msgstr ""
+
+#: common/models.py:962
+msgid "Enable plugins to add URL routes"
+msgstr ""
+
+#: common/models.py:968
+msgid "Enable navigation integration"
+msgstr ""
+
+#: common/models.py:969
+msgid "Enable plugins to integrate into navigation"
+msgstr ""
+
+#: common/models.py:975
+msgid "Enable global setting integration"
+msgstr ""
+
+#: common/models.py:976
+msgid "Enable plugins to integrate into inventree global settings"
+msgstr ""
+
+#: common/models.py:982
+msgid "Enable app integration"
+msgstr ""
+
+#: common/models.py:983
+msgid "Enable plugins to add apps"
+msgstr ""
+
+#: common/models.py:1029
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:1002
+#: common/models.py:1030
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:1007
+#: common/models.py:1035
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:1008
+#: common/models.py:1036
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:1013
+#: common/models.py:1041
msgid "Show latest parts"
msgstr ""
-#: common/models.py:1014
+#: common/models.py:1042
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:1019
+#: common/models.py:1047
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:1020
+#: common/models.py:1048
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:1026
+#: common/models.py:1054
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1027
+#: common/models.py:1055
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1032
+#: common/models.py:1060
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:1033
+#: common/models.py:1061
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:1038
+#: common/models.py:1066
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:1039
+#: common/models.py:1067
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:1044
+#: common/models.py:1072
msgid "Show low stock"
msgstr ""
-#: common/models.py:1045
+#: common/models.py:1073
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:1050
+#: common/models.py:1078
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:1051
+#: common/models.py:1079
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:1056
+#: common/models.py:1084
msgid "Show needed stock"
msgstr ""
-#: common/models.py:1057
+#: common/models.py:1085
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1062
+#: common/models.py:1090
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1063
+#: common/models.py:1091
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1068
+#: common/models.py:1096
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1069
+#: common/models.py:1097
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1074
+#: common/models.py:1102
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1075
+#: common/models.py:1103
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:1080
+#: common/models.py:1108
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:1081
+#: common/models.py:1109
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:1086
+#: common/models.py:1114
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:1087
+#: common/models.py:1115
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:1092
+#: common/models.py:1120
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:1093
+#: common/models.py:1121
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:1098
+#: common/models.py:1126
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:1099
+#: common/models.py:1127
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:1104
+#: common/models.py:1132
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:1105
+#: common/models.py:1133
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:1111
+#: common/models.py:1139
msgid "Inline label display"
msgstr ""
-#: common/models.py:1112
+#: common/models.py:1140
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1118
+#: common/models.py:1146
msgid "Inline report display"
msgstr ""
-#: common/models.py:1119
+#: common/models.py:1147
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1125
+#: common/models.py:1153
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:1126
+#: common/models.py:1154
msgid "Number of results to show in search preview window"
msgstr ""
-#: common/models.py:1132
+#: common/models.py:1160
msgid "Search Show Stock"
msgstr ""
-#: common/models.py:1133
+#: common/models.py:1161
msgid "Display stock levels in search preview window"
msgstr ""
-#: common/models.py:1139
+#: common/models.py:1167
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:1140
+#: common/models.py:1168
msgid "Hide inactive parts in search preview window"
msgstr ""
-#: common/models.py:1146
+#: common/models.py:1174
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:1147
+#: common/models.py:1175
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:1153
+#: common/models.py:1181
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1154
+#: common/models.py:1182
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1160
+#: common/models.py:1188
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:1161
+#: common/models.py:1189
msgid "InvenTree navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:1226 company/forms.py:43
+#: common/models.py:1254 company/forms.py:43
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1233 company/serializers.py:264
+#: common/models.py:1261 company/serializers.py:264
#: company/templates/company/supplier_part.html:256
#: templates/js/translated/part.js:852 templates/js/translated/part.js:1801
msgid "Price"
msgstr ""
-#: common/models.py:1234
+#: common/models.py:1262
msgid "Unit price at specified quantity"
msgstr ""
#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49
-#: order/templates/order/purchase_order_detail.html:24 order/views.py:289
+#: order/templates/order/purchase_order_detail.html:24 order/views.py:243
#: part/templates/part/bom_upload/upload_file.html:52
#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:212
#: part/views.py:858
@@ -2163,7 +2215,7 @@ msgid "Upload File"
msgstr ""
#: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52
-#: order/views.py:290 part/templates/part/bom_upload/match_fields.html:52
+#: order/views.py:244 part/templates/part/bom_upload/match_fields.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:45
#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:213
#: part/views.py:859
@@ -2195,6 +2247,7 @@ msgid "Previous Step"
msgstr ""
#: company/forms.py:24 part/forms.py:46
+#: templates/InvenTree/settings/mixins/urls.html:12
msgid "URL"
msgstr ""
@@ -2211,6 +2264,7 @@ msgid "Description of the company"
msgstr ""
#: company/models.py:112 company/templates/company/company_base.html:97
+#: templates/InvenTree/settings/plugin_settings.html:55
#: templates/js/translated/company.js:349
msgid "Website"
msgstr ""
@@ -2285,7 +2339,7 @@ msgid "Does this company manufacture parts?"
msgstr ""
#: company/models.py:152 company/serializers.py:270
-#: company/templates/company/company_base.html:103 stock/serializers.py:177
+#: company/templates/company/company_base.html:103 stock/serializers.py:179
msgid "Currency"
msgstr ""
@@ -2293,12 +2347,12 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:320 company/models.py:535 stock/models.py:474
+#: company/models.py:320 company/models.py:535 stock/models.py:468
#: stock/templates/stock/item_base.html:135
msgid "Base Part"
msgstr ""
-#: company/models.py:324 company/models.py:539 order/views.py:912
+#: company/models.py:324 company/models.py:539
msgid "Select part"
msgstr ""
@@ -2319,7 +2373,7 @@ msgstr ""
#: company/models.py:342 company/templates/company/manufacturer_part.html:96
#: company/templates/company/supplier_part.html:105
#: templates/js/translated/company.js:530
-#: templates/js/translated/company.js:815 templates/js/translated/order.js:873
+#: templates/js/translated/company.js:815 templates/js/translated/order.js:1038
#: templates/js/translated/part.js:243 templates/js/translated/part.js:832
msgid "MPN"
msgstr ""
@@ -2349,8 +2403,8 @@ msgstr ""
#: company/models.py:422
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:1857 templates/js/translated/company.js:644
-#: templates/js/translated/part.js:652 templates/js/translated/stock.js:960
+#: stock/models.py:1845 templates/js/translated/company.js:644
+#: templates/js/translated/part.js:652 templates/js/translated/stock.js:1117
msgid "Value"
msgstr ""
@@ -2360,7 +2414,7 @@ msgstr ""
#: company/models.py:429 part/models.py:882 part/models.py:2397
#: part/templates/part/part_base.html:288
-#: templates/InvenTree/settings/settings.html:264
+#: templates/InvenTree/settings/settings.html:273
#: templates/js/translated/company.js:650 templates/js/translated/part.js:658
msgid "Units"
msgstr ""
@@ -2374,12 +2428,12 @@ msgid "Linked manufacturer part must reference the same base part"
msgstr ""
#: company/models.py:545 company/templates/company/company_base.html:78
-#: company/templates/company/supplier_part.html:87 order/models.py:263
+#: company/templates/company/supplier_part.html:87 order/models.py:224
#: order/templates/order/order_base.html:112
#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219
#: part/bom.py:247 stock/templates/stock/item_base.html:398
#: templates/js/translated/company.js:337
-#: templates/js/translated/company.js:771 templates/js/translated/order.js:667
+#: templates/js/translated/company.js:771 templates/js/translated/order.js:823
#: templates/js/translated/part.js:213 templates/js/translated/part.js:800
msgid "Supplier"
msgstr ""
@@ -2389,7 +2443,7 @@ msgid "Select supplier"
msgstr ""
#: company/models.py:551 company/templates/company/supplier_part.html:91
-#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:860
+#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:1025
#: templates/js/translated/part.js:224 templates/js/translated/part.js:818
msgid "SKU"
msgstr ""
@@ -2425,8 +2479,8 @@ msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:582 company/templates/company/supplier_part.html:112
-#: stock/models.py:497 stock/templates/stock/item_base.html:339
-#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1448
+#: stock/models.py:491 stock/templates/stock/item_base.html:339
+#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1612
msgid "Packaging"
msgstr ""
@@ -2457,7 +2511,7 @@ msgid "Company"
msgstr ""
#: company/templates/company/company_base.html:22
-#: templates/js/translated/order.js:121
+#: templates/js/translated/order.js:279
msgid "Create Purchase Order"
msgstr ""
@@ -2493,11 +2547,12 @@ msgstr ""
msgid "Download image from URL"
msgstr ""
-#: company/templates/company/company_base.html:83 order/models.py:567
-#: order/templates/order/sales_order_base.html:115 stock/models.py:515
-#: stock/models.py:516 stock/templates/stock/item_base.html:291
-#: templates/js/translated/company.js:329 templates/js/translated/order.js:1072
-#: templates/js/translated/stock.js:2084
+#: company/templates/company/company_base.html:83 order/models.py:547
+#: order/templates/order/sales_order_base.html:115 stock/models.py:509
+#: stock/models.py:510 stock/serializers.py:610
+#: stock/templates/stock/item_base.html:291
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1240
+#: templates/js/translated/stock.js:2259
msgid "Customer"
msgstr ""
@@ -2580,7 +2635,7 @@ msgstr ""
#: order/templates/order/purchase_orders.html:12
#: part/templates/part/detail.html:64 part/templates/part/part_sidebar.html:33
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:203
-#: templates/InvenTree/settings/sidebar.html:44 templates/navbar.html:45
+#: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47
#: users/models.py:45
msgid "Purchase Orders"
msgstr ""
@@ -2602,7 +2657,7 @@ msgstr ""
#: order/templates/order/sales_orders.html:15
#: part/templates/part/detail.html:87 part/templates/part/part_sidebar.html:37
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:223
-#: templates/InvenTree/settings/sidebar.html:46 templates/navbar.html:56
+#: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58
#: users/models.py:46
msgid "Sales Orders"
msgstr ""
@@ -2618,7 +2673,7 @@ msgid "New Sales Order"
msgstr ""
#: company/templates/company/detail.html:168
-#: templates/js/translated/build.js:999
+#: templates/js/translated/build.js:1004
msgid "Assigned Stock"
msgstr ""
@@ -2644,7 +2699,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:14 company/views.py:55
#: part/templates/part/prices.html:167 templates/InvenTree/search.html:184
-#: templates/navbar.html:44
+#: templates/navbar.html:46
msgid "Manufacturers"
msgstr ""
@@ -2673,7 +2728,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:114
#: company/templates/company/supplier_part.html:15 company/views.py:49
#: part/templates/part/part_sidebar.html:31 part/templates/part/prices.html:163
-#: templates/InvenTree/search.html:194 templates/navbar.html:43
+#: templates/InvenTree/search.html:194 templates/navbar.html:45
msgid "Suppliers"
msgstr ""
@@ -2687,7 +2742,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:254
#: part/templates/part/detail.html:344 part/templates/part/detail.html:372
#: templates/js/translated/company.js:425 templates/js/translated/helpers.js:31
-#: users/models.py:204
+#: users/models.py:206
msgid "Delete"
msgstr ""
@@ -2739,9 +2794,9 @@ msgid "Assigned Stock Items"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:482
+#: company/templates/company/supplier_part.html:24 stock/models.py:476
#: stock/templates/stock/item_base.html:403
-#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1405
+#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1569
msgid "Supplier Part"
msgstr ""
@@ -2767,7 +2822,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:142
#: part/templates/part/detail.html:21 stock/templates/stock/location.html:163
-#: templates/js/translated/stock.js:355
+#: templates/js/translated/stock.js:359
msgid "New Stock Item"
msgstr ""
@@ -2817,11 +2872,11 @@ msgstr ""
#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:14
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:156
-#: templates/InvenTree/settings/sidebar.html:40
+#: templates/InvenTree/settings/sidebar.html:41
#: templates/js/translated/bom.js:216 templates/js/translated/part.js:434
#: templates/js/translated/part.js:569 templates/js/translated/part.js:1059
-#: templates/js/translated/part.js:1220 templates/js/translated/stock.js:591
-#: templates/js/translated/stock.js:1244 templates/navbar.html:26
+#: templates/js/translated/part.js:1220 templates/js/translated/stock.js:748
+#: templates/js/translated/stock.js:1401 templates/navbar.html:28
msgid "Stock"
msgstr ""
@@ -2844,7 +2899,7 @@ msgstr ""
#: stock/templates/stock/location.html:147
#: stock/templates/stock/location.html:159
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1983
+#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:2158
#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
msgid "Stock Items"
msgstr ""
@@ -2858,7 +2913,7 @@ msgid "New Manufacturer"
msgstr ""
#: company/views.py:61 templates/InvenTree/search.html:214
-#: templates/navbar.html:55
+#: templates/navbar.html:57
msgid "Customers"
msgstr ""
@@ -2960,284 +3015,374 @@ msgstr ""
msgid "Part query filters (comma-separated value of key=value pairs)"
msgstr ""
-#: order/forms.py:26 order/templates/order/order_base.html:52
+#: order/forms.py:24 order/templates/order/order_base.html:52
msgid "Place order"
msgstr ""
-#: order/forms.py:37 order/templates/order/order_base.html:60
+#: order/forms.py:35 order/templates/order/order_base.html:60
msgid "Mark order as complete"
msgstr ""
-#: order/forms.py:48 order/forms.py:59 order/templates/order/order_base.html:47
+#: order/forms.py:46 order/forms.py:57 order/templates/order/order_base.html:47
#: order/templates/order/sales_order_base.html:60
msgid "Cancel order"
msgstr ""
-#: order/forms.py:70
-msgid "Ship order"
-msgstr ""
-
-#: order/forms.py:98
-msgid "Enter stock item serial numbers"
-msgstr ""
-
-#: order/forms.py:104
-msgid "Enter quantity of stock items"
-msgstr ""
-
-#: order/models.py:161
+#: order/models.py:122
msgid "Order description"
msgstr ""
-#: order/models.py:163
+#: order/models.py:124
msgid "Link to external page"
msgstr ""
-#: order/models.py:171
+#: order/models.py:132
msgid "Created By"
msgstr ""
-#: order/models.py:178
+#: order/models.py:139
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:183
+#: order/models.py:144
msgid "Order notes"
msgstr ""
-#: order/models.py:250 order/models.py:557
+#: order/models.py:211 order/models.py:537
msgid "Order reference"
msgstr ""
-#: order/models.py:255 order/models.py:572
+#: order/models.py:216 order/models.py:552
msgid "Purchase order status"
msgstr ""
-#: order/models.py:264
+#: order/models.py:225
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:267 order/templates/order/order_base.html:118
-#: templates/js/translated/order.js:676
+#: order/models.py:228 order/templates/order/order_base.html:118
+#: templates/js/translated/order.js:832
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:267
+#: order/models.py:228
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:274
+#: order/models.py:235
msgid "received by"
msgstr ""
-#: order/models.py:279
+#: order/models.py:240
msgid "Issue Date"
msgstr ""
-#: order/models.py:280
+#: order/models.py:241
msgid "Date order was issued"
msgstr ""
-#: order/models.py:285
+#: order/models.py:246
msgid "Target Delivery Date"
msgstr ""
-#: order/models.py:286
+#: order/models.py:247
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:292
+#: order/models.py:253
msgid "Date order was completed"
msgstr ""
-#: order/models.py:321
+#: order/models.py:282
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:431
+#: order/models.py:411
msgid "Quantity must be an integer"
msgstr ""
-#: order/models.py:435
+#: order/models.py:415
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:568
+#: order/models.py:548
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:574
+#: order/models.py:554
msgid "Customer Reference "
msgstr ""
-#: order/models.py:574
+#: order/models.py:554
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:579
+#: order/models.py:559
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:582 templates/js/translated/order.js:1113
+#: order/models.py:562 order/models.py:1026
+#: templates/js/translated/order.js:1281 templates/js/translated/order.js:1429
msgid "Shipment Date"
msgstr ""
-#: order/models.py:589
+#: order/models.py:569
msgid "shipped by"
msgstr ""
-#: order/models.py:633
-msgid "SalesOrder cannot be shipped as it is not currently pending"
+#: order/models.py:634
+msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:730
+#: order/models.py:639
+msgid "Only a pending order can be marked as complete"
+msgstr ""
+
+#: order/models.py:643
+msgid "Order cannot be completed as there are incomplete shipments"
+msgstr ""
+
+#: order/models.py:647
+msgid "Order cannot be completed as there are incomplete line items"
+msgstr ""
+
+#: order/models.py:795
msgid "Item quantity"
msgstr ""
-#: order/models.py:736
+#: order/models.py:801
msgid "Line item reference"
msgstr ""
-#: order/models.py:738
+#: order/models.py:803
msgid "Line item notes"
msgstr ""
-#: order/models.py:768 order/models.py:856
-#: templates/js/translated/order.js:1165
+#: order/models.py:833 order/models.py:924 order/models.py:1020
+#: templates/js/translated/order.js:1820
msgid "Order"
msgstr ""
-#: order/models.py:769 order/templates/order/order_base.html:9
+#: order/models.py:834 order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:353
-#: templates/js/translated/order.js:638 templates/js/translated/part.js:775
-#: templates/js/translated/stock.js:1382 templates/js/translated/stock.js:2065
+#: templates/js/translated/order.js:801 templates/js/translated/part.js:775
+#: templates/js/translated/stock.js:1546 templates/js/translated/stock.js:2240
msgid "Purchase Order"
msgstr ""
-#: order/models.py:790
+#: order/models.py:855
msgid "Supplier part"
msgstr ""
-#: order/models.py:797 order/templates/order/order_base.html:151
-#: order/templates/order/sales_order_base.html:155
-#: templates/js/translated/order.js:429 templates/js/translated/order.js:953
+#: order/models.py:862 order/templates/order/order_base.html:163
+#: templates/js/translated/order.js:589 templates/js/translated/order.js:1118
#: templates/js/translated/part.js:847 templates/js/translated/part.js:873
+#: templates/js/translated/table_filters.js:317
msgid "Received"
msgstr ""
-#: order/models.py:798
+#: order/models.py:863
msgid "Number of items received"
msgstr ""
-#: order/models.py:805 part/templates/part/prices.html:176 stock/models.py:609
-#: stock/serializers.py:168 stock/templates/stock/item_base.html:360
-#: templates/js/translated/stock.js:1436
+#: order/models.py:870 part/templates/part/prices.html:176 stock/models.py:603
+#: stock/serializers.py:170 stock/templates/stock/item_base.html:360
+#: templates/js/translated/stock.js:1600
msgid "Purchase Price"
msgstr ""
-#: order/models.py:806
+#: order/models.py:871
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:814
+#: order/models.py:879
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:866 part/templates/part/part_pricing.html:112
+#: order/models.py:934 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:116 part/templates/part/prices.html:284
msgid "Sale Price"
msgstr ""
-#: order/models.py:867
+#: order/models.py:935
msgid "Unit sale price"
msgstr ""
-#: order/models.py:946 order/models.py:948
+#: order/models.py:940
+msgid "Shipped quantity"
+msgstr ""
+
+#: order/models.py:1027
+msgid "Date of shipment"
+msgstr ""
+
+#: order/models.py:1034
+msgid "Checked By"
+msgstr ""
+
+#: order/models.py:1035
+msgid "User who checked this shipment"
+msgstr ""
+
+#: order/models.py:1043
+msgid "Shipment number"
+msgstr ""
+
+#: order/models.py:1050
+msgid "Shipment notes"
+msgstr ""
+
+#: order/models.py:1057
+msgid "Tracking Number"
+msgstr ""
+
+#: order/models.py:1058
+msgid "Shipment tracking information"
+msgstr ""
+
+#: order/models.py:1068
+msgid "Shipment has already been sent"
+msgstr ""
+
+#: order/models.py:1071
+msgid "Shipment has no allocated stock items"
+msgstr ""
+
+#: order/models.py:1147 order/models.py:1149
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:952
+#: order/models.py:1153
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:954
+#: order/models.py:1155
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:957
+#: order/models.py:1158
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:961
+#: order/models.py:1162
msgid "StockItem is over-allocated"
msgstr ""
-#: order/models.py:967
+#: order/models.py:1168 order/serializers.py:734
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:975
+#: order/models.py:1171
+msgid "Sales order does not match shipment"
+msgstr ""
+
+#: order/models.py:1172
+msgid "Shipment does not match sales order"
+msgstr ""
+
+#: order/models.py:1180
msgid "Line"
msgstr ""
-#: order/models.py:987
+#: order/models.py:1188 order/serializers.py:825 order/serializers.py:953
+#: templates/js/translated/model_renderers.js:251
+msgid "Shipment"
+msgstr ""
+
+#: order/models.py:1189
+msgid "Sales order shipment reference"
+msgstr ""
+
+#: order/models.py:1201
msgid "Item"
msgstr ""
-#: order/models.py:988
+#: order/models.py:1202
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:991
+#: order/models.py:1205
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/serializers.py:175
+#: order/serializers.py:173
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:213
+#: order/serializers.py:211 order/serializers.py:790
msgid "Line Item"
msgstr ""
-#: order/serializers.py:219
+#: order/serializers.py:217
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:229 order/serializers.py:297
+#: order/serializers.py:227 order/serializers.py:295
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:253
+#: order/serializers.py:251
msgid "Barcode Hash"
msgstr ""
-#: order/serializers.py:254
+#: order/serializers.py:252
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:271
+#: order/serializers.py:269
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:309
+#: order/serializers.py:307
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:326
+#: order/serializers.py:324
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:337
+#: order/serializers.py:335
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:578
+#: order/serializers.py:581
msgid "Sale price currency"
msgstr ""
+#: order/serializers.py:649
+msgid "No shipment details provided"
+msgstr ""
+
+#: order/serializers.py:699 order/serializers.py:802
+msgid "Line item is not associated with this order"
+msgstr ""
+
+#: order/serializers.py:721
+msgid "Quantity must be positive"
+msgstr ""
+
+#: order/serializers.py:815
+msgid "Enter serial numbers to allocate"
+msgstr ""
+
+#: order/serializers.py:839 order/serializers.py:964
+msgid "Shipment has already been shipped"
+msgstr ""
+
+#: order/serializers.py:842 order/serializers.py:967
+msgid "Shipment is not associated with this order"
+msgstr ""
+
+#: order/serializers.py:894
+msgid "No match found for the following serial numbers"
+msgstr ""
+
+#: order/serializers.py:904
+msgid "The following serial numbers are already allocated"
+msgstr ""
+
#: order/templates/order/delete_attachment.html:5
#: stock/templates/stock/attachment_delete.html:5
msgid "Are you sure you want to delete this attachment?"
@@ -3271,7 +3416,8 @@ msgstr ""
msgid "Receive Items"
msgstr ""
-#: order/templates/order/order_base.html:62 order/views.py:185
+#: order/templates/order/order_base.html:62
+#: order/templates/order/sales_order_base.html:67 order/views.py:181
msgid "Complete Order"
msgstr ""
@@ -3290,12 +3436,23 @@ msgstr ""
msgid "Order Status"
msgstr ""
-#: order/templates/order/order_base.html:137
+#: order/templates/order/order_base.html:124
+#: order/templates/order/sales_order_base.html:128
+msgid "Completed Line Items"
+msgstr ""
+
+#: order/templates/order/order_base.html:130
+#: order/templates/order/sales_order_base.html:134
+#: order/templates/order/sales_order_base.html:144
+msgid "Incomplete"
+msgstr ""
+
+#: order/templates/order/order_base.html:149
#: report/templates/report/inventree_build_order_base.html:122
msgid "Issued"
msgstr ""
-#: order/templates/order/order_base.html:207
+#: order/templates/order/order_base.html:219
msgid "Edit Purchase Order"
msgstr ""
@@ -3371,8 +3528,9 @@ msgstr ""
#: part/templates/part/import_wizard/ajax_match_references.html:42
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
-#: templates/js/translated/build.js:240 templates/js/translated/build.js:1251
-#: templates/js/translated/order.js:377
+#: templates/js/translated/build.js:245 templates/js/translated/build.js:1256
+#: templates/js/translated/order.js:537 templates/js/translated/order.js:1488
+#: templates/js/translated/stock.js:592
msgid "Remove row"
msgstr ""
@@ -3453,7 +3611,8 @@ msgid "Select existing purchase orders, or create new orders."
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:31
-#: templates/js/translated/order.js:694 templates/js/translated/order.js:1118
+#: templates/js/translated/order.js:859 templates/js/translated/order.js:1286
+#: templates/js/translated/order.js:1416
msgid "Items"
msgstr ""
@@ -3489,7 +3648,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:27
#: order/templates/order/purchase_order_detail.html:181
#: order/templates/order/sales_order_detail.html:23
-#: order/templates/order/sales_order_detail.html:157
+#: order/templates/order/sales_order_detail.html:244
msgid "Add Line Item"
msgstr ""
@@ -3502,7 +3661,7 @@ msgid "Received Items"
msgstr ""
#: order/templates/order/purchase_order_detail.html:76
-#: order/templates/order/sales_order_detail.html:68
+#: order/templates/order/sales_order_detail.html:123
msgid "Order Notes"
msgstr ""
@@ -3520,8 +3679,8 @@ msgid "Print packing list"
msgstr ""
#: order/templates/order/sales_order_base.html:66
-#: order/templates/order/sales_order_base.html:67 order/views.py:222
-msgid "Ship Order"
+#: order/templates/order/sales_order_base.html:229
+msgid "Complete Sales Order"
msgstr ""
#: order/templates/order/sales_order_base.html:102
@@ -3529,16 +3688,21 @@ msgid "This Sales Order has not been fully allocated"
msgstr ""
#: order/templates/order/sales_order_base.html:122
-#: templates/js/translated/order.js:1085
+#: templates/js/translated/order.js:1253
msgid "Customer Reference"
msgstr ""
-#: order/templates/order/sales_order_base.html:195
+#: order/templates/order/sales_order_base.html:140
+#: order/templates/order/sales_order_detail.html:78
+#: order/templates/order/so_sidebar.html:11
+msgid "Completed Shipments"
+msgstr ""
+
+#: order/templates/order/sales_order_base.html:215
msgid "Edit Sales Order"
msgstr ""
#: order/templates/order/sales_order_cancel.html:8
-#: order/templates/order/sales_order_ship.html:9
#: part/templates/part/bom_duplicate.html:12
#: stock/templates/stock/stockitem_convert.html:13
msgid "Warning"
@@ -3552,146 +3716,100 @@ msgstr ""
msgid "Sales Order Items"
msgstr ""
-#: order/templates/order/sales_order_ship.html:10
-msgid "This order has not been fully allocated. If the order is marked as shipped, it can no longer be adjusted."
+#: order/templates/order/sales_order_detail.html:44
+#: order/templates/order/so_sidebar.html:8
+msgid "Pending Shipments"
msgstr ""
-#: order/templates/order/sales_order_ship.html:12
-msgid "Ensure that the order allocation is correct before shipping the order."
+#: order/templates/order/sales_order_detail.html:48
+#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1188
+msgid "Actions"
msgstr ""
-#: order/templates/order/sales_order_ship.html:18
-msgid "Some line items in this order have been over-allocated"
+#: order/templates/order/sales_order_detail.html:57
+msgid "New Shipment"
msgstr ""
-#: order/templates/order/sales_order_ship.html:20
-msgid "Ensure that this is correct before shipping the order."
-msgstr ""
-
-#: order/templates/order/sales_order_ship.html:27
-msgid "Shipping this order means that the order will no longer be editable."
-msgstr ""
-
-#: order/templates/order/so_allocate_by_serial.html:9
-msgid "Allocate stock items by serial number"
-msgstr ""
-
-#: order/views.py:103
+#: order/views.py:99
msgid "Cancel Order"
msgstr ""
-#: order/views.py:112 order/views.py:138
+#: order/views.py:108 order/views.py:134
msgid "Confirm order cancellation"
msgstr ""
-#: order/views.py:115 order/views.py:141
+#: order/views.py:111 order/views.py:137
msgid "Order cannot be cancelled"
msgstr ""
-#: order/views.py:129
+#: order/views.py:125
msgid "Cancel sales order"
msgstr ""
-#: order/views.py:155
+#: order/views.py:151
msgid "Issue Order"
msgstr ""
-#: order/views.py:164
+#: order/views.py:160
msgid "Confirm order placement"
msgstr ""
-#: order/views.py:174
+#: order/views.py:170
msgid "Purchase order issued"
msgstr ""
-#: order/views.py:201
+#: order/views.py:197
msgid "Confirm order completion"
msgstr ""
-#: order/views.py:212
+#: order/views.py:208
msgid "Purchase order completed"
msgstr ""
-#: order/views.py:238
-msgid "Confirm order shipment"
-msgstr ""
-
-#: order/views.py:244
-msgid "Could not ship order"
-msgstr ""
-
-#: order/views.py:291
+#: order/views.py:245
msgid "Match Supplier Parts"
msgstr ""
-#: order/views.py:535
+#: order/views.py:489
msgid "Update prices"
msgstr ""
-#: order/views.py:793
+#: order/views.py:747
#, python-brace-format
msgid "Ordered {n} parts"
msgstr ""
-#: order/views.py:846
-msgid "Allocate Serial Numbers"
-msgstr ""
-
-#: order/views.py:891
-#, python-brace-format
-msgid "Allocated {n} items"
-msgstr ""
-
-#: order/views.py:907
-msgid "Select line item"
-msgstr ""
-
-#: order/views.py:938
-#, python-brace-format
-msgid "No matching item for serial {serial}"
-msgstr ""
-
-#: order/views.py:948
-#, python-brace-format
-msgid "{serial} is not in stock"
-msgstr ""
-
-#: order/views.py:956
-#, python-brace-format
-msgid "{serial} already allocated to an order"
-msgstr ""
-
-#: order/views.py:1072
+#: order/views.py:858
msgid "Sales order not found"
msgstr ""
-#: order/views.py:1078
+#: order/views.py:864
msgid "Price not found"
msgstr ""
-#: order/views.py:1081
+#: order/views.py:867
#, python-brace-format
msgid "Updated {part} unit-price to {price}"
msgstr ""
-#: order/views.py:1086
+#: order/views.py:872
#, python-brace-format
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/api.py:758
+#: part/api.py:760
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:762
+#: part/api.py:764
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:777
+#: part/api.py:779
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:808 part/api.py:812 part/api.py:827 part/api.py:831
+#: part/api.py:810 part/api.py:814 part/api.py:829 part/api.py:833
msgid "This field is required"
msgstr ""
@@ -3828,8 +3946,8 @@ msgstr ""
#: part/templates/part/category.html:149
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:88
-#: templates/InvenTree/settings/sidebar.html:36
-#: templates/js/translated/part.js:1597 templates/navbar.html:19
+#: templates/InvenTree/settings/sidebar.html:37
+#: templates/js/translated/part.js:1597 templates/navbar.html:21
#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
msgid "Parts"
msgstr ""
@@ -3895,7 +4013,7 @@ msgstr ""
#: part/models.py:778 part/models.py:2223 part/models.py:2472
#: part/templates/part/part_base.html:265
#: part/templates/part/set_category.html:15
-#: templates/InvenTree/settings/settings.html:163
+#: templates/InvenTree/settings/settings.html:172
#: templates/js/translated/part.js:1202
msgid "Category"
msgstr ""
@@ -3906,7 +4024,7 @@ msgstr ""
#: part/models.py:784 part/templates/part/part_base.html:274
#: templates/js/translated/part.js:557 templates/js/translated/part.js:1155
-#: templates/js/translated/stock.js:1216
+#: templates/js/translated/stock.js:1373
msgid "IPN"
msgstr ""
@@ -3975,10 +4093,11 @@ msgstr ""
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:915 templates/js/translated/table_filters.js:34
+#: part/models.py:915 plugin/models.py:45
+#: templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:96
-#: templates/js/translated/table_filters.js:290
-#: templates/js/translated/table_filters.js:368
+#: templates/js/translated/table_filters.js:295
+#: templates/js/translated/table_filters.js:399
msgid "Active"
msgstr ""
@@ -4027,7 +4146,7 @@ msgid "Test with this name already exists for this part"
msgstr ""
#: part/models.py:2310 templates/js/translated/part.js:1648
-#: templates/js/translated/stock.js:940
+#: templates/js/translated/stock.js:1097
msgid "Test Name"
msgstr ""
@@ -4044,7 +4163,7 @@ msgid "Enter description for this test"
msgstr ""
#: part/models.py:2322 templates/js/translated/part.js:1657
-#: templates/js/translated/table_filters.js:276
+#: templates/js/translated/table_filters.js:281
msgid "Required"
msgstr ""
@@ -4086,7 +4205,7 @@ msgid "Parameter Units"
msgstr ""
#: part/models.py:2429 part/models.py:2478 part/models.py:2479
-#: templates/InvenTree/settings/settings.html:158
+#: templates/InvenTree/settings/settings.html:167
msgid "Parameter Template"
msgstr ""
@@ -4098,7 +4217,7 @@ msgstr ""
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2483 templates/InvenTree/settings/settings.html:167
+#: part/models.py:2483 templates/InvenTree/settings/settings.html:176
msgid "Default Value"
msgstr ""
@@ -4175,7 +4294,7 @@ msgstr ""
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2686 stock/models.py:361
+#: part/models.py:2686 stock/models.py:355
msgid "Quantity must be integer value for trackable parts"
msgstr ""
@@ -4724,8 +4843,8 @@ msgstr ""
msgid "This part is a variant of %(link)s"
msgstr ""
-#: part/templates/part/part_base.html:190 templates/js/translated/order.js:1545
-#: templates/js/translated/table_filters.js:188
+#: part/templates/part/part_base.html:190 templates/js/translated/order.js:2217
+#: templates/js/translated/table_filters.js:193
msgid "In Stock"
msgstr ""
@@ -5099,6 +5218,78 @@ msgstr ""
msgid "Delete Internal Price Break"
msgstr ""
+#: plugin/integration.py:116
+msgid "No author found"
+msgstr ""
+
+#: plugin/integration.py:128
+msgid "No date found"
+msgstr ""
+
+#: plugin/models.py:25
+msgid "Plugin Configuration"
+msgstr ""
+
+#: plugin/models.py:26
+msgid "Plugin Configurations"
+msgstr ""
+
+#: plugin/models.py:31
+msgid "Key"
+msgstr ""
+
+#: plugin/models.py:32
+msgid "Key of plugin"
+msgstr ""
+
+#: plugin/models.py:40
+msgid "PluginName of the plugin"
+msgstr ""
+
+#: plugin/models.py:46
+msgid "Is the plugin active"
+msgstr ""
+
+#: plugin/samples/integration/sample.py:39
+msgid "Enable PO"
+msgstr ""
+
+#: plugin/samples/integration/sample.py:40
+msgid "Enable PO functionality in InvenTree interface"
+msgstr ""
+
+#: plugin/serializers.py:46
+msgid "Source URL"
+msgstr ""
+
+#: plugin/serializers.py:47
+msgid "Source for the package - this can be a custom registry or a VCS path"
+msgstr ""
+
+#: plugin/serializers.py:52
+msgid "Package Name"
+msgstr ""
+
+#: plugin/serializers.py:53
+msgid "Name for the Plugin Package - can also contain a version indicator"
+msgstr ""
+
+#: plugin/serializers.py:56
+msgid "Confirm plugin installation"
+msgstr ""
+
+#: plugin/serializers.py:57
+msgid "This will install this plugin now into the current instance. The instance will go into maintenance."
+msgstr ""
+
+#: plugin/serializers.py:72
+msgid "Installation not confirmed"
+msgstr ""
+
+#: plugin/serializers.py:74
+msgid "Either packagenmae of url must be provided"
+msgstr ""
+
#: report/api.py:234 report/api.py:278
#, python-brace-format
msgid "Template file '{filename}' is missing or does not exist"
@@ -5197,12 +5388,12 @@ msgid "Stock Item Test Report"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:520 stock/templates/stock/item_base.html:149
-#: templates/js/translated/build.js:233 templates/js/translated/build.js:637
-#: templates/js/translated/build.js:1013
+#: stock/models.py:514 stock/templates/stock/item_base.html:149
+#: templates/js/translated/build.js:238 templates/js/translated/build.js:642
+#: templates/js/translated/build.js:1018
#: templates/js/translated/model_renderers.js:95
-#: templates/js/translated/order.js:1287 templates/js/translated/order.js:1376
-#: templates/js/translated/stock.js:410
+#: templates/js/translated/order.js:99 templates/js/translated/order.js:1945
+#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:414
msgid "Serial Number"
msgstr ""
@@ -5211,17 +5402,19 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:93
-#: stock/models.py:1845
+#: stock/models.py:1833
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:94
-#: stock/models.py:1851
+#: stock/models.py:1839
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:97
-#: templates/js/translated/order.js:684 templates/js/translated/stock.js:1999
+#: templates/InvenTree/settings/plugin.html:49
+#: templates/InvenTree/settings/plugin_settings.html:38
+#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2174
msgid "Date"
msgstr ""
@@ -5239,302 +5432,318 @@ msgid "Installed Items"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
-#: templates/js/translated/stock.js:2259
+#: templates/js/translated/stock.js:577 templates/js/translated/stock.js:2434
msgid "Serial"
msgstr ""
-#: stock/api.py:422
+#: stock/api.py:446
msgid "Quantity is required"
msgstr ""
-#: stock/forms.py:91 stock/forms.py:265 stock/models.py:577
+#: stock/forms.py:77 stock/forms.py:251 stock/models.py:571
#: stock/templates/stock/item_base.html:186
-#: templates/js/translated/stock.js:1358
+#: templates/js/translated/stock.js:1522
msgid "Expiry Date"
msgstr ""
-#: stock/forms.py:92 stock/forms.py:266
+#: stock/forms.py:78 stock/forms.py:252
msgid "Expiration date for this stock item"
msgstr ""
-#: stock/forms.py:95
+#: stock/forms.py:81
msgid "Enter unique serial numbers (or leave blank)"
msgstr ""
-#: stock/forms.py:150
+#: stock/forms.py:136
msgid "Destination for serialized stock (by default, will remain in current location)"
msgstr ""
-#: stock/forms.py:152
+#: stock/forms.py:138
msgid "Serial numbers"
msgstr ""
-#: stock/forms.py:152
+#: stock/forms.py:138
msgid "Unique serial numbers (must match quantity)"
msgstr ""
-#: stock/forms.py:154 stock/forms.py:238
+#: stock/forms.py:140 stock/forms.py:224
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/forms.py:194
+#: stock/forms.py:180
msgid "Stock item to install"
msgstr ""
-#: stock/forms.py:224
+#: stock/forms.py:210
msgid "Must not exceed available quantity"
msgstr ""
-#: stock/forms.py:236
+#: stock/forms.py:222
msgid "Destination location for uninstalled items"
msgstr ""
-#: stock/forms.py:240
+#: stock/forms.py:226
msgid "Confirm uninstall"
msgstr ""
-#: stock/forms.py:240
+#: stock/forms.py:226
msgid "Confirm removal of installed stock items"
msgstr ""
-#: stock/models.py:60 stock/models.py:614
+#: stock/models.py:60 stock/models.py:608
#: stock/templates/stock/item_base.html:417
msgid "Owner"
msgstr ""
-#: stock/models.py:61 stock/models.py:615
+#: stock/models.py:61 stock/models.py:609
msgid "Select Owner"
msgstr ""
-#: stock/models.py:342
+#: stock/models.py:336
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:378
+#: stock/models.py:372
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:388 stock/models.py:397
+#: stock/models.py:382 stock/models.py:391
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:389
+#: stock/models.py:383
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:411
+#: stock/models.py:405
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:417
+#: stock/models.py:411
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:424
+#: stock/models.py:418
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:466
+#: stock/models.py:460
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:475
+#: stock/models.py:469
msgid "Base part"
msgstr ""
-#: stock/models.py:483
+#: stock/models.py:477
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:488 stock/templates/stock/location.html:12
+#: stock/models.py:482 stock/templates/stock/location.html:12
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:491
+#: stock/models.py:485
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:498
+#: stock/models.py:492
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:503 stock/templates/stock/item_base.html:299
+#: stock/models.py:497 stock/templates/stock/item_base.html:299
msgid "Installed In"
msgstr ""
-#: stock/models.py:506
+#: stock/models.py:500
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:522
+#: stock/models.py:516
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:536
+#: stock/models.py:530
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:540
+#: stock/models.py:534
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:549
+#: stock/models.py:543
msgid "Source Build"
msgstr ""
-#: stock/models.py:551
+#: stock/models.py:545
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:562
+#: stock/models.py:556
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:565
+#: stock/models.py:559
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:571
+#: stock/models.py:565
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:578
+#: stock/models.py:572
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:591
+#: stock/models.py:585
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:591
+#: stock/models.py:585
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:601 stock/templates/stock/item.html:111
+#: stock/models.py:595 stock/templates/stock/item.html:111
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:610
+#: stock/models.py:604
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:620
-msgid "Scheduled for deletion"
-msgstr ""
-
-#: stock/models.py:621
-msgid "This StockItem will be deleted by the background worker"
-msgstr ""
-
-#: stock/models.py:1084
+#: stock/models.py:1072
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1090
+#: stock/models.py:1078
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1096
+#: stock/models.py:1084
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1099
+#: stock/models.py:1087
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1102
+#: stock/models.py:1090
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1109
+#: stock/models.py:1097
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1267
+#: stock/models.py:1255
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1765
+#: stock/models.py:1753
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1822
+#: stock/models.py:1810
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1828
+#: stock/models.py:1816
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1846
+#: stock/models.py:1834
msgid "Test name"
msgstr ""
-#: stock/models.py:1852 templates/js/translated/table_filters.js:266
+#: stock/models.py:1840 templates/js/translated/table_filters.js:271
msgid "Test result"
msgstr ""
-#: stock/models.py:1858
+#: stock/models.py:1846
msgid "Test output value"
msgstr ""
-#: stock/models.py:1865
+#: stock/models.py:1853
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1871
+#: stock/models.py:1859
msgid "Test notes"
msgstr ""
-#: stock/serializers.py:171
+#: stock/serializers.py:173
msgid "Purchase price of this stock item"
msgstr ""
-#: stock/serializers.py:178
+#: stock/serializers.py:180
msgid "Purchase currency of this stock item"
msgstr ""
-#: stock/serializers.py:292
+#: stock/serializers.py:294
msgid "Enter number of stock items to serialize"
msgstr ""
-#: stock/serializers.py:307
+#: stock/serializers.py:309
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:313
+#: stock/serializers.py:315
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:324 stock/serializers.py:691
+#: stock/serializers.py:326 stock/serializers.py:814
msgid "Destination stock location"
msgstr ""
-#: stock/serializers.py:331
+#: stock/serializers.py:333
msgid "Optional note field"
msgstr ""
-#: stock/serializers.py:344
+#: stock/serializers.py:346
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:561
+#: stock/serializers.py:573
+msgid "Part must be salable"
+msgstr ""
+
+#: stock/serializers.py:577
+msgid "Item is allocated to a sales order"
+msgstr ""
+
+#: stock/serializers.py:581
+msgid "Item is allocated to a build order"
+msgstr ""
+
+#: stock/serializers.py:611
+msgid "Customer to assign stock items"
+msgstr ""
+
+#: stock/serializers.py:617
+msgid "Selected company is not a customer"
+msgstr ""
+
+#: stock/serializers.py:625
+msgid "Stock assignment notes"
+msgstr ""
+
+#: stock/serializers.py:635 stock/serializers.py:722
+msgid "A list of stock items must be provided"
+msgstr ""
+
+#: stock/serializers.py:684
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:589
+#: stock/serializers.py:712
msgid "Stock transaction notes"
msgstr ""
-#: stock/serializers.py:599
-msgid "A list of stock items must be provided"
-msgstr ""
-
#: stock/templates/stock/item.html:18
msgid "Stock Tracking Information"
msgstr ""
@@ -5572,7 +5781,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:137 stock/views.py:515
+#: stock/templates/stock/item.html:137 stock/views.py:482
msgid "Install Stock Item"
msgstr ""
@@ -5632,7 +5841,7 @@ msgstr ""
msgid "Transfer stock"
msgstr ""
-#: stock/templates/stock/item_base.html:85
+#: stock/templates/stock/item_base.html:85 templates/stock_table.html:53
msgid "Assign to customer"
msgstr ""
@@ -5694,7 +5903,7 @@ msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:190
-#: templates/js/translated/table_filters.js:247
+#: templates/js/translated/table_filters.js:252
msgid "Expired"
msgstr ""
@@ -5704,12 +5913,12 @@ msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:192
-#: templates/js/translated/table_filters.js:253
+#: templates/js/translated/table_filters.js:258
msgid "Stale"
msgstr ""
#: stock/templates/stock/item_base.html:199
-#: templates/js/translated/stock.js:1371
+#: templates/js/translated/stock.js:1535
msgid "Last Updated"
msgstr ""
@@ -5738,13 +5947,11 @@ msgid "This stock item has not passed all required tests"
msgstr ""
#: stock/templates/stock/item_base.html:255
-#, python-format
-msgid "This stock item is allocated to Sales Order %(link)s (Quantity: %(qty)s)"
+msgid "This stock item is allocated to Sales Order"
msgstr ""
#: stock/templates/stock/item_base.html:263
-#, python-format
-msgid "This stock item is allocated to Build %(link)s (Quantity: %(qty)s)"
+msgid "This stock item is allocated to Build Order"
msgstr ""
#: stock/templates/stock/item_base.html:269
@@ -5760,7 +5967,7 @@ msgid "This stock item will be automatically deleted when all stock is depleted.
msgstr ""
#: stock/templates/stock/item_base.html:318
-#: templates/js/translated/build.js:1035
+#: templates/js/translated/build.js:1040
msgid "No location set"
msgstr ""
@@ -5910,7 +6117,7 @@ msgstr ""
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:912
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:879
msgid "Convert Stock Item"
msgstr ""
@@ -5935,8 +6142,7 @@ msgstr ""
msgid "Edit Stock Location"
msgstr ""
-#: stock/views.py:269 stock/views.py:891 stock/views.py:1017
-#: stock/views.py:1299
+#: stock/views.py:269 stock/views.py:858 stock/views.py:984 stock/views.py:1266
msgid "Owner is required (ownership control is enabled)"
msgstr ""
@@ -5945,86 +6151,78 @@ msgid "Stock Location QR code"
msgstr ""
#: stock/views.py:303
-msgid "Assign to Customer"
-msgstr ""
-
-#: stock/views.py:312
-msgid "Customer must be specified"
-msgstr ""
-
-#: stock/views.py:336
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:345
+#: stock/views.py:312
msgid "Specify a valid location"
msgstr ""
-#: stock/views.py:356
+#: stock/views.py:323
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:367
+#: stock/views.py:334
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:384
+#: stock/views.py:351
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:489
+#: stock/views.py:456
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:663
+#: stock/views.py:630
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:760 templates/js/translated/stock.js:730
+#: stock/views.py:727 templates/js/translated/stock.js:887
msgid "Confirm stock adjustment"
msgstr ""
-#: stock/views.py:771
+#: stock/views.py:738
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:793 templates/js/translated/stock.js:319
+#: stock/views.py:760 templates/js/translated/stock.js:323
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:943
+#: stock/views.py:910
msgid "Create new Stock Location"
msgstr ""
-#: stock/views.py:1044
+#: stock/views.py:1011
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1186 templates/js/translated/stock.js:299
+#: stock/views.py:1153 templates/js/translated/stock.js:303
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1268
+#: stock/views.py:1235
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1368
+#: stock/views.py:1335
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:1381
+#: stock/views.py:1348
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1392
+#: stock/views.py:1359
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1399
+#: stock/views.py:1366
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1408
+#: stock/views.py:1375
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -6044,6 +6242,14 @@ msgstr ""
msgid "The requested page does not exist"
msgstr ""
+#: templates/503.html:10 templates/503.html:35
+msgid "Site is in Maintenance"
+msgstr ""
+
+#: templates/503.html:41
+msgid "The site is currently in maintenance and should be up again soon!"
+msgstr ""
+
#: templates/InvenTree/index.html:7
msgid "Index"
msgstr ""
@@ -6153,7 +6359,7 @@ msgid "Server Settings"
msgstr ""
#: templates/InvenTree/settings/login.html:9
-#: templates/InvenTree/settings/sidebar.html:28
+#: templates/InvenTree/settings/sidebar.html:29
msgid "Login Settings"
msgstr ""
@@ -6161,6 +6367,24 @@ msgstr ""
msgid "Signup"
msgstr ""
+#: templates/InvenTree/settings/mixins/settings.html:4
+#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:118
+msgid "Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/mixins/urls.html:4
+msgid "URLs"
+msgstr ""
+
+#: templates/InvenTree/settings/mixins/urls.html:6
+#, python-format
+msgid "The Base-URL for this plugin is %(base)s."
+msgstr ""
+
+#: templates/InvenTree/settings/mixins/urls.html:21
+msgid "open in new tab"
+msgstr ""
+
#: templates/InvenTree/settings/part.html:7
msgid "Part Settings"
msgstr ""
@@ -6177,6 +6401,126 @@ msgstr ""
msgid "Part Parameter Templates"
msgstr ""
+#: templates/InvenTree/settings/plugin.html:10
+msgid "Plugin Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:16
+msgid "Changing the settings below require you to immediatly restart InvenTree. Do not change this while under active usage."
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:32
+msgid "Plugin list"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:37
+#: templates/js/translated/plugin.js:15
+msgid "Install Plugin"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:46 templates/navbar.html:111
+#: users/models.py:39
+msgid "Admin"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:48
+#: templates/InvenTree/settings/plugin_settings.html:28
+msgid "Author"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:50
+#: templates/InvenTree/settings/plugin_settings.html:43
+msgid "Version"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:73
+#, python-format
+msgid "has %(name)s"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:91
+msgid "Inactive plugins"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:114
+msgid "Plugin Error Stack"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:123
+msgid "Stage"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:125
+msgid "Message"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:10
+#, python-format
+msgid "Plugin details for %(name)s"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:17
+msgid "Plugin information"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:48
+msgid "no version information supplied"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:62
+msgid "License"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:70
+msgid "The code information is pulled from the latest git commit for this plugin. It might not reflect official version numbers or information but the actual code running."
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:74
+msgid "Package information"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:80
+msgid "Installation method"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:83
+msgid "This plugin was installed as a package"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:85
+msgid "This plugin was found in a local InvenTree path"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:91
+msgid "Installation path"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:97
+msgid "Commit Author"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:101
+#: templates/about.html:47
+msgid "Commit Date"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:105
+#: templates/about.html:40
+msgid "Commit Hash"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:109
+msgid "Commit Message"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:114
+msgid "Sign Status"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:119
+msgid "Sign Key"
+msgstr ""
+
#: templates/InvenTree/settings/po.html:7
msgid "Purchase Order Settings"
msgstr ""
@@ -6194,86 +6538,82 @@ msgstr ""
msgid "Edit setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:11 templates/navbar.html:93
-msgid "Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/settings.html:65
+#: templates/InvenTree/settings/settings.html:74
msgid "Edit Global Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:65
+#: templates/InvenTree/settings/settings.html:74
msgid "Edit User Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:148
+#: templates/InvenTree/settings/settings.html:157
msgid "No category parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:170
-#: templates/InvenTree/settings/settings.html:269
+#: templates/InvenTree/settings/settings.html:179
+#: templates/InvenTree/settings/settings.html:278
msgid "Edit Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:171
-#: templates/InvenTree/settings/settings.html:270
+#: templates/InvenTree/settings/settings.html:180
+#: templates/InvenTree/settings/settings.html:279
msgid "Delete Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:249
+#: templates/InvenTree/settings/settings.html:258
msgid "No part parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:253
+#: templates/InvenTree/settings/settings.html:262
msgid "ID"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:5
+#: templates/InvenTree/settings/sidebar.html:6
#: templates/InvenTree/settings/user_settings.html:9
msgid "User Settings"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:8
+#: templates/InvenTree/settings/sidebar.html:9
#: templates/InvenTree/settings/user.html:12
msgid "Account Settings"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:10
+#: templates/InvenTree/settings/sidebar.html:11
#: templates/InvenTree/settings/user_display.html:9
msgid "Display Settings"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:12
+#: templates/InvenTree/settings/sidebar.html:13
msgid "Home Page"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:14
+#: templates/InvenTree/settings/sidebar.html:15
#: templates/InvenTree/settings/user_search.html:9
msgid "Search Settings"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:16
+#: templates/InvenTree/settings/sidebar.html:17
msgid "Label Printing"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:18
-#: templates/InvenTree/settings/sidebar.html:34
+#: templates/InvenTree/settings/sidebar.html:19
+#: templates/InvenTree/settings/sidebar.html:35
msgid "Reporting"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:23
+#: templates/InvenTree/settings/sidebar.html:24
msgid "Global Settings"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:26
+#: templates/InvenTree/settings/sidebar.html:27
msgid "Server Configuration"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:32
+#: templates/InvenTree/settings/sidebar.html:33
msgid "Currencies"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:38
+#: templates/InvenTree/settings/sidebar.html:39
msgid "Categories"
msgstr ""
@@ -6491,8 +6831,8 @@ msgstr ""
#: templates/about.html:11 templates/about.html:105
#: templates/js/translated/bom.js:283 templates/js/translated/modals.js:53
-#: templates/js/translated/modals.js:567 templates/js/translated/modals.js:661
-#: templates/js/translated/modals.js:964 templates/modals.html:15
+#: templates/js/translated/modals.js:568 templates/js/translated/modals.js:662
+#: templates/js/translated/modals.js:965 templates/modals.html:15
#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
msgid "Close"
msgstr ""
@@ -6513,14 +6853,6 @@ msgstr ""
msgid "Update Available"
msgstr ""
-#: templates/about.html:40
-msgid "Commit Hash"
-msgstr ""
-
-#: templates/about.html:47
-msgid "Commit Date"
-msgstr ""
-
#: templates/about.html:53
msgid "InvenTree Documentation"
msgstr ""
@@ -6718,8 +7050,9 @@ msgstr ""
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1129
-#: templates/js/translated/build.js:1749
+#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1134
+#: templates/js/translated/build.js:1755
+#: templates/js/translated/table_filters.js:178
msgid "Available"
msgstr ""
@@ -6765,11 +7098,11 @@ msgstr ""
msgid "Remote image must not exceed maximum allowable file size"
msgstr ""
-#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1034
+#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1035
msgid "No Response"
msgstr ""
-#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1035
+#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1036
msgid "No response from the InvenTree server"
msgstr ""
@@ -6781,35 +7114,35 @@ msgstr ""
msgid "API request returned error code 400"
msgstr ""
-#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1044
+#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1045
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1045
+#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1046
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1049
+#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1050
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1050
+#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1051
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1054
+#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1055
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1055
+#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1056
msgid "The requested resource could not be located on the server"
msgstr ""
-#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1059
+#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1060
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1060
+#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1061
msgid "Connection timeout while requesting data from server"
msgstr ""
@@ -6878,7 +7211,7 @@ msgid "Unknown response from server"
msgstr ""
#: templates/js/translated/barcode.js:140
-#: templates/js/translated/modals.js:1024
+#: templates/js/translated/modals.js:1025
msgid "Invalid server response"
msgstr ""
@@ -6886,7 +7219,7 @@ msgstr ""
msgid "Scan barcode data below"
msgstr ""
-#: templates/js/translated/barcode.js:280 templates/navbar.html:69
+#: templates/js/translated/barcode.js:280 templates/navbar.html:94
msgid "Scan Barcode"
msgstr ""
@@ -6906,7 +7239,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:682
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:839
msgid "Remove stock item"
msgstr ""
@@ -6976,7 +7309,7 @@ msgstr ""
msgid "Substitutes Available"
msgstr ""
-#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1111
+#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1116
msgid "Variant stock allowed"
msgstr ""
@@ -7000,11 +7333,6 @@ msgstr ""
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1183
-#: templates/js/translated/order.js:1319
-msgid "Actions"
-msgstr ""
-
#: templates/js/translated/bom.js:616
msgid "Validate BOM Item"
msgstr ""
@@ -7025,7 +7353,7 @@ msgstr ""
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:718 templates/js/translated/build.js:855
+#: templates/js/translated/bom.js:718 templates/js/translated/build.js:860
msgid "No BOM items found"
msgstr ""
@@ -7033,7 +7361,7 @@ msgstr ""
msgid "Are you sure you want to delete this BOM item?"
msgstr ""
-#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1095
+#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1100
msgid "Required Part"
msgstr ""
@@ -7041,165 +7369,165 @@ msgstr ""
msgid "Inherited from parent BOM"
msgstr ""
-#: templates/js/translated/build.js:78
+#: templates/js/translated/build.js:83
msgid "Edit Build Order"
msgstr ""
-#: templates/js/translated/build.js:112
+#: templates/js/translated/build.js:117
msgid "Create Build Order"
msgstr ""
-#: templates/js/translated/build.js:133
+#: templates/js/translated/build.js:138
msgid "Allocate stock items to this build output"
msgstr ""
-#: templates/js/translated/build.js:144
+#: templates/js/translated/build.js:149
msgid "Unallocate stock from build output"
msgstr ""
-#: templates/js/translated/build.js:153
+#: templates/js/translated/build.js:158
msgid "Complete build output"
msgstr ""
-#: templates/js/translated/build.js:161
+#: templates/js/translated/build.js:166
msgid "Delete build output"
msgstr ""
-#: templates/js/translated/build.js:184
+#: templates/js/translated/build.js:189
msgid "Are you sure you wish to unallocate stock items from this build?"
msgstr ""
-#: templates/js/translated/build.js:202
+#: templates/js/translated/build.js:207
msgid "Unallocate Stock Items"
msgstr ""
-#: templates/js/translated/build.js:220
+#: templates/js/translated/build.js:225
msgid "Select Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:221
+#: templates/js/translated/build.js:226
msgid "At least one build output must be selected"
msgstr ""
-#: templates/js/translated/build.js:275
+#: templates/js/translated/build.js:280
msgid "Output"
msgstr ""
-#: templates/js/translated/build.js:291
+#: templates/js/translated/build.js:296
msgid "Complete Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:386
+#: templates/js/translated/build.js:391
msgid "No build order allocations found"
msgstr ""
-#: templates/js/translated/build.js:424 templates/js/translated/order.js:1193
+#: templates/js/translated/build.js:429 templates/js/translated/order.js:1848
msgid "Location not specified"
msgstr ""
-#: templates/js/translated/build.js:603
+#: templates/js/translated/build.js:608
msgid "No active build outputs found"
msgstr ""
-#: templates/js/translated/build.js:1052 templates/js/translated/build.js:1760
-#: templates/js/translated/order.js:1326
+#: templates/js/translated/build.js:1057 templates/js/translated/build.js:1766
+#: templates/js/translated/order.js:1982
msgid "Edit stock allocation"
msgstr ""
-#: templates/js/translated/build.js:1054 templates/js/translated/build.js:1761
-#: templates/js/translated/order.js:1327
+#: templates/js/translated/build.js:1059 templates/js/translated/build.js:1767
+#: templates/js/translated/order.js:1983
msgid "Delete stock allocation"
msgstr ""
-#: templates/js/translated/build.js:1072
+#: templates/js/translated/build.js:1077
msgid "Edit Allocation"
msgstr ""
-#: templates/js/translated/build.js:1082
+#: templates/js/translated/build.js:1087
msgid "Remove Allocation"
msgstr ""
-#: templates/js/translated/build.js:1107
+#: templates/js/translated/build.js:1112
msgid "Substitute parts available"
msgstr ""
-#: templates/js/translated/build.js:1124
+#: templates/js/translated/build.js:1129
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:1134 templates/js/translated/build.js:1360
-#: templates/js/translated/build.js:1756 templates/js/translated/order.js:1556
+#: templates/js/translated/build.js:1139 templates/js/translated/build.js:1365
+#: templates/js/translated/build.js:1762 templates/js/translated/order.js:2227
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:1190 templates/js/translated/order.js:1610
+#: templates/js/translated/build.js:1195 templates/js/translated/order.js:2307
msgid "Build stock"
msgstr ""
-#: templates/js/translated/build.js:1194 templates/stock_table.html:52
+#: templates/js/translated/build.js:1199 templates/stock_table.html:52
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:1197 templates/js/translated/order.js:1603
+#: templates/js/translated/build.js:1202 templates/js/translated/order.js:2300
msgid "Allocate stock"
msgstr ""
-#: templates/js/translated/build.js:1262
+#: templates/js/translated/build.js:1267 templates/js/translated/order.js:1499
msgid "Specify stock allocation quantity"
msgstr ""
-#: templates/js/translated/build.js:1333 templates/js/translated/label.js:134
-#: templates/js/translated/report.js:225
+#: templates/js/translated/build.js:1338 templates/js/translated/label.js:134
+#: templates/js/translated/order.js:1550 templates/js/translated/report.js:225
msgid "Select Parts"
msgstr ""
-#: templates/js/translated/build.js:1334
+#: templates/js/translated/build.js:1339 templates/js/translated/order.js:1551
msgid "You must select at least one part to allocate"
msgstr ""
-#: templates/js/translated/build.js:1348
+#: templates/js/translated/build.js:1353 templates/js/translated/order.js:1565
msgid "Select source location (leave blank to take from all locations)"
msgstr ""
-#: templates/js/translated/build.js:1377
+#: templates/js/translated/build.js:1382 templates/js/translated/order.js:1600
msgid "Confirm stock allocation"
msgstr ""
-#: templates/js/translated/build.js:1378
+#: templates/js/translated/build.js:1383
msgid "Allocate Stock Items to Build Order"
msgstr ""
-#: templates/js/translated/build.js:1389
+#: templates/js/translated/build.js:1394 templates/js/translated/order.js:1613
msgid "No matching stock locations"
msgstr ""
-#: templates/js/translated/build.js:1451
+#: templates/js/translated/build.js:1464 templates/js/translated/order.js:1690
msgid "No matching stock items"
msgstr ""
-#: templates/js/translated/build.js:1576
+#: templates/js/translated/build.js:1582
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:1593 templates/js/translated/part.js:1147
-#: templates/js/translated/part.js:1558 templates/js/translated/stock.js:1176
-#: templates/js/translated/stock.js:1953
+#: templates/js/translated/build.js:1599 templates/js/translated/part.js:1147
+#: templates/js/translated/part.js:1558 templates/js/translated/stock.js:1333
+#: templates/js/translated/stock.js:2128
msgid "Select"
msgstr ""
-#: templates/js/translated/build.js:1613
+#: templates/js/translated/build.js:1619
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1674 templates/js/translated/stock.js:2172
+#: templates/js/translated/build.js:1680 templates/js/translated/stock.js:2347
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:1686
+#: templates/js/translated/build.js:1692
msgid "No information"
msgstr ""
-#: templates/js/translated/build.js:1737
+#: templates/js/translated/build.js:1743
msgid "No parts allocated for"
msgstr ""
@@ -7219,7 +7547,7 @@ msgstr ""
msgid "Delete Manufacturer Part"
msgstr ""
-#: templates/js/translated/company.js:165 templates/js/translated/order.js:90
+#: templates/js/translated/company.js:165 templates/js/translated/order.js:248
msgid "Add Supplier"
msgstr ""
@@ -7354,20 +7682,20 @@ msgstr ""
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1072 templates/modals.html:19
+#: templates/js/translated/forms.js:1078 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1463
+#: templates/js/translated/forms.js:1469
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1667
+#: templates/js/translated/forms.js:1673
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1884
+#: templates/js/translated/forms.js:1893
msgid "Clear input"
msgstr ""
@@ -7380,7 +7708,7 @@ msgid "NO"
msgstr ""
#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:706
+#: templates/js/translated/stock.js:863
msgid "Select Stock Items"
msgstr ""
@@ -7429,62 +7757,62 @@ msgstr ""
msgid "Select Label Template"
msgstr ""
-#: templates/js/translated/modals.js:75 templates/js/translated/modals.js:119
-#: templates/js/translated/modals.js:593
+#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:120
+#: templates/js/translated/modals.js:594
msgid "Cancel"
msgstr ""
-#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:118
-#: templates/js/translated/modals.js:660 templates/js/translated/modals.js:963
+#: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119
+#: templates/js/translated/modals.js:661 templates/js/translated/modals.js:964
#: templates/modals.html:28 templates/modals.html:51
msgid "Submit"
msgstr ""
-#: templates/js/translated/modals.js:117
+#: templates/js/translated/modals.js:118
msgid "Form Title"
msgstr ""
-#: templates/js/translated/modals.js:380
+#: templates/js/translated/modals.js:381
msgid "Waiting for server..."
msgstr ""
-#: templates/js/translated/modals.js:539
+#: templates/js/translated/modals.js:540
msgid "Show Error Information"
msgstr ""
-#: templates/js/translated/modals.js:592
+#: templates/js/translated/modals.js:593
msgid "Accept"
msgstr ""
-#: templates/js/translated/modals.js:649
+#: templates/js/translated/modals.js:650
msgid "Loading Data"
msgstr ""
-#: templates/js/translated/modals.js:915
+#: templates/js/translated/modals.js:916
msgid "Invalid response from server"
msgstr ""
-#: templates/js/translated/modals.js:915
+#: templates/js/translated/modals.js:916
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/translated/modals.js:927
+#: templates/js/translated/modals.js:928
msgid "Error posting form data"
msgstr ""
-#: templates/js/translated/modals.js:1024
+#: templates/js/translated/modals.js:1025
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/translated/modals.js:1039
+#: templates/js/translated/modals.js:1040
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/translated/modals.js:1040
+#: templates/js/translated/modals.js:1041
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/translated/modals.js:1063
+#: templates/js/translated/modals.js:1064
msgid "Error requesting form data"
msgstr ""
@@ -7512,176 +7840,245 @@ msgstr ""
msgid "Order ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:256
+#: templates/js/translated/model_renderers.js:253
+msgid "Shipment ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:273
msgid "Category ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:293
+#: templates/js/translated/model_renderers.js:310
msgid "Manufacturer Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:322
+#: templates/js/translated/model_renderers.js:339
msgid "Supplier Part ID"
msgstr ""
-#: templates/js/translated/order.js:48
+#: templates/js/translated/order.js:75
+msgid "No stock items have been allocated to this shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:80
+msgid "The following stock items will be shipped"
+msgstr ""
+
+#: templates/js/translated/order.js:120
+msgid "Complete Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:126
+msgid "Confirm Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:181
+msgid "Create New Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:206
msgid "Add Customer"
msgstr ""
-#: templates/js/translated/order.js:73
+#: templates/js/translated/order.js:231
msgid "Create Sales Order"
msgstr ""
-#: templates/js/translated/order.js:208
+#: templates/js/translated/order.js:366
msgid "Export Order"
msgstr ""
-#: templates/js/translated/order.js:211 templates/js/translated/stock.js:505
+#: templates/js/translated/order.js:369 templates/js/translated/stock.js:509
msgid "Format"
msgstr ""
-#: templates/js/translated/order.js:212 templates/js/translated/stock.js:506
+#: templates/js/translated/order.js:370 templates/js/translated/stock.js:510
msgid "Select file format"
msgstr ""
-#: templates/js/translated/order.js:300
+#: templates/js/translated/order.js:460
msgid "Select Line Items"
msgstr ""
-#: templates/js/translated/order.js:301
+#: templates/js/translated/order.js:461
msgid "At least one line item must be selected"
msgstr ""
-#: templates/js/translated/order.js:326
+#: templates/js/translated/order.js:486
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:360 templates/js/translated/stock.js:1755
+#: templates/js/translated/order.js:520 templates/js/translated/stock.js:1930
msgid "Stock Status"
msgstr ""
-#: templates/js/translated/order.js:427
+#: templates/js/translated/order.js:587
msgid "Order Code"
msgstr ""
-#: templates/js/translated/order.js:428
+#: templates/js/translated/order.js:588
msgid "Ordered"
msgstr ""
-#: templates/js/translated/order.js:430
+#: templates/js/translated/order.js:590
msgid "Receive"
msgstr ""
-#: templates/js/translated/order.js:449
+#: templates/js/translated/order.js:609
msgid "Confirm receipt of items"
msgstr ""
-#: templates/js/translated/order.js:450
+#: templates/js/translated/order.js:610
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:627 templates/js/translated/part.js:746
+#: templates/js/translated/order.js:790 templates/js/translated/part.js:746
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:659 templates/js/translated/order.js:1062
+#: templates/js/translated/order.js:815 templates/js/translated/order.js:1230
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:771 templates/js/translated/order.js:1645
+#: templates/js/translated/order.js:936 templates/js/translated/order.js:2356
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:783 templates/js/translated/order.js:1656
+#: templates/js/translated/order.js:948 templates/js/translated/order.js:2367
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/order.js:822
+#: templates/js/translated/order.js:987
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:849 templates/js/translated/order.js:1466
+#: templates/js/translated/order.js:1014 templates/js/translated/order.js:2138
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:903 templates/js/translated/order.js:1491
+#: templates/js/translated/order.js:1068 templates/js/translated/order.js:2163
#: templates/js/translated/part.js:1775 templates/js/translated/part.js:1986
msgid "Unit Price"
msgstr ""
-#: templates/js/translated/order.js:918 templates/js/translated/order.js:1507
+#: templates/js/translated/order.js:1083 templates/js/translated/order.js:2179
msgid "Total Price"
msgstr ""
-#: templates/js/translated/order.js:996 templates/js/translated/order.js:1616
+#: templates/js/translated/order.js:1161 templates/js/translated/order.js:2313
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:997
+#: templates/js/translated/order.js:1162 templates/js/translated/order.js:2317
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:1001 templates/js/translated/part.js:878
+#: templates/js/translated/order.js:1166 templates/js/translated/part.js:878
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:1038
+#: templates/js/translated/order.js:1206
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:1076
+#: templates/js/translated/order.js:1244
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:1154
+#: templates/js/translated/order.js:1322
+msgid "Edit shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1325
+msgid "Complete shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1330
+msgid "Delete shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1350
+msgid "Edit Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1367
+msgid "Delete Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1401
+msgid "No matching shipments found"
+msgstr ""
+
+#: templates/js/translated/order.js:1411
+msgid "Shipment Reference"
+msgstr ""
+
+#: templates/js/translated/order.js:1435
+msgid "Not shipped"
+msgstr ""
+
+#: templates/js/translated/order.js:1441
+msgid "Tracking"
+msgstr ""
+
+#: templates/js/translated/order.js:1601
+msgid "Allocate Stock Items to Sales Order"
+msgstr ""
+
+#: templates/js/translated/order.js:1809
msgid "No sales order allocations found"
msgstr ""
-#: templates/js/translated/order.js:1247
+#: templates/js/translated/order.js:1898
msgid "Edit Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1264
+#: templates/js/translated/order.js:1915
msgid "Confirm Delete Operation"
msgstr ""
-#: templates/js/translated/order.js:1265
+#: templates/js/translated/order.js:1916
msgid "Delete Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1307
+#: templates/js/translated/order.js:1959 templates/js/translated/order.js:2048
+#: templates/js/translated/stock.js:1249
+msgid "Shipped to customer"
+msgstr ""
+
+#: templates/js/translated/order.js:1967 templates/js/translated/order.js:2057
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:1556
-msgid "Fulfilled"
-msgstr ""
-
-#: templates/js/translated/order.js:1600
+#: templates/js/translated/order.js:2297
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:1606
+#: templates/js/translated/order.js:2303
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:1613 templates/js/translated/order.js:1792
+#: templates/js/translated/order.js:2310 templates/js/translated/order.js:2476
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:1617
-msgid "Delete line item "
+#: templates/js/translated/order.js:2321
+msgid "Cannot be deleted as items have been shipped"
msgstr ""
-#: templates/js/translated/order.js:1740
-msgid "Allocate Stock Item"
+#: templates/js/translated/order.js:2324
+msgid "Cannot be deleted as items have been allocated"
msgstr ""
-#: templates/js/translated/order.js:1800
+#: templates/js/translated/order.js:2382
+msgid "Allocate Serial Numbers"
+msgstr ""
+
+#: templates/js/translated/order.js:2484
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:1814
+#: templates/js/translated/order.js:2498
msgid "No matching line items"
msgstr ""
@@ -7826,12 +8223,12 @@ msgid "No category"
msgstr ""
#: templates/js/translated/part.js:1230
-#: templates/js/translated/table_filters.js:381
+#: templates/js/translated/table_filters.js:412
msgid "Low stock"
msgstr ""
#: templates/js/translated/part.js:1321 templates/js/translated/part.js:1493
-#: templates/js/translated/stock.js:1914
+#: templates/js/translated/stock.js:2089
msgid "Display as list"
msgstr ""
@@ -7839,7 +8236,7 @@ msgstr ""
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1512 templates/js/translated/stock.js:1933
+#: templates/js/translated/part.js:1512 templates/js/translated/stock.js:2108
msgid "Display as tree"
msgstr ""
@@ -7847,7 +8244,7 @@ msgstr ""
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:1590 templates/js/translated/stock.js:1977
+#: templates/js/translated/part.js:1590 templates/js/translated/stock.js:2152
msgid "Path"
msgstr ""
@@ -7855,11 +8252,11 @@ msgstr ""
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1685 templates/js/translated/stock.js:898
+#: templates/js/translated/part.js:1685 templates/js/translated/stock.js:1055
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1686 templates/js/translated/stock.js:899
+#: templates/js/translated/part.js:1686 templates/js/translated/stock.js:1056
msgid "Delete test result"
msgstr ""
@@ -7898,6 +8295,10 @@ msgstr ""
msgid "Single Price Difference"
msgstr ""
+#: templates/js/translated/plugin.js:22
+msgid "The Plugin was installed"
+msgstr ""
+
#: templates/js/translated/report.js:67
msgid "items selected"
msgstr ""
@@ -7964,300 +8365,316 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/stock.js:71
+#: templates/js/translated/stock.js:72
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:89 templates/js/translated/stock.js:168
+#: templates/js/translated/stock.js:90 templates/js/translated/stock.js:172
msgid "Next available serial number"
msgstr ""
-#: templates/js/translated/stock.js:91 templates/js/translated/stock.js:170
+#: templates/js/translated/stock.js:92 templates/js/translated/stock.js:174
msgid "Latest serial number"
msgstr ""
-#: templates/js/translated/stock.js:105
+#: templates/js/translated/stock.js:100
+msgid "Confirm Stock Serialization"
+msgstr ""
+
+#: templates/js/translated/stock.js:109
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:141
+#: templates/js/translated/stock.js:145
msgid "New Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:181
+#: templates/js/translated/stock.js:185
msgid "This part cannot be serialized"
msgstr ""
-#: templates/js/translated/stock.js:220
+#: templates/js/translated/stock.js:224
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: templates/js/translated/stock.js:226
+#: templates/js/translated/stock.js:230
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: templates/js/translated/stock.js:369
+#: templates/js/translated/stock.js:373
msgid "Created new stock item"
msgstr ""
-#: templates/js/translated/stock.js:382
+#: templates/js/translated/stock.js:386
msgid "Created multiple stock items"
msgstr ""
-#: templates/js/translated/stock.js:407
+#: templates/js/translated/stock.js:411
msgid "Find Serial Number"
msgstr ""
-#: templates/js/translated/stock.js:411 templates/js/translated/stock.js:412
+#: templates/js/translated/stock.js:415 templates/js/translated/stock.js:416
msgid "Enter serial number"
msgstr ""
-#: templates/js/translated/stock.js:428
+#: templates/js/translated/stock.js:432
msgid "Enter a serial number"
msgstr ""
-#: templates/js/translated/stock.js:448
+#: templates/js/translated/stock.js:452
msgid "No matching serial number"
msgstr ""
-#: templates/js/translated/stock.js:457
+#: templates/js/translated/stock.js:461
msgid "More than one matching result found"
msgstr ""
-#: templates/js/translated/stock.js:502
+#: templates/js/translated/stock.js:506
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:513
+#: templates/js/translated/stock.js:517
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:514
+#: templates/js/translated/stock.js:518
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:556
+#: templates/js/translated/stock.js:627
+msgid "Confirm stock assignment"
+msgstr ""
+
+#: templates/js/translated/stock.js:628
+msgid "Assign Stock to Customer"
+msgstr ""
+
+#: templates/js/translated/stock.js:713
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:557
+#: templates/js/translated/stock.js:714
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:563
+#: templates/js/translated/stock.js:720
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:564
+#: templates/js/translated/stock.js:721
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:568
+#: templates/js/translated/stock.js:725
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:569
+#: templates/js/translated/stock.js:726
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:573
+#: templates/js/translated/stock.js:730
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:574 users/models.py:200
+#: templates/js/translated/stock.js:731 users/models.py:202
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:578 templates/stock_table.html:56
+#: templates/js/translated/stock.js:735 templates/stock_table.html:57
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:667
+#: templates/js/translated/stock.js:824
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:667
+#: templates/js/translated/stock.js:824
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:707
+#: templates/js/translated/stock.js:864
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:865
+#: templates/js/translated/stock.js:1022
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:867
+#: templates/js/translated/stock.js:1024
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:872
+#: templates/js/translated/stock.js:1029
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:894
+#: templates/js/translated/stock.js:1051
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:920
+#: templates/js/translated/stock.js:1077
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:977
+#: templates/js/translated/stock.js:1134
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:1084
+#: templates/js/translated/stock.js:1241
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:1088
+#: templates/js/translated/stock.js:1245
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:1092
-msgid "Shipped to customer"
-msgstr ""
-
-#: templates/js/translated/stock.js:1096
+#: templates/js/translated/stock.js:1253
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:1102
+#: templates/js/translated/stock.js:1259
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:1260
+#: templates/js/translated/stock.js:1417
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1265
+#: templates/js/translated/stock.js:1422
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1268
+#: templates/js/translated/stock.js:1425
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1272
+#: templates/js/translated/stock.js:1429
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1274
+#: templates/js/translated/stock.js:1431
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1278
-msgid "Stock item has been allocated"
+#: templates/js/translated/stock.js:1437
+msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1282
+#: templates/js/translated/stock.js:1439
+msgid "Stock item has been fully allocated"
+msgstr ""
+
+#: templates/js/translated/stock.js:1441
+msgid "Stock item has been partially allocated"
+msgstr ""
+
+#: templates/js/translated/stock.js:1446
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1289
+#: templates/js/translated/stock.js:1453
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1291
+#: templates/js/translated/stock.js:1455
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1293
+#: templates/js/translated/stock.js:1457
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1297
-#: templates/js/translated/table_filters.js:183
+#: templates/js/translated/stock.js:1461
+#: templates/js/translated/table_filters.js:188
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1347
+#: templates/js/translated/stock.js:1511
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1420
+#: templates/js/translated/stock.js:1584
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1458
+#: templates/js/translated/stock.js:1622
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1479 templates/js/translated/stock.js:1527
+#: templates/js/translated/stock.js:1643 templates/js/translated/stock.js:1691
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1567
+#: templates/js/translated/stock.js:1731
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1594
+#: templates/js/translated/stock.js:1758
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:1596
+#: templates/js/translated/stock.js:1760
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:1770
+#: templates/js/translated/stock.js:1945
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:1784
+#: templates/js/translated/stock.js:1959
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:1785
+#: templates/js/translated/stock.js:1960
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:2009
+#: templates/js/translated/stock.js:2184
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:2031
+#: templates/js/translated/stock.js:2206
msgid "Details"
msgstr ""
-#: templates/js/translated/stock.js:2056
+#: templates/js/translated/stock.js:2231
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2075
+#: templates/js/translated/stock.js:2250
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2094
+#: templates/js/translated/stock.js:2269
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2112
+#: templates/js/translated/stock.js:2287
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2135
+#: templates/js/translated/stock.js:2310
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2143
+#: templates/js/translated/stock.js:2318
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2184
+#: templates/js/translated/stock.js:2359
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2185
+#: templates/js/translated/stock.js:2360
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2236
+#: templates/js/translated/stock.js:2411
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2287
+#: templates/js/translated/stock.js:2462
msgid "Uninstall Stock Item"
msgstr ""
@@ -8278,7 +8695,7 @@ msgid "Allow Variant Stock"
msgstr ""
#: templates/js/translated/table_filters.js:110
-#: templates/js/translated/table_filters.js:178
+#: templates/js/translated/table_filters.js:183
msgid "Include sublocations"
msgstr ""
@@ -8288,54 +8705,54 @@ msgstr ""
#: templates/js/translated/table_filters.js:121
#: templates/js/translated/table_filters.js:122
-#: templates/js/translated/table_filters.js:358
+#: templates/js/translated/table_filters.js:389
msgid "Include subcategories"
msgstr ""
#: templates/js/translated/table_filters.js:126
-#: templates/js/translated/table_filters.js:393
+#: templates/js/translated/table_filters.js:424
msgid "Subscribed"
msgstr ""
#: templates/js/translated/table_filters.js:136
-#: templates/js/translated/table_filters.js:213
+#: templates/js/translated/table_filters.js:218
msgid "Is Serialized"
msgstr ""
#: templates/js/translated/table_filters.js:139
-#: templates/js/translated/table_filters.js:220
+#: templates/js/translated/table_filters.js:225
msgid "Serial number GTE"
msgstr ""
#: templates/js/translated/table_filters.js:140
-#: templates/js/translated/table_filters.js:221
+#: templates/js/translated/table_filters.js:226
msgid "Serial number greater than or equal to"
msgstr ""
#: templates/js/translated/table_filters.js:143
-#: templates/js/translated/table_filters.js:224
+#: templates/js/translated/table_filters.js:229
msgid "Serial number LTE"
msgstr ""
#: templates/js/translated/table_filters.js:144
-#: templates/js/translated/table_filters.js:225
+#: templates/js/translated/table_filters.js:230
msgid "Serial number less than or equal to"
msgstr ""
#: templates/js/translated/table_filters.js:147
#: templates/js/translated/table_filters.js:148
-#: templates/js/translated/table_filters.js:216
-#: templates/js/translated/table_filters.js:217
+#: templates/js/translated/table_filters.js:221
+#: templates/js/translated/table_filters.js:222
msgid "Serial number"
msgstr ""
#: templates/js/translated/table_filters.js:152
-#: templates/js/translated/table_filters.js:234
+#: templates/js/translated/table_filters.js:239
msgid "Batch code"
msgstr ""
#: templates/js/translated/table_filters.js:163
-#: templates/js/translated/table_filters.js:348
+#: templates/js/translated/table_filters.js:379
msgid "Active parts"
msgstr ""
@@ -8356,101 +8773,111 @@ msgid "Item has been allocated"
msgstr ""
#: templates/js/translated/table_filters.js:179
-msgid "Include stock in sublocations"
+msgid "Stock is available for use"
msgstr ""
#: templates/js/translated/table_filters.js:184
-msgid "Show stock items which are depleted"
+msgid "Include stock in sublocations"
msgstr ""
#: templates/js/translated/table_filters.js:189
-msgid "Show items which are in stock"
-msgstr ""
-
-#: templates/js/translated/table_filters.js:193
-msgid "In Production"
+msgid "Show stock items which are depleted"
msgstr ""
#: templates/js/translated/table_filters.js:194
-msgid "Show items which are in production"
+msgid "Show items which are in stock"
msgstr ""
#: templates/js/translated/table_filters.js:198
-msgid "Include Variants"
+msgid "In Production"
msgstr ""
#: templates/js/translated/table_filters.js:199
-msgid "Include stock items for variant parts"
+msgid "Show items which are in production"
msgstr ""
#: templates/js/translated/table_filters.js:203
-msgid "Installed"
+msgid "Include Variants"
msgstr ""
#: templates/js/translated/table_filters.js:204
-msgid "Show stock items which are installed in another item"
+msgid "Include stock items for variant parts"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:208
+msgid "Installed"
msgstr ""
#: templates/js/translated/table_filters.js:209
+msgid "Show stock items which are installed in another item"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:214
msgid "Show items which have been assigned to a customer"
msgstr ""
-#: templates/js/translated/table_filters.js:229
-#: templates/js/translated/table_filters.js:230
+#: templates/js/translated/table_filters.js:234
+#: templates/js/translated/table_filters.js:235
msgid "Stock status"
msgstr ""
-#: templates/js/translated/table_filters.js:238
+#: templates/js/translated/table_filters.js:243
msgid "Has purchase price"
msgstr ""
-#: templates/js/translated/table_filters.js:239
+#: templates/js/translated/table_filters.js:244
msgid "Show stock items which have a purchase price set"
msgstr ""
-#: templates/js/translated/table_filters.js:248
+#: templates/js/translated/table_filters.js:253
msgid "Show stock items which have expired"
msgstr ""
-#: templates/js/translated/table_filters.js:254
+#: templates/js/translated/table_filters.js:259
msgid "Show stock which is close to expiring"
msgstr ""
-#: templates/js/translated/table_filters.js:285
+#: templates/js/translated/table_filters.js:290
msgid "Build status"
msgstr ""
-#: templates/js/translated/table_filters.js:313
-#: templates/js/translated/table_filters.js:330
+#: templates/js/translated/table_filters.js:303
+#: templates/js/translated/table_filters.js:344
+msgid "Assigned to me"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:320
+#: templates/js/translated/table_filters.js:331
+#: templates/js/translated/table_filters.js:352
msgid "Order status"
msgstr ""
-#: templates/js/translated/table_filters.js:318
-#: templates/js/translated/table_filters.js:335
+#: templates/js/translated/table_filters.js:336
+#: templates/js/translated/table_filters.js:357
msgid "Outstanding"
msgstr ""
-#: templates/js/translated/table_filters.js:359
+#: templates/js/translated/table_filters.js:390
msgid "Include parts in subcategories"
msgstr ""
-#: templates/js/translated/table_filters.js:363
+#: templates/js/translated/table_filters.js:394
msgid "Has IPN"
msgstr ""
-#: templates/js/translated/table_filters.js:364
+#: templates/js/translated/table_filters.js:395
msgid "Part has internal part number"
msgstr ""
-#: templates/js/translated/table_filters.js:369
+#: templates/js/translated/table_filters.js:400
msgid "Show active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:377
+#: templates/js/translated/table_filters.js:408
msgid "Stock available"
msgstr ""
-#: templates/js/translated/table_filters.js:405
+#: templates/js/translated/table_filters.js:436
msgid "Purchasable"
msgstr ""
@@ -8507,27 +8934,23 @@ msgstr ""
msgid "All"
msgstr ""
-#: templates/navbar.html:40
+#: templates/navbar.html:42
msgid "Buy"
msgstr ""
-#: templates/navbar.html:52
+#: templates/navbar.html:54
msgid "Sell"
msgstr ""
-#: templates/navbar.html:86 users/models.py:39
-msgid "Admin"
-msgstr ""
-
-#: templates/navbar.html:88
+#: templates/navbar.html:113
msgid "Logout"
msgstr ""
-#: templates/navbar.html:90
+#: templates/navbar.html:115
msgid "Login"
msgstr ""
-#: templates/navbar.html:111
+#: templates/navbar.html:136
msgid "About InvenTree"
msgstr ""
@@ -8639,15 +9062,15 @@ msgstr ""
msgid "Order selected items"
msgstr ""
-#: templates/stock_table.html:53
+#: templates/stock_table.html:54
msgid "Change status"
msgstr ""
-#: templates/stock_table.html:53
+#: templates/stock_table.html:54
msgid "Change stock status"
msgstr ""
-#: templates/stock_table.html:56
+#: templates/stock_table.html:57
msgid "Delete selected items"
msgstr ""
@@ -8683,35 +9106,35 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:187
+#: users/models.py:189
msgid "Permission set"
msgstr ""
-#: users/models.py:195
+#: users/models.py:197
msgid "Group"
msgstr ""
-#: users/models.py:198
+#: users/models.py:200
msgid "View"
msgstr ""
-#: users/models.py:198
+#: users/models.py:200
msgid "Permission to view items"
msgstr ""
-#: users/models.py:200
+#: users/models.py:202
msgid "Permission to add items"
msgstr ""
-#: users/models.py:202
+#: users/models.py:204
msgid "Change"
msgstr ""
-#: users/models.py:202
+#: users/models.py:204
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:204
+#: users/models.py:206
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 b478c9da25..685dd24ab4 100644
--- a/InvenTree/locale/it/LC_MESSAGES/django.po
+++ b/InvenTree/locale/it/LC_MESSAGES/django.po
@@ -1,9 +1,10 @@
+#: templates/js/translated/order.js:1973
msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-12-03 10:37+0000\n"
-"PO-Revision-Date: 2021-12-03 11:26\n"
+"POT-Creation-Date: 2021-12-08 23:43+0000\n"
+"PO-Revision-Date: 2021-12-08 23:47\n"
"Last-Translator: \n"
"Language-Team: Italian\n"
"Language: it_IT\n"
@@ -34,8 +35,8 @@ msgid "Enter date"
msgstr "Inserisci la data"
#: InvenTree/forms.py:120 build/forms.py:48 build/forms.py:69 build/forms.py:93
-#: order/forms.py:26 order/forms.py:37 order/forms.py:48 order/forms.py:59
-#: order/forms.py:70 part/forms.py:108 templates/account/email_confirm.html:20
+#: order/forms.py:24 order/forms.py:35 order/forms.py:46 order/forms.py:57
+#: part/forms.py:108 templates/account/email_confirm.html:20
#: templates/js/translated/forms.js:595
msgid "Confirm"
msgstr "Conferma"
@@ -85,8 +86,8 @@ msgstr "È necessario digitare la stessa e-mail ogni volta."
msgid "Duplicate serial: {n}"
msgstr "Seriale Duplicato: {n}"
-#: InvenTree/helpers.py:437 order/models.py:318 order/models.py:440
-#: stock/views.py:1264
+#: InvenTree/helpers.py:437 order/models.py:279 order/models.py:420
+#: stock/views.py:1231
msgid "Invalid quantity provided"
msgstr "Quantità inserita non valida"
@@ -122,7 +123,7 @@ msgstr ""
msgid "Missing external link"
msgstr ""
-#: InvenTree/models.py:132 stock/models.py:1864
+#: InvenTree/models.py:132 stock/models.py:1852
#: templates/js/translated/attachment.js:117
msgid "Attachment"
msgstr "Allegato"
@@ -132,7 +133,7 @@ msgid "Select file to attach"
msgstr "Seleziona file da allegare"
#: InvenTree/models.py:139 company/models.py:131 company/models.py:348
-#: company/models.py:564 order/models.py:163 part/models.py:797
+#: company/models.py:564 order/models.py:124 part/models.py:797
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:537
#: templates/js/translated/company.js:826 templates/js/translated/part.js:1258
@@ -140,7 +141,7 @@ msgid "Link"
msgstr "Link"
#: InvenTree/models.py:140 build/models.py:330 part/models.py:798
-#: stock/models.py:530
+#: stock/models.py:524
msgid "Link to external URL"
msgstr "Link a URL esterno"
@@ -152,10 +153,10 @@ msgstr "Commento"
msgid "File comment"
msgstr "Commento del file"
-#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1185
-#: common/models.py:1186 part/models.py:2205 part/models.py:2225
+#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1213
+#: common/models.py:1214 part/models.py:2205 part/models.py:2225
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2166
+#: templates/js/translated/stock.js:2341
msgid "User"
msgstr "Utente"
@@ -194,10 +195,15 @@ msgstr "Scelta non valida"
#: InvenTree/models.py:277 InvenTree/models.py:278 company/models.py:415
#: label/models.py:112 part/models.py:741 part/models.py:2389
-#: report/models.py:181 templates/InvenTree/settings/settings.html:259
+#: plugin/models.py:39 report/models.py:181
+#: templates/InvenTree/settings/mixins/urls.html:11
+#: templates/InvenTree/settings/plugin.html:47
+#: templates/InvenTree/settings/plugin.html:124
+#: templates/InvenTree/settings/plugin_settings.html:23
+#: templates/InvenTree/settings/settings.html:268
#: templates/js/translated/company.js:638 templates/js/translated/part.js:506
#: templates/js/translated/part.js:643 templates/js/translated/part.js:1565
-#: templates/js/translated/stock.js:1959
+#: templates/js/translated/stock.js:2134
msgid "Name"
msgstr "Nome"
@@ -206,22 +212,23 @@ msgstr "Nome"
#: company/models.py:570 company/templates/company/company_base.html:68
#: company/templates/company/manufacturer_part.html:76
#: company/templates/company/supplier_part.html:73 label/models.py:119
-#: order/models.py:161 part/models.py:764 part/templates/part/category.html:70
+#: order/models.py:122 part/models.py:764 part/templates/part/category.html:70
#: part/templates/part/part_base.html:163
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:553 report/models.py:592
#: report/templates/report/inventree_build_order_base.html:118
-#: stock/templates/stock/location.html:89 templates/js/translated/bom.js:215
-#: templates/js/translated/bom.js:428 templates/js/translated/build.js:1621
-#: templates/js/translated/company.js:345
+#: stock/templates/stock/location.html:89
+#: templates/InvenTree/settings/plugin_settings.html:33
+#: templates/js/translated/bom.js:215 templates/js/translated/bom.js:428
+#: templates/js/translated/build.js:1627 templates/js/translated/company.js:345
#: templates/js/translated/company.js:548
-#: templates/js/translated/company.js:837 templates/js/translated/order.js:680
-#: templates/js/translated/order.js:854 templates/js/translated/order.js:1090
+#: templates/js/translated/company.js:837 templates/js/translated/order.js:836
+#: templates/js/translated/order.js:1019 templates/js/translated/order.js:1258
#: templates/js/translated/part.js:565 templates/js/translated/part.js:933
#: templates/js/translated/part.js:1018 templates/js/translated/part.js:1188
#: templates/js/translated/part.js:1584 templates/js/translated/part.js:1653
-#: templates/js/translated/stock.js:1233 templates/js/translated/stock.js:1971
-#: templates/js/translated/stock.js:2016
+#: templates/js/translated/stock.js:1390 templates/js/translated/stock.js:2146
+#: templates/js/translated/stock.js:2191
msgid "Description"
msgstr "Descrizione"
@@ -241,83 +248,83 @@ msgstr "Deve essere un numero valido"
msgid "Filename"
msgstr "Nome del file"
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:689
msgid "German"
msgstr "Tedesco"
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:690
msgid "Greek"
msgstr "Greco"
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:691
msgid "English"
msgstr "Inglese"
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:692
msgid "Spanish"
msgstr "Spagnolo"
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:693
msgid "Spanish (Mexican)"
msgstr "Spagnolo (Messicano)"
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:694
msgid "French"
msgstr "Francese"
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:695
msgid "Hebrew"
msgstr "Ebraico"
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:696
msgid "Italian"
msgstr "Italiano"
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:697
msgid "Japanese"
msgstr "Giapponese"
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:698
msgid "Korean"
msgstr "Coreano"
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:699
msgid "Dutch"
msgstr "Olandese"
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:700
msgid "Norwegian"
msgstr "Norvegese"
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:701
msgid "Polish"
msgstr "Polacco"
-#: InvenTree/settings.py:683
+#: InvenTree/settings.py:702
msgid "Portugese"
msgstr "Portoghese"
-#: InvenTree/settings.py:684
+#: InvenTree/settings.py:703
msgid "Russian"
msgstr "Russo"
-#: InvenTree/settings.py:685
+#: InvenTree/settings.py:704
msgid "Swedish"
msgstr "Svedese"
-#: InvenTree/settings.py:686
+#: InvenTree/settings.py:705
msgid "Thai"
msgstr "Thailandese"
-#: InvenTree/settings.py:687
+#: InvenTree/settings.py:706
msgid "Turkish"
msgstr "Turco"
-#: InvenTree/settings.py:688
+#: InvenTree/settings.py:707
msgid "Vietnamese"
msgstr "Vietnamita"
-#: InvenTree/settings.py:689
+#: InvenTree/settings.py:708
msgid "Chinese"
msgstr "Cinese"
@@ -334,7 +341,7 @@ msgid "InvenTree system health checks failed"
msgstr "Controlli di sistema InvenTree falliti"
#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142
-#: InvenTree/status_codes.py:311
+#: InvenTree/status_codes.py:311 templates/js/translated/table_filters.js:313
msgid "Pending"
msgstr "In attesa"
@@ -343,6 +350,8 @@ msgid "Placed"
msgstr "Inviato"
#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:314
+#: order/templates/order/order_base.html:128
+#: order/templates/order/sales_order_base.html:132
msgid "Complete"
msgstr "Completo"
@@ -361,8 +370,8 @@ msgstr "Perso"
msgid "Returned"
msgstr "Reso"
-#: InvenTree/status_codes.py:143
-#: order/templates/order/sales_order_base.html:148
+#: InvenTree/status_codes.py:143 order/models.py:939
+#: templates/js/translated/order.js:1980 templates/js/translated/order.js:2255
msgid "Shipped"
msgstr "Spedito"
@@ -442,7 +451,7 @@ msgstr "Diviso dall'elemento genitore"
msgid "Split child item"
msgstr "Dividi elemento figlio"
-#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:208
+#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:213
msgid "Sent to customer"
msgstr "Inviato al cliente"
@@ -522,55 +531,55 @@ msgstr "Imposta Password"
msgid "Password fields must match"
msgstr "Le password devono coincidere"
-#: InvenTree/views.py:883 templates/navbar.html:101
+#: InvenTree/views.py:883 templates/navbar.html:126
msgid "System Information"
msgstr "Informazioni sistema"
-#: barcodes/api.py:53 barcodes/api.py:150
+#: barcodes/api.py:54 barcodes/api.py:151
msgid "Must provide barcode_data parameter"
msgstr "È necessario fornire il parametro barcode_data"
-#: barcodes/api.py:126
+#: barcodes/api.py:127
msgid "No match found for barcode data"
msgstr "Nessuna corrispondenza trovata per i dati del codice a barre"
-#: barcodes/api.py:128
+#: barcodes/api.py:129
msgid "Match found for barcode data"
msgstr "Corrispondenza trovata per i dati del codice a barre"
-#: barcodes/api.py:153
+#: barcodes/api.py:154
msgid "Must provide stockitem parameter"
msgstr "È necessario fornire il parametro stockitem"
-#: barcodes/api.py:160
+#: barcodes/api.py:161
msgid "No matching stock item found"
msgstr "Nessun elemento corrispondente trovato"
-#: barcodes/api.py:190
-msgid "Barcode already matches StockItem object"
-msgstr "Il codice a barre corrisponde già all'oggetto StockItem"
+#: barcodes/api.py:191
+msgid "Barcode already matches Stock Item"
+msgstr ""
-#: barcodes/api.py:194
-msgid "Barcode already matches StockLocation object"
-msgstr "Il codice a barre corrisponde già all'oggetto StockItem"
+#: barcodes/api.py:195
+msgid "Barcode already matches Stock Location"
+msgstr ""
-#: barcodes/api.py:198
-msgid "Barcode already matches Part object"
-msgstr "Il codice a barre corrisponde già all'articolo"
+#: barcodes/api.py:199
+msgid "Barcode already matches Part"
+msgstr ""
-#: barcodes/api.py:204 barcodes/api.py:216
-msgid "Barcode hash already matches StockItem object"
-msgstr "Il codice a barre corrisponde già all'articolo in giacenza"
+#: barcodes/api.py:205 barcodes/api.py:217
+msgid "Barcode hash already matches Stock Item"
+msgstr ""
-#: barcodes/api.py:222
-msgid "Barcode associated with StockItem"
-msgstr "Codice a barre associato all'articolo in giacenza"
+#: barcodes/api.py:223
+msgid "Barcode associated with Stock Item"
+msgstr ""
#: build/forms.py:36 build/models.py:1283
#: build/templates/build/build_base.html:132
-#: build/templates/build/detail.html:35 common/models.py:1225
+#: build/templates/build/detail.html:35 common/models.py:1253
#: company/forms.py:42 company/templates/company/supplier_part.html:251
-#: order/forms.py:102 order/models.py:729 order/models.py:991
+#: order/models.py:794 order/models.py:1205 order/serializers.py:810
#: order/templates/order/order_wizard/match_parts.html:30
#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:223
#: part/forms.py:239 part/forms.py:255 part/models.py:2576
@@ -582,20 +591,23 @@ msgstr "Codice a barre associato all'articolo in giacenza"
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:81
#: report/templates/report/inventree_test_report_base.html:139
-#: stock/forms.py:156 stock/serializers.py:291
+#: stock/forms.py:142 stock/serializers.py:293
#: stock/templates/stock/item_base.html:174
+#: stock/templates/stock/item_base.html:255
+#: stock/templates/stock/item_base.html:263
#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443
-#: templates/js/translated/build.js:235 templates/js/translated/build.js:435
-#: templates/js/translated/build.js:629 templates/js/translated/build.js:639
-#: templates/js/translated/build.js:1015 templates/js/translated/build.js:1362
+#: templates/js/translated/build.js:240 templates/js/translated/build.js:440
+#: templates/js/translated/build.js:634 templates/js/translated/build.js:644
+#: templates/js/translated/build.js:1020 templates/js/translated/build.js:1367
#: templates/js/translated/model_renderers.js:99
-#: templates/js/translated/order.js:891 templates/js/translated/order.js:1204
-#: templates/js/translated/order.js:1282 templates/js/translated/order.js:1289
-#: templates/js/translated/order.js:1378 templates/js/translated/order.js:1478
-#: templates/js/translated/part.js:843 templates/js/translated/part.js:1796
-#: templates/js/translated/part.js:1919 templates/js/translated/part.js:1997
-#: templates/js/translated/stock.js:378 templates/js/translated/stock.js:2151
-#: templates/js/translated/stock.js:2253
+#: templates/js/translated/order.js:101 templates/js/translated/order.js:1056
+#: templates/js/translated/order.js:1578 templates/js/translated/order.js:1859
+#: templates/js/translated/order.js:1947 templates/js/translated/order.js:2036
+#: templates/js/translated/order.js:2150 templates/js/translated/part.js:843
+#: templates/js/translated/part.js:1796 templates/js/translated/part.js:1919
+#: templates/js/translated/part.js:1997 templates/js/translated/stock.js:382
+#: templates/js/translated/stock.js:579 templates/js/translated/stock.js:2326
+#: templates/js/translated/stock.js:2428
msgid "Quantity"
msgstr "Quantità"
@@ -603,9 +615,9 @@ msgstr "Quantità"
msgid "Enter quantity for build output"
msgstr "Inserisci la quantità per l'output di compilazione"
-#: build/forms.py:41 order/forms.py:96 stock/forms.py:95
-#: stock/serializers.py:312 templates/js/translated/stock.js:225
-#: templates/js/translated/stock.js:379
+#: build/forms.py:41 order/serializers.py:814 stock/forms.py:81
+#: stock/serializers.py:314 templates/js/translated/stock.js:229
+#: templates/js/translated/stock.js:383
msgid "Serial Numbers"
msgstr "Codice Seriale"
@@ -640,17 +652,17 @@ msgstr ""
#: build/models.py:137 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:397
+#: templates/js/translated/build.js:402
msgid "Build Order"
msgstr ""
#: build/models.py:138 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
-#: order/templates/order/sales_order_detail.html:42
-#: order/templates/order/so_sidebar.html:7
+#: order/templates/order/sales_order_detail.html:92
+#: order/templates/order/so_sidebar.html:13
#: part/templates/part/part_sidebar.html:20 templates/InvenTree/index.html:221
#: templates/InvenTree/search.html:145
-#: templates/InvenTree/settings/sidebar.html:42 users/models.py:44
+#: templates/InvenTree/settings/sidebar.html:43 users/models.py:44
msgid "Build Orders"
msgstr ""
@@ -658,13 +670,13 @@ msgstr ""
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:199 order/models.py:249 order/models.py:556
-#: order/models.py:736 part/models.py:2585
+#: build/models.py:199 order/models.py:210 order/models.py:536
+#: order/models.py:801 part/models.py:2585
#: part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1119
-#: templates/js/translated/order.js:885 templates/js/translated/order.js:1472
+#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1124
+#: templates/js/translated/order.js:1050 templates/js/translated/order.js:2144
msgid "Reference"
msgstr "Riferimento"
@@ -683,7 +695,7 @@ msgstr ""
#: build/models.py:225 build/templates/build/build_base.html:77
#: build/templates/build/detail.html:30 company/models.py:705
-#: order/models.py:789 order/models.py:860
+#: order/models.py:854 order/models.py:928
#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357
#: part/models.py:2151 part/models.py:2167 part/models.py:2186
#: part/models.py:2203 part/models.py:2305 part/models.py:2427
@@ -698,14 +710,16 @@ msgstr ""
#: templates/email/build_order_required_stock.html:17
#: templates/email/low_stock_notification.html:16
#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:214
-#: templates/js/translated/bom.js:393 templates/js/translated/build.js:620
-#: templates/js/translated/build.js:988 templates/js/translated/build.js:1359
-#: templates/js/translated/build.js:1626 templates/js/translated/company.js:489
-#: templates/js/translated/company.js:746 templates/js/translated/order.js:426
-#: templates/js/translated/order.js:839 templates/js/translated/order.js:1456
-#: templates/js/translated/part.js:918 templates/js/translated/part.js:999
-#: templates/js/translated/part.js:1166 templates/js/translated/stock.js:590
-#: templates/js/translated/stock.js:1190 templates/js/translated/stock.js:2241
+#: templates/js/translated/bom.js:393 templates/js/translated/build.js:625
+#: templates/js/translated/build.js:993 templates/js/translated/build.js:1364
+#: templates/js/translated/build.js:1632 templates/js/translated/company.js:489
+#: templates/js/translated/company.js:746 templates/js/translated/order.js:84
+#: templates/js/translated/order.js:586 templates/js/translated/order.js:1004
+#: templates/js/translated/order.js:1576 templates/js/translated/order.js:1933
+#: templates/js/translated/order.js:2128 templates/js/translated/part.js:918
+#: templates/js/translated/part.js:999 templates/js/translated/part.js:1166
+#: templates/js/translated/stock.js:553 templates/js/translated/stock.js:747
+#: templates/js/translated/stock.js:1347 templates/js/translated/stock.js:2416
msgid "Part"
msgstr "Articolo"
@@ -721,7 +735,8 @@ msgstr "Numero di riferimento ordine di vendita"
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:247 templates/js/translated/build.js:1347
+#: build/models.py:247 templates/js/translated/build.js:1352
+#: templates/js/translated/order.js:1564
msgid "Source Location"
msgstr "Posizione Di Origine"
@@ -761,7 +776,7 @@ msgstr ""
msgid "Build status code"
msgstr ""
-#: build/models.py:285 stock/models.py:534
+#: build/models.py:285 stock/models.py:528
msgid "Batch Code"
msgstr ""
@@ -769,12 +784,12 @@ msgstr ""
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:292 order/models.py:165 part/models.py:936
-#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1103
+#: build/models.py:292 order/models.py:126 part/models.py:936
+#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1271
msgid "Creation Date"
msgstr "Data di creazione"
-#: build/models.py:296 order/models.py:578
+#: build/models.py:296 order/models.py:558
msgid "Target completion date"
msgstr "Data completamento obiettivo"
@@ -782,8 +797,8 @@ msgstr "Data completamento obiettivo"
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/models.py:300 order/models.py:291
-#: templates/js/translated/build.js:1697
+#: build/models.py:300 order/models.py:252
+#: templates/js/translated/build.js:1703
msgid "Completion Date"
msgstr "Data di completamento"
@@ -791,7 +806,7 @@ msgstr "Data di completamento"
msgid "completed by"
msgstr "Completato da"
-#: build/models.py:314 templates/js/translated/build.js:1668
+#: build/models.py:314 templates/js/translated/build.js:1674
msgid "Issued by"
msgstr "Rilasciato da"
@@ -800,11 +815,11 @@ msgid "User who issued this build order"
msgstr ""
#: build/models.py:323 build/templates/build/build_base.html:185
-#: build/templates/build/detail.html:116 order/models.py:179
-#: order/templates/order/order_base.html:158
-#: order/templates/order/sales_order_base.html:162 part/models.py:940
+#: build/templates/build/detail.html:116 order/models.py:140
+#: order/templates/order/order_base.html:170
+#: order/templates/order/sales_order_base.html:182 part/models.py:940
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:1680 templates/js/translated/order.js:699
+#: templates/js/translated/build.js:1686 templates/js/translated/order.js:864
msgid "Responsible"
msgstr "Responsabile"
@@ -815,7 +830,7 @@ msgstr ""
#: build/models.py:329 build/templates/build/detail.html:102
#: company/templates/company/manufacturer_part.html:102
#: company/templates/company/supplier_part.html:126
-#: part/templates/part/part_base.html:354 stock/models.py:528
+#: part/templates/part/part_base.html:354 stock/models.py:522
#: stock/templates/stock/item_base.html:374
msgid "External Link"
msgstr "Collegamento esterno"
@@ -823,18 +838,19 @@ msgstr "Collegamento esterno"
#: build/models.py:334 build/serializers.py:201
#: build/templates/build/sidebar.html:21 company/models.py:142
#: company/models.py:577 company/templates/company/sidebar.html:25
-#: order/models.py:183 order/models.py:738
+#: order/models.py:144 order/models.py:803 order/models.py:1049
#: order/templates/order/po_sidebar.html:11
-#: order/templates/order/so_sidebar.html:11 part/models.py:925
+#: order/templates/order/so_sidebar.html:17 part/models.py:925
#: part/templates/part/detail.html:116 part/templates/part/part_sidebar.html:50
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/forms.py:154 stock/forms.py:204 stock/forms.py:238 stock/models.py:600
-#: stock/models.py:1764 stock/models.py:1870 stock/serializers.py:330
-#: stock/serializers.py:588 stock/templates/stock/stock_sidebar.html:21
+#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:594
+#: stock/models.py:1752 stock/models.py:1858 stock/serializers.py:332
+#: stock/serializers.py:624 stock/serializers.py:711
+#: stock/templates/stock/stock_sidebar.html:21
#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599
-#: templates/js/translated/company.js:842 templates/js/translated/order.js:984
-#: templates/js/translated/order.js:1582 templates/js/translated/stock.js:973
-#: templates/js/translated/stock.js:1452
+#: templates/js/translated/company.js:842 templates/js/translated/order.js:1149
+#: templates/js/translated/order.js:1445 templates/js/translated/order.js:2280
+#: templates/js/translated/stock.js:1130 templates/js/translated/stock.js:1616
msgid "Notes"
msgstr "Note"
@@ -867,7 +883,7 @@ msgstr "La quantità assegnata ({q}) non deve essere maggiore della quantità di
msgid "Stock item is over-allocated"
msgstr "L'articolo in giacenza è sovrallocato"
-#: build/models.py:1133 order/models.py:964
+#: build/models.py:1133 order/models.py:1165
msgid "Allocation quantity must be greater than zero"
msgstr "La quantità di assegnazione deve essere maggiore di zero"
@@ -880,8 +896,8 @@ msgid "Selected stock item not found in BOM"
msgstr "Articolo in giacenza selezionato non trovato nel BOM"
#: build/models.py:1253 stock/templates/stock/item_base.html:346
-#: templates/InvenTree/search.html:143 templates/js/translated/build.js:1599
-#: templates/navbar.html:33
+#: templates/InvenTree/search.html:143 templates/js/translated/build.js:1605
+#: templates/navbar.html:35
msgid "Build"
msgstr ""
@@ -889,14 +905,17 @@ msgstr ""
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1270 build/serializers.py:328
+#: build/models.py:1270 build/serializers.py:328 order/serializers.py:690
+#: order/serializers.py:708 stock/serializers.py:562
#: stock/templates/stock/item_base.html:8
#: stock/templates/stock/item_base.html:16
#: stock/templates/stock/item_base.html:368
-#: templates/js/translated/build.js:408 templates/js/translated/build.js:413
-#: templates/js/translated/build.js:1361 templates/js/translated/build.js:1742
-#: templates/js/translated/order.js:1177 templates/js/translated/order.js:1182
-#: templates/js/translated/stock.js:2102
+#: templates/js/translated/build.js:413 templates/js/translated/build.js:418
+#: templates/js/translated/build.js:1366 templates/js/translated/build.js:1748
+#: templates/js/translated/order.js:85 templates/js/translated/order.js:1577
+#: templates/js/translated/order.js:1832 templates/js/translated/order.js:1837
+#: templates/js/translated/order.js:1940 templates/js/translated/order.js:2030
+#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:2277
msgid "Stock Item"
msgstr "Articoli in magazzino"
@@ -936,16 +955,17 @@ msgstr ""
msgid "This build output is not fully allocated"
msgstr ""
-#: build/serializers.py:190 order/serializers.py:228 order/serializers.py:296
-#: stock/forms.py:236 stock/serializers.py:323 stock/serializers.py:690
+#: build/serializers.py:190 order/serializers.py:226 order/serializers.py:294
+#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:813
#: stock/templates/stock/item_base.html:314
#: templates/js/translated/barcode.js:384
-#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:420
-#: templates/js/translated/build.js:1027 templates/js/translated/order.js:348
-#: templates/js/translated/order.js:1189 templates/js/translated/order.js:1297
-#: templates/js/translated/order.js:1303 templates/js/translated/part.js:177
-#: templates/js/translated/stock.js:592 templates/js/translated/stock.js:1333
-#: templates/js/translated/stock.js:2043
+#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:425
+#: templates/js/translated/build.js:1032 templates/js/translated/order.js:508
+#: templates/js/translated/order.js:1844 templates/js/translated/order.js:1955
+#: templates/js/translated/order.js:1963 templates/js/translated/order.js:2044
+#: templates/js/translated/part.js:177 templates/js/translated/stock.js:555
+#: templates/js/translated/stock.js:749 templates/js/translated/stock.js:1497
+#: templates/js/translated/stock.js:2218
msgid "Location"
msgstr "Posizione"
@@ -954,12 +974,12 @@ msgid "Location for completed build outputs"
msgstr "Posizione per gli output di build completati"
#: build/serializers.py:197 build/templates/build/build_base.html:137
-#: build/templates/build/detail.html:63 order/models.py:572
-#: order/serializers.py:249 stock/templates/stock/item_base.html:180
-#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1655
-#: templates/js/translated/order.js:431 templates/js/translated/order.js:1095
-#: templates/js/translated/stock.js:1308 templates/js/translated/stock.js:2120
-#: templates/js/translated/stock.js:2269
+#: build/templates/build/detail.html:63 order/models.py:552
+#: order/serializers.py:247 stock/templates/stock/item_base.html:180
+#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1661
+#: templates/js/translated/order.js:591 templates/js/translated/order.js:840
+#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1472
+#: templates/js/translated/stock.js:2295 templates/js/translated/stock.js:2444
msgid "Status"
msgstr "Stato"
@@ -984,16 +1004,16 @@ msgstr ""
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:334
+#: build/serializers.py:334 stock/serializers.py:569
msgid "Item must be in stock"
msgstr "L'articolo deve essere disponibile"
-#: build/serializers.py:348 order/models.py:316 order/serializers.py:242
-#: stock/models.py:371 stock/models.py:1093 stock/serializers.py:303
+#: build/serializers.py:348 order/models.py:277 order/serializers.py:240
+#: stock/models.py:365 stock/models.py:1081 stock/serializers.py:305
msgid "Quantity must be greater than zero"
msgstr "La quantità deve essere maggiore di zero"
-#: build/serializers.py:390
+#: build/serializers.py:390 order/serializers.py:741
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr "Quantità disponibile ({q}) superata"
@@ -1006,7 +1026,7 @@ msgstr ""
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:431
+#: build/serializers.py:431 order/serializers.py:984
msgid "Allocation items must be provided"
msgstr "Deve essere indicata l'allocazione dell'articolo"
@@ -1079,11 +1099,11 @@ msgstr ""
#: build/templates/build/build_base.html:146
#: build/templates/build/detail.html:132
-#: order/templates/order/order_base.html:144
-#: order/templates/order/sales_order_base.html:141
+#: order/templates/order/order_base.html:156
+#: order/templates/order/sales_order_base.html:163
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:1692 templates/js/translated/order.js:689
-#: templates/js/translated/order.js:1108
+#: templates/js/translated/build.js:1698 templates/js/translated/order.js:854
+#: templates/js/translated/order.js:1276
msgid "Target Date"
msgstr "Data scadenza"
@@ -1096,28 +1116,28 @@ msgstr ""
#: build/templates/build/build_base.html:196
#: order/templates/order/order_base.html:98
#: order/templates/order/sales_order_base.html:93
-#: templates/js/translated/table_filters.js:294
-#: templates/js/translated/table_filters.js:322
-#: templates/js/translated/table_filters.js:339
+#: templates/js/translated/table_filters.js:299
+#: templates/js/translated/table_filters.js:340
+#: templates/js/translated/table_filters.js:361
msgid "Overdue"
msgstr "In ritardo"
#: build/templates/build/build_base.html:158
#: build/templates/build/detail.html:68 build/templates/build/detail.html:143
-#: templates/js/translated/build.js:1641
-#: templates/js/translated/table_filters.js:304
+#: order/templates/order/sales_order_base.html:170
+#: templates/js/translated/build.js:1647
+#: templates/js/translated/table_filters.js:370
msgid "Completed"
msgstr "Completato"
#: build/templates/build/build_base.html:171
-#: build/templates/build/detail.html:95 order/models.py:857
-#: order/templates/order/sales_order_base.html:9
+#: build/templates/build/detail.html:95 order/models.py:925
+#: order/models.py:1021 order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
-#: order/templates/order/sales_order_ship.html:25
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:308
-#: templates/js/translated/order.js:1050
+#: templates/js/translated/order.js:1218
msgid "Sales Order"
msgstr "Ordini di Vendita"
@@ -1191,8 +1211,8 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr "Lo stock può essere prelevato da qualsiasi posizione disponibile."
-#: build/templates/build/detail.html:50 order/models.py:811 stock/forms.py:150
-#: templates/js/translated/order.js:432 templates/js/translated/order.js:973
+#: build/templates/build/detail.html:50 order/models.py:876 stock/forms.py:136
+#: templates/js/translated/order.js:592 templates/js/translated/order.js:1138
msgid "Destination"
msgstr "Destinazione"
@@ -1200,22 +1220,22 @@ msgstr "Destinazione"
msgid "Destination location not specified"
msgstr "Posizione di destinazione non specificata"
-#: build/templates/build/detail.html:74 templates/js/translated/build.js:647
+#: build/templates/build/detail.html:74 templates/js/translated/build.js:652
msgid "Allocated Parts"
msgstr ""
#: build/templates/build/detail.html:81
#: stock/templates/stock/item_base.html:332
-#: templates/js/translated/stock.js:1322 templates/js/translated/stock.js:2276
+#: templates/js/translated/stock.js:1486 templates/js/translated/stock.js:2451
#: templates/js/translated/table_filters.js:151
-#: templates/js/translated/table_filters.js:233
+#: templates/js/translated/table_filters.js:238
msgid "Batch"
msgstr "Lotto"
#: build/templates/build/detail.html:127
-#: order/templates/order/order_base.html:131
-#: order/templates/order/sales_order_base.html:135
-#: templates/js/translated/build.js:1663
+#: order/templates/order/order_base.html:143
+#: order/templates/order/sales_order_base.html:157
+#: templates/js/translated/build.js:1669
msgid "Created"
msgstr "Creato"
@@ -1235,7 +1255,7 @@ msgstr ""
msgid "Allocate Stock to Build"
msgstr ""
-#: build/templates/build/detail.html:177 templates/js/translated/build.js:1202
+#: build/templates/build/detail.html:177 templates/js/translated/build.js:1207
msgid "Unallocate stock"
msgstr ""
@@ -1257,7 +1277,7 @@ msgstr "Ordina articoli richiesti"
#: build/templates/build/detail.html:185
#: company/templates/company/detail.html:38
-#: company/templates/company/detail.html:85 order/views.py:509
+#: company/templates/company/detail.html:85 order/views.py:463
#: part/templates/part/category.html:173
msgid "Order Parts"
msgstr "Ordine Articoli"
@@ -1309,8 +1329,8 @@ msgstr ""
#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:60
-#: order/templates/order/sales_order_detail.html:52
-#: order/templates/order/so_sidebar.html:9 part/templates/part/detail.html:193
+#: order/templates/order/sales_order_detail.html:107
+#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:193
#: part/templates/part/part_sidebar.html:48 stock/templates/stock/item.html:95
#: stock/templates/stock/stock_sidebar.html:19
msgid "Attachments"
@@ -1325,8 +1345,8 @@ msgstr "Genera Note"
#: company/templates/company/detail.html:215
#: order/templates/order/purchase_order_detail.html:80
#: order/templates/order/purchase_order_detail.html:108
-#: order/templates/order/sales_order_detail.html:72
-#: order/templates/order/sales_order_detail.html:99
+#: order/templates/order/sales_order_detail.html:127
+#: order/templates/order/sales_order_detail.html:186
#: part/templates/part/detail.html:120 stock/templates/stock/item.html:115
#: stock/templates/stock/item.html:205
msgid "Edit Notes"
@@ -1384,7 +1404,7 @@ msgstr ""
msgid "Maximum output quantity is "
msgstr ""
-#: build/views.py:122 stock/serializers.py:361 stock/views.py:1290
+#: build/views.py:122 stock/serializers.py:363 stock/views.py:1257
msgid "Serial numbers already exist"
msgstr "Numeri di serie già esistenti"
@@ -1400,7 +1420,7 @@ msgstr ""
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:219 stock/views.py:385
+#: build/views.py:219 stock/views.py:352
msgid "Check the confirmation box"
msgstr ""
@@ -1469,7 +1489,7 @@ msgstr "{name.title()} File"
msgid "Select {name} file to upload"
msgstr "Seleziona il file {name} da caricare"
-#: common/models.py:340 common/models.py:970 common/models.py:1178
+#: common/models.py:340 common/models.py:998 common/models.py:1206
msgid "Settings key (must be unique - case insensitive"
msgstr "Tasto impostazioni (deve essere univoco - maiuscole e minuscole"
@@ -1557,7 +1577,7 @@ msgstr "Scarica dall'URL"
msgid "Allow download of remote images and files from external URL"
msgstr "Consenti il download di immagini e file remoti da URL esterno"
-#: common/models.py:649 templates/InvenTree/settings/sidebar.html:30
+#: common/models.py:649 templates/InvenTree/settings/sidebar.html:31
msgid "Barcode Support"
msgstr "Supporto Codice A Barre"
@@ -1623,7 +1643,7 @@ msgstr "Copia i modelli dei parametri categoria quando si crea un articolo"
#: common/models.py:703 part/models.py:2429 report/models.py:187
#: templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:373
+#: templates/js/translated/table_filters.js:404
msgid "Template"
msgstr "Template"
@@ -1633,7 +1653,7 @@ msgstr "Gli articoli sono modelli per impostazione predefinita"
#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:956
#: templates/js/translated/table_filters.js:168
-#: templates/js/translated/table_filters.js:385
+#: templates/js/translated/table_filters.js:416
msgid "Assembly"
msgstr "Assemblaggio"
@@ -1642,7 +1662,7 @@ msgid "Parts can be assembled from other components by default"
msgstr "Gli articoli possono essere assemblate da altri componenti per impostazione predefinita"
#: common/models.py:717 part/models.py:894
-#: templates/js/translated/table_filters.js:389
+#: templates/js/translated/table_filters.js:420
msgid "Component"
msgstr "Componente"
@@ -1659,7 +1679,7 @@ msgid "Parts are purchaseable by default"
msgstr "Gli articoli sono acquistabili per impostazione predefinita"
#: common/models.py:731 part/models.py:910
-#: templates/js/translated/table_filters.js:397
+#: templates/js/translated/table_filters.js:428
msgid "Salable"
msgstr "Vendibile"
@@ -1670,7 +1690,7 @@ msgstr "Gli articoli sono acquistabili per impostazione predefinita"
#: common/models.py:738 part/models.py:900
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:100
-#: templates/js/translated/table_filters.js:401
+#: templates/js/translated/table_filters.js:432
msgid "Trackable"
msgstr "Tracciabile"
@@ -1932,230 +1952,262 @@ msgstr ""
msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:1001
+#: common/models.py:961
+msgid "Enable URL integration"
+msgstr ""
+
+#: common/models.py:962
+msgid "Enable plugins to add URL routes"
+msgstr ""
+
+#: common/models.py:968
+msgid "Enable navigation integration"
+msgstr ""
+
+#: common/models.py:969
+msgid "Enable plugins to integrate into navigation"
+msgstr ""
+
+#: common/models.py:975
+msgid "Enable global setting integration"
+msgstr ""
+
+#: common/models.py:976
+msgid "Enable plugins to integrate into inventree global settings"
+msgstr ""
+
+#: common/models.py:982
+msgid "Enable app integration"
+msgstr ""
+
+#: common/models.py:983
+msgid "Enable plugins to add apps"
+msgstr ""
+
+#: common/models.py:1029
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:1002
+#: common/models.py:1030
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:1007
+#: common/models.py:1035
msgid "Show subscribed categories"
msgstr "Mostra le categorie sottoscritte"
-#: common/models.py:1008
+#: common/models.py:1036
msgid "Show subscribed part categories on the homepage"
msgstr "Mostra le categorie dei componenti sottoscritti nella homepage"
-#: common/models.py:1013
+#: common/models.py:1041
msgid "Show latest parts"
msgstr "Mostra ultimi articoli"
-#: common/models.py:1014
+#: common/models.py:1042
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:1019
+#: common/models.py:1047
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:1020
+#: common/models.py:1048
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:1026
+#: common/models.py:1054
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1027
+#: common/models.py:1055
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1032
+#: common/models.py:1060
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:1033
+#: common/models.py:1061
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:1038
+#: common/models.py:1066
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:1039
+#: common/models.py:1067
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:1044
+#: common/models.py:1072
msgid "Show low stock"
msgstr ""
-#: common/models.py:1045
+#: common/models.py:1073
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:1050
+#: common/models.py:1078
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:1051
+#: common/models.py:1079
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:1056
+#: common/models.py:1084
msgid "Show needed stock"
msgstr ""
-#: common/models.py:1057
+#: common/models.py:1085
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1062
+#: common/models.py:1090
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1063
+#: common/models.py:1091
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1068
+#: common/models.py:1096
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1069
+#: common/models.py:1097
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1074
+#: common/models.py:1102
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1075
+#: common/models.py:1103
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:1080
+#: common/models.py:1108
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:1081
+#: common/models.py:1109
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:1086
+#: common/models.py:1114
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:1087
+#: common/models.py:1115
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:1092
+#: common/models.py:1120
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:1093
+#: common/models.py:1121
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:1098
+#: common/models.py:1126
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:1099
+#: common/models.py:1127
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:1104
+#: common/models.py:1132
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:1105
+#: common/models.py:1133
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:1111
+#: common/models.py:1139
msgid "Inline label display"
msgstr "Visualizzazione dell'etichetta in linea"
-#: common/models.py:1112
+#: common/models.py:1140
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr "Visualizza le etichette PDF nel browser, invece di scaricare come file"
-#: common/models.py:1118
+#: common/models.py:1146
msgid "Inline report display"
msgstr "Visualizzazione dell'etichetta in linea"
-#: common/models.py:1119
+#: common/models.py:1147
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr "Visualizza le etichette PDF nel browser, invece di scaricare come file"
-#: common/models.py:1125
+#: common/models.py:1153
msgid "Search Preview Results"
msgstr "Risultati Dell'Anteprima Di Ricerca"
-#: common/models.py:1126
+#: common/models.py:1154
msgid "Number of results to show in search preview window"
msgstr ""
-#: common/models.py:1132
+#: common/models.py:1160
msgid "Search Show Stock"
msgstr ""
-#: common/models.py:1133
+#: common/models.py:1161
msgid "Display stock levels in search preview window"
msgstr ""
-#: common/models.py:1139
+#: common/models.py:1167
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:1140
+#: common/models.py:1168
msgid "Hide inactive parts in search preview window"
msgstr ""
-#: common/models.py:1146
+#: common/models.py:1174
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:1147
+#: common/models.py:1175
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:1153
+#: common/models.py:1181
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1154
+#: common/models.py:1182
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1160
+#: common/models.py:1188
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:1161
+#: common/models.py:1189
msgid "InvenTree navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:1226 company/forms.py:43
+#: common/models.py:1254 company/forms.py:43
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1233 company/serializers.py:264
+#: common/models.py:1261 company/serializers.py:264
#: company/templates/company/supplier_part.html:256
#: templates/js/translated/part.js:852 templates/js/translated/part.js:1801
msgid "Price"
msgstr "Prezzo"
-#: common/models.py:1234
+#: common/models.py:1262
msgid "Unit price at specified quantity"
msgstr ""
#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49
-#: order/templates/order/purchase_order_detail.html:24 order/views.py:289
+#: order/templates/order/purchase_order_detail.html:24 order/views.py:243
#: part/templates/part/bom_upload/upload_file.html:52
#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:212
#: part/views.py:858
@@ -2163,7 +2215,7 @@ msgid "Upload File"
msgstr "Carica file"
#: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52
-#: order/views.py:290 part/templates/part/bom_upload/match_fields.html:52
+#: order/views.py:244 part/templates/part/bom_upload/match_fields.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:45
#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:213
#: part/views.py:859
@@ -2195,6 +2247,7 @@ msgid "Previous Step"
msgstr "Passaggio Precedente"
#: company/forms.py:24 part/forms.py:46
+#: templates/InvenTree/settings/mixins/urls.html:12
msgid "URL"
msgstr "URL"
@@ -2211,6 +2264,7 @@ msgid "Description of the company"
msgstr "Descrizione dell'azienda"
#: company/models.py:112 company/templates/company/company_base.html:97
+#: templates/InvenTree/settings/plugin_settings.html:55
#: templates/js/translated/company.js:349
msgid "Website"
msgstr "Sito Web"
@@ -2285,7 +2339,7 @@ msgid "Does this company manufacture parts?"
msgstr ""
#: company/models.py:152 company/serializers.py:270
-#: company/templates/company/company_base.html:103 stock/serializers.py:177
+#: company/templates/company/company_base.html:103 stock/serializers.py:179
msgid "Currency"
msgstr "Valuta"
@@ -2293,12 +2347,12 @@ msgstr "Valuta"
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:320 company/models.py:535 stock/models.py:474
+#: company/models.py:320 company/models.py:535 stock/models.py:468
#: stock/templates/stock/item_base.html:135
msgid "Base Part"
msgstr "Articolo di base"
-#: company/models.py:324 company/models.py:539 order/views.py:912
+#: company/models.py:324 company/models.py:539
msgid "Select part"
msgstr "Seleziona articolo"
@@ -2319,7 +2373,7 @@ msgstr "Seleziona Produttore"
#: company/models.py:342 company/templates/company/manufacturer_part.html:96
#: company/templates/company/supplier_part.html:105
#: templates/js/translated/company.js:530
-#: templates/js/translated/company.js:815 templates/js/translated/order.js:873
+#: templates/js/translated/company.js:815 templates/js/translated/order.js:1038
#: templates/js/translated/part.js:243 templates/js/translated/part.js:832
msgid "MPN"
msgstr "Codice articolo produttore (MPN)"
@@ -2349,8 +2403,8 @@ msgstr "Nome parametro"
#: company/models.py:422
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:1857 templates/js/translated/company.js:644
-#: templates/js/translated/part.js:652 templates/js/translated/stock.js:960
+#: stock/models.py:1845 templates/js/translated/company.js:644
+#: templates/js/translated/part.js:652 templates/js/translated/stock.js:1117
msgid "Value"
msgstr "Valore"
@@ -2360,7 +2414,7 @@ msgstr "Valore del parametro"
#: company/models.py:429 part/models.py:882 part/models.py:2397
#: part/templates/part/part_base.html:288
-#: templates/InvenTree/settings/settings.html:264
+#: templates/InvenTree/settings/settings.html:273
#: templates/js/translated/company.js:650 templates/js/translated/part.js:658
msgid "Units"
msgstr "Unità"
@@ -2374,12 +2428,12 @@ msgid "Linked manufacturer part must reference the same base part"
msgstr "L'articolo del costruttore collegato deve riferirsi alla stesso articolo"
#: company/models.py:545 company/templates/company/company_base.html:78
-#: company/templates/company/supplier_part.html:87 order/models.py:263
+#: company/templates/company/supplier_part.html:87 order/models.py:224
#: order/templates/order/order_base.html:112
#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219
#: part/bom.py:247 stock/templates/stock/item_base.html:398
#: templates/js/translated/company.js:337
-#: templates/js/translated/company.js:771 templates/js/translated/order.js:667
+#: templates/js/translated/company.js:771 templates/js/translated/order.js:823
#: templates/js/translated/part.js:213 templates/js/translated/part.js:800
msgid "Supplier"
msgstr "Fornitore"
@@ -2389,7 +2443,7 @@ msgid "Select supplier"
msgstr "Seleziona fornitore"
#: company/models.py:551 company/templates/company/supplier_part.html:91
-#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:860
+#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:1025
#: templates/js/translated/part.js:224 templates/js/translated/part.js:818
msgid "SKU"
msgstr "SKU"
@@ -2425,8 +2479,8 @@ msgid "Minimum charge (e.g. stocking fee)"
msgstr "Onere minimo (ad esempio tassa di stoccaggio)"
#: company/models.py:582 company/templates/company/supplier_part.html:112
-#: stock/models.py:497 stock/templates/stock/item_base.html:339
-#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1448
+#: stock/models.py:491 stock/templates/stock/item_base.html:339
+#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1612
msgid "Packaging"
msgstr "Confezionamento"
@@ -2457,7 +2511,7 @@ msgid "Company"
msgstr "Azienda"
#: company/templates/company/company_base.html:22
-#: templates/js/translated/order.js:121
+#: templates/js/translated/order.js:279
msgid "Create Purchase Order"
msgstr "Crea ordine d'acquisto"
@@ -2493,11 +2547,12 @@ msgstr "Carica nuova immagine"
msgid "Download image from URL"
msgstr "Scarica immagine dall'URL"
-#: company/templates/company/company_base.html:83 order/models.py:567
-#: order/templates/order/sales_order_base.html:115 stock/models.py:515
-#: stock/models.py:516 stock/templates/stock/item_base.html:291
-#: templates/js/translated/company.js:329 templates/js/translated/order.js:1072
-#: templates/js/translated/stock.js:2084
+#: company/templates/company/company_base.html:83 order/models.py:547
+#: order/templates/order/sales_order_base.html:115 stock/models.py:509
+#: stock/models.py:510 stock/serializers.py:610
+#: stock/templates/stock/item_base.html:291
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1240
+#: templates/js/translated/stock.js:2259
msgid "Customer"
msgstr "Cliente"
@@ -2580,7 +2635,7 @@ msgstr "Giacenza Fornitore"
#: order/templates/order/purchase_orders.html:12
#: part/templates/part/detail.html:64 part/templates/part/part_sidebar.html:33
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:203
-#: templates/InvenTree/settings/sidebar.html:44 templates/navbar.html:45
+#: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47
#: users/models.py:45
msgid "Purchase Orders"
msgstr "Ordine di acquisto"
@@ -2602,7 +2657,7 @@ msgstr ""
#: order/templates/order/sales_orders.html:15
#: part/templates/part/detail.html:87 part/templates/part/part_sidebar.html:37
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:223
-#: templates/InvenTree/settings/sidebar.html:46 templates/navbar.html:56
+#: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58
#: users/models.py:46
msgid "Sales Orders"
msgstr ""
@@ -2618,7 +2673,7 @@ msgid "New Sales Order"
msgstr ""
#: company/templates/company/detail.html:168
-#: templates/js/translated/build.js:999
+#: templates/js/translated/build.js:1004
msgid "Assigned Stock"
msgstr ""
@@ -2644,7 +2699,7 @@ msgstr "Elenco dei fornitori"
#: company/templates/company/manufacturer_part.html:14 company/views.py:55
#: part/templates/part/prices.html:167 templates/InvenTree/search.html:184
-#: templates/navbar.html:44
+#: templates/navbar.html:46
msgid "Manufacturers"
msgstr "Produttori"
@@ -2673,7 +2728,7 @@ msgstr "Articolo interno"
#: company/templates/company/manufacturer_part.html:114
#: company/templates/company/supplier_part.html:15 company/views.py:49
#: part/templates/part/part_sidebar.html:31 part/templates/part/prices.html:163
-#: templates/InvenTree/search.html:194 templates/navbar.html:43
+#: templates/InvenTree/search.html:194 templates/navbar.html:45
msgid "Suppliers"
msgstr "Fornitori"
@@ -2687,7 +2742,7 @@ msgstr "Elimina articolo fornitore"
#: company/templates/company/manufacturer_part.html:254
#: part/templates/part/detail.html:344 part/templates/part/detail.html:372
#: templates/js/translated/company.js:425 templates/js/translated/helpers.js:31
-#: users/models.py:204
+#: users/models.py:206
msgid "Delete"
msgstr "Elimina"
@@ -2739,9 +2794,9 @@ msgid "Assigned Stock Items"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:482
+#: company/templates/company/supplier_part.html:24 stock/models.py:476
#: stock/templates/stock/item_base.html:403
-#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1405
+#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1569
msgid "Supplier Part"
msgstr "Articolo Fornitore"
@@ -2767,7 +2822,7 @@ msgstr "Crea nuova allocazione magazzino"
#: company/templates/company/supplier_part.html:142
#: part/templates/part/detail.html:21 stock/templates/stock/location.html:163
-#: templates/js/translated/stock.js:355
+#: templates/js/translated/stock.js:359
msgid "New Stock Item"
msgstr "Nuovo Elemento in giacenza"
@@ -2817,11 +2872,11 @@ msgstr "Cancella riduzione di prezzo"
#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:14
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:156
-#: templates/InvenTree/settings/sidebar.html:40
+#: templates/InvenTree/settings/sidebar.html:41
#: templates/js/translated/bom.js:216 templates/js/translated/part.js:434
#: templates/js/translated/part.js:569 templates/js/translated/part.js:1059
-#: templates/js/translated/part.js:1220 templates/js/translated/stock.js:591
-#: templates/js/translated/stock.js:1244 templates/navbar.html:26
+#: templates/js/translated/part.js:1220 templates/js/translated/stock.js:748
+#: templates/js/translated/stock.js:1401 templates/navbar.html:28
msgid "Stock"
msgstr "Magazzino"
@@ -2844,7 +2899,7 @@ msgstr "Prezzi"
#: stock/templates/stock/location.html:147
#: stock/templates/stock/location.html:159
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1983
+#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:2158
#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
msgid "Stock Items"
msgstr "Articoli in magazzino"
@@ -2858,7 +2913,7 @@ msgid "New Manufacturer"
msgstr "Nuovo Produttore"
#: company/views.py:61 templates/InvenTree/search.html:214
-#: templates/navbar.html:55
+#: templates/navbar.html:57
msgid "Customers"
msgstr "Clienti"
@@ -2960,284 +3015,374 @@ msgstr ""
msgid "Part query filters (comma-separated value of key=value pairs)"
msgstr ""
-#: order/forms.py:26 order/templates/order/order_base.html:52
+#: order/forms.py:24 order/templates/order/order_base.html:52
msgid "Place order"
msgstr "Invia l'ordine"
-#: order/forms.py:37 order/templates/order/order_base.html:60
+#: order/forms.py:35 order/templates/order/order_base.html:60
msgid "Mark order as complete"
msgstr "Contrassegna ordine come completato"
-#: order/forms.py:48 order/forms.py:59 order/templates/order/order_base.html:47
+#: order/forms.py:46 order/forms.py:57 order/templates/order/order_base.html:47
#: order/templates/order/sales_order_base.html:60
msgid "Cancel order"
msgstr "Annulla l'ordine"
-#: order/forms.py:70
-msgid "Ship order"
-msgstr "Spedizione ordine"
-
-#: order/forms.py:98
-msgid "Enter stock item serial numbers"
-msgstr "Inserisci i numeri di serie dell'articolo in giacenza"
-
-#: order/forms.py:104
-msgid "Enter quantity of stock items"
-msgstr "Inserisci la quantità di articoli disponibili"
-
-#: order/models.py:161
+#: order/models.py:122
msgid "Order description"
msgstr "Descrizione ordine"
-#: order/models.py:163
+#: order/models.py:124
msgid "Link to external page"
msgstr ""
-#: order/models.py:171
+#: order/models.py:132
msgid "Created By"
msgstr "Creato Da"
-#: order/models.py:178
+#: order/models.py:139
msgid "User or group responsible for this order"
msgstr "Utente o gruppo responsabile di questo ordine"
-#: order/models.py:183
+#: order/models.py:144
msgid "Order notes"
msgstr "Note ordine"
-#: order/models.py:250 order/models.py:557
+#: order/models.py:211 order/models.py:537
msgid "Order reference"
msgstr "Riferimento ordine"
-#: order/models.py:255 order/models.py:572
+#: order/models.py:216 order/models.py:552
msgid "Purchase order status"
msgstr "Stato ordine d'acquisto"
-#: order/models.py:264
+#: order/models.py:225
msgid "Company from which the items are being ordered"
msgstr "Azienda da cui sono stati ordinati gli articoli"
-#: order/models.py:267 order/templates/order/order_base.html:118
-#: templates/js/translated/order.js:676
+#: order/models.py:228 order/templates/order/order_base.html:118
+#: templates/js/translated/order.js:832
msgid "Supplier Reference"
msgstr "Riferimento fornitore"
-#: order/models.py:267
+#: order/models.py:228
msgid "Supplier order reference code"
msgstr "Codice di riferimento ordine fornitore"
-#: order/models.py:274
+#: order/models.py:235
msgid "received by"
msgstr "ricevuto da"
-#: order/models.py:279
+#: order/models.py:240
msgid "Issue Date"
msgstr "Data di emissione"
-#: order/models.py:280
+#: order/models.py:241
msgid "Date order was issued"
msgstr "Data di emissione ordine"
-#: order/models.py:285
+#: order/models.py:246
msgid "Target Delivery Date"
msgstr "Data di consegna programmata"
-#: order/models.py:286
+#: order/models.py:247
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr "Data prevista per la consegna dell'ordine. L'ordine scadrà dopo questa data."
-#: order/models.py:292
+#: order/models.py:253
msgid "Date order was completed"
msgstr "Data ordine completato"
-#: order/models.py:321
+#: order/models.py:282
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:431
+#: order/models.py:411
msgid "Quantity must be an integer"
msgstr ""
-#: order/models.py:435
+#: order/models.py:415
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:568
+#: order/models.py:548
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:574
+#: order/models.py:554
msgid "Customer Reference "
msgstr ""
-#: order/models.py:574
+#: order/models.py:554
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:579
+#: order/models.py:559
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:582 templates/js/translated/order.js:1113
+#: order/models.py:562 order/models.py:1026
+#: templates/js/translated/order.js:1281 templates/js/translated/order.js:1429
msgid "Shipment Date"
msgstr ""
-#: order/models.py:589
+#: order/models.py:569
msgid "shipped by"
msgstr ""
-#: order/models.py:633
-msgid "SalesOrder cannot be shipped as it is not currently pending"
+#: order/models.py:634
+msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:730
+#: order/models.py:639
+msgid "Only a pending order can be marked as complete"
+msgstr ""
+
+#: order/models.py:643
+msgid "Order cannot be completed as there are incomplete shipments"
+msgstr ""
+
+#: order/models.py:647
+msgid "Order cannot be completed as there are incomplete line items"
+msgstr ""
+
+#: order/models.py:795
msgid "Item quantity"
msgstr ""
-#: order/models.py:736
+#: order/models.py:801
msgid "Line item reference"
msgstr ""
-#: order/models.py:738
+#: order/models.py:803
msgid "Line item notes"
msgstr ""
-#: order/models.py:768 order/models.py:856
-#: templates/js/translated/order.js:1165
+#: order/models.py:833 order/models.py:924 order/models.py:1020
+#: templates/js/translated/order.js:1820
msgid "Order"
msgstr ""
-#: order/models.py:769 order/templates/order/order_base.html:9
+#: order/models.py:834 order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:353
-#: templates/js/translated/order.js:638 templates/js/translated/part.js:775
-#: templates/js/translated/stock.js:1382 templates/js/translated/stock.js:2065
+#: templates/js/translated/order.js:801 templates/js/translated/part.js:775
+#: templates/js/translated/stock.js:1546 templates/js/translated/stock.js:2240
msgid "Purchase Order"
msgstr ""
-#: order/models.py:790
+#: order/models.py:855
msgid "Supplier part"
msgstr "Articolo Fornitore"
-#: order/models.py:797 order/templates/order/order_base.html:151
-#: order/templates/order/sales_order_base.html:155
-#: templates/js/translated/order.js:429 templates/js/translated/order.js:953
+#: order/models.py:862 order/templates/order/order_base.html:163
+#: templates/js/translated/order.js:589 templates/js/translated/order.js:1118
#: templates/js/translated/part.js:847 templates/js/translated/part.js:873
+#: templates/js/translated/table_filters.js:317
msgid "Received"
msgstr ""
-#: order/models.py:798
+#: order/models.py:863
msgid "Number of items received"
msgstr ""
-#: order/models.py:805 part/templates/part/prices.html:176 stock/models.py:609
-#: stock/serializers.py:168 stock/templates/stock/item_base.html:360
-#: templates/js/translated/stock.js:1436
+#: order/models.py:870 part/templates/part/prices.html:176 stock/models.py:603
+#: stock/serializers.py:170 stock/templates/stock/item_base.html:360
+#: templates/js/translated/stock.js:1600
msgid "Purchase Price"
msgstr ""
-#: order/models.py:806
+#: order/models.py:871
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:814
+#: order/models.py:879
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:866 part/templates/part/part_pricing.html:112
+#: order/models.py:934 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:116 part/templates/part/prices.html:284
msgid "Sale Price"
msgstr ""
-#: order/models.py:867
+#: order/models.py:935
msgid "Unit sale price"
msgstr ""
-#: order/models.py:946 order/models.py:948
+#: order/models.py:940
+msgid "Shipped quantity"
+msgstr ""
+
+#: order/models.py:1027
+msgid "Date of shipment"
+msgstr ""
+
+#: order/models.py:1034
+msgid "Checked By"
+msgstr ""
+
+#: order/models.py:1035
+msgid "User who checked this shipment"
+msgstr ""
+
+#: order/models.py:1043
+msgid "Shipment number"
+msgstr ""
+
+#: order/models.py:1050
+msgid "Shipment notes"
+msgstr ""
+
+#: order/models.py:1057
+msgid "Tracking Number"
+msgstr ""
+
+#: order/models.py:1058
+msgid "Shipment tracking information"
+msgstr ""
+
+#: order/models.py:1068
+msgid "Shipment has already been sent"
+msgstr ""
+
+#: order/models.py:1071
+msgid "Shipment has no allocated stock items"
+msgstr ""
+
+#: order/models.py:1147 order/models.py:1149
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:952
+#: order/models.py:1153
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:954
+#: order/models.py:1155
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:957
+#: order/models.py:1158
msgid "Allocation quantity cannot exceed stock quantity"
msgstr "La quantità di ripartizione non puo' superare la disponibilità della giacenza"
-#: order/models.py:961
+#: order/models.py:1162
msgid "StockItem is over-allocated"
msgstr ""
-#: order/models.py:967
+#: order/models.py:1168 order/serializers.py:734
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:975
+#: order/models.py:1171
+msgid "Sales order does not match shipment"
+msgstr ""
+
+#: order/models.py:1172
+msgid "Shipment does not match sales order"
+msgstr ""
+
+#: order/models.py:1180
msgid "Line"
msgstr ""
-#: order/models.py:987
+#: order/models.py:1188 order/serializers.py:825 order/serializers.py:953
+#: templates/js/translated/model_renderers.js:251
+msgid "Shipment"
+msgstr ""
+
+#: order/models.py:1189
+msgid "Sales order shipment reference"
+msgstr ""
+
+#: order/models.py:1201
msgid "Item"
msgstr ""
-#: order/models.py:988
+#: order/models.py:1202
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:991
+#: order/models.py:1205
msgid "Enter stock allocation quantity"
msgstr "Inserisci la quantità assegnata alla giacenza"
-#: order/serializers.py:175
+#: order/serializers.py:173
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:213
+#: order/serializers.py:211 order/serializers.py:790
msgid "Line Item"
msgstr ""
-#: order/serializers.py:219
+#: order/serializers.py:217
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:229 order/serializers.py:297
+#: order/serializers.py:227 order/serializers.py:295
msgid "Select destination location for received items"
msgstr "Seleziona la posizione di destinazione per gli elementi ricevuti"
-#: order/serializers.py:253
+#: order/serializers.py:251
msgid "Barcode Hash"
msgstr ""
-#: order/serializers.py:254
+#: order/serializers.py:252
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:271
+#: order/serializers.py:269
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:309
+#: order/serializers.py:307
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:326
+#: order/serializers.py:324
msgid "Destination location must be specified"
msgstr "La destinazione deve essere specificata"
-#: order/serializers.py:337
+#: order/serializers.py:335
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:578
+#: order/serializers.py:581
msgid "Sale price currency"
msgstr ""
+#: order/serializers.py:649
+msgid "No shipment details provided"
+msgstr ""
+
+#: order/serializers.py:699 order/serializers.py:802
+msgid "Line item is not associated with this order"
+msgstr ""
+
+#: order/serializers.py:721
+msgid "Quantity must be positive"
+msgstr ""
+
+#: order/serializers.py:815
+msgid "Enter serial numbers to allocate"
+msgstr ""
+
+#: order/serializers.py:839 order/serializers.py:964
+msgid "Shipment has already been shipped"
+msgstr ""
+
+#: order/serializers.py:842 order/serializers.py:967
+msgid "Shipment is not associated with this order"
+msgstr ""
+
+#: order/serializers.py:894
+msgid "No match found for the following serial numbers"
+msgstr ""
+
+#: order/serializers.py:904
+msgid "The following serial numbers are already allocated"
+msgstr ""
+
#: order/templates/order/delete_attachment.html:5
#: stock/templates/stock/attachment_delete.html:5
msgid "Are you sure you want to delete this attachment?"
@@ -3271,7 +3416,8 @@ msgstr "Ricevere articoli"
msgid "Receive Items"
msgstr ""
-#: order/templates/order/order_base.html:62 order/views.py:185
+#: order/templates/order/order_base.html:62
+#: order/templates/order/sales_order_base.html:67 order/views.py:181
msgid "Complete Order"
msgstr ""
@@ -3290,12 +3436,23 @@ msgstr ""
msgid "Order Status"
msgstr "Stato dell'ordine"
-#: order/templates/order/order_base.html:137
+#: order/templates/order/order_base.html:124
+#: order/templates/order/sales_order_base.html:128
+msgid "Completed Line Items"
+msgstr ""
+
+#: order/templates/order/order_base.html:130
+#: order/templates/order/sales_order_base.html:134
+#: order/templates/order/sales_order_base.html:144
+msgid "Incomplete"
+msgstr ""
+
+#: order/templates/order/order_base.html:149
#: report/templates/report/inventree_build_order_base.html:122
msgid "Issued"
msgstr "Emesso"
-#: order/templates/order/order_base.html:207
+#: order/templates/order/order_base.html:219
msgid "Edit Purchase Order"
msgstr "Modifica ordine d'acquisto"
@@ -3371,8 +3528,9 @@ msgstr "Duplica selezionati"
#: part/templates/part/import_wizard/ajax_match_references.html:42
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
-#: templates/js/translated/build.js:240 templates/js/translated/build.js:1251
-#: templates/js/translated/order.js:377
+#: templates/js/translated/build.js:245 templates/js/translated/build.js:1256
+#: templates/js/translated/order.js:537 templates/js/translated/order.js:1488
+#: templates/js/translated/stock.js:592
msgid "Remove row"
msgstr "Elimina riga"
@@ -3453,7 +3611,8 @@ msgid "Select existing purchase orders, or create new orders."
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:31
-#: templates/js/translated/order.js:694 templates/js/translated/order.js:1118
+#: templates/js/translated/order.js:859 templates/js/translated/order.js:1286
+#: templates/js/translated/order.js:1416
msgid "Items"
msgstr ""
@@ -3489,7 +3648,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:27
#: order/templates/order/purchase_order_detail.html:181
#: order/templates/order/sales_order_detail.html:23
-#: order/templates/order/sales_order_detail.html:157
+#: order/templates/order/sales_order_detail.html:244
msgid "Add Line Item"
msgstr ""
@@ -3502,7 +3661,7 @@ msgid "Received Items"
msgstr ""
#: order/templates/order/purchase_order_detail.html:76
-#: order/templates/order/sales_order_detail.html:68
+#: order/templates/order/sales_order_detail.html:123
msgid "Order Notes"
msgstr ""
@@ -3520,8 +3679,8 @@ msgid "Print packing list"
msgstr ""
#: order/templates/order/sales_order_base.html:66
-#: order/templates/order/sales_order_base.html:67 order/views.py:222
-msgid "Ship Order"
+#: order/templates/order/sales_order_base.html:229
+msgid "Complete Sales Order"
msgstr ""
#: order/templates/order/sales_order_base.html:102
@@ -3529,16 +3688,21 @@ msgid "This Sales Order has not been fully allocated"
msgstr ""
#: order/templates/order/sales_order_base.html:122
-#: templates/js/translated/order.js:1085
+#: templates/js/translated/order.js:1253
msgid "Customer Reference"
msgstr ""
-#: order/templates/order/sales_order_base.html:195
+#: order/templates/order/sales_order_base.html:140
+#: order/templates/order/sales_order_detail.html:78
+#: order/templates/order/so_sidebar.html:11
+msgid "Completed Shipments"
+msgstr ""
+
+#: order/templates/order/sales_order_base.html:215
msgid "Edit Sales Order"
msgstr ""
#: order/templates/order/sales_order_cancel.html:8
-#: order/templates/order/sales_order_ship.html:9
#: part/templates/part/bom_duplicate.html:12
#: stock/templates/stock/stockitem_convert.html:13
msgid "Warning"
@@ -3552,146 +3716,100 @@ msgstr ""
msgid "Sales Order Items"
msgstr ""
-#: order/templates/order/sales_order_ship.html:10
-msgid "This order has not been fully allocated. If the order is marked as shipped, it can no longer be adjusted."
+#: order/templates/order/sales_order_detail.html:44
+#: order/templates/order/so_sidebar.html:8
+msgid "Pending Shipments"
msgstr ""
-#: order/templates/order/sales_order_ship.html:12
-msgid "Ensure that the order allocation is correct before shipping the order."
-msgstr "Assicurarsi che l'assegnazione degli ordini sia corretta prima di spedire l'ordine."
-
-#: order/templates/order/sales_order_ship.html:18
-msgid "Some line items in this order have been over-allocated"
+#: order/templates/order/sales_order_detail.html:48
+#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1188
+msgid "Actions"
msgstr ""
-#: order/templates/order/sales_order_ship.html:20
-msgid "Ensure that this is correct before shipping the order."
+#: order/templates/order/sales_order_detail.html:57
+msgid "New Shipment"
msgstr ""
-#: order/templates/order/sales_order_ship.html:27
-msgid "Shipping this order means that the order will no longer be editable."
-msgstr ""
-
-#: order/templates/order/so_allocate_by_serial.html:9
-msgid "Allocate stock items by serial number"
-msgstr ""
-
-#: order/views.py:103
+#: order/views.py:99
msgid "Cancel Order"
msgstr ""
-#: order/views.py:112 order/views.py:138
+#: order/views.py:108 order/views.py:134
msgid "Confirm order cancellation"
msgstr ""
-#: order/views.py:115 order/views.py:141
+#: order/views.py:111 order/views.py:137
msgid "Order cannot be cancelled"
msgstr ""
-#: order/views.py:129
+#: order/views.py:125
msgid "Cancel sales order"
msgstr ""
-#: order/views.py:155
+#: order/views.py:151
msgid "Issue Order"
msgstr ""
-#: order/views.py:164
+#: order/views.py:160
msgid "Confirm order placement"
msgstr ""
-#: order/views.py:174
+#: order/views.py:170
msgid "Purchase order issued"
msgstr ""
-#: order/views.py:201
+#: order/views.py:197
msgid "Confirm order completion"
msgstr ""
-#: order/views.py:212
+#: order/views.py:208
msgid "Purchase order completed"
msgstr ""
-#: order/views.py:238
-msgid "Confirm order shipment"
-msgstr ""
-
-#: order/views.py:244
-msgid "Could not ship order"
-msgstr ""
-
-#: order/views.py:291
+#: order/views.py:245
msgid "Match Supplier Parts"
msgstr ""
-#: order/views.py:535
+#: order/views.py:489
msgid "Update prices"
msgstr ""
-#: order/views.py:793
+#: order/views.py:747
#, python-brace-format
msgid "Ordered {n} parts"
msgstr ""
-#: order/views.py:846
-msgid "Allocate Serial Numbers"
-msgstr ""
-
-#: order/views.py:891
-#, python-brace-format
-msgid "Allocated {n} items"
-msgstr ""
-
-#: order/views.py:907
-msgid "Select line item"
-msgstr ""
-
-#: order/views.py:938
-#, python-brace-format
-msgid "No matching item for serial {serial}"
-msgstr ""
-
-#: order/views.py:948
-#, python-brace-format
-msgid "{serial} is not in stock"
-msgstr ""
-
-#: order/views.py:956
-#, python-brace-format
-msgid "{serial} already allocated to an order"
-msgstr ""
-
-#: order/views.py:1072
+#: order/views.py:858
msgid "Sales order not found"
msgstr ""
-#: order/views.py:1078
+#: order/views.py:864
msgid "Price not found"
msgstr ""
-#: order/views.py:1081
+#: order/views.py:867
#, python-brace-format
msgid "Updated {part} unit-price to {price}"
msgstr ""
-#: order/views.py:1086
+#: order/views.py:872
#, python-brace-format
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/api.py:758
+#: part/api.py:760
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:762
+#: part/api.py:764
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:777
+#: part/api.py:779
msgid "Specify location for initial part stock"
msgstr "Specifica la posizione per lo stock iniziale"
-#: part/api.py:808 part/api.py:812 part/api.py:827 part/api.py:831
+#: part/api.py:810 part/api.py:814 part/api.py:829 part/api.py:833
msgid "This field is required"
msgstr ""
@@ -3828,8 +3946,8 @@ msgstr "Categorie Articolo"
#: part/templates/part/category.html:149
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:88
-#: templates/InvenTree/settings/sidebar.html:36
-#: templates/js/translated/part.js:1597 templates/navbar.html:19
+#: templates/InvenTree/settings/sidebar.html:37
+#: templates/js/translated/part.js:1597 templates/navbar.html:21
#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
msgid "Parts"
msgstr "Articoli"
@@ -3895,7 +4013,7 @@ msgstr "Parole chiave per migliorare la visibilità nei risultati di ricerca"
#: part/models.py:778 part/models.py:2223 part/models.py:2472
#: part/templates/part/part_base.html:265
#: part/templates/part/set_category.html:15
-#: templates/InvenTree/settings/settings.html:163
+#: templates/InvenTree/settings/settings.html:172
#: templates/js/translated/part.js:1202
msgid "Category"
msgstr "Categoria"
@@ -3906,7 +4024,7 @@ msgstr "Categoria articolo"
#: part/models.py:784 part/templates/part/part_base.html:274
#: templates/js/translated/part.js:557 templates/js/translated/part.js:1155
-#: templates/js/translated/stock.js:1216
+#: templates/js/translated/stock.js:1373
msgid "IPN"
msgstr "IPN - Numero di riferimento interno"
@@ -3975,10 +4093,11 @@ msgstr "Quest'articolo può essere acquistato da fornitori esterni?"
msgid "Can this part be sold to customers?"
msgstr "Questo pezzo può essere venduto ai clienti?"
-#: part/models.py:915 templates/js/translated/table_filters.js:34
+#: part/models.py:915 plugin/models.py:45
+#: templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:96
-#: templates/js/translated/table_filters.js:290
-#: templates/js/translated/table_filters.js:368
+#: templates/js/translated/table_filters.js:295
+#: templates/js/translated/table_filters.js:399
msgid "Active"
msgstr "Attivo"
@@ -4027,7 +4146,7 @@ msgid "Test with this name already exists for this part"
msgstr ""
#: part/models.py:2310 templates/js/translated/part.js:1648
-#: templates/js/translated/stock.js:940
+#: templates/js/translated/stock.js:1097
msgid "Test Name"
msgstr ""
@@ -4044,7 +4163,7 @@ msgid "Enter description for this test"
msgstr ""
#: part/models.py:2322 templates/js/translated/part.js:1657
-#: templates/js/translated/table_filters.js:276
+#: templates/js/translated/table_filters.js:281
msgid "Required"
msgstr ""
@@ -4086,7 +4205,7 @@ msgid "Parameter Units"
msgstr ""
#: part/models.py:2429 part/models.py:2478 part/models.py:2479
-#: templates/InvenTree/settings/settings.html:158
+#: templates/InvenTree/settings/settings.html:167
msgid "Parameter Template"
msgstr ""
@@ -4098,7 +4217,7 @@ msgstr ""
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2483 templates/InvenTree/settings/settings.html:167
+#: part/models.py:2483 templates/InvenTree/settings/settings.html:176
msgid "Default Value"
msgstr ""
@@ -4175,7 +4294,7 @@ msgstr "Consenti Le Varianti"
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2686 stock/models.py:361
+#: part/models.py:2686 stock/models.py:355
msgid "Quantity must be integer value for trackable parts"
msgstr ""
@@ -4724,8 +4843,8 @@ msgstr ""
msgid "This part is a variant of %(link)s"
msgstr ""
-#: part/templates/part/part_base.html:190 templates/js/translated/order.js:1545
-#: templates/js/translated/table_filters.js:188
+#: part/templates/part/part_base.html:190 templates/js/translated/order.js:2217
+#: templates/js/translated/table_filters.js:193
msgid "In Stock"
msgstr "In magazzino"
@@ -5099,6 +5218,78 @@ msgstr ""
msgid "Delete Internal Price Break"
msgstr ""
+#: plugin/integration.py:116
+msgid "No author found"
+msgstr ""
+
+#: plugin/integration.py:128
+msgid "No date found"
+msgstr ""
+
+#: plugin/models.py:25
+msgid "Plugin Configuration"
+msgstr ""
+
+#: plugin/models.py:26
+msgid "Plugin Configurations"
+msgstr ""
+
+#: plugin/models.py:31
+msgid "Key"
+msgstr ""
+
+#: plugin/models.py:32
+msgid "Key of plugin"
+msgstr ""
+
+#: plugin/models.py:40
+msgid "PluginName of the plugin"
+msgstr ""
+
+#: plugin/models.py:46
+msgid "Is the plugin active"
+msgstr ""
+
+#: plugin/samples/integration/sample.py:39
+msgid "Enable PO"
+msgstr ""
+
+#: plugin/samples/integration/sample.py:40
+msgid "Enable PO functionality in InvenTree interface"
+msgstr ""
+
+#: plugin/serializers.py:46
+msgid "Source URL"
+msgstr ""
+
+#: plugin/serializers.py:47
+msgid "Source for the package - this can be a custom registry or a VCS path"
+msgstr ""
+
+#: plugin/serializers.py:52
+msgid "Package Name"
+msgstr ""
+
+#: plugin/serializers.py:53
+msgid "Name for the Plugin Package - can also contain a version indicator"
+msgstr ""
+
+#: plugin/serializers.py:56
+msgid "Confirm plugin installation"
+msgstr ""
+
+#: plugin/serializers.py:57
+msgid "This will install this plugin now into the current instance. The instance will go into maintenance."
+msgstr ""
+
+#: plugin/serializers.py:72
+msgid "Installation not confirmed"
+msgstr ""
+
+#: plugin/serializers.py:74
+msgid "Either packagenmae of url must be provided"
+msgstr ""
+
#: report/api.py:234 report/api.py:278
#, python-brace-format
msgid "Template file '{filename}' is missing or does not exist"
@@ -5197,12 +5388,12 @@ msgid "Stock Item Test Report"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:520 stock/templates/stock/item_base.html:149
-#: templates/js/translated/build.js:233 templates/js/translated/build.js:637
-#: templates/js/translated/build.js:1013
+#: stock/models.py:514 stock/templates/stock/item_base.html:149
+#: templates/js/translated/build.js:238 templates/js/translated/build.js:642
+#: templates/js/translated/build.js:1018
#: templates/js/translated/model_renderers.js:95
-#: templates/js/translated/order.js:1287 templates/js/translated/order.js:1376
-#: templates/js/translated/stock.js:410
+#: templates/js/translated/order.js:99 templates/js/translated/order.js:1945
+#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:414
msgid "Serial Number"
msgstr ""
@@ -5211,17 +5402,19 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:93
-#: stock/models.py:1845
+#: stock/models.py:1833
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:94
-#: stock/models.py:1851
+#: stock/models.py:1839
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:97
-#: templates/js/translated/order.js:684 templates/js/translated/stock.js:1999
+#: templates/InvenTree/settings/plugin.html:49
+#: templates/InvenTree/settings/plugin_settings.html:38
+#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2174
msgid "Date"
msgstr "Data"
@@ -5239,302 +5432,318 @@ msgid "Installed Items"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
-#: templates/js/translated/stock.js:2259
+#: templates/js/translated/stock.js:577 templates/js/translated/stock.js:2434
msgid "Serial"
msgstr "Seriale"
-#: stock/api.py:422
+#: stock/api.py:446
msgid "Quantity is required"
msgstr "La quantità è richiesta"
-#: stock/forms.py:91 stock/forms.py:265 stock/models.py:577
+#: stock/forms.py:77 stock/forms.py:251 stock/models.py:571
#: stock/templates/stock/item_base.html:186
-#: templates/js/translated/stock.js:1358
+#: templates/js/translated/stock.js:1522
msgid "Expiry Date"
msgstr "Data di Scadenza"
-#: stock/forms.py:92 stock/forms.py:266
+#: stock/forms.py:78 stock/forms.py:252
msgid "Expiration date for this stock item"
msgstr ""
-#: stock/forms.py:95
+#: stock/forms.py:81
msgid "Enter unique serial numbers (or leave blank)"
msgstr ""
-#: stock/forms.py:150
+#: stock/forms.py:136
msgid "Destination for serialized stock (by default, will remain in current location)"
msgstr ""
-#: stock/forms.py:152
+#: stock/forms.py:138
msgid "Serial numbers"
msgstr ""
-#: stock/forms.py:152
+#: stock/forms.py:138
msgid "Unique serial numbers (must match quantity)"
msgstr ""
-#: stock/forms.py:154 stock/forms.py:238
+#: stock/forms.py:140 stock/forms.py:224
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/forms.py:194
+#: stock/forms.py:180
msgid "Stock item to install"
msgstr ""
-#: stock/forms.py:224
+#: stock/forms.py:210
msgid "Must not exceed available quantity"
msgstr ""
-#: stock/forms.py:236
+#: stock/forms.py:222
msgid "Destination location for uninstalled items"
msgstr "Posizione di destinazione per gli elementi disinstallati"
-#: stock/forms.py:240
+#: stock/forms.py:226
msgid "Confirm uninstall"
msgstr "Conferma la disinstallazione"
-#: stock/forms.py:240
+#: stock/forms.py:226
msgid "Confirm removal of installed stock items"
msgstr ""
-#: stock/models.py:60 stock/models.py:614
+#: stock/models.py:60 stock/models.py:608
#: stock/templates/stock/item_base.html:417
msgid "Owner"
msgstr ""
-#: stock/models.py:61 stock/models.py:615
+#: stock/models.py:61 stock/models.py:609
msgid "Select Owner"
msgstr "Seleziona Owner"
-#: stock/models.py:342
+#: stock/models.py:336
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:378
+#: stock/models.py:372
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:388 stock/models.py:397
+#: stock/models.py:382 stock/models.py:391
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:389
+#: stock/models.py:383
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:411
+#: stock/models.py:405
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:417
+#: stock/models.py:411
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:424
+#: stock/models.py:418
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:466
+#: stock/models.py:460
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:475
+#: stock/models.py:469
msgid "Base part"
msgstr "Articolo base"
-#: stock/models.py:483
+#: stock/models.py:477
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:488 stock/templates/stock/location.html:12
+#: stock/models.py:482 stock/templates/stock/location.html:12
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr "Ubicazione magazzino"
-#: stock/models.py:491
+#: stock/models.py:485
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:498
+#: stock/models.py:492
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:503 stock/templates/stock/item_base.html:299
+#: stock/models.py:497 stock/templates/stock/item_base.html:299
msgid "Installed In"
msgstr "Installato In"
-#: stock/models.py:506
+#: stock/models.py:500
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:522
+#: stock/models.py:516
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:536
+#: stock/models.py:530
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:540
+#: stock/models.py:534
msgid "Stock Quantity"
msgstr "Quantità disponibile"
-#: stock/models.py:549
+#: stock/models.py:543
msgid "Source Build"
msgstr ""
-#: stock/models.py:551
+#: stock/models.py:545
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:562
+#: stock/models.py:556
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:565
+#: stock/models.py:559
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:571
+#: stock/models.py:565
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:578
+#: stock/models.py:572
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:591
+#: stock/models.py:585
msgid "Delete on deplete"
msgstr "Elimina al esaurimento"
-#: stock/models.py:591
+#: stock/models.py:585
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:601 stock/templates/stock/item.html:111
+#: stock/models.py:595 stock/templates/stock/item.html:111
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:610
+#: stock/models.py:604
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:620
-msgid "Scheduled for deletion"
-msgstr ""
-
-#: stock/models.py:621
-msgid "This StockItem will be deleted by the background worker"
-msgstr ""
-
-#: stock/models.py:1084
+#: stock/models.py:1072
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1090
+#: stock/models.py:1078
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1096
+#: stock/models.py:1084
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1099
+#: stock/models.py:1087
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1102
+#: stock/models.py:1090
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1109
+#: stock/models.py:1097
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1267
+#: stock/models.py:1255
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1765
+#: stock/models.py:1753
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1822
+#: stock/models.py:1810
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1828
+#: stock/models.py:1816
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1846
+#: stock/models.py:1834
msgid "Test name"
msgstr ""
-#: stock/models.py:1852 templates/js/translated/table_filters.js:266
+#: stock/models.py:1840 templates/js/translated/table_filters.js:271
msgid "Test result"
msgstr ""
-#: stock/models.py:1858
+#: stock/models.py:1846
msgid "Test output value"
msgstr ""
-#: stock/models.py:1865
+#: stock/models.py:1853
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1871
+#: stock/models.py:1859
msgid "Test notes"
msgstr ""
-#: stock/serializers.py:171
+#: stock/serializers.py:173
msgid "Purchase price of this stock item"
msgstr ""
-#: stock/serializers.py:178
+#: stock/serializers.py:180
msgid "Purchase currency of this stock item"
msgstr ""
-#: stock/serializers.py:292
+#: stock/serializers.py:294
msgid "Enter number of stock items to serialize"
msgstr ""
-#: stock/serializers.py:307
+#: stock/serializers.py:309
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:313
+#: stock/serializers.py:315
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:324 stock/serializers.py:691
+#: stock/serializers.py:326 stock/serializers.py:814
msgid "Destination stock location"
msgstr "Posizione magazzino di destinazione"
-#: stock/serializers.py:331
+#: stock/serializers.py:333
msgid "Optional note field"
msgstr ""
-#: stock/serializers.py:344
+#: stock/serializers.py:346
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:561
+#: stock/serializers.py:573
+msgid "Part must be salable"
+msgstr ""
+
+#: stock/serializers.py:577
+msgid "Item is allocated to a sales order"
+msgstr ""
+
+#: stock/serializers.py:581
+msgid "Item is allocated to a build order"
+msgstr ""
+
+#: stock/serializers.py:611
+msgid "Customer to assign stock items"
+msgstr ""
+
+#: stock/serializers.py:617
+msgid "Selected company is not a customer"
+msgstr ""
+
+#: stock/serializers.py:625
+msgid "Stock assignment notes"
+msgstr ""
+
+#: stock/serializers.py:635 stock/serializers.py:722
+msgid "A list of stock items must be provided"
+msgstr ""
+
+#: stock/serializers.py:684
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:589
+#: stock/serializers.py:712
msgid "Stock transaction notes"
msgstr ""
-#: stock/serializers.py:599
-msgid "A list of stock items must be provided"
-msgstr ""
-
#: stock/templates/stock/item.html:18
msgid "Stock Tracking Information"
msgstr ""
@@ -5572,7 +5781,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:137 stock/views.py:515
+#: stock/templates/stock/item.html:137 stock/views.py:482
msgid "Install Stock Item"
msgstr ""
@@ -5632,7 +5841,7 @@ msgstr ""
msgid "Transfer stock"
msgstr "Trasferisci giacenza"
-#: stock/templates/stock/item_base.html:85
+#: stock/templates/stock/item_base.html:85 templates/stock_table.html:53
msgid "Assign to customer"
msgstr ""
@@ -5694,7 +5903,7 @@ msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:190
-#: templates/js/translated/table_filters.js:247
+#: templates/js/translated/table_filters.js:252
msgid "Expired"
msgstr ""
@@ -5704,12 +5913,12 @@ msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:192
-#: templates/js/translated/table_filters.js:253
+#: templates/js/translated/table_filters.js:258
msgid "Stale"
msgstr ""
#: stock/templates/stock/item_base.html:199
-#: templates/js/translated/stock.js:1371
+#: templates/js/translated/stock.js:1535
msgid "Last Updated"
msgstr "Ultimo aggiornamento"
@@ -5738,13 +5947,11 @@ msgid "This stock item has not passed all required tests"
msgstr ""
#: stock/templates/stock/item_base.html:255
-#, python-format
-msgid "This stock item is allocated to Sales Order %(link)s (Quantity: %(qty)s)"
+msgid "This stock item is allocated to Sales Order"
msgstr ""
#: stock/templates/stock/item_base.html:263
-#, python-format
-msgid "This stock item is allocated to Build %(link)s (Quantity: %(qty)s)"
+msgid "This stock item is allocated to Build Order"
msgstr ""
#: stock/templates/stock/item_base.html:269
@@ -5760,7 +5967,7 @@ msgid "This stock item will be automatically deleted when all stock is depleted.
msgstr ""
#: stock/templates/stock/item_base.html:318
-#: templates/js/translated/build.js:1035
+#: templates/js/translated/build.js:1040
msgid "No location set"
msgstr "Nessuna posizione impostata"
@@ -5910,7 +6117,7 @@ msgstr ""
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:912
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:879
msgid "Convert Stock Item"
msgstr ""
@@ -5935,8 +6142,7 @@ msgstr ""
msgid "Edit Stock Location"
msgstr "Modifica Posizione Giacenza"
-#: stock/views.py:269 stock/views.py:891 stock/views.py:1017
-#: stock/views.py:1299
+#: stock/views.py:269 stock/views.py:858 stock/views.py:984 stock/views.py:1266
msgid "Owner is required (ownership control is enabled)"
msgstr ""
@@ -5945,86 +6151,78 @@ msgid "Stock Location QR code"
msgstr "QR Code della posizione magazzino"
#: stock/views.py:303
-msgid "Assign to Customer"
-msgstr ""
-
-#: stock/views.py:312
-msgid "Customer must be specified"
-msgstr ""
-
-#: stock/views.py:336
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:345
+#: stock/views.py:312
msgid "Specify a valid location"
msgstr "Specificare una posizione valida"
-#: stock/views.py:356
+#: stock/views.py:323
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:367
+#: stock/views.py:334
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:384
+#: stock/views.py:351
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:489
+#: stock/views.py:456
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:663
+#: stock/views.py:630
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:760 templates/js/translated/stock.js:730
+#: stock/views.py:727 templates/js/translated/stock.js:887
msgid "Confirm stock adjustment"
msgstr ""
-#: stock/views.py:771
+#: stock/views.py:738
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:793 templates/js/translated/stock.js:319
+#: stock/views.py:760 templates/js/translated/stock.js:323
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:943
+#: stock/views.py:910
msgid "Create new Stock Location"
msgstr "Crea una nuova Posizione di Giacenza"
-#: stock/views.py:1044
+#: stock/views.py:1011
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1186 templates/js/translated/stock.js:299
+#: stock/views.py:1153 templates/js/translated/stock.js:303
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1268
+#: stock/views.py:1235
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1368
+#: stock/views.py:1335
msgid "Delete Stock Location"
msgstr "Elimina Posizione di Giacenza"
-#: stock/views.py:1381
+#: stock/views.py:1348
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1392
+#: stock/views.py:1359
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1399
+#: stock/views.py:1366
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1408
+#: stock/views.py:1375
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -6044,6 +6242,14 @@ msgstr ""
msgid "The requested page does not exist"
msgstr ""
+#: templates/503.html:10 templates/503.html:35
+msgid "Site is in Maintenance"
+msgstr ""
+
+#: templates/503.html:41
+msgid "The site is currently in maintenance and should be up again soon!"
+msgstr ""
+
#: templates/InvenTree/index.html:7
msgid "Index"
msgstr ""
@@ -6153,7 +6359,7 @@ msgid "Server Settings"
msgstr "Impostazioni Server"
#: templates/InvenTree/settings/login.html:9
-#: templates/InvenTree/settings/sidebar.html:28
+#: templates/InvenTree/settings/sidebar.html:29
msgid "Login Settings"
msgstr "Impostazioni di accesso"
@@ -6161,6 +6367,24 @@ msgstr "Impostazioni di accesso"
msgid "Signup"
msgstr "Registrati"
+#: templates/InvenTree/settings/mixins/settings.html:4
+#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:118
+msgid "Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/mixins/urls.html:4
+msgid "URLs"
+msgstr ""
+
+#: templates/InvenTree/settings/mixins/urls.html:6
+#, python-format
+msgid "The Base-URL for this plugin is %(base)s."
+msgstr ""
+
+#: templates/InvenTree/settings/mixins/urls.html:21
+msgid "open in new tab"
+msgstr ""
+
#: templates/InvenTree/settings/part.html:7
msgid "Part Settings"
msgstr "Impostazioni articolo"
@@ -6177,6 +6401,126 @@ msgstr ""
msgid "Part Parameter Templates"
msgstr ""
+#: templates/InvenTree/settings/plugin.html:10
+msgid "Plugin Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:16
+msgid "Changing the settings below require you to immediatly restart InvenTree. Do not change this while under active usage."
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:32
+msgid "Plugin list"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:37
+#: templates/js/translated/plugin.js:15
+msgid "Install Plugin"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:46 templates/navbar.html:111
+#: users/models.py:39
+msgid "Admin"
+msgstr "Admin"
+
+#: templates/InvenTree/settings/plugin.html:48
+#: templates/InvenTree/settings/plugin_settings.html:28
+msgid "Author"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:50
+#: templates/InvenTree/settings/plugin_settings.html:43
+msgid "Version"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:73
+#, python-format
+msgid "has %(name)s"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:91
+msgid "Inactive plugins"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:114
+msgid "Plugin Error Stack"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:123
+msgid "Stage"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:125
+msgid "Message"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:10
+#, python-format
+msgid "Plugin details for %(name)s"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:17
+msgid "Plugin information"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:48
+msgid "no version information supplied"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:62
+msgid "License"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:70
+msgid "The code information is pulled from the latest git commit for this plugin. It might not reflect official version numbers or information but the actual code running."
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:74
+msgid "Package information"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:80
+msgid "Installation method"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:83
+msgid "This plugin was installed as a package"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:85
+msgid "This plugin was found in a local InvenTree path"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:91
+msgid "Installation path"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:97
+msgid "Commit Author"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:101
+#: templates/about.html:47
+msgid "Commit Date"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:105
+#: templates/about.html:40
+msgid "Commit Hash"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:109
+msgid "Commit Message"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:114
+msgid "Sign Status"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:119
+msgid "Sign Key"
+msgstr ""
+
#: templates/InvenTree/settings/po.html:7
msgid "Purchase Order Settings"
msgstr ""
@@ -6194,86 +6538,82 @@ msgstr ""
msgid "Edit setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:11 templates/navbar.html:93
-msgid "Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/settings.html:65
+#: templates/InvenTree/settings/settings.html:74
msgid "Edit Global Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:65
+#: templates/InvenTree/settings/settings.html:74
msgid "Edit User Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:148
+#: templates/InvenTree/settings/settings.html:157
msgid "No category parameter templates found"
msgstr "Nessun parametro di categoria trovato"
-#: templates/InvenTree/settings/settings.html:170
-#: templates/InvenTree/settings/settings.html:269
+#: templates/InvenTree/settings/settings.html:179
+#: templates/InvenTree/settings/settings.html:278
msgid "Edit Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:171
-#: templates/InvenTree/settings/settings.html:270
+#: templates/InvenTree/settings/settings.html:180
+#: templates/InvenTree/settings/settings.html:279
msgid "Delete Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:249
+#: templates/InvenTree/settings/settings.html:258
msgid "No part parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:253
+#: templates/InvenTree/settings/settings.html:262
msgid "ID"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:5
+#: templates/InvenTree/settings/sidebar.html:6
#: templates/InvenTree/settings/user_settings.html:9
msgid "User Settings"
msgstr "Impostazioni Utente"
-#: templates/InvenTree/settings/sidebar.html:8
+#: templates/InvenTree/settings/sidebar.html:9
#: templates/InvenTree/settings/user.html:12
msgid "Account Settings"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:10
+#: templates/InvenTree/settings/sidebar.html:11
#: templates/InvenTree/settings/user_display.html:9
msgid "Display Settings"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:12
+#: templates/InvenTree/settings/sidebar.html:13
msgid "Home Page"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:14
+#: templates/InvenTree/settings/sidebar.html:15
#: templates/InvenTree/settings/user_search.html:9
msgid "Search Settings"
msgstr "Impostazioni di ricerca"
-#: templates/InvenTree/settings/sidebar.html:16
+#: templates/InvenTree/settings/sidebar.html:17
msgid "Label Printing"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:18
-#: templates/InvenTree/settings/sidebar.html:34
+#: templates/InvenTree/settings/sidebar.html:19
+#: templates/InvenTree/settings/sidebar.html:35
msgid "Reporting"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:23
+#: templates/InvenTree/settings/sidebar.html:24
msgid "Global Settings"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:26
+#: templates/InvenTree/settings/sidebar.html:27
msgid "Server Configuration"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:32
+#: templates/InvenTree/settings/sidebar.html:33
msgid "Currencies"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:38
+#: templates/InvenTree/settings/sidebar.html:39
msgid "Categories"
msgstr ""
@@ -6491,8 +6831,8 @@ msgstr "Informazioni Versione InvenTree"
#: templates/about.html:11 templates/about.html:105
#: templates/js/translated/bom.js:283 templates/js/translated/modals.js:53
-#: templates/js/translated/modals.js:567 templates/js/translated/modals.js:661
-#: templates/js/translated/modals.js:964 templates/modals.html:15
+#: templates/js/translated/modals.js:568 templates/js/translated/modals.js:662
+#: templates/js/translated/modals.js:965 templates/modals.html:15
#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
msgid "Close"
msgstr "Chiudi"
@@ -6513,14 +6853,6 @@ msgstr "Aggiornato"
msgid "Update Available"
msgstr ""
-#: templates/about.html:40
-msgid "Commit Hash"
-msgstr ""
-
-#: templates/about.html:47
-msgid "Commit Date"
-msgstr ""
-
#: templates/about.html:53
msgid "InvenTree Documentation"
msgstr "Documentazione InvenTree"
@@ -6719,8 +7051,9 @@ msgstr "Quantità richiesta"
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1129
-#: templates/js/translated/build.js:1749
+#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1134
+#: templates/js/translated/build.js:1755
+#: templates/js/translated/table_filters.js:178
msgid "Available"
msgstr "Disponibile"
@@ -6766,11 +7099,11 @@ msgstr "Il server remoto deve essere accessibile"
msgid "Remote image must not exceed maximum allowable file size"
msgstr "L'immagine remota non deve superare la dimensione massima consentita del file"
-#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1034
+#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1035
msgid "No Response"
msgstr ""
-#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1035
+#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1036
msgid "No response from the InvenTree server"
msgstr ""
@@ -6782,35 +7115,35 @@ msgstr ""
msgid "API request returned error code 400"
msgstr ""
-#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1044
+#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1045
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1045
+#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1046
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1049
+#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1050
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1050
+#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1051
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1054
+#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1055
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1055
+#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1056
msgid "The requested resource could not be located on the server"
msgstr ""
-#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1059
+#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1060
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1060
+#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1061
msgid "Connection timeout while requesting data from server"
msgstr ""
@@ -6879,7 +7212,7 @@ msgid "Unknown response from server"
msgstr ""
#: templates/js/translated/barcode.js:140
-#: templates/js/translated/modals.js:1024
+#: templates/js/translated/modals.js:1025
msgid "Invalid server response"
msgstr ""
@@ -6887,7 +7220,7 @@ msgstr ""
msgid "Scan barcode data below"
msgstr ""
-#: templates/js/translated/barcode.js:280 templates/navbar.html:69
+#: templates/js/translated/barcode.js:280 templates/navbar.html:94
msgid "Scan Barcode"
msgstr ""
@@ -6907,7 +7240,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:682
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:839
msgid "Remove stock item"
msgstr ""
@@ -6977,7 +7310,7 @@ msgstr ""
msgid "Substitutes Available"
msgstr ""
-#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1111
+#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1116
msgid "Variant stock allowed"
msgstr ""
@@ -7001,11 +7334,6 @@ msgstr ""
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1183
-#: templates/js/translated/order.js:1319
-msgid "Actions"
-msgstr ""
-
#: templates/js/translated/bom.js:616
msgid "Validate BOM Item"
msgstr ""
@@ -7026,7 +7354,7 @@ msgstr ""
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:718 templates/js/translated/build.js:855
+#: templates/js/translated/bom.js:718 templates/js/translated/build.js:860
msgid "No BOM items found"
msgstr ""
@@ -7034,7 +7362,7 @@ msgstr ""
msgid "Are you sure you want to delete this BOM item?"
msgstr ""
-#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1095
+#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1100
msgid "Required Part"
msgstr ""
@@ -7042,165 +7370,165 @@ msgstr ""
msgid "Inherited from parent BOM"
msgstr ""
-#: templates/js/translated/build.js:78
+#: templates/js/translated/build.js:83
msgid "Edit Build Order"
msgstr ""
-#: templates/js/translated/build.js:112
+#: templates/js/translated/build.js:117
msgid "Create Build Order"
msgstr ""
-#: templates/js/translated/build.js:133
+#: templates/js/translated/build.js:138
msgid "Allocate stock items to this build output"
msgstr ""
-#: templates/js/translated/build.js:144
+#: templates/js/translated/build.js:149
msgid "Unallocate stock from build output"
msgstr ""
-#: templates/js/translated/build.js:153
+#: templates/js/translated/build.js:158
msgid "Complete build output"
msgstr ""
-#: templates/js/translated/build.js:161
+#: templates/js/translated/build.js:166
msgid "Delete build output"
msgstr ""
-#: templates/js/translated/build.js:184
+#: templates/js/translated/build.js:189
msgid "Are you sure you wish to unallocate stock items from this build?"
msgstr ""
-#: templates/js/translated/build.js:202
+#: templates/js/translated/build.js:207
msgid "Unallocate Stock Items"
msgstr ""
-#: templates/js/translated/build.js:220
+#: templates/js/translated/build.js:225
msgid "Select Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:221
+#: templates/js/translated/build.js:226
msgid "At least one build output must be selected"
msgstr ""
-#: templates/js/translated/build.js:275
+#: templates/js/translated/build.js:280
msgid "Output"
msgstr ""
-#: templates/js/translated/build.js:291
+#: templates/js/translated/build.js:296
msgid "Complete Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:386
+#: templates/js/translated/build.js:391
msgid "No build order allocations found"
msgstr ""
-#: templates/js/translated/build.js:424 templates/js/translated/order.js:1193
+#: templates/js/translated/build.js:429 templates/js/translated/order.js:1848
msgid "Location not specified"
msgstr "Posizione non specificata"
-#: templates/js/translated/build.js:603
+#: templates/js/translated/build.js:608
msgid "No active build outputs found"
msgstr ""
-#: templates/js/translated/build.js:1052 templates/js/translated/build.js:1760
-#: templates/js/translated/order.js:1326
+#: templates/js/translated/build.js:1057 templates/js/translated/build.js:1766
+#: templates/js/translated/order.js:1982
msgid "Edit stock allocation"
msgstr "Modifica allocazione magazzino"
-#: templates/js/translated/build.js:1054 templates/js/translated/build.js:1761
-#: templates/js/translated/order.js:1327
+#: templates/js/translated/build.js:1059 templates/js/translated/build.js:1767
+#: templates/js/translated/order.js:1983
msgid "Delete stock allocation"
msgstr "Elimina posizione giacenza"
-#: templates/js/translated/build.js:1072
+#: templates/js/translated/build.js:1077
msgid "Edit Allocation"
msgstr "Modifica Posizione"
-#: templates/js/translated/build.js:1082
+#: templates/js/translated/build.js:1087
msgid "Remove Allocation"
msgstr "Rimuovi Posizione"
-#: templates/js/translated/build.js:1107
+#: templates/js/translated/build.js:1112
msgid "Substitute parts available"
msgstr ""
-#: templates/js/translated/build.js:1124
+#: templates/js/translated/build.js:1129
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:1134 templates/js/translated/build.js:1360
-#: templates/js/translated/build.js:1756 templates/js/translated/order.js:1556
+#: templates/js/translated/build.js:1139 templates/js/translated/build.js:1365
+#: templates/js/translated/build.js:1762 templates/js/translated/order.js:2227
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:1190 templates/js/translated/order.js:1610
+#: templates/js/translated/build.js:1195 templates/js/translated/order.js:2307
msgid "Build stock"
msgstr ""
-#: templates/js/translated/build.js:1194 templates/stock_table.html:52
+#: templates/js/translated/build.js:1199 templates/stock_table.html:52
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:1197 templates/js/translated/order.js:1603
+#: templates/js/translated/build.js:1202 templates/js/translated/order.js:2300
msgid "Allocate stock"
msgstr ""
-#: templates/js/translated/build.js:1262
+#: templates/js/translated/build.js:1267 templates/js/translated/order.js:1499
msgid "Specify stock allocation quantity"
msgstr "Specificare il quantitativo assegnato allo stock"
-#: templates/js/translated/build.js:1333 templates/js/translated/label.js:134
-#: templates/js/translated/report.js:225
+#: templates/js/translated/build.js:1338 templates/js/translated/label.js:134
+#: templates/js/translated/order.js:1550 templates/js/translated/report.js:225
msgid "Select Parts"
msgstr "Seleziona Articoli"
-#: templates/js/translated/build.js:1334
+#: templates/js/translated/build.js:1339 templates/js/translated/order.js:1551
msgid "You must select at least one part to allocate"
msgstr ""
-#: templates/js/translated/build.js:1348
+#: templates/js/translated/build.js:1353 templates/js/translated/order.js:1565
msgid "Select source location (leave blank to take from all locations)"
msgstr "Seleziona la posizione di origine (lascia vuoto per prendere da tutte le posizioni)"
-#: templates/js/translated/build.js:1377
+#: templates/js/translated/build.js:1382 templates/js/translated/order.js:1600
msgid "Confirm stock allocation"
msgstr "Conferma l'assegnazione della giacenza"
-#: templates/js/translated/build.js:1378
+#: templates/js/translated/build.js:1383
msgid "Allocate Stock Items to Build Order"
msgstr ""
-#: templates/js/translated/build.js:1389
+#: templates/js/translated/build.js:1394 templates/js/translated/order.js:1613
msgid "No matching stock locations"
msgstr "Nessuna posizione di magazzino corrispondente"
-#: templates/js/translated/build.js:1451
+#: templates/js/translated/build.js:1464 templates/js/translated/order.js:1690
msgid "No matching stock items"
msgstr ""
-#: templates/js/translated/build.js:1576
+#: templates/js/translated/build.js:1582
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:1593 templates/js/translated/part.js:1147
-#: templates/js/translated/part.js:1558 templates/js/translated/stock.js:1176
-#: templates/js/translated/stock.js:1953
+#: templates/js/translated/build.js:1599 templates/js/translated/part.js:1147
+#: templates/js/translated/part.js:1558 templates/js/translated/stock.js:1333
+#: templates/js/translated/stock.js:2128
msgid "Select"
msgstr ""
-#: templates/js/translated/build.js:1613
+#: templates/js/translated/build.js:1619
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1674 templates/js/translated/stock.js:2172
+#: templates/js/translated/build.js:1680 templates/js/translated/stock.js:2347
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:1686
+#: templates/js/translated/build.js:1692
msgid "No information"
msgstr ""
-#: templates/js/translated/build.js:1737
+#: templates/js/translated/build.js:1743
msgid "No parts allocated for"
msgstr ""
@@ -7220,7 +7548,7 @@ msgstr ""
msgid "Delete Manufacturer Part"
msgstr ""
-#: templates/js/translated/company.js:165 templates/js/translated/order.js:90
+#: templates/js/translated/company.js:165 templates/js/translated/order.js:248
msgid "Add Supplier"
msgstr "Aggiungi fornitore"
@@ -7355,20 +7683,20 @@ msgstr "Mostra operazione non consentita"
msgid "Enter a valid number"
msgstr "Inserisci un numero valido"
-#: templates/js/translated/forms.js:1072 templates/modals.html:19
+#: templates/js/translated/forms.js:1078 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1463
+#: templates/js/translated/forms.js:1469
msgid "No results found"
msgstr "Nessun risultato trovato"
-#: templates/js/translated/forms.js:1667
+#: templates/js/translated/forms.js:1673
msgid "Searching"
msgstr "Ricerca"
-#: templates/js/translated/forms.js:1884
+#: templates/js/translated/forms.js:1893
msgid "Clear input"
msgstr "Cancella input"
@@ -7381,7 +7709,7 @@ msgid "NO"
msgstr "NO"
#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:706
+#: templates/js/translated/stock.js:863
msgid "Select Stock Items"
msgstr ""
@@ -7430,62 +7758,62 @@ msgstr "Seleziona l'etichetta"
msgid "Select Label Template"
msgstr "Seleziona Modello Etichetta"
-#: templates/js/translated/modals.js:75 templates/js/translated/modals.js:119
-#: templates/js/translated/modals.js:593
+#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:120
+#: templates/js/translated/modals.js:594
msgid "Cancel"
msgstr "Annulla"
-#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:118
-#: templates/js/translated/modals.js:660 templates/js/translated/modals.js:963
+#: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119
+#: templates/js/translated/modals.js:661 templates/js/translated/modals.js:964
#: templates/modals.html:28 templates/modals.html:51
msgid "Submit"
msgstr "Invia"
-#: templates/js/translated/modals.js:117
+#: templates/js/translated/modals.js:118
msgid "Form Title"
msgstr "Titolo modulo"
-#: templates/js/translated/modals.js:380
+#: templates/js/translated/modals.js:381
msgid "Waiting for server..."
msgstr "In attesa del server..."
-#: templates/js/translated/modals.js:539
+#: templates/js/translated/modals.js:540
msgid "Show Error Information"
msgstr "Informazioni sull'errore"
-#: templates/js/translated/modals.js:592
+#: templates/js/translated/modals.js:593
msgid "Accept"
msgstr "Accetta"
-#: templates/js/translated/modals.js:649
+#: templates/js/translated/modals.js:650
msgid "Loading Data"
msgstr ""
-#: templates/js/translated/modals.js:915
+#: templates/js/translated/modals.js:916
msgid "Invalid response from server"
msgstr "Risposta dal server non valida"
-#: templates/js/translated/modals.js:915
+#: templates/js/translated/modals.js:916
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/translated/modals.js:927
+#: templates/js/translated/modals.js:928
msgid "Error posting form data"
msgstr ""
-#: templates/js/translated/modals.js:1024
+#: templates/js/translated/modals.js:1025
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/translated/modals.js:1039
+#: templates/js/translated/modals.js:1040
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/translated/modals.js:1040
+#: templates/js/translated/modals.js:1041
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/translated/modals.js:1063
+#: templates/js/translated/modals.js:1064
msgid "Error requesting form data"
msgstr ""
@@ -7513,176 +7841,245 @@ msgstr "Codice Articolo"
msgid "Order ID"
msgstr "ID Ordine"
-#: templates/js/translated/model_renderers.js:256
+#: templates/js/translated/model_renderers.js:253
+msgid "Shipment ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:273
msgid "Category ID"
msgstr "Id Categoria"
-#: templates/js/translated/model_renderers.js:293
+#: templates/js/translated/model_renderers.js:310
msgid "Manufacturer Part ID"
msgstr "ID articolo produttore"
-#: templates/js/translated/model_renderers.js:322
+#: templates/js/translated/model_renderers.js:339
msgid "Supplier Part ID"
msgstr ""
-#: templates/js/translated/order.js:48
+#: templates/js/translated/order.js:75
+msgid "No stock items have been allocated to this shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:80
+msgid "The following stock items will be shipped"
+msgstr ""
+
+#: templates/js/translated/order.js:120
+msgid "Complete Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:126
+msgid "Confirm Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:181
+msgid "Create New Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:206
msgid "Add Customer"
msgstr "Aggiungi cliente"
-#: templates/js/translated/order.js:73
+#: templates/js/translated/order.js:231
msgid "Create Sales Order"
msgstr ""
-#: templates/js/translated/order.js:208
+#: templates/js/translated/order.js:366
msgid "Export Order"
msgstr ""
-#: templates/js/translated/order.js:211 templates/js/translated/stock.js:505
+#: templates/js/translated/order.js:369 templates/js/translated/stock.js:509
msgid "Format"
msgstr "Formato"
-#: templates/js/translated/order.js:212 templates/js/translated/stock.js:506
+#: templates/js/translated/order.js:370 templates/js/translated/stock.js:510
msgid "Select file format"
msgstr ""
-#: templates/js/translated/order.js:300
+#: templates/js/translated/order.js:460
msgid "Select Line Items"
msgstr ""
-#: templates/js/translated/order.js:301
+#: templates/js/translated/order.js:461
msgid "At least one line item must be selected"
msgstr ""
-#: templates/js/translated/order.js:326
+#: templates/js/translated/order.js:486
msgid "Quantity to receive"
msgstr "Quantità da ricevere"
-#: templates/js/translated/order.js:360 templates/js/translated/stock.js:1755
+#: templates/js/translated/order.js:520 templates/js/translated/stock.js:1930
msgid "Stock Status"
msgstr "Stato giacenza"
-#: templates/js/translated/order.js:427
+#: templates/js/translated/order.js:587
msgid "Order Code"
msgstr "Codice ordine"
-#: templates/js/translated/order.js:428
+#: templates/js/translated/order.js:588
msgid "Ordered"
msgstr "Ordinato"
-#: templates/js/translated/order.js:430
+#: templates/js/translated/order.js:590
msgid "Receive"
msgstr "Ricevuto"
-#: templates/js/translated/order.js:449
+#: templates/js/translated/order.js:609
msgid "Confirm receipt of items"
msgstr ""
-#: templates/js/translated/order.js:450
+#: templates/js/translated/order.js:610
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:627 templates/js/translated/part.js:746
+#: templates/js/translated/order.js:790 templates/js/translated/part.js:746
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:659 templates/js/translated/order.js:1062
+#: templates/js/translated/order.js:815 templates/js/translated/order.js:1230
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:771 templates/js/translated/order.js:1645
+#: templates/js/translated/order.js:936 templates/js/translated/order.js:2356
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:783 templates/js/translated/order.js:1656
+#: templates/js/translated/order.js:948 templates/js/translated/order.js:2367
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/order.js:822
+#: templates/js/translated/order.js:987
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:849 templates/js/translated/order.js:1466
+#: templates/js/translated/order.js:1014 templates/js/translated/order.js:2138
msgid "Total"
msgstr "Totale"
-#: templates/js/translated/order.js:903 templates/js/translated/order.js:1491
+#: templates/js/translated/order.js:1068 templates/js/translated/order.js:2163
#: templates/js/translated/part.js:1775 templates/js/translated/part.js:1986
msgid "Unit Price"
msgstr "Prezzo Unitario"
-#: templates/js/translated/order.js:918 templates/js/translated/order.js:1507
+#: templates/js/translated/order.js:1083 templates/js/translated/order.js:2179
msgid "Total Price"
msgstr "Prezzo Totale"
-#: templates/js/translated/order.js:996 templates/js/translated/order.js:1616
+#: templates/js/translated/order.js:1161 templates/js/translated/order.js:2313
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:997
+#: templates/js/translated/order.js:1162 templates/js/translated/order.js:2317
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:1001 templates/js/translated/part.js:878
+#: templates/js/translated/order.js:1166 templates/js/translated/part.js:878
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:1038
+#: templates/js/translated/order.js:1206
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:1076
+#: templates/js/translated/order.js:1244
msgid "Invalid Customer"
msgstr "Cliente non valido"
-#: templates/js/translated/order.js:1154
+#: templates/js/translated/order.js:1322
+msgid "Edit shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1325
+msgid "Complete shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1330
+msgid "Delete shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1350
+msgid "Edit Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1367
+msgid "Delete Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1401
+msgid "No matching shipments found"
+msgstr ""
+
+#: templates/js/translated/order.js:1411
+msgid "Shipment Reference"
+msgstr ""
+
+#: templates/js/translated/order.js:1435
+msgid "Not shipped"
+msgstr ""
+
+#: templates/js/translated/order.js:1441
+msgid "Tracking"
+msgstr ""
+
+#: templates/js/translated/order.js:1601
+msgid "Allocate Stock Items to Sales Order"
+msgstr ""
+
+#: templates/js/translated/order.js:1809
msgid "No sales order allocations found"
msgstr "Nessun ordine di vendita trovato"
-#: templates/js/translated/order.js:1247
+#: templates/js/translated/order.js:1898
msgid "Edit Stock Allocation"
msgstr "Modifica posizione giacenza"
-#: templates/js/translated/order.js:1264
+#: templates/js/translated/order.js:1915
msgid "Confirm Delete Operation"
msgstr "Conferma Operazione Eliminazione"
-#: templates/js/translated/order.js:1265
+#: templates/js/translated/order.js:1916
msgid "Delete Stock Allocation"
msgstr "Elimina posizione giacenza"
-#: templates/js/translated/order.js:1307
+#: templates/js/translated/order.js:1959 templates/js/translated/order.js:2048
+#: templates/js/translated/stock.js:1249
+msgid "Shipped to customer"
+msgstr "Spedito al cliente"
+
+#: templates/js/translated/order.js:1967 templates/js/translated/order.js:2057
msgid "Stock location not specified"
msgstr "Nessun posizione specificata"
-#: templates/js/translated/order.js:1556
-msgid "Fulfilled"
-msgstr "Soddisfatto"
-
-#: templates/js/translated/order.js:1600
+#: templates/js/translated/order.js:2297
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:1606
+#: templates/js/translated/order.js:2303
msgid "Purchase stock"
msgstr "Prezzo d'acquisto"
-#: templates/js/translated/order.js:1613 templates/js/translated/order.js:1792
+#: templates/js/translated/order.js:2310 templates/js/translated/order.js:2476
msgid "Calculate price"
msgstr "Calcola il prezzo"
-#: templates/js/translated/order.js:1617
-msgid "Delete line item "
+#: templates/js/translated/order.js:2321
+msgid "Cannot be deleted as items have been shipped"
msgstr ""
-#: templates/js/translated/order.js:1740
-msgid "Allocate Stock Item"
+#: templates/js/translated/order.js:2324
+msgid "Cannot be deleted as items have been allocated"
msgstr ""
-#: templates/js/translated/order.js:1800
+#: templates/js/translated/order.js:2382
+msgid "Allocate Serial Numbers"
+msgstr ""
+
+#: templates/js/translated/order.js:2484
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:1814
+#: templates/js/translated/order.js:2498
msgid "No matching line items"
msgstr ""
@@ -7827,12 +8224,12 @@ msgid "No category"
msgstr "Nessuna categoria"
#: templates/js/translated/part.js:1230
-#: templates/js/translated/table_filters.js:381
+#: templates/js/translated/table_filters.js:412
msgid "Low stock"
msgstr "In esaurimento"
#: templates/js/translated/part.js:1321 templates/js/translated/part.js:1493
-#: templates/js/translated/stock.js:1914
+#: templates/js/translated/stock.js:2089
msgid "Display as list"
msgstr "Visualizza come elenco"
@@ -7840,7 +8237,7 @@ msgstr "Visualizza come elenco"
msgid "Display as grid"
msgstr "Visualizza come griglia"
-#: templates/js/translated/part.js:1512 templates/js/translated/stock.js:1933
+#: templates/js/translated/part.js:1512 templates/js/translated/stock.js:2108
msgid "Display as tree"
msgstr "Visualizza come struttura ad albero"
@@ -7848,7 +8245,7 @@ msgstr "Visualizza come struttura ad albero"
msgid "Subscribed category"
msgstr "Categoria sottoscritta"
-#: templates/js/translated/part.js:1590 templates/js/translated/stock.js:1977
+#: templates/js/translated/part.js:1590 templates/js/translated/stock.js:2152
msgid "Path"
msgstr "Percorso"
@@ -7856,11 +8253,11 @@ msgstr "Percorso"
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1685 templates/js/translated/stock.js:898
+#: templates/js/translated/part.js:1685 templates/js/translated/stock.js:1055
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1686 templates/js/translated/stock.js:899
+#: templates/js/translated/part.js:1686 templates/js/translated/stock.js:1056
msgid "Delete test result"
msgstr ""
@@ -7899,6 +8296,10 @@ msgstr "Prezzo Singolo"
msgid "Single Price Difference"
msgstr ""
+#: templates/js/translated/plugin.js:22
+msgid "The Plugin was installed"
+msgstr ""
+
#: templates/js/translated/report.js:67
msgid "items selected"
msgstr "elementi selezionati"
@@ -7965,300 +8366,316 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/stock.js:71
+#: templates/js/translated/stock.js:72
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:89 templates/js/translated/stock.js:168
+#: templates/js/translated/stock.js:90 templates/js/translated/stock.js:172
msgid "Next available serial number"
msgstr ""
-#: templates/js/translated/stock.js:91 templates/js/translated/stock.js:170
+#: templates/js/translated/stock.js:92 templates/js/translated/stock.js:174
msgid "Latest serial number"
msgstr ""
-#: templates/js/translated/stock.js:105
+#: templates/js/translated/stock.js:100
+msgid "Confirm Stock Serialization"
+msgstr ""
+
+#: templates/js/translated/stock.js:109
msgid "Parent stock location"
msgstr "Posizione giacenza principale"
-#: templates/js/translated/stock.js:141
+#: templates/js/translated/stock.js:145
msgid "New Stock Location"
msgstr "Nuova posizione giacenza"
-#: templates/js/translated/stock.js:181
+#: templates/js/translated/stock.js:185
msgid "This part cannot be serialized"
msgstr ""
-#: templates/js/translated/stock.js:220
+#: templates/js/translated/stock.js:224
msgid "Enter initial quantity for this stock item"
msgstr "Inserisci quantità iniziale per questo articolo in giacenza"
-#: templates/js/translated/stock.js:226
+#: templates/js/translated/stock.js:230
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr "Inserire i numeri di serie per la nuova giacenza (o lasciare vuoto)"
-#: templates/js/translated/stock.js:369
+#: templates/js/translated/stock.js:373
msgid "Created new stock item"
msgstr "Crea nuova allocazione magazzino"
-#: templates/js/translated/stock.js:382
+#: templates/js/translated/stock.js:386
msgid "Created multiple stock items"
msgstr "Creato più elementi stock"
-#: templates/js/translated/stock.js:407
+#: templates/js/translated/stock.js:411
msgid "Find Serial Number"
msgstr ""
-#: templates/js/translated/stock.js:411 templates/js/translated/stock.js:412
+#: templates/js/translated/stock.js:415 templates/js/translated/stock.js:416
msgid "Enter serial number"
msgstr ""
-#: templates/js/translated/stock.js:428
+#: templates/js/translated/stock.js:432
msgid "Enter a serial number"
msgstr ""
-#: templates/js/translated/stock.js:448
+#: templates/js/translated/stock.js:452
msgid "No matching serial number"
msgstr ""
-#: templates/js/translated/stock.js:457
+#: templates/js/translated/stock.js:461
msgid "More than one matching result found"
msgstr ""
-#: templates/js/translated/stock.js:502
+#: templates/js/translated/stock.js:506
msgid "Export Stock"
msgstr "Esporta giacenza"
-#: templates/js/translated/stock.js:513
+#: templates/js/translated/stock.js:517
msgid "Include Sublocations"
msgstr "Includi sotto allocazioni"
-#: templates/js/translated/stock.js:514
+#: templates/js/translated/stock.js:518
msgid "Include stock items in sublocations"
msgstr "Includi elementi in giacenza nelle sottoallocazioni"
-#: templates/js/translated/stock.js:556
+#: templates/js/translated/stock.js:627
+msgid "Confirm stock assignment"
+msgstr ""
+
+#: templates/js/translated/stock.js:628
+msgid "Assign Stock to Customer"
+msgstr ""
+
+#: templates/js/translated/stock.js:713
msgid "Transfer Stock"
msgstr "Trasferisci giacenza"
-#: templates/js/translated/stock.js:557
+#: templates/js/translated/stock.js:714
msgid "Move"
msgstr "Sposta"
-#: templates/js/translated/stock.js:563
+#: templates/js/translated/stock.js:720
msgid "Count Stock"
msgstr "Conta giacenza"
-#: templates/js/translated/stock.js:564
+#: templates/js/translated/stock.js:721
msgid "Count"
msgstr "Conta"
-#: templates/js/translated/stock.js:568
+#: templates/js/translated/stock.js:725
msgid "Remove Stock"
msgstr "Rimuovi giacenza"
-#: templates/js/translated/stock.js:569
+#: templates/js/translated/stock.js:726
msgid "Take"
msgstr "Prendi"
-#: templates/js/translated/stock.js:573
+#: templates/js/translated/stock.js:730
msgid "Add Stock"
msgstr "Aggiungi giacenza"
-#: templates/js/translated/stock.js:574 users/models.py:200
+#: templates/js/translated/stock.js:731 users/models.py:202
msgid "Add"
msgstr "Aggiungi"
-#: templates/js/translated/stock.js:578 templates/stock_table.html:56
+#: templates/js/translated/stock.js:735 templates/stock_table.html:57
msgid "Delete Stock"
msgstr "Elimina Stock"
-#: templates/js/translated/stock.js:667
+#: templates/js/translated/stock.js:824
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:667
+#: templates/js/translated/stock.js:824
msgid "Specify stock quantity"
msgstr "Specificare la quantità di magazzino"
-#: templates/js/translated/stock.js:707
+#: templates/js/translated/stock.js:864
msgid "You must select at least one available stock item"
msgstr "Devi selezionare almeno un articolo disponibile"
-#: templates/js/translated/stock.js:865
+#: templates/js/translated/stock.js:1022
msgid "PASS"
msgstr "PASS"
-#: templates/js/translated/stock.js:867
+#: templates/js/translated/stock.js:1024
msgid "FAIL"
msgstr "FAIL"
-#: templates/js/translated/stock.js:872
+#: templates/js/translated/stock.js:1029
msgid "NO RESULT"
msgstr "NESSUN RISULTATO"
-#: templates/js/translated/stock.js:894
+#: templates/js/translated/stock.js:1051
msgid "Add test result"
msgstr "Aggiungi risultato test"
-#: templates/js/translated/stock.js:920
+#: templates/js/translated/stock.js:1077
msgid "No test results found"
msgstr "Nessun risultato di prova trovato"
-#: templates/js/translated/stock.js:977
+#: templates/js/translated/stock.js:1134
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:1084
+#: templates/js/translated/stock.js:1241
msgid "In production"
msgstr "In produzione"
-#: templates/js/translated/stock.js:1088
+#: templates/js/translated/stock.js:1245
msgid "Installed in Stock Item"
msgstr "Installato nell'elemento stock"
-#: templates/js/translated/stock.js:1092
-msgid "Shipped to customer"
-msgstr "Spedito al cliente"
-
-#: templates/js/translated/stock.js:1096
+#: templates/js/translated/stock.js:1253
msgid "Assigned to Sales Order"
msgstr "Assegnato all'ordine di vendita"
-#: templates/js/translated/stock.js:1102
+#: templates/js/translated/stock.js:1259
msgid "No stock location set"
msgstr "Nessuna giacenza impostata"
-#: templates/js/translated/stock.js:1260
+#: templates/js/translated/stock.js:1417
msgid "Stock item is in production"
msgstr "L'articolo di magazzino è in produzione"
-#: templates/js/translated/stock.js:1265
+#: templates/js/translated/stock.js:1422
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1268
+#: templates/js/translated/stock.js:1425
msgid "Stock item assigned to customer"
msgstr "Articolo stock assegnato al cliente"
-#: templates/js/translated/stock.js:1272
+#: templates/js/translated/stock.js:1429
msgid "Stock item has expired"
msgstr "L'articolo stock è scaduto"
-#: templates/js/translated/stock.js:1274
+#: templates/js/translated/stock.js:1431
msgid "Stock item will expire soon"
msgstr "Articolo in giacenza prossimo alla scadenza"
-#: templates/js/translated/stock.js:1278
-msgid "Stock item has been allocated"
-msgstr "L'articolo stock è stato allocato"
+#: templates/js/translated/stock.js:1437
+msgid "Serialized stock item has been allocated"
+msgstr ""
-#: templates/js/translated/stock.js:1282
+#: templates/js/translated/stock.js:1439
+msgid "Stock item has been fully allocated"
+msgstr ""
+
+#: templates/js/translated/stock.js:1441
+msgid "Stock item has been partially allocated"
+msgstr ""
+
+#: templates/js/translated/stock.js:1446
msgid "Stock item has been installed in another item"
msgstr "L'elemento stock è stato installato in un altro articolo"
-#: templates/js/translated/stock.js:1289
+#: templates/js/translated/stock.js:1453
msgid "Stock item has been rejected"
msgstr "L'articolo stock è stato rifiutato"
-#: templates/js/translated/stock.js:1291
+#: templates/js/translated/stock.js:1455
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1293
+#: templates/js/translated/stock.js:1457
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1297
-#: templates/js/translated/table_filters.js:183
+#: templates/js/translated/stock.js:1461
+#: templates/js/translated/table_filters.js:188
msgid "Depleted"
msgstr "Esaurito"
-#: templates/js/translated/stock.js:1347
+#: templates/js/translated/stock.js:1511
msgid "Stocktake"
msgstr "Inventario"
-#: templates/js/translated/stock.js:1420
+#: templates/js/translated/stock.js:1584
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1458
+#: templates/js/translated/stock.js:1622
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1479 templates/js/translated/stock.js:1527
+#: templates/js/translated/stock.js:1643 templates/js/translated/stock.js:1691
msgid "items"
msgstr "elementi"
-#: templates/js/translated/stock.js:1567
+#: templates/js/translated/stock.js:1731
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1594
+#: templates/js/translated/stock.js:1758
msgid "locations"
msgstr "posizione"
-#: templates/js/translated/stock.js:1596
+#: templates/js/translated/stock.js:1760
msgid "Undefined location"
msgstr "Posizione non definita"
-#: templates/js/translated/stock.js:1770
+#: templates/js/translated/stock.js:1945
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:1784
+#: templates/js/translated/stock.js:1959
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:1785
+#: templates/js/translated/stock.js:1960
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:2009
+#: templates/js/translated/stock.js:2184
msgid "Invalid date"
msgstr "Data non valida"
-#: templates/js/translated/stock.js:2031
+#: templates/js/translated/stock.js:2206
msgid "Details"
msgstr ""
-#: templates/js/translated/stock.js:2056
+#: templates/js/translated/stock.js:2231
msgid "Location no longer exists"
msgstr "La posizione non esiste più"
-#: templates/js/translated/stock.js:2075
+#: templates/js/translated/stock.js:2250
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2094
+#: templates/js/translated/stock.js:2269
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2112
+#: templates/js/translated/stock.js:2287
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2135
+#: templates/js/translated/stock.js:2310
msgid "Added"
msgstr "Aggiunto"
-#: templates/js/translated/stock.js:2143
+#: templates/js/translated/stock.js:2318
msgid "Removed"
msgstr "Rimosso"
-#: templates/js/translated/stock.js:2184
+#: templates/js/translated/stock.js:2359
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2185
+#: templates/js/translated/stock.js:2360
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2236
+#: templates/js/translated/stock.js:2411
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2287
+#: templates/js/translated/stock.js:2462
msgid "Uninstall Stock Item"
msgstr ""
@@ -8279,7 +8696,7 @@ msgid "Allow Variant Stock"
msgstr ""
#: templates/js/translated/table_filters.js:110
-#: templates/js/translated/table_filters.js:178
+#: templates/js/translated/table_filters.js:183
msgid "Include sublocations"
msgstr "Includi sottoallocazioni/posizioni"
@@ -8289,54 +8706,54 @@ msgstr "Includi posizioni"
#: templates/js/translated/table_filters.js:121
#: templates/js/translated/table_filters.js:122
-#: templates/js/translated/table_filters.js:358
+#: templates/js/translated/table_filters.js:389
msgid "Include subcategories"
msgstr "Includi sottocategorie"
#: templates/js/translated/table_filters.js:126
-#: templates/js/translated/table_filters.js:393
+#: templates/js/translated/table_filters.js:424
msgid "Subscribed"
msgstr "Sottoscritto"
#: templates/js/translated/table_filters.js:136
-#: templates/js/translated/table_filters.js:213
+#: templates/js/translated/table_filters.js:218
msgid "Is Serialized"
msgstr ""
#: templates/js/translated/table_filters.js:139
-#: templates/js/translated/table_filters.js:220
+#: templates/js/translated/table_filters.js:225
msgid "Serial number GTE"
msgstr ""
#: templates/js/translated/table_filters.js:140
-#: templates/js/translated/table_filters.js:221
+#: templates/js/translated/table_filters.js:226
msgid "Serial number greater than or equal to"
msgstr ""
#: templates/js/translated/table_filters.js:143
-#: templates/js/translated/table_filters.js:224
+#: templates/js/translated/table_filters.js:229
msgid "Serial number LTE"
msgstr ""
#: templates/js/translated/table_filters.js:144
-#: templates/js/translated/table_filters.js:225
+#: templates/js/translated/table_filters.js:230
msgid "Serial number less than or equal to"
msgstr ""
#: templates/js/translated/table_filters.js:147
#: templates/js/translated/table_filters.js:148
-#: templates/js/translated/table_filters.js:216
-#: templates/js/translated/table_filters.js:217
+#: templates/js/translated/table_filters.js:221
+#: templates/js/translated/table_filters.js:222
msgid "Serial number"
msgstr ""
#: templates/js/translated/table_filters.js:152
-#: templates/js/translated/table_filters.js:234
+#: templates/js/translated/table_filters.js:239
msgid "Batch code"
msgstr "Codice Lotto"
#: templates/js/translated/table_filters.js:163
-#: templates/js/translated/table_filters.js:348
+#: templates/js/translated/table_filters.js:379
msgid "Active parts"
msgstr "Elementi attivi"
@@ -8357,101 +8774,111 @@ msgid "Item has been allocated"
msgstr "L'elemento è stato posizionato"
#: templates/js/translated/table_filters.js:179
+msgid "Stock is available for use"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:184
msgid "Include stock in sublocations"
msgstr "Includi elementi in giacenza nelle sottoallocazioni"
-#: templates/js/translated/table_filters.js:184
+#: templates/js/translated/table_filters.js:189
msgid "Show stock items which are depleted"
msgstr ""
-#: templates/js/translated/table_filters.js:189
+#: templates/js/translated/table_filters.js:194
msgid "Show items which are in stock"
msgstr "Mostra gli elementi che sono in giacenza"
-#: templates/js/translated/table_filters.js:193
+#: templates/js/translated/table_filters.js:198
msgid "In Production"
msgstr "In Produzione"
-#: templates/js/translated/table_filters.js:194
+#: templates/js/translated/table_filters.js:199
msgid "Show items which are in production"
msgstr "Mostra gli elementi in produzione"
-#: templates/js/translated/table_filters.js:198
+#: templates/js/translated/table_filters.js:203
msgid "Include Variants"
msgstr "Includi Varianti"
-#: templates/js/translated/table_filters.js:199
+#: templates/js/translated/table_filters.js:204
msgid "Include stock items for variant parts"
msgstr "Includi gli articoli stock per le varianti degli articoli"
-#: templates/js/translated/table_filters.js:203
+#: templates/js/translated/table_filters.js:208
msgid "Installed"
msgstr "Installato"
-#: templates/js/translated/table_filters.js:204
+#: templates/js/translated/table_filters.js:209
msgid "Show stock items which are installed in another item"
msgstr "Mostra gli elementi stock che sono installati in un altro elemento"
-#: templates/js/translated/table_filters.js:209
+#: templates/js/translated/table_filters.js:214
msgid "Show items which have been assigned to a customer"
msgstr "Mostra elementi che sono stati assegnati a un cliente"
-#: templates/js/translated/table_filters.js:229
-#: templates/js/translated/table_filters.js:230
+#: templates/js/translated/table_filters.js:234
+#: templates/js/translated/table_filters.js:235
msgid "Stock status"
msgstr "Stato magazzino"
-#: templates/js/translated/table_filters.js:238
+#: templates/js/translated/table_filters.js:243
msgid "Has purchase price"
msgstr "Ha il prezzo d'acquisto"
-#: templates/js/translated/table_filters.js:239
+#: templates/js/translated/table_filters.js:244
msgid "Show stock items which have a purchase price set"
msgstr "Mostra gli articoli di magazzino che hanno un prezzo di acquisto impostato"
-#: templates/js/translated/table_filters.js:248
+#: templates/js/translated/table_filters.js:253
msgid "Show stock items which have expired"
msgstr "Mostra gli elementi in giacenza scaduti"
-#: templates/js/translated/table_filters.js:254
+#: templates/js/translated/table_filters.js:259
msgid "Show stock which is close to expiring"
msgstr "Mostra giacenza prossima alla scadenza"
-#: templates/js/translated/table_filters.js:285
+#: templates/js/translated/table_filters.js:290
msgid "Build status"
msgstr "Stato Build"
-#: templates/js/translated/table_filters.js:313
-#: templates/js/translated/table_filters.js:330
+#: templates/js/translated/table_filters.js:303
+#: templates/js/translated/table_filters.js:344
+msgid "Assigned to me"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:320
+#: templates/js/translated/table_filters.js:331
+#: templates/js/translated/table_filters.js:352
msgid "Order status"
msgstr "Stato dell'ordine"
-#: templates/js/translated/table_filters.js:318
-#: templates/js/translated/table_filters.js:335
+#: templates/js/translated/table_filters.js:336
+#: templates/js/translated/table_filters.js:357
msgid "Outstanding"
msgstr "In Sospeso"
-#: templates/js/translated/table_filters.js:359
+#: templates/js/translated/table_filters.js:390
msgid "Include parts in subcategories"
msgstr "Includi articoli nelle sottocategorie"
-#: templates/js/translated/table_filters.js:363
+#: templates/js/translated/table_filters.js:394
msgid "Has IPN"
msgstr "Ha IPN"
-#: templates/js/translated/table_filters.js:364
+#: templates/js/translated/table_filters.js:395
msgid "Part has internal part number"
msgstr "L'articolo possiede un part number interno"
-#: templates/js/translated/table_filters.js:369
+#: templates/js/translated/table_filters.js:400
msgid "Show active parts"
msgstr "Visualizza articoli attivi"
-#: templates/js/translated/table_filters.js:377
+#: templates/js/translated/table_filters.js:408
msgid "Stock available"
msgstr "Disponibilità"
-#: templates/js/translated/table_filters.js:405
+#: templates/js/translated/table_filters.js:436
msgid "Purchasable"
msgstr "Acquistabile"
@@ -8508,27 +8935,23 @@ msgstr "Colonne"
msgid "All"
msgstr "Tutti"
-#: templates/navbar.html:40
+#: templates/navbar.html:42
msgid "Buy"
msgstr "Acquista"
-#: templates/navbar.html:52
+#: templates/navbar.html:54
msgid "Sell"
msgstr "Vendi"
-#: templates/navbar.html:86 users/models.py:39
-msgid "Admin"
-msgstr "Admin"
-
-#: templates/navbar.html:88
+#: templates/navbar.html:113
msgid "Logout"
msgstr "Esci"
-#: templates/navbar.html:90
+#: templates/navbar.html:115
msgid "Login"
msgstr "Accedi"
-#: templates/navbar.html:111
+#: templates/navbar.html:136
msgid "About InvenTree"
msgstr "Informazioni Su InvenTree"
@@ -8640,15 +9063,15 @@ msgstr "Sposta giacenza"
msgid "Order selected items"
msgstr "Ordina articolo selezionato"
-#: templates/stock_table.html:53
+#: templates/stock_table.html:54
msgid "Change status"
msgstr "Modifica stato"
-#: templates/stock_table.html:53
+#: templates/stock_table.html:54
msgid "Change stock status"
msgstr "Modifica stato stock"
-#: templates/stock_table.html:56
+#: templates/stock_table.html:57
msgid "Delete selected items"
msgstr "Elimina articoli selezionati"
@@ -8684,35 +9107,35 @@ msgstr "Permessi"
msgid "Important dates"
msgstr "Date Importanti"
-#: users/models.py:187
+#: users/models.py:189
msgid "Permission set"
msgstr "Impostazione autorizzazioni"
-#: users/models.py:195
+#: users/models.py:197
msgid "Group"
msgstr "Gruppo"
-#: users/models.py:198
+#: users/models.py:200
msgid "View"
msgstr "Visualizza"
-#: users/models.py:198
+#: users/models.py:200
msgid "Permission to view items"
msgstr "Autorizzazione a visualizzare gli articoli"
-#: users/models.py:200
+#: users/models.py:202
msgid "Permission to add items"
msgstr "Autorizzazione ad aggiungere elementi"
-#: users/models.py:202
+#: users/models.py:204
msgid "Change"
msgstr "Modificare"
-#: users/models.py:202
+#: users/models.py:204
msgid "Permissions to edit items"
msgstr "Permessi per modificare gli elementi"
-#: users/models.py:204
+#: users/models.py:206
msgid "Permission to delete items"
msgstr "Autorizzazione ad eliminare gli elementi"
diff --git a/InvenTree/locale/ja/LC_MESSAGES/django.po b/InvenTree/locale/ja/LC_MESSAGES/django.po
index dbc37a257c..84bec02c3a 100644
--- a/InvenTree/locale/ja/LC_MESSAGES/django.po
+++ b/InvenTree/locale/ja/LC_MESSAGES/django.po
@@ -1,9 +1,10 @@
+#: templates/js/translated/order.js:1973
msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-12-03 10:37+0000\n"
-"PO-Revision-Date: 2021-12-03 11:26\n"
+"POT-Creation-Date: 2021-12-08 23:43+0000\n"
+"PO-Revision-Date: 2021-12-08 23:47\n"
"Last-Translator: \n"
"Language-Team: Japanese\n"
"Language: ja_JP\n"
@@ -34,8 +35,8 @@ msgid "Enter date"
msgstr "日付を入力する"
#: InvenTree/forms.py:120 build/forms.py:48 build/forms.py:69 build/forms.py:93
-#: order/forms.py:26 order/forms.py:37 order/forms.py:48 order/forms.py:59
-#: order/forms.py:70 part/forms.py:108 templates/account/email_confirm.html:20
+#: order/forms.py:24 order/forms.py:35 order/forms.py:46 order/forms.py:57
+#: part/forms.py:108 templates/account/email_confirm.html:20
#: templates/js/translated/forms.js:595
msgid "Confirm"
msgstr "確認"
@@ -85,8 +86,8 @@ msgstr ""
msgid "Duplicate serial: {n}"
msgstr ""
-#: InvenTree/helpers.py:437 order/models.py:318 order/models.py:440
-#: stock/views.py:1264
+#: InvenTree/helpers.py:437 order/models.py:279 order/models.py:420
+#: stock/views.py:1231
msgid "Invalid quantity provided"
msgstr "数量コードが無効です"
@@ -122,7 +123,7 @@ msgstr ""
msgid "Missing external link"
msgstr ""
-#: InvenTree/models.py:132 stock/models.py:1864
+#: InvenTree/models.py:132 stock/models.py:1852
#: templates/js/translated/attachment.js:117
msgid "Attachment"
msgstr "添付ファイル"
@@ -132,7 +133,7 @@ msgid "Select file to attach"
msgstr "添付ファイルを選択"
#: InvenTree/models.py:139 company/models.py:131 company/models.py:348
-#: company/models.py:564 order/models.py:163 part/models.py:797
+#: company/models.py:564 order/models.py:124 part/models.py:797
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:537
#: templates/js/translated/company.js:826 templates/js/translated/part.js:1258
@@ -140,7 +141,7 @@ msgid "Link"
msgstr ""
#: InvenTree/models.py:140 build/models.py:330 part/models.py:798
-#: stock/models.py:530
+#: stock/models.py:524
msgid "Link to external URL"
msgstr ""
@@ -152,10 +153,10 @@ msgstr "コメント:"
msgid "File comment"
msgstr "ファイルコメント"
-#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1185
-#: common/models.py:1186 part/models.py:2205 part/models.py:2225
+#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1213
+#: common/models.py:1214 part/models.py:2205 part/models.py:2225
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2166
+#: templates/js/translated/stock.js:2341
msgid "User"
msgstr "ユーザー"
@@ -194,10 +195,15 @@ msgstr "無効な選択です"
#: InvenTree/models.py:277 InvenTree/models.py:278 company/models.py:415
#: label/models.py:112 part/models.py:741 part/models.py:2389
-#: report/models.py:181 templates/InvenTree/settings/settings.html:259
+#: plugin/models.py:39 report/models.py:181
+#: templates/InvenTree/settings/mixins/urls.html:11
+#: templates/InvenTree/settings/plugin.html:47
+#: templates/InvenTree/settings/plugin.html:124
+#: templates/InvenTree/settings/plugin_settings.html:23
+#: templates/InvenTree/settings/settings.html:268
#: templates/js/translated/company.js:638 templates/js/translated/part.js:506
#: templates/js/translated/part.js:643 templates/js/translated/part.js:1565
-#: templates/js/translated/stock.js:1959
+#: templates/js/translated/stock.js:2134
msgid "Name"
msgstr "お名前"
@@ -206,22 +212,23 @@ msgstr "お名前"
#: company/models.py:570 company/templates/company/company_base.html:68
#: company/templates/company/manufacturer_part.html:76
#: company/templates/company/supplier_part.html:73 label/models.py:119
-#: order/models.py:161 part/models.py:764 part/templates/part/category.html:70
+#: order/models.py:122 part/models.py:764 part/templates/part/category.html:70
#: part/templates/part/part_base.html:163
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:553 report/models.py:592
#: report/templates/report/inventree_build_order_base.html:118
-#: stock/templates/stock/location.html:89 templates/js/translated/bom.js:215
-#: templates/js/translated/bom.js:428 templates/js/translated/build.js:1621
-#: templates/js/translated/company.js:345
+#: stock/templates/stock/location.html:89
+#: templates/InvenTree/settings/plugin_settings.html:33
+#: templates/js/translated/bom.js:215 templates/js/translated/bom.js:428
+#: templates/js/translated/build.js:1627 templates/js/translated/company.js:345
#: templates/js/translated/company.js:548
-#: templates/js/translated/company.js:837 templates/js/translated/order.js:680
-#: templates/js/translated/order.js:854 templates/js/translated/order.js:1090
+#: templates/js/translated/company.js:837 templates/js/translated/order.js:836
+#: templates/js/translated/order.js:1019 templates/js/translated/order.js:1258
#: templates/js/translated/part.js:565 templates/js/translated/part.js:933
#: templates/js/translated/part.js:1018 templates/js/translated/part.js:1188
#: templates/js/translated/part.js:1584 templates/js/translated/part.js:1653
-#: templates/js/translated/stock.js:1233 templates/js/translated/stock.js:1971
-#: templates/js/translated/stock.js:2016
+#: templates/js/translated/stock.js:1390 templates/js/translated/stock.js:2146
+#: templates/js/translated/stock.js:2191
msgid "Description"
msgstr "説明"
@@ -241,83 +248,83 @@ msgstr "有効な数字でなければなりません"
msgid "Filename"
msgstr ""
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:689
msgid "German"
msgstr "ドイツ語"
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:690
msgid "Greek"
msgstr ""
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:691
msgid "English"
msgstr "英語"
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:692
msgid "Spanish"
msgstr ""
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:693
msgid "Spanish (Mexican)"
msgstr ""
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:694
msgid "French"
msgstr "フランス語"
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:695
msgid "Hebrew"
msgstr ""
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:696
msgid "Italian"
msgstr ""
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:697
msgid "Japanese"
msgstr ""
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:698
msgid "Korean"
msgstr ""
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:699
msgid "Dutch"
msgstr ""
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:700
msgid "Norwegian"
msgstr ""
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:701
msgid "Polish"
msgstr "ポーランド語"
-#: InvenTree/settings.py:683
+#: InvenTree/settings.py:702
msgid "Portugese"
msgstr ""
-#: InvenTree/settings.py:684
+#: InvenTree/settings.py:703
msgid "Russian"
msgstr ""
-#: InvenTree/settings.py:685
+#: InvenTree/settings.py:704
msgid "Swedish"
msgstr ""
-#: InvenTree/settings.py:686
+#: InvenTree/settings.py:705
msgid "Thai"
msgstr ""
-#: InvenTree/settings.py:687
+#: InvenTree/settings.py:706
msgid "Turkish"
msgstr "トルコ語"
-#: InvenTree/settings.py:688
+#: InvenTree/settings.py:707
msgid "Vietnamese"
msgstr ""
-#: InvenTree/settings.py:689
+#: InvenTree/settings.py:708
msgid "Chinese"
msgstr ""
@@ -334,7 +341,7 @@ msgid "InvenTree system health checks failed"
msgstr "InvenTree システムのヘルスチェックに失敗しました"
#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142
-#: InvenTree/status_codes.py:311
+#: InvenTree/status_codes.py:311 templates/js/translated/table_filters.js:313
msgid "Pending"
msgstr "処理待ち"
@@ -343,6 +350,8 @@ msgid "Placed"
msgstr "設置済"
#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:314
+#: order/templates/order/order_base.html:128
+#: order/templates/order/sales_order_base.html:132
msgid "Complete"
msgstr "完了"
@@ -361,8 +370,8 @@ msgstr "紛失"
msgid "Returned"
msgstr "返品済"
-#: InvenTree/status_codes.py:143
-#: order/templates/order/sales_order_base.html:148
+#: InvenTree/status_codes.py:143 order/models.py:939
+#: templates/js/translated/order.js:1980 templates/js/translated/order.js:2255
msgid "Shipped"
msgstr "発送済み"
@@ -442,7 +451,7 @@ msgstr ""
msgid "Split child item"
msgstr ""
-#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:208
+#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:213
msgid "Sent to customer"
msgstr ""
@@ -522,55 +531,55 @@ msgstr ""
msgid "Password fields must match"
msgstr ""
-#: InvenTree/views.py:883 templates/navbar.html:101
+#: InvenTree/views.py:883 templates/navbar.html:126
msgid "System Information"
msgstr ""
-#: barcodes/api.py:53 barcodes/api.py:150
+#: barcodes/api.py:54 barcodes/api.py:151
msgid "Must provide barcode_data parameter"
msgstr ""
-#: barcodes/api.py:126
+#: barcodes/api.py:127
msgid "No match found for barcode data"
msgstr ""
-#: barcodes/api.py:128
+#: barcodes/api.py:129
msgid "Match found for barcode data"
msgstr ""
-#: barcodes/api.py:153
+#: barcodes/api.py:154
msgid "Must provide stockitem parameter"
msgstr ""
-#: barcodes/api.py:160
+#: barcodes/api.py:161
msgid "No matching stock item found"
msgstr ""
-#: barcodes/api.py:190
-msgid "Barcode already matches StockItem object"
+#: barcodes/api.py:191
+msgid "Barcode already matches Stock Item"
msgstr ""
-#: barcodes/api.py:194
-msgid "Barcode already matches StockLocation object"
+#: barcodes/api.py:195
+msgid "Barcode already matches Stock Location"
msgstr ""
-#: barcodes/api.py:198
-msgid "Barcode already matches Part object"
+#: barcodes/api.py:199
+msgid "Barcode already matches Part"
msgstr ""
-#: barcodes/api.py:204 barcodes/api.py:216
-msgid "Barcode hash already matches StockItem object"
+#: barcodes/api.py:205 barcodes/api.py:217
+msgid "Barcode hash already matches Stock Item"
msgstr ""
-#: barcodes/api.py:222
-msgid "Barcode associated with StockItem"
+#: barcodes/api.py:223
+msgid "Barcode associated with Stock Item"
msgstr ""
#: build/forms.py:36 build/models.py:1283
#: build/templates/build/build_base.html:132
-#: build/templates/build/detail.html:35 common/models.py:1225
+#: build/templates/build/detail.html:35 common/models.py:1253
#: company/forms.py:42 company/templates/company/supplier_part.html:251
-#: order/forms.py:102 order/models.py:729 order/models.py:991
+#: order/models.py:794 order/models.py:1205 order/serializers.py:810
#: order/templates/order/order_wizard/match_parts.html:30
#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:223
#: part/forms.py:239 part/forms.py:255 part/models.py:2576
@@ -582,20 +591,23 @@ msgstr ""
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:81
#: report/templates/report/inventree_test_report_base.html:139
-#: stock/forms.py:156 stock/serializers.py:291
+#: stock/forms.py:142 stock/serializers.py:293
#: stock/templates/stock/item_base.html:174
+#: stock/templates/stock/item_base.html:255
+#: stock/templates/stock/item_base.html:263
#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443
-#: templates/js/translated/build.js:235 templates/js/translated/build.js:435
-#: templates/js/translated/build.js:629 templates/js/translated/build.js:639
-#: templates/js/translated/build.js:1015 templates/js/translated/build.js:1362
+#: templates/js/translated/build.js:240 templates/js/translated/build.js:440
+#: templates/js/translated/build.js:634 templates/js/translated/build.js:644
+#: templates/js/translated/build.js:1020 templates/js/translated/build.js:1367
#: templates/js/translated/model_renderers.js:99
-#: templates/js/translated/order.js:891 templates/js/translated/order.js:1204
-#: templates/js/translated/order.js:1282 templates/js/translated/order.js:1289
-#: templates/js/translated/order.js:1378 templates/js/translated/order.js:1478
-#: templates/js/translated/part.js:843 templates/js/translated/part.js:1796
-#: templates/js/translated/part.js:1919 templates/js/translated/part.js:1997
-#: templates/js/translated/stock.js:378 templates/js/translated/stock.js:2151
-#: templates/js/translated/stock.js:2253
+#: templates/js/translated/order.js:101 templates/js/translated/order.js:1056
+#: templates/js/translated/order.js:1578 templates/js/translated/order.js:1859
+#: templates/js/translated/order.js:1947 templates/js/translated/order.js:2036
+#: templates/js/translated/order.js:2150 templates/js/translated/part.js:843
+#: templates/js/translated/part.js:1796 templates/js/translated/part.js:1919
+#: templates/js/translated/part.js:1997 templates/js/translated/stock.js:382
+#: templates/js/translated/stock.js:579 templates/js/translated/stock.js:2326
+#: templates/js/translated/stock.js:2428
msgid "Quantity"
msgstr ""
@@ -603,9 +615,9 @@ msgstr ""
msgid "Enter quantity for build output"
msgstr ""
-#: build/forms.py:41 order/forms.py:96 stock/forms.py:95
-#: stock/serializers.py:312 templates/js/translated/stock.js:225
-#: templates/js/translated/stock.js:379
+#: build/forms.py:41 order/serializers.py:814 stock/forms.py:81
+#: stock/serializers.py:314 templates/js/translated/stock.js:229
+#: templates/js/translated/stock.js:383
msgid "Serial Numbers"
msgstr ""
@@ -640,17 +652,17 @@ msgstr ""
#: build/models.py:137 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:397
+#: templates/js/translated/build.js:402
msgid "Build Order"
msgstr ""
#: build/models.py:138 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
-#: order/templates/order/sales_order_detail.html:42
-#: order/templates/order/so_sidebar.html:7
+#: order/templates/order/sales_order_detail.html:92
+#: order/templates/order/so_sidebar.html:13
#: part/templates/part/part_sidebar.html:20 templates/InvenTree/index.html:221
#: templates/InvenTree/search.html:145
-#: templates/InvenTree/settings/sidebar.html:42 users/models.py:44
+#: templates/InvenTree/settings/sidebar.html:43 users/models.py:44
msgid "Build Orders"
msgstr ""
@@ -658,13 +670,13 @@ msgstr ""
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:199 order/models.py:249 order/models.py:556
-#: order/models.py:736 part/models.py:2585
+#: build/models.py:199 order/models.py:210 order/models.py:536
+#: order/models.py:801 part/models.py:2585
#: part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1119
-#: templates/js/translated/order.js:885 templates/js/translated/order.js:1472
+#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1124
+#: templates/js/translated/order.js:1050 templates/js/translated/order.js:2144
msgid "Reference"
msgstr ""
@@ -683,7 +695,7 @@ msgstr ""
#: build/models.py:225 build/templates/build/build_base.html:77
#: build/templates/build/detail.html:30 company/models.py:705
-#: order/models.py:789 order/models.py:860
+#: order/models.py:854 order/models.py:928
#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357
#: part/models.py:2151 part/models.py:2167 part/models.py:2186
#: part/models.py:2203 part/models.py:2305 part/models.py:2427
@@ -698,14 +710,16 @@ msgstr ""
#: templates/email/build_order_required_stock.html:17
#: templates/email/low_stock_notification.html:16
#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:214
-#: templates/js/translated/bom.js:393 templates/js/translated/build.js:620
-#: templates/js/translated/build.js:988 templates/js/translated/build.js:1359
-#: templates/js/translated/build.js:1626 templates/js/translated/company.js:489
-#: templates/js/translated/company.js:746 templates/js/translated/order.js:426
-#: templates/js/translated/order.js:839 templates/js/translated/order.js:1456
-#: templates/js/translated/part.js:918 templates/js/translated/part.js:999
-#: templates/js/translated/part.js:1166 templates/js/translated/stock.js:590
-#: templates/js/translated/stock.js:1190 templates/js/translated/stock.js:2241
+#: templates/js/translated/bom.js:393 templates/js/translated/build.js:625
+#: templates/js/translated/build.js:993 templates/js/translated/build.js:1364
+#: templates/js/translated/build.js:1632 templates/js/translated/company.js:489
+#: templates/js/translated/company.js:746 templates/js/translated/order.js:84
+#: templates/js/translated/order.js:586 templates/js/translated/order.js:1004
+#: templates/js/translated/order.js:1576 templates/js/translated/order.js:1933
+#: templates/js/translated/order.js:2128 templates/js/translated/part.js:918
+#: templates/js/translated/part.js:999 templates/js/translated/part.js:1166
+#: templates/js/translated/stock.js:553 templates/js/translated/stock.js:747
+#: templates/js/translated/stock.js:1347 templates/js/translated/stock.js:2416
msgid "Part"
msgstr "パーツ"
@@ -721,7 +735,8 @@ msgstr ""
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:247 templates/js/translated/build.js:1347
+#: build/models.py:247 templates/js/translated/build.js:1352
+#: templates/js/translated/order.js:1564
msgid "Source Location"
msgstr ""
@@ -761,7 +776,7 @@ msgstr ""
msgid "Build status code"
msgstr ""
-#: build/models.py:285 stock/models.py:534
+#: build/models.py:285 stock/models.py:528
msgid "Batch Code"
msgstr ""
@@ -769,12 +784,12 @@ msgstr ""
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:292 order/models.py:165 part/models.py:936
-#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1103
+#: build/models.py:292 order/models.py:126 part/models.py:936
+#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1271
msgid "Creation Date"
msgstr ""
-#: build/models.py:296 order/models.py:578
+#: build/models.py:296 order/models.py:558
msgid "Target completion date"
msgstr ""
@@ -782,8 +797,8 @@ msgstr ""
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/models.py:300 order/models.py:291
-#: templates/js/translated/build.js:1697
+#: build/models.py:300 order/models.py:252
+#: templates/js/translated/build.js:1703
msgid "Completion Date"
msgstr ""
@@ -791,7 +806,7 @@ msgstr ""
msgid "completed by"
msgstr ""
-#: build/models.py:314 templates/js/translated/build.js:1668
+#: build/models.py:314 templates/js/translated/build.js:1674
msgid "Issued by"
msgstr ""
@@ -800,11 +815,11 @@ msgid "User who issued this build order"
msgstr ""
#: build/models.py:323 build/templates/build/build_base.html:185
-#: build/templates/build/detail.html:116 order/models.py:179
-#: order/templates/order/order_base.html:158
-#: order/templates/order/sales_order_base.html:162 part/models.py:940
+#: build/templates/build/detail.html:116 order/models.py:140
+#: order/templates/order/order_base.html:170
+#: order/templates/order/sales_order_base.html:182 part/models.py:940
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:1680 templates/js/translated/order.js:699
+#: templates/js/translated/build.js:1686 templates/js/translated/order.js:864
msgid "Responsible"
msgstr ""
@@ -815,7 +830,7 @@ msgstr ""
#: build/models.py:329 build/templates/build/detail.html:102
#: company/templates/company/manufacturer_part.html:102
#: company/templates/company/supplier_part.html:126
-#: part/templates/part/part_base.html:354 stock/models.py:528
+#: part/templates/part/part_base.html:354 stock/models.py:522
#: stock/templates/stock/item_base.html:374
msgid "External Link"
msgstr ""
@@ -823,18 +838,19 @@ msgstr ""
#: build/models.py:334 build/serializers.py:201
#: build/templates/build/sidebar.html:21 company/models.py:142
#: company/models.py:577 company/templates/company/sidebar.html:25
-#: order/models.py:183 order/models.py:738
+#: order/models.py:144 order/models.py:803 order/models.py:1049
#: order/templates/order/po_sidebar.html:11
-#: order/templates/order/so_sidebar.html:11 part/models.py:925
+#: order/templates/order/so_sidebar.html:17 part/models.py:925
#: part/templates/part/detail.html:116 part/templates/part/part_sidebar.html:50
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/forms.py:154 stock/forms.py:204 stock/forms.py:238 stock/models.py:600
-#: stock/models.py:1764 stock/models.py:1870 stock/serializers.py:330
-#: stock/serializers.py:588 stock/templates/stock/stock_sidebar.html:21
+#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:594
+#: stock/models.py:1752 stock/models.py:1858 stock/serializers.py:332
+#: stock/serializers.py:624 stock/serializers.py:711
+#: stock/templates/stock/stock_sidebar.html:21
#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599
-#: templates/js/translated/company.js:842 templates/js/translated/order.js:984
-#: templates/js/translated/order.js:1582 templates/js/translated/stock.js:973
-#: templates/js/translated/stock.js:1452
+#: templates/js/translated/company.js:842 templates/js/translated/order.js:1149
+#: templates/js/translated/order.js:1445 templates/js/translated/order.js:2280
+#: templates/js/translated/stock.js:1130 templates/js/translated/stock.js:1616
msgid "Notes"
msgstr ""
@@ -867,7 +883,7 @@ msgstr ""
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1133 order/models.py:964
+#: build/models.py:1133 order/models.py:1165
msgid "Allocation quantity must be greater than zero"
msgstr ""
@@ -880,8 +896,8 @@ msgid "Selected stock item not found in BOM"
msgstr ""
#: build/models.py:1253 stock/templates/stock/item_base.html:346
-#: templates/InvenTree/search.html:143 templates/js/translated/build.js:1599
-#: templates/navbar.html:33
+#: templates/InvenTree/search.html:143 templates/js/translated/build.js:1605
+#: templates/navbar.html:35
msgid "Build"
msgstr ""
@@ -889,14 +905,17 @@ msgstr ""
msgid "Build to allocate parts"
msgstr "パーツを割り当てるためにビルドする"
-#: build/models.py:1270 build/serializers.py:328
+#: build/models.py:1270 build/serializers.py:328 order/serializers.py:690
+#: order/serializers.py:708 stock/serializers.py:562
#: stock/templates/stock/item_base.html:8
#: stock/templates/stock/item_base.html:16
#: stock/templates/stock/item_base.html:368
-#: templates/js/translated/build.js:408 templates/js/translated/build.js:413
-#: templates/js/translated/build.js:1361 templates/js/translated/build.js:1742
-#: templates/js/translated/order.js:1177 templates/js/translated/order.js:1182
-#: templates/js/translated/stock.js:2102
+#: templates/js/translated/build.js:413 templates/js/translated/build.js:418
+#: templates/js/translated/build.js:1366 templates/js/translated/build.js:1748
+#: templates/js/translated/order.js:85 templates/js/translated/order.js:1577
+#: templates/js/translated/order.js:1832 templates/js/translated/order.js:1837
+#: templates/js/translated/order.js:1940 templates/js/translated/order.js:2030
+#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:2277
msgid "Stock Item"
msgstr ""
@@ -936,16 +955,17 @@ msgstr ""
msgid "This build output is not fully allocated"
msgstr ""
-#: build/serializers.py:190 order/serializers.py:228 order/serializers.py:296
-#: stock/forms.py:236 stock/serializers.py:323 stock/serializers.py:690
+#: build/serializers.py:190 order/serializers.py:226 order/serializers.py:294
+#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:813
#: stock/templates/stock/item_base.html:314
#: templates/js/translated/barcode.js:384
-#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:420
-#: templates/js/translated/build.js:1027 templates/js/translated/order.js:348
-#: templates/js/translated/order.js:1189 templates/js/translated/order.js:1297
-#: templates/js/translated/order.js:1303 templates/js/translated/part.js:177
-#: templates/js/translated/stock.js:592 templates/js/translated/stock.js:1333
-#: templates/js/translated/stock.js:2043
+#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:425
+#: templates/js/translated/build.js:1032 templates/js/translated/order.js:508
+#: templates/js/translated/order.js:1844 templates/js/translated/order.js:1955
+#: templates/js/translated/order.js:1963 templates/js/translated/order.js:2044
+#: templates/js/translated/part.js:177 templates/js/translated/stock.js:555
+#: templates/js/translated/stock.js:749 templates/js/translated/stock.js:1497
+#: templates/js/translated/stock.js:2218
msgid "Location"
msgstr ""
@@ -954,12 +974,12 @@ msgid "Location for completed build outputs"
msgstr ""
#: build/serializers.py:197 build/templates/build/build_base.html:137
-#: build/templates/build/detail.html:63 order/models.py:572
-#: order/serializers.py:249 stock/templates/stock/item_base.html:180
-#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1655
-#: templates/js/translated/order.js:431 templates/js/translated/order.js:1095
-#: templates/js/translated/stock.js:1308 templates/js/translated/stock.js:2120
-#: templates/js/translated/stock.js:2269
+#: build/templates/build/detail.html:63 order/models.py:552
+#: order/serializers.py:247 stock/templates/stock/item_base.html:180
+#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1661
+#: templates/js/translated/order.js:591 templates/js/translated/order.js:840
+#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1472
+#: templates/js/translated/stock.js:2295 templates/js/translated/stock.js:2444
msgid "Status"
msgstr ""
@@ -984,16 +1004,16 @@ msgstr ""
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:334
+#: build/serializers.py:334 stock/serializers.py:569
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:348 order/models.py:316 order/serializers.py:242
-#: stock/models.py:371 stock/models.py:1093 stock/serializers.py:303
+#: build/serializers.py:348 order/models.py:277 order/serializers.py:240
+#: stock/models.py:365 stock/models.py:1081 stock/serializers.py:305
msgid "Quantity must be greater than zero"
msgstr ""
-#: build/serializers.py:390
+#: build/serializers.py:390 order/serializers.py:741
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
@@ -1006,7 +1026,7 @@ msgstr ""
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:431
+#: build/serializers.py:431 order/serializers.py:984
msgid "Allocation items must be provided"
msgstr ""
@@ -1079,11 +1099,11 @@ msgstr ""
#: build/templates/build/build_base.html:146
#: build/templates/build/detail.html:132
-#: order/templates/order/order_base.html:144
-#: order/templates/order/sales_order_base.html:141
+#: order/templates/order/order_base.html:156
+#: order/templates/order/sales_order_base.html:163
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:1692 templates/js/translated/order.js:689
-#: templates/js/translated/order.js:1108
+#: templates/js/translated/build.js:1698 templates/js/translated/order.js:854
+#: templates/js/translated/order.js:1276
msgid "Target Date"
msgstr ""
@@ -1096,28 +1116,28 @@ msgstr ""
#: build/templates/build/build_base.html:196
#: order/templates/order/order_base.html:98
#: order/templates/order/sales_order_base.html:93
-#: templates/js/translated/table_filters.js:294
-#: templates/js/translated/table_filters.js:322
-#: templates/js/translated/table_filters.js:339
+#: templates/js/translated/table_filters.js:299
+#: templates/js/translated/table_filters.js:340
+#: templates/js/translated/table_filters.js:361
msgid "Overdue"
msgstr ""
#: build/templates/build/build_base.html:158
#: build/templates/build/detail.html:68 build/templates/build/detail.html:143
-#: templates/js/translated/build.js:1641
-#: templates/js/translated/table_filters.js:304
+#: order/templates/order/sales_order_base.html:170
+#: templates/js/translated/build.js:1647
+#: templates/js/translated/table_filters.js:370
msgid "Completed"
msgstr ""
#: build/templates/build/build_base.html:171
-#: build/templates/build/detail.html:95 order/models.py:857
-#: order/templates/order/sales_order_base.html:9
+#: build/templates/build/detail.html:95 order/models.py:925
+#: order/models.py:1021 order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
-#: order/templates/order/sales_order_ship.html:25
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:308
-#: templates/js/translated/order.js:1050
+#: templates/js/translated/order.js:1218
msgid "Sales Order"
msgstr ""
@@ -1191,8 +1211,8 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:50 order/models.py:811 stock/forms.py:150
-#: templates/js/translated/order.js:432 templates/js/translated/order.js:973
+#: build/templates/build/detail.html:50 order/models.py:876 stock/forms.py:136
+#: templates/js/translated/order.js:592 templates/js/translated/order.js:1138
msgid "Destination"
msgstr ""
@@ -1200,22 +1220,22 @@ msgstr ""
msgid "Destination location not specified"
msgstr ""
-#: build/templates/build/detail.html:74 templates/js/translated/build.js:647
+#: build/templates/build/detail.html:74 templates/js/translated/build.js:652
msgid "Allocated Parts"
msgstr ""
#: build/templates/build/detail.html:81
#: stock/templates/stock/item_base.html:332
-#: templates/js/translated/stock.js:1322 templates/js/translated/stock.js:2276
+#: templates/js/translated/stock.js:1486 templates/js/translated/stock.js:2451
#: templates/js/translated/table_filters.js:151
-#: templates/js/translated/table_filters.js:233
+#: templates/js/translated/table_filters.js:238
msgid "Batch"
msgstr ""
#: build/templates/build/detail.html:127
-#: order/templates/order/order_base.html:131
-#: order/templates/order/sales_order_base.html:135
-#: templates/js/translated/build.js:1663
+#: order/templates/order/order_base.html:143
+#: order/templates/order/sales_order_base.html:157
+#: templates/js/translated/build.js:1669
msgid "Created"
msgstr ""
@@ -1235,7 +1255,7 @@ msgstr ""
msgid "Allocate Stock to Build"
msgstr ""
-#: build/templates/build/detail.html:177 templates/js/translated/build.js:1202
+#: build/templates/build/detail.html:177 templates/js/translated/build.js:1207
msgid "Unallocate stock"
msgstr ""
@@ -1257,7 +1277,7 @@ msgstr "注文必須パーツ"
#: build/templates/build/detail.html:185
#: company/templates/company/detail.html:38
-#: company/templates/company/detail.html:85 order/views.py:509
+#: company/templates/company/detail.html:85 order/views.py:463
#: part/templates/part/category.html:173
msgid "Order Parts"
msgstr "パーツの注文"
@@ -1309,8 +1329,8 @@ msgstr ""
#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:60
-#: order/templates/order/sales_order_detail.html:52
-#: order/templates/order/so_sidebar.html:9 part/templates/part/detail.html:193
+#: order/templates/order/sales_order_detail.html:107
+#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:193
#: part/templates/part/part_sidebar.html:48 stock/templates/stock/item.html:95
#: stock/templates/stock/stock_sidebar.html:19
msgid "Attachments"
@@ -1325,8 +1345,8 @@ msgstr ""
#: company/templates/company/detail.html:215
#: order/templates/order/purchase_order_detail.html:80
#: order/templates/order/purchase_order_detail.html:108
-#: order/templates/order/sales_order_detail.html:72
-#: order/templates/order/sales_order_detail.html:99
+#: order/templates/order/sales_order_detail.html:127
+#: order/templates/order/sales_order_detail.html:186
#: part/templates/part/detail.html:120 stock/templates/stock/item.html:115
#: stock/templates/stock/item.html:205
msgid "Edit Notes"
@@ -1384,7 +1404,7 @@ msgstr ""
msgid "Maximum output quantity is "
msgstr ""
-#: build/views.py:122 stock/serializers.py:361 stock/views.py:1290
+#: build/views.py:122 stock/serializers.py:363 stock/views.py:1257
msgid "Serial numbers already exist"
msgstr ""
@@ -1400,7 +1420,7 @@ msgstr ""
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:219 stock/views.py:385
+#: build/views.py:219 stock/views.py:352
msgid "Check the confirmation box"
msgstr ""
@@ -1469,7 +1489,7 @@ msgstr ""
msgid "Select {name} file to upload"
msgstr ""
-#: common/models.py:340 common/models.py:970 common/models.py:1178
+#: common/models.py:340 common/models.py:998 common/models.py:1206
msgid "Settings key (must be unique - case insensitive"
msgstr ""
@@ -1557,7 +1577,7 @@ msgstr ""
msgid "Allow download of remote images and files from external URL"
msgstr ""
-#: common/models.py:649 templates/InvenTree/settings/sidebar.html:30
+#: common/models.py:649 templates/InvenTree/settings/sidebar.html:31
msgid "Barcode Support"
msgstr ""
@@ -1623,7 +1643,7 @@ msgstr ""
#: common/models.py:703 part/models.py:2429 report/models.py:187
#: templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:373
+#: templates/js/translated/table_filters.js:404
msgid "Template"
msgstr "テンプレート"
@@ -1633,7 +1653,7 @@ msgstr "パーツはデフォルトのテンプレートです"
#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:956
#: templates/js/translated/table_filters.js:168
-#: templates/js/translated/table_filters.js:385
+#: templates/js/translated/table_filters.js:416
msgid "Assembly"
msgstr "アセンブリ"
@@ -1642,7 +1662,7 @@ msgid "Parts can be assembled from other components by default"
msgstr "パーツはデフォルトで他のコンポーネントから組み立てることができます"
#: common/models.py:717 part/models.py:894
-#: templates/js/translated/table_filters.js:389
+#: templates/js/translated/table_filters.js:420
msgid "Component"
msgstr "コンポーネント"
@@ -1659,7 +1679,7 @@ msgid "Parts are purchaseable by default"
msgstr "パーツはデフォルトで購入可能です"
#: common/models.py:731 part/models.py:910
-#: templates/js/translated/table_filters.js:397
+#: templates/js/translated/table_filters.js:428
msgid "Salable"
msgstr ""
@@ -1670,7 +1690,7 @@ msgstr "パーツはデフォルトで販売可能です"
#: common/models.py:738 part/models.py:900
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:100
-#: templates/js/translated/table_filters.js:401
+#: templates/js/translated/table_filters.js:432
msgid "Trackable"
msgstr "追跡可能"
@@ -1932,230 +1952,262 @@ msgstr ""
msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:1001
+#: common/models.py:961
+msgid "Enable URL integration"
+msgstr ""
+
+#: common/models.py:962
+msgid "Enable plugins to add URL routes"
+msgstr ""
+
+#: common/models.py:968
+msgid "Enable navigation integration"
+msgstr ""
+
+#: common/models.py:969
+msgid "Enable plugins to integrate into navigation"
+msgstr ""
+
+#: common/models.py:975
+msgid "Enable global setting integration"
+msgstr ""
+
+#: common/models.py:976
+msgid "Enable plugins to integrate into inventree global settings"
+msgstr ""
+
+#: common/models.py:982
+msgid "Enable app integration"
+msgstr ""
+
+#: common/models.py:983
+msgid "Enable plugins to add apps"
+msgstr ""
+
+#: common/models.py:1029
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:1002
+#: common/models.py:1030
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:1007
+#: common/models.py:1035
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:1008
+#: common/models.py:1036
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:1013
+#: common/models.py:1041
msgid "Show latest parts"
msgstr ""
-#: common/models.py:1014
+#: common/models.py:1042
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:1019
+#: common/models.py:1047
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:1020
+#: common/models.py:1048
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:1026
+#: common/models.py:1054
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1027
+#: common/models.py:1055
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1032
+#: common/models.py:1060
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:1033
+#: common/models.py:1061
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:1038
+#: common/models.py:1066
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:1039
+#: common/models.py:1067
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:1044
+#: common/models.py:1072
msgid "Show low stock"
msgstr ""
-#: common/models.py:1045
+#: common/models.py:1073
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:1050
+#: common/models.py:1078
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:1051
+#: common/models.py:1079
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:1056
+#: common/models.py:1084
msgid "Show needed stock"
msgstr ""
-#: common/models.py:1057
+#: common/models.py:1085
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1062
+#: common/models.py:1090
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1063
+#: common/models.py:1091
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1068
+#: common/models.py:1096
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1069
+#: common/models.py:1097
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1074
+#: common/models.py:1102
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1075
+#: common/models.py:1103
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:1080
+#: common/models.py:1108
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:1081
+#: common/models.py:1109
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:1086
+#: common/models.py:1114
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:1087
+#: common/models.py:1115
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:1092
+#: common/models.py:1120
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:1093
+#: common/models.py:1121
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:1098
+#: common/models.py:1126
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:1099
+#: common/models.py:1127
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:1104
+#: common/models.py:1132
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:1105
+#: common/models.py:1133
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:1111
+#: common/models.py:1139
msgid "Inline label display"
msgstr ""
-#: common/models.py:1112
+#: common/models.py:1140
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1118
+#: common/models.py:1146
msgid "Inline report display"
msgstr ""
-#: common/models.py:1119
+#: common/models.py:1147
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1125
+#: common/models.py:1153
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:1126
+#: common/models.py:1154
msgid "Number of results to show in search preview window"
msgstr ""
-#: common/models.py:1132
+#: common/models.py:1160
msgid "Search Show Stock"
msgstr ""
-#: common/models.py:1133
+#: common/models.py:1161
msgid "Display stock levels in search preview window"
msgstr ""
-#: common/models.py:1139
+#: common/models.py:1167
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:1140
+#: common/models.py:1168
msgid "Hide inactive parts in search preview window"
msgstr ""
-#: common/models.py:1146
+#: common/models.py:1174
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:1147
+#: common/models.py:1175
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:1153
+#: common/models.py:1181
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1154
+#: common/models.py:1182
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1160
+#: common/models.py:1188
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:1161
+#: common/models.py:1189
msgid "InvenTree navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:1226 company/forms.py:43
+#: common/models.py:1254 company/forms.py:43
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1233 company/serializers.py:264
+#: common/models.py:1261 company/serializers.py:264
#: company/templates/company/supplier_part.html:256
#: templates/js/translated/part.js:852 templates/js/translated/part.js:1801
msgid "Price"
msgstr ""
-#: common/models.py:1234
+#: common/models.py:1262
msgid "Unit price at specified quantity"
msgstr ""
#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49
-#: order/templates/order/purchase_order_detail.html:24 order/views.py:289
+#: order/templates/order/purchase_order_detail.html:24 order/views.py:243
#: part/templates/part/bom_upload/upload_file.html:52
#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:212
#: part/views.py:858
@@ -2163,7 +2215,7 @@ msgid "Upload File"
msgstr ""
#: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52
-#: order/views.py:290 part/templates/part/bom_upload/match_fields.html:52
+#: order/views.py:244 part/templates/part/bom_upload/match_fields.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:45
#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:213
#: part/views.py:859
@@ -2195,6 +2247,7 @@ msgid "Previous Step"
msgstr ""
#: company/forms.py:24 part/forms.py:46
+#: templates/InvenTree/settings/mixins/urls.html:12
msgid "URL"
msgstr ""
@@ -2211,6 +2264,7 @@ msgid "Description of the company"
msgstr ""
#: company/models.py:112 company/templates/company/company_base.html:97
+#: templates/InvenTree/settings/plugin_settings.html:55
#: templates/js/translated/company.js:349
msgid "Website"
msgstr ""
@@ -2285,7 +2339,7 @@ msgid "Does this company manufacture parts?"
msgstr ""
#: company/models.py:152 company/serializers.py:270
-#: company/templates/company/company_base.html:103 stock/serializers.py:177
+#: company/templates/company/company_base.html:103 stock/serializers.py:179
msgid "Currency"
msgstr ""
@@ -2293,12 +2347,12 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:320 company/models.py:535 stock/models.py:474
+#: company/models.py:320 company/models.py:535 stock/models.py:468
#: stock/templates/stock/item_base.html:135
msgid "Base Part"
msgstr ""
-#: company/models.py:324 company/models.py:539 order/views.py:912
+#: company/models.py:324 company/models.py:539
msgid "Select part"
msgstr ""
@@ -2319,7 +2373,7 @@ msgstr ""
#: company/models.py:342 company/templates/company/manufacturer_part.html:96
#: company/templates/company/supplier_part.html:105
#: templates/js/translated/company.js:530
-#: templates/js/translated/company.js:815 templates/js/translated/order.js:873
+#: templates/js/translated/company.js:815 templates/js/translated/order.js:1038
#: templates/js/translated/part.js:243 templates/js/translated/part.js:832
msgid "MPN"
msgstr ""
@@ -2349,8 +2403,8 @@ msgstr ""
#: company/models.py:422
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:1857 templates/js/translated/company.js:644
-#: templates/js/translated/part.js:652 templates/js/translated/stock.js:960
+#: stock/models.py:1845 templates/js/translated/company.js:644
+#: templates/js/translated/part.js:652 templates/js/translated/stock.js:1117
msgid "Value"
msgstr ""
@@ -2360,7 +2414,7 @@ msgstr ""
#: company/models.py:429 part/models.py:882 part/models.py:2397
#: part/templates/part/part_base.html:288
-#: templates/InvenTree/settings/settings.html:264
+#: templates/InvenTree/settings/settings.html:273
#: templates/js/translated/company.js:650 templates/js/translated/part.js:658
msgid "Units"
msgstr ""
@@ -2374,12 +2428,12 @@ msgid "Linked manufacturer part must reference the same base part"
msgstr ""
#: company/models.py:545 company/templates/company/company_base.html:78
-#: company/templates/company/supplier_part.html:87 order/models.py:263
+#: company/templates/company/supplier_part.html:87 order/models.py:224
#: order/templates/order/order_base.html:112
#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219
#: part/bom.py:247 stock/templates/stock/item_base.html:398
#: templates/js/translated/company.js:337
-#: templates/js/translated/company.js:771 templates/js/translated/order.js:667
+#: templates/js/translated/company.js:771 templates/js/translated/order.js:823
#: templates/js/translated/part.js:213 templates/js/translated/part.js:800
msgid "Supplier"
msgstr ""
@@ -2389,7 +2443,7 @@ msgid "Select supplier"
msgstr ""
#: company/models.py:551 company/templates/company/supplier_part.html:91
-#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:860
+#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:1025
#: templates/js/translated/part.js:224 templates/js/translated/part.js:818
msgid "SKU"
msgstr ""
@@ -2425,8 +2479,8 @@ msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:582 company/templates/company/supplier_part.html:112
-#: stock/models.py:497 stock/templates/stock/item_base.html:339
-#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1448
+#: stock/models.py:491 stock/templates/stock/item_base.html:339
+#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1612
msgid "Packaging"
msgstr ""
@@ -2457,7 +2511,7 @@ msgid "Company"
msgstr ""
#: company/templates/company/company_base.html:22
-#: templates/js/translated/order.js:121
+#: templates/js/translated/order.js:279
msgid "Create Purchase Order"
msgstr ""
@@ -2493,11 +2547,12 @@ msgstr ""
msgid "Download image from URL"
msgstr ""
-#: company/templates/company/company_base.html:83 order/models.py:567
-#: order/templates/order/sales_order_base.html:115 stock/models.py:515
-#: stock/models.py:516 stock/templates/stock/item_base.html:291
-#: templates/js/translated/company.js:329 templates/js/translated/order.js:1072
-#: templates/js/translated/stock.js:2084
+#: company/templates/company/company_base.html:83 order/models.py:547
+#: order/templates/order/sales_order_base.html:115 stock/models.py:509
+#: stock/models.py:510 stock/serializers.py:610
+#: stock/templates/stock/item_base.html:291
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1240
+#: templates/js/translated/stock.js:2259
msgid "Customer"
msgstr ""
@@ -2580,7 +2635,7 @@ msgstr ""
#: order/templates/order/purchase_orders.html:12
#: part/templates/part/detail.html:64 part/templates/part/part_sidebar.html:33
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:203
-#: templates/InvenTree/settings/sidebar.html:44 templates/navbar.html:45
+#: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47
#: users/models.py:45
msgid "Purchase Orders"
msgstr ""
@@ -2602,7 +2657,7 @@ msgstr ""
#: order/templates/order/sales_orders.html:15
#: part/templates/part/detail.html:87 part/templates/part/part_sidebar.html:37
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:223
-#: templates/InvenTree/settings/sidebar.html:46 templates/navbar.html:56
+#: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58
#: users/models.py:46
msgid "Sales Orders"
msgstr ""
@@ -2618,7 +2673,7 @@ msgid "New Sales Order"
msgstr ""
#: company/templates/company/detail.html:168
-#: templates/js/translated/build.js:999
+#: templates/js/translated/build.js:1004
msgid "Assigned Stock"
msgstr ""
@@ -2644,7 +2699,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:14 company/views.py:55
#: part/templates/part/prices.html:167 templates/InvenTree/search.html:184
-#: templates/navbar.html:44
+#: templates/navbar.html:46
msgid "Manufacturers"
msgstr ""
@@ -2673,7 +2728,7 @@ msgstr "内部パーツ"
#: company/templates/company/manufacturer_part.html:114
#: company/templates/company/supplier_part.html:15 company/views.py:49
#: part/templates/part/part_sidebar.html:31 part/templates/part/prices.html:163
-#: templates/InvenTree/search.html:194 templates/navbar.html:43
+#: templates/InvenTree/search.html:194 templates/navbar.html:45
msgid "Suppliers"
msgstr ""
@@ -2687,7 +2742,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:254
#: part/templates/part/detail.html:344 part/templates/part/detail.html:372
#: templates/js/translated/company.js:425 templates/js/translated/helpers.js:31
-#: users/models.py:204
+#: users/models.py:206
msgid "Delete"
msgstr ""
@@ -2739,9 +2794,9 @@ msgid "Assigned Stock Items"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:482
+#: company/templates/company/supplier_part.html:24 stock/models.py:476
#: stock/templates/stock/item_base.html:403
-#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1405
+#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1569
msgid "Supplier Part"
msgstr ""
@@ -2767,7 +2822,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:142
#: part/templates/part/detail.html:21 stock/templates/stock/location.html:163
-#: templates/js/translated/stock.js:355
+#: templates/js/translated/stock.js:359
msgid "New Stock Item"
msgstr ""
@@ -2817,11 +2872,11 @@ msgstr ""
#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:14
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:156
-#: templates/InvenTree/settings/sidebar.html:40
+#: templates/InvenTree/settings/sidebar.html:41
#: templates/js/translated/bom.js:216 templates/js/translated/part.js:434
#: templates/js/translated/part.js:569 templates/js/translated/part.js:1059
-#: templates/js/translated/part.js:1220 templates/js/translated/stock.js:591
-#: templates/js/translated/stock.js:1244 templates/navbar.html:26
+#: templates/js/translated/part.js:1220 templates/js/translated/stock.js:748
+#: templates/js/translated/stock.js:1401 templates/navbar.html:28
msgid "Stock"
msgstr ""
@@ -2844,7 +2899,7 @@ msgstr ""
#: stock/templates/stock/location.html:147
#: stock/templates/stock/location.html:159
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1983
+#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:2158
#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
msgid "Stock Items"
msgstr ""
@@ -2858,7 +2913,7 @@ msgid "New Manufacturer"
msgstr ""
#: company/views.py:61 templates/InvenTree/search.html:214
-#: templates/navbar.html:55
+#: templates/navbar.html:57
msgid "Customers"
msgstr ""
@@ -2960,284 +3015,374 @@ msgstr ""
msgid "Part query filters (comma-separated value of key=value pairs)"
msgstr ""
-#: order/forms.py:26 order/templates/order/order_base.html:52
+#: order/forms.py:24 order/templates/order/order_base.html:52
msgid "Place order"
msgstr ""
-#: order/forms.py:37 order/templates/order/order_base.html:60
+#: order/forms.py:35 order/templates/order/order_base.html:60
msgid "Mark order as complete"
msgstr ""
-#: order/forms.py:48 order/forms.py:59 order/templates/order/order_base.html:47
+#: order/forms.py:46 order/forms.py:57 order/templates/order/order_base.html:47
#: order/templates/order/sales_order_base.html:60
msgid "Cancel order"
msgstr ""
-#: order/forms.py:70
-msgid "Ship order"
-msgstr ""
-
-#: order/forms.py:98
-msgid "Enter stock item serial numbers"
-msgstr ""
-
-#: order/forms.py:104
-msgid "Enter quantity of stock items"
-msgstr ""
-
-#: order/models.py:161
+#: order/models.py:122
msgid "Order description"
msgstr ""
-#: order/models.py:163
+#: order/models.py:124
msgid "Link to external page"
msgstr ""
-#: order/models.py:171
+#: order/models.py:132
msgid "Created By"
msgstr ""
-#: order/models.py:178
+#: order/models.py:139
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:183
+#: order/models.py:144
msgid "Order notes"
msgstr ""
-#: order/models.py:250 order/models.py:557
+#: order/models.py:211 order/models.py:537
msgid "Order reference"
msgstr ""
-#: order/models.py:255 order/models.py:572
+#: order/models.py:216 order/models.py:552
msgid "Purchase order status"
msgstr ""
-#: order/models.py:264
+#: order/models.py:225
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:267 order/templates/order/order_base.html:118
-#: templates/js/translated/order.js:676
+#: order/models.py:228 order/templates/order/order_base.html:118
+#: templates/js/translated/order.js:832
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:267
+#: order/models.py:228
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:274
+#: order/models.py:235
msgid "received by"
msgstr ""
-#: order/models.py:279
+#: order/models.py:240
msgid "Issue Date"
msgstr ""
-#: order/models.py:280
+#: order/models.py:241
msgid "Date order was issued"
msgstr ""
-#: order/models.py:285
+#: order/models.py:246
msgid "Target Delivery Date"
msgstr ""
-#: order/models.py:286
+#: order/models.py:247
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:292
+#: order/models.py:253
msgid "Date order was completed"
msgstr ""
-#: order/models.py:321
+#: order/models.py:282
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:431
+#: order/models.py:411
msgid "Quantity must be an integer"
msgstr ""
-#: order/models.py:435
+#: order/models.py:415
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:568
+#: order/models.py:548
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:574
+#: order/models.py:554
msgid "Customer Reference "
msgstr ""
-#: order/models.py:574
+#: order/models.py:554
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:579
+#: order/models.py:559
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:582 templates/js/translated/order.js:1113
+#: order/models.py:562 order/models.py:1026
+#: templates/js/translated/order.js:1281 templates/js/translated/order.js:1429
msgid "Shipment Date"
msgstr ""
-#: order/models.py:589
+#: order/models.py:569
msgid "shipped by"
msgstr ""
-#: order/models.py:633
-msgid "SalesOrder cannot be shipped as it is not currently pending"
+#: order/models.py:634
+msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:730
+#: order/models.py:639
+msgid "Only a pending order can be marked as complete"
+msgstr ""
+
+#: order/models.py:643
+msgid "Order cannot be completed as there are incomplete shipments"
+msgstr ""
+
+#: order/models.py:647
+msgid "Order cannot be completed as there are incomplete line items"
+msgstr ""
+
+#: order/models.py:795
msgid "Item quantity"
msgstr ""
-#: order/models.py:736
+#: order/models.py:801
msgid "Line item reference"
msgstr ""
-#: order/models.py:738
+#: order/models.py:803
msgid "Line item notes"
msgstr ""
-#: order/models.py:768 order/models.py:856
-#: templates/js/translated/order.js:1165
+#: order/models.py:833 order/models.py:924 order/models.py:1020
+#: templates/js/translated/order.js:1820
msgid "Order"
msgstr ""
-#: order/models.py:769 order/templates/order/order_base.html:9
+#: order/models.py:834 order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:353
-#: templates/js/translated/order.js:638 templates/js/translated/part.js:775
-#: templates/js/translated/stock.js:1382 templates/js/translated/stock.js:2065
+#: templates/js/translated/order.js:801 templates/js/translated/part.js:775
+#: templates/js/translated/stock.js:1546 templates/js/translated/stock.js:2240
msgid "Purchase Order"
msgstr ""
-#: order/models.py:790
+#: order/models.py:855
msgid "Supplier part"
msgstr ""
-#: order/models.py:797 order/templates/order/order_base.html:151
-#: order/templates/order/sales_order_base.html:155
-#: templates/js/translated/order.js:429 templates/js/translated/order.js:953
+#: order/models.py:862 order/templates/order/order_base.html:163
+#: templates/js/translated/order.js:589 templates/js/translated/order.js:1118
#: templates/js/translated/part.js:847 templates/js/translated/part.js:873
+#: templates/js/translated/table_filters.js:317
msgid "Received"
msgstr ""
-#: order/models.py:798
+#: order/models.py:863
msgid "Number of items received"
msgstr ""
-#: order/models.py:805 part/templates/part/prices.html:176 stock/models.py:609
-#: stock/serializers.py:168 stock/templates/stock/item_base.html:360
-#: templates/js/translated/stock.js:1436
+#: order/models.py:870 part/templates/part/prices.html:176 stock/models.py:603
+#: stock/serializers.py:170 stock/templates/stock/item_base.html:360
+#: templates/js/translated/stock.js:1600
msgid "Purchase Price"
msgstr ""
-#: order/models.py:806
+#: order/models.py:871
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:814
+#: order/models.py:879
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:866 part/templates/part/part_pricing.html:112
+#: order/models.py:934 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:116 part/templates/part/prices.html:284
msgid "Sale Price"
msgstr ""
-#: order/models.py:867
+#: order/models.py:935
msgid "Unit sale price"
msgstr ""
-#: order/models.py:946 order/models.py:948
+#: order/models.py:940
+msgid "Shipped quantity"
+msgstr ""
+
+#: order/models.py:1027
+msgid "Date of shipment"
+msgstr ""
+
+#: order/models.py:1034
+msgid "Checked By"
+msgstr ""
+
+#: order/models.py:1035
+msgid "User who checked this shipment"
+msgstr ""
+
+#: order/models.py:1043
+msgid "Shipment number"
+msgstr ""
+
+#: order/models.py:1050
+msgid "Shipment notes"
+msgstr ""
+
+#: order/models.py:1057
+msgid "Tracking Number"
+msgstr ""
+
+#: order/models.py:1058
+msgid "Shipment tracking information"
+msgstr ""
+
+#: order/models.py:1068
+msgid "Shipment has already been sent"
+msgstr ""
+
+#: order/models.py:1071
+msgid "Shipment has no allocated stock items"
+msgstr ""
+
+#: order/models.py:1147 order/models.py:1149
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:952
+#: order/models.py:1153
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:954
+#: order/models.py:1155
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:957
+#: order/models.py:1158
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:961
+#: order/models.py:1162
msgid "StockItem is over-allocated"
msgstr ""
-#: order/models.py:967
+#: order/models.py:1168 order/serializers.py:734
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:975
+#: order/models.py:1171
+msgid "Sales order does not match shipment"
+msgstr ""
+
+#: order/models.py:1172
+msgid "Shipment does not match sales order"
+msgstr ""
+
+#: order/models.py:1180
msgid "Line"
msgstr ""
-#: order/models.py:987
+#: order/models.py:1188 order/serializers.py:825 order/serializers.py:953
+#: templates/js/translated/model_renderers.js:251
+msgid "Shipment"
+msgstr ""
+
+#: order/models.py:1189
+msgid "Sales order shipment reference"
+msgstr ""
+
+#: order/models.py:1201
msgid "Item"
msgstr ""
-#: order/models.py:988
+#: order/models.py:1202
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:991
+#: order/models.py:1205
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/serializers.py:175
+#: order/serializers.py:173
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:213
+#: order/serializers.py:211 order/serializers.py:790
msgid "Line Item"
msgstr ""
-#: order/serializers.py:219
+#: order/serializers.py:217
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:229 order/serializers.py:297
+#: order/serializers.py:227 order/serializers.py:295
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:253
+#: order/serializers.py:251
msgid "Barcode Hash"
msgstr ""
-#: order/serializers.py:254
+#: order/serializers.py:252
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:271
+#: order/serializers.py:269
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:309
+#: order/serializers.py:307
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:326
+#: order/serializers.py:324
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:337
+#: order/serializers.py:335
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:578
+#: order/serializers.py:581
msgid "Sale price currency"
msgstr ""
+#: order/serializers.py:649
+msgid "No shipment details provided"
+msgstr ""
+
+#: order/serializers.py:699 order/serializers.py:802
+msgid "Line item is not associated with this order"
+msgstr ""
+
+#: order/serializers.py:721
+msgid "Quantity must be positive"
+msgstr ""
+
+#: order/serializers.py:815
+msgid "Enter serial numbers to allocate"
+msgstr ""
+
+#: order/serializers.py:839 order/serializers.py:964
+msgid "Shipment has already been shipped"
+msgstr ""
+
+#: order/serializers.py:842 order/serializers.py:967
+msgid "Shipment is not associated with this order"
+msgstr ""
+
+#: order/serializers.py:894
+msgid "No match found for the following serial numbers"
+msgstr ""
+
+#: order/serializers.py:904
+msgid "The following serial numbers are already allocated"
+msgstr ""
+
#: order/templates/order/delete_attachment.html:5
#: stock/templates/stock/attachment_delete.html:5
msgid "Are you sure you want to delete this attachment?"
@@ -3271,7 +3416,8 @@ msgstr ""
msgid "Receive Items"
msgstr ""
-#: order/templates/order/order_base.html:62 order/views.py:185
+#: order/templates/order/order_base.html:62
+#: order/templates/order/sales_order_base.html:67 order/views.py:181
msgid "Complete Order"
msgstr ""
@@ -3290,12 +3436,23 @@ msgstr ""
msgid "Order Status"
msgstr ""
-#: order/templates/order/order_base.html:137
+#: order/templates/order/order_base.html:124
+#: order/templates/order/sales_order_base.html:128
+msgid "Completed Line Items"
+msgstr ""
+
+#: order/templates/order/order_base.html:130
+#: order/templates/order/sales_order_base.html:134
+#: order/templates/order/sales_order_base.html:144
+msgid "Incomplete"
+msgstr ""
+
+#: order/templates/order/order_base.html:149
#: report/templates/report/inventree_build_order_base.html:122
msgid "Issued"
msgstr ""
-#: order/templates/order/order_base.html:207
+#: order/templates/order/order_base.html:219
msgid "Edit Purchase Order"
msgstr ""
@@ -3371,8 +3528,9 @@ msgstr ""
#: part/templates/part/import_wizard/ajax_match_references.html:42
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
-#: templates/js/translated/build.js:240 templates/js/translated/build.js:1251
-#: templates/js/translated/order.js:377
+#: templates/js/translated/build.js:245 templates/js/translated/build.js:1256
+#: templates/js/translated/order.js:537 templates/js/translated/order.js:1488
+#: templates/js/translated/stock.js:592
msgid "Remove row"
msgstr ""
@@ -3453,7 +3611,8 @@ msgid "Select existing purchase orders, or create new orders."
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:31
-#: templates/js/translated/order.js:694 templates/js/translated/order.js:1118
+#: templates/js/translated/order.js:859 templates/js/translated/order.js:1286
+#: templates/js/translated/order.js:1416
msgid "Items"
msgstr ""
@@ -3489,7 +3648,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:27
#: order/templates/order/purchase_order_detail.html:181
#: order/templates/order/sales_order_detail.html:23
-#: order/templates/order/sales_order_detail.html:157
+#: order/templates/order/sales_order_detail.html:244
msgid "Add Line Item"
msgstr ""
@@ -3502,7 +3661,7 @@ msgid "Received Items"
msgstr ""
#: order/templates/order/purchase_order_detail.html:76
-#: order/templates/order/sales_order_detail.html:68
+#: order/templates/order/sales_order_detail.html:123
msgid "Order Notes"
msgstr ""
@@ -3520,8 +3679,8 @@ msgid "Print packing list"
msgstr ""
#: order/templates/order/sales_order_base.html:66
-#: order/templates/order/sales_order_base.html:67 order/views.py:222
-msgid "Ship Order"
+#: order/templates/order/sales_order_base.html:229
+msgid "Complete Sales Order"
msgstr ""
#: order/templates/order/sales_order_base.html:102
@@ -3529,16 +3688,21 @@ msgid "This Sales Order has not been fully allocated"
msgstr ""
#: order/templates/order/sales_order_base.html:122
-#: templates/js/translated/order.js:1085
+#: templates/js/translated/order.js:1253
msgid "Customer Reference"
msgstr ""
-#: order/templates/order/sales_order_base.html:195
+#: order/templates/order/sales_order_base.html:140
+#: order/templates/order/sales_order_detail.html:78
+#: order/templates/order/so_sidebar.html:11
+msgid "Completed Shipments"
+msgstr ""
+
+#: order/templates/order/sales_order_base.html:215
msgid "Edit Sales Order"
msgstr ""
#: order/templates/order/sales_order_cancel.html:8
-#: order/templates/order/sales_order_ship.html:9
#: part/templates/part/bom_duplicate.html:12
#: stock/templates/stock/stockitem_convert.html:13
msgid "Warning"
@@ -3552,146 +3716,100 @@ msgstr ""
msgid "Sales Order Items"
msgstr ""
-#: order/templates/order/sales_order_ship.html:10
-msgid "This order has not been fully allocated. If the order is marked as shipped, it can no longer be adjusted."
+#: order/templates/order/sales_order_detail.html:44
+#: order/templates/order/so_sidebar.html:8
+msgid "Pending Shipments"
msgstr ""
-#: order/templates/order/sales_order_ship.html:12
-msgid "Ensure that the order allocation is correct before shipping the order."
+#: order/templates/order/sales_order_detail.html:48
+#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1188
+msgid "Actions"
msgstr ""
-#: order/templates/order/sales_order_ship.html:18
-msgid "Some line items in this order have been over-allocated"
+#: order/templates/order/sales_order_detail.html:57
+msgid "New Shipment"
msgstr ""
-#: order/templates/order/sales_order_ship.html:20
-msgid "Ensure that this is correct before shipping the order."
-msgstr ""
-
-#: order/templates/order/sales_order_ship.html:27
-msgid "Shipping this order means that the order will no longer be editable."
-msgstr ""
-
-#: order/templates/order/so_allocate_by_serial.html:9
-msgid "Allocate stock items by serial number"
-msgstr ""
-
-#: order/views.py:103
+#: order/views.py:99
msgid "Cancel Order"
msgstr ""
-#: order/views.py:112 order/views.py:138
+#: order/views.py:108 order/views.py:134
msgid "Confirm order cancellation"
msgstr ""
-#: order/views.py:115 order/views.py:141
+#: order/views.py:111 order/views.py:137
msgid "Order cannot be cancelled"
msgstr ""
-#: order/views.py:129
+#: order/views.py:125
msgid "Cancel sales order"
msgstr ""
-#: order/views.py:155
+#: order/views.py:151
msgid "Issue Order"
msgstr ""
-#: order/views.py:164
+#: order/views.py:160
msgid "Confirm order placement"
msgstr ""
-#: order/views.py:174
+#: order/views.py:170
msgid "Purchase order issued"
msgstr ""
-#: order/views.py:201
+#: order/views.py:197
msgid "Confirm order completion"
msgstr ""
-#: order/views.py:212
+#: order/views.py:208
msgid "Purchase order completed"
msgstr ""
-#: order/views.py:238
-msgid "Confirm order shipment"
-msgstr ""
-
-#: order/views.py:244
-msgid "Could not ship order"
-msgstr ""
-
-#: order/views.py:291
+#: order/views.py:245
msgid "Match Supplier Parts"
msgstr ""
-#: order/views.py:535
+#: order/views.py:489
msgid "Update prices"
msgstr ""
-#: order/views.py:793
+#: order/views.py:747
#, python-brace-format
msgid "Ordered {n} parts"
msgstr ""
-#: order/views.py:846
-msgid "Allocate Serial Numbers"
-msgstr ""
-
-#: order/views.py:891
-#, python-brace-format
-msgid "Allocated {n} items"
-msgstr ""
-
-#: order/views.py:907
-msgid "Select line item"
-msgstr ""
-
-#: order/views.py:938
-#, python-brace-format
-msgid "No matching item for serial {serial}"
-msgstr ""
-
-#: order/views.py:948
-#, python-brace-format
-msgid "{serial} is not in stock"
-msgstr ""
-
-#: order/views.py:956
-#, python-brace-format
-msgid "{serial} already allocated to an order"
-msgstr ""
-
-#: order/views.py:1072
+#: order/views.py:858
msgid "Sales order not found"
msgstr ""
-#: order/views.py:1078
+#: order/views.py:864
msgid "Price not found"
msgstr ""
-#: order/views.py:1081
+#: order/views.py:867
#, python-brace-format
msgid "Updated {part} unit-price to {price}"
msgstr ""
-#: order/views.py:1086
+#: order/views.py:872
#, python-brace-format
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/api.py:758
+#: part/api.py:760
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:762
+#: part/api.py:764
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:777
+#: part/api.py:779
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:808 part/api.py:812 part/api.py:827 part/api.py:831
+#: part/api.py:810 part/api.py:814 part/api.py:829 part/api.py:833
msgid "This field is required"
msgstr ""
@@ -3828,8 +3946,8 @@ msgstr ""
#: part/templates/part/category.html:149
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:88
-#: templates/InvenTree/settings/sidebar.html:36
-#: templates/js/translated/part.js:1597 templates/navbar.html:19
+#: templates/InvenTree/settings/sidebar.html:37
+#: templates/js/translated/part.js:1597 templates/navbar.html:21
#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
msgid "Parts"
msgstr "パーツ"
@@ -3895,7 +4013,7 @@ msgstr ""
#: part/models.py:778 part/models.py:2223 part/models.py:2472
#: part/templates/part/part_base.html:265
#: part/templates/part/set_category.html:15
-#: templates/InvenTree/settings/settings.html:163
+#: templates/InvenTree/settings/settings.html:172
#: templates/js/translated/part.js:1202
msgid "Category"
msgstr ""
@@ -3906,7 +4024,7 @@ msgstr ""
#: part/models.py:784 part/templates/part/part_base.html:274
#: templates/js/translated/part.js:557 templates/js/translated/part.js:1155
-#: templates/js/translated/stock.js:1216
+#: templates/js/translated/stock.js:1373
msgid "IPN"
msgstr ""
@@ -3975,10 +4093,11 @@ msgstr ""
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:915 templates/js/translated/table_filters.js:34
+#: part/models.py:915 plugin/models.py:45
+#: templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:96
-#: templates/js/translated/table_filters.js:290
-#: templates/js/translated/table_filters.js:368
+#: templates/js/translated/table_filters.js:295
+#: templates/js/translated/table_filters.js:399
msgid "Active"
msgstr ""
@@ -4027,7 +4146,7 @@ msgid "Test with this name already exists for this part"
msgstr ""
#: part/models.py:2310 templates/js/translated/part.js:1648
-#: templates/js/translated/stock.js:940
+#: templates/js/translated/stock.js:1097
msgid "Test Name"
msgstr ""
@@ -4044,7 +4163,7 @@ msgid "Enter description for this test"
msgstr ""
#: part/models.py:2322 templates/js/translated/part.js:1657
-#: templates/js/translated/table_filters.js:276
+#: templates/js/translated/table_filters.js:281
msgid "Required"
msgstr ""
@@ -4086,7 +4205,7 @@ msgid "Parameter Units"
msgstr ""
#: part/models.py:2429 part/models.py:2478 part/models.py:2479
-#: templates/InvenTree/settings/settings.html:158
+#: templates/InvenTree/settings/settings.html:167
msgid "Parameter Template"
msgstr ""
@@ -4098,7 +4217,7 @@ msgstr ""
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2483 templates/InvenTree/settings/settings.html:167
+#: part/models.py:2483 templates/InvenTree/settings/settings.html:176
msgid "Default Value"
msgstr ""
@@ -4175,7 +4294,7 @@ msgstr ""
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2686 stock/models.py:361
+#: part/models.py:2686 stock/models.py:355
msgid "Quantity must be integer value for trackable parts"
msgstr ""
@@ -4724,8 +4843,8 @@ msgstr ""
msgid "This part is a variant of %(link)s"
msgstr ""
-#: part/templates/part/part_base.html:190 templates/js/translated/order.js:1545
-#: templates/js/translated/table_filters.js:188
+#: part/templates/part/part_base.html:190 templates/js/translated/order.js:2217
+#: templates/js/translated/table_filters.js:193
msgid "In Stock"
msgstr ""
@@ -5099,6 +5218,78 @@ msgstr ""
msgid "Delete Internal Price Break"
msgstr ""
+#: plugin/integration.py:116
+msgid "No author found"
+msgstr ""
+
+#: plugin/integration.py:128
+msgid "No date found"
+msgstr ""
+
+#: plugin/models.py:25
+msgid "Plugin Configuration"
+msgstr ""
+
+#: plugin/models.py:26
+msgid "Plugin Configurations"
+msgstr ""
+
+#: plugin/models.py:31
+msgid "Key"
+msgstr ""
+
+#: plugin/models.py:32
+msgid "Key of plugin"
+msgstr ""
+
+#: plugin/models.py:40
+msgid "PluginName of the plugin"
+msgstr ""
+
+#: plugin/models.py:46
+msgid "Is the plugin active"
+msgstr ""
+
+#: plugin/samples/integration/sample.py:39
+msgid "Enable PO"
+msgstr ""
+
+#: plugin/samples/integration/sample.py:40
+msgid "Enable PO functionality in InvenTree interface"
+msgstr ""
+
+#: plugin/serializers.py:46
+msgid "Source URL"
+msgstr ""
+
+#: plugin/serializers.py:47
+msgid "Source for the package - this can be a custom registry or a VCS path"
+msgstr ""
+
+#: plugin/serializers.py:52
+msgid "Package Name"
+msgstr ""
+
+#: plugin/serializers.py:53
+msgid "Name for the Plugin Package - can also contain a version indicator"
+msgstr ""
+
+#: plugin/serializers.py:56
+msgid "Confirm plugin installation"
+msgstr ""
+
+#: plugin/serializers.py:57
+msgid "This will install this plugin now into the current instance. The instance will go into maintenance."
+msgstr ""
+
+#: plugin/serializers.py:72
+msgid "Installation not confirmed"
+msgstr ""
+
+#: plugin/serializers.py:74
+msgid "Either packagenmae of url must be provided"
+msgstr ""
+
#: report/api.py:234 report/api.py:278
#, python-brace-format
msgid "Template file '{filename}' is missing or does not exist"
@@ -5197,12 +5388,12 @@ msgid "Stock Item Test Report"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:520 stock/templates/stock/item_base.html:149
-#: templates/js/translated/build.js:233 templates/js/translated/build.js:637
-#: templates/js/translated/build.js:1013
+#: stock/models.py:514 stock/templates/stock/item_base.html:149
+#: templates/js/translated/build.js:238 templates/js/translated/build.js:642
+#: templates/js/translated/build.js:1018
#: templates/js/translated/model_renderers.js:95
-#: templates/js/translated/order.js:1287 templates/js/translated/order.js:1376
-#: templates/js/translated/stock.js:410
+#: templates/js/translated/order.js:99 templates/js/translated/order.js:1945
+#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:414
msgid "Serial Number"
msgstr ""
@@ -5211,17 +5402,19 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:93
-#: stock/models.py:1845
+#: stock/models.py:1833
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:94
-#: stock/models.py:1851
+#: stock/models.py:1839
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:97
-#: templates/js/translated/order.js:684 templates/js/translated/stock.js:1999
+#: templates/InvenTree/settings/plugin.html:49
+#: templates/InvenTree/settings/plugin_settings.html:38
+#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2174
msgid "Date"
msgstr ""
@@ -5239,302 +5432,318 @@ msgid "Installed Items"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
-#: templates/js/translated/stock.js:2259
+#: templates/js/translated/stock.js:577 templates/js/translated/stock.js:2434
msgid "Serial"
msgstr ""
-#: stock/api.py:422
+#: stock/api.py:446
msgid "Quantity is required"
msgstr ""
-#: stock/forms.py:91 stock/forms.py:265 stock/models.py:577
+#: stock/forms.py:77 stock/forms.py:251 stock/models.py:571
#: stock/templates/stock/item_base.html:186
-#: templates/js/translated/stock.js:1358
+#: templates/js/translated/stock.js:1522
msgid "Expiry Date"
msgstr ""
-#: stock/forms.py:92 stock/forms.py:266
+#: stock/forms.py:78 stock/forms.py:252
msgid "Expiration date for this stock item"
msgstr ""
-#: stock/forms.py:95
+#: stock/forms.py:81
msgid "Enter unique serial numbers (or leave blank)"
msgstr ""
-#: stock/forms.py:150
+#: stock/forms.py:136
msgid "Destination for serialized stock (by default, will remain in current location)"
msgstr ""
-#: stock/forms.py:152
+#: stock/forms.py:138
msgid "Serial numbers"
msgstr ""
-#: stock/forms.py:152
+#: stock/forms.py:138
msgid "Unique serial numbers (must match quantity)"
msgstr ""
-#: stock/forms.py:154 stock/forms.py:238
+#: stock/forms.py:140 stock/forms.py:224
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/forms.py:194
+#: stock/forms.py:180
msgid "Stock item to install"
msgstr ""
-#: stock/forms.py:224
+#: stock/forms.py:210
msgid "Must not exceed available quantity"
msgstr ""
-#: stock/forms.py:236
+#: stock/forms.py:222
msgid "Destination location for uninstalled items"
msgstr ""
-#: stock/forms.py:240
+#: stock/forms.py:226
msgid "Confirm uninstall"
msgstr ""
-#: stock/forms.py:240
+#: stock/forms.py:226
msgid "Confirm removal of installed stock items"
msgstr ""
-#: stock/models.py:60 stock/models.py:614
+#: stock/models.py:60 stock/models.py:608
#: stock/templates/stock/item_base.html:417
msgid "Owner"
msgstr ""
-#: stock/models.py:61 stock/models.py:615
+#: stock/models.py:61 stock/models.py:609
msgid "Select Owner"
msgstr ""
-#: stock/models.py:342
+#: stock/models.py:336
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:378
+#: stock/models.py:372
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:388 stock/models.py:397
+#: stock/models.py:382 stock/models.py:391
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:389
+#: stock/models.py:383
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:411
+#: stock/models.py:405
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:417
+#: stock/models.py:411
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:424
+#: stock/models.py:418
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:466
+#: stock/models.py:460
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:475
+#: stock/models.py:469
msgid "Base part"
msgstr ""
-#: stock/models.py:483
+#: stock/models.py:477
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:488 stock/templates/stock/location.html:12
+#: stock/models.py:482 stock/templates/stock/location.html:12
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:491
+#: stock/models.py:485
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:498
+#: stock/models.py:492
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:503 stock/templates/stock/item_base.html:299
+#: stock/models.py:497 stock/templates/stock/item_base.html:299
msgid "Installed In"
msgstr ""
-#: stock/models.py:506
+#: stock/models.py:500
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:522
+#: stock/models.py:516
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:536
+#: stock/models.py:530
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:540
+#: stock/models.py:534
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:549
+#: stock/models.py:543
msgid "Source Build"
msgstr ""
-#: stock/models.py:551
+#: stock/models.py:545
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:562
+#: stock/models.py:556
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:565
+#: stock/models.py:559
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:571
+#: stock/models.py:565
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:578
+#: stock/models.py:572
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:591
+#: stock/models.py:585
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:591
+#: stock/models.py:585
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:601 stock/templates/stock/item.html:111
+#: stock/models.py:595 stock/templates/stock/item.html:111
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:610
+#: stock/models.py:604
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:620
-msgid "Scheduled for deletion"
-msgstr ""
-
-#: stock/models.py:621
-msgid "This StockItem will be deleted by the background worker"
-msgstr ""
-
-#: stock/models.py:1084
+#: stock/models.py:1072
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1090
+#: stock/models.py:1078
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1096
+#: stock/models.py:1084
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1099
+#: stock/models.py:1087
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1102
+#: stock/models.py:1090
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1109
+#: stock/models.py:1097
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1267
+#: stock/models.py:1255
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1765
+#: stock/models.py:1753
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1822
+#: stock/models.py:1810
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1828
+#: stock/models.py:1816
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1846
+#: stock/models.py:1834
msgid "Test name"
msgstr ""
-#: stock/models.py:1852 templates/js/translated/table_filters.js:266
+#: stock/models.py:1840 templates/js/translated/table_filters.js:271
msgid "Test result"
msgstr ""
-#: stock/models.py:1858
+#: stock/models.py:1846
msgid "Test output value"
msgstr ""
-#: stock/models.py:1865
+#: stock/models.py:1853
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1871
+#: stock/models.py:1859
msgid "Test notes"
msgstr ""
-#: stock/serializers.py:171
+#: stock/serializers.py:173
msgid "Purchase price of this stock item"
msgstr ""
-#: stock/serializers.py:178
+#: stock/serializers.py:180
msgid "Purchase currency of this stock item"
msgstr ""
-#: stock/serializers.py:292
+#: stock/serializers.py:294
msgid "Enter number of stock items to serialize"
msgstr ""
-#: stock/serializers.py:307
+#: stock/serializers.py:309
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:313
+#: stock/serializers.py:315
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:324 stock/serializers.py:691
+#: stock/serializers.py:326 stock/serializers.py:814
msgid "Destination stock location"
msgstr ""
-#: stock/serializers.py:331
+#: stock/serializers.py:333
msgid "Optional note field"
msgstr ""
-#: stock/serializers.py:344
+#: stock/serializers.py:346
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:561
+#: stock/serializers.py:573
+msgid "Part must be salable"
+msgstr ""
+
+#: stock/serializers.py:577
+msgid "Item is allocated to a sales order"
+msgstr ""
+
+#: stock/serializers.py:581
+msgid "Item is allocated to a build order"
+msgstr ""
+
+#: stock/serializers.py:611
+msgid "Customer to assign stock items"
+msgstr ""
+
+#: stock/serializers.py:617
+msgid "Selected company is not a customer"
+msgstr ""
+
+#: stock/serializers.py:625
+msgid "Stock assignment notes"
+msgstr ""
+
+#: stock/serializers.py:635 stock/serializers.py:722
+msgid "A list of stock items must be provided"
+msgstr ""
+
+#: stock/serializers.py:684
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:589
+#: stock/serializers.py:712
msgid "Stock transaction notes"
msgstr ""
-#: stock/serializers.py:599
-msgid "A list of stock items must be provided"
-msgstr ""
-
#: stock/templates/stock/item.html:18
msgid "Stock Tracking Information"
msgstr ""
@@ -5572,7 +5781,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:137 stock/views.py:515
+#: stock/templates/stock/item.html:137 stock/views.py:482
msgid "Install Stock Item"
msgstr ""
@@ -5632,7 +5841,7 @@ msgstr ""
msgid "Transfer stock"
msgstr ""
-#: stock/templates/stock/item_base.html:85
+#: stock/templates/stock/item_base.html:85 templates/stock_table.html:53
msgid "Assign to customer"
msgstr ""
@@ -5694,7 +5903,7 @@ msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:190
-#: templates/js/translated/table_filters.js:247
+#: templates/js/translated/table_filters.js:252
msgid "Expired"
msgstr ""
@@ -5704,12 +5913,12 @@ msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:192
-#: templates/js/translated/table_filters.js:253
+#: templates/js/translated/table_filters.js:258
msgid "Stale"
msgstr ""
#: stock/templates/stock/item_base.html:199
-#: templates/js/translated/stock.js:1371
+#: templates/js/translated/stock.js:1535
msgid "Last Updated"
msgstr ""
@@ -5738,13 +5947,11 @@ msgid "This stock item has not passed all required tests"
msgstr ""
#: stock/templates/stock/item_base.html:255
-#, python-format
-msgid "This stock item is allocated to Sales Order %(link)s (Quantity: %(qty)s)"
+msgid "This stock item is allocated to Sales Order"
msgstr ""
#: stock/templates/stock/item_base.html:263
-#, python-format
-msgid "This stock item is allocated to Build %(link)s (Quantity: %(qty)s)"
+msgid "This stock item is allocated to Build Order"
msgstr ""
#: stock/templates/stock/item_base.html:269
@@ -5760,7 +5967,7 @@ msgid "This stock item will be automatically deleted when all stock is depleted.
msgstr ""
#: stock/templates/stock/item_base.html:318
-#: templates/js/translated/build.js:1035
+#: templates/js/translated/build.js:1040
msgid "No location set"
msgstr ""
@@ -5910,7 +6117,7 @@ msgstr ""
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:912
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:879
msgid "Convert Stock Item"
msgstr ""
@@ -5935,8 +6142,7 @@ msgstr ""
msgid "Edit Stock Location"
msgstr ""
-#: stock/views.py:269 stock/views.py:891 stock/views.py:1017
-#: stock/views.py:1299
+#: stock/views.py:269 stock/views.py:858 stock/views.py:984 stock/views.py:1266
msgid "Owner is required (ownership control is enabled)"
msgstr ""
@@ -5945,86 +6151,78 @@ msgid "Stock Location QR code"
msgstr ""
#: stock/views.py:303
-msgid "Assign to Customer"
-msgstr ""
-
-#: stock/views.py:312
-msgid "Customer must be specified"
-msgstr ""
-
-#: stock/views.py:336
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:345
+#: stock/views.py:312
msgid "Specify a valid location"
msgstr ""
-#: stock/views.py:356
+#: stock/views.py:323
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:367
+#: stock/views.py:334
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:384
+#: stock/views.py:351
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:489
+#: stock/views.py:456
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:663
+#: stock/views.py:630
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:760 templates/js/translated/stock.js:730
+#: stock/views.py:727 templates/js/translated/stock.js:887
msgid "Confirm stock adjustment"
msgstr ""
-#: stock/views.py:771
+#: stock/views.py:738
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:793 templates/js/translated/stock.js:319
+#: stock/views.py:760 templates/js/translated/stock.js:323
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:943
+#: stock/views.py:910
msgid "Create new Stock Location"
msgstr ""
-#: stock/views.py:1044
+#: stock/views.py:1011
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1186 templates/js/translated/stock.js:299
+#: stock/views.py:1153 templates/js/translated/stock.js:303
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1268
+#: stock/views.py:1235
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1368
+#: stock/views.py:1335
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:1381
+#: stock/views.py:1348
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1392
+#: stock/views.py:1359
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1399
+#: stock/views.py:1366
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1408
+#: stock/views.py:1375
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -6044,6 +6242,14 @@ msgstr ""
msgid "The requested page does not exist"
msgstr ""
+#: templates/503.html:10 templates/503.html:35
+msgid "Site is in Maintenance"
+msgstr ""
+
+#: templates/503.html:41
+msgid "The site is currently in maintenance and should be up again soon!"
+msgstr ""
+
#: templates/InvenTree/index.html:7
msgid "Index"
msgstr ""
@@ -6153,7 +6359,7 @@ msgid "Server Settings"
msgstr ""
#: templates/InvenTree/settings/login.html:9
-#: templates/InvenTree/settings/sidebar.html:28
+#: templates/InvenTree/settings/sidebar.html:29
msgid "Login Settings"
msgstr ""
@@ -6161,6 +6367,24 @@ msgstr ""
msgid "Signup"
msgstr ""
+#: templates/InvenTree/settings/mixins/settings.html:4
+#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:118
+msgid "Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/mixins/urls.html:4
+msgid "URLs"
+msgstr ""
+
+#: templates/InvenTree/settings/mixins/urls.html:6
+#, python-format
+msgid "The Base-URL for this plugin is %(base)s."
+msgstr ""
+
+#: templates/InvenTree/settings/mixins/urls.html:21
+msgid "open in new tab"
+msgstr ""
+
#: templates/InvenTree/settings/part.html:7
msgid "Part Settings"
msgstr ""
@@ -6177,6 +6401,126 @@ msgstr ""
msgid "Part Parameter Templates"
msgstr ""
+#: templates/InvenTree/settings/plugin.html:10
+msgid "Plugin Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:16
+msgid "Changing the settings below require you to immediatly restart InvenTree. Do not change this while under active usage."
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:32
+msgid "Plugin list"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:37
+#: templates/js/translated/plugin.js:15
+msgid "Install Plugin"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:46 templates/navbar.html:111
+#: users/models.py:39
+msgid "Admin"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:48
+#: templates/InvenTree/settings/plugin_settings.html:28
+msgid "Author"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:50
+#: templates/InvenTree/settings/plugin_settings.html:43
+msgid "Version"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:73
+#, python-format
+msgid "has %(name)s"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:91
+msgid "Inactive plugins"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:114
+msgid "Plugin Error Stack"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:123
+msgid "Stage"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:125
+msgid "Message"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:10
+#, python-format
+msgid "Plugin details for %(name)s"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:17
+msgid "Plugin information"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:48
+msgid "no version information supplied"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:62
+msgid "License"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:70
+msgid "The code information is pulled from the latest git commit for this plugin. It might not reflect official version numbers or information but the actual code running."
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:74
+msgid "Package information"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:80
+msgid "Installation method"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:83
+msgid "This plugin was installed as a package"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:85
+msgid "This plugin was found in a local InvenTree path"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:91
+msgid "Installation path"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:97
+msgid "Commit Author"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:101
+#: templates/about.html:47
+msgid "Commit Date"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:105
+#: templates/about.html:40
+msgid "Commit Hash"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:109
+msgid "Commit Message"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:114
+msgid "Sign Status"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:119
+msgid "Sign Key"
+msgstr ""
+
#: templates/InvenTree/settings/po.html:7
msgid "Purchase Order Settings"
msgstr ""
@@ -6194,86 +6538,82 @@ msgstr ""
msgid "Edit setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:11 templates/navbar.html:93
-msgid "Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/settings.html:65
+#: templates/InvenTree/settings/settings.html:74
msgid "Edit Global Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:65
+#: templates/InvenTree/settings/settings.html:74
msgid "Edit User Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:148
+#: templates/InvenTree/settings/settings.html:157
msgid "No category parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:170
-#: templates/InvenTree/settings/settings.html:269
+#: templates/InvenTree/settings/settings.html:179
+#: templates/InvenTree/settings/settings.html:278
msgid "Edit Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:171
-#: templates/InvenTree/settings/settings.html:270
+#: templates/InvenTree/settings/settings.html:180
+#: templates/InvenTree/settings/settings.html:279
msgid "Delete Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:249
+#: templates/InvenTree/settings/settings.html:258
msgid "No part parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:253
+#: templates/InvenTree/settings/settings.html:262
msgid "ID"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:5
+#: templates/InvenTree/settings/sidebar.html:6
#: templates/InvenTree/settings/user_settings.html:9
msgid "User Settings"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:8
+#: templates/InvenTree/settings/sidebar.html:9
#: templates/InvenTree/settings/user.html:12
msgid "Account Settings"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:10
+#: templates/InvenTree/settings/sidebar.html:11
#: templates/InvenTree/settings/user_display.html:9
msgid "Display Settings"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:12
+#: templates/InvenTree/settings/sidebar.html:13
msgid "Home Page"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:14
+#: templates/InvenTree/settings/sidebar.html:15
#: templates/InvenTree/settings/user_search.html:9
msgid "Search Settings"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:16
+#: templates/InvenTree/settings/sidebar.html:17
msgid "Label Printing"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:18
-#: templates/InvenTree/settings/sidebar.html:34
+#: templates/InvenTree/settings/sidebar.html:19
+#: templates/InvenTree/settings/sidebar.html:35
msgid "Reporting"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:23
+#: templates/InvenTree/settings/sidebar.html:24
msgid "Global Settings"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:26
+#: templates/InvenTree/settings/sidebar.html:27
msgid "Server Configuration"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:32
+#: templates/InvenTree/settings/sidebar.html:33
msgid "Currencies"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:38
+#: templates/InvenTree/settings/sidebar.html:39
msgid "Categories"
msgstr ""
@@ -6491,8 +6831,8 @@ msgstr ""
#: templates/about.html:11 templates/about.html:105
#: templates/js/translated/bom.js:283 templates/js/translated/modals.js:53
-#: templates/js/translated/modals.js:567 templates/js/translated/modals.js:661
-#: templates/js/translated/modals.js:964 templates/modals.html:15
+#: templates/js/translated/modals.js:568 templates/js/translated/modals.js:662
+#: templates/js/translated/modals.js:965 templates/modals.html:15
#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
msgid "Close"
msgstr ""
@@ -6513,14 +6853,6 @@ msgstr ""
msgid "Update Available"
msgstr ""
-#: templates/about.html:40
-msgid "Commit Hash"
-msgstr ""
-
-#: templates/about.html:47
-msgid "Commit Date"
-msgstr ""
-
#: templates/about.html:53
msgid "InvenTree Documentation"
msgstr ""
@@ -6718,8 +7050,9 @@ msgstr ""
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1129
-#: templates/js/translated/build.js:1749
+#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1134
+#: templates/js/translated/build.js:1755
+#: templates/js/translated/table_filters.js:178
msgid "Available"
msgstr ""
@@ -6765,11 +7098,11 @@ msgstr ""
msgid "Remote image must not exceed maximum allowable file size"
msgstr ""
-#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1034
+#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1035
msgid "No Response"
msgstr ""
-#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1035
+#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1036
msgid "No response from the InvenTree server"
msgstr ""
@@ -6781,35 +7114,35 @@ msgstr ""
msgid "API request returned error code 400"
msgstr ""
-#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1044
+#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1045
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1045
+#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1046
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1049
+#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1050
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1050
+#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1051
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1054
+#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1055
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1055
+#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1056
msgid "The requested resource could not be located on the server"
msgstr ""
-#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1059
+#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1060
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1060
+#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1061
msgid "Connection timeout while requesting data from server"
msgstr ""
@@ -6878,7 +7211,7 @@ msgid "Unknown response from server"
msgstr ""
#: templates/js/translated/barcode.js:140
-#: templates/js/translated/modals.js:1024
+#: templates/js/translated/modals.js:1025
msgid "Invalid server response"
msgstr ""
@@ -6886,7 +7219,7 @@ msgstr ""
msgid "Scan barcode data below"
msgstr ""
-#: templates/js/translated/barcode.js:280 templates/navbar.html:69
+#: templates/js/translated/barcode.js:280 templates/navbar.html:94
msgid "Scan Barcode"
msgstr ""
@@ -6906,7 +7239,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:682
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:839
msgid "Remove stock item"
msgstr ""
@@ -6976,7 +7309,7 @@ msgstr ""
msgid "Substitutes Available"
msgstr ""
-#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1111
+#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1116
msgid "Variant stock allowed"
msgstr ""
@@ -7000,11 +7333,6 @@ msgstr ""
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1183
-#: templates/js/translated/order.js:1319
-msgid "Actions"
-msgstr ""
-
#: templates/js/translated/bom.js:616
msgid "Validate BOM Item"
msgstr ""
@@ -7025,7 +7353,7 @@ msgstr ""
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:718 templates/js/translated/build.js:855
+#: templates/js/translated/bom.js:718 templates/js/translated/build.js:860
msgid "No BOM items found"
msgstr ""
@@ -7033,7 +7361,7 @@ msgstr ""
msgid "Are you sure you want to delete this BOM item?"
msgstr ""
-#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1095
+#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1100
msgid "Required Part"
msgstr ""
@@ -7041,165 +7369,165 @@ msgstr ""
msgid "Inherited from parent BOM"
msgstr ""
-#: templates/js/translated/build.js:78
+#: templates/js/translated/build.js:83
msgid "Edit Build Order"
msgstr ""
-#: templates/js/translated/build.js:112
+#: templates/js/translated/build.js:117
msgid "Create Build Order"
msgstr ""
-#: templates/js/translated/build.js:133
+#: templates/js/translated/build.js:138
msgid "Allocate stock items to this build output"
msgstr ""
-#: templates/js/translated/build.js:144
+#: templates/js/translated/build.js:149
msgid "Unallocate stock from build output"
msgstr ""
-#: templates/js/translated/build.js:153
+#: templates/js/translated/build.js:158
msgid "Complete build output"
msgstr ""
-#: templates/js/translated/build.js:161
+#: templates/js/translated/build.js:166
msgid "Delete build output"
msgstr ""
-#: templates/js/translated/build.js:184
+#: templates/js/translated/build.js:189
msgid "Are you sure you wish to unallocate stock items from this build?"
msgstr ""
-#: templates/js/translated/build.js:202
+#: templates/js/translated/build.js:207
msgid "Unallocate Stock Items"
msgstr ""
-#: templates/js/translated/build.js:220
+#: templates/js/translated/build.js:225
msgid "Select Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:221
+#: templates/js/translated/build.js:226
msgid "At least one build output must be selected"
msgstr ""
-#: templates/js/translated/build.js:275
+#: templates/js/translated/build.js:280
msgid "Output"
msgstr ""
-#: templates/js/translated/build.js:291
+#: templates/js/translated/build.js:296
msgid "Complete Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:386
+#: templates/js/translated/build.js:391
msgid "No build order allocations found"
msgstr ""
-#: templates/js/translated/build.js:424 templates/js/translated/order.js:1193
+#: templates/js/translated/build.js:429 templates/js/translated/order.js:1848
msgid "Location not specified"
msgstr ""
-#: templates/js/translated/build.js:603
+#: templates/js/translated/build.js:608
msgid "No active build outputs found"
msgstr ""
-#: templates/js/translated/build.js:1052 templates/js/translated/build.js:1760
-#: templates/js/translated/order.js:1326
+#: templates/js/translated/build.js:1057 templates/js/translated/build.js:1766
+#: templates/js/translated/order.js:1982
msgid "Edit stock allocation"
msgstr ""
-#: templates/js/translated/build.js:1054 templates/js/translated/build.js:1761
-#: templates/js/translated/order.js:1327
+#: templates/js/translated/build.js:1059 templates/js/translated/build.js:1767
+#: templates/js/translated/order.js:1983
msgid "Delete stock allocation"
msgstr ""
-#: templates/js/translated/build.js:1072
+#: templates/js/translated/build.js:1077
msgid "Edit Allocation"
msgstr ""
-#: templates/js/translated/build.js:1082
+#: templates/js/translated/build.js:1087
msgid "Remove Allocation"
msgstr ""
-#: templates/js/translated/build.js:1107
+#: templates/js/translated/build.js:1112
msgid "Substitute parts available"
msgstr ""
-#: templates/js/translated/build.js:1124
+#: templates/js/translated/build.js:1129
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:1134 templates/js/translated/build.js:1360
-#: templates/js/translated/build.js:1756 templates/js/translated/order.js:1556
+#: templates/js/translated/build.js:1139 templates/js/translated/build.js:1365
+#: templates/js/translated/build.js:1762 templates/js/translated/order.js:2227
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:1190 templates/js/translated/order.js:1610
+#: templates/js/translated/build.js:1195 templates/js/translated/order.js:2307
msgid "Build stock"
msgstr ""
-#: templates/js/translated/build.js:1194 templates/stock_table.html:52
+#: templates/js/translated/build.js:1199 templates/stock_table.html:52
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:1197 templates/js/translated/order.js:1603
+#: templates/js/translated/build.js:1202 templates/js/translated/order.js:2300
msgid "Allocate stock"
msgstr ""
-#: templates/js/translated/build.js:1262
+#: templates/js/translated/build.js:1267 templates/js/translated/order.js:1499
msgid "Specify stock allocation quantity"
msgstr ""
-#: templates/js/translated/build.js:1333 templates/js/translated/label.js:134
-#: templates/js/translated/report.js:225
+#: templates/js/translated/build.js:1338 templates/js/translated/label.js:134
+#: templates/js/translated/order.js:1550 templates/js/translated/report.js:225
msgid "Select Parts"
msgstr ""
-#: templates/js/translated/build.js:1334
+#: templates/js/translated/build.js:1339 templates/js/translated/order.js:1551
msgid "You must select at least one part to allocate"
msgstr ""
-#: templates/js/translated/build.js:1348
+#: templates/js/translated/build.js:1353 templates/js/translated/order.js:1565
msgid "Select source location (leave blank to take from all locations)"
msgstr ""
-#: templates/js/translated/build.js:1377
+#: templates/js/translated/build.js:1382 templates/js/translated/order.js:1600
msgid "Confirm stock allocation"
msgstr ""
-#: templates/js/translated/build.js:1378
+#: templates/js/translated/build.js:1383
msgid "Allocate Stock Items to Build Order"
msgstr ""
-#: templates/js/translated/build.js:1389
+#: templates/js/translated/build.js:1394 templates/js/translated/order.js:1613
msgid "No matching stock locations"
msgstr ""
-#: templates/js/translated/build.js:1451
+#: templates/js/translated/build.js:1464 templates/js/translated/order.js:1690
msgid "No matching stock items"
msgstr ""
-#: templates/js/translated/build.js:1576
+#: templates/js/translated/build.js:1582
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:1593 templates/js/translated/part.js:1147
-#: templates/js/translated/part.js:1558 templates/js/translated/stock.js:1176
-#: templates/js/translated/stock.js:1953
+#: templates/js/translated/build.js:1599 templates/js/translated/part.js:1147
+#: templates/js/translated/part.js:1558 templates/js/translated/stock.js:1333
+#: templates/js/translated/stock.js:2128
msgid "Select"
msgstr ""
-#: templates/js/translated/build.js:1613
+#: templates/js/translated/build.js:1619
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1674 templates/js/translated/stock.js:2172
+#: templates/js/translated/build.js:1680 templates/js/translated/stock.js:2347
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:1686
+#: templates/js/translated/build.js:1692
msgid "No information"
msgstr ""
-#: templates/js/translated/build.js:1737
+#: templates/js/translated/build.js:1743
msgid "No parts allocated for"
msgstr ""
@@ -7219,7 +7547,7 @@ msgstr "メーカー・パーツの編集"
msgid "Delete Manufacturer Part"
msgstr "メーカー・パーツを削除"
-#: templates/js/translated/company.js:165 templates/js/translated/order.js:90
+#: templates/js/translated/company.js:165 templates/js/translated/order.js:248
msgid "Add Supplier"
msgstr ""
@@ -7354,20 +7682,20 @@ msgstr ""
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1072 templates/modals.html:19
+#: templates/js/translated/forms.js:1078 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1463
+#: templates/js/translated/forms.js:1469
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1667
+#: templates/js/translated/forms.js:1673
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1884
+#: templates/js/translated/forms.js:1893
msgid "Clear input"
msgstr ""
@@ -7380,7 +7708,7 @@ msgid "NO"
msgstr ""
#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:706
+#: templates/js/translated/stock.js:863
msgid "Select Stock Items"
msgstr ""
@@ -7429,62 +7757,62 @@ msgstr ""
msgid "Select Label Template"
msgstr ""
-#: templates/js/translated/modals.js:75 templates/js/translated/modals.js:119
-#: templates/js/translated/modals.js:593
+#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:120
+#: templates/js/translated/modals.js:594
msgid "Cancel"
msgstr ""
-#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:118
-#: templates/js/translated/modals.js:660 templates/js/translated/modals.js:963
+#: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119
+#: templates/js/translated/modals.js:661 templates/js/translated/modals.js:964
#: templates/modals.html:28 templates/modals.html:51
msgid "Submit"
msgstr ""
-#: templates/js/translated/modals.js:117
+#: templates/js/translated/modals.js:118
msgid "Form Title"
msgstr ""
-#: templates/js/translated/modals.js:380
+#: templates/js/translated/modals.js:381
msgid "Waiting for server..."
msgstr ""
-#: templates/js/translated/modals.js:539
+#: templates/js/translated/modals.js:540
msgid "Show Error Information"
msgstr ""
-#: templates/js/translated/modals.js:592
+#: templates/js/translated/modals.js:593
msgid "Accept"
msgstr ""
-#: templates/js/translated/modals.js:649
+#: templates/js/translated/modals.js:650
msgid "Loading Data"
msgstr ""
-#: templates/js/translated/modals.js:915
+#: templates/js/translated/modals.js:916
msgid "Invalid response from server"
msgstr ""
-#: templates/js/translated/modals.js:915
+#: templates/js/translated/modals.js:916
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/translated/modals.js:927
+#: templates/js/translated/modals.js:928
msgid "Error posting form data"
msgstr ""
-#: templates/js/translated/modals.js:1024
+#: templates/js/translated/modals.js:1025
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/translated/modals.js:1039
+#: templates/js/translated/modals.js:1040
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/translated/modals.js:1040
+#: templates/js/translated/modals.js:1041
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/translated/modals.js:1063
+#: templates/js/translated/modals.js:1064
msgid "Error requesting form data"
msgstr ""
@@ -7512,176 +7840,245 @@ msgstr ""
msgid "Order ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:256
+#: templates/js/translated/model_renderers.js:253
+msgid "Shipment ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:273
msgid "Category ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:293
+#: templates/js/translated/model_renderers.js:310
msgid "Manufacturer Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:322
+#: templates/js/translated/model_renderers.js:339
msgid "Supplier Part ID"
msgstr ""
-#: templates/js/translated/order.js:48
+#: templates/js/translated/order.js:75
+msgid "No stock items have been allocated to this shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:80
+msgid "The following stock items will be shipped"
+msgstr ""
+
+#: templates/js/translated/order.js:120
+msgid "Complete Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:126
+msgid "Confirm Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:181
+msgid "Create New Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:206
msgid "Add Customer"
msgstr ""
-#: templates/js/translated/order.js:73
+#: templates/js/translated/order.js:231
msgid "Create Sales Order"
msgstr ""
-#: templates/js/translated/order.js:208
+#: templates/js/translated/order.js:366
msgid "Export Order"
msgstr ""
-#: templates/js/translated/order.js:211 templates/js/translated/stock.js:505
+#: templates/js/translated/order.js:369 templates/js/translated/stock.js:509
msgid "Format"
msgstr ""
-#: templates/js/translated/order.js:212 templates/js/translated/stock.js:506
+#: templates/js/translated/order.js:370 templates/js/translated/stock.js:510
msgid "Select file format"
msgstr ""
-#: templates/js/translated/order.js:300
+#: templates/js/translated/order.js:460
msgid "Select Line Items"
msgstr ""
-#: templates/js/translated/order.js:301
+#: templates/js/translated/order.js:461
msgid "At least one line item must be selected"
msgstr ""
-#: templates/js/translated/order.js:326
+#: templates/js/translated/order.js:486
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:360 templates/js/translated/stock.js:1755
+#: templates/js/translated/order.js:520 templates/js/translated/stock.js:1930
msgid "Stock Status"
msgstr ""
-#: templates/js/translated/order.js:427
+#: templates/js/translated/order.js:587
msgid "Order Code"
msgstr ""
-#: templates/js/translated/order.js:428
+#: templates/js/translated/order.js:588
msgid "Ordered"
msgstr ""
-#: templates/js/translated/order.js:430
+#: templates/js/translated/order.js:590
msgid "Receive"
msgstr ""
-#: templates/js/translated/order.js:449
+#: templates/js/translated/order.js:609
msgid "Confirm receipt of items"
msgstr ""
-#: templates/js/translated/order.js:450
+#: templates/js/translated/order.js:610
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:627 templates/js/translated/part.js:746
+#: templates/js/translated/order.js:790 templates/js/translated/part.js:746
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:659 templates/js/translated/order.js:1062
+#: templates/js/translated/order.js:815 templates/js/translated/order.js:1230
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:771 templates/js/translated/order.js:1645
+#: templates/js/translated/order.js:936 templates/js/translated/order.js:2356
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:783 templates/js/translated/order.js:1656
+#: templates/js/translated/order.js:948 templates/js/translated/order.js:2367
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/order.js:822
+#: templates/js/translated/order.js:987
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:849 templates/js/translated/order.js:1466
+#: templates/js/translated/order.js:1014 templates/js/translated/order.js:2138
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:903 templates/js/translated/order.js:1491
+#: templates/js/translated/order.js:1068 templates/js/translated/order.js:2163
#: templates/js/translated/part.js:1775 templates/js/translated/part.js:1986
msgid "Unit Price"
msgstr ""
-#: templates/js/translated/order.js:918 templates/js/translated/order.js:1507
+#: templates/js/translated/order.js:1083 templates/js/translated/order.js:2179
msgid "Total Price"
msgstr ""
-#: templates/js/translated/order.js:996 templates/js/translated/order.js:1616
+#: templates/js/translated/order.js:1161 templates/js/translated/order.js:2313
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:997
+#: templates/js/translated/order.js:1162 templates/js/translated/order.js:2317
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:1001 templates/js/translated/part.js:878
+#: templates/js/translated/order.js:1166 templates/js/translated/part.js:878
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:1038
+#: templates/js/translated/order.js:1206
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:1076
+#: templates/js/translated/order.js:1244
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:1154
+#: templates/js/translated/order.js:1322
+msgid "Edit shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1325
+msgid "Complete shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1330
+msgid "Delete shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1350
+msgid "Edit Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1367
+msgid "Delete Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1401
+msgid "No matching shipments found"
+msgstr ""
+
+#: templates/js/translated/order.js:1411
+msgid "Shipment Reference"
+msgstr ""
+
+#: templates/js/translated/order.js:1435
+msgid "Not shipped"
+msgstr ""
+
+#: templates/js/translated/order.js:1441
+msgid "Tracking"
+msgstr ""
+
+#: templates/js/translated/order.js:1601
+msgid "Allocate Stock Items to Sales Order"
+msgstr ""
+
+#: templates/js/translated/order.js:1809
msgid "No sales order allocations found"
msgstr ""
-#: templates/js/translated/order.js:1247
+#: templates/js/translated/order.js:1898
msgid "Edit Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1264
+#: templates/js/translated/order.js:1915
msgid "Confirm Delete Operation"
msgstr ""
-#: templates/js/translated/order.js:1265
+#: templates/js/translated/order.js:1916
msgid "Delete Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1307
+#: templates/js/translated/order.js:1959 templates/js/translated/order.js:2048
+#: templates/js/translated/stock.js:1249
+msgid "Shipped to customer"
+msgstr ""
+
+#: templates/js/translated/order.js:1967 templates/js/translated/order.js:2057
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:1556
-msgid "Fulfilled"
-msgstr ""
-
-#: templates/js/translated/order.js:1600
+#: templates/js/translated/order.js:2297
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:1606
+#: templates/js/translated/order.js:2303
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:1613 templates/js/translated/order.js:1792
+#: templates/js/translated/order.js:2310 templates/js/translated/order.js:2476
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:1617
-msgid "Delete line item "
+#: templates/js/translated/order.js:2321
+msgid "Cannot be deleted as items have been shipped"
msgstr ""
-#: templates/js/translated/order.js:1740
-msgid "Allocate Stock Item"
+#: templates/js/translated/order.js:2324
+msgid "Cannot be deleted as items have been allocated"
msgstr ""
-#: templates/js/translated/order.js:1800
+#: templates/js/translated/order.js:2382
+msgid "Allocate Serial Numbers"
+msgstr ""
+
+#: templates/js/translated/order.js:2484
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:1814
+#: templates/js/translated/order.js:2498
msgid "No matching line items"
msgstr ""
@@ -7826,12 +8223,12 @@ msgid "No category"
msgstr ""
#: templates/js/translated/part.js:1230
-#: templates/js/translated/table_filters.js:381
+#: templates/js/translated/table_filters.js:412
msgid "Low stock"
msgstr ""
#: templates/js/translated/part.js:1321 templates/js/translated/part.js:1493
-#: templates/js/translated/stock.js:1914
+#: templates/js/translated/stock.js:2089
msgid "Display as list"
msgstr ""
@@ -7839,7 +8236,7 @@ msgstr ""
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1512 templates/js/translated/stock.js:1933
+#: templates/js/translated/part.js:1512 templates/js/translated/stock.js:2108
msgid "Display as tree"
msgstr ""
@@ -7847,7 +8244,7 @@ msgstr ""
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:1590 templates/js/translated/stock.js:1977
+#: templates/js/translated/part.js:1590 templates/js/translated/stock.js:2152
msgid "Path"
msgstr ""
@@ -7855,11 +8252,11 @@ msgstr ""
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1685 templates/js/translated/stock.js:898
+#: templates/js/translated/part.js:1685 templates/js/translated/stock.js:1055
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1686 templates/js/translated/stock.js:899
+#: templates/js/translated/part.js:1686 templates/js/translated/stock.js:1056
msgid "Delete test result"
msgstr ""
@@ -7898,6 +8295,10 @@ msgstr ""
msgid "Single Price Difference"
msgstr ""
+#: templates/js/translated/plugin.js:22
+msgid "The Plugin was installed"
+msgstr ""
+
#: templates/js/translated/report.js:67
msgid "items selected"
msgstr ""
@@ -7964,300 +8365,316 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/stock.js:71
+#: templates/js/translated/stock.js:72
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:89 templates/js/translated/stock.js:168
+#: templates/js/translated/stock.js:90 templates/js/translated/stock.js:172
msgid "Next available serial number"
msgstr ""
-#: templates/js/translated/stock.js:91 templates/js/translated/stock.js:170
+#: templates/js/translated/stock.js:92 templates/js/translated/stock.js:174
msgid "Latest serial number"
msgstr ""
-#: templates/js/translated/stock.js:105
+#: templates/js/translated/stock.js:100
+msgid "Confirm Stock Serialization"
+msgstr ""
+
+#: templates/js/translated/stock.js:109
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:141
+#: templates/js/translated/stock.js:145
msgid "New Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:181
+#: templates/js/translated/stock.js:185
msgid "This part cannot be serialized"
msgstr ""
-#: templates/js/translated/stock.js:220
+#: templates/js/translated/stock.js:224
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: templates/js/translated/stock.js:226
+#: templates/js/translated/stock.js:230
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: templates/js/translated/stock.js:369
+#: templates/js/translated/stock.js:373
msgid "Created new stock item"
msgstr ""
-#: templates/js/translated/stock.js:382
+#: templates/js/translated/stock.js:386
msgid "Created multiple stock items"
msgstr ""
-#: templates/js/translated/stock.js:407
+#: templates/js/translated/stock.js:411
msgid "Find Serial Number"
msgstr ""
-#: templates/js/translated/stock.js:411 templates/js/translated/stock.js:412
+#: templates/js/translated/stock.js:415 templates/js/translated/stock.js:416
msgid "Enter serial number"
msgstr ""
-#: templates/js/translated/stock.js:428
+#: templates/js/translated/stock.js:432
msgid "Enter a serial number"
msgstr ""
-#: templates/js/translated/stock.js:448
+#: templates/js/translated/stock.js:452
msgid "No matching serial number"
msgstr ""
-#: templates/js/translated/stock.js:457
+#: templates/js/translated/stock.js:461
msgid "More than one matching result found"
msgstr ""
-#: templates/js/translated/stock.js:502
+#: templates/js/translated/stock.js:506
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:513
+#: templates/js/translated/stock.js:517
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:514
+#: templates/js/translated/stock.js:518
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:556
+#: templates/js/translated/stock.js:627
+msgid "Confirm stock assignment"
+msgstr ""
+
+#: templates/js/translated/stock.js:628
+msgid "Assign Stock to Customer"
+msgstr ""
+
+#: templates/js/translated/stock.js:713
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:557
+#: templates/js/translated/stock.js:714
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:563
+#: templates/js/translated/stock.js:720
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:564
+#: templates/js/translated/stock.js:721
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:568
+#: templates/js/translated/stock.js:725
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:569
+#: templates/js/translated/stock.js:726
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:573
+#: templates/js/translated/stock.js:730
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:574 users/models.py:200
+#: templates/js/translated/stock.js:731 users/models.py:202
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:578 templates/stock_table.html:56
+#: templates/js/translated/stock.js:735 templates/stock_table.html:57
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:667
+#: templates/js/translated/stock.js:824
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:667
+#: templates/js/translated/stock.js:824
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:707
+#: templates/js/translated/stock.js:864
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:865
+#: templates/js/translated/stock.js:1022
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:867
+#: templates/js/translated/stock.js:1024
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:872
+#: templates/js/translated/stock.js:1029
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:894
+#: templates/js/translated/stock.js:1051
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:920
+#: templates/js/translated/stock.js:1077
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:977
+#: templates/js/translated/stock.js:1134
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:1084
+#: templates/js/translated/stock.js:1241
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:1088
+#: templates/js/translated/stock.js:1245
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:1092
-msgid "Shipped to customer"
-msgstr ""
-
-#: templates/js/translated/stock.js:1096
+#: templates/js/translated/stock.js:1253
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:1102
+#: templates/js/translated/stock.js:1259
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:1260
+#: templates/js/translated/stock.js:1417
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1265
+#: templates/js/translated/stock.js:1422
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1268
+#: templates/js/translated/stock.js:1425
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1272
+#: templates/js/translated/stock.js:1429
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1274
+#: templates/js/translated/stock.js:1431
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1278
-msgid "Stock item has been allocated"
+#: templates/js/translated/stock.js:1437
+msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1282
+#: templates/js/translated/stock.js:1439
+msgid "Stock item has been fully allocated"
+msgstr ""
+
+#: templates/js/translated/stock.js:1441
+msgid "Stock item has been partially allocated"
+msgstr ""
+
+#: templates/js/translated/stock.js:1446
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1289
+#: templates/js/translated/stock.js:1453
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1291
+#: templates/js/translated/stock.js:1455
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1293
+#: templates/js/translated/stock.js:1457
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1297
-#: templates/js/translated/table_filters.js:183
+#: templates/js/translated/stock.js:1461
+#: templates/js/translated/table_filters.js:188
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1347
+#: templates/js/translated/stock.js:1511
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1420
+#: templates/js/translated/stock.js:1584
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1458
+#: templates/js/translated/stock.js:1622
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1479 templates/js/translated/stock.js:1527
+#: templates/js/translated/stock.js:1643 templates/js/translated/stock.js:1691
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1567
+#: templates/js/translated/stock.js:1731
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1594
+#: templates/js/translated/stock.js:1758
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:1596
+#: templates/js/translated/stock.js:1760
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:1770
+#: templates/js/translated/stock.js:1945
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:1784
+#: templates/js/translated/stock.js:1959
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:1785
+#: templates/js/translated/stock.js:1960
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:2009
+#: templates/js/translated/stock.js:2184
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:2031
+#: templates/js/translated/stock.js:2206
msgid "Details"
msgstr ""
-#: templates/js/translated/stock.js:2056
+#: templates/js/translated/stock.js:2231
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2075
+#: templates/js/translated/stock.js:2250
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2094
+#: templates/js/translated/stock.js:2269
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2112
+#: templates/js/translated/stock.js:2287
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2135
+#: templates/js/translated/stock.js:2310
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2143
+#: templates/js/translated/stock.js:2318
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2184
+#: templates/js/translated/stock.js:2359
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2185
+#: templates/js/translated/stock.js:2360
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2236
+#: templates/js/translated/stock.js:2411
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2287
+#: templates/js/translated/stock.js:2462
msgid "Uninstall Stock Item"
msgstr ""
@@ -8278,7 +8695,7 @@ msgid "Allow Variant Stock"
msgstr ""
#: templates/js/translated/table_filters.js:110
-#: templates/js/translated/table_filters.js:178
+#: templates/js/translated/table_filters.js:183
msgid "Include sublocations"
msgstr ""
@@ -8288,54 +8705,54 @@ msgstr ""
#: templates/js/translated/table_filters.js:121
#: templates/js/translated/table_filters.js:122
-#: templates/js/translated/table_filters.js:358
+#: templates/js/translated/table_filters.js:389
msgid "Include subcategories"
msgstr ""
#: templates/js/translated/table_filters.js:126
-#: templates/js/translated/table_filters.js:393
+#: templates/js/translated/table_filters.js:424
msgid "Subscribed"
msgstr ""
#: templates/js/translated/table_filters.js:136
-#: templates/js/translated/table_filters.js:213
+#: templates/js/translated/table_filters.js:218
msgid "Is Serialized"
msgstr ""
#: templates/js/translated/table_filters.js:139
-#: templates/js/translated/table_filters.js:220
+#: templates/js/translated/table_filters.js:225
msgid "Serial number GTE"
msgstr ""
#: templates/js/translated/table_filters.js:140
-#: templates/js/translated/table_filters.js:221
+#: templates/js/translated/table_filters.js:226
msgid "Serial number greater than or equal to"
msgstr ""
#: templates/js/translated/table_filters.js:143
-#: templates/js/translated/table_filters.js:224
+#: templates/js/translated/table_filters.js:229
msgid "Serial number LTE"
msgstr ""
#: templates/js/translated/table_filters.js:144
-#: templates/js/translated/table_filters.js:225
+#: templates/js/translated/table_filters.js:230
msgid "Serial number less than or equal to"
msgstr ""
#: templates/js/translated/table_filters.js:147
#: templates/js/translated/table_filters.js:148
-#: templates/js/translated/table_filters.js:216
-#: templates/js/translated/table_filters.js:217
+#: templates/js/translated/table_filters.js:221
+#: templates/js/translated/table_filters.js:222
msgid "Serial number"
msgstr ""
#: templates/js/translated/table_filters.js:152
-#: templates/js/translated/table_filters.js:234
+#: templates/js/translated/table_filters.js:239
msgid "Batch code"
msgstr ""
#: templates/js/translated/table_filters.js:163
-#: templates/js/translated/table_filters.js:348
+#: templates/js/translated/table_filters.js:379
msgid "Active parts"
msgstr ""
@@ -8356,101 +8773,111 @@ msgid "Item has been allocated"
msgstr ""
#: templates/js/translated/table_filters.js:179
-msgid "Include stock in sublocations"
+msgid "Stock is available for use"
msgstr ""
#: templates/js/translated/table_filters.js:184
-msgid "Show stock items which are depleted"
+msgid "Include stock in sublocations"
msgstr ""
#: templates/js/translated/table_filters.js:189
-msgid "Show items which are in stock"
-msgstr ""
-
-#: templates/js/translated/table_filters.js:193
-msgid "In Production"
+msgid "Show stock items which are depleted"
msgstr ""
#: templates/js/translated/table_filters.js:194
-msgid "Show items which are in production"
+msgid "Show items which are in stock"
msgstr ""
#: templates/js/translated/table_filters.js:198
-msgid "Include Variants"
+msgid "In Production"
msgstr ""
#: templates/js/translated/table_filters.js:199
-msgid "Include stock items for variant parts"
+msgid "Show items which are in production"
msgstr ""
#: templates/js/translated/table_filters.js:203
-msgid "Installed"
+msgid "Include Variants"
msgstr ""
#: templates/js/translated/table_filters.js:204
-msgid "Show stock items which are installed in another item"
+msgid "Include stock items for variant parts"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:208
+msgid "Installed"
msgstr ""
#: templates/js/translated/table_filters.js:209
+msgid "Show stock items which are installed in another item"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:214
msgid "Show items which have been assigned to a customer"
msgstr ""
-#: templates/js/translated/table_filters.js:229
-#: templates/js/translated/table_filters.js:230
+#: templates/js/translated/table_filters.js:234
+#: templates/js/translated/table_filters.js:235
msgid "Stock status"
msgstr ""
-#: templates/js/translated/table_filters.js:238
+#: templates/js/translated/table_filters.js:243
msgid "Has purchase price"
msgstr ""
-#: templates/js/translated/table_filters.js:239
+#: templates/js/translated/table_filters.js:244
msgid "Show stock items which have a purchase price set"
msgstr ""
-#: templates/js/translated/table_filters.js:248
+#: templates/js/translated/table_filters.js:253
msgid "Show stock items which have expired"
msgstr ""
-#: templates/js/translated/table_filters.js:254
+#: templates/js/translated/table_filters.js:259
msgid "Show stock which is close to expiring"
msgstr ""
-#: templates/js/translated/table_filters.js:285
+#: templates/js/translated/table_filters.js:290
msgid "Build status"
msgstr ""
-#: templates/js/translated/table_filters.js:313
-#: templates/js/translated/table_filters.js:330
+#: templates/js/translated/table_filters.js:303
+#: templates/js/translated/table_filters.js:344
+msgid "Assigned to me"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:320
+#: templates/js/translated/table_filters.js:331
+#: templates/js/translated/table_filters.js:352
msgid "Order status"
msgstr ""
-#: templates/js/translated/table_filters.js:318
-#: templates/js/translated/table_filters.js:335
+#: templates/js/translated/table_filters.js:336
+#: templates/js/translated/table_filters.js:357
msgid "Outstanding"
msgstr ""
-#: templates/js/translated/table_filters.js:359
+#: templates/js/translated/table_filters.js:390
msgid "Include parts in subcategories"
msgstr ""
-#: templates/js/translated/table_filters.js:363
+#: templates/js/translated/table_filters.js:394
msgid "Has IPN"
msgstr ""
-#: templates/js/translated/table_filters.js:364
+#: templates/js/translated/table_filters.js:395
msgid "Part has internal part number"
msgstr ""
-#: templates/js/translated/table_filters.js:369
+#: templates/js/translated/table_filters.js:400
msgid "Show active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:377
+#: templates/js/translated/table_filters.js:408
msgid "Stock available"
msgstr ""
-#: templates/js/translated/table_filters.js:405
+#: templates/js/translated/table_filters.js:436
msgid "Purchasable"
msgstr ""
@@ -8507,27 +8934,23 @@ msgstr ""
msgid "All"
msgstr ""
-#: templates/navbar.html:40
+#: templates/navbar.html:42
msgid "Buy"
msgstr ""
-#: templates/navbar.html:52
+#: templates/navbar.html:54
msgid "Sell"
msgstr ""
-#: templates/navbar.html:86 users/models.py:39
-msgid "Admin"
-msgstr ""
-
-#: templates/navbar.html:88
+#: templates/navbar.html:113
msgid "Logout"
msgstr ""
-#: templates/navbar.html:90
+#: templates/navbar.html:115
msgid "Login"
msgstr ""
-#: templates/navbar.html:111
+#: templates/navbar.html:136
msgid "About InvenTree"
msgstr ""
@@ -8639,15 +9062,15 @@ msgstr ""
msgid "Order selected items"
msgstr ""
-#: templates/stock_table.html:53
+#: templates/stock_table.html:54
msgid "Change status"
msgstr ""
-#: templates/stock_table.html:53
+#: templates/stock_table.html:54
msgid "Change stock status"
msgstr ""
-#: templates/stock_table.html:56
+#: templates/stock_table.html:57
msgid "Delete selected items"
msgstr ""
@@ -8683,35 +9106,35 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:187
+#: users/models.py:189
msgid "Permission set"
msgstr ""
-#: users/models.py:195
+#: users/models.py:197
msgid "Group"
msgstr ""
-#: users/models.py:198
+#: users/models.py:200
msgid "View"
msgstr ""
-#: users/models.py:198
+#: users/models.py:200
msgid "Permission to view items"
msgstr ""
-#: users/models.py:200
+#: users/models.py:202
msgid "Permission to add items"
msgstr ""
-#: users/models.py:202
+#: users/models.py:204
msgid "Change"
msgstr ""
-#: users/models.py:202
+#: users/models.py:204
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:204
+#: users/models.py:206
msgid "Permission to delete items"
msgstr ""
diff --git a/InvenTree/locale/ko/LC_MESSAGES/django.po b/InvenTree/locale/ko/LC_MESSAGES/django.po
index 226941ff9f..033d2a192a 100644
--- a/InvenTree/locale/ko/LC_MESSAGES/django.po
+++ b/InvenTree/locale/ko/LC_MESSAGES/django.po
@@ -1,9 +1,10 @@
+#: templates/js/translated/order.js:1973
msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-12-03 10:37+0000\n"
-"PO-Revision-Date: 2021-12-03 11:25\n"
+"POT-Creation-Date: 2021-12-08 23:43+0000\n"
+"PO-Revision-Date: 2021-12-08 23:47\n"
"Last-Translator: \n"
"Language-Team: Korean\n"
"Language: ko_KR\n"
@@ -34,8 +35,8 @@ msgid "Enter date"
msgstr ""
#: InvenTree/forms.py:120 build/forms.py:48 build/forms.py:69 build/forms.py:93
-#: order/forms.py:26 order/forms.py:37 order/forms.py:48 order/forms.py:59
-#: order/forms.py:70 part/forms.py:108 templates/account/email_confirm.html:20
+#: order/forms.py:24 order/forms.py:35 order/forms.py:46 order/forms.py:57
+#: part/forms.py:108 templates/account/email_confirm.html:20
#: templates/js/translated/forms.js:595
msgid "Confirm"
msgstr ""
@@ -85,8 +86,8 @@ msgstr ""
msgid "Duplicate serial: {n}"
msgstr ""
-#: InvenTree/helpers.py:437 order/models.py:318 order/models.py:440
-#: stock/views.py:1264
+#: InvenTree/helpers.py:437 order/models.py:279 order/models.py:420
+#: stock/views.py:1231
msgid "Invalid quantity provided"
msgstr ""
@@ -122,7 +123,7 @@ msgstr ""
msgid "Missing external link"
msgstr ""
-#: InvenTree/models.py:132 stock/models.py:1864
+#: InvenTree/models.py:132 stock/models.py:1852
#: templates/js/translated/attachment.js:117
msgid "Attachment"
msgstr ""
@@ -132,7 +133,7 @@ msgid "Select file to attach"
msgstr ""
#: InvenTree/models.py:139 company/models.py:131 company/models.py:348
-#: company/models.py:564 order/models.py:163 part/models.py:797
+#: company/models.py:564 order/models.py:124 part/models.py:797
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:537
#: templates/js/translated/company.js:826 templates/js/translated/part.js:1258
@@ -140,7 +141,7 @@ msgid "Link"
msgstr ""
#: InvenTree/models.py:140 build/models.py:330 part/models.py:798
-#: stock/models.py:530
+#: stock/models.py:524
msgid "Link to external URL"
msgstr ""
@@ -152,10 +153,10 @@ msgstr ""
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1185
-#: common/models.py:1186 part/models.py:2205 part/models.py:2225
+#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1213
+#: common/models.py:1214 part/models.py:2205 part/models.py:2225
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2166
+#: templates/js/translated/stock.js:2341
msgid "User"
msgstr ""
@@ -194,10 +195,15 @@ msgstr ""
#: InvenTree/models.py:277 InvenTree/models.py:278 company/models.py:415
#: label/models.py:112 part/models.py:741 part/models.py:2389
-#: report/models.py:181 templates/InvenTree/settings/settings.html:259
+#: plugin/models.py:39 report/models.py:181
+#: templates/InvenTree/settings/mixins/urls.html:11
+#: templates/InvenTree/settings/plugin.html:47
+#: templates/InvenTree/settings/plugin.html:124
+#: templates/InvenTree/settings/plugin_settings.html:23
+#: templates/InvenTree/settings/settings.html:268
#: templates/js/translated/company.js:638 templates/js/translated/part.js:506
#: templates/js/translated/part.js:643 templates/js/translated/part.js:1565
-#: templates/js/translated/stock.js:1959
+#: templates/js/translated/stock.js:2134
msgid "Name"
msgstr ""
@@ -206,22 +212,23 @@ msgstr ""
#: company/models.py:570 company/templates/company/company_base.html:68
#: company/templates/company/manufacturer_part.html:76
#: company/templates/company/supplier_part.html:73 label/models.py:119
-#: order/models.py:161 part/models.py:764 part/templates/part/category.html:70
+#: order/models.py:122 part/models.py:764 part/templates/part/category.html:70
#: part/templates/part/part_base.html:163
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:553 report/models.py:592
#: report/templates/report/inventree_build_order_base.html:118
-#: stock/templates/stock/location.html:89 templates/js/translated/bom.js:215
-#: templates/js/translated/bom.js:428 templates/js/translated/build.js:1621
-#: templates/js/translated/company.js:345
+#: stock/templates/stock/location.html:89
+#: templates/InvenTree/settings/plugin_settings.html:33
+#: templates/js/translated/bom.js:215 templates/js/translated/bom.js:428
+#: templates/js/translated/build.js:1627 templates/js/translated/company.js:345
#: templates/js/translated/company.js:548
-#: templates/js/translated/company.js:837 templates/js/translated/order.js:680
-#: templates/js/translated/order.js:854 templates/js/translated/order.js:1090
+#: templates/js/translated/company.js:837 templates/js/translated/order.js:836
+#: templates/js/translated/order.js:1019 templates/js/translated/order.js:1258
#: templates/js/translated/part.js:565 templates/js/translated/part.js:933
#: templates/js/translated/part.js:1018 templates/js/translated/part.js:1188
#: templates/js/translated/part.js:1584 templates/js/translated/part.js:1653
-#: templates/js/translated/stock.js:1233 templates/js/translated/stock.js:1971
-#: templates/js/translated/stock.js:2016
+#: templates/js/translated/stock.js:1390 templates/js/translated/stock.js:2146
+#: templates/js/translated/stock.js:2191
msgid "Description"
msgstr ""
@@ -241,83 +248,83 @@ msgstr ""
msgid "Filename"
msgstr ""
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:689
msgid "German"
msgstr ""
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:690
msgid "Greek"
msgstr ""
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:691
msgid "English"
msgstr ""
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:692
msgid "Spanish"
msgstr ""
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:693
msgid "Spanish (Mexican)"
msgstr ""
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:694
msgid "French"
msgstr ""
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:695
msgid "Hebrew"
msgstr ""
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:696
msgid "Italian"
msgstr ""
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:697
msgid "Japanese"
msgstr ""
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:698
msgid "Korean"
msgstr ""
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:699
msgid "Dutch"
msgstr ""
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:700
msgid "Norwegian"
msgstr ""
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:701
msgid "Polish"
msgstr ""
-#: InvenTree/settings.py:683
+#: InvenTree/settings.py:702
msgid "Portugese"
msgstr ""
-#: InvenTree/settings.py:684
+#: InvenTree/settings.py:703
msgid "Russian"
msgstr ""
-#: InvenTree/settings.py:685
+#: InvenTree/settings.py:704
msgid "Swedish"
msgstr ""
-#: InvenTree/settings.py:686
+#: InvenTree/settings.py:705
msgid "Thai"
msgstr ""
-#: InvenTree/settings.py:687
+#: InvenTree/settings.py:706
msgid "Turkish"
msgstr ""
-#: InvenTree/settings.py:688
+#: InvenTree/settings.py:707
msgid "Vietnamese"
msgstr ""
-#: InvenTree/settings.py:689
+#: InvenTree/settings.py:708
msgid "Chinese"
msgstr ""
@@ -334,7 +341,7 @@ msgid "InvenTree system health checks failed"
msgstr ""
#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142
-#: InvenTree/status_codes.py:311
+#: InvenTree/status_codes.py:311 templates/js/translated/table_filters.js:313
msgid "Pending"
msgstr ""
@@ -343,6 +350,8 @@ msgid "Placed"
msgstr ""
#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:314
+#: order/templates/order/order_base.html:128
+#: order/templates/order/sales_order_base.html:132
msgid "Complete"
msgstr ""
@@ -361,8 +370,8 @@ msgstr ""
msgid "Returned"
msgstr ""
-#: InvenTree/status_codes.py:143
-#: order/templates/order/sales_order_base.html:148
+#: InvenTree/status_codes.py:143 order/models.py:939
+#: templates/js/translated/order.js:1980 templates/js/translated/order.js:2255
msgid "Shipped"
msgstr ""
@@ -442,7 +451,7 @@ msgstr ""
msgid "Split child item"
msgstr ""
-#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:208
+#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:213
msgid "Sent to customer"
msgstr ""
@@ -522,55 +531,55 @@ msgstr ""
msgid "Password fields must match"
msgstr ""
-#: InvenTree/views.py:883 templates/navbar.html:101
+#: InvenTree/views.py:883 templates/navbar.html:126
msgid "System Information"
msgstr ""
-#: barcodes/api.py:53 barcodes/api.py:150
+#: barcodes/api.py:54 barcodes/api.py:151
msgid "Must provide barcode_data parameter"
msgstr ""
-#: barcodes/api.py:126
+#: barcodes/api.py:127
msgid "No match found for barcode data"
msgstr ""
-#: barcodes/api.py:128
+#: barcodes/api.py:129
msgid "Match found for barcode data"
msgstr ""
-#: barcodes/api.py:153
+#: barcodes/api.py:154
msgid "Must provide stockitem parameter"
msgstr ""
-#: barcodes/api.py:160
+#: barcodes/api.py:161
msgid "No matching stock item found"
msgstr ""
-#: barcodes/api.py:190
-msgid "Barcode already matches StockItem object"
+#: barcodes/api.py:191
+msgid "Barcode already matches Stock Item"
msgstr ""
-#: barcodes/api.py:194
-msgid "Barcode already matches StockLocation object"
+#: barcodes/api.py:195
+msgid "Barcode already matches Stock Location"
msgstr ""
-#: barcodes/api.py:198
-msgid "Barcode already matches Part object"
+#: barcodes/api.py:199
+msgid "Barcode already matches Part"
msgstr ""
-#: barcodes/api.py:204 barcodes/api.py:216
-msgid "Barcode hash already matches StockItem object"
+#: barcodes/api.py:205 barcodes/api.py:217
+msgid "Barcode hash already matches Stock Item"
msgstr ""
-#: barcodes/api.py:222
-msgid "Barcode associated with StockItem"
+#: barcodes/api.py:223
+msgid "Barcode associated with Stock Item"
msgstr ""
#: build/forms.py:36 build/models.py:1283
#: build/templates/build/build_base.html:132
-#: build/templates/build/detail.html:35 common/models.py:1225
+#: build/templates/build/detail.html:35 common/models.py:1253
#: company/forms.py:42 company/templates/company/supplier_part.html:251
-#: order/forms.py:102 order/models.py:729 order/models.py:991
+#: order/models.py:794 order/models.py:1205 order/serializers.py:810
#: order/templates/order/order_wizard/match_parts.html:30
#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:223
#: part/forms.py:239 part/forms.py:255 part/models.py:2576
@@ -582,20 +591,23 @@ msgstr ""
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:81
#: report/templates/report/inventree_test_report_base.html:139
-#: stock/forms.py:156 stock/serializers.py:291
+#: stock/forms.py:142 stock/serializers.py:293
#: stock/templates/stock/item_base.html:174
+#: stock/templates/stock/item_base.html:255
+#: stock/templates/stock/item_base.html:263
#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443
-#: templates/js/translated/build.js:235 templates/js/translated/build.js:435
-#: templates/js/translated/build.js:629 templates/js/translated/build.js:639
-#: templates/js/translated/build.js:1015 templates/js/translated/build.js:1362
+#: templates/js/translated/build.js:240 templates/js/translated/build.js:440
+#: templates/js/translated/build.js:634 templates/js/translated/build.js:644
+#: templates/js/translated/build.js:1020 templates/js/translated/build.js:1367
#: templates/js/translated/model_renderers.js:99
-#: templates/js/translated/order.js:891 templates/js/translated/order.js:1204
-#: templates/js/translated/order.js:1282 templates/js/translated/order.js:1289
-#: templates/js/translated/order.js:1378 templates/js/translated/order.js:1478
-#: templates/js/translated/part.js:843 templates/js/translated/part.js:1796
-#: templates/js/translated/part.js:1919 templates/js/translated/part.js:1997
-#: templates/js/translated/stock.js:378 templates/js/translated/stock.js:2151
-#: templates/js/translated/stock.js:2253
+#: templates/js/translated/order.js:101 templates/js/translated/order.js:1056
+#: templates/js/translated/order.js:1578 templates/js/translated/order.js:1859
+#: templates/js/translated/order.js:1947 templates/js/translated/order.js:2036
+#: templates/js/translated/order.js:2150 templates/js/translated/part.js:843
+#: templates/js/translated/part.js:1796 templates/js/translated/part.js:1919
+#: templates/js/translated/part.js:1997 templates/js/translated/stock.js:382
+#: templates/js/translated/stock.js:579 templates/js/translated/stock.js:2326
+#: templates/js/translated/stock.js:2428
msgid "Quantity"
msgstr ""
@@ -603,9 +615,9 @@ msgstr ""
msgid "Enter quantity for build output"
msgstr ""
-#: build/forms.py:41 order/forms.py:96 stock/forms.py:95
-#: stock/serializers.py:312 templates/js/translated/stock.js:225
-#: templates/js/translated/stock.js:379
+#: build/forms.py:41 order/serializers.py:814 stock/forms.py:81
+#: stock/serializers.py:314 templates/js/translated/stock.js:229
+#: templates/js/translated/stock.js:383
msgid "Serial Numbers"
msgstr ""
@@ -640,17 +652,17 @@ msgstr ""
#: build/models.py:137 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:397
+#: templates/js/translated/build.js:402
msgid "Build Order"
msgstr ""
#: build/models.py:138 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
-#: order/templates/order/sales_order_detail.html:42
-#: order/templates/order/so_sidebar.html:7
+#: order/templates/order/sales_order_detail.html:92
+#: order/templates/order/so_sidebar.html:13
#: part/templates/part/part_sidebar.html:20 templates/InvenTree/index.html:221
#: templates/InvenTree/search.html:145
-#: templates/InvenTree/settings/sidebar.html:42 users/models.py:44
+#: templates/InvenTree/settings/sidebar.html:43 users/models.py:44
msgid "Build Orders"
msgstr ""
@@ -658,13 +670,13 @@ msgstr ""
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:199 order/models.py:249 order/models.py:556
-#: order/models.py:736 part/models.py:2585
+#: build/models.py:199 order/models.py:210 order/models.py:536
+#: order/models.py:801 part/models.py:2585
#: part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1119
-#: templates/js/translated/order.js:885 templates/js/translated/order.js:1472
+#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1124
+#: templates/js/translated/order.js:1050 templates/js/translated/order.js:2144
msgid "Reference"
msgstr ""
@@ -683,7 +695,7 @@ msgstr ""
#: build/models.py:225 build/templates/build/build_base.html:77
#: build/templates/build/detail.html:30 company/models.py:705
-#: order/models.py:789 order/models.py:860
+#: order/models.py:854 order/models.py:928
#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357
#: part/models.py:2151 part/models.py:2167 part/models.py:2186
#: part/models.py:2203 part/models.py:2305 part/models.py:2427
@@ -698,14 +710,16 @@ msgstr ""
#: templates/email/build_order_required_stock.html:17
#: templates/email/low_stock_notification.html:16
#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:214
-#: templates/js/translated/bom.js:393 templates/js/translated/build.js:620
-#: templates/js/translated/build.js:988 templates/js/translated/build.js:1359
-#: templates/js/translated/build.js:1626 templates/js/translated/company.js:489
-#: templates/js/translated/company.js:746 templates/js/translated/order.js:426
-#: templates/js/translated/order.js:839 templates/js/translated/order.js:1456
-#: templates/js/translated/part.js:918 templates/js/translated/part.js:999
-#: templates/js/translated/part.js:1166 templates/js/translated/stock.js:590
-#: templates/js/translated/stock.js:1190 templates/js/translated/stock.js:2241
+#: templates/js/translated/bom.js:393 templates/js/translated/build.js:625
+#: templates/js/translated/build.js:993 templates/js/translated/build.js:1364
+#: templates/js/translated/build.js:1632 templates/js/translated/company.js:489
+#: templates/js/translated/company.js:746 templates/js/translated/order.js:84
+#: templates/js/translated/order.js:586 templates/js/translated/order.js:1004
+#: templates/js/translated/order.js:1576 templates/js/translated/order.js:1933
+#: templates/js/translated/order.js:2128 templates/js/translated/part.js:918
+#: templates/js/translated/part.js:999 templates/js/translated/part.js:1166
+#: templates/js/translated/stock.js:553 templates/js/translated/stock.js:747
+#: templates/js/translated/stock.js:1347 templates/js/translated/stock.js:2416
msgid "Part"
msgstr ""
@@ -721,7 +735,8 @@ msgstr ""
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:247 templates/js/translated/build.js:1347
+#: build/models.py:247 templates/js/translated/build.js:1352
+#: templates/js/translated/order.js:1564
msgid "Source Location"
msgstr ""
@@ -761,7 +776,7 @@ msgstr ""
msgid "Build status code"
msgstr ""
-#: build/models.py:285 stock/models.py:534
+#: build/models.py:285 stock/models.py:528
msgid "Batch Code"
msgstr ""
@@ -769,12 +784,12 @@ msgstr ""
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:292 order/models.py:165 part/models.py:936
-#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1103
+#: build/models.py:292 order/models.py:126 part/models.py:936
+#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1271
msgid "Creation Date"
msgstr ""
-#: build/models.py:296 order/models.py:578
+#: build/models.py:296 order/models.py:558
msgid "Target completion date"
msgstr ""
@@ -782,8 +797,8 @@ msgstr ""
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/models.py:300 order/models.py:291
-#: templates/js/translated/build.js:1697
+#: build/models.py:300 order/models.py:252
+#: templates/js/translated/build.js:1703
msgid "Completion Date"
msgstr ""
@@ -791,7 +806,7 @@ msgstr ""
msgid "completed by"
msgstr ""
-#: build/models.py:314 templates/js/translated/build.js:1668
+#: build/models.py:314 templates/js/translated/build.js:1674
msgid "Issued by"
msgstr ""
@@ -800,11 +815,11 @@ msgid "User who issued this build order"
msgstr ""
#: build/models.py:323 build/templates/build/build_base.html:185
-#: build/templates/build/detail.html:116 order/models.py:179
-#: order/templates/order/order_base.html:158
-#: order/templates/order/sales_order_base.html:162 part/models.py:940
+#: build/templates/build/detail.html:116 order/models.py:140
+#: order/templates/order/order_base.html:170
+#: order/templates/order/sales_order_base.html:182 part/models.py:940
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:1680 templates/js/translated/order.js:699
+#: templates/js/translated/build.js:1686 templates/js/translated/order.js:864
msgid "Responsible"
msgstr ""
@@ -815,7 +830,7 @@ msgstr ""
#: build/models.py:329 build/templates/build/detail.html:102
#: company/templates/company/manufacturer_part.html:102
#: company/templates/company/supplier_part.html:126
-#: part/templates/part/part_base.html:354 stock/models.py:528
+#: part/templates/part/part_base.html:354 stock/models.py:522
#: stock/templates/stock/item_base.html:374
msgid "External Link"
msgstr ""
@@ -823,18 +838,19 @@ msgstr ""
#: build/models.py:334 build/serializers.py:201
#: build/templates/build/sidebar.html:21 company/models.py:142
#: company/models.py:577 company/templates/company/sidebar.html:25
-#: order/models.py:183 order/models.py:738
+#: order/models.py:144 order/models.py:803 order/models.py:1049
#: order/templates/order/po_sidebar.html:11
-#: order/templates/order/so_sidebar.html:11 part/models.py:925
+#: order/templates/order/so_sidebar.html:17 part/models.py:925
#: part/templates/part/detail.html:116 part/templates/part/part_sidebar.html:50
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/forms.py:154 stock/forms.py:204 stock/forms.py:238 stock/models.py:600
-#: stock/models.py:1764 stock/models.py:1870 stock/serializers.py:330
-#: stock/serializers.py:588 stock/templates/stock/stock_sidebar.html:21
+#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:594
+#: stock/models.py:1752 stock/models.py:1858 stock/serializers.py:332
+#: stock/serializers.py:624 stock/serializers.py:711
+#: stock/templates/stock/stock_sidebar.html:21
#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599
-#: templates/js/translated/company.js:842 templates/js/translated/order.js:984
-#: templates/js/translated/order.js:1582 templates/js/translated/stock.js:973
-#: templates/js/translated/stock.js:1452
+#: templates/js/translated/company.js:842 templates/js/translated/order.js:1149
+#: templates/js/translated/order.js:1445 templates/js/translated/order.js:2280
+#: templates/js/translated/stock.js:1130 templates/js/translated/stock.js:1616
msgid "Notes"
msgstr ""
@@ -867,7 +883,7 @@ msgstr ""
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1133 order/models.py:964
+#: build/models.py:1133 order/models.py:1165
msgid "Allocation quantity must be greater than zero"
msgstr ""
@@ -880,8 +896,8 @@ msgid "Selected stock item not found in BOM"
msgstr ""
#: build/models.py:1253 stock/templates/stock/item_base.html:346
-#: templates/InvenTree/search.html:143 templates/js/translated/build.js:1599
-#: templates/navbar.html:33
+#: templates/InvenTree/search.html:143 templates/js/translated/build.js:1605
+#: templates/navbar.html:35
msgid "Build"
msgstr ""
@@ -889,14 +905,17 @@ msgstr ""
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1270 build/serializers.py:328
+#: build/models.py:1270 build/serializers.py:328 order/serializers.py:690
+#: order/serializers.py:708 stock/serializers.py:562
#: stock/templates/stock/item_base.html:8
#: stock/templates/stock/item_base.html:16
#: stock/templates/stock/item_base.html:368
-#: templates/js/translated/build.js:408 templates/js/translated/build.js:413
-#: templates/js/translated/build.js:1361 templates/js/translated/build.js:1742
-#: templates/js/translated/order.js:1177 templates/js/translated/order.js:1182
-#: templates/js/translated/stock.js:2102
+#: templates/js/translated/build.js:413 templates/js/translated/build.js:418
+#: templates/js/translated/build.js:1366 templates/js/translated/build.js:1748
+#: templates/js/translated/order.js:85 templates/js/translated/order.js:1577
+#: templates/js/translated/order.js:1832 templates/js/translated/order.js:1837
+#: templates/js/translated/order.js:1940 templates/js/translated/order.js:2030
+#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:2277
msgid "Stock Item"
msgstr ""
@@ -936,16 +955,17 @@ msgstr ""
msgid "This build output is not fully allocated"
msgstr ""
-#: build/serializers.py:190 order/serializers.py:228 order/serializers.py:296
-#: stock/forms.py:236 stock/serializers.py:323 stock/serializers.py:690
+#: build/serializers.py:190 order/serializers.py:226 order/serializers.py:294
+#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:813
#: stock/templates/stock/item_base.html:314
#: templates/js/translated/barcode.js:384
-#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:420
-#: templates/js/translated/build.js:1027 templates/js/translated/order.js:348
-#: templates/js/translated/order.js:1189 templates/js/translated/order.js:1297
-#: templates/js/translated/order.js:1303 templates/js/translated/part.js:177
-#: templates/js/translated/stock.js:592 templates/js/translated/stock.js:1333
-#: templates/js/translated/stock.js:2043
+#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:425
+#: templates/js/translated/build.js:1032 templates/js/translated/order.js:508
+#: templates/js/translated/order.js:1844 templates/js/translated/order.js:1955
+#: templates/js/translated/order.js:1963 templates/js/translated/order.js:2044
+#: templates/js/translated/part.js:177 templates/js/translated/stock.js:555
+#: templates/js/translated/stock.js:749 templates/js/translated/stock.js:1497
+#: templates/js/translated/stock.js:2218
msgid "Location"
msgstr ""
@@ -954,12 +974,12 @@ msgid "Location for completed build outputs"
msgstr ""
#: build/serializers.py:197 build/templates/build/build_base.html:137
-#: build/templates/build/detail.html:63 order/models.py:572
-#: order/serializers.py:249 stock/templates/stock/item_base.html:180
-#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1655
-#: templates/js/translated/order.js:431 templates/js/translated/order.js:1095
-#: templates/js/translated/stock.js:1308 templates/js/translated/stock.js:2120
-#: templates/js/translated/stock.js:2269
+#: build/templates/build/detail.html:63 order/models.py:552
+#: order/serializers.py:247 stock/templates/stock/item_base.html:180
+#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1661
+#: templates/js/translated/order.js:591 templates/js/translated/order.js:840
+#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1472
+#: templates/js/translated/stock.js:2295 templates/js/translated/stock.js:2444
msgid "Status"
msgstr ""
@@ -984,16 +1004,16 @@ msgstr ""
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:334
+#: build/serializers.py:334 stock/serializers.py:569
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:348 order/models.py:316 order/serializers.py:242
-#: stock/models.py:371 stock/models.py:1093 stock/serializers.py:303
+#: build/serializers.py:348 order/models.py:277 order/serializers.py:240
+#: stock/models.py:365 stock/models.py:1081 stock/serializers.py:305
msgid "Quantity must be greater than zero"
msgstr ""
-#: build/serializers.py:390
+#: build/serializers.py:390 order/serializers.py:741
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
@@ -1006,7 +1026,7 @@ msgstr ""
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:431
+#: build/serializers.py:431 order/serializers.py:984
msgid "Allocation items must be provided"
msgstr ""
@@ -1079,11 +1099,11 @@ msgstr ""
#: build/templates/build/build_base.html:146
#: build/templates/build/detail.html:132
-#: order/templates/order/order_base.html:144
-#: order/templates/order/sales_order_base.html:141
+#: order/templates/order/order_base.html:156
+#: order/templates/order/sales_order_base.html:163
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:1692 templates/js/translated/order.js:689
-#: templates/js/translated/order.js:1108
+#: templates/js/translated/build.js:1698 templates/js/translated/order.js:854
+#: templates/js/translated/order.js:1276
msgid "Target Date"
msgstr ""
@@ -1096,28 +1116,28 @@ msgstr ""
#: build/templates/build/build_base.html:196
#: order/templates/order/order_base.html:98
#: order/templates/order/sales_order_base.html:93
-#: templates/js/translated/table_filters.js:294
-#: templates/js/translated/table_filters.js:322
-#: templates/js/translated/table_filters.js:339
+#: templates/js/translated/table_filters.js:299
+#: templates/js/translated/table_filters.js:340
+#: templates/js/translated/table_filters.js:361
msgid "Overdue"
msgstr ""
#: build/templates/build/build_base.html:158
#: build/templates/build/detail.html:68 build/templates/build/detail.html:143
-#: templates/js/translated/build.js:1641
-#: templates/js/translated/table_filters.js:304
+#: order/templates/order/sales_order_base.html:170
+#: templates/js/translated/build.js:1647
+#: templates/js/translated/table_filters.js:370
msgid "Completed"
msgstr ""
#: build/templates/build/build_base.html:171
-#: build/templates/build/detail.html:95 order/models.py:857
-#: order/templates/order/sales_order_base.html:9
+#: build/templates/build/detail.html:95 order/models.py:925
+#: order/models.py:1021 order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
-#: order/templates/order/sales_order_ship.html:25
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:308
-#: templates/js/translated/order.js:1050
+#: templates/js/translated/order.js:1218
msgid "Sales Order"
msgstr ""
@@ -1191,8 +1211,8 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:50 order/models.py:811 stock/forms.py:150
-#: templates/js/translated/order.js:432 templates/js/translated/order.js:973
+#: build/templates/build/detail.html:50 order/models.py:876 stock/forms.py:136
+#: templates/js/translated/order.js:592 templates/js/translated/order.js:1138
msgid "Destination"
msgstr ""
@@ -1200,22 +1220,22 @@ msgstr ""
msgid "Destination location not specified"
msgstr ""
-#: build/templates/build/detail.html:74 templates/js/translated/build.js:647
+#: build/templates/build/detail.html:74 templates/js/translated/build.js:652
msgid "Allocated Parts"
msgstr ""
#: build/templates/build/detail.html:81
#: stock/templates/stock/item_base.html:332
-#: templates/js/translated/stock.js:1322 templates/js/translated/stock.js:2276
+#: templates/js/translated/stock.js:1486 templates/js/translated/stock.js:2451
#: templates/js/translated/table_filters.js:151
-#: templates/js/translated/table_filters.js:233
+#: templates/js/translated/table_filters.js:238
msgid "Batch"
msgstr ""
#: build/templates/build/detail.html:127
-#: order/templates/order/order_base.html:131
-#: order/templates/order/sales_order_base.html:135
-#: templates/js/translated/build.js:1663
+#: order/templates/order/order_base.html:143
+#: order/templates/order/sales_order_base.html:157
+#: templates/js/translated/build.js:1669
msgid "Created"
msgstr ""
@@ -1235,7 +1255,7 @@ msgstr ""
msgid "Allocate Stock to Build"
msgstr ""
-#: build/templates/build/detail.html:177 templates/js/translated/build.js:1202
+#: build/templates/build/detail.html:177 templates/js/translated/build.js:1207
msgid "Unallocate stock"
msgstr ""
@@ -1257,7 +1277,7 @@ msgstr ""
#: build/templates/build/detail.html:185
#: company/templates/company/detail.html:38
-#: company/templates/company/detail.html:85 order/views.py:509
+#: company/templates/company/detail.html:85 order/views.py:463
#: part/templates/part/category.html:173
msgid "Order Parts"
msgstr ""
@@ -1309,8 +1329,8 @@ msgstr ""
#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:60
-#: order/templates/order/sales_order_detail.html:52
-#: order/templates/order/so_sidebar.html:9 part/templates/part/detail.html:193
+#: order/templates/order/sales_order_detail.html:107
+#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:193
#: part/templates/part/part_sidebar.html:48 stock/templates/stock/item.html:95
#: stock/templates/stock/stock_sidebar.html:19
msgid "Attachments"
@@ -1325,8 +1345,8 @@ msgstr ""
#: company/templates/company/detail.html:215
#: order/templates/order/purchase_order_detail.html:80
#: order/templates/order/purchase_order_detail.html:108
-#: order/templates/order/sales_order_detail.html:72
-#: order/templates/order/sales_order_detail.html:99
+#: order/templates/order/sales_order_detail.html:127
+#: order/templates/order/sales_order_detail.html:186
#: part/templates/part/detail.html:120 stock/templates/stock/item.html:115
#: stock/templates/stock/item.html:205
msgid "Edit Notes"
@@ -1384,7 +1404,7 @@ msgstr ""
msgid "Maximum output quantity is "
msgstr ""
-#: build/views.py:122 stock/serializers.py:361 stock/views.py:1290
+#: build/views.py:122 stock/serializers.py:363 stock/views.py:1257
msgid "Serial numbers already exist"
msgstr ""
@@ -1400,7 +1420,7 @@ msgstr ""
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:219 stock/views.py:385
+#: build/views.py:219 stock/views.py:352
msgid "Check the confirmation box"
msgstr ""
@@ -1469,7 +1489,7 @@ msgstr ""
msgid "Select {name} file to upload"
msgstr ""
-#: common/models.py:340 common/models.py:970 common/models.py:1178
+#: common/models.py:340 common/models.py:998 common/models.py:1206
msgid "Settings key (must be unique - case insensitive"
msgstr ""
@@ -1557,7 +1577,7 @@ msgstr ""
msgid "Allow download of remote images and files from external URL"
msgstr ""
-#: common/models.py:649 templates/InvenTree/settings/sidebar.html:30
+#: common/models.py:649 templates/InvenTree/settings/sidebar.html:31
msgid "Barcode Support"
msgstr ""
@@ -1623,7 +1643,7 @@ msgstr ""
#: common/models.py:703 part/models.py:2429 report/models.py:187
#: templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:373
+#: templates/js/translated/table_filters.js:404
msgid "Template"
msgstr ""
@@ -1633,7 +1653,7 @@ msgstr ""
#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:956
#: templates/js/translated/table_filters.js:168
-#: templates/js/translated/table_filters.js:385
+#: templates/js/translated/table_filters.js:416
msgid "Assembly"
msgstr ""
@@ -1642,7 +1662,7 @@ msgid "Parts can be assembled from other components by default"
msgstr ""
#: common/models.py:717 part/models.py:894
-#: templates/js/translated/table_filters.js:389
+#: templates/js/translated/table_filters.js:420
msgid "Component"
msgstr ""
@@ -1659,7 +1679,7 @@ msgid "Parts are purchaseable by default"
msgstr ""
#: common/models.py:731 part/models.py:910
-#: templates/js/translated/table_filters.js:397
+#: templates/js/translated/table_filters.js:428
msgid "Salable"
msgstr ""
@@ -1670,7 +1690,7 @@ msgstr ""
#: common/models.py:738 part/models.py:900
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:100
-#: templates/js/translated/table_filters.js:401
+#: templates/js/translated/table_filters.js:432
msgid "Trackable"
msgstr ""
@@ -1932,230 +1952,262 @@ msgstr ""
msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:1001
+#: common/models.py:961
+msgid "Enable URL integration"
+msgstr ""
+
+#: common/models.py:962
+msgid "Enable plugins to add URL routes"
+msgstr ""
+
+#: common/models.py:968
+msgid "Enable navigation integration"
+msgstr ""
+
+#: common/models.py:969
+msgid "Enable plugins to integrate into navigation"
+msgstr ""
+
+#: common/models.py:975
+msgid "Enable global setting integration"
+msgstr ""
+
+#: common/models.py:976
+msgid "Enable plugins to integrate into inventree global settings"
+msgstr ""
+
+#: common/models.py:982
+msgid "Enable app integration"
+msgstr ""
+
+#: common/models.py:983
+msgid "Enable plugins to add apps"
+msgstr ""
+
+#: common/models.py:1029
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:1002
+#: common/models.py:1030
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:1007
+#: common/models.py:1035
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:1008
+#: common/models.py:1036
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:1013
+#: common/models.py:1041
msgid "Show latest parts"
msgstr ""
-#: common/models.py:1014
+#: common/models.py:1042
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:1019
+#: common/models.py:1047
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:1020
+#: common/models.py:1048
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:1026
+#: common/models.py:1054
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1027
+#: common/models.py:1055
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1032
+#: common/models.py:1060
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:1033
+#: common/models.py:1061
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:1038
+#: common/models.py:1066
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:1039
+#: common/models.py:1067
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:1044
+#: common/models.py:1072
msgid "Show low stock"
msgstr ""
-#: common/models.py:1045
+#: common/models.py:1073
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:1050
+#: common/models.py:1078
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:1051
+#: common/models.py:1079
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:1056
+#: common/models.py:1084
msgid "Show needed stock"
msgstr ""
-#: common/models.py:1057
+#: common/models.py:1085
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1062
+#: common/models.py:1090
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1063
+#: common/models.py:1091
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1068
+#: common/models.py:1096
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1069
+#: common/models.py:1097
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1074
+#: common/models.py:1102
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1075
+#: common/models.py:1103
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:1080
+#: common/models.py:1108
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:1081
+#: common/models.py:1109
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:1086
+#: common/models.py:1114
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:1087
+#: common/models.py:1115
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:1092
+#: common/models.py:1120
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:1093
+#: common/models.py:1121
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:1098
+#: common/models.py:1126
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:1099
+#: common/models.py:1127
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:1104
+#: common/models.py:1132
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:1105
+#: common/models.py:1133
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:1111
+#: common/models.py:1139
msgid "Inline label display"
msgstr ""
-#: common/models.py:1112
+#: common/models.py:1140
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1118
+#: common/models.py:1146
msgid "Inline report display"
msgstr ""
-#: common/models.py:1119
+#: common/models.py:1147
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1125
+#: common/models.py:1153
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:1126
+#: common/models.py:1154
msgid "Number of results to show in search preview window"
msgstr ""
-#: common/models.py:1132
+#: common/models.py:1160
msgid "Search Show Stock"
msgstr ""
-#: common/models.py:1133
+#: common/models.py:1161
msgid "Display stock levels in search preview window"
msgstr ""
-#: common/models.py:1139
+#: common/models.py:1167
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:1140
+#: common/models.py:1168
msgid "Hide inactive parts in search preview window"
msgstr ""
-#: common/models.py:1146
+#: common/models.py:1174
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:1147
+#: common/models.py:1175
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:1153
+#: common/models.py:1181
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1154
+#: common/models.py:1182
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1160
+#: common/models.py:1188
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:1161
+#: common/models.py:1189
msgid "InvenTree navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:1226 company/forms.py:43
+#: common/models.py:1254 company/forms.py:43
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1233 company/serializers.py:264
+#: common/models.py:1261 company/serializers.py:264
#: company/templates/company/supplier_part.html:256
#: templates/js/translated/part.js:852 templates/js/translated/part.js:1801
msgid "Price"
msgstr ""
-#: common/models.py:1234
+#: common/models.py:1262
msgid "Unit price at specified quantity"
msgstr ""
#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49
-#: order/templates/order/purchase_order_detail.html:24 order/views.py:289
+#: order/templates/order/purchase_order_detail.html:24 order/views.py:243
#: part/templates/part/bom_upload/upload_file.html:52
#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:212
#: part/views.py:858
@@ -2163,7 +2215,7 @@ msgid "Upload File"
msgstr ""
#: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52
-#: order/views.py:290 part/templates/part/bom_upload/match_fields.html:52
+#: order/views.py:244 part/templates/part/bom_upload/match_fields.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:45
#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:213
#: part/views.py:859
@@ -2195,6 +2247,7 @@ msgid "Previous Step"
msgstr ""
#: company/forms.py:24 part/forms.py:46
+#: templates/InvenTree/settings/mixins/urls.html:12
msgid "URL"
msgstr ""
@@ -2211,6 +2264,7 @@ msgid "Description of the company"
msgstr ""
#: company/models.py:112 company/templates/company/company_base.html:97
+#: templates/InvenTree/settings/plugin_settings.html:55
#: templates/js/translated/company.js:349
msgid "Website"
msgstr ""
@@ -2285,7 +2339,7 @@ msgid "Does this company manufacture parts?"
msgstr ""
#: company/models.py:152 company/serializers.py:270
-#: company/templates/company/company_base.html:103 stock/serializers.py:177
+#: company/templates/company/company_base.html:103 stock/serializers.py:179
msgid "Currency"
msgstr ""
@@ -2293,12 +2347,12 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:320 company/models.py:535 stock/models.py:474
+#: company/models.py:320 company/models.py:535 stock/models.py:468
#: stock/templates/stock/item_base.html:135
msgid "Base Part"
msgstr ""
-#: company/models.py:324 company/models.py:539 order/views.py:912
+#: company/models.py:324 company/models.py:539
msgid "Select part"
msgstr ""
@@ -2319,7 +2373,7 @@ msgstr ""
#: company/models.py:342 company/templates/company/manufacturer_part.html:96
#: company/templates/company/supplier_part.html:105
#: templates/js/translated/company.js:530
-#: templates/js/translated/company.js:815 templates/js/translated/order.js:873
+#: templates/js/translated/company.js:815 templates/js/translated/order.js:1038
#: templates/js/translated/part.js:243 templates/js/translated/part.js:832
msgid "MPN"
msgstr ""
@@ -2349,8 +2403,8 @@ msgstr ""
#: company/models.py:422
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:1857 templates/js/translated/company.js:644
-#: templates/js/translated/part.js:652 templates/js/translated/stock.js:960
+#: stock/models.py:1845 templates/js/translated/company.js:644
+#: templates/js/translated/part.js:652 templates/js/translated/stock.js:1117
msgid "Value"
msgstr ""
@@ -2360,7 +2414,7 @@ msgstr ""
#: company/models.py:429 part/models.py:882 part/models.py:2397
#: part/templates/part/part_base.html:288
-#: templates/InvenTree/settings/settings.html:264
+#: templates/InvenTree/settings/settings.html:273
#: templates/js/translated/company.js:650 templates/js/translated/part.js:658
msgid "Units"
msgstr ""
@@ -2374,12 +2428,12 @@ msgid "Linked manufacturer part must reference the same base part"
msgstr ""
#: company/models.py:545 company/templates/company/company_base.html:78
-#: company/templates/company/supplier_part.html:87 order/models.py:263
+#: company/templates/company/supplier_part.html:87 order/models.py:224
#: order/templates/order/order_base.html:112
#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219
#: part/bom.py:247 stock/templates/stock/item_base.html:398
#: templates/js/translated/company.js:337
-#: templates/js/translated/company.js:771 templates/js/translated/order.js:667
+#: templates/js/translated/company.js:771 templates/js/translated/order.js:823
#: templates/js/translated/part.js:213 templates/js/translated/part.js:800
msgid "Supplier"
msgstr ""
@@ -2389,7 +2443,7 @@ msgid "Select supplier"
msgstr ""
#: company/models.py:551 company/templates/company/supplier_part.html:91
-#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:860
+#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:1025
#: templates/js/translated/part.js:224 templates/js/translated/part.js:818
msgid "SKU"
msgstr ""
@@ -2425,8 +2479,8 @@ msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:582 company/templates/company/supplier_part.html:112
-#: stock/models.py:497 stock/templates/stock/item_base.html:339
-#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1448
+#: stock/models.py:491 stock/templates/stock/item_base.html:339
+#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1612
msgid "Packaging"
msgstr ""
@@ -2457,7 +2511,7 @@ msgid "Company"
msgstr ""
#: company/templates/company/company_base.html:22
-#: templates/js/translated/order.js:121
+#: templates/js/translated/order.js:279
msgid "Create Purchase Order"
msgstr ""
@@ -2493,11 +2547,12 @@ msgstr ""
msgid "Download image from URL"
msgstr ""
-#: company/templates/company/company_base.html:83 order/models.py:567
-#: order/templates/order/sales_order_base.html:115 stock/models.py:515
-#: stock/models.py:516 stock/templates/stock/item_base.html:291
-#: templates/js/translated/company.js:329 templates/js/translated/order.js:1072
-#: templates/js/translated/stock.js:2084
+#: company/templates/company/company_base.html:83 order/models.py:547
+#: order/templates/order/sales_order_base.html:115 stock/models.py:509
+#: stock/models.py:510 stock/serializers.py:610
+#: stock/templates/stock/item_base.html:291
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1240
+#: templates/js/translated/stock.js:2259
msgid "Customer"
msgstr ""
@@ -2580,7 +2635,7 @@ msgstr ""
#: order/templates/order/purchase_orders.html:12
#: part/templates/part/detail.html:64 part/templates/part/part_sidebar.html:33
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:203
-#: templates/InvenTree/settings/sidebar.html:44 templates/navbar.html:45
+#: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47
#: users/models.py:45
msgid "Purchase Orders"
msgstr ""
@@ -2602,7 +2657,7 @@ msgstr ""
#: order/templates/order/sales_orders.html:15
#: part/templates/part/detail.html:87 part/templates/part/part_sidebar.html:37
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:223
-#: templates/InvenTree/settings/sidebar.html:46 templates/navbar.html:56
+#: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58
#: users/models.py:46
msgid "Sales Orders"
msgstr ""
@@ -2618,7 +2673,7 @@ msgid "New Sales Order"
msgstr ""
#: company/templates/company/detail.html:168
-#: templates/js/translated/build.js:999
+#: templates/js/translated/build.js:1004
msgid "Assigned Stock"
msgstr ""
@@ -2644,7 +2699,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:14 company/views.py:55
#: part/templates/part/prices.html:167 templates/InvenTree/search.html:184
-#: templates/navbar.html:44
+#: templates/navbar.html:46
msgid "Manufacturers"
msgstr ""
@@ -2673,7 +2728,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:114
#: company/templates/company/supplier_part.html:15 company/views.py:49
#: part/templates/part/part_sidebar.html:31 part/templates/part/prices.html:163
-#: templates/InvenTree/search.html:194 templates/navbar.html:43
+#: templates/InvenTree/search.html:194 templates/navbar.html:45
msgid "Suppliers"
msgstr ""
@@ -2687,7 +2742,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:254
#: part/templates/part/detail.html:344 part/templates/part/detail.html:372
#: templates/js/translated/company.js:425 templates/js/translated/helpers.js:31
-#: users/models.py:204
+#: users/models.py:206
msgid "Delete"
msgstr ""
@@ -2739,9 +2794,9 @@ msgid "Assigned Stock Items"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:482
+#: company/templates/company/supplier_part.html:24 stock/models.py:476
#: stock/templates/stock/item_base.html:403
-#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1405
+#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1569
msgid "Supplier Part"
msgstr ""
@@ -2767,7 +2822,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:142
#: part/templates/part/detail.html:21 stock/templates/stock/location.html:163
-#: templates/js/translated/stock.js:355
+#: templates/js/translated/stock.js:359
msgid "New Stock Item"
msgstr ""
@@ -2817,11 +2872,11 @@ msgstr ""
#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:14
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:156
-#: templates/InvenTree/settings/sidebar.html:40
+#: templates/InvenTree/settings/sidebar.html:41
#: templates/js/translated/bom.js:216 templates/js/translated/part.js:434
#: templates/js/translated/part.js:569 templates/js/translated/part.js:1059
-#: templates/js/translated/part.js:1220 templates/js/translated/stock.js:591
-#: templates/js/translated/stock.js:1244 templates/navbar.html:26
+#: templates/js/translated/part.js:1220 templates/js/translated/stock.js:748
+#: templates/js/translated/stock.js:1401 templates/navbar.html:28
msgid "Stock"
msgstr ""
@@ -2844,7 +2899,7 @@ msgstr ""
#: stock/templates/stock/location.html:147
#: stock/templates/stock/location.html:159
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1983
+#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:2158
#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
msgid "Stock Items"
msgstr ""
@@ -2858,7 +2913,7 @@ msgid "New Manufacturer"
msgstr ""
#: company/views.py:61 templates/InvenTree/search.html:214
-#: templates/navbar.html:55
+#: templates/navbar.html:57
msgid "Customers"
msgstr ""
@@ -2960,284 +3015,374 @@ msgstr ""
msgid "Part query filters (comma-separated value of key=value pairs)"
msgstr ""
-#: order/forms.py:26 order/templates/order/order_base.html:52
+#: order/forms.py:24 order/templates/order/order_base.html:52
msgid "Place order"
msgstr ""
-#: order/forms.py:37 order/templates/order/order_base.html:60
+#: order/forms.py:35 order/templates/order/order_base.html:60
msgid "Mark order as complete"
msgstr ""
-#: order/forms.py:48 order/forms.py:59 order/templates/order/order_base.html:47
+#: order/forms.py:46 order/forms.py:57 order/templates/order/order_base.html:47
#: order/templates/order/sales_order_base.html:60
msgid "Cancel order"
msgstr ""
-#: order/forms.py:70
-msgid "Ship order"
-msgstr ""
-
-#: order/forms.py:98
-msgid "Enter stock item serial numbers"
-msgstr ""
-
-#: order/forms.py:104
-msgid "Enter quantity of stock items"
-msgstr ""
-
-#: order/models.py:161
+#: order/models.py:122
msgid "Order description"
msgstr ""
-#: order/models.py:163
+#: order/models.py:124
msgid "Link to external page"
msgstr ""
-#: order/models.py:171
+#: order/models.py:132
msgid "Created By"
msgstr ""
-#: order/models.py:178
+#: order/models.py:139
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:183
+#: order/models.py:144
msgid "Order notes"
msgstr ""
-#: order/models.py:250 order/models.py:557
+#: order/models.py:211 order/models.py:537
msgid "Order reference"
msgstr ""
-#: order/models.py:255 order/models.py:572
+#: order/models.py:216 order/models.py:552
msgid "Purchase order status"
msgstr ""
-#: order/models.py:264
+#: order/models.py:225
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:267 order/templates/order/order_base.html:118
-#: templates/js/translated/order.js:676
+#: order/models.py:228 order/templates/order/order_base.html:118
+#: templates/js/translated/order.js:832
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:267
+#: order/models.py:228
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:274
+#: order/models.py:235
msgid "received by"
msgstr ""
-#: order/models.py:279
+#: order/models.py:240
msgid "Issue Date"
msgstr ""
-#: order/models.py:280
+#: order/models.py:241
msgid "Date order was issued"
msgstr ""
-#: order/models.py:285
+#: order/models.py:246
msgid "Target Delivery Date"
msgstr ""
-#: order/models.py:286
+#: order/models.py:247
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:292
+#: order/models.py:253
msgid "Date order was completed"
msgstr ""
-#: order/models.py:321
+#: order/models.py:282
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:431
+#: order/models.py:411
msgid "Quantity must be an integer"
msgstr ""
-#: order/models.py:435
+#: order/models.py:415
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:568
+#: order/models.py:548
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:574
+#: order/models.py:554
msgid "Customer Reference "
msgstr ""
-#: order/models.py:574
+#: order/models.py:554
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:579
+#: order/models.py:559
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:582 templates/js/translated/order.js:1113
+#: order/models.py:562 order/models.py:1026
+#: templates/js/translated/order.js:1281 templates/js/translated/order.js:1429
msgid "Shipment Date"
msgstr ""
-#: order/models.py:589
+#: order/models.py:569
msgid "shipped by"
msgstr ""
-#: order/models.py:633
-msgid "SalesOrder cannot be shipped as it is not currently pending"
+#: order/models.py:634
+msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:730
+#: order/models.py:639
+msgid "Only a pending order can be marked as complete"
+msgstr ""
+
+#: order/models.py:643
+msgid "Order cannot be completed as there are incomplete shipments"
+msgstr ""
+
+#: order/models.py:647
+msgid "Order cannot be completed as there are incomplete line items"
+msgstr ""
+
+#: order/models.py:795
msgid "Item quantity"
msgstr ""
-#: order/models.py:736
+#: order/models.py:801
msgid "Line item reference"
msgstr ""
-#: order/models.py:738
+#: order/models.py:803
msgid "Line item notes"
msgstr ""
-#: order/models.py:768 order/models.py:856
-#: templates/js/translated/order.js:1165
+#: order/models.py:833 order/models.py:924 order/models.py:1020
+#: templates/js/translated/order.js:1820
msgid "Order"
msgstr ""
-#: order/models.py:769 order/templates/order/order_base.html:9
+#: order/models.py:834 order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:353
-#: templates/js/translated/order.js:638 templates/js/translated/part.js:775
-#: templates/js/translated/stock.js:1382 templates/js/translated/stock.js:2065
+#: templates/js/translated/order.js:801 templates/js/translated/part.js:775
+#: templates/js/translated/stock.js:1546 templates/js/translated/stock.js:2240
msgid "Purchase Order"
msgstr ""
-#: order/models.py:790
+#: order/models.py:855
msgid "Supplier part"
msgstr ""
-#: order/models.py:797 order/templates/order/order_base.html:151
-#: order/templates/order/sales_order_base.html:155
-#: templates/js/translated/order.js:429 templates/js/translated/order.js:953
+#: order/models.py:862 order/templates/order/order_base.html:163
+#: templates/js/translated/order.js:589 templates/js/translated/order.js:1118
#: templates/js/translated/part.js:847 templates/js/translated/part.js:873
+#: templates/js/translated/table_filters.js:317
msgid "Received"
msgstr ""
-#: order/models.py:798
+#: order/models.py:863
msgid "Number of items received"
msgstr ""
-#: order/models.py:805 part/templates/part/prices.html:176 stock/models.py:609
-#: stock/serializers.py:168 stock/templates/stock/item_base.html:360
-#: templates/js/translated/stock.js:1436
+#: order/models.py:870 part/templates/part/prices.html:176 stock/models.py:603
+#: stock/serializers.py:170 stock/templates/stock/item_base.html:360
+#: templates/js/translated/stock.js:1600
msgid "Purchase Price"
msgstr ""
-#: order/models.py:806
+#: order/models.py:871
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:814
+#: order/models.py:879
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:866 part/templates/part/part_pricing.html:112
+#: order/models.py:934 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:116 part/templates/part/prices.html:284
msgid "Sale Price"
msgstr ""
-#: order/models.py:867
+#: order/models.py:935
msgid "Unit sale price"
msgstr ""
-#: order/models.py:946 order/models.py:948
+#: order/models.py:940
+msgid "Shipped quantity"
+msgstr ""
+
+#: order/models.py:1027
+msgid "Date of shipment"
+msgstr ""
+
+#: order/models.py:1034
+msgid "Checked By"
+msgstr ""
+
+#: order/models.py:1035
+msgid "User who checked this shipment"
+msgstr ""
+
+#: order/models.py:1043
+msgid "Shipment number"
+msgstr ""
+
+#: order/models.py:1050
+msgid "Shipment notes"
+msgstr ""
+
+#: order/models.py:1057
+msgid "Tracking Number"
+msgstr ""
+
+#: order/models.py:1058
+msgid "Shipment tracking information"
+msgstr ""
+
+#: order/models.py:1068
+msgid "Shipment has already been sent"
+msgstr ""
+
+#: order/models.py:1071
+msgid "Shipment has no allocated stock items"
+msgstr ""
+
+#: order/models.py:1147 order/models.py:1149
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:952
+#: order/models.py:1153
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:954
+#: order/models.py:1155
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:957
+#: order/models.py:1158
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:961
+#: order/models.py:1162
msgid "StockItem is over-allocated"
msgstr ""
-#: order/models.py:967
+#: order/models.py:1168 order/serializers.py:734
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:975
+#: order/models.py:1171
+msgid "Sales order does not match shipment"
+msgstr ""
+
+#: order/models.py:1172
+msgid "Shipment does not match sales order"
+msgstr ""
+
+#: order/models.py:1180
msgid "Line"
msgstr ""
-#: order/models.py:987
+#: order/models.py:1188 order/serializers.py:825 order/serializers.py:953
+#: templates/js/translated/model_renderers.js:251
+msgid "Shipment"
+msgstr ""
+
+#: order/models.py:1189
+msgid "Sales order shipment reference"
+msgstr ""
+
+#: order/models.py:1201
msgid "Item"
msgstr ""
-#: order/models.py:988
+#: order/models.py:1202
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:991
+#: order/models.py:1205
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/serializers.py:175
+#: order/serializers.py:173
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:213
+#: order/serializers.py:211 order/serializers.py:790
msgid "Line Item"
msgstr ""
-#: order/serializers.py:219
+#: order/serializers.py:217
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:229 order/serializers.py:297
+#: order/serializers.py:227 order/serializers.py:295
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:253
+#: order/serializers.py:251
msgid "Barcode Hash"
msgstr ""
-#: order/serializers.py:254
+#: order/serializers.py:252
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:271
+#: order/serializers.py:269
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:309
+#: order/serializers.py:307
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:326
+#: order/serializers.py:324
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:337
+#: order/serializers.py:335
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:578
+#: order/serializers.py:581
msgid "Sale price currency"
msgstr ""
+#: order/serializers.py:649
+msgid "No shipment details provided"
+msgstr ""
+
+#: order/serializers.py:699 order/serializers.py:802
+msgid "Line item is not associated with this order"
+msgstr ""
+
+#: order/serializers.py:721
+msgid "Quantity must be positive"
+msgstr ""
+
+#: order/serializers.py:815
+msgid "Enter serial numbers to allocate"
+msgstr ""
+
+#: order/serializers.py:839 order/serializers.py:964
+msgid "Shipment has already been shipped"
+msgstr ""
+
+#: order/serializers.py:842 order/serializers.py:967
+msgid "Shipment is not associated with this order"
+msgstr ""
+
+#: order/serializers.py:894
+msgid "No match found for the following serial numbers"
+msgstr ""
+
+#: order/serializers.py:904
+msgid "The following serial numbers are already allocated"
+msgstr ""
+
#: order/templates/order/delete_attachment.html:5
#: stock/templates/stock/attachment_delete.html:5
msgid "Are you sure you want to delete this attachment?"
@@ -3271,7 +3416,8 @@ msgstr ""
msgid "Receive Items"
msgstr ""
-#: order/templates/order/order_base.html:62 order/views.py:185
+#: order/templates/order/order_base.html:62
+#: order/templates/order/sales_order_base.html:67 order/views.py:181
msgid "Complete Order"
msgstr ""
@@ -3290,12 +3436,23 @@ msgstr ""
msgid "Order Status"
msgstr ""
-#: order/templates/order/order_base.html:137
+#: order/templates/order/order_base.html:124
+#: order/templates/order/sales_order_base.html:128
+msgid "Completed Line Items"
+msgstr ""
+
+#: order/templates/order/order_base.html:130
+#: order/templates/order/sales_order_base.html:134
+#: order/templates/order/sales_order_base.html:144
+msgid "Incomplete"
+msgstr ""
+
+#: order/templates/order/order_base.html:149
#: report/templates/report/inventree_build_order_base.html:122
msgid "Issued"
msgstr ""
-#: order/templates/order/order_base.html:207
+#: order/templates/order/order_base.html:219
msgid "Edit Purchase Order"
msgstr ""
@@ -3371,8 +3528,9 @@ msgstr ""
#: part/templates/part/import_wizard/ajax_match_references.html:42
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
-#: templates/js/translated/build.js:240 templates/js/translated/build.js:1251
-#: templates/js/translated/order.js:377
+#: templates/js/translated/build.js:245 templates/js/translated/build.js:1256
+#: templates/js/translated/order.js:537 templates/js/translated/order.js:1488
+#: templates/js/translated/stock.js:592
msgid "Remove row"
msgstr ""
@@ -3453,7 +3611,8 @@ msgid "Select existing purchase orders, or create new orders."
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:31
-#: templates/js/translated/order.js:694 templates/js/translated/order.js:1118
+#: templates/js/translated/order.js:859 templates/js/translated/order.js:1286
+#: templates/js/translated/order.js:1416
msgid "Items"
msgstr ""
@@ -3489,7 +3648,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:27
#: order/templates/order/purchase_order_detail.html:181
#: order/templates/order/sales_order_detail.html:23
-#: order/templates/order/sales_order_detail.html:157
+#: order/templates/order/sales_order_detail.html:244
msgid "Add Line Item"
msgstr ""
@@ -3502,7 +3661,7 @@ msgid "Received Items"
msgstr ""
#: order/templates/order/purchase_order_detail.html:76
-#: order/templates/order/sales_order_detail.html:68
+#: order/templates/order/sales_order_detail.html:123
msgid "Order Notes"
msgstr ""
@@ -3520,8 +3679,8 @@ msgid "Print packing list"
msgstr ""
#: order/templates/order/sales_order_base.html:66
-#: order/templates/order/sales_order_base.html:67 order/views.py:222
-msgid "Ship Order"
+#: order/templates/order/sales_order_base.html:229
+msgid "Complete Sales Order"
msgstr ""
#: order/templates/order/sales_order_base.html:102
@@ -3529,16 +3688,21 @@ msgid "This Sales Order has not been fully allocated"
msgstr ""
#: order/templates/order/sales_order_base.html:122
-#: templates/js/translated/order.js:1085
+#: templates/js/translated/order.js:1253
msgid "Customer Reference"
msgstr ""
-#: order/templates/order/sales_order_base.html:195
+#: order/templates/order/sales_order_base.html:140
+#: order/templates/order/sales_order_detail.html:78
+#: order/templates/order/so_sidebar.html:11
+msgid "Completed Shipments"
+msgstr ""
+
+#: order/templates/order/sales_order_base.html:215
msgid "Edit Sales Order"
msgstr ""
#: order/templates/order/sales_order_cancel.html:8
-#: order/templates/order/sales_order_ship.html:9
#: part/templates/part/bom_duplicate.html:12
#: stock/templates/stock/stockitem_convert.html:13
msgid "Warning"
@@ -3552,146 +3716,100 @@ msgstr ""
msgid "Sales Order Items"
msgstr ""
-#: order/templates/order/sales_order_ship.html:10
-msgid "This order has not been fully allocated. If the order is marked as shipped, it can no longer be adjusted."
+#: order/templates/order/sales_order_detail.html:44
+#: order/templates/order/so_sidebar.html:8
+msgid "Pending Shipments"
msgstr ""
-#: order/templates/order/sales_order_ship.html:12
-msgid "Ensure that the order allocation is correct before shipping the order."
+#: order/templates/order/sales_order_detail.html:48
+#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1188
+msgid "Actions"
msgstr ""
-#: order/templates/order/sales_order_ship.html:18
-msgid "Some line items in this order have been over-allocated"
+#: order/templates/order/sales_order_detail.html:57
+msgid "New Shipment"
msgstr ""
-#: order/templates/order/sales_order_ship.html:20
-msgid "Ensure that this is correct before shipping the order."
-msgstr ""
-
-#: order/templates/order/sales_order_ship.html:27
-msgid "Shipping this order means that the order will no longer be editable."
-msgstr ""
-
-#: order/templates/order/so_allocate_by_serial.html:9
-msgid "Allocate stock items by serial number"
-msgstr ""
-
-#: order/views.py:103
+#: order/views.py:99
msgid "Cancel Order"
msgstr ""
-#: order/views.py:112 order/views.py:138
+#: order/views.py:108 order/views.py:134
msgid "Confirm order cancellation"
msgstr ""
-#: order/views.py:115 order/views.py:141
+#: order/views.py:111 order/views.py:137
msgid "Order cannot be cancelled"
msgstr ""
-#: order/views.py:129
+#: order/views.py:125
msgid "Cancel sales order"
msgstr ""
-#: order/views.py:155
+#: order/views.py:151
msgid "Issue Order"
msgstr ""
-#: order/views.py:164
+#: order/views.py:160
msgid "Confirm order placement"
msgstr ""
-#: order/views.py:174
+#: order/views.py:170
msgid "Purchase order issued"
msgstr ""
-#: order/views.py:201
+#: order/views.py:197
msgid "Confirm order completion"
msgstr ""
-#: order/views.py:212
+#: order/views.py:208
msgid "Purchase order completed"
msgstr ""
-#: order/views.py:238
-msgid "Confirm order shipment"
-msgstr ""
-
-#: order/views.py:244
-msgid "Could not ship order"
-msgstr ""
-
-#: order/views.py:291
+#: order/views.py:245
msgid "Match Supplier Parts"
msgstr ""
-#: order/views.py:535
+#: order/views.py:489
msgid "Update prices"
msgstr ""
-#: order/views.py:793
+#: order/views.py:747
#, python-brace-format
msgid "Ordered {n} parts"
msgstr ""
-#: order/views.py:846
-msgid "Allocate Serial Numbers"
-msgstr ""
-
-#: order/views.py:891
-#, python-brace-format
-msgid "Allocated {n} items"
-msgstr ""
-
-#: order/views.py:907
-msgid "Select line item"
-msgstr ""
-
-#: order/views.py:938
-#, python-brace-format
-msgid "No matching item for serial {serial}"
-msgstr ""
-
-#: order/views.py:948
-#, python-brace-format
-msgid "{serial} is not in stock"
-msgstr ""
-
-#: order/views.py:956
-#, python-brace-format
-msgid "{serial} already allocated to an order"
-msgstr ""
-
-#: order/views.py:1072
+#: order/views.py:858
msgid "Sales order not found"
msgstr ""
-#: order/views.py:1078
+#: order/views.py:864
msgid "Price not found"
msgstr ""
-#: order/views.py:1081
+#: order/views.py:867
#, python-brace-format
msgid "Updated {part} unit-price to {price}"
msgstr ""
-#: order/views.py:1086
+#: order/views.py:872
#, python-brace-format
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/api.py:758
+#: part/api.py:760
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:762
+#: part/api.py:764
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:777
+#: part/api.py:779
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:808 part/api.py:812 part/api.py:827 part/api.py:831
+#: part/api.py:810 part/api.py:814 part/api.py:829 part/api.py:833
msgid "This field is required"
msgstr ""
@@ -3828,8 +3946,8 @@ msgstr ""
#: part/templates/part/category.html:149
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:88
-#: templates/InvenTree/settings/sidebar.html:36
-#: templates/js/translated/part.js:1597 templates/navbar.html:19
+#: templates/InvenTree/settings/sidebar.html:37
+#: templates/js/translated/part.js:1597 templates/navbar.html:21
#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
msgid "Parts"
msgstr ""
@@ -3895,7 +4013,7 @@ msgstr ""
#: part/models.py:778 part/models.py:2223 part/models.py:2472
#: part/templates/part/part_base.html:265
#: part/templates/part/set_category.html:15
-#: templates/InvenTree/settings/settings.html:163
+#: templates/InvenTree/settings/settings.html:172
#: templates/js/translated/part.js:1202
msgid "Category"
msgstr ""
@@ -3906,7 +4024,7 @@ msgstr ""
#: part/models.py:784 part/templates/part/part_base.html:274
#: templates/js/translated/part.js:557 templates/js/translated/part.js:1155
-#: templates/js/translated/stock.js:1216
+#: templates/js/translated/stock.js:1373
msgid "IPN"
msgstr ""
@@ -3975,10 +4093,11 @@ msgstr ""
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:915 templates/js/translated/table_filters.js:34
+#: part/models.py:915 plugin/models.py:45
+#: templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:96
-#: templates/js/translated/table_filters.js:290
-#: templates/js/translated/table_filters.js:368
+#: templates/js/translated/table_filters.js:295
+#: templates/js/translated/table_filters.js:399
msgid "Active"
msgstr ""
@@ -4027,7 +4146,7 @@ msgid "Test with this name already exists for this part"
msgstr ""
#: part/models.py:2310 templates/js/translated/part.js:1648
-#: templates/js/translated/stock.js:940
+#: templates/js/translated/stock.js:1097
msgid "Test Name"
msgstr ""
@@ -4044,7 +4163,7 @@ msgid "Enter description for this test"
msgstr ""
#: part/models.py:2322 templates/js/translated/part.js:1657
-#: templates/js/translated/table_filters.js:276
+#: templates/js/translated/table_filters.js:281
msgid "Required"
msgstr ""
@@ -4086,7 +4205,7 @@ msgid "Parameter Units"
msgstr ""
#: part/models.py:2429 part/models.py:2478 part/models.py:2479
-#: templates/InvenTree/settings/settings.html:158
+#: templates/InvenTree/settings/settings.html:167
msgid "Parameter Template"
msgstr ""
@@ -4098,7 +4217,7 @@ msgstr ""
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2483 templates/InvenTree/settings/settings.html:167
+#: part/models.py:2483 templates/InvenTree/settings/settings.html:176
msgid "Default Value"
msgstr ""
@@ -4175,7 +4294,7 @@ msgstr ""
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2686 stock/models.py:361
+#: part/models.py:2686 stock/models.py:355
msgid "Quantity must be integer value for trackable parts"
msgstr ""
@@ -4724,8 +4843,8 @@ msgstr ""
msgid "This part is a variant of %(link)s"
msgstr ""
-#: part/templates/part/part_base.html:190 templates/js/translated/order.js:1545
-#: templates/js/translated/table_filters.js:188
+#: part/templates/part/part_base.html:190 templates/js/translated/order.js:2217
+#: templates/js/translated/table_filters.js:193
msgid "In Stock"
msgstr ""
@@ -5099,6 +5218,78 @@ msgstr ""
msgid "Delete Internal Price Break"
msgstr ""
+#: plugin/integration.py:116
+msgid "No author found"
+msgstr ""
+
+#: plugin/integration.py:128
+msgid "No date found"
+msgstr ""
+
+#: plugin/models.py:25
+msgid "Plugin Configuration"
+msgstr ""
+
+#: plugin/models.py:26
+msgid "Plugin Configurations"
+msgstr ""
+
+#: plugin/models.py:31
+msgid "Key"
+msgstr ""
+
+#: plugin/models.py:32
+msgid "Key of plugin"
+msgstr ""
+
+#: plugin/models.py:40
+msgid "PluginName of the plugin"
+msgstr ""
+
+#: plugin/models.py:46
+msgid "Is the plugin active"
+msgstr ""
+
+#: plugin/samples/integration/sample.py:39
+msgid "Enable PO"
+msgstr ""
+
+#: plugin/samples/integration/sample.py:40
+msgid "Enable PO functionality in InvenTree interface"
+msgstr ""
+
+#: plugin/serializers.py:46
+msgid "Source URL"
+msgstr ""
+
+#: plugin/serializers.py:47
+msgid "Source for the package - this can be a custom registry or a VCS path"
+msgstr ""
+
+#: plugin/serializers.py:52
+msgid "Package Name"
+msgstr ""
+
+#: plugin/serializers.py:53
+msgid "Name for the Plugin Package - can also contain a version indicator"
+msgstr ""
+
+#: plugin/serializers.py:56
+msgid "Confirm plugin installation"
+msgstr ""
+
+#: plugin/serializers.py:57
+msgid "This will install this plugin now into the current instance. The instance will go into maintenance."
+msgstr ""
+
+#: plugin/serializers.py:72
+msgid "Installation not confirmed"
+msgstr ""
+
+#: plugin/serializers.py:74
+msgid "Either packagenmae of url must be provided"
+msgstr ""
+
#: report/api.py:234 report/api.py:278
#, python-brace-format
msgid "Template file '{filename}' is missing or does not exist"
@@ -5197,12 +5388,12 @@ msgid "Stock Item Test Report"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:520 stock/templates/stock/item_base.html:149
-#: templates/js/translated/build.js:233 templates/js/translated/build.js:637
-#: templates/js/translated/build.js:1013
+#: stock/models.py:514 stock/templates/stock/item_base.html:149
+#: templates/js/translated/build.js:238 templates/js/translated/build.js:642
+#: templates/js/translated/build.js:1018
#: templates/js/translated/model_renderers.js:95
-#: templates/js/translated/order.js:1287 templates/js/translated/order.js:1376
-#: templates/js/translated/stock.js:410
+#: templates/js/translated/order.js:99 templates/js/translated/order.js:1945
+#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:414
msgid "Serial Number"
msgstr ""
@@ -5211,17 +5402,19 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:93
-#: stock/models.py:1845
+#: stock/models.py:1833
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:94
-#: stock/models.py:1851
+#: stock/models.py:1839
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:97
-#: templates/js/translated/order.js:684 templates/js/translated/stock.js:1999
+#: templates/InvenTree/settings/plugin.html:49
+#: templates/InvenTree/settings/plugin_settings.html:38
+#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2174
msgid "Date"
msgstr ""
@@ -5239,302 +5432,318 @@ msgid "Installed Items"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
-#: templates/js/translated/stock.js:2259
+#: templates/js/translated/stock.js:577 templates/js/translated/stock.js:2434
msgid "Serial"
msgstr ""
-#: stock/api.py:422
+#: stock/api.py:446
msgid "Quantity is required"
msgstr ""
-#: stock/forms.py:91 stock/forms.py:265 stock/models.py:577
+#: stock/forms.py:77 stock/forms.py:251 stock/models.py:571
#: stock/templates/stock/item_base.html:186
-#: templates/js/translated/stock.js:1358
+#: templates/js/translated/stock.js:1522
msgid "Expiry Date"
msgstr ""
-#: stock/forms.py:92 stock/forms.py:266
+#: stock/forms.py:78 stock/forms.py:252
msgid "Expiration date for this stock item"
msgstr ""
-#: stock/forms.py:95
+#: stock/forms.py:81
msgid "Enter unique serial numbers (or leave blank)"
msgstr ""
-#: stock/forms.py:150
+#: stock/forms.py:136
msgid "Destination for serialized stock (by default, will remain in current location)"
msgstr ""
-#: stock/forms.py:152
+#: stock/forms.py:138
msgid "Serial numbers"
msgstr ""
-#: stock/forms.py:152
+#: stock/forms.py:138
msgid "Unique serial numbers (must match quantity)"
msgstr ""
-#: stock/forms.py:154 stock/forms.py:238
+#: stock/forms.py:140 stock/forms.py:224
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/forms.py:194
+#: stock/forms.py:180
msgid "Stock item to install"
msgstr ""
-#: stock/forms.py:224
+#: stock/forms.py:210
msgid "Must not exceed available quantity"
msgstr ""
-#: stock/forms.py:236
+#: stock/forms.py:222
msgid "Destination location for uninstalled items"
msgstr ""
-#: stock/forms.py:240
+#: stock/forms.py:226
msgid "Confirm uninstall"
msgstr ""
-#: stock/forms.py:240
+#: stock/forms.py:226
msgid "Confirm removal of installed stock items"
msgstr ""
-#: stock/models.py:60 stock/models.py:614
+#: stock/models.py:60 stock/models.py:608
#: stock/templates/stock/item_base.html:417
msgid "Owner"
msgstr ""
-#: stock/models.py:61 stock/models.py:615
+#: stock/models.py:61 stock/models.py:609
msgid "Select Owner"
msgstr ""
-#: stock/models.py:342
+#: stock/models.py:336
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:378
+#: stock/models.py:372
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:388 stock/models.py:397
+#: stock/models.py:382 stock/models.py:391
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:389
+#: stock/models.py:383
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:411
+#: stock/models.py:405
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:417
+#: stock/models.py:411
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:424
+#: stock/models.py:418
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:466
+#: stock/models.py:460
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:475
+#: stock/models.py:469
msgid "Base part"
msgstr ""
-#: stock/models.py:483
+#: stock/models.py:477
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:488 stock/templates/stock/location.html:12
+#: stock/models.py:482 stock/templates/stock/location.html:12
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:491
+#: stock/models.py:485
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:498
+#: stock/models.py:492
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:503 stock/templates/stock/item_base.html:299
+#: stock/models.py:497 stock/templates/stock/item_base.html:299
msgid "Installed In"
msgstr ""
-#: stock/models.py:506
+#: stock/models.py:500
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:522
+#: stock/models.py:516
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:536
+#: stock/models.py:530
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:540
+#: stock/models.py:534
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:549
+#: stock/models.py:543
msgid "Source Build"
msgstr ""
-#: stock/models.py:551
+#: stock/models.py:545
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:562
+#: stock/models.py:556
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:565
+#: stock/models.py:559
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:571
+#: stock/models.py:565
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:578
+#: stock/models.py:572
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:591
+#: stock/models.py:585
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:591
+#: stock/models.py:585
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:601 stock/templates/stock/item.html:111
+#: stock/models.py:595 stock/templates/stock/item.html:111
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:610
+#: stock/models.py:604
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:620
-msgid "Scheduled for deletion"
-msgstr ""
-
-#: stock/models.py:621
-msgid "This StockItem will be deleted by the background worker"
-msgstr ""
-
-#: stock/models.py:1084
+#: stock/models.py:1072
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1090
+#: stock/models.py:1078
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1096
+#: stock/models.py:1084
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1099
+#: stock/models.py:1087
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1102
+#: stock/models.py:1090
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1109
+#: stock/models.py:1097
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1267
+#: stock/models.py:1255
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1765
+#: stock/models.py:1753
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1822
+#: stock/models.py:1810
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1828
+#: stock/models.py:1816
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1846
+#: stock/models.py:1834
msgid "Test name"
msgstr ""
-#: stock/models.py:1852 templates/js/translated/table_filters.js:266
+#: stock/models.py:1840 templates/js/translated/table_filters.js:271
msgid "Test result"
msgstr ""
-#: stock/models.py:1858
+#: stock/models.py:1846
msgid "Test output value"
msgstr ""
-#: stock/models.py:1865
+#: stock/models.py:1853
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1871
+#: stock/models.py:1859
msgid "Test notes"
msgstr ""
-#: stock/serializers.py:171
+#: stock/serializers.py:173
msgid "Purchase price of this stock item"
msgstr ""
-#: stock/serializers.py:178
+#: stock/serializers.py:180
msgid "Purchase currency of this stock item"
msgstr ""
-#: stock/serializers.py:292
+#: stock/serializers.py:294
msgid "Enter number of stock items to serialize"
msgstr ""
-#: stock/serializers.py:307
+#: stock/serializers.py:309
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:313
+#: stock/serializers.py:315
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:324 stock/serializers.py:691
+#: stock/serializers.py:326 stock/serializers.py:814
msgid "Destination stock location"
msgstr ""
-#: stock/serializers.py:331
+#: stock/serializers.py:333
msgid "Optional note field"
msgstr ""
-#: stock/serializers.py:344
+#: stock/serializers.py:346
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:561
+#: stock/serializers.py:573
+msgid "Part must be salable"
+msgstr ""
+
+#: stock/serializers.py:577
+msgid "Item is allocated to a sales order"
+msgstr ""
+
+#: stock/serializers.py:581
+msgid "Item is allocated to a build order"
+msgstr ""
+
+#: stock/serializers.py:611
+msgid "Customer to assign stock items"
+msgstr ""
+
+#: stock/serializers.py:617
+msgid "Selected company is not a customer"
+msgstr ""
+
+#: stock/serializers.py:625
+msgid "Stock assignment notes"
+msgstr ""
+
+#: stock/serializers.py:635 stock/serializers.py:722
+msgid "A list of stock items must be provided"
+msgstr ""
+
+#: stock/serializers.py:684
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:589
+#: stock/serializers.py:712
msgid "Stock transaction notes"
msgstr ""
-#: stock/serializers.py:599
-msgid "A list of stock items must be provided"
-msgstr ""
-
#: stock/templates/stock/item.html:18
msgid "Stock Tracking Information"
msgstr ""
@@ -5572,7 +5781,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:137 stock/views.py:515
+#: stock/templates/stock/item.html:137 stock/views.py:482
msgid "Install Stock Item"
msgstr ""
@@ -5632,7 +5841,7 @@ msgstr ""
msgid "Transfer stock"
msgstr ""
-#: stock/templates/stock/item_base.html:85
+#: stock/templates/stock/item_base.html:85 templates/stock_table.html:53
msgid "Assign to customer"
msgstr ""
@@ -5694,7 +5903,7 @@ msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:190
-#: templates/js/translated/table_filters.js:247
+#: templates/js/translated/table_filters.js:252
msgid "Expired"
msgstr ""
@@ -5704,12 +5913,12 @@ msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:192
-#: templates/js/translated/table_filters.js:253
+#: templates/js/translated/table_filters.js:258
msgid "Stale"
msgstr ""
#: stock/templates/stock/item_base.html:199
-#: templates/js/translated/stock.js:1371
+#: templates/js/translated/stock.js:1535
msgid "Last Updated"
msgstr ""
@@ -5738,13 +5947,11 @@ msgid "This stock item has not passed all required tests"
msgstr ""
#: stock/templates/stock/item_base.html:255
-#, python-format
-msgid "This stock item is allocated to Sales Order %(link)s (Quantity: %(qty)s)"
+msgid "This stock item is allocated to Sales Order"
msgstr ""
#: stock/templates/stock/item_base.html:263
-#, python-format
-msgid "This stock item is allocated to Build %(link)s (Quantity: %(qty)s)"
+msgid "This stock item is allocated to Build Order"
msgstr ""
#: stock/templates/stock/item_base.html:269
@@ -5760,7 +5967,7 @@ msgid "This stock item will be automatically deleted when all stock is depleted.
msgstr ""
#: stock/templates/stock/item_base.html:318
-#: templates/js/translated/build.js:1035
+#: templates/js/translated/build.js:1040
msgid "No location set"
msgstr ""
@@ -5910,7 +6117,7 @@ msgstr ""
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:912
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:879
msgid "Convert Stock Item"
msgstr ""
@@ -5935,8 +6142,7 @@ msgstr ""
msgid "Edit Stock Location"
msgstr ""
-#: stock/views.py:269 stock/views.py:891 stock/views.py:1017
-#: stock/views.py:1299
+#: stock/views.py:269 stock/views.py:858 stock/views.py:984 stock/views.py:1266
msgid "Owner is required (ownership control is enabled)"
msgstr ""
@@ -5945,86 +6151,78 @@ msgid "Stock Location QR code"
msgstr ""
#: stock/views.py:303
-msgid "Assign to Customer"
-msgstr ""
-
-#: stock/views.py:312
-msgid "Customer must be specified"
-msgstr ""
-
-#: stock/views.py:336
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:345
+#: stock/views.py:312
msgid "Specify a valid location"
msgstr ""
-#: stock/views.py:356
+#: stock/views.py:323
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:367
+#: stock/views.py:334
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:384
+#: stock/views.py:351
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:489
+#: stock/views.py:456
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:663
+#: stock/views.py:630
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:760 templates/js/translated/stock.js:730
+#: stock/views.py:727 templates/js/translated/stock.js:887
msgid "Confirm stock adjustment"
msgstr ""
-#: stock/views.py:771
+#: stock/views.py:738
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:793 templates/js/translated/stock.js:319
+#: stock/views.py:760 templates/js/translated/stock.js:323
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:943
+#: stock/views.py:910
msgid "Create new Stock Location"
msgstr ""
-#: stock/views.py:1044
+#: stock/views.py:1011
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1186 templates/js/translated/stock.js:299
+#: stock/views.py:1153 templates/js/translated/stock.js:303
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1268
+#: stock/views.py:1235
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1368
+#: stock/views.py:1335
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:1381
+#: stock/views.py:1348
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1392
+#: stock/views.py:1359
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1399
+#: stock/views.py:1366
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1408
+#: stock/views.py:1375
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -6044,6 +6242,14 @@ msgstr ""
msgid "The requested page does not exist"
msgstr ""
+#: templates/503.html:10 templates/503.html:35
+msgid "Site is in Maintenance"
+msgstr ""
+
+#: templates/503.html:41
+msgid "The site is currently in maintenance and should be up again soon!"
+msgstr ""
+
#: templates/InvenTree/index.html:7
msgid "Index"
msgstr ""
@@ -6153,7 +6359,7 @@ msgid "Server Settings"
msgstr ""
#: templates/InvenTree/settings/login.html:9
-#: templates/InvenTree/settings/sidebar.html:28
+#: templates/InvenTree/settings/sidebar.html:29
msgid "Login Settings"
msgstr ""
@@ -6161,6 +6367,24 @@ msgstr ""
msgid "Signup"
msgstr ""
+#: templates/InvenTree/settings/mixins/settings.html:4
+#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:118
+msgid "Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/mixins/urls.html:4
+msgid "URLs"
+msgstr ""
+
+#: templates/InvenTree/settings/mixins/urls.html:6
+#, python-format
+msgid "The Base-URL for this plugin is %(base)s."
+msgstr ""
+
+#: templates/InvenTree/settings/mixins/urls.html:21
+msgid "open in new tab"
+msgstr ""
+
#: templates/InvenTree/settings/part.html:7
msgid "Part Settings"
msgstr ""
@@ -6177,6 +6401,126 @@ msgstr ""
msgid "Part Parameter Templates"
msgstr ""
+#: templates/InvenTree/settings/plugin.html:10
+msgid "Plugin Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:16
+msgid "Changing the settings below require you to immediatly restart InvenTree. Do not change this while under active usage."
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:32
+msgid "Plugin list"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:37
+#: templates/js/translated/plugin.js:15
+msgid "Install Plugin"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:46 templates/navbar.html:111
+#: users/models.py:39
+msgid "Admin"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:48
+#: templates/InvenTree/settings/plugin_settings.html:28
+msgid "Author"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:50
+#: templates/InvenTree/settings/plugin_settings.html:43
+msgid "Version"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:73
+#, python-format
+msgid "has %(name)s"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:91
+msgid "Inactive plugins"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:114
+msgid "Plugin Error Stack"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:123
+msgid "Stage"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:125
+msgid "Message"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:10
+#, python-format
+msgid "Plugin details for %(name)s"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:17
+msgid "Plugin information"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:48
+msgid "no version information supplied"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:62
+msgid "License"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:70
+msgid "The code information is pulled from the latest git commit for this plugin. It might not reflect official version numbers or information but the actual code running."
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:74
+msgid "Package information"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:80
+msgid "Installation method"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:83
+msgid "This plugin was installed as a package"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:85
+msgid "This plugin was found in a local InvenTree path"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:91
+msgid "Installation path"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:97
+msgid "Commit Author"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:101
+#: templates/about.html:47
+msgid "Commit Date"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:105
+#: templates/about.html:40
+msgid "Commit Hash"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:109
+msgid "Commit Message"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:114
+msgid "Sign Status"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:119
+msgid "Sign Key"
+msgstr ""
+
#: templates/InvenTree/settings/po.html:7
msgid "Purchase Order Settings"
msgstr ""
@@ -6194,86 +6538,82 @@ msgstr ""
msgid "Edit setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:11 templates/navbar.html:93
-msgid "Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/settings.html:65
+#: templates/InvenTree/settings/settings.html:74
msgid "Edit Global Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:65
+#: templates/InvenTree/settings/settings.html:74
msgid "Edit User Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:148
+#: templates/InvenTree/settings/settings.html:157
msgid "No category parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:170
-#: templates/InvenTree/settings/settings.html:269
+#: templates/InvenTree/settings/settings.html:179
+#: templates/InvenTree/settings/settings.html:278
msgid "Edit Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:171
-#: templates/InvenTree/settings/settings.html:270
+#: templates/InvenTree/settings/settings.html:180
+#: templates/InvenTree/settings/settings.html:279
msgid "Delete Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:249
+#: templates/InvenTree/settings/settings.html:258
msgid "No part parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:253
+#: templates/InvenTree/settings/settings.html:262
msgid "ID"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:5
+#: templates/InvenTree/settings/sidebar.html:6
#: templates/InvenTree/settings/user_settings.html:9
msgid "User Settings"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:8
+#: templates/InvenTree/settings/sidebar.html:9
#: templates/InvenTree/settings/user.html:12
msgid "Account Settings"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:10
+#: templates/InvenTree/settings/sidebar.html:11
#: templates/InvenTree/settings/user_display.html:9
msgid "Display Settings"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:12
+#: templates/InvenTree/settings/sidebar.html:13
msgid "Home Page"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:14
+#: templates/InvenTree/settings/sidebar.html:15
#: templates/InvenTree/settings/user_search.html:9
msgid "Search Settings"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:16
+#: templates/InvenTree/settings/sidebar.html:17
msgid "Label Printing"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:18
-#: templates/InvenTree/settings/sidebar.html:34
+#: templates/InvenTree/settings/sidebar.html:19
+#: templates/InvenTree/settings/sidebar.html:35
msgid "Reporting"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:23
+#: templates/InvenTree/settings/sidebar.html:24
msgid "Global Settings"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:26
+#: templates/InvenTree/settings/sidebar.html:27
msgid "Server Configuration"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:32
+#: templates/InvenTree/settings/sidebar.html:33
msgid "Currencies"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:38
+#: templates/InvenTree/settings/sidebar.html:39
msgid "Categories"
msgstr ""
@@ -6491,8 +6831,8 @@ msgstr ""
#: templates/about.html:11 templates/about.html:105
#: templates/js/translated/bom.js:283 templates/js/translated/modals.js:53
-#: templates/js/translated/modals.js:567 templates/js/translated/modals.js:661
-#: templates/js/translated/modals.js:964 templates/modals.html:15
+#: templates/js/translated/modals.js:568 templates/js/translated/modals.js:662
+#: templates/js/translated/modals.js:965 templates/modals.html:15
#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
msgid "Close"
msgstr ""
@@ -6513,14 +6853,6 @@ msgstr ""
msgid "Update Available"
msgstr ""
-#: templates/about.html:40
-msgid "Commit Hash"
-msgstr ""
-
-#: templates/about.html:47
-msgid "Commit Date"
-msgstr ""
-
#: templates/about.html:53
msgid "InvenTree Documentation"
msgstr ""
@@ -6718,8 +7050,9 @@ msgstr ""
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1129
-#: templates/js/translated/build.js:1749
+#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1134
+#: templates/js/translated/build.js:1755
+#: templates/js/translated/table_filters.js:178
msgid "Available"
msgstr ""
@@ -6765,11 +7098,11 @@ msgstr ""
msgid "Remote image must not exceed maximum allowable file size"
msgstr ""
-#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1034
+#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1035
msgid "No Response"
msgstr ""
-#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1035
+#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1036
msgid "No response from the InvenTree server"
msgstr ""
@@ -6781,35 +7114,35 @@ msgstr ""
msgid "API request returned error code 400"
msgstr ""
-#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1044
+#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1045
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1045
+#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1046
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1049
+#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1050
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1050
+#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1051
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1054
+#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1055
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1055
+#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1056
msgid "The requested resource could not be located on the server"
msgstr ""
-#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1059
+#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1060
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1060
+#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1061
msgid "Connection timeout while requesting data from server"
msgstr ""
@@ -6878,7 +7211,7 @@ msgid "Unknown response from server"
msgstr ""
#: templates/js/translated/barcode.js:140
-#: templates/js/translated/modals.js:1024
+#: templates/js/translated/modals.js:1025
msgid "Invalid server response"
msgstr ""
@@ -6886,7 +7219,7 @@ msgstr ""
msgid "Scan barcode data below"
msgstr ""
-#: templates/js/translated/barcode.js:280 templates/navbar.html:69
+#: templates/js/translated/barcode.js:280 templates/navbar.html:94
msgid "Scan Barcode"
msgstr ""
@@ -6906,7 +7239,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:682
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:839
msgid "Remove stock item"
msgstr ""
@@ -6976,7 +7309,7 @@ msgstr ""
msgid "Substitutes Available"
msgstr ""
-#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1111
+#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1116
msgid "Variant stock allowed"
msgstr ""
@@ -7000,11 +7333,6 @@ msgstr ""
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1183
-#: templates/js/translated/order.js:1319
-msgid "Actions"
-msgstr ""
-
#: templates/js/translated/bom.js:616
msgid "Validate BOM Item"
msgstr ""
@@ -7025,7 +7353,7 @@ msgstr ""
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:718 templates/js/translated/build.js:855
+#: templates/js/translated/bom.js:718 templates/js/translated/build.js:860
msgid "No BOM items found"
msgstr ""
@@ -7033,7 +7361,7 @@ msgstr ""
msgid "Are you sure you want to delete this BOM item?"
msgstr ""
-#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1095
+#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1100
msgid "Required Part"
msgstr ""
@@ -7041,165 +7369,165 @@ msgstr ""
msgid "Inherited from parent BOM"
msgstr ""
-#: templates/js/translated/build.js:78
+#: templates/js/translated/build.js:83
msgid "Edit Build Order"
msgstr ""
-#: templates/js/translated/build.js:112
+#: templates/js/translated/build.js:117
msgid "Create Build Order"
msgstr ""
-#: templates/js/translated/build.js:133
+#: templates/js/translated/build.js:138
msgid "Allocate stock items to this build output"
msgstr ""
-#: templates/js/translated/build.js:144
+#: templates/js/translated/build.js:149
msgid "Unallocate stock from build output"
msgstr ""
-#: templates/js/translated/build.js:153
+#: templates/js/translated/build.js:158
msgid "Complete build output"
msgstr ""
-#: templates/js/translated/build.js:161
+#: templates/js/translated/build.js:166
msgid "Delete build output"
msgstr ""
-#: templates/js/translated/build.js:184
+#: templates/js/translated/build.js:189
msgid "Are you sure you wish to unallocate stock items from this build?"
msgstr ""
-#: templates/js/translated/build.js:202
+#: templates/js/translated/build.js:207
msgid "Unallocate Stock Items"
msgstr ""
-#: templates/js/translated/build.js:220
+#: templates/js/translated/build.js:225
msgid "Select Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:221
+#: templates/js/translated/build.js:226
msgid "At least one build output must be selected"
msgstr ""
-#: templates/js/translated/build.js:275
+#: templates/js/translated/build.js:280
msgid "Output"
msgstr ""
-#: templates/js/translated/build.js:291
+#: templates/js/translated/build.js:296
msgid "Complete Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:386
+#: templates/js/translated/build.js:391
msgid "No build order allocations found"
msgstr ""
-#: templates/js/translated/build.js:424 templates/js/translated/order.js:1193
+#: templates/js/translated/build.js:429 templates/js/translated/order.js:1848
msgid "Location not specified"
msgstr ""
-#: templates/js/translated/build.js:603
+#: templates/js/translated/build.js:608
msgid "No active build outputs found"
msgstr ""
-#: templates/js/translated/build.js:1052 templates/js/translated/build.js:1760
-#: templates/js/translated/order.js:1326
+#: templates/js/translated/build.js:1057 templates/js/translated/build.js:1766
+#: templates/js/translated/order.js:1982
msgid "Edit stock allocation"
msgstr ""
-#: templates/js/translated/build.js:1054 templates/js/translated/build.js:1761
-#: templates/js/translated/order.js:1327
+#: templates/js/translated/build.js:1059 templates/js/translated/build.js:1767
+#: templates/js/translated/order.js:1983
msgid "Delete stock allocation"
msgstr ""
-#: templates/js/translated/build.js:1072
+#: templates/js/translated/build.js:1077
msgid "Edit Allocation"
msgstr ""
-#: templates/js/translated/build.js:1082
+#: templates/js/translated/build.js:1087
msgid "Remove Allocation"
msgstr ""
-#: templates/js/translated/build.js:1107
+#: templates/js/translated/build.js:1112
msgid "Substitute parts available"
msgstr ""
-#: templates/js/translated/build.js:1124
+#: templates/js/translated/build.js:1129
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:1134 templates/js/translated/build.js:1360
-#: templates/js/translated/build.js:1756 templates/js/translated/order.js:1556
+#: templates/js/translated/build.js:1139 templates/js/translated/build.js:1365
+#: templates/js/translated/build.js:1762 templates/js/translated/order.js:2227
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:1190 templates/js/translated/order.js:1610
+#: templates/js/translated/build.js:1195 templates/js/translated/order.js:2307
msgid "Build stock"
msgstr ""
-#: templates/js/translated/build.js:1194 templates/stock_table.html:52
+#: templates/js/translated/build.js:1199 templates/stock_table.html:52
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:1197 templates/js/translated/order.js:1603
+#: templates/js/translated/build.js:1202 templates/js/translated/order.js:2300
msgid "Allocate stock"
msgstr ""
-#: templates/js/translated/build.js:1262
+#: templates/js/translated/build.js:1267 templates/js/translated/order.js:1499
msgid "Specify stock allocation quantity"
msgstr ""
-#: templates/js/translated/build.js:1333 templates/js/translated/label.js:134
-#: templates/js/translated/report.js:225
+#: templates/js/translated/build.js:1338 templates/js/translated/label.js:134
+#: templates/js/translated/order.js:1550 templates/js/translated/report.js:225
msgid "Select Parts"
msgstr ""
-#: templates/js/translated/build.js:1334
+#: templates/js/translated/build.js:1339 templates/js/translated/order.js:1551
msgid "You must select at least one part to allocate"
msgstr ""
-#: templates/js/translated/build.js:1348
+#: templates/js/translated/build.js:1353 templates/js/translated/order.js:1565
msgid "Select source location (leave blank to take from all locations)"
msgstr ""
-#: templates/js/translated/build.js:1377
+#: templates/js/translated/build.js:1382 templates/js/translated/order.js:1600
msgid "Confirm stock allocation"
msgstr ""
-#: templates/js/translated/build.js:1378
+#: templates/js/translated/build.js:1383
msgid "Allocate Stock Items to Build Order"
msgstr ""
-#: templates/js/translated/build.js:1389
+#: templates/js/translated/build.js:1394 templates/js/translated/order.js:1613
msgid "No matching stock locations"
msgstr ""
-#: templates/js/translated/build.js:1451
+#: templates/js/translated/build.js:1464 templates/js/translated/order.js:1690
msgid "No matching stock items"
msgstr ""
-#: templates/js/translated/build.js:1576
+#: templates/js/translated/build.js:1582
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:1593 templates/js/translated/part.js:1147
-#: templates/js/translated/part.js:1558 templates/js/translated/stock.js:1176
-#: templates/js/translated/stock.js:1953
+#: templates/js/translated/build.js:1599 templates/js/translated/part.js:1147
+#: templates/js/translated/part.js:1558 templates/js/translated/stock.js:1333
+#: templates/js/translated/stock.js:2128
msgid "Select"
msgstr ""
-#: templates/js/translated/build.js:1613
+#: templates/js/translated/build.js:1619
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1674 templates/js/translated/stock.js:2172
+#: templates/js/translated/build.js:1680 templates/js/translated/stock.js:2347
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:1686
+#: templates/js/translated/build.js:1692
msgid "No information"
msgstr ""
-#: templates/js/translated/build.js:1737
+#: templates/js/translated/build.js:1743
msgid "No parts allocated for"
msgstr ""
@@ -7219,7 +7547,7 @@ msgstr ""
msgid "Delete Manufacturer Part"
msgstr ""
-#: templates/js/translated/company.js:165 templates/js/translated/order.js:90
+#: templates/js/translated/company.js:165 templates/js/translated/order.js:248
msgid "Add Supplier"
msgstr ""
@@ -7354,20 +7682,20 @@ msgstr ""
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1072 templates/modals.html:19
+#: templates/js/translated/forms.js:1078 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1463
+#: templates/js/translated/forms.js:1469
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1667
+#: templates/js/translated/forms.js:1673
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1884
+#: templates/js/translated/forms.js:1893
msgid "Clear input"
msgstr ""
@@ -7380,7 +7708,7 @@ msgid "NO"
msgstr ""
#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:706
+#: templates/js/translated/stock.js:863
msgid "Select Stock Items"
msgstr ""
@@ -7429,62 +7757,62 @@ msgstr ""
msgid "Select Label Template"
msgstr ""
-#: templates/js/translated/modals.js:75 templates/js/translated/modals.js:119
-#: templates/js/translated/modals.js:593
+#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:120
+#: templates/js/translated/modals.js:594
msgid "Cancel"
msgstr ""
-#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:118
-#: templates/js/translated/modals.js:660 templates/js/translated/modals.js:963
+#: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119
+#: templates/js/translated/modals.js:661 templates/js/translated/modals.js:964
#: templates/modals.html:28 templates/modals.html:51
msgid "Submit"
msgstr ""
-#: templates/js/translated/modals.js:117
+#: templates/js/translated/modals.js:118
msgid "Form Title"
msgstr ""
-#: templates/js/translated/modals.js:380
+#: templates/js/translated/modals.js:381
msgid "Waiting for server..."
msgstr ""
-#: templates/js/translated/modals.js:539
+#: templates/js/translated/modals.js:540
msgid "Show Error Information"
msgstr ""
-#: templates/js/translated/modals.js:592
+#: templates/js/translated/modals.js:593
msgid "Accept"
msgstr ""
-#: templates/js/translated/modals.js:649
+#: templates/js/translated/modals.js:650
msgid "Loading Data"
msgstr ""
-#: templates/js/translated/modals.js:915
+#: templates/js/translated/modals.js:916
msgid "Invalid response from server"
msgstr ""
-#: templates/js/translated/modals.js:915
+#: templates/js/translated/modals.js:916
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/translated/modals.js:927
+#: templates/js/translated/modals.js:928
msgid "Error posting form data"
msgstr ""
-#: templates/js/translated/modals.js:1024
+#: templates/js/translated/modals.js:1025
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/translated/modals.js:1039
+#: templates/js/translated/modals.js:1040
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/translated/modals.js:1040
+#: templates/js/translated/modals.js:1041
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/translated/modals.js:1063
+#: templates/js/translated/modals.js:1064
msgid "Error requesting form data"
msgstr ""
@@ -7512,176 +7840,245 @@ msgstr ""
msgid "Order ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:256
+#: templates/js/translated/model_renderers.js:253
+msgid "Shipment ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:273
msgid "Category ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:293
+#: templates/js/translated/model_renderers.js:310
msgid "Manufacturer Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:322
+#: templates/js/translated/model_renderers.js:339
msgid "Supplier Part ID"
msgstr ""
-#: templates/js/translated/order.js:48
+#: templates/js/translated/order.js:75
+msgid "No stock items have been allocated to this shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:80
+msgid "The following stock items will be shipped"
+msgstr ""
+
+#: templates/js/translated/order.js:120
+msgid "Complete Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:126
+msgid "Confirm Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:181
+msgid "Create New Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:206
msgid "Add Customer"
msgstr ""
-#: templates/js/translated/order.js:73
+#: templates/js/translated/order.js:231
msgid "Create Sales Order"
msgstr ""
-#: templates/js/translated/order.js:208
+#: templates/js/translated/order.js:366
msgid "Export Order"
msgstr ""
-#: templates/js/translated/order.js:211 templates/js/translated/stock.js:505
+#: templates/js/translated/order.js:369 templates/js/translated/stock.js:509
msgid "Format"
msgstr ""
-#: templates/js/translated/order.js:212 templates/js/translated/stock.js:506
+#: templates/js/translated/order.js:370 templates/js/translated/stock.js:510
msgid "Select file format"
msgstr ""
-#: templates/js/translated/order.js:300
+#: templates/js/translated/order.js:460
msgid "Select Line Items"
msgstr ""
-#: templates/js/translated/order.js:301
+#: templates/js/translated/order.js:461
msgid "At least one line item must be selected"
msgstr ""
-#: templates/js/translated/order.js:326
+#: templates/js/translated/order.js:486
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:360 templates/js/translated/stock.js:1755
+#: templates/js/translated/order.js:520 templates/js/translated/stock.js:1930
msgid "Stock Status"
msgstr ""
-#: templates/js/translated/order.js:427
+#: templates/js/translated/order.js:587
msgid "Order Code"
msgstr ""
-#: templates/js/translated/order.js:428
+#: templates/js/translated/order.js:588
msgid "Ordered"
msgstr ""
-#: templates/js/translated/order.js:430
+#: templates/js/translated/order.js:590
msgid "Receive"
msgstr ""
-#: templates/js/translated/order.js:449
+#: templates/js/translated/order.js:609
msgid "Confirm receipt of items"
msgstr ""
-#: templates/js/translated/order.js:450
+#: templates/js/translated/order.js:610
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:627 templates/js/translated/part.js:746
+#: templates/js/translated/order.js:790 templates/js/translated/part.js:746
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:659 templates/js/translated/order.js:1062
+#: templates/js/translated/order.js:815 templates/js/translated/order.js:1230
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:771 templates/js/translated/order.js:1645
+#: templates/js/translated/order.js:936 templates/js/translated/order.js:2356
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:783 templates/js/translated/order.js:1656
+#: templates/js/translated/order.js:948 templates/js/translated/order.js:2367
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/order.js:822
+#: templates/js/translated/order.js:987
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:849 templates/js/translated/order.js:1466
+#: templates/js/translated/order.js:1014 templates/js/translated/order.js:2138
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:903 templates/js/translated/order.js:1491
+#: templates/js/translated/order.js:1068 templates/js/translated/order.js:2163
#: templates/js/translated/part.js:1775 templates/js/translated/part.js:1986
msgid "Unit Price"
msgstr ""
-#: templates/js/translated/order.js:918 templates/js/translated/order.js:1507
+#: templates/js/translated/order.js:1083 templates/js/translated/order.js:2179
msgid "Total Price"
msgstr ""
-#: templates/js/translated/order.js:996 templates/js/translated/order.js:1616
+#: templates/js/translated/order.js:1161 templates/js/translated/order.js:2313
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:997
+#: templates/js/translated/order.js:1162 templates/js/translated/order.js:2317
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:1001 templates/js/translated/part.js:878
+#: templates/js/translated/order.js:1166 templates/js/translated/part.js:878
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:1038
+#: templates/js/translated/order.js:1206
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:1076
+#: templates/js/translated/order.js:1244
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:1154
+#: templates/js/translated/order.js:1322
+msgid "Edit shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1325
+msgid "Complete shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1330
+msgid "Delete shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1350
+msgid "Edit Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1367
+msgid "Delete Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1401
+msgid "No matching shipments found"
+msgstr ""
+
+#: templates/js/translated/order.js:1411
+msgid "Shipment Reference"
+msgstr ""
+
+#: templates/js/translated/order.js:1435
+msgid "Not shipped"
+msgstr ""
+
+#: templates/js/translated/order.js:1441
+msgid "Tracking"
+msgstr ""
+
+#: templates/js/translated/order.js:1601
+msgid "Allocate Stock Items to Sales Order"
+msgstr ""
+
+#: templates/js/translated/order.js:1809
msgid "No sales order allocations found"
msgstr ""
-#: templates/js/translated/order.js:1247
+#: templates/js/translated/order.js:1898
msgid "Edit Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1264
+#: templates/js/translated/order.js:1915
msgid "Confirm Delete Operation"
msgstr ""
-#: templates/js/translated/order.js:1265
+#: templates/js/translated/order.js:1916
msgid "Delete Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1307
+#: templates/js/translated/order.js:1959 templates/js/translated/order.js:2048
+#: templates/js/translated/stock.js:1249
+msgid "Shipped to customer"
+msgstr ""
+
+#: templates/js/translated/order.js:1967 templates/js/translated/order.js:2057
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:1556
-msgid "Fulfilled"
-msgstr ""
-
-#: templates/js/translated/order.js:1600
+#: templates/js/translated/order.js:2297
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:1606
+#: templates/js/translated/order.js:2303
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:1613 templates/js/translated/order.js:1792
+#: templates/js/translated/order.js:2310 templates/js/translated/order.js:2476
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:1617
-msgid "Delete line item "
+#: templates/js/translated/order.js:2321
+msgid "Cannot be deleted as items have been shipped"
msgstr ""
-#: templates/js/translated/order.js:1740
-msgid "Allocate Stock Item"
+#: templates/js/translated/order.js:2324
+msgid "Cannot be deleted as items have been allocated"
msgstr ""
-#: templates/js/translated/order.js:1800
+#: templates/js/translated/order.js:2382
+msgid "Allocate Serial Numbers"
+msgstr ""
+
+#: templates/js/translated/order.js:2484
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:1814
+#: templates/js/translated/order.js:2498
msgid "No matching line items"
msgstr ""
@@ -7826,12 +8223,12 @@ msgid "No category"
msgstr ""
#: templates/js/translated/part.js:1230
-#: templates/js/translated/table_filters.js:381
+#: templates/js/translated/table_filters.js:412
msgid "Low stock"
msgstr ""
#: templates/js/translated/part.js:1321 templates/js/translated/part.js:1493
-#: templates/js/translated/stock.js:1914
+#: templates/js/translated/stock.js:2089
msgid "Display as list"
msgstr ""
@@ -7839,7 +8236,7 @@ msgstr ""
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1512 templates/js/translated/stock.js:1933
+#: templates/js/translated/part.js:1512 templates/js/translated/stock.js:2108
msgid "Display as tree"
msgstr ""
@@ -7847,7 +8244,7 @@ msgstr ""
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:1590 templates/js/translated/stock.js:1977
+#: templates/js/translated/part.js:1590 templates/js/translated/stock.js:2152
msgid "Path"
msgstr ""
@@ -7855,11 +8252,11 @@ msgstr ""
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1685 templates/js/translated/stock.js:898
+#: templates/js/translated/part.js:1685 templates/js/translated/stock.js:1055
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1686 templates/js/translated/stock.js:899
+#: templates/js/translated/part.js:1686 templates/js/translated/stock.js:1056
msgid "Delete test result"
msgstr ""
@@ -7898,6 +8295,10 @@ msgstr ""
msgid "Single Price Difference"
msgstr ""
+#: templates/js/translated/plugin.js:22
+msgid "The Plugin was installed"
+msgstr ""
+
#: templates/js/translated/report.js:67
msgid "items selected"
msgstr ""
@@ -7964,300 +8365,316 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/stock.js:71
+#: templates/js/translated/stock.js:72
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:89 templates/js/translated/stock.js:168
+#: templates/js/translated/stock.js:90 templates/js/translated/stock.js:172
msgid "Next available serial number"
msgstr ""
-#: templates/js/translated/stock.js:91 templates/js/translated/stock.js:170
+#: templates/js/translated/stock.js:92 templates/js/translated/stock.js:174
msgid "Latest serial number"
msgstr ""
-#: templates/js/translated/stock.js:105
+#: templates/js/translated/stock.js:100
+msgid "Confirm Stock Serialization"
+msgstr ""
+
+#: templates/js/translated/stock.js:109
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:141
+#: templates/js/translated/stock.js:145
msgid "New Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:181
+#: templates/js/translated/stock.js:185
msgid "This part cannot be serialized"
msgstr ""
-#: templates/js/translated/stock.js:220
+#: templates/js/translated/stock.js:224
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: templates/js/translated/stock.js:226
+#: templates/js/translated/stock.js:230
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: templates/js/translated/stock.js:369
+#: templates/js/translated/stock.js:373
msgid "Created new stock item"
msgstr ""
-#: templates/js/translated/stock.js:382
+#: templates/js/translated/stock.js:386
msgid "Created multiple stock items"
msgstr ""
-#: templates/js/translated/stock.js:407
+#: templates/js/translated/stock.js:411
msgid "Find Serial Number"
msgstr ""
-#: templates/js/translated/stock.js:411 templates/js/translated/stock.js:412
+#: templates/js/translated/stock.js:415 templates/js/translated/stock.js:416
msgid "Enter serial number"
msgstr ""
-#: templates/js/translated/stock.js:428
+#: templates/js/translated/stock.js:432
msgid "Enter a serial number"
msgstr ""
-#: templates/js/translated/stock.js:448
+#: templates/js/translated/stock.js:452
msgid "No matching serial number"
msgstr ""
-#: templates/js/translated/stock.js:457
+#: templates/js/translated/stock.js:461
msgid "More than one matching result found"
msgstr ""
-#: templates/js/translated/stock.js:502
+#: templates/js/translated/stock.js:506
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:513
+#: templates/js/translated/stock.js:517
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:514
+#: templates/js/translated/stock.js:518
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:556
+#: templates/js/translated/stock.js:627
+msgid "Confirm stock assignment"
+msgstr ""
+
+#: templates/js/translated/stock.js:628
+msgid "Assign Stock to Customer"
+msgstr ""
+
+#: templates/js/translated/stock.js:713
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:557
+#: templates/js/translated/stock.js:714
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:563
+#: templates/js/translated/stock.js:720
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:564
+#: templates/js/translated/stock.js:721
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:568
+#: templates/js/translated/stock.js:725
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:569
+#: templates/js/translated/stock.js:726
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:573
+#: templates/js/translated/stock.js:730
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:574 users/models.py:200
+#: templates/js/translated/stock.js:731 users/models.py:202
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:578 templates/stock_table.html:56
+#: templates/js/translated/stock.js:735 templates/stock_table.html:57
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:667
+#: templates/js/translated/stock.js:824
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:667
+#: templates/js/translated/stock.js:824
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:707
+#: templates/js/translated/stock.js:864
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:865
+#: templates/js/translated/stock.js:1022
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:867
+#: templates/js/translated/stock.js:1024
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:872
+#: templates/js/translated/stock.js:1029
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:894
+#: templates/js/translated/stock.js:1051
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:920
+#: templates/js/translated/stock.js:1077
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:977
+#: templates/js/translated/stock.js:1134
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:1084
+#: templates/js/translated/stock.js:1241
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:1088
+#: templates/js/translated/stock.js:1245
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:1092
-msgid "Shipped to customer"
-msgstr ""
-
-#: templates/js/translated/stock.js:1096
+#: templates/js/translated/stock.js:1253
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:1102
+#: templates/js/translated/stock.js:1259
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:1260
+#: templates/js/translated/stock.js:1417
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1265
+#: templates/js/translated/stock.js:1422
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1268
+#: templates/js/translated/stock.js:1425
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1272
+#: templates/js/translated/stock.js:1429
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1274
+#: templates/js/translated/stock.js:1431
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1278
-msgid "Stock item has been allocated"
+#: templates/js/translated/stock.js:1437
+msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1282
+#: templates/js/translated/stock.js:1439
+msgid "Stock item has been fully allocated"
+msgstr ""
+
+#: templates/js/translated/stock.js:1441
+msgid "Stock item has been partially allocated"
+msgstr ""
+
+#: templates/js/translated/stock.js:1446
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1289
+#: templates/js/translated/stock.js:1453
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1291
+#: templates/js/translated/stock.js:1455
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1293
+#: templates/js/translated/stock.js:1457
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1297
-#: templates/js/translated/table_filters.js:183
+#: templates/js/translated/stock.js:1461
+#: templates/js/translated/table_filters.js:188
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1347
+#: templates/js/translated/stock.js:1511
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1420
+#: templates/js/translated/stock.js:1584
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1458
+#: templates/js/translated/stock.js:1622
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1479 templates/js/translated/stock.js:1527
+#: templates/js/translated/stock.js:1643 templates/js/translated/stock.js:1691
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1567
+#: templates/js/translated/stock.js:1731
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1594
+#: templates/js/translated/stock.js:1758
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:1596
+#: templates/js/translated/stock.js:1760
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:1770
+#: templates/js/translated/stock.js:1945
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:1784
+#: templates/js/translated/stock.js:1959
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:1785
+#: templates/js/translated/stock.js:1960
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:2009
+#: templates/js/translated/stock.js:2184
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:2031
+#: templates/js/translated/stock.js:2206
msgid "Details"
msgstr ""
-#: templates/js/translated/stock.js:2056
+#: templates/js/translated/stock.js:2231
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2075
+#: templates/js/translated/stock.js:2250
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2094
+#: templates/js/translated/stock.js:2269
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2112
+#: templates/js/translated/stock.js:2287
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2135
+#: templates/js/translated/stock.js:2310
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2143
+#: templates/js/translated/stock.js:2318
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2184
+#: templates/js/translated/stock.js:2359
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2185
+#: templates/js/translated/stock.js:2360
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2236
+#: templates/js/translated/stock.js:2411
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2287
+#: templates/js/translated/stock.js:2462
msgid "Uninstall Stock Item"
msgstr ""
@@ -8278,7 +8695,7 @@ msgid "Allow Variant Stock"
msgstr ""
#: templates/js/translated/table_filters.js:110
-#: templates/js/translated/table_filters.js:178
+#: templates/js/translated/table_filters.js:183
msgid "Include sublocations"
msgstr ""
@@ -8288,54 +8705,54 @@ msgstr ""
#: templates/js/translated/table_filters.js:121
#: templates/js/translated/table_filters.js:122
-#: templates/js/translated/table_filters.js:358
+#: templates/js/translated/table_filters.js:389
msgid "Include subcategories"
msgstr ""
#: templates/js/translated/table_filters.js:126
-#: templates/js/translated/table_filters.js:393
+#: templates/js/translated/table_filters.js:424
msgid "Subscribed"
msgstr ""
#: templates/js/translated/table_filters.js:136
-#: templates/js/translated/table_filters.js:213
+#: templates/js/translated/table_filters.js:218
msgid "Is Serialized"
msgstr ""
#: templates/js/translated/table_filters.js:139
-#: templates/js/translated/table_filters.js:220
+#: templates/js/translated/table_filters.js:225
msgid "Serial number GTE"
msgstr ""
#: templates/js/translated/table_filters.js:140
-#: templates/js/translated/table_filters.js:221
+#: templates/js/translated/table_filters.js:226
msgid "Serial number greater than or equal to"
msgstr ""
#: templates/js/translated/table_filters.js:143
-#: templates/js/translated/table_filters.js:224
+#: templates/js/translated/table_filters.js:229
msgid "Serial number LTE"
msgstr ""
#: templates/js/translated/table_filters.js:144
-#: templates/js/translated/table_filters.js:225
+#: templates/js/translated/table_filters.js:230
msgid "Serial number less than or equal to"
msgstr ""
#: templates/js/translated/table_filters.js:147
#: templates/js/translated/table_filters.js:148
-#: templates/js/translated/table_filters.js:216
-#: templates/js/translated/table_filters.js:217
+#: templates/js/translated/table_filters.js:221
+#: templates/js/translated/table_filters.js:222
msgid "Serial number"
msgstr ""
#: templates/js/translated/table_filters.js:152
-#: templates/js/translated/table_filters.js:234
+#: templates/js/translated/table_filters.js:239
msgid "Batch code"
msgstr ""
#: templates/js/translated/table_filters.js:163
-#: templates/js/translated/table_filters.js:348
+#: templates/js/translated/table_filters.js:379
msgid "Active parts"
msgstr ""
@@ -8356,101 +8773,111 @@ msgid "Item has been allocated"
msgstr ""
#: templates/js/translated/table_filters.js:179
-msgid "Include stock in sublocations"
+msgid "Stock is available for use"
msgstr ""
#: templates/js/translated/table_filters.js:184
-msgid "Show stock items which are depleted"
+msgid "Include stock in sublocations"
msgstr ""
#: templates/js/translated/table_filters.js:189
-msgid "Show items which are in stock"
-msgstr ""
-
-#: templates/js/translated/table_filters.js:193
-msgid "In Production"
+msgid "Show stock items which are depleted"
msgstr ""
#: templates/js/translated/table_filters.js:194
-msgid "Show items which are in production"
+msgid "Show items which are in stock"
msgstr ""
#: templates/js/translated/table_filters.js:198
-msgid "Include Variants"
+msgid "In Production"
msgstr ""
#: templates/js/translated/table_filters.js:199
-msgid "Include stock items for variant parts"
+msgid "Show items which are in production"
msgstr ""
#: templates/js/translated/table_filters.js:203
-msgid "Installed"
+msgid "Include Variants"
msgstr ""
#: templates/js/translated/table_filters.js:204
-msgid "Show stock items which are installed in another item"
+msgid "Include stock items for variant parts"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:208
+msgid "Installed"
msgstr ""
#: templates/js/translated/table_filters.js:209
+msgid "Show stock items which are installed in another item"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:214
msgid "Show items which have been assigned to a customer"
msgstr ""
-#: templates/js/translated/table_filters.js:229
-#: templates/js/translated/table_filters.js:230
+#: templates/js/translated/table_filters.js:234
+#: templates/js/translated/table_filters.js:235
msgid "Stock status"
msgstr ""
-#: templates/js/translated/table_filters.js:238
+#: templates/js/translated/table_filters.js:243
msgid "Has purchase price"
msgstr ""
-#: templates/js/translated/table_filters.js:239
+#: templates/js/translated/table_filters.js:244
msgid "Show stock items which have a purchase price set"
msgstr ""
-#: templates/js/translated/table_filters.js:248
+#: templates/js/translated/table_filters.js:253
msgid "Show stock items which have expired"
msgstr ""
-#: templates/js/translated/table_filters.js:254
+#: templates/js/translated/table_filters.js:259
msgid "Show stock which is close to expiring"
msgstr ""
-#: templates/js/translated/table_filters.js:285
+#: templates/js/translated/table_filters.js:290
msgid "Build status"
msgstr ""
-#: templates/js/translated/table_filters.js:313
-#: templates/js/translated/table_filters.js:330
+#: templates/js/translated/table_filters.js:303
+#: templates/js/translated/table_filters.js:344
+msgid "Assigned to me"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:320
+#: templates/js/translated/table_filters.js:331
+#: templates/js/translated/table_filters.js:352
msgid "Order status"
msgstr ""
-#: templates/js/translated/table_filters.js:318
-#: templates/js/translated/table_filters.js:335
+#: templates/js/translated/table_filters.js:336
+#: templates/js/translated/table_filters.js:357
msgid "Outstanding"
msgstr ""
-#: templates/js/translated/table_filters.js:359
+#: templates/js/translated/table_filters.js:390
msgid "Include parts in subcategories"
msgstr ""
-#: templates/js/translated/table_filters.js:363
+#: templates/js/translated/table_filters.js:394
msgid "Has IPN"
msgstr ""
-#: templates/js/translated/table_filters.js:364
+#: templates/js/translated/table_filters.js:395
msgid "Part has internal part number"
msgstr ""
-#: templates/js/translated/table_filters.js:369
+#: templates/js/translated/table_filters.js:400
msgid "Show active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:377
+#: templates/js/translated/table_filters.js:408
msgid "Stock available"
msgstr ""
-#: templates/js/translated/table_filters.js:405
+#: templates/js/translated/table_filters.js:436
msgid "Purchasable"
msgstr ""
@@ -8507,27 +8934,23 @@ msgstr ""
msgid "All"
msgstr ""
-#: templates/navbar.html:40
+#: templates/navbar.html:42
msgid "Buy"
msgstr ""
-#: templates/navbar.html:52
+#: templates/navbar.html:54
msgid "Sell"
msgstr ""
-#: templates/navbar.html:86 users/models.py:39
-msgid "Admin"
-msgstr ""
-
-#: templates/navbar.html:88
+#: templates/navbar.html:113
msgid "Logout"
msgstr ""
-#: templates/navbar.html:90
+#: templates/navbar.html:115
msgid "Login"
msgstr ""
-#: templates/navbar.html:111
+#: templates/navbar.html:136
msgid "About InvenTree"
msgstr ""
@@ -8639,15 +9062,15 @@ msgstr ""
msgid "Order selected items"
msgstr ""
-#: templates/stock_table.html:53
+#: templates/stock_table.html:54
msgid "Change status"
msgstr ""
-#: templates/stock_table.html:53
+#: templates/stock_table.html:54
msgid "Change stock status"
msgstr ""
-#: templates/stock_table.html:56
+#: templates/stock_table.html:57
msgid "Delete selected items"
msgstr ""
@@ -8683,35 +9106,35 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:187
+#: users/models.py:189
msgid "Permission set"
msgstr ""
-#: users/models.py:195
+#: users/models.py:197
msgid "Group"
msgstr ""
-#: users/models.py:198
+#: users/models.py:200
msgid "View"
msgstr ""
-#: users/models.py:198
+#: users/models.py:200
msgid "Permission to view items"
msgstr ""
-#: users/models.py:200
+#: users/models.py:202
msgid "Permission to add items"
msgstr ""
-#: users/models.py:202
+#: users/models.py:204
msgid "Change"
msgstr ""
-#: users/models.py:202
+#: users/models.py:204
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:204
+#: users/models.py:206
msgid "Permission to delete items"
msgstr ""
diff --git a/InvenTree/locale/nl/LC_MESSAGES/django.po b/InvenTree/locale/nl/LC_MESSAGES/django.po
index 7208eb54a1..713d52d267 100644
--- a/InvenTree/locale/nl/LC_MESSAGES/django.po
+++ b/InvenTree/locale/nl/LC_MESSAGES/django.po
@@ -1,9 +1,10 @@
+#: templates/js/translated/order.js:1973
msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-12-03 10:37+0000\n"
-"PO-Revision-Date: 2021-12-03 11:25\n"
+"POT-Creation-Date: 2021-12-08 23:43+0000\n"
+"PO-Revision-Date: 2021-12-08 23:47\n"
"Last-Translator: \n"
"Language-Team: Dutch\n"
"Language: nl_NL\n"
@@ -34,8 +35,8 @@ msgid "Enter date"
msgstr "Voer datum in"
#: InvenTree/forms.py:120 build/forms.py:48 build/forms.py:69 build/forms.py:93
-#: order/forms.py:26 order/forms.py:37 order/forms.py:48 order/forms.py:59
-#: order/forms.py:70 part/forms.py:108 templates/account/email_confirm.html:20
+#: order/forms.py:24 order/forms.py:35 order/forms.py:46 order/forms.py:57
+#: part/forms.py:108 templates/account/email_confirm.html:20
#: templates/js/translated/forms.js:595
msgid "Confirm"
msgstr "Bevestigen"
@@ -85,8 +86,8 @@ msgstr "U moet elke keer hetzelfde e-mailadres invoeren."
msgid "Duplicate serial: {n}"
msgstr "Dubbel serienummer: {n}"
-#: InvenTree/helpers.py:437 order/models.py:318 order/models.py:440
-#: stock/views.py:1264
+#: InvenTree/helpers.py:437 order/models.py:279 order/models.py:420
+#: stock/views.py:1231
msgid "Invalid quantity provided"
msgstr "Ongeldige hoeveeldheid ingevoerd"
@@ -122,7 +123,7 @@ msgstr "Ontbrekend bestand"
msgid "Missing external link"
msgstr "Externe link ontbreekt"
-#: InvenTree/models.py:132 stock/models.py:1864
+#: InvenTree/models.py:132 stock/models.py:1852
#: templates/js/translated/attachment.js:117
msgid "Attachment"
msgstr "Bijlage"
@@ -132,7 +133,7 @@ msgid "Select file to attach"
msgstr "Bestand als bijlage selecteren"
#: InvenTree/models.py:139 company/models.py:131 company/models.py:348
-#: company/models.py:564 order/models.py:163 part/models.py:797
+#: company/models.py:564 order/models.py:124 part/models.py:797
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:537
#: templates/js/translated/company.js:826 templates/js/translated/part.js:1258
@@ -140,7 +141,7 @@ msgid "Link"
msgstr "Link"
#: InvenTree/models.py:140 build/models.py:330 part/models.py:798
-#: stock/models.py:530
+#: stock/models.py:524
msgid "Link to external URL"
msgstr "Link naar externe URL"
@@ -152,10 +153,10 @@ msgstr "Opmerking"
msgid "File comment"
msgstr "Bijlage opmerking"
-#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1185
-#: common/models.py:1186 part/models.py:2205 part/models.py:2225
+#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1213
+#: common/models.py:1214 part/models.py:2205 part/models.py:2225
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2166
+#: templates/js/translated/stock.js:2341
msgid "User"
msgstr "Gebruiker"
@@ -194,10 +195,15 @@ msgstr "Ongeldige keuze"
#: InvenTree/models.py:277 InvenTree/models.py:278 company/models.py:415
#: label/models.py:112 part/models.py:741 part/models.py:2389
-#: report/models.py:181 templates/InvenTree/settings/settings.html:259
+#: plugin/models.py:39 report/models.py:181
+#: templates/InvenTree/settings/mixins/urls.html:11
+#: templates/InvenTree/settings/plugin.html:47
+#: templates/InvenTree/settings/plugin.html:124
+#: templates/InvenTree/settings/plugin_settings.html:23
+#: templates/InvenTree/settings/settings.html:268
#: templates/js/translated/company.js:638 templates/js/translated/part.js:506
#: templates/js/translated/part.js:643 templates/js/translated/part.js:1565
-#: templates/js/translated/stock.js:1959
+#: templates/js/translated/stock.js:2134
msgid "Name"
msgstr "Naam"
@@ -206,22 +212,23 @@ msgstr "Naam"
#: company/models.py:570 company/templates/company/company_base.html:68
#: company/templates/company/manufacturer_part.html:76
#: company/templates/company/supplier_part.html:73 label/models.py:119
-#: order/models.py:161 part/models.py:764 part/templates/part/category.html:70
+#: order/models.py:122 part/models.py:764 part/templates/part/category.html:70
#: part/templates/part/part_base.html:163
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:553 report/models.py:592
#: report/templates/report/inventree_build_order_base.html:118
-#: stock/templates/stock/location.html:89 templates/js/translated/bom.js:215
-#: templates/js/translated/bom.js:428 templates/js/translated/build.js:1621
-#: templates/js/translated/company.js:345
+#: stock/templates/stock/location.html:89
+#: templates/InvenTree/settings/plugin_settings.html:33
+#: templates/js/translated/bom.js:215 templates/js/translated/bom.js:428
+#: templates/js/translated/build.js:1627 templates/js/translated/company.js:345
#: templates/js/translated/company.js:548
-#: templates/js/translated/company.js:837 templates/js/translated/order.js:680
-#: templates/js/translated/order.js:854 templates/js/translated/order.js:1090
+#: templates/js/translated/company.js:837 templates/js/translated/order.js:836
+#: templates/js/translated/order.js:1019 templates/js/translated/order.js:1258
#: templates/js/translated/part.js:565 templates/js/translated/part.js:933
#: templates/js/translated/part.js:1018 templates/js/translated/part.js:1188
#: templates/js/translated/part.js:1584 templates/js/translated/part.js:1653
-#: templates/js/translated/stock.js:1233 templates/js/translated/stock.js:1971
-#: templates/js/translated/stock.js:2016
+#: templates/js/translated/stock.js:1390 templates/js/translated/stock.js:2146
+#: templates/js/translated/stock.js:2191
msgid "Description"
msgstr "Omschrijving"
@@ -241,83 +248,83 @@ msgstr "Moet een geldig nummer zijn"
msgid "Filename"
msgstr "Bestandsnaam"
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:689
msgid "German"
msgstr "Duits"
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:690
msgid "Greek"
msgstr "Grieks"
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:691
msgid "English"
msgstr "Engels"
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:692
msgid "Spanish"
msgstr "Spaans"
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:693
msgid "Spanish (Mexican)"
msgstr "Spaans (Mexicaans)"
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:694
msgid "French"
msgstr "Frans"
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:695
msgid "Hebrew"
msgstr "Hebreeuws"
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:696
msgid "Italian"
msgstr "Italiaans"
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:697
msgid "Japanese"
msgstr "Japans"
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:698
msgid "Korean"
msgstr "Koreaans"
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:699
msgid "Dutch"
msgstr "Nederlands"
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:700
msgid "Norwegian"
msgstr "Noors"
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:701
msgid "Polish"
msgstr "Pools"
-#: InvenTree/settings.py:683
+#: InvenTree/settings.py:702
msgid "Portugese"
msgstr "Portugees"
-#: InvenTree/settings.py:684
+#: InvenTree/settings.py:703
msgid "Russian"
msgstr "Russisch"
-#: InvenTree/settings.py:685
+#: InvenTree/settings.py:704
msgid "Swedish"
msgstr "Zweeds"
-#: InvenTree/settings.py:686
+#: InvenTree/settings.py:705
msgid "Thai"
msgstr "Thais"
-#: InvenTree/settings.py:687
+#: InvenTree/settings.py:706
msgid "Turkish"
msgstr "Turks"
-#: InvenTree/settings.py:688
+#: InvenTree/settings.py:707
msgid "Vietnamese"
msgstr "Vietnamees"
-#: InvenTree/settings.py:689
+#: InvenTree/settings.py:708
msgid "Chinese"
msgstr "Chinees"
@@ -334,7 +341,7 @@ msgid "InvenTree system health checks failed"
msgstr "Inventree gezondsheidscheck faalt"
#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142
-#: InvenTree/status_codes.py:311
+#: InvenTree/status_codes.py:311 templates/js/translated/table_filters.js:313
msgid "Pending"
msgstr "Bezig"
@@ -343,6 +350,8 @@ msgid "Placed"
msgstr "Geplaatst"
#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:314
+#: order/templates/order/order_base.html:128
+#: order/templates/order/sales_order_base.html:132
msgid "Complete"
msgstr "Voltooid"
@@ -361,8 +370,8 @@ msgstr "Kwijt"
msgid "Returned"
msgstr "Retour"
-#: InvenTree/status_codes.py:143
-#: order/templates/order/sales_order_base.html:148
+#: InvenTree/status_codes.py:143 order/models.py:939
+#: templates/js/translated/order.js:1980 templates/js/translated/order.js:2255
msgid "Shipped"
msgstr "Verzonden"
@@ -442,7 +451,7 @@ msgstr "Splits van bovenliggend item"
msgid "Split child item"
msgstr "Splits onderliggende item"
-#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:208
+#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:213
msgid "Sent to customer"
msgstr "Naar klant verzonden"
@@ -522,55 +531,55 @@ msgstr "Wachtwoord instellen"
msgid "Password fields must match"
msgstr "Wachtwoordvelden komen niet overeen"
-#: InvenTree/views.py:883 templates/navbar.html:101
+#: InvenTree/views.py:883 templates/navbar.html:126
msgid "System Information"
msgstr "Systeeminformatie"
-#: barcodes/api.py:53 barcodes/api.py:150
+#: barcodes/api.py:54 barcodes/api.py:151
msgid "Must provide barcode_data parameter"
msgstr "De paramenter barcode_data moet worden aangeleverd"
-#: barcodes/api.py:126
+#: barcodes/api.py:127
msgid "No match found for barcode data"
msgstr "Geen overeenkomst gevonden voor barcode gegevens"
-#: barcodes/api.py:128
+#: barcodes/api.py:129
msgid "Match found for barcode data"
msgstr "Overeenkomst gevonden voor barcode gegevens"
-#: barcodes/api.py:153
+#: barcodes/api.py:154
msgid "Must provide stockitem parameter"
msgstr "Moet voorraaditem parameter aanleveren"
-#: barcodes/api.py:160
+#: barcodes/api.py:161
msgid "No matching stock item found"
msgstr "Geen overeenkomend voorraaditem gevonden"
-#: barcodes/api.py:190
-msgid "Barcode already matches StockItem object"
-msgstr "Barcode komt al overeen met StockItem object"
+#: barcodes/api.py:191
+msgid "Barcode already matches Stock Item"
+msgstr ""
-#: barcodes/api.py:194
-msgid "Barcode already matches StockLocation object"
-msgstr "Barcode komt al overeen met StockLocation object"
+#: barcodes/api.py:195
+msgid "Barcode already matches Stock Location"
+msgstr ""
-#: barcodes/api.py:198
-msgid "Barcode already matches Part object"
-msgstr "Barcode komt al overeen met Part object"
+#: barcodes/api.py:199
+msgid "Barcode already matches Part"
+msgstr ""
-#: barcodes/api.py:204 barcodes/api.py:216
-msgid "Barcode hash already matches StockItem object"
-msgstr "Barcode komt al overeen met StockItem object"
+#: barcodes/api.py:205 barcodes/api.py:217
+msgid "Barcode hash already matches Stock Item"
+msgstr ""
-#: barcodes/api.py:222
-msgid "Barcode associated with StockItem"
-msgstr "Barcode gekoppeld aan StockItem"
+#: barcodes/api.py:223
+msgid "Barcode associated with Stock Item"
+msgstr ""
#: build/forms.py:36 build/models.py:1283
#: build/templates/build/build_base.html:132
-#: build/templates/build/detail.html:35 common/models.py:1225
+#: build/templates/build/detail.html:35 common/models.py:1253
#: company/forms.py:42 company/templates/company/supplier_part.html:251
-#: order/forms.py:102 order/models.py:729 order/models.py:991
+#: order/models.py:794 order/models.py:1205 order/serializers.py:810
#: order/templates/order/order_wizard/match_parts.html:30
#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:223
#: part/forms.py:239 part/forms.py:255 part/models.py:2576
@@ -582,20 +591,23 @@ msgstr "Barcode gekoppeld aan StockItem"
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:81
#: report/templates/report/inventree_test_report_base.html:139
-#: stock/forms.py:156 stock/serializers.py:291
+#: stock/forms.py:142 stock/serializers.py:293
#: stock/templates/stock/item_base.html:174
+#: stock/templates/stock/item_base.html:255
+#: stock/templates/stock/item_base.html:263
#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443
-#: templates/js/translated/build.js:235 templates/js/translated/build.js:435
-#: templates/js/translated/build.js:629 templates/js/translated/build.js:639
-#: templates/js/translated/build.js:1015 templates/js/translated/build.js:1362
+#: templates/js/translated/build.js:240 templates/js/translated/build.js:440
+#: templates/js/translated/build.js:634 templates/js/translated/build.js:644
+#: templates/js/translated/build.js:1020 templates/js/translated/build.js:1367
#: templates/js/translated/model_renderers.js:99
-#: templates/js/translated/order.js:891 templates/js/translated/order.js:1204
-#: templates/js/translated/order.js:1282 templates/js/translated/order.js:1289
-#: templates/js/translated/order.js:1378 templates/js/translated/order.js:1478
-#: templates/js/translated/part.js:843 templates/js/translated/part.js:1796
-#: templates/js/translated/part.js:1919 templates/js/translated/part.js:1997
-#: templates/js/translated/stock.js:378 templates/js/translated/stock.js:2151
-#: templates/js/translated/stock.js:2253
+#: templates/js/translated/order.js:101 templates/js/translated/order.js:1056
+#: templates/js/translated/order.js:1578 templates/js/translated/order.js:1859
+#: templates/js/translated/order.js:1947 templates/js/translated/order.js:2036
+#: templates/js/translated/order.js:2150 templates/js/translated/part.js:843
+#: templates/js/translated/part.js:1796 templates/js/translated/part.js:1919
+#: templates/js/translated/part.js:1997 templates/js/translated/stock.js:382
+#: templates/js/translated/stock.js:579 templates/js/translated/stock.js:2326
+#: templates/js/translated/stock.js:2428
msgid "Quantity"
msgstr "Aantal"
@@ -603,9 +615,9 @@ msgstr "Aantal"
msgid "Enter quantity for build output"
msgstr "Voer hoeveelheid in voor build-output"
-#: build/forms.py:41 order/forms.py:96 stock/forms.py:95
-#: stock/serializers.py:312 templates/js/translated/stock.js:225
-#: templates/js/translated/stock.js:379
+#: build/forms.py:41 order/serializers.py:814 stock/forms.py:81
+#: stock/serializers.py:314 templates/js/translated/stock.js:229
+#: templates/js/translated/stock.js:383
msgid "Serial Numbers"
msgstr "Serienummers"
@@ -640,17 +652,17 @@ msgstr "Ongeldige keuze voor bovenliggende build"
#: build/models.py:137 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:397
+#: templates/js/translated/build.js:402
msgid "Build Order"
msgstr "Bouwopdracht"
#: build/models.py:138 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
-#: order/templates/order/sales_order_detail.html:42
-#: order/templates/order/so_sidebar.html:7
+#: order/templates/order/sales_order_detail.html:92
+#: order/templates/order/so_sidebar.html:13
#: part/templates/part/part_sidebar.html:20 templates/InvenTree/index.html:221
#: templates/InvenTree/search.html:145
-#: templates/InvenTree/settings/sidebar.html:42 users/models.py:44
+#: templates/InvenTree/settings/sidebar.html:43 users/models.py:44
msgid "Build Orders"
msgstr "Bouwopdrachten"
@@ -658,13 +670,13 @@ msgstr "Bouwopdrachten"
msgid "Build Order Reference"
msgstr "Bouwopdracht referentie"
-#: build/models.py:199 order/models.py:249 order/models.py:556
-#: order/models.py:736 part/models.py:2585
+#: build/models.py:199 order/models.py:210 order/models.py:536
+#: order/models.py:801 part/models.py:2585
#: part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1119
-#: templates/js/translated/order.js:885 templates/js/translated/order.js:1472
+#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1124
+#: templates/js/translated/order.js:1050 templates/js/translated/order.js:2144
msgid "Reference"
msgstr "Referentie"
@@ -683,7 +695,7 @@ msgstr "BuildOrder waaraan deze build is toegewezen"
#: build/models.py:225 build/templates/build/build_base.html:77
#: build/templates/build/detail.html:30 company/models.py:705
-#: order/models.py:789 order/models.py:860
+#: order/models.py:854 order/models.py:928
#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357
#: part/models.py:2151 part/models.py:2167 part/models.py:2186
#: part/models.py:2203 part/models.py:2305 part/models.py:2427
@@ -698,14 +710,16 @@ msgstr "BuildOrder waaraan deze build is toegewezen"
#: templates/email/build_order_required_stock.html:17
#: templates/email/low_stock_notification.html:16
#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:214
-#: templates/js/translated/bom.js:393 templates/js/translated/build.js:620
-#: templates/js/translated/build.js:988 templates/js/translated/build.js:1359
-#: templates/js/translated/build.js:1626 templates/js/translated/company.js:489
-#: templates/js/translated/company.js:746 templates/js/translated/order.js:426
-#: templates/js/translated/order.js:839 templates/js/translated/order.js:1456
-#: templates/js/translated/part.js:918 templates/js/translated/part.js:999
-#: templates/js/translated/part.js:1166 templates/js/translated/stock.js:590
-#: templates/js/translated/stock.js:1190 templates/js/translated/stock.js:2241
+#: templates/js/translated/bom.js:393 templates/js/translated/build.js:625
+#: templates/js/translated/build.js:993 templates/js/translated/build.js:1364
+#: templates/js/translated/build.js:1632 templates/js/translated/company.js:489
+#: templates/js/translated/company.js:746 templates/js/translated/order.js:84
+#: templates/js/translated/order.js:586 templates/js/translated/order.js:1004
+#: templates/js/translated/order.js:1576 templates/js/translated/order.js:1933
+#: templates/js/translated/order.js:2128 templates/js/translated/part.js:918
+#: templates/js/translated/part.js:999 templates/js/translated/part.js:1166
+#: templates/js/translated/stock.js:553 templates/js/translated/stock.js:747
+#: templates/js/translated/stock.js:1347 templates/js/translated/stock.js:2416
msgid "Part"
msgstr "Onderdeel"
@@ -721,7 +735,8 @@ msgstr "Verkoop Order Referentie"
msgid "SalesOrder to which this build is allocated"
msgstr "Verkooporder waaraan deze build is toegewezen"
-#: build/models.py:247 templates/js/translated/build.js:1347
+#: build/models.py:247 templates/js/translated/build.js:1352
+#: templates/js/translated/order.js:1564
msgid "Source Location"
msgstr "Bron Locatie"
@@ -761,7 +776,7 @@ msgstr "Bouwstatus"
msgid "Build status code"
msgstr "Bouwstatuscode"
-#: build/models.py:285 stock/models.py:534
+#: build/models.py:285 stock/models.py:528
msgid "Batch Code"
msgstr ""
@@ -769,12 +784,12 @@ msgstr ""
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:292 order/models.py:165 part/models.py:936
-#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1103
+#: build/models.py:292 order/models.py:126 part/models.py:936
+#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1271
msgid "Creation Date"
msgstr "Aanmaakdatum"
-#: build/models.py:296 order/models.py:578
+#: build/models.py:296 order/models.py:558
msgid "Target completion date"
msgstr "Verwachte voltooiingsdatum"
@@ -782,8 +797,8 @@ msgstr "Verwachte voltooiingsdatum"
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/models.py:300 order/models.py:291
-#: templates/js/translated/build.js:1697
+#: build/models.py:300 order/models.py:252
+#: templates/js/translated/build.js:1703
msgid "Completion Date"
msgstr "Voltooiingsdatum"
@@ -791,7 +806,7 @@ msgstr "Voltooiingsdatum"
msgid "completed by"
msgstr "voltooid door"
-#: build/models.py:314 templates/js/translated/build.js:1668
+#: build/models.py:314 templates/js/translated/build.js:1674
msgid "Issued by"
msgstr ""
@@ -800,11 +815,11 @@ msgid "User who issued this build order"
msgstr "Gebruiker die bouwopdracht heeft gegeven"
#: build/models.py:323 build/templates/build/build_base.html:185
-#: build/templates/build/detail.html:116 order/models.py:179
-#: order/templates/order/order_base.html:158
-#: order/templates/order/sales_order_base.html:162 part/models.py:940
+#: build/templates/build/detail.html:116 order/models.py:140
+#: order/templates/order/order_base.html:170
+#: order/templates/order/sales_order_base.html:182 part/models.py:940
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:1680 templates/js/translated/order.js:699
+#: templates/js/translated/build.js:1686 templates/js/translated/order.js:864
msgid "Responsible"
msgstr "Verantwoordelijke"
@@ -815,7 +830,7 @@ msgstr "Gebruiker verantwoordelijk voor deze bouwopdracht"
#: build/models.py:329 build/templates/build/detail.html:102
#: company/templates/company/manufacturer_part.html:102
#: company/templates/company/supplier_part.html:126
-#: part/templates/part/part_base.html:354 stock/models.py:528
+#: part/templates/part/part_base.html:354 stock/models.py:522
#: stock/templates/stock/item_base.html:374
msgid "External Link"
msgstr "Externe Link"
@@ -823,18 +838,19 @@ msgstr "Externe Link"
#: build/models.py:334 build/serializers.py:201
#: build/templates/build/sidebar.html:21 company/models.py:142
#: company/models.py:577 company/templates/company/sidebar.html:25
-#: order/models.py:183 order/models.py:738
+#: order/models.py:144 order/models.py:803 order/models.py:1049
#: order/templates/order/po_sidebar.html:11
-#: order/templates/order/so_sidebar.html:11 part/models.py:925
+#: order/templates/order/so_sidebar.html:17 part/models.py:925
#: part/templates/part/detail.html:116 part/templates/part/part_sidebar.html:50
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/forms.py:154 stock/forms.py:204 stock/forms.py:238 stock/models.py:600
-#: stock/models.py:1764 stock/models.py:1870 stock/serializers.py:330
-#: stock/serializers.py:588 stock/templates/stock/stock_sidebar.html:21
+#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:594
+#: stock/models.py:1752 stock/models.py:1858 stock/serializers.py:332
+#: stock/serializers.py:624 stock/serializers.py:711
+#: stock/templates/stock/stock_sidebar.html:21
#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599
-#: templates/js/translated/company.js:842 templates/js/translated/order.js:984
-#: templates/js/translated/order.js:1582 templates/js/translated/stock.js:973
-#: templates/js/translated/stock.js:1452
+#: templates/js/translated/company.js:842 templates/js/translated/order.js:1149
+#: templates/js/translated/order.js:1445 templates/js/translated/order.js:2280
+#: templates/js/translated/stock.js:1130 templates/js/translated/stock.js:1616
msgid "Notes"
msgstr "Opmerkingen"
@@ -867,7 +883,7 @@ msgstr ""
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1133 order/models.py:964
+#: build/models.py:1133 order/models.py:1165
msgid "Allocation quantity must be greater than zero"
msgstr ""
@@ -880,8 +896,8 @@ msgid "Selected stock item not found in BOM"
msgstr ""
#: build/models.py:1253 stock/templates/stock/item_base.html:346
-#: templates/InvenTree/search.html:143 templates/js/translated/build.js:1599
-#: templates/navbar.html:33
+#: templates/InvenTree/search.html:143 templates/js/translated/build.js:1605
+#: templates/navbar.html:35
msgid "Build"
msgstr "Product"
@@ -889,14 +905,17 @@ msgstr "Product"
msgid "Build to allocate parts"
msgstr "Bouw om onderdelen toe te wijzen"
-#: build/models.py:1270 build/serializers.py:328
+#: build/models.py:1270 build/serializers.py:328 order/serializers.py:690
+#: order/serializers.py:708 stock/serializers.py:562
#: stock/templates/stock/item_base.html:8
#: stock/templates/stock/item_base.html:16
#: stock/templates/stock/item_base.html:368
-#: templates/js/translated/build.js:408 templates/js/translated/build.js:413
-#: templates/js/translated/build.js:1361 templates/js/translated/build.js:1742
-#: templates/js/translated/order.js:1177 templates/js/translated/order.js:1182
-#: templates/js/translated/stock.js:2102
+#: templates/js/translated/build.js:413 templates/js/translated/build.js:418
+#: templates/js/translated/build.js:1366 templates/js/translated/build.js:1748
+#: templates/js/translated/order.js:85 templates/js/translated/order.js:1577
+#: templates/js/translated/order.js:1832 templates/js/translated/order.js:1837
+#: templates/js/translated/order.js:1940 templates/js/translated/order.js:2030
+#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:2277
msgid "Stock Item"
msgstr "Voorraadartikel"
@@ -936,16 +955,17 @@ msgstr ""
msgid "This build output is not fully allocated"
msgstr ""
-#: build/serializers.py:190 order/serializers.py:228 order/serializers.py:296
-#: stock/forms.py:236 stock/serializers.py:323 stock/serializers.py:690
+#: build/serializers.py:190 order/serializers.py:226 order/serializers.py:294
+#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:813
#: stock/templates/stock/item_base.html:314
#: templates/js/translated/barcode.js:384
-#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:420
-#: templates/js/translated/build.js:1027 templates/js/translated/order.js:348
-#: templates/js/translated/order.js:1189 templates/js/translated/order.js:1297
-#: templates/js/translated/order.js:1303 templates/js/translated/part.js:177
-#: templates/js/translated/stock.js:592 templates/js/translated/stock.js:1333
-#: templates/js/translated/stock.js:2043
+#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:425
+#: templates/js/translated/build.js:1032 templates/js/translated/order.js:508
+#: templates/js/translated/order.js:1844 templates/js/translated/order.js:1955
+#: templates/js/translated/order.js:1963 templates/js/translated/order.js:2044
+#: templates/js/translated/part.js:177 templates/js/translated/stock.js:555
+#: templates/js/translated/stock.js:749 templates/js/translated/stock.js:1497
+#: templates/js/translated/stock.js:2218
msgid "Location"
msgstr "Locatie"
@@ -954,12 +974,12 @@ msgid "Location for completed build outputs"
msgstr ""
#: build/serializers.py:197 build/templates/build/build_base.html:137
-#: build/templates/build/detail.html:63 order/models.py:572
-#: order/serializers.py:249 stock/templates/stock/item_base.html:180
-#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1655
-#: templates/js/translated/order.js:431 templates/js/translated/order.js:1095
-#: templates/js/translated/stock.js:1308 templates/js/translated/stock.js:2120
-#: templates/js/translated/stock.js:2269
+#: build/templates/build/detail.html:63 order/models.py:552
+#: order/serializers.py:247 stock/templates/stock/item_base.html:180
+#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1661
+#: templates/js/translated/order.js:591 templates/js/translated/order.js:840
+#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1472
+#: templates/js/translated/stock.js:2295 templates/js/translated/stock.js:2444
msgid "Status"
msgstr "Status"
@@ -984,16 +1004,16 @@ msgstr ""
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:334
+#: build/serializers.py:334 stock/serializers.py:569
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:348 order/models.py:316 order/serializers.py:242
-#: stock/models.py:371 stock/models.py:1093 stock/serializers.py:303
+#: build/serializers.py:348 order/models.py:277 order/serializers.py:240
+#: stock/models.py:365 stock/models.py:1081 stock/serializers.py:305
msgid "Quantity must be greater than zero"
msgstr ""
-#: build/serializers.py:390
+#: build/serializers.py:390 order/serializers.py:741
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
@@ -1006,7 +1026,7 @@ msgstr ""
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:431
+#: build/serializers.py:431 order/serializers.py:984
msgid "Allocation items must be provided"
msgstr ""
@@ -1079,11 +1099,11 @@ msgstr "Voorraad is niet volledig toegewezen aan deze bouwopdracht"
#: build/templates/build/build_base.html:146
#: build/templates/build/detail.html:132
-#: order/templates/order/order_base.html:144
-#: order/templates/order/sales_order_base.html:141
+#: order/templates/order/order_base.html:156
+#: order/templates/order/sales_order_base.html:163
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:1692 templates/js/translated/order.js:689
-#: templates/js/translated/order.js:1108
+#: templates/js/translated/build.js:1698 templates/js/translated/order.js:854
+#: templates/js/translated/order.js:1276
msgid "Target Date"
msgstr "Streefdatum"
@@ -1096,28 +1116,28 @@ msgstr "Deze bouw was verwacht op %(target)s"
#: build/templates/build/build_base.html:196
#: order/templates/order/order_base.html:98
#: order/templates/order/sales_order_base.html:93
-#: templates/js/translated/table_filters.js:294
-#: templates/js/translated/table_filters.js:322
-#: templates/js/translated/table_filters.js:339
+#: templates/js/translated/table_filters.js:299
+#: templates/js/translated/table_filters.js:340
+#: templates/js/translated/table_filters.js:361
msgid "Overdue"
msgstr "Achterstallig"
#: build/templates/build/build_base.html:158
#: build/templates/build/detail.html:68 build/templates/build/detail.html:143
-#: templates/js/translated/build.js:1641
-#: templates/js/translated/table_filters.js:304
+#: order/templates/order/sales_order_base.html:170
+#: templates/js/translated/build.js:1647
+#: templates/js/translated/table_filters.js:370
msgid "Completed"
msgstr ""
#: build/templates/build/build_base.html:171
-#: build/templates/build/detail.html:95 order/models.py:857
-#: order/templates/order/sales_order_base.html:9
+#: build/templates/build/detail.html:95 order/models.py:925
+#: order/models.py:1021 order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
-#: order/templates/order/sales_order_ship.html:25
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:308
-#: templates/js/translated/order.js:1050
+#: templates/js/translated/order.js:1218
msgid "Sales Order"
msgstr "Verkoop Order"
@@ -1191,8 +1211,8 @@ msgstr "Voorraadbron"
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:50 order/models.py:811 stock/forms.py:150
-#: templates/js/translated/order.js:432 templates/js/translated/order.js:973
+#: build/templates/build/detail.html:50 order/models.py:876 stock/forms.py:136
+#: templates/js/translated/order.js:592 templates/js/translated/order.js:1138
msgid "Destination"
msgstr ""
@@ -1200,22 +1220,22 @@ msgstr ""
msgid "Destination location not specified"
msgstr ""
-#: build/templates/build/detail.html:74 templates/js/translated/build.js:647
+#: build/templates/build/detail.html:74 templates/js/translated/build.js:652
msgid "Allocated Parts"
msgstr ""
#: build/templates/build/detail.html:81
#: stock/templates/stock/item_base.html:332
-#: templates/js/translated/stock.js:1322 templates/js/translated/stock.js:2276
+#: templates/js/translated/stock.js:1486 templates/js/translated/stock.js:2451
#: templates/js/translated/table_filters.js:151
-#: templates/js/translated/table_filters.js:233
+#: templates/js/translated/table_filters.js:238
msgid "Batch"
msgstr "Batch"
#: build/templates/build/detail.html:127
-#: order/templates/order/order_base.html:131
-#: order/templates/order/sales_order_base.html:135
-#: templates/js/translated/build.js:1663
+#: order/templates/order/order_base.html:143
+#: order/templates/order/sales_order_base.html:157
+#: templates/js/translated/build.js:1669
msgid "Created"
msgstr "Gecreëerd"
@@ -1235,7 +1255,7 @@ msgstr ""
msgid "Allocate Stock to Build"
msgstr ""
-#: build/templates/build/detail.html:177 templates/js/translated/build.js:1202
+#: build/templates/build/detail.html:177 templates/js/translated/build.js:1207
msgid "Unallocate stock"
msgstr "Niet toegewezen voorraad"
@@ -1257,7 +1277,7 @@ msgstr ""
#: build/templates/build/detail.html:185
#: company/templates/company/detail.html:38
-#: company/templates/company/detail.html:85 order/views.py:509
+#: company/templates/company/detail.html:85 order/views.py:463
#: part/templates/part/category.html:173
msgid "Order Parts"
msgstr "Bestel onderdelen"
@@ -1309,8 +1329,8 @@ msgstr ""
#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:60
-#: order/templates/order/sales_order_detail.html:52
-#: order/templates/order/so_sidebar.html:9 part/templates/part/detail.html:193
+#: order/templates/order/sales_order_detail.html:107
+#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:193
#: part/templates/part/part_sidebar.html:48 stock/templates/stock/item.html:95
#: stock/templates/stock/stock_sidebar.html:19
msgid "Attachments"
@@ -1325,8 +1345,8 @@ msgstr "Bouw notities"
#: company/templates/company/detail.html:215
#: order/templates/order/purchase_order_detail.html:80
#: order/templates/order/purchase_order_detail.html:108
-#: order/templates/order/sales_order_detail.html:72
-#: order/templates/order/sales_order_detail.html:99
+#: order/templates/order/sales_order_detail.html:127
+#: order/templates/order/sales_order_detail.html:186
#: part/templates/part/detail.html:120 stock/templates/stock/item.html:115
#: stock/templates/stock/item.html:205
msgid "Edit Notes"
@@ -1384,7 +1404,7 @@ msgstr ""
msgid "Maximum output quantity is "
msgstr ""
-#: build/views.py:122 stock/serializers.py:361 stock/views.py:1290
+#: build/views.py:122 stock/serializers.py:363 stock/views.py:1257
msgid "Serial numbers already exist"
msgstr ""
@@ -1400,7 +1420,7 @@ msgstr ""
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:219 stock/views.py:385
+#: build/views.py:219 stock/views.py:352
msgid "Check the confirmation box"
msgstr ""
@@ -1469,7 +1489,7 @@ msgstr ""
msgid "Select {name} file to upload"
msgstr ""
-#: common/models.py:340 common/models.py:970 common/models.py:1178
+#: common/models.py:340 common/models.py:998 common/models.py:1206
msgid "Settings key (must be unique - case insensitive"
msgstr "Instellingssleutel (moet uniek zijn - hoofdletter ongevoelig"
@@ -1557,7 +1577,7 @@ msgstr "Download van URL"
msgid "Allow download of remote images and files from external URL"
msgstr "Download van afbeeldingen en bestanden vanaf een externe URL toestaan"
-#: common/models.py:649 templates/InvenTree/settings/sidebar.html:30
+#: common/models.py:649 templates/InvenTree/settings/sidebar.html:31
msgid "Barcode Support"
msgstr "Barcode ondersteuning"
@@ -1623,7 +1643,7 @@ msgstr ""
#: common/models.py:703 part/models.py:2429 report/models.py:187
#: templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:373
+#: templates/js/translated/table_filters.js:404
msgid "Template"
msgstr ""
@@ -1633,7 +1653,7 @@ msgstr ""
#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:956
#: templates/js/translated/table_filters.js:168
-#: templates/js/translated/table_filters.js:385
+#: templates/js/translated/table_filters.js:416
msgid "Assembly"
msgstr "Samenstelling"
@@ -1642,7 +1662,7 @@ msgid "Parts can be assembled from other components by default"
msgstr "Onderdelen kunnen standaard vanuit andere delen worden samengesteld"
#: common/models.py:717 part/models.py:894
-#: templates/js/translated/table_filters.js:389
+#: templates/js/translated/table_filters.js:420
msgid "Component"
msgstr ""
@@ -1659,7 +1679,7 @@ msgid "Parts are purchaseable by default"
msgstr ""
#: common/models.py:731 part/models.py:910
-#: templates/js/translated/table_filters.js:397
+#: templates/js/translated/table_filters.js:428
msgid "Salable"
msgstr ""
@@ -1670,7 +1690,7 @@ msgstr ""
#: common/models.py:738 part/models.py:900
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:100
-#: templates/js/translated/table_filters.js:401
+#: templates/js/translated/table_filters.js:432
msgid "Trackable"
msgstr ""
@@ -1932,230 +1952,262 @@ msgstr ""
msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:1001
+#: common/models.py:961
+msgid "Enable URL integration"
+msgstr ""
+
+#: common/models.py:962
+msgid "Enable plugins to add URL routes"
+msgstr ""
+
+#: common/models.py:968
+msgid "Enable navigation integration"
+msgstr ""
+
+#: common/models.py:969
+msgid "Enable plugins to integrate into navigation"
+msgstr ""
+
+#: common/models.py:975
+msgid "Enable global setting integration"
+msgstr ""
+
+#: common/models.py:976
+msgid "Enable plugins to integrate into inventree global settings"
+msgstr ""
+
+#: common/models.py:982
+msgid "Enable app integration"
+msgstr ""
+
+#: common/models.py:983
+msgid "Enable plugins to add apps"
+msgstr ""
+
+#: common/models.py:1029
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:1002
+#: common/models.py:1030
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:1007
+#: common/models.py:1035
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:1008
+#: common/models.py:1036
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:1013
+#: common/models.py:1041
msgid "Show latest parts"
msgstr ""
-#: common/models.py:1014
+#: common/models.py:1042
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:1019
+#: common/models.py:1047
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:1020
+#: common/models.py:1048
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:1026
+#: common/models.py:1054
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1027
+#: common/models.py:1055
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1032
+#: common/models.py:1060
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:1033
+#: common/models.py:1061
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:1038
+#: common/models.py:1066
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:1039
+#: common/models.py:1067
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:1044
+#: common/models.py:1072
msgid "Show low stock"
msgstr ""
-#: common/models.py:1045
+#: common/models.py:1073
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:1050
+#: common/models.py:1078
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:1051
+#: common/models.py:1079
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:1056
+#: common/models.py:1084
msgid "Show needed stock"
msgstr ""
-#: common/models.py:1057
+#: common/models.py:1085
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1062
+#: common/models.py:1090
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1063
+#: common/models.py:1091
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1068
+#: common/models.py:1096
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1069
+#: common/models.py:1097
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1074
+#: common/models.py:1102
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1075
+#: common/models.py:1103
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:1080
+#: common/models.py:1108
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:1081
+#: common/models.py:1109
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:1086
+#: common/models.py:1114
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:1087
+#: common/models.py:1115
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:1092
+#: common/models.py:1120
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:1093
+#: common/models.py:1121
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:1098
+#: common/models.py:1126
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:1099
+#: common/models.py:1127
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:1104
+#: common/models.py:1132
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:1105
+#: common/models.py:1133
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:1111
+#: common/models.py:1139
msgid "Inline label display"
msgstr ""
-#: common/models.py:1112
+#: common/models.py:1140
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1118
+#: common/models.py:1146
msgid "Inline report display"
msgstr ""
-#: common/models.py:1119
+#: common/models.py:1147
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1125
+#: common/models.py:1153
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:1126
+#: common/models.py:1154
msgid "Number of results to show in search preview window"
msgstr ""
-#: common/models.py:1132
+#: common/models.py:1160
msgid "Search Show Stock"
msgstr ""
-#: common/models.py:1133
+#: common/models.py:1161
msgid "Display stock levels in search preview window"
msgstr ""
-#: common/models.py:1139
+#: common/models.py:1167
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:1140
+#: common/models.py:1168
msgid "Hide inactive parts in search preview window"
msgstr ""
-#: common/models.py:1146
+#: common/models.py:1174
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:1147
+#: common/models.py:1175
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:1153
+#: common/models.py:1181
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1154
+#: common/models.py:1182
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1160
+#: common/models.py:1188
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:1161
+#: common/models.py:1189
msgid "InvenTree navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:1226 company/forms.py:43
+#: common/models.py:1254 company/forms.py:43
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1233 company/serializers.py:264
+#: common/models.py:1261 company/serializers.py:264
#: company/templates/company/supplier_part.html:256
#: templates/js/translated/part.js:852 templates/js/translated/part.js:1801
msgid "Price"
msgstr ""
-#: common/models.py:1234
+#: common/models.py:1262
msgid "Unit price at specified quantity"
msgstr ""
#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49
-#: order/templates/order/purchase_order_detail.html:24 order/views.py:289
+#: order/templates/order/purchase_order_detail.html:24 order/views.py:243
#: part/templates/part/bom_upload/upload_file.html:52
#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:212
#: part/views.py:858
@@ -2163,7 +2215,7 @@ msgid "Upload File"
msgstr ""
#: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52
-#: order/views.py:290 part/templates/part/bom_upload/match_fields.html:52
+#: order/views.py:244 part/templates/part/bom_upload/match_fields.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:45
#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:213
#: part/views.py:859
@@ -2195,6 +2247,7 @@ msgid "Previous Step"
msgstr ""
#: company/forms.py:24 part/forms.py:46
+#: templates/InvenTree/settings/mixins/urls.html:12
msgid "URL"
msgstr ""
@@ -2211,6 +2264,7 @@ msgid "Description of the company"
msgstr ""
#: company/models.py:112 company/templates/company/company_base.html:97
+#: templates/InvenTree/settings/plugin_settings.html:55
#: templates/js/translated/company.js:349
msgid "Website"
msgstr ""
@@ -2285,7 +2339,7 @@ msgid "Does this company manufacture parts?"
msgstr "Fabriceert dit bedrijf onderdelen?"
#: company/models.py:152 company/serializers.py:270
-#: company/templates/company/company_base.html:103 stock/serializers.py:177
+#: company/templates/company/company_base.html:103 stock/serializers.py:179
msgid "Currency"
msgstr ""
@@ -2293,12 +2347,12 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:320 company/models.py:535 stock/models.py:474
+#: company/models.py:320 company/models.py:535 stock/models.py:468
#: stock/templates/stock/item_base.html:135
msgid "Base Part"
msgstr ""
-#: company/models.py:324 company/models.py:539 order/views.py:912
+#: company/models.py:324 company/models.py:539
msgid "Select part"
msgstr ""
@@ -2319,7 +2373,7 @@ msgstr "Fabrikant selecteren"
#: company/models.py:342 company/templates/company/manufacturer_part.html:96
#: company/templates/company/supplier_part.html:105
#: templates/js/translated/company.js:530
-#: templates/js/translated/company.js:815 templates/js/translated/order.js:873
+#: templates/js/translated/company.js:815 templates/js/translated/order.js:1038
#: templates/js/translated/part.js:243 templates/js/translated/part.js:832
msgid "MPN"
msgstr "MPN"
@@ -2349,8 +2403,8 @@ msgstr ""
#: company/models.py:422
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:1857 templates/js/translated/company.js:644
-#: templates/js/translated/part.js:652 templates/js/translated/stock.js:960
+#: stock/models.py:1845 templates/js/translated/company.js:644
+#: templates/js/translated/part.js:652 templates/js/translated/stock.js:1117
msgid "Value"
msgstr ""
@@ -2360,7 +2414,7 @@ msgstr ""
#: company/models.py:429 part/models.py:882 part/models.py:2397
#: part/templates/part/part_base.html:288
-#: templates/InvenTree/settings/settings.html:264
+#: templates/InvenTree/settings/settings.html:273
#: templates/js/translated/company.js:650 templates/js/translated/part.js:658
msgid "Units"
msgstr ""
@@ -2374,12 +2428,12 @@ msgid "Linked manufacturer part must reference the same base part"
msgstr "Gekoppeld fabrikant onderdeel moet verwijzen naar hetzelfde basis onderdeel"
#: company/models.py:545 company/templates/company/company_base.html:78
-#: company/templates/company/supplier_part.html:87 order/models.py:263
+#: company/templates/company/supplier_part.html:87 order/models.py:224
#: order/templates/order/order_base.html:112
#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219
#: part/bom.py:247 stock/templates/stock/item_base.html:398
#: templates/js/translated/company.js:337
-#: templates/js/translated/company.js:771 templates/js/translated/order.js:667
+#: templates/js/translated/company.js:771 templates/js/translated/order.js:823
#: templates/js/translated/part.js:213 templates/js/translated/part.js:800
msgid "Supplier"
msgstr ""
@@ -2389,7 +2443,7 @@ msgid "Select supplier"
msgstr ""
#: company/models.py:551 company/templates/company/supplier_part.html:91
-#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:860
+#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:1025
#: templates/js/translated/part.js:224 templates/js/translated/part.js:818
msgid "SKU"
msgstr ""
@@ -2425,8 +2479,8 @@ msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:582 company/templates/company/supplier_part.html:112
-#: stock/models.py:497 stock/templates/stock/item_base.html:339
-#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1448
+#: stock/models.py:491 stock/templates/stock/item_base.html:339
+#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1612
msgid "Packaging"
msgstr ""
@@ -2457,7 +2511,7 @@ msgid "Company"
msgstr ""
#: company/templates/company/company_base.html:22
-#: templates/js/translated/order.js:121
+#: templates/js/translated/order.js:279
msgid "Create Purchase Order"
msgstr ""
@@ -2493,11 +2547,12 @@ msgstr ""
msgid "Download image from URL"
msgstr ""
-#: company/templates/company/company_base.html:83 order/models.py:567
-#: order/templates/order/sales_order_base.html:115 stock/models.py:515
-#: stock/models.py:516 stock/templates/stock/item_base.html:291
-#: templates/js/translated/company.js:329 templates/js/translated/order.js:1072
-#: templates/js/translated/stock.js:2084
+#: company/templates/company/company_base.html:83 order/models.py:547
+#: order/templates/order/sales_order_base.html:115 stock/models.py:509
+#: stock/models.py:510 stock/serializers.py:610
+#: stock/templates/stock/item_base.html:291
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1240
+#: templates/js/translated/stock.js:2259
msgid "Customer"
msgstr ""
@@ -2580,7 +2635,7 @@ msgstr ""
#: order/templates/order/purchase_orders.html:12
#: part/templates/part/detail.html:64 part/templates/part/part_sidebar.html:33
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:203
-#: templates/InvenTree/settings/sidebar.html:44 templates/navbar.html:45
+#: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47
#: users/models.py:45
msgid "Purchase Orders"
msgstr ""
@@ -2602,7 +2657,7 @@ msgstr ""
#: order/templates/order/sales_orders.html:15
#: part/templates/part/detail.html:87 part/templates/part/part_sidebar.html:37
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:223
-#: templates/InvenTree/settings/sidebar.html:46 templates/navbar.html:56
+#: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58
#: users/models.py:46
msgid "Sales Orders"
msgstr ""
@@ -2618,7 +2673,7 @@ msgid "New Sales Order"
msgstr ""
#: company/templates/company/detail.html:168
-#: templates/js/translated/build.js:999
+#: templates/js/translated/build.js:1004
msgid "Assigned Stock"
msgstr ""
@@ -2644,7 +2699,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:14 company/views.py:55
#: part/templates/part/prices.html:167 templates/InvenTree/search.html:184
-#: templates/navbar.html:44
+#: templates/navbar.html:46
msgid "Manufacturers"
msgstr "Fabrikanten"
@@ -2673,7 +2728,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:114
#: company/templates/company/supplier_part.html:15 company/views.py:49
#: part/templates/part/part_sidebar.html:31 part/templates/part/prices.html:163
-#: templates/InvenTree/search.html:194 templates/navbar.html:43
+#: templates/InvenTree/search.html:194 templates/navbar.html:45
msgid "Suppliers"
msgstr ""
@@ -2687,7 +2742,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:254
#: part/templates/part/detail.html:344 part/templates/part/detail.html:372
#: templates/js/translated/company.js:425 templates/js/translated/helpers.js:31
-#: users/models.py:204
+#: users/models.py:206
msgid "Delete"
msgstr ""
@@ -2739,9 +2794,9 @@ msgid "Assigned Stock Items"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:482
+#: company/templates/company/supplier_part.html:24 stock/models.py:476
#: stock/templates/stock/item_base.html:403
-#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1405
+#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1569
msgid "Supplier Part"
msgstr ""
@@ -2767,7 +2822,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:142
#: part/templates/part/detail.html:21 stock/templates/stock/location.html:163
-#: templates/js/translated/stock.js:355
+#: templates/js/translated/stock.js:359
msgid "New Stock Item"
msgstr ""
@@ -2817,11 +2872,11 @@ msgstr ""
#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:14
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:156
-#: templates/InvenTree/settings/sidebar.html:40
+#: templates/InvenTree/settings/sidebar.html:41
#: templates/js/translated/bom.js:216 templates/js/translated/part.js:434
#: templates/js/translated/part.js:569 templates/js/translated/part.js:1059
-#: templates/js/translated/part.js:1220 templates/js/translated/stock.js:591
-#: templates/js/translated/stock.js:1244 templates/navbar.html:26
+#: templates/js/translated/part.js:1220 templates/js/translated/stock.js:748
+#: templates/js/translated/stock.js:1401 templates/navbar.html:28
msgid "Stock"
msgstr ""
@@ -2844,7 +2899,7 @@ msgstr ""
#: stock/templates/stock/location.html:147
#: stock/templates/stock/location.html:159
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1983
+#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:2158
#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
msgid "Stock Items"
msgstr ""
@@ -2858,7 +2913,7 @@ msgid "New Manufacturer"
msgstr "Nieuwe fabrikant"
#: company/views.py:61 templates/InvenTree/search.html:214
-#: templates/navbar.html:55
+#: templates/navbar.html:57
msgid "Customers"
msgstr ""
@@ -2960,284 +3015,374 @@ msgstr ""
msgid "Part query filters (comma-separated value of key=value pairs)"
msgstr ""
-#: order/forms.py:26 order/templates/order/order_base.html:52
+#: order/forms.py:24 order/templates/order/order_base.html:52
msgid "Place order"
msgstr ""
-#: order/forms.py:37 order/templates/order/order_base.html:60
+#: order/forms.py:35 order/templates/order/order_base.html:60
msgid "Mark order as complete"
msgstr ""
-#: order/forms.py:48 order/forms.py:59 order/templates/order/order_base.html:47
+#: order/forms.py:46 order/forms.py:57 order/templates/order/order_base.html:47
#: order/templates/order/sales_order_base.html:60
msgid "Cancel order"
msgstr ""
-#: order/forms.py:70
-msgid "Ship order"
-msgstr ""
-
-#: order/forms.py:98
-msgid "Enter stock item serial numbers"
-msgstr ""
-
-#: order/forms.py:104
-msgid "Enter quantity of stock items"
-msgstr ""
-
-#: order/models.py:161
+#: order/models.py:122
msgid "Order description"
msgstr ""
-#: order/models.py:163
+#: order/models.py:124
msgid "Link to external page"
msgstr ""
-#: order/models.py:171
+#: order/models.py:132
msgid "Created By"
msgstr ""
-#: order/models.py:178
+#: order/models.py:139
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:183
+#: order/models.py:144
msgid "Order notes"
msgstr ""
-#: order/models.py:250 order/models.py:557
+#: order/models.py:211 order/models.py:537
msgid "Order reference"
msgstr ""
-#: order/models.py:255 order/models.py:572
+#: order/models.py:216 order/models.py:552
msgid "Purchase order status"
msgstr ""
-#: order/models.py:264
+#: order/models.py:225
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:267 order/templates/order/order_base.html:118
-#: templates/js/translated/order.js:676
+#: order/models.py:228 order/templates/order/order_base.html:118
+#: templates/js/translated/order.js:832
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:267
+#: order/models.py:228
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:274
+#: order/models.py:235
msgid "received by"
msgstr ""
-#: order/models.py:279
+#: order/models.py:240
msgid "Issue Date"
msgstr ""
-#: order/models.py:280
+#: order/models.py:241
msgid "Date order was issued"
msgstr ""
-#: order/models.py:285
+#: order/models.py:246
msgid "Target Delivery Date"
msgstr ""
-#: order/models.py:286
+#: order/models.py:247
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:292
+#: order/models.py:253
msgid "Date order was completed"
msgstr ""
-#: order/models.py:321
+#: order/models.py:282
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:431
+#: order/models.py:411
msgid "Quantity must be an integer"
msgstr ""
-#: order/models.py:435
+#: order/models.py:415
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:568
+#: order/models.py:548
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:574
+#: order/models.py:554
msgid "Customer Reference "
msgstr ""
-#: order/models.py:574
+#: order/models.py:554
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:579
+#: order/models.py:559
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:582 templates/js/translated/order.js:1113
+#: order/models.py:562 order/models.py:1026
+#: templates/js/translated/order.js:1281 templates/js/translated/order.js:1429
msgid "Shipment Date"
msgstr ""
-#: order/models.py:589
+#: order/models.py:569
msgid "shipped by"
msgstr ""
-#: order/models.py:633
-msgid "SalesOrder cannot be shipped as it is not currently pending"
+#: order/models.py:634
+msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:730
+#: order/models.py:639
+msgid "Only a pending order can be marked as complete"
+msgstr ""
+
+#: order/models.py:643
+msgid "Order cannot be completed as there are incomplete shipments"
+msgstr ""
+
+#: order/models.py:647
+msgid "Order cannot be completed as there are incomplete line items"
+msgstr ""
+
+#: order/models.py:795
msgid "Item quantity"
msgstr ""
-#: order/models.py:736
+#: order/models.py:801
msgid "Line item reference"
msgstr ""
-#: order/models.py:738
+#: order/models.py:803
msgid "Line item notes"
msgstr ""
-#: order/models.py:768 order/models.py:856
-#: templates/js/translated/order.js:1165
+#: order/models.py:833 order/models.py:924 order/models.py:1020
+#: templates/js/translated/order.js:1820
msgid "Order"
msgstr ""
-#: order/models.py:769 order/templates/order/order_base.html:9
+#: order/models.py:834 order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:353
-#: templates/js/translated/order.js:638 templates/js/translated/part.js:775
-#: templates/js/translated/stock.js:1382 templates/js/translated/stock.js:2065
+#: templates/js/translated/order.js:801 templates/js/translated/part.js:775
+#: templates/js/translated/stock.js:1546 templates/js/translated/stock.js:2240
msgid "Purchase Order"
msgstr ""
-#: order/models.py:790
+#: order/models.py:855
msgid "Supplier part"
msgstr ""
-#: order/models.py:797 order/templates/order/order_base.html:151
-#: order/templates/order/sales_order_base.html:155
-#: templates/js/translated/order.js:429 templates/js/translated/order.js:953
+#: order/models.py:862 order/templates/order/order_base.html:163
+#: templates/js/translated/order.js:589 templates/js/translated/order.js:1118
#: templates/js/translated/part.js:847 templates/js/translated/part.js:873
+#: templates/js/translated/table_filters.js:317
msgid "Received"
msgstr ""
-#: order/models.py:798
+#: order/models.py:863
msgid "Number of items received"
msgstr ""
-#: order/models.py:805 part/templates/part/prices.html:176 stock/models.py:609
-#: stock/serializers.py:168 stock/templates/stock/item_base.html:360
-#: templates/js/translated/stock.js:1436
+#: order/models.py:870 part/templates/part/prices.html:176 stock/models.py:603
+#: stock/serializers.py:170 stock/templates/stock/item_base.html:360
+#: templates/js/translated/stock.js:1600
msgid "Purchase Price"
msgstr ""
-#: order/models.py:806
+#: order/models.py:871
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:814
+#: order/models.py:879
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:866 part/templates/part/part_pricing.html:112
+#: order/models.py:934 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:116 part/templates/part/prices.html:284
msgid "Sale Price"
msgstr ""
-#: order/models.py:867
+#: order/models.py:935
msgid "Unit sale price"
msgstr ""
-#: order/models.py:946 order/models.py:948
+#: order/models.py:940
+msgid "Shipped quantity"
+msgstr ""
+
+#: order/models.py:1027
+msgid "Date of shipment"
+msgstr ""
+
+#: order/models.py:1034
+msgid "Checked By"
+msgstr ""
+
+#: order/models.py:1035
+msgid "User who checked this shipment"
+msgstr ""
+
+#: order/models.py:1043
+msgid "Shipment number"
+msgstr ""
+
+#: order/models.py:1050
+msgid "Shipment notes"
+msgstr ""
+
+#: order/models.py:1057
+msgid "Tracking Number"
+msgstr ""
+
+#: order/models.py:1058
+msgid "Shipment tracking information"
+msgstr ""
+
+#: order/models.py:1068
+msgid "Shipment has already been sent"
+msgstr ""
+
+#: order/models.py:1071
+msgid "Shipment has no allocated stock items"
+msgstr ""
+
+#: order/models.py:1147 order/models.py:1149
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:952
+#: order/models.py:1153
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:954
+#: order/models.py:1155
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:957
+#: order/models.py:1158
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:961
+#: order/models.py:1162
msgid "StockItem is over-allocated"
msgstr ""
-#: order/models.py:967
+#: order/models.py:1168 order/serializers.py:734
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:975
+#: order/models.py:1171
+msgid "Sales order does not match shipment"
+msgstr ""
+
+#: order/models.py:1172
+msgid "Shipment does not match sales order"
+msgstr ""
+
+#: order/models.py:1180
msgid "Line"
msgstr ""
-#: order/models.py:987
+#: order/models.py:1188 order/serializers.py:825 order/serializers.py:953
+#: templates/js/translated/model_renderers.js:251
+msgid "Shipment"
+msgstr ""
+
+#: order/models.py:1189
+msgid "Sales order shipment reference"
+msgstr ""
+
+#: order/models.py:1201
msgid "Item"
msgstr ""
-#: order/models.py:988
+#: order/models.py:1202
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:991
+#: order/models.py:1205
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/serializers.py:175
+#: order/serializers.py:173
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:213
+#: order/serializers.py:211 order/serializers.py:790
msgid "Line Item"
msgstr ""
-#: order/serializers.py:219
+#: order/serializers.py:217
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:229 order/serializers.py:297
+#: order/serializers.py:227 order/serializers.py:295
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:253
+#: order/serializers.py:251
msgid "Barcode Hash"
msgstr ""
-#: order/serializers.py:254
+#: order/serializers.py:252
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:271
+#: order/serializers.py:269
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:309
+#: order/serializers.py:307
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:326
+#: order/serializers.py:324
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:337
+#: order/serializers.py:335
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:578
+#: order/serializers.py:581
msgid "Sale price currency"
msgstr ""
+#: order/serializers.py:649
+msgid "No shipment details provided"
+msgstr ""
+
+#: order/serializers.py:699 order/serializers.py:802
+msgid "Line item is not associated with this order"
+msgstr ""
+
+#: order/serializers.py:721
+msgid "Quantity must be positive"
+msgstr ""
+
+#: order/serializers.py:815
+msgid "Enter serial numbers to allocate"
+msgstr ""
+
+#: order/serializers.py:839 order/serializers.py:964
+msgid "Shipment has already been shipped"
+msgstr ""
+
+#: order/serializers.py:842 order/serializers.py:967
+msgid "Shipment is not associated with this order"
+msgstr ""
+
+#: order/serializers.py:894
+msgid "No match found for the following serial numbers"
+msgstr ""
+
+#: order/serializers.py:904
+msgid "The following serial numbers are already allocated"
+msgstr ""
+
#: order/templates/order/delete_attachment.html:5
#: stock/templates/stock/attachment_delete.html:5
msgid "Are you sure you want to delete this attachment?"
@@ -3271,7 +3416,8 @@ msgstr ""
msgid "Receive Items"
msgstr ""
-#: order/templates/order/order_base.html:62 order/views.py:185
+#: order/templates/order/order_base.html:62
+#: order/templates/order/sales_order_base.html:67 order/views.py:181
msgid "Complete Order"
msgstr ""
@@ -3290,12 +3436,23 @@ msgstr ""
msgid "Order Status"
msgstr ""
-#: order/templates/order/order_base.html:137
+#: order/templates/order/order_base.html:124
+#: order/templates/order/sales_order_base.html:128
+msgid "Completed Line Items"
+msgstr ""
+
+#: order/templates/order/order_base.html:130
+#: order/templates/order/sales_order_base.html:134
+#: order/templates/order/sales_order_base.html:144
+msgid "Incomplete"
+msgstr ""
+
+#: order/templates/order/order_base.html:149
#: report/templates/report/inventree_build_order_base.html:122
msgid "Issued"
msgstr ""
-#: order/templates/order/order_base.html:207
+#: order/templates/order/order_base.html:219
msgid "Edit Purchase Order"
msgstr ""
@@ -3371,8 +3528,9 @@ msgstr ""
#: part/templates/part/import_wizard/ajax_match_references.html:42
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
-#: templates/js/translated/build.js:240 templates/js/translated/build.js:1251
-#: templates/js/translated/order.js:377
+#: templates/js/translated/build.js:245 templates/js/translated/build.js:1256
+#: templates/js/translated/order.js:537 templates/js/translated/order.js:1488
+#: templates/js/translated/stock.js:592
msgid "Remove row"
msgstr ""
@@ -3453,7 +3611,8 @@ msgid "Select existing purchase orders, or create new orders."
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:31
-#: templates/js/translated/order.js:694 templates/js/translated/order.js:1118
+#: templates/js/translated/order.js:859 templates/js/translated/order.js:1286
+#: templates/js/translated/order.js:1416
msgid "Items"
msgstr ""
@@ -3489,7 +3648,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:27
#: order/templates/order/purchase_order_detail.html:181
#: order/templates/order/sales_order_detail.html:23
-#: order/templates/order/sales_order_detail.html:157
+#: order/templates/order/sales_order_detail.html:244
msgid "Add Line Item"
msgstr ""
@@ -3502,7 +3661,7 @@ msgid "Received Items"
msgstr ""
#: order/templates/order/purchase_order_detail.html:76
-#: order/templates/order/sales_order_detail.html:68
+#: order/templates/order/sales_order_detail.html:123
msgid "Order Notes"
msgstr ""
@@ -3520,8 +3679,8 @@ msgid "Print packing list"
msgstr ""
#: order/templates/order/sales_order_base.html:66
-#: order/templates/order/sales_order_base.html:67 order/views.py:222
-msgid "Ship Order"
+#: order/templates/order/sales_order_base.html:229
+msgid "Complete Sales Order"
msgstr ""
#: order/templates/order/sales_order_base.html:102
@@ -3529,16 +3688,21 @@ msgid "This Sales Order has not been fully allocated"
msgstr ""
#: order/templates/order/sales_order_base.html:122
-#: templates/js/translated/order.js:1085
+#: templates/js/translated/order.js:1253
msgid "Customer Reference"
msgstr ""
-#: order/templates/order/sales_order_base.html:195
+#: order/templates/order/sales_order_base.html:140
+#: order/templates/order/sales_order_detail.html:78
+#: order/templates/order/so_sidebar.html:11
+msgid "Completed Shipments"
+msgstr ""
+
+#: order/templates/order/sales_order_base.html:215
msgid "Edit Sales Order"
msgstr ""
#: order/templates/order/sales_order_cancel.html:8
-#: order/templates/order/sales_order_ship.html:9
#: part/templates/part/bom_duplicate.html:12
#: stock/templates/stock/stockitem_convert.html:13
msgid "Warning"
@@ -3552,146 +3716,100 @@ msgstr ""
msgid "Sales Order Items"
msgstr ""
-#: order/templates/order/sales_order_ship.html:10
-msgid "This order has not been fully allocated. If the order is marked as shipped, it can no longer be adjusted."
+#: order/templates/order/sales_order_detail.html:44
+#: order/templates/order/so_sidebar.html:8
+msgid "Pending Shipments"
msgstr ""
-#: order/templates/order/sales_order_ship.html:12
-msgid "Ensure that the order allocation is correct before shipping the order."
+#: order/templates/order/sales_order_detail.html:48
+#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1188
+msgid "Actions"
msgstr ""
-#: order/templates/order/sales_order_ship.html:18
-msgid "Some line items in this order have been over-allocated"
+#: order/templates/order/sales_order_detail.html:57
+msgid "New Shipment"
msgstr ""
-#: order/templates/order/sales_order_ship.html:20
-msgid "Ensure that this is correct before shipping the order."
-msgstr ""
-
-#: order/templates/order/sales_order_ship.html:27
-msgid "Shipping this order means that the order will no longer be editable."
-msgstr ""
-
-#: order/templates/order/so_allocate_by_serial.html:9
-msgid "Allocate stock items by serial number"
-msgstr ""
-
-#: order/views.py:103
+#: order/views.py:99
msgid "Cancel Order"
msgstr ""
-#: order/views.py:112 order/views.py:138
+#: order/views.py:108 order/views.py:134
msgid "Confirm order cancellation"
msgstr ""
-#: order/views.py:115 order/views.py:141
+#: order/views.py:111 order/views.py:137
msgid "Order cannot be cancelled"
msgstr ""
-#: order/views.py:129
+#: order/views.py:125
msgid "Cancel sales order"
msgstr ""
-#: order/views.py:155
+#: order/views.py:151
msgid "Issue Order"
msgstr ""
-#: order/views.py:164
+#: order/views.py:160
msgid "Confirm order placement"
msgstr ""
-#: order/views.py:174
+#: order/views.py:170
msgid "Purchase order issued"
msgstr ""
-#: order/views.py:201
+#: order/views.py:197
msgid "Confirm order completion"
msgstr ""
-#: order/views.py:212
+#: order/views.py:208
msgid "Purchase order completed"
msgstr ""
-#: order/views.py:238
-msgid "Confirm order shipment"
-msgstr ""
-
-#: order/views.py:244
-msgid "Could not ship order"
-msgstr ""
-
-#: order/views.py:291
+#: order/views.py:245
msgid "Match Supplier Parts"
msgstr ""
-#: order/views.py:535
+#: order/views.py:489
msgid "Update prices"
msgstr ""
-#: order/views.py:793
+#: order/views.py:747
#, python-brace-format
msgid "Ordered {n} parts"
msgstr ""
-#: order/views.py:846
-msgid "Allocate Serial Numbers"
-msgstr ""
-
-#: order/views.py:891
-#, python-brace-format
-msgid "Allocated {n} items"
-msgstr ""
-
-#: order/views.py:907
-msgid "Select line item"
-msgstr ""
-
-#: order/views.py:938
-#, python-brace-format
-msgid "No matching item for serial {serial}"
-msgstr ""
-
-#: order/views.py:948
-#, python-brace-format
-msgid "{serial} is not in stock"
-msgstr ""
-
-#: order/views.py:956
-#, python-brace-format
-msgid "{serial} already allocated to an order"
-msgstr ""
-
-#: order/views.py:1072
+#: order/views.py:858
msgid "Sales order not found"
msgstr ""
-#: order/views.py:1078
+#: order/views.py:864
msgid "Price not found"
msgstr ""
-#: order/views.py:1081
+#: order/views.py:867
#, python-brace-format
msgid "Updated {part} unit-price to {price}"
msgstr ""
-#: order/views.py:1086
+#: order/views.py:872
#, python-brace-format
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/api.py:758
+#: part/api.py:760
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:762
+#: part/api.py:764
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:777
+#: part/api.py:779
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:808 part/api.py:812 part/api.py:827 part/api.py:831
+#: part/api.py:810 part/api.py:814 part/api.py:829 part/api.py:833
msgid "This field is required"
msgstr ""
@@ -3828,8 +3946,8 @@ msgstr ""
#: part/templates/part/category.html:149
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:88
-#: templates/InvenTree/settings/sidebar.html:36
-#: templates/js/translated/part.js:1597 templates/navbar.html:19
+#: templates/InvenTree/settings/sidebar.html:37
+#: templates/js/translated/part.js:1597 templates/navbar.html:21
#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
msgid "Parts"
msgstr ""
@@ -3895,7 +4013,7 @@ msgstr ""
#: part/models.py:778 part/models.py:2223 part/models.py:2472
#: part/templates/part/part_base.html:265
#: part/templates/part/set_category.html:15
-#: templates/InvenTree/settings/settings.html:163
+#: templates/InvenTree/settings/settings.html:172
#: templates/js/translated/part.js:1202
msgid "Category"
msgstr ""
@@ -3906,7 +4024,7 @@ msgstr ""
#: part/models.py:784 part/templates/part/part_base.html:274
#: templates/js/translated/part.js:557 templates/js/translated/part.js:1155
-#: templates/js/translated/stock.js:1216
+#: templates/js/translated/stock.js:1373
msgid "IPN"
msgstr ""
@@ -3975,10 +4093,11 @@ msgstr ""
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:915 templates/js/translated/table_filters.js:34
+#: part/models.py:915 plugin/models.py:45
+#: templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:96
-#: templates/js/translated/table_filters.js:290
-#: templates/js/translated/table_filters.js:368
+#: templates/js/translated/table_filters.js:295
+#: templates/js/translated/table_filters.js:399
msgid "Active"
msgstr ""
@@ -4027,7 +4146,7 @@ msgid "Test with this name already exists for this part"
msgstr ""
#: part/models.py:2310 templates/js/translated/part.js:1648
-#: templates/js/translated/stock.js:940
+#: templates/js/translated/stock.js:1097
msgid "Test Name"
msgstr ""
@@ -4044,7 +4163,7 @@ msgid "Enter description for this test"
msgstr ""
#: part/models.py:2322 templates/js/translated/part.js:1657
-#: templates/js/translated/table_filters.js:276
+#: templates/js/translated/table_filters.js:281
msgid "Required"
msgstr ""
@@ -4086,7 +4205,7 @@ msgid "Parameter Units"
msgstr ""
#: part/models.py:2429 part/models.py:2478 part/models.py:2479
-#: templates/InvenTree/settings/settings.html:158
+#: templates/InvenTree/settings/settings.html:167
msgid "Parameter Template"
msgstr ""
@@ -4098,7 +4217,7 @@ msgstr ""
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2483 templates/InvenTree/settings/settings.html:167
+#: part/models.py:2483 templates/InvenTree/settings/settings.html:176
msgid "Default Value"
msgstr ""
@@ -4175,7 +4294,7 @@ msgstr ""
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2686 stock/models.py:361
+#: part/models.py:2686 stock/models.py:355
msgid "Quantity must be integer value for trackable parts"
msgstr ""
@@ -4724,8 +4843,8 @@ msgstr ""
msgid "This part is a variant of %(link)s"
msgstr ""
-#: part/templates/part/part_base.html:190 templates/js/translated/order.js:1545
-#: templates/js/translated/table_filters.js:188
+#: part/templates/part/part_base.html:190 templates/js/translated/order.js:2217
+#: templates/js/translated/table_filters.js:193
msgid "In Stock"
msgstr ""
@@ -5099,6 +5218,78 @@ msgstr ""
msgid "Delete Internal Price Break"
msgstr ""
+#: plugin/integration.py:116
+msgid "No author found"
+msgstr ""
+
+#: plugin/integration.py:128
+msgid "No date found"
+msgstr ""
+
+#: plugin/models.py:25
+msgid "Plugin Configuration"
+msgstr ""
+
+#: plugin/models.py:26
+msgid "Plugin Configurations"
+msgstr ""
+
+#: plugin/models.py:31
+msgid "Key"
+msgstr ""
+
+#: plugin/models.py:32
+msgid "Key of plugin"
+msgstr ""
+
+#: plugin/models.py:40
+msgid "PluginName of the plugin"
+msgstr ""
+
+#: plugin/models.py:46
+msgid "Is the plugin active"
+msgstr ""
+
+#: plugin/samples/integration/sample.py:39
+msgid "Enable PO"
+msgstr ""
+
+#: plugin/samples/integration/sample.py:40
+msgid "Enable PO functionality in InvenTree interface"
+msgstr ""
+
+#: plugin/serializers.py:46
+msgid "Source URL"
+msgstr ""
+
+#: plugin/serializers.py:47
+msgid "Source for the package - this can be a custom registry or a VCS path"
+msgstr ""
+
+#: plugin/serializers.py:52
+msgid "Package Name"
+msgstr ""
+
+#: plugin/serializers.py:53
+msgid "Name for the Plugin Package - can also contain a version indicator"
+msgstr ""
+
+#: plugin/serializers.py:56
+msgid "Confirm plugin installation"
+msgstr ""
+
+#: plugin/serializers.py:57
+msgid "This will install this plugin now into the current instance. The instance will go into maintenance."
+msgstr ""
+
+#: plugin/serializers.py:72
+msgid "Installation not confirmed"
+msgstr ""
+
+#: plugin/serializers.py:74
+msgid "Either packagenmae of url must be provided"
+msgstr ""
+
#: report/api.py:234 report/api.py:278
#, python-brace-format
msgid "Template file '{filename}' is missing or does not exist"
@@ -5197,12 +5388,12 @@ msgid "Stock Item Test Report"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:520 stock/templates/stock/item_base.html:149
-#: templates/js/translated/build.js:233 templates/js/translated/build.js:637
-#: templates/js/translated/build.js:1013
+#: stock/models.py:514 stock/templates/stock/item_base.html:149
+#: templates/js/translated/build.js:238 templates/js/translated/build.js:642
+#: templates/js/translated/build.js:1018
#: templates/js/translated/model_renderers.js:95
-#: templates/js/translated/order.js:1287 templates/js/translated/order.js:1376
-#: templates/js/translated/stock.js:410
+#: templates/js/translated/order.js:99 templates/js/translated/order.js:1945
+#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:414
msgid "Serial Number"
msgstr "Serienummer"
@@ -5211,17 +5402,19 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:93
-#: stock/models.py:1845
+#: stock/models.py:1833
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:94
-#: stock/models.py:1851
+#: stock/models.py:1839
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:97
-#: templates/js/translated/order.js:684 templates/js/translated/stock.js:1999
+#: templates/InvenTree/settings/plugin.html:49
+#: templates/InvenTree/settings/plugin_settings.html:38
+#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2174
msgid "Date"
msgstr ""
@@ -5239,302 +5432,318 @@ msgid "Installed Items"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
-#: templates/js/translated/stock.js:2259
+#: templates/js/translated/stock.js:577 templates/js/translated/stock.js:2434
msgid "Serial"
msgstr ""
-#: stock/api.py:422
+#: stock/api.py:446
msgid "Quantity is required"
msgstr ""
-#: stock/forms.py:91 stock/forms.py:265 stock/models.py:577
+#: stock/forms.py:77 stock/forms.py:251 stock/models.py:571
#: stock/templates/stock/item_base.html:186
-#: templates/js/translated/stock.js:1358
+#: templates/js/translated/stock.js:1522
msgid "Expiry Date"
msgstr ""
-#: stock/forms.py:92 stock/forms.py:266
+#: stock/forms.py:78 stock/forms.py:252
msgid "Expiration date for this stock item"
msgstr ""
-#: stock/forms.py:95
+#: stock/forms.py:81
msgid "Enter unique serial numbers (or leave blank)"
msgstr ""
-#: stock/forms.py:150
+#: stock/forms.py:136
msgid "Destination for serialized stock (by default, will remain in current location)"
msgstr ""
-#: stock/forms.py:152
+#: stock/forms.py:138
msgid "Serial numbers"
msgstr ""
-#: stock/forms.py:152
+#: stock/forms.py:138
msgid "Unique serial numbers (must match quantity)"
msgstr ""
-#: stock/forms.py:154 stock/forms.py:238
+#: stock/forms.py:140 stock/forms.py:224
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/forms.py:194
+#: stock/forms.py:180
msgid "Stock item to install"
msgstr ""
-#: stock/forms.py:224
+#: stock/forms.py:210
msgid "Must not exceed available quantity"
msgstr ""
-#: stock/forms.py:236
+#: stock/forms.py:222
msgid "Destination location for uninstalled items"
msgstr ""
-#: stock/forms.py:240
+#: stock/forms.py:226
msgid "Confirm uninstall"
msgstr ""
-#: stock/forms.py:240
+#: stock/forms.py:226
msgid "Confirm removal of installed stock items"
msgstr ""
-#: stock/models.py:60 stock/models.py:614
+#: stock/models.py:60 stock/models.py:608
#: stock/templates/stock/item_base.html:417
msgid "Owner"
msgstr ""
-#: stock/models.py:61 stock/models.py:615
+#: stock/models.py:61 stock/models.py:609
msgid "Select Owner"
msgstr ""
-#: stock/models.py:342
+#: stock/models.py:336
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:378
+#: stock/models.py:372
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:388 stock/models.py:397
+#: stock/models.py:382 stock/models.py:391
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:389
+#: stock/models.py:383
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:411
+#: stock/models.py:405
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:417
+#: stock/models.py:411
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:424
+#: stock/models.py:418
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:466
+#: stock/models.py:460
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:475
+#: stock/models.py:469
msgid "Base part"
msgstr ""
-#: stock/models.py:483
+#: stock/models.py:477
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:488 stock/templates/stock/location.html:12
+#: stock/models.py:482 stock/templates/stock/location.html:12
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr "Voorraadlocatie"
-#: stock/models.py:491
+#: stock/models.py:485
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:498
+#: stock/models.py:492
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:503 stock/templates/stock/item_base.html:299
+#: stock/models.py:497 stock/templates/stock/item_base.html:299
msgid "Installed In"
msgstr ""
-#: stock/models.py:506
+#: stock/models.py:500
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:522
+#: stock/models.py:516
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:536
+#: stock/models.py:530
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:540
+#: stock/models.py:534
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:549
+#: stock/models.py:543
msgid "Source Build"
msgstr ""
-#: stock/models.py:551
+#: stock/models.py:545
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:562
+#: stock/models.py:556
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:565
+#: stock/models.py:559
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:571
+#: stock/models.py:565
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:578
+#: stock/models.py:572
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:591
+#: stock/models.py:585
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:591
+#: stock/models.py:585
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:601 stock/templates/stock/item.html:111
+#: stock/models.py:595 stock/templates/stock/item.html:111
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:610
+#: stock/models.py:604
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:620
-msgid "Scheduled for deletion"
-msgstr ""
-
-#: stock/models.py:621
-msgid "This StockItem will be deleted by the background worker"
-msgstr ""
-
-#: stock/models.py:1084
+#: stock/models.py:1072
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1090
+#: stock/models.py:1078
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1096
+#: stock/models.py:1084
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1099
+#: stock/models.py:1087
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1102
+#: stock/models.py:1090
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1109
+#: stock/models.py:1097
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1267
+#: stock/models.py:1255
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1765
+#: stock/models.py:1753
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1822
+#: stock/models.py:1810
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1828
+#: stock/models.py:1816
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1846
+#: stock/models.py:1834
msgid "Test name"
msgstr ""
-#: stock/models.py:1852 templates/js/translated/table_filters.js:266
+#: stock/models.py:1840 templates/js/translated/table_filters.js:271
msgid "Test result"
msgstr ""
-#: stock/models.py:1858
+#: stock/models.py:1846
msgid "Test output value"
msgstr ""
-#: stock/models.py:1865
+#: stock/models.py:1853
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1871
+#: stock/models.py:1859
msgid "Test notes"
msgstr ""
-#: stock/serializers.py:171
+#: stock/serializers.py:173
msgid "Purchase price of this stock item"
msgstr ""
-#: stock/serializers.py:178
+#: stock/serializers.py:180
msgid "Purchase currency of this stock item"
msgstr ""
-#: stock/serializers.py:292
+#: stock/serializers.py:294
msgid "Enter number of stock items to serialize"
msgstr ""
-#: stock/serializers.py:307
+#: stock/serializers.py:309
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:313
+#: stock/serializers.py:315
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:324 stock/serializers.py:691
+#: stock/serializers.py:326 stock/serializers.py:814
msgid "Destination stock location"
msgstr ""
-#: stock/serializers.py:331
+#: stock/serializers.py:333
msgid "Optional note field"
msgstr ""
-#: stock/serializers.py:344
+#: stock/serializers.py:346
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:561
+#: stock/serializers.py:573
+msgid "Part must be salable"
+msgstr ""
+
+#: stock/serializers.py:577
+msgid "Item is allocated to a sales order"
+msgstr ""
+
+#: stock/serializers.py:581
+msgid "Item is allocated to a build order"
+msgstr ""
+
+#: stock/serializers.py:611
+msgid "Customer to assign stock items"
+msgstr ""
+
+#: stock/serializers.py:617
+msgid "Selected company is not a customer"
+msgstr ""
+
+#: stock/serializers.py:625
+msgid "Stock assignment notes"
+msgstr ""
+
+#: stock/serializers.py:635 stock/serializers.py:722
+msgid "A list of stock items must be provided"
+msgstr ""
+
+#: stock/serializers.py:684
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:589
+#: stock/serializers.py:712
msgid "Stock transaction notes"
msgstr ""
-#: stock/serializers.py:599
-msgid "A list of stock items must be provided"
-msgstr ""
-
#: stock/templates/stock/item.html:18
msgid "Stock Tracking Information"
msgstr ""
@@ -5572,7 +5781,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:137 stock/views.py:515
+#: stock/templates/stock/item.html:137 stock/views.py:482
msgid "Install Stock Item"
msgstr ""
@@ -5632,7 +5841,7 @@ msgstr ""
msgid "Transfer stock"
msgstr "Voorraad overzetten"
-#: stock/templates/stock/item_base.html:85
+#: stock/templates/stock/item_base.html:85 templates/stock_table.html:53
msgid "Assign to customer"
msgstr ""
@@ -5694,7 +5903,7 @@ msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:190
-#: templates/js/translated/table_filters.js:247
+#: templates/js/translated/table_filters.js:252
msgid "Expired"
msgstr ""
@@ -5704,12 +5913,12 @@ msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:192
-#: templates/js/translated/table_filters.js:253
+#: templates/js/translated/table_filters.js:258
msgid "Stale"
msgstr ""
#: stock/templates/stock/item_base.html:199
-#: templates/js/translated/stock.js:1371
+#: templates/js/translated/stock.js:1535
msgid "Last Updated"
msgstr ""
@@ -5738,13 +5947,11 @@ msgid "This stock item has not passed all required tests"
msgstr ""
#: stock/templates/stock/item_base.html:255
-#, python-format
-msgid "This stock item is allocated to Sales Order %(link)s (Quantity: %(qty)s)"
+msgid "This stock item is allocated to Sales Order"
msgstr ""
#: stock/templates/stock/item_base.html:263
-#, python-format
-msgid "This stock item is allocated to Build %(link)s (Quantity: %(qty)s)"
+msgid "This stock item is allocated to Build Order"
msgstr ""
#: stock/templates/stock/item_base.html:269
@@ -5760,7 +5967,7 @@ msgid "This stock item will be automatically deleted when all stock is depleted.
msgstr ""
#: stock/templates/stock/item_base.html:318
-#: templates/js/translated/build.js:1035
+#: templates/js/translated/build.js:1040
msgid "No location set"
msgstr "Geen Locatie ingesteld"
@@ -5910,7 +6117,7 @@ msgstr ""
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:912
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:879
msgid "Convert Stock Item"
msgstr ""
@@ -5935,8 +6142,7 @@ msgstr ""
msgid "Edit Stock Location"
msgstr "Bewerk voorraadlocatie"
-#: stock/views.py:269 stock/views.py:891 stock/views.py:1017
-#: stock/views.py:1299
+#: stock/views.py:269 stock/views.py:858 stock/views.py:984 stock/views.py:1266
msgid "Owner is required (ownership control is enabled)"
msgstr ""
@@ -5945,86 +6151,78 @@ msgid "Stock Location QR code"
msgstr "QR-code voor voorraadlocatie"
#: stock/views.py:303
-msgid "Assign to Customer"
-msgstr ""
-
-#: stock/views.py:312
-msgid "Customer must be specified"
-msgstr ""
-
-#: stock/views.py:336
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:345
+#: stock/views.py:312
msgid "Specify a valid location"
msgstr "Specificeer een geldige locatie"
-#: stock/views.py:356
+#: stock/views.py:323
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:367
+#: stock/views.py:334
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:384
+#: stock/views.py:351
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:489
+#: stock/views.py:456
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:663
+#: stock/views.py:630
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:760 templates/js/translated/stock.js:730
+#: stock/views.py:727 templates/js/translated/stock.js:887
msgid "Confirm stock adjustment"
msgstr ""
-#: stock/views.py:771
+#: stock/views.py:738
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:793 templates/js/translated/stock.js:319
+#: stock/views.py:760 templates/js/translated/stock.js:323
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:943
+#: stock/views.py:910
msgid "Create new Stock Location"
msgstr "Maak nieuwe voorraadlocatie"
-#: stock/views.py:1044
+#: stock/views.py:1011
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1186 templates/js/translated/stock.js:299
+#: stock/views.py:1153 templates/js/translated/stock.js:303
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1268
+#: stock/views.py:1235
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1368
+#: stock/views.py:1335
msgid "Delete Stock Location"
msgstr "Verwijder voorraadlocatie"
-#: stock/views.py:1381
+#: stock/views.py:1348
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1392
+#: stock/views.py:1359
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1399
+#: stock/views.py:1366
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1408
+#: stock/views.py:1375
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -6044,6 +6242,14 @@ msgstr ""
msgid "The requested page does not exist"
msgstr ""
+#: templates/503.html:10 templates/503.html:35
+msgid "Site is in Maintenance"
+msgstr ""
+
+#: templates/503.html:41
+msgid "The site is currently in maintenance and should be up again soon!"
+msgstr ""
+
#: templates/InvenTree/index.html:7
msgid "Index"
msgstr ""
@@ -6153,7 +6359,7 @@ msgid "Server Settings"
msgstr ""
#: templates/InvenTree/settings/login.html:9
-#: templates/InvenTree/settings/sidebar.html:28
+#: templates/InvenTree/settings/sidebar.html:29
msgid "Login Settings"
msgstr ""
@@ -6161,6 +6367,24 @@ msgstr ""
msgid "Signup"
msgstr ""
+#: templates/InvenTree/settings/mixins/settings.html:4
+#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:118
+msgid "Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/mixins/urls.html:4
+msgid "URLs"
+msgstr ""
+
+#: templates/InvenTree/settings/mixins/urls.html:6
+#, python-format
+msgid "The Base-URL for this plugin is %(base)s."
+msgstr ""
+
+#: templates/InvenTree/settings/mixins/urls.html:21
+msgid "open in new tab"
+msgstr ""
+
#: templates/InvenTree/settings/part.html:7
msgid "Part Settings"
msgstr ""
@@ -6177,6 +6401,126 @@ msgstr ""
msgid "Part Parameter Templates"
msgstr ""
+#: templates/InvenTree/settings/plugin.html:10
+msgid "Plugin Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:16
+msgid "Changing the settings below require you to immediatly restart InvenTree. Do not change this while under active usage."
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:32
+msgid "Plugin list"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:37
+#: templates/js/translated/plugin.js:15
+msgid "Install Plugin"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:46 templates/navbar.html:111
+#: users/models.py:39
+msgid "Admin"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:48
+#: templates/InvenTree/settings/plugin_settings.html:28
+msgid "Author"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:50
+#: templates/InvenTree/settings/plugin_settings.html:43
+msgid "Version"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:73
+#, python-format
+msgid "has %(name)s"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:91
+msgid "Inactive plugins"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:114
+msgid "Plugin Error Stack"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:123
+msgid "Stage"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:125
+msgid "Message"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:10
+#, python-format
+msgid "Plugin details for %(name)s"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:17
+msgid "Plugin information"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:48
+msgid "no version information supplied"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:62
+msgid "License"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:70
+msgid "The code information is pulled from the latest git commit for this plugin. It might not reflect official version numbers or information but the actual code running."
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:74
+msgid "Package information"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:80
+msgid "Installation method"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:83
+msgid "This plugin was installed as a package"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:85
+msgid "This plugin was found in a local InvenTree path"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:91
+msgid "Installation path"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:97
+msgid "Commit Author"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:101
+#: templates/about.html:47
+msgid "Commit Date"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:105
+#: templates/about.html:40
+msgid "Commit Hash"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:109
+msgid "Commit Message"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:114
+msgid "Sign Status"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:119
+msgid "Sign Key"
+msgstr ""
+
#: templates/InvenTree/settings/po.html:7
msgid "Purchase Order Settings"
msgstr ""
@@ -6194,86 +6538,82 @@ msgstr ""
msgid "Edit setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:11 templates/navbar.html:93
-msgid "Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/settings.html:65
+#: templates/InvenTree/settings/settings.html:74
msgid "Edit Global Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:65
+#: templates/InvenTree/settings/settings.html:74
msgid "Edit User Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:148
+#: templates/InvenTree/settings/settings.html:157
msgid "No category parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:170
-#: templates/InvenTree/settings/settings.html:269
+#: templates/InvenTree/settings/settings.html:179
+#: templates/InvenTree/settings/settings.html:278
msgid "Edit Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:171
-#: templates/InvenTree/settings/settings.html:270
+#: templates/InvenTree/settings/settings.html:180
+#: templates/InvenTree/settings/settings.html:279
msgid "Delete Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:249
+#: templates/InvenTree/settings/settings.html:258
msgid "No part parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:253
+#: templates/InvenTree/settings/settings.html:262
msgid "ID"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:5
+#: templates/InvenTree/settings/sidebar.html:6
#: templates/InvenTree/settings/user_settings.html:9
msgid "User Settings"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:8
+#: templates/InvenTree/settings/sidebar.html:9
#: templates/InvenTree/settings/user.html:12
msgid "Account Settings"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:10
+#: templates/InvenTree/settings/sidebar.html:11
#: templates/InvenTree/settings/user_display.html:9
msgid "Display Settings"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:12
+#: templates/InvenTree/settings/sidebar.html:13
msgid "Home Page"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:14
+#: templates/InvenTree/settings/sidebar.html:15
#: templates/InvenTree/settings/user_search.html:9
msgid "Search Settings"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:16
+#: templates/InvenTree/settings/sidebar.html:17
msgid "Label Printing"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:18
-#: templates/InvenTree/settings/sidebar.html:34
+#: templates/InvenTree/settings/sidebar.html:19
+#: templates/InvenTree/settings/sidebar.html:35
msgid "Reporting"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:23
+#: templates/InvenTree/settings/sidebar.html:24
msgid "Global Settings"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:26
+#: templates/InvenTree/settings/sidebar.html:27
msgid "Server Configuration"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:32
+#: templates/InvenTree/settings/sidebar.html:33
msgid "Currencies"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:38
+#: templates/InvenTree/settings/sidebar.html:39
msgid "Categories"
msgstr ""
@@ -6491,8 +6831,8 @@ msgstr ""
#: templates/about.html:11 templates/about.html:105
#: templates/js/translated/bom.js:283 templates/js/translated/modals.js:53
-#: templates/js/translated/modals.js:567 templates/js/translated/modals.js:661
-#: templates/js/translated/modals.js:964 templates/modals.html:15
+#: templates/js/translated/modals.js:568 templates/js/translated/modals.js:662
+#: templates/js/translated/modals.js:965 templates/modals.html:15
#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
msgid "Close"
msgstr ""
@@ -6513,14 +6853,6 @@ msgstr ""
msgid "Update Available"
msgstr ""
-#: templates/about.html:40
-msgid "Commit Hash"
-msgstr ""
-
-#: templates/about.html:47
-msgid "Commit Date"
-msgstr ""
-
#: templates/about.html:53
msgid "InvenTree Documentation"
msgstr ""
@@ -6718,8 +7050,9 @@ msgstr ""
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1129
-#: templates/js/translated/build.js:1749
+#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1134
+#: templates/js/translated/build.js:1755
+#: templates/js/translated/table_filters.js:178
msgid "Available"
msgstr ""
@@ -6765,11 +7098,11 @@ msgstr ""
msgid "Remote image must not exceed maximum allowable file size"
msgstr ""
-#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1034
+#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1035
msgid "No Response"
msgstr ""
-#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1035
+#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1036
msgid "No response from the InvenTree server"
msgstr ""
@@ -6781,35 +7114,35 @@ msgstr ""
msgid "API request returned error code 400"
msgstr ""
-#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1044
+#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1045
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1045
+#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1046
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1049
+#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1050
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1050
+#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1051
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1054
+#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1055
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1055
+#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1056
msgid "The requested resource could not be located on the server"
msgstr ""
-#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1059
+#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1060
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1060
+#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1061
msgid "Connection timeout while requesting data from server"
msgstr ""
@@ -6878,7 +7211,7 @@ msgid "Unknown response from server"
msgstr ""
#: templates/js/translated/barcode.js:140
-#: templates/js/translated/modals.js:1024
+#: templates/js/translated/modals.js:1025
msgid "Invalid server response"
msgstr ""
@@ -6886,7 +7219,7 @@ msgstr ""
msgid "Scan barcode data below"
msgstr ""
-#: templates/js/translated/barcode.js:280 templates/navbar.html:69
+#: templates/js/translated/barcode.js:280 templates/navbar.html:94
msgid "Scan Barcode"
msgstr ""
@@ -6906,7 +7239,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:682
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:839
msgid "Remove stock item"
msgstr ""
@@ -6976,7 +7309,7 @@ msgstr ""
msgid "Substitutes Available"
msgstr ""
-#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1111
+#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1116
msgid "Variant stock allowed"
msgstr ""
@@ -7000,11 +7333,6 @@ msgstr ""
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1183
-#: templates/js/translated/order.js:1319
-msgid "Actions"
-msgstr ""
-
#: templates/js/translated/bom.js:616
msgid "Validate BOM Item"
msgstr ""
@@ -7025,7 +7353,7 @@ msgstr ""
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:718 templates/js/translated/build.js:855
+#: templates/js/translated/bom.js:718 templates/js/translated/build.js:860
msgid "No BOM items found"
msgstr ""
@@ -7033,7 +7361,7 @@ msgstr ""
msgid "Are you sure you want to delete this BOM item?"
msgstr ""
-#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1095
+#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1100
msgid "Required Part"
msgstr ""
@@ -7041,165 +7369,165 @@ msgstr ""
msgid "Inherited from parent BOM"
msgstr ""
-#: templates/js/translated/build.js:78
+#: templates/js/translated/build.js:83
msgid "Edit Build Order"
msgstr ""
-#: templates/js/translated/build.js:112
+#: templates/js/translated/build.js:117
msgid "Create Build Order"
msgstr ""
-#: templates/js/translated/build.js:133
+#: templates/js/translated/build.js:138
msgid "Allocate stock items to this build output"
msgstr ""
-#: templates/js/translated/build.js:144
+#: templates/js/translated/build.js:149
msgid "Unallocate stock from build output"
msgstr ""
-#: templates/js/translated/build.js:153
+#: templates/js/translated/build.js:158
msgid "Complete build output"
msgstr ""
-#: templates/js/translated/build.js:161
+#: templates/js/translated/build.js:166
msgid "Delete build output"
msgstr ""
-#: templates/js/translated/build.js:184
+#: templates/js/translated/build.js:189
msgid "Are you sure you wish to unallocate stock items from this build?"
msgstr ""
-#: templates/js/translated/build.js:202
+#: templates/js/translated/build.js:207
msgid "Unallocate Stock Items"
msgstr ""
-#: templates/js/translated/build.js:220
+#: templates/js/translated/build.js:225
msgid "Select Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:221
+#: templates/js/translated/build.js:226
msgid "At least one build output must be selected"
msgstr ""
-#: templates/js/translated/build.js:275
+#: templates/js/translated/build.js:280
msgid "Output"
msgstr ""
-#: templates/js/translated/build.js:291
+#: templates/js/translated/build.js:296
msgid "Complete Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:386
+#: templates/js/translated/build.js:391
msgid "No build order allocations found"
msgstr ""
-#: templates/js/translated/build.js:424 templates/js/translated/order.js:1193
+#: templates/js/translated/build.js:429 templates/js/translated/order.js:1848
msgid "Location not specified"
msgstr ""
-#: templates/js/translated/build.js:603
+#: templates/js/translated/build.js:608
msgid "No active build outputs found"
msgstr ""
-#: templates/js/translated/build.js:1052 templates/js/translated/build.js:1760
-#: templates/js/translated/order.js:1326
+#: templates/js/translated/build.js:1057 templates/js/translated/build.js:1766
+#: templates/js/translated/order.js:1982
msgid "Edit stock allocation"
msgstr ""
-#: templates/js/translated/build.js:1054 templates/js/translated/build.js:1761
-#: templates/js/translated/order.js:1327
+#: templates/js/translated/build.js:1059 templates/js/translated/build.js:1767
+#: templates/js/translated/order.js:1983
msgid "Delete stock allocation"
msgstr ""
-#: templates/js/translated/build.js:1072
+#: templates/js/translated/build.js:1077
msgid "Edit Allocation"
msgstr ""
-#: templates/js/translated/build.js:1082
+#: templates/js/translated/build.js:1087
msgid "Remove Allocation"
msgstr ""
-#: templates/js/translated/build.js:1107
+#: templates/js/translated/build.js:1112
msgid "Substitute parts available"
msgstr ""
-#: templates/js/translated/build.js:1124
+#: templates/js/translated/build.js:1129
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:1134 templates/js/translated/build.js:1360
-#: templates/js/translated/build.js:1756 templates/js/translated/order.js:1556
+#: templates/js/translated/build.js:1139 templates/js/translated/build.js:1365
+#: templates/js/translated/build.js:1762 templates/js/translated/order.js:2227
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:1190 templates/js/translated/order.js:1610
+#: templates/js/translated/build.js:1195 templates/js/translated/order.js:2307
msgid "Build stock"
msgstr ""
-#: templates/js/translated/build.js:1194 templates/stock_table.html:52
+#: templates/js/translated/build.js:1199 templates/stock_table.html:52
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:1197 templates/js/translated/order.js:1603
+#: templates/js/translated/build.js:1202 templates/js/translated/order.js:2300
msgid "Allocate stock"
msgstr ""
-#: templates/js/translated/build.js:1262
+#: templates/js/translated/build.js:1267 templates/js/translated/order.js:1499
msgid "Specify stock allocation quantity"
msgstr ""
-#: templates/js/translated/build.js:1333 templates/js/translated/label.js:134
-#: templates/js/translated/report.js:225
+#: templates/js/translated/build.js:1338 templates/js/translated/label.js:134
+#: templates/js/translated/order.js:1550 templates/js/translated/report.js:225
msgid "Select Parts"
msgstr ""
-#: templates/js/translated/build.js:1334
+#: templates/js/translated/build.js:1339 templates/js/translated/order.js:1551
msgid "You must select at least one part to allocate"
msgstr ""
-#: templates/js/translated/build.js:1348
+#: templates/js/translated/build.js:1353 templates/js/translated/order.js:1565
msgid "Select source location (leave blank to take from all locations)"
msgstr ""
-#: templates/js/translated/build.js:1377
+#: templates/js/translated/build.js:1382 templates/js/translated/order.js:1600
msgid "Confirm stock allocation"
msgstr "Bevestig de voorraadtoewijzing"
-#: templates/js/translated/build.js:1378
+#: templates/js/translated/build.js:1383
msgid "Allocate Stock Items to Build Order"
msgstr ""
-#: templates/js/translated/build.js:1389
+#: templates/js/translated/build.js:1394 templates/js/translated/order.js:1613
msgid "No matching stock locations"
msgstr ""
-#: templates/js/translated/build.js:1451
+#: templates/js/translated/build.js:1464 templates/js/translated/order.js:1690
msgid "No matching stock items"
msgstr ""
-#: templates/js/translated/build.js:1576
+#: templates/js/translated/build.js:1582
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:1593 templates/js/translated/part.js:1147
-#: templates/js/translated/part.js:1558 templates/js/translated/stock.js:1176
-#: templates/js/translated/stock.js:1953
+#: templates/js/translated/build.js:1599 templates/js/translated/part.js:1147
+#: templates/js/translated/part.js:1558 templates/js/translated/stock.js:1333
+#: templates/js/translated/stock.js:2128
msgid "Select"
msgstr ""
-#: templates/js/translated/build.js:1613
+#: templates/js/translated/build.js:1619
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1674 templates/js/translated/stock.js:2172
+#: templates/js/translated/build.js:1680 templates/js/translated/stock.js:2347
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:1686
+#: templates/js/translated/build.js:1692
msgid "No information"
msgstr ""
-#: templates/js/translated/build.js:1737
+#: templates/js/translated/build.js:1743
msgid "No parts allocated for"
msgstr ""
@@ -7219,7 +7547,7 @@ msgstr "Fabrikant onderdeel bewerken"
msgid "Delete Manufacturer Part"
msgstr "Fabrikant onderdeel verwijderen"
-#: templates/js/translated/company.js:165 templates/js/translated/order.js:90
+#: templates/js/translated/company.js:165 templates/js/translated/order.js:248
msgid "Add Supplier"
msgstr ""
@@ -7354,20 +7682,20 @@ msgstr ""
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1072 templates/modals.html:19
+#: templates/js/translated/forms.js:1078 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1463
+#: templates/js/translated/forms.js:1469
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1667
+#: templates/js/translated/forms.js:1673
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1884
+#: templates/js/translated/forms.js:1893
msgid "Clear input"
msgstr ""
@@ -7380,7 +7708,7 @@ msgid "NO"
msgstr ""
#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:706
+#: templates/js/translated/stock.js:863
msgid "Select Stock Items"
msgstr ""
@@ -7429,62 +7757,62 @@ msgstr ""
msgid "Select Label Template"
msgstr ""
-#: templates/js/translated/modals.js:75 templates/js/translated/modals.js:119
-#: templates/js/translated/modals.js:593
+#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:120
+#: templates/js/translated/modals.js:594
msgid "Cancel"
msgstr ""
-#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:118
-#: templates/js/translated/modals.js:660 templates/js/translated/modals.js:963
+#: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119
+#: templates/js/translated/modals.js:661 templates/js/translated/modals.js:964
#: templates/modals.html:28 templates/modals.html:51
msgid "Submit"
msgstr ""
-#: templates/js/translated/modals.js:117
+#: templates/js/translated/modals.js:118
msgid "Form Title"
msgstr ""
-#: templates/js/translated/modals.js:380
+#: templates/js/translated/modals.js:381
msgid "Waiting for server..."
msgstr ""
-#: templates/js/translated/modals.js:539
+#: templates/js/translated/modals.js:540
msgid "Show Error Information"
msgstr ""
-#: templates/js/translated/modals.js:592
+#: templates/js/translated/modals.js:593
msgid "Accept"
msgstr ""
-#: templates/js/translated/modals.js:649
+#: templates/js/translated/modals.js:650
msgid "Loading Data"
msgstr ""
-#: templates/js/translated/modals.js:915
+#: templates/js/translated/modals.js:916
msgid "Invalid response from server"
msgstr ""
-#: templates/js/translated/modals.js:915
+#: templates/js/translated/modals.js:916
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/translated/modals.js:927
+#: templates/js/translated/modals.js:928
msgid "Error posting form data"
msgstr ""
-#: templates/js/translated/modals.js:1024
+#: templates/js/translated/modals.js:1025
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/translated/modals.js:1039
+#: templates/js/translated/modals.js:1040
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/translated/modals.js:1040
+#: templates/js/translated/modals.js:1041
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/translated/modals.js:1063
+#: templates/js/translated/modals.js:1064
msgid "Error requesting form data"
msgstr ""
@@ -7512,176 +7840,245 @@ msgstr ""
msgid "Order ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:256
+#: templates/js/translated/model_renderers.js:253
+msgid "Shipment ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:273
msgid "Category ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:293
+#: templates/js/translated/model_renderers.js:310
msgid "Manufacturer Part ID"
msgstr "Onderdeelnummer fabrikant"
-#: templates/js/translated/model_renderers.js:322
+#: templates/js/translated/model_renderers.js:339
msgid "Supplier Part ID"
msgstr ""
-#: templates/js/translated/order.js:48
+#: templates/js/translated/order.js:75
+msgid "No stock items have been allocated to this shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:80
+msgid "The following stock items will be shipped"
+msgstr ""
+
+#: templates/js/translated/order.js:120
+msgid "Complete Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:126
+msgid "Confirm Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:181
+msgid "Create New Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:206
msgid "Add Customer"
msgstr ""
-#: templates/js/translated/order.js:73
+#: templates/js/translated/order.js:231
msgid "Create Sales Order"
msgstr ""
-#: templates/js/translated/order.js:208
+#: templates/js/translated/order.js:366
msgid "Export Order"
msgstr ""
-#: templates/js/translated/order.js:211 templates/js/translated/stock.js:505
+#: templates/js/translated/order.js:369 templates/js/translated/stock.js:509
msgid "Format"
msgstr ""
-#: templates/js/translated/order.js:212 templates/js/translated/stock.js:506
+#: templates/js/translated/order.js:370 templates/js/translated/stock.js:510
msgid "Select file format"
msgstr ""
-#: templates/js/translated/order.js:300
+#: templates/js/translated/order.js:460
msgid "Select Line Items"
msgstr ""
-#: templates/js/translated/order.js:301
+#: templates/js/translated/order.js:461
msgid "At least one line item must be selected"
msgstr ""
-#: templates/js/translated/order.js:326
+#: templates/js/translated/order.js:486
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:360 templates/js/translated/stock.js:1755
+#: templates/js/translated/order.js:520 templates/js/translated/stock.js:1930
msgid "Stock Status"
msgstr ""
-#: templates/js/translated/order.js:427
+#: templates/js/translated/order.js:587
msgid "Order Code"
msgstr ""
-#: templates/js/translated/order.js:428
+#: templates/js/translated/order.js:588
msgid "Ordered"
msgstr ""
-#: templates/js/translated/order.js:430
+#: templates/js/translated/order.js:590
msgid "Receive"
msgstr ""
-#: templates/js/translated/order.js:449
+#: templates/js/translated/order.js:609
msgid "Confirm receipt of items"
msgstr ""
-#: templates/js/translated/order.js:450
+#: templates/js/translated/order.js:610
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:627 templates/js/translated/part.js:746
+#: templates/js/translated/order.js:790 templates/js/translated/part.js:746
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:659 templates/js/translated/order.js:1062
+#: templates/js/translated/order.js:815 templates/js/translated/order.js:1230
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:771 templates/js/translated/order.js:1645
+#: templates/js/translated/order.js:936 templates/js/translated/order.js:2356
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:783 templates/js/translated/order.js:1656
+#: templates/js/translated/order.js:948 templates/js/translated/order.js:2367
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/order.js:822
+#: templates/js/translated/order.js:987
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:849 templates/js/translated/order.js:1466
+#: templates/js/translated/order.js:1014 templates/js/translated/order.js:2138
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:903 templates/js/translated/order.js:1491
+#: templates/js/translated/order.js:1068 templates/js/translated/order.js:2163
#: templates/js/translated/part.js:1775 templates/js/translated/part.js:1986
msgid "Unit Price"
msgstr ""
-#: templates/js/translated/order.js:918 templates/js/translated/order.js:1507
+#: templates/js/translated/order.js:1083 templates/js/translated/order.js:2179
msgid "Total Price"
msgstr ""
-#: templates/js/translated/order.js:996 templates/js/translated/order.js:1616
+#: templates/js/translated/order.js:1161 templates/js/translated/order.js:2313
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:997
+#: templates/js/translated/order.js:1162 templates/js/translated/order.js:2317
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:1001 templates/js/translated/part.js:878
+#: templates/js/translated/order.js:1166 templates/js/translated/part.js:878
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:1038
+#: templates/js/translated/order.js:1206
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:1076
+#: templates/js/translated/order.js:1244
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:1154
+#: templates/js/translated/order.js:1322
+msgid "Edit shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1325
+msgid "Complete shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1330
+msgid "Delete shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1350
+msgid "Edit Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1367
+msgid "Delete Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1401
+msgid "No matching shipments found"
+msgstr ""
+
+#: templates/js/translated/order.js:1411
+msgid "Shipment Reference"
+msgstr ""
+
+#: templates/js/translated/order.js:1435
+msgid "Not shipped"
+msgstr ""
+
+#: templates/js/translated/order.js:1441
+msgid "Tracking"
+msgstr ""
+
+#: templates/js/translated/order.js:1601
+msgid "Allocate Stock Items to Sales Order"
+msgstr ""
+
+#: templates/js/translated/order.js:1809
msgid "No sales order allocations found"
msgstr ""
-#: templates/js/translated/order.js:1247
+#: templates/js/translated/order.js:1898
msgid "Edit Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1264
+#: templates/js/translated/order.js:1915
msgid "Confirm Delete Operation"
msgstr ""
-#: templates/js/translated/order.js:1265
+#: templates/js/translated/order.js:1916
msgid "Delete Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1307
+#: templates/js/translated/order.js:1959 templates/js/translated/order.js:2048
+#: templates/js/translated/stock.js:1249
+msgid "Shipped to customer"
+msgstr ""
+
+#: templates/js/translated/order.js:1967 templates/js/translated/order.js:2057
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:1556
-msgid "Fulfilled"
-msgstr ""
-
-#: templates/js/translated/order.js:1600
+#: templates/js/translated/order.js:2297
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:1606
+#: templates/js/translated/order.js:2303
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:1613 templates/js/translated/order.js:1792
+#: templates/js/translated/order.js:2310 templates/js/translated/order.js:2476
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:1617
-msgid "Delete line item "
+#: templates/js/translated/order.js:2321
+msgid "Cannot be deleted as items have been shipped"
msgstr ""
-#: templates/js/translated/order.js:1740
-msgid "Allocate Stock Item"
+#: templates/js/translated/order.js:2324
+msgid "Cannot be deleted as items have been allocated"
msgstr ""
-#: templates/js/translated/order.js:1800
+#: templates/js/translated/order.js:2382
+msgid "Allocate Serial Numbers"
+msgstr ""
+
+#: templates/js/translated/order.js:2484
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:1814
+#: templates/js/translated/order.js:2498
msgid "No matching line items"
msgstr ""
@@ -7826,12 +8223,12 @@ msgid "No category"
msgstr ""
#: templates/js/translated/part.js:1230
-#: templates/js/translated/table_filters.js:381
+#: templates/js/translated/table_filters.js:412
msgid "Low stock"
msgstr ""
#: templates/js/translated/part.js:1321 templates/js/translated/part.js:1493
-#: templates/js/translated/stock.js:1914
+#: templates/js/translated/stock.js:2089
msgid "Display as list"
msgstr ""
@@ -7839,7 +8236,7 @@ msgstr ""
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1512 templates/js/translated/stock.js:1933
+#: templates/js/translated/part.js:1512 templates/js/translated/stock.js:2108
msgid "Display as tree"
msgstr ""
@@ -7847,7 +8244,7 @@ msgstr ""
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:1590 templates/js/translated/stock.js:1977
+#: templates/js/translated/part.js:1590 templates/js/translated/stock.js:2152
msgid "Path"
msgstr ""
@@ -7855,11 +8252,11 @@ msgstr ""
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1685 templates/js/translated/stock.js:898
+#: templates/js/translated/part.js:1685 templates/js/translated/stock.js:1055
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1686 templates/js/translated/stock.js:899
+#: templates/js/translated/part.js:1686 templates/js/translated/stock.js:1056
msgid "Delete test result"
msgstr ""
@@ -7898,6 +8295,10 @@ msgstr ""
msgid "Single Price Difference"
msgstr ""
+#: templates/js/translated/plugin.js:22
+msgid "The Plugin was installed"
+msgstr ""
+
#: templates/js/translated/report.js:67
msgid "items selected"
msgstr ""
@@ -7964,300 +8365,316 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/stock.js:71
+#: templates/js/translated/stock.js:72
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:89 templates/js/translated/stock.js:168
+#: templates/js/translated/stock.js:90 templates/js/translated/stock.js:172
msgid "Next available serial number"
msgstr ""
-#: templates/js/translated/stock.js:91 templates/js/translated/stock.js:170
+#: templates/js/translated/stock.js:92 templates/js/translated/stock.js:174
msgid "Latest serial number"
msgstr ""
-#: templates/js/translated/stock.js:105
+#: templates/js/translated/stock.js:100
+msgid "Confirm Stock Serialization"
+msgstr ""
+
+#: templates/js/translated/stock.js:109
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:141
+#: templates/js/translated/stock.js:145
msgid "New Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:181
+#: templates/js/translated/stock.js:185
msgid "This part cannot be serialized"
msgstr ""
-#: templates/js/translated/stock.js:220
+#: templates/js/translated/stock.js:224
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: templates/js/translated/stock.js:226
+#: templates/js/translated/stock.js:230
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: templates/js/translated/stock.js:369
+#: templates/js/translated/stock.js:373
msgid "Created new stock item"
msgstr ""
-#: templates/js/translated/stock.js:382
+#: templates/js/translated/stock.js:386
msgid "Created multiple stock items"
msgstr ""
-#: templates/js/translated/stock.js:407
+#: templates/js/translated/stock.js:411
msgid "Find Serial Number"
msgstr ""
-#: templates/js/translated/stock.js:411 templates/js/translated/stock.js:412
+#: templates/js/translated/stock.js:415 templates/js/translated/stock.js:416
msgid "Enter serial number"
msgstr ""
-#: templates/js/translated/stock.js:428
+#: templates/js/translated/stock.js:432
msgid "Enter a serial number"
msgstr ""
-#: templates/js/translated/stock.js:448
+#: templates/js/translated/stock.js:452
msgid "No matching serial number"
msgstr ""
-#: templates/js/translated/stock.js:457
+#: templates/js/translated/stock.js:461
msgid "More than one matching result found"
msgstr ""
-#: templates/js/translated/stock.js:502
+#: templates/js/translated/stock.js:506
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:513
+#: templates/js/translated/stock.js:517
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:514
+#: templates/js/translated/stock.js:518
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:556
+#: templates/js/translated/stock.js:627
+msgid "Confirm stock assignment"
+msgstr ""
+
+#: templates/js/translated/stock.js:628
+msgid "Assign Stock to Customer"
+msgstr ""
+
+#: templates/js/translated/stock.js:713
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:557
+#: templates/js/translated/stock.js:714
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:563
+#: templates/js/translated/stock.js:720
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:564
+#: templates/js/translated/stock.js:721
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:568
+#: templates/js/translated/stock.js:725
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:569
+#: templates/js/translated/stock.js:726
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:573
+#: templates/js/translated/stock.js:730
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:574 users/models.py:200
+#: templates/js/translated/stock.js:731 users/models.py:202
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:578 templates/stock_table.html:56
+#: templates/js/translated/stock.js:735 templates/stock_table.html:57
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:667
+#: templates/js/translated/stock.js:824
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:667
+#: templates/js/translated/stock.js:824
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:707
+#: templates/js/translated/stock.js:864
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:865
+#: templates/js/translated/stock.js:1022
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:867
+#: templates/js/translated/stock.js:1024
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:872
+#: templates/js/translated/stock.js:1029
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:894
+#: templates/js/translated/stock.js:1051
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:920
+#: templates/js/translated/stock.js:1077
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:977
+#: templates/js/translated/stock.js:1134
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:1084
+#: templates/js/translated/stock.js:1241
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:1088
+#: templates/js/translated/stock.js:1245
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:1092
-msgid "Shipped to customer"
-msgstr ""
-
-#: templates/js/translated/stock.js:1096
+#: templates/js/translated/stock.js:1253
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:1102
+#: templates/js/translated/stock.js:1259
msgid "No stock location set"
msgstr "Geen voorraadlocatie ingesteld"
-#: templates/js/translated/stock.js:1260
+#: templates/js/translated/stock.js:1417
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1265
+#: templates/js/translated/stock.js:1422
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1268
+#: templates/js/translated/stock.js:1425
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1272
+#: templates/js/translated/stock.js:1429
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1274
+#: templates/js/translated/stock.js:1431
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1278
-msgid "Stock item has been allocated"
+#: templates/js/translated/stock.js:1437
+msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1282
+#: templates/js/translated/stock.js:1439
+msgid "Stock item has been fully allocated"
+msgstr ""
+
+#: templates/js/translated/stock.js:1441
+msgid "Stock item has been partially allocated"
+msgstr ""
+
+#: templates/js/translated/stock.js:1446
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1289
+#: templates/js/translated/stock.js:1453
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1291
+#: templates/js/translated/stock.js:1455
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1293
+#: templates/js/translated/stock.js:1457
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1297
-#: templates/js/translated/table_filters.js:183
+#: templates/js/translated/stock.js:1461
+#: templates/js/translated/table_filters.js:188
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1347
+#: templates/js/translated/stock.js:1511
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1420
+#: templates/js/translated/stock.js:1584
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1458
+#: templates/js/translated/stock.js:1622
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1479 templates/js/translated/stock.js:1527
+#: templates/js/translated/stock.js:1643 templates/js/translated/stock.js:1691
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1567
+#: templates/js/translated/stock.js:1731
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1594
+#: templates/js/translated/stock.js:1758
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:1596
+#: templates/js/translated/stock.js:1760
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:1770
+#: templates/js/translated/stock.js:1945
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:1784
+#: templates/js/translated/stock.js:1959
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:1785
+#: templates/js/translated/stock.js:1960
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:2009
+#: templates/js/translated/stock.js:2184
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:2031
+#: templates/js/translated/stock.js:2206
msgid "Details"
msgstr ""
-#: templates/js/translated/stock.js:2056
+#: templates/js/translated/stock.js:2231
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2075
+#: templates/js/translated/stock.js:2250
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2094
+#: templates/js/translated/stock.js:2269
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2112
+#: templates/js/translated/stock.js:2287
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2135
+#: templates/js/translated/stock.js:2310
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2143
+#: templates/js/translated/stock.js:2318
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2184
+#: templates/js/translated/stock.js:2359
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2185
+#: templates/js/translated/stock.js:2360
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2236
+#: templates/js/translated/stock.js:2411
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2287
+#: templates/js/translated/stock.js:2462
msgid "Uninstall Stock Item"
msgstr ""
@@ -8278,7 +8695,7 @@ msgid "Allow Variant Stock"
msgstr ""
#: templates/js/translated/table_filters.js:110
-#: templates/js/translated/table_filters.js:178
+#: templates/js/translated/table_filters.js:183
msgid "Include sublocations"
msgstr ""
@@ -8288,54 +8705,54 @@ msgstr ""
#: templates/js/translated/table_filters.js:121
#: templates/js/translated/table_filters.js:122
-#: templates/js/translated/table_filters.js:358
+#: templates/js/translated/table_filters.js:389
msgid "Include subcategories"
msgstr ""
#: templates/js/translated/table_filters.js:126
-#: templates/js/translated/table_filters.js:393
+#: templates/js/translated/table_filters.js:424
msgid "Subscribed"
msgstr ""
#: templates/js/translated/table_filters.js:136
-#: templates/js/translated/table_filters.js:213
+#: templates/js/translated/table_filters.js:218
msgid "Is Serialized"
msgstr ""
#: templates/js/translated/table_filters.js:139
-#: templates/js/translated/table_filters.js:220
+#: templates/js/translated/table_filters.js:225
msgid "Serial number GTE"
msgstr ""
#: templates/js/translated/table_filters.js:140
-#: templates/js/translated/table_filters.js:221
+#: templates/js/translated/table_filters.js:226
msgid "Serial number greater than or equal to"
msgstr ""
#: templates/js/translated/table_filters.js:143
-#: templates/js/translated/table_filters.js:224
+#: templates/js/translated/table_filters.js:229
msgid "Serial number LTE"
msgstr ""
#: templates/js/translated/table_filters.js:144
-#: templates/js/translated/table_filters.js:225
+#: templates/js/translated/table_filters.js:230
msgid "Serial number less than or equal to"
msgstr ""
#: templates/js/translated/table_filters.js:147
#: templates/js/translated/table_filters.js:148
-#: templates/js/translated/table_filters.js:216
-#: templates/js/translated/table_filters.js:217
+#: templates/js/translated/table_filters.js:221
+#: templates/js/translated/table_filters.js:222
msgid "Serial number"
msgstr ""
#: templates/js/translated/table_filters.js:152
-#: templates/js/translated/table_filters.js:234
+#: templates/js/translated/table_filters.js:239
msgid "Batch code"
msgstr ""
#: templates/js/translated/table_filters.js:163
-#: templates/js/translated/table_filters.js:348
+#: templates/js/translated/table_filters.js:379
msgid "Active parts"
msgstr ""
@@ -8356,101 +8773,111 @@ msgid "Item has been allocated"
msgstr ""
#: templates/js/translated/table_filters.js:179
-msgid "Include stock in sublocations"
+msgid "Stock is available for use"
msgstr ""
#: templates/js/translated/table_filters.js:184
-msgid "Show stock items which are depleted"
+msgid "Include stock in sublocations"
msgstr ""
#: templates/js/translated/table_filters.js:189
-msgid "Show items which are in stock"
-msgstr ""
-
-#: templates/js/translated/table_filters.js:193
-msgid "In Production"
+msgid "Show stock items which are depleted"
msgstr ""
#: templates/js/translated/table_filters.js:194
-msgid "Show items which are in production"
+msgid "Show items which are in stock"
msgstr ""
#: templates/js/translated/table_filters.js:198
-msgid "Include Variants"
+msgid "In Production"
msgstr ""
#: templates/js/translated/table_filters.js:199
-msgid "Include stock items for variant parts"
+msgid "Show items which are in production"
msgstr ""
#: templates/js/translated/table_filters.js:203
-msgid "Installed"
+msgid "Include Variants"
msgstr ""
#: templates/js/translated/table_filters.js:204
-msgid "Show stock items which are installed in another item"
+msgid "Include stock items for variant parts"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:208
+msgid "Installed"
msgstr ""
#: templates/js/translated/table_filters.js:209
+msgid "Show stock items which are installed in another item"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:214
msgid "Show items which have been assigned to a customer"
msgstr ""
-#: templates/js/translated/table_filters.js:229
-#: templates/js/translated/table_filters.js:230
+#: templates/js/translated/table_filters.js:234
+#: templates/js/translated/table_filters.js:235
msgid "Stock status"
msgstr ""
-#: templates/js/translated/table_filters.js:238
+#: templates/js/translated/table_filters.js:243
msgid "Has purchase price"
msgstr ""
-#: templates/js/translated/table_filters.js:239
+#: templates/js/translated/table_filters.js:244
msgid "Show stock items which have a purchase price set"
msgstr ""
-#: templates/js/translated/table_filters.js:248
+#: templates/js/translated/table_filters.js:253
msgid "Show stock items which have expired"
msgstr ""
-#: templates/js/translated/table_filters.js:254
+#: templates/js/translated/table_filters.js:259
msgid "Show stock which is close to expiring"
msgstr ""
-#: templates/js/translated/table_filters.js:285
+#: templates/js/translated/table_filters.js:290
msgid "Build status"
msgstr ""
-#: templates/js/translated/table_filters.js:313
-#: templates/js/translated/table_filters.js:330
+#: templates/js/translated/table_filters.js:303
+#: templates/js/translated/table_filters.js:344
+msgid "Assigned to me"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:320
+#: templates/js/translated/table_filters.js:331
+#: templates/js/translated/table_filters.js:352
msgid "Order status"
msgstr ""
-#: templates/js/translated/table_filters.js:318
-#: templates/js/translated/table_filters.js:335
+#: templates/js/translated/table_filters.js:336
+#: templates/js/translated/table_filters.js:357
msgid "Outstanding"
msgstr ""
-#: templates/js/translated/table_filters.js:359
+#: templates/js/translated/table_filters.js:390
msgid "Include parts in subcategories"
msgstr ""
-#: templates/js/translated/table_filters.js:363
+#: templates/js/translated/table_filters.js:394
msgid "Has IPN"
msgstr ""
-#: templates/js/translated/table_filters.js:364
+#: templates/js/translated/table_filters.js:395
msgid "Part has internal part number"
msgstr ""
-#: templates/js/translated/table_filters.js:369
+#: templates/js/translated/table_filters.js:400
msgid "Show active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:377
+#: templates/js/translated/table_filters.js:408
msgid "Stock available"
msgstr ""
-#: templates/js/translated/table_filters.js:405
+#: templates/js/translated/table_filters.js:436
msgid "Purchasable"
msgstr ""
@@ -8507,27 +8934,23 @@ msgstr ""
msgid "All"
msgstr ""
-#: templates/navbar.html:40
+#: templates/navbar.html:42
msgid "Buy"
msgstr "Inkoop"
-#: templates/navbar.html:52
+#: templates/navbar.html:54
msgid "Sell"
msgstr "Verkoop"
-#: templates/navbar.html:86 users/models.py:39
-msgid "Admin"
-msgstr ""
-
-#: templates/navbar.html:88
+#: templates/navbar.html:113
msgid "Logout"
msgstr ""
-#: templates/navbar.html:90
+#: templates/navbar.html:115
msgid "Login"
msgstr ""
-#: templates/navbar.html:111
+#: templates/navbar.html:136
msgid "About InvenTree"
msgstr ""
@@ -8639,15 +9062,15 @@ msgstr ""
msgid "Order selected items"
msgstr ""
-#: templates/stock_table.html:53
+#: templates/stock_table.html:54
msgid "Change status"
msgstr ""
-#: templates/stock_table.html:53
+#: templates/stock_table.html:54
msgid "Change stock status"
msgstr ""
-#: templates/stock_table.html:56
+#: templates/stock_table.html:57
msgid "Delete selected items"
msgstr ""
@@ -8683,35 +9106,35 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:187
+#: users/models.py:189
msgid "Permission set"
msgstr ""
-#: users/models.py:195
+#: users/models.py:197
msgid "Group"
msgstr ""
-#: users/models.py:198
+#: users/models.py:200
msgid "View"
msgstr ""
-#: users/models.py:198
+#: users/models.py:200
msgid "Permission to view items"
msgstr ""
-#: users/models.py:200
+#: users/models.py:202
msgid "Permission to add items"
msgstr ""
-#: users/models.py:202
+#: users/models.py:204
msgid "Change"
msgstr ""
-#: users/models.py:202
+#: users/models.py:204
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:204
+#: users/models.py:206
msgid "Permission to delete items"
msgstr ""
diff --git a/InvenTree/locale/no/LC_MESSAGES/django.po b/InvenTree/locale/no/LC_MESSAGES/django.po
index d440762c4b..4201822661 100644
--- a/InvenTree/locale/no/LC_MESSAGES/django.po
+++ b/InvenTree/locale/no/LC_MESSAGES/django.po
@@ -1,9 +1,10 @@
+#: templates/js/translated/order.js:1973
msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-12-03 10:37+0000\n"
-"PO-Revision-Date: 2021-12-03 11:25\n"
+"POT-Creation-Date: 2021-12-08 23:43+0000\n"
+"PO-Revision-Date: 2021-12-08 23:47\n"
"Last-Translator: \n"
"Language-Team: Norwegian\n"
"Language: no_NO\n"
@@ -34,8 +35,8 @@ msgid "Enter date"
msgstr "Oppgi dato"
#: InvenTree/forms.py:120 build/forms.py:48 build/forms.py:69 build/forms.py:93
-#: order/forms.py:26 order/forms.py:37 order/forms.py:48 order/forms.py:59
-#: order/forms.py:70 part/forms.py:108 templates/account/email_confirm.html:20
+#: order/forms.py:24 order/forms.py:35 order/forms.py:46 order/forms.py:57
+#: part/forms.py:108 templates/account/email_confirm.html:20
#: templates/js/translated/forms.js:595
msgid "Confirm"
msgstr "Bekreft"
@@ -85,8 +86,8 @@ msgstr ""
msgid "Duplicate serial: {n}"
msgstr "Dupliser serie: {n}"
-#: InvenTree/helpers.py:437 order/models.py:318 order/models.py:440
-#: stock/views.py:1264
+#: InvenTree/helpers.py:437 order/models.py:279 order/models.py:420
+#: stock/views.py:1231
msgid "Invalid quantity provided"
msgstr "Ugyldig mengde oppgitt"
@@ -122,7 +123,7 @@ msgstr ""
msgid "Missing external link"
msgstr ""
-#: InvenTree/models.py:132 stock/models.py:1864
+#: InvenTree/models.py:132 stock/models.py:1852
#: templates/js/translated/attachment.js:117
msgid "Attachment"
msgstr "Vedlegg"
@@ -132,7 +133,7 @@ msgid "Select file to attach"
msgstr "Velg fil å legge ved"
#: InvenTree/models.py:139 company/models.py:131 company/models.py:348
-#: company/models.py:564 order/models.py:163 part/models.py:797
+#: company/models.py:564 order/models.py:124 part/models.py:797
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:537
#: templates/js/translated/company.js:826 templates/js/translated/part.js:1258
@@ -140,7 +141,7 @@ msgid "Link"
msgstr ""
#: InvenTree/models.py:140 build/models.py:330 part/models.py:798
-#: stock/models.py:530
+#: stock/models.py:524
msgid "Link to external URL"
msgstr ""
@@ -152,10 +153,10 @@ msgstr "Kommenter"
msgid "File comment"
msgstr "Kommentar til fil"
-#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1185
-#: common/models.py:1186 part/models.py:2205 part/models.py:2225
+#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1213
+#: common/models.py:1214 part/models.py:2205 part/models.py:2225
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2166
+#: templates/js/translated/stock.js:2341
msgid "User"
msgstr "Bruker"
@@ -194,10 +195,15 @@ msgstr "Ugyldig valg"
#: InvenTree/models.py:277 InvenTree/models.py:278 company/models.py:415
#: label/models.py:112 part/models.py:741 part/models.py:2389
-#: report/models.py:181 templates/InvenTree/settings/settings.html:259
+#: plugin/models.py:39 report/models.py:181
+#: templates/InvenTree/settings/mixins/urls.html:11
+#: templates/InvenTree/settings/plugin.html:47
+#: templates/InvenTree/settings/plugin.html:124
+#: templates/InvenTree/settings/plugin_settings.html:23
+#: templates/InvenTree/settings/settings.html:268
#: templates/js/translated/company.js:638 templates/js/translated/part.js:506
#: templates/js/translated/part.js:643 templates/js/translated/part.js:1565
-#: templates/js/translated/stock.js:1959
+#: templates/js/translated/stock.js:2134
msgid "Name"
msgstr "Navn"
@@ -206,22 +212,23 @@ msgstr "Navn"
#: company/models.py:570 company/templates/company/company_base.html:68
#: company/templates/company/manufacturer_part.html:76
#: company/templates/company/supplier_part.html:73 label/models.py:119
-#: order/models.py:161 part/models.py:764 part/templates/part/category.html:70
+#: order/models.py:122 part/models.py:764 part/templates/part/category.html:70
#: part/templates/part/part_base.html:163
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:553 report/models.py:592
#: report/templates/report/inventree_build_order_base.html:118
-#: stock/templates/stock/location.html:89 templates/js/translated/bom.js:215
-#: templates/js/translated/bom.js:428 templates/js/translated/build.js:1621
-#: templates/js/translated/company.js:345
+#: stock/templates/stock/location.html:89
+#: templates/InvenTree/settings/plugin_settings.html:33
+#: templates/js/translated/bom.js:215 templates/js/translated/bom.js:428
+#: templates/js/translated/build.js:1627 templates/js/translated/company.js:345
#: templates/js/translated/company.js:548
-#: templates/js/translated/company.js:837 templates/js/translated/order.js:680
-#: templates/js/translated/order.js:854 templates/js/translated/order.js:1090
+#: templates/js/translated/company.js:837 templates/js/translated/order.js:836
+#: templates/js/translated/order.js:1019 templates/js/translated/order.js:1258
#: templates/js/translated/part.js:565 templates/js/translated/part.js:933
#: templates/js/translated/part.js:1018 templates/js/translated/part.js:1188
#: templates/js/translated/part.js:1584 templates/js/translated/part.js:1653
-#: templates/js/translated/stock.js:1233 templates/js/translated/stock.js:1971
-#: templates/js/translated/stock.js:2016
+#: templates/js/translated/stock.js:1390 templates/js/translated/stock.js:2146
+#: templates/js/translated/stock.js:2191
msgid "Description"
msgstr "Beskrivelse"
@@ -241,83 +248,83 @@ msgstr "Nummer må være gyldig"
msgid "Filename"
msgstr ""
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:689
msgid "German"
msgstr "Tysk"
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:690
msgid "Greek"
msgstr "Gresk"
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:691
msgid "English"
msgstr "Engelsk"
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:692
msgid "Spanish"
msgstr "Spansk"
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:693
msgid "Spanish (Mexican)"
msgstr ""
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:694
msgid "French"
msgstr "Fransk"
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:695
msgid "Hebrew"
msgstr "Hebraisk"
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:696
msgid "Italian"
msgstr "Italiensk"
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:697
msgid "Japanese"
msgstr "Japansk"
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:698
msgid "Korean"
msgstr "Koreansk"
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:699
msgid "Dutch"
msgstr "Nederlandsk"
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:700
msgid "Norwegian"
msgstr "Norsk"
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:701
msgid "Polish"
msgstr "Polsk"
-#: InvenTree/settings.py:683
+#: InvenTree/settings.py:702
msgid "Portugese"
msgstr ""
-#: InvenTree/settings.py:684
+#: InvenTree/settings.py:703
msgid "Russian"
msgstr "Russisk"
-#: InvenTree/settings.py:685
+#: InvenTree/settings.py:704
msgid "Swedish"
msgstr "Svensk"
-#: InvenTree/settings.py:686
+#: InvenTree/settings.py:705
msgid "Thai"
msgstr "Thailandsk"
-#: InvenTree/settings.py:687
+#: InvenTree/settings.py:706
msgid "Turkish"
msgstr "Tyrkisk"
-#: InvenTree/settings.py:688
+#: InvenTree/settings.py:707
msgid "Vietnamese"
msgstr "Vietnamesisk"
-#: InvenTree/settings.py:689
+#: InvenTree/settings.py:708
msgid "Chinese"
msgstr "Kinesisk"
@@ -334,7 +341,7 @@ msgid "InvenTree system health checks failed"
msgstr ""
#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142
-#: InvenTree/status_codes.py:311
+#: InvenTree/status_codes.py:311 templates/js/translated/table_filters.js:313
msgid "Pending"
msgstr ""
@@ -343,6 +350,8 @@ msgid "Placed"
msgstr ""
#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:314
+#: order/templates/order/order_base.html:128
+#: order/templates/order/sales_order_base.html:132
msgid "Complete"
msgstr ""
@@ -361,8 +370,8 @@ msgstr ""
msgid "Returned"
msgstr ""
-#: InvenTree/status_codes.py:143
-#: order/templates/order/sales_order_base.html:148
+#: InvenTree/status_codes.py:143 order/models.py:939
+#: templates/js/translated/order.js:1980 templates/js/translated/order.js:2255
msgid "Shipped"
msgstr ""
@@ -442,7 +451,7 @@ msgstr ""
msgid "Split child item"
msgstr ""
-#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:208
+#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:213
msgid "Sent to customer"
msgstr ""
@@ -522,55 +531,55 @@ msgstr ""
msgid "Password fields must match"
msgstr ""
-#: InvenTree/views.py:883 templates/navbar.html:101
+#: InvenTree/views.py:883 templates/navbar.html:126
msgid "System Information"
msgstr ""
-#: barcodes/api.py:53 barcodes/api.py:150
+#: barcodes/api.py:54 barcodes/api.py:151
msgid "Must provide barcode_data parameter"
msgstr "Må oppgi gyldig strekkode_data parameter"
-#: barcodes/api.py:126
+#: barcodes/api.py:127
msgid "No match found for barcode data"
msgstr "Ingen treff funnet for strekkodedata"
-#: barcodes/api.py:128
+#: barcodes/api.py:129
msgid "Match found for barcode data"
msgstr "Treff funnet for strekkodedata"
-#: barcodes/api.py:153
+#: barcodes/api.py:154
msgid "Must provide stockitem parameter"
msgstr "Må oppgi lagervareparameter"
-#: barcodes/api.py:160
+#: barcodes/api.py:161
msgid "No matching stock item found"
msgstr "Ingen samsvarende lagervare funnet"
-#: barcodes/api.py:190
-msgid "Barcode already matches StockItem object"
+#: barcodes/api.py:191
+msgid "Barcode already matches Stock Item"
msgstr ""
-#: barcodes/api.py:194
-msgid "Barcode already matches StockLocation object"
+#: barcodes/api.py:195
+msgid "Barcode already matches Stock Location"
msgstr ""
-#: barcodes/api.py:198
-msgid "Barcode already matches Part object"
+#: barcodes/api.py:199
+msgid "Barcode already matches Part"
msgstr ""
-#: barcodes/api.py:204 barcodes/api.py:216
-msgid "Barcode hash already matches StockItem object"
+#: barcodes/api.py:205 barcodes/api.py:217
+msgid "Barcode hash already matches Stock Item"
msgstr ""
-#: barcodes/api.py:222
-msgid "Barcode associated with StockItem"
+#: barcodes/api.py:223
+msgid "Barcode associated with Stock Item"
msgstr ""
#: build/forms.py:36 build/models.py:1283
#: build/templates/build/build_base.html:132
-#: build/templates/build/detail.html:35 common/models.py:1225
+#: build/templates/build/detail.html:35 common/models.py:1253
#: company/forms.py:42 company/templates/company/supplier_part.html:251
-#: order/forms.py:102 order/models.py:729 order/models.py:991
+#: order/models.py:794 order/models.py:1205 order/serializers.py:810
#: order/templates/order/order_wizard/match_parts.html:30
#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:223
#: part/forms.py:239 part/forms.py:255 part/models.py:2576
@@ -582,20 +591,23 @@ msgstr ""
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:81
#: report/templates/report/inventree_test_report_base.html:139
-#: stock/forms.py:156 stock/serializers.py:291
+#: stock/forms.py:142 stock/serializers.py:293
#: stock/templates/stock/item_base.html:174
+#: stock/templates/stock/item_base.html:255
+#: stock/templates/stock/item_base.html:263
#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443
-#: templates/js/translated/build.js:235 templates/js/translated/build.js:435
-#: templates/js/translated/build.js:629 templates/js/translated/build.js:639
-#: templates/js/translated/build.js:1015 templates/js/translated/build.js:1362
+#: templates/js/translated/build.js:240 templates/js/translated/build.js:440
+#: templates/js/translated/build.js:634 templates/js/translated/build.js:644
+#: templates/js/translated/build.js:1020 templates/js/translated/build.js:1367
#: templates/js/translated/model_renderers.js:99
-#: templates/js/translated/order.js:891 templates/js/translated/order.js:1204
-#: templates/js/translated/order.js:1282 templates/js/translated/order.js:1289
-#: templates/js/translated/order.js:1378 templates/js/translated/order.js:1478
-#: templates/js/translated/part.js:843 templates/js/translated/part.js:1796
-#: templates/js/translated/part.js:1919 templates/js/translated/part.js:1997
-#: templates/js/translated/stock.js:378 templates/js/translated/stock.js:2151
-#: templates/js/translated/stock.js:2253
+#: templates/js/translated/order.js:101 templates/js/translated/order.js:1056
+#: templates/js/translated/order.js:1578 templates/js/translated/order.js:1859
+#: templates/js/translated/order.js:1947 templates/js/translated/order.js:2036
+#: templates/js/translated/order.js:2150 templates/js/translated/part.js:843
+#: templates/js/translated/part.js:1796 templates/js/translated/part.js:1919
+#: templates/js/translated/part.js:1997 templates/js/translated/stock.js:382
+#: templates/js/translated/stock.js:579 templates/js/translated/stock.js:2326
+#: templates/js/translated/stock.js:2428
msgid "Quantity"
msgstr ""
@@ -603,9 +615,9 @@ msgstr ""
msgid "Enter quantity for build output"
msgstr ""
-#: build/forms.py:41 order/forms.py:96 stock/forms.py:95
-#: stock/serializers.py:312 templates/js/translated/stock.js:225
-#: templates/js/translated/stock.js:379
+#: build/forms.py:41 order/serializers.py:814 stock/forms.py:81
+#: stock/serializers.py:314 templates/js/translated/stock.js:229
+#: templates/js/translated/stock.js:383
msgid "Serial Numbers"
msgstr ""
@@ -640,17 +652,17 @@ msgstr ""
#: build/models.py:137 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:397
+#: templates/js/translated/build.js:402
msgid "Build Order"
msgstr ""
#: build/models.py:138 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
-#: order/templates/order/sales_order_detail.html:42
-#: order/templates/order/so_sidebar.html:7
+#: order/templates/order/sales_order_detail.html:92
+#: order/templates/order/so_sidebar.html:13
#: part/templates/part/part_sidebar.html:20 templates/InvenTree/index.html:221
#: templates/InvenTree/search.html:145
-#: templates/InvenTree/settings/sidebar.html:42 users/models.py:44
+#: templates/InvenTree/settings/sidebar.html:43 users/models.py:44
msgid "Build Orders"
msgstr ""
@@ -658,13 +670,13 @@ msgstr ""
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:199 order/models.py:249 order/models.py:556
-#: order/models.py:736 part/models.py:2585
+#: build/models.py:199 order/models.py:210 order/models.py:536
+#: order/models.py:801 part/models.py:2585
#: part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1119
-#: templates/js/translated/order.js:885 templates/js/translated/order.js:1472
+#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1124
+#: templates/js/translated/order.js:1050 templates/js/translated/order.js:2144
msgid "Reference"
msgstr ""
@@ -683,7 +695,7 @@ msgstr ""
#: build/models.py:225 build/templates/build/build_base.html:77
#: build/templates/build/detail.html:30 company/models.py:705
-#: order/models.py:789 order/models.py:860
+#: order/models.py:854 order/models.py:928
#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357
#: part/models.py:2151 part/models.py:2167 part/models.py:2186
#: part/models.py:2203 part/models.py:2305 part/models.py:2427
@@ -698,14 +710,16 @@ msgstr ""
#: templates/email/build_order_required_stock.html:17
#: templates/email/low_stock_notification.html:16
#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:214
-#: templates/js/translated/bom.js:393 templates/js/translated/build.js:620
-#: templates/js/translated/build.js:988 templates/js/translated/build.js:1359
-#: templates/js/translated/build.js:1626 templates/js/translated/company.js:489
-#: templates/js/translated/company.js:746 templates/js/translated/order.js:426
-#: templates/js/translated/order.js:839 templates/js/translated/order.js:1456
-#: templates/js/translated/part.js:918 templates/js/translated/part.js:999
-#: templates/js/translated/part.js:1166 templates/js/translated/stock.js:590
-#: templates/js/translated/stock.js:1190 templates/js/translated/stock.js:2241
+#: templates/js/translated/bom.js:393 templates/js/translated/build.js:625
+#: templates/js/translated/build.js:993 templates/js/translated/build.js:1364
+#: templates/js/translated/build.js:1632 templates/js/translated/company.js:489
+#: templates/js/translated/company.js:746 templates/js/translated/order.js:84
+#: templates/js/translated/order.js:586 templates/js/translated/order.js:1004
+#: templates/js/translated/order.js:1576 templates/js/translated/order.js:1933
+#: templates/js/translated/order.js:2128 templates/js/translated/part.js:918
+#: templates/js/translated/part.js:999 templates/js/translated/part.js:1166
+#: templates/js/translated/stock.js:553 templates/js/translated/stock.js:747
+#: templates/js/translated/stock.js:1347 templates/js/translated/stock.js:2416
msgid "Part"
msgstr ""
@@ -721,7 +735,8 @@ msgstr ""
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:247 templates/js/translated/build.js:1347
+#: build/models.py:247 templates/js/translated/build.js:1352
+#: templates/js/translated/order.js:1564
msgid "Source Location"
msgstr ""
@@ -761,7 +776,7 @@ msgstr ""
msgid "Build status code"
msgstr ""
-#: build/models.py:285 stock/models.py:534
+#: build/models.py:285 stock/models.py:528
msgid "Batch Code"
msgstr ""
@@ -769,12 +784,12 @@ msgstr ""
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:292 order/models.py:165 part/models.py:936
-#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1103
+#: build/models.py:292 order/models.py:126 part/models.py:936
+#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1271
msgid "Creation Date"
msgstr ""
-#: build/models.py:296 order/models.py:578
+#: build/models.py:296 order/models.py:558
msgid "Target completion date"
msgstr ""
@@ -782,8 +797,8 @@ msgstr ""
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/models.py:300 order/models.py:291
-#: templates/js/translated/build.js:1697
+#: build/models.py:300 order/models.py:252
+#: templates/js/translated/build.js:1703
msgid "Completion Date"
msgstr ""
@@ -791,7 +806,7 @@ msgstr ""
msgid "completed by"
msgstr ""
-#: build/models.py:314 templates/js/translated/build.js:1668
+#: build/models.py:314 templates/js/translated/build.js:1674
msgid "Issued by"
msgstr ""
@@ -800,11 +815,11 @@ msgid "User who issued this build order"
msgstr ""
#: build/models.py:323 build/templates/build/build_base.html:185
-#: build/templates/build/detail.html:116 order/models.py:179
-#: order/templates/order/order_base.html:158
-#: order/templates/order/sales_order_base.html:162 part/models.py:940
+#: build/templates/build/detail.html:116 order/models.py:140
+#: order/templates/order/order_base.html:170
+#: order/templates/order/sales_order_base.html:182 part/models.py:940
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:1680 templates/js/translated/order.js:699
+#: templates/js/translated/build.js:1686 templates/js/translated/order.js:864
msgid "Responsible"
msgstr ""
@@ -815,7 +830,7 @@ msgstr ""
#: build/models.py:329 build/templates/build/detail.html:102
#: company/templates/company/manufacturer_part.html:102
#: company/templates/company/supplier_part.html:126
-#: part/templates/part/part_base.html:354 stock/models.py:528
+#: part/templates/part/part_base.html:354 stock/models.py:522
#: stock/templates/stock/item_base.html:374
msgid "External Link"
msgstr ""
@@ -823,18 +838,19 @@ msgstr ""
#: build/models.py:334 build/serializers.py:201
#: build/templates/build/sidebar.html:21 company/models.py:142
#: company/models.py:577 company/templates/company/sidebar.html:25
-#: order/models.py:183 order/models.py:738
+#: order/models.py:144 order/models.py:803 order/models.py:1049
#: order/templates/order/po_sidebar.html:11
-#: order/templates/order/so_sidebar.html:11 part/models.py:925
+#: order/templates/order/so_sidebar.html:17 part/models.py:925
#: part/templates/part/detail.html:116 part/templates/part/part_sidebar.html:50
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/forms.py:154 stock/forms.py:204 stock/forms.py:238 stock/models.py:600
-#: stock/models.py:1764 stock/models.py:1870 stock/serializers.py:330
-#: stock/serializers.py:588 stock/templates/stock/stock_sidebar.html:21
+#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:594
+#: stock/models.py:1752 stock/models.py:1858 stock/serializers.py:332
+#: stock/serializers.py:624 stock/serializers.py:711
+#: stock/templates/stock/stock_sidebar.html:21
#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599
-#: templates/js/translated/company.js:842 templates/js/translated/order.js:984
-#: templates/js/translated/order.js:1582 templates/js/translated/stock.js:973
-#: templates/js/translated/stock.js:1452
+#: templates/js/translated/company.js:842 templates/js/translated/order.js:1149
+#: templates/js/translated/order.js:1445 templates/js/translated/order.js:2280
+#: templates/js/translated/stock.js:1130 templates/js/translated/stock.js:1616
msgid "Notes"
msgstr ""
@@ -867,7 +883,7 @@ msgstr ""
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1133 order/models.py:964
+#: build/models.py:1133 order/models.py:1165
msgid "Allocation quantity must be greater than zero"
msgstr ""
@@ -880,8 +896,8 @@ msgid "Selected stock item not found in BOM"
msgstr ""
#: build/models.py:1253 stock/templates/stock/item_base.html:346
-#: templates/InvenTree/search.html:143 templates/js/translated/build.js:1599
-#: templates/navbar.html:33
+#: templates/InvenTree/search.html:143 templates/js/translated/build.js:1605
+#: templates/navbar.html:35
msgid "Build"
msgstr ""
@@ -889,14 +905,17 @@ msgstr ""
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1270 build/serializers.py:328
+#: build/models.py:1270 build/serializers.py:328 order/serializers.py:690
+#: order/serializers.py:708 stock/serializers.py:562
#: stock/templates/stock/item_base.html:8
#: stock/templates/stock/item_base.html:16
#: stock/templates/stock/item_base.html:368
-#: templates/js/translated/build.js:408 templates/js/translated/build.js:413
-#: templates/js/translated/build.js:1361 templates/js/translated/build.js:1742
-#: templates/js/translated/order.js:1177 templates/js/translated/order.js:1182
-#: templates/js/translated/stock.js:2102
+#: templates/js/translated/build.js:413 templates/js/translated/build.js:418
+#: templates/js/translated/build.js:1366 templates/js/translated/build.js:1748
+#: templates/js/translated/order.js:85 templates/js/translated/order.js:1577
+#: templates/js/translated/order.js:1832 templates/js/translated/order.js:1837
+#: templates/js/translated/order.js:1940 templates/js/translated/order.js:2030
+#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:2277
msgid "Stock Item"
msgstr ""
@@ -936,16 +955,17 @@ msgstr ""
msgid "This build output is not fully allocated"
msgstr ""
-#: build/serializers.py:190 order/serializers.py:228 order/serializers.py:296
-#: stock/forms.py:236 stock/serializers.py:323 stock/serializers.py:690
+#: build/serializers.py:190 order/serializers.py:226 order/serializers.py:294
+#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:813
#: stock/templates/stock/item_base.html:314
#: templates/js/translated/barcode.js:384
-#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:420
-#: templates/js/translated/build.js:1027 templates/js/translated/order.js:348
-#: templates/js/translated/order.js:1189 templates/js/translated/order.js:1297
-#: templates/js/translated/order.js:1303 templates/js/translated/part.js:177
-#: templates/js/translated/stock.js:592 templates/js/translated/stock.js:1333
-#: templates/js/translated/stock.js:2043
+#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:425
+#: templates/js/translated/build.js:1032 templates/js/translated/order.js:508
+#: templates/js/translated/order.js:1844 templates/js/translated/order.js:1955
+#: templates/js/translated/order.js:1963 templates/js/translated/order.js:2044
+#: templates/js/translated/part.js:177 templates/js/translated/stock.js:555
+#: templates/js/translated/stock.js:749 templates/js/translated/stock.js:1497
+#: templates/js/translated/stock.js:2218
msgid "Location"
msgstr ""
@@ -954,12 +974,12 @@ msgid "Location for completed build outputs"
msgstr ""
#: build/serializers.py:197 build/templates/build/build_base.html:137
-#: build/templates/build/detail.html:63 order/models.py:572
-#: order/serializers.py:249 stock/templates/stock/item_base.html:180
-#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1655
-#: templates/js/translated/order.js:431 templates/js/translated/order.js:1095
-#: templates/js/translated/stock.js:1308 templates/js/translated/stock.js:2120
-#: templates/js/translated/stock.js:2269
+#: build/templates/build/detail.html:63 order/models.py:552
+#: order/serializers.py:247 stock/templates/stock/item_base.html:180
+#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1661
+#: templates/js/translated/order.js:591 templates/js/translated/order.js:840
+#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1472
+#: templates/js/translated/stock.js:2295 templates/js/translated/stock.js:2444
msgid "Status"
msgstr ""
@@ -984,16 +1004,16 @@ msgstr ""
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:334
+#: build/serializers.py:334 stock/serializers.py:569
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:348 order/models.py:316 order/serializers.py:242
-#: stock/models.py:371 stock/models.py:1093 stock/serializers.py:303
+#: build/serializers.py:348 order/models.py:277 order/serializers.py:240
+#: stock/models.py:365 stock/models.py:1081 stock/serializers.py:305
msgid "Quantity must be greater than zero"
msgstr ""
-#: build/serializers.py:390
+#: build/serializers.py:390 order/serializers.py:741
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
@@ -1006,7 +1026,7 @@ msgstr ""
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:431
+#: build/serializers.py:431 order/serializers.py:984
msgid "Allocation items must be provided"
msgstr ""
@@ -1079,11 +1099,11 @@ msgstr ""
#: build/templates/build/build_base.html:146
#: build/templates/build/detail.html:132
-#: order/templates/order/order_base.html:144
-#: order/templates/order/sales_order_base.html:141
+#: order/templates/order/order_base.html:156
+#: order/templates/order/sales_order_base.html:163
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:1692 templates/js/translated/order.js:689
-#: templates/js/translated/order.js:1108
+#: templates/js/translated/build.js:1698 templates/js/translated/order.js:854
+#: templates/js/translated/order.js:1276
msgid "Target Date"
msgstr ""
@@ -1096,28 +1116,28 @@ msgstr ""
#: build/templates/build/build_base.html:196
#: order/templates/order/order_base.html:98
#: order/templates/order/sales_order_base.html:93
-#: templates/js/translated/table_filters.js:294
-#: templates/js/translated/table_filters.js:322
-#: templates/js/translated/table_filters.js:339
+#: templates/js/translated/table_filters.js:299
+#: templates/js/translated/table_filters.js:340
+#: templates/js/translated/table_filters.js:361
msgid "Overdue"
msgstr ""
#: build/templates/build/build_base.html:158
#: build/templates/build/detail.html:68 build/templates/build/detail.html:143
-#: templates/js/translated/build.js:1641
-#: templates/js/translated/table_filters.js:304
+#: order/templates/order/sales_order_base.html:170
+#: templates/js/translated/build.js:1647
+#: templates/js/translated/table_filters.js:370
msgid "Completed"
msgstr ""
#: build/templates/build/build_base.html:171
-#: build/templates/build/detail.html:95 order/models.py:857
-#: order/templates/order/sales_order_base.html:9
+#: build/templates/build/detail.html:95 order/models.py:925
+#: order/models.py:1021 order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
-#: order/templates/order/sales_order_ship.html:25
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:308
-#: templates/js/translated/order.js:1050
+#: templates/js/translated/order.js:1218
msgid "Sales Order"
msgstr ""
@@ -1191,8 +1211,8 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:50 order/models.py:811 stock/forms.py:150
-#: templates/js/translated/order.js:432 templates/js/translated/order.js:973
+#: build/templates/build/detail.html:50 order/models.py:876 stock/forms.py:136
+#: templates/js/translated/order.js:592 templates/js/translated/order.js:1138
msgid "Destination"
msgstr ""
@@ -1200,22 +1220,22 @@ msgstr ""
msgid "Destination location not specified"
msgstr ""
-#: build/templates/build/detail.html:74 templates/js/translated/build.js:647
+#: build/templates/build/detail.html:74 templates/js/translated/build.js:652
msgid "Allocated Parts"
msgstr ""
#: build/templates/build/detail.html:81
#: stock/templates/stock/item_base.html:332
-#: templates/js/translated/stock.js:1322 templates/js/translated/stock.js:2276
+#: templates/js/translated/stock.js:1486 templates/js/translated/stock.js:2451
#: templates/js/translated/table_filters.js:151
-#: templates/js/translated/table_filters.js:233
+#: templates/js/translated/table_filters.js:238
msgid "Batch"
msgstr ""
#: build/templates/build/detail.html:127
-#: order/templates/order/order_base.html:131
-#: order/templates/order/sales_order_base.html:135
-#: templates/js/translated/build.js:1663
+#: order/templates/order/order_base.html:143
+#: order/templates/order/sales_order_base.html:157
+#: templates/js/translated/build.js:1669
msgid "Created"
msgstr ""
@@ -1235,7 +1255,7 @@ msgstr ""
msgid "Allocate Stock to Build"
msgstr ""
-#: build/templates/build/detail.html:177 templates/js/translated/build.js:1202
+#: build/templates/build/detail.html:177 templates/js/translated/build.js:1207
msgid "Unallocate stock"
msgstr ""
@@ -1257,7 +1277,7 @@ msgstr ""
#: build/templates/build/detail.html:185
#: company/templates/company/detail.html:38
-#: company/templates/company/detail.html:85 order/views.py:509
+#: company/templates/company/detail.html:85 order/views.py:463
#: part/templates/part/category.html:173
msgid "Order Parts"
msgstr ""
@@ -1309,8 +1329,8 @@ msgstr ""
#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:60
-#: order/templates/order/sales_order_detail.html:52
-#: order/templates/order/so_sidebar.html:9 part/templates/part/detail.html:193
+#: order/templates/order/sales_order_detail.html:107
+#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:193
#: part/templates/part/part_sidebar.html:48 stock/templates/stock/item.html:95
#: stock/templates/stock/stock_sidebar.html:19
msgid "Attachments"
@@ -1325,8 +1345,8 @@ msgstr ""
#: company/templates/company/detail.html:215
#: order/templates/order/purchase_order_detail.html:80
#: order/templates/order/purchase_order_detail.html:108
-#: order/templates/order/sales_order_detail.html:72
-#: order/templates/order/sales_order_detail.html:99
+#: order/templates/order/sales_order_detail.html:127
+#: order/templates/order/sales_order_detail.html:186
#: part/templates/part/detail.html:120 stock/templates/stock/item.html:115
#: stock/templates/stock/item.html:205
msgid "Edit Notes"
@@ -1384,7 +1404,7 @@ msgstr ""
msgid "Maximum output quantity is "
msgstr ""
-#: build/views.py:122 stock/serializers.py:361 stock/views.py:1290
+#: build/views.py:122 stock/serializers.py:363 stock/views.py:1257
msgid "Serial numbers already exist"
msgstr ""
@@ -1400,7 +1420,7 @@ msgstr ""
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:219 stock/views.py:385
+#: build/views.py:219 stock/views.py:352
msgid "Check the confirmation box"
msgstr ""
@@ -1469,7 +1489,7 @@ msgstr ""
msgid "Select {name} file to upload"
msgstr ""
-#: common/models.py:340 common/models.py:970 common/models.py:1178
+#: common/models.py:340 common/models.py:998 common/models.py:1206
msgid "Settings key (must be unique - case insensitive"
msgstr ""
@@ -1557,7 +1577,7 @@ msgstr ""
msgid "Allow download of remote images and files from external URL"
msgstr ""
-#: common/models.py:649 templates/InvenTree/settings/sidebar.html:30
+#: common/models.py:649 templates/InvenTree/settings/sidebar.html:31
msgid "Barcode Support"
msgstr ""
@@ -1623,7 +1643,7 @@ msgstr ""
#: common/models.py:703 part/models.py:2429 report/models.py:187
#: templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:373
+#: templates/js/translated/table_filters.js:404
msgid "Template"
msgstr ""
@@ -1633,7 +1653,7 @@ msgstr ""
#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:956
#: templates/js/translated/table_filters.js:168
-#: templates/js/translated/table_filters.js:385
+#: templates/js/translated/table_filters.js:416
msgid "Assembly"
msgstr ""
@@ -1642,7 +1662,7 @@ msgid "Parts can be assembled from other components by default"
msgstr ""
#: common/models.py:717 part/models.py:894
-#: templates/js/translated/table_filters.js:389
+#: templates/js/translated/table_filters.js:420
msgid "Component"
msgstr ""
@@ -1659,7 +1679,7 @@ msgid "Parts are purchaseable by default"
msgstr ""
#: common/models.py:731 part/models.py:910
-#: templates/js/translated/table_filters.js:397
+#: templates/js/translated/table_filters.js:428
msgid "Salable"
msgstr ""
@@ -1670,7 +1690,7 @@ msgstr ""
#: common/models.py:738 part/models.py:900
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:100
-#: templates/js/translated/table_filters.js:401
+#: templates/js/translated/table_filters.js:432
msgid "Trackable"
msgstr ""
@@ -1932,230 +1952,262 @@ msgstr ""
msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:1001
+#: common/models.py:961
+msgid "Enable URL integration"
+msgstr ""
+
+#: common/models.py:962
+msgid "Enable plugins to add URL routes"
+msgstr ""
+
+#: common/models.py:968
+msgid "Enable navigation integration"
+msgstr ""
+
+#: common/models.py:969
+msgid "Enable plugins to integrate into navigation"
+msgstr ""
+
+#: common/models.py:975
+msgid "Enable global setting integration"
+msgstr ""
+
+#: common/models.py:976
+msgid "Enable plugins to integrate into inventree global settings"
+msgstr ""
+
+#: common/models.py:982
+msgid "Enable app integration"
+msgstr ""
+
+#: common/models.py:983
+msgid "Enable plugins to add apps"
+msgstr ""
+
+#: common/models.py:1029
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:1002
+#: common/models.py:1030
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:1007
+#: common/models.py:1035
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:1008
+#: common/models.py:1036
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:1013
+#: common/models.py:1041
msgid "Show latest parts"
msgstr ""
-#: common/models.py:1014
+#: common/models.py:1042
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:1019
+#: common/models.py:1047
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:1020
+#: common/models.py:1048
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:1026
+#: common/models.py:1054
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1027
+#: common/models.py:1055
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1032
+#: common/models.py:1060
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:1033
+#: common/models.py:1061
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:1038
+#: common/models.py:1066
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:1039
+#: common/models.py:1067
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:1044
+#: common/models.py:1072
msgid "Show low stock"
msgstr ""
-#: common/models.py:1045
+#: common/models.py:1073
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:1050
+#: common/models.py:1078
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:1051
+#: common/models.py:1079
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:1056
+#: common/models.py:1084
msgid "Show needed stock"
msgstr ""
-#: common/models.py:1057
+#: common/models.py:1085
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1062
+#: common/models.py:1090
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1063
+#: common/models.py:1091
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1068
+#: common/models.py:1096
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1069
+#: common/models.py:1097
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1074
+#: common/models.py:1102
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1075
+#: common/models.py:1103
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:1080
+#: common/models.py:1108
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:1081
+#: common/models.py:1109
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:1086
+#: common/models.py:1114
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:1087
+#: common/models.py:1115
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:1092
+#: common/models.py:1120
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:1093
+#: common/models.py:1121
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:1098
+#: common/models.py:1126
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:1099
+#: common/models.py:1127
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:1104
+#: common/models.py:1132
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:1105
+#: common/models.py:1133
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:1111
+#: common/models.py:1139
msgid "Inline label display"
msgstr ""
-#: common/models.py:1112
+#: common/models.py:1140
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1118
+#: common/models.py:1146
msgid "Inline report display"
msgstr ""
-#: common/models.py:1119
+#: common/models.py:1147
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1125
+#: common/models.py:1153
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:1126
+#: common/models.py:1154
msgid "Number of results to show in search preview window"
msgstr ""
-#: common/models.py:1132
+#: common/models.py:1160
msgid "Search Show Stock"
msgstr ""
-#: common/models.py:1133
+#: common/models.py:1161
msgid "Display stock levels in search preview window"
msgstr ""
-#: common/models.py:1139
+#: common/models.py:1167
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:1140
+#: common/models.py:1168
msgid "Hide inactive parts in search preview window"
msgstr ""
-#: common/models.py:1146
+#: common/models.py:1174
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:1147
+#: common/models.py:1175
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:1153
+#: common/models.py:1181
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1154
+#: common/models.py:1182
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1160
+#: common/models.py:1188
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:1161
+#: common/models.py:1189
msgid "InvenTree navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:1226 company/forms.py:43
+#: common/models.py:1254 company/forms.py:43
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1233 company/serializers.py:264
+#: common/models.py:1261 company/serializers.py:264
#: company/templates/company/supplier_part.html:256
#: templates/js/translated/part.js:852 templates/js/translated/part.js:1801
msgid "Price"
msgstr ""
-#: common/models.py:1234
+#: common/models.py:1262
msgid "Unit price at specified quantity"
msgstr ""
#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49
-#: order/templates/order/purchase_order_detail.html:24 order/views.py:289
+#: order/templates/order/purchase_order_detail.html:24 order/views.py:243
#: part/templates/part/bom_upload/upload_file.html:52
#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:212
#: part/views.py:858
@@ -2163,7 +2215,7 @@ msgid "Upload File"
msgstr ""
#: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52
-#: order/views.py:290 part/templates/part/bom_upload/match_fields.html:52
+#: order/views.py:244 part/templates/part/bom_upload/match_fields.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:45
#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:213
#: part/views.py:859
@@ -2195,6 +2247,7 @@ msgid "Previous Step"
msgstr ""
#: company/forms.py:24 part/forms.py:46
+#: templates/InvenTree/settings/mixins/urls.html:12
msgid "URL"
msgstr ""
@@ -2211,6 +2264,7 @@ msgid "Description of the company"
msgstr ""
#: company/models.py:112 company/templates/company/company_base.html:97
+#: templates/InvenTree/settings/plugin_settings.html:55
#: templates/js/translated/company.js:349
msgid "Website"
msgstr ""
@@ -2285,7 +2339,7 @@ msgid "Does this company manufacture parts?"
msgstr ""
#: company/models.py:152 company/serializers.py:270
-#: company/templates/company/company_base.html:103 stock/serializers.py:177
+#: company/templates/company/company_base.html:103 stock/serializers.py:179
msgid "Currency"
msgstr ""
@@ -2293,12 +2347,12 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:320 company/models.py:535 stock/models.py:474
+#: company/models.py:320 company/models.py:535 stock/models.py:468
#: stock/templates/stock/item_base.html:135
msgid "Base Part"
msgstr ""
-#: company/models.py:324 company/models.py:539 order/views.py:912
+#: company/models.py:324 company/models.py:539
msgid "Select part"
msgstr ""
@@ -2319,7 +2373,7 @@ msgstr ""
#: company/models.py:342 company/templates/company/manufacturer_part.html:96
#: company/templates/company/supplier_part.html:105
#: templates/js/translated/company.js:530
-#: templates/js/translated/company.js:815 templates/js/translated/order.js:873
+#: templates/js/translated/company.js:815 templates/js/translated/order.js:1038
#: templates/js/translated/part.js:243 templates/js/translated/part.js:832
msgid "MPN"
msgstr ""
@@ -2349,8 +2403,8 @@ msgstr ""
#: company/models.py:422
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:1857 templates/js/translated/company.js:644
-#: templates/js/translated/part.js:652 templates/js/translated/stock.js:960
+#: stock/models.py:1845 templates/js/translated/company.js:644
+#: templates/js/translated/part.js:652 templates/js/translated/stock.js:1117
msgid "Value"
msgstr ""
@@ -2360,7 +2414,7 @@ msgstr ""
#: company/models.py:429 part/models.py:882 part/models.py:2397
#: part/templates/part/part_base.html:288
-#: templates/InvenTree/settings/settings.html:264
+#: templates/InvenTree/settings/settings.html:273
#: templates/js/translated/company.js:650 templates/js/translated/part.js:658
msgid "Units"
msgstr ""
@@ -2374,12 +2428,12 @@ msgid "Linked manufacturer part must reference the same base part"
msgstr ""
#: company/models.py:545 company/templates/company/company_base.html:78
-#: company/templates/company/supplier_part.html:87 order/models.py:263
+#: company/templates/company/supplier_part.html:87 order/models.py:224
#: order/templates/order/order_base.html:112
#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219
#: part/bom.py:247 stock/templates/stock/item_base.html:398
#: templates/js/translated/company.js:337
-#: templates/js/translated/company.js:771 templates/js/translated/order.js:667
+#: templates/js/translated/company.js:771 templates/js/translated/order.js:823
#: templates/js/translated/part.js:213 templates/js/translated/part.js:800
msgid "Supplier"
msgstr ""
@@ -2389,7 +2443,7 @@ msgid "Select supplier"
msgstr ""
#: company/models.py:551 company/templates/company/supplier_part.html:91
-#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:860
+#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:1025
#: templates/js/translated/part.js:224 templates/js/translated/part.js:818
msgid "SKU"
msgstr ""
@@ -2425,8 +2479,8 @@ msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:582 company/templates/company/supplier_part.html:112
-#: stock/models.py:497 stock/templates/stock/item_base.html:339
-#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1448
+#: stock/models.py:491 stock/templates/stock/item_base.html:339
+#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1612
msgid "Packaging"
msgstr ""
@@ -2457,7 +2511,7 @@ msgid "Company"
msgstr ""
#: company/templates/company/company_base.html:22
-#: templates/js/translated/order.js:121
+#: templates/js/translated/order.js:279
msgid "Create Purchase Order"
msgstr ""
@@ -2493,11 +2547,12 @@ msgstr ""
msgid "Download image from URL"
msgstr ""
-#: company/templates/company/company_base.html:83 order/models.py:567
-#: order/templates/order/sales_order_base.html:115 stock/models.py:515
-#: stock/models.py:516 stock/templates/stock/item_base.html:291
-#: templates/js/translated/company.js:329 templates/js/translated/order.js:1072
-#: templates/js/translated/stock.js:2084
+#: company/templates/company/company_base.html:83 order/models.py:547
+#: order/templates/order/sales_order_base.html:115 stock/models.py:509
+#: stock/models.py:510 stock/serializers.py:610
+#: stock/templates/stock/item_base.html:291
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1240
+#: templates/js/translated/stock.js:2259
msgid "Customer"
msgstr ""
@@ -2580,7 +2635,7 @@ msgstr ""
#: order/templates/order/purchase_orders.html:12
#: part/templates/part/detail.html:64 part/templates/part/part_sidebar.html:33
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:203
-#: templates/InvenTree/settings/sidebar.html:44 templates/navbar.html:45
+#: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47
#: users/models.py:45
msgid "Purchase Orders"
msgstr ""
@@ -2602,7 +2657,7 @@ msgstr ""
#: order/templates/order/sales_orders.html:15
#: part/templates/part/detail.html:87 part/templates/part/part_sidebar.html:37
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:223
-#: templates/InvenTree/settings/sidebar.html:46 templates/navbar.html:56
+#: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58
#: users/models.py:46
msgid "Sales Orders"
msgstr ""
@@ -2618,7 +2673,7 @@ msgid "New Sales Order"
msgstr ""
#: company/templates/company/detail.html:168
-#: templates/js/translated/build.js:999
+#: templates/js/translated/build.js:1004
msgid "Assigned Stock"
msgstr ""
@@ -2644,7 +2699,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:14 company/views.py:55
#: part/templates/part/prices.html:167 templates/InvenTree/search.html:184
-#: templates/navbar.html:44
+#: templates/navbar.html:46
msgid "Manufacturers"
msgstr ""
@@ -2673,7 +2728,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:114
#: company/templates/company/supplier_part.html:15 company/views.py:49
#: part/templates/part/part_sidebar.html:31 part/templates/part/prices.html:163
-#: templates/InvenTree/search.html:194 templates/navbar.html:43
+#: templates/InvenTree/search.html:194 templates/navbar.html:45
msgid "Suppliers"
msgstr ""
@@ -2687,7 +2742,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:254
#: part/templates/part/detail.html:344 part/templates/part/detail.html:372
#: templates/js/translated/company.js:425 templates/js/translated/helpers.js:31
-#: users/models.py:204
+#: users/models.py:206
msgid "Delete"
msgstr ""
@@ -2739,9 +2794,9 @@ msgid "Assigned Stock Items"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:482
+#: company/templates/company/supplier_part.html:24 stock/models.py:476
#: stock/templates/stock/item_base.html:403
-#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1405
+#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1569
msgid "Supplier Part"
msgstr ""
@@ -2767,7 +2822,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:142
#: part/templates/part/detail.html:21 stock/templates/stock/location.html:163
-#: templates/js/translated/stock.js:355
+#: templates/js/translated/stock.js:359
msgid "New Stock Item"
msgstr ""
@@ -2817,11 +2872,11 @@ msgstr ""
#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:14
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:156
-#: templates/InvenTree/settings/sidebar.html:40
+#: templates/InvenTree/settings/sidebar.html:41
#: templates/js/translated/bom.js:216 templates/js/translated/part.js:434
#: templates/js/translated/part.js:569 templates/js/translated/part.js:1059
-#: templates/js/translated/part.js:1220 templates/js/translated/stock.js:591
-#: templates/js/translated/stock.js:1244 templates/navbar.html:26
+#: templates/js/translated/part.js:1220 templates/js/translated/stock.js:748
+#: templates/js/translated/stock.js:1401 templates/navbar.html:28
msgid "Stock"
msgstr ""
@@ -2844,7 +2899,7 @@ msgstr ""
#: stock/templates/stock/location.html:147
#: stock/templates/stock/location.html:159
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1983
+#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:2158
#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
msgid "Stock Items"
msgstr ""
@@ -2858,7 +2913,7 @@ msgid "New Manufacturer"
msgstr ""
#: company/views.py:61 templates/InvenTree/search.html:214
-#: templates/navbar.html:55
+#: templates/navbar.html:57
msgid "Customers"
msgstr ""
@@ -2960,284 +3015,374 @@ msgstr ""
msgid "Part query filters (comma-separated value of key=value pairs)"
msgstr ""
-#: order/forms.py:26 order/templates/order/order_base.html:52
+#: order/forms.py:24 order/templates/order/order_base.html:52
msgid "Place order"
msgstr ""
-#: order/forms.py:37 order/templates/order/order_base.html:60
+#: order/forms.py:35 order/templates/order/order_base.html:60
msgid "Mark order as complete"
msgstr ""
-#: order/forms.py:48 order/forms.py:59 order/templates/order/order_base.html:47
+#: order/forms.py:46 order/forms.py:57 order/templates/order/order_base.html:47
#: order/templates/order/sales_order_base.html:60
msgid "Cancel order"
msgstr ""
-#: order/forms.py:70
-msgid "Ship order"
-msgstr ""
-
-#: order/forms.py:98
-msgid "Enter stock item serial numbers"
-msgstr ""
-
-#: order/forms.py:104
-msgid "Enter quantity of stock items"
-msgstr ""
-
-#: order/models.py:161
+#: order/models.py:122
msgid "Order description"
msgstr ""
-#: order/models.py:163
+#: order/models.py:124
msgid "Link to external page"
msgstr ""
-#: order/models.py:171
+#: order/models.py:132
msgid "Created By"
msgstr ""
-#: order/models.py:178
+#: order/models.py:139
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:183
+#: order/models.py:144
msgid "Order notes"
msgstr ""
-#: order/models.py:250 order/models.py:557
+#: order/models.py:211 order/models.py:537
msgid "Order reference"
msgstr ""
-#: order/models.py:255 order/models.py:572
+#: order/models.py:216 order/models.py:552
msgid "Purchase order status"
msgstr ""
-#: order/models.py:264
+#: order/models.py:225
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:267 order/templates/order/order_base.html:118
-#: templates/js/translated/order.js:676
+#: order/models.py:228 order/templates/order/order_base.html:118
+#: templates/js/translated/order.js:832
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:267
+#: order/models.py:228
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:274
+#: order/models.py:235
msgid "received by"
msgstr ""
-#: order/models.py:279
+#: order/models.py:240
msgid "Issue Date"
msgstr ""
-#: order/models.py:280
+#: order/models.py:241
msgid "Date order was issued"
msgstr ""
-#: order/models.py:285
+#: order/models.py:246
msgid "Target Delivery Date"
msgstr ""
-#: order/models.py:286
+#: order/models.py:247
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:292
+#: order/models.py:253
msgid "Date order was completed"
msgstr ""
-#: order/models.py:321
+#: order/models.py:282
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:431
+#: order/models.py:411
msgid "Quantity must be an integer"
msgstr ""
-#: order/models.py:435
+#: order/models.py:415
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:568
+#: order/models.py:548
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:574
+#: order/models.py:554
msgid "Customer Reference "
msgstr ""
-#: order/models.py:574
+#: order/models.py:554
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:579
+#: order/models.py:559
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:582 templates/js/translated/order.js:1113
+#: order/models.py:562 order/models.py:1026
+#: templates/js/translated/order.js:1281 templates/js/translated/order.js:1429
msgid "Shipment Date"
msgstr ""
-#: order/models.py:589
+#: order/models.py:569
msgid "shipped by"
msgstr ""
-#: order/models.py:633
-msgid "SalesOrder cannot be shipped as it is not currently pending"
+#: order/models.py:634
+msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:730
+#: order/models.py:639
+msgid "Only a pending order can be marked as complete"
+msgstr ""
+
+#: order/models.py:643
+msgid "Order cannot be completed as there are incomplete shipments"
+msgstr ""
+
+#: order/models.py:647
+msgid "Order cannot be completed as there are incomplete line items"
+msgstr ""
+
+#: order/models.py:795
msgid "Item quantity"
msgstr ""
-#: order/models.py:736
+#: order/models.py:801
msgid "Line item reference"
msgstr ""
-#: order/models.py:738
+#: order/models.py:803
msgid "Line item notes"
msgstr ""
-#: order/models.py:768 order/models.py:856
-#: templates/js/translated/order.js:1165
+#: order/models.py:833 order/models.py:924 order/models.py:1020
+#: templates/js/translated/order.js:1820
msgid "Order"
msgstr ""
-#: order/models.py:769 order/templates/order/order_base.html:9
+#: order/models.py:834 order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:353
-#: templates/js/translated/order.js:638 templates/js/translated/part.js:775
-#: templates/js/translated/stock.js:1382 templates/js/translated/stock.js:2065
+#: templates/js/translated/order.js:801 templates/js/translated/part.js:775
+#: templates/js/translated/stock.js:1546 templates/js/translated/stock.js:2240
msgid "Purchase Order"
msgstr ""
-#: order/models.py:790
+#: order/models.py:855
msgid "Supplier part"
msgstr ""
-#: order/models.py:797 order/templates/order/order_base.html:151
-#: order/templates/order/sales_order_base.html:155
-#: templates/js/translated/order.js:429 templates/js/translated/order.js:953
+#: order/models.py:862 order/templates/order/order_base.html:163
+#: templates/js/translated/order.js:589 templates/js/translated/order.js:1118
#: templates/js/translated/part.js:847 templates/js/translated/part.js:873
+#: templates/js/translated/table_filters.js:317
msgid "Received"
msgstr ""
-#: order/models.py:798
+#: order/models.py:863
msgid "Number of items received"
msgstr ""
-#: order/models.py:805 part/templates/part/prices.html:176 stock/models.py:609
-#: stock/serializers.py:168 stock/templates/stock/item_base.html:360
-#: templates/js/translated/stock.js:1436
+#: order/models.py:870 part/templates/part/prices.html:176 stock/models.py:603
+#: stock/serializers.py:170 stock/templates/stock/item_base.html:360
+#: templates/js/translated/stock.js:1600
msgid "Purchase Price"
msgstr ""
-#: order/models.py:806
+#: order/models.py:871
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:814
+#: order/models.py:879
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:866 part/templates/part/part_pricing.html:112
+#: order/models.py:934 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:116 part/templates/part/prices.html:284
msgid "Sale Price"
msgstr ""
-#: order/models.py:867
+#: order/models.py:935
msgid "Unit sale price"
msgstr ""
-#: order/models.py:946 order/models.py:948
+#: order/models.py:940
+msgid "Shipped quantity"
+msgstr ""
+
+#: order/models.py:1027
+msgid "Date of shipment"
+msgstr ""
+
+#: order/models.py:1034
+msgid "Checked By"
+msgstr ""
+
+#: order/models.py:1035
+msgid "User who checked this shipment"
+msgstr ""
+
+#: order/models.py:1043
+msgid "Shipment number"
+msgstr ""
+
+#: order/models.py:1050
+msgid "Shipment notes"
+msgstr ""
+
+#: order/models.py:1057
+msgid "Tracking Number"
+msgstr ""
+
+#: order/models.py:1058
+msgid "Shipment tracking information"
+msgstr ""
+
+#: order/models.py:1068
+msgid "Shipment has already been sent"
+msgstr ""
+
+#: order/models.py:1071
+msgid "Shipment has no allocated stock items"
+msgstr ""
+
+#: order/models.py:1147 order/models.py:1149
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:952
+#: order/models.py:1153
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:954
+#: order/models.py:1155
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:957
+#: order/models.py:1158
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:961
+#: order/models.py:1162
msgid "StockItem is over-allocated"
msgstr ""
-#: order/models.py:967
+#: order/models.py:1168 order/serializers.py:734
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:975
+#: order/models.py:1171
+msgid "Sales order does not match shipment"
+msgstr ""
+
+#: order/models.py:1172
+msgid "Shipment does not match sales order"
+msgstr ""
+
+#: order/models.py:1180
msgid "Line"
msgstr ""
-#: order/models.py:987
+#: order/models.py:1188 order/serializers.py:825 order/serializers.py:953
+#: templates/js/translated/model_renderers.js:251
+msgid "Shipment"
+msgstr ""
+
+#: order/models.py:1189
+msgid "Sales order shipment reference"
+msgstr ""
+
+#: order/models.py:1201
msgid "Item"
msgstr ""
-#: order/models.py:988
+#: order/models.py:1202
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:991
+#: order/models.py:1205
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/serializers.py:175
+#: order/serializers.py:173
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:213
+#: order/serializers.py:211 order/serializers.py:790
msgid "Line Item"
msgstr ""
-#: order/serializers.py:219
+#: order/serializers.py:217
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:229 order/serializers.py:297
+#: order/serializers.py:227 order/serializers.py:295
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:253
+#: order/serializers.py:251
msgid "Barcode Hash"
msgstr ""
-#: order/serializers.py:254
+#: order/serializers.py:252
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:271
+#: order/serializers.py:269
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:309
+#: order/serializers.py:307
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:326
+#: order/serializers.py:324
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:337
+#: order/serializers.py:335
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:578
+#: order/serializers.py:581
msgid "Sale price currency"
msgstr ""
+#: order/serializers.py:649
+msgid "No shipment details provided"
+msgstr ""
+
+#: order/serializers.py:699 order/serializers.py:802
+msgid "Line item is not associated with this order"
+msgstr ""
+
+#: order/serializers.py:721
+msgid "Quantity must be positive"
+msgstr ""
+
+#: order/serializers.py:815
+msgid "Enter serial numbers to allocate"
+msgstr ""
+
+#: order/serializers.py:839 order/serializers.py:964
+msgid "Shipment has already been shipped"
+msgstr ""
+
+#: order/serializers.py:842 order/serializers.py:967
+msgid "Shipment is not associated with this order"
+msgstr ""
+
+#: order/serializers.py:894
+msgid "No match found for the following serial numbers"
+msgstr ""
+
+#: order/serializers.py:904
+msgid "The following serial numbers are already allocated"
+msgstr ""
+
#: order/templates/order/delete_attachment.html:5
#: stock/templates/stock/attachment_delete.html:5
msgid "Are you sure you want to delete this attachment?"
@@ -3271,7 +3416,8 @@ msgstr ""
msgid "Receive Items"
msgstr ""
-#: order/templates/order/order_base.html:62 order/views.py:185
+#: order/templates/order/order_base.html:62
+#: order/templates/order/sales_order_base.html:67 order/views.py:181
msgid "Complete Order"
msgstr ""
@@ -3290,12 +3436,23 @@ msgstr ""
msgid "Order Status"
msgstr ""
-#: order/templates/order/order_base.html:137
+#: order/templates/order/order_base.html:124
+#: order/templates/order/sales_order_base.html:128
+msgid "Completed Line Items"
+msgstr ""
+
+#: order/templates/order/order_base.html:130
+#: order/templates/order/sales_order_base.html:134
+#: order/templates/order/sales_order_base.html:144
+msgid "Incomplete"
+msgstr ""
+
+#: order/templates/order/order_base.html:149
#: report/templates/report/inventree_build_order_base.html:122
msgid "Issued"
msgstr ""
-#: order/templates/order/order_base.html:207
+#: order/templates/order/order_base.html:219
msgid "Edit Purchase Order"
msgstr ""
@@ -3371,8 +3528,9 @@ msgstr ""
#: part/templates/part/import_wizard/ajax_match_references.html:42
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
-#: templates/js/translated/build.js:240 templates/js/translated/build.js:1251
-#: templates/js/translated/order.js:377
+#: templates/js/translated/build.js:245 templates/js/translated/build.js:1256
+#: templates/js/translated/order.js:537 templates/js/translated/order.js:1488
+#: templates/js/translated/stock.js:592
msgid "Remove row"
msgstr ""
@@ -3453,7 +3611,8 @@ msgid "Select existing purchase orders, or create new orders."
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:31
-#: templates/js/translated/order.js:694 templates/js/translated/order.js:1118
+#: templates/js/translated/order.js:859 templates/js/translated/order.js:1286
+#: templates/js/translated/order.js:1416
msgid "Items"
msgstr ""
@@ -3489,7 +3648,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:27
#: order/templates/order/purchase_order_detail.html:181
#: order/templates/order/sales_order_detail.html:23
-#: order/templates/order/sales_order_detail.html:157
+#: order/templates/order/sales_order_detail.html:244
msgid "Add Line Item"
msgstr ""
@@ -3502,7 +3661,7 @@ msgid "Received Items"
msgstr ""
#: order/templates/order/purchase_order_detail.html:76
-#: order/templates/order/sales_order_detail.html:68
+#: order/templates/order/sales_order_detail.html:123
msgid "Order Notes"
msgstr ""
@@ -3520,8 +3679,8 @@ msgid "Print packing list"
msgstr ""
#: order/templates/order/sales_order_base.html:66
-#: order/templates/order/sales_order_base.html:67 order/views.py:222
-msgid "Ship Order"
+#: order/templates/order/sales_order_base.html:229
+msgid "Complete Sales Order"
msgstr ""
#: order/templates/order/sales_order_base.html:102
@@ -3529,16 +3688,21 @@ msgid "This Sales Order has not been fully allocated"
msgstr ""
#: order/templates/order/sales_order_base.html:122
-#: templates/js/translated/order.js:1085
+#: templates/js/translated/order.js:1253
msgid "Customer Reference"
msgstr ""
-#: order/templates/order/sales_order_base.html:195
+#: order/templates/order/sales_order_base.html:140
+#: order/templates/order/sales_order_detail.html:78
+#: order/templates/order/so_sidebar.html:11
+msgid "Completed Shipments"
+msgstr ""
+
+#: order/templates/order/sales_order_base.html:215
msgid "Edit Sales Order"
msgstr ""
#: order/templates/order/sales_order_cancel.html:8
-#: order/templates/order/sales_order_ship.html:9
#: part/templates/part/bom_duplicate.html:12
#: stock/templates/stock/stockitem_convert.html:13
msgid "Warning"
@@ -3552,146 +3716,100 @@ msgstr ""
msgid "Sales Order Items"
msgstr ""
-#: order/templates/order/sales_order_ship.html:10
-msgid "This order has not been fully allocated. If the order is marked as shipped, it can no longer be adjusted."
+#: order/templates/order/sales_order_detail.html:44
+#: order/templates/order/so_sidebar.html:8
+msgid "Pending Shipments"
msgstr ""
-#: order/templates/order/sales_order_ship.html:12
-msgid "Ensure that the order allocation is correct before shipping the order."
+#: order/templates/order/sales_order_detail.html:48
+#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1188
+msgid "Actions"
msgstr ""
-#: order/templates/order/sales_order_ship.html:18
-msgid "Some line items in this order have been over-allocated"
+#: order/templates/order/sales_order_detail.html:57
+msgid "New Shipment"
msgstr ""
-#: order/templates/order/sales_order_ship.html:20
-msgid "Ensure that this is correct before shipping the order."
-msgstr ""
-
-#: order/templates/order/sales_order_ship.html:27
-msgid "Shipping this order means that the order will no longer be editable."
-msgstr ""
-
-#: order/templates/order/so_allocate_by_serial.html:9
-msgid "Allocate stock items by serial number"
-msgstr ""
-
-#: order/views.py:103
+#: order/views.py:99
msgid "Cancel Order"
msgstr ""
-#: order/views.py:112 order/views.py:138
+#: order/views.py:108 order/views.py:134
msgid "Confirm order cancellation"
msgstr ""
-#: order/views.py:115 order/views.py:141
+#: order/views.py:111 order/views.py:137
msgid "Order cannot be cancelled"
msgstr ""
-#: order/views.py:129
+#: order/views.py:125
msgid "Cancel sales order"
msgstr ""
-#: order/views.py:155
+#: order/views.py:151
msgid "Issue Order"
msgstr ""
-#: order/views.py:164
+#: order/views.py:160
msgid "Confirm order placement"
msgstr ""
-#: order/views.py:174
+#: order/views.py:170
msgid "Purchase order issued"
msgstr ""
-#: order/views.py:201
+#: order/views.py:197
msgid "Confirm order completion"
msgstr ""
-#: order/views.py:212
+#: order/views.py:208
msgid "Purchase order completed"
msgstr ""
-#: order/views.py:238
-msgid "Confirm order shipment"
-msgstr ""
-
-#: order/views.py:244
-msgid "Could not ship order"
-msgstr ""
-
-#: order/views.py:291
+#: order/views.py:245
msgid "Match Supplier Parts"
msgstr ""
-#: order/views.py:535
+#: order/views.py:489
msgid "Update prices"
msgstr ""
-#: order/views.py:793
+#: order/views.py:747
#, python-brace-format
msgid "Ordered {n} parts"
msgstr ""
-#: order/views.py:846
-msgid "Allocate Serial Numbers"
-msgstr ""
-
-#: order/views.py:891
-#, python-brace-format
-msgid "Allocated {n} items"
-msgstr ""
-
-#: order/views.py:907
-msgid "Select line item"
-msgstr ""
-
-#: order/views.py:938
-#, python-brace-format
-msgid "No matching item for serial {serial}"
-msgstr ""
-
-#: order/views.py:948
-#, python-brace-format
-msgid "{serial} is not in stock"
-msgstr ""
-
-#: order/views.py:956
-#, python-brace-format
-msgid "{serial} already allocated to an order"
-msgstr ""
-
-#: order/views.py:1072
+#: order/views.py:858
msgid "Sales order not found"
msgstr ""
-#: order/views.py:1078
+#: order/views.py:864
msgid "Price not found"
msgstr ""
-#: order/views.py:1081
+#: order/views.py:867
#, python-brace-format
msgid "Updated {part} unit-price to {price}"
msgstr ""
-#: order/views.py:1086
+#: order/views.py:872
#, python-brace-format
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/api.py:758
+#: part/api.py:760
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:762
+#: part/api.py:764
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:777
+#: part/api.py:779
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:808 part/api.py:812 part/api.py:827 part/api.py:831
+#: part/api.py:810 part/api.py:814 part/api.py:829 part/api.py:833
msgid "This field is required"
msgstr ""
@@ -3828,8 +3946,8 @@ msgstr ""
#: part/templates/part/category.html:149
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:88
-#: templates/InvenTree/settings/sidebar.html:36
-#: templates/js/translated/part.js:1597 templates/navbar.html:19
+#: templates/InvenTree/settings/sidebar.html:37
+#: templates/js/translated/part.js:1597 templates/navbar.html:21
#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
msgid "Parts"
msgstr ""
@@ -3895,7 +4013,7 @@ msgstr ""
#: part/models.py:778 part/models.py:2223 part/models.py:2472
#: part/templates/part/part_base.html:265
#: part/templates/part/set_category.html:15
-#: templates/InvenTree/settings/settings.html:163
+#: templates/InvenTree/settings/settings.html:172
#: templates/js/translated/part.js:1202
msgid "Category"
msgstr ""
@@ -3906,7 +4024,7 @@ msgstr ""
#: part/models.py:784 part/templates/part/part_base.html:274
#: templates/js/translated/part.js:557 templates/js/translated/part.js:1155
-#: templates/js/translated/stock.js:1216
+#: templates/js/translated/stock.js:1373
msgid "IPN"
msgstr ""
@@ -3975,10 +4093,11 @@ msgstr ""
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:915 templates/js/translated/table_filters.js:34
+#: part/models.py:915 plugin/models.py:45
+#: templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:96
-#: templates/js/translated/table_filters.js:290
-#: templates/js/translated/table_filters.js:368
+#: templates/js/translated/table_filters.js:295
+#: templates/js/translated/table_filters.js:399
msgid "Active"
msgstr ""
@@ -4027,7 +4146,7 @@ msgid "Test with this name already exists for this part"
msgstr ""
#: part/models.py:2310 templates/js/translated/part.js:1648
-#: templates/js/translated/stock.js:940
+#: templates/js/translated/stock.js:1097
msgid "Test Name"
msgstr ""
@@ -4044,7 +4163,7 @@ msgid "Enter description for this test"
msgstr ""
#: part/models.py:2322 templates/js/translated/part.js:1657
-#: templates/js/translated/table_filters.js:276
+#: templates/js/translated/table_filters.js:281
msgid "Required"
msgstr ""
@@ -4086,7 +4205,7 @@ msgid "Parameter Units"
msgstr ""
#: part/models.py:2429 part/models.py:2478 part/models.py:2479
-#: templates/InvenTree/settings/settings.html:158
+#: templates/InvenTree/settings/settings.html:167
msgid "Parameter Template"
msgstr ""
@@ -4098,7 +4217,7 @@ msgstr ""
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2483 templates/InvenTree/settings/settings.html:167
+#: part/models.py:2483 templates/InvenTree/settings/settings.html:176
msgid "Default Value"
msgstr ""
@@ -4175,7 +4294,7 @@ msgstr ""
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2686 stock/models.py:361
+#: part/models.py:2686 stock/models.py:355
msgid "Quantity must be integer value for trackable parts"
msgstr ""
@@ -4724,8 +4843,8 @@ msgstr ""
msgid "This part is a variant of %(link)s"
msgstr ""
-#: part/templates/part/part_base.html:190 templates/js/translated/order.js:1545
-#: templates/js/translated/table_filters.js:188
+#: part/templates/part/part_base.html:190 templates/js/translated/order.js:2217
+#: templates/js/translated/table_filters.js:193
msgid "In Stock"
msgstr ""
@@ -5099,6 +5218,78 @@ msgstr ""
msgid "Delete Internal Price Break"
msgstr ""
+#: plugin/integration.py:116
+msgid "No author found"
+msgstr ""
+
+#: plugin/integration.py:128
+msgid "No date found"
+msgstr ""
+
+#: plugin/models.py:25
+msgid "Plugin Configuration"
+msgstr ""
+
+#: plugin/models.py:26
+msgid "Plugin Configurations"
+msgstr ""
+
+#: plugin/models.py:31
+msgid "Key"
+msgstr ""
+
+#: plugin/models.py:32
+msgid "Key of plugin"
+msgstr ""
+
+#: plugin/models.py:40
+msgid "PluginName of the plugin"
+msgstr ""
+
+#: plugin/models.py:46
+msgid "Is the plugin active"
+msgstr ""
+
+#: plugin/samples/integration/sample.py:39
+msgid "Enable PO"
+msgstr ""
+
+#: plugin/samples/integration/sample.py:40
+msgid "Enable PO functionality in InvenTree interface"
+msgstr ""
+
+#: plugin/serializers.py:46
+msgid "Source URL"
+msgstr ""
+
+#: plugin/serializers.py:47
+msgid "Source for the package - this can be a custom registry or a VCS path"
+msgstr ""
+
+#: plugin/serializers.py:52
+msgid "Package Name"
+msgstr ""
+
+#: plugin/serializers.py:53
+msgid "Name for the Plugin Package - can also contain a version indicator"
+msgstr ""
+
+#: plugin/serializers.py:56
+msgid "Confirm plugin installation"
+msgstr ""
+
+#: plugin/serializers.py:57
+msgid "This will install this plugin now into the current instance. The instance will go into maintenance."
+msgstr ""
+
+#: plugin/serializers.py:72
+msgid "Installation not confirmed"
+msgstr ""
+
+#: plugin/serializers.py:74
+msgid "Either packagenmae of url must be provided"
+msgstr ""
+
#: report/api.py:234 report/api.py:278
#, python-brace-format
msgid "Template file '{filename}' is missing or does not exist"
@@ -5197,12 +5388,12 @@ msgid "Stock Item Test Report"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:520 stock/templates/stock/item_base.html:149
-#: templates/js/translated/build.js:233 templates/js/translated/build.js:637
-#: templates/js/translated/build.js:1013
+#: stock/models.py:514 stock/templates/stock/item_base.html:149
+#: templates/js/translated/build.js:238 templates/js/translated/build.js:642
+#: templates/js/translated/build.js:1018
#: templates/js/translated/model_renderers.js:95
-#: templates/js/translated/order.js:1287 templates/js/translated/order.js:1376
-#: templates/js/translated/stock.js:410
+#: templates/js/translated/order.js:99 templates/js/translated/order.js:1945
+#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:414
msgid "Serial Number"
msgstr ""
@@ -5211,17 +5402,19 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:93
-#: stock/models.py:1845
+#: stock/models.py:1833
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:94
-#: stock/models.py:1851
+#: stock/models.py:1839
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:97
-#: templates/js/translated/order.js:684 templates/js/translated/stock.js:1999
+#: templates/InvenTree/settings/plugin.html:49
+#: templates/InvenTree/settings/plugin_settings.html:38
+#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2174
msgid "Date"
msgstr ""
@@ -5239,302 +5432,318 @@ msgid "Installed Items"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
-#: templates/js/translated/stock.js:2259
+#: templates/js/translated/stock.js:577 templates/js/translated/stock.js:2434
msgid "Serial"
msgstr ""
-#: stock/api.py:422
+#: stock/api.py:446
msgid "Quantity is required"
msgstr ""
-#: stock/forms.py:91 stock/forms.py:265 stock/models.py:577
+#: stock/forms.py:77 stock/forms.py:251 stock/models.py:571
#: stock/templates/stock/item_base.html:186
-#: templates/js/translated/stock.js:1358
+#: templates/js/translated/stock.js:1522
msgid "Expiry Date"
msgstr ""
-#: stock/forms.py:92 stock/forms.py:266
+#: stock/forms.py:78 stock/forms.py:252
msgid "Expiration date for this stock item"
msgstr ""
-#: stock/forms.py:95
+#: stock/forms.py:81
msgid "Enter unique serial numbers (or leave blank)"
msgstr ""
-#: stock/forms.py:150
+#: stock/forms.py:136
msgid "Destination for serialized stock (by default, will remain in current location)"
msgstr ""
-#: stock/forms.py:152
+#: stock/forms.py:138
msgid "Serial numbers"
msgstr ""
-#: stock/forms.py:152
+#: stock/forms.py:138
msgid "Unique serial numbers (must match quantity)"
msgstr ""
-#: stock/forms.py:154 stock/forms.py:238
+#: stock/forms.py:140 stock/forms.py:224
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/forms.py:194
+#: stock/forms.py:180
msgid "Stock item to install"
msgstr ""
-#: stock/forms.py:224
+#: stock/forms.py:210
msgid "Must not exceed available quantity"
msgstr ""
-#: stock/forms.py:236
+#: stock/forms.py:222
msgid "Destination location for uninstalled items"
msgstr ""
-#: stock/forms.py:240
+#: stock/forms.py:226
msgid "Confirm uninstall"
msgstr ""
-#: stock/forms.py:240
+#: stock/forms.py:226
msgid "Confirm removal of installed stock items"
msgstr ""
-#: stock/models.py:60 stock/models.py:614
+#: stock/models.py:60 stock/models.py:608
#: stock/templates/stock/item_base.html:417
msgid "Owner"
msgstr ""
-#: stock/models.py:61 stock/models.py:615
+#: stock/models.py:61 stock/models.py:609
msgid "Select Owner"
msgstr ""
-#: stock/models.py:342
+#: stock/models.py:336
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:378
+#: stock/models.py:372
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:388 stock/models.py:397
+#: stock/models.py:382 stock/models.py:391
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:389
+#: stock/models.py:383
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:411
+#: stock/models.py:405
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:417
+#: stock/models.py:411
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:424
+#: stock/models.py:418
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:466
+#: stock/models.py:460
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:475
+#: stock/models.py:469
msgid "Base part"
msgstr ""
-#: stock/models.py:483
+#: stock/models.py:477
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:488 stock/templates/stock/location.html:12
+#: stock/models.py:482 stock/templates/stock/location.html:12
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:491
+#: stock/models.py:485
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:498
+#: stock/models.py:492
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:503 stock/templates/stock/item_base.html:299
+#: stock/models.py:497 stock/templates/stock/item_base.html:299
msgid "Installed In"
msgstr ""
-#: stock/models.py:506
+#: stock/models.py:500
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:522
+#: stock/models.py:516
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:536
+#: stock/models.py:530
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:540
+#: stock/models.py:534
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:549
+#: stock/models.py:543
msgid "Source Build"
msgstr ""
-#: stock/models.py:551
+#: stock/models.py:545
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:562
+#: stock/models.py:556
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:565
+#: stock/models.py:559
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:571
+#: stock/models.py:565
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:578
+#: stock/models.py:572
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:591
+#: stock/models.py:585
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:591
+#: stock/models.py:585
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:601 stock/templates/stock/item.html:111
+#: stock/models.py:595 stock/templates/stock/item.html:111
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:610
+#: stock/models.py:604
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:620
-msgid "Scheduled for deletion"
-msgstr ""
-
-#: stock/models.py:621
-msgid "This StockItem will be deleted by the background worker"
-msgstr ""
-
-#: stock/models.py:1084
+#: stock/models.py:1072
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1090
+#: stock/models.py:1078
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1096
+#: stock/models.py:1084
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1099
+#: stock/models.py:1087
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1102
+#: stock/models.py:1090
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1109
+#: stock/models.py:1097
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1267
+#: stock/models.py:1255
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1765
+#: stock/models.py:1753
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1822
+#: stock/models.py:1810
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1828
+#: stock/models.py:1816
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1846
+#: stock/models.py:1834
msgid "Test name"
msgstr ""
-#: stock/models.py:1852 templates/js/translated/table_filters.js:266
+#: stock/models.py:1840 templates/js/translated/table_filters.js:271
msgid "Test result"
msgstr ""
-#: stock/models.py:1858
+#: stock/models.py:1846
msgid "Test output value"
msgstr ""
-#: stock/models.py:1865
+#: stock/models.py:1853
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1871
+#: stock/models.py:1859
msgid "Test notes"
msgstr ""
-#: stock/serializers.py:171
+#: stock/serializers.py:173
msgid "Purchase price of this stock item"
msgstr ""
-#: stock/serializers.py:178
+#: stock/serializers.py:180
msgid "Purchase currency of this stock item"
msgstr ""
-#: stock/serializers.py:292
+#: stock/serializers.py:294
msgid "Enter number of stock items to serialize"
msgstr ""
-#: stock/serializers.py:307
+#: stock/serializers.py:309
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:313
+#: stock/serializers.py:315
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:324 stock/serializers.py:691
+#: stock/serializers.py:326 stock/serializers.py:814
msgid "Destination stock location"
msgstr ""
-#: stock/serializers.py:331
+#: stock/serializers.py:333
msgid "Optional note field"
msgstr ""
-#: stock/serializers.py:344
+#: stock/serializers.py:346
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:561
+#: stock/serializers.py:573
+msgid "Part must be salable"
+msgstr ""
+
+#: stock/serializers.py:577
+msgid "Item is allocated to a sales order"
+msgstr ""
+
+#: stock/serializers.py:581
+msgid "Item is allocated to a build order"
+msgstr ""
+
+#: stock/serializers.py:611
+msgid "Customer to assign stock items"
+msgstr ""
+
+#: stock/serializers.py:617
+msgid "Selected company is not a customer"
+msgstr ""
+
+#: stock/serializers.py:625
+msgid "Stock assignment notes"
+msgstr ""
+
+#: stock/serializers.py:635 stock/serializers.py:722
+msgid "A list of stock items must be provided"
+msgstr ""
+
+#: stock/serializers.py:684
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:589
+#: stock/serializers.py:712
msgid "Stock transaction notes"
msgstr ""
-#: stock/serializers.py:599
-msgid "A list of stock items must be provided"
-msgstr ""
-
#: stock/templates/stock/item.html:18
msgid "Stock Tracking Information"
msgstr ""
@@ -5572,7 +5781,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:137 stock/views.py:515
+#: stock/templates/stock/item.html:137 stock/views.py:482
msgid "Install Stock Item"
msgstr ""
@@ -5632,7 +5841,7 @@ msgstr ""
msgid "Transfer stock"
msgstr ""
-#: stock/templates/stock/item_base.html:85
+#: stock/templates/stock/item_base.html:85 templates/stock_table.html:53
msgid "Assign to customer"
msgstr ""
@@ -5694,7 +5903,7 @@ msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:190
-#: templates/js/translated/table_filters.js:247
+#: templates/js/translated/table_filters.js:252
msgid "Expired"
msgstr ""
@@ -5704,12 +5913,12 @@ msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:192
-#: templates/js/translated/table_filters.js:253
+#: templates/js/translated/table_filters.js:258
msgid "Stale"
msgstr ""
#: stock/templates/stock/item_base.html:199
-#: templates/js/translated/stock.js:1371
+#: templates/js/translated/stock.js:1535
msgid "Last Updated"
msgstr ""
@@ -5738,13 +5947,11 @@ msgid "This stock item has not passed all required tests"
msgstr ""
#: stock/templates/stock/item_base.html:255
-#, python-format
-msgid "This stock item is allocated to Sales Order %(link)s (Quantity: %(qty)s)"
+msgid "This stock item is allocated to Sales Order"
msgstr ""
#: stock/templates/stock/item_base.html:263
-#, python-format
-msgid "This stock item is allocated to Build %(link)s (Quantity: %(qty)s)"
+msgid "This stock item is allocated to Build Order"
msgstr ""
#: stock/templates/stock/item_base.html:269
@@ -5760,7 +5967,7 @@ msgid "This stock item will be automatically deleted when all stock is depleted.
msgstr ""
#: stock/templates/stock/item_base.html:318
-#: templates/js/translated/build.js:1035
+#: templates/js/translated/build.js:1040
msgid "No location set"
msgstr ""
@@ -5910,7 +6117,7 @@ msgstr ""
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:912
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:879
msgid "Convert Stock Item"
msgstr ""
@@ -5935,8 +6142,7 @@ msgstr ""
msgid "Edit Stock Location"
msgstr ""
-#: stock/views.py:269 stock/views.py:891 stock/views.py:1017
-#: stock/views.py:1299
+#: stock/views.py:269 stock/views.py:858 stock/views.py:984 stock/views.py:1266
msgid "Owner is required (ownership control is enabled)"
msgstr ""
@@ -5945,86 +6151,78 @@ msgid "Stock Location QR code"
msgstr ""
#: stock/views.py:303
-msgid "Assign to Customer"
-msgstr ""
-
-#: stock/views.py:312
-msgid "Customer must be specified"
-msgstr ""
-
-#: stock/views.py:336
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:345
+#: stock/views.py:312
msgid "Specify a valid location"
msgstr ""
-#: stock/views.py:356
+#: stock/views.py:323
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:367
+#: stock/views.py:334
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:384
+#: stock/views.py:351
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:489
+#: stock/views.py:456
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:663
+#: stock/views.py:630
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:760 templates/js/translated/stock.js:730
+#: stock/views.py:727 templates/js/translated/stock.js:887
msgid "Confirm stock adjustment"
msgstr ""
-#: stock/views.py:771
+#: stock/views.py:738
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:793 templates/js/translated/stock.js:319
+#: stock/views.py:760 templates/js/translated/stock.js:323
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:943
+#: stock/views.py:910
msgid "Create new Stock Location"
msgstr ""
-#: stock/views.py:1044
+#: stock/views.py:1011
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1186 templates/js/translated/stock.js:299
+#: stock/views.py:1153 templates/js/translated/stock.js:303
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1268
+#: stock/views.py:1235
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1368
+#: stock/views.py:1335
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:1381
+#: stock/views.py:1348
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1392
+#: stock/views.py:1359
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1399
+#: stock/views.py:1366
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1408
+#: stock/views.py:1375
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -6044,6 +6242,14 @@ msgstr ""
msgid "The requested page does not exist"
msgstr ""
+#: templates/503.html:10 templates/503.html:35
+msgid "Site is in Maintenance"
+msgstr ""
+
+#: templates/503.html:41
+msgid "The site is currently in maintenance and should be up again soon!"
+msgstr ""
+
#: templates/InvenTree/index.html:7
msgid "Index"
msgstr ""
@@ -6153,7 +6359,7 @@ msgid "Server Settings"
msgstr ""
#: templates/InvenTree/settings/login.html:9
-#: templates/InvenTree/settings/sidebar.html:28
+#: templates/InvenTree/settings/sidebar.html:29
msgid "Login Settings"
msgstr ""
@@ -6161,6 +6367,24 @@ msgstr ""
msgid "Signup"
msgstr ""
+#: templates/InvenTree/settings/mixins/settings.html:4
+#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:118
+msgid "Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/mixins/urls.html:4
+msgid "URLs"
+msgstr ""
+
+#: templates/InvenTree/settings/mixins/urls.html:6
+#, python-format
+msgid "The Base-URL for this plugin is %(base)s."
+msgstr ""
+
+#: templates/InvenTree/settings/mixins/urls.html:21
+msgid "open in new tab"
+msgstr ""
+
#: templates/InvenTree/settings/part.html:7
msgid "Part Settings"
msgstr ""
@@ -6177,6 +6401,126 @@ msgstr ""
msgid "Part Parameter Templates"
msgstr ""
+#: templates/InvenTree/settings/plugin.html:10
+msgid "Plugin Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:16
+msgid "Changing the settings below require you to immediatly restart InvenTree. Do not change this while under active usage."
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:32
+msgid "Plugin list"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:37
+#: templates/js/translated/plugin.js:15
+msgid "Install Plugin"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:46 templates/navbar.html:111
+#: users/models.py:39
+msgid "Admin"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:48
+#: templates/InvenTree/settings/plugin_settings.html:28
+msgid "Author"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:50
+#: templates/InvenTree/settings/plugin_settings.html:43
+msgid "Version"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:73
+#, python-format
+msgid "has %(name)s"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:91
+msgid "Inactive plugins"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:114
+msgid "Plugin Error Stack"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:123
+msgid "Stage"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:125
+msgid "Message"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:10
+#, python-format
+msgid "Plugin details for %(name)s"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:17
+msgid "Plugin information"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:48
+msgid "no version information supplied"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:62
+msgid "License"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:70
+msgid "The code information is pulled from the latest git commit for this plugin. It might not reflect official version numbers or information but the actual code running."
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:74
+msgid "Package information"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:80
+msgid "Installation method"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:83
+msgid "This plugin was installed as a package"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:85
+msgid "This plugin was found in a local InvenTree path"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:91
+msgid "Installation path"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:97
+msgid "Commit Author"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:101
+#: templates/about.html:47
+msgid "Commit Date"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:105
+#: templates/about.html:40
+msgid "Commit Hash"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:109
+msgid "Commit Message"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:114
+msgid "Sign Status"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:119
+msgid "Sign Key"
+msgstr ""
+
#: templates/InvenTree/settings/po.html:7
msgid "Purchase Order Settings"
msgstr ""
@@ -6194,86 +6538,82 @@ msgstr ""
msgid "Edit setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:11 templates/navbar.html:93
-msgid "Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/settings.html:65
+#: templates/InvenTree/settings/settings.html:74
msgid "Edit Global Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:65
+#: templates/InvenTree/settings/settings.html:74
msgid "Edit User Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:148
+#: templates/InvenTree/settings/settings.html:157
msgid "No category parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:170
-#: templates/InvenTree/settings/settings.html:269
+#: templates/InvenTree/settings/settings.html:179
+#: templates/InvenTree/settings/settings.html:278
msgid "Edit Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:171
-#: templates/InvenTree/settings/settings.html:270
+#: templates/InvenTree/settings/settings.html:180
+#: templates/InvenTree/settings/settings.html:279
msgid "Delete Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:249
+#: templates/InvenTree/settings/settings.html:258
msgid "No part parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:253
+#: templates/InvenTree/settings/settings.html:262
msgid "ID"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:5
+#: templates/InvenTree/settings/sidebar.html:6
#: templates/InvenTree/settings/user_settings.html:9
msgid "User Settings"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:8
+#: templates/InvenTree/settings/sidebar.html:9
#: templates/InvenTree/settings/user.html:12
msgid "Account Settings"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:10
+#: templates/InvenTree/settings/sidebar.html:11
#: templates/InvenTree/settings/user_display.html:9
msgid "Display Settings"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:12
+#: templates/InvenTree/settings/sidebar.html:13
msgid "Home Page"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:14
+#: templates/InvenTree/settings/sidebar.html:15
#: templates/InvenTree/settings/user_search.html:9
msgid "Search Settings"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:16
+#: templates/InvenTree/settings/sidebar.html:17
msgid "Label Printing"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:18
-#: templates/InvenTree/settings/sidebar.html:34
+#: templates/InvenTree/settings/sidebar.html:19
+#: templates/InvenTree/settings/sidebar.html:35
msgid "Reporting"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:23
+#: templates/InvenTree/settings/sidebar.html:24
msgid "Global Settings"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:26
+#: templates/InvenTree/settings/sidebar.html:27
msgid "Server Configuration"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:32
+#: templates/InvenTree/settings/sidebar.html:33
msgid "Currencies"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:38
+#: templates/InvenTree/settings/sidebar.html:39
msgid "Categories"
msgstr ""
@@ -6491,8 +6831,8 @@ msgstr ""
#: templates/about.html:11 templates/about.html:105
#: templates/js/translated/bom.js:283 templates/js/translated/modals.js:53
-#: templates/js/translated/modals.js:567 templates/js/translated/modals.js:661
-#: templates/js/translated/modals.js:964 templates/modals.html:15
+#: templates/js/translated/modals.js:568 templates/js/translated/modals.js:662
+#: templates/js/translated/modals.js:965 templates/modals.html:15
#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
msgid "Close"
msgstr ""
@@ -6513,14 +6853,6 @@ msgstr ""
msgid "Update Available"
msgstr ""
-#: templates/about.html:40
-msgid "Commit Hash"
-msgstr ""
-
-#: templates/about.html:47
-msgid "Commit Date"
-msgstr ""
-
#: templates/about.html:53
msgid "InvenTree Documentation"
msgstr ""
@@ -6718,8 +7050,9 @@ msgstr ""
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1129
-#: templates/js/translated/build.js:1749
+#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1134
+#: templates/js/translated/build.js:1755
+#: templates/js/translated/table_filters.js:178
msgid "Available"
msgstr ""
@@ -6765,11 +7098,11 @@ msgstr ""
msgid "Remote image must not exceed maximum allowable file size"
msgstr ""
-#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1034
+#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1035
msgid "No Response"
msgstr ""
-#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1035
+#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1036
msgid "No response from the InvenTree server"
msgstr ""
@@ -6781,35 +7114,35 @@ msgstr ""
msgid "API request returned error code 400"
msgstr ""
-#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1044
+#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1045
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1045
+#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1046
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1049
+#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1050
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1050
+#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1051
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1054
+#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1055
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1055
+#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1056
msgid "The requested resource could not be located on the server"
msgstr ""
-#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1059
+#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1060
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1060
+#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1061
msgid "Connection timeout while requesting data from server"
msgstr ""
@@ -6878,7 +7211,7 @@ msgid "Unknown response from server"
msgstr ""
#: templates/js/translated/barcode.js:140
-#: templates/js/translated/modals.js:1024
+#: templates/js/translated/modals.js:1025
msgid "Invalid server response"
msgstr ""
@@ -6886,7 +7219,7 @@ msgstr ""
msgid "Scan barcode data below"
msgstr ""
-#: templates/js/translated/barcode.js:280 templates/navbar.html:69
+#: templates/js/translated/barcode.js:280 templates/navbar.html:94
msgid "Scan Barcode"
msgstr ""
@@ -6906,7 +7239,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:682
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:839
msgid "Remove stock item"
msgstr ""
@@ -6976,7 +7309,7 @@ msgstr ""
msgid "Substitutes Available"
msgstr ""
-#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1111
+#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1116
msgid "Variant stock allowed"
msgstr ""
@@ -7000,11 +7333,6 @@ msgstr ""
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1183
-#: templates/js/translated/order.js:1319
-msgid "Actions"
-msgstr ""
-
#: templates/js/translated/bom.js:616
msgid "Validate BOM Item"
msgstr ""
@@ -7025,7 +7353,7 @@ msgstr ""
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:718 templates/js/translated/build.js:855
+#: templates/js/translated/bom.js:718 templates/js/translated/build.js:860
msgid "No BOM items found"
msgstr ""
@@ -7033,7 +7361,7 @@ msgstr ""
msgid "Are you sure you want to delete this BOM item?"
msgstr ""
-#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1095
+#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1100
msgid "Required Part"
msgstr ""
@@ -7041,165 +7369,165 @@ msgstr ""
msgid "Inherited from parent BOM"
msgstr ""
-#: templates/js/translated/build.js:78
+#: templates/js/translated/build.js:83
msgid "Edit Build Order"
msgstr ""
-#: templates/js/translated/build.js:112
+#: templates/js/translated/build.js:117
msgid "Create Build Order"
msgstr ""
-#: templates/js/translated/build.js:133
+#: templates/js/translated/build.js:138
msgid "Allocate stock items to this build output"
msgstr ""
-#: templates/js/translated/build.js:144
+#: templates/js/translated/build.js:149
msgid "Unallocate stock from build output"
msgstr ""
-#: templates/js/translated/build.js:153
+#: templates/js/translated/build.js:158
msgid "Complete build output"
msgstr ""
-#: templates/js/translated/build.js:161
+#: templates/js/translated/build.js:166
msgid "Delete build output"
msgstr ""
-#: templates/js/translated/build.js:184
+#: templates/js/translated/build.js:189
msgid "Are you sure you wish to unallocate stock items from this build?"
msgstr ""
-#: templates/js/translated/build.js:202
+#: templates/js/translated/build.js:207
msgid "Unallocate Stock Items"
msgstr ""
-#: templates/js/translated/build.js:220
+#: templates/js/translated/build.js:225
msgid "Select Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:221
+#: templates/js/translated/build.js:226
msgid "At least one build output must be selected"
msgstr ""
-#: templates/js/translated/build.js:275
+#: templates/js/translated/build.js:280
msgid "Output"
msgstr ""
-#: templates/js/translated/build.js:291
+#: templates/js/translated/build.js:296
msgid "Complete Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:386
+#: templates/js/translated/build.js:391
msgid "No build order allocations found"
msgstr ""
-#: templates/js/translated/build.js:424 templates/js/translated/order.js:1193
+#: templates/js/translated/build.js:429 templates/js/translated/order.js:1848
msgid "Location not specified"
msgstr ""
-#: templates/js/translated/build.js:603
+#: templates/js/translated/build.js:608
msgid "No active build outputs found"
msgstr ""
-#: templates/js/translated/build.js:1052 templates/js/translated/build.js:1760
-#: templates/js/translated/order.js:1326
+#: templates/js/translated/build.js:1057 templates/js/translated/build.js:1766
+#: templates/js/translated/order.js:1982
msgid "Edit stock allocation"
msgstr ""
-#: templates/js/translated/build.js:1054 templates/js/translated/build.js:1761
-#: templates/js/translated/order.js:1327
+#: templates/js/translated/build.js:1059 templates/js/translated/build.js:1767
+#: templates/js/translated/order.js:1983
msgid "Delete stock allocation"
msgstr ""
-#: templates/js/translated/build.js:1072
+#: templates/js/translated/build.js:1077
msgid "Edit Allocation"
msgstr ""
-#: templates/js/translated/build.js:1082
+#: templates/js/translated/build.js:1087
msgid "Remove Allocation"
msgstr ""
-#: templates/js/translated/build.js:1107
+#: templates/js/translated/build.js:1112
msgid "Substitute parts available"
msgstr ""
-#: templates/js/translated/build.js:1124
+#: templates/js/translated/build.js:1129
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:1134 templates/js/translated/build.js:1360
-#: templates/js/translated/build.js:1756 templates/js/translated/order.js:1556
+#: templates/js/translated/build.js:1139 templates/js/translated/build.js:1365
+#: templates/js/translated/build.js:1762 templates/js/translated/order.js:2227
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:1190 templates/js/translated/order.js:1610
+#: templates/js/translated/build.js:1195 templates/js/translated/order.js:2307
msgid "Build stock"
msgstr ""
-#: templates/js/translated/build.js:1194 templates/stock_table.html:52
+#: templates/js/translated/build.js:1199 templates/stock_table.html:52
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:1197 templates/js/translated/order.js:1603
+#: templates/js/translated/build.js:1202 templates/js/translated/order.js:2300
msgid "Allocate stock"
msgstr ""
-#: templates/js/translated/build.js:1262
+#: templates/js/translated/build.js:1267 templates/js/translated/order.js:1499
msgid "Specify stock allocation quantity"
msgstr ""
-#: templates/js/translated/build.js:1333 templates/js/translated/label.js:134
-#: templates/js/translated/report.js:225
+#: templates/js/translated/build.js:1338 templates/js/translated/label.js:134
+#: templates/js/translated/order.js:1550 templates/js/translated/report.js:225
msgid "Select Parts"
msgstr ""
-#: templates/js/translated/build.js:1334
+#: templates/js/translated/build.js:1339 templates/js/translated/order.js:1551
msgid "You must select at least one part to allocate"
msgstr ""
-#: templates/js/translated/build.js:1348
+#: templates/js/translated/build.js:1353 templates/js/translated/order.js:1565
msgid "Select source location (leave blank to take from all locations)"
msgstr ""
-#: templates/js/translated/build.js:1377
+#: templates/js/translated/build.js:1382 templates/js/translated/order.js:1600
msgid "Confirm stock allocation"
msgstr ""
-#: templates/js/translated/build.js:1378
+#: templates/js/translated/build.js:1383
msgid "Allocate Stock Items to Build Order"
msgstr ""
-#: templates/js/translated/build.js:1389
+#: templates/js/translated/build.js:1394 templates/js/translated/order.js:1613
msgid "No matching stock locations"
msgstr ""
-#: templates/js/translated/build.js:1451
+#: templates/js/translated/build.js:1464 templates/js/translated/order.js:1690
msgid "No matching stock items"
msgstr ""
-#: templates/js/translated/build.js:1576
+#: templates/js/translated/build.js:1582
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:1593 templates/js/translated/part.js:1147
-#: templates/js/translated/part.js:1558 templates/js/translated/stock.js:1176
-#: templates/js/translated/stock.js:1953
+#: templates/js/translated/build.js:1599 templates/js/translated/part.js:1147
+#: templates/js/translated/part.js:1558 templates/js/translated/stock.js:1333
+#: templates/js/translated/stock.js:2128
msgid "Select"
msgstr ""
-#: templates/js/translated/build.js:1613
+#: templates/js/translated/build.js:1619
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1674 templates/js/translated/stock.js:2172
+#: templates/js/translated/build.js:1680 templates/js/translated/stock.js:2347
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:1686
+#: templates/js/translated/build.js:1692
msgid "No information"
msgstr ""
-#: templates/js/translated/build.js:1737
+#: templates/js/translated/build.js:1743
msgid "No parts allocated for"
msgstr ""
@@ -7219,7 +7547,7 @@ msgstr ""
msgid "Delete Manufacturer Part"
msgstr ""
-#: templates/js/translated/company.js:165 templates/js/translated/order.js:90
+#: templates/js/translated/company.js:165 templates/js/translated/order.js:248
msgid "Add Supplier"
msgstr ""
@@ -7354,20 +7682,20 @@ msgstr ""
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1072 templates/modals.html:19
+#: templates/js/translated/forms.js:1078 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1463
+#: templates/js/translated/forms.js:1469
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1667
+#: templates/js/translated/forms.js:1673
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1884
+#: templates/js/translated/forms.js:1893
msgid "Clear input"
msgstr ""
@@ -7380,7 +7708,7 @@ msgid "NO"
msgstr ""
#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:706
+#: templates/js/translated/stock.js:863
msgid "Select Stock Items"
msgstr ""
@@ -7429,62 +7757,62 @@ msgstr ""
msgid "Select Label Template"
msgstr ""
-#: templates/js/translated/modals.js:75 templates/js/translated/modals.js:119
-#: templates/js/translated/modals.js:593
+#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:120
+#: templates/js/translated/modals.js:594
msgid "Cancel"
msgstr ""
-#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:118
-#: templates/js/translated/modals.js:660 templates/js/translated/modals.js:963
+#: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119
+#: templates/js/translated/modals.js:661 templates/js/translated/modals.js:964
#: templates/modals.html:28 templates/modals.html:51
msgid "Submit"
msgstr ""
-#: templates/js/translated/modals.js:117
+#: templates/js/translated/modals.js:118
msgid "Form Title"
msgstr ""
-#: templates/js/translated/modals.js:380
+#: templates/js/translated/modals.js:381
msgid "Waiting for server..."
msgstr ""
-#: templates/js/translated/modals.js:539
+#: templates/js/translated/modals.js:540
msgid "Show Error Information"
msgstr ""
-#: templates/js/translated/modals.js:592
+#: templates/js/translated/modals.js:593
msgid "Accept"
msgstr ""
-#: templates/js/translated/modals.js:649
+#: templates/js/translated/modals.js:650
msgid "Loading Data"
msgstr ""
-#: templates/js/translated/modals.js:915
+#: templates/js/translated/modals.js:916
msgid "Invalid response from server"
msgstr ""
-#: templates/js/translated/modals.js:915
+#: templates/js/translated/modals.js:916
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/translated/modals.js:927
+#: templates/js/translated/modals.js:928
msgid "Error posting form data"
msgstr ""
-#: templates/js/translated/modals.js:1024
+#: templates/js/translated/modals.js:1025
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/translated/modals.js:1039
+#: templates/js/translated/modals.js:1040
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/translated/modals.js:1040
+#: templates/js/translated/modals.js:1041
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/translated/modals.js:1063
+#: templates/js/translated/modals.js:1064
msgid "Error requesting form data"
msgstr ""
@@ -7512,176 +7840,245 @@ msgstr ""
msgid "Order ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:256
+#: templates/js/translated/model_renderers.js:253
+msgid "Shipment ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:273
msgid "Category ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:293
+#: templates/js/translated/model_renderers.js:310
msgid "Manufacturer Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:322
+#: templates/js/translated/model_renderers.js:339
msgid "Supplier Part ID"
msgstr ""
-#: templates/js/translated/order.js:48
+#: templates/js/translated/order.js:75
+msgid "No stock items have been allocated to this shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:80
+msgid "The following stock items will be shipped"
+msgstr ""
+
+#: templates/js/translated/order.js:120
+msgid "Complete Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:126
+msgid "Confirm Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:181
+msgid "Create New Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:206
msgid "Add Customer"
msgstr ""
-#: templates/js/translated/order.js:73
+#: templates/js/translated/order.js:231
msgid "Create Sales Order"
msgstr ""
-#: templates/js/translated/order.js:208
+#: templates/js/translated/order.js:366
msgid "Export Order"
msgstr ""
-#: templates/js/translated/order.js:211 templates/js/translated/stock.js:505
+#: templates/js/translated/order.js:369 templates/js/translated/stock.js:509
msgid "Format"
msgstr ""
-#: templates/js/translated/order.js:212 templates/js/translated/stock.js:506
+#: templates/js/translated/order.js:370 templates/js/translated/stock.js:510
msgid "Select file format"
msgstr ""
-#: templates/js/translated/order.js:300
+#: templates/js/translated/order.js:460
msgid "Select Line Items"
msgstr ""
-#: templates/js/translated/order.js:301
+#: templates/js/translated/order.js:461
msgid "At least one line item must be selected"
msgstr ""
-#: templates/js/translated/order.js:326
+#: templates/js/translated/order.js:486
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:360 templates/js/translated/stock.js:1755
+#: templates/js/translated/order.js:520 templates/js/translated/stock.js:1930
msgid "Stock Status"
msgstr ""
-#: templates/js/translated/order.js:427
+#: templates/js/translated/order.js:587
msgid "Order Code"
msgstr ""
-#: templates/js/translated/order.js:428
+#: templates/js/translated/order.js:588
msgid "Ordered"
msgstr ""
-#: templates/js/translated/order.js:430
+#: templates/js/translated/order.js:590
msgid "Receive"
msgstr ""
-#: templates/js/translated/order.js:449
+#: templates/js/translated/order.js:609
msgid "Confirm receipt of items"
msgstr ""
-#: templates/js/translated/order.js:450
+#: templates/js/translated/order.js:610
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:627 templates/js/translated/part.js:746
+#: templates/js/translated/order.js:790 templates/js/translated/part.js:746
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:659 templates/js/translated/order.js:1062
+#: templates/js/translated/order.js:815 templates/js/translated/order.js:1230
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:771 templates/js/translated/order.js:1645
+#: templates/js/translated/order.js:936 templates/js/translated/order.js:2356
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:783 templates/js/translated/order.js:1656
+#: templates/js/translated/order.js:948 templates/js/translated/order.js:2367
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/order.js:822
+#: templates/js/translated/order.js:987
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:849 templates/js/translated/order.js:1466
+#: templates/js/translated/order.js:1014 templates/js/translated/order.js:2138
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:903 templates/js/translated/order.js:1491
+#: templates/js/translated/order.js:1068 templates/js/translated/order.js:2163
#: templates/js/translated/part.js:1775 templates/js/translated/part.js:1986
msgid "Unit Price"
msgstr ""
-#: templates/js/translated/order.js:918 templates/js/translated/order.js:1507
+#: templates/js/translated/order.js:1083 templates/js/translated/order.js:2179
msgid "Total Price"
msgstr ""
-#: templates/js/translated/order.js:996 templates/js/translated/order.js:1616
+#: templates/js/translated/order.js:1161 templates/js/translated/order.js:2313
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:997
+#: templates/js/translated/order.js:1162 templates/js/translated/order.js:2317
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:1001 templates/js/translated/part.js:878
+#: templates/js/translated/order.js:1166 templates/js/translated/part.js:878
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:1038
+#: templates/js/translated/order.js:1206
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:1076
+#: templates/js/translated/order.js:1244
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:1154
+#: templates/js/translated/order.js:1322
+msgid "Edit shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1325
+msgid "Complete shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1330
+msgid "Delete shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1350
+msgid "Edit Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1367
+msgid "Delete Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1401
+msgid "No matching shipments found"
+msgstr ""
+
+#: templates/js/translated/order.js:1411
+msgid "Shipment Reference"
+msgstr ""
+
+#: templates/js/translated/order.js:1435
+msgid "Not shipped"
+msgstr ""
+
+#: templates/js/translated/order.js:1441
+msgid "Tracking"
+msgstr ""
+
+#: templates/js/translated/order.js:1601
+msgid "Allocate Stock Items to Sales Order"
+msgstr ""
+
+#: templates/js/translated/order.js:1809
msgid "No sales order allocations found"
msgstr ""
-#: templates/js/translated/order.js:1247
+#: templates/js/translated/order.js:1898
msgid "Edit Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1264
+#: templates/js/translated/order.js:1915
msgid "Confirm Delete Operation"
msgstr ""
-#: templates/js/translated/order.js:1265
+#: templates/js/translated/order.js:1916
msgid "Delete Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1307
+#: templates/js/translated/order.js:1959 templates/js/translated/order.js:2048
+#: templates/js/translated/stock.js:1249
+msgid "Shipped to customer"
+msgstr ""
+
+#: templates/js/translated/order.js:1967 templates/js/translated/order.js:2057
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:1556
-msgid "Fulfilled"
-msgstr ""
-
-#: templates/js/translated/order.js:1600
+#: templates/js/translated/order.js:2297
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:1606
+#: templates/js/translated/order.js:2303
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:1613 templates/js/translated/order.js:1792
+#: templates/js/translated/order.js:2310 templates/js/translated/order.js:2476
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:1617
-msgid "Delete line item "
+#: templates/js/translated/order.js:2321
+msgid "Cannot be deleted as items have been shipped"
msgstr ""
-#: templates/js/translated/order.js:1740
-msgid "Allocate Stock Item"
+#: templates/js/translated/order.js:2324
+msgid "Cannot be deleted as items have been allocated"
msgstr ""
-#: templates/js/translated/order.js:1800
+#: templates/js/translated/order.js:2382
+msgid "Allocate Serial Numbers"
+msgstr ""
+
+#: templates/js/translated/order.js:2484
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:1814
+#: templates/js/translated/order.js:2498
msgid "No matching line items"
msgstr ""
@@ -7826,12 +8223,12 @@ msgid "No category"
msgstr ""
#: templates/js/translated/part.js:1230
-#: templates/js/translated/table_filters.js:381
+#: templates/js/translated/table_filters.js:412
msgid "Low stock"
msgstr ""
#: templates/js/translated/part.js:1321 templates/js/translated/part.js:1493
-#: templates/js/translated/stock.js:1914
+#: templates/js/translated/stock.js:2089
msgid "Display as list"
msgstr ""
@@ -7839,7 +8236,7 @@ msgstr ""
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1512 templates/js/translated/stock.js:1933
+#: templates/js/translated/part.js:1512 templates/js/translated/stock.js:2108
msgid "Display as tree"
msgstr ""
@@ -7847,7 +8244,7 @@ msgstr ""
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:1590 templates/js/translated/stock.js:1977
+#: templates/js/translated/part.js:1590 templates/js/translated/stock.js:2152
msgid "Path"
msgstr ""
@@ -7855,11 +8252,11 @@ msgstr ""
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1685 templates/js/translated/stock.js:898
+#: templates/js/translated/part.js:1685 templates/js/translated/stock.js:1055
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1686 templates/js/translated/stock.js:899
+#: templates/js/translated/part.js:1686 templates/js/translated/stock.js:1056
msgid "Delete test result"
msgstr ""
@@ -7898,6 +8295,10 @@ msgstr ""
msgid "Single Price Difference"
msgstr ""
+#: templates/js/translated/plugin.js:22
+msgid "The Plugin was installed"
+msgstr ""
+
#: templates/js/translated/report.js:67
msgid "items selected"
msgstr ""
@@ -7964,300 +8365,316 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/stock.js:71
+#: templates/js/translated/stock.js:72
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:89 templates/js/translated/stock.js:168
+#: templates/js/translated/stock.js:90 templates/js/translated/stock.js:172
msgid "Next available serial number"
msgstr ""
-#: templates/js/translated/stock.js:91 templates/js/translated/stock.js:170
+#: templates/js/translated/stock.js:92 templates/js/translated/stock.js:174
msgid "Latest serial number"
msgstr ""
-#: templates/js/translated/stock.js:105
+#: templates/js/translated/stock.js:100
+msgid "Confirm Stock Serialization"
+msgstr ""
+
+#: templates/js/translated/stock.js:109
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:141
+#: templates/js/translated/stock.js:145
msgid "New Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:181
+#: templates/js/translated/stock.js:185
msgid "This part cannot be serialized"
msgstr ""
-#: templates/js/translated/stock.js:220
+#: templates/js/translated/stock.js:224
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: templates/js/translated/stock.js:226
+#: templates/js/translated/stock.js:230
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: templates/js/translated/stock.js:369
+#: templates/js/translated/stock.js:373
msgid "Created new stock item"
msgstr ""
-#: templates/js/translated/stock.js:382
+#: templates/js/translated/stock.js:386
msgid "Created multiple stock items"
msgstr ""
-#: templates/js/translated/stock.js:407
+#: templates/js/translated/stock.js:411
msgid "Find Serial Number"
msgstr ""
-#: templates/js/translated/stock.js:411 templates/js/translated/stock.js:412
+#: templates/js/translated/stock.js:415 templates/js/translated/stock.js:416
msgid "Enter serial number"
msgstr ""
-#: templates/js/translated/stock.js:428
+#: templates/js/translated/stock.js:432
msgid "Enter a serial number"
msgstr ""
-#: templates/js/translated/stock.js:448
+#: templates/js/translated/stock.js:452
msgid "No matching serial number"
msgstr ""
-#: templates/js/translated/stock.js:457
+#: templates/js/translated/stock.js:461
msgid "More than one matching result found"
msgstr ""
-#: templates/js/translated/stock.js:502
+#: templates/js/translated/stock.js:506
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:513
+#: templates/js/translated/stock.js:517
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:514
+#: templates/js/translated/stock.js:518
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:556
+#: templates/js/translated/stock.js:627
+msgid "Confirm stock assignment"
+msgstr ""
+
+#: templates/js/translated/stock.js:628
+msgid "Assign Stock to Customer"
+msgstr ""
+
+#: templates/js/translated/stock.js:713
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:557
+#: templates/js/translated/stock.js:714
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:563
+#: templates/js/translated/stock.js:720
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:564
+#: templates/js/translated/stock.js:721
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:568
+#: templates/js/translated/stock.js:725
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:569
+#: templates/js/translated/stock.js:726
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:573
+#: templates/js/translated/stock.js:730
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:574 users/models.py:200
+#: templates/js/translated/stock.js:731 users/models.py:202
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:578 templates/stock_table.html:56
+#: templates/js/translated/stock.js:735 templates/stock_table.html:57
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:667
+#: templates/js/translated/stock.js:824
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:667
+#: templates/js/translated/stock.js:824
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:707
+#: templates/js/translated/stock.js:864
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:865
+#: templates/js/translated/stock.js:1022
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:867
+#: templates/js/translated/stock.js:1024
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:872
+#: templates/js/translated/stock.js:1029
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:894
+#: templates/js/translated/stock.js:1051
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:920
+#: templates/js/translated/stock.js:1077
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:977
+#: templates/js/translated/stock.js:1134
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:1084
+#: templates/js/translated/stock.js:1241
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:1088
+#: templates/js/translated/stock.js:1245
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:1092
-msgid "Shipped to customer"
-msgstr ""
-
-#: templates/js/translated/stock.js:1096
+#: templates/js/translated/stock.js:1253
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:1102
+#: templates/js/translated/stock.js:1259
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:1260
+#: templates/js/translated/stock.js:1417
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1265
+#: templates/js/translated/stock.js:1422
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1268
+#: templates/js/translated/stock.js:1425
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1272
+#: templates/js/translated/stock.js:1429
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1274
+#: templates/js/translated/stock.js:1431
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1278
-msgid "Stock item has been allocated"
+#: templates/js/translated/stock.js:1437
+msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1282
+#: templates/js/translated/stock.js:1439
+msgid "Stock item has been fully allocated"
+msgstr ""
+
+#: templates/js/translated/stock.js:1441
+msgid "Stock item has been partially allocated"
+msgstr ""
+
+#: templates/js/translated/stock.js:1446
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1289
+#: templates/js/translated/stock.js:1453
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1291
+#: templates/js/translated/stock.js:1455
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1293
+#: templates/js/translated/stock.js:1457
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1297
-#: templates/js/translated/table_filters.js:183
+#: templates/js/translated/stock.js:1461
+#: templates/js/translated/table_filters.js:188
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1347
+#: templates/js/translated/stock.js:1511
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1420
+#: templates/js/translated/stock.js:1584
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1458
+#: templates/js/translated/stock.js:1622
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1479 templates/js/translated/stock.js:1527
+#: templates/js/translated/stock.js:1643 templates/js/translated/stock.js:1691
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1567
+#: templates/js/translated/stock.js:1731
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1594
+#: templates/js/translated/stock.js:1758
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:1596
+#: templates/js/translated/stock.js:1760
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:1770
+#: templates/js/translated/stock.js:1945
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:1784
+#: templates/js/translated/stock.js:1959
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:1785
+#: templates/js/translated/stock.js:1960
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:2009
+#: templates/js/translated/stock.js:2184
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:2031
+#: templates/js/translated/stock.js:2206
msgid "Details"
msgstr ""
-#: templates/js/translated/stock.js:2056
+#: templates/js/translated/stock.js:2231
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2075
+#: templates/js/translated/stock.js:2250
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2094
+#: templates/js/translated/stock.js:2269
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2112
+#: templates/js/translated/stock.js:2287
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2135
+#: templates/js/translated/stock.js:2310
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2143
+#: templates/js/translated/stock.js:2318
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2184
+#: templates/js/translated/stock.js:2359
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2185
+#: templates/js/translated/stock.js:2360
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2236
+#: templates/js/translated/stock.js:2411
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2287
+#: templates/js/translated/stock.js:2462
msgid "Uninstall Stock Item"
msgstr ""
@@ -8278,7 +8695,7 @@ msgid "Allow Variant Stock"
msgstr ""
#: templates/js/translated/table_filters.js:110
-#: templates/js/translated/table_filters.js:178
+#: templates/js/translated/table_filters.js:183
msgid "Include sublocations"
msgstr ""
@@ -8288,54 +8705,54 @@ msgstr ""
#: templates/js/translated/table_filters.js:121
#: templates/js/translated/table_filters.js:122
-#: templates/js/translated/table_filters.js:358
+#: templates/js/translated/table_filters.js:389
msgid "Include subcategories"
msgstr ""
#: templates/js/translated/table_filters.js:126
-#: templates/js/translated/table_filters.js:393
+#: templates/js/translated/table_filters.js:424
msgid "Subscribed"
msgstr ""
#: templates/js/translated/table_filters.js:136
-#: templates/js/translated/table_filters.js:213
+#: templates/js/translated/table_filters.js:218
msgid "Is Serialized"
msgstr ""
#: templates/js/translated/table_filters.js:139
-#: templates/js/translated/table_filters.js:220
+#: templates/js/translated/table_filters.js:225
msgid "Serial number GTE"
msgstr ""
#: templates/js/translated/table_filters.js:140
-#: templates/js/translated/table_filters.js:221
+#: templates/js/translated/table_filters.js:226
msgid "Serial number greater than or equal to"
msgstr ""
#: templates/js/translated/table_filters.js:143
-#: templates/js/translated/table_filters.js:224
+#: templates/js/translated/table_filters.js:229
msgid "Serial number LTE"
msgstr ""
#: templates/js/translated/table_filters.js:144
-#: templates/js/translated/table_filters.js:225
+#: templates/js/translated/table_filters.js:230
msgid "Serial number less than or equal to"
msgstr ""
#: templates/js/translated/table_filters.js:147
#: templates/js/translated/table_filters.js:148
-#: templates/js/translated/table_filters.js:216
-#: templates/js/translated/table_filters.js:217
+#: templates/js/translated/table_filters.js:221
+#: templates/js/translated/table_filters.js:222
msgid "Serial number"
msgstr ""
#: templates/js/translated/table_filters.js:152
-#: templates/js/translated/table_filters.js:234
+#: templates/js/translated/table_filters.js:239
msgid "Batch code"
msgstr ""
#: templates/js/translated/table_filters.js:163
-#: templates/js/translated/table_filters.js:348
+#: templates/js/translated/table_filters.js:379
msgid "Active parts"
msgstr ""
@@ -8356,101 +8773,111 @@ msgid "Item has been allocated"
msgstr ""
#: templates/js/translated/table_filters.js:179
-msgid "Include stock in sublocations"
+msgid "Stock is available for use"
msgstr ""
#: templates/js/translated/table_filters.js:184
-msgid "Show stock items which are depleted"
+msgid "Include stock in sublocations"
msgstr ""
#: templates/js/translated/table_filters.js:189
-msgid "Show items which are in stock"
-msgstr ""
-
-#: templates/js/translated/table_filters.js:193
-msgid "In Production"
+msgid "Show stock items which are depleted"
msgstr ""
#: templates/js/translated/table_filters.js:194
-msgid "Show items which are in production"
+msgid "Show items which are in stock"
msgstr ""
#: templates/js/translated/table_filters.js:198
-msgid "Include Variants"
+msgid "In Production"
msgstr ""
#: templates/js/translated/table_filters.js:199
-msgid "Include stock items for variant parts"
+msgid "Show items which are in production"
msgstr ""
#: templates/js/translated/table_filters.js:203
-msgid "Installed"
+msgid "Include Variants"
msgstr ""
#: templates/js/translated/table_filters.js:204
-msgid "Show stock items which are installed in another item"
+msgid "Include stock items for variant parts"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:208
+msgid "Installed"
msgstr ""
#: templates/js/translated/table_filters.js:209
+msgid "Show stock items which are installed in another item"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:214
msgid "Show items which have been assigned to a customer"
msgstr ""
-#: templates/js/translated/table_filters.js:229
-#: templates/js/translated/table_filters.js:230
+#: templates/js/translated/table_filters.js:234
+#: templates/js/translated/table_filters.js:235
msgid "Stock status"
msgstr ""
-#: templates/js/translated/table_filters.js:238
+#: templates/js/translated/table_filters.js:243
msgid "Has purchase price"
msgstr ""
-#: templates/js/translated/table_filters.js:239
+#: templates/js/translated/table_filters.js:244
msgid "Show stock items which have a purchase price set"
msgstr ""
-#: templates/js/translated/table_filters.js:248
+#: templates/js/translated/table_filters.js:253
msgid "Show stock items which have expired"
msgstr ""
-#: templates/js/translated/table_filters.js:254
+#: templates/js/translated/table_filters.js:259
msgid "Show stock which is close to expiring"
msgstr ""
-#: templates/js/translated/table_filters.js:285
+#: templates/js/translated/table_filters.js:290
msgid "Build status"
msgstr ""
-#: templates/js/translated/table_filters.js:313
-#: templates/js/translated/table_filters.js:330
+#: templates/js/translated/table_filters.js:303
+#: templates/js/translated/table_filters.js:344
+msgid "Assigned to me"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:320
+#: templates/js/translated/table_filters.js:331
+#: templates/js/translated/table_filters.js:352
msgid "Order status"
msgstr ""
-#: templates/js/translated/table_filters.js:318
-#: templates/js/translated/table_filters.js:335
+#: templates/js/translated/table_filters.js:336
+#: templates/js/translated/table_filters.js:357
msgid "Outstanding"
msgstr ""
-#: templates/js/translated/table_filters.js:359
+#: templates/js/translated/table_filters.js:390
msgid "Include parts in subcategories"
msgstr ""
-#: templates/js/translated/table_filters.js:363
+#: templates/js/translated/table_filters.js:394
msgid "Has IPN"
msgstr ""
-#: templates/js/translated/table_filters.js:364
+#: templates/js/translated/table_filters.js:395
msgid "Part has internal part number"
msgstr ""
-#: templates/js/translated/table_filters.js:369
+#: templates/js/translated/table_filters.js:400
msgid "Show active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:377
+#: templates/js/translated/table_filters.js:408
msgid "Stock available"
msgstr ""
-#: templates/js/translated/table_filters.js:405
+#: templates/js/translated/table_filters.js:436
msgid "Purchasable"
msgstr ""
@@ -8507,27 +8934,23 @@ msgstr ""
msgid "All"
msgstr ""
-#: templates/navbar.html:40
+#: templates/navbar.html:42
msgid "Buy"
msgstr ""
-#: templates/navbar.html:52
+#: templates/navbar.html:54
msgid "Sell"
msgstr ""
-#: templates/navbar.html:86 users/models.py:39
-msgid "Admin"
-msgstr ""
-
-#: templates/navbar.html:88
+#: templates/navbar.html:113
msgid "Logout"
msgstr ""
-#: templates/navbar.html:90
+#: templates/navbar.html:115
msgid "Login"
msgstr ""
-#: templates/navbar.html:111
+#: templates/navbar.html:136
msgid "About InvenTree"
msgstr ""
@@ -8639,15 +9062,15 @@ msgstr ""
msgid "Order selected items"
msgstr ""
-#: templates/stock_table.html:53
+#: templates/stock_table.html:54
msgid "Change status"
msgstr ""
-#: templates/stock_table.html:53
+#: templates/stock_table.html:54
msgid "Change stock status"
msgstr ""
-#: templates/stock_table.html:56
+#: templates/stock_table.html:57
msgid "Delete selected items"
msgstr ""
@@ -8683,35 +9106,35 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:187
+#: users/models.py:189
msgid "Permission set"
msgstr ""
-#: users/models.py:195
+#: users/models.py:197
msgid "Group"
msgstr ""
-#: users/models.py:198
+#: users/models.py:200
msgid "View"
msgstr ""
-#: users/models.py:198
+#: users/models.py:200
msgid "Permission to view items"
msgstr ""
-#: users/models.py:200
+#: users/models.py:202
msgid "Permission to add items"
msgstr ""
-#: users/models.py:202
+#: users/models.py:204
msgid "Change"
msgstr ""
-#: users/models.py:202
+#: users/models.py:204
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:204
+#: users/models.py:206
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 ce000b6277..22b38b1665 100644
--- a/InvenTree/locale/pl/LC_MESSAGES/django.po
+++ b/InvenTree/locale/pl/LC_MESSAGES/django.po
@@ -1,9 +1,10 @@
+#: templates/js/translated/order.js:1973
msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-12-03 10:37+0000\n"
-"PO-Revision-Date: 2021-12-03 11:26\n"
+"POT-Creation-Date: 2021-12-08 23:43+0000\n"
+"PO-Revision-Date: 2021-12-08 23:47\n"
"Last-Translator: \n"
"Language-Team: Polish\n"
"Language: pl_PL\n"
@@ -34,8 +35,8 @@ msgid "Enter date"
msgstr "Wprowadź dane"
#: InvenTree/forms.py:120 build/forms.py:48 build/forms.py:69 build/forms.py:93
-#: order/forms.py:26 order/forms.py:37 order/forms.py:48 order/forms.py:59
-#: order/forms.py:70 part/forms.py:108 templates/account/email_confirm.html:20
+#: order/forms.py:24 order/forms.py:35 order/forms.py:46 order/forms.py:57
+#: part/forms.py:108 templates/account/email_confirm.html:20
#: templates/js/translated/forms.js:595
msgid "Confirm"
msgstr "Potwierdź"
@@ -85,8 +86,8 @@ msgstr ""
msgid "Duplicate serial: {n}"
msgstr "Powtórzony numer seryjny: {n}"
-#: InvenTree/helpers.py:437 order/models.py:318 order/models.py:440
-#: stock/views.py:1264
+#: InvenTree/helpers.py:437 order/models.py:279 order/models.py:420
+#: stock/views.py:1231
msgid "Invalid quantity provided"
msgstr "Podano nieprawidłową ilość"
@@ -122,7 +123,7 @@ msgstr ""
msgid "Missing external link"
msgstr ""
-#: InvenTree/models.py:132 stock/models.py:1864
+#: InvenTree/models.py:132 stock/models.py:1852
#: templates/js/translated/attachment.js:117
msgid "Attachment"
msgstr "Załącznik"
@@ -132,7 +133,7 @@ msgid "Select file to attach"
msgstr "Wybierz plik do załączenia"
#: InvenTree/models.py:139 company/models.py:131 company/models.py:348
-#: company/models.py:564 order/models.py:163 part/models.py:797
+#: company/models.py:564 order/models.py:124 part/models.py:797
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:537
#: templates/js/translated/company.js:826 templates/js/translated/part.js:1258
@@ -140,7 +141,7 @@ msgid "Link"
msgstr "Łącze"
#: InvenTree/models.py:140 build/models.py:330 part/models.py:798
-#: stock/models.py:530
+#: stock/models.py:524
msgid "Link to external URL"
msgstr "Link do zewnętrznego adresu URL"
@@ -152,10 +153,10 @@ msgstr "Komentarz"
msgid "File comment"
msgstr "Komentarz pliku"
-#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1185
-#: common/models.py:1186 part/models.py:2205 part/models.py:2225
+#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1213
+#: common/models.py:1214 part/models.py:2205 part/models.py:2225
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2166
+#: templates/js/translated/stock.js:2341
msgid "User"
msgstr "Użytkownik"
@@ -194,10 +195,15 @@ msgstr "Błędny wybór"
#: InvenTree/models.py:277 InvenTree/models.py:278 company/models.py:415
#: label/models.py:112 part/models.py:741 part/models.py:2389
-#: report/models.py:181 templates/InvenTree/settings/settings.html:259
+#: plugin/models.py:39 report/models.py:181
+#: templates/InvenTree/settings/mixins/urls.html:11
+#: templates/InvenTree/settings/plugin.html:47
+#: templates/InvenTree/settings/plugin.html:124
+#: templates/InvenTree/settings/plugin_settings.html:23
+#: templates/InvenTree/settings/settings.html:268
#: templates/js/translated/company.js:638 templates/js/translated/part.js:506
#: templates/js/translated/part.js:643 templates/js/translated/part.js:1565
-#: templates/js/translated/stock.js:1959
+#: templates/js/translated/stock.js:2134
msgid "Name"
msgstr "Nazwa"
@@ -206,22 +212,23 @@ msgstr "Nazwa"
#: company/models.py:570 company/templates/company/company_base.html:68
#: company/templates/company/manufacturer_part.html:76
#: company/templates/company/supplier_part.html:73 label/models.py:119
-#: order/models.py:161 part/models.py:764 part/templates/part/category.html:70
+#: order/models.py:122 part/models.py:764 part/templates/part/category.html:70
#: part/templates/part/part_base.html:163
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:553 report/models.py:592
#: report/templates/report/inventree_build_order_base.html:118
-#: stock/templates/stock/location.html:89 templates/js/translated/bom.js:215
-#: templates/js/translated/bom.js:428 templates/js/translated/build.js:1621
-#: templates/js/translated/company.js:345
+#: stock/templates/stock/location.html:89
+#: templates/InvenTree/settings/plugin_settings.html:33
+#: templates/js/translated/bom.js:215 templates/js/translated/bom.js:428
+#: templates/js/translated/build.js:1627 templates/js/translated/company.js:345
#: templates/js/translated/company.js:548
-#: templates/js/translated/company.js:837 templates/js/translated/order.js:680
-#: templates/js/translated/order.js:854 templates/js/translated/order.js:1090
+#: templates/js/translated/company.js:837 templates/js/translated/order.js:836
+#: templates/js/translated/order.js:1019 templates/js/translated/order.js:1258
#: templates/js/translated/part.js:565 templates/js/translated/part.js:933
#: templates/js/translated/part.js:1018 templates/js/translated/part.js:1188
#: templates/js/translated/part.js:1584 templates/js/translated/part.js:1653
-#: templates/js/translated/stock.js:1233 templates/js/translated/stock.js:1971
-#: templates/js/translated/stock.js:2016
+#: templates/js/translated/stock.js:1390 templates/js/translated/stock.js:2146
+#: templates/js/translated/stock.js:2191
msgid "Description"
msgstr "Opis"
@@ -241,83 +248,83 @@ msgstr "Numer musi być prawidłowy"
msgid "Filename"
msgstr "Nazwa pliku"
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:689
msgid "German"
msgstr "Niemiecki"
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:690
msgid "Greek"
msgstr "Grecki"
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:691
msgid "English"
msgstr "Angielski"
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:692
msgid "Spanish"
msgstr "Hiszpański"
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:693
msgid "Spanish (Mexican)"
msgstr "Hiszpański (Meksyk)"
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:694
msgid "French"
msgstr "Francuski"
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:695
msgid "Hebrew"
msgstr "Hebrajski"
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:696
msgid "Italian"
msgstr "Włoski"
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:697
msgid "Japanese"
msgstr "Japoński"
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:698
msgid "Korean"
msgstr "Koreański"
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:699
msgid "Dutch"
msgstr "Holenderski"
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:700
msgid "Norwegian"
msgstr "Norweski"
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:701
msgid "Polish"
msgstr "Polski"
-#: InvenTree/settings.py:683
+#: InvenTree/settings.py:702
msgid "Portugese"
msgstr "Portugalski"
-#: InvenTree/settings.py:684
+#: InvenTree/settings.py:703
msgid "Russian"
msgstr "Rosyjski"
-#: InvenTree/settings.py:685
+#: InvenTree/settings.py:704
msgid "Swedish"
msgstr "Szwedzki"
-#: InvenTree/settings.py:686
+#: InvenTree/settings.py:705
msgid "Thai"
msgstr "Tajski"
-#: InvenTree/settings.py:687
+#: InvenTree/settings.py:706
msgid "Turkish"
msgstr "Turecki"
-#: InvenTree/settings.py:688
+#: InvenTree/settings.py:707
msgid "Vietnamese"
msgstr "Wietnamski"
-#: InvenTree/settings.py:689
+#: InvenTree/settings.py:708
msgid "Chinese"
msgstr "Chiński"
@@ -334,7 +341,7 @@ msgid "InvenTree system health checks failed"
msgstr ""
#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142
-#: InvenTree/status_codes.py:311
+#: InvenTree/status_codes.py:311 templates/js/translated/table_filters.js:313
msgid "Pending"
msgstr "W toku"
@@ -343,6 +350,8 @@ msgid "Placed"
msgstr "Umieszczony"
#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:314
+#: order/templates/order/order_base.html:128
+#: order/templates/order/sales_order_base.html:132
msgid "Complete"
msgstr "Zakończono"
@@ -361,8 +370,8 @@ msgstr "Zagubiono"
msgid "Returned"
msgstr "Zwrócone"
-#: InvenTree/status_codes.py:143
-#: order/templates/order/sales_order_base.html:148
+#: InvenTree/status_codes.py:143 order/models.py:939
+#: templates/js/translated/order.js:1980 templates/js/translated/order.js:2255
msgid "Shipped"
msgstr "Wysłane"
@@ -442,7 +451,7 @@ msgstr ""
msgid "Split child item"
msgstr "Podziel element podrzędny"
-#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:208
+#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:213
msgid "Sent to customer"
msgstr "Wyślij do klienta"
@@ -522,55 +531,55 @@ msgstr "Ustaw hasło"
msgid "Password fields must match"
msgstr "Hasła muszą być zgodne"
-#: InvenTree/views.py:883 templates/navbar.html:101
+#: InvenTree/views.py:883 templates/navbar.html:126
msgid "System Information"
msgstr "Informacja systemowa"
-#: barcodes/api.py:53 barcodes/api.py:150
+#: barcodes/api.py:54 barcodes/api.py:151
msgid "Must provide barcode_data parameter"
msgstr ""
-#: barcodes/api.py:126
+#: barcodes/api.py:127
msgid "No match found for barcode data"
msgstr ""
-#: barcodes/api.py:128
+#: barcodes/api.py:129
msgid "Match found for barcode data"
msgstr ""
-#: barcodes/api.py:153
+#: barcodes/api.py:154
msgid "Must provide stockitem parameter"
msgstr ""
-#: barcodes/api.py:160
+#: barcodes/api.py:161
msgid "No matching stock item found"
msgstr "Nie znaleziono pasujących stanów magazynowych"
-#: barcodes/api.py:190
-msgid "Barcode already matches StockItem object"
-msgstr "Kod kreskowy już pasuje do obiektu StockItem"
-
-#: barcodes/api.py:194
-msgid "Barcode already matches StockLocation object"
-msgstr "Kod kreskowy już pasuje do obiektu StockItem"
-
-#: barcodes/api.py:198
-msgid "Barcode already matches Part object"
-msgstr "Kod kreskowy już pasuje do obiektu StockItem"
-
-#: barcodes/api.py:204 barcodes/api.py:216
-msgid "Barcode hash already matches StockItem object"
+#: barcodes/api.py:191
+msgid "Barcode already matches Stock Item"
msgstr ""
-#: barcodes/api.py:222
-msgid "Barcode associated with StockItem"
+#: barcodes/api.py:195
+msgid "Barcode already matches Stock Location"
+msgstr ""
+
+#: barcodes/api.py:199
+msgid "Barcode already matches Part"
+msgstr ""
+
+#: barcodes/api.py:205 barcodes/api.py:217
+msgid "Barcode hash already matches Stock Item"
+msgstr ""
+
+#: barcodes/api.py:223
+msgid "Barcode associated with Stock Item"
msgstr ""
#: build/forms.py:36 build/models.py:1283
#: build/templates/build/build_base.html:132
-#: build/templates/build/detail.html:35 common/models.py:1225
+#: build/templates/build/detail.html:35 common/models.py:1253
#: company/forms.py:42 company/templates/company/supplier_part.html:251
-#: order/forms.py:102 order/models.py:729 order/models.py:991
+#: order/models.py:794 order/models.py:1205 order/serializers.py:810
#: order/templates/order/order_wizard/match_parts.html:30
#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:223
#: part/forms.py:239 part/forms.py:255 part/models.py:2576
@@ -582,20 +591,23 @@ msgstr ""
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:81
#: report/templates/report/inventree_test_report_base.html:139
-#: stock/forms.py:156 stock/serializers.py:291
+#: stock/forms.py:142 stock/serializers.py:293
#: stock/templates/stock/item_base.html:174
+#: stock/templates/stock/item_base.html:255
+#: stock/templates/stock/item_base.html:263
#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443
-#: templates/js/translated/build.js:235 templates/js/translated/build.js:435
-#: templates/js/translated/build.js:629 templates/js/translated/build.js:639
-#: templates/js/translated/build.js:1015 templates/js/translated/build.js:1362
+#: templates/js/translated/build.js:240 templates/js/translated/build.js:440
+#: templates/js/translated/build.js:634 templates/js/translated/build.js:644
+#: templates/js/translated/build.js:1020 templates/js/translated/build.js:1367
#: templates/js/translated/model_renderers.js:99
-#: templates/js/translated/order.js:891 templates/js/translated/order.js:1204
-#: templates/js/translated/order.js:1282 templates/js/translated/order.js:1289
-#: templates/js/translated/order.js:1378 templates/js/translated/order.js:1478
-#: templates/js/translated/part.js:843 templates/js/translated/part.js:1796
-#: templates/js/translated/part.js:1919 templates/js/translated/part.js:1997
-#: templates/js/translated/stock.js:378 templates/js/translated/stock.js:2151
-#: templates/js/translated/stock.js:2253
+#: templates/js/translated/order.js:101 templates/js/translated/order.js:1056
+#: templates/js/translated/order.js:1578 templates/js/translated/order.js:1859
+#: templates/js/translated/order.js:1947 templates/js/translated/order.js:2036
+#: templates/js/translated/order.js:2150 templates/js/translated/part.js:843
+#: templates/js/translated/part.js:1796 templates/js/translated/part.js:1919
+#: templates/js/translated/part.js:1997 templates/js/translated/stock.js:382
+#: templates/js/translated/stock.js:579 templates/js/translated/stock.js:2326
+#: templates/js/translated/stock.js:2428
msgid "Quantity"
msgstr "Ilość"
@@ -603,9 +615,9 @@ msgstr "Ilość"
msgid "Enter quantity for build output"
msgstr ""
-#: build/forms.py:41 order/forms.py:96 stock/forms.py:95
-#: stock/serializers.py:312 templates/js/translated/stock.js:225
-#: templates/js/translated/stock.js:379
+#: build/forms.py:41 order/serializers.py:814 stock/forms.py:81
+#: stock/serializers.py:314 templates/js/translated/stock.js:229
+#: templates/js/translated/stock.js:383
msgid "Serial Numbers"
msgstr "Numer seryjny"
@@ -640,17 +652,17 @@ msgstr ""
#: build/models.py:137 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:397
+#: templates/js/translated/build.js:402
msgid "Build Order"
msgstr "Zlecenie Budowy"
#: build/models.py:138 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
-#: order/templates/order/sales_order_detail.html:42
-#: order/templates/order/so_sidebar.html:7
+#: order/templates/order/sales_order_detail.html:92
+#: order/templates/order/so_sidebar.html:13
#: part/templates/part/part_sidebar.html:20 templates/InvenTree/index.html:221
#: templates/InvenTree/search.html:145
-#: templates/InvenTree/settings/sidebar.html:42 users/models.py:44
+#: templates/InvenTree/settings/sidebar.html:43 users/models.py:44
msgid "Build Orders"
msgstr "Zlecenia budowy"
@@ -658,13 +670,13 @@ msgstr "Zlecenia budowy"
msgid "Build Order Reference"
msgstr "Odwołanie do zamówienia wykonania"
-#: build/models.py:199 order/models.py:249 order/models.py:556
-#: order/models.py:736 part/models.py:2585
+#: build/models.py:199 order/models.py:210 order/models.py:536
+#: order/models.py:801 part/models.py:2585
#: part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1119
-#: templates/js/translated/order.js:885 templates/js/translated/order.js:1472
+#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1124
+#: templates/js/translated/order.js:1050 templates/js/translated/order.js:2144
msgid "Reference"
msgstr "Referencja"
@@ -683,7 +695,7 @@ msgstr "Zamówienie budowy, do którego budowa jest przypisana"
#: build/models.py:225 build/templates/build/build_base.html:77
#: build/templates/build/detail.html:30 company/models.py:705
-#: order/models.py:789 order/models.py:860
+#: order/models.py:854 order/models.py:928
#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357
#: part/models.py:2151 part/models.py:2167 part/models.py:2186
#: part/models.py:2203 part/models.py:2305 part/models.py:2427
@@ -698,14 +710,16 @@ msgstr "Zamówienie budowy, do którego budowa jest przypisana"
#: templates/email/build_order_required_stock.html:17
#: templates/email/low_stock_notification.html:16
#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:214
-#: templates/js/translated/bom.js:393 templates/js/translated/build.js:620
-#: templates/js/translated/build.js:988 templates/js/translated/build.js:1359
-#: templates/js/translated/build.js:1626 templates/js/translated/company.js:489
-#: templates/js/translated/company.js:746 templates/js/translated/order.js:426
-#: templates/js/translated/order.js:839 templates/js/translated/order.js:1456
-#: templates/js/translated/part.js:918 templates/js/translated/part.js:999
-#: templates/js/translated/part.js:1166 templates/js/translated/stock.js:590
-#: templates/js/translated/stock.js:1190 templates/js/translated/stock.js:2241
+#: templates/js/translated/bom.js:393 templates/js/translated/build.js:625
+#: templates/js/translated/build.js:993 templates/js/translated/build.js:1364
+#: templates/js/translated/build.js:1632 templates/js/translated/company.js:489
+#: templates/js/translated/company.js:746 templates/js/translated/order.js:84
+#: templates/js/translated/order.js:586 templates/js/translated/order.js:1004
+#: templates/js/translated/order.js:1576 templates/js/translated/order.js:1933
+#: templates/js/translated/order.js:2128 templates/js/translated/part.js:918
+#: templates/js/translated/part.js:999 templates/js/translated/part.js:1166
+#: templates/js/translated/stock.js:553 templates/js/translated/stock.js:747
+#: templates/js/translated/stock.js:1347 templates/js/translated/stock.js:2416
msgid "Part"
msgstr "Część"
@@ -721,7 +735,8 @@ msgstr "Odwołanie do zamówienia sprzedaży"
msgid "SalesOrder to which this build is allocated"
msgstr "Zamówienie sprzedaży, do którego budowa jest przypisana"
-#: build/models.py:247 templates/js/translated/build.js:1347
+#: build/models.py:247 templates/js/translated/build.js:1352
+#: templates/js/translated/order.js:1564
msgid "Source Location"
msgstr "Lokalizacja źródła"
@@ -761,7 +776,7 @@ msgstr "Status budowania"
msgid "Build status code"
msgstr "Kod statusu budowania"
-#: build/models.py:285 stock/models.py:534
+#: build/models.py:285 stock/models.py:528
msgid "Batch Code"
msgstr "Kod partii"
@@ -769,12 +784,12 @@ msgstr "Kod partii"
msgid "Batch code for this build output"
msgstr "Kod partii dla wyjścia budowy"
-#: build/models.py:292 order/models.py:165 part/models.py:936
-#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1103
+#: build/models.py:292 order/models.py:126 part/models.py:936
+#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1271
msgid "Creation Date"
msgstr "Data utworzenia"
-#: build/models.py:296 order/models.py:578
+#: build/models.py:296 order/models.py:558
msgid "Target completion date"
msgstr "Docelowy termin zakończenia"
@@ -782,8 +797,8 @@ msgstr "Docelowy termin zakończenia"
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/models.py:300 order/models.py:291
-#: templates/js/translated/build.js:1697
+#: build/models.py:300 order/models.py:252
+#: templates/js/translated/build.js:1703
msgid "Completion Date"
msgstr "Data zakończenia"
@@ -791,7 +806,7 @@ msgstr "Data zakończenia"
msgid "completed by"
msgstr "zrealizowane przez"
-#: build/models.py:314 templates/js/translated/build.js:1668
+#: build/models.py:314 templates/js/translated/build.js:1674
msgid "Issued by"
msgstr "Wydany przez"
@@ -800,11 +815,11 @@ msgid "User who issued this build order"
msgstr "Użytkownik, który wydał to zamówienie"
#: build/models.py:323 build/templates/build/build_base.html:185
-#: build/templates/build/detail.html:116 order/models.py:179
-#: order/templates/order/order_base.html:158
-#: order/templates/order/sales_order_base.html:162 part/models.py:940
+#: build/templates/build/detail.html:116 order/models.py:140
+#: order/templates/order/order_base.html:170
+#: order/templates/order/sales_order_base.html:182 part/models.py:940
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:1680 templates/js/translated/order.js:699
+#: templates/js/translated/build.js:1686 templates/js/translated/order.js:864
msgid "Responsible"
msgstr "Odpowiedzialny"
@@ -815,7 +830,7 @@ msgstr "Użytkownik odpowiedzialny za to zamówienie budowy"
#: build/models.py:329 build/templates/build/detail.html:102
#: company/templates/company/manufacturer_part.html:102
#: company/templates/company/supplier_part.html:126
-#: part/templates/part/part_base.html:354 stock/models.py:528
+#: part/templates/part/part_base.html:354 stock/models.py:522
#: stock/templates/stock/item_base.html:374
msgid "External Link"
msgstr "Link Zewnętrzny"
@@ -823,18 +838,19 @@ msgstr "Link Zewnętrzny"
#: build/models.py:334 build/serializers.py:201
#: build/templates/build/sidebar.html:21 company/models.py:142
#: company/models.py:577 company/templates/company/sidebar.html:25
-#: order/models.py:183 order/models.py:738
+#: order/models.py:144 order/models.py:803 order/models.py:1049
#: order/templates/order/po_sidebar.html:11
-#: order/templates/order/so_sidebar.html:11 part/models.py:925
+#: order/templates/order/so_sidebar.html:17 part/models.py:925
#: part/templates/part/detail.html:116 part/templates/part/part_sidebar.html:50
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/forms.py:154 stock/forms.py:204 stock/forms.py:238 stock/models.py:600
-#: stock/models.py:1764 stock/models.py:1870 stock/serializers.py:330
-#: stock/serializers.py:588 stock/templates/stock/stock_sidebar.html:21
+#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:594
+#: stock/models.py:1752 stock/models.py:1858 stock/serializers.py:332
+#: stock/serializers.py:624 stock/serializers.py:711
+#: stock/templates/stock/stock_sidebar.html:21
#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599
-#: templates/js/translated/company.js:842 templates/js/translated/order.js:984
-#: templates/js/translated/order.js:1582 templates/js/translated/stock.js:973
-#: templates/js/translated/stock.js:1452
+#: templates/js/translated/company.js:842 templates/js/translated/order.js:1149
+#: templates/js/translated/order.js:1445 templates/js/translated/order.js:2280
+#: templates/js/translated/stock.js:1130 templates/js/translated/stock.js:1616
msgid "Notes"
msgstr "Uwagi"
@@ -867,7 +883,7 @@ msgstr ""
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1133 order/models.py:964
+#: build/models.py:1133 order/models.py:1165
msgid "Allocation quantity must be greater than zero"
msgstr "Alokowana ilość musi być większa niż zero"
@@ -880,8 +896,8 @@ msgid "Selected stock item not found in BOM"
msgstr ""
#: build/models.py:1253 stock/templates/stock/item_base.html:346
-#: templates/InvenTree/search.html:143 templates/js/translated/build.js:1599
-#: templates/navbar.html:33
+#: templates/InvenTree/search.html:143 templates/js/translated/build.js:1605
+#: templates/navbar.html:35
msgid "Build"
msgstr "Budowa"
@@ -889,14 +905,17 @@ msgstr "Budowa"
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1270 build/serializers.py:328
+#: build/models.py:1270 build/serializers.py:328 order/serializers.py:690
+#: order/serializers.py:708 stock/serializers.py:562
#: stock/templates/stock/item_base.html:8
#: stock/templates/stock/item_base.html:16
#: stock/templates/stock/item_base.html:368
-#: templates/js/translated/build.js:408 templates/js/translated/build.js:413
-#: templates/js/translated/build.js:1361 templates/js/translated/build.js:1742
-#: templates/js/translated/order.js:1177 templates/js/translated/order.js:1182
-#: templates/js/translated/stock.js:2102
+#: templates/js/translated/build.js:413 templates/js/translated/build.js:418
+#: templates/js/translated/build.js:1366 templates/js/translated/build.js:1748
+#: templates/js/translated/order.js:85 templates/js/translated/order.js:1577
+#: templates/js/translated/order.js:1832 templates/js/translated/order.js:1837
+#: templates/js/translated/order.js:1940 templates/js/translated/order.js:2030
+#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:2277
msgid "Stock Item"
msgstr "Element magazynowy"
@@ -936,16 +955,17 @@ msgstr ""
msgid "This build output is not fully allocated"
msgstr ""
-#: build/serializers.py:190 order/serializers.py:228 order/serializers.py:296
-#: stock/forms.py:236 stock/serializers.py:323 stock/serializers.py:690
+#: build/serializers.py:190 order/serializers.py:226 order/serializers.py:294
+#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:813
#: stock/templates/stock/item_base.html:314
#: templates/js/translated/barcode.js:384
-#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:420
-#: templates/js/translated/build.js:1027 templates/js/translated/order.js:348
-#: templates/js/translated/order.js:1189 templates/js/translated/order.js:1297
-#: templates/js/translated/order.js:1303 templates/js/translated/part.js:177
-#: templates/js/translated/stock.js:592 templates/js/translated/stock.js:1333
-#: templates/js/translated/stock.js:2043
+#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:425
+#: templates/js/translated/build.js:1032 templates/js/translated/order.js:508
+#: templates/js/translated/order.js:1844 templates/js/translated/order.js:1955
+#: templates/js/translated/order.js:1963 templates/js/translated/order.js:2044
+#: templates/js/translated/part.js:177 templates/js/translated/stock.js:555
+#: templates/js/translated/stock.js:749 templates/js/translated/stock.js:1497
+#: templates/js/translated/stock.js:2218
msgid "Location"
msgstr "Lokalizacja"
@@ -954,12 +974,12 @@ msgid "Location for completed build outputs"
msgstr ""
#: build/serializers.py:197 build/templates/build/build_base.html:137
-#: build/templates/build/detail.html:63 order/models.py:572
-#: order/serializers.py:249 stock/templates/stock/item_base.html:180
-#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1655
-#: templates/js/translated/order.js:431 templates/js/translated/order.js:1095
-#: templates/js/translated/stock.js:1308 templates/js/translated/stock.js:2120
-#: templates/js/translated/stock.js:2269
+#: build/templates/build/detail.html:63 order/models.py:552
+#: order/serializers.py:247 stock/templates/stock/item_base.html:180
+#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1661
+#: templates/js/translated/order.js:591 templates/js/translated/order.js:840
+#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1472
+#: templates/js/translated/stock.js:2295 templates/js/translated/stock.js:2444
msgid "Status"
msgstr "Status"
@@ -984,16 +1004,16 @@ msgstr ""
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:334
+#: build/serializers.py:334 stock/serializers.py:569
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:348 order/models.py:316 order/serializers.py:242
-#: stock/models.py:371 stock/models.py:1093 stock/serializers.py:303
+#: build/serializers.py:348 order/models.py:277 order/serializers.py:240
+#: stock/models.py:365 stock/models.py:1081 stock/serializers.py:305
msgid "Quantity must be greater than zero"
msgstr "Ilość musi być większa niż zero"
-#: build/serializers.py:390
+#: build/serializers.py:390 order/serializers.py:741
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
@@ -1006,7 +1026,7 @@ msgstr ""
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:431
+#: build/serializers.py:431 order/serializers.py:984
msgid "Allocation items must be provided"
msgstr ""
@@ -1079,11 +1099,11 @@ msgstr ""
#: build/templates/build/build_base.html:146
#: build/templates/build/detail.html:132
-#: order/templates/order/order_base.html:144
-#: order/templates/order/sales_order_base.html:141
+#: order/templates/order/order_base.html:156
+#: order/templates/order/sales_order_base.html:163
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:1692 templates/js/translated/order.js:689
-#: templates/js/translated/order.js:1108
+#: templates/js/translated/build.js:1698 templates/js/translated/order.js:854
+#: templates/js/translated/order.js:1276
msgid "Target Date"
msgstr "Data docelowa"
@@ -1096,28 +1116,28 @@ msgstr ""
#: build/templates/build/build_base.html:196
#: order/templates/order/order_base.html:98
#: order/templates/order/sales_order_base.html:93
-#: templates/js/translated/table_filters.js:294
-#: templates/js/translated/table_filters.js:322
-#: templates/js/translated/table_filters.js:339
+#: templates/js/translated/table_filters.js:299
+#: templates/js/translated/table_filters.js:340
+#: templates/js/translated/table_filters.js:361
msgid "Overdue"
msgstr "Zaległe"
#: build/templates/build/build_base.html:158
#: build/templates/build/detail.html:68 build/templates/build/detail.html:143
-#: templates/js/translated/build.js:1641
-#: templates/js/translated/table_filters.js:304
+#: order/templates/order/sales_order_base.html:170
+#: templates/js/translated/build.js:1647
+#: templates/js/translated/table_filters.js:370
msgid "Completed"
msgstr "Zakończone"
#: build/templates/build/build_base.html:171
-#: build/templates/build/detail.html:95 order/models.py:857
-#: order/templates/order/sales_order_base.html:9
+#: build/templates/build/detail.html:95 order/models.py:925
+#: order/models.py:1021 order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
-#: order/templates/order/sales_order_ship.html:25
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:308
-#: templates/js/translated/order.js:1050
+#: templates/js/translated/order.js:1218
msgid "Sales Order"
msgstr "Zamówienie zakupu"
@@ -1191,8 +1211,8 @@ msgstr "Źródło magazynu"
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:50 order/models.py:811 stock/forms.py:150
-#: templates/js/translated/order.js:432 templates/js/translated/order.js:973
+#: build/templates/build/detail.html:50 order/models.py:876 stock/forms.py:136
+#: templates/js/translated/order.js:592 templates/js/translated/order.js:1138
msgid "Destination"
msgstr "Przeznaczenie"
@@ -1200,22 +1220,22 @@ msgstr "Przeznaczenie"
msgid "Destination location not specified"
msgstr "Nie określono lokalizacji docelowej"
-#: build/templates/build/detail.html:74 templates/js/translated/build.js:647
+#: build/templates/build/detail.html:74 templates/js/translated/build.js:652
msgid "Allocated Parts"
msgstr ""
#: build/templates/build/detail.html:81
#: stock/templates/stock/item_base.html:332
-#: templates/js/translated/stock.js:1322 templates/js/translated/stock.js:2276
+#: templates/js/translated/stock.js:1486 templates/js/translated/stock.js:2451
#: templates/js/translated/table_filters.js:151
-#: templates/js/translated/table_filters.js:233
+#: templates/js/translated/table_filters.js:238
msgid "Batch"
msgstr "Partia"
#: build/templates/build/detail.html:127
-#: order/templates/order/order_base.html:131
-#: order/templates/order/sales_order_base.html:135
-#: templates/js/translated/build.js:1663
+#: order/templates/order/order_base.html:143
+#: order/templates/order/sales_order_base.html:157
+#: templates/js/translated/build.js:1669
msgid "Created"
msgstr "Utworzony"
@@ -1235,7 +1255,7 @@ msgstr ""
msgid "Allocate Stock to Build"
msgstr "Przydziel zapasy do budowy"
-#: build/templates/build/detail.html:177 templates/js/translated/build.js:1202
+#: build/templates/build/detail.html:177 templates/js/translated/build.js:1207
msgid "Unallocate stock"
msgstr "Cofnij przydział zapasów"
@@ -1257,7 +1277,7 @@ msgstr "Zamów wymagane komponenty"
#: build/templates/build/detail.html:185
#: company/templates/company/detail.html:38
-#: company/templates/company/detail.html:85 order/views.py:509
+#: company/templates/company/detail.html:85 order/views.py:463
#: part/templates/part/category.html:173
msgid "Order Parts"
msgstr "Zamów części"
@@ -1309,8 +1329,8 @@ msgstr ""
#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:60
-#: order/templates/order/sales_order_detail.html:52
-#: order/templates/order/so_sidebar.html:9 part/templates/part/detail.html:193
+#: order/templates/order/sales_order_detail.html:107
+#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:193
#: part/templates/part/part_sidebar.html:48 stock/templates/stock/item.html:95
#: stock/templates/stock/stock_sidebar.html:19
msgid "Attachments"
@@ -1325,8 +1345,8 @@ msgstr "Notatki tworzenia"
#: company/templates/company/detail.html:215
#: order/templates/order/purchase_order_detail.html:80
#: order/templates/order/purchase_order_detail.html:108
-#: order/templates/order/sales_order_detail.html:72
-#: order/templates/order/sales_order_detail.html:99
+#: order/templates/order/sales_order_detail.html:127
+#: order/templates/order/sales_order_detail.html:186
#: part/templates/part/detail.html:120 stock/templates/stock/item.html:115
#: stock/templates/stock/item.html:205
msgid "Edit Notes"
@@ -1384,7 +1404,7 @@ msgstr "Utwórz zlecenie budowy"
msgid "Maximum output quantity is "
msgstr ""
-#: build/views.py:122 stock/serializers.py:361 stock/views.py:1290
+#: build/views.py:122 stock/serializers.py:363 stock/views.py:1257
msgid "Serial numbers already exist"
msgstr "Numer seryjny już istnieje"
@@ -1400,7 +1420,7 @@ msgstr ""
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:219 stock/views.py:385
+#: build/views.py:219 stock/views.py:352
msgid "Check the confirmation box"
msgstr ""
@@ -1469,7 +1489,7 @@ msgstr ""
msgid "Select {name} file to upload"
msgstr ""
-#: common/models.py:340 common/models.py:970 common/models.py:1178
+#: common/models.py:340 common/models.py:998 common/models.py:1206
msgid "Settings key (must be unique - case insensitive"
msgstr ""
@@ -1557,7 +1577,7 @@ msgstr "Pobierz z adresu URL"
msgid "Allow download of remote images and files from external URL"
msgstr "Zezwól na pobieranie zewnętrznych obrazów i plików z zewnętrznego URL"
-#: common/models.py:649 templates/InvenTree/settings/sidebar.html:30
+#: common/models.py:649 templates/InvenTree/settings/sidebar.html:31
msgid "Barcode Support"
msgstr "Obsługa kodu kreskowego"
@@ -1623,7 +1643,7 @@ msgstr ""
#: common/models.py:703 part/models.py:2429 report/models.py:187
#: templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:373
+#: templates/js/translated/table_filters.js:404
msgid "Template"
msgstr "Szablon"
@@ -1633,7 +1653,7 @@ msgstr ""
#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:956
#: templates/js/translated/table_filters.js:168
-#: templates/js/translated/table_filters.js:385
+#: templates/js/translated/table_filters.js:416
msgid "Assembly"
msgstr "Złożenie"
@@ -1642,7 +1662,7 @@ msgid "Parts can be assembled from other components by default"
msgstr ""
#: common/models.py:717 part/models.py:894
-#: templates/js/translated/table_filters.js:389
+#: templates/js/translated/table_filters.js:420
msgid "Component"
msgstr "Komponent"
@@ -1659,7 +1679,7 @@ msgid "Parts are purchaseable by default"
msgstr "Części są domyślnie z możliwością zakupu"
#: common/models.py:731 part/models.py:910
-#: templates/js/translated/table_filters.js:397
+#: templates/js/translated/table_filters.js:428
msgid "Salable"
msgstr "Możliwość sprzedaży"
@@ -1670,7 +1690,7 @@ msgstr "Części są domyślnie z możliwością sprzedaży"
#: common/models.py:738 part/models.py:900
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:100
-#: templates/js/translated/table_filters.js:401
+#: templates/js/translated/table_filters.js:432
msgid "Trackable"
msgstr "Możliwość śledzenia"
@@ -1932,230 +1952,262 @@ msgstr ""
msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:1001
+#: common/models.py:961
+msgid "Enable URL integration"
+msgstr ""
+
+#: common/models.py:962
+msgid "Enable plugins to add URL routes"
+msgstr ""
+
+#: common/models.py:968
+msgid "Enable navigation integration"
+msgstr ""
+
+#: common/models.py:969
+msgid "Enable plugins to integrate into navigation"
+msgstr ""
+
+#: common/models.py:975
+msgid "Enable global setting integration"
+msgstr ""
+
+#: common/models.py:976
+msgid "Enable plugins to integrate into inventree global settings"
+msgstr ""
+
+#: common/models.py:982
+msgid "Enable app integration"
+msgstr ""
+
+#: common/models.py:983
+msgid "Enable plugins to add apps"
+msgstr ""
+
+#: common/models.py:1029
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:1002
+#: common/models.py:1030
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:1007
+#: common/models.py:1035
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:1008
+#: common/models.py:1036
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:1013
+#: common/models.py:1041
msgid "Show latest parts"
msgstr ""
-#: common/models.py:1014
+#: common/models.py:1042
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:1019
+#: common/models.py:1047
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:1020
+#: common/models.py:1048
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:1026
+#: common/models.py:1054
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1027
+#: common/models.py:1055
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1032
+#: common/models.py:1060
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:1033
+#: common/models.py:1061
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:1038
+#: common/models.py:1066
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:1039
+#: common/models.py:1067
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:1044
+#: common/models.py:1072
msgid "Show low stock"
msgstr ""
-#: common/models.py:1045
+#: common/models.py:1073
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:1050
+#: common/models.py:1078
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:1051
+#: common/models.py:1079
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:1056
+#: common/models.py:1084
msgid "Show needed stock"
msgstr ""
-#: common/models.py:1057
+#: common/models.py:1085
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1062
+#: common/models.py:1090
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1063
+#: common/models.py:1091
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1068
+#: common/models.py:1096
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1069
+#: common/models.py:1097
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1074
+#: common/models.py:1102
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1075
+#: common/models.py:1103
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:1080
+#: common/models.py:1108
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:1081
+#: common/models.py:1109
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:1086
+#: common/models.py:1114
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:1087
+#: common/models.py:1115
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:1092
+#: common/models.py:1120
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:1093
+#: common/models.py:1121
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:1098
+#: common/models.py:1126
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:1099
+#: common/models.py:1127
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:1104
+#: common/models.py:1132
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:1105
+#: common/models.py:1133
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:1111
+#: common/models.py:1139
msgid "Inline label display"
msgstr ""
-#: common/models.py:1112
+#: common/models.py:1140
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1118
+#: common/models.py:1146
msgid "Inline report display"
msgstr ""
-#: common/models.py:1119
+#: common/models.py:1147
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1125
+#: common/models.py:1153
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:1126
+#: common/models.py:1154
msgid "Number of results to show in search preview window"
msgstr ""
-#: common/models.py:1132
+#: common/models.py:1160
msgid "Search Show Stock"
msgstr ""
-#: common/models.py:1133
+#: common/models.py:1161
msgid "Display stock levels in search preview window"
msgstr ""
-#: common/models.py:1139
+#: common/models.py:1167
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:1140
+#: common/models.py:1168
msgid "Hide inactive parts in search preview window"
msgstr ""
-#: common/models.py:1146
+#: common/models.py:1174
msgid "Show Quantity in Forms"
msgstr "Pokaż ilość w formularzach"
-#: common/models.py:1147
+#: common/models.py:1175
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:1153
+#: common/models.py:1181
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1154
+#: common/models.py:1182
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1160
+#: common/models.py:1188
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:1161
+#: common/models.py:1189
msgid "InvenTree navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:1226 company/forms.py:43
+#: common/models.py:1254 company/forms.py:43
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1233 company/serializers.py:264
+#: common/models.py:1261 company/serializers.py:264
#: company/templates/company/supplier_part.html:256
#: templates/js/translated/part.js:852 templates/js/translated/part.js:1801
msgid "Price"
msgstr "Cena"
-#: common/models.py:1234
+#: common/models.py:1262
msgid "Unit price at specified quantity"
msgstr ""
#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49
-#: order/templates/order/purchase_order_detail.html:24 order/views.py:289
+#: order/templates/order/purchase_order_detail.html:24 order/views.py:243
#: part/templates/part/bom_upload/upload_file.html:52
#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:212
#: part/views.py:858
@@ -2163,7 +2215,7 @@ msgid "Upload File"
msgstr "Wyślij plik"
#: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52
-#: order/views.py:290 part/templates/part/bom_upload/match_fields.html:52
+#: order/views.py:244 part/templates/part/bom_upload/match_fields.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:45
#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:213
#: part/views.py:859
@@ -2195,6 +2247,7 @@ msgid "Previous Step"
msgstr ""
#: company/forms.py:24 part/forms.py:46
+#: templates/InvenTree/settings/mixins/urls.html:12
msgid "URL"
msgstr "URL"
@@ -2211,6 +2264,7 @@ msgid "Description of the company"
msgstr "Opis firmy"
#: company/models.py:112 company/templates/company/company_base.html:97
+#: templates/InvenTree/settings/plugin_settings.html:55
#: templates/js/translated/company.js:349
msgid "Website"
msgstr "Strona WWW"
@@ -2285,7 +2339,7 @@ msgid "Does this company manufacture parts?"
msgstr "Czy to przedsiębiorstwo produkuje części?"
#: company/models.py:152 company/serializers.py:270
-#: company/templates/company/company_base.html:103 stock/serializers.py:177
+#: company/templates/company/company_base.html:103 stock/serializers.py:179
msgid "Currency"
msgstr "Waluta"
@@ -2293,12 +2347,12 @@ msgstr "Waluta"
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:320 company/models.py:535 stock/models.py:474
+#: company/models.py:320 company/models.py:535 stock/models.py:468
#: stock/templates/stock/item_base.html:135
msgid "Base Part"
msgstr "Część bazowa"
-#: company/models.py:324 company/models.py:539 order/views.py:912
+#: company/models.py:324 company/models.py:539
msgid "Select part"
msgstr "Wybierz część"
@@ -2319,7 +2373,7 @@ msgstr "Wybierz producenta"
#: company/models.py:342 company/templates/company/manufacturer_part.html:96
#: company/templates/company/supplier_part.html:105
#: templates/js/translated/company.js:530
-#: templates/js/translated/company.js:815 templates/js/translated/order.js:873
+#: templates/js/translated/company.js:815 templates/js/translated/order.js:1038
#: templates/js/translated/part.js:243 templates/js/translated/part.js:832
msgid "MPN"
msgstr "MPN"
@@ -2349,8 +2403,8 @@ msgstr ""
#: company/models.py:422
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:1857 templates/js/translated/company.js:644
-#: templates/js/translated/part.js:652 templates/js/translated/stock.js:960
+#: stock/models.py:1845 templates/js/translated/company.js:644
+#: templates/js/translated/part.js:652 templates/js/translated/stock.js:1117
msgid "Value"
msgstr ""
@@ -2360,7 +2414,7 @@ msgstr ""
#: company/models.py:429 part/models.py:882 part/models.py:2397
#: part/templates/part/part_base.html:288
-#: templates/InvenTree/settings/settings.html:264
+#: templates/InvenTree/settings/settings.html:273
#: templates/js/translated/company.js:650 templates/js/translated/part.js:658
msgid "Units"
msgstr "Jednostki"
@@ -2374,12 +2428,12 @@ msgid "Linked manufacturer part must reference the same base part"
msgstr ""
#: company/models.py:545 company/templates/company/company_base.html:78
-#: company/templates/company/supplier_part.html:87 order/models.py:263
+#: company/templates/company/supplier_part.html:87 order/models.py:224
#: order/templates/order/order_base.html:112
#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219
#: part/bom.py:247 stock/templates/stock/item_base.html:398
#: templates/js/translated/company.js:337
-#: templates/js/translated/company.js:771 templates/js/translated/order.js:667
+#: templates/js/translated/company.js:771 templates/js/translated/order.js:823
#: templates/js/translated/part.js:213 templates/js/translated/part.js:800
msgid "Supplier"
msgstr "Dostawca"
@@ -2389,7 +2443,7 @@ msgid "Select supplier"
msgstr "Wybierz dostawcę"
#: company/models.py:551 company/templates/company/supplier_part.html:91
-#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:860
+#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:1025
#: templates/js/translated/part.js:224 templates/js/translated/part.js:818
msgid "SKU"
msgstr "SKU"
@@ -2425,8 +2479,8 @@ msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:582 company/templates/company/supplier_part.html:112
-#: stock/models.py:497 stock/templates/stock/item_base.html:339
-#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1448
+#: stock/models.py:491 stock/templates/stock/item_base.html:339
+#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1612
msgid "Packaging"
msgstr "Opakowanie"
@@ -2457,7 +2511,7 @@ msgid "Company"
msgstr "Firma"
#: company/templates/company/company_base.html:22
-#: templates/js/translated/order.js:121
+#: templates/js/translated/order.js:279
msgid "Create Purchase Order"
msgstr ""
@@ -2493,11 +2547,12 @@ msgstr "Prześlij nowy obraz"
msgid "Download image from URL"
msgstr ""
-#: company/templates/company/company_base.html:83 order/models.py:567
-#: order/templates/order/sales_order_base.html:115 stock/models.py:515
-#: stock/models.py:516 stock/templates/stock/item_base.html:291
-#: templates/js/translated/company.js:329 templates/js/translated/order.js:1072
-#: templates/js/translated/stock.js:2084
+#: company/templates/company/company_base.html:83 order/models.py:547
+#: order/templates/order/sales_order_base.html:115 stock/models.py:509
+#: stock/models.py:510 stock/serializers.py:610
+#: stock/templates/stock/item_base.html:291
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1240
+#: templates/js/translated/stock.js:2259
msgid "Customer"
msgstr "Klient"
@@ -2580,7 +2635,7 @@ msgstr "Zapasy dostawcy"
#: order/templates/order/purchase_orders.html:12
#: part/templates/part/detail.html:64 part/templates/part/part_sidebar.html:33
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:203
-#: templates/InvenTree/settings/sidebar.html:44 templates/navbar.html:45
+#: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47
#: users/models.py:45
msgid "Purchase Orders"
msgstr ""
@@ -2602,7 +2657,7 @@ msgstr ""
#: order/templates/order/sales_orders.html:15
#: part/templates/part/detail.html:87 part/templates/part/part_sidebar.html:37
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:223
-#: templates/InvenTree/settings/sidebar.html:46 templates/navbar.html:56
+#: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58
#: users/models.py:46
msgid "Sales Orders"
msgstr ""
@@ -2618,7 +2673,7 @@ msgid "New Sales Order"
msgstr ""
#: company/templates/company/detail.html:168
-#: templates/js/translated/build.js:999
+#: templates/js/translated/build.js:1004
msgid "Assigned Stock"
msgstr ""
@@ -2644,7 +2699,7 @@ msgstr "Lista dostawców"
#: company/templates/company/manufacturer_part.html:14 company/views.py:55
#: part/templates/part/prices.html:167 templates/InvenTree/search.html:184
-#: templates/navbar.html:44
+#: templates/navbar.html:46
msgid "Manufacturers"
msgstr "Producenci"
@@ -2673,7 +2728,7 @@ msgstr "Część wewnętrzna"
#: company/templates/company/manufacturer_part.html:114
#: company/templates/company/supplier_part.html:15 company/views.py:49
#: part/templates/part/part_sidebar.html:31 part/templates/part/prices.html:163
-#: templates/InvenTree/search.html:194 templates/navbar.html:43
+#: templates/InvenTree/search.html:194 templates/navbar.html:45
msgid "Suppliers"
msgstr "Dostawcy"
@@ -2687,7 +2742,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:254
#: part/templates/part/detail.html:344 part/templates/part/detail.html:372
#: templates/js/translated/company.js:425 templates/js/translated/helpers.js:31
-#: users/models.py:204
+#: users/models.py:206
msgid "Delete"
msgstr "Usuń"
@@ -2739,9 +2794,9 @@ msgid "Assigned Stock Items"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:482
+#: company/templates/company/supplier_part.html:24 stock/models.py:476
#: stock/templates/stock/item_base.html:403
-#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1405
+#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1569
msgid "Supplier Part"
msgstr ""
@@ -2767,7 +2822,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:142
#: part/templates/part/detail.html:21 stock/templates/stock/location.html:163
-#: templates/js/translated/stock.js:355
+#: templates/js/translated/stock.js:359
msgid "New Stock Item"
msgstr ""
@@ -2817,11 +2872,11 @@ msgstr ""
#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:14
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:156
-#: templates/InvenTree/settings/sidebar.html:40
+#: templates/InvenTree/settings/sidebar.html:41
#: templates/js/translated/bom.js:216 templates/js/translated/part.js:434
#: templates/js/translated/part.js:569 templates/js/translated/part.js:1059
-#: templates/js/translated/part.js:1220 templates/js/translated/stock.js:591
-#: templates/js/translated/stock.js:1244 templates/navbar.html:26
+#: templates/js/translated/part.js:1220 templates/js/translated/stock.js:748
+#: templates/js/translated/stock.js:1401 templates/navbar.html:28
msgid "Stock"
msgstr "Stan"
@@ -2844,7 +2899,7 @@ msgstr "Cennik"
#: stock/templates/stock/location.html:147
#: stock/templates/stock/location.html:159
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1983
+#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:2158
#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
msgid "Stock Items"
msgstr ""
@@ -2858,7 +2913,7 @@ msgid "New Manufacturer"
msgstr "Now producent"
#: company/views.py:61 templates/InvenTree/search.html:214
-#: templates/navbar.html:55
+#: templates/navbar.html:57
msgid "Customers"
msgstr "Klienci"
@@ -2960,284 +3015,374 @@ msgstr ""
msgid "Part query filters (comma-separated value of key=value pairs)"
msgstr ""
-#: order/forms.py:26 order/templates/order/order_base.html:52
+#: order/forms.py:24 order/templates/order/order_base.html:52
msgid "Place order"
msgstr "Złóż zamówienie"
-#: order/forms.py:37 order/templates/order/order_base.html:60
+#: order/forms.py:35 order/templates/order/order_base.html:60
msgid "Mark order as complete"
msgstr "Oznacz zamówienie jako zakończone"
-#: order/forms.py:48 order/forms.py:59 order/templates/order/order_base.html:47
+#: order/forms.py:46 order/forms.py:57 order/templates/order/order_base.html:47
#: order/templates/order/sales_order_base.html:60
msgid "Cancel order"
msgstr "Anuluj zamówienie"
-#: order/forms.py:70
-msgid "Ship order"
-msgstr "Wyślij zamówienie"
-
-#: order/forms.py:98
-msgid "Enter stock item serial numbers"
-msgstr ""
-
-#: order/forms.py:104
-msgid "Enter quantity of stock items"
-msgstr "Wprowadź ilość produktów magazynowych"
-
-#: order/models.py:161
+#: order/models.py:122
msgid "Order description"
msgstr "Opis Zamówienia"
-#: order/models.py:163
+#: order/models.py:124
msgid "Link to external page"
msgstr "Link do zewnętrznej witryny"
-#: order/models.py:171
+#: order/models.py:132
msgid "Created By"
msgstr "Utworzony przez"
-#: order/models.py:178
+#: order/models.py:139
msgid "User or group responsible for this order"
msgstr "Użytkownik lub grupa odpowiedzialna za to zamówienie"
-#: order/models.py:183
+#: order/models.py:144
msgid "Order notes"
msgstr "Notatki do zamówienia"
-#: order/models.py:250 order/models.py:557
+#: order/models.py:211 order/models.py:537
msgid "Order reference"
msgstr "Odniesienie zamówienia"
-#: order/models.py:255 order/models.py:572
+#: order/models.py:216 order/models.py:552
msgid "Purchase order status"
msgstr "Status zamówienia zakupu"
-#: order/models.py:264
+#: order/models.py:225
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:267 order/templates/order/order_base.html:118
-#: templates/js/translated/order.js:676
+#: order/models.py:228 order/templates/order/order_base.html:118
+#: templates/js/translated/order.js:832
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:267
+#: order/models.py:228
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:274
+#: order/models.py:235
msgid "received by"
msgstr "odebrane przez"
-#: order/models.py:279
+#: order/models.py:240
msgid "Issue Date"
msgstr "Data wydania"
-#: order/models.py:280
+#: order/models.py:241
msgid "Date order was issued"
msgstr "Data wystawienia zamówienia"
-#: order/models.py:285
+#: order/models.py:246
msgid "Target Delivery Date"
msgstr "Data Dostawy Towaru"
-#: order/models.py:286
+#: order/models.py:247
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:292
+#: order/models.py:253
msgid "Date order was completed"
msgstr ""
-#: order/models.py:321
+#: order/models.py:282
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:431
+#: order/models.py:411
msgid "Quantity must be an integer"
msgstr "Wartość musi być liczbą całkowitą"
-#: order/models.py:435
+#: order/models.py:415
msgid "Quantity must be a positive number"
msgstr "Wartość musi być liczbą dodatnią"
-#: order/models.py:568
+#: order/models.py:548
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:574
+#: order/models.py:554
msgid "Customer Reference "
msgstr ""
-#: order/models.py:574
+#: order/models.py:554
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:579
+#: order/models.py:559
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:582 templates/js/translated/order.js:1113
+#: order/models.py:562 order/models.py:1026
+#: templates/js/translated/order.js:1281 templates/js/translated/order.js:1429
msgid "Shipment Date"
msgstr "Data wysyłki"
-#: order/models.py:589
+#: order/models.py:569
msgid "shipped by"
msgstr "wysłane przez"
-#: order/models.py:633
-msgid "SalesOrder cannot be shipped as it is not currently pending"
+#: order/models.py:634
+msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:730
+#: order/models.py:639
+msgid "Only a pending order can be marked as complete"
+msgstr ""
+
+#: order/models.py:643
+msgid "Order cannot be completed as there are incomplete shipments"
+msgstr ""
+
+#: order/models.py:647
+msgid "Order cannot be completed as there are incomplete line items"
+msgstr ""
+
+#: order/models.py:795
msgid "Item quantity"
msgstr "Ilość elementów"
-#: order/models.py:736
+#: order/models.py:801
msgid "Line item reference"
msgstr ""
-#: order/models.py:738
+#: order/models.py:803
msgid "Line item notes"
msgstr ""
-#: order/models.py:768 order/models.py:856
-#: templates/js/translated/order.js:1165
+#: order/models.py:833 order/models.py:924 order/models.py:1020
+#: templates/js/translated/order.js:1820
msgid "Order"
msgstr "Zamówienie"
-#: order/models.py:769 order/templates/order/order_base.html:9
+#: order/models.py:834 order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:353
-#: templates/js/translated/order.js:638 templates/js/translated/part.js:775
-#: templates/js/translated/stock.js:1382 templates/js/translated/stock.js:2065
+#: templates/js/translated/order.js:801 templates/js/translated/part.js:775
+#: templates/js/translated/stock.js:1546 templates/js/translated/stock.js:2240
msgid "Purchase Order"
msgstr "Zlecenie zakupu"
-#: order/models.py:790
+#: order/models.py:855
msgid "Supplier part"
msgstr ""
-#: order/models.py:797 order/templates/order/order_base.html:151
-#: order/templates/order/sales_order_base.html:155
-#: templates/js/translated/order.js:429 templates/js/translated/order.js:953
+#: order/models.py:862 order/templates/order/order_base.html:163
+#: templates/js/translated/order.js:589 templates/js/translated/order.js:1118
#: templates/js/translated/part.js:847 templates/js/translated/part.js:873
+#: templates/js/translated/table_filters.js:317
msgid "Received"
msgstr "Odebrane"
-#: order/models.py:798
+#: order/models.py:863
msgid "Number of items received"
msgstr ""
-#: order/models.py:805 part/templates/part/prices.html:176 stock/models.py:609
-#: stock/serializers.py:168 stock/templates/stock/item_base.html:360
-#: templates/js/translated/stock.js:1436
+#: order/models.py:870 part/templates/part/prices.html:176 stock/models.py:603
+#: stock/serializers.py:170 stock/templates/stock/item_base.html:360
+#: templates/js/translated/stock.js:1600
msgid "Purchase Price"
msgstr "Cena zakupu"
-#: order/models.py:806
+#: order/models.py:871
msgid "Unit purchase price"
msgstr "Cena zakupu jednostkowego"
-#: order/models.py:814
+#: order/models.py:879
msgid "Where does the Purchaser want this item to be stored?"
msgstr "Gdzie kupujący chce przechowywać ten przedmiot?"
-#: order/models.py:866 part/templates/part/part_pricing.html:112
+#: order/models.py:934 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:116 part/templates/part/prices.html:284
msgid "Sale Price"
msgstr "Cena sprzedaży"
-#: order/models.py:867
+#: order/models.py:935
msgid "Unit sale price"
msgstr "Jednostkowa cena sprzedaży"
-#: order/models.py:946 order/models.py:948
+#: order/models.py:940
+msgid "Shipped quantity"
+msgstr ""
+
+#: order/models.py:1027
+msgid "Date of shipment"
+msgstr ""
+
+#: order/models.py:1034
+msgid "Checked By"
+msgstr ""
+
+#: order/models.py:1035
+msgid "User who checked this shipment"
+msgstr ""
+
+#: order/models.py:1043
+msgid "Shipment number"
+msgstr ""
+
+#: order/models.py:1050
+msgid "Shipment notes"
+msgstr ""
+
+#: order/models.py:1057
+msgid "Tracking Number"
+msgstr ""
+
+#: order/models.py:1058
+msgid "Shipment tracking information"
+msgstr ""
+
+#: order/models.py:1068
+msgid "Shipment has already been sent"
+msgstr ""
+
+#: order/models.py:1071
+msgid "Shipment has no allocated stock items"
+msgstr ""
+
+#: order/models.py:1147 order/models.py:1149
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:952
+#: order/models.py:1153
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:954
+#: order/models.py:1155
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:957
+#: order/models.py:1158
msgid "Allocation quantity cannot exceed stock quantity"
msgstr "Zarezerwowana ilość nie może przekraczać ilości na stanie"
-#: order/models.py:961
+#: order/models.py:1162
msgid "StockItem is over-allocated"
msgstr ""
-#: order/models.py:967
+#: order/models.py:1168 order/serializers.py:734
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:975
+#: order/models.py:1171
+msgid "Sales order does not match shipment"
+msgstr ""
+
+#: order/models.py:1172
+msgid "Shipment does not match sales order"
+msgstr ""
+
+#: order/models.py:1180
msgid "Line"
msgstr "Linia"
-#: order/models.py:987
+#: order/models.py:1188 order/serializers.py:825 order/serializers.py:953
+#: templates/js/translated/model_renderers.js:251
+msgid "Shipment"
+msgstr ""
+
+#: order/models.py:1189
+msgid "Sales order shipment reference"
+msgstr ""
+
+#: order/models.py:1201
msgid "Item"
msgstr "Komponent"
-#: order/models.py:988
+#: order/models.py:1202
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:991
+#: order/models.py:1205
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/serializers.py:175
+#: order/serializers.py:173
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:213
+#: order/serializers.py:211 order/serializers.py:790
msgid "Line Item"
msgstr ""
-#: order/serializers.py:219
+#: order/serializers.py:217
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:229 order/serializers.py:297
+#: order/serializers.py:227 order/serializers.py:295
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:253
+#: order/serializers.py:251
msgid "Barcode Hash"
msgstr ""
-#: order/serializers.py:254
+#: order/serializers.py:252
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:271
+#: order/serializers.py:269
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:309
+#: order/serializers.py:307
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:326
+#: order/serializers.py:324
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:337
+#: order/serializers.py:335
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:578
+#: order/serializers.py:581
msgid "Sale price currency"
msgstr ""
+#: order/serializers.py:649
+msgid "No shipment details provided"
+msgstr ""
+
+#: order/serializers.py:699 order/serializers.py:802
+msgid "Line item is not associated with this order"
+msgstr ""
+
+#: order/serializers.py:721
+msgid "Quantity must be positive"
+msgstr ""
+
+#: order/serializers.py:815
+msgid "Enter serial numbers to allocate"
+msgstr ""
+
+#: order/serializers.py:839 order/serializers.py:964
+msgid "Shipment has already been shipped"
+msgstr ""
+
+#: order/serializers.py:842 order/serializers.py:967
+msgid "Shipment is not associated with this order"
+msgstr ""
+
+#: order/serializers.py:894
+msgid "No match found for the following serial numbers"
+msgstr ""
+
+#: order/serializers.py:904
+msgid "The following serial numbers are already allocated"
+msgstr ""
+
#: order/templates/order/delete_attachment.html:5
#: stock/templates/stock/attachment_delete.html:5
msgid "Are you sure you want to delete this attachment?"
@@ -3271,7 +3416,8 @@ msgstr ""
msgid "Receive Items"
msgstr ""
-#: order/templates/order/order_base.html:62 order/views.py:185
+#: order/templates/order/order_base.html:62
+#: order/templates/order/sales_order_base.html:67 order/views.py:181
msgid "Complete Order"
msgstr ""
@@ -3290,12 +3436,23 @@ msgstr ""
msgid "Order Status"
msgstr "Status zamówienia"
-#: order/templates/order/order_base.html:137
+#: order/templates/order/order_base.html:124
+#: order/templates/order/sales_order_base.html:128
+msgid "Completed Line Items"
+msgstr ""
+
+#: order/templates/order/order_base.html:130
+#: order/templates/order/sales_order_base.html:134
+#: order/templates/order/sales_order_base.html:144
+msgid "Incomplete"
+msgstr ""
+
+#: order/templates/order/order_base.html:149
#: report/templates/report/inventree_build_order_base.html:122
msgid "Issued"
msgstr "Wydany"
-#: order/templates/order/order_base.html:207
+#: order/templates/order/order_base.html:219
msgid "Edit Purchase Order"
msgstr ""
@@ -3371,8 +3528,9 @@ msgstr ""
#: part/templates/part/import_wizard/ajax_match_references.html:42
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
-#: templates/js/translated/build.js:240 templates/js/translated/build.js:1251
-#: templates/js/translated/order.js:377
+#: templates/js/translated/build.js:245 templates/js/translated/build.js:1256
+#: templates/js/translated/order.js:537 templates/js/translated/order.js:1488
+#: templates/js/translated/stock.js:592
msgid "Remove row"
msgstr ""
@@ -3453,7 +3611,8 @@ msgid "Select existing purchase orders, or create new orders."
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:31
-#: templates/js/translated/order.js:694 templates/js/translated/order.js:1118
+#: templates/js/translated/order.js:859 templates/js/translated/order.js:1286
+#: templates/js/translated/order.js:1416
msgid "Items"
msgstr "Przedmioty"
@@ -3489,7 +3648,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:27
#: order/templates/order/purchase_order_detail.html:181
#: order/templates/order/sales_order_detail.html:23
-#: order/templates/order/sales_order_detail.html:157
+#: order/templates/order/sales_order_detail.html:244
msgid "Add Line Item"
msgstr "Dodaj element zamówienia"
@@ -3502,7 +3661,7 @@ msgid "Received Items"
msgstr "Otrzymane elementy"
#: order/templates/order/purchase_order_detail.html:76
-#: order/templates/order/sales_order_detail.html:68
+#: order/templates/order/sales_order_detail.html:123
msgid "Order Notes"
msgstr "Notatki zamówień"
@@ -3520,25 +3679,30 @@ msgid "Print packing list"
msgstr ""
#: order/templates/order/sales_order_base.html:66
-#: order/templates/order/sales_order_base.html:67 order/views.py:222
-msgid "Ship Order"
-msgstr "Wyślij zamówienie"
+#: order/templates/order/sales_order_base.html:229
+msgid "Complete Sales Order"
+msgstr ""
#: order/templates/order/sales_order_base.html:102
msgid "This Sales Order has not been fully allocated"
msgstr ""
#: order/templates/order/sales_order_base.html:122
-#: templates/js/translated/order.js:1085
+#: templates/js/translated/order.js:1253
msgid "Customer Reference"
msgstr ""
-#: order/templates/order/sales_order_base.html:195
+#: order/templates/order/sales_order_base.html:140
+#: order/templates/order/sales_order_detail.html:78
+#: order/templates/order/so_sidebar.html:11
+msgid "Completed Shipments"
+msgstr ""
+
+#: order/templates/order/sales_order_base.html:215
msgid "Edit Sales Order"
msgstr ""
#: order/templates/order/sales_order_cancel.html:8
-#: order/templates/order/sales_order_ship.html:9
#: part/templates/part/bom_duplicate.html:12
#: stock/templates/stock/stockitem_convert.html:13
msgid "Warning"
@@ -3552,146 +3716,100 @@ msgstr ""
msgid "Sales Order Items"
msgstr ""
-#: order/templates/order/sales_order_ship.html:10
-msgid "This order has not been fully allocated. If the order is marked as shipped, it can no longer be adjusted."
+#: order/templates/order/sales_order_detail.html:44
+#: order/templates/order/so_sidebar.html:8
+msgid "Pending Shipments"
msgstr ""
-#: order/templates/order/sales_order_ship.html:12
-msgid "Ensure that the order allocation is correct before shipping the order."
+#: order/templates/order/sales_order_detail.html:48
+#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1188
+msgid "Actions"
+msgstr "Akcje"
+
+#: order/templates/order/sales_order_detail.html:57
+msgid "New Shipment"
msgstr ""
-#: order/templates/order/sales_order_ship.html:18
-msgid "Some line items in this order have been over-allocated"
-msgstr ""
-
-#: order/templates/order/sales_order_ship.html:20
-msgid "Ensure that this is correct before shipping the order."
-msgstr ""
-
-#: order/templates/order/sales_order_ship.html:27
-msgid "Shipping this order means that the order will no longer be editable."
-msgstr ""
-
-#: order/templates/order/so_allocate_by_serial.html:9
-msgid "Allocate stock items by serial number"
-msgstr ""
-
-#: order/views.py:103
+#: order/views.py:99
msgid "Cancel Order"
msgstr "Anuluj zamówienie"
-#: order/views.py:112 order/views.py:138
+#: order/views.py:108 order/views.py:134
msgid "Confirm order cancellation"
msgstr "Potwierdź anulowanie zamówienia"
-#: order/views.py:115 order/views.py:141
+#: order/views.py:111 order/views.py:137
msgid "Order cannot be cancelled"
msgstr "Zamówienie nie może zostać anulowane"
-#: order/views.py:129
+#: order/views.py:125
msgid "Cancel sales order"
msgstr ""
-#: order/views.py:155
+#: order/views.py:151
msgid "Issue Order"
msgstr ""
-#: order/views.py:164
+#: order/views.py:160
msgid "Confirm order placement"
msgstr ""
-#: order/views.py:174
+#: order/views.py:170
msgid "Purchase order issued"
msgstr ""
-#: order/views.py:201
+#: order/views.py:197
msgid "Confirm order completion"
msgstr ""
-#: order/views.py:212
+#: order/views.py:208
msgid "Purchase order completed"
msgstr ""
-#: order/views.py:238
-msgid "Confirm order shipment"
-msgstr ""
-
-#: order/views.py:244
-msgid "Could not ship order"
-msgstr ""
-
-#: order/views.py:291
+#: order/views.py:245
msgid "Match Supplier Parts"
msgstr ""
-#: order/views.py:535
+#: order/views.py:489
msgid "Update prices"
msgstr ""
-#: order/views.py:793
+#: order/views.py:747
#, python-brace-format
msgid "Ordered {n} parts"
msgstr ""
-#: order/views.py:846
-msgid "Allocate Serial Numbers"
-msgstr ""
-
-#: order/views.py:891
-#, python-brace-format
-msgid "Allocated {n} items"
-msgstr ""
-
-#: order/views.py:907
-msgid "Select line item"
-msgstr ""
-
-#: order/views.py:938
-#, python-brace-format
-msgid "No matching item for serial {serial}"
-msgstr ""
-
-#: order/views.py:948
-#, python-brace-format
-msgid "{serial} is not in stock"
-msgstr ""
-
-#: order/views.py:956
-#, python-brace-format
-msgid "{serial} already allocated to an order"
-msgstr ""
-
-#: order/views.py:1072
+#: order/views.py:858
msgid "Sales order not found"
msgstr ""
-#: order/views.py:1078
+#: order/views.py:864
msgid "Price not found"
msgstr "Nie znaleziono ceny"
-#: order/views.py:1081
+#: order/views.py:867
#, python-brace-format
msgid "Updated {part} unit-price to {price}"
msgstr ""
-#: order/views.py:1086
+#: order/views.py:872
#, python-brace-format
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/api.py:758
+#: part/api.py:760
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:762
+#: part/api.py:764
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:777
+#: part/api.py:779
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:808 part/api.py:812 part/api.py:827 part/api.py:831
+#: part/api.py:810 part/api.py:814 part/api.py:829 part/api.py:833
msgid "This field is required"
msgstr ""
@@ -3828,8 +3946,8 @@ msgstr ""
#: part/templates/part/category.html:149
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:88
-#: templates/InvenTree/settings/sidebar.html:36
-#: templates/js/translated/part.js:1597 templates/navbar.html:19
+#: templates/InvenTree/settings/sidebar.html:37
+#: templates/js/translated/part.js:1597 templates/navbar.html:21
#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
msgid "Parts"
msgstr "Części"
@@ -3895,7 +4013,7 @@ msgstr ""
#: part/models.py:778 part/models.py:2223 part/models.py:2472
#: part/templates/part/part_base.html:265
#: part/templates/part/set_category.html:15
-#: templates/InvenTree/settings/settings.html:163
+#: templates/InvenTree/settings/settings.html:172
#: templates/js/translated/part.js:1202
msgid "Category"
msgstr "Kategoria"
@@ -3906,7 +4024,7 @@ msgstr ""
#: part/models.py:784 part/templates/part/part_base.html:274
#: templates/js/translated/part.js:557 templates/js/translated/part.js:1155
-#: templates/js/translated/stock.js:1216
+#: templates/js/translated/stock.js:1373
msgid "IPN"
msgstr "IPN"
@@ -3975,10 +4093,11 @@ msgstr ""
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:915 templates/js/translated/table_filters.js:34
+#: part/models.py:915 plugin/models.py:45
+#: templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:96
-#: templates/js/translated/table_filters.js:290
-#: templates/js/translated/table_filters.js:368
+#: templates/js/translated/table_filters.js:295
+#: templates/js/translated/table_filters.js:399
msgid "Active"
msgstr "Aktywny"
@@ -4027,7 +4146,7 @@ msgid "Test with this name already exists for this part"
msgstr ""
#: part/models.py:2310 templates/js/translated/part.js:1648
-#: templates/js/translated/stock.js:940
+#: templates/js/translated/stock.js:1097
msgid "Test Name"
msgstr "Nazwa testu"
@@ -4044,7 +4163,7 @@ msgid "Enter description for this test"
msgstr ""
#: part/models.py:2322 templates/js/translated/part.js:1657
-#: templates/js/translated/table_filters.js:276
+#: templates/js/translated/table_filters.js:281
msgid "Required"
msgstr "Wymagane"
@@ -4086,7 +4205,7 @@ msgid "Parameter Units"
msgstr ""
#: part/models.py:2429 part/models.py:2478 part/models.py:2479
-#: templates/InvenTree/settings/settings.html:158
+#: templates/InvenTree/settings/settings.html:167
msgid "Parameter Template"
msgstr ""
@@ -4098,7 +4217,7 @@ msgstr "Dane"
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2483 templates/InvenTree/settings/settings.html:167
+#: part/models.py:2483 templates/InvenTree/settings/settings.html:176
msgid "Default Value"
msgstr "Wartość domyślna"
@@ -4175,7 +4294,7 @@ msgstr ""
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2686 stock/models.py:361
+#: part/models.py:2686 stock/models.py:355
msgid "Quantity must be integer value for trackable parts"
msgstr ""
@@ -4724,8 +4843,8 @@ msgstr ""
msgid "This part is a variant of %(link)s"
msgstr ""
-#: part/templates/part/part_base.html:190 templates/js/translated/order.js:1545
-#: templates/js/translated/table_filters.js:188
+#: part/templates/part/part_base.html:190 templates/js/translated/order.js:2217
+#: templates/js/translated/table_filters.js:193
msgid "In Stock"
msgstr ""
@@ -5099,6 +5218,78 @@ msgstr ""
msgid "Delete Internal Price Break"
msgstr ""
+#: plugin/integration.py:116
+msgid "No author found"
+msgstr ""
+
+#: plugin/integration.py:128
+msgid "No date found"
+msgstr ""
+
+#: plugin/models.py:25
+msgid "Plugin Configuration"
+msgstr ""
+
+#: plugin/models.py:26
+msgid "Plugin Configurations"
+msgstr ""
+
+#: plugin/models.py:31
+msgid "Key"
+msgstr ""
+
+#: plugin/models.py:32
+msgid "Key of plugin"
+msgstr ""
+
+#: plugin/models.py:40
+msgid "PluginName of the plugin"
+msgstr ""
+
+#: plugin/models.py:46
+msgid "Is the plugin active"
+msgstr ""
+
+#: plugin/samples/integration/sample.py:39
+msgid "Enable PO"
+msgstr ""
+
+#: plugin/samples/integration/sample.py:40
+msgid "Enable PO functionality in InvenTree interface"
+msgstr ""
+
+#: plugin/serializers.py:46
+msgid "Source URL"
+msgstr ""
+
+#: plugin/serializers.py:47
+msgid "Source for the package - this can be a custom registry or a VCS path"
+msgstr ""
+
+#: plugin/serializers.py:52
+msgid "Package Name"
+msgstr ""
+
+#: plugin/serializers.py:53
+msgid "Name for the Plugin Package - can also contain a version indicator"
+msgstr ""
+
+#: plugin/serializers.py:56
+msgid "Confirm plugin installation"
+msgstr ""
+
+#: plugin/serializers.py:57
+msgid "This will install this plugin now into the current instance. The instance will go into maintenance."
+msgstr ""
+
+#: plugin/serializers.py:72
+msgid "Installation not confirmed"
+msgstr ""
+
+#: plugin/serializers.py:74
+msgid "Either packagenmae of url must be provided"
+msgstr ""
+
#: report/api.py:234 report/api.py:278
#, python-brace-format
msgid "Template file '{filename}' is missing or does not exist"
@@ -5197,12 +5388,12 @@ msgid "Stock Item Test Report"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:520 stock/templates/stock/item_base.html:149
-#: templates/js/translated/build.js:233 templates/js/translated/build.js:637
-#: templates/js/translated/build.js:1013
+#: stock/models.py:514 stock/templates/stock/item_base.html:149
+#: templates/js/translated/build.js:238 templates/js/translated/build.js:642
+#: templates/js/translated/build.js:1018
#: templates/js/translated/model_renderers.js:95
-#: templates/js/translated/order.js:1287 templates/js/translated/order.js:1376
-#: templates/js/translated/stock.js:410
+#: templates/js/translated/order.js:99 templates/js/translated/order.js:1945
+#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:414
msgid "Serial Number"
msgstr "Numer Seryjny"
@@ -5211,17 +5402,19 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:93
-#: stock/models.py:1845
+#: stock/models.py:1833
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:94
-#: stock/models.py:1851
+#: stock/models.py:1839
msgid "Result"
msgstr "Wynik"
#: report/templates/report/inventree_test_report_base.html:97
-#: templates/js/translated/order.js:684 templates/js/translated/stock.js:1999
+#: templates/InvenTree/settings/plugin.html:49
+#: templates/InvenTree/settings/plugin_settings.html:38
+#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2174
msgid "Date"
msgstr "Data"
@@ -5239,302 +5432,318 @@ msgid "Installed Items"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
-#: templates/js/translated/stock.js:2259
+#: templates/js/translated/stock.js:577 templates/js/translated/stock.js:2434
msgid "Serial"
msgstr ""
-#: stock/api.py:422
+#: stock/api.py:446
msgid "Quantity is required"
msgstr ""
-#: stock/forms.py:91 stock/forms.py:265 stock/models.py:577
+#: stock/forms.py:77 stock/forms.py:251 stock/models.py:571
#: stock/templates/stock/item_base.html:186
-#: templates/js/translated/stock.js:1358
+#: templates/js/translated/stock.js:1522
msgid "Expiry Date"
msgstr "Data ważności"
-#: stock/forms.py:92 stock/forms.py:266
+#: stock/forms.py:78 stock/forms.py:252
msgid "Expiration date for this stock item"
msgstr ""
-#: stock/forms.py:95
+#: stock/forms.py:81
msgid "Enter unique serial numbers (or leave blank)"
msgstr ""
-#: stock/forms.py:150
+#: stock/forms.py:136
msgid "Destination for serialized stock (by default, will remain in current location)"
msgstr ""
-#: stock/forms.py:152
+#: stock/forms.py:138
msgid "Serial numbers"
msgstr "Numery seryjne"
-#: stock/forms.py:152
+#: stock/forms.py:138
msgid "Unique serial numbers (must match quantity)"
msgstr ""
-#: stock/forms.py:154 stock/forms.py:238
+#: stock/forms.py:140 stock/forms.py:224
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/forms.py:194
+#: stock/forms.py:180
msgid "Stock item to install"
msgstr ""
-#: stock/forms.py:224
+#: stock/forms.py:210
msgid "Must not exceed available quantity"
msgstr ""
-#: stock/forms.py:236
+#: stock/forms.py:222
msgid "Destination location for uninstalled items"
msgstr ""
-#: stock/forms.py:240
+#: stock/forms.py:226
msgid "Confirm uninstall"
msgstr ""
-#: stock/forms.py:240
+#: stock/forms.py:226
msgid "Confirm removal of installed stock items"
msgstr ""
-#: stock/models.py:60 stock/models.py:614
+#: stock/models.py:60 stock/models.py:608
#: stock/templates/stock/item_base.html:417
msgid "Owner"
msgstr ""
-#: stock/models.py:61 stock/models.py:615
+#: stock/models.py:61 stock/models.py:609
msgid "Select Owner"
msgstr ""
-#: stock/models.py:342
+#: stock/models.py:336
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:378
+#: stock/models.py:372
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:388 stock/models.py:397
+#: stock/models.py:382 stock/models.py:391
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:389
+#: stock/models.py:383
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:411
+#: stock/models.py:405
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:417
+#: stock/models.py:411
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:424
+#: stock/models.py:418
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:466
+#: stock/models.py:460
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:475
+#: stock/models.py:469
msgid "Base part"
msgstr "Część podstawowa"
-#: stock/models.py:483
+#: stock/models.py:477
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:488 stock/templates/stock/location.html:12
+#: stock/models.py:482 stock/templates/stock/location.html:12
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:491
+#: stock/models.py:485
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:498
+#: stock/models.py:492
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:503 stock/templates/stock/item_base.html:299
+#: stock/models.py:497 stock/templates/stock/item_base.html:299
msgid "Installed In"
msgstr ""
-#: stock/models.py:506
+#: stock/models.py:500
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:522
+#: stock/models.py:516
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:536
+#: stock/models.py:530
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:540
+#: stock/models.py:534
msgid "Stock Quantity"
msgstr "Ilość w magazynie"
-#: stock/models.py:549
+#: stock/models.py:543
msgid "Source Build"
msgstr ""
-#: stock/models.py:551
+#: stock/models.py:545
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:562
+#: stock/models.py:556
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:565
+#: stock/models.py:559
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:571
+#: stock/models.py:565
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:578
+#: stock/models.py:572
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:591
+#: stock/models.py:585
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:591
+#: stock/models.py:585
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:601 stock/templates/stock/item.html:111
+#: stock/models.py:595 stock/templates/stock/item.html:111
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:610
+#: stock/models.py:604
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:620
-msgid "Scheduled for deletion"
-msgstr ""
-
-#: stock/models.py:621
-msgid "This StockItem will be deleted by the background worker"
-msgstr ""
-
-#: stock/models.py:1084
+#: stock/models.py:1072
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1090
+#: stock/models.py:1078
msgid "Quantity must be integer"
msgstr "Ilość musi być liczbą całkowitą"
-#: stock/models.py:1096
+#: stock/models.py:1084
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1099
+#: stock/models.py:1087
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1102
+#: stock/models.py:1090
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1109
+#: stock/models.py:1097
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1267
+#: stock/models.py:1255
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1765
+#: stock/models.py:1753
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1822
+#: stock/models.py:1810
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1828
+#: stock/models.py:1816
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1846
+#: stock/models.py:1834
msgid "Test name"
msgstr ""
-#: stock/models.py:1852 templates/js/translated/table_filters.js:266
+#: stock/models.py:1840 templates/js/translated/table_filters.js:271
msgid "Test result"
msgstr ""
-#: stock/models.py:1858
+#: stock/models.py:1846
msgid "Test output value"
msgstr ""
-#: stock/models.py:1865
+#: stock/models.py:1853
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1871
+#: stock/models.py:1859
msgid "Test notes"
msgstr ""
-#: stock/serializers.py:171
+#: stock/serializers.py:173
msgid "Purchase price of this stock item"
msgstr ""
-#: stock/serializers.py:178
+#: stock/serializers.py:180
msgid "Purchase currency of this stock item"
msgstr ""
-#: stock/serializers.py:292
+#: stock/serializers.py:294
msgid "Enter number of stock items to serialize"
msgstr ""
-#: stock/serializers.py:307
+#: stock/serializers.py:309
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:313
+#: stock/serializers.py:315
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:324 stock/serializers.py:691
+#: stock/serializers.py:326 stock/serializers.py:814
msgid "Destination stock location"
msgstr ""
-#: stock/serializers.py:331
+#: stock/serializers.py:333
msgid "Optional note field"
msgstr ""
-#: stock/serializers.py:344
+#: stock/serializers.py:346
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:561
+#: stock/serializers.py:573
+msgid "Part must be salable"
+msgstr ""
+
+#: stock/serializers.py:577
+msgid "Item is allocated to a sales order"
+msgstr ""
+
+#: stock/serializers.py:581
+msgid "Item is allocated to a build order"
+msgstr ""
+
+#: stock/serializers.py:611
+msgid "Customer to assign stock items"
+msgstr ""
+
+#: stock/serializers.py:617
+msgid "Selected company is not a customer"
+msgstr ""
+
+#: stock/serializers.py:625
+msgid "Stock assignment notes"
+msgstr ""
+
+#: stock/serializers.py:635 stock/serializers.py:722
+msgid "A list of stock items must be provided"
+msgstr ""
+
+#: stock/serializers.py:684
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:589
+#: stock/serializers.py:712
msgid "Stock transaction notes"
msgstr ""
-#: stock/serializers.py:599
-msgid "A list of stock items must be provided"
-msgstr ""
-
#: stock/templates/stock/item.html:18
msgid "Stock Tracking Information"
msgstr ""
@@ -5572,7 +5781,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:137 stock/views.py:515
+#: stock/templates/stock/item.html:137 stock/views.py:482
msgid "Install Stock Item"
msgstr ""
@@ -5632,7 +5841,7 @@ msgstr ""
msgid "Transfer stock"
msgstr ""
-#: stock/templates/stock/item_base.html:85
+#: stock/templates/stock/item_base.html:85 templates/stock_table.html:53
msgid "Assign to customer"
msgstr ""
@@ -5694,7 +5903,7 @@ msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:190
-#: templates/js/translated/table_filters.js:247
+#: templates/js/translated/table_filters.js:252
msgid "Expired"
msgstr "Termin minął"
@@ -5704,12 +5913,12 @@ msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:192
-#: templates/js/translated/table_filters.js:253
+#: templates/js/translated/table_filters.js:258
msgid "Stale"
msgstr ""
#: stock/templates/stock/item_base.html:199
-#: templates/js/translated/stock.js:1371
+#: templates/js/translated/stock.js:1535
msgid "Last Updated"
msgstr "Ostatnia aktualizacja"
@@ -5738,13 +5947,11 @@ msgid "This stock item has not passed all required tests"
msgstr ""
#: stock/templates/stock/item_base.html:255
-#, python-format
-msgid "This stock item is allocated to Sales Order %(link)s (Quantity: %(qty)s)"
+msgid "This stock item is allocated to Sales Order"
msgstr ""
#: stock/templates/stock/item_base.html:263
-#, python-format
-msgid "This stock item is allocated to Build %(link)s (Quantity: %(qty)s)"
+msgid "This stock item is allocated to Build Order"
msgstr ""
#: stock/templates/stock/item_base.html:269
@@ -5760,7 +5967,7 @@ msgid "This stock item will be automatically deleted when all stock is depleted.
msgstr ""
#: stock/templates/stock/item_base.html:318
-#: templates/js/translated/build.js:1035
+#: templates/js/translated/build.js:1040
msgid "No location set"
msgstr "Lokacje nie są ustawione"
@@ -5910,7 +6117,7 @@ msgstr ""
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:912
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:879
msgid "Convert Stock Item"
msgstr ""
@@ -5935,8 +6142,7 @@ msgstr ""
msgid "Edit Stock Location"
msgstr ""
-#: stock/views.py:269 stock/views.py:891 stock/views.py:1017
-#: stock/views.py:1299
+#: stock/views.py:269 stock/views.py:858 stock/views.py:984 stock/views.py:1266
msgid "Owner is required (ownership control is enabled)"
msgstr ""
@@ -5945,86 +6151,78 @@ msgid "Stock Location QR code"
msgstr ""
#: stock/views.py:303
-msgid "Assign to Customer"
-msgstr ""
-
-#: stock/views.py:312
-msgid "Customer must be specified"
-msgstr ""
-
-#: stock/views.py:336
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:345
+#: stock/views.py:312
msgid "Specify a valid location"
msgstr ""
-#: stock/views.py:356
+#: stock/views.py:323
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:367
+#: stock/views.py:334
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:384
+#: stock/views.py:351
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:489
+#: stock/views.py:456
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:663
+#: stock/views.py:630
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:760 templates/js/translated/stock.js:730
+#: stock/views.py:727 templates/js/translated/stock.js:887
msgid "Confirm stock adjustment"
msgstr ""
-#: stock/views.py:771
+#: stock/views.py:738
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:793 templates/js/translated/stock.js:319
+#: stock/views.py:760 templates/js/translated/stock.js:323
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:943
+#: stock/views.py:910
msgid "Create new Stock Location"
msgstr "Utwórz nową lokalizację magazynową"
-#: stock/views.py:1044
+#: stock/views.py:1011
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1186 templates/js/translated/stock.js:299
+#: stock/views.py:1153 templates/js/translated/stock.js:303
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1268
+#: stock/views.py:1235
msgid "Quantity cannot be negative"
msgstr "Ilość nie może być ujemna"
-#: stock/views.py:1368
+#: stock/views.py:1335
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:1381
+#: stock/views.py:1348
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1392
+#: stock/views.py:1359
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1399
+#: stock/views.py:1366
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1408
+#: stock/views.py:1375
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -6044,6 +6242,14 @@ msgstr ""
msgid "The requested page does not exist"
msgstr ""
+#: templates/503.html:10 templates/503.html:35
+msgid "Site is in Maintenance"
+msgstr ""
+
+#: templates/503.html:41
+msgid "The site is currently in maintenance and should be up again soon!"
+msgstr ""
+
#: templates/InvenTree/index.html:7
msgid "Index"
msgstr "Indeks"
@@ -6153,7 +6359,7 @@ msgid "Server Settings"
msgstr ""
#: templates/InvenTree/settings/login.html:9
-#: templates/InvenTree/settings/sidebar.html:28
+#: templates/InvenTree/settings/sidebar.html:29
msgid "Login Settings"
msgstr ""
@@ -6161,6 +6367,24 @@ msgstr ""
msgid "Signup"
msgstr ""
+#: templates/InvenTree/settings/mixins/settings.html:4
+#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:118
+msgid "Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/mixins/urls.html:4
+msgid "URLs"
+msgstr ""
+
+#: templates/InvenTree/settings/mixins/urls.html:6
+#, python-format
+msgid "The Base-URL for this plugin is %(base)s."
+msgstr ""
+
+#: templates/InvenTree/settings/mixins/urls.html:21
+msgid "open in new tab"
+msgstr ""
+
#: templates/InvenTree/settings/part.html:7
msgid "Part Settings"
msgstr ""
@@ -6177,6 +6401,126 @@ msgstr ""
msgid "Part Parameter Templates"
msgstr ""
+#: templates/InvenTree/settings/plugin.html:10
+msgid "Plugin Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:16
+msgid "Changing the settings below require you to immediatly restart InvenTree. Do not change this while under active usage."
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:32
+msgid "Plugin list"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:37
+#: templates/js/translated/plugin.js:15
+msgid "Install Plugin"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:46 templates/navbar.html:111
+#: users/models.py:39
+msgid "Admin"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:48
+#: templates/InvenTree/settings/plugin_settings.html:28
+msgid "Author"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:50
+#: templates/InvenTree/settings/plugin_settings.html:43
+msgid "Version"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:73
+#, python-format
+msgid "has %(name)s"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:91
+msgid "Inactive plugins"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:114
+msgid "Plugin Error Stack"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:123
+msgid "Stage"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:125
+msgid "Message"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:10
+#, python-format
+msgid "Plugin details for %(name)s"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:17
+msgid "Plugin information"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:48
+msgid "no version information supplied"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:62
+msgid "License"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:70
+msgid "The code information is pulled from the latest git commit for this plugin. It might not reflect official version numbers or information but the actual code running."
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:74
+msgid "Package information"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:80
+msgid "Installation method"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:83
+msgid "This plugin was installed as a package"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:85
+msgid "This plugin was found in a local InvenTree path"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:91
+msgid "Installation path"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:97
+msgid "Commit Author"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:101
+#: templates/about.html:47
+msgid "Commit Date"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:105
+#: templates/about.html:40
+msgid "Commit Hash"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:109
+msgid "Commit Message"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:114
+msgid "Sign Status"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:119
+msgid "Sign Key"
+msgstr ""
+
#: templates/InvenTree/settings/po.html:7
msgid "Purchase Order Settings"
msgstr ""
@@ -6194,86 +6538,82 @@ msgstr ""
msgid "Edit setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:11 templates/navbar.html:93
-msgid "Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/settings.html:65
+#: templates/InvenTree/settings/settings.html:74
msgid "Edit Global Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:65
+#: templates/InvenTree/settings/settings.html:74
msgid "Edit User Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:148
+#: templates/InvenTree/settings/settings.html:157
msgid "No category parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:170
-#: templates/InvenTree/settings/settings.html:269
+#: templates/InvenTree/settings/settings.html:179
+#: templates/InvenTree/settings/settings.html:278
msgid "Edit Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:171
-#: templates/InvenTree/settings/settings.html:270
+#: templates/InvenTree/settings/settings.html:180
+#: templates/InvenTree/settings/settings.html:279
msgid "Delete Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:249
+#: templates/InvenTree/settings/settings.html:258
msgid "No part parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:253
+#: templates/InvenTree/settings/settings.html:262
msgid "ID"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:5
+#: templates/InvenTree/settings/sidebar.html:6
#: templates/InvenTree/settings/user_settings.html:9
msgid "User Settings"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:8
+#: templates/InvenTree/settings/sidebar.html:9
#: templates/InvenTree/settings/user.html:12
msgid "Account Settings"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:10
+#: templates/InvenTree/settings/sidebar.html:11
#: templates/InvenTree/settings/user_display.html:9
msgid "Display Settings"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:12
+#: templates/InvenTree/settings/sidebar.html:13
msgid "Home Page"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:14
+#: templates/InvenTree/settings/sidebar.html:15
#: templates/InvenTree/settings/user_search.html:9
msgid "Search Settings"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:16
+#: templates/InvenTree/settings/sidebar.html:17
msgid "Label Printing"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:18
-#: templates/InvenTree/settings/sidebar.html:34
+#: templates/InvenTree/settings/sidebar.html:19
+#: templates/InvenTree/settings/sidebar.html:35
msgid "Reporting"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:23
+#: templates/InvenTree/settings/sidebar.html:24
msgid "Global Settings"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:26
+#: templates/InvenTree/settings/sidebar.html:27
msgid "Server Configuration"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:32
+#: templates/InvenTree/settings/sidebar.html:33
msgid "Currencies"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:38
+#: templates/InvenTree/settings/sidebar.html:39
msgid "Categories"
msgstr ""
@@ -6491,8 +6831,8 @@ msgstr ""
#: templates/about.html:11 templates/about.html:105
#: templates/js/translated/bom.js:283 templates/js/translated/modals.js:53
-#: templates/js/translated/modals.js:567 templates/js/translated/modals.js:661
-#: templates/js/translated/modals.js:964 templates/modals.html:15
+#: templates/js/translated/modals.js:568 templates/js/translated/modals.js:662
+#: templates/js/translated/modals.js:965 templates/modals.html:15
#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
msgid "Close"
msgstr ""
@@ -6513,14 +6853,6 @@ msgstr ""
msgid "Update Available"
msgstr ""
-#: templates/about.html:40
-msgid "Commit Hash"
-msgstr ""
-
-#: templates/about.html:47
-msgid "Commit Date"
-msgstr ""
-
#: templates/about.html:53
msgid "InvenTree Documentation"
msgstr ""
@@ -6718,8 +7050,9 @@ msgstr ""
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1129
-#: templates/js/translated/build.js:1749
+#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1134
+#: templates/js/translated/build.js:1755
+#: templates/js/translated/table_filters.js:178
msgid "Available"
msgstr "Dostępne"
@@ -6765,11 +7098,11 @@ msgstr ""
msgid "Remote image must not exceed maximum allowable file size"
msgstr ""
-#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1034
+#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1035
msgid "No Response"
msgstr ""
-#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1035
+#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1036
msgid "No response from the InvenTree server"
msgstr ""
@@ -6781,35 +7114,35 @@ msgstr ""
msgid "API request returned error code 400"
msgstr ""
-#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1044
+#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1045
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1045
+#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1046
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1049
+#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1050
msgid "Error 403: Permission Denied"
msgstr "Błąd 403: Odmowa dostępu"
-#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1050
+#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1051
msgid "You do not have the required permissions to access this function"
msgstr "Nie masz uprawnień wymaganych do dostępu do tej funkcji"
-#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1054
+#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1055
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1055
+#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1056
msgid "The requested resource could not be located on the server"
msgstr ""
-#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1059
+#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1060
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1060
+#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1061
msgid "Connection timeout while requesting data from server"
msgstr ""
@@ -6878,7 +7211,7 @@ msgid "Unknown response from server"
msgstr ""
#: templates/js/translated/barcode.js:140
-#: templates/js/translated/modals.js:1024
+#: templates/js/translated/modals.js:1025
msgid "Invalid server response"
msgstr ""
@@ -6886,7 +7219,7 @@ msgstr ""
msgid "Scan barcode data below"
msgstr ""
-#: templates/js/translated/barcode.js:280 templates/navbar.html:69
+#: templates/js/translated/barcode.js:280 templates/navbar.html:94
msgid "Scan Barcode"
msgstr ""
@@ -6906,7 +7239,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:682
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:839
msgid "Remove stock item"
msgstr ""
@@ -6976,7 +7309,7 @@ msgstr ""
msgid "Substitutes Available"
msgstr ""
-#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1111
+#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1116
msgid "Variant stock allowed"
msgstr ""
@@ -7000,11 +7333,6 @@ msgstr ""
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1183
-#: templates/js/translated/order.js:1319
-msgid "Actions"
-msgstr "Akcje"
-
#: templates/js/translated/bom.js:616
msgid "Validate BOM Item"
msgstr ""
@@ -7025,7 +7353,7 @@ msgstr ""
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:718 templates/js/translated/build.js:855
+#: templates/js/translated/bom.js:718 templates/js/translated/build.js:860
msgid "No BOM items found"
msgstr ""
@@ -7033,7 +7361,7 @@ msgstr ""
msgid "Are you sure you want to delete this BOM item?"
msgstr ""
-#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1095
+#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1100
msgid "Required Part"
msgstr ""
@@ -7041,165 +7369,165 @@ msgstr ""
msgid "Inherited from parent BOM"
msgstr ""
-#: templates/js/translated/build.js:78
+#: templates/js/translated/build.js:83
msgid "Edit Build Order"
msgstr ""
-#: templates/js/translated/build.js:112
+#: templates/js/translated/build.js:117
msgid "Create Build Order"
msgstr ""
-#: templates/js/translated/build.js:133
+#: templates/js/translated/build.js:138
msgid "Allocate stock items to this build output"
msgstr ""
-#: templates/js/translated/build.js:144
+#: templates/js/translated/build.js:149
msgid "Unallocate stock from build output"
msgstr ""
-#: templates/js/translated/build.js:153
+#: templates/js/translated/build.js:158
msgid "Complete build output"
msgstr ""
-#: templates/js/translated/build.js:161
+#: templates/js/translated/build.js:166
msgid "Delete build output"
msgstr ""
-#: templates/js/translated/build.js:184
+#: templates/js/translated/build.js:189
msgid "Are you sure you wish to unallocate stock items from this build?"
msgstr ""
-#: templates/js/translated/build.js:202
+#: templates/js/translated/build.js:207
msgid "Unallocate Stock Items"
msgstr ""
-#: templates/js/translated/build.js:220
+#: templates/js/translated/build.js:225
msgid "Select Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:221
+#: templates/js/translated/build.js:226
msgid "At least one build output must be selected"
msgstr ""
-#: templates/js/translated/build.js:275
+#: templates/js/translated/build.js:280
msgid "Output"
msgstr ""
-#: templates/js/translated/build.js:291
+#: templates/js/translated/build.js:296
msgid "Complete Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:386
+#: templates/js/translated/build.js:391
msgid "No build order allocations found"
msgstr ""
-#: templates/js/translated/build.js:424 templates/js/translated/order.js:1193
+#: templates/js/translated/build.js:429 templates/js/translated/order.js:1848
msgid "Location not specified"
msgstr ""
-#: templates/js/translated/build.js:603
+#: templates/js/translated/build.js:608
msgid "No active build outputs found"
msgstr ""
-#: templates/js/translated/build.js:1052 templates/js/translated/build.js:1760
-#: templates/js/translated/order.js:1326
+#: templates/js/translated/build.js:1057 templates/js/translated/build.js:1766
+#: templates/js/translated/order.js:1982
msgid "Edit stock allocation"
msgstr ""
-#: templates/js/translated/build.js:1054 templates/js/translated/build.js:1761
-#: templates/js/translated/order.js:1327
+#: templates/js/translated/build.js:1059 templates/js/translated/build.js:1767
+#: templates/js/translated/order.js:1983
msgid "Delete stock allocation"
msgstr ""
-#: templates/js/translated/build.js:1072
+#: templates/js/translated/build.js:1077
msgid "Edit Allocation"
msgstr ""
-#: templates/js/translated/build.js:1082
+#: templates/js/translated/build.js:1087
msgid "Remove Allocation"
msgstr ""
-#: templates/js/translated/build.js:1107
+#: templates/js/translated/build.js:1112
msgid "Substitute parts available"
msgstr ""
-#: templates/js/translated/build.js:1124
+#: templates/js/translated/build.js:1129
msgid "Quantity Per"
msgstr "Ilość za"
-#: templates/js/translated/build.js:1134 templates/js/translated/build.js:1360
-#: templates/js/translated/build.js:1756 templates/js/translated/order.js:1556
+#: templates/js/translated/build.js:1139 templates/js/translated/build.js:1365
+#: templates/js/translated/build.js:1762 templates/js/translated/order.js:2227
msgid "Allocated"
msgstr "Przydzielono"
-#: templates/js/translated/build.js:1190 templates/js/translated/order.js:1610
+#: templates/js/translated/build.js:1195 templates/js/translated/order.js:2307
msgid "Build stock"
msgstr ""
-#: templates/js/translated/build.js:1194 templates/stock_table.html:52
+#: templates/js/translated/build.js:1199 templates/stock_table.html:52
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:1197 templates/js/translated/order.js:1603
+#: templates/js/translated/build.js:1202 templates/js/translated/order.js:2300
msgid "Allocate stock"
msgstr ""
-#: templates/js/translated/build.js:1262
+#: templates/js/translated/build.js:1267 templates/js/translated/order.js:1499
msgid "Specify stock allocation quantity"
msgstr ""
-#: templates/js/translated/build.js:1333 templates/js/translated/label.js:134
-#: templates/js/translated/report.js:225
+#: templates/js/translated/build.js:1338 templates/js/translated/label.js:134
+#: templates/js/translated/order.js:1550 templates/js/translated/report.js:225
msgid "Select Parts"
msgstr ""
-#: templates/js/translated/build.js:1334
+#: templates/js/translated/build.js:1339 templates/js/translated/order.js:1551
msgid "You must select at least one part to allocate"
msgstr ""
-#: templates/js/translated/build.js:1348
+#: templates/js/translated/build.js:1353 templates/js/translated/order.js:1565
msgid "Select source location (leave blank to take from all locations)"
msgstr ""
-#: templates/js/translated/build.js:1377
+#: templates/js/translated/build.js:1382 templates/js/translated/order.js:1600
msgid "Confirm stock allocation"
msgstr "Potwierdź przydział zapasów"
-#: templates/js/translated/build.js:1378
+#: templates/js/translated/build.js:1383
msgid "Allocate Stock Items to Build Order"
msgstr ""
-#: templates/js/translated/build.js:1389
+#: templates/js/translated/build.js:1394 templates/js/translated/order.js:1613
msgid "No matching stock locations"
msgstr ""
-#: templates/js/translated/build.js:1451
+#: templates/js/translated/build.js:1464 templates/js/translated/order.js:1690
msgid "No matching stock items"
msgstr ""
-#: templates/js/translated/build.js:1576
+#: templates/js/translated/build.js:1582
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:1593 templates/js/translated/part.js:1147
-#: templates/js/translated/part.js:1558 templates/js/translated/stock.js:1176
-#: templates/js/translated/stock.js:1953
+#: templates/js/translated/build.js:1599 templates/js/translated/part.js:1147
+#: templates/js/translated/part.js:1558 templates/js/translated/stock.js:1333
+#: templates/js/translated/stock.js:2128
msgid "Select"
msgstr ""
-#: templates/js/translated/build.js:1613
+#: templates/js/translated/build.js:1619
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1674 templates/js/translated/stock.js:2172
+#: templates/js/translated/build.js:1680 templates/js/translated/stock.js:2347
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:1686
+#: templates/js/translated/build.js:1692
msgid "No information"
msgstr ""
-#: templates/js/translated/build.js:1737
+#: templates/js/translated/build.js:1743
msgid "No parts allocated for"
msgstr ""
@@ -7219,7 +7547,7 @@ msgstr ""
msgid "Delete Manufacturer Part"
msgstr ""
-#: templates/js/translated/company.js:165 templates/js/translated/order.js:90
+#: templates/js/translated/company.js:165 templates/js/translated/order.js:248
msgid "Add Supplier"
msgstr ""
@@ -7354,20 +7682,20 @@ msgstr ""
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1072 templates/modals.html:19
+#: templates/js/translated/forms.js:1078 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1463
+#: templates/js/translated/forms.js:1469
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1667
+#: templates/js/translated/forms.js:1673
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1884
+#: templates/js/translated/forms.js:1893
msgid "Clear input"
msgstr ""
@@ -7380,7 +7708,7 @@ msgid "NO"
msgstr ""
#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:706
+#: templates/js/translated/stock.js:863
msgid "Select Stock Items"
msgstr ""
@@ -7429,62 +7757,62 @@ msgstr ""
msgid "Select Label Template"
msgstr ""
-#: templates/js/translated/modals.js:75 templates/js/translated/modals.js:119
-#: templates/js/translated/modals.js:593
+#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:120
+#: templates/js/translated/modals.js:594
msgid "Cancel"
msgstr ""
-#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:118
-#: templates/js/translated/modals.js:660 templates/js/translated/modals.js:963
+#: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119
+#: templates/js/translated/modals.js:661 templates/js/translated/modals.js:964
#: templates/modals.html:28 templates/modals.html:51
msgid "Submit"
msgstr ""
-#: templates/js/translated/modals.js:117
+#: templates/js/translated/modals.js:118
msgid "Form Title"
msgstr ""
-#: templates/js/translated/modals.js:380
+#: templates/js/translated/modals.js:381
msgid "Waiting for server..."
msgstr ""
-#: templates/js/translated/modals.js:539
+#: templates/js/translated/modals.js:540
msgid "Show Error Information"
msgstr ""
-#: templates/js/translated/modals.js:592
+#: templates/js/translated/modals.js:593
msgid "Accept"
msgstr ""
-#: templates/js/translated/modals.js:649
+#: templates/js/translated/modals.js:650
msgid "Loading Data"
msgstr ""
-#: templates/js/translated/modals.js:915
+#: templates/js/translated/modals.js:916
msgid "Invalid response from server"
msgstr ""
-#: templates/js/translated/modals.js:915
+#: templates/js/translated/modals.js:916
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/translated/modals.js:927
+#: templates/js/translated/modals.js:928
msgid "Error posting form data"
msgstr ""
-#: templates/js/translated/modals.js:1024
+#: templates/js/translated/modals.js:1025
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/translated/modals.js:1039
+#: templates/js/translated/modals.js:1040
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/translated/modals.js:1040
+#: templates/js/translated/modals.js:1041
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/translated/modals.js:1063
+#: templates/js/translated/modals.js:1064
msgid "Error requesting form data"
msgstr ""
@@ -7512,176 +7840,245 @@ msgstr ""
msgid "Order ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:256
+#: templates/js/translated/model_renderers.js:253
+msgid "Shipment ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:273
msgid "Category ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:293
+#: templates/js/translated/model_renderers.js:310
msgid "Manufacturer Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:322
+#: templates/js/translated/model_renderers.js:339
msgid "Supplier Part ID"
msgstr ""
-#: templates/js/translated/order.js:48
+#: templates/js/translated/order.js:75
+msgid "No stock items have been allocated to this shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:80
+msgid "The following stock items will be shipped"
+msgstr ""
+
+#: templates/js/translated/order.js:120
+msgid "Complete Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:126
+msgid "Confirm Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:181
+msgid "Create New Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:206
msgid "Add Customer"
msgstr ""
-#: templates/js/translated/order.js:73
+#: templates/js/translated/order.js:231
msgid "Create Sales Order"
msgstr ""
-#: templates/js/translated/order.js:208
+#: templates/js/translated/order.js:366
msgid "Export Order"
msgstr ""
-#: templates/js/translated/order.js:211 templates/js/translated/stock.js:505
+#: templates/js/translated/order.js:369 templates/js/translated/stock.js:509
msgid "Format"
msgstr ""
-#: templates/js/translated/order.js:212 templates/js/translated/stock.js:506
+#: templates/js/translated/order.js:370 templates/js/translated/stock.js:510
msgid "Select file format"
msgstr ""
-#: templates/js/translated/order.js:300
+#: templates/js/translated/order.js:460
msgid "Select Line Items"
msgstr ""
-#: templates/js/translated/order.js:301
+#: templates/js/translated/order.js:461
msgid "At least one line item must be selected"
msgstr ""
-#: templates/js/translated/order.js:326
+#: templates/js/translated/order.js:486
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:360 templates/js/translated/stock.js:1755
+#: templates/js/translated/order.js:520 templates/js/translated/stock.js:1930
msgid "Stock Status"
msgstr ""
-#: templates/js/translated/order.js:427
+#: templates/js/translated/order.js:587
msgid "Order Code"
msgstr "Kod zamówienia"
-#: templates/js/translated/order.js:428
+#: templates/js/translated/order.js:588
msgid "Ordered"
msgstr ""
-#: templates/js/translated/order.js:430
+#: templates/js/translated/order.js:590
msgid "Receive"
msgstr "Odbierz"
-#: templates/js/translated/order.js:449
+#: templates/js/translated/order.js:609
msgid "Confirm receipt of items"
msgstr ""
-#: templates/js/translated/order.js:450
+#: templates/js/translated/order.js:610
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:627 templates/js/translated/part.js:746
+#: templates/js/translated/order.js:790 templates/js/translated/part.js:746
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:659 templates/js/translated/order.js:1062
+#: templates/js/translated/order.js:815 templates/js/translated/order.js:1230
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:771 templates/js/translated/order.js:1645
+#: templates/js/translated/order.js:936 templates/js/translated/order.js:2356
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:783 templates/js/translated/order.js:1656
+#: templates/js/translated/order.js:948 templates/js/translated/order.js:2367
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/order.js:822
+#: templates/js/translated/order.js:987
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:849 templates/js/translated/order.js:1466
+#: templates/js/translated/order.js:1014 templates/js/translated/order.js:2138
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:903 templates/js/translated/order.js:1491
+#: templates/js/translated/order.js:1068 templates/js/translated/order.js:2163
#: templates/js/translated/part.js:1775 templates/js/translated/part.js:1986
msgid "Unit Price"
msgstr "Cena jednostkowa"
-#: templates/js/translated/order.js:918 templates/js/translated/order.js:1507
+#: templates/js/translated/order.js:1083 templates/js/translated/order.js:2179
msgid "Total Price"
msgstr ""
-#: templates/js/translated/order.js:996 templates/js/translated/order.js:1616
+#: templates/js/translated/order.js:1161 templates/js/translated/order.js:2313
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:997
+#: templates/js/translated/order.js:1162 templates/js/translated/order.js:2317
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:1001 templates/js/translated/part.js:878
+#: templates/js/translated/order.js:1166 templates/js/translated/part.js:878
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:1038
+#: templates/js/translated/order.js:1206
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:1076
+#: templates/js/translated/order.js:1244
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:1154
+#: templates/js/translated/order.js:1322
+msgid "Edit shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1325
+msgid "Complete shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1330
+msgid "Delete shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1350
+msgid "Edit Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1367
+msgid "Delete Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1401
+msgid "No matching shipments found"
+msgstr ""
+
+#: templates/js/translated/order.js:1411
+msgid "Shipment Reference"
+msgstr ""
+
+#: templates/js/translated/order.js:1435
+msgid "Not shipped"
+msgstr ""
+
+#: templates/js/translated/order.js:1441
+msgid "Tracking"
+msgstr ""
+
+#: templates/js/translated/order.js:1601
+msgid "Allocate Stock Items to Sales Order"
+msgstr ""
+
+#: templates/js/translated/order.js:1809
msgid "No sales order allocations found"
msgstr ""
-#: templates/js/translated/order.js:1247
+#: templates/js/translated/order.js:1898
msgid "Edit Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1264
+#: templates/js/translated/order.js:1915
msgid "Confirm Delete Operation"
msgstr ""
-#: templates/js/translated/order.js:1265
+#: templates/js/translated/order.js:1916
msgid "Delete Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1307
+#: templates/js/translated/order.js:1959 templates/js/translated/order.js:2048
+#: templates/js/translated/stock.js:1249
+msgid "Shipped to customer"
+msgstr ""
+
+#: templates/js/translated/order.js:1967 templates/js/translated/order.js:2057
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:1556
-msgid "Fulfilled"
-msgstr ""
-
-#: templates/js/translated/order.js:1600
+#: templates/js/translated/order.js:2297
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:1606
+#: templates/js/translated/order.js:2303
msgid "Purchase stock"
msgstr "Cena zakupu"
-#: templates/js/translated/order.js:1613 templates/js/translated/order.js:1792
+#: templates/js/translated/order.js:2310 templates/js/translated/order.js:2476
msgid "Calculate price"
msgstr "Oblicz cenę"
-#: templates/js/translated/order.js:1617
-msgid "Delete line item "
+#: templates/js/translated/order.js:2321
+msgid "Cannot be deleted as items have been shipped"
msgstr ""
-#: templates/js/translated/order.js:1740
-msgid "Allocate Stock Item"
+#: templates/js/translated/order.js:2324
+msgid "Cannot be deleted as items have been allocated"
msgstr ""
-#: templates/js/translated/order.js:1800
+#: templates/js/translated/order.js:2382
+msgid "Allocate Serial Numbers"
+msgstr ""
+
+#: templates/js/translated/order.js:2484
msgid "Update Unit Price"
msgstr "Zaktualizuj cenę jednostkową"
-#: templates/js/translated/order.js:1814
+#: templates/js/translated/order.js:2498
msgid "No matching line items"
msgstr ""
@@ -7826,12 +8223,12 @@ msgid "No category"
msgstr ""
#: templates/js/translated/part.js:1230
-#: templates/js/translated/table_filters.js:381
+#: templates/js/translated/table_filters.js:412
msgid "Low stock"
msgstr ""
#: templates/js/translated/part.js:1321 templates/js/translated/part.js:1493
-#: templates/js/translated/stock.js:1914
+#: templates/js/translated/stock.js:2089
msgid "Display as list"
msgstr ""
@@ -7839,7 +8236,7 @@ msgstr ""
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1512 templates/js/translated/stock.js:1933
+#: templates/js/translated/part.js:1512 templates/js/translated/stock.js:2108
msgid "Display as tree"
msgstr ""
@@ -7847,7 +8244,7 @@ msgstr ""
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:1590 templates/js/translated/stock.js:1977
+#: templates/js/translated/part.js:1590 templates/js/translated/stock.js:2152
msgid "Path"
msgstr ""
@@ -7855,11 +8252,11 @@ msgstr ""
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1685 templates/js/translated/stock.js:898
+#: templates/js/translated/part.js:1685 templates/js/translated/stock.js:1055
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1686 templates/js/translated/stock.js:899
+#: templates/js/translated/part.js:1686 templates/js/translated/stock.js:1056
msgid "Delete test result"
msgstr ""
@@ -7898,6 +8295,10 @@ msgstr "Cena jednostkowa"
msgid "Single Price Difference"
msgstr ""
+#: templates/js/translated/plugin.js:22
+msgid "The Plugin was installed"
+msgstr ""
+
#: templates/js/translated/report.js:67
msgid "items selected"
msgstr ""
@@ -7964,300 +8365,316 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/stock.js:71
+#: templates/js/translated/stock.js:72
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:89 templates/js/translated/stock.js:168
+#: templates/js/translated/stock.js:90 templates/js/translated/stock.js:172
msgid "Next available serial number"
msgstr ""
-#: templates/js/translated/stock.js:91 templates/js/translated/stock.js:170
+#: templates/js/translated/stock.js:92 templates/js/translated/stock.js:174
msgid "Latest serial number"
msgstr ""
-#: templates/js/translated/stock.js:105
+#: templates/js/translated/stock.js:100
+msgid "Confirm Stock Serialization"
+msgstr ""
+
+#: templates/js/translated/stock.js:109
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:141
+#: templates/js/translated/stock.js:145
msgid "New Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:181
+#: templates/js/translated/stock.js:185
msgid "This part cannot be serialized"
msgstr ""
-#: templates/js/translated/stock.js:220
+#: templates/js/translated/stock.js:224
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: templates/js/translated/stock.js:226
+#: templates/js/translated/stock.js:230
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: templates/js/translated/stock.js:369
+#: templates/js/translated/stock.js:373
msgid "Created new stock item"
msgstr ""
-#: templates/js/translated/stock.js:382
+#: templates/js/translated/stock.js:386
msgid "Created multiple stock items"
msgstr ""
-#: templates/js/translated/stock.js:407
+#: templates/js/translated/stock.js:411
msgid "Find Serial Number"
msgstr ""
-#: templates/js/translated/stock.js:411 templates/js/translated/stock.js:412
+#: templates/js/translated/stock.js:415 templates/js/translated/stock.js:416
msgid "Enter serial number"
msgstr ""
-#: templates/js/translated/stock.js:428
+#: templates/js/translated/stock.js:432
msgid "Enter a serial number"
msgstr ""
-#: templates/js/translated/stock.js:448
+#: templates/js/translated/stock.js:452
msgid "No matching serial number"
msgstr ""
-#: templates/js/translated/stock.js:457
+#: templates/js/translated/stock.js:461
msgid "More than one matching result found"
msgstr ""
-#: templates/js/translated/stock.js:502
+#: templates/js/translated/stock.js:506
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:513
+#: templates/js/translated/stock.js:517
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:514
+#: templates/js/translated/stock.js:518
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:556
+#: templates/js/translated/stock.js:627
+msgid "Confirm stock assignment"
+msgstr ""
+
+#: templates/js/translated/stock.js:628
+msgid "Assign Stock to Customer"
+msgstr ""
+
+#: templates/js/translated/stock.js:713
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:557
+#: templates/js/translated/stock.js:714
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:563
+#: templates/js/translated/stock.js:720
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:564
+#: templates/js/translated/stock.js:721
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:568
+#: templates/js/translated/stock.js:725
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:569
+#: templates/js/translated/stock.js:726
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:573
+#: templates/js/translated/stock.js:730
msgid "Add Stock"
msgstr "Dodaj stan"
-#: templates/js/translated/stock.js:574 users/models.py:200
+#: templates/js/translated/stock.js:731 users/models.py:202
msgid "Add"
msgstr "Dodaj"
-#: templates/js/translated/stock.js:578 templates/stock_table.html:56
+#: templates/js/translated/stock.js:735 templates/stock_table.html:57
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:667
+#: templates/js/translated/stock.js:824
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:667
+#: templates/js/translated/stock.js:824
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:707
+#: templates/js/translated/stock.js:864
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:865
+#: templates/js/translated/stock.js:1022
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:867
+#: templates/js/translated/stock.js:1024
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:872
+#: templates/js/translated/stock.js:1029
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:894
+#: templates/js/translated/stock.js:1051
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:920
+#: templates/js/translated/stock.js:1077
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:977
+#: templates/js/translated/stock.js:1134
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:1084
+#: templates/js/translated/stock.js:1241
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:1088
+#: templates/js/translated/stock.js:1245
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:1092
-msgid "Shipped to customer"
-msgstr ""
-
-#: templates/js/translated/stock.js:1096
+#: templates/js/translated/stock.js:1253
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:1102
+#: templates/js/translated/stock.js:1259
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:1260
+#: templates/js/translated/stock.js:1417
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1265
+#: templates/js/translated/stock.js:1422
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1268
+#: templates/js/translated/stock.js:1425
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1272
+#: templates/js/translated/stock.js:1429
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1274
+#: templates/js/translated/stock.js:1431
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1278
-msgid "Stock item has been allocated"
+#: templates/js/translated/stock.js:1437
+msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1282
+#: templates/js/translated/stock.js:1439
+msgid "Stock item has been fully allocated"
+msgstr ""
+
+#: templates/js/translated/stock.js:1441
+msgid "Stock item has been partially allocated"
+msgstr ""
+
+#: templates/js/translated/stock.js:1446
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1289
+#: templates/js/translated/stock.js:1453
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1291
+#: templates/js/translated/stock.js:1455
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1293
+#: templates/js/translated/stock.js:1457
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1297
-#: templates/js/translated/table_filters.js:183
+#: templates/js/translated/stock.js:1461
+#: templates/js/translated/table_filters.js:188
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1347
+#: templates/js/translated/stock.js:1511
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1420
+#: templates/js/translated/stock.js:1584
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1458
+#: templates/js/translated/stock.js:1622
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1479 templates/js/translated/stock.js:1527
+#: templates/js/translated/stock.js:1643 templates/js/translated/stock.js:1691
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1567
+#: templates/js/translated/stock.js:1731
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1594
+#: templates/js/translated/stock.js:1758
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:1596
+#: templates/js/translated/stock.js:1760
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:1770
+#: templates/js/translated/stock.js:1945
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:1784
+#: templates/js/translated/stock.js:1959
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:1785
+#: templates/js/translated/stock.js:1960
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:2009
+#: templates/js/translated/stock.js:2184
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:2031
+#: templates/js/translated/stock.js:2206
msgid "Details"
msgstr "Szczegóły"
-#: templates/js/translated/stock.js:2056
+#: templates/js/translated/stock.js:2231
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2075
+#: templates/js/translated/stock.js:2250
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2094
+#: templates/js/translated/stock.js:2269
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2112
+#: templates/js/translated/stock.js:2287
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2135
+#: templates/js/translated/stock.js:2310
msgid "Added"
msgstr "Dodano"
-#: templates/js/translated/stock.js:2143
+#: templates/js/translated/stock.js:2318
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2184
+#: templates/js/translated/stock.js:2359
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2185
+#: templates/js/translated/stock.js:2360
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2236
+#: templates/js/translated/stock.js:2411
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2287
+#: templates/js/translated/stock.js:2462
msgid "Uninstall Stock Item"
msgstr ""
@@ -8278,7 +8695,7 @@ msgid "Allow Variant Stock"
msgstr ""
#: templates/js/translated/table_filters.js:110
-#: templates/js/translated/table_filters.js:178
+#: templates/js/translated/table_filters.js:183
msgid "Include sublocations"
msgstr ""
@@ -8288,54 +8705,54 @@ msgstr ""
#: templates/js/translated/table_filters.js:121
#: templates/js/translated/table_filters.js:122
-#: templates/js/translated/table_filters.js:358
+#: templates/js/translated/table_filters.js:389
msgid "Include subcategories"
msgstr ""
#: templates/js/translated/table_filters.js:126
-#: templates/js/translated/table_filters.js:393
+#: templates/js/translated/table_filters.js:424
msgid "Subscribed"
msgstr ""
#: templates/js/translated/table_filters.js:136
-#: templates/js/translated/table_filters.js:213
+#: templates/js/translated/table_filters.js:218
msgid "Is Serialized"
msgstr ""
#: templates/js/translated/table_filters.js:139
-#: templates/js/translated/table_filters.js:220
+#: templates/js/translated/table_filters.js:225
msgid "Serial number GTE"
msgstr ""
#: templates/js/translated/table_filters.js:140
-#: templates/js/translated/table_filters.js:221
+#: templates/js/translated/table_filters.js:226
msgid "Serial number greater than or equal to"
msgstr ""
#: templates/js/translated/table_filters.js:143
-#: templates/js/translated/table_filters.js:224
+#: templates/js/translated/table_filters.js:229
msgid "Serial number LTE"
msgstr ""
#: templates/js/translated/table_filters.js:144
-#: templates/js/translated/table_filters.js:225
+#: templates/js/translated/table_filters.js:230
msgid "Serial number less than or equal to"
msgstr ""
#: templates/js/translated/table_filters.js:147
#: templates/js/translated/table_filters.js:148
-#: templates/js/translated/table_filters.js:216
-#: templates/js/translated/table_filters.js:217
+#: templates/js/translated/table_filters.js:221
+#: templates/js/translated/table_filters.js:222
msgid "Serial number"
msgstr ""
#: templates/js/translated/table_filters.js:152
-#: templates/js/translated/table_filters.js:234
+#: templates/js/translated/table_filters.js:239
msgid "Batch code"
msgstr ""
#: templates/js/translated/table_filters.js:163
-#: templates/js/translated/table_filters.js:348
+#: templates/js/translated/table_filters.js:379
msgid "Active parts"
msgstr ""
@@ -8356,101 +8773,111 @@ msgid "Item has been allocated"
msgstr ""
#: templates/js/translated/table_filters.js:179
-msgid "Include stock in sublocations"
+msgid "Stock is available for use"
msgstr ""
#: templates/js/translated/table_filters.js:184
-msgid "Show stock items which are depleted"
+msgid "Include stock in sublocations"
msgstr ""
#: templates/js/translated/table_filters.js:189
-msgid "Show items which are in stock"
-msgstr ""
-
-#: templates/js/translated/table_filters.js:193
-msgid "In Production"
+msgid "Show stock items which are depleted"
msgstr ""
#: templates/js/translated/table_filters.js:194
-msgid "Show items which are in production"
+msgid "Show items which are in stock"
msgstr ""
#: templates/js/translated/table_filters.js:198
-msgid "Include Variants"
+msgid "In Production"
msgstr ""
#: templates/js/translated/table_filters.js:199
-msgid "Include stock items for variant parts"
+msgid "Show items which are in production"
msgstr ""
#: templates/js/translated/table_filters.js:203
-msgid "Installed"
+msgid "Include Variants"
msgstr ""
#: templates/js/translated/table_filters.js:204
-msgid "Show stock items which are installed in another item"
+msgid "Include stock items for variant parts"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:208
+msgid "Installed"
msgstr ""
#: templates/js/translated/table_filters.js:209
+msgid "Show stock items which are installed in another item"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:214
msgid "Show items which have been assigned to a customer"
msgstr ""
-#: templates/js/translated/table_filters.js:229
-#: templates/js/translated/table_filters.js:230
+#: templates/js/translated/table_filters.js:234
+#: templates/js/translated/table_filters.js:235
msgid "Stock status"
msgstr ""
-#: templates/js/translated/table_filters.js:238
+#: templates/js/translated/table_filters.js:243
msgid "Has purchase price"
msgstr ""
-#: templates/js/translated/table_filters.js:239
+#: templates/js/translated/table_filters.js:244
msgid "Show stock items which have a purchase price set"
msgstr ""
-#: templates/js/translated/table_filters.js:248
+#: templates/js/translated/table_filters.js:253
msgid "Show stock items which have expired"
msgstr ""
-#: templates/js/translated/table_filters.js:254
+#: templates/js/translated/table_filters.js:259
msgid "Show stock which is close to expiring"
msgstr ""
-#: templates/js/translated/table_filters.js:285
+#: templates/js/translated/table_filters.js:290
msgid "Build status"
msgstr ""
-#: templates/js/translated/table_filters.js:313
-#: templates/js/translated/table_filters.js:330
+#: templates/js/translated/table_filters.js:303
+#: templates/js/translated/table_filters.js:344
+msgid "Assigned to me"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:320
+#: templates/js/translated/table_filters.js:331
+#: templates/js/translated/table_filters.js:352
msgid "Order status"
msgstr ""
-#: templates/js/translated/table_filters.js:318
-#: templates/js/translated/table_filters.js:335
+#: templates/js/translated/table_filters.js:336
+#: templates/js/translated/table_filters.js:357
msgid "Outstanding"
msgstr ""
-#: templates/js/translated/table_filters.js:359
+#: templates/js/translated/table_filters.js:390
msgid "Include parts in subcategories"
msgstr ""
-#: templates/js/translated/table_filters.js:363
+#: templates/js/translated/table_filters.js:394
msgid "Has IPN"
msgstr ""
-#: templates/js/translated/table_filters.js:364
+#: templates/js/translated/table_filters.js:395
msgid "Part has internal part number"
msgstr ""
-#: templates/js/translated/table_filters.js:369
+#: templates/js/translated/table_filters.js:400
msgid "Show active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:377
+#: templates/js/translated/table_filters.js:408
msgid "Stock available"
msgstr ""
-#: templates/js/translated/table_filters.js:405
+#: templates/js/translated/table_filters.js:436
msgid "Purchasable"
msgstr ""
@@ -8507,27 +8934,23 @@ msgstr ""
msgid "All"
msgstr ""
-#: templates/navbar.html:40
+#: templates/navbar.html:42
msgid "Buy"
msgstr ""
-#: templates/navbar.html:52
+#: templates/navbar.html:54
msgid "Sell"
msgstr ""
-#: templates/navbar.html:86 users/models.py:39
-msgid "Admin"
-msgstr ""
-
-#: templates/navbar.html:88
+#: templates/navbar.html:113
msgid "Logout"
msgstr ""
-#: templates/navbar.html:90
+#: templates/navbar.html:115
msgid "Login"
msgstr ""
-#: templates/navbar.html:111
+#: templates/navbar.html:136
msgid "About InvenTree"
msgstr ""
@@ -8639,15 +9062,15 @@ msgstr ""
msgid "Order selected items"
msgstr ""
-#: templates/stock_table.html:53
+#: templates/stock_table.html:54
msgid "Change status"
msgstr ""
-#: templates/stock_table.html:53
+#: templates/stock_table.html:54
msgid "Change stock status"
msgstr ""
-#: templates/stock_table.html:56
+#: templates/stock_table.html:57
msgid "Delete selected items"
msgstr ""
@@ -8683,35 +9106,35 @@ msgstr "Uprawnienia"
msgid "Important dates"
msgstr ""
-#: users/models.py:187
+#: users/models.py:189
msgid "Permission set"
msgstr "Uprawnienia nadane"
-#: users/models.py:195
+#: users/models.py:197
msgid "Group"
msgstr ""
-#: users/models.py:198
+#: users/models.py:200
msgid "View"
msgstr ""
-#: users/models.py:198
+#: users/models.py:200
msgid "Permission to view items"
msgstr "Uprawnienie do wyświetlania przedmiotów"
-#: users/models.py:200
+#: users/models.py:202
msgid "Permission to add items"
msgstr "Uprawnienie do dodawania przedmiotów"
-#: users/models.py:202
+#: users/models.py:204
msgid "Change"
msgstr ""
-#: users/models.py:202
+#: users/models.py:204
msgid "Permissions to edit items"
msgstr "Uprawnienie do edycji przedmiotów"
-#: users/models.py:204
+#: users/models.py:206
msgid "Permission to delete items"
msgstr "Uprawnienie do usuwania przedmiotów"
diff --git a/InvenTree/locale/pt/LC_MESSAGES/django.po b/InvenTree/locale/pt/LC_MESSAGES/django.po
index 03d5295103..5b636802e5 100644
--- a/InvenTree/locale/pt/LC_MESSAGES/django.po
+++ b/InvenTree/locale/pt/LC_MESSAGES/django.po
@@ -1,9 +1,10 @@
+#: templates/js/translated/order.js:1973
msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-12-03 10:37+0000\n"
-"PO-Revision-Date: 2021-12-03 11:25\n"
+"POT-Creation-Date: 2021-12-08 23:43+0000\n"
+"PO-Revision-Date: 2021-12-08 23:47\n"
"Last-Translator: \n"
"Language-Team: Portuguese\n"
"Language: pt_PT\n"
@@ -34,8 +35,8 @@ msgid "Enter date"
msgstr ""
#: InvenTree/forms.py:120 build/forms.py:48 build/forms.py:69 build/forms.py:93
-#: order/forms.py:26 order/forms.py:37 order/forms.py:48 order/forms.py:59
-#: order/forms.py:70 part/forms.py:108 templates/account/email_confirm.html:20
+#: order/forms.py:24 order/forms.py:35 order/forms.py:46 order/forms.py:57
+#: part/forms.py:108 templates/account/email_confirm.html:20
#: templates/js/translated/forms.js:595
msgid "Confirm"
msgstr ""
@@ -85,8 +86,8 @@ msgstr ""
msgid "Duplicate serial: {n}"
msgstr ""
-#: InvenTree/helpers.py:437 order/models.py:318 order/models.py:440
-#: stock/views.py:1264
+#: InvenTree/helpers.py:437 order/models.py:279 order/models.py:420
+#: stock/views.py:1231
msgid "Invalid quantity provided"
msgstr ""
@@ -122,7 +123,7 @@ msgstr ""
msgid "Missing external link"
msgstr ""
-#: InvenTree/models.py:132 stock/models.py:1864
+#: InvenTree/models.py:132 stock/models.py:1852
#: templates/js/translated/attachment.js:117
msgid "Attachment"
msgstr ""
@@ -132,7 +133,7 @@ msgid "Select file to attach"
msgstr ""
#: InvenTree/models.py:139 company/models.py:131 company/models.py:348
-#: company/models.py:564 order/models.py:163 part/models.py:797
+#: company/models.py:564 order/models.py:124 part/models.py:797
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:537
#: templates/js/translated/company.js:826 templates/js/translated/part.js:1258
@@ -140,7 +141,7 @@ msgid "Link"
msgstr ""
#: InvenTree/models.py:140 build/models.py:330 part/models.py:798
-#: stock/models.py:530
+#: stock/models.py:524
msgid "Link to external URL"
msgstr ""
@@ -152,10 +153,10 @@ msgstr ""
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1185
-#: common/models.py:1186 part/models.py:2205 part/models.py:2225
+#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1213
+#: common/models.py:1214 part/models.py:2205 part/models.py:2225
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2166
+#: templates/js/translated/stock.js:2341
msgid "User"
msgstr ""
@@ -194,10 +195,15 @@ msgstr ""
#: InvenTree/models.py:277 InvenTree/models.py:278 company/models.py:415
#: label/models.py:112 part/models.py:741 part/models.py:2389
-#: report/models.py:181 templates/InvenTree/settings/settings.html:259
+#: plugin/models.py:39 report/models.py:181
+#: templates/InvenTree/settings/mixins/urls.html:11
+#: templates/InvenTree/settings/plugin.html:47
+#: templates/InvenTree/settings/plugin.html:124
+#: templates/InvenTree/settings/plugin_settings.html:23
+#: templates/InvenTree/settings/settings.html:268
#: templates/js/translated/company.js:638 templates/js/translated/part.js:506
#: templates/js/translated/part.js:643 templates/js/translated/part.js:1565
-#: templates/js/translated/stock.js:1959
+#: templates/js/translated/stock.js:2134
msgid "Name"
msgstr ""
@@ -206,22 +212,23 @@ msgstr ""
#: company/models.py:570 company/templates/company/company_base.html:68
#: company/templates/company/manufacturer_part.html:76
#: company/templates/company/supplier_part.html:73 label/models.py:119
-#: order/models.py:161 part/models.py:764 part/templates/part/category.html:70
+#: order/models.py:122 part/models.py:764 part/templates/part/category.html:70
#: part/templates/part/part_base.html:163
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:553 report/models.py:592
#: report/templates/report/inventree_build_order_base.html:118
-#: stock/templates/stock/location.html:89 templates/js/translated/bom.js:215
-#: templates/js/translated/bom.js:428 templates/js/translated/build.js:1621
-#: templates/js/translated/company.js:345
+#: stock/templates/stock/location.html:89
+#: templates/InvenTree/settings/plugin_settings.html:33
+#: templates/js/translated/bom.js:215 templates/js/translated/bom.js:428
+#: templates/js/translated/build.js:1627 templates/js/translated/company.js:345
#: templates/js/translated/company.js:548
-#: templates/js/translated/company.js:837 templates/js/translated/order.js:680
-#: templates/js/translated/order.js:854 templates/js/translated/order.js:1090
+#: templates/js/translated/company.js:837 templates/js/translated/order.js:836
+#: templates/js/translated/order.js:1019 templates/js/translated/order.js:1258
#: templates/js/translated/part.js:565 templates/js/translated/part.js:933
#: templates/js/translated/part.js:1018 templates/js/translated/part.js:1188
#: templates/js/translated/part.js:1584 templates/js/translated/part.js:1653
-#: templates/js/translated/stock.js:1233 templates/js/translated/stock.js:1971
-#: templates/js/translated/stock.js:2016
+#: templates/js/translated/stock.js:1390 templates/js/translated/stock.js:2146
+#: templates/js/translated/stock.js:2191
msgid "Description"
msgstr ""
@@ -241,83 +248,83 @@ msgstr ""
msgid "Filename"
msgstr ""
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:689
msgid "German"
msgstr ""
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:690
msgid "Greek"
msgstr ""
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:691
msgid "English"
msgstr ""
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:692
msgid "Spanish"
msgstr ""
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:693
msgid "Spanish (Mexican)"
msgstr ""
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:694
msgid "French"
msgstr ""
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:695
msgid "Hebrew"
msgstr ""
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:696
msgid "Italian"
msgstr ""
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:697
msgid "Japanese"
msgstr ""
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:698
msgid "Korean"
msgstr ""
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:699
msgid "Dutch"
msgstr ""
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:700
msgid "Norwegian"
msgstr ""
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:701
msgid "Polish"
msgstr ""
-#: InvenTree/settings.py:683
+#: InvenTree/settings.py:702
msgid "Portugese"
msgstr ""
-#: InvenTree/settings.py:684
+#: InvenTree/settings.py:703
msgid "Russian"
msgstr ""
-#: InvenTree/settings.py:685
+#: InvenTree/settings.py:704
msgid "Swedish"
msgstr ""
-#: InvenTree/settings.py:686
+#: InvenTree/settings.py:705
msgid "Thai"
msgstr ""
-#: InvenTree/settings.py:687
+#: InvenTree/settings.py:706
msgid "Turkish"
msgstr ""
-#: InvenTree/settings.py:688
+#: InvenTree/settings.py:707
msgid "Vietnamese"
msgstr ""
-#: InvenTree/settings.py:689
+#: InvenTree/settings.py:708
msgid "Chinese"
msgstr ""
@@ -334,7 +341,7 @@ msgid "InvenTree system health checks failed"
msgstr ""
#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142
-#: InvenTree/status_codes.py:311
+#: InvenTree/status_codes.py:311 templates/js/translated/table_filters.js:313
msgid "Pending"
msgstr ""
@@ -343,6 +350,8 @@ msgid "Placed"
msgstr ""
#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:314
+#: order/templates/order/order_base.html:128
+#: order/templates/order/sales_order_base.html:132
msgid "Complete"
msgstr ""
@@ -361,8 +370,8 @@ msgstr ""
msgid "Returned"
msgstr ""
-#: InvenTree/status_codes.py:143
-#: order/templates/order/sales_order_base.html:148
+#: InvenTree/status_codes.py:143 order/models.py:939
+#: templates/js/translated/order.js:1980 templates/js/translated/order.js:2255
msgid "Shipped"
msgstr ""
@@ -442,7 +451,7 @@ msgstr ""
msgid "Split child item"
msgstr ""
-#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:208
+#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:213
msgid "Sent to customer"
msgstr ""
@@ -522,55 +531,55 @@ msgstr ""
msgid "Password fields must match"
msgstr ""
-#: InvenTree/views.py:883 templates/navbar.html:101
+#: InvenTree/views.py:883 templates/navbar.html:126
msgid "System Information"
msgstr ""
-#: barcodes/api.py:53 barcodes/api.py:150
+#: barcodes/api.py:54 barcodes/api.py:151
msgid "Must provide barcode_data parameter"
msgstr ""
-#: barcodes/api.py:126
+#: barcodes/api.py:127
msgid "No match found for barcode data"
msgstr ""
-#: barcodes/api.py:128
+#: barcodes/api.py:129
msgid "Match found for barcode data"
msgstr ""
-#: barcodes/api.py:153
+#: barcodes/api.py:154
msgid "Must provide stockitem parameter"
msgstr ""
-#: barcodes/api.py:160
+#: barcodes/api.py:161
msgid "No matching stock item found"
msgstr ""
-#: barcodes/api.py:190
-msgid "Barcode already matches StockItem object"
+#: barcodes/api.py:191
+msgid "Barcode already matches Stock Item"
msgstr ""
-#: barcodes/api.py:194
-msgid "Barcode already matches StockLocation object"
+#: barcodes/api.py:195
+msgid "Barcode already matches Stock Location"
msgstr ""
-#: barcodes/api.py:198
-msgid "Barcode already matches Part object"
+#: barcodes/api.py:199
+msgid "Barcode already matches Part"
msgstr ""
-#: barcodes/api.py:204 barcodes/api.py:216
-msgid "Barcode hash already matches StockItem object"
+#: barcodes/api.py:205 barcodes/api.py:217
+msgid "Barcode hash already matches Stock Item"
msgstr ""
-#: barcodes/api.py:222
-msgid "Barcode associated with StockItem"
+#: barcodes/api.py:223
+msgid "Barcode associated with Stock Item"
msgstr ""
#: build/forms.py:36 build/models.py:1283
#: build/templates/build/build_base.html:132
-#: build/templates/build/detail.html:35 common/models.py:1225
+#: build/templates/build/detail.html:35 common/models.py:1253
#: company/forms.py:42 company/templates/company/supplier_part.html:251
-#: order/forms.py:102 order/models.py:729 order/models.py:991
+#: order/models.py:794 order/models.py:1205 order/serializers.py:810
#: order/templates/order/order_wizard/match_parts.html:30
#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:223
#: part/forms.py:239 part/forms.py:255 part/models.py:2576
@@ -582,20 +591,23 @@ msgstr ""
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:81
#: report/templates/report/inventree_test_report_base.html:139
-#: stock/forms.py:156 stock/serializers.py:291
+#: stock/forms.py:142 stock/serializers.py:293
#: stock/templates/stock/item_base.html:174
+#: stock/templates/stock/item_base.html:255
+#: stock/templates/stock/item_base.html:263
#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443
-#: templates/js/translated/build.js:235 templates/js/translated/build.js:435
-#: templates/js/translated/build.js:629 templates/js/translated/build.js:639
-#: templates/js/translated/build.js:1015 templates/js/translated/build.js:1362
+#: templates/js/translated/build.js:240 templates/js/translated/build.js:440
+#: templates/js/translated/build.js:634 templates/js/translated/build.js:644
+#: templates/js/translated/build.js:1020 templates/js/translated/build.js:1367
#: templates/js/translated/model_renderers.js:99
-#: templates/js/translated/order.js:891 templates/js/translated/order.js:1204
-#: templates/js/translated/order.js:1282 templates/js/translated/order.js:1289
-#: templates/js/translated/order.js:1378 templates/js/translated/order.js:1478
-#: templates/js/translated/part.js:843 templates/js/translated/part.js:1796
-#: templates/js/translated/part.js:1919 templates/js/translated/part.js:1997
-#: templates/js/translated/stock.js:378 templates/js/translated/stock.js:2151
-#: templates/js/translated/stock.js:2253
+#: templates/js/translated/order.js:101 templates/js/translated/order.js:1056
+#: templates/js/translated/order.js:1578 templates/js/translated/order.js:1859
+#: templates/js/translated/order.js:1947 templates/js/translated/order.js:2036
+#: templates/js/translated/order.js:2150 templates/js/translated/part.js:843
+#: templates/js/translated/part.js:1796 templates/js/translated/part.js:1919
+#: templates/js/translated/part.js:1997 templates/js/translated/stock.js:382
+#: templates/js/translated/stock.js:579 templates/js/translated/stock.js:2326
+#: templates/js/translated/stock.js:2428
msgid "Quantity"
msgstr ""
@@ -603,9 +615,9 @@ msgstr ""
msgid "Enter quantity for build output"
msgstr ""
-#: build/forms.py:41 order/forms.py:96 stock/forms.py:95
-#: stock/serializers.py:312 templates/js/translated/stock.js:225
-#: templates/js/translated/stock.js:379
+#: build/forms.py:41 order/serializers.py:814 stock/forms.py:81
+#: stock/serializers.py:314 templates/js/translated/stock.js:229
+#: templates/js/translated/stock.js:383
msgid "Serial Numbers"
msgstr ""
@@ -640,17 +652,17 @@ msgstr ""
#: build/models.py:137 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:397
+#: templates/js/translated/build.js:402
msgid "Build Order"
msgstr ""
#: build/models.py:138 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
-#: order/templates/order/sales_order_detail.html:42
-#: order/templates/order/so_sidebar.html:7
+#: order/templates/order/sales_order_detail.html:92
+#: order/templates/order/so_sidebar.html:13
#: part/templates/part/part_sidebar.html:20 templates/InvenTree/index.html:221
#: templates/InvenTree/search.html:145
-#: templates/InvenTree/settings/sidebar.html:42 users/models.py:44
+#: templates/InvenTree/settings/sidebar.html:43 users/models.py:44
msgid "Build Orders"
msgstr ""
@@ -658,13 +670,13 @@ msgstr ""
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:199 order/models.py:249 order/models.py:556
-#: order/models.py:736 part/models.py:2585
+#: build/models.py:199 order/models.py:210 order/models.py:536
+#: order/models.py:801 part/models.py:2585
#: part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1119
-#: templates/js/translated/order.js:885 templates/js/translated/order.js:1472
+#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1124
+#: templates/js/translated/order.js:1050 templates/js/translated/order.js:2144
msgid "Reference"
msgstr ""
@@ -683,7 +695,7 @@ msgstr ""
#: build/models.py:225 build/templates/build/build_base.html:77
#: build/templates/build/detail.html:30 company/models.py:705
-#: order/models.py:789 order/models.py:860
+#: order/models.py:854 order/models.py:928
#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357
#: part/models.py:2151 part/models.py:2167 part/models.py:2186
#: part/models.py:2203 part/models.py:2305 part/models.py:2427
@@ -698,14 +710,16 @@ msgstr ""
#: templates/email/build_order_required_stock.html:17
#: templates/email/low_stock_notification.html:16
#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:214
-#: templates/js/translated/bom.js:393 templates/js/translated/build.js:620
-#: templates/js/translated/build.js:988 templates/js/translated/build.js:1359
-#: templates/js/translated/build.js:1626 templates/js/translated/company.js:489
-#: templates/js/translated/company.js:746 templates/js/translated/order.js:426
-#: templates/js/translated/order.js:839 templates/js/translated/order.js:1456
-#: templates/js/translated/part.js:918 templates/js/translated/part.js:999
-#: templates/js/translated/part.js:1166 templates/js/translated/stock.js:590
-#: templates/js/translated/stock.js:1190 templates/js/translated/stock.js:2241
+#: templates/js/translated/bom.js:393 templates/js/translated/build.js:625
+#: templates/js/translated/build.js:993 templates/js/translated/build.js:1364
+#: templates/js/translated/build.js:1632 templates/js/translated/company.js:489
+#: templates/js/translated/company.js:746 templates/js/translated/order.js:84
+#: templates/js/translated/order.js:586 templates/js/translated/order.js:1004
+#: templates/js/translated/order.js:1576 templates/js/translated/order.js:1933
+#: templates/js/translated/order.js:2128 templates/js/translated/part.js:918
+#: templates/js/translated/part.js:999 templates/js/translated/part.js:1166
+#: templates/js/translated/stock.js:553 templates/js/translated/stock.js:747
+#: templates/js/translated/stock.js:1347 templates/js/translated/stock.js:2416
msgid "Part"
msgstr ""
@@ -721,7 +735,8 @@ msgstr ""
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:247 templates/js/translated/build.js:1347
+#: build/models.py:247 templates/js/translated/build.js:1352
+#: templates/js/translated/order.js:1564
msgid "Source Location"
msgstr ""
@@ -761,7 +776,7 @@ msgstr ""
msgid "Build status code"
msgstr ""
-#: build/models.py:285 stock/models.py:534
+#: build/models.py:285 stock/models.py:528
msgid "Batch Code"
msgstr ""
@@ -769,12 +784,12 @@ msgstr ""
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:292 order/models.py:165 part/models.py:936
-#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1103
+#: build/models.py:292 order/models.py:126 part/models.py:936
+#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1271
msgid "Creation Date"
msgstr ""
-#: build/models.py:296 order/models.py:578
+#: build/models.py:296 order/models.py:558
msgid "Target completion date"
msgstr ""
@@ -782,8 +797,8 @@ msgstr ""
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/models.py:300 order/models.py:291
-#: templates/js/translated/build.js:1697
+#: build/models.py:300 order/models.py:252
+#: templates/js/translated/build.js:1703
msgid "Completion Date"
msgstr ""
@@ -791,7 +806,7 @@ msgstr ""
msgid "completed by"
msgstr ""
-#: build/models.py:314 templates/js/translated/build.js:1668
+#: build/models.py:314 templates/js/translated/build.js:1674
msgid "Issued by"
msgstr ""
@@ -800,11 +815,11 @@ msgid "User who issued this build order"
msgstr ""
#: build/models.py:323 build/templates/build/build_base.html:185
-#: build/templates/build/detail.html:116 order/models.py:179
-#: order/templates/order/order_base.html:158
-#: order/templates/order/sales_order_base.html:162 part/models.py:940
+#: build/templates/build/detail.html:116 order/models.py:140
+#: order/templates/order/order_base.html:170
+#: order/templates/order/sales_order_base.html:182 part/models.py:940
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:1680 templates/js/translated/order.js:699
+#: templates/js/translated/build.js:1686 templates/js/translated/order.js:864
msgid "Responsible"
msgstr ""
@@ -815,7 +830,7 @@ msgstr ""
#: build/models.py:329 build/templates/build/detail.html:102
#: company/templates/company/manufacturer_part.html:102
#: company/templates/company/supplier_part.html:126
-#: part/templates/part/part_base.html:354 stock/models.py:528
+#: part/templates/part/part_base.html:354 stock/models.py:522
#: stock/templates/stock/item_base.html:374
msgid "External Link"
msgstr ""
@@ -823,18 +838,19 @@ msgstr ""
#: build/models.py:334 build/serializers.py:201
#: build/templates/build/sidebar.html:21 company/models.py:142
#: company/models.py:577 company/templates/company/sidebar.html:25
-#: order/models.py:183 order/models.py:738
+#: order/models.py:144 order/models.py:803 order/models.py:1049
#: order/templates/order/po_sidebar.html:11
-#: order/templates/order/so_sidebar.html:11 part/models.py:925
+#: order/templates/order/so_sidebar.html:17 part/models.py:925
#: part/templates/part/detail.html:116 part/templates/part/part_sidebar.html:50
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/forms.py:154 stock/forms.py:204 stock/forms.py:238 stock/models.py:600
-#: stock/models.py:1764 stock/models.py:1870 stock/serializers.py:330
-#: stock/serializers.py:588 stock/templates/stock/stock_sidebar.html:21
+#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:594
+#: stock/models.py:1752 stock/models.py:1858 stock/serializers.py:332
+#: stock/serializers.py:624 stock/serializers.py:711
+#: stock/templates/stock/stock_sidebar.html:21
#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599
-#: templates/js/translated/company.js:842 templates/js/translated/order.js:984
-#: templates/js/translated/order.js:1582 templates/js/translated/stock.js:973
-#: templates/js/translated/stock.js:1452
+#: templates/js/translated/company.js:842 templates/js/translated/order.js:1149
+#: templates/js/translated/order.js:1445 templates/js/translated/order.js:2280
+#: templates/js/translated/stock.js:1130 templates/js/translated/stock.js:1616
msgid "Notes"
msgstr ""
@@ -867,7 +883,7 @@ msgstr ""
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1133 order/models.py:964
+#: build/models.py:1133 order/models.py:1165
msgid "Allocation quantity must be greater than zero"
msgstr ""
@@ -880,8 +896,8 @@ msgid "Selected stock item not found in BOM"
msgstr ""
#: build/models.py:1253 stock/templates/stock/item_base.html:346
-#: templates/InvenTree/search.html:143 templates/js/translated/build.js:1599
-#: templates/navbar.html:33
+#: templates/InvenTree/search.html:143 templates/js/translated/build.js:1605
+#: templates/navbar.html:35
msgid "Build"
msgstr ""
@@ -889,14 +905,17 @@ msgstr ""
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1270 build/serializers.py:328
+#: build/models.py:1270 build/serializers.py:328 order/serializers.py:690
+#: order/serializers.py:708 stock/serializers.py:562
#: stock/templates/stock/item_base.html:8
#: stock/templates/stock/item_base.html:16
#: stock/templates/stock/item_base.html:368
-#: templates/js/translated/build.js:408 templates/js/translated/build.js:413
-#: templates/js/translated/build.js:1361 templates/js/translated/build.js:1742
-#: templates/js/translated/order.js:1177 templates/js/translated/order.js:1182
-#: templates/js/translated/stock.js:2102
+#: templates/js/translated/build.js:413 templates/js/translated/build.js:418
+#: templates/js/translated/build.js:1366 templates/js/translated/build.js:1748
+#: templates/js/translated/order.js:85 templates/js/translated/order.js:1577
+#: templates/js/translated/order.js:1832 templates/js/translated/order.js:1837
+#: templates/js/translated/order.js:1940 templates/js/translated/order.js:2030
+#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:2277
msgid "Stock Item"
msgstr ""
@@ -936,16 +955,17 @@ msgstr ""
msgid "This build output is not fully allocated"
msgstr ""
-#: build/serializers.py:190 order/serializers.py:228 order/serializers.py:296
-#: stock/forms.py:236 stock/serializers.py:323 stock/serializers.py:690
+#: build/serializers.py:190 order/serializers.py:226 order/serializers.py:294
+#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:813
#: stock/templates/stock/item_base.html:314
#: templates/js/translated/barcode.js:384
-#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:420
-#: templates/js/translated/build.js:1027 templates/js/translated/order.js:348
-#: templates/js/translated/order.js:1189 templates/js/translated/order.js:1297
-#: templates/js/translated/order.js:1303 templates/js/translated/part.js:177
-#: templates/js/translated/stock.js:592 templates/js/translated/stock.js:1333
-#: templates/js/translated/stock.js:2043
+#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:425
+#: templates/js/translated/build.js:1032 templates/js/translated/order.js:508
+#: templates/js/translated/order.js:1844 templates/js/translated/order.js:1955
+#: templates/js/translated/order.js:1963 templates/js/translated/order.js:2044
+#: templates/js/translated/part.js:177 templates/js/translated/stock.js:555
+#: templates/js/translated/stock.js:749 templates/js/translated/stock.js:1497
+#: templates/js/translated/stock.js:2218
msgid "Location"
msgstr ""
@@ -954,12 +974,12 @@ msgid "Location for completed build outputs"
msgstr ""
#: build/serializers.py:197 build/templates/build/build_base.html:137
-#: build/templates/build/detail.html:63 order/models.py:572
-#: order/serializers.py:249 stock/templates/stock/item_base.html:180
-#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1655
-#: templates/js/translated/order.js:431 templates/js/translated/order.js:1095
-#: templates/js/translated/stock.js:1308 templates/js/translated/stock.js:2120
-#: templates/js/translated/stock.js:2269
+#: build/templates/build/detail.html:63 order/models.py:552
+#: order/serializers.py:247 stock/templates/stock/item_base.html:180
+#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1661
+#: templates/js/translated/order.js:591 templates/js/translated/order.js:840
+#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1472
+#: templates/js/translated/stock.js:2295 templates/js/translated/stock.js:2444
msgid "Status"
msgstr ""
@@ -984,16 +1004,16 @@ msgstr ""
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:334
+#: build/serializers.py:334 stock/serializers.py:569
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:348 order/models.py:316 order/serializers.py:242
-#: stock/models.py:371 stock/models.py:1093 stock/serializers.py:303
+#: build/serializers.py:348 order/models.py:277 order/serializers.py:240
+#: stock/models.py:365 stock/models.py:1081 stock/serializers.py:305
msgid "Quantity must be greater than zero"
msgstr ""
-#: build/serializers.py:390
+#: build/serializers.py:390 order/serializers.py:741
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
@@ -1006,7 +1026,7 @@ msgstr ""
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:431
+#: build/serializers.py:431 order/serializers.py:984
msgid "Allocation items must be provided"
msgstr ""
@@ -1079,11 +1099,11 @@ msgstr ""
#: build/templates/build/build_base.html:146
#: build/templates/build/detail.html:132
-#: order/templates/order/order_base.html:144
-#: order/templates/order/sales_order_base.html:141
+#: order/templates/order/order_base.html:156
+#: order/templates/order/sales_order_base.html:163
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:1692 templates/js/translated/order.js:689
-#: templates/js/translated/order.js:1108
+#: templates/js/translated/build.js:1698 templates/js/translated/order.js:854
+#: templates/js/translated/order.js:1276
msgid "Target Date"
msgstr ""
@@ -1096,28 +1116,28 @@ msgstr ""
#: build/templates/build/build_base.html:196
#: order/templates/order/order_base.html:98
#: order/templates/order/sales_order_base.html:93
-#: templates/js/translated/table_filters.js:294
-#: templates/js/translated/table_filters.js:322
-#: templates/js/translated/table_filters.js:339
+#: templates/js/translated/table_filters.js:299
+#: templates/js/translated/table_filters.js:340
+#: templates/js/translated/table_filters.js:361
msgid "Overdue"
msgstr ""
#: build/templates/build/build_base.html:158
#: build/templates/build/detail.html:68 build/templates/build/detail.html:143
-#: templates/js/translated/build.js:1641
-#: templates/js/translated/table_filters.js:304
+#: order/templates/order/sales_order_base.html:170
+#: templates/js/translated/build.js:1647
+#: templates/js/translated/table_filters.js:370
msgid "Completed"
msgstr ""
#: build/templates/build/build_base.html:171
-#: build/templates/build/detail.html:95 order/models.py:857
-#: order/templates/order/sales_order_base.html:9
+#: build/templates/build/detail.html:95 order/models.py:925
+#: order/models.py:1021 order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
-#: order/templates/order/sales_order_ship.html:25
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:308
-#: templates/js/translated/order.js:1050
+#: templates/js/translated/order.js:1218
msgid "Sales Order"
msgstr ""
@@ -1191,8 +1211,8 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:50 order/models.py:811 stock/forms.py:150
-#: templates/js/translated/order.js:432 templates/js/translated/order.js:973
+#: build/templates/build/detail.html:50 order/models.py:876 stock/forms.py:136
+#: templates/js/translated/order.js:592 templates/js/translated/order.js:1138
msgid "Destination"
msgstr ""
@@ -1200,22 +1220,22 @@ msgstr ""
msgid "Destination location not specified"
msgstr ""
-#: build/templates/build/detail.html:74 templates/js/translated/build.js:647
+#: build/templates/build/detail.html:74 templates/js/translated/build.js:652
msgid "Allocated Parts"
msgstr ""
#: build/templates/build/detail.html:81
#: stock/templates/stock/item_base.html:332
-#: templates/js/translated/stock.js:1322 templates/js/translated/stock.js:2276
+#: templates/js/translated/stock.js:1486 templates/js/translated/stock.js:2451
#: templates/js/translated/table_filters.js:151
-#: templates/js/translated/table_filters.js:233
+#: templates/js/translated/table_filters.js:238
msgid "Batch"
msgstr ""
#: build/templates/build/detail.html:127
-#: order/templates/order/order_base.html:131
-#: order/templates/order/sales_order_base.html:135
-#: templates/js/translated/build.js:1663
+#: order/templates/order/order_base.html:143
+#: order/templates/order/sales_order_base.html:157
+#: templates/js/translated/build.js:1669
msgid "Created"
msgstr ""
@@ -1235,7 +1255,7 @@ msgstr ""
msgid "Allocate Stock to Build"
msgstr ""
-#: build/templates/build/detail.html:177 templates/js/translated/build.js:1202
+#: build/templates/build/detail.html:177 templates/js/translated/build.js:1207
msgid "Unallocate stock"
msgstr ""
@@ -1257,7 +1277,7 @@ msgstr ""
#: build/templates/build/detail.html:185
#: company/templates/company/detail.html:38
-#: company/templates/company/detail.html:85 order/views.py:509
+#: company/templates/company/detail.html:85 order/views.py:463
#: part/templates/part/category.html:173
msgid "Order Parts"
msgstr ""
@@ -1309,8 +1329,8 @@ msgstr ""
#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:60
-#: order/templates/order/sales_order_detail.html:52
-#: order/templates/order/so_sidebar.html:9 part/templates/part/detail.html:193
+#: order/templates/order/sales_order_detail.html:107
+#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:193
#: part/templates/part/part_sidebar.html:48 stock/templates/stock/item.html:95
#: stock/templates/stock/stock_sidebar.html:19
msgid "Attachments"
@@ -1325,8 +1345,8 @@ msgstr ""
#: company/templates/company/detail.html:215
#: order/templates/order/purchase_order_detail.html:80
#: order/templates/order/purchase_order_detail.html:108
-#: order/templates/order/sales_order_detail.html:72
-#: order/templates/order/sales_order_detail.html:99
+#: order/templates/order/sales_order_detail.html:127
+#: order/templates/order/sales_order_detail.html:186
#: part/templates/part/detail.html:120 stock/templates/stock/item.html:115
#: stock/templates/stock/item.html:205
msgid "Edit Notes"
@@ -1384,7 +1404,7 @@ msgstr ""
msgid "Maximum output quantity is "
msgstr ""
-#: build/views.py:122 stock/serializers.py:361 stock/views.py:1290
+#: build/views.py:122 stock/serializers.py:363 stock/views.py:1257
msgid "Serial numbers already exist"
msgstr ""
@@ -1400,7 +1420,7 @@ msgstr ""
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:219 stock/views.py:385
+#: build/views.py:219 stock/views.py:352
msgid "Check the confirmation box"
msgstr ""
@@ -1469,7 +1489,7 @@ msgstr ""
msgid "Select {name} file to upload"
msgstr ""
-#: common/models.py:340 common/models.py:970 common/models.py:1178
+#: common/models.py:340 common/models.py:998 common/models.py:1206
msgid "Settings key (must be unique - case insensitive"
msgstr ""
@@ -1557,7 +1577,7 @@ msgstr ""
msgid "Allow download of remote images and files from external URL"
msgstr ""
-#: common/models.py:649 templates/InvenTree/settings/sidebar.html:30
+#: common/models.py:649 templates/InvenTree/settings/sidebar.html:31
msgid "Barcode Support"
msgstr ""
@@ -1623,7 +1643,7 @@ msgstr ""
#: common/models.py:703 part/models.py:2429 report/models.py:187
#: templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:373
+#: templates/js/translated/table_filters.js:404
msgid "Template"
msgstr ""
@@ -1633,7 +1653,7 @@ msgstr ""
#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:956
#: templates/js/translated/table_filters.js:168
-#: templates/js/translated/table_filters.js:385
+#: templates/js/translated/table_filters.js:416
msgid "Assembly"
msgstr ""
@@ -1642,7 +1662,7 @@ msgid "Parts can be assembled from other components by default"
msgstr ""
#: common/models.py:717 part/models.py:894
-#: templates/js/translated/table_filters.js:389
+#: templates/js/translated/table_filters.js:420
msgid "Component"
msgstr ""
@@ -1659,7 +1679,7 @@ msgid "Parts are purchaseable by default"
msgstr ""
#: common/models.py:731 part/models.py:910
-#: templates/js/translated/table_filters.js:397
+#: templates/js/translated/table_filters.js:428
msgid "Salable"
msgstr ""
@@ -1670,7 +1690,7 @@ msgstr ""
#: common/models.py:738 part/models.py:900
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:100
-#: templates/js/translated/table_filters.js:401
+#: templates/js/translated/table_filters.js:432
msgid "Trackable"
msgstr ""
@@ -1932,230 +1952,262 @@ msgstr ""
msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:1001
+#: common/models.py:961
+msgid "Enable URL integration"
+msgstr ""
+
+#: common/models.py:962
+msgid "Enable plugins to add URL routes"
+msgstr ""
+
+#: common/models.py:968
+msgid "Enable navigation integration"
+msgstr ""
+
+#: common/models.py:969
+msgid "Enable plugins to integrate into navigation"
+msgstr ""
+
+#: common/models.py:975
+msgid "Enable global setting integration"
+msgstr ""
+
+#: common/models.py:976
+msgid "Enable plugins to integrate into inventree global settings"
+msgstr ""
+
+#: common/models.py:982
+msgid "Enable app integration"
+msgstr ""
+
+#: common/models.py:983
+msgid "Enable plugins to add apps"
+msgstr ""
+
+#: common/models.py:1029
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:1002
+#: common/models.py:1030
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:1007
+#: common/models.py:1035
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:1008
+#: common/models.py:1036
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:1013
+#: common/models.py:1041
msgid "Show latest parts"
msgstr ""
-#: common/models.py:1014
+#: common/models.py:1042
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:1019
+#: common/models.py:1047
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:1020
+#: common/models.py:1048
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:1026
+#: common/models.py:1054
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1027
+#: common/models.py:1055
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1032
+#: common/models.py:1060
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:1033
+#: common/models.py:1061
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:1038
+#: common/models.py:1066
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:1039
+#: common/models.py:1067
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:1044
+#: common/models.py:1072
msgid "Show low stock"
msgstr ""
-#: common/models.py:1045
+#: common/models.py:1073
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:1050
+#: common/models.py:1078
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:1051
+#: common/models.py:1079
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:1056
+#: common/models.py:1084
msgid "Show needed stock"
msgstr ""
-#: common/models.py:1057
+#: common/models.py:1085
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1062
+#: common/models.py:1090
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1063
+#: common/models.py:1091
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1068
+#: common/models.py:1096
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1069
+#: common/models.py:1097
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1074
+#: common/models.py:1102
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1075
+#: common/models.py:1103
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:1080
+#: common/models.py:1108
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:1081
+#: common/models.py:1109
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:1086
+#: common/models.py:1114
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:1087
+#: common/models.py:1115
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:1092
+#: common/models.py:1120
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:1093
+#: common/models.py:1121
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:1098
+#: common/models.py:1126
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:1099
+#: common/models.py:1127
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:1104
+#: common/models.py:1132
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:1105
+#: common/models.py:1133
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:1111
+#: common/models.py:1139
msgid "Inline label display"
msgstr ""
-#: common/models.py:1112
+#: common/models.py:1140
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1118
+#: common/models.py:1146
msgid "Inline report display"
msgstr ""
-#: common/models.py:1119
+#: common/models.py:1147
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1125
+#: common/models.py:1153
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:1126
+#: common/models.py:1154
msgid "Number of results to show in search preview window"
msgstr ""
-#: common/models.py:1132
+#: common/models.py:1160
msgid "Search Show Stock"
msgstr ""
-#: common/models.py:1133
+#: common/models.py:1161
msgid "Display stock levels in search preview window"
msgstr ""
-#: common/models.py:1139
+#: common/models.py:1167
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:1140
+#: common/models.py:1168
msgid "Hide inactive parts in search preview window"
msgstr ""
-#: common/models.py:1146
+#: common/models.py:1174
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:1147
+#: common/models.py:1175
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:1153
+#: common/models.py:1181
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1154
+#: common/models.py:1182
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1160
+#: common/models.py:1188
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:1161
+#: common/models.py:1189
msgid "InvenTree navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:1226 company/forms.py:43
+#: common/models.py:1254 company/forms.py:43
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1233 company/serializers.py:264
+#: common/models.py:1261 company/serializers.py:264
#: company/templates/company/supplier_part.html:256
#: templates/js/translated/part.js:852 templates/js/translated/part.js:1801
msgid "Price"
msgstr ""
-#: common/models.py:1234
+#: common/models.py:1262
msgid "Unit price at specified quantity"
msgstr ""
#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49
-#: order/templates/order/purchase_order_detail.html:24 order/views.py:289
+#: order/templates/order/purchase_order_detail.html:24 order/views.py:243
#: part/templates/part/bom_upload/upload_file.html:52
#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:212
#: part/views.py:858
@@ -2163,7 +2215,7 @@ msgid "Upload File"
msgstr ""
#: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52
-#: order/views.py:290 part/templates/part/bom_upload/match_fields.html:52
+#: order/views.py:244 part/templates/part/bom_upload/match_fields.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:45
#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:213
#: part/views.py:859
@@ -2195,6 +2247,7 @@ msgid "Previous Step"
msgstr ""
#: company/forms.py:24 part/forms.py:46
+#: templates/InvenTree/settings/mixins/urls.html:12
msgid "URL"
msgstr ""
@@ -2211,6 +2264,7 @@ msgid "Description of the company"
msgstr ""
#: company/models.py:112 company/templates/company/company_base.html:97
+#: templates/InvenTree/settings/plugin_settings.html:55
#: templates/js/translated/company.js:349
msgid "Website"
msgstr ""
@@ -2285,7 +2339,7 @@ msgid "Does this company manufacture parts?"
msgstr ""
#: company/models.py:152 company/serializers.py:270
-#: company/templates/company/company_base.html:103 stock/serializers.py:177
+#: company/templates/company/company_base.html:103 stock/serializers.py:179
msgid "Currency"
msgstr ""
@@ -2293,12 +2347,12 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:320 company/models.py:535 stock/models.py:474
+#: company/models.py:320 company/models.py:535 stock/models.py:468
#: stock/templates/stock/item_base.html:135
msgid "Base Part"
msgstr ""
-#: company/models.py:324 company/models.py:539 order/views.py:912
+#: company/models.py:324 company/models.py:539
msgid "Select part"
msgstr ""
@@ -2319,7 +2373,7 @@ msgstr ""
#: company/models.py:342 company/templates/company/manufacturer_part.html:96
#: company/templates/company/supplier_part.html:105
#: templates/js/translated/company.js:530
-#: templates/js/translated/company.js:815 templates/js/translated/order.js:873
+#: templates/js/translated/company.js:815 templates/js/translated/order.js:1038
#: templates/js/translated/part.js:243 templates/js/translated/part.js:832
msgid "MPN"
msgstr ""
@@ -2349,8 +2403,8 @@ msgstr ""
#: company/models.py:422
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:1857 templates/js/translated/company.js:644
-#: templates/js/translated/part.js:652 templates/js/translated/stock.js:960
+#: stock/models.py:1845 templates/js/translated/company.js:644
+#: templates/js/translated/part.js:652 templates/js/translated/stock.js:1117
msgid "Value"
msgstr ""
@@ -2360,7 +2414,7 @@ msgstr ""
#: company/models.py:429 part/models.py:882 part/models.py:2397
#: part/templates/part/part_base.html:288
-#: templates/InvenTree/settings/settings.html:264
+#: templates/InvenTree/settings/settings.html:273
#: templates/js/translated/company.js:650 templates/js/translated/part.js:658
msgid "Units"
msgstr ""
@@ -2374,12 +2428,12 @@ msgid "Linked manufacturer part must reference the same base part"
msgstr ""
#: company/models.py:545 company/templates/company/company_base.html:78
-#: company/templates/company/supplier_part.html:87 order/models.py:263
+#: company/templates/company/supplier_part.html:87 order/models.py:224
#: order/templates/order/order_base.html:112
#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219
#: part/bom.py:247 stock/templates/stock/item_base.html:398
#: templates/js/translated/company.js:337
-#: templates/js/translated/company.js:771 templates/js/translated/order.js:667
+#: templates/js/translated/company.js:771 templates/js/translated/order.js:823
#: templates/js/translated/part.js:213 templates/js/translated/part.js:800
msgid "Supplier"
msgstr ""
@@ -2389,7 +2443,7 @@ msgid "Select supplier"
msgstr ""
#: company/models.py:551 company/templates/company/supplier_part.html:91
-#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:860
+#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:1025
#: templates/js/translated/part.js:224 templates/js/translated/part.js:818
msgid "SKU"
msgstr ""
@@ -2425,8 +2479,8 @@ msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:582 company/templates/company/supplier_part.html:112
-#: stock/models.py:497 stock/templates/stock/item_base.html:339
-#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1448
+#: stock/models.py:491 stock/templates/stock/item_base.html:339
+#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1612
msgid "Packaging"
msgstr ""
@@ -2457,7 +2511,7 @@ msgid "Company"
msgstr ""
#: company/templates/company/company_base.html:22
-#: templates/js/translated/order.js:121
+#: templates/js/translated/order.js:279
msgid "Create Purchase Order"
msgstr ""
@@ -2493,11 +2547,12 @@ msgstr ""
msgid "Download image from URL"
msgstr ""
-#: company/templates/company/company_base.html:83 order/models.py:567
-#: order/templates/order/sales_order_base.html:115 stock/models.py:515
-#: stock/models.py:516 stock/templates/stock/item_base.html:291
-#: templates/js/translated/company.js:329 templates/js/translated/order.js:1072
-#: templates/js/translated/stock.js:2084
+#: company/templates/company/company_base.html:83 order/models.py:547
+#: order/templates/order/sales_order_base.html:115 stock/models.py:509
+#: stock/models.py:510 stock/serializers.py:610
+#: stock/templates/stock/item_base.html:291
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1240
+#: templates/js/translated/stock.js:2259
msgid "Customer"
msgstr ""
@@ -2580,7 +2635,7 @@ msgstr ""
#: order/templates/order/purchase_orders.html:12
#: part/templates/part/detail.html:64 part/templates/part/part_sidebar.html:33
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:203
-#: templates/InvenTree/settings/sidebar.html:44 templates/navbar.html:45
+#: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47
#: users/models.py:45
msgid "Purchase Orders"
msgstr ""
@@ -2602,7 +2657,7 @@ msgstr ""
#: order/templates/order/sales_orders.html:15
#: part/templates/part/detail.html:87 part/templates/part/part_sidebar.html:37
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:223
-#: templates/InvenTree/settings/sidebar.html:46 templates/navbar.html:56
+#: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58
#: users/models.py:46
msgid "Sales Orders"
msgstr ""
@@ -2618,7 +2673,7 @@ msgid "New Sales Order"
msgstr ""
#: company/templates/company/detail.html:168
-#: templates/js/translated/build.js:999
+#: templates/js/translated/build.js:1004
msgid "Assigned Stock"
msgstr ""
@@ -2644,7 +2699,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:14 company/views.py:55
#: part/templates/part/prices.html:167 templates/InvenTree/search.html:184
-#: templates/navbar.html:44
+#: templates/navbar.html:46
msgid "Manufacturers"
msgstr ""
@@ -2673,7 +2728,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:114
#: company/templates/company/supplier_part.html:15 company/views.py:49
#: part/templates/part/part_sidebar.html:31 part/templates/part/prices.html:163
-#: templates/InvenTree/search.html:194 templates/navbar.html:43
+#: templates/InvenTree/search.html:194 templates/navbar.html:45
msgid "Suppliers"
msgstr ""
@@ -2687,7 +2742,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:254
#: part/templates/part/detail.html:344 part/templates/part/detail.html:372
#: templates/js/translated/company.js:425 templates/js/translated/helpers.js:31
-#: users/models.py:204
+#: users/models.py:206
msgid "Delete"
msgstr ""
@@ -2739,9 +2794,9 @@ msgid "Assigned Stock Items"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:482
+#: company/templates/company/supplier_part.html:24 stock/models.py:476
#: stock/templates/stock/item_base.html:403
-#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1405
+#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1569
msgid "Supplier Part"
msgstr ""
@@ -2767,7 +2822,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:142
#: part/templates/part/detail.html:21 stock/templates/stock/location.html:163
-#: templates/js/translated/stock.js:355
+#: templates/js/translated/stock.js:359
msgid "New Stock Item"
msgstr ""
@@ -2817,11 +2872,11 @@ msgstr ""
#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:14
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:156
-#: templates/InvenTree/settings/sidebar.html:40
+#: templates/InvenTree/settings/sidebar.html:41
#: templates/js/translated/bom.js:216 templates/js/translated/part.js:434
#: templates/js/translated/part.js:569 templates/js/translated/part.js:1059
-#: templates/js/translated/part.js:1220 templates/js/translated/stock.js:591
-#: templates/js/translated/stock.js:1244 templates/navbar.html:26
+#: templates/js/translated/part.js:1220 templates/js/translated/stock.js:748
+#: templates/js/translated/stock.js:1401 templates/navbar.html:28
msgid "Stock"
msgstr ""
@@ -2844,7 +2899,7 @@ msgstr ""
#: stock/templates/stock/location.html:147
#: stock/templates/stock/location.html:159
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1983
+#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:2158
#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
msgid "Stock Items"
msgstr ""
@@ -2858,7 +2913,7 @@ msgid "New Manufacturer"
msgstr ""
#: company/views.py:61 templates/InvenTree/search.html:214
-#: templates/navbar.html:55
+#: templates/navbar.html:57
msgid "Customers"
msgstr ""
@@ -2960,284 +3015,374 @@ msgstr ""
msgid "Part query filters (comma-separated value of key=value pairs)"
msgstr ""
-#: order/forms.py:26 order/templates/order/order_base.html:52
+#: order/forms.py:24 order/templates/order/order_base.html:52
msgid "Place order"
msgstr ""
-#: order/forms.py:37 order/templates/order/order_base.html:60
+#: order/forms.py:35 order/templates/order/order_base.html:60
msgid "Mark order as complete"
msgstr ""
-#: order/forms.py:48 order/forms.py:59 order/templates/order/order_base.html:47
+#: order/forms.py:46 order/forms.py:57 order/templates/order/order_base.html:47
#: order/templates/order/sales_order_base.html:60
msgid "Cancel order"
msgstr ""
-#: order/forms.py:70
-msgid "Ship order"
-msgstr ""
-
-#: order/forms.py:98
-msgid "Enter stock item serial numbers"
-msgstr ""
-
-#: order/forms.py:104
-msgid "Enter quantity of stock items"
-msgstr ""
-
-#: order/models.py:161
+#: order/models.py:122
msgid "Order description"
msgstr ""
-#: order/models.py:163
+#: order/models.py:124
msgid "Link to external page"
msgstr ""
-#: order/models.py:171
+#: order/models.py:132
msgid "Created By"
msgstr ""
-#: order/models.py:178
+#: order/models.py:139
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:183
+#: order/models.py:144
msgid "Order notes"
msgstr ""
-#: order/models.py:250 order/models.py:557
+#: order/models.py:211 order/models.py:537
msgid "Order reference"
msgstr ""
-#: order/models.py:255 order/models.py:572
+#: order/models.py:216 order/models.py:552
msgid "Purchase order status"
msgstr ""
-#: order/models.py:264
+#: order/models.py:225
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:267 order/templates/order/order_base.html:118
-#: templates/js/translated/order.js:676
+#: order/models.py:228 order/templates/order/order_base.html:118
+#: templates/js/translated/order.js:832
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:267
+#: order/models.py:228
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:274
+#: order/models.py:235
msgid "received by"
msgstr ""
-#: order/models.py:279
+#: order/models.py:240
msgid "Issue Date"
msgstr ""
-#: order/models.py:280
+#: order/models.py:241
msgid "Date order was issued"
msgstr ""
-#: order/models.py:285
+#: order/models.py:246
msgid "Target Delivery Date"
msgstr ""
-#: order/models.py:286
+#: order/models.py:247
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:292
+#: order/models.py:253
msgid "Date order was completed"
msgstr ""
-#: order/models.py:321
+#: order/models.py:282
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:431
+#: order/models.py:411
msgid "Quantity must be an integer"
msgstr ""
-#: order/models.py:435
+#: order/models.py:415
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:568
+#: order/models.py:548
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:574
+#: order/models.py:554
msgid "Customer Reference "
msgstr ""
-#: order/models.py:574
+#: order/models.py:554
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:579
+#: order/models.py:559
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:582 templates/js/translated/order.js:1113
+#: order/models.py:562 order/models.py:1026
+#: templates/js/translated/order.js:1281 templates/js/translated/order.js:1429
msgid "Shipment Date"
msgstr ""
-#: order/models.py:589
+#: order/models.py:569
msgid "shipped by"
msgstr ""
-#: order/models.py:633
-msgid "SalesOrder cannot be shipped as it is not currently pending"
+#: order/models.py:634
+msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:730
+#: order/models.py:639
+msgid "Only a pending order can be marked as complete"
+msgstr ""
+
+#: order/models.py:643
+msgid "Order cannot be completed as there are incomplete shipments"
+msgstr ""
+
+#: order/models.py:647
+msgid "Order cannot be completed as there are incomplete line items"
+msgstr ""
+
+#: order/models.py:795
msgid "Item quantity"
msgstr ""
-#: order/models.py:736
+#: order/models.py:801
msgid "Line item reference"
msgstr ""
-#: order/models.py:738
+#: order/models.py:803
msgid "Line item notes"
msgstr ""
-#: order/models.py:768 order/models.py:856
-#: templates/js/translated/order.js:1165
+#: order/models.py:833 order/models.py:924 order/models.py:1020
+#: templates/js/translated/order.js:1820
msgid "Order"
msgstr ""
-#: order/models.py:769 order/templates/order/order_base.html:9
+#: order/models.py:834 order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:353
-#: templates/js/translated/order.js:638 templates/js/translated/part.js:775
-#: templates/js/translated/stock.js:1382 templates/js/translated/stock.js:2065
+#: templates/js/translated/order.js:801 templates/js/translated/part.js:775
+#: templates/js/translated/stock.js:1546 templates/js/translated/stock.js:2240
msgid "Purchase Order"
msgstr ""
-#: order/models.py:790
+#: order/models.py:855
msgid "Supplier part"
msgstr ""
-#: order/models.py:797 order/templates/order/order_base.html:151
-#: order/templates/order/sales_order_base.html:155
-#: templates/js/translated/order.js:429 templates/js/translated/order.js:953
+#: order/models.py:862 order/templates/order/order_base.html:163
+#: templates/js/translated/order.js:589 templates/js/translated/order.js:1118
#: templates/js/translated/part.js:847 templates/js/translated/part.js:873
+#: templates/js/translated/table_filters.js:317
msgid "Received"
msgstr ""
-#: order/models.py:798
+#: order/models.py:863
msgid "Number of items received"
msgstr ""
-#: order/models.py:805 part/templates/part/prices.html:176 stock/models.py:609
-#: stock/serializers.py:168 stock/templates/stock/item_base.html:360
-#: templates/js/translated/stock.js:1436
+#: order/models.py:870 part/templates/part/prices.html:176 stock/models.py:603
+#: stock/serializers.py:170 stock/templates/stock/item_base.html:360
+#: templates/js/translated/stock.js:1600
msgid "Purchase Price"
msgstr ""
-#: order/models.py:806
+#: order/models.py:871
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:814
+#: order/models.py:879
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:866 part/templates/part/part_pricing.html:112
+#: order/models.py:934 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:116 part/templates/part/prices.html:284
msgid "Sale Price"
msgstr ""
-#: order/models.py:867
+#: order/models.py:935
msgid "Unit sale price"
msgstr ""
-#: order/models.py:946 order/models.py:948
+#: order/models.py:940
+msgid "Shipped quantity"
+msgstr ""
+
+#: order/models.py:1027
+msgid "Date of shipment"
+msgstr ""
+
+#: order/models.py:1034
+msgid "Checked By"
+msgstr ""
+
+#: order/models.py:1035
+msgid "User who checked this shipment"
+msgstr ""
+
+#: order/models.py:1043
+msgid "Shipment number"
+msgstr ""
+
+#: order/models.py:1050
+msgid "Shipment notes"
+msgstr ""
+
+#: order/models.py:1057
+msgid "Tracking Number"
+msgstr ""
+
+#: order/models.py:1058
+msgid "Shipment tracking information"
+msgstr ""
+
+#: order/models.py:1068
+msgid "Shipment has already been sent"
+msgstr ""
+
+#: order/models.py:1071
+msgid "Shipment has no allocated stock items"
+msgstr ""
+
+#: order/models.py:1147 order/models.py:1149
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:952
+#: order/models.py:1153
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:954
+#: order/models.py:1155
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:957
+#: order/models.py:1158
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:961
+#: order/models.py:1162
msgid "StockItem is over-allocated"
msgstr ""
-#: order/models.py:967
+#: order/models.py:1168 order/serializers.py:734
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:975
+#: order/models.py:1171
+msgid "Sales order does not match shipment"
+msgstr ""
+
+#: order/models.py:1172
+msgid "Shipment does not match sales order"
+msgstr ""
+
+#: order/models.py:1180
msgid "Line"
msgstr ""
-#: order/models.py:987
+#: order/models.py:1188 order/serializers.py:825 order/serializers.py:953
+#: templates/js/translated/model_renderers.js:251
+msgid "Shipment"
+msgstr ""
+
+#: order/models.py:1189
+msgid "Sales order shipment reference"
+msgstr ""
+
+#: order/models.py:1201
msgid "Item"
msgstr ""
-#: order/models.py:988
+#: order/models.py:1202
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:991
+#: order/models.py:1205
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/serializers.py:175
+#: order/serializers.py:173
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:213
+#: order/serializers.py:211 order/serializers.py:790
msgid "Line Item"
msgstr ""
-#: order/serializers.py:219
+#: order/serializers.py:217
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:229 order/serializers.py:297
+#: order/serializers.py:227 order/serializers.py:295
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:253
+#: order/serializers.py:251
msgid "Barcode Hash"
msgstr ""
-#: order/serializers.py:254
+#: order/serializers.py:252
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:271
+#: order/serializers.py:269
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:309
+#: order/serializers.py:307
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:326
+#: order/serializers.py:324
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:337
+#: order/serializers.py:335
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:578
+#: order/serializers.py:581
msgid "Sale price currency"
msgstr ""
+#: order/serializers.py:649
+msgid "No shipment details provided"
+msgstr ""
+
+#: order/serializers.py:699 order/serializers.py:802
+msgid "Line item is not associated with this order"
+msgstr ""
+
+#: order/serializers.py:721
+msgid "Quantity must be positive"
+msgstr ""
+
+#: order/serializers.py:815
+msgid "Enter serial numbers to allocate"
+msgstr ""
+
+#: order/serializers.py:839 order/serializers.py:964
+msgid "Shipment has already been shipped"
+msgstr ""
+
+#: order/serializers.py:842 order/serializers.py:967
+msgid "Shipment is not associated with this order"
+msgstr ""
+
+#: order/serializers.py:894
+msgid "No match found for the following serial numbers"
+msgstr ""
+
+#: order/serializers.py:904
+msgid "The following serial numbers are already allocated"
+msgstr ""
+
#: order/templates/order/delete_attachment.html:5
#: stock/templates/stock/attachment_delete.html:5
msgid "Are you sure you want to delete this attachment?"
@@ -3271,7 +3416,8 @@ msgstr ""
msgid "Receive Items"
msgstr ""
-#: order/templates/order/order_base.html:62 order/views.py:185
+#: order/templates/order/order_base.html:62
+#: order/templates/order/sales_order_base.html:67 order/views.py:181
msgid "Complete Order"
msgstr ""
@@ -3290,12 +3436,23 @@ msgstr ""
msgid "Order Status"
msgstr ""
-#: order/templates/order/order_base.html:137
+#: order/templates/order/order_base.html:124
+#: order/templates/order/sales_order_base.html:128
+msgid "Completed Line Items"
+msgstr ""
+
+#: order/templates/order/order_base.html:130
+#: order/templates/order/sales_order_base.html:134
+#: order/templates/order/sales_order_base.html:144
+msgid "Incomplete"
+msgstr ""
+
+#: order/templates/order/order_base.html:149
#: report/templates/report/inventree_build_order_base.html:122
msgid "Issued"
msgstr ""
-#: order/templates/order/order_base.html:207
+#: order/templates/order/order_base.html:219
msgid "Edit Purchase Order"
msgstr ""
@@ -3371,8 +3528,9 @@ msgstr ""
#: part/templates/part/import_wizard/ajax_match_references.html:42
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
-#: templates/js/translated/build.js:240 templates/js/translated/build.js:1251
-#: templates/js/translated/order.js:377
+#: templates/js/translated/build.js:245 templates/js/translated/build.js:1256
+#: templates/js/translated/order.js:537 templates/js/translated/order.js:1488
+#: templates/js/translated/stock.js:592
msgid "Remove row"
msgstr ""
@@ -3453,7 +3611,8 @@ msgid "Select existing purchase orders, or create new orders."
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:31
-#: templates/js/translated/order.js:694 templates/js/translated/order.js:1118
+#: templates/js/translated/order.js:859 templates/js/translated/order.js:1286
+#: templates/js/translated/order.js:1416
msgid "Items"
msgstr ""
@@ -3489,7 +3648,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:27
#: order/templates/order/purchase_order_detail.html:181
#: order/templates/order/sales_order_detail.html:23
-#: order/templates/order/sales_order_detail.html:157
+#: order/templates/order/sales_order_detail.html:244
msgid "Add Line Item"
msgstr ""
@@ -3502,7 +3661,7 @@ msgid "Received Items"
msgstr ""
#: order/templates/order/purchase_order_detail.html:76
-#: order/templates/order/sales_order_detail.html:68
+#: order/templates/order/sales_order_detail.html:123
msgid "Order Notes"
msgstr ""
@@ -3520,8 +3679,8 @@ msgid "Print packing list"
msgstr ""
#: order/templates/order/sales_order_base.html:66
-#: order/templates/order/sales_order_base.html:67 order/views.py:222
-msgid "Ship Order"
+#: order/templates/order/sales_order_base.html:229
+msgid "Complete Sales Order"
msgstr ""
#: order/templates/order/sales_order_base.html:102
@@ -3529,16 +3688,21 @@ msgid "This Sales Order has not been fully allocated"
msgstr ""
#: order/templates/order/sales_order_base.html:122
-#: templates/js/translated/order.js:1085
+#: templates/js/translated/order.js:1253
msgid "Customer Reference"
msgstr ""
-#: order/templates/order/sales_order_base.html:195
+#: order/templates/order/sales_order_base.html:140
+#: order/templates/order/sales_order_detail.html:78
+#: order/templates/order/so_sidebar.html:11
+msgid "Completed Shipments"
+msgstr ""
+
+#: order/templates/order/sales_order_base.html:215
msgid "Edit Sales Order"
msgstr ""
#: order/templates/order/sales_order_cancel.html:8
-#: order/templates/order/sales_order_ship.html:9
#: part/templates/part/bom_duplicate.html:12
#: stock/templates/stock/stockitem_convert.html:13
msgid "Warning"
@@ -3552,146 +3716,100 @@ msgstr ""
msgid "Sales Order Items"
msgstr ""
-#: order/templates/order/sales_order_ship.html:10
-msgid "This order has not been fully allocated. If the order is marked as shipped, it can no longer be adjusted."
+#: order/templates/order/sales_order_detail.html:44
+#: order/templates/order/so_sidebar.html:8
+msgid "Pending Shipments"
msgstr ""
-#: order/templates/order/sales_order_ship.html:12
-msgid "Ensure that the order allocation is correct before shipping the order."
+#: order/templates/order/sales_order_detail.html:48
+#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1188
+msgid "Actions"
msgstr ""
-#: order/templates/order/sales_order_ship.html:18
-msgid "Some line items in this order have been over-allocated"
+#: order/templates/order/sales_order_detail.html:57
+msgid "New Shipment"
msgstr ""
-#: order/templates/order/sales_order_ship.html:20
-msgid "Ensure that this is correct before shipping the order."
-msgstr ""
-
-#: order/templates/order/sales_order_ship.html:27
-msgid "Shipping this order means that the order will no longer be editable."
-msgstr ""
-
-#: order/templates/order/so_allocate_by_serial.html:9
-msgid "Allocate stock items by serial number"
-msgstr ""
-
-#: order/views.py:103
+#: order/views.py:99
msgid "Cancel Order"
msgstr ""
-#: order/views.py:112 order/views.py:138
+#: order/views.py:108 order/views.py:134
msgid "Confirm order cancellation"
msgstr ""
-#: order/views.py:115 order/views.py:141
+#: order/views.py:111 order/views.py:137
msgid "Order cannot be cancelled"
msgstr ""
-#: order/views.py:129
+#: order/views.py:125
msgid "Cancel sales order"
msgstr ""
-#: order/views.py:155
+#: order/views.py:151
msgid "Issue Order"
msgstr ""
-#: order/views.py:164
+#: order/views.py:160
msgid "Confirm order placement"
msgstr ""
-#: order/views.py:174
+#: order/views.py:170
msgid "Purchase order issued"
msgstr ""
-#: order/views.py:201
+#: order/views.py:197
msgid "Confirm order completion"
msgstr ""
-#: order/views.py:212
+#: order/views.py:208
msgid "Purchase order completed"
msgstr ""
-#: order/views.py:238
-msgid "Confirm order shipment"
-msgstr ""
-
-#: order/views.py:244
-msgid "Could not ship order"
-msgstr ""
-
-#: order/views.py:291
+#: order/views.py:245
msgid "Match Supplier Parts"
msgstr ""
-#: order/views.py:535
+#: order/views.py:489
msgid "Update prices"
msgstr ""
-#: order/views.py:793
+#: order/views.py:747
#, python-brace-format
msgid "Ordered {n} parts"
msgstr ""
-#: order/views.py:846
-msgid "Allocate Serial Numbers"
-msgstr ""
-
-#: order/views.py:891
-#, python-brace-format
-msgid "Allocated {n} items"
-msgstr ""
-
-#: order/views.py:907
-msgid "Select line item"
-msgstr ""
-
-#: order/views.py:938
-#, python-brace-format
-msgid "No matching item for serial {serial}"
-msgstr ""
-
-#: order/views.py:948
-#, python-brace-format
-msgid "{serial} is not in stock"
-msgstr ""
-
-#: order/views.py:956
-#, python-brace-format
-msgid "{serial} already allocated to an order"
-msgstr ""
-
-#: order/views.py:1072
+#: order/views.py:858
msgid "Sales order not found"
msgstr ""
-#: order/views.py:1078
+#: order/views.py:864
msgid "Price not found"
msgstr ""
-#: order/views.py:1081
+#: order/views.py:867
#, python-brace-format
msgid "Updated {part} unit-price to {price}"
msgstr ""
-#: order/views.py:1086
+#: order/views.py:872
#, python-brace-format
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/api.py:758
+#: part/api.py:760
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:762
+#: part/api.py:764
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:777
+#: part/api.py:779
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:808 part/api.py:812 part/api.py:827 part/api.py:831
+#: part/api.py:810 part/api.py:814 part/api.py:829 part/api.py:833
msgid "This field is required"
msgstr ""
@@ -3828,8 +3946,8 @@ msgstr ""
#: part/templates/part/category.html:149
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:88
-#: templates/InvenTree/settings/sidebar.html:36
-#: templates/js/translated/part.js:1597 templates/navbar.html:19
+#: templates/InvenTree/settings/sidebar.html:37
+#: templates/js/translated/part.js:1597 templates/navbar.html:21
#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
msgid "Parts"
msgstr ""
@@ -3895,7 +4013,7 @@ msgstr ""
#: part/models.py:778 part/models.py:2223 part/models.py:2472
#: part/templates/part/part_base.html:265
#: part/templates/part/set_category.html:15
-#: templates/InvenTree/settings/settings.html:163
+#: templates/InvenTree/settings/settings.html:172
#: templates/js/translated/part.js:1202
msgid "Category"
msgstr ""
@@ -3906,7 +4024,7 @@ msgstr ""
#: part/models.py:784 part/templates/part/part_base.html:274
#: templates/js/translated/part.js:557 templates/js/translated/part.js:1155
-#: templates/js/translated/stock.js:1216
+#: templates/js/translated/stock.js:1373
msgid "IPN"
msgstr ""
@@ -3975,10 +4093,11 @@ msgstr ""
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:915 templates/js/translated/table_filters.js:34
+#: part/models.py:915 plugin/models.py:45
+#: templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:96
-#: templates/js/translated/table_filters.js:290
-#: templates/js/translated/table_filters.js:368
+#: templates/js/translated/table_filters.js:295
+#: templates/js/translated/table_filters.js:399
msgid "Active"
msgstr ""
@@ -4027,7 +4146,7 @@ msgid "Test with this name already exists for this part"
msgstr ""
#: part/models.py:2310 templates/js/translated/part.js:1648
-#: templates/js/translated/stock.js:940
+#: templates/js/translated/stock.js:1097
msgid "Test Name"
msgstr ""
@@ -4044,7 +4163,7 @@ msgid "Enter description for this test"
msgstr ""
#: part/models.py:2322 templates/js/translated/part.js:1657
-#: templates/js/translated/table_filters.js:276
+#: templates/js/translated/table_filters.js:281
msgid "Required"
msgstr ""
@@ -4086,7 +4205,7 @@ msgid "Parameter Units"
msgstr ""
#: part/models.py:2429 part/models.py:2478 part/models.py:2479
-#: templates/InvenTree/settings/settings.html:158
+#: templates/InvenTree/settings/settings.html:167
msgid "Parameter Template"
msgstr ""
@@ -4098,7 +4217,7 @@ msgstr ""
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2483 templates/InvenTree/settings/settings.html:167
+#: part/models.py:2483 templates/InvenTree/settings/settings.html:176
msgid "Default Value"
msgstr ""
@@ -4175,7 +4294,7 @@ msgstr ""
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2686 stock/models.py:361
+#: part/models.py:2686 stock/models.py:355
msgid "Quantity must be integer value for trackable parts"
msgstr ""
@@ -4724,8 +4843,8 @@ msgstr ""
msgid "This part is a variant of %(link)s"
msgstr ""
-#: part/templates/part/part_base.html:190 templates/js/translated/order.js:1545
-#: templates/js/translated/table_filters.js:188
+#: part/templates/part/part_base.html:190 templates/js/translated/order.js:2217
+#: templates/js/translated/table_filters.js:193
msgid "In Stock"
msgstr ""
@@ -5099,6 +5218,78 @@ msgstr ""
msgid "Delete Internal Price Break"
msgstr ""
+#: plugin/integration.py:116
+msgid "No author found"
+msgstr ""
+
+#: plugin/integration.py:128
+msgid "No date found"
+msgstr ""
+
+#: plugin/models.py:25
+msgid "Plugin Configuration"
+msgstr ""
+
+#: plugin/models.py:26
+msgid "Plugin Configurations"
+msgstr ""
+
+#: plugin/models.py:31
+msgid "Key"
+msgstr ""
+
+#: plugin/models.py:32
+msgid "Key of plugin"
+msgstr ""
+
+#: plugin/models.py:40
+msgid "PluginName of the plugin"
+msgstr ""
+
+#: plugin/models.py:46
+msgid "Is the plugin active"
+msgstr ""
+
+#: plugin/samples/integration/sample.py:39
+msgid "Enable PO"
+msgstr ""
+
+#: plugin/samples/integration/sample.py:40
+msgid "Enable PO functionality in InvenTree interface"
+msgstr ""
+
+#: plugin/serializers.py:46
+msgid "Source URL"
+msgstr ""
+
+#: plugin/serializers.py:47
+msgid "Source for the package - this can be a custom registry or a VCS path"
+msgstr ""
+
+#: plugin/serializers.py:52
+msgid "Package Name"
+msgstr ""
+
+#: plugin/serializers.py:53
+msgid "Name for the Plugin Package - can also contain a version indicator"
+msgstr ""
+
+#: plugin/serializers.py:56
+msgid "Confirm plugin installation"
+msgstr ""
+
+#: plugin/serializers.py:57
+msgid "This will install this plugin now into the current instance. The instance will go into maintenance."
+msgstr ""
+
+#: plugin/serializers.py:72
+msgid "Installation not confirmed"
+msgstr ""
+
+#: plugin/serializers.py:74
+msgid "Either packagenmae of url must be provided"
+msgstr ""
+
#: report/api.py:234 report/api.py:278
#, python-brace-format
msgid "Template file '{filename}' is missing or does not exist"
@@ -5197,12 +5388,12 @@ msgid "Stock Item Test Report"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:520 stock/templates/stock/item_base.html:149
-#: templates/js/translated/build.js:233 templates/js/translated/build.js:637
-#: templates/js/translated/build.js:1013
+#: stock/models.py:514 stock/templates/stock/item_base.html:149
+#: templates/js/translated/build.js:238 templates/js/translated/build.js:642
+#: templates/js/translated/build.js:1018
#: templates/js/translated/model_renderers.js:95
-#: templates/js/translated/order.js:1287 templates/js/translated/order.js:1376
-#: templates/js/translated/stock.js:410
+#: templates/js/translated/order.js:99 templates/js/translated/order.js:1945
+#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:414
msgid "Serial Number"
msgstr ""
@@ -5211,17 +5402,19 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:93
-#: stock/models.py:1845
+#: stock/models.py:1833
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:94
-#: stock/models.py:1851
+#: stock/models.py:1839
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:97
-#: templates/js/translated/order.js:684 templates/js/translated/stock.js:1999
+#: templates/InvenTree/settings/plugin.html:49
+#: templates/InvenTree/settings/plugin_settings.html:38
+#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2174
msgid "Date"
msgstr ""
@@ -5239,302 +5432,318 @@ msgid "Installed Items"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
-#: templates/js/translated/stock.js:2259
+#: templates/js/translated/stock.js:577 templates/js/translated/stock.js:2434
msgid "Serial"
msgstr ""
-#: stock/api.py:422
+#: stock/api.py:446
msgid "Quantity is required"
msgstr ""
-#: stock/forms.py:91 stock/forms.py:265 stock/models.py:577
+#: stock/forms.py:77 stock/forms.py:251 stock/models.py:571
#: stock/templates/stock/item_base.html:186
-#: templates/js/translated/stock.js:1358
+#: templates/js/translated/stock.js:1522
msgid "Expiry Date"
msgstr ""
-#: stock/forms.py:92 stock/forms.py:266
+#: stock/forms.py:78 stock/forms.py:252
msgid "Expiration date for this stock item"
msgstr ""
-#: stock/forms.py:95
+#: stock/forms.py:81
msgid "Enter unique serial numbers (or leave blank)"
msgstr ""
-#: stock/forms.py:150
+#: stock/forms.py:136
msgid "Destination for serialized stock (by default, will remain in current location)"
msgstr ""
-#: stock/forms.py:152
+#: stock/forms.py:138
msgid "Serial numbers"
msgstr ""
-#: stock/forms.py:152
+#: stock/forms.py:138
msgid "Unique serial numbers (must match quantity)"
msgstr ""
-#: stock/forms.py:154 stock/forms.py:238
+#: stock/forms.py:140 stock/forms.py:224
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/forms.py:194
+#: stock/forms.py:180
msgid "Stock item to install"
msgstr ""
-#: stock/forms.py:224
+#: stock/forms.py:210
msgid "Must not exceed available quantity"
msgstr ""
-#: stock/forms.py:236
+#: stock/forms.py:222
msgid "Destination location for uninstalled items"
msgstr ""
-#: stock/forms.py:240
+#: stock/forms.py:226
msgid "Confirm uninstall"
msgstr ""
-#: stock/forms.py:240
+#: stock/forms.py:226
msgid "Confirm removal of installed stock items"
msgstr ""
-#: stock/models.py:60 stock/models.py:614
+#: stock/models.py:60 stock/models.py:608
#: stock/templates/stock/item_base.html:417
msgid "Owner"
msgstr ""
-#: stock/models.py:61 stock/models.py:615
+#: stock/models.py:61 stock/models.py:609
msgid "Select Owner"
msgstr ""
-#: stock/models.py:342
+#: stock/models.py:336
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:378
+#: stock/models.py:372
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:388 stock/models.py:397
+#: stock/models.py:382 stock/models.py:391
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:389
+#: stock/models.py:383
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:411
+#: stock/models.py:405
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:417
+#: stock/models.py:411
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:424
+#: stock/models.py:418
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:466
+#: stock/models.py:460
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:475
+#: stock/models.py:469
msgid "Base part"
msgstr ""
-#: stock/models.py:483
+#: stock/models.py:477
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:488 stock/templates/stock/location.html:12
+#: stock/models.py:482 stock/templates/stock/location.html:12
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:491
+#: stock/models.py:485
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:498
+#: stock/models.py:492
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:503 stock/templates/stock/item_base.html:299
+#: stock/models.py:497 stock/templates/stock/item_base.html:299
msgid "Installed In"
msgstr ""
-#: stock/models.py:506
+#: stock/models.py:500
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:522
+#: stock/models.py:516
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:536
+#: stock/models.py:530
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:540
+#: stock/models.py:534
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:549
+#: stock/models.py:543
msgid "Source Build"
msgstr ""
-#: stock/models.py:551
+#: stock/models.py:545
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:562
+#: stock/models.py:556
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:565
+#: stock/models.py:559
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:571
+#: stock/models.py:565
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:578
+#: stock/models.py:572
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:591
+#: stock/models.py:585
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:591
+#: stock/models.py:585
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:601 stock/templates/stock/item.html:111
+#: stock/models.py:595 stock/templates/stock/item.html:111
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:610
+#: stock/models.py:604
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:620
-msgid "Scheduled for deletion"
-msgstr ""
-
-#: stock/models.py:621
-msgid "This StockItem will be deleted by the background worker"
-msgstr ""
-
-#: stock/models.py:1084
+#: stock/models.py:1072
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1090
+#: stock/models.py:1078
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1096
+#: stock/models.py:1084
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1099
+#: stock/models.py:1087
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1102
+#: stock/models.py:1090
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1109
+#: stock/models.py:1097
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1267
+#: stock/models.py:1255
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1765
+#: stock/models.py:1753
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1822
+#: stock/models.py:1810
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1828
+#: stock/models.py:1816
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1846
+#: stock/models.py:1834
msgid "Test name"
msgstr ""
-#: stock/models.py:1852 templates/js/translated/table_filters.js:266
+#: stock/models.py:1840 templates/js/translated/table_filters.js:271
msgid "Test result"
msgstr ""
-#: stock/models.py:1858
+#: stock/models.py:1846
msgid "Test output value"
msgstr ""
-#: stock/models.py:1865
+#: stock/models.py:1853
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1871
+#: stock/models.py:1859
msgid "Test notes"
msgstr ""
-#: stock/serializers.py:171
+#: stock/serializers.py:173
msgid "Purchase price of this stock item"
msgstr ""
-#: stock/serializers.py:178
+#: stock/serializers.py:180
msgid "Purchase currency of this stock item"
msgstr ""
-#: stock/serializers.py:292
+#: stock/serializers.py:294
msgid "Enter number of stock items to serialize"
msgstr ""
-#: stock/serializers.py:307
+#: stock/serializers.py:309
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:313
+#: stock/serializers.py:315
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:324 stock/serializers.py:691
+#: stock/serializers.py:326 stock/serializers.py:814
msgid "Destination stock location"
msgstr ""
-#: stock/serializers.py:331
+#: stock/serializers.py:333
msgid "Optional note field"
msgstr ""
-#: stock/serializers.py:344
+#: stock/serializers.py:346
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:561
+#: stock/serializers.py:573
+msgid "Part must be salable"
+msgstr ""
+
+#: stock/serializers.py:577
+msgid "Item is allocated to a sales order"
+msgstr ""
+
+#: stock/serializers.py:581
+msgid "Item is allocated to a build order"
+msgstr ""
+
+#: stock/serializers.py:611
+msgid "Customer to assign stock items"
+msgstr ""
+
+#: stock/serializers.py:617
+msgid "Selected company is not a customer"
+msgstr ""
+
+#: stock/serializers.py:625
+msgid "Stock assignment notes"
+msgstr ""
+
+#: stock/serializers.py:635 stock/serializers.py:722
+msgid "A list of stock items must be provided"
+msgstr ""
+
+#: stock/serializers.py:684
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:589
+#: stock/serializers.py:712
msgid "Stock transaction notes"
msgstr ""
-#: stock/serializers.py:599
-msgid "A list of stock items must be provided"
-msgstr ""
-
#: stock/templates/stock/item.html:18
msgid "Stock Tracking Information"
msgstr ""
@@ -5572,7 +5781,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:137 stock/views.py:515
+#: stock/templates/stock/item.html:137 stock/views.py:482
msgid "Install Stock Item"
msgstr ""
@@ -5632,7 +5841,7 @@ msgstr ""
msgid "Transfer stock"
msgstr ""
-#: stock/templates/stock/item_base.html:85
+#: stock/templates/stock/item_base.html:85 templates/stock_table.html:53
msgid "Assign to customer"
msgstr ""
@@ -5694,7 +5903,7 @@ msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:190
-#: templates/js/translated/table_filters.js:247
+#: templates/js/translated/table_filters.js:252
msgid "Expired"
msgstr ""
@@ -5704,12 +5913,12 @@ msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:192
-#: templates/js/translated/table_filters.js:253
+#: templates/js/translated/table_filters.js:258
msgid "Stale"
msgstr ""
#: stock/templates/stock/item_base.html:199
-#: templates/js/translated/stock.js:1371
+#: templates/js/translated/stock.js:1535
msgid "Last Updated"
msgstr ""
@@ -5738,13 +5947,11 @@ msgid "This stock item has not passed all required tests"
msgstr ""
#: stock/templates/stock/item_base.html:255
-#, python-format
-msgid "This stock item is allocated to Sales Order %(link)s (Quantity: %(qty)s)"
+msgid "This stock item is allocated to Sales Order"
msgstr ""
#: stock/templates/stock/item_base.html:263
-#, python-format
-msgid "This stock item is allocated to Build %(link)s (Quantity: %(qty)s)"
+msgid "This stock item is allocated to Build Order"
msgstr ""
#: stock/templates/stock/item_base.html:269
@@ -5760,7 +5967,7 @@ msgid "This stock item will be automatically deleted when all stock is depleted.
msgstr ""
#: stock/templates/stock/item_base.html:318
-#: templates/js/translated/build.js:1035
+#: templates/js/translated/build.js:1040
msgid "No location set"
msgstr ""
@@ -5910,7 +6117,7 @@ msgstr ""
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:912
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:879
msgid "Convert Stock Item"
msgstr ""
@@ -5935,8 +6142,7 @@ msgstr ""
msgid "Edit Stock Location"
msgstr ""
-#: stock/views.py:269 stock/views.py:891 stock/views.py:1017
-#: stock/views.py:1299
+#: stock/views.py:269 stock/views.py:858 stock/views.py:984 stock/views.py:1266
msgid "Owner is required (ownership control is enabled)"
msgstr ""
@@ -5945,86 +6151,78 @@ msgid "Stock Location QR code"
msgstr ""
#: stock/views.py:303
-msgid "Assign to Customer"
-msgstr ""
-
-#: stock/views.py:312
-msgid "Customer must be specified"
-msgstr ""
-
-#: stock/views.py:336
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:345
+#: stock/views.py:312
msgid "Specify a valid location"
msgstr ""
-#: stock/views.py:356
+#: stock/views.py:323
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:367
+#: stock/views.py:334
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:384
+#: stock/views.py:351
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:489
+#: stock/views.py:456
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:663
+#: stock/views.py:630
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:760 templates/js/translated/stock.js:730
+#: stock/views.py:727 templates/js/translated/stock.js:887
msgid "Confirm stock adjustment"
msgstr ""
-#: stock/views.py:771
+#: stock/views.py:738
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:793 templates/js/translated/stock.js:319
+#: stock/views.py:760 templates/js/translated/stock.js:323
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:943
+#: stock/views.py:910
msgid "Create new Stock Location"
msgstr ""
-#: stock/views.py:1044
+#: stock/views.py:1011
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1186 templates/js/translated/stock.js:299
+#: stock/views.py:1153 templates/js/translated/stock.js:303
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1268
+#: stock/views.py:1235
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1368
+#: stock/views.py:1335
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:1381
+#: stock/views.py:1348
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1392
+#: stock/views.py:1359
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1399
+#: stock/views.py:1366
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1408
+#: stock/views.py:1375
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -6044,6 +6242,14 @@ msgstr ""
msgid "The requested page does not exist"
msgstr ""
+#: templates/503.html:10 templates/503.html:35
+msgid "Site is in Maintenance"
+msgstr ""
+
+#: templates/503.html:41
+msgid "The site is currently in maintenance and should be up again soon!"
+msgstr ""
+
#: templates/InvenTree/index.html:7
msgid "Index"
msgstr ""
@@ -6153,7 +6359,7 @@ msgid "Server Settings"
msgstr ""
#: templates/InvenTree/settings/login.html:9
-#: templates/InvenTree/settings/sidebar.html:28
+#: templates/InvenTree/settings/sidebar.html:29
msgid "Login Settings"
msgstr ""
@@ -6161,6 +6367,24 @@ msgstr ""
msgid "Signup"
msgstr ""
+#: templates/InvenTree/settings/mixins/settings.html:4
+#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:118
+msgid "Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/mixins/urls.html:4
+msgid "URLs"
+msgstr ""
+
+#: templates/InvenTree/settings/mixins/urls.html:6
+#, python-format
+msgid "The Base-URL for this plugin is %(base)s."
+msgstr ""
+
+#: templates/InvenTree/settings/mixins/urls.html:21
+msgid "open in new tab"
+msgstr ""
+
#: templates/InvenTree/settings/part.html:7
msgid "Part Settings"
msgstr ""
@@ -6177,6 +6401,126 @@ msgstr ""
msgid "Part Parameter Templates"
msgstr ""
+#: templates/InvenTree/settings/plugin.html:10
+msgid "Plugin Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:16
+msgid "Changing the settings below require you to immediatly restart InvenTree. Do not change this while under active usage."
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:32
+msgid "Plugin list"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:37
+#: templates/js/translated/plugin.js:15
+msgid "Install Plugin"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:46 templates/navbar.html:111
+#: users/models.py:39
+msgid "Admin"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:48
+#: templates/InvenTree/settings/plugin_settings.html:28
+msgid "Author"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:50
+#: templates/InvenTree/settings/plugin_settings.html:43
+msgid "Version"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:73
+#, python-format
+msgid "has %(name)s"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:91
+msgid "Inactive plugins"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:114
+msgid "Plugin Error Stack"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:123
+msgid "Stage"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:125
+msgid "Message"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:10
+#, python-format
+msgid "Plugin details for %(name)s"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:17
+msgid "Plugin information"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:48
+msgid "no version information supplied"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:62
+msgid "License"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:70
+msgid "The code information is pulled from the latest git commit for this plugin. It might not reflect official version numbers or information but the actual code running."
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:74
+msgid "Package information"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:80
+msgid "Installation method"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:83
+msgid "This plugin was installed as a package"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:85
+msgid "This plugin was found in a local InvenTree path"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:91
+msgid "Installation path"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:97
+msgid "Commit Author"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:101
+#: templates/about.html:47
+msgid "Commit Date"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:105
+#: templates/about.html:40
+msgid "Commit Hash"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:109
+msgid "Commit Message"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:114
+msgid "Sign Status"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:119
+msgid "Sign Key"
+msgstr ""
+
#: templates/InvenTree/settings/po.html:7
msgid "Purchase Order Settings"
msgstr ""
@@ -6194,86 +6538,82 @@ msgstr ""
msgid "Edit setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:11 templates/navbar.html:93
-msgid "Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/settings.html:65
+#: templates/InvenTree/settings/settings.html:74
msgid "Edit Global Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:65
+#: templates/InvenTree/settings/settings.html:74
msgid "Edit User Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:148
+#: templates/InvenTree/settings/settings.html:157
msgid "No category parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:170
-#: templates/InvenTree/settings/settings.html:269
+#: templates/InvenTree/settings/settings.html:179
+#: templates/InvenTree/settings/settings.html:278
msgid "Edit Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:171
-#: templates/InvenTree/settings/settings.html:270
+#: templates/InvenTree/settings/settings.html:180
+#: templates/InvenTree/settings/settings.html:279
msgid "Delete Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:249
+#: templates/InvenTree/settings/settings.html:258
msgid "No part parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:253
+#: templates/InvenTree/settings/settings.html:262
msgid "ID"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:5
+#: templates/InvenTree/settings/sidebar.html:6
#: templates/InvenTree/settings/user_settings.html:9
msgid "User Settings"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:8
+#: templates/InvenTree/settings/sidebar.html:9
#: templates/InvenTree/settings/user.html:12
msgid "Account Settings"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:10
+#: templates/InvenTree/settings/sidebar.html:11
#: templates/InvenTree/settings/user_display.html:9
msgid "Display Settings"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:12
+#: templates/InvenTree/settings/sidebar.html:13
msgid "Home Page"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:14
+#: templates/InvenTree/settings/sidebar.html:15
#: templates/InvenTree/settings/user_search.html:9
msgid "Search Settings"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:16
+#: templates/InvenTree/settings/sidebar.html:17
msgid "Label Printing"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:18
-#: templates/InvenTree/settings/sidebar.html:34
+#: templates/InvenTree/settings/sidebar.html:19
+#: templates/InvenTree/settings/sidebar.html:35
msgid "Reporting"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:23
+#: templates/InvenTree/settings/sidebar.html:24
msgid "Global Settings"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:26
+#: templates/InvenTree/settings/sidebar.html:27
msgid "Server Configuration"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:32
+#: templates/InvenTree/settings/sidebar.html:33
msgid "Currencies"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:38
+#: templates/InvenTree/settings/sidebar.html:39
msgid "Categories"
msgstr ""
@@ -6491,8 +6831,8 @@ msgstr ""
#: templates/about.html:11 templates/about.html:105
#: templates/js/translated/bom.js:283 templates/js/translated/modals.js:53
-#: templates/js/translated/modals.js:567 templates/js/translated/modals.js:661
-#: templates/js/translated/modals.js:964 templates/modals.html:15
+#: templates/js/translated/modals.js:568 templates/js/translated/modals.js:662
+#: templates/js/translated/modals.js:965 templates/modals.html:15
#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
msgid "Close"
msgstr ""
@@ -6513,14 +6853,6 @@ msgstr ""
msgid "Update Available"
msgstr ""
-#: templates/about.html:40
-msgid "Commit Hash"
-msgstr ""
-
-#: templates/about.html:47
-msgid "Commit Date"
-msgstr ""
-
#: templates/about.html:53
msgid "InvenTree Documentation"
msgstr ""
@@ -6718,8 +7050,9 @@ msgstr ""
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1129
-#: templates/js/translated/build.js:1749
+#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1134
+#: templates/js/translated/build.js:1755
+#: templates/js/translated/table_filters.js:178
msgid "Available"
msgstr ""
@@ -6765,11 +7098,11 @@ msgstr ""
msgid "Remote image must not exceed maximum allowable file size"
msgstr ""
-#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1034
+#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1035
msgid "No Response"
msgstr ""
-#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1035
+#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1036
msgid "No response from the InvenTree server"
msgstr ""
@@ -6781,35 +7114,35 @@ msgstr ""
msgid "API request returned error code 400"
msgstr ""
-#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1044
+#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1045
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1045
+#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1046
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1049
+#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1050
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1050
+#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1051
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1054
+#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1055
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1055
+#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1056
msgid "The requested resource could not be located on the server"
msgstr ""
-#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1059
+#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1060
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1060
+#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1061
msgid "Connection timeout while requesting data from server"
msgstr ""
@@ -6878,7 +7211,7 @@ msgid "Unknown response from server"
msgstr ""
#: templates/js/translated/barcode.js:140
-#: templates/js/translated/modals.js:1024
+#: templates/js/translated/modals.js:1025
msgid "Invalid server response"
msgstr ""
@@ -6886,7 +7219,7 @@ msgstr ""
msgid "Scan barcode data below"
msgstr ""
-#: templates/js/translated/barcode.js:280 templates/navbar.html:69
+#: templates/js/translated/barcode.js:280 templates/navbar.html:94
msgid "Scan Barcode"
msgstr ""
@@ -6906,7 +7239,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:682
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:839
msgid "Remove stock item"
msgstr ""
@@ -6976,7 +7309,7 @@ msgstr ""
msgid "Substitutes Available"
msgstr ""
-#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1111
+#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1116
msgid "Variant stock allowed"
msgstr ""
@@ -7000,11 +7333,6 @@ msgstr ""
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1183
-#: templates/js/translated/order.js:1319
-msgid "Actions"
-msgstr ""
-
#: templates/js/translated/bom.js:616
msgid "Validate BOM Item"
msgstr ""
@@ -7025,7 +7353,7 @@ msgstr ""
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:718 templates/js/translated/build.js:855
+#: templates/js/translated/bom.js:718 templates/js/translated/build.js:860
msgid "No BOM items found"
msgstr ""
@@ -7033,7 +7361,7 @@ msgstr ""
msgid "Are you sure you want to delete this BOM item?"
msgstr ""
-#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1095
+#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1100
msgid "Required Part"
msgstr ""
@@ -7041,165 +7369,165 @@ msgstr ""
msgid "Inherited from parent BOM"
msgstr ""
-#: templates/js/translated/build.js:78
+#: templates/js/translated/build.js:83
msgid "Edit Build Order"
msgstr ""
-#: templates/js/translated/build.js:112
+#: templates/js/translated/build.js:117
msgid "Create Build Order"
msgstr ""
-#: templates/js/translated/build.js:133
+#: templates/js/translated/build.js:138
msgid "Allocate stock items to this build output"
msgstr ""
-#: templates/js/translated/build.js:144
+#: templates/js/translated/build.js:149
msgid "Unallocate stock from build output"
msgstr ""
-#: templates/js/translated/build.js:153
+#: templates/js/translated/build.js:158
msgid "Complete build output"
msgstr ""
-#: templates/js/translated/build.js:161
+#: templates/js/translated/build.js:166
msgid "Delete build output"
msgstr ""
-#: templates/js/translated/build.js:184
+#: templates/js/translated/build.js:189
msgid "Are you sure you wish to unallocate stock items from this build?"
msgstr ""
-#: templates/js/translated/build.js:202
+#: templates/js/translated/build.js:207
msgid "Unallocate Stock Items"
msgstr ""
-#: templates/js/translated/build.js:220
+#: templates/js/translated/build.js:225
msgid "Select Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:221
+#: templates/js/translated/build.js:226
msgid "At least one build output must be selected"
msgstr ""
-#: templates/js/translated/build.js:275
+#: templates/js/translated/build.js:280
msgid "Output"
msgstr ""
-#: templates/js/translated/build.js:291
+#: templates/js/translated/build.js:296
msgid "Complete Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:386
+#: templates/js/translated/build.js:391
msgid "No build order allocations found"
msgstr ""
-#: templates/js/translated/build.js:424 templates/js/translated/order.js:1193
+#: templates/js/translated/build.js:429 templates/js/translated/order.js:1848
msgid "Location not specified"
msgstr ""
-#: templates/js/translated/build.js:603
+#: templates/js/translated/build.js:608
msgid "No active build outputs found"
msgstr ""
-#: templates/js/translated/build.js:1052 templates/js/translated/build.js:1760
-#: templates/js/translated/order.js:1326
+#: templates/js/translated/build.js:1057 templates/js/translated/build.js:1766
+#: templates/js/translated/order.js:1982
msgid "Edit stock allocation"
msgstr ""
-#: templates/js/translated/build.js:1054 templates/js/translated/build.js:1761
-#: templates/js/translated/order.js:1327
+#: templates/js/translated/build.js:1059 templates/js/translated/build.js:1767
+#: templates/js/translated/order.js:1983
msgid "Delete stock allocation"
msgstr ""
-#: templates/js/translated/build.js:1072
+#: templates/js/translated/build.js:1077
msgid "Edit Allocation"
msgstr ""
-#: templates/js/translated/build.js:1082
+#: templates/js/translated/build.js:1087
msgid "Remove Allocation"
msgstr ""
-#: templates/js/translated/build.js:1107
+#: templates/js/translated/build.js:1112
msgid "Substitute parts available"
msgstr ""
-#: templates/js/translated/build.js:1124
+#: templates/js/translated/build.js:1129
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:1134 templates/js/translated/build.js:1360
-#: templates/js/translated/build.js:1756 templates/js/translated/order.js:1556
+#: templates/js/translated/build.js:1139 templates/js/translated/build.js:1365
+#: templates/js/translated/build.js:1762 templates/js/translated/order.js:2227
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:1190 templates/js/translated/order.js:1610
+#: templates/js/translated/build.js:1195 templates/js/translated/order.js:2307
msgid "Build stock"
msgstr ""
-#: templates/js/translated/build.js:1194 templates/stock_table.html:52
+#: templates/js/translated/build.js:1199 templates/stock_table.html:52
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:1197 templates/js/translated/order.js:1603
+#: templates/js/translated/build.js:1202 templates/js/translated/order.js:2300
msgid "Allocate stock"
msgstr ""
-#: templates/js/translated/build.js:1262
+#: templates/js/translated/build.js:1267 templates/js/translated/order.js:1499
msgid "Specify stock allocation quantity"
msgstr ""
-#: templates/js/translated/build.js:1333 templates/js/translated/label.js:134
-#: templates/js/translated/report.js:225
+#: templates/js/translated/build.js:1338 templates/js/translated/label.js:134
+#: templates/js/translated/order.js:1550 templates/js/translated/report.js:225
msgid "Select Parts"
msgstr ""
-#: templates/js/translated/build.js:1334
+#: templates/js/translated/build.js:1339 templates/js/translated/order.js:1551
msgid "You must select at least one part to allocate"
msgstr ""
-#: templates/js/translated/build.js:1348
+#: templates/js/translated/build.js:1353 templates/js/translated/order.js:1565
msgid "Select source location (leave blank to take from all locations)"
msgstr ""
-#: templates/js/translated/build.js:1377
+#: templates/js/translated/build.js:1382 templates/js/translated/order.js:1600
msgid "Confirm stock allocation"
msgstr ""
-#: templates/js/translated/build.js:1378
+#: templates/js/translated/build.js:1383
msgid "Allocate Stock Items to Build Order"
msgstr ""
-#: templates/js/translated/build.js:1389
+#: templates/js/translated/build.js:1394 templates/js/translated/order.js:1613
msgid "No matching stock locations"
msgstr ""
-#: templates/js/translated/build.js:1451
+#: templates/js/translated/build.js:1464 templates/js/translated/order.js:1690
msgid "No matching stock items"
msgstr ""
-#: templates/js/translated/build.js:1576
+#: templates/js/translated/build.js:1582
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:1593 templates/js/translated/part.js:1147
-#: templates/js/translated/part.js:1558 templates/js/translated/stock.js:1176
-#: templates/js/translated/stock.js:1953
+#: templates/js/translated/build.js:1599 templates/js/translated/part.js:1147
+#: templates/js/translated/part.js:1558 templates/js/translated/stock.js:1333
+#: templates/js/translated/stock.js:2128
msgid "Select"
msgstr ""
-#: templates/js/translated/build.js:1613
+#: templates/js/translated/build.js:1619
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1674 templates/js/translated/stock.js:2172
+#: templates/js/translated/build.js:1680 templates/js/translated/stock.js:2347
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:1686
+#: templates/js/translated/build.js:1692
msgid "No information"
msgstr ""
-#: templates/js/translated/build.js:1737
+#: templates/js/translated/build.js:1743
msgid "No parts allocated for"
msgstr ""
@@ -7219,7 +7547,7 @@ msgstr ""
msgid "Delete Manufacturer Part"
msgstr ""
-#: templates/js/translated/company.js:165 templates/js/translated/order.js:90
+#: templates/js/translated/company.js:165 templates/js/translated/order.js:248
msgid "Add Supplier"
msgstr ""
@@ -7354,20 +7682,20 @@ msgstr ""
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1072 templates/modals.html:19
+#: templates/js/translated/forms.js:1078 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1463
+#: templates/js/translated/forms.js:1469
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1667
+#: templates/js/translated/forms.js:1673
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1884
+#: templates/js/translated/forms.js:1893
msgid "Clear input"
msgstr ""
@@ -7380,7 +7708,7 @@ msgid "NO"
msgstr ""
#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:706
+#: templates/js/translated/stock.js:863
msgid "Select Stock Items"
msgstr ""
@@ -7429,62 +7757,62 @@ msgstr ""
msgid "Select Label Template"
msgstr ""
-#: templates/js/translated/modals.js:75 templates/js/translated/modals.js:119
-#: templates/js/translated/modals.js:593
+#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:120
+#: templates/js/translated/modals.js:594
msgid "Cancel"
msgstr ""
-#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:118
-#: templates/js/translated/modals.js:660 templates/js/translated/modals.js:963
+#: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119
+#: templates/js/translated/modals.js:661 templates/js/translated/modals.js:964
#: templates/modals.html:28 templates/modals.html:51
msgid "Submit"
msgstr ""
-#: templates/js/translated/modals.js:117
+#: templates/js/translated/modals.js:118
msgid "Form Title"
msgstr ""
-#: templates/js/translated/modals.js:380
+#: templates/js/translated/modals.js:381
msgid "Waiting for server..."
msgstr ""
-#: templates/js/translated/modals.js:539
+#: templates/js/translated/modals.js:540
msgid "Show Error Information"
msgstr ""
-#: templates/js/translated/modals.js:592
+#: templates/js/translated/modals.js:593
msgid "Accept"
msgstr ""
-#: templates/js/translated/modals.js:649
+#: templates/js/translated/modals.js:650
msgid "Loading Data"
msgstr ""
-#: templates/js/translated/modals.js:915
+#: templates/js/translated/modals.js:916
msgid "Invalid response from server"
msgstr ""
-#: templates/js/translated/modals.js:915
+#: templates/js/translated/modals.js:916
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/translated/modals.js:927
+#: templates/js/translated/modals.js:928
msgid "Error posting form data"
msgstr ""
-#: templates/js/translated/modals.js:1024
+#: templates/js/translated/modals.js:1025
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/translated/modals.js:1039
+#: templates/js/translated/modals.js:1040
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/translated/modals.js:1040
+#: templates/js/translated/modals.js:1041
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/translated/modals.js:1063
+#: templates/js/translated/modals.js:1064
msgid "Error requesting form data"
msgstr ""
@@ -7512,176 +7840,245 @@ msgstr ""
msgid "Order ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:256
+#: templates/js/translated/model_renderers.js:253
+msgid "Shipment ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:273
msgid "Category ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:293
+#: templates/js/translated/model_renderers.js:310
msgid "Manufacturer Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:322
+#: templates/js/translated/model_renderers.js:339
msgid "Supplier Part ID"
msgstr ""
-#: templates/js/translated/order.js:48
+#: templates/js/translated/order.js:75
+msgid "No stock items have been allocated to this shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:80
+msgid "The following stock items will be shipped"
+msgstr ""
+
+#: templates/js/translated/order.js:120
+msgid "Complete Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:126
+msgid "Confirm Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:181
+msgid "Create New Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:206
msgid "Add Customer"
msgstr ""
-#: templates/js/translated/order.js:73
+#: templates/js/translated/order.js:231
msgid "Create Sales Order"
msgstr ""
-#: templates/js/translated/order.js:208
+#: templates/js/translated/order.js:366
msgid "Export Order"
msgstr ""
-#: templates/js/translated/order.js:211 templates/js/translated/stock.js:505
+#: templates/js/translated/order.js:369 templates/js/translated/stock.js:509
msgid "Format"
msgstr ""
-#: templates/js/translated/order.js:212 templates/js/translated/stock.js:506
+#: templates/js/translated/order.js:370 templates/js/translated/stock.js:510
msgid "Select file format"
msgstr ""
-#: templates/js/translated/order.js:300
+#: templates/js/translated/order.js:460
msgid "Select Line Items"
msgstr ""
-#: templates/js/translated/order.js:301
+#: templates/js/translated/order.js:461
msgid "At least one line item must be selected"
msgstr ""
-#: templates/js/translated/order.js:326
+#: templates/js/translated/order.js:486
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:360 templates/js/translated/stock.js:1755
+#: templates/js/translated/order.js:520 templates/js/translated/stock.js:1930
msgid "Stock Status"
msgstr ""
-#: templates/js/translated/order.js:427
+#: templates/js/translated/order.js:587
msgid "Order Code"
msgstr ""
-#: templates/js/translated/order.js:428
+#: templates/js/translated/order.js:588
msgid "Ordered"
msgstr ""
-#: templates/js/translated/order.js:430
+#: templates/js/translated/order.js:590
msgid "Receive"
msgstr ""
-#: templates/js/translated/order.js:449
+#: templates/js/translated/order.js:609
msgid "Confirm receipt of items"
msgstr ""
-#: templates/js/translated/order.js:450
+#: templates/js/translated/order.js:610
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:627 templates/js/translated/part.js:746
+#: templates/js/translated/order.js:790 templates/js/translated/part.js:746
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:659 templates/js/translated/order.js:1062
+#: templates/js/translated/order.js:815 templates/js/translated/order.js:1230
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:771 templates/js/translated/order.js:1645
+#: templates/js/translated/order.js:936 templates/js/translated/order.js:2356
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:783 templates/js/translated/order.js:1656
+#: templates/js/translated/order.js:948 templates/js/translated/order.js:2367
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/order.js:822
+#: templates/js/translated/order.js:987
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:849 templates/js/translated/order.js:1466
+#: templates/js/translated/order.js:1014 templates/js/translated/order.js:2138
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:903 templates/js/translated/order.js:1491
+#: templates/js/translated/order.js:1068 templates/js/translated/order.js:2163
#: templates/js/translated/part.js:1775 templates/js/translated/part.js:1986
msgid "Unit Price"
msgstr ""
-#: templates/js/translated/order.js:918 templates/js/translated/order.js:1507
+#: templates/js/translated/order.js:1083 templates/js/translated/order.js:2179
msgid "Total Price"
msgstr ""
-#: templates/js/translated/order.js:996 templates/js/translated/order.js:1616
+#: templates/js/translated/order.js:1161 templates/js/translated/order.js:2313
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:997
+#: templates/js/translated/order.js:1162 templates/js/translated/order.js:2317
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:1001 templates/js/translated/part.js:878
+#: templates/js/translated/order.js:1166 templates/js/translated/part.js:878
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:1038
+#: templates/js/translated/order.js:1206
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:1076
+#: templates/js/translated/order.js:1244
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:1154
+#: templates/js/translated/order.js:1322
+msgid "Edit shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1325
+msgid "Complete shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1330
+msgid "Delete shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1350
+msgid "Edit Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1367
+msgid "Delete Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1401
+msgid "No matching shipments found"
+msgstr ""
+
+#: templates/js/translated/order.js:1411
+msgid "Shipment Reference"
+msgstr ""
+
+#: templates/js/translated/order.js:1435
+msgid "Not shipped"
+msgstr ""
+
+#: templates/js/translated/order.js:1441
+msgid "Tracking"
+msgstr ""
+
+#: templates/js/translated/order.js:1601
+msgid "Allocate Stock Items to Sales Order"
+msgstr ""
+
+#: templates/js/translated/order.js:1809
msgid "No sales order allocations found"
msgstr ""
-#: templates/js/translated/order.js:1247
+#: templates/js/translated/order.js:1898
msgid "Edit Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1264
+#: templates/js/translated/order.js:1915
msgid "Confirm Delete Operation"
msgstr ""
-#: templates/js/translated/order.js:1265
+#: templates/js/translated/order.js:1916
msgid "Delete Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1307
+#: templates/js/translated/order.js:1959 templates/js/translated/order.js:2048
+#: templates/js/translated/stock.js:1249
+msgid "Shipped to customer"
+msgstr ""
+
+#: templates/js/translated/order.js:1967 templates/js/translated/order.js:2057
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:1556
-msgid "Fulfilled"
-msgstr ""
-
-#: templates/js/translated/order.js:1600
+#: templates/js/translated/order.js:2297
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:1606
+#: templates/js/translated/order.js:2303
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:1613 templates/js/translated/order.js:1792
+#: templates/js/translated/order.js:2310 templates/js/translated/order.js:2476
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:1617
-msgid "Delete line item "
+#: templates/js/translated/order.js:2321
+msgid "Cannot be deleted as items have been shipped"
msgstr ""
-#: templates/js/translated/order.js:1740
-msgid "Allocate Stock Item"
+#: templates/js/translated/order.js:2324
+msgid "Cannot be deleted as items have been allocated"
msgstr ""
-#: templates/js/translated/order.js:1800
+#: templates/js/translated/order.js:2382
+msgid "Allocate Serial Numbers"
+msgstr ""
+
+#: templates/js/translated/order.js:2484
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:1814
+#: templates/js/translated/order.js:2498
msgid "No matching line items"
msgstr ""
@@ -7826,12 +8223,12 @@ msgid "No category"
msgstr ""
#: templates/js/translated/part.js:1230
-#: templates/js/translated/table_filters.js:381
+#: templates/js/translated/table_filters.js:412
msgid "Low stock"
msgstr ""
#: templates/js/translated/part.js:1321 templates/js/translated/part.js:1493
-#: templates/js/translated/stock.js:1914
+#: templates/js/translated/stock.js:2089
msgid "Display as list"
msgstr ""
@@ -7839,7 +8236,7 @@ msgstr ""
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1512 templates/js/translated/stock.js:1933
+#: templates/js/translated/part.js:1512 templates/js/translated/stock.js:2108
msgid "Display as tree"
msgstr ""
@@ -7847,7 +8244,7 @@ msgstr ""
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:1590 templates/js/translated/stock.js:1977
+#: templates/js/translated/part.js:1590 templates/js/translated/stock.js:2152
msgid "Path"
msgstr ""
@@ -7855,11 +8252,11 @@ msgstr ""
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1685 templates/js/translated/stock.js:898
+#: templates/js/translated/part.js:1685 templates/js/translated/stock.js:1055
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1686 templates/js/translated/stock.js:899
+#: templates/js/translated/part.js:1686 templates/js/translated/stock.js:1056
msgid "Delete test result"
msgstr ""
@@ -7898,6 +8295,10 @@ msgstr ""
msgid "Single Price Difference"
msgstr ""
+#: templates/js/translated/plugin.js:22
+msgid "The Plugin was installed"
+msgstr ""
+
#: templates/js/translated/report.js:67
msgid "items selected"
msgstr ""
@@ -7964,300 +8365,316 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/stock.js:71
+#: templates/js/translated/stock.js:72
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:89 templates/js/translated/stock.js:168
+#: templates/js/translated/stock.js:90 templates/js/translated/stock.js:172
msgid "Next available serial number"
msgstr ""
-#: templates/js/translated/stock.js:91 templates/js/translated/stock.js:170
+#: templates/js/translated/stock.js:92 templates/js/translated/stock.js:174
msgid "Latest serial number"
msgstr ""
-#: templates/js/translated/stock.js:105
+#: templates/js/translated/stock.js:100
+msgid "Confirm Stock Serialization"
+msgstr ""
+
+#: templates/js/translated/stock.js:109
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:141
+#: templates/js/translated/stock.js:145
msgid "New Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:181
+#: templates/js/translated/stock.js:185
msgid "This part cannot be serialized"
msgstr ""
-#: templates/js/translated/stock.js:220
+#: templates/js/translated/stock.js:224
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: templates/js/translated/stock.js:226
+#: templates/js/translated/stock.js:230
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: templates/js/translated/stock.js:369
+#: templates/js/translated/stock.js:373
msgid "Created new stock item"
msgstr ""
-#: templates/js/translated/stock.js:382
+#: templates/js/translated/stock.js:386
msgid "Created multiple stock items"
msgstr ""
-#: templates/js/translated/stock.js:407
+#: templates/js/translated/stock.js:411
msgid "Find Serial Number"
msgstr ""
-#: templates/js/translated/stock.js:411 templates/js/translated/stock.js:412
+#: templates/js/translated/stock.js:415 templates/js/translated/stock.js:416
msgid "Enter serial number"
msgstr ""
-#: templates/js/translated/stock.js:428
+#: templates/js/translated/stock.js:432
msgid "Enter a serial number"
msgstr ""
-#: templates/js/translated/stock.js:448
+#: templates/js/translated/stock.js:452
msgid "No matching serial number"
msgstr ""
-#: templates/js/translated/stock.js:457
+#: templates/js/translated/stock.js:461
msgid "More than one matching result found"
msgstr ""
-#: templates/js/translated/stock.js:502
+#: templates/js/translated/stock.js:506
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:513
+#: templates/js/translated/stock.js:517
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:514
+#: templates/js/translated/stock.js:518
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:556
+#: templates/js/translated/stock.js:627
+msgid "Confirm stock assignment"
+msgstr ""
+
+#: templates/js/translated/stock.js:628
+msgid "Assign Stock to Customer"
+msgstr ""
+
+#: templates/js/translated/stock.js:713
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:557
+#: templates/js/translated/stock.js:714
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:563
+#: templates/js/translated/stock.js:720
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:564
+#: templates/js/translated/stock.js:721
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:568
+#: templates/js/translated/stock.js:725
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:569
+#: templates/js/translated/stock.js:726
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:573
+#: templates/js/translated/stock.js:730
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:574 users/models.py:200
+#: templates/js/translated/stock.js:731 users/models.py:202
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:578 templates/stock_table.html:56
+#: templates/js/translated/stock.js:735 templates/stock_table.html:57
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:667
+#: templates/js/translated/stock.js:824
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:667
+#: templates/js/translated/stock.js:824
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:707
+#: templates/js/translated/stock.js:864
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:865
+#: templates/js/translated/stock.js:1022
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:867
+#: templates/js/translated/stock.js:1024
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:872
+#: templates/js/translated/stock.js:1029
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:894
+#: templates/js/translated/stock.js:1051
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:920
+#: templates/js/translated/stock.js:1077
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:977
+#: templates/js/translated/stock.js:1134
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:1084
+#: templates/js/translated/stock.js:1241
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:1088
+#: templates/js/translated/stock.js:1245
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:1092
-msgid "Shipped to customer"
-msgstr ""
-
-#: templates/js/translated/stock.js:1096
+#: templates/js/translated/stock.js:1253
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:1102
+#: templates/js/translated/stock.js:1259
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:1260
+#: templates/js/translated/stock.js:1417
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1265
+#: templates/js/translated/stock.js:1422
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1268
+#: templates/js/translated/stock.js:1425
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1272
+#: templates/js/translated/stock.js:1429
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1274
+#: templates/js/translated/stock.js:1431
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1278
-msgid "Stock item has been allocated"
+#: templates/js/translated/stock.js:1437
+msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1282
+#: templates/js/translated/stock.js:1439
+msgid "Stock item has been fully allocated"
+msgstr ""
+
+#: templates/js/translated/stock.js:1441
+msgid "Stock item has been partially allocated"
+msgstr ""
+
+#: templates/js/translated/stock.js:1446
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1289
+#: templates/js/translated/stock.js:1453
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1291
+#: templates/js/translated/stock.js:1455
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1293
+#: templates/js/translated/stock.js:1457
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1297
-#: templates/js/translated/table_filters.js:183
+#: templates/js/translated/stock.js:1461
+#: templates/js/translated/table_filters.js:188
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1347
+#: templates/js/translated/stock.js:1511
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1420
+#: templates/js/translated/stock.js:1584
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1458
+#: templates/js/translated/stock.js:1622
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1479 templates/js/translated/stock.js:1527
+#: templates/js/translated/stock.js:1643 templates/js/translated/stock.js:1691
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1567
+#: templates/js/translated/stock.js:1731
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1594
+#: templates/js/translated/stock.js:1758
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:1596
+#: templates/js/translated/stock.js:1760
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:1770
+#: templates/js/translated/stock.js:1945
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:1784
+#: templates/js/translated/stock.js:1959
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:1785
+#: templates/js/translated/stock.js:1960
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:2009
+#: templates/js/translated/stock.js:2184
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:2031
+#: templates/js/translated/stock.js:2206
msgid "Details"
msgstr ""
-#: templates/js/translated/stock.js:2056
+#: templates/js/translated/stock.js:2231
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2075
+#: templates/js/translated/stock.js:2250
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2094
+#: templates/js/translated/stock.js:2269
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2112
+#: templates/js/translated/stock.js:2287
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2135
+#: templates/js/translated/stock.js:2310
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2143
+#: templates/js/translated/stock.js:2318
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2184
+#: templates/js/translated/stock.js:2359
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2185
+#: templates/js/translated/stock.js:2360
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2236
+#: templates/js/translated/stock.js:2411
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2287
+#: templates/js/translated/stock.js:2462
msgid "Uninstall Stock Item"
msgstr ""
@@ -8278,7 +8695,7 @@ msgid "Allow Variant Stock"
msgstr ""
#: templates/js/translated/table_filters.js:110
-#: templates/js/translated/table_filters.js:178
+#: templates/js/translated/table_filters.js:183
msgid "Include sublocations"
msgstr ""
@@ -8288,54 +8705,54 @@ msgstr ""
#: templates/js/translated/table_filters.js:121
#: templates/js/translated/table_filters.js:122
-#: templates/js/translated/table_filters.js:358
+#: templates/js/translated/table_filters.js:389
msgid "Include subcategories"
msgstr ""
#: templates/js/translated/table_filters.js:126
-#: templates/js/translated/table_filters.js:393
+#: templates/js/translated/table_filters.js:424
msgid "Subscribed"
msgstr ""
#: templates/js/translated/table_filters.js:136
-#: templates/js/translated/table_filters.js:213
+#: templates/js/translated/table_filters.js:218
msgid "Is Serialized"
msgstr ""
#: templates/js/translated/table_filters.js:139
-#: templates/js/translated/table_filters.js:220
+#: templates/js/translated/table_filters.js:225
msgid "Serial number GTE"
msgstr ""
#: templates/js/translated/table_filters.js:140
-#: templates/js/translated/table_filters.js:221
+#: templates/js/translated/table_filters.js:226
msgid "Serial number greater than or equal to"
msgstr ""
#: templates/js/translated/table_filters.js:143
-#: templates/js/translated/table_filters.js:224
+#: templates/js/translated/table_filters.js:229
msgid "Serial number LTE"
msgstr ""
#: templates/js/translated/table_filters.js:144
-#: templates/js/translated/table_filters.js:225
+#: templates/js/translated/table_filters.js:230
msgid "Serial number less than or equal to"
msgstr ""
#: templates/js/translated/table_filters.js:147
#: templates/js/translated/table_filters.js:148
-#: templates/js/translated/table_filters.js:216
-#: templates/js/translated/table_filters.js:217
+#: templates/js/translated/table_filters.js:221
+#: templates/js/translated/table_filters.js:222
msgid "Serial number"
msgstr ""
#: templates/js/translated/table_filters.js:152
-#: templates/js/translated/table_filters.js:234
+#: templates/js/translated/table_filters.js:239
msgid "Batch code"
msgstr ""
#: templates/js/translated/table_filters.js:163
-#: templates/js/translated/table_filters.js:348
+#: templates/js/translated/table_filters.js:379
msgid "Active parts"
msgstr ""
@@ -8356,101 +8773,111 @@ msgid "Item has been allocated"
msgstr ""
#: templates/js/translated/table_filters.js:179
-msgid "Include stock in sublocations"
+msgid "Stock is available for use"
msgstr ""
#: templates/js/translated/table_filters.js:184
-msgid "Show stock items which are depleted"
+msgid "Include stock in sublocations"
msgstr ""
#: templates/js/translated/table_filters.js:189
-msgid "Show items which are in stock"
-msgstr ""
-
-#: templates/js/translated/table_filters.js:193
-msgid "In Production"
+msgid "Show stock items which are depleted"
msgstr ""
#: templates/js/translated/table_filters.js:194
-msgid "Show items which are in production"
+msgid "Show items which are in stock"
msgstr ""
#: templates/js/translated/table_filters.js:198
-msgid "Include Variants"
+msgid "In Production"
msgstr ""
#: templates/js/translated/table_filters.js:199
-msgid "Include stock items for variant parts"
+msgid "Show items which are in production"
msgstr ""
#: templates/js/translated/table_filters.js:203
-msgid "Installed"
+msgid "Include Variants"
msgstr ""
#: templates/js/translated/table_filters.js:204
-msgid "Show stock items which are installed in another item"
+msgid "Include stock items for variant parts"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:208
+msgid "Installed"
msgstr ""
#: templates/js/translated/table_filters.js:209
+msgid "Show stock items which are installed in another item"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:214
msgid "Show items which have been assigned to a customer"
msgstr ""
-#: templates/js/translated/table_filters.js:229
-#: templates/js/translated/table_filters.js:230
+#: templates/js/translated/table_filters.js:234
+#: templates/js/translated/table_filters.js:235
msgid "Stock status"
msgstr ""
-#: templates/js/translated/table_filters.js:238
+#: templates/js/translated/table_filters.js:243
msgid "Has purchase price"
msgstr ""
-#: templates/js/translated/table_filters.js:239
+#: templates/js/translated/table_filters.js:244
msgid "Show stock items which have a purchase price set"
msgstr ""
-#: templates/js/translated/table_filters.js:248
+#: templates/js/translated/table_filters.js:253
msgid "Show stock items which have expired"
msgstr ""
-#: templates/js/translated/table_filters.js:254
+#: templates/js/translated/table_filters.js:259
msgid "Show stock which is close to expiring"
msgstr ""
-#: templates/js/translated/table_filters.js:285
+#: templates/js/translated/table_filters.js:290
msgid "Build status"
msgstr ""
-#: templates/js/translated/table_filters.js:313
-#: templates/js/translated/table_filters.js:330
+#: templates/js/translated/table_filters.js:303
+#: templates/js/translated/table_filters.js:344
+msgid "Assigned to me"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:320
+#: templates/js/translated/table_filters.js:331
+#: templates/js/translated/table_filters.js:352
msgid "Order status"
msgstr ""
-#: templates/js/translated/table_filters.js:318
-#: templates/js/translated/table_filters.js:335
+#: templates/js/translated/table_filters.js:336
+#: templates/js/translated/table_filters.js:357
msgid "Outstanding"
msgstr ""
-#: templates/js/translated/table_filters.js:359
+#: templates/js/translated/table_filters.js:390
msgid "Include parts in subcategories"
msgstr ""
-#: templates/js/translated/table_filters.js:363
+#: templates/js/translated/table_filters.js:394
msgid "Has IPN"
msgstr ""
-#: templates/js/translated/table_filters.js:364
+#: templates/js/translated/table_filters.js:395
msgid "Part has internal part number"
msgstr ""
-#: templates/js/translated/table_filters.js:369
+#: templates/js/translated/table_filters.js:400
msgid "Show active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:377
+#: templates/js/translated/table_filters.js:408
msgid "Stock available"
msgstr ""
-#: templates/js/translated/table_filters.js:405
+#: templates/js/translated/table_filters.js:436
msgid "Purchasable"
msgstr ""
@@ -8507,27 +8934,23 @@ msgstr ""
msgid "All"
msgstr ""
-#: templates/navbar.html:40
+#: templates/navbar.html:42
msgid "Buy"
msgstr ""
-#: templates/navbar.html:52
+#: templates/navbar.html:54
msgid "Sell"
msgstr ""
-#: templates/navbar.html:86 users/models.py:39
-msgid "Admin"
-msgstr ""
-
-#: templates/navbar.html:88
+#: templates/navbar.html:113
msgid "Logout"
msgstr ""
-#: templates/navbar.html:90
+#: templates/navbar.html:115
msgid "Login"
msgstr ""
-#: templates/navbar.html:111
+#: templates/navbar.html:136
msgid "About InvenTree"
msgstr ""
@@ -8639,15 +9062,15 @@ msgstr ""
msgid "Order selected items"
msgstr ""
-#: templates/stock_table.html:53
+#: templates/stock_table.html:54
msgid "Change status"
msgstr ""
-#: templates/stock_table.html:53
+#: templates/stock_table.html:54
msgid "Change stock status"
msgstr ""
-#: templates/stock_table.html:56
+#: templates/stock_table.html:57
msgid "Delete selected items"
msgstr ""
@@ -8683,35 +9106,35 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:187
+#: users/models.py:189
msgid "Permission set"
msgstr ""
-#: users/models.py:195
+#: users/models.py:197
msgid "Group"
msgstr ""
-#: users/models.py:198
+#: users/models.py:200
msgid "View"
msgstr ""
-#: users/models.py:198
+#: users/models.py:200
msgid "Permission to view items"
msgstr ""
-#: users/models.py:200
+#: users/models.py:202
msgid "Permission to add items"
msgstr ""
-#: users/models.py:202
+#: users/models.py:204
msgid "Change"
msgstr ""
-#: users/models.py:202
+#: users/models.py:204
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:204
+#: users/models.py:206
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 3b0f4954b2..1882f12d21 100644
--- a/InvenTree/locale/ru/LC_MESSAGES/django.po
+++ b/InvenTree/locale/ru/LC_MESSAGES/django.po
@@ -1,9 +1,10 @@
+#: templates/js/translated/order.js:1973
msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-12-03 10:37+0000\n"
-"PO-Revision-Date: 2021-12-03 11:26\n"
+"POT-Creation-Date: 2021-12-08 23:43+0000\n"
+"PO-Revision-Date: 2021-12-08 23:47\n"
"Last-Translator: \n"
"Language-Team: Russian\n"
"Language: ru_RU\n"
@@ -34,8 +35,8 @@ msgid "Enter date"
msgstr "Введите дату"
#: InvenTree/forms.py:120 build/forms.py:48 build/forms.py:69 build/forms.py:93
-#: order/forms.py:26 order/forms.py:37 order/forms.py:48 order/forms.py:59
-#: order/forms.py:70 part/forms.py:108 templates/account/email_confirm.html:20
+#: order/forms.py:24 order/forms.py:35 order/forms.py:46 order/forms.py:57
+#: part/forms.py:108 templates/account/email_confirm.html:20
#: templates/js/translated/forms.js:595
msgid "Confirm"
msgstr "Подтвердить"
@@ -85,8 +86,8 @@ msgstr "Вы должны вводить один и тот же адрес эл
msgid "Duplicate serial: {n}"
msgstr "Дублировать серийный номер: {n}"
-#: InvenTree/helpers.py:437 order/models.py:318 order/models.py:440
-#: stock/views.py:1264
+#: InvenTree/helpers.py:437 order/models.py:279 order/models.py:420
+#: stock/views.py:1231
msgid "Invalid quantity provided"
msgstr "недопустимое количество"
@@ -122,7 +123,7 @@ msgstr "Файл не найден"
msgid "Missing external link"
msgstr "Отсутствует внешняя ссылка"
-#: InvenTree/models.py:132 stock/models.py:1864
+#: InvenTree/models.py:132 stock/models.py:1852
#: templates/js/translated/attachment.js:117
msgid "Attachment"
msgstr "Вложения"
@@ -132,7 +133,7 @@ msgid "Select file to attach"
msgstr "Выберите файл для вложения"
#: InvenTree/models.py:139 company/models.py:131 company/models.py:348
-#: company/models.py:564 order/models.py:163 part/models.py:797
+#: company/models.py:564 order/models.py:124 part/models.py:797
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:537
#: templates/js/translated/company.js:826 templates/js/translated/part.js:1258
@@ -140,7 +141,7 @@ msgid "Link"
msgstr "Ссылка"
#: InvenTree/models.py:140 build/models.py:330 part/models.py:798
-#: stock/models.py:530
+#: stock/models.py:524
msgid "Link to external URL"
msgstr "Ссылка на внешний URL"
@@ -152,10 +153,10 @@ msgstr "Комментарий"
msgid "File comment"
msgstr "Комментарий к файлу"
-#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1185
-#: common/models.py:1186 part/models.py:2205 part/models.py:2225
+#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1213
+#: common/models.py:1214 part/models.py:2205 part/models.py:2225
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2166
+#: templates/js/translated/stock.js:2341
msgid "User"
msgstr "Пользователь"
@@ -194,10 +195,15 @@ msgstr "Неверный выбор"
#: InvenTree/models.py:277 InvenTree/models.py:278 company/models.py:415
#: label/models.py:112 part/models.py:741 part/models.py:2389
-#: report/models.py:181 templates/InvenTree/settings/settings.html:259
+#: plugin/models.py:39 report/models.py:181
+#: templates/InvenTree/settings/mixins/urls.html:11
+#: templates/InvenTree/settings/plugin.html:47
+#: templates/InvenTree/settings/plugin.html:124
+#: templates/InvenTree/settings/plugin_settings.html:23
+#: templates/InvenTree/settings/settings.html:268
#: templates/js/translated/company.js:638 templates/js/translated/part.js:506
#: templates/js/translated/part.js:643 templates/js/translated/part.js:1565
-#: templates/js/translated/stock.js:1959
+#: templates/js/translated/stock.js:2134
msgid "Name"
msgstr "Название"
@@ -206,22 +212,23 @@ msgstr "Название"
#: company/models.py:570 company/templates/company/company_base.html:68
#: company/templates/company/manufacturer_part.html:76
#: company/templates/company/supplier_part.html:73 label/models.py:119
-#: order/models.py:161 part/models.py:764 part/templates/part/category.html:70
+#: order/models.py:122 part/models.py:764 part/templates/part/category.html:70
#: part/templates/part/part_base.html:163
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:553 report/models.py:592
#: report/templates/report/inventree_build_order_base.html:118
-#: stock/templates/stock/location.html:89 templates/js/translated/bom.js:215
-#: templates/js/translated/bom.js:428 templates/js/translated/build.js:1621
-#: templates/js/translated/company.js:345
+#: stock/templates/stock/location.html:89
+#: templates/InvenTree/settings/plugin_settings.html:33
+#: templates/js/translated/bom.js:215 templates/js/translated/bom.js:428
+#: templates/js/translated/build.js:1627 templates/js/translated/company.js:345
#: templates/js/translated/company.js:548
-#: templates/js/translated/company.js:837 templates/js/translated/order.js:680
-#: templates/js/translated/order.js:854 templates/js/translated/order.js:1090
+#: templates/js/translated/company.js:837 templates/js/translated/order.js:836
+#: templates/js/translated/order.js:1019 templates/js/translated/order.js:1258
#: templates/js/translated/part.js:565 templates/js/translated/part.js:933
#: templates/js/translated/part.js:1018 templates/js/translated/part.js:1188
#: templates/js/translated/part.js:1584 templates/js/translated/part.js:1653
-#: templates/js/translated/stock.js:1233 templates/js/translated/stock.js:1971
-#: templates/js/translated/stock.js:2016
+#: templates/js/translated/stock.js:1390 templates/js/translated/stock.js:2146
+#: templates/js/translated/stock.js:2191
msgid "Description"
msgstr "Описание"
@@ -241,83 +248,83 @@ msgstr "Должно быть действительным номером"
msgid "Filename"
msgstr "Имя файла"
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:689
msgid "German"
msgstr "Немецкий"
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:690
msgid "Greek"
msgstr "Греческий"
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:691
msgid "English"
msgstr "Английский"
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:692
msgid "Spanish"
msgstr "Испанский"
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:693
msgid "Spanish (Mexican)"
msgstr "Испанский (Мексика)"
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:694
msgid "French"
msgstr "Французский"
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:695
msgid "Hebrew"
msgstr "Иврит"
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:696
msgid "Italian"
msgstr "Итальянский"
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:697
msgid "Japanese"
msgstr "Японский"
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:698
msgid "Korean"
msgstr "Корейский"
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:699
msgid "Dutch"
msgstr "Голландский"
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:700
msgid "Norwegian"
msgstr "Норвежский"
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:701
msgid "Polish"
msgstr "Польский"
-#: InvenTree/settings.py:683
+#: InvenTree/settings.py:702
msgid "Portugese"
msgstr "Португальский"
-#: InvenTree/settings.py:684
+#: InvenTree/settings.py:703
msgid "Russian"
msgstr "Русский"
-#: InvenTree/settings.py:685
+#: InvenTree/settings.py:704
msgid "Swedish"
msgstr "Шведский"
-#: InvenTree/settings.py:686
+#: InvenTree/settings.py:705
msgid "Thai"
msgstr "Тайский"
-#: InvenTree/settings.py:687
+#: InvenTree/settings.py:706
msgid "Turkish"
msgstr "Турецкий"
-#: InvenTree/settings.py:688
+#: InvenTree/settings.py:707
msgid "Vietnamese"
msgstr "Вьетнамский"
-#: InvenTree/settings.py:689
+#: InvenTree/settings.py:708
msgid "Chinese"
msgstr "Китайский"
@@ -334,7 +341,7 @@ msgid "InvenTree system health checks failed"
msgstr "Ошибка проверки состояния системы InvenTree"
#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142
-#: InvenTree/status_codes.py:311
+#: InvenTree/status_codes.py:311 templates/js/translated/table_filters.js:313
msgid "Pending"
msgstr "Ожидаемый"
@@ -343,6 +350,8 @@ msgid "Placed"
msgstr "Размещены"
#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:314
+#: order/templates/order/order_base.html:128
+#: order/templates/order/sales_order_base.html:132
msgid "Complete"
msgstr "Готово"
@@ -361,8 +370,8 @@ msgstr "Потерян"
msgid "Returned"
msgstr "Возвращено"
-#: InvenTree/status_codes.py:143
-#: order/templates/order/sales_order_base.html:148
+#: InvenTree/status_codes.py:143 order/models.py:939
+#: templates/js/translated/order.js:1980 templates/js/translated/order.js:2255
msgid "Shipped"
msgstr "Доставлено"
@@ -442,7 +451,7 @@ msgstr "Отделить от родительского элемента"
msgid "Split child item"
msgstr "Разбить дочерний элемент"
-#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:208
+#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:213
msgid "Sent to customer"
msgstr "Отправлено клиенту"
@@ -522,55 +531,55 @@ msgstr "Установить пароль"
msgid "Password fields must match"
msgstr "Пароли должны совпадать"
-#: InvenTree/views.py:883 templates/navbar.html:101
+#: InvenTree/views.py:883 templates/navbar.html:126
msgid "System Information"
msgstr "Информация о системе"
-#: barcodes/api.py:53 barcodes/api.py:150
+#: barcodes/api.py:54 barcodes/api.py:151
msgid "Must provide barcode_data parameter"
msgstr "Должен быть предоставлен параметр штрихкода"
-#: barcodes/api.py:126
+#: barcodes/api.py:127
msgid "No match found for barcode data"
msgstr "Не найдено совпадений для данных штрих-кода"
-#: barcodes/api.py:128
+#: barcodes/api.py:129
msgid "Match found for barcode data"
msgstr "Найдено совпадение по штрих-коду"
-#: barcodes/api.py:153
+#: barcodes/api.py:154
msgid "Must provide stockitem parameter"
msgstr "Необходимо предоставить параметр инвентаря"
-#: barcodes/api.py:160
+#: barcodes/api.py:161
msgid "No matching stock item found"
msgstr "Не найдено совпадающих элементов инвентаря"
-#: barcodes/api.py:190
-msgid "Barcode already matches StockItem object"
-msgstr "Штрих-код уже соответствует объекту StockItem"
+#: barcodes/api.py:191
+msgid "Barcode already matches Stock Item"
+msgstr ""
-#: barcodes/api.py:194
-msgid "Barcode already matches StockLocation object"
-msgstr "Штрих-код уже соответствует объекту StockLocation"
+#: barcodes/api.py:195
+msgid "Barcode already matches Stock Location"
+msgstr ""
-#: barcodes/api.py:198
-msgid "Barcode already matches Part object"
-msgstr "Штрих-код уже соответствует объекту Part"
+#: barcodes/api.py:199
+msgid "Barcode already matches Part"
+msgstr ""
-#: barcodes/api.py:204 barcodes/api.py:216
-msgid "Barcode hash already matches StockItem object"
-msgstr "Хэш штрих-кода уже соответствует объекту StockItem"
+#: barcodes/api.py:205 barcodes/api.py:217
+msgid "Barcode hash already matches Stock Item"
+msgstr ""
-#: barcodes/api.py:222
-msgid "Barcode associated with StockItem"
-msgstr "Штрих-код, связанный с инвентарем"
+#: barcodes/api.py:223
+msgid "Barcode associated with Stock Item"
+msgstr ""
#: build/forms.py:36 build/models.py:1283
#: build/templates/build/build_base.html:132
-#: build/templates/build/detail.html:35 common/models.py:1225
+#: build/templates/build/detail.html:35 common/models.py:1253
#: company/forms.py:42 company/templates/company/supplier_part.html:251
-#: order/forms.py:102 order/models.py:729 order/models.py:991
+#: order/models.py:794 order/models.py:1205 order/serializers.py:810
#: order/templates/order/order_wizard/match_parts.html:30
#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:223
#: part/forms.py:239 part/forms.py:255 part/models.py:2576
@@ -582,20 +591,23 @@ msgstr "Штрих-код, связанный с инвентарем"
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:81
#: report/templates/report/inventree_test_report_base.html:139
-#: stock/forms.py:156 stock/serializers.py:291
+#: stock/forms.py:142 stock/serializers.py:293
#: stock/templates/stock/item_base.html:174
+#: stock/templates/stock/item_base.html:255
+#: stock/templates/stock/item_base.html:263
#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443
-#: templates/js/translated/build.js:235 templates/js/translated/build.js:435
-#: templates/js/translated/build.js:629 templates/js/translated/build.js:639
-#: templates/js/translated/build.js:1015 templates/js/translated/build.js:1362
+#: templates/js/translated/build.js:240 templates/js/translated/build.js:440
+#: templates/js/translated/build.js:634 templates/js/translated/build.js:644
+#: templates/js/translated/build.js:1020 templates/js/translated/build.js:1367
#: templates/js/translated/model_renderers.js:99
-#: templates/js/translated/order.js:891 templates/js/translated/order.js:1204
-#: templates/js/translated/order.js:1282 templates/js/translated/order.js:1289
-#: templates/js/translated/order.js:1378 templates/js/translated/order.js:1478
-#: templates/js/translated/part.js:843 templates/js/translated/part.js:1796
-#: templates/js/translated/part.js:1919 templates/js/translated/part.js:1997
-#: templates/js/translated/stock.js:378 templates/js/translated/stock.js:2151
-#: templates/js/translated/stock.js:2253
+#: templates/js/translated/order.js:101 templates/js/translated/order.js:1056
+#: templates/js/translated/order.js:1578 templates/js/translated/order.js:1859
+#: templates/js/translated/order.js:1947 templates/js/translated/order.js:2036
+#: templates/js/translated/order.js:2150 templates/js/translated/part.js:843
+#: templates/js/translated/part.js:1796 templates/js/translated/part.js:1919
+#: templates/js/translated/part.js:1997 templates/js/translated/stock.js:382
+#: templates/js/translated/stock.js:579 templates/js/translated/stock.js:2326
+#: templates/js/translated/stock.js:2428
msgid "Quantity"
msgstr "Количество"
@@ -603,9 +615,9 @@ msgstr "Количество"
msgid "Enter quantity for build output"
msgstr "Введите количество для вывода сборки"
-#: build/forms.py:41 order/forms.py:96 stock/forms.py:95
-#: stock/serializers.py:312 templates/js/translated/stock.js:225
-#: templates/js/translated/stock.js:379
+#: build/forms.py:41 order/serializers.py:814 stock/forms.py:81
+#: stock/serializers.py:314 templates/js/translated/stock.js:229
+#: templates/js/translated/stock.js:383
msgid "Serial Numbers"
msgstr "Серийные номера"
@@ -640,17 +652,17 @@ msgstr "Неверный выбор для родительской сборки
#: build/models.py:137 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:397
+#: templates/js/translated/build.js:402
msgid "Build Order"
msgstr "Порядок сборки"
#: build/models.py:138 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
-#: order/templates/order/sales_order_detail.html:42
-#: order/templates/order/so_sidebar.html:7
+#: order/templates/order/sales_order_detail.html:92
+#: order/templates/order/so_sidebar.html:13
#: part/templates/part/part_sidebar.html:20 templates/InvenTree/index.html:221
#: templates/InvenTree/search.html:145
-#: templates/InvenTree/settings/sidebar.html:42 users/models.py:44
+#: templates/InvenTree/settings/sidebar.html:43 users/models.py:44
msgid "Build Orders"
msgstr "Порядок сборки"
@@ -658,13 +670,13 @@ msgstr "Порядок сборки"
msgid "Build Order Reference"
msgstr "Ссылка на заказ"
-#: build/models.py:199 order/models.py:249 order/models.py:556
-#: order/models.py:736 part/models.py:2585
+#: build/models.py:199 order/models.py:210 order/models.py:536
+#: order/models.py:801 part/models.py:2585
#: part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1119
-#: templates/js/translated/order.js:885 templates/js/translated/order.js:1472
+#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1124
+#: templates/js/translated/order.js:1050 templates/js/translated/order.js:2144
msgid "Reference"
msgstr "Отсылка"
@@ -683,7 +695,7 @@ msgstr ""
#: build/models.py:225 build/templates/build/build_base.html:77
#: build/templates/build/detail.html:30 company/models.py:705
-#: order/models.py:789 order/models.py:860
+#: order/models.py:854 order/models.py:928
#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357
#: part/models.py:2151 part/models.py:2167 part/models.py:2186
#: part/models.py:2203 part/models.py:2305 part/models.py:2427
@@ -698,14 +710,16 @@ msgstr ""
#: templates/email/build_order_required_stock.html:17
#: templates/email/low_stock_notification.html:16
#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:214
-#: templates/js/translated/bom.js:393 templates/js/translated/build.js:620
-#: templates/js/translated/build.js:988 templates/js/translated/build.js:1359
-#: templates/js/translated/build.js:1626 templates/js/translated/company.js:489
-#: templates/js/translated/company.js:746 templates/js/translated/order.js:426
-#: templates/js/translated/order.js:839 templates/js/translated/order.js:1456
-#: templates/js/translated/part.js:918 templates/js/translated/part.js:999
-#: templates/js/translated/part.js:1166 templates/js/translated/stock.js:590
-#: templates/js/translated/stock.js:1190 templates/js/translated/stock.js:2241
+#: templates/js/translated/bom.js:393 templates/js/translated/build.js:625
+#: templates/js/translated/build.js:993 templates/js/translated/build.js:1364
+#: templates/js/translated/build.js:1632 templates/js/translated/company.js:489
+#: templates/js/translated/company.js:746 templates/js/translated/order.js:84
+#: templates/js/translated/order.js:586 templates/js/translated/order.js:1004
+#: templates/js/translated/order.js:1576 templates/js/translated/order.js:1933
+#: templates/js/translated/order.js:2128 templates/js/translated/part.js:918
+#: templates/js/translated/part.js:999 templates/js/translated/part.js:1166
+#: templates/js/translated/stock.js:553 templates/js/translated/stock.js:747
+#: templates/js/translated/stock.js:1347 templates/js/translated/stock.js:2416
msgid "Part"
msgstr "Детали"
@@ -721,7 +735,8 @@ msgstr "Отсылка на заказ"
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:247 templates/js/translated/build.js:1347
+#: build/models.py:247 templates/js/translated/build.js:1352
+#: templates/js/translated/order.js:1564
msgid "Source Location"
msgstr "Расположение источника"
@@ -761,7 +776,7 @@ msgstr "Статус сборки"
msgid "Build status code"
msgstr "Код статуса сборки"
-#: build/models.py:285 stock/models.py:534
+#: build/models.py:285 stock/models.py:528
msgid "Batch Code"
msgstr "Штрих код"
@@ -769,12 +784,12 @@ msgstr "Штрих код"
msgid "Batch code for this build output"
msgstr "Штрих код для этого вывода сборки"
-#: build/models.py:292 order/models.py:165 part/models.py:936
-#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1103
+#: build/models.py:292 order/models.py:126 part/models.py:936
+#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1271
msgid "Creation Date"
msgstr "Дата создания"
-#: build/models.py:296 order/models.py:578
+#: build/models.py:296 order/models.py:558
msgid "Target completion date"
msgstr "Целевая дата завершения"
@@ -782,8 +797,8 @@ msgstr "Целевая дата завершения"
msgid "Target date for build completion. Build will be overdue after this date."
msgstr "Целевая дата для сборки. Сборка будет просрочена после этой даты."
-#: build/models.py:300 order/models.py:291
-#: templates/js/translated/build.js:1697
+#: build/models.py:300 order/models.py:252
+#: templates/js/translated/build.js:1703
msgid "Completion Date"
msgstr "Дата завершения"
@@ -791,7 +806,7 @@ msgstr "Дата завершения"
msgid "completed by"
msgstr "выполнено"
-#: build/models.py:314 templates/js/translated/build.js:1668
+#: build/models.py:314 templates/js/translated/build.js:1674
msgid "Issued by"
msgstr "Выдал/ла"
@@ -800,11 +815,11 @@ msgid "User who issued this build order"
msgstr "Пользователь, выпустивший этот заказ на сборку"
#: build/models.py:323 build/templates/build/build_base.html:185
-#: build/templates/build/detail.html:116 order/models.py:179
-#: order/templates/order/order_base.html:158
-#: order/templates/order/sales_order_base.html:162 part/models.py:940
+#: build/templates/build/detail.html:116 order/models.py:140
+#: order/templates/order/order_base.html:170
+#: order/templates/order/sales_order_base.html:182 part/models.py:940
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:1680 templates/js/translated/order.js:699
+#: templates/js/translated/build.js:1686 templates/js/translated/order.js:864
msgid "Responsible"
msgstr "Ответственный"
@@ -815,7 +830,7 @@ msgstr "Пользователь ответственный за этот зак
#: build/models.py:329 build/templates/build/detail.html:102
#: company/templates/company/manufacturer_part.html:102
#: company/templates/company/supplier_part.html:126
-#: part/templates/part/part_base.html:354 stock/models.py:528
+#: part/templates/part/part_base.html:354 stock/models.py:522
#: stock/templates/stock/item_base.html:374
msgid "External Link"
msgstr "Внешняя ссылка"
@@ -823,18 +838,19 @@ msgstr "Внешняя ссылка"
#: build/models.py:334 build/serializers.py:201
#: build/templates/build/sidebar.html:21 company/models.py:142
#: company/models.py:577 company/templates/company/sidebar.html:25
-#: order/models.py:183 order/models.py:738
+#: order/models.py:144 order/models.py:803 order/models.py:1049
#: order/templates/order/po_sidebar.html:11
-#: order/templates/order/so_sidebar.html:11 part/models.py:925
+#: order/templates/order/so_sidebar.html:17 part/models.py:925
#: part/templates/part/detail.html:116 part/templates/part/part_sidebar.html:50
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/forms.py:154 stock/forms.py:204 stock/forms.py:238 stock/models.py:600
-#: stock/models.py:1764 stock/models.py:1870 stock/serializers.py:330
-#: stock/serializers.py:588 stock/templates/stock/stock_sidebar.html:21
+#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:594
+#: stock/models.py:1752 stock/models.py:1858 stock/serializers.py:332
+#: stock/serializers.py:624 stock/serializers.py:711
+#: stock/templates/stock/stock_sidebar.html:21
#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599
-#: templates/js/translated/company.js:842 templates/js/translated/order.js:984
-#: templates/js/translated/order.js:1582 templates/js/translated/stock.js:973
-#: templates/js/translated/stock.js:1452
+#: templates/js/translated/company.js:842 templates/js/translated/order.js:1149
+#: templates/js/translated/order.js:1445 templates/js/translated/order.js:2280
+#: templates/js/translated/stock.js:1130 templates/js/translated/stock.js:1616
msgid "Notes"
msgstr "Заметки"
@@ -867,7 +883,7 @@ msgstr "Выделенное количество ({q}) не должно пре
msgid "Stock item is over-allocated"
msgstr "Предмет на складе перераспределен"
-#: build/models.py:1133 order/models.py:964
+#: build/models.py:1133 order/models.py:1165
msgid "Allocation quantity must be greater than zero"
msgstr "Выделенное количество должно быть больше нуля"
@@ -880,8 +896,8 @@ msgid "Selected stock item not found in BOM"
msgstr "Выбранный предмет со складом не найден в BOM"
#: build/models.py:1253 stock/templates/stock/item_base.html:346
-#: templates/InvenTree/search.html:143 templates/js/translated/build.js:1599
-#: templates/navbar.html:33
+#: templates/InvenTree/search.html:143 templates/js/translated/build.js:1605
+#: templates/navbar.html:35
msgid "Build"
msgstr "Сборка"
@@ -889,14 +905,17 @@ msgstr "Сборка"
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1270 build/serializers.py:328
+#: build/models.py:1270 build/serializers.py:328 order/serializers.py:690
+#: order/serializers.py:708 stock/serializers.py:562
#: stock/templates/stock/item_base.html:8
#: stock/templates/stock/item_base.html:16
#: stock/templates/stock/item_base.html:368
-#: templates/js/translated/build.js:408 templates/js/translated/build.js:413
-#: templates/js/translated/build.js:1361 templates/js/translated/build.js:1742
-#: templates/js/translated/order.js:1177 templates/js/translated/order.js:1182
-#: templates/js/translated/stock.js:2102
+#: templates/js/translated/build.js:413 templates/js/translated/build.js:418
+#: templates/js/translated/build.js:1366 templates/js/translated/build.js:1748
+#: templates/js/translated/order.js:85 templates/js/translated/order.js:1577
+#: templates/js/translated/order.js:1832 templates/js/translated/order.js:1837
+#: templates/js/translated/order.js:1940 templates/js/translated/order.js:2030
+#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:2277
msgid "Stock Item"
msgstr "Предметы на складе"
@@ -936,16 +955,17 @@ msgstr ""
msgid "This build output is not fully allocated"
msgstr ""
-#: build/serializers.py:190 order/serializers.py:228 order/serializers.py:296
-#: stock/forms.py:236 stock/serializers.py:323 stock/serializers.py:690
+#: build/serializers.py:190 order/serializers.py:226 order/serializers.py:294
+#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:813
#: stock/templates/stock/item_base.html:314
#: templates/js/translated/barcode.js:384
-#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:420
-#: templates/js/translated/build.js:1027 templates/js/translated/order.js:348
-#: templates/js/translated/order.js:1189 templates/js/translated/order.js:1297
-#: templates/js/translated/order.js:1303 templates/js/translated/part.js:177
-#: templates/js/translated/stock.js:592 templates/js/translated/stock.js:1333
-#: templates/js/translated/stock.js:2043
+#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:425
+#: templates/js/translated/build.js:1032 templates/js/translated/order.js:508
+#: templates/js/translated/order.js:1844 templates/js/translated/order.js:1955
+#: templates/js/translated/order.js:1963 templates/js/translated/order.js:2044
+#: templates/js/translated/part.js:177 templates/js/translated/stock.js:555
+#: templates/js/translated/stock.js:749 templates/js/translated/stock.js:1497
+#: templates/js/translated/stock.js:2218
msgid "Location"
msgstr "Расположение"
@@ -954,12 +974,12 @@ msgid "Location for completed build outputs"
msgstr ""
#: build/serializers.py:197 build/templates/build/build_base.html:137
-#: build/templates/build/detail.html:63 order/models.py:572
-#: order/serializers.py:249 stock/templates/stock/item_base.html:180
-#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1655
-#: templates/js/translated/order.js:431 templates/js/translated/order.js:1095
-#: templates/js/translated/stock.js:1308 templates/js/translated/stock.js:2120
-#: templates/js/translated/stock.js:2269
+#: build/templates/build/detail.html:63 order/models.py:552
+#: order/serializers.py:247 stock/templates/stock/item_base.html:180
+#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1661
+#: templates/js/translated/order.js:591 templates/js/translated/order.js:840
+#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1472
+#: templates/js/translated/stock.js:2295 templates/js/translated/stock.js:2444
msgid "Status"
msgstr "Статус"
@@ -984,16 +1004,16 @@ msgstr ""
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:334
+#: build/serializers.py:334 stock/serializers.py:569
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:348 order/models.py:316 order/serializers.py:242
-#: stock/models.py:371 stock/models.py:1093 stock/serializers.py:303
+#: build/serializers.py:348 order/models.py:277 order/serializers.py:240
+#: stock/models.py:365 stock/models.py:1081 stock/serializers.py:305
msgid "Quantity must be greater than zero"
msgstr ""
-#: build/serializers.py:390
+#: build/serializers.py:390 order/serializers.py:741
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
@@ -1006,7 +1026,7 @@ msgstr ""
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:431
+#: build/serializers.py:431 order/serializers.py:984
msgid "Allocation items must be provided"
msgstr ""
@@ -1079,11 +1099,11 @@ msgstr ""
#: build/templates/build/build_base.html:146
#: build/templates/build/detail.html:132
-#: order/templates/order/order_base.html:144
-#: order/templates/order/sales_order_base.html:141
+#: order/templates/order/order_base.html:156
+#: order/templates/order/sales_order_base.html:163
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:1692 templates/js/translated/order.js:689
-#: templates/js/translated/order.js:1108
+#: templates/js/translated/build.js:1698 templates/js/translated/order.js:854
+#: templates/js/translated/order.js:1276
msgid "Target Date"
msgstr "Целевая дата"
@@ -1096,28 +1116,28 @@ msgstr ""
#: build/templates/build/build_base.html:196
#: order/templates/order/order_base.html:98
#: order/templates/order/sales_order_base.html:93
-#: templates/js/translated/table_filters.js:294
-#: templates/js/translated/table_filters.js:322
-#: templates/js/translated/table_filters.js:339
+#: templates/js/translated/table_filters.js:299
+#: templates/js/translated/table_filters.js:340
+#: templates/js/translated/table_filters.js:361
msgid "Overdue"
msgstr "Просрочено"
#: build/templates/build/build_base.html:158
#: build/templates/build/detail.html:68 build/templates/build/detail.html:143
-#: templates/js/translated/build.js:1641
-#: templates/js/translated/table_filters.js:304
+#: order/templates/order/sales_order_base.html:170
+#: templates/js/translated/build.js:1647
+#: templates/js/translated/table_filters.js:370
msgid "Completed"
msgstr ""
#: build/templates/build/build_base.html:171
-#: build/templates/build/detail.html:95 order/models.py:857
-#: order/templates/order/sales_order_base.html:9
+#: build/templates/build/detail.html:95 order/models.py:925
+#: order/models.py:1021 order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
-#: order/templates/order/sales_order_ship.html:25
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:308
-#: templates/js/translated/order.js:1050
+#: templates/js/translated/order.js:1218
msgid "Sales Order"
msgstr ""
@@ -1191,8 +1211,8 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:50 order/models.py:811 stock/forms.py:150
-#: templates/js/translated/order.js:432 templates/js/translated/order.js:973
+#: build/templates/build/detail.html:50 order/models.py:876 stock/forms.py:136
+#: templates/js/translated/order.js:592 templates/js/translated/order.js:1138
msgid "Destination"
msgstr ""
@@ -1200,22 +1220,22 @@ msgstr ""
msgid "Destination location not specified"
msgstr ""
-#: build/templates/build/detail.html:74 templates/js/translated/build.js:647
+#: build/templates/build/detail.html:74 templates/js/translated/build.js:652
msgid "Allocated Parts"
msgstr ""
#: build/templates/build/detail.html:81
#: stock/templates/stock/item_base.html:332
-#: templates/js/translated/stock.js:1322 templates/js/translated/stock.js:2276
+#: templates/js/translated/stock.js:1486 templates/js/translated/stock.js:2451
#: templates/js/translated/table_filters.js:151
-#: templates/js/translated/table_filters.js:233
+#: templates/js/translated/table_filters.js:238
msgid "Batch"
msgstr "Партия"
#: build/templates/build/detail.html:127
-#: order/templates/order/order_base.html:131
-#: order/templates/order/sales_order_base.html:135
-#: templates/js/translated/build.js:1663
+#: order/templates/order/order_base.html:143
+#: order/templates/order/sales_order_base.html:157
+#: templates/js/translated/build.js:1669
msgid "Created"
msgstr "Создано"
@@ -1235,7 +1255,7 @@ msgstr ""
msgid "Allocate Stock to Build"
msgstr ""
-#: build/templates/build/detail.html:177 templates/js/translated/build.js:1202
+#: build/templates/build/detail.html:177 templates/js/translated/build.js:1207
msgid "Unallocate stock"
msgstr ""
@@ -1257,7 +1277,7 @@ msgstr ""
#: build/templates/build/detail.html:185
#: company/templates/company/detail.html:38
-#: company/templates/company/detail.html:85 order/views.py:509
+#: company/templates/company/detail.html:85 order/views.py:463
#: part/templates/part/category.html:173
msgid "Order Parts"
msgstr "Заказать детали"
@@ -1309,8 +1329,8 @@ msgstr ""
#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:60
-#: order/templates/order/sales_order_detail.html:52
-#: order/templates/order/so_sidebar.html:9 part/templates/part/detail.html:193
+#: order/templates/order/sales_order_detail.html:107
+#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:193
#: part/templates/part/part_sidebar.html:48 stock/templates/stock/item.html:95
#: stock/templates/stock/stock_sidebar.html:19
msgid "Attachments"
@@ -1325,8 +1345,8 @@ msgstr "Заметки сборки"
#: company/templates/company/detail.html:215
#: order/templates/order/purchase_order_detail.html:80
#: order/templates/order/purchase_order_detail.html:108
-#: order/templates/order/sales_order_detail.html:72
-#: order/templates/order/sales_order_detail.html:99
+#: order/templates/order/sales_order_detail.html:127
+#: order/templates/order/sales_order_detail.html:186
#: part/templates/part/detail.html:120 stock/templates/stock/item.html:115
#: stock/templates/stock/item.html:205
msgid "Edit Notes"
@@ -1384,7 +1404,7 @@ msgstr ""
msgid "Maximum output quantity is "
msgstr ""
-#: build/views.py:122 stock/serializers.py:361 stock/views.py:1290
+#: build/views.py:122 stock/serializers.py:363 stock/views.py:1257
msgid "Serial numbers already exist"
msgstr ""
@@ -1400,7 +1420,7 @@ msgstr ""
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:219 stock/views.py:385
+#: build/views.py:219 stock/views.py:352
msgid "Check the confirmation box"
msgstr ""
@@ -1469,7 +1489,7 @@ msgstr ""
msgid "Select {name} file to upload"
msgstr ""
-#: common/models.py:340 common/models.py:970 common/models.py:1178
+#: common/models.py:340 common/models.py:998 common/models.py:1206
msgid "Settings key (must be unique - case insensitive"
msgstr ""
@@ -1557,7 +1577,7 @@ msgstr ""
msgid "Allow download of remote images and files from external URL"
msgstr ""
-#: common/models.py:649 templates/InvenTree/settings/sidebar.html:30
+#: common/models.py:649 templates/InvenTree/settings/sidebar.html:31
msgid "Barcode Support"
msgstr ""
@@ -1623,7 +1643,7 @@ msgstr ""
#: common/models.py:703 part/models.py:2429 report/models.py:187
#: templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:373
+#: templates/js/translated/table_filters.js:404
msgid "Template"
msgstr ""
@@ -1633,7 +1653,7 @@ msgstr ""
#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:956
#: templates/js/translated/table_filters.js:168
-#: templates/js/translated/table_filters.js:385
+#: templates/js/translated/table_filters.js:416
msgid "Assembly"
msgstr ""
@@ -1642,7 +1662,7 @@ msgid "Parts can be assembled from other components by default"
msgstr ""
#: common/models.py:717 part/models.py:894
-#: templates/js/translated/table_filters.js:389
+#: templates/js/translated/table_filters.js:420
msgid "Component"
msgstr ""
@@ -1659,7 +1679,7 @@ msgid "Parts are purchaseable by default"
msgstr ""
#: common/models.py:731 part/models.py:910
-#: templates/js/translated/table_filters.js:397
+#: templates/js/translated/table_filters.js:428
msgid "Salable"
msgstr ""
@@ -1670,7 +1690,7 @@ msgstr ""
#: common/models.py:738 part/models.py:900
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:100
-#: templates/js/translated/table_filters.js:401
+#: templates/js/translated/table_filters.js:432
msgid "Trackable"
msgstr ""
@@ -1932,230 +1952,262 @@ msgstr ""
msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:1001
+#: common/models.py:961
+msgid "Enable URL integration"
+msgstr ""
+
+#: common/models.py:962
+msgid "Enable plugins to add URL routes"
+msgstr ""
+
+#: common/models.py:968
+msgid "Enable navigation integration"
+msgstr ""
+
+#: common/models.py:969
+msgid "Enable plugins to integrate into navigation"
+msgstr ""
+
+#: common/models.py:975
+msgid "Enable global setting integration"
+msgstr ""
+
+#: common/models.py:976
+msgid "Enable plugins to integrate into inventree global settings"
+msgstr ""
+
+#: common/models.py:982
+msgid "Enable app integration"
+msgstr ""
+
+#: common/models.py:983
+msgid "Enable plugins to add apps"
+msgstr ""
+
+#: common/models.py:1029
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:1002
+#: common/models.py:1030
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:1007
+#: common/models.py:1035
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:1008
+#: common/models.py:1036
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:1013
+#: common/models.py:1041
msgid "Show latest parts"
msgstr ""
-#: common/models.py:1014
+#: common/models.py:1042
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:1019
+#: common/models.py:1047
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:1020
+#: common/models.py:1048
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:1026
+#: common/models.py:1054
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1027
+#: common/models.py:1055
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1032
+#: common/models.py:1060
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:1033
+#: common/models.py:1061
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:1038
+#: common/models.py:1066
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:1039
+#: common/models.py:1067
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:1044
+#: common/models.py:1072
msgid "Show low stock"
msgstr ""
-#: common/models.py:1045
+#: common/models.py:1073
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:1050
+#: common/models.py:1078
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:1051
+#: common/models.py:1079
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:1056
+#: common/models.py:1084
msgid "Show needed stock"
msgstr ""
-#: common/models.py:1057
+#: common/models.py:1085
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1062
+#: common/models.py:1090
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1063
+#: common/models.py:1091
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1068
+#: common/models.py:1096
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1069
+#: common/models.py:1097
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1074
+#: common/models.py:1102
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1075
+#: common/models.py:1103
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:1080
+#: common/models.py:1108
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:1081
+#: common/models.py:1109
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:1086
+#: common/models.py:1114
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:1087
+#: common/models.py:1115
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:1092
+#: common/models.py:1120
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:1093
+#: common/models.py:1121
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:1098
+#: common/models.py:1126
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:1099
+#: common/models.py:1127
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:1104
+#: common/models.py:1132
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:1105
+#: common/models.py:1133
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:1111
+#: common/models.py:1139
msgid "Inline label display"
msgstr ""
-#: common/models.py:1112
+#: common/models.py:1140
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1118
+#: common/models.py:1146
msgid "Inline report display"
msgstr ""
-#: common/models.py:1119
+#: common/models.py:1147
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1125
+#: common/models.py:1153
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:1126
+#: common/models.py:1154
msgid "Number of results to show in search preview window"
msgstr ""
-#: common/models.py:1132
+#: common/models.py:1160
msgid "Search Show Stock"
msgstr ""
-#: common/models.py:1133
+#: common/models.py:1161
msgid "Display stock levels in search preview window"
msgstr ""
-#: common/models.py:1139
+#: common/models.py:1167
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:1140
+#: common/models.py:1168
msgid "Hide inactive parts in search preview window"
msgstr ""
-#: common/models.py:1146
+#: common/models.py:1174
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:1147
+#: common/models.py:1175
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:1153
+#: common/models.py:1181
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1154
+#: common/models.py:1182
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1160
+#: common/models.py:1188
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:1161
+#: common/models.py:1189
msgid "InvenTree navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:1226 company/forms.py:43
+#: common/models.py:1254 company/forms.py:43
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1233 company/serializers.py:264
+#: common/models.py:1261 company/serializers.py:264
#: company/templates/company/supplier_part.html:256
#: templates/js/translated/part.js:852 templates/js/translated/part.js:1801
msgid "Price"
msgstr ""
-#: common/models.py:1234
+#: common/models.py:1262
msgid "Unit price at specified quantity"
msgstr ""
#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49
-#: order/templates/order/purchase_order_detail.html:24 order/views.py:289
+#: order/templates/order/purchase_order_detail.html:24 order/views.py:243
#: part/templates/part/bom_upload/upload_file.html:52
#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:212
#: part/views.py:858
@@ -2163,7 +2215,7 @@ msgid "Upload File"
msgstr ""
#: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52
-#: order/views.py:290 part/templates/part/bom_upload/match_fields.html:52
+#: order/views.py:244 part/templates/part/bom_upload/match_fields.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:45
#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:213
#: part/views.py:859
@@ -2195,6 +2247,7 @@ msgid "Previous Step"
msgstr ""
#: company/forms.py:24 part/forms.py:46
+#: templates/InvenTree/settings/mixins/urls.html:12
msgid "URL"
msgstr ""
@@ -2211,6 +2264,7 @@ msgid "Description of the company"
msgstr ""
#: company/models.py:112 company/templates/company/company_base.html:97
+#: templates/InvenTree/settings/plugin_settings.html:55
#: templates/js/translated/company.js:349
msgid "Website"
msgstr ""
@@ -2285,7 +2339,7 @@ msgid "Does this company manufacture parts?"
msgstr ""
#: company/models.py:152 company/serializers.py:270
-#: company/templates/company/company_base.html:103 stock/serializers.py:177
+#: company/templates/company/company_base.html:103 stock/serializers.py:179
msgid "Currency"
msgstr ""
@@ -2293,12 +2347,12 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:320 company/models.py:535 stock/models.py:474
+#: company/models.py:320 company/models.py:535 stock/models.py:468
#: stock/templates/stock/item_base.html:135
msgid "Base Part"
msgstr ""
-#: company/models.py:324 company/models.py:539 order/views.py:912
+#: company/models.py:324 company/models.py:539
msgid "Select part"
msgstr ""
@@ -2319,7 +2373,7 @@ msgstr ""
#: company/models.py:342 company/templates/company/manufacturer_part.html:96
#: company/templates/company/supplier_part.html:105
#: templates/js/translated/company.js:530
-#: templates/js/translated/company.js:815 templates/js/translated/order.js:873
+#: templates/js/translated/company.js:815 templates/js/translated/order.js:1038
#: templates/js/translated/part.js:243 templates/js/translated/part.js:832
msgid "MPN"
msgstr ""
@@ -2349,8 +2403,8 @@ msgstr ""
#: company/models.py:422
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:1857 templates/js/translated/company.js:644
-#: templates/js/translated/part.js:652 templates/js/translated/stock.js:960
+#: stock/models.py:1845 templates/js/translated/company.js:644
+#: templates/js/translated/part.js:652 templates/js/translated/stock.js:1117
msgid "Value"
msgstr ""
@@ -2360,7 +2414,7 @@ msgstr ""
#: company/models.py:429 part/models.py:882 part/models.py:2397
#: part/templates/part/part_base.html:288
-#: templates/InvenTree/settings/settings.html:264
+#: templates/InvenTree/settings/settings.html:273
#: templates/js/translated/company.js:650 templates/js/translated/part.js:658
msgid "Units"
msgstr ""
@@ -2374,12 +2428,12 @@ msgid "Linked manufacturer part must reference the same base part"
msgstr ""
#: company/models.py:545 company/templates/company/company_base.html:78
-#: company/templates/company/supplier_part.html:87 order/models.py:263
+#: company/templates/company/supplier_part.html:87 order/models.py:224
#: order/templates/order/order_base.html:112
#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219
#: part/bom.py:247 stock/templates/stock/item_base.html:398
#: templates/js/translated/company.js:337
-#: templates/js/translated/company.js:771 templates/js/translated/order.js:667
+#: templates/js/translated/company.js:771 templates/js/translated/order.js:823
#: templates/js/translated/part.js:213 templates/js/translated/part.js:800
msgid "Supplier"
msgstr ""
@@ -2389,7 +2443,7 @@ msgid "Select supplier"
msgstr ""
#: company/models.py:551 company/templates/company/supplier_part.html:91
-#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:860
+#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:1025
#: templates/js/translated/part.js:224 templates/js/translated/part.js:818
msgid "SKU"
msgstr ""
@@ -2425,8 +2479,8 @@ msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:582 company/templates/company/supplier_part.html:112
-#: stock/models.py:497 stock/templates/stock/item_base.html:339
-#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1448
+#: stock/models.py:491 stock/templates/stock/item_base.html:339
+#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1612
msgid "Packaging"
msgstr ""
@@ -2457,7 +2511,7 @@ msgid "Company"
msgstr ""
#: company/templates/company/company_base.html:22
-#: templates/js/translated/order.js:121
+#: templates/js/translated/order.js:279
msgid "Create Purchase Order"
msgstr ""
@@ -2493,11 +2547,12 @@ msgstr ""
msgid "Download image from URL"
msgstr ""
-#: company/templates/company/company_base.html:83 order/models.py:567
-#: order/templates/order/sales_order_base.html:115 stock/models.py:515
-#: stock/models.py:516 stock/templates/stock/item_base.html:291
-#: templates/js/translated/company.js:329 templates/js/translated/order.js:1072
-#: templates/js/translated/stock.js:2084
+#: company/templates/company/company_base.html:83 order/models.py:547
+#: order/templates/order/sales_order_base.html:115 stock/models.py:509
+#: stock/models.py:510 stock/serializers.py:610
+#: stock/templates/stock/item_base.html:291
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1240
+#: templates/js/translated/stock.js:2259
msgid "Customer"
msgstr ""
@@ -2580,7 +2635,7 @@ msgstr ""
#: order/templates/order/purchase_orders.html:12
#: part/templates/part/detail.html:64 part/templates/part/part_sidebar.html:33
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:203
-#: templates/InvenTree/settings/sidebar.html:44 templates/navbar.html:45
+#: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47
#: users/models.py:45
msgid "Purchase Orders"
msgstr ""
@@ -2602,7 +2657,7 @@ msgstr ""
#: order/templates/order/sales_orders.html:15
#: part/templates/part/detail.html:87 part/templates/part/part_sidebar.html:37
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:223
-#: templates/InvenTree/settings/sidebar.html:46 templates/navbar.html:56
+#: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58
#: users/models.py:46
msgid "Sales Orders"
msgstr ""
@@ -2618,7 +2673,7 @@ msgid "New Sales Order"
msgstr ""
#: company/templates/company/detail.html:168
-#: templates/js/translated/build.js:999
+#: templates/js/translated/build.js:1004
msgid "Assigned Stock"
msgstr ""
@@ -2644,7 +2699,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:14 company/views.py:55
#: part/templates/part/prices.html:167 templates/InvenTree/search.html:184
-#: templates/navbar.html:44
+#: templates/navbar.html:46
msgid "Manufacturers"
msgstr ""
@@ -2673,7 +2728,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:114
#: company/templates/company/supplier_part.html:15 company/views.py:49
#: part/templates/part/part_sidebar.html:31 part/templates/part/prices.html:163
-#: templates/InvenTree/search.html:194 templates/navbar.html:43
+#: templates/InvenTree/search.html:194 templates/navbar.html:45
msgid "Suppliers"
msgstr ""
@@ -2687,7 +2742,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:254
#: part/templates/part/detail.html:344 part/templates/part/detail.html:372
#: templates/js/translated/company.js:425 templates/js/translated/helpers.js:31
-#: users/models.py:204
+#: users/models.py:206
msgid "Delete"
msgstr ""
@@ -2739,9 +2794,9 @@ msgid "Assigned Stock Items"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:482
+#: company/templates/company/supplier_part.html:24 stock/models.py:476
#: stock/templates/stock/item_base.html:403
-#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1405
+#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1569
msgid "Supplier Part"
msgstr ""
@@ -2767,7 +2822,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:142
#: part/templates/part/detail.html:21 stock/templates/stock/location.html:163
-#: templates/js/translated/stock.js:355
+#: templates/js/translated/stock.js:359
msgid "New Stock Item"
msgstr ""
@@ -2817,11 +2872,11 @@ msgstr ""
#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:14
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:156
-#: templates/InvenTree/settings/sidebar.html:40
+#: templates/InvenTree/settings/sidebar.html:41
#: templates/js/translated/bom.js:216 templates/js/translated/part.js:434
#: templates/js/translated/part.js:569 templates/js/translated/part.js:1059
-#: templates/js/translated/part.js:1220 templates/js/translated/stock.js:591
-#: templates/js/translated/stock.js:1244 templates/navbar.html:26
+#: templates/js/translated/part.js:1220 templates/js/translated/stock.js:748
+#: templates/js/translated/stock.js:1401 templates/navbar.html:28
msgid "Stock"
msgstr ""
@@ -2844,7 +2899,7 @@ msgstr ""
#: stock/templates/stock/location.html:147
#: stock/templates/stock/location.html:159
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1983
+#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:2158
#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
msgid "Stock Items"
msgstr ""
@@ -2858,7 +2913,7 @@ msgid "New Manufacturer"
msgstr ""
#: company/views.py:61 templates/InvenTree/search.html:214
-#: templates/navbar.html:55
+#: templates/navbar.html:57
msgid "Customers"
msgstr ""
@@ -2960,284 +3015,374 @@ msgstr ""
msgid "Part query filters (comma-separated value of key=value pairs)"
msgstr ""
-#: order/forms.py:26 order/templates/order/order_base.html:52
+#: order/forms.py:24 order/templates/order/order_base.html:52
msgid "Place order"
msgstr ""
-#: order/forms.py:37 order/templates/order/order_base.html:60
+#: order/forms.py:35 order/templates/order/order_base.html:60
msgid "Mark order as complete"
msgstr ""
-#: order/forms.py:48 order/forms.py:59 order/templates/order/order_base.html:47
+#: order/forms.py:46 order/forms.py:57 order/templates/order/order_base.html:47
#: order/templates/order/sales_order_base.html:60
msgid "Cancel order"
msgstr ""
-#: order/forms.py:70
-msgid "Ship order"
-msgstr ""
-
-#: order/forms.py:98
-msgid "Enter stock item serial numbers"
-msgstr ""
-
-#: order/forms.py:104
-msgid "Enter quantity of stock items"
-msgstr ""
-
-#: order/models.py:161
+#: order/models.py:122
msgid "Order description"
msgstr ""
-#: order/models.py:163
+#: order/models.py:124
msgid "Link to external page"
msgstr ""
-#: order/models.py:171
+#: order/models.py:132
msgid "Created By"
msgstr ""
-#: order/models.py:178
+#: order/models.py:139
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:183
+#: order/models.py:144
msgid "Order notes"
msgstr ""
-#: order/models.py:250 order/models.py:557
+#: order/models.py:211 order/models.py:537
msgid "Order reference"
msgstr ""
-#: order/models.py:255 order/models.py:572
+#: order/models.py:216 order/models.py:552
msgid "Purchase order status"
msgstr ""
-#: order/models.py:264
+#: order/models.py:225
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:267 order/templates/order/order_base.html:118
-#: templates/js/translated/order.js:676
+#: order/models.py:228 order/templates/order/order_base.html:118
+#: templates/js/translated/order.js:832
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:267
+#: order/models.py:228
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:274
+#: order/models.py:235
msgid "received by"
msgstr ""
-#: order/models.py:279
+#: order/models.py:240
msgid "Issue Date"
msgstr ""
-#: order/models.py:280
+#: order/models.py:241
msgid "Date order was issued"
msgstr ""
-#: order/models.py:285
+#: order/models.py:246
msgid "Target Delivery Date"
msgstr ""
-#: order/models.py:286
+#: order/models.py:247
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:292
+#: order/models.py:253
msgid "Date order was completed"
msgstr ""
-#: order/models.py:321
+#: order/models.py:282
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:431
+#: order/models.py:411
msgid "Quantity must be an integer"
msgstr ""
-#: order/models.py:435
+#: order/models.py:415
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:568
+#: order/models.py:548
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:574
+#: order/models.py:554
msgid "Customer Reference "
msgstr ""
-#: order/models.py:574
+#: order/models.py:554
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:579
+#: order/models.py:559
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:582 templates/js/translated/order.js:1113
+#: order/models.py:562 order/models.py:1026
+#: templates/js/translated/order.js:1281 templates/js/translated/order.js:1429
msgid "Shipment Date"
msgstr ""
-#: order/models.py:589
+#: order/models.py:569
msgid "shipped by"
msgstr ""
-#: order/models.py:633
-msgid "SalesOrder cannot be shipped as it is not currently pending"
+#: order/models.py:634
+msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:730
+#: order/models.py:639
+msgid "Only a pending order can be marked as complete"
+msgstr ""
+
+#: order/models.py:643
+msgid "Order cannot be completed as there are incomplete shipments"
+msgstr ""
+
+#: order/models.py:647
+msgid "Order cannot be completed as there are incomplete line items"
+msgstr ""
+
+#: order/models.py:795
msgid "Item quantity"
msgstr ""
-#: order/models.py:736
+#: order/models.py:801
msgid "Line item reference"
msgstr ""
-#: order/models.py:738
+#: order/models.py:803
msgid "Line item notes"
msgstr ""
-#: order/models.py:768 order/models.py:856
-#: templates/js/translated/order.js:1165
+#: order/models.py:833 order/models.py:924 order/models.py:1020
+#: templates/js/translated/order.js:1820
msgid "Order"
msgstr ""
-#: order/models.py:769 order/templates/order/order_base.html:9
+#: order/models.py:834 order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:353
-#: templates/js/translated/order.js:638 templates/js/translated/part.js:775
-#: templates/js/translated/stock.js:1382 templates/js/translated/stock.js:2065
+#: templates/js/translated/order.js:801 templates/js/translated/part.js:775
+#: templates/js/translated/stock.js:1546 templates/js/translated/stock.js:2240
msgid "Purchase Order"
msgstr ""
-#: order/models.py:790
+#: order/models.py:855
msgid "Supplier part"
msgstr ""
-#: order/models.py:797 order/templates/order/order_base.html:151
-#: order/templates/order/sales_order_base.html:155
-#: templates/js/translated/order.js:429 templates/js/translated/order.js:953
+#: order/models.py:862 order/templates/order/order_base.html:163
+#: templates/js/translated/order.js:589 templates/js/translated/order.js:1118
#: templates/js/translated/part.js:847 templates/js/translated/part.js:873
+#: templates/js/translated/table_filters.js:317
msgid "Received"
msgstr ""
-#: order/models.py:798
+#: order/models.py:863
msgid "Number of items received"
msgstr ""
-#: order/models.py:805 part/templates/part/prices.html:176 stock/models.py:609
-#: stock/serializers.py:168 stock/templates/stock/item_base.html:360
-#: templates/js/translated/stock.js:1436
+#: order/models.py:870 part/templates/part/prices.html:176 stock/models.py:603
+#: stock/serializers.py:170 stock/templates/stock/item_base.html:360
+#: templates/js/translated/stock.js:1600
msgid "Purchase Price"
msgstr ""
-#: order/models.py:806
+#: order/models.py:871
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:814
+#: order/models.py:879
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:866 part/templates/part/part_pricing.html:112
+#: order/models.py:934 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:116 part/templates/part/prices.html:284
msgid "Sale Price"
msgstr ""
-#: order/models.py:867
+#: order/models.py:935
msgid "Unit sale price"
msgstr ""
-#: order/models.py:946 order/models.py:948
+#: order/models.py:940
+msgid "Shipped quantity"
+msgstr ""
+
+#: order/models.py:1027
+msgid "Date of shipment"
+msgstr ""
+
+#: order/models.py:1034
+msgid "Checked By"
+msgstr ""
+
+#: order/models.py:1035
+msgid "User who checked this shipment"
+msgstr ""
+
+#: order/models.py:1043
+msgid "Shipment number"
+msgstr ""
+
+#: order/models.py:1050
+msgid "Shipment notes"
+msgstr ""
+
+#: order/models.py:1057
+msgid "Tracking Number"
+msgstr ""
+
+#: order/models.py:1058
+msgid "Shipment tracking information"
+msgstr ""
+
+#: order/models.py:1068
+msgid "Shipment has already been sent"
+msgstr ""
+
+#: order/models.py:1071
+msgid "Shipment has no allocated stock items"
+msgstr ""
+
+#: order/models.py:1147 order/models.py:1149
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:952
+#: order/models.py:1153
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:954
+#: order/models.py:1155
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:957
+#: order/models.py:1158
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:961
+#: order/models.py:1162
msgid "StockItem is over-allocated"
msgstr ""
-#: order/models.py:967
+#: order/models.py:1168 order/serializers.py:734
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:975
+#: order/models.py:1171
+msgid "Sales order does not match shipment"
+msgstr ""
+
+#: order/models.py:1172
+msgid "Shipment does not match sales order"
+msgstr ""
+
+#: order/models.py:1180
msgid "Line"
msgstr ""
-#: order/models.py:987
+#: order/models.py:1188 order/serializers.py:825 order/serializers.py:953
+#: templates/js/translated/model_renderers.js:251
+msgid "Shipment"
+msgstr ""
+
+#: order/models.py:1189
+msgid "Sales order shipment reference"
+msgstr ""
+
+#: order/models.py:1201
msgid "Item"
msgstr ""
-#: order/models.py:988
+#: order/models.py:1202
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:991
+#: order/models.py:1205
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/serializers.py:175
+#: order/serializers.py:173
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:213
+#: order/serializers.py:211 order/serializers.py:790
msgid "Line Item"
msgstr ""
-#: order/serializers.py:219
+#: order/serializers.py:217
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:229 order/serializers.py:297
+#: order/serializers.py:227 order/serializers.py:295
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:253
+#: order/serializers.py:251
msgid "Barcode Hash"
msgstr ""
-#: order/serializers.py:254
+#: order/serializers.py:252
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:271
+#: order/serializers.py:269
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:309
+#: order/serializers.py:307
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:326
+#: order/serializers.py:324
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:337
+#: order/serializers.py:335
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:578
+#: order/serializers.py:581
msgid "Sale price currency"
msgstr ""
+#: order/serializers.py:649
+msgid "No shipment details provided"
+msgstr ""
+
+#: order/serializers.py:699 order/serializers.py:802
+msgid "Line item is not associated with this order"
+msgstr ""
+
+#: order/serializers.py:721
+msgid "Quantity must be positive"
+msgstr ""
+
+#: order/serializers.py:815
+msgid "Enter serial numbers to allocate"
+msgstr ""
+
+#: order/serializers.py:839 order/serializers.py:964
+msgid "Shipment has already been shipped"
+msgstr ""
+
+#: order/serializers.py:842 order/serializers.py:967
+msgid "Shipment is not associated with this order"
+msgstr ""
+
+#: order/serializers.py:894
+msgid "No match found for the following serial numbers"
+msgstr ""
+
+#: order/serializers.py:904
+msgid "The following serial numbers are already allocated"
+msgstr ""
+
#: order/templates/order/delete_attachment.html:5
#: stock/templates/stock/attachment_delete.html:5
msgid "Are you sure you want to delete this attachment?"
@@ -3271,7 +3416,8 @@ msgstr ""
msgid "Receive Items"
msgstr ""
-#: order/templates/order/order_base.html:62 order/views.py:185
+#: order/templates/order/order_base.html:62
+#: order/templates/order/sales_order_base.html:67 order/views.py:181
msgid "Complete Order"
msgstr ""
@@ -3290,12 +3436,23 @@ msgstr ""
msgid "Order Status"
msgstr ""
-#: order/templates/order/order_base.html:137
+#: order/templates/order/order_base.html:124
+#: order/templates/order/sales_order_base.html:128
+msgid "Completed Line Items"
+msgstr ""
+
+#: order/templates/order/order_base.html:130
+#: order/templates/order/sales_order_base.html:134
+#: order/templates/order/sales_order_base.html:144
+msgid "Incomplete"
+msgstr ""
+
+#: order/templates/order/order_base.html:149
#: report/templates/report/inventree_build_order_base.html:122
msgid "Issued"
msgstr ""
-#: order/templates/order/order_base.html:207
+#: order/templates/order/order_base.html:219
msgid "Edit Purchase Order"
msgstr ""
@@ -3371,8 +3528,9 @@ msgstr ""
#: part/templates/part/import_wizard/ajax_match_references.html:42
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
-#: templates/js/translated/build.js:240 templates/js/translated/build.js:1251
-#: templates/js/translated/order.js:377
+#: templates/js/translated/build.js:245 templates/js/translated/build.js:1256
+#: templates/js/translated/order.js:537 templates/js/translated/order.js:1488
+#: templates/js/translated/stock.js:592
msgid "Remove row"
msgstr ""
@@ -3453,7 +3611,8 @@ msgid "Select existing purchase orders, or create new orders."
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:31
-#: templates/js/translated/order.js:694 templates/js/translated/order.js:1118
+#: templates/js/translated/order.js:859 templates/js/translated/order.js:1286
+#: templates/js/translated/order.js:1416
msgid "Items"
msgstr ""
@@ -3489,7 +3648,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:27
#: order/templates/order/purchase_order_detail.html:181
#: order/templates/order/sales_order_detail.html:23
-#: order/templates/order/sales_order_detail.html:157
+#: order/templates/order/sales_order_detail.html:244
msgid "Add Line Item"
msgstr ""
@@ -3502,7 +3661,7 @@ msgid "Received Items"
msgstr ""
#: order/templates/order/purchase_order_detail.html:76
-#: order/templates/order/sales_order_detail.html:68
+#: order/templates/order/sales_order_detail.html:123
msgid "Order Notes"
msgstr ""
@@ -3520,8 +3679,8 @@ msgid "Print packing list"
msgstr ""
#: order/templates/order/sales_order_base.html:66
-#: order/templates/order/sales_order_base.html:67 order/views.py:222
-msgid "Ship Order"
+#: order/templates/order/sales_order_base.html:229
+msgid "Complete Sales Order"
msgstr ""
#: order/templates/order/sales_order_base.html:102
@@ -3529,16 +3688,21 @@ msgid "This Sales Order has not been fully allocated"
msgstr ""
#: order/templates/order/sales_order_base.html:122
-#: templates/js/translated/order.js:1085
+#: templates/js/translated/order.js:1253
msgid "Customer Reference"
msgstr ""
-#: order/templates/order/sales_order_base.html:195
+#: order/templates/order/sales_order_base.html:140
+#: order/templates/order/sales_order_detail.html:78
+#: order/templates/order/so_sidebar.html:11
+msgid "Completed Shipments"
+msgstr ""
+
+#: order/templates/order/sales_order_base.html:215
msgid "Edit Sales Order"
msgstr ""
#: order/templates/order/sales_order_cancel.html:8
-#: order/templates/order/sales_order_ship.html:9
#: part/templates/part/bom_duplicate.html:12
#: stock/templates/stock/stockitem_convert.html:13
msgid "Warning"
@@ -3552,146 +3716,100 @@ msgstr ""
msgid "Sales Order Items"
msgstr ""
-#: order/templates/order/sales_order_ship.html:10
-msgid "This order has not been fully allocated. If the order is marked as shipped, it can no longer be adjusted."
+#: order/templates/order/sales_order_detail.html:44
+#: order/templates/order/so_sidebar.html:8
+msgid "Pending Shipments"
msgstr ""
-#: order/templates/order/sales_order_ship.html:12
-msgid "Ensure that the order allocation is correct before shipping the order."
+#: order/templates/order/sales_order_detail.html:48
+#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1188
+msgid "Actions"
msgstr ""
-#: order/templates/order/sales_order_ship.html:18
-msgid "Some line items in this order have been over-allocated"
+#: order/templates/order/sales_order_detail.html:57
+msgid "New Shipment"
msgstr ""
-#: order/templates/order/sales_order_ship.html:20
-msgid "Ensure that this is correct before shipping the order."
-msgstr ""
-
-#: order/templates/order/sales_order_ship.html:27
-msgid "Shipping this order means that the order will no longer be editable."
-msgstr ""
-
-#: order/templates/order/so_allocate_by_serial.html:9
-msgid "Allocate stock items by serial number"
-msgstr ""
-
-#: order/views.py:103
+#: order/views.py:99
msgid "Cancel Order"
msgstr ""
-#: order/views.py:112 order/views.py:138
+#: order/views.py:108 order/views.py:134
msgid "Confirm order cancellation"
msgstr ""
-#: order/views.py:115 order/views.py:141
+#: order/views.py:111 order/views.py:137
msgid "Order cannot be cancelled"
msgstr ""
-#: order/views.py:129
+#: order/views.py:125
msgid "Cancel sales order"
msgstr ""
-#: order/views.py:155
+#: order/views.py:151
msgid "Issue Order"
msgstr ""
-#: order/views.py:164
+#: order/views.py:160
msgid "Confirm order placement"
msgstr ""
-#: order/views.py:174
+#: order/views.py:170
msgid "Purchase order issued"
msgstr ""
-#: order/views.py:201
+#: order/views.py:197
msgid "Confirm order completion"
msgstr ""
-#: order/views.py:212
+#: order/views.py:208
msgid "Purchase order completed"
msgstr ""
-#: order/views.py:238
-msgid "Confirm order shipment"
-msgstr ""
-
-#: order/views.py:244
-msgid "Could not ship order"
-msgstr ""
-
-#: order/views.py:291
+#: order/views.py:245
msgid "Match Supplier Parts"
msgstr ""
-#: order/views.py:535
+#: order/views.py:489
msgid "Update prices"
msgstr ""
-#: order/views.py:793
+#: order/views.py:747
#, python-brace-format
msgid "Ordered {n} parts"
msgstr ""
-#: order/views.py:846
-msgid "Allocate Serial Numbers"
-msgstr ""
-
-#: order/views.py:891
-#, python-brace-format
-msgid "Allocated {n} items"
-msgstr ""
-
-#: order/views.py:907
-msgid "Select line item"
-msgstr ""
-
-#: order/views.py:938
-#, python-brace-format
-msgid "No matching item for serial {serial}"
-msgstr ""
-
-#: order/views.py:948
-#, python-brace-format
-msgid "{serial} is not in stock"
-msgstr ""
-
-#: order/views.py:956
-#, python-brace-format
-msgid "{serial} already allocated to an order"
-msgstr ""
-
-#: order/views.py:1072
+#: order/views.py:858
msgid "Sales order not found"
msgstr ""
-#: order/views.py:1078
+#: order/views.py:864
msgid "Price not found"
msgstr ""
-#: order/views.py:1081
+#: order/views.py:867
#, python-brace-format
msgid "Updated {part} unit-price to {price}"
msgstr ""
-#: order/views.py:1086
+#: order/views.py:872
#, python-brace-format
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/api.py:758
+#: part/api.py:760
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:762
+#: part/api.py:764
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:777
+#: part/api.py:779
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:808 part/api.py:812 part/api.py:827 part/api.py:831
+#: part/api.py:810 part/api.py:814 part/api.py:829 part/api.py:833
msgid "This field is required"
msgstr ""
@@ -3828,8 +3946,8 @@ msgstr ""
#: part/templates/part/category.html:149
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:88
-#: templates/InvenTree/settings/sidebar.html:36
-#: templates/js/translated/part.js:1597 templates/navbar.html:19
+#: templates/InvenTree/settings/sidebar.html:37
+#: templates/js/translated/part.js:1597 templates/navbar.html:21
#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
msgid "Parts"
msgstr ""
@@ -3895,7 +4013,7 @@ msgstr ""
#: part/models.py:778 part/models.py:2223 part/models.py:2472
#: part/templates/part/part_base.html:265
#: part/templates/part/set_category.html:15
-#: templates/InvenTree/settings/settings.html:163
+#: templates/InvenTree/settings/settings.html:172
#: templates/js/translated/part.js:1202
msgid "Category"
msgstr ""
@@ -3906,7 +4024,7 @@ msgstr ""
#: part/models.py:784 part/templates/part/part_base.html:274
#: templates/js/translated/part.js:557 templates/js/translated/part.js:1155
-#: templates/js/translated/stock.js:1216
+#: templates/js/translated/stock.js:1373
msgid "IPN"
msgstr ""
@@ -3975,10 +4093,11 @@ msgstr ""
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:915 templates/js/translated/table_filters.js:34
+#: part/models.py:915 plugin/models.py:45
+#: templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:96
-#: templates/js/translated/table_filters.js:290
-#: templates/js/translated/table_filters.js:368
+#: templates/js/translated/table_filters.js:295
+#: templates/js/translated/table_filters.js:399
msgid "Active"
msgstr ""
@@ -4027,7 +4146,7 @@ msgid "Test with this name already exists for this part"
msgstr ""
#: part/models.py:2310 templates/js/translated/part.js:1648
-#: templates/js/translated/stock.js:940
+#: templates/js/translated/stock.js:1097
msgid "Test Name"
msgstr ""
@@ -4044,7 +4163,7 @@ msgid "Enter description for this test"
msgstr ""
#: part/models.py:2322 templates/js/translated/part.js:1657
-#: templates/js/translated/table_filters.js:276
+#: templates/js/translated/table_filters.js:281
msgid "Required"
msgstr ""
@@ -4086,7 +4205,7 @@ msgid "Parameter Units"
msgstr ""
#: part/models.py:2429 part/models.py:2478 part/models.py:2479
-#: templates/InvenTree/settings/settings.html:158
+#: templates/InvenTree/settings/settings.html:167
msgid "Parameter Template"
msgstr ""
@@ -4098,7 +4217,7 @@ msgstr ""
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2483 templates/InvenTree/settings/settings.html:167
+#: part/models.py:2483 templates/InvenTree/settings/settings.html:176
msgid "Default Value"
msgstr ""
@@ -4175,7 +4294,7 @@ msgstr ""
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2686 stock/models.py:361
+#: part/models.py:2686 stock/models.py:355
msgid "Quantity must be integer value for trackable parts"
msgstr ""
@@ -4724,8 +4843,8 @@ msgstr ""
msgid "This part is a variant of %(link)s"
msgstr ""
-#: part/templates/part/part_base.html:190 templates/js/translated/order.js:1545
-#: templates/js/translated/table_filters.js:188
+#: part/templates/part/part_base.html:190 templates/js/translated/order.js:2217
+#: templates/js/translated/table_filters.js:193
msgid "In Stock"
msgstr ""
@@ -5099,6 +5218,78 @@ msgstr ""
msgid "Delete Internal Price Break"
msgstr ""
+#: plugin/integration.py:116
+msgid "No author found"
+msgstr ""
+
+#: plugin/integration.py:128
+msgid "No date found"
+msgstr ""
+
+#: plugin/models.py:25
+msgid "Plugin Configuration"
+msgstr ""
+
+#: plugin/models.py:26
+msgid "Plugin Configurations"
+msgstr ""
+
+#: plugin/models.py:31
+msgid "Key"
+msgstr ""
+
+#: plugin/models.py:32
+msgid "Key of plugin"
+msgstr ""
+
+#: plugin/models.py:40
+msgid "PluginName of the plugin"
+msgstr ""
+
+#: plugin/models.py:46
+msgid "Is the plugin active"
+msgstr ""
+
+#: plugin/samples/integration/sample.py:39
+msgid "Enable PO"
+msgstr ""
+
+#: plugin/samples/integration/sample.py:40
+msgid "Enable PO functionality in InvenTree interface"
+msgstr ""
+
+#: plugin/serializers.py:46
+msgid "Source URL"
+msgstr ""
+
+#: plugin/serializers.py:47
+msgid "Source for the package - this can be a custom registry or a VCS path"
+msgstr ""
+
+#: plugin/serializers.py:52
+msgid "Package Name"
+msgstr ""
+
+#: plugin/serializers.py:53
+msgid "Name for the Plugin Package - can also contain a version indicator"
+msgstr ""
+
+#: plugin/serializers.py:56
+msgid "Confirm plugin installation"
+msgstr ""
+
+#: plugin/serializers.py:57
+msgid "This will install this plugin now into the current instance. The instance will go into maintenance."
+msgstr ""
+
+#: plugin/serializers.py:72
+msgid "Installation not confirmed"
+msgstr ""
+
+#: plugin/serializers.py:74
+msgid "Either packagenmae of url must be provided"
+msgstr ""
+
#: report/api.py:234 report/api.py:278
#, python-brace-format
msgid "Template file '{filename}' is missing or does not exist"
@@ -5197,12 +5388,12 @@ msgid "Stock Item Test Report"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:520 stock/templates/stock/item_base.html:149
-#: templates/js/translated/build.js:233 templates/js/translated/build.js:637
-#: templates/js/translated/build.js:1013
+#: stock/models.py:514 stock/templates/stock/item_base.html:149
+#: templates/js/translated/build.js:238 templates/js/translated/build.js:642
+#: templates/js/translated/build.js:1018
#: templates/js/translated/model_renderers.js:95
-#: templates/js/translated/order.js:1287 templates/js/translated/order.js:1376
-#: templates/js/translated/stock.js:410
+#: templates/js/translated/order.js:99 templates/js/translated/order.js:1945
+#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:414
msgid "Serial Number"
msgstr ""
@@ -5211,17 +5402,19 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:93
-#: stock/models.py:1845
+#: stock/models.py:1833
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:94
-#: stock/models.py:1851
+#: stock/models.py:1839
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:97
-#: templates/js/translated/order.js:684 templates/js/translated/stock.js:1999
+#: templates/InvenTree/settings/plugin.html:49
+#: templates/InvenTree/settings/plugin_settings.html:38
+#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2174
msgid "Date"
msgstr ""
@@ -5239,302 +5432,318 @@ msgid "Installed Items"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
-#: templates/js/translated/stock.js:2259
+#: templates/js/translated/stock.js:577 templates/js/translated/stock.js:2434
msgid "Serial"
msgstr ""
-#: stock/api.py:422
+#: stock/api.py:446
msgid "Quantity is required"
msgstr ""
-#: stock/forms.py:91 stock/forms.py:265 stock/models.py:577
+#: stock/forms.py:77 stock/forms.py:251 stock/models.py:571
#: stock/templates/stock/item_base.html:186
-#: templates/js/translated/stock.js:1358
+#: templates/js/translated/stock.js:1522
msgid "Expiry Date"
msgstr ""
-#: stock/forms.py:92 stock/forms.py:266
+#: stock/forms.py:78 stock/forms.py:252
msgid "Expiration date for this stock item"
msgstr ""
-#: stock/forms.py:95
+#: stock/forms.py:81
msgid "Enter unique serial numbers (or leave blank)"
msgstr ""
-#: stock/forms.py:150
+#: stock/forms.py:136
msgid "Destination for serialized stock (by default, will remain in current location)"
msgstr ""
-#: stock/forms.py:152
+#: stock/forms.py:138
msgid "Serial numbers"
msgstr ""
-#: stock/forms.py:152
+#: stock/forms.py:138
msgid "Unique serial numbers (must match quantity)"
msgstr ""
-#: stock/forms.py:154 stock/forms.py:238
+#: stock/forms.py:140 stock/forms.py:224
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/forms.py:194
+#: stock/forms.py:180
msgid "Stock item to install"
msgstr ""
-#: stock/forms.py:224
+#: stock/forms.py:210
msgid "Must not exceed available quantity"
msgstr ""
-#: stock/forms.py:236
+#: stock/forms.py:222
msgid "Destination location for uninstalled items"
msgstr ""
-#: stock/forms.py:240
+#: stock/forms.py:226
msgid "Confirm uninstall"
msgstr ""
-#: stock/forms.py:240
+#: stock/forms.py:226
msgid "Confirm removal of installed stock items"
msgstr ""
-#: stock/models.py:60 stock/models.py:614
+#: stock/models.py:60 stock/models.py:608
#: stock/templates/stock/item_base.html:417
msgid "Owner"
msgstr ""
-#: stock/models.py:61 stock/models.py:615
+#: stock/models.py:61 stock/models.py:609
msgid "Select Owner"
msgstr ""
-#: stock/models.py:342
+#: stock/models.py:336
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:378
+#: stock/models.py:372
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:388 stock/models.py:397
+#: stock/models.py:382 stock/models.py:391
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:389
+#: stock/models.py:383
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:411
+#: stock/models.py:405
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:417
+#: stock/models.py:411
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:424
+#: stock/models.py:418
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:466
+#: stock/models.py:460
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:475
+#: stock/models.py:469
msgid "Base part"
msgstr ""
-#: stock/models.py:483
+#: stock/models.py:477
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:488 stock/templates/stock/location.html:12
+#: stock/models.py:482 stock/templates/stock/location.html:12
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:491
+#: stock/models.py:485
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:498
+#: stock/models.py:492
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:503 stock/templates/stock/item_base.html:299
+#: stock/models.py:497 stock/templates/stock/item_base.html:299
msgid "Installed In"
msgstr ""
-#: stock/models.py:506
+#: stock/models.py:500
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:522
+#: stock/models.py:516
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:536
+#: stock/models.py:530
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:540
+#: stock/models.py:534
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:549
+#: stock/models.py:543
msgid "Source Build"
msgstr ""
-#: stock/models.py:551
+#: stock/models.py:545
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:562
+#: stock/models.py:556
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:565
+#: stock/models.py:559
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:571
+#: stock/models.py:565
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:578
+#: stock/models.py:572
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:591
+#: stock/models.py:585
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:591
+#: stock/models.py:585
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:601 stock/templates/stock/item.html:111
+#: stock/models.py:595 stock/templates/stock/item.html:111
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:610
+#: stock/models.py:604
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:620
-msgid "Scheduled for deletion"
-msgstr ""
-
-#: stock/models.py:621
-msgid "This StockItem will be deleted by the background worker"
-msgstr ""
-
-#: stock/models.py:1084
+#: stock/models.py:1072
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1090
+#: stock/models.py:1078
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1096
+#: stock/models.py:1084
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1099
+#: stock/models.py:1087
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1102
+#: stock/models.py:1090
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1109
+#: stock/models.py:1097
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1267
+#: stock/models.py:1255
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1765
+#: stock/models.py:1753
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1822
+#: stock/models.py:1810
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1828
+#: stock/models.py:1816
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1846
+#: stock/models.py:1834
msgid "Test name"
msgstr ""
-#: stock/models.py:1852 templates/js/translated/table_filters.js:266
+#: stock/models.py:1840 templates/js/translated/table_filters.js:271
msgid "Test result"
msgstr ""
-#: stock/models.py:1858
+#: stock/models.py:1846
msgid "Test output value"
msgstr ""
-#: stock/models.py:1865
+#: stock/models.py:1853
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1871
+#: stock/models.py:1859
msgid "Test notes"
msgstr ""
-#: stock/serializers.py:171
+#: stock/serializers.py:173
msgid "Purchase price of this stock item"
msgstr ""
-#: stock/serializers.py:178
+#: stock/serializers.py:180
msgid "Purchase currency of this stock item"
msgstr ""
-#: stock/serializers.py:292
+#: stock/serializers.py:294
msgid "Enter number of stock items to serialize"
msgstr ""
-#: stock/serializers.py:307
+#: stock/serializers.py:309
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:313
+#: stock/serializers.py:315
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:324 stock/serializers.py:691
+#: stock/serializers.py:326 stock/serializers.py:814
msgid "Destination stock location"
msgstr ""
-#: stock/serializers.py:331
+#: stock/serializers.py:333
msgid "Optional note field"
msgstr ""
-#: stock/serializers.py:344
+#: stock/serializers.py:346
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:561
+#: stock/serializers.py:573
+msgid "Part must be salable"
+msgstr ""
+
+#: stock/serializers.py:577
+msgid "Item is allocated to a sales order"
+msgstr ""
+
+#: stock/serializers.py:581
+msgid "Item is allocated to a build order"
+msgstr ""
+
+#: stock/serializers.py:611
+msgid "Customer to assign stock items"
+msgstr ""
+
+#: stock/serializers.py:617
+msgid "Selected company is not a customer"
+msgstr ""
+
+#: stock/serializers.py:625
+msgid "Stock assignment notes"
+msgstr ""
+
+#: stock/serializers.py:635 stock/serializers.py:722
+msgid "A list of stock items must be provided"
+msgstr ""
+
+#: stock/serializers.py:684
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:589
+#: stock/serializers.py:712
msgid "Stock transaction notes"
msgstr ""
-#: stock/serializers.py:599
-msgid "A list of stock items must be provided"
-msgstr ""
-
#: stock/templates/stock/item.html:18
msgid "Stock Tracking Information"
msgstr ""
@@ -5572,7 +5781,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:137 stock/views.py:515
+#: stock/templates/stock/item.html:137 stock/views.py:482
msgid "Install Stock Item"
msgstr ""
@@ -5632,7 +5841,7 @@ msgstr ""
msgid "Transfer stock"
msgstr ""
-#: stock/templates/stock/item_base.html:85
+#: stock/templates/stock/item_base.html:85 templates/stock_table.html:53
msgid "Assign to customer"
msgstr ""
@@ -5694,7 +5903,7 @@ msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:190
-#: templates/js/translated/table_filters.js:247
+#: templates/js/translated/table_filters.js:252
msgid "Expired"
msgstr ""
@@ -5704,12 +5913,12 @@ msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:192
-#: templates/js/translated/table_filters.js:253
+#: templates/js/translated/table_filters.js:258
msgid "Stale"
msgstr ""
#: stock/templates/stock/item_base.html:199
-#: templates/js/translated/stock.js:1371
+#: templates/js/translated/stock.js:1535
msgid "Last Updated"
msgstr ""
@@ -5738,13 +5947,11 @@ msgid "This stock item has not passed all required tests"
msgstr ""
#: stock/templates/stock/item_base.html:255
-#, python-format
-msgid "This stock item is allocated to Sales Order %(link)s (Quantity: %(qty)s)"
+msgid "This stock item is allocated to Sales Order"
msgstr ""
#: stock/templates/stock/item_base.html:263
-#, python-format
-msgid "This stock item is allocated to Build %(link)s (Quantity: %(qty)s)"
+msgid "This stock item is allocated to Build Order"
msgstr ""
#: stock/templates/stock/item_base.html:269
@@ -5760,7 +5967,7 @@ msgid "This stock item will be automatically deleted when all stock is depleted.
msgstr ""
#: stock/templates/stock/item_base.html:318
-#: templates/js/translated/build.js:1035
+#: templates/js/translated/build.js:1040
msgid "No location set"
msgstr ""
@@ -5910,7 +6117,7 @@ msgstr ""
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:912
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:879
msgid "Convert Stock Item"
msgstr ""
@@ -5935,8 +6142,7 @@ msgstr ""
msgid "Edit Stock Location"
msgstr ""
-#: stock/views.py:269 stock/views.py:891 stock/views.py:1017
-#: stock/views.py:1299
+#: stock/views.py:269 stock/views.py:858 stock/views.py:984 stock/views.py:1266
msgid "Owner is required (ownership control is enabled)"
msgstr ""
@@ -5945,86 +6151,78 @@ msgid "Stock Location QR code"
msgstr ""
#: stock/views.py:303
-msgid "Assign to Customer"
-msgstr ""
-
-#: stock/views.py:312
-msgid "Customer must be specified"
-msgstr ""
-
-#: stock/views.py:336
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:345
+#: stock/views.py:312
msgid "Specify a valid location"
msgstr ""
-#: stock/views.py:356
+#: stock/views.py:323
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:367
+#: stock/views.py:334
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:384
+#: stock/views.py:351
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:489
+#: stock/views.py:456
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:663
+#: stock/views.py:630
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:760 templates/js/translated/stock.js:730
+#: stock/views.py:727 templates/js/translated/stock.js:887
msgid "Confirm stock adjustment"
msgstr ""
-#: stock/views.py:771
+#: stock/views.py:738
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:793 templates/js/translated/stock.js:319
+#: stock/views.py:760 templates/js/translated/stock.js:323
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:943
+#: stock/views.py:910
msgid "Create new Stock Location"
msgstr ""
-#: stock/views.py:1044
+#: stock/views.py:1011
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1186 templates/js/translated/stock.js:299
+#: stock/views.py:1153 templates/js/translated/stock.js:303
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1268
+#: stock/views.py:1235
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1368
+#: stock/views.py:1335
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:1381
+#: stock/views.py:1348
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1392
+#: stock/views.py:1359
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1399
+#: stock/views.py:1366
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1408
+#: stock/views.py:1375
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -6044,6 +6242,14 @@ msgstr ""
msgid "The requested page does not exist"
msgstr ""
+#: templates/503.html:10 templates/503.html:35
+msgid "Site is in Maintenance"
+msgstr ""
+
+#: templates/503.html:41
+msgid "The site is currently in maintenance and should be up again soon!"
+msgstr ""
+
#: templates/InvenTree/index.html:7
msgid "Index"
msgstr ""
@@ -6153,7 +6359,7 @@ msgid "Server Settings"
msgstr ""
#: templates/InvenTree/settings/login.html:9
-#: templates/InvenTree/settings/sidebar.html:28
+#: templates/InvenTree/settings/sidebar.html:29
msgid "Login Settings"
msgstr ""
@@ -6161,6 +6367,24 @@ msgstr ""
msgid "Signup"
msgstr ""
+#: templates/InvenTree/settings/mixins/settings.html:4
+#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:118
+msgid "Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/mixins/urls.html:4
+msgid "URLs"
+msgstr ""
+
+#: templates/InvenTree/settings/mixins/urls.html:6
+#, python-format
+msgid "The Base-URL for this plugin is %(base)s."
+msgstr ""
+
+#: templates/InvenTree/settings/mixins/urls.html:21
+msgid "open in new tab"
+msgstr ""
+
#: templates/InvenTree/settings/part.html:7
msgid "Part Settings"
msgstr ""
@@ -6177,6 +6401,126 @@ msgstr ""
msgid "Part Parameter Templates"
msgstr ""
+#: templates/InvenTree/settings/plugin.html:10
+msgid "Plugin Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:16
+msgid "Changing the settings below require you to immediatly restart InvenTree. Do not change this while under active usage."
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:32
+msgid "Plugin list"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:37
+#: templates/js/translated/plugin.js:15
+msgid "Install Plugin"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:46 templates/navbar.html:111
+#: users/models.py:39
+msgid "Admin"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:48
+#: templates/InvenTree/settings/plugin_settings.html:28
+msgid "Author"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:50
+#: templates/InvenTree/settings/plugin_settings.html:43
+msgid "Version"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:73
+#, python-format
+msgid "has %(name)s"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:91
+msgid "Inactive plugins"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:114
+msgid "Plugin Error Stack"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:123
+msgid "Stage"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:125
+msgid "Message"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:10
+#, python-format
+msgid "Plugin details for %(name)s"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:17
+msgid "Plugin information"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:48
+msgid "no version information supplied"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:62
+msgid "License"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:70
+msgid "The code information is pulled from the latest git commit for this plugin. It might not reflect official version numbers or information but the actual code running."
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:74
+msgid "Package information"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:80
+msgid "Installation method"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:83
+msgid "This plugin was installed as a package"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:85
+msgid "This plugin was found in a local InvenTree path"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:91
+msgid "Installation path"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:97
+msgid "Commit Author"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:101
+#: templates/about.html:47
+msgid "Commit Date"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:105
+#: templates/about.html:40
+msgid "Commit Hash"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:109
+msgid "Commit Message"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:114
+msgid "Sign Status"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:119
+msgid "Sign Key"
+msgstr ""
+
#: templates/InvenTree/settings/po.html:7
msgid "Purchase Order Settings"
msgstr ""
@@ -6194,86 +6538,82 @@ msgstr ""
msgid "Edit setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:11 templates/navbar.html:93
-msgid "Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/settings.html:65
+#: templates/InvenTree/settings/settings.html:74
msgid "Edit Global Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:65
+#: templates/InvenTree/settings/settings.html:74
msgid "Edit User Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:148
+#: templates/InvenTree/settings/settings.html:157
msgid "No category parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:170
-#: templates/InvenTree/settings/settings.html:269
+#: templates/InvenTree/settings/settings.html:179
+#: templates/InvenTree/settings/settings.html:278
msgid "Edit Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:171
-#: templates/InvenTree/settings/settings.html:270
+#: templates/InvenTree/settings/settings.html:180
+#: templates/InvenTree/settings/settings.html:279
msgid "Delete Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:249
+#: templates/InvenTree/settings/settings.html:258
msgid "No part parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:253
+#: templates/InvenTree/settings/settings.html:262
msgid "ID"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:5
+#: templates/InvenTree/settings/sidebar.html:6
#: templates/InvenTree/settings/user_settings.html:9
msgid "User Settings"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:8
+#: templates/InvenTree/settings/sidebar.html:9
#: templates/InvenTree/settings/user.html:12
msgid "Account Settings"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:10
+#: templates/InvenTree/settings/sidebar.html:11
#: templates/InvenTree/settings/user_display.html:9
msgid "Display Settings"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:12
+#: templates/InvenTree/settings/sidebar.html:13
msgid "Home Page"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:14
+#: templates/InvenTree/settings/sidebar.html:15
#: templates/InvenTree/settings/user_search.html:9
msgid "Search Settings"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:16
+#: templates/InvenTree/settings/sidebar.html:17
msgid "Label Printing"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:18
-#: templates/InvenTree/settings/sidebar.html:34
+#: templates/InvenTree/settings/sidebar.html:19
+#: templates/InvenTree/settings/sidebar.html:35
msgid "Reporting"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:23
+#: templates/InvenTree/settings/sidebar.html:24
msgid "Global Settings"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:26
+#: templates/InvenTree/settings/sidebar.html:27
msgid "Server Configuration"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:32
+#: templates/InvenTree/settings/sidebar.html:33
msgid "Currencies"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:38
+#: templates/InvenTree/settings/sidebar.html:39
msgid "Categories"
msgstr ""
@@ -6491,8 +6831,8 @@ msgstr ""
#: templates/about.html:11 templates/about.html:105
#: templates/js/translated/bom.js:283 templates/js/translated/modals.js:53
-#: templates/js/translated/modals.js:567 templates/js/translated/modals.js:661
-#: templates/js/translated/modals.js:964 templates/modals.html:15
+#: templates/js/translated/modals.js:568 templates/js/translated/modals.js:662
+#: templates/js/translated/modals.js:965 templates/modals.html:15
#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
msgid "Close"
msgstr ""
@@ -6513,14 +6853,6 @@ msgstr ""
msgid "Update Available"
msgstr ""
-#: templates/about.html:40
-msgid "Commit Hash"
-msgstr ""
-
-#: templates/about.html:47
-msgid "Commit Date"
-msgstr ""
-
#: templates/about.html:53
msgid "InvenTree Documentation"
msgstr ""
@@ -6718,8 +7050,9 @@ msgstr ""
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1129
-#: templates/js/translated/build.js:1749
+#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1134
+#: templates/js/translated/build.js:1755
+#: templates/js/translated/table_filters.js:178
msgid "Available"
msgstr ""
@@ -6765,11 +7098,11 @@ msgstr ""
msgid "Remote image must not exceed maximum allowable file size"
msgstr ""
-#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1034
+#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1035
msgid "No Response"
msgstr ""
-#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1035
+#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1036
msgid "No response from the InvenTree server"
msgstr ""
@@ -6781,35 +7114,35 @@ msgstr ""
msgid "API request returned error code 400"
msgstr ""
-#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1044
+#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1045
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1045
+#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1046
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1049
+#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1050
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1050
+#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1051
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1054
+#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1055
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1055
+#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1056
msgid "The requested resource could not be located on the server"
msgstr ""
-#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1059
+#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1060
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1060
+#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1061
msgid "Connection timeout while requesting data from server"
msgstr ""
@@ -6878,7 +7211,7 @@ msgid "Unknown response from server"
msgstr ""
#: templates/js/translated/barcode.js:140
-#: templates/js/translated/modals.js:1024
+#: templates/js/translated/modals.js:1025
msgid "Invalid server response"
msgstr ""
@@ -6886,7 +7219,7 @@ msgstr ""
msgid "Scan barcode data below"
msgstr ""
-#: templates/js/translated/barcode.js:280 templates/navbar.html:69
+#: templates/js/translated/barcode.js:280 templates/navbar.html:94
msgid "Scan Barcode"
msgstr ""
@@ -6906,7 +7239,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:682
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:839
msgid "Remove stock item"
msgstr ""
@@ -6976,7 +7309,7 @@ msgstr ""
msgid "Substitutes Available"
msgstr ""
-#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1111
+#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1116
msgid "Variant stock allowed"
msgstr ""
@@ -7000,11 +7333,6 @@ msgstr ""
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1183
-#: templates/js/translated/order.js:1319
-msgid "Actions"
-msgstr ""
-
#: templates/js/translated/bom.js:616
msgid "Validate BOM Item"
msgstr ""
@@ -7025,7 +7353,7 @@ msgstr ""
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:718 templates/js/translated/build.js:855
+#: templates/js/translated/bom.js:718 templates/js/translated/build.js:860
msgid "No BOM items found"
msgstr ""
@@ -7033,7 +7361,7 @@ msgstr ""
msgid "Are you sure you want to delete this BOM item?"
msgstr ""
-#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1095
+#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1100
msgid "Required Part"
msgstr ""
@@ -7041,165 +7369,165 @@ msgstr ""
msgid "Inherited from parent BOM"
msgstr ""
-#: templates/js/translated/build.js:78
+#: templates/js/translated/build.js:83
msgid "Edit Build Order"
msgstr ""
-#: templates/js/translated/build.js:112
+#: templates/js/translated/build.js:117
msgid "Create Build Order"
msgstr ""
-#: templates/js/translated/build.js:133
+#: templates/js/translated/build.js:138
msgid "Allocate stock items to this build output"
msgstr ""
-#: templates/js/translated/build.js:144
+#: templates/js/translated/build.js:149
msgid "Unallocate stock from build output"
msgstr ""
-#: templates/js/translated/build.js:153
+#: templates/js/translated/build.js:158
msgid "Complete build output"
msgstr ""
-#: templates/js/translated/build.js:161
+#: templates/js/translated/build.js:166
msgid "Delete build output"
msgstr ""
-#: templates/js/translated/build.js:184
+#: templates/js/translated/build.js:189
msgid "Are you sure you wish to unallocate stock items from this build?"
msgstr ""
-#: templates/js/translated/build.js:202
+#: templates/js/translated/build.js:207
msgid "Unallocate Stock Items"
msgstr ""
-#: templates/js/translated/build.js:220
+#: templates/js/translated/build.js:225
msgid "Select Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:221
+#: templates/js/translated/build.js:226
msgid "At least one build output must be selected"
msgstr ""
-#: templates/js/translated/build.js:275
+#: templates/js/translated/build.js:280
msgid "Output"
msgstr ""
-#: templates/js/translated/build.js:291
+#: templates/js/translated/build.js:296
msgid "Complete Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:386
+#: templates/js/translated/build.js:391
msgid "No build order allocations found"
msgstr ""
-#: templates/js/translated/build.js:424 templates/js/translated/order.js:1193
+#: templates/js/translated/build.js:429 templates/js/translated/order.js:1848
msgid "Location not specified"
msgstr ""
-#: templates/js/translated/build.js:603
+#: templates/js/translated/build.js:608
msgid "No active build outputs found"
msgstr ""
-#: templates/js/translated/build.js:1052 templates/js/translated/build.js:1760
-#: templates/js/translated/order.js:1326
+#: templates/js/translated/build.js:1057 templates/js/translated/build.js:1766
+#: templates/js/translated/order.js:1982
msgid "Edit stock allocation"
msgstr ""
-#: templates/js/translated/build.js:1054 templates/js/translated/build.js:1761
-#: templates/js/translated/order.js:1327
+#: templates/js/translated/build.js:1059 templates/js/translated/build.js:1767
+#: templates/js/translated/order.js:1983
msgid "Delete stock allocation"
msgstr ""
-#: templates/js/translated/build.js:1072
+#: templates/js/translated/build.js:1077
msgid "Edit Allocation"
msgstr ""
-#: templates/js/translated/build.js:1082
+#: templates/js/translated/build.js:1087
msgid "Remove Allocation"
msgstr ""
-#: templates/js/translated/build.js:1107
+#: templates/js/translated/build.js:1112
msgid "Substitute parts available"
msgstr ""
-#: templates/js/translated/build.js:1124
+#: templates/js/translated/build.js:1129
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:1134 templates/js/translated/build.js:1360
-#: templates/js/translated/build.js:1756 templates/js/translated/order.js:1556
+#: templates/js/translated/build.js:1139 templates/js/translated/build.js:1365
+#: templates/js/translated/build.js:1762 templates/js/translated/order.js:2227
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:1190 templates/js/translated/order.js:1610
+#: templates/js/translated/build.js:1195 templates/js/translated/order.js:2307
msgid "Build stock"
msgstr ""
-#: templates/js/translated/build.js:1194 templates/stock_table.html:52
+#: templates/js/translated/build.js:1199 templates/stock_table.html:52
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:1197 templates/js/translated/order.js:1603
+#: templates/js/translated/build.js:1202 templates/js/translated/order.js:2300
msgid "Allocate stock"
msgstr ""
-#: templates/js/translated/build.js:1262
+#: templates/js/translated/build.js:1267 templates/js/translated/order.js:1499
msgid "Specify stock allocation quantity"
msgstr ""
-#: templates/js/translated/build.js:1333 templates/js/translated/label.js:134
-#: templates/js/translated/report.js:225
+#: templates/js/translated/build.js:1338 templates/js/translated/label.js:134
+#: templates/js/translated/order.js:1550 templates/js/translated/report.js:225
msgid "Select Parts"
msgstr ""
-#: templates/js/translated/build.js:1334
+#: templates/js/translated/build.js:1339 templates/js/translated/order.js:1551
msgid "You must select at least one part to allocate"
msgstr ""
-#: templates/js/translated/build.js:1348
+#: templates/js/translated/build.js:1353 templates/js/translated/order.js:1565
msgid "Select source location (leave blank to take from all locations)"
msgstr ""
-#: templates/js/translated/build.js:1377
+#: templates/js/translated/build.js:1382 templates/js/translated/order.js:1600
msgid "Confirm stock allocation"
msgstr "Подтвердите выделение запасов"
-#: templates/js/translated/build.js:1378
+#: templates/js/translated/build.js:1383
msgid "Allocate Stock Items to Build Order"
msgstr ""
-#: templates/js/translated/build.js:1389
+#: templates/js/translated/build.js:1394 templates/js/translated/order.js:1613
msgid "No matching stock locations"
msgstr ""
-#: templates/js/translated/build.js:1451
+#: templates/js/translated/build.js:1464 templates/js/translated/order.js:1690
msgid "No matching stock items"
msgstr ""
-#: templates/js/translated/build.js:1576
+#: templates/js/translated/build.js:1582
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:1593 templates/js/translated/part.js:1147
-#: templates/js/translated/part.js:1558 templates/js/translated/stock.js:1176
-#: templates/js/translated/stock.js:1953
+#: templates/js/translated/build.js:1599 templates/js/translated/part.js:1147
+#: templates/js/translated/part.js:1558 templates/js/translated/stock.js:1333
+#: templates/js/translated/stock.js:2128
msgid "Select"
msgstr ""
-#: templates/js/translated/build.js:1613
+#: templates/js/translated/build.js:1619
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1674 templates/js/translated/stock.js:2172
+#: templates/js/translated/build.js:1680 templates/js/translated/stock.js:2347
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:1686
+#: templates/js/translated/build.js:1692
msgid "No information"
msgstr ""
-#: templates/js/translated/build.js:1737
+#: templates/js/translated/build.js:1743
msgid "No parts allocated for"
msgstr ""
@@ -7219,7 +7547,7 @@ msgstr ""
msgid "Delete Manufacturer Part"
msgstr ""
-#: templates/js/translated/company.js:165 templates/js/translated/order.js:90
+#: templates/js/translated/company.js:165 templates/js/translated/order.js:248
msgid "Add Supplier"
msgstr ""
@@ -7354,20 +7682,20 @@ msgstr ""
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1072 templates/modals.html:19
+#: templates/js/translated/forms.js:1078 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1463
+#: templates/js/translated/forms.js:1469
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1667
+#: templates/js/translated/forms.js:1673
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1884
+#: templates/js/translated/forms.js:1893
msgid "Clear input"
msgstr ""
@@ -7380,7 +7708,7 @@ msgid "NO"
msgstr ""
#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:706
+#: templates/js/translated/stock.js:863
msgid "Select Stock Items"
msgstr ""
@@ -7429,62 +7757,62 @@ msgstr ""
msgid "Select Label Template"
msgstr ""
-#: templates/js/translated/modals.js:75 templates/js/translated/modals.js:119
-#: templates/js/translated/modals.js:593
+#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:120
+#: templates/js/translated/modals.js:594
msgid "Cancel"
msgstr ""
-#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:118
-#: templates/js/translated/modals.js:660 templates/js/translated/modals.js:963
+#: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119
+#: templates/js/translated/modals.js:661 templates/js/translated/modals.js:964
#: templates/modals.html:28 templates/modals.html:51
msgid "Submit"
msgstr ""
-#: templates/js/translated/modals.js:117
+#: templates/js/translated/modals.js:118
msgid "Form Title"
msgstr ""
-#: templates/js/translated/modals.js:380
+#: templates/js/translated/modals.js:381
msgid "Waiting for server..."
msgstr ""
-#: templates/js/translated/modals.js:539
+#: templates/js/translated/modals.js:540
msgid "Show Error Information"
msgstr ""
-#: templates/js/translated/modals.js:592
+#: templates/js/translated/modals.js:593
msgid "Accept"
msgstr ""
-#: templates/js/translated/modals.js:649
+#: templates/js/translated/modals.js:650
msgid "Loading Data"
msgstr ""
-#: templates/js/translated/modals.js:915
+#: templates/js/translated/modals.js:916
msgid "Invalid response from server"
msgstr ""
-#: templates/js/translated/modals.js:915
+#: templates/js/translated/modals.js:916
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/translated/modals.js:927
+#: templates/js/translated/modals.js:928
msgid "Error posting form data"
msgstr ""
-#: templates/js/translated/modals.js:1024
+#: templates/js/translated/modals.js:1025
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/translated/modals.js:1039
+#: templates/js/translated/modals.js:1040
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/translated/modals.js:1040
+#: templates/js/translated/modals.js:1041
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/translated/modals.js:1063
+#: templates/js/translated/modals.js:1064
msgid "Error requesting form data"
msgstr ""
@@ -7512,176 +7840,245 @@ msgstr ""
msgid "Order ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:256
+#: templates/js/translated/model_renderers.js:253
+msgid "Shipment ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:273
msgid "Category ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:293
+#: templates/js/translated/model_renderers.js:310
msgid "Manufacturer Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:322
+#: templates/js/translated/model_renderers.js:339
msgid "Supplier Part ID"
msgstr ""
-#: templates/js/translated/order.js:48
+#: templates/js/translated/order.js:75
+msgid "No stock items have been allocated to this shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:80
+msgid "The following stock items will be shipped"
+msgstr ""
+
+#: templates/js/translated/order.js:120
+msgid "Complete Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:126
+msgid "Confirm Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:181
+msgid "Create New Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:206
msgid "Add Customer"
msgstr ""
-#: templates/js/translated/order.js:73
+#: templates/js/translated/order.js:231
msgid "Create Sales Order"
msgstr ""
-#: templates/js/translated/order.js:208
+#: templates/js/translated/order.js:366
msgid "Export Order"
msgstr ""
-#: templates/js/translated/order.js:211 templates/js/translated/stock.js:505
+#: templates/js/translated/order.js:369 templates/js/translated/stock.js:509
msgid "Format"
msgstr ""
-#: templates/js/translated/order.js:212 templates/js/translated/stock.js:506
+#: templates/js/translated/order.js:370 templates/js/translated/stock.js:510
msgid "Select file format"
msgstr ""
-#: templates/js/translated/order.js:300
+#: templates/js/translated/order.js:460
msgid "Select Line Items"
msgstr ""
-#: templates/js/translated/order.js:301
+#: templates/js/translated/order.js:461
msgid "At least one line item must be selected"
msgstr ""
-#: templates/js/translated/order.js:326
+#: templates/js/translated/order.js:486
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:360 templates/js/translated/stock.js:1755
+#: templates/js/translated/order.js:520 templates/js/translated/stock.js:1930
msgid "Stock Status"
msgstr ""
-#: templates/js/translated/order.js:427
+#: templates/js/translated/order.js:587
msgid "Order Code"
msgstr ""
-#: templates/js/translated/order.js:428
+#: templates/js/translated/order.js:588
msgid "Ordered"
msgstr ""
-#: templates/js/translated/order.js:430
+#: templates/js/translated/order.js:590
msgid "Receive"
msgstr ""
-#: templates/js/translated/order.js:449
+#: templates/js/translated/order.js:609
msgid "Confirm receipt of items"
msgstr ""
-#: templates/js/translated/order.js:450
+#: templates/js/translated/order.js:610
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:627 templates/js/translated/part.js:746
+#: templates/js/translated/order.js:790 templates/js/translated/part.js:746
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:659 templates/js/translated/order.js:1062
+#: templates/js/translated/order.js:815 templates/js/translated/order.js:1230
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:771 templates/js/translated/order.js:1645
+#: templates/js/translated/order.js:936 templates/js/translated/order.js:2356
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:783 templates/js/translated/order.js:1656
+#: templates/js/translated/order.js:948 templates/js/translated/order.js:2367
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/order.js:822
+#: templates/js/translated/order.js:987
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:849 templates/js/translated/order.js:1466
+#: templates/js/translated/order.js:1014 templates/js/translated/order.js:2138
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:903 templates/js/translated/order.js:1491
+#: templates/js/translated/order.js:1068 templates/js/translated/order.js:2163
#: templates/js/translated/part.js:1775 templates/js/translated/part.js:1986
msgid "Unit Price"
msgstr ""
-#: templates/js/translated/order.js:918 templates/js/translated/order.js:1507
+#: templates/js/translated/order.js:1083 templates/js/translated/order.js:2179
msgid "Total Price"
msgstr ""
-#: templates/js/translated/order.js:996 templates/js/translated/order.js:1616
+#: templates/js/translated/order.js:1161 templates/js/translated/order.js:2313
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:997
+#: templates/js/translated/order.js:1162 templates/js/translated/order.js:2317
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:1001 templates/js/translated/part.js:878
+#: templates/js/translated/order.js:1166 templates/js/translated/part.js:878
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:1038
+#: templates/js/translated/order.js:1206
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:1076
+#: templates/js/translated/order.js:1244
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:1154
+#: templates/js/translated/order.js:1322
+msgid "Edit shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1325
+msgid "Complete shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1330
+msgid "Delete shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1350
+msgid "Edit Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1367
+msgid "Delete Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1401
+msgid "No matching shipments found"
+msgstr ""
+
+#: templates/js/translated/order.js:1411
+msgid "Shipment Reference"
+msgstr ""
+
+#: templates/js/translated/order.js:1435
+msgid "Not shipped"
+msgstr ""
+
+#: templates/js/translated/order.js:1441
+msgid "Tracking"
+msgstr ""
+
+#: templates/js/translated/order.js:1601
+msgid "Allocate Stock Items to Sales Order"
+msgstr ""
+
+#: templates/js/translated/order.js:1809
msgid "No sales order allocations found"
msgstr ""
-#: templates/js/translated/order.js:1247
+#: templates/js/translated/order.js:1898
msgid "Edit Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1264
+#: templates/js/translated/order.js:1915
msgid "Confirm Delete Operation"
msgstr ""
-#: templates/js/translated/order.js:1265
+#: templates/js/translated/order.js:1916
msgid "Delete Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1307
+#: templates/js/translated/order.js:1959 templates/js/translated/order.js:2048
+#: templates/js/translated/stock.js:1249
+msgid "Shipped to customer"
+msgstr ""
+
+#: templates/js/translated/order.js:1967 templates/js/translated/order.js:2057
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:1556
-msgid "Fulfilled"
-msgstr ""
-
-#: templates/js/translated/order.js:1600
+#: templates/js/translated/order.js:2297
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:1606
+#: templates/js/translated/order.js:2303
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:1613 templates/js/translated/order.js:1792
+#: templates/js/translated/order.js:2310 templates/js/translated/order.js:2476
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:1617
-msgid "Delete line item "
+#: templates/js/translated/order.js:2321
+msgid "Cannot be deleted as items have been shipped"
msgstr ""
-#: templates/js/translated/order.js:1740
-msgid "Allocate Stock Item"
+#: templates/js/translated/order.js:2324
+msgid "Cannot be deleted as items have been allocated"
msgstr ""
-#: templates/js/translated/order.js:1800
+#: templates/js/translated/order.js:2382
+msgid "Allocate Serial Numbers"
+msgstr ""
+
+#: templates/js/translated/order.js:2484
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:1814
+#: templates/js/translated/order.js:2498
msgid "No matching line items"
msgstr ""
@@ -7826,12 +8223,12 @@ msgid "No category"
msgstr ""
#: templates/js/translated/part.js:1230
-#: templates/js/translated/table_filters.js:381
+#: templates/js/translated/table_filters.js:412
msgid "Low stock"
msgstr ""
#: templates/js/translated/part.js:1321 templates/js/translated/part.js:1493
-#: templates/js/translated/stock.js:1914
+#: templates/js/translated/stock.js:2089
msgid "Display as list"
msgstr ""
@@ -7839,7 +8236,7 @@ msgstr ""
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1512 templates/js/translated/stock.js:1933
+#: templates/js/translated/part.js:1512 templates/js/translated/stock.js:2108
msgid "Display as tree"
msgstr ""
@@ -7847,7 +8244,7 @@ msgstr ""
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:1590 templates/js/translated/stock.js:1977
+#: templates/js/translated/part.js:1590 templates/js/translated/stock.js:2152
msgid "Path"
msgstr ""
@@ -7855,11 +8252,11 @@ msgstr ""
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1685 templates/js/translated/stock.js:898
+#: templates/js/translated/part.js:1685 templates/js/translated/stock.js:1055
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1686 templates/js/translated/stock.js:899
+#: templates/js/translated/part.js:1686 templates/js/translated/stock.js:1056
msgid "Delete test result"
msgstr ""
@@ -7898,6 +8295,10 @@ msgstr ""
msgid "Single Price Difference"
msgstr ""
+#: templates/js/translated/plugin.js:22
+msgid "The Plugin was installed"
+msgstr ""
+
#: templates/js/translated/report.js:67
msgid "items selected"
msgstr ""
@@ -7964,300 +8365,316 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/stock.js:71
+#: templates/js/translated/stock.js:72
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:89 templates/js/translated/stock.js:168
+#: templates/js/translated/stock.js:90 templates/js/translated/stock.js:172
msgid "Next available serial number"
msgstr ""
-#: templates/js/translated/stock.js:91 templates/js/translated/stock.js:170
+#: templates/js/translated/stock.js:92 templates/js/translated/stock.js:174
msgid "Latest serial number"
msgstr ""
-#: templates/js/translated/stock.js:105
+#: templates/js/translated/stock.js:100
+msgid "Confirm Stock Serialization"
+msgstr ""
+
+#: templates/js/translated/stock.js:109
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:141
+#: templates/js/translated/stock.js:145
msgid "New Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:181
+#: templates/js/translated/stock.js:185
msgid "This part cannot be serialized"
msgstr ""
-#: templates/js/translated/stock.js:220
+#: templates/js/translated/stock.js:224
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: templates/js/translated/stock.js:226
+#: templates/js/translated/stock.js:230
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: templates/js/translated/stock.js:369
+#: templates/js/translated/stock.js:373
msgid "Created new stock item"
msgstr ""
-#: templates/js/translated/stock.js:382
+#: templates/js/translated/stock.js:386
msgid "Created multiple stock items"
msgstr ""
-#: templates/js/translated/stock.js:407
+#: templates/js/translated/stock.js:411
msgid "Find Serial Number"
msgstr ""
-#: templates/js/translated/stock.js:411 templates/js/translated/stock.js:412
+#: templates/js/translated/stock.js:415 templates/js/translated/stock.js:416
msgid "Enter serial number"
msgstr ""
-#: templates/js/translated/stock.js:428
+#: templates/js/translated/stock.js:432
msgid "Enter a serial number"
msgstr ""
-#: templates/js/translated/stock.js:448
+#: templates/js/translated/stock.js:452
msgid "No matching serial number"
msgstr ""
-#: templates/js/translated/stock.js:457
+#: templates/js/translated/stock.js:461
msgid "More than one matching result found"
msgstr ""
-#: templates/js/translated/stock.js:502
+#: templates/js/translated/stock.js:506
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:513
+#: templates/js/translated/stock.js:517
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:514
+#: templates/js/translated/stock.js:518
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:556
+#: templates/js/translated/stock.js:627
+msgid "Confirm stock assignment"
+msgstr ""
+
+#: templates/js/translated/stock.js:628
+msgid "Assign Stock to Customer"
+msgstr ""
+
+#: templates/js/translated/stock.js:713
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:557
+#: templates/js/translated/stock.js:714
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:563
+#: templates/js/translated/stock.js:720
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:564
+#: templates/js/translated/stock.js:721
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:568
+#: templates/js/translated/stock.js:725
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:569
+#: templates/js/translated/stock.js:726
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:573
+#: templates/js/translated/stock.js:730
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:574 users/models.py:200
+#: templates/js/translated/stock.js:731 users/models.py:202
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:578 templates/stock_table.html:56
+#: templates/js/translated/stock.js:735 templates/stock_table.html:57
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:667
+#: templates/js/translated/stock.js:824
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:667
+#: templates/js/translated/stock.js:824
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:707
+#: templates/js/translated/stock.js:864
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:865
+#: templates/js/translated/stock.js:1022
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:867
+#: templates/js/translated/stock.js:1024
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:872
+#: templates/js/translated/stock.js:1029
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:894
+#: templates/js/translated/stock.js:1051
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:920
+#: templates/js/translated/stock.js:1077
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:977
+#: templates/js/translated/stock.js:1134
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:1084
+#: templates/js/translated/stock.js:1241
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:1088
+#: templates/js/translated/stock.js:1245
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:1092
-msgid "Shipped to customer"
-msgstr ""
-
-#: templates/js/translated/stock.js:1096
+#: templates/js/translated/stock.js:1253
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:1102
+#: templates/js/translated/stock.js:1259
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:1260
+#: templates/js/translated/stock.js:1417
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1265
+#: templates/js/translated/stock.js:1422
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1268
+#: templates/js/translated/stock.js:1425
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1272
+#: templates/js/translated/stock.js:1429
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1274
+#: templates/js/translated/stock.js:1431
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1278
-msgid "Stock item has been allocated"
+#: templates/js/translated/stock.js:1437
+msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1282
+#: templates/js/translated/stock.js:1439
+msgid "Stock item has been fully allocated"
+msgstr ""
+
+#: templates/js/translated/stock.js:1441
+msgid "Stock item has been partially allocated"
+msgstr ""
+
+#: templates/js/translated/stock.js:1446
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1289
+#: templates/js/translated/stock.js:1453
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1291
+#: templates/js/translated/stock.js:1455
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1293
+#: templates/js/translated/stock.js:1457
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1297
-#: templates/js/translated/table_filters.js:183
+#: templates/js/translated/stock.js:1461
+#: templates/js/translated/table_filters.js:188
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1347
+#: templates/js/translated/stock.js:1511
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1420
+#: templates/js/translated/stock.js:1584
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1458
+#: templates/js/translated/stock.js:1622
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1479 templates/js/translated/stock.js:1527
+#: templates/js/translated/stock.js:1643 templates/js/translated/stock.js:1691
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1567
+#: templates/js/translated/stock.js:1731
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1594
+#: templates/js/translated/stock.js:1758
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:1596
+#: templates/js/translated/stock.js:1760
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:1770
+#: templates/js/translated/stock.js:1945
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:1784
+#: templates/js/translated/stock.js:1959
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:1785
+#: templates/js/translated/stock.js:1960
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:2009
+#: templates/js/translated/stock.js:2184
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:2031
+#: templates/js/translated/stock.js:2206
msgid "Details"
msgstr ""
-#: templates/js/translated/stock.js:2056
+#: templates/js/translated/stock.js:2231
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2075
+#: templates/js/translated/stock.js:2250
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2094
+#: templates/js/translated/stock.js:2269
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2112
+#: templates/js/translated/stock.js:2287
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2135
+#: templates/js/translated/stock.js:2310
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2143
+#: templates/js/translated/stock.js:2318
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2184
+#: templates/js/translated/stock.js:2359
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2185
+#: templates/js/translated/stock.js:2360
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2236
+#: templates/js/translated/stock.js:2411
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2287
+#: templates/js/translated/stock.js:2462
msgid "Uninstall Stock Item"
msgstr ""
@@ -8278,7 +8695,7 @@ msgid "Allow Variant Stock"
msgstr ""
#: templates/js/translated/table_filters.js:110
-#: templates/js/translated/table_filters.js:178
+#: templates/js/translated/table_filters.js:183
msgid "Include sublocations"
msgstr ""
@@ -8288,54 +8705,54 @@ msgstr ""
#: templates/js/translated/table_filters.js:121
#: templates/js/translated/table_filters.js:122
-#: templates/js/translated/table_filters.js:358
+#: templates/js/translated/table_filters.js:389
msgid "Include subcategories"
msgstr ""
#: templates/js/translated/table_filters.js:126
-#: templates/js/translated/table_filters.js:393
+#: templates/js/translated/table_filters.js:424
msgid "Subscribed"
msgstr ""
#: templates/js/translated/table_filters.js:136
-#: templates/js/translated/table_filters.js:213
+#: templates/js/translated/table_filters.js:218
msgid "Is Serialized"
msgstr ""
#: templates/js/translated/table_filters.js:139
-#: templates/js/translated/table_filters.js:220
+#: templates/js/translated/table_filters.js:225
msgid "Serial number GTE"
msgstr ""
#: templates/js/translated/table_filters.js:140
-#: templates/js/translated/table_filters.js:221
+#: templates/js/translated/table_filters.js:226
msgid "Serial number greater than or equal to"
msgstr ""
#: templates/js/translated/table_filters.js:143
-#: templates/js/translated/table_filters.js:224
+#: templates/js/translated/table_filters.js:229
msgid "Serial number LTE"
msgstr ""
#: templates/js/translated/table_filters.js:144
-#: templates/js/translated/table_filters.js:225
+#: templates/js/translated/table_filters.js:230
msgid "Serial number less than or equal to"
msgstr ""
#: templates/js/translated/table_filters.js:147
#: templates/js/translated/table_filters.js:148
-#: templates/js/translated/table_filters.js:216
-#: templates/js/translated/table_filters.js:217
+#: templates/js/translated/table_filters.js:221
+#: templates/js/translated/table_filters.js:222
msgid "Serial number"
msgstr ""
#: templates/js/translated/table_filters.js:152
-#: templates/js/translated/table_filters.js:234
+#: templates/js/translated/table_filters.js:239
msgid "Batch code"
msgstr ""
#: templates/js/translated/table_filters.js:163
-#: templates/js/translated/table_filters.js:348
+#: templates/js/translated/table_filters.js:379
msgid "Active parts"
msgstr ""
@@ -8356,101 +8773,111 @@ msgid "Item has been allocated"
msgstr ""
#: templates/js/translated/table_filters.js:179
-msgid "Include stock in sublocations"
+msgid "Stock is available for use"
msgstr ""
#: templates/js/translated/table_filters.js:184
-msgid "Show stock items which are depleted"
+msgid "Include stock in sublocations"
msgstr ""
#: templates/js/translated/table_filters.js:189
-msgid "Show items which are in stock"
-msgstr ""
-
-#: templates/js/translated/table_filters.js:193
-msgid "In Production"
+msgid "Show stock items which are depleted"
msgstr ""
#: templates/js/translated/table_filters.js:194
-msgid "Show items which are in production"
+msgid "Show items which are in stock"
msgstr ""
#: templates/js/translated/table_filters.js:198
-msgid "Include Variants"
+msgid "In Production"
msgstr ""
#: templates/js/translated/table_filters.js:199
-msgid "Include stock items for variant parts"
+msgid "Show items which are in production"
msgstr ""
#: templates/js/translated/table_filters.js:203
-msgid "Installed"
+msgid "Include Variants"
msgstr ""
#: templates/js/translated/table_filters.js:204
-msgid "Show stock items which are installed in another item"
+msgid "Include stock items for variant parts"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:208
+msgid "Installed"
msgstr ""
#: templates/js/translated/table_filters.js:209
+msgid "Show stock items which are installed in another item"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:214
msgid "Show items which have been assigned to a customer"
msgstr ""
-#: templates/js/translated/table_filters.js:229
-#: templates/js/translated/table_filters.js:230
+#: templates/js/translated/table_filters.js:234
+#: templates/js/translated/table_filters.js:235
msgid "Stock status"
msgstr ""
-#: templates/js/translated/table_filters.js:238
+#: templates/js/translated/table_filters.js:243
msgid "Has purchase price"
msgstr ""
-#: templates/js/translated/table_filters.js:239
+#: templates/js/translated/table_filters.js:244
msgid "Show stock items which have a purchase price set"
msgstr ""
-#: templates/js/translated/table_filters.js:248
+#: templates/js/translated/table_filters.js:253
msgid "Show stock items which have expired"
msgstr ""
-#: templates/js/translated/table_filters.js:254
+#: templates/js/translated/table_filters.js:259
msgid "Show stock which is close to expiring"
msgstr ""
-#: templates/js/translated/table_filters.js:285
+#: templates/js/translated/table_filters.js:290
msgid "Build status"
msgstr ""
-#: templates/js/translated/table_filters.js:313
-#: templates/js/translated/table_filters.js:330
+#: templates/js/translated/table_filters.js:303
+#: templates/js/translated/table_filters.js:344
+msgid "Assigned to me"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:320
+#: templates/js/translated/table_filters.js:331
+#: templates/js/translated/table_filters.js:352
msgid "Order status"
msgstr ""
-#: templates/js/translated/table_filters.js:318
-#: templates/js/translated/table_filters.js:335
+#: templates/js/translated/table_filters.js:336
+#: templates/js/translated/table_filters.js:357
msgid "Outstanding"
msgstr ""
-#: templates/js/translated/table_filters.js:359
+#: templates/js/translated/table_filters.js:390
msgid "Include parts in subcategories"
msgstr ""
-#: templates/js/translated/table_filters.js:363
+#: templates/js/translated/table_filters.js:394
msgid "Has IPN"
msgstr ""
-#: templates/js/translated/table_filters.js:364
+#: templates/js/translated/table_filters.js:395
msgid "Part has internal part number"
msgstr ""
-#: templates/js/translated/table_filters.js:369
+#: templates/js/translated/table_filters.js:400
msgid "Show active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:377
+#: templates/js/translated/table_filters.js:408
msgid "Stock available"
msgstr ""
-#: templates/js/translated/table_filters.js:405
+#: templates/js/translated/table_filters.js:436
msgid "Purchasable"
msgstr ""
@@ -8507,27 +8934,23 @@ msgstr ""
msgid "All"
msgstr ""
-#: templates/navbar.html:40
+#: templates/navbar.html:42
msgid "Buy"
msgstr ""
-#: templates/navbar.html:52
+#: templates/navbar.html:54
msgid "Sell"
msgstr ""
-#: templates/navbar.html:86 users/models.py:39
-msgid "Admin"
-msgstr ""
-
-#: templates/navbar.html:88
+#: templates/navbar.html:113
msgid "Logout"
msgstr ""
-#: templates/navbar.html:90
+#: templates/navbar.html:115
msgid "Login"
msgstr ""
-#: templates/navbar.html:111
+#: templates/navbar.html:136
msgid "About InvenTree"
msgstr ""
@@ -8639,15 +9062,15 @@ msgstr ""
msgid "Order selected items"
msgstr ""
-#: templates/stock_table.html:53
+#: templates/stock_table.html:54
msgid "Change status"
msgstr ""
-#: templates/stock_table.html:53
+#: templates/stock_table.html:54
msgid "Change stock status"
msgstr ""
-#: templates/stock_table.html:56
+#: templates/stock_table.html:57
msgid "Delete selected items"
msgstr ""
@@ -8683,35 +9106,35 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:187
+#: users/models.py:189
msgid "Permission set"
msgstr ""
-#: users/models.py:195
+#: users/models.py:197
msgid "Group"
msgstr ""
-#: users/models.py:198
+#: users/models.py:200
msgid "View"
msgstr ""
-#: users/models.py:198
+#: users/models.py:200
msgid "Permission to view items"
msgstr ""
-#: users/models.py:200
+#: users/models.py:202
msgid "Permission to add items"
msgstr ""
-#: users/models.py:202
+#: users/models.py:204
msgid "Change"
msgstr ""
-#: users/models.py:202
+#: users/models.py:204
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:204
+#: users/models.py:206
msgid "Permission to delete items"
msgstr ""
diff --git a/InvenTree/locale/sv/LC_MESSAGES/django.po b/InvenTree/locale/sv/LC_MESSAGES/django.po
index 0902728d5f..f30c4284d8 100644
--- a/InvenTree/locale/sv/LC_MESSAGES/django.po
+++ b/InvenTree/locale/sv/LC_MESSAGES/django.po
@@ -1,9 +1,10 @@
+#: templates/js/translated/order.js:1973
msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-12-03 10:37+0000\n"
-"PO-Revision-Date: 2021-12-03 11:25\n"
+"POT-Creation-Date: 2021-12-08 23:43+0000\n"
+"PO-Revision-Date: 2021-12-08 23:47\n"
"Last-Translator: \n"
"Language-Team: Swedish\n"
"Language: sv_SE\n"
@@ -34,8 +35,8 @@ msgid "Enter date"
msgstr "Ange datum"
#: InvenTree/forms.py:120 build/forms.py:48 build/forms.py:69 build/forms.py:93
-#: order/forms.py:26 order/forms.py:37 order/forms.py:48 order/forms.py:59
-#: order/forms.py:70 part/forms.py:108 templates/account/email_confirm.html:20
+#: order/forms.py:24 order/forms.py:35 order/forms.py:46 order/forms.py:57
+#: part/forms.py:108 templates/account/email_confirm.html:20
#: templates/js/translated/forms.js:595
msgid "Confirm"
msgstr "Bekräfta"
@@ -85,8 +86,8 @@ msgstr ""
msgid "Duplicate serial: {n}"
msgstr ""
-#: InvenTree/helpers.py:437 order/models.py:318 order/models.py:440
-#: stock/views.py:1264
+#: InvenTree/helpers.py:437 order/models.py:279 order/models.py:420
+#: stock/views.py:1231
msgid "Invalid quantity provided"
msgstr "Ogiltigt antal angivet"
@@ -122,7 +123,7 @@ msgstr ""
msgid "Missing external link"
msgstr ""
-#: InvenTree/models.py:132 stock/models.py:1864
+#: InvenTree/models.py:132 stock/models.py:1852
#: templates/js/translated/attachment.js:117
msgid "Attachment"
msgstr "Bilaga"
@@ -132,7 +133,7 @@ msgid "Select file to attach"
msgstr "Välj fil att bifoga"
#: InvenTree/models.py:139 company/models.py:131 company/models.py:348
-#: company/models.py:564 order/models.py:163 part/models.py:797
+#: company/models.py:564 order/models.py:124 part/models.py:797
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:537
#: templates/js/translated/company.js:826 templates/js/translated/part.js:1258
@@ -140,7 +141,7 @@ msgid "Link"
msgstr ""
#: InvenTree/models.py:140 build/models.py:330 part/models.py:798
-#: stock/models.py:530
+#: stock/models.py:524
msgid "Link to external URL"
msgstr ""
@@ -152,10 +153,10 @@ msgstr "Kommentar"
msgid "File comment"
msgstr "Fil kommentar"
-#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1185
-#: common/models.py:1186 part/models.py:2205 part/models.py:2225
+#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1213
+#: common/models.py:1214 part/models.py:2205 part/models.py:2225
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2166
+#: templates/js/translated/stock.js:2341
msgid "User"
msgstr "Användare"
@@ -194,10 +195,15 @@ msgstr "Ogiltigt val"
#: InvenTree/models.py:277 InvenTree/models.py:278 company/models.py:415
#: label/models.py:112 part/models.py:741 part/models.py:2389
-#: report/models.py:181 templates/InvenTree/settings/settings.html:259
+#: plugin/models.py:39 report/models.py:181
+#: templates/InvenTree/settings/mixins/urls.html:11
+#: templates/InvenTree/settings/plugin.html:47
+#: templates/InvenTree/settings/plugin.html:124
+#: templates/InvenTree/settings/plugin_settings.html:23
+#: templates/InvenTree/settings/settings.html:268
#: templates/js/translated/company.js:638 templates/js/translated/part.js:506
#: templates/js/translated/part.js:643 templates/js/translated/part.js:1565
-#: templates/js/translated/stock.js:1959
+#: templates/js/translated/stock.js:2134
msgid "Name"
msgstr "Namn"
@@ -206,22 +212,23 @@ msgstr "Namn"
#: company/models.py:570 company/templates/company/company_base.html:68
#: company/templates/company/manufacturer_part.html:76
#: company/templates/company/supplier_part.html:73 label/models.py:119
-#: order/models.py:161 part/models.py:764 part/templates/part/category.html:70
+#: order/models.py:122 part/models.py:764 part/templates/part/category.html:70
#: part/templates/part/part_base.html:163
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:553 report/models.py:592
#: report/templates/report/inventree_build_order_base.html:118
-#: stock/templates/stock/location.html:89 templates/js/translated/bom.js:215
-#: templates/js/translated/bom.js:428 templates/js/translated/build.js:1621
-#: templates/js/translated/company.js:345
+#: stock/templates/stock/location.html:89
+#: templates/InvenTree/settings/plugin_settings.html:33
+#: templates/js/translated/bom.js:215 templates/js/translated/bom.js:428
+#: templates/js/translated/build.js:1627 templates/js/translated/company.js:345
#: templates/js/translated/company.js:548
-#: templates/js/translated/company.js:837 templates/js/translated/order.js:680
-#: templates/js/translated/order.js:854 templates/js/translated/order.js:1090
+#: templates/js/translated/company.js:837 templates/js/translated/order.js:836
+#: templates/js/translated/order.js:1019 templates/js/translated/order.js:1258
#: templates/js/translated/part.js:565 templates/js/translated/part.js:933
#: templates/js/translated/part.js:1018 templates/js/translated/part.js:1188
#: templates/js/translated/part.js:1584 templates/js/translated/part.js:1653
-#: templates/js/translated/stock.js:1233 templates/js/translated/stock.js:1971
-#: templates/js/translated/stock.js:2016
+#: templates/js/translated/stock.js:1390 templates/js/translated/stock.js:2146
+#: templates/js/translated/stock.js:2191
msgid "Description"
msgstr "Beskrivning"
@@ -241,83 +248,83 @@ msgstr "Måste vara ett giltigt nummer"
msgid "Filename"
msgstr "Filnamn"
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:689
msgid "German"
msgstr "Tyska"
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:690
msgid "Greek"
msgstr "Grekiska"
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:691
msgid "English"
msgstr "Engelska"
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:692
msgid "Spanish"
msgstr "Spanska"
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:693
msgid "Spanish (Mexican)"
msgstr ""
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:694
msgid "French"
msgstr "Franska"
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:695
msgid "Hebrew"
msgstr "Hebreiska"
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:696
msgid "Italian"
msgstr "Italienska"
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:697
msgid "Japanese"
msgstr "Japanska"
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:698
msgid "Korean"
msgstr "Koreanska"
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:699
msgid "Dutch"
msgstr "Nederländska"
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:700
msgid "Norwegian"
msgstr "Norska"
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:701
msgid "Polish"
msgstr "Polska"
-#: InvenTree/settings.py:683
+#: InvenTree/settings.py:702
msgid "Portugese"
msgstr ""
-#: InvenTree/settings.py:684
+#: InvenTree/settings.py:703
msgid "Russian"
msgstr "Ryska"
-#: InvenTree/settings.py:685
+#: InvenTree/settings.py:704
msgid "Swedish"
msgstr "Svenska"
-#: InvenTree/settings.py:686
+#: InvenTree/settings.py:705
msgid "Thai"
msgstr "Thailändska"
-#: InvenTree/settings.py:687
+#: InvenTree/settings.py:706
msgid "Turkish"
msgstr "Turkiska"
-#: InvenTree/settings.py:688
+#: InvenTree/settings.py:707
msgid "Vietnamese"
msgstr "Vietnamesiska"
-#: InvenTree/settings.py:689
+#: InvenTree/settings.py:708
msgid "Chinese"
msgstr "Kinesiska"
@@ -334,7 +341,7 @@ msgid "InvenTree system health checks failed"
msgstr "InvenTree systemhälsokontroll misslyckades"
#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142
-#: InvenTree/status_codes.py:311
+#: InvenTree/status_codes.py:311 templates/js/translated/table_filters.js:313
msgid "Pending"
msgstr "Väntar"
@@ -343,6 +350,8 @@ msgid "Placed"
msgstr "Placerad"
#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:314
+#: order/templates/order/order_base.html:128
+#: order/templates/order/sales_order_base.html:132
msgid "Complete"
msgstr "Slutför"
@@ -361,8 +370,8 @@ msgstr "Förlorad"
msgid "Returned"
msgstr "Återlämnad"
-#: InvenTree/status_codes.py:143
-#: order/templates/order/sales_order_base.html:148
+#: InvenTree/status_codes.py:143 order/models.py:939
+#: templates/js/translated/order.js:1980 templates/js/translated/order.js:2255
msgid "Shipped"
msgstr "Skickad"
@@ -442,7 +451,7 @@ msgstr ""
msgid "Split child item"
msgstr ""
-#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:208
+#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:213
msgid "Sent to customer"
msgstr ""
@@ -522,55 +531,55 @@ msgstr ""
msgid "Password fields must match"
msgstr ""
-#: InvenTree/views.py:883 templates/navbar.html:101
+#: InvenTree/views.py:883 templates/navbar.html:126
msgid "System Information"
msgstr ""
-#: barcodes/api.py:53 barcodes/api.py:150
+#: barcodes/api.py:54 barcodes/api.py:151
msgid "Must provide barcode_data parameter"
msgstr ""
-#: barcodes/api.py:126
+#: barcodes/api.py:127
msgid "No match found for barcode data"
msgstr ""
-#: barcodes/api.py:128
+#: barcodes/api.py:129
msgid "Match found for barcode data"
msgstr ""
-#: barcodes/api.py:153
+#: barcodes/api.py:154
msgid "Must provide stockitem parameter"
msgstr ""
-#: barcodes/api.py:160
+#: barcodes/api.py:161
msgid "No matching stock item found"
msgstr ""
-#: barcodes/api.py:190
-msgid "Barcode already matches StockItem object"
+#: barcodes/api.py:191
+msgid "Barcode already matches Stock Item"
msgstr ""
-#: barcodes/api.py:194
-msgid "Barcode already matches StockLocation object"
+#: barcodes/api.py:195
+msgid "Barcode already matches Stock Location"
msgstr ""
-#: barcodes/api.py:198
-msgid "Barcode already matches Part object"
+#: barcodes/api.py:199
+msgid "Barcode already matches Part"
msgstr ""
-#: barcodes/api.py:204 barcodes/api.py:216
-msgid "Barcode hash already matches StockItem object"
+#: barcodes/api.py:205 barcodes/api.py:217
+msgid "Barcode hash already matches Stock Item"
msgstr ""
-#: barcodes/api.py:222
-msgid "Barcode associated with StockItem"
+#: barcodes/api.py:223
+msgid "Barcode associated with Stock Item"
msgstr ""
#: build/forms.py:36 build/models.py:1283
#: build/templates/build/build_base.html:132
-#: build/templates/build/detail.html:35 common/models.py:1225
+#: build/templates/build/detail.html:35 common/models.py:1253
#: company/forms.py:42 company/templates/company/supplier_part.html:251
-#: order/forms.py:102 order/models.py:729 order/models.py:991
+#: order/models.py:794 order/models.py:1205 order/serializers.py:810
#: order/templates/order/order_wizard/match_parts.html:30
#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:223
#: part/forms.py:239 part/forms.py:255 part/models.py:2576
@@ -582,20 +591,23 @@ msgstr ""
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:81
#: report/templates/report/inventree_test_report_base.html:139
-#: stock/forms.py:156 stock/serializers.py:291
+#: stock/forms.py:142 stock/serializers.py:293
#: stock/templates/stock/item_base.html:174
+#: stock/templates/stock/item_base.html:255
+#: stock/templates/stock/item_base.html:263
#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443
-#: templates/js/translated/build.js:235 templates/js/translated/build.js:435
-#: templates/js/translated/build.js:629 templates/js/translated/build.js:639
-#: templates/js/translated/build.js:1015 templates/js/translated/build.js:1362
+#: templates/js/translated/build.js:240 templates/js/translated/build.js:440
+#: templates/js/translated/build.js:634 templates/js/translated/build.js:644
+#: templates/js/translated/build.js:1020 templates/js/translated/build.js:1367
#: templates/js/translated/model_renderers.js:99
-#: templates/js/translated/order.js:891 templates/js/translated/order.js:1204
-#: templates/js/translated/order.js:1282 templates/js/translated/order.js:1289
-#: templates/js/translated/order.js:1378 templates/js/translated/order.js:1478
-#: templates/js/translated/part.js:843 templates/js/translated/part.js:1796
-#: templates/js/translated/part.js:1919 templates/js/translated/part.js:1997
-#: templates/js/translated/stock.js:378 templates/js/translated/stock.js:2151
-#: templates/js/translated/stock.js:2253
+#: templates/js/translated/order.js:101 templates/js/translated/order.js:1056
+#: templates/js/translated/order.js:1578 templates/js/translated/order.js:1859
+#: templates/js/translated/order.js:1947 templates/js/translated/order.js:2036
+#: templates/js/translated/order.js:2150 templates/js/translated/part.js:843
+#: templates/js/translated/part.js:1796 templates/js/translated/part.js:1919
+#: templates/js/translated/part.js:1997 templates/js/translated/stock.js:382
+#: templates/js/translated/stock.js:579 templates/js/translated/stock.js:2326
+#: templates/js/translated/stock.js:2428
msgid "Quantity"
msgstr ""
@@ -603,9 +615,9 @@ msgstr ""
msgid "Enter quantity for build output"
msgstr ""
-#: build/forms.py:41 order/forms.py:96 stock/forms.py:95
-#: stock/serializers.py:312 templates/js/translated/stock.js:225
-#: templates/js/translated/stock.js:379
+#: build/forms.py:41 order/serializers.py:814 stock/forms.py:81
+#: stock/serializers.py:314 templates/js/translated/stock.js:229
+#: templates/js/translated/stock.js:383
msgid "Serial Numbers"
msgstr ""
@@ -640,17 +652,17 @@ msgstr ""
#: build/models.py:137 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:397
+#: templates/js/translated/build.js:402
msgid "Build Order"
msgstr ""
#: build/models.py:138 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
-#: order/templates/order/sales_order_detail.html:42
-#: order/templates/order/so_sidebar.html:7
+#: order/templates/order/sales_order_detail.html:92
+#: order/templates/order/so_sidebar.html:13
#: part/templates/part/part_sidebar.html:20 templates/InvenTree/index.html:221
#: templates/InvenTree/search.html:145
-#: templates/InvenTree/settings/sidebar.html:42 users/models.py:44
+#: templates/InvenTree/settings/sidebar.html:43 users/models.py:44
msgid "Build Orders"
msgstr ""
@@ -658,13 +670,13 @@ msgstr ""
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:199 order/models.py:249 order/models.py:556
-#: order/models.py:736 part/models.py:2585
+#: build/models.py:199 order/models.py:210 order/models.py:536
+#: order/models.py:801 part/models.py:2585
#: part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1119
-#: templates/js/translated/order.js:885 templates/js/translated/order.js:1472
+#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1124
+#: templates/js/translated/order.js:1050 templates/js/translated/order.js:2144
msgid "Reference"
msgstr ""
@@ -683,7 +695,7 @@ msgstr ""
#: build/models.py:225 build/templates/build/build_base.html:77
#: build/templates/build/detail.html:30 company/models.py:705
-#: order/models.py:789 order/models.py:860
+#: order/models.py:854 order/models.py:928
#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357
#: part/models.py:2151 part/models.py:2167 part/models.py:2186
#: part/models.py:2203 part/models.py:2305 part/models.py:2427
@@ -698,14 +710,16 @@ msgstr ""
#: templates/email/build_order_required_stock.html:17
#: templates/email/low_stock_notification.html:16
#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:214
-#: templates/js/translated/bom.js:393 templates/js/translated/build.js:620
-#: templates/js/translated/build.js:988 templates/js/translated/build.js:1359
-#: templates/js/translated/build.js:1626 templates/js/translated/company.js:489
-#: templates/js/translated/company.js:746 templates/js/translated/order.js:426
-#: templates/js/translated/order.js:839 templates/js/translated/order.js:1456
-#: templates/js/translated/part.js:918 templates/js/translated/part.js:999
-#: templates/js/translated/part.js:1166 templates/js/translated/stock.js:590
-#: templates/js/translated/stock.js:1190 templates/js/translated/stock.js:2241
+#: templates/js/translated/bom.js:393 templates/js/translated/build.js:625
+#: templates/js/translated/build.js:993 templates/js/translated/build.js:1364
+#: templates/js/translated/build.js:1632 templates/js/translated/company.js:489
+#: templates/js/translated/company.js:746 templates/js/translated/order.js:84
+#: templates/js/translated/order.js:586 templates/js/translated/order.js:1004
+#: templates/js/translated/order.js:1576 templates/js/translated/order.js:1933
+#: templates/js/translated/order.js:2128 templates/js/translated/part.js:918
+#: templates/js/translated/part.js:999 templates/js/translated/part.js:1166
+#: templates/js/translated/stock.js:553 templates/js/translated/stock.js:747
+#: templates/js/translated/stock.js:1347 templates/js/translated/stock.js:2416
msgid "Part"
msgstr ""
@@ -721,7 +735,8 @@ msgstr ""
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:247 templates/js/translated/build.js:1347
+#: build/models.py:247 templates/js/translated/build.js:1352
+#: templates/js/translated/order.js:1564
msgid "Source Location"
msgstr ""
@@ -761,7 +776,7 @@ msgstr ""
msgid "Build status code"
msgstr ""
-#: build/models.py:285 stock/models.py:534
+#: build/models.py:285 stock/models.py:528
msgid "Batch Code"
msgstr ""
@@ -769,12 +784,12 @@ msgstr ""
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:292 order/models.py:165 part/models.py:936
-#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1103
+#: build/models.py:292 order/models.py:126 part/models.py:936
+#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1271
msgid "Creation Date"
msgstr ""
-#: build/models.py:296 order/models.py:578
+#: build/models.py:296 order/models.py:558
msgid "Target completion date"
msgstr ""
@@ -782,8 +797,8 @@ msgstr ""
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/models.py:300 order/models.py:291
-#: templates/js/translated/build.js:1697
+#: build/models.py:300 order/models.py:252
+#: templates/js/translated/build.js:1703
msgid "Completion Date"
msgstr ""
@@ -791,7 +806,7 @@ msgstr ""
msgid "completed by"
msgstr ""
-#: build/models.py:314 templates/js/translated/build.js:1668
+#: build/models.py:314 templates/js/translated/build.js:1674
msgid "Issued by"
msgstr ""
@@ -800,11 +815,11 @@ msgid "User who issued this build order"
msgstr ""
#: build/models.py:323 build/templates/build/build_base.html:185
-#: build/templates/build/detail.html:116 order/models.py:179
-#: order/templates/order/order_base.html:158
-#: order/templates/order/sales_order_base.html:162 part/models.py:940
+#: build/templates/build/detail.html:116 order/models.py:140
+#: order/templates/order/order_base.html:170
+#: order/templates/order/sales_order_base.html:182 part/models.py:940
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:1680 templates/js/translated/order.js:699
+#: templates/js/translated/build.js:1686 templates/js/translated/order.js:864
msgid "Responsible"
msgstr ""
@@ -815,7 +830,7 @@ msgstr ""
#: build/models.py:329 build/templates/build/detail.html:102
#: company/templates/company/manufacturer_part.html:102
#: company/templates/company/supplier_part.html:126
-#: part/templates/part/part_base.html:354 stock/models.py:528
+#: part/templates/part/part_base.html:354 stock/models.py:522
#: stock/templates/stock/item_base.html:374
msgid "External Link"
msgstr ""
@@ -823,18 +838,19 @@ msgstr ""
#: build/models.py:334 build/serializers.py:201
#: build/templates/build/sidebar.html:21 company/models.py:142
#: company/models.py:577 company/templates/company/sidebar.html:25
-#: order/models.py:183 order/models.py:738
+#: order/models.py:144 order/models.py:803 order/models.py:1049
#: order/templates/order/po_sidebar.html:11
-#: order/templates/order/so_sidebar.html:11 part/models.py:925
+#: order/templates/order/so_sidebar.html:17 part/models.py:925
#: part/templates/part/detail.html:116 part/templates/part/part_sidebar.html:50
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/forms.py:154 stock/forms.py:204 stock/forms.py:238 stock/models.py:600
-#: stock/models.py:1764 stock/models.py:1870 stock/serializers.py:330
-#: stock/serializers.py:588 stock/templates/stock/stock_sidebar.html:21
+#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:594
+#: stock/models.py:1752 stock/models.py:1858 stock/serializers.py:332
+#: stock/serializers.py:624 stock/serializers.py:711
+#: stock/templates/stock/stock_sidebar.html:21
#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599
-#: templates/js/translated/company.js:842 templates/js/translated/order.js:984
-#: templates/js/translated/order.js:1582 templates/js/translated/stock.js:973
-#: templates/js/translated/stock.js:1452
+#: templates/js/translated/company.js:842 templates/js/translated/order.js:1149
+#: templates/js/translated/order.js:1445 templates/js/translated/order.js:2280
+#: templates/js/translated/stock.js:1130 templates/js/translated/stock.js:1616
msgid "Notes"
msgstr ""
@@ -867,7 +883,7 @@ msgstr ""
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1133 order/models.py:964
+#: build/models.py:1133 order/models.py:1165
msgid "Allocation quantity must be greater than zero"
msgstr ""
@@ -880,8 +896,8 @@ msgid "Selected stock item not found in BOM"
msgstr ""
#: build/models.py:1253 stock/templates/stock/item_base.html:346
-#: templates/InvenTree/search.html:143 templates/js/translated/build.js:1599
-#: templates/navbar.html:33
+#: templates/InvenTree/search.html:143 templates/js/translated/build.js:1605
+#: templates/navbar.html:35
msgid "Build"
msgstr ""
@@ -889,14 +905,17 @@ msgstr ""
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1270 build/serializers.py:328
+#: build/models.py:1270 build/serializers.py:328 order/serializers.py:690
+#: order/serializers.py:708 stock/serializers.py:562
#: stock/templates/stock/item_base.html:8
#: stock/templates/stock/item_base.html:16
#: stock/templates/stock/item_base.html:368
-#: templates/js/translated/build.js:408 templates/js/translated/build.js:413
-#: templates/js/translated/build.js:1361 templates/js/translated/build.js:1742
-#: templates/js/translated/order.js:1177 templates/js/translated/order.js:1182
-#: templates/js/translated/stock.js:2102
+#: templates/js/translated/build.js:413 templates/js/translated/build.js:418
+#: templates/js/translated/build.js:1366 templates/js/translated/build.js:1748
+#: templates/js/translated/order.js:85 templates/js/translated/order.js:1577
+#: templates/js/translated/order.js:1832 templates/js/translated/order.js:1837
+#: templates/js/translated/order.js:1940 templates/js/translated/order.js:2030
+#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:2277
msgid "Stock Item"
msgstr ""
@@ -936,16 +955,17 @@ msgstr ""
msgid "This build output is not fully allocated"
msgstr ""
-#: build/serializers.py:190 order/serializers.py:228 order/serializers.py:296
-#: stock/forms.py:236 stock/serializers.py:323 stock/serializers.py:690
+#: build/serializers.py:190 order/serializers.py:226 order/serializers.py:294
+#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:813
#: stock/templates/stock/item_base.html:314
#: templates/js/translated/barcode.js:384
-#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:420
-#: templates/js/translated/build.js:1027 templates/js/translated/order.js:348
-#: templates/js/translated/order.js:1189 templates/js/translated/order.js:1297
-#: templates/js/translated/order.js:1303 templates/js/translated/part.js:177
-#: templates/js/translated/stock.js:592 templates/js/translated/stock.js:1333
-#: templates/js/translated/stock.js:2043
+#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:425
+#: templates/js/translated/build.js:1032 templates/js/translated/order.js:508
+#: templates/js/translated/order.js:1844 templates/js/translated/order.js:1955
+#: templates/js/translated/order.js:1963 templates/js/translated/order.js:2044
+#: templates/js/translated/part.js:177 templates/js/translated/stock.js:555
+#: templates/js/translated/stock.js:749 templates/js/translated/stock.js:1497
+#: templates/js/translated/stock.js:2218
msgid "Location"
msgstr ""
@@ -954,12 +974,12 @@ msgid "Location for completed build outputs"
msgstr ""
#: build/serializers.py:197 build/templates/build/build_base.html:137
-#: build/templates/build/detail.html:63 order/models.py:572
-#: order/serializers.py:249 stock/templates/stock/item_base.html:180
-#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1655
-#: templates/js/translated/order.js:431 templates/js/translated/order.js:1095
-#: templates/js/translated/stock.js:1308 templates/js/translated/stock.js:2120
-#: templates/js/translated/stock.js:2269
+#: build/templates/build/detail.html:63 order/models.py:552
+#: order/serializers.py:247 stock/templates/stock/item_base.html:180
+#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1661
+#: templates/js/translated/order.js:591 templates/js/translated/order.js:840
+#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1472
+#: templates/js/translated/stock.js:2295 templates/js/translated/stock.js:2444
msgid "Status"
msgstr ""
@@ -984,16 +1004,16 @@ msgstr ""
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:334
+#: build/serializers.py:334 stock/serializers.py:569
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:348 order/models.py:316 order/serializers.py:242
-#: stock/models.py:371 stock/models.py:1093 stock/serializers.py:303
+#: build/serializers.py:348 order/models.py:277 order/serializers.py:240
+#: stock/models.py:365 stock/models.py:1081 stock/serializers.py:305
msgid "Quantity must be greater than zero"
msgstr ""
-#: build/serializers.py:390
+#: build/serializers.py:390 order/serializers.py:741
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
@@ -1006,7 +1026,7 @@ msgstr ""
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:431
+#: build/serializers.py:431 order/serializers.py:984
msgid "Allocation items must be provided"
msgstr ""
@@ -1079,11 +1099,11 @@ msgstr ""
#: build/templates/build/build_base.html:146
#: build/templates/build/detail.html:132
-#: order/templates/order/order_base.html:144
-#: order/templates/order/sales_order_base.html:141
+#: order/templates/order/order_base.html:156
+#: order/templates/order/sales_order_base.html:163
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:1692 templates/js/translated/order.js:689
-#: templates/js/translated/order.js:1108
+#: templates/js/translated/build.js:1698 templates/js/translated/order.js:854
+#: templates/js/translated/order.js:1276
msgid "Target Date"
msgstr ""
@@ -1096,28 +1116,28 @@ msgstr ""
#: build/templates/build/build_base.html:196
#: order/templates/order/order_base.html:98
#: order/templates/order/sales_order_base.html:93
-#: templates/js/translated/table_filters.js:294
-#: templates/js/translated/table_filters.js:322
-#: templates/js/translated/table_filters.js:339
+#: templates/js/translated/table_filters.js:299
+#: templates/js/translated/table_filters.js:340
+#: templates/js/translated/table_filters.js:361
msgid "Overdue"
msgstr ""
#: build/templates/build/build_base.html:158
#: build/templates/build/detail.html:68 build/templates/build/detail.html:143
-#: templates/js/translated/build.js:1641
-#: templates/js/translated/table_filters.js:304
+#: order/templates/order/sales_order_base.html:170
+#: templates/js/translated/build.js:1647
+#: templates/js/translated/table_filters.js:370
msgid "Completed"
msgstr ""
#: build/templates/build/build_base.html:171
-#: build/templates/build/detail.html:95 order/models.py:857
-#: order/templates/order/sales_order_base.html:9
+#: build/templates/build/detail.html:95 order/models.py:925
+#: order/models.py:1021 order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
-#: order/templates/order/sales_order_ship.html:25
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:308
-#: templates/js/translated/order.js:1050
+#: templates/js/translated/order.js:1218
msgid "Sales Order"
msgstr ""
@@ -1191,8 +1211,8 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:50 order/models.py:811 stock/forms.py:150
-#: templates/js/translated/order.js:432 templates/js/translated/order.js:973
+#: build/templates/build/detail.html:50 order/models.py:876 stock/forms.py:136
+#: templates/js/translated/order.js:592 templates/js/translated/order.js:1138
msgid "Destination"
msgstr ""
@@ -1200,22 +1220,22 @@ msgstr ""
msgid "Destination location not specified"
msgstr ""
-#: build/templates/build/detail.html:74 templates/js/translated/build.js:647
+#: build/templates/build/detail.html:74 templates/js/translated/build.js:652
msgid "Allocated Parts"
msgstr ""
#: build/templates/build/detail.html:81
#: stock/templates/stock/item_base.html:332
-#: templates/js/translated/stock.js:1322 templates/js/translated/stock.js:2276
+#: templates/js/translated/stock.js:1486 templates/js/translated/stock.js:2451
#: templates/js/translated/table_filters.js:151
-#: templates/js/translated/table_filters.js:233
+#: templates/js/translated/table_filters.js:238
msgid "Batch"
msgstr ""
#: build/templates/build/detail.html:127
-#: order/templates/order/order_base.html:131
-#: order/templates/order/sales_order_base.html:135
-#: templates/js/translated/build.js:1663
+#: order/templates/order/order_base.html:143
+#: order/templates/order/sales_order_base.html:157
+#: templates/js/translated/build.js:1669
msgid "Created"
msgstr ""
@@ -1235,7 +1255,7 @@ msgstr ""
msgid "Allocate Stock to Build"
msgstr ""
-#: build/templates/build/detail.html:177 templates/js/translated/build.js:1202
+#: build/templates/build/detail.html:177 templates/js/translated/build.js:1207
msgid "Unallocate stock"
msgstr ""
@@ -1257,7 +1277,7 @@ msgstr ""
#: build/templates/build/detail.html:185
#: company/templates/company/detail.html:38
-#: company/templates/company/detail.html:85 order/views.py:509
+#: company/templates/company/detail.html:85 order/views.py:463
#: part/templates/part/category.html:173
msgid "Order Parts"
msgstr ""
@@ -1309,8 +1329,8 @@ msgstr ""
#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:60
-#: order/templates/order/sales_order_detail.html:52
-#: order/templates/order/so_sidebar.html:9 part/templates/part/detail.html:193
+#: order/templates/order/sales_order_detail.html:107
+#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:193
#: part/templates/part/part_sidebar.html:48 stock/templates/stock/item.html:95
#: stock/templates/stock/stock_sidebar.html:19
msgid "Attachments"
@@ -1325,8 +1345,8 @@ msgstr ""
#: company/templates/company/detail.html:215
#: order/templates/order/purchase_order_detail.html:80
#: order/templates/order/purchase_order_detail.html:108
-#: order/templates/order/sales_order_detail.html:72
-#: order/templates/order/sales_order_detail.html:99
+#: order/templates/order/sales_order_detail.html:127
+#: order/templates/order/sales_order_detail.html:186
#: part/templates/part/detail.html:120 stock/templates/stock/item.html:115
#: stock/templates/stock/item.html:205
msgid "Edit Notes"
@@ -1384,7 +1404,7 @@ msgstr ""
msgid "Maximum output quantity is "
msgstr ""
-#: build/views.py:122 stock/serializers.py:361 stock/views.py:1290
+#: build/views.py:122 stock/serializers.py:363 stock/views.py:1257
msgid "Serial numbers already exist"
msgstr ""
@@ -1400,7 +1420,7 @@ msgstr ""
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:219 stock/views.py:385
+#: build/views.py:219 stock/views.py:352
msgid "Check the confirmation box"
msgstr ""
@@ -1469,7 +1489,7 @@ msgstr ""
msgid "Select {name} file to upload"
msgstr ""
-#: common/models.py:340 common/models.py:970 common/models.py:1178
+#: common/models.py:340 common/models.py:998 common/models.py:1206
msgid "Settings key (must be unique - case insensitive"
msgstr ""
@@ -1557,7 +1577,7 @@ msgstr ""
msgid "Allow download of remote images and files from external URL"
msgstr ""
-#: common/models.py:649 templates/InvenTree/settings/sidebar.html:30
+#: common/models.py:649 templates/InvenTree/settings/sidebar.html:31
msgid "Barcode Support"
msgstr ""
@@ -1623,7 +1643,7 @@ msgstr ""
#: common/models.py:703 part/models.py:2429 report/models.py:187
#: templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:373
+#: templates/js/translated/table_filters.js:404
msgid "Template"
msgstr ""
@@ -1633,7 +1653,7 @@ msgstr ""
#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:956
#: templates/js/translated/table_filters.js:168
-#: templates/js/translated/table_filters.js:385
+#: templates/js/translated/table_filters.js:416
msgid "Assembly"
msgstr ""
@@ -1642,7 +1662,7 @@ msgid "Parts can be assembled from other components by default"
msgstr ""
#: common/models.py:717 part/models.py:894
-#: templates/js/translated/table_filters.js:389
+#: templates/js/translated/table_filters.js:420
msgid "Component"
msgstr ""
@@ -1659,7 +1679,7 @@ msgid "Parts are purchaseable by default"
msgstr ""
#: common/models.py:731 part/models.py:910
-#: templates/js/translated/table_filters.js:397
+#: templates/js/translated/table_filters.js:428
msgid "Salable"
msgstr ""
@@ -1670,7 +1690,7 @@ msgstr ""
#: common/models.py:738 part/models.py:900
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:100
-#: templates/js/translated/table_filters.js:401
+#: templates/js/translated/table_filters.js:432
msgid "Trackable"
msgstr ""
@@ -1932,230 +1952,262 @@ msgstr ""
msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:1001
+#: common/models.py:961
+msgid "Enable URL integration"
+msgstr ""
+
+#: common/models.py:962
+msgid "Enable plugins to add URL routes"
+msgstr ""
+
+#: common/models.py:968
+msgid "Enable navigation integration"
+msgstr ""
+
+#: common/models.py:969
+msgid "Enable plugins to integrate into navigation"
+msgstr ""
+
+#: common/models.py:975
+msgid "Enable global setting integration"
+msgstr ""
+
+#: common/models.py:976
+msgid "Enable plugins to integrate into inventree global settings"
+msgstr ""
+
+#: common/models.py:982
+msgid "Enable app integration"
+msgstr ""
+
+#: common/models.py:983
+msgid "Enable plugins to add apps"
+msgstr ""
+
+#: common/models.py:1029
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:1002
+#: common/models.py:1030
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:1007
+#: common/models.py:1035
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:1008
+#: common/models.py:1036
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:1013
+#: common/models.py:1041
msgid "Show latest parts"
msgstr ""
-#: common/models.py:1014
+#: common/models.py:1042
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:1019
+#: common/models.py:1047
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:1020
+#: common/models.py:1048
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:1026
+#: common/models.py:1054
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1027
+#: common/models.py:1055
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1032
+#: common/models.py:1060
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:1033
+#: common/models.py:1061
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:1038
+#: common/models.py:1066
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:1039
+#: common/models.py:1067
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:1044
+#: common/models.py:1072
msgid "Show low stock"
msgstr ""
-#: common/models.py:1045
+#: common/models.py:1073
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:1050
+#: common/models.py:1078
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:1051
+#: common/models.py:1079
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:1056
+#: common/models.py:1084
msgid "Show needed stock"
msgstr ""
-#: common/models.py:1057
+#: common/models.py:1085
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1062
+#: common/models.py:1090
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1063
+#: common/models.py:1091
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1068
+#: common/models.py:1096
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1069
+#: common/models.py:1097
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1074
+#: common/models.py:1102
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1075
+#: common/models.py:1103
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:1080
+#: common/models.py:1108
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:1081
+#: common/models.py:1109
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:1086
+#: common/models.py:1114
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:1087
+#: common/models.py:1115
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:1092
+#: common/models.py:1120
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:1093
+#: common/models.py:1121
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:1098
+#: common/models.py:1126
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:1099
+#: common/models.py:1127
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:1104
+#: common/models.py:1132
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:1105
+#: common/models.py:1133
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:1111
+#: common/models.py:1139
msgid "Inline label display"
msgstr ""
-#: common/models.py:1112
+#: common/models.py:1140
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1118
+#: common/models.py:1146
msgid "Inline report display"
msgstr ""
-#: common/models.py:1119
+#: common/models.py:1147
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1125
+#: common/models.py:1153
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:1126
+#: common/models.py:1154
msgid "Number of results to show in search preview window"
msgstr ""
-#: common/models.py:1132
+#: common/models.py:1160
msgid "Search Show Stock"
msgstr ""
-#: common/models.py:1133
+#: common/models.py:1161
msgid "Display stock levels in search preview window"
msgstr ""
-#: common/models.py:1139
+#: common/models.py:1167
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:1140
+#: common/models.py:1168
msgid "Hide inactive parts in search preview window"
msgstr ""
-#: common/models.py:1146
+#: common/models.py:1174
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:1147
+#: common/models.py:1175
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:1153
+#: common/models.py:1181
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1154
+#: common/models.py:1182
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1160
+#: common/models.py:1188
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:1161
+#: common/models.py:1189
msgid "InvenTree navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:1226 company/forms.py:43
+#: common/models.py:1254 company/forms.py:43
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1233 company/serializers.py:264
+#: common/models.py:1261 company/serializers.py:264
#: company/templates/company/supplier_part.html:256
#: templates/js/translated/part.js:852 templates/js/translated/part.js:1801
msgid "Price"
msgstr ""
-#: common/models.py:1234
+#: common/models.py:1262
msgid "Unit price at specified quantity"
msgstr ""
#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49
-#: order/templates/order/purchase_order_detail.html:24 order/views.py:289
+#: order/templates/order/purchase_order_detail.html:24 order/views.py:243
#: part/templates/part/bom_upload/upload_file.html:52
#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:212
#: part/views.py:858
@@ -2163,7 +2215,7 @@ msgid "Upload File"
msgstr ""
#: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52
-#: order/views.py:290 part/templates/part/bom_upload/match_fields.html:52
+#: order/views.py:244 part/templates/part/bom_upload/match_fields.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:45
#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:213
#: part/views.py:859
@@ -2195,6 +2247,7 @@ msgid "Previous Step"
msgstr ""
#: company/forms.py:24 part/forms.py:46
+#: templates/InvenTree/settings/mixins/urls.html:12
msgid "URL"
msgstr ""
@@ -2211,6 +2264,7 @@ msgid "Description of the company"
msgstr ""
#: company/models.py:112 company/templates/company/company_base.html:97
+#: templates/InvenTree/settings/plugin_settings.html:55
#: templates/js/translated/company.js:349
msgid "Website"
msgstr ""
@@ -2285,7 +2339,7 @@ msgid "Does this company manufacture parts?"
msgstr ""
#: company/models.py:152 company/serializers.py:270
-#: company/templates/company/company_base.html:103 stock/serializers.py:177
+#: company/templates/company/company_base.html:103 stock/serializers.py:179
msgid "Currency"
msgstr ""
@@ -2293,12 +2347,12 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:320 company/models.py:535 stock/models.py:474
+#: company/models.py:320 company/models.py:535 stock/models.py:468
#: stock/templates/stock/item_base.html:135
msgid "Base Part"
msgstr ""
-#: company/models.py:324 company/models.py:539 order/views.py:912
+#: company/models.py:324 company/models.py:539
msgid "Select part"
msgstr ""
@@ -2319,7 +2373,7 @@ msgstr ""
#: company/models.py:342 company/templates/company/manufacturer_part.html:96
#: company/templates/company/supplier_part.html:105
#: templates/js/translated/company.js:530
-#: templates/js/translated/company.js:815 templates/js/translated/order.js:873
+#: templates/js/translated/company.js:815 templates/js/translated/order.js:1038
#: templates/js/translated/part.js:243 templates/js/translated/part.js:832
msgid "MPN"
msgstr ""
@@ -2349,8 +2403,8 @@ msgstr ""
#: company/models.py:422
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:1857 templates/js/translated/company.js:644
-#: templates/js/translated/part.js:652 templates/js/translated/stock.js:960
+#: stock/models.py:1845 templates/js/translated/company.js:644
+#: templates/js/translated/part.js:652 templates/js/translated/stock.js:1117
msgid "Value"
msgstr ""
@@ -2360,7 +2414,7 @@ msgstr ""
#: company/models.py:429 part/models.py:882 part/models.py:2397
#: part/templates/part/part_base.html:288
-#: templates/InvenTree/settings/settings.html:264
+#: templates/InvenTree/settings/settings.html:273
#: templates/js/translated/company.js:650 templates/js/translated/part.js:658
msgid "Units"
msgstr ""
@@ -2374,12 +2428,12 @@ msgid "Linked manufacturer part must reference the same base part"
msgstr ""
#: company/models.py:545 company/templates/company/company_base.html:78
-#: company/templates/company/supplier_part.html:87 order/models.py:263
+#: company/templates/company/supplier_part.html:87 order/models.py:224
#: order/templates/order/order_base.html:112
#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219
#: part/bom.py:247 stock/templates/stock/item_base.html:398
#: templates/js/translated/company.js:337
-#: templates/js/translated/company.js:771 templates/js/translated/order.js:667
+#: templates/js/translated/company.js:771 templates/js/translated/order.js:823
#: templates/js/translated/part.js:213 templates/js/translated/part.js:800
msgid "Supplier"
msgstr ""
@@ -2389,7 +2443,7 @@ msgid "Select supplier"
msgstr ""
#: company/models.py:551 company/templates/company/supplier_part.html:91
-#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:860
+#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:1025
#: templates/js/translated/part.js:224 templates/js/translated/part.js:818
msgid "SKU"
msgstr ""
@@ -2425,8 +2479,8 @@ msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:582 company/templates/company/supplier_part.html:112
-#: stock/models.py:497 stock/templates/stock/item_base.html:339
-#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1448
+#: stock/models.py:491 stock/templates/stock/item_base.html:339
+#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1612
msgid "Packaging"
msgstr ""
@@ -2457,7 +2511,7 @@ msgid "Company"
msgstr ""
#: company/templates/company/company_base.html:22
-#: templates/js/translated/order.js:121
+#: templates/js/translated/order.js:279
msgid "Create Purchase Order"
msgstr ""
@@ -2493,11 +2547,12 @@ msgstr ""
msgid "Download image from URL"
msgstr ""
-#: company/templates/company/company_base.html:83 order/models.py:567
-#: order/templates/order/sales_order_base.html:115 stock/models.py:515
-#: stock/models.py:516 stock/templates/stock/item_base.html:291
-#: templates/js/translated/company.js:329 templates/js/translated/order.js:1072
-#: templates/js/translated/stock.js:2084
+#: company/templates/company/company_base.html:83 order/models.py:547
+#: order/templates/order/sales_order_base.html:115 stock/models.py:509
+#: stock/models.py:510 stock/serializers.py:610
+#: stock/templates/stock/item_base.html:291
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1240
+#: templates/js/translated/stock.js:2259
msgid "Customer"
msgstr ""
@@ -2580,7 +2635,7 @@ msgstr ""
#: order/templates/order/purchase_orders.html:12
#: part/templates/part/detail.html:64 part/templates/part/part_sidebar.html:33
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:203
-#: templates/InvenTree/settings/sidebar.html:44 templates/navbar.html:45
+#: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47
#: users/models.py:45
msgid "Purchase Orders"
msgstr ""
@@ -2602,7 +2657,7 @@ msgstr ""
#: order/templates/order/sales_orders.html:15
#: part/templates/part/detail.html:87 part/templates/part/part_sidebar.html:37
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:223
-#: templates/InvenTree/settings/sidebar.html:46 templates/navbar.html:56
+#: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58
#: users/models.py:46
msgid "Sales Orders"
msgstr ""
@@ -2618,7 +2673,7 @@ msgid "New Sales Order"
msgstr ""
#: company/templates/company/detail.html:168
-#: templates/js/translated/build.js:999
+#: templates/js/translated/build.js:1004
msgid "Assigned Stock"
msgstr ""
@@ -2644,7 +2699,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:14 company/views.py:55
#: part/templates/part/prices.html:167 templates/InvenTree/search.html:184
-#: templates/navbar.html:44
+#: templates/navbar.html:46
msgid "Manufacturers"
msgstr ""
@@ -2673,7 +2728,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:114
#: company/templates/company/supplier_part.html:15 company/views.py:49
#: part/templates/part/part_sidebar.html:31 part/templates/part/prices.html:163
-#: templates/InvenTree/search.html:194 templates/navbar.html:43
+#: templates/InvenTree/search.html:194 templates/navbar.html:45
msgid "Suppliers"
msgstr ""
@@ -2687,7 +2742,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:254
#: part/templates/part/detail.html:344 part/templates/part/detail.html:372
#: templates/js/translated/company.js:425 templates/js/translated/helpers.js:31
-#: users/models.py:204
+#: users/models.py:206
msgid "Delete"
msgstr ""
@@ -2739,9 +2794,9 @@ msgid "Assigned Stock Items"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:482
+#: company/templates/company/supplier_part.html:24 stock/models.py:476
#: stock/templates/stock/item_base.html:403
-#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1405
+#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1569
msgid "Supplier Part"
msgstr ""
@@ -2767,7 +2822,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:142
#: part/templates/part/detail.html:21 stock/templates/stock/location.html:163
-#: templates/js/translated/stock.js:355
+#: templates/js/translated/stock.js:359
msgid "New Stock Item"
msgstr ""
@@ -2817,11 +2872,11 @@ msgstr ""
#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:14
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:156
-#: templates/InvenTree/settings/sidebar.html:40
+#: templates/InvenTree/settings/sidebar.html:41
#: templates/js/translated/bom.js:216 templates/js/translated/part.js:434
#: templates/js/translated/part.js:569 templates/js/translated/part.js:1059
-#: templates/js/translated/part.js:1220 templates/js/translated/stock.js:591
-#: templates/js/translated/stock.js:1244 templates/navbar.html:26
+#: templates/js/translated/part.js:1220 templates/js/translated/stock.js:748
+#: templates/js/translated/stock.js:1401 templates/navbar.html:28
msgid "Stock"
msgstr ""
@@ -2844,7 +2899,7 @@ msgstr ""
#: stock/templates/stock/location.html:147
#: stock/templates/stock/location.html:159
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1983
+#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:2158
#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
msgid "Stock Items"
msgstr ""
@@ -2858,7 +2913,7 @@ msgid "New Manufacturer"
msgstr ""
#: company/views.py:61 templates/InvenTree/search.html:214
-#: templates/navbar.html:55
+#: templates/navbar.html:57
msgid "Customers"
msgstr ""
@@ -2960,284 +3015,374 @@ msgstr ""
msgid "Part query filters (comma-separated value of key=value pairs)"
msgstr ""
-#: order/forms.py:26 order/templates/order/order_base.html:52
+#: order/forms.py:24 order/templates/order/order_base.html:52
msgid "Place order"
msgstr ""
-#: order/forms.py:37 order/templates/order/order_base.html:60
+#: order/forms.py:35 order/templates/order/order_base.html:60
msgid "Mark order as complete"
msgstr ""
-#: order/forms.py:48 order/forms.py:59 order/templates/order/order_base.html:47
+#: order/forms.py:46 order/forms.py:57 order/templates/order/order_base.html:47
#: order/templates/order/sales_order_base.html:60
msgid "Cancel order"
msgstr ""
-#: order/forms.py:70
-msgid "Ship order"
-msgstr ""
-
-#: order/forms.py:98
-msgid "Enter stock item serial numbers"
-msgstr ""
-
-#: order/forms.py:104
-msgid "Enter quantity of stock items"
-msgstr ""
-
-#: order/models.py:161
+#: order/models.py:122
msgid "Order description"
msgstr ""
-#: order/models.py:163
+#: order/models.py:124
msgid "Link to external page"
msgstr ""
-#: order/models.py:171
+#: order/models.py:132
msgid "Created By"
msgstr ""
-#: order/models.py:178
+#: order/models.py:139
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:183
+#: order/models.py:144
msgid "Order notes"
msgstr ""
-#: order/models.py:250 order/models.py:557
+#: order/models.py:211 order/models.py:537
msgid "Order reference"
msgstr ""
-#: order/models.py:255 order/models.py:572
+#: order/models.py:216 order/models.py:552
msgid "Purchase order status"
msgstr ""
-#: order/models.py:264
+#: order/models.py:225
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:267 order/templates/order/order_base.html:118
-#: templates/js/translated/order.js:676
+#: order/models.py:228 order/templates/order/order_base.html:118
+#: templates/js/translated/order.js:832
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:267
+#: order/models.py:228
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:274
+#: order/models.py:235
msgid "received by"
msgstr ""
-#: order/models.py:279
+#: order/models.py:240
msgid "Issue Date"
msgstr ""
-#: order/models.py:280
+#: order/models.py:241
msgid "Date order was issued"
msgstr ""
-#: order/models.py:285
+#: order/models.py:246
msgid "Target Delivery Date"
msgstr ""
-#: order/models.py:286
+#: order/models.py:247
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:292
+#: order/models.py:253
msgid "Date order was completed"
msgstr ""
-#: order/models.py:321
+#: order/models.py:282
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:431
+#: order/models.py:411
msgid "Quantity must be an integer"
msgstr ""
-#: order/models.py:435
+#: order/models.py:415
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:568
+#: order/models.py:548
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:574
+#: order/models.py:554
msgid "Customer Reference "
msgstr ""
-#: order/models.py:574
+#: order/models.py:554
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:579
+#: order/models.py:559
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:582 templates/js/translated/order.js:1113
+#: order/models.py:562 order/models.py:1026
+#: templates/js/translated/order.js:1281 templates/js/translated/order.js:1429
msgid "Shipment Date"
msgstr ""
-#: order/models.py:589
+#: order/models.py:569
msgid "shipped by"
msgstr ""
-#: order/models.py:633
-msgid "SalesOrder cannot be shipped as it is not currently pending"
+#: order/models.py:634
+msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:730
+#: order/models.py:639
+msgid "Only a pending order can be marked as complete"
+msgstr ""
+
+#: order/models.py:643
+msgid "Order cannot be completed as there are incomplete shipments"
+msgstr ""
+
+#: order/models.py:647
+msgid "Order cannot be completed as there are incomplete line items"
+msgstr ""
+
+#: order/models.py:795
msgid "Item quantity"
msgstr ""
-#: order/models.py:736
+#: order/models.py:801
msgid "Line item reference"
msgstr ""
-#: order/models.py:738
+#: order/models.py:803
msgid "Line item notes"
msgstr ""
-#: order/models.py:768 order/models.py:856
-#: templates/js/translated/order.js:1165
+#: order/models.py:833 order/models.py:924 order/models.py:1020
+#: templates/js/translated/order.js:1820
msgid "Order"
msgstr ""
-#: order/models.py:769 order/templates/order/order_base.html:9
+#: order/models.py:834 order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:353
-#: templates/js/translated/order.js:638 templates/js/translated/part.js:775
-#: templates/js/translated/stock.js:1382 templates/js/translated/stock.js:2065
+#: templates/js/translated/order.js:801 templates/js/translated/part.js:775
+#: templates/js/translated/stock.js:1546 templates/js/translated/stock.js:2240
msgid "Purchase Order"
msgstr ""
-#: order/models.py:790
+#: order/models.py:855
msgid "Supplier part"
msgstr ""
-#: order/models.py:797 order/templates/order/order_base.html:151
-#: order/templates/order/sales_order_base.html:155
-#: templates/js/translated/order.js:429 templates/js/translated/order.js:953
+#: order/models.py:862 order/templates/order/order_base.html:163
+#: templates/js/translated/order.js:589 templates/js/translated/order.js:1118
#: templates/js/translated/part.js:847 templates/js/translated/part.js:873
+#: templates/js/translated/table_filters.js:317
msgid "Received"
msgstr ""
-#: order/models.py:798
+#: order/models.py:863
msgid "Number of items received"
msgstr ""
-#: order/models.py:805 part/templates/part/prices.html:176 stock/models.py:609
-#: stock/serializers.py:168 stock/templates/stock/item_base.html:360
-#: templates/js/translated/stock.js:1436
+#: order/models.py:870 part/templates/part/prices.html:176 stock/models.py:603
+#: stock/serializers.py:170 stock/templates/stock/item_base.html:360
+#: templates/js/translated/stock.js:1600
msgid "Purchase Price"
msgstr ""
-#: order/models.py:806
+#: order/models.py:871
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:814
+#: order/models.py:879
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:866 part/templates/part/part_pricing.html:112
+#: order/models.py:934 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:116 part/templates/part/prices.html:284
msgid "Sale Price"
msgstr ""
-#: order/models.py:867
+#: order/models.py:935
msgid "Unit sale price"
msgstr ""
-#: order/models.py:946 order/models.py:948
+#: order/models.py:940
+msgid "Shipped quantity"
+msgstr ""
+
+#: order/models.py:1027
+msgid "Date of shipment"
+msgstr ""
+
+#: order/models.py:1034
+msgid "Checked By"
+msgstr ""
+
+#: order/models.py:1035
+msgid "User who checked this shipment"
+msgstr ""
+
+#: order/models.py:1043
+msgid "Shipment number"
+msgstr ""
+
+#: order/models.py:1050
+msgid "Shipment notes"
+msgstr ""
+
+#: order/models.py:1057
+msgid "Tracking Number"
+msgstr ""
+
+#: order/models.py:1058
+msgid "Shipment tracking information"
+msgstr ""
+
+#: order/models.py:1068
+msgid "Shipment has already been sent"
+msgstr ""
+
+#: order/models.py:1071
+msgid "Shipment has no allocated stock items"
+msgstr ""
+
+#: order/models.py:1147 order/models.py:1149
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:952
+#: order/models.py:1153
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:954
+#: order/models.py:1155
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:957
+#: order/models.py:1158
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:961
+#: order/models.py:1162
msgid "StockItem is over-allocated"
msgstr ""
-#: order/models.py:967
+#: order/models.py:1168 order/serializers.py:734
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:975
+#: order/models.py:1171
+msgid "Sales order does not match shipment"
+msgstr ""
+
+#: order/models.py:1172
+msgid "Shipment does not match sales order"
+msgstr ""
+
+#: order/models.py:1180
msgid "Line"
msgstr ""
-#: order/models.py:987
+#: order/models.py:1188 order/serializers.py:825 order/serializers.py:953
+#: templates/js/translated/model_renderers.js:251
+msgid "Shipment"
+msgstr ""
+
+#: order/models.py:1189
+msgid "Sales order shipment reference"
+msgstr ""
+
+#: order/models.py:1201
msgid "Item"
msgstr ""
-#: order/models.py:988
+#: order/models.py:1202
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:991
+#: order/models.py:1205
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/serializers.py:175
+#: order/serializers.py:173
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:213
+#: order/serializers.py:211 order/serializers.py:790
msgid "Line Item"
msgstr ""
-#: order/serializers.py:219
+#: order/serializers.py:217
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:229 order/serializers.py:297
+#: order/serializers.py:227 order/serializers.py:295
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:253
+#: order/serializers.py:251
msgid "Barcode Hash"
msgstr ""
-#: order/serializers.py:254
+#: order/serializers.py:252
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:271
+#: order/serializers.py:269
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:309
+#: order/serializers.py:307
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:326
+#: order/serializers.py:324
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:337
+#: order/serializers.py:335
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:578
+#: order/serializers.py:581
msgid "Sale price currency"
msgstr ""
+#: order/serializers.py:649
+msgid "No shipment details provided"
+msgstr ""
+
+#: order/serializers.py:699 order/serializers.py:802
+msgid "Line item is not associated with this order"
+msgstr ""
+
+#: order/serializers.py:721
+msgid "Quantity must be positive"
+msgstr ""
+
+#: order/serializers.py:815
+msgid "Enter serial numbers to allocate"
+msgstr ""
+
+#: order/serializers.py:839 order/serializers.py:964
+msgid "Shipment has already been shipped"
+msgstr ""
+
+#: order/serializers.py:842 order/serializers.py:967
+msgid "Shipment is not associated with this order"
+msgstr ""
+
+#: order/serializers.py:894
+msgid "No match found for the following serial numbers"
+msgstr ""
+
+#: order/serializers.py:904
+msgid "The following serial numbers are already allocated"
+msgstr ""
+
#: order/templates/order/delete_attachment.html:5
#: stock/templates/stock/attachment_delete.html:5
msgid "Are you sure you want to delete this attachment?"
@@ -3271,7 +3416,8 @@ msgstr ""
msgid "Receive Items"
msgstr ""
-#: order/templates/order/order_base.html:62 order/views.py:185
+#: order/templates/order/order_base.html:62
+#: order/templates/order/sales_order_base.html:67 order/views.py:181
msgid "Complete Order"
msgstr ""
@@ -3290,12 +3436,23 @@ msgstr ""
msgid "Order Status"
msgstr ""
-#: order/templates/order/order_base.html:137
+#: order/templates/order/order_base.html:124
+#: order/templates/order/sales_order_base.html:128
+msgid "Completed Line Items"
+msgstr ""
+
+#: order/templates/order/order_base.html:130
+#: order/templates/order/sales_order_base.html:134
+#: order/templates/order/sales_order_base.html:144
+msgid "Incomplete"
+msgstr ""
+
+#: order/templates/order/order_base.html:149
#: report/templates/report/inventree_build_order_base.html:122
msgid "Issued"
msgstr ""
-#: order/templates/order/order_base.html:207
+#: order/templates/order/order_base.html:219
msgid "Edit Purchase Order"
msgstr ""
@@ -3371,8 +3528,9 @@ msgstr ""
#: part/templates/part/import_wizard/ajax_match_references.html:42
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
-#: templates/js/translated/build.js:240 templates/js/translated/build.js:1251
-#: templates/js/translated/order.js:377
+#: templates/js/translated/build.js:245 templates/js/translated/build.js:1256
+#: templates/js/translated/order.js:537 templates/js/translated/order.js:1488
+#: templates/js/translated/stock.js:592
msgid "Remove row"
msgstr ""
@@ -3453,7 +3611,8 @@ msgid "Select existing purchase orders, or create new orders."
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:31
-#: templates/js/translated/order.js:694 templates/js/translated/order.js:1118
+#: templates/js/translated/order.js:859 templates/js/translated/order.js:1286
+#: templates/js/translated/order.js:1416
msgid "Items"
msgstr ""
@@ -3489,7 +3648,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:27
#: order/templates/order/purchase_order_detail.html:181
#: order/templates/order/sales_order_detail.html:23
-#: order/templates/order/sales_order_detail.html:157
+#: order/templates/order/sales_order_detail.html:244
msgid "Add Line Item"
msgstr ""
@@ -3502,7 +3661,7 @@ msgid "Received Items"
msgstr ""
#: order/templates/order/purchase_order_detail.html:76
-#: order/templates/order/sales_order_detail.html:68
+#: order/templates/order/sales_order_detail.html:123
msgid "Order Notes"
msgstr ""
@@ -3520,8 +3679,8 @@ msgid "Print packing list"
msgstr ""
#: order/templates/order/sales_order_base.html:66
-#: order/templates/order/sales_order_base.html:67 order/views.py:222
-msgid "Ship Order"
+#: order/templates/order/sales_order_base.html:229
+msgid "Complete Sales Order"
msgstr ""
#: order/templates/order/sales_order_base.html:102
@@ -3529,16 +3688,21 @@ msgid "This Sales Order has not been fully allocated"
msgstr ""
#: order/templates/order/sales_order_base.html:122
-#: templates/js/translated/order.js:1085
+#: templates/js/translated/order.js:1253
msgid "Customer Reference"
msgstr ""
-#: order/templates/order/sales_order_base.html:195
+#: order/templates/order/sales_order_base.html:140
+#: order/templates/order/sales_order_detail.html:78
+#: order/templates/order/so_sidebar.html:11
+msgid "Completed Shipments"
+msgstr ""
+
+#: order/templates/order/sales_order_base.html:215
msgid "Edit Sales Order"
msgstr ""
#: order/templates/order/sales_order_cancel.html:8
-#: order/templates/order/sales_order_ship.html:9
#: part/templates/part/bom_duplicate.html:12
#: stock/templates/stock/stockitem_convert.html:13
msgid "Warning"
@@ -3552,146 +3716,100 @@ msgstr ""
msgid "Sales Order Items"
msgstr ""
-#: order/templates/order/sales_order_ship.html:10
-msgid "This order has not been fully allocated. If the order is marked as shipped, it can no longer be adjusted."
+#: order/templates/order/sales_order_detail.html:44
+#: order/templates/order/so_sidebar.html:8
+msgid "Pending Shipments"
msgstr ""
-#: order/templates/order/sales_order_ship.html:12
-msgid "Ensure that the order allocation is correct before shipping the order."
+#: order/templates/order/sales_order_detail.html:48
+#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1188
+msgid "Actions"
msgstr ""
-#: order/templates/order/sales_order_ship.html:18
-msgid "Some line items in this order have been over-allocated"
+#: order/templates/order/sales_order_detail.html:57
+msgid "New Shipment"
msgstr ""
-#: order/templates/order/sales_order_ship.html:20
-msgid "Ensure that this is correct before shipping the order."
-msgstr ""
-
-#: order/templates/order/sales_order_ship.html:27
-msgid "Shipping this order means that the order will no longer be editable."
-msgstr ""
-
-#: order/templates/order/so_allocate_by_serial.html:9
-msgid "Allocate stock items by serial number"
-msgstr ""
-
-#: order/views.py:103
+#: order/views.py:99
msgid "Cancel Order"
msgstr ""
-#: order/views.py:112 order/views.py:138
+#: order/views.py:108 order/views.py:134
msgid "Confirm order cancellation"
msgstr ""
-#: order/views.py:115 order/views.py:141
+#: order/views.py:111 order/views.py:137
msgid "Order cannot be cancelled"
msgstr ""
-#: order/views.py:129
+#: order/views.py:125
msgid "Cancel sales order"
msgstr ""
-#: order/views.py:155
+#: order/views.py:151
msgid "Issue Order"
msgstr ""
-#: order/views.py:164
+#: order/views.py:160
msgid "Confirm order placement"
msgstr ""
-#: order/views.py:174
+#: order/views.py:170
msgid "Purchase order issued"
msgstr ""
-#: order/views.py:201
+#: order/views.py:197
msgid "Confirm order completion"
msgstr ""
-#: order/views.py:212
+#: order/views.py:208
msgid "Purchase order completed"
msgstr ""
-#: order/views.py:238
-msgid "Confirm order shipment"
-msgstr ""
-
-#: order/views.py:244
-msgid "Could not ship order"
-msgstr ""
-
-#: order/views.py:291
+#: order/views.py:245
msgid "Match Supplier Parts"
msgstr ""
-#: order/views.py:535
+#: order/views.py:489
msgid "Update prices"
msgstr ""
-#: order/views.py:793
+#: order/views.py:747
#, python-brace-format
msgid "Ordered {n} parts"
msgstr ""
-#: order/views.py:846
-msgid "Allocate Serial Numbers"
-msgstr ""
-
-#: order/views.py:891
-#, python-brace-format
-msgid "Allocated {n} items"
-msgstr ""
-
-#: order/views.py:907
-msgid "Select line item"
-msgstr ""
-
-#: order/views.py:938
-#, python-brace-format
-msgid "No matching item for serial {serial}"
-msgstr ""
-
-#: order/views.py:948
-#, python-brace-format
-msgid "{serial} is not in stock"
-msgstr ""
-
-#: order/views.py:956
-#, python-brace-format
-msgid "{serial} already allocated to an order"
-msgstr ""
-
-#: order/views.py:1072
+#: order/views.py:858
msgid "Sales order not found"
msgstr ""
-#: order/views.py:1078
+#: order/views.py:864
msgid "Price not found"
msgstr ""
-#: order/views.py:1081
+#: order/views.py:867
#, python-brace-format
msgid "Updated {part} unit-price to {price}"
msgstr ""
-#: order/views.py:1086
+#: order/views.py:872
#, python-brace-format
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/api.py:758
+#: part/api.py:760
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:762
+#: part/api.py:764
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:777
+#: part/api.py:779
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:808 part/api.py:812 part/api.py:827 part/api.py:831
+#: part/api.py:810 part/api.py:814 part/api.py:829 part/api.py:833
msgid "This field is required"
msgstr ""
@@ -3828,8 +3946,8 @@ msgstr ""
#: part/templates/part/category.html:149
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:88
-#: templates/InvenTree/settings/sidebar.html:36
-#: templates/js/translated/part.js:1597 templates/navbar.html:19
+#: templates/InvenTree/settings/sidebar.html:37
+#: templates/js/translated/part.js:1597 templates/navbar.html:21
#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
msgid "Parts"
msgstr ""
@@ -3895,7 +4013,7 @@ msgstr ""
#: part/models.py:778 part/models.py:2223 part/models.py:2472
#: part/templates/part/part_base.html:265
#: part/templates/part/set_category.html:15
-#: templates/InvenTree/settings/settings.html:163
+#: templates/InvenTree/settings/settings.html:172
#: templates/js/translated/part.js:1202
msgid "Category"
msgstr ""
@@ -3906,7 +4024,7 @@ msgstr ""
#: part/models.py:784 part/templates/part/part_base.html:274
#: templates/js/translated/part.js:557 templates/js/translated/part.js:1155
-#: templates/js/translated/stock.js:1216
+#: templates/js/translated/stock.js:1373
msgid "IPN"
msgstr ""
@@ -3975,10 +4093,11 @@ msgstr ""
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:915 templates/js/translated/table_filters.js:34
+#: part/models.py:915 plugin/models.py:45
+#: templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:96
-#: templates/js/translated/table_filters.js:290
-#: templates/js/translated/table_filters.js:368
+#: templates/js/translated/table_filters.js:295
+#: templates/js/translated/table_filters.js:399
msgid "Active"
msgstr ""
@@ -4027,7 +4146,7 @@ msgid "Test with this name already exists for this part"
msgstr ""
#: part/models.py:2310 templates/js/translated/part.js:1648
-#: templates/js/translated/stock.js:940
+#: templates/js/translated/stock.js:1097
msgid "Test Name"
msgstr ""
@@ -4044,7 +4163,7 @@ msgid "Enter description for this test"
msgstr ""
#: part/models.py:2322 templates/js/translated/part.js:1657
-#: templates/js/translated/table_filters.js:276
+#: templates/js/translated/table_filters.js:281
msgid "Required"
msgstr ""
@@ -4086,7 +4205,7 @@ msgid "Parameter Units"
msgstr ""
#: part/models.py:2429 part/models.py:2478 part/models.py:2479
-#: templates/InvenTree/settings/settings.html:158
+#: templates/InvenTree/settings/settings.html:167
msgid "Parameter Template"
msgstr ""
@@ -4098,7 +4217,7 @@ msgstr ""
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2483 templates/InvenTree/settings/settings.html:167
+#: part/models.py:2483 templates/InvenTree/settings/settings.html:176
msgid "Default Value"
msgstr ""
@@ -4175,7 +4294,7 @@ msgstr ""
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2686 stock/models.py:361
+#: part/models.py:2686 stock/models.py:355
msgid "Quantity must be integer value for trackable parts"
msgstr ""
@@ -4724,8 +4843,8 @@ msgstr ""
msgid "This part is a variant of %(link)s"
msgstr ""
-#: part/templates/part/part_base.html:190 templates/js/translated/order.js:1545
-#: templates/js/translated/table_filters.js:188
+#: part/templates/part/part_base.html:190 templates/js/translated/order.js:2217
+#: templates/js/translated/table_filters.js:193
msgid "In Stock"
msgstr ""
@@ -5099,6 +5218,78 @@ msgstr ""
msgid "Delete Internal Price Break"
msgstr ""
+#: plugin/integration.py:116
+msgid "No author found"
+msgstr ""
+
+#: plugin/integration.py:128
+msgid "No date found"
+msgstr ""
+
+#: plugin/models.py:25
+msgid "Plugin Configuration"
+msgstr ""
+
+#: plugin/models.py:26
+msgid "Plugin Configurations"
+msgstr ""
+
+#: plugin/models.py:31
+msgid "Key"
+msgstr ""
+
+#: plugin/models.py:32
+msgid "Key of plugin"
+msgstr ""
+
+#: plugin/models.py:40
+msgid "PluginName of the plugin"
+msgstr ""
+
+#: plugin/models.py:46
+msgid "Is the plugin active"
+msgstr ""
+
+#: plugin/samples/integration/sample.py:39
+msgid "Enable PO"
+msgstr ""
+
+#: plugin/samples/integration/sample.py:40
+msgid "Enable PO functionality in InvenTree interface"
+msgstr ""
+
+#: plugin/serializers.py:46
+msgid "Source URL"
+msgstr ""
+
+#: plugin/serializers.py:47
+msgid "Source for the package - this can be a custom registry or a VCS path"
+msgstr ""
+
+#: plugin/serializers.py:52
+msgid "Package Name"
+msgstr ""
+
+#: plugin/serializers.py:53
+msgid "Name for the Plugin Package - can also contain a version indicator"
+msgstr ""
+
+#: plugin/serializers.py:56
+msgid "Confirm plugin installation"
+msgstr ""
+
+#: plugin/serializers.py:57
+msgid "This will install this plugin now into the current instance. The instance will go into maintenance."
+msgstr ""
+
+#: plugin/serializers.py:72
+msgid "Installation not confirmed"
+msgstr ""
+
+#: plugin/serializers.py:74
+msgid "Either packagenmae of url must be provided"
+msgstr ""
+
#: report/api.py:234 report/api.py:278
#, python-brace-format
msgid "Template file '{filename}' is missing or does not exist"
@@ -5197,12 +5388,12 @@ msgid "Stock Item Test Report"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:520 stock/templates/stock/item_base.html:149
-#: templates/js/translated/build.js:233 templates/js/translated/build.js:637
-#: templates/js/translated/build.js:1013
+#: stock/models.py:514 stock/templates/stock/item_base.html:149
+#: templates/js/translated/build.js:238 templates/js/translated/build.js:642
+#: templates/js/translated/build.js:1018
#: templates/js/translated/model_renderers.js:95
-#: templates/js/translated/order.js:1287 templates/js/translated/order.js:1376
-#: templates/js/translated/stock.js:410
+#: templates/js/translated/order.js:99 templates/js/translated/order.js:1945
+#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:414
msgid "Serial Number"
msgstr ""
@@ -5211,17 +5402,19 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:93
-#: stock/models.py:1845
+#: stock/models.py:1833
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:94
-#: stock/models.py:1851
+#: stock/models.py:1839
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:97
-#: templates/js/translated/order.js:684 templates/js/translated/stock.js:1999
+#: templates/InvenTree/settings/plugin.html:49
+#: templates/InvenTree/settings/plugin_settings.html:38
+#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2174
msgid "Date"
msgstr ""
@@ -5239,302 +5432,318 @@ msgid "Installed Items"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
-#: templates/js/translated/stock.js:2259
+#: templates/js/translated/stock.js:577 templates/js/translated/stock.js:2434
msgid "Serial"
msgstr ""
-#: stock/api.py:422
+#: stock/api.py:446
msgid "Quantity is required"
msgstr ""
-#: stock/forms.py:91 stock/forms.py:265 stock/models.py:577
+#: stock/forms.py:77 stock/forms.py:251 stock/models.py:571
#: stock/templates/stock/item_base.html:186
-#: templates/js/translated/stock.js:1358
+#: templates/js/translated/stock.js:1522
msgid "Expiry Date"
msgstr ""
-#: stock/forms.py:92 stock/forms.py:266
+#: stock/forms.py:78 stock/forms.py:252
msgid "Expiration date for this stock item"
msgstr ""
-#: stock/forms.py:95
+#: stock/forms.py:81
msgid "Enter unique serial numbers (or leave blank)"
msgstr ""
-#: stock/forms.py:150
+#: stock/forms.py:136
msgid "Destination for serialized stock (by default, will remain in current location)"
msgstr ""
-#: stock/forms.py:152
+#: stock/forms.py:138
msgid "Serial numbers"
msgstr ""
-#: stock/forms.py:152
+#: stock/forms.py:138
msgid "Unique serial numbers (must match quantity)"
msgstr ""
-#: stock/forms.py:154 stock/forms.py:238
+#: stock/forms.py:140 stock/forms.py:224
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/forms.py:194
+#: stock/forms.py:180
msgid "Stock item to install"
msgstr ""
-#: stock/forms.py:224
+#: stock/forms.py:210
msgid "Must not exceed available quantity"
msgstr ""
-#: stock/forms.py:236
+#: stock/forms.py:222
msgid "Destination location for uninstalled items"
msgstr ""
-#: stock/forms.py:240
+#: stock/forms.py:226
msgid "Confirm uninstall"
msgstr ""
-#: stock/forms.py:240
+#: stock/forms.py:226
msgid "Confirm removal of installed stock items"
msgstr ""
-#: stock/models.py:60 stock/models.py:614
+#: stock/models.py:60 stock/models.py:608
#: stock/templates/stock/item_base.html:417
msgid "Owner"
msgstr ""
-#: stock/models.py:61 stock/models.py:615
+#: stock/models.py:61 stock/models.py:609
msgid "Select Owner"
msgstr ""
-#: stock/models.py:342
+#: stock/models.py:336
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:378
+#: stock/models.py:372
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:388 stock/models.py:397
+#: stock/models.py:382 stock/models.py:391
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:389
+#: stock/models.py:383
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:411
+#: stock/models.py:405
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:417
+#: stock/models.py:411
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:424
+#: stock/models.py:418
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:466
+#: stock/models.py:460
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:475
+#: stock/models.py:469
msgid "Base part"
msgstr ""
-#: stock/models.py:483
+#: stock/models.py:477
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:488 stock/templates/stock/location.html:12
+#: stock/models.py:482 stock/templates/stock/location.html:12
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:491
+#: stock/models.py:485
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:498
+#: stock/models.py:492
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:503 stock/templates/stock/item_base.html:299
+#: stock/models.py:497 stock/templates/stock/item_base.html:299
msgid "Installed In"
msgstr ""
-#: stock/models.py:506
+#: stock/models.py:500
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:522
+#: stock/models.py:516
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:536
+#: stock/models.py:530
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:540
+#: stock/models.py:534
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:549
+#: stock/models.py:543
msgid "Source Build"
msgstr ""
-#: stock/models.py:551
+#: stock/models.py:545
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:562
+#: stock/models.py:556
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:565
+#: stock/models.py:559
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:571
+#: stock/models.py:565
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:578
+#: stock/models.py:572
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:591
+#: stock/models.py:585
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:591
+#: stock/models.py:585
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:601 stock/templates/stock/item.html:111
+#: stock/models.py:595 stock/templates/stock/item.html:111
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:610
+#: stock/models.py:604
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:620
-msgid "Scheduled for deletion"
-msgstr ""
-
-#: stock/models.py:621
-msgid "This StockItem will be deleted by the background worker"
-msgstr ""
-
-#: stock/models.py:1084
+#: stock/models.py:1072
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1090
+#: stock/models.py:1078
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1096
+#: stock/models.py:1084
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1099
+#: stock/models.py:1087
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1102
+#: stock/models.py:1090
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1109
+#: stock/models.py:1097
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1267
+#: stock/models.py:1255
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1765
+#: stock/models.py:1753
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1822
+#: stock/models.py:1810
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1828
+#: stock/models.py:1816
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1846
+#: stock/models.py:1834
msgid "Test name"
msgstr ""
-#: stock/models.py:1852 templates/js/translated/table_filters.js:266
+#: stock/models.py:1840 templates/js/translated/table_filters.js:271
msgid "Test result"
msgstr ""
-#: stock/models.py:1858
+#: stock/models.py:1846
msgid "Test output value"
msgstr ""
-#: stock/models.py:1865
+#: stock/models.py:1853
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1871
+#: stock/models.py:1859
msgid "Test notes"
msgstr ""
-#: stock/serializers.py:171
+#: stock/serializers.py:173
msgid "Purchase price of this stock item"
msgstr ""
-#: stock/serializers.py:178
+#: stock/serializers.py:180
msgid "Purchase currency of this stock item"
msgstr ""
-#: stock/serializers.py:292
+#: stock/serializers.py:294
msgid "Enter number of stock items to serialize"
msgstr ""
-#: stock/serializers.py:307
+#: stock/serializers.py:309
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:313
+#: stock/serializers.py:315
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:324 stock/serializers.py:691
+#: stock/serializers.py:326 stock/serializers.py:814
msgid "Destination stock location"
msgstr ""
-#: stock/serializers.py:331
+#: stock/serializers.py:333
msgid "Optional note field"
msgstr ""
-#: stock/serializers.py:344
+#: stock/serializers.py:346
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:561
+#: stock/serializers.py:573
+msgid "Part must be salable"
+msgstr ""
+
+#: stock/serializers.py:577
+msgid "Item is allocated to a sales order"
+msgstr ""
+
+#: stock/serializers.py:581
+msgid "Item is allocated to a build order"
+msgstr ""
+
+#: stock/serializers.py:611
+msgid "Customer to assign stock items"
+msgstr ""
+
+#: stock/serializers.py:617
+msgid "Selected company is not a customer"
+msgstr ""
+
+#: stock/serializers.py:625
+msgid "Stock assignment notes"
+msgstr ""
+
+#: stock/serializers.py:635 stock/serializers.py:722
+msgid "A list of stock items must be provided"
+msgstr ""
+
+#: stock/serializers.py:684
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:589
+#: stock/serializers.py:712
msgid "Stock transaction notes"
msgstr ""
-#: stock/serializers.py:599
-msgid "A list of stock items must be provided"
-msgstr ""
-
#: stock/templates/stock/item.html:18
msgid "Stock Tracking Information"
msgstr ""
@@ -5572,7 +5781,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:137 stock/views.py:515
+#: stock/templates/stock/item.html:137 stock/views.py:482
msgid "Install Stock Item"
msgstr ""
@@ -5632,7 +5841,7 @@ msgstr ""
msgid "Transfer stock"
msgstr ""
-#: stock/templates/stock/item_base.html:85
+#: stock/templates/stock/item_base.html:85 templates/stock_table.html:53
msgid "Assign to customer"
msgstr ""
@@ -5694,7 +5903,7 @@ msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:190
-#: templates/js/translated/table_filters.js:247
+#: templates/js/translated/table_filters.js:252
msgid "Expired"
msgstr ""
@@ -5704,12 +5913,12 @@ msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:192
-#: templates/js/translated/table_filters.js:253
+#: templates/js/translated/table_filters.js:258
msgid "Stale"
msgstr ""
#: stock/templates/stock/item_base.html:199
-#: templates/js/translated/stock.js:1371
+#: templates/js/translated/stock.js:1535
msgid "Last Updated"
msgstr ""
@@ -5738,13 +5947,11 @@ msgid "This stock item has not passed all required tests"
msgstr ""
#: stock/templates/stock/item_base.html:255
-#, python-format
-msgid "This stock item is allocated to Sales Order %(link)s (Quantity: %(qty)s)"
+msgid "This stock item is allocated to Sales Order"
msgstr ""
#: stock/templates/stock/item_base.html:263
-#, python-format
-msgid "This stock item is allocated to Build %(link)s (Quantity: %(qty)s)"
+msgid "This stock item is allocated to Build Order"
msgstr ""
#: stock/templates/stock/item_base.html:269
@@ -5760,7 +5967,7 @@ msgid "This stock item will be automatically deleted when all stock is depleted.
msgstr ""
#: stock/templates/stock/item_base.html:318
-#: templates/js/translated/build.js:1035
+#: templates/js/translated/build.js:1040
msgid "No location set"
msgstr ""
@@ -5910,7 +6117,7 @@ msgstr ""
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:912
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:879
msgid "Convert Stock Item"
msgstr ""
@@ -5935,8 +6142,7 @@ msgstr ""
msgid "Edit Stock Location"
msgstr ""
-#: stock/views.py:269 stock/views.py:891 stock/views.py:1017
-#: stock/views.py:1299
+#: stock/views.py:269 stock/views.py:858 stock/views.py:984 stock/views.py:1266
msgid "Owner is required (ownership control is enabled)"
msgstr ""
@@ -5945,86 +6151,78 @@ msgid "Stock Location QR code"
msgstr ""
#: stock/views.py:303
-msgid "Assign to Customer"
-msgstr ""
-
-#: stock/views.py:312
-msgid "Customer must be specified"
-msgstr ""
-
-#: stock/views.py:336
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:345
+#: stock/views.py:312
msgid "Specify a valid location"
msgstr ""
-#: stock/views.py:356
+#: stock/views.py:323
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:367
+#: stock/views.py:334
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:384
+#: stock/views.py:351
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:489
+#: stock/views.py:456
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:663
+#: stock/views.py:630
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:760 templates/js/translated/stock.js:730
+#: stock/views.py:727 templates/js/translated/stock.js:887
msgid "Confirm stock adjustment"
msgstr ""
-#: stock/views.py:771
+#: stock/views.py:738
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:793 templates/js/translated/stock.js:319
+#: stock/views.py:760 templates/js/translated/stock.js:323
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:943
+#: stock/views.py:910
msgid "Create new Stock Location"
msgstr ""
-#: stock/views.py:1044
+#: stock/views.py:1011
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1186 templates/js/translated/stock.js:299
+#: stock/views.py:1153 templates/js/translated/stock.js:303
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1268
+#: stock/views.py:1235
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1368
+#: stock/views.py:1335
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:1381
+#: stock/views.py:1348
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1392
+#: stock/views.py:1359
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1399
+#: stock/views.py:1366
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1408
+#: stock/views.py:1375
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -6044,6 +6242,14 @@ msgstr ""
msgid "The requested page does not exist"
msgstr ""
+#: templates/503.html:10 templates/503.html:35
+msgid "Site is in Maintenance"
+msgstr ""
+
+#: templates/503.html:41
+msgid "The site is currently in maintenance and should be up again soon!"
+msgstr ""
+
#: templates/InvenTree/index.html:7
msgid "Index"
msgstr ""
@@ -6153,7 +6359,7 @@ msgid "Server Settings"
msgstr ""
#: templates/InvenTree/settings/login.html:9
-#: templates/InvenTree/settings/sidebar.html:28
+#: templates/InvenTree/settings/sidebar.html:29
msgid "Login Settings"
msgstr ""
@@ -6161,6 +6367,24 @@ msgstr ""
msgid "Signup"
msgstr ""
+#: templates/InvenTree/settings/mixins/settings.html:4
+#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:118
+msgid "Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/mixins/urls.html:4
+msgid "URLs"
+msgstr ""
+
+#: templates/InvenTree/settings/mixins/urls.html:6
+#, python-format
+msgid "The Base-URL for this plugin is %(base)s."
+msgstr ""
+
+#: templates/InvenTree/settings/mixins/urls.html:21
+msgid "open in new tab"
+msgstr ""
+
#: templates/InvenTree/settings/part.html:7
msgid "Part Settings"
msgstr ""
@@ -6177,6 +6401,126 @@ msgstr ""
msgid "Part Parameter Templates"
msgstr ""
+#: templates/InvenTree/settings/plugin.html:10
+msgid "Plugin Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:16
+msgid "Changing the settings below require you to immediatly restart InvenTree. Do not change this while under active usage."
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:32
+msgid "Plugin list"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:37
+#: templates/js/translated/plugin.js:15
+msgid "Install Plugin"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:46 templates/navbar.html:111
+#: users/models.py:39
+msgid "Admin"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:48
+#: templates/InvenTree/settings/plugin_settings.html:28
+msgid "Author"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:50
+#: templates/InvenTree/settings/plugin_settings.html:43
+msgid "Version"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:73
+#, python-format
+msgid "has %(name)s"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:91
+msgid "Inactive plugins"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:114
+msgid "Plugin Error Stack"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:123
+msgid "Stage"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:125
+msgid "Message"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:10
+#, python-format
+msgid "Plugin details for %(name)s"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:17
+msgid "Plugin information"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:48
+msgid "no version information supplied"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:62
+msgid "License"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:70
+msgid "The code information is pulled from the latest git commit for this plugin. It might not reflect official version numbers or information but the actual code running."
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:74
+msgid "Package information"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:80
+msgid "Installation method"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:83
+msgid "This plugin was installed as a package"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:85
+msgid "This plugin was found in a local InvenTree path"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:91
+msgid "Installation path"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:97
+msgid "Commit Author"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:101
+#: templates/about.html:47
+msgid "Commit Date"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:105
+#: templates/about.html:40
+msgid "Commit Hash"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:109
+msgid "Commit Message"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:114
+msgid "Sign Status"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:119
+msgid "Sign Key"
+msgstr ""
+
#: templates/InvenTree/settings/po.html:7
msgid "Purchase Order Settings"
msgstr ""
@@ -6194,86 +6538,82 @@ msgstr ""
msgid "Edit setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:11 templates/navbar.html:93
-msgid "Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/settings.html:65
+#: templates/InvenTree/settings/settings.html:74
msgid "Edit Global Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:65
+#: templates/InvenTree/settings/settings.html:74
msgid "Edit User Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:148
+#: templates/InvenTree/settings/settings.html:157
msgid "No category parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:170
-#: templates/InvenTree/settings/settings.html:269
+#: templates/InvenTree/settings/settings.html:179
+#: templates/InvenTree/settings/settings.html:278
msgid "Edit Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:171
-#: templates/InvenTree/settings/settings.html:270
+#: templates/InvenTree/settings/settings.html:180
+#: templates/InvenTree/settings/settings.html:279
msgid "Delete Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:249
+#: templates/InvenTree/settings/settings.html:258
msgid "No part parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:253
+#: templates/InvenTree/settings/settings.html:262
msgid "ID"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:5
+#: templates/InvenTree/settings/sidebar.html:6
#: templates/InvenTree/settings/user_settings.html:9
msgid "User Settings"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:8
+#: templates/InvenTree/settings/sidebar.html:9
#: templates/InvenTree/settings/user.html:12
msgid "Account Settings"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:10
+#: templates/InvenTree/settings/sidebar.html:11
#: templates/InvenTree/settings/user_display.html:9
msgid "Display Settings"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:12
+#: templates/InvenTree/settings/sidebar.html:13
msgid "Home Page"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:14
+#: templates/InvenTree/settings/sidebar.html:15
#: templates/InvenTree/settings/user_search.html:9
msgid "Search Settings"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:16
+#: templates/InvenTree/settings/sidebar.html:17
msgid "Label Printing"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:18
-#: templates/InvenTree/settings/sidebar.html:34
+#: templates/InvenTree/settings/sidebar.html:19
+#: templates/InvenTree/settings/sidebar.html:35
msgid "Reporting"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:23
+#: templates/InvenTree/settings/sidebar.html:24
msgid "Global Settings"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:26
+#: templates/InvenTree/settings/sidebar.html:27
msgid "Server Configuration"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:32
+#: templates/InvenTree/settings/sidebar.html:33
msgid "Currencies"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:38
+#: templates/InvenTree/settings/sidebar.html:39
msgid "Categories"
msgstr ""
@@ -6491,8 +6831,8 @@ msgstr ""
#: templates/about.html:11 templates/about.html:105
#: templates/js/translated/bom.js:283 templates/js/translated/modals.js:53
-#: templates/js/translated/modals.js:567 templates/js/translated/modals.js:661
-#: templates/js/translated/modals.js:964 templates/modals.html:15
+#: templates/js/translated/modals.js:568 templates/js/translated/modals.js:662
+#: templates/js/translated/modals.js:965 templates/modals.html:15
#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
msgid "Close"
msgstr ""
@@ -6513,14 +6853,6 @@ msgstr ""
msgid "Update Available"
msgstr ""
-#: templates/about.html:40
-msgid "Commit Hash"
-msgstr ""
-
-#: templates/about.html:47
-msgid "Commit Date"
-msgstr ""
-
#: templates/about.html:53
msgid "InvenTree Documentation"
msgstr ""
@@ -6718,8 +7050,9 @@ msgstr ""
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1129
-#: templates/js/translated/build.js:1749
+#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1134
+#: templates/js/translated/build.js:1755
+#: templates/js/translated/table_filters.js:178
msgid "Available"
msgstr ""
@@ -6765,11 +7098,11 @@ msgstr ""
msgid "Remote image must not exceed maximum allowable file size"
msgstr ""
-#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1034
+#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1035
msgid "No Response"
msgstr ""
-#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1035
+#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1036
msgid "No response from the InvenTree server"
msgstr ""
@@ -6781,35 +7114,35 @@ msgstr ""
msgid "API request returned error code 400"
msgstr ""
-#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1044
+#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1045
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1045
+#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1046
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1049
+#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1050
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1050
+#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1051
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1054
+#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1055
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1055
+#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1056
msgid "The requested resource could not be located on the server"
msgstr ""
-#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1059
+#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1060
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1060
+#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1061
msgid "Connection timeout while requesting data from server"
msgstr ""
@@ -6878,7 +7211,7 @@ msgid "Unknown response from server"
msgstr ""
#: templates/js/translated/barcode.js:140
-#: templates/js/translated/modals.js:1024
+#: templates/js/translated/modals.js:1025
msgid "Invalid server response"
msgstr ""
@@ -6886,7 +7219,7 @@ msgstr ""
msgid "Scan barcode data below"
msgstr ""
-#: templates/js/translated/barcode.js:280 templates/navbar.html:69
+#: templates/js/translated/barcode.js:280 templates/navbar.html:94
msgid "Scan Barcode"
msgstr ""
@@ -6906,7 +7239,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:682
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:839
msgid "Remove stock item"
msgstr ""
@@ -6976,7 +7309,7 @@ msgstr ""
msgid "Substitutes Available"
msgstr ""
-#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1111
+#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1116
msgid "Variant stock allowed"
msgstr ""
@@ -7000,11 +7333,6 @@ msgstr ""
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1183
-#: templates/js/translated/order.js:1319
-msgid "Actions"
-msgstr ""
-
#: templates/js/translated/bom.js:616
msgid "Validate BOM Item"
msgstr ""
@@ -7025,7 +7353,7 @@ msgstr ""
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:718 templates/js/translated/build.js:855
+#: templates/js/translated/bom.js:718 templates/js/translated/build.js:860
msgid "No BOM items found"
msgstr ""
@@ -7033,7 +7361,7 @@ msgstr ""
msgid "Are you sure you want to delete this BOM item?"
msgstr ""
-#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1095
+#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1100
msgid "Required Part"
msgstr ""
@@ -7041,165 +7369,165 @@ msgstr ""
msgid "Inherited from parent BOM"
msgstr ""
-#: templates/js/translated/build.js:78
+#: templates/js/translated/build.js:83
msgid "Edit Build Order"
msgstr ""
-#: templates/js/translated/build.js:112
+#: templates/js/translated/build.js:117
msgid "Create Build Order"
msgstr ""
-#: templates/js/translated/build.js:133
+#: templates/js/translated/build.js:138
msgid "Allocate stock items to this build output"
msgstr ""
-#: templates/js/translated/build.js:144
+#: templates/js/translated/build.js:149
msgid "Unallocate stock from build output"
msgstr ""
-#: templates/js/translated/build.js:153
+#: templates/js/translated/build.js:158
msgid "Complete build output"
msgstr ""
-#: templates/js/translated/build.js:161
+#: templates/js/translated/build.js:166
msgid "Delete build output"
msgstr ""
-#: templates/js/translated/build.js:184
+#: templates/js/translated/build.js:189
msgid "Are you sure you wish to unallocate stock items from this build?"
msgstr ""
-#: templates/js/translated/build.js:202
+#: templates/js/translated/build.js:207
msgid "Unallocate Stock Items"
msgstr ""
-#: templates/js/translated/build.js:220
+#: templates/js/translated/build.js:225
msgid "Select Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:221
+#: templates/js/translated/build.js:226
msgid "At least one build output must be selected"
msgstr ""
-#: templates/js/translated/build.js:275
+#: templates/js/translated/build.js:280
msgid "Output"
msgstr ""
-#: templates/js/translated/build.js:291
+#: templates/js/translated/build.js:296
msgid "Complete Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:386
+#: templates/js/translated/build.js:391
msgid "No build order allocations found"
msgstr ""
-#: templates/js/translated/build.js:424 templates/js/translated/order.js:1193
+#: templates/js/translated/build.js:429 templates/js/translated/order.js:1848
msgid "Location not specified"
msgstr ""
-#: templates/js/translated/build.js:603
+#: templates/js/translated/build.js:608
msgid "No active build outputs found"
msgstr ""
-#: templates/js/translated/build.js:1052 templates/js/translated/build.js:1760
-#: templates/js/translated/order.js:1326
+#: templates/js/translated/build.js:1057 templates/js/translated/build.js:1766
+#: templates/js/translated/order.js:1982
msgid "Edit stock allocation"
msgstr ""
-#: templates/js/translated/build.js:1054 templates/js/translated/build.js:1761
-#: templates/js/translated/order.js:1327
+#: templates/js/translated/build.js:1059 templates/js/translated/build.js:1767
+#: templates/js/translated/order.js:1983
msgid "Delete stock allocation"
msgstr ""
-#: templates/js/translated/build.js:1072
+#: templates/js/translated/build.js:1077
msgid "Edit Allocation"
msgstr ""
-#: templates/js/translated/build.js:1082
+#: templates/js/translated/build.js:1087
msgid "Remove Allocation"
msgstr ""
-#: templates/js/translated/build.js:1107
+#: templates/js/translated/build.js:1112
msgid "Substitute parts available"
msgstr ""
-#: templates/js/translated/build.js:1124
+#: templates/js/translated/build.js:1129
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:1134 templates/js/translated/build.js:1360
-#: templates/js/translated/build.js:1756 templates/js/translated/order.js:1556
+#: templates/js/translated/build.js:1139 templates/js/translated/build.js:1365
+#: templates/js/translated/build.js:1762 templates/js/translated/order.js:2227
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:1190 templates/js/translated/order.js:1610
+#: templates/js/translated/build.js:1195 templates/js/translated/order.js:2307
msgid "Build stock"
msgstr ""
-#: templates/js/translated/build.js:1194 templates/stock_table.html:52
+#: templates/js/translated/build.js:1199 templates/stock_table.html:52
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:1197 templates/js/translated/order.js:1603
+#: templates/js/translated/build.js:1202 templates/js/translated/order.js:2300
msgid "Allocate stock"
msgstr ""
-#: templates/js/translated/build.js:1262
+#: templates/js/translated/build.js:1267 templates/js/translated/order.js:1499
msgid "Specify stock allocation quantity"
msgstr ""
-#: templates/js/translated/build.js:1333 templates/js/translated/label.js:134
-#: templates/js/translated/report.js:225
+#: templates/js/translated/build.js:1338 templates/js/translated/label.js:134
+#: templates/js/translated/order.js:1550 templates/js/translated/report.js:225
msgid "Select Parts"
msgstr ""
-#: templates/js/translated/build.js:1334
+#: templates/js/translated/build.js:1339 templates/js/translated/order.js:1551
msgid "You must select at least one part to allocate"
msgstr ""
-#: templates/js/translated/build.js:1348
+#: templates/js/translated/build.js:1353 templates/js/translated/order.js:1565
msgid "Select source location (leave blank to take from all locations)"
msgstr ""
-#: templates/js/translated/build.js:1377
+#: templates/js/translated/build.js:1382 templates/js/translated/order.js:1600
msgid "Confirm stock allocation"
msgstr ""
-#: templates/js/translated/build.js:1378
+#: templates/js/translated/build.js:1383
msgid "Allocate Stock Items to Build Order"
msgstr ""
-#: templates/js/translated/build.js:1389
+#: templates/js/translated/build.js:1394 templates/js/translated/order.js:1613
msgid "No matching stock locations"
msgstr ""
-#: templates/js/translated/build.js:1451
+#: templates/js/translated/build.js:1464 templates/js/translated/order.js:1690
msgid "No matching stock items"
msgstr ""
-#: templates/js/translated/build.js:1576
+#: templates/js/translated/build.js:1582
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:1593 templates/js/translated/part.js:1147
-#: templates/js/translated/part.js:1558 templates/js/translated/stock.js:1176
-#: templates/js/translated/stock.js:1953
+#: templates/js/translated/build.js:1599 templates/js/translated/part.js:1147
+#: templates/js/translated/part.js:1558 templates/js/translated/stock.js:1333
+#: templates/js/translated/stock.js:2128
msgid "Select"
msgstr ""
-#: templates/js/translated/build.js:1613
+#: templates/js/translated/build.js:1619
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1674 templates/js/translated/stock.js:2172
+#: templates/js/translated/build.js:1680 templates/js/translated/stock.js:2347
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:1686
+#: templates/js/translated/build.js:1692
msgid "No information"
msgstr ""
-#: templates/js/translated/build.js:1737
+#: templates/js/translated/build.js:1743
msgid "No parts allocated for"
msgstr ""
@@ -7219,7 +7547,7 @@ msgstr ""
msgid "Delete Manufacturer Part"
msgstr ""
-#: templates/js/translated/company.js:165 templates/js/translated/order.js:90
+#: templates/js/translated/company.js:165 templates/js/translated/order.js:248
msgid "Add Supplier"
msgstr ""
@@ -7354,20 +7682,20 @@ msgstr ""
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1072 templates/modals.html:19
+#: templates/js/translated/forms.js:1078 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1463
+#: templates/js/translated/forms.js:1469
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1667
+#: templates/js/translated/forms.js:1673
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1884
+#: templates/js/translated/forms.js:1893
msgid "Clear input"
msgstr ""
@@ -7380,7 +7708,7 @@ msgid "NO"
msgstr ""
#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:706
+#: templates/js/translated/stock.js:863
msgid "Select Stock Items"
msgstr ""
@@ -7429,62 +7757,62 @@ msgstr ""
msgid "Select Label Template"
msgstr ""
-#: templates/js/translated/modals.js:75 templates/js/translated/modals.js:119
-#: templates/js/translated/modals.js:593
+#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:120
+#: templates/js/translated/modals.js:594
msgid "Cancel"
msgstr ""
-#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:118
-#: templates/js/translated/modals.js:660 templates/js/translated/modals.js:963
+#: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119
+#: templates/js/translated/modals.js:661 templates/js/translated/modals.js:964
#: templates/modals.html:28 templates/modals.html:51
msgid "Submit"
msgstr ""
-#: templates/js/translated/modals.js:117
+#: templates/js/translated/modals.js:118
msgid "Form Title"
msgstr ""
-#: templates/js/translated/modals.js:380
+#: templates/js/translated/modals.js:381
msgid "Waiting for server..."
msgstr ""
-#: templates/js/translated/modals.js:539
+#: templates/js/translated/modals.js:540
msgid "Show Error Information"
msgstr ""
-#: templates/js/translated/modals.js:592
+#: templates/js/translated/modals.js:593
msgid "Accept"
msgstr ""
-#: templates/js/translated/modals.js:649
+#: templates/js/translated/modals.js:650
msgid "Loading Data"
msgstr ""
-#: templates/js/translated/modals.js:915
+#: templates/js/translated/modals.js:916
msgid "Invalid response from server"
msgstr ""
-#: templates/js/translated/modals.js:915
+#: templates/js/translated/modals.js:916
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/translated/modals.js:927
+#: templates/js/translated/modals.js:928
msgid "Error posting form data"
msgstr ""
-#: templates/js/translated/modals.js:1024
+#: templates/js/translated/modals.js:1025
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/translated/modals.js:1039
+#: templates/js/translated/modals.js:1040
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/translated/modals.js:1040
+#: templates/js/translated/modals.js:1041
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/translated/modals.js:1063
+#: templates/js/translated/modals.js:1064
msgid "Error requesting form data"
msgstr ""
@@ -7512,176 +7840,245 @@ msgstr ""
msgid "Order ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:256
+#: templates/js/translated/model_renderers.js:253
+msgid "Shipment ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:273
msgid "Category ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:293
+#: templates/js/translated/model_renderers.js:310
msgid "Manufacturer Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:322
+#: templates/js/translated/model_renderers.js:339
msgid "Supplier Part ID"
msgstr ""
-#: templates/js/translated/order.js:48
+#: templates/js/translated/order.js:75
+msgid "No stock items have been allocated to this shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:80
+msgid "The following stock items will be shipped"
+msgstr ""
+
+#: templates/js/translated/order.js:120
+msgid "Complete Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:126
+msgid "Confirm Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:181
+msgid "Create New Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:206
msgid "Add Customer"
msgstr ""
-#: templates/js/translated/order.js:73
+#: templates/js/translated/order.js:231
msgid "Create Sales Order"
msgstr ""
-#: templates/js/translated/order.js:208
+#: templates/js/translated/order.js:366
msgid "Export Order"
msgstr ""
-#: templates/js/translated/order.js:211 templates/js/translated/stock.js:505
+#: templates/js/translated/order.js:369 templates/js/translated/stock.js:509
msgid "Format"
msgstr ""
-#: templates/js/translated/order.js:212 templates/js/translated/stock.js:506
+#: templates/js/translated/order.js:370 templates/js/translated/stock.js:510
msgid "Select file format"
msgstr ""
-#: templates/js/translated/order.js:300
+#: templates/js/translated/order.js:460
msgid "Select Line Items"
msgstr ""
-#: templates/js/translated/order.js:301
+#: templates/js/translated/order.js:461
msgid "At least one line item must be selected"
msgstr ""
-#: templates/js/translated/order.js:326
+#: templates/js/translated/order.js:486
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:360 templates/js/translated/stock.js:1755
+#: templates/js/translated/order.js:520 templates/js/translated/stock.js:1930
msgid "Stock Status"
msgstr ""
-#: templates/js/translated/order.js:427
+#: templates/js/translated/order.js:587
msgid "Order Code"
msgstr ""
-#: templates/js/translated/order.js:428
+#: templates/js/translated/order.js:588
msgid "Ordered"
msgstr ""
-#: templates/js/translated/order.js:430
+#: templates/js/translated/order.js:590
msgid "Receive"
msgstr ""
-#: templates/js/translated/order.js:449
+#: templates/js/translated/order.js:609
msgid "Confirm receipt of items"
msgstr ""
-#: templates/js/translated/order.js:450
+#: templates/js/translated/order.js:610
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:627 templates/js/translated/part.js:746
+#: templates/js/translated/order.js:790 templates/js/translated/part.js:746
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:659 templates/js/translated/order.js:1062
+#: templates/js/translated/order.js:815 templates/js/translated/order.js:1230
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:771 templates/js/translated/order.js:1645
+#: templates/js/translated/order.js:936 templates/js/translated/order.js:2356
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:783 templates/js/translated/order.js:1656
+#: templates/js/translated/order.js:948 templates/js/translated/order.js:2367
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/order.js:822
+#: templates/js/translated/order.js:987
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:849 templates/js/translated/order.js:1466
+#: templates/js/translated/order.js:1014 templates/js/translated/order.js:2138
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:903 templates/js/translated/order.js:1491
+#: templates/js/translated/order.js:1068 templates/js/translated/order.js:2163
#: templates/js/translated/part.js:1775 templates/js/translated/part.js:1986
msgid "Unit Price"
msgstr ""
-#: templates/js/translated/order.js:918 templates/js/translated/order.js:1507
+#: templates/js/translated/order.js:1083 templates/js/translated/order.js:2179
msgid "Total Price"
msgstr ""
-#: templates/js/translated/order.js:996 templates/js/translated/order.js:1616
+#: templates/js/translated/order.js:1161 templates/js/translated/order.js:2313
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:997
+#: templates/js/translated/order.js:1162 templates/js/translated/order.js:2317
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:1001 templates/js/translated/part.js:878
+#: templates/js/translated/order.js:1166 templates/js/translated/part.js:878
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:1038
+#: templates/js/translated/order.js:1206
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:1076
+#: templates/js/translated/order.js:1244
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:1154
+#: templates/js/translated/order.js:1322
+msgid "Edit shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1325
+msgid "Complete shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1330
+msgid "Delete shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1350
+msgid "Edit Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1367
+msgid "Delete Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1401
+msgid "No matching shipments found"
+msgstr ""
+
+#: templates/js/translated/order.js:1411
+msgid "Shipment Reference"
+msgstr ""
+
+#: templates/js/translated/order.js:1435
+msgid "Not shipped"
+msgstr ""
+
+#: templates/js/translated/order.js:1441
+msgid "Tracking"
+msgstr ""
+
+#: templates/js/translated/order.js:1601
+msgid "Allocate Stock Items to Sales Order"
+msgstr ""
+
+#: templates/js/translated/order.js:1809
msgid "No sales order allocations found"
msgstr ""
-#: templates/js/translated/order.js:1247
+#: templates/js/translated/order.js:1898
msgid "Edit Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1264
+#: templates/js/translated/order.js:1915
msgid "Confirm Delete Operation"
msgstr ""
-#: templates/js/translated/order.js:1265
+#: templates/js/translated/order.js:1916
msgid "Delete Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1307
+#: templates/js/translated/order.js:1959 templates/js/translated/order.js:2048
+#: templates/js/translated/stock.js:1249
+msgid "Shipped to customer"
+msgstr ""
+
+#: templates/js/translated/order.js:1967 templates/js/translated/order.js:2057
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:1556
-msgid "Fulfilled"
-msgstr ""
-
-#: templates/js/translated/order.js:1600
+#: templates/js/translated/order.js:2297
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:1606
+#: templates/js/translated/order.js:2303
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:1613 templates/js/translated/order.js:1792
+#: templates/js/translated/order.js:2310 templates/js/translated/order.js:2476
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:1617
-msgid "Delete line item "
+#: templates/js/translated/order.js:2321
+msgid "Cannot be deleted as items have been shipped"
msgstr ""
-#: templates/js/translated/order.js:1740
-msgid "Allocate Stock Item"
+#: templates/js/translated/order.js:2324
+msgid "Cannot be deleted as items have been allocated"
msgstr ""
-#: templates/js/translated/order.js:1800
+#: templates/js/translated/order.js:2382
+msgid "Allocate Serial Numbers"
+msgstr ""
+
+#: templates/js/translated/order.js:2484
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:1814
+#: templates/js/translated/order.js:2498
msgid "No matching line items"
msgstr ""
@@ -7826,12 +8223,12 @@ msgid "No category"
msgstr ""
#: templates/js/translated/part.js:1230
-#: templates/js/translated/table_filters.js:381
+#: templates/js/translated/table_filters.js:412
msgid "Low stock"
msgstr ""
#: templates/js/translated/part.js:1321 templates/js/translated/part.js:1493
-#: templates/js/translated/stock.js:1914
+#: templates/js/translated/stock.js:2089
msgid "Display as list"
msgstr ""
@@ -7839,7 +8236,7 @@ msgstr ""
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1512 templates/js/translated/stock.js:1933
+#: templates/js/translated/part.js:1512 templates/js/translated/stock.js:2108
msgid "Display as tree"
msgstr ""
@@ -7847,7 +8244,7 @@ msgstr ""
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:1590 templates/js/translated/stock.js:1977
+#: templates/js/translated/part.js:1590 templates/js/translated/stock.js:2152
msgid "Path"
msgstr ""
@@ -7855,11 +8252,11 @@ msgstr ""
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1685 templates/js/translated/stock.js:898
+#: templates/js/translated/part.js:1685 templates/js/translated/stock.js:1055
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1686 templates/js/translated/stock.js:899
+#: templates/js/translated/part.js:1686 templates/js/translated/stock.js:1056
msgid "Delete test result"
msgstr ""
@@ -7898,6 +8295,10 @@ msgstr ""
msgid "Single Price Difference"
msgstr ""
+#: templates/js/translated/plugin.js:22
+msgid "The Plugin was installed"
+msgstr ""
+
#: templates/js/translated/report.js:67
msgid "items selected"
msgstr ""
@@ -7964,300 +8365,316 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/stock.js:71
+#: templates/js/translated/stock.js:72
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:89 templates/js/translated/stock.js:168
+#: templates/js/translated/stock.js:90 templates/js/translated/stock.js:172
msgid "Next available serial number"
msgstr ""
-#: templates/js/translated/stock.js:91 templates/js/translated/stock.js:170
+#: templates/js/translated/stock.js:92 templates/js/translated/stock.js:174
msgid "Latest serial number"
msgstr ""
-#: templates/js/translated/stock.js:105
+#: templates/js/translated/stock.js:100
+msgid "Confirm Stock Serialization"
+msgstr ""
+
+#: templates/js/translated/stock.js:109
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:141
+#: templates/js/translated/stock.js:145
msgid "New Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:181
+#: templates/js/translated/stock.js:185
msgid "This part cannot be serialized"
msgstr ""
-#: templates/js/translated/stock.js:220
+#: templates/js/translated/stock.js:224
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: templates/js/translated/stock.js:226
+#: templates/js/translated/stock.js:230
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: templates/js/translated/stock.js:369
+#: templates/js/translated/stock.js:373
msgid "Created new stock item"
msgstr ""
-#: templates/js/translated/stock.js:382
+#: templates/js/translated/stock.js:386
msgid "Created multiple stock items"
msgstr ""
-#: templates/js/translated/stock.js:407
+#: templates/js/translated/stock.js:411
msgid "Find Serial Number"
msgstr ""
-#: templates/js/translated/stock.js:411 templates/js/translated/stock.js:412
+#: templates/js/translated/stock.js:415 templates/js/translated/stock.js:416
msgid "Enter serial number"
msgstr ""
-#: templates/js/translated/stock.js:428
+#: templates/js/translated/stock.js:432
msgid "Enter a serial number"
msgstr ""
-#: templates/js/translated/stock.js:448
+#: templates/js/translated/stock.js:452
msgid "No matching serial number"
msgstr ""
-#: templates/js/translated/stock.js:457
+#: templates/js/translated/stock.js:461
msgid "More than one matching result found"
msgstr ""
-#: templates/js/translated/stock.js:502
+#: templates/js/translated/stock.js:506
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:513
+#: templates/js/translated/stock.js:517
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:514
+#: templates/js/translated/stock.js:518
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:556
+#: templates/js/translated/stock.js:627
+msgid "Confirm stock assignment"
+msgstr ""
+
+#: templates/js/translated/stock.js:628
+msgid "Assign Stock to Customer"
+msgstr ""
+
+#: templates/js/translated/stock.js:713
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:557
+#: templates/js/translated/stock.js:714
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:563
+#: templates/js/translated/stock.js:720
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:564
+#: templates/js/translated/stock.js:721
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:568
+#: templates/js/translated/stock.js:725
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:569
+#: templates/js/translated/stock.js:726
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:573
+#: templates/js/translated/stock.js:730
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:574 users/models.py:200
+#: templates/js/translated/stock.js:731 users/models.py:202
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:578 templates/stock_table.html:56
+#: templates/js/translated/stock.js:735 templates/stock_table.html:57
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:667
+#: templates/js/translated/stock.js:824
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:667
+#: templates/js/translated/stock.js:824
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:707
+#: templates/js/translated/stock.js:864
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:865
+#: templates/js/translated/stock.js:1022
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:867
+#: templates/js/translated/stock.js:1024
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:872
+#: templates/js/translated/stock.js:1029
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:894
+#: templates/js/translated/stock.js:1051
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:920
+#: templates/js/translated/stock.js:1077
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:977
+#: templates/js/translated/stock.js:1134
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:1084
+#: templates/js/translated/stock.js:1241
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:1088
+#: templates/js/translated/stock.js:1245
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:1092
-msgid "Shipped to customer"
-msgstr ""
-
-#: templates/js/translated/stock.js:1096
+#: templates/js/translated/stock.js:1253
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:1102
+#: templates/js/translated/stock.js:1259
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:1260
+#: templates/js/translated/stock.js:1417
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1265
+#: templates/js/translated/stock.js:1422
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1268
+#: templates/js/translated/stock.js:1425
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1272
+#: templates/js/translated/stock.js:1429
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1274
+#: templates/js/translated/stock.js:1431
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1278
-msgid "Stock item has been allocated"
+#: templates/js/translated/stock.js:1437
+msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1282
+#: templates/js/translated/stock.js:1439
+msgid "Stock item has been fully allocated"
+msgstr ""
+
+#: templates/js/translated/stock.js:1441
+msgid "Stock item has been partially allocated"
+msgstr ""
+
+#: templates/js/translated/stock.js:1446
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1289
+#: templates/js/translated/stock.js:1453
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1291
+#: templates/js/translated/stock.js:1455
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1293
+#: templates/js/translated/stock.js:1457
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1297
-#: templates/js/translated/table_filters.js:183
+#: templates/js/translated/stock.js:1461
+#: templates/js/translated/table_filters.js:188
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1347
+#: templates/js/translated/stock.js:1511
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1420
+#: templates/js/translated/stock.js:1584
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1458
+#: templates/js/translated/stock.js:1622
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1479 templates/js/translated/stock.js:1527
+#: templates/js/translated/stock.js:1643 templates/js/translated/stock.js:1691
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1567
+#: templates/js/translated/stock.js:1731
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1594
+#: templates/js/translated/stock.js:1758
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:1596
+#: templates/js/translated/stock.js:1760
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:1770
+#: templates/js/translated/stock.js:1945
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:1784
+#: templates/js/translated/stock.js:1959
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:1785
+#: templates/js/translated/stock.js:1960
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:2009
+#: templates/js/translated/stock.js:2184
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:2031
+#: templates/js/translated/stock.js:2206
msgid "Details"
msgstr ""
-#: templates/js/translated/stock.js:2056
+#: templates/js/translated/stock.js:2231
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2075
+#: templates/js/translated/stock.js:2250
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2094
+#: templates/js/translated/stock.js:2269
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2112
+#: templates/js/translated/stock.js:2287
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2135
+#: templates/js/translated/stock.js:2310
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2143
+#: templates/js/translated/stock.js:2318
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2184
+#: templates/js/translated/stock.js:2359
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2185
+#: templates/js/translated/stock.js:2360
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2236
+#: templates/js/translated/stock.js:2411
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2287
+#: templates/js/translated/stock.js:2462
msgid "Uninstall Stock Item"
msgstr ""
@@ -8278,7 +8695,7 @@ msgid "Allow Variant Stock"
msgstr ""
#: templates/js/translated/table_filters.js:110
-#: templates/js/translated/table_filters.js:178
+#: templates/js/translated/table_filters.js:183
msgid "Include sublocations"
msgstr ""
@@ -8288,54 +8705,54 @@ msgstr ""
#: templates/js/translated/table_filters.js:121
#: templates/js/translated/table_filters.js:122
-#: templates/js/translated/table_filters.js:358
+#: templates/js/translated/table_filters.js:389
msgid "Include subcategories"
msgstr ""
#: templates/js/translated/table_filters.js:126
-#: templates/js/translated/table_filters.js:393
+#: templates/js/translated/table_filters.js:424
msgid "Subscribed"
msgstr ""
#: templates/js/translated/table_filters.js:136
-#: templates/js/translated/table_filters.js:213
+#: templates/js/translated/table_filters.js:218
msgid "Is Serialized"
msgstr ""
#: templates/js/translated/table_filters.js:139
-#: templates/js/translated/table_filters.js:220
+#: templates/js/translated/table_filters.js:225
msgid "Serial number GTE"
msgstr ""
#: templates/js/translated/table_filters.js:140
-#: templates/js/translated/table_filters.js:221
+#: templates/js/translated/table_filters.js:226
msgid "Serial number greater than or equal to"
msgstr ""
#: templates/js/translated/table_filters.js:143
-#: templates/js/translated/table_filters.js:224
+#: templates/js/translated/table_filters.js:229
msgid "Serial number LTE"
msgstr ""
#: templates/js/translated/table_filters.js:144
-#: templates/js/translated/table_filters.js:225
+#: templates/js/translated/table_filters.js:230
msgid "Serial number less than or equal to"
msgstr ""
#: templates/js/translated/table_filters.js:147
#: templates/js/translated/table_filters.js:148
-#: templates/js/translated/table_filters.js:216
-#: templates/js/translated/table_filters.js:217
+#: templates/js/translated/table_filters.js:221
+#: templates/js/translated/table_filters.js:222
msgid "Serial number"
msgstr ""
#: templates/js/translated/table_filters.js:152
-#: templates/js/translated/table_filters.js:234
+#: templates/js/translated/table_filters.js:239
msgid "Batch code"
msgstr ""
#: templates/js/translated/table_filters.js:163
-#: templates/js/translated/table_filters.js:348
+#: templates/js/translated/table_filters.js:379
msgid "Active parts"
msgstr ""
@@ -8356,101 +8773,111 @@ msgid "Item has been allocated"
msgstr ""
#: templates/js/translated/table_filters.js:179
-msgid "Include stock in sublocations"
+msgid "Stock is available for use"
msgstr ""
#: templates/js/translated/table_filters.js:184
-msgid "Show stock items which are depleted"
+msgid "Include stock in sublocations"
msgstr ""
#: templates/js/translated/table_filters.js:189
-msgid "Show items which are in stock"
-msgstr ""
-
-#: templates/js/translated/table_filters.js:193
-msgid "In Production"
+msgid "Show stock items which are depleted"
msgstr ""
#: templates/js/translated/table_filters.js:194
-msgid "Show items which are in production"
+msgid "Show items which are in stock"
msgstr ""
#: templates/js/translated/table_filters.js:198
-msgid "Include Variants"
+msgid "In Production"
msgstr ""
#: templates/js/translated/table_filters.js:199
-msgid "Include stock items for variant parts"
+msgid "Show items which are in production"
msgstr ""
#: templates/js/translated/table_filters.js:203
-msgid "Installed"
+msgid "Include Variants"
msgstr ""
#: templates/js/translated/table_filters.js:204
-msgid "Show stock items which are installed in another item"
+msgid "Include stock items for variant parts"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:208
+msgid "Installed"
msgstr ""
#: templates/js/translated/table_filters.js:209
+msgid "Show stock items which are installed in another item"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:214
msgid "Show items which have been assigned to a customer"
msgstr ""
-#: templates/js/translated/table_filters.js:229
-#: templates/js/translated/table_filters.js:230
+#: templates/js/translated/table_filters.js:234
+#: templates/js/translated/table_filters.js:235
msgid "Stock status"
msgstr ""
-#: templates/js/translated/table_filters.js:238
+#: templates/js/translated/table_filters.js:243
msgid "Has purchase price"
msgstr ""
-#: templates/js/translated/table_filters.js:239
+#: templates/js/translated/table_filters.js:244
msgid "Show stock items which have a purchase price set"
msgstr ""
-#: templates/js/translated/table_filters.js:248
+#: templates/js/translated/table_filters.js:253
msgid "Show stock items which have expired"
msgstr ""
-#: templates/js/translated/table_filters.js:254
+#: templates/js/translated/table_filters.js:259
msgid "Show stock which is close to expiring"
msgstr ""
-#: templates/js/translated/table_filters.js:285
+#: templates/js/translated/table_filters.js:290
msgid "Build status"
msgstr ""
-#: templates/js/translated/table_filters.js:313
-#: templates/js/translated/table_filters.js:330
+#: templates/js/translated/table_filters.js:303
+#: templates/js/translated/table_filters.js:344
+msgid "Assigned to me"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:320
+#: templates/js/translated/table_filters.js:331
+#: templates/js/translated/table_filters.js:352
msgid "Order status"
msgstr ""
-#: templates/js/translated/table_filters.js:318
-#: templates/js/translated/table_filters.js:335
+#: templates/js/translated/table_filters.js:336
+#: templates/js/translated/table_filters.js:357
msgid "Outstanding"
msgstr ""
-#: templates/js/translated/table_filters.js:359
+#: templates/js/translated/table_filters.js:390
msgid "Include parts in subcategories"
msgstr ""
-#: templates/js/translated/table_filters.js:363
+#: templates/js/translated/table_filters.js:394
msgid "Has IPN"
msgstr ""
-#: templates/js/translated/table_filters.js:364
+#: templates/js/translated/table_filters.js:395
msgid "Part has internal part number"
msgstr ""
-#: templates/js/translated/table_filters.js:369
+#: templates/js/translated/table_filters.js:400
msgid "Show active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:377
+#: templates/js/translated/table_filters.js:408
msgid "Stock available"
msgstr ""
-#: templates/js/translated/table_filters.js:405
+#: templates/js/translated/table_filters.js:436
msgid "Purchasable"
msgstr ""
@@ -8507,27 +8934,23 @@ msgstr ""
msgid "All"
msgstr ""
-#: templates/navbar.html:40
+#: templates/navbar.html:42
msgid "Buy"
msgstr ""
-#: templates/navbar.html:52
+#: templates/navbar.html:54
msgid "Sell"
msgstr ""
-#: templates/navbar.html:86 users/models.py:39
-msgid "Admin"
-msgstr ""
-
-#: templates/navbar.html:88
+#: templates/navbar.html:113
msgid "Logout"
msgstr ""
-#: templates/navbar.html:90
+#: templates/navbar.html:115
msgid "Login"
msgstr ""
-#: templates/navbar.html:111
+#: templates/navbar.html:136
msgid "About InvenTree"
msgstr ""
@@ -8639,15 +9062,15 @@ msgstr ""
msgid "Order selected items"
msgstr ""
-#: templates/stock_table.html:53
+#: templates/stock_table.html:54
msgid "Change status"
msgstr ""
-#: templates/stock_table.html:53
+#: templates/stock_table.html:54
msgid "Change stock status"
msgstr ""
-#: templates/stock_table.html:56
+#: templates/stock_table.html:57
msgid "Delete selected items"
msgstr ""
@@ -8683,35 +9106,35 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:187
+#: users/models.py:189
msgid "Permission set"
msgstr ""
-#: users/models.py:195
+#: users/models.py:197
msgid "Group"
msgstr ""
-#: users/models.py:198
+#: users/models.py:200
msgid "View"
msgstr ""
-#: users/models.py:198
+#: users/models.py:200
msgid "Permission to view items"
msgstr ""
-#: users/models.py:200
+#: users/models.py:202
msgid "Permission to add items"
msgstr ""
-#: users/models.py:202
+#: users/models.py:204
msgid "Change"
msgstr ""
-#: users/models.py:202
+#: users/models.py:204
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:204
+#: users/models.py:206
msgid "Permission to delete items"
msgstr ""
diff --git a/InvenTree/locale/th/LC_MESSAGES/django.po b/InvenTree/locale/th/LC_MESSAGES/django.po
index 826a1b4653..33d8b3334a 100644
--- a/InvenTree/locale/th/LC_MESSAGES/django.po
+++ b/InvenTree/locale/th/LC_MESSAGES/django.po
@@ -1,9 +1,10 @@
+#: templates/js/translated/order.js:1973
msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-12-03 10:37+0000\n"
-"PO-Revision-Date: 2021-12-03 11:25\n"
+"POT-Creation-Date: 2021-12-08 23:43+0000\n"
+"PO-Revision-Date: 2021-12-08 23:47\n"
"Last-Translator: \n"
"Language-Team: Thai\n"
"Language: th_TH\n"
@@ -34,8 +35,8 @@ msgid "Enter date"
msgstr ""
#: InvenTree/forms.py:120 build/forms.py:48 build/forms.py:69 build/forms.py:93
-#: order/forms.py:26 order/forms.py:37 order/forms.py:48 order/forms.py:59
-#: order/forms.py:70 part/forms.py:108 templates/account/email_confirm.html:20
+#: order/forms.py:24 order/forms.py:35 order/forms.py:46 order/forms.py:57
+#: part/forms.py:108 templates/account/email_confirm.html:20
#: templates/js/translated/forms.js:595
msgid "Confirm"
msgstr ""
@@ -85,8 +86,8 @@ msgstr ""
msgid "Duplicate serial: {n}"
msgstr ""
-#: InvenTree/helpers.py:437 order/models.py:318 order/models.py:440
-#: stock/views.py:1264
+#: InvenTree/helpers.py:437 order/models.py:279 order/models.py:420
+#: stock/views.py:1231
msgid "Invalid quantity provided"
msgstr ""
@@ -122,7 +123,7 @@ msgstr ""
msgid "Missing external link"
msgstr ""
-#: InvenTree/models.py:132 stock/models.py:1864
+#: InvenTree/models.py:132 stock/models.py:1852
#: templates/js/translated/attachment.js:117
msgid "Attachment"
msgstr ""
@@ -132,7 +133,7 @@ msgid "Select file to attach"
msgstr ""
#: InvenTree/models.py:139 company/models.py:131 company/models.py:348
-#: company/models.py:564 order/models.py:163 part/models.py:797
+#: company/models.py:564 order/models.py:124 part/models.py:797
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:537
#: templates/js/translated/company.js:826 templates/js/translated/part.js:1258
@@ -140,7 +141,7 @@ msgid "Link"
msgstr ""
#: InvenTree/models.py:140 build/models.py:330 part/models.py:798
-#: stock/models.py:530
+#: stock/models.py:524
msgid "Link to external URL"
msgstr ""
@@ -152,10 +153,10 @@ msgstr ""
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1185
-#: common/models.py:1186 part/models.py:2205 part/models.py:2225
+#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1213
+#: common/models.py:1214 part/models.py:2205 part/models.py:2225
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2166
+#: templates/js/translated/stock.js:2341
msgid "User"
msgstr ""
@@ -194,10 +195,15 @@ msgstr ""
#: InvenTree/models.py:277 InvenTree/models.py:278 company/models.py:415
#: label/models.py:112 part/models.py:741 part/models.py:2389
-#: report/models.py:181 templates/InvenTree/settings/settings.html:259
+#: plugin/models.py:39 report/models.py:181
+#: templates/InvenTree/settings/mixins/urls.html:11
+#: templates/InvenTree/settings/plugin.html:47
+#: templates/InvenTree/settings/plugin.html:124
+#: templates/InvenTree/settings/plugin_settings.html:23
+#: templates/InvenTree/settings/settings.html:268
#: templates/js/translated/company.js:638 templates/js/translated/part.js:506
#: templates/js/translated/part.js:643 templates/js/translated/part.js:1565
-#: templates/js/translated/stock.js:1959
+#: templates/js/translated/stock.js:2134
msgid "Name"
msgstr ""
@@ -206,22 +212,23 @@ msgstr ""
#: company/models.py:570 company/templates/company/company_base.html:68
#: company/templates/company/manufacturer_part.html:76
#: company/templates/company/supplier_part.html:73 label/models.py:119
-#: order/models.py:161 part/models.py:764 part/templates/part/category.html:70
+#: order/models.py:122 part/models.py:764 part/templates/part/category.html:70
#: part/templates/part/part_base.html:163
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:553 report/models.py:592
#: report/templates/report/inventree_build_order_base.html:118
-#: stock/templates/stock/location.html:89 templates/js/translated/bom.js:215
-#: templates/js/translated/bom.js:428 templates/js/translated/build.js:1621
-#: templates/js/translated/company.js:345
+#: stock/templates/stock/location.html:89
+#: templates/InvenTree/settings/plugin_settings.html:33
+#: templates/js/translated/bom.js:215 templates/js/translated/bom.js:428
+#: templates/js/translated/build.js:1627 templates/js/translated/company.js:345
#: templates/js/translated/company.js:548
-#: templates/js/translated/company.js:837 templates/js/translated/order.js:680
-#: templates/js/translated/order.js:854 templates/js/translated/order.js:1090
+#: templates/js/translated/company.js:837 templates/js/translated/order.js:836
+#: templates/js/translated/order.js:1019 templates/js/translated/order.js:1258
#: templates/js/translated/part.js:565 templates/js/translated/part.js:933
#: templates/js/translated/part.js:1018 templates/js/translated/part.js:1188
#: templates/js/translated/part.js:1584 templates/js/translated/part.js:1653
-#: templates/js/translated/stock.js:1233 templates/js/translated/stock.js:1971
-#: templates/js/translated/stock.js:2016
+#: templates/js/translated/stock.js:1390 templates/js/translated/stock.js:2146
+#: templates/js/translated/stock.js:2191
msgid "Description"
msgstr ""
@@ -241,83 +248,83 @@ msgstr ""
msgid "Filename"
msgstr ""
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:689
msgid "German"
msgstr ""
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:690
msgid "Greek"
msgstr ""
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:691
msgid "English"
msgstr ""
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:692
msgid "Spanish"
msgstr ""
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:693
msgid "Spanish (Mexican)"
msgstr ""
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:694
msgid "French"
msgstr ""
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:695
msgid "Hebrew"
msgstr ""
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:696
msgid "Italian"
msgstr ""
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:697
msgid "Japanese"
msgstr ""
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:698
msgid "Korean"
msgstr ""
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:699
msgid "Dutch"
msgstr ""
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:700
msgid "Norwegian"
msgstr ""
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:701
msgid "Polish"
msgstr ""
-#: InvenTree/settings.py:683
+#: InvenTree/settings.py:702
msgid "Portugese"
msgstr ""
-#: InvenTree/settings.py:684
+#: InvenTree/settings.py:703
msgid "Russian"
msgstr ""
-#: InvenTree/settings.py:685
+#: InvenTree/settings.py:704
msgid "Swedish"
msgstr ""
-#: InvenTree/settings.py:686
+#: InvenTree/settings.py:705
msgid "Thai"
msgstr ""
-#: InvenTree/settings.py:687
+#: InvenTree/settings.py:706
msgid "Turkish"
msgstr ""
-#: InvenTree/settings.py:688
+#: InvenTree/settings.py:707
msgid "Vietnamese"
msgstr ""
-#: InvenTree/settings.py:689
+#: InvenTree/settings.py:708
msgid "Chinese"
msgstr ""
@@ -334,7 +341,7 @@ msgid "InvenTree system health checks failed"
msgstr ""
#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142
-#: InvenTree/status_codes.py:311
+#: InvenTree/status_codes.py:311 templates/js/translated/table_filters.js:313
msgid "Pending"
msgstr ""
@@ -343,6 +350,8 @@ msgid "Placed"
msgstr ""
#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:314
+#: order/templates/order/order_base.html:128
+#: order/templates/order/sales_order_base.html:132
msgid "Complete"
msgstr ""
@@ -361,8 +370,8 @@ msgstr ""
msgid "Returned"
msgstr ""
-#: InvenTree/status_codes.py:143
-#: order/templates/order/sales_order_base.html:148
+#: InvenTree/status_codes.py:143 order/models.py:939
+#: templates/js/translated/order.js:1980 templates/js/translated/order.js:2255
msgid "Shipped"
msgstr ""
@@ -442,7 +451,7 @@ msgstr ""
msgid "Split child item"
msgstr ""
-#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:208
+#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:213
msgid "Sent to customer"
msgstr ""
@@ -522,55 +531,55 @@ msgstr ""
msgid "Password fields must match"
msgstr ""
-#: InvenTree/views.py:883 templates/navbar.html:101
+#: InvenTree/views.py:883 templates/navbar.html:126
msgid "System Information"
msgstr ""
-#: barcodes/api.py:53 barcodes/api.py:150
+#: barcodes/api.py:54 barcodes/api.py:151
msgid "Must provide barcode_data parameter"
msgstr ""
-#: barcodes/api.py:126
+#: barcodes/api.py:127
msgid "No match found for barcode data"
msgstr ""
-#: barcodes/api.py:128
+#: barcodes/api.py:129
msgid "Match found for barcode data"
msgstr ""
-#: barcodes/api.py:153
+#: barcodes/api.py:154
msgid "Must provide stockitem parameter"
msgstr ""
-#: barcodes/api.py:160
+#: barcodes/api.py:161
msgid "No matching stock item found"
msgstr ""
-#: barcodes/api.py:190
-msgid "Barcode already matches StockItem object"
+#: barcodes/api.py:191
+msgid "Barcode already matches Stock Item"
msgstr ""
-#: barcodes/api.py:194
-msgid "Barcode already matches StockLocation object"
+#: barcodes/api.py:195
+msgid "Barcode already matches Stock Location"
msgstr ""
-#: barcodes/api.py:198
-msgid "Barcode already matches Part object"
+#: barcodes/api.py:199
+msgid "Barcode already matches Part"
msgstr ""
-#: barcodes/api.py:204 barcodes/api.py:216
-msgid "Barcode hash already matches StockItem object"
+#: barcodes/api.py:205 barcodes/api.py:217
+msgid "Barcode hash already matches Stock Item"
msgstr ""
-#: barcodes/api.py:222
-msgid "Barcode associated with StockItem"
+#: barcodes/api.py:223
+msgid "Barcode associated with Stock Item"
msgstr ""
#: build/forms.py:36 build/models.py:1283
#: build/templates/build/build_base.html:132
-#: build/templates/build/detail.html:35 common/models.py:1225
+#: build/templates/build/detail.html:35 common/models.py:1253
#: company/forms.py:42 company/templates/company/supplier_part.html:251
-#: order/forms.py:102 order/models.py:729 order/models.py:991
+#: order/models.py:794 order/models.py:1205 order/serializers.py:810
#: order/templates/order/order_wizard/match_parts.html:30
#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:223
#: part/forms.py:239 part/forms.py:255 part/models.py:2576
@@ -582,20 +591,23 @@ msgstr ""
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:81
#: report/templates/report/inventree_test_report_base.html:139
-#: stock/forms.py:156 stock/serializers.py:291
+#: stock/forms.py:142 stock/serializers.py:293
#: stock/templates/stock/item_base.html:174
+#: stock/templates/stock/item_base.html:255
+#: stock/templates/stock/item_base.html:263
#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443
-#: templates/js/translated/build.js:235 templates/js/translated/build.js:435
-#: templates/js/translated/build.js:629 templates/js/translated/build.js:639
-#: templates/js/translated/build.js:1015 templates/js/translated/build.js:1362
+#: templates/js/translated/build.js:240 templates/js/translated/build.js:440
+#: templates/js/translated/build.js:634 templates/js/translated/build.js:644
+#: templates/js/translated/build.js:1020 templates/js/translated/build.js:1367
#: templates/js/translated/model_renderers.js:99
-#: templates/js/translated/order.js:891 templates/js/translated/order.js:1204
-#: templates/js/translated/order.js:1282 templates/js/translated/order.js:1289
-#: templates/js/translated/order.js:1378 templates/js/translated/order.js:1478
-#: templates/js/translated/part.js:843 templates/js/translated/part.js:1796
-#: templates/js/translated/part.js:1919 templates/js/translated/part.js:1997
-#: templates/js/translated/stock.js:378 templates/js/translated/stock.js:2151
-#: templates/js/translated/stock.js:2253
+#: templates/js/translated/order.js:101 templates/js/translated/order.js:1056
+#: templates/js/translated/order.js:1578 templates/js/translated/order.js:1859
+#: templates/js/translated/order.js:1947 templates/js/translated/order.js:2036
+#: templates/js/translated/order.js:2150 templates/js/translated/part.js:843
+#: templates/js/translated/part.js:1796 templates/js/translated/part.js:1919
+#: templates/js/translated/part.js:1997 templates/js/translated/stock.js:382
+#: templates/js/translated/stock.js:579 templates/js/translated/stock.js:2326
+#: templates/js/translated/stock.js:2428
msgid "Quantity"
msgstr ""
@@ -603,9 +615,9 @@ msgstr ""
msgid "Enter quantity for build output"
msgstr ""
-#: build/forms.py:41 order/forms.py:96 stock/forms.py:95
-#: stock/serializers.py:312 templates/js/translated/stock.js:225
-#: templates/js/translated/stock.js:379
+#: build/forms.py:41 order/serializers.py:814 stock/forms.py:81
+#: stock/serializers.py:314 templates/js/translated/stock.js:229
+#: templates/js/translated/stock.js:383
msgid "Serial Numbers"
msgstr ""
@@ -640,17 +652,17 @@ msgstr ""
#: build/models.py:137 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:397
+#: templates/js/translated/build.js:402
msgid "Build Order"
msgstr ""
#: build/models.py:138 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
-#: order/templates/order/sales_order_detail.html:42
-#: order/templates/order/so_sidebar.html:7
+#: order/templates/order/sales_order_detail.html:92
+#: order/templates/order/so_sidebar.html:13
#: part/templates/part/part_sidebar.html:20 templates/InvenTree/index.html:221
#: templates/InvenTree/search.html:145
-#: templates/InvenTree/settings/sidebar.html:42 users/models.py:44
+#: templates/InvenTree/settings/sidebar.html:43 users/models.py:44
msgid "Build Orders"
msgstr ""
@@ -658,13 +670,13 @@ msgstr ""
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:199 order/models.py:249 order/models.py:556
-#: order/models.py:736 part/models.py:2585
+#: build/models.py:199 order/models.py:210 order/models.py:536
+#: order/models.py:801 part/models.py:2585
#: part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1119
-#: templates/js/translated/order.js:885 templates/js/translated/order.js:1472
+#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1124
+#: templates/js/translated/order.js:1050 templates/js/translated/order.js:2144
msgid "Reference"
msgstr ""
@@ -683,7 +695,7 @@ msgstr ""
#: build/models.py:225 build/templates/build/build_base.html:77
#: build/templates/build/detail.html:30 company/models.py:705
-#: order/models.py:789 order/models.py:860
+#: order/models.py:854 order/models.py:928
#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357
#: part/models.py:2151 part/models.py:2167 part/models.py:2186
#: part/models.py:2203 part/models.py:2305 part/models.py:2427
@@ -698,14 +710,16 @@ msgstr ""
#: templates/email/build_order_required_stock.html:17
#: templates/email/low_stock_notification.html:16
#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:214
-#: templates/js/translated/bom.js:393 templates/js/translated/build.js:620
-#: templates/js/translated/build.js:988 templates/js/translated/build.js:1359
-#: templates/js/translated/build.js:1626 templates/js/translated/company.js:489
-#: templates/js/translated/company.js:746 templates/js/translated/order.js:426
-#: templates/js/translated/order.js:839 templates/js/translated/order.js:1456
-#: templates/js/translated/part.js:918 templates/js/translated/part.js:999
-#: templates/js/translated/part.js:1166 templates/js/translated/stock.js:590
-#: templates/js/translated/stock.js:1190 templates/js/translated/stock.js:2241
+#: templates/js/translated/bom.js:393 templates/js/translated/build.js:625
+#: templates/js/translated/build.js:993 templates/js/translated/build.js:1364
+#: templates/js/translated/build.js:1632 templates/js/translated/company.js:489
+#: templates/js/translated/company.js:746 templates/js/translated/order.js:84
+#: templates/js/translated/order.js:586 templates/js/translated/order.js:1004
+#: templates/js/translated/order.js:1576 templates/js/translated/order.js:1933
+#: templates/js/translated/order.js:2128 templates/js/translated/part.js:918
+#: templates/js/translated/part.js:999 templates/js/translated/part.js:1166
+#: templates/js/translated/stock.js:553 templates/js/translated/stock.js:747
+#: templates/js/translated/stock.js:1347 templates/js/translated/stock.js:2416
msgid "Part"
msgstr ""
@@ -721,7 +735,8 @@ msgstr ""
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:247 templates/js/translated/build.js:1347
+#: build/models.py:247 templates/js/translated/build.js:1352
+#: templates/js/translated/order.js:1564
msgid "Source Location"
msgstr ""
@@ -761,7 +776,7 @@ msgstr ""
msgid "Build status code"
msgstr ""
-#: build/models.py:285 stock/models.py:534
+#: build/models.py:285 stock/models.py:528
msgid "Batch Code"
msgstr ""
@@ -769,12 +784,12 @@ msgstr ""
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:292 order/models.py:165 part/models.py:936
-#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1103
+#: build/models.py:292 order/models.py:126 part/models.py:936
+#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1271
msgid "Creation Date"
msgstr ""
-#: build/models.py:296 order/models.py:578
+#: build/models.py:296 order/models.py:558
msgid "Target completion date"
msgstr ""
@@ -782,8 +797,8 @@ msgstr ""
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/models.py:300 order/models.py:291
-#: templates/js/translated/build.js:1697
+#: build/models.py:300 order/models.py:252
+#: templates/js/translated/build.js:1703
msgid "Completion Date"
msgstr ""
@@ -791,7 +806,7 @@ msgstr ""
msgid "completed by"
msgstr ""
-#: build/models.py:314 templates/js/translated/build.js:1668
+#: build/models.py:314 templates/js/translated/build.js:1674
msgid "Issued by"
msgstr ""
@@ -800,11 +815,11 @@ msgid "User who issued this build order"
msgstr ""
#: build/models.py:323 build/templates/build/build_base.html:185
-#: build/templates/build/detail.html:116 order/models.py:179
-#: order/templates/order/order_base.html:158
-#: order/templates/order/sales_order_base.html:162 part/models.py:940
+#: build/templates/build/detail.html:116 order/models.py:140
+#: order/templates/order/order_base.html:170
+#: order/templates/order/sales_order_base.html:182 part/models.py:940
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:1680 templates/js/translated/order.js:699
+#: templates/js/translated/build.js:1686 templates/js/translated/order.js:864
msgid "Responsible"
msgstr ""
@@ -815,7 +830,7 @@ msgstr ""
#: build/models.py:329 build/templates/build/detail.html:102
#: company/templates/company/manufacturer_part.html:102
#: company/templates/company/supplier_part.html:126
-#: part/templates/part/part_base.html:354 stock/models.py:528
+#: part/templates/part/part_base.html:354 stock/models.py:522
#: stock/templates/stock/item_base.html:374
msgid "External Link"
msgstr ""
@@ -823,18 +838,19 @@ msgstr ""
#: build/models.py:334 build/serializers.py:201
#: build/templates/build/sidebar.html:21 company/models.py:142
#: company/models.py:577 company/templates/company/sidebar.html:25
-#: order/models.py:183 order/models.py:738
+#: order/models.py:144 order/models.py:803 order/models.py:1049
#: order/templates/order/po_sidebar.html:11
-#: order/templates/order/so_sidebar.html:11 part/models.py:925
+#: order/templates/order/so_sidebar.html:17 part/models.py:925
#: part/templates/part/detail.html:116 part/templates/part/part_sidebar.html:50
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/forms.py:154 stock/forms.py:204 stock/forms.py:238 stock/models.py:600
-#: stock/models.py:1764 stock/models.py:1870 stock/serializers.py:330
-#: stock/serializers.py:588 stock/templates/stock/stock_sidebar.html:21
+#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:594
+#: stock/models.py:1752 stock/models.py:1858 stock/serializers.py:332
+#: stock/serializers.py:624 stock/serializers.py:711
+#: stock/templates/stock/stock_sidebar.html:21
#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599
-#: templates/js/translated/company.js:842 templates/js/translated/order.js:984
-#: templates/js/translated/order.js:1582 templates/js/translated/stock.js:973
-#: templates/js/translated/stock.js:1452
+#: templates/js/translated/company.js:842 templates/js/translated/order.js:1149
+#: templates/js/translated/order.js:1445 templates/js/translated/order.js:2280
+#: templates/js/translated/stock.js:1130 templates/js/translated/stock.js:1616
msgid "Notes"
msgstr ""
@@ -867,7 +883,7 @@ msgstr ""
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1133 order/models.py:964
+#: build/models.py:1133 order/models.py:1165
msgid "Allocation quantity must be greater than zero"
msgstr ""
@@ -880,8 +896,8 @@ msgid "Selected stock item not found in BOM"
msgstr ""
#: build/models.py:1253 stock/templates/stock/item_base.html:346
-#: templates/InvenTree/search.html:143 templates/js/translated/build.js:1599
-#: templates/navbar.html:33
+#: templates/InvenTree/search.html:143 templates/js/translated/build.js:1605
+#: templates/navbar.html:35
msgid "Build"
msgstr ""
@@ -889,14 +905,17 @@ msgstr ""
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1270 build/serializers.py:328
+#: build/models.py:1270 build/serializers.py:328 order/serializers.py:690
+#: order/serializers.py:708 stock/serializers.py:562
#: stock/templates/stock/item_base.html:8
#: stock/templates/stock/item_base.html:16
#: stock/templates/stock/item_base.html:368
-#: templates/js/translated/build.js:408 templates/js/translated/build.js:413
-#: templates/js/translated/build.js:1361 templates/js/translated/build.js:1742
-#: templates/js/translated/order.js:1177 templates/js/translated/order.js:1182
-#: templates/js/translated/stock.js:2102
+#: templates/js/translated/build.js:413 templates/js/translated/build.js:418
+#: templates/js/translated/build.js:1366 templates/js/translated/build.js:1748
+#: templates/js/translated/order.js:85 templates/js/translated/order.js:1577
+#: templates/js/translated/order.js:1832 templates/js/translated/order.js:1837
+#: templates/js/translated/order.js:1940 templates/js/translated/order.js:2030
+#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:2277
msgid "Stock Item"
msgstr ""
@@ -936,16 +955,17 @@ msgstr ""
msgid "This build output is not fully allocated"
msgstr ""
-#: build/serializers.py:190 order/serializers.py:228 order/serializers.py:296
-#: stock/forms.py:236 stock/serializers.py:323 stock/serializers.py:690
+#: build/serializers.py:190 order/serializers.py:226 order/serializers.py:294
+#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:813
#: stock/templates/stock/item_base.html:314
#: templates/js/translated/barcode.js:384
-#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:420
-#: templates/js/translated/build.js:1027 templates/js/translated/order.js:348
-#: templates/js/translated/order.js:1189 templates/js/translated/order.js:1297
-#: templates/js/translated/order.js:1303 templates/js/translated/part.js:177
-#: templates/js/translated/stock.js:592 templates/js/translated/stock.js:1333
-#: templates/js/translated/stock.js:2043
+#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:425
+#: templates/js/translated/build.js:1032 templates/js/translated/order.js:508
+#: templates/js/translated/order.js:1844 templates/js/translated/order.js:1955
+#: templates/js/translated/order.js:1963 templates/js/translated/order.js:2044
+#: templates/js/translated/part.js:177 templates/js/translated/stock.js:555
+#: templates/js/translated/stock.js:749 templates/js/translated/stock.js:1497
+#: templates/js/translated/stock.js:2218
msgid "Location"
msgstr ""
@@ -954,12 +974,12 @@ msgid "Location for completed build outputs"
msgstr ""
#: build/serializers.py:197 build/templates/build/build_base.html:137
-#: build/templates/build/detail.html:63 order/models.py:572
-#: order/serializers.py:249 stock/templates/stock/item_base.html:180
-#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1655
-#: templates/js/translated/order.js:431 templates/js/translated/order.js:1095
-#: templates/js/translated/stock.js:1308 templates/js/translated/stock.js:2120
-#: templates/js/translated/stock.js:2269
+#: build/templates/build/detail.html:63 order/models.py:552
+#: order/serializers.py:247 stock/templates/stock/item_base.html:180
+#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1661
+#: templates/js/translated/order.js:591 templates/js/translated/order.js:840
+#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1472
+#: templates/js/translated/stock.js:2295 templates/js/translated/stock.js:2444
msgid "Status"
msgstr ""
@@ -984,16 +1004,16 @@ msgstr ""
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:334
+#: build/serializers.py:334 stock/serializers.py:569
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:348 order/models.py:316 order/serializers.py:242
-#: stock/models.py:371 stock/models.py:1093 stock/serializers.py:303
+#: build/serializers.py:348 order/models.py:277 order/serializers.py:240
+#: stock/models.py:365 stock/models.py:1081 stock/serializers.py:305
msgid "Quantity must be greater than zero"
msgstr ""
-#: build/serializers.py:390
+#: build/serializers.py:390 order/serializers.py:741
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
@@ -1006,7 +1026,7 @@ msgstr ""
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:431
+#: build/serializers.py:431 order/serializers.py:984
msgid "Allocation items must be provided"
msgstr ""
@@ -1079,11 +1099,11 @@ msgstr ""
#: build/templates/build/build_base.html:146
#: build/templates/build/detail.html:132
-#: order/templates/order/order_base.html:144
-#: order/templates/order/sales_order_base.html:141
+#: order/templates/order/order_base.html:156
+#: order/templates/order/sales_order_base.html:163
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:1692 templates/js/translated/order.js:689
-#: templates/js/translated/order.js:1108
+#: templates/js/translated/build.js:1698 templates/js/translated/order.js:854
+#: templates/js/translated/order.js:1276
msgid "Target Date"
msgstr ""
@@ -1096,28 +1116,28 @@ msgstr ""
#: build/templates/build/build_base.html:196
#: order/templates/order/order_base.html:98
#: order/templates/order/sales_order_base.html:93
-#: templates/js/translated/table_filters.js:294
-#: templates/js/translated/table_filters.js:322
-#: templates/js/translated/table_filters.js:339
+#: templates/js/translated/table_filters.js:299
+#: templates/js/translated/table_filters.js:340
+#: templates/js/translated/table_filters.js:361
msgid "Overdue"
msgstr ""
#: build/templates/build/build_base.html:158
#: build/templates/build/detail.html:68 build/templates/build/detail.html:143
-#: templates/js/translated/build.js:1641
-#: templates/js/translated/table_filters.js:304
+#: order/templates/order/sales_order_base.html:170
+#: templates/js/translated/build.js:1647
+#: templates/js/translated/table_filters.js:370
msgid "Completed"
msgstr ""
#: build/templates/build/build_base.html:171
-#: build/templates/build/detail.html:95 order/models.py:857
-#: order/templates/order/sales_order_base.html:9
+#: build/templates/build/detail.html:95 order/models.py:925
+#: order/models.py:1021 order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
-#: order/templates/order/sales_order_ship.html:25
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:308
-#: templates/js/translated/order.js:1050
+#: templates/js/translated/order.js:1218
msgid "Sales Order"
msgstr ""
@@ -1191,8 +1211,8 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:50 order/models.py:811 stock/forms.py:150
-#: templates/js/translated/order.js:432 templates/js/translated/order.js:973
+#: build/templates/build/detail.html:50 order/models.py:876 stock/forms.py:136
+#: templates/js/translated/order.js:592 templates/js/translated/order.js:1138
msgid "Destination"
msgstr ""
@@ -1200,22 +1220,22 @@ msgstr ""
msgid "Destination location not specified"
msgstr ""
-#: build/templates/build/detail.html:74 templates/js/translated/build.js:647
+#: build/templates/build/detail.html:74 templates/js/translated/build.js:652
msgid "Allocated Parts"
msgstr ""
#: build/templates/build/detail.html:81
#: stock/templates/stock/item_base.html:332
-#: templates/js/translated/stock.js:1322 templates/js/translated/stock.js:2276
+#: templates/js/translated/stock.js:1486 templates/js/translated/stock.js:2451
#: templates/js/translated/table_filters.js:151
-#: templates/js/translated/table_filters.js:233
+#: templates/js/translated/table_filters.js:238
msgid "Batch"
msgstr ""
#: build/templates/build/detail.html:127
-#: order/templates/order/order_base.html:131
-#: order/templates/order/sales_order_base.html:135
-#: templates/js/translated/build.js:1663
+#: order/templates/order/order_base.html:143
+#: order/templates/order/sales_order_base.html:157
+#: templates/js/translated/build.js:1669
msgid "Created"
msgstr ""
@@ -1235,7 +1255,7 @@ msgstr ""
msgid "Allocate Stock to Build"
msgstr ""
-#: build/templates/build/detail.html:177 templates/js/translated/build.js:1202
+#: build/templates/build/detail.html:177 templates/js/translated/build.js:1207
msgid "Unallocate stock"
msgstr ""
@@ -1257,7 +1277,7 @@ msgstr ""
#: build/templates/build/detail.html:185
#: company/templates/company/detail.html:38
-#: company/templates/company/detail.html:85 order/views.py:509
+#: company/templates/company/detail.html:85 order/views.py:463
#: part/templates/part/category.html:173
msgid "Order Parts"
msgstr ""
@@ -1309,8 +1329,8 @@ msgstr ""
#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:60
-#: order/templates/order/sales_order_detail.html:52
-#: order/templates/order/so_sidebar.html:9 part/templates/part/detail.html:193
+#: order/templates/order/sales_order_detail.html:107
+#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:193
#: part/templates/part/part_sidebar.html:48 stock/templates/stock/item.html:95
#: stock/templates/stock/stock_sidebar.html:19
msgid "Attachments"
@@ -1325,8 +1345,8 @@ msgstr ""
#: company/templates/company/detail.html:215
#: order/templates/order/purchase_order_detail.html:80
#: order/templates/order/purchase_order_detail.html:108
-#: order/templates/order/sales_order_detail.html:72
-#: order/templates/order/sales_order_detail.html:99
+#: order/templates/order/sales_order_detail.html:127
+#: order/templates/order/sales_order_detail.html:186
#: part/templates/part/detail.html:120 stock/templates/stock/item.html:115
#: stock/templates/stock/item.html:205
msgid "Edit Notes"
@@ -1384,7 +1404,7 @@ msgstr ""
msgid "Maximum output quantity is "
msgstr ""
-#: build/views.py:122 stock/serializers.py:361 stock/views.py:1290
+#: build/views.py:122 stock/serializers.py:363 stock/views.py:1257
msgid "Serial numbers already exist"
msgstr ""
@@ -1400,7 +1420,7 @@ msgstr ""
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:219 stock/views.py:385
+#: build/views.py:219 stock/views.py:352
msgid "Check the confirmation box"
msgstr ""
@@ -1469,7 +1489,7 @@ msgstr ""
msgid "Select {name} file to upload"
msgstr ""
-#: common/models.py:340 common/models.py:970 common/models.py:1178
+#: common/models.py:340 common/models.py:998 common/models.py:1206
msgid "Settings key (must be unique - case insensitive"
msgstr ""
@@ -1557,7 +1577,7 @@ msgstr ""
msgid "Allow download of remote images and files from external URL"
msgstr ""
-#: common/models.py:649 templates/InvenTree/settings/sidebar.html:30
+#: common/models.py:649 templates/InvenTree/settings/sidebar.html:31
msgid "Barcode Support"
msgstr ""
@@ -1623,7 +1643,7 @@ msgstr ""
#: common/models.py:703 part/models.py:2429 report/models.py:187
#: templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:373
+#: templates/js/translated/table_filters.js:404
msgid "Template"
msgstr ""
@@ -1633,7 +1653,7 @@ msgstr ""
#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:956
#: templates/js/translated/table_filters.js:168
-#: templates/js/translated/table_filters.js:385
+#: templates/js/translated/table_filters.js:416
msgid "Assembly"
msgstr ""
@@ -1642,7 +1662,7 @@ msgid "Parts can be assembled from other components by default"
msgstr ""
#: common/models.py:717 part/models.py:894
-#: templates/js/translated/table_filters.js:389
+#: templates/js/translated/table_filters.js:420
msgid "Component"
msgstr ""
@@ -1659,7 +1679,7 @@ msgid "Parts are purchaseable by default"
msgstr ""
#: common/models.py:731 part/models.py:910
-#: templates/js/translated/table_filters.js:397
+#: templates/js/translated/table_filters.js:428
msgid "Salable"
msgstr ""
@@ -1670,7 +1690,7 @@ msgstr ""
#: common/models.py:738 part/models.py:900
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:100
-#: templates/js/translated/table_filters.js:401
+#: templates/js/translated/table_filters.js:432
msgid "Trackable"
msgstr ""
@@ -1932,230 +1952,262 @@ msgstr ""
msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:1001
+#: common/models.py:961
+msgid "Enable URL integration"
+msgstr ""
+
+#: common/models.py:962
+msgid "Enable plugins to add URL routes"
+msgstr ""
+
+#: common/models.py:968
+msgid "Enable navigation integration"
+msgstr ""
+
+#: common/models.py:969
+msgid "Enable plugins to integrate into navigation"
+msgstr ""
+
+#: common/models.py:975
+msgid "Enable global setting integration"
+msgstr ""
+
+#: common/models.py:976
+msgid "Enable plugins to integrate into inventree global settings"
+msgstr ""
+
+#: common/models.py:982
+msgid "Enable app integration"
+msgstr ""
+
+#: common/models.py:983
+msgid "Enable plugins to add apps"
+msgstr ""
+
+#: common/models.py:1029
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:1002
+#: common/models.py:1030
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:1007
+#: common/models.py:1035
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:1008
+#: common/models.py:1036
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:1013
+#: common/models.py:1041
msgid "Show latest parts"
msgstr ""
-#: common/models.py:1014
+#: common/models.py:1042
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:1019
+#: common/models.py:1047
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:1020
+#: common/models.py:1048
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:1026
+#: common/models.py:1054
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1027
+#: common/models.py:1055
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1032
+#: common/models.py:1060
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:1033
+#: common/models.py:1061
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:1038
+#: common/models.py:1066
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:1039
+#: common/models.py:1067
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:1044
+#: common/models.py:1072
msgid "Show low stock"
msgstr ""
-#: common/models.py:1045
+#: common/models.py:1073
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:1050
+#: common/models.py:1078
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:1051
+#: common/models.py:1079
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:1056
+#: common/models.py:1084
msgid "Show needed stock"
msgstr ""
-#: common/models.py:1057
+#: common/models.py:1085
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1062
+#: common/models.py:1090
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1063
+#: common/models.py:1091
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1068
+#: common/models.py:1096
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1069
+#: common/models.py:1097
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1074
+#: common/models.py:1102
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1075
+#: common/models.py:1103
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:1080
+#: common/models.py:1108
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:1081
+#: common/models.py:1109
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:1086
+#: common/models.py:1114
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:1087
+#: common/models.py:1115
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:1092
+#: common/models.py:1120
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:1093
+#: common/models.py:1121
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:1098
+#: common/models.py:1126
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:1099
+#: common/models.py:1127
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:1104
+#: common/models.py:1132
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:1105
+#: common/models.py:1133
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:1111
+#: common/models.py:1139
msgid "Inline label display"
msgstr ""
-#: common/models.py:1112
+#: common/models.py:1140
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1118
+#: common/models.py:1146
msgid "Inline report display"
msgstr ""
-#: common/models.py:1119
+#: common/models.py:1147
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1125
+#: common/models.py:1153
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:1126
+#: common/models.py:1154
msgid "Number of results to show in search preview window"
msgstr ""
-#: common/models.py:1132
+#: common/models.py:1160
msgid "Search Show Stock"
msgstr ""
-#: common/models.py:1133
+#: common/models.py:1161
msgid "Display stock levels in search preview window"
msgstr ""
-#: common/models.py:1139
+#: common/models.py:1167
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:1140
+#: common/models.py:1168
msgid "Hide inactive parts in search preview window"
msgstr ""
-#: common/models.py:1146
+#: common/models.py:1174
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:1147
+#: common/models.py:1175
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:1153
+#: common/models.py:1181
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1154
+#: common/models.py:1182
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1160
+#: common/models.py:1188
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:1161
+#: common/models.py:1189
msgid "InvenTree navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:1226 company/forms.py:43
+#: common/models.py:1254 company/forms.py:43
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1233 company/serializers.py:264
+#: common/models.py:1261 company/serializers.py:264
#: company/templates/company/supplier_part.html:256
#: templates/js/translated/part.js:852 templates/js/translated/part.js:1801
msgid "Price"
msgstr ""
-#: common/models.py:1234
+#: common/models.py:1262
msgid "Unit price at specified quantity"
msgstr ""
#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49
-#: order/templates/order/purchase_order_detail.html:24 order/views.py:289
+#: order/templates/order/purchase_order_detail.html:24 order/views.py:243
#: part/templates/part/bom_upload/upload_file.html:52
#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:212
#: part/views.py:858
@@ -2163,7 +2215,7 @@ msgid "Upload File"
msgstr ""
#: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52
-#: order/views.py:290 part/templates/part/bom_upload/match_fields.html:52
+#: order/views.py:244 part/templates/part/bom_upload/match_fields.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:45
#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:213
#: part/views.py:859
@@ -2195,6 +2247,7 @@ msgid "Previous Step"
msgstr ""
#: company/forms.py:24 part/forms.py:46
+#: templates/InvenTree/settings/mixins/urls.html:12
msgid "URL"
msgstr ""
@@ -2211,6 +2264,7 @@ msgid "Description of the company"
msgstr ""
#: company/models.py:112 company/templates/company/company_base.html:97
+#: templates/InvenTree/settings/plugin_settings.html:55
#: templates/js/translated/company.js:349
msgid "Website"
msgstr ""
@@ -2285,7 +2339,7 @@ msgid "Does this company manufacture parts?"
msgstr ""
#: company/models.py:152 company/serializers.py:270
-#: company/templates/company/company_base.html:103 stock/serializers.py:177
+#: company/templates/company/company_base.html:103 stock/serializers.py:179
msgid "Currency"
msgstr ""
@@ -2293,12 +2347,12 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:320 company/models.py:535 stock/models.py:474
+#: company/models.py:320 company/models.py:535 stock/models.py:468
#: stock/templates/stock/item_base.html:135
msgid "Base Part"
msgstr ""
-#: company/models.py:324 company/models.py:539 order/views.py:912
+#: company/models.py:324 company/models.py:539
msgid "Select part"
msgstr ""
@@ -2319,7 +2373,7 @@ msgstr ""
#: company/models.py:342 company/templates/company/manufacturer_part.html:96
#: company/templates/company/supplier_part.html:105
#: templates/js/translated/company.js:530
-#: templates/js/translated/company.js:815 templates/js/translated/order.js:873
+#: templates/js/translated/company.js:815 templates/js/translated/order.js:1038
#: templates/js/translated/part.js:243 templates/js/translated/part.js:832
msgid "MPN"
msgstr ""
@@ -2349,8 +2403,8 @@ msgstr ""
#: company/models.py:422
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:1857 templates/js/translated/company.js:644
-#: templates/js/translated/part.js:652 templates/js/translated/stock.js:960
+#: stock/models.py:1845 templates/js/translated/company.js:644
+#: templates/js/translated/part.js:652 templates/js/translated/stock.js:1117
msgid "Value"
msgstr ""
@@ -2360,7 +2414,7 @@ msgstr ""
#: company/models.py:429 part/models.py:882 part/models.py:2397
#: part/templates/part/part_base.html:288
-#: templates/InvenTree/settings/settings.html:264
+#: templates/InvenTree/settings/settings.html:273
#: templates/js/translated/company.js:650 templates/js/translated/part.js:658
msgid "Units"
msgstr ""
@@ -2374,12 +2428,12 @@ msgid "Linked manufacturer part must reference the same base part"
msgstr ""
#: company/models.py:545 company/templates/company/company_base.html:78
-#: company/templates/company/supplier_part.html:87 order/models.py:263
+#: company/templates/company/supplier_part.html:87 order/models.py:224
#: order/templates/order/order_base.html:112
#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219
#: part/bom.py:247 stock/templates/stock/item_base.html:398
#: templates/js/translated/company.js:337
-#: templates/js/translated/company.js:771 templates/js/translated/order.js:667
+#: templates/js/translated/company.js:771 templates/js/translated/order.js:823
#: templates/js/translated/part.js:213 templates/js/translated/part.js:800
msgid "Supplier"
msgstr ""
@@ -2389,7 +2443,7 @@ msgid "Select supplier"
msgstr ""
#: company/models.py:551 company/templates/company/supplier_part.html:91
-#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:860
+#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:1025
#: templates/js/translated/part.js:224 templates/js/translated/part.js:818
msgid "SKU"
msgstr ""
@@ -2425,8 +2479,8 @@ msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:582 company/templates/company/supplier_part.html:112
-#: stock/models.py:497 stock/templates/stock/item_base.html:339
-#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1448
+#: stock/models.py:491 stock/templates/stock/item_base.html:339
+#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1612
msgid "Packaging"
msgstr ""
@@ -2457,7 +2511,7 @@ msgid "Company"
msgstr ""
#: company/templates/company/company_base.html:22
-#: templates/js/translated/order.js:121
+#: templates/js/translated/order.js:279
msgid "Create Purchase Order"
msgstr ""
@@ -2493,11 +2547,12 @@ msgstr ""
msgid "Download image from URL"
msgstr ""
-#: company/templates/company/company_base.html:83 order/models.py:567
-#: order/templates/order/sales_order_base.html:115 stock/models.py:515
-#: stock/models.py:516 stock/templates/stock/item_base.html:291
-#: templates/js/translated/company.js:329 templates/js/translated/order.js:1072
-#: templates/js/translated/stock.js:2084
+#: company/templates/company/company_base.html:83 order/models.py:547
+#: order/templates/order/sales_order_base.html:115 stock/models.py:509
+#: stock/models.py:510 stock/serializers.py:610
+#: stock/templates/stock/item_base.html:291
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1240
+#: templates/js/translated/stock.js:2259
msgid "Customer"
msgstr ""
@@ -2580,7 +2635,7 @@ msgstr ""
#: order/templates/order/purchase_orders.html:12
#: part/templates/part/detail.html:64 part/templates/part/part_sidebar.html:33
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:203
-#: templates/InvenTree/settings/sidebar.html:44 templates/navbar.html:45
+#: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47
#: users/models.py:45
msgid "Purchase Orders"
msgstr ""
@@ -2602,7 +2657,7 @@ msgstr ""
#: order/templates/order/sales_orders.html:15
#: part/templates/part/detail.html:87 part/templates/part/part_sidebar.html:37
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:223
-#: templates/InvenTree/settings/sidebar.html:46 templates/navbar.html:56
+#: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58
#: users/models.py:46
msgid "Sales Orders"
msgstr ""
@@ -2618,7 +2673,7 @@ msgid "New Sales Order"
msgstr ""
#: company/templates/company/detail.html:168
-#: templates/js/translated/build.js:999
+#: templates/js/translated/build.js:1004
msgid "Assigned Stock"
msgstr ""
@@ -2644,7 +2699,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:14 company/views.py:55
#: part/templates/part/prices.html:167 templates/InvenTree/search.html:184
-#: templates/navbar.html:44
+#: templates/navbar.html:46
msgid "Manufacturers"
msgstr ""
@@ -2673,7 +2728,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:114
#: company/templates/company/supplier_part.html:15 company/views.py:49
#: part/templates/part/part_sidebar.html:31 part/templates/part/prices.html:163
-#: templates/InvenTree/search.html:194 templates/navbar.html:43
+#: templates/InvenTree/search.html:194 templates/navbar.html:45
msgid "Suppliers"
msgstr ""
@@ -2687,7 +2742,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:254
#: part/templates/part/detail.html:344 part/templates/part/detail.html:372
#: templates/js/translated/company.js:425 templates/js/translated/helpers.js:31
-#: users/models.py:204
+#: users/models.py:206
msgid "Delete"
msgstr ""
@@ -2739,9 +2794,9 @@ msgid "Assigned Stock Items"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:482
+#: company/templates/company/supplier_part.html:24 stock/models.py:476
#: stock/templates/stock/item_base.html:403
-#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1405
+#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1569
msgid "Supplier Part"
msgstr ""
@@ -2767,7 +2822,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:142
#: part/templates/part/detail.html:21 stock/templates/stock/location.html:163
-#: templates/js/translated/stock.js:355
+#: templates/js/translated/stock.js:359
msgid "New Stock Item"
msgstr ""
@@ -2817,11 +2872,11 @@ msgstr ""
#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:14
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:156
-#: templates/InvenTree/settings/sidebar.html:40
+#: templates/InvenTree/settings/sidebar.html:41
#: templates/js/translated/bom.js:216 templates/js/translated/part.js:434
#: templates/js/translated/part.js:569 templates/js/translated/part.js:1059
-#: templates/js/translated/part.js:1220 templates/js/translated/stock.js:591
-#: templates/js/translated/stock.js:1244 templates/navbar.html:26
+#: templates/js/translated/part.js:1220 templates/js/translated/stock.js:748
+#: templates/js/translated/stock.js:1401 templates/navbar.html:28
msgid "Stock"
msgstr ""
@@ -2844,7 +2899,7 @@ msgstr ""
#: stock/templates/stock/location.html:147
#: stock/templates/stock/location.html:159
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1983
+#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:2158
#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
msgid "Stock Items"
msgstr ""
@@ -2858,7 +2913,7 @@ msgid "New Manufacturer"
msgstr ""
#: company/views.py:61 templates/InvenTree/search.html:214
-#: templates/navbar.html:55
+#: templates/navbar.html:57
msgid "Customers"
msgstr ""
@@ -2960,284 +3015,374 @@ msgstr ""
msgid "Part query filters (comma-separated value of key=value pairs)"
msgstr ""
-#: order/forms.py:26 order/templates/order/order_base.html:52
+#: order/forms.py:24 order/templates/order/order_base.html:52
msgid "Place order"
msgstr ""
-#: order/forms.py:37 order/templates/order/order_base.html:60
+#: order/forms.py:35 order/templates/order/order_base.html:60
msgid "Mark order as complete"
msgstr ""
-#: order/forms.py:48 order/forms.py:59 order/templates/order/order_base.html:47
+#: order/forms.py:46 order/forms.py:57 order/templates/order/order_base.html:47
#: order/templates/order/sales_order_base.html:60
msgid "Cancel order"
msgstr ""
-#: order/forms.py:70
-msgid "Ship order"
-msgstr ""
-
-#: order/forms.py:98
-msgid "Enter stock item serial numbers"
-msgstr ""
-
-#: order/forms.py:104
-msgid "Enter quantity of stock items"
-msgstr ""
-
-#: order/models.py:161
+#: order/models.py:122
msgid "Order description"
msgstr ""
-#: order/models.py:163
+#: order/models.py:124
msgid "Link to external page"
msgstr ""
-#: order/models.py:171
+#: order/models.py:132
msgid "Created By"
msgstr ""
-#: order/models.py:178
+#: order/models.py:139
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:183
+#: order/models.py:144
msgid "Order notes"
msgstr ""
-#: order/models.py:250 order/models.py:557
+#: order/models.py:211 order/models.py:537
msgid "Order reference"
msgstr ""
-#: order/models.py:255 order/models.py:572
+#: order/models.py:216 order/models.py:552
msgid "Purchase order status"
msgstr ""
-#: order/models.py:264
+#: order/models.py:225
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:267 order/templates/order/order_base.html:118
-#: templates/js/translated/order.js:676
+#: order/models.py:228 order/templates/order/order_base.html:118
+#: templates/js/translated/order.js:832
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:267
+#: order/models.py:228
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:274
+#: order/models.py:235
msgid "received by"
msgstr ""
-#: order/models.py:279
+#: order/models.py:240
msgid "Issue Date"
msgstr ""
-#: order/models.py:280
+#: order/models.py:241
msgid "Date order was issued"
msgstr ""
-#: order/models.py:285
+#: order/models.py:246
msgid "Target Delivery Date"
msgstr ""
-#: order/models.py:286
+#: order/models.py:247
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:292
+#: order/models.py:253
msgid "Date order was completed"
msgstr ""
-#: order/models.py:321
+#: order/models.py:282
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:431
+#: order/models.py:411
msgid "Quantity must be an integer"
msgstr ""
-#: order/models.py:435
+#: order/models.py:415
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:568
+#: order/models.py:548
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:574
+#: order/models.py:554
msgid "Customer Reference "
msgstr ""
-#: order/models.py:574
+#: order/models.py:554
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:579
+#: order/models.py:559
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:582 templates/js/translated/order.js:1113
+#: order/models.py:562 order/models.py:1026
+#: templates/js/translated/order.js:1281 templates/js/translated/order.js:1429
msgid "Shipment Date"
msgstr ""
-#: order/models.py:589
+#: order/models.py:569
msgid "shipped by"
msgstr ""
-#: order/models.py:633
-msgid "SalesOrder cannot be shipped as it is not currently pending"
+#: order/models.py:634
+msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:730
+#: order/models.py:639
+msgid "Only a pending order can be marked as complete"
+msgstr ""
+
+#: order/models.py:643
+msgid "Order cannot be completed as there are incomplete shipments"
+msgstr ""
+
+#: order/models.py:647
+msgid "Order cannot be completed as there are incomplete line items"
+msgstr ""
+
+#: order/models.py:795
msgid "Item quantity"
msgstr ""
-#: order/models.py:736
+#: order/models.py:801
msgid "Line item reference"
msgstr ""
-#: order/models.py:738
+#: order/models.py:803
msgid "Line item notes"
msgstr ""
-#: order/models.py:768 order/models.py:856
-#: templates/js/translated/order.js:1165
+#: order/models.py:833 order/models.py:924 order/models.py:1020
+#: templates/js/translated/order.js:1820
msgid "Order"
msgstr ""
-#: order/models.py:769 order/templates/order/order_base.html:9
+#: order/models.py:834 order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:353
-#: templates/js/translated/order.js:638 templates/js/translated/part.js:775
-#: templates/js/translated/stock.js:1382 templates/js/translated/stock.js:2065
+#: templates/js/translated/order.js:801 templates/js/translated/part.js:775
+#: templates/js/translated/stock.js:1546 templates/js/translated/stock.js:2240
msgid "Purchase Order"
msgstr ""
-#: order/models.py:790
+#: order/models.py:855
msgid "Supplier part"
msgstr ""
-#: order/models.py:797 order/templates/order/order_base.html:151
-#: order/templates/order/sales_order_base.html:155
-#: templates/js/translated/order.js:429 templates/js/translated/order.js:953
+#: order/models.py:862 order/templates/order/order_base.html:163
+#: templates/js/translated/order.js:589 templates/js/translated/order.js:1118
#: templates/js/translated/part.js:847 templates/js/translated/part.js:873
+#: templates/js/translated/table_filters.js:317
msgid "Received"
msgstr ""
-#: order/models.py:798
+#: order/models.py:863
msgid "Number of items received"
msgstr ""
-#: order/models.py:805 part/templates/part/prices.html:176 stock/models.py:609
-#: stock/serializers.py:168 stock/templates/stock/item_base.html:360
-#: templates/js/translated/stock.js:1436
+#: order/models.py:870 part/templates/part/prices.html:176 stock/models.py:603
+#: stock/serializers.py:170 stock/templates/stock/item_base.html:360
+#: templates/js/translated/stock.js:1600
msgid "Purchase Price"
msgstr ""
-#: order/models.py:806
+#: order/models.py:871
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:814
+#: order/models.py:879
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:866 part/templates/part/part_pricing.html:112
+#: order/models.py:934 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:116 part/templates/part/prices.html:284
msgid "Sale Price"
msgstr ""
-#: order/models.py:867
+#: order/models.py:935
msgid "Unit sale price"
msgstr ""
-#: order/models.py:946 order/models.py:948
+#: order/models.py:940
+msgid "Shipped quantity"
+msgstr ""
+
+#: order/models.py:1027
+msgid "Date of shipment"
+msgstr ""
+
+#: order/models.py:1034
+msgid "Checked By"
+msgstr ""
+
+#: order/models.py:1035
+msgid "User who checked this shipment"
+msgstr ""
+
+#: order/models.py:1043
+msgid "Shipment number"
+msgstr ""
+
+#: order/models.py:1050
+msgid "Shipment notes"
+msgstr ""
+
+#: order/models.py:1057
+msgid "Tracking Number"
+msgstr ""
+
+#: order/models.py:1058
+msgid "Shipment tracking information"
+msgstr ""
+
+#: order/models.py:1068
+msgid "Shipment has already been sent"
+msgstr ""
+
+#: order/models.py:1071
+msgid "Shipment has no allocated stock items"
+msgstr ""
+
+#: order/models.py:1147 order/models.py:1149
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:952
+#: order/models.py:1153
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:954
+#: order/models.py:1155
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:957
+#: order/models.py:1158
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:961
+#: order/models.py:1162
msgid "StockItem is over-allocated"
msgstr ""
-#: order/models.py:967
+#: order/models.py:1168 order/serializers.py:734
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:975
+#: order/models.py:1171
+msgid "Sales order does not match shipment"
+msgstr ""
+
+#: order/models.py:1172
+msgid "Shipment does not match sales order"
+msgstr ""
+
+#: order/models.py:1180
msgid "Line"
msgstr ""
-#: order/models.py:987
+#: order/models.py:1188 order/serializers.py:825 order/serializers.py:953
+#: templates/js/translated/model_renderers.js:251
+msgid "Shipment"
+msgstr ""
+
+#: order/models.py:1189
+msgid "Sales order shipment reference"
+msgstr ""
+
+#: order/models.py:1201
msgid "Item"
msgstr ""
-#: order/models.py:988
+#: order/models.py:1202
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:991
+#: order/models.py:1205
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/serializers.py:175
+#: order/serializers.py:173
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:213
+#: order/serializers.py:211 order/serializers.py:790
msgid "Line Item"
msgstr ""
-#: order/serializers.py:219
+#: order/serializers.py:217
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:229 order/serializers.py:297
+#: order/serializers.py:227 order/serializers.py:295
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:253
+#: order/serializers.py:251
msgid "Barcode Hash"
msgstr ""
-#: order/serializers.py:254
+#: order/serializers.py:252
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:271
+#: order/serializers.py:269
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:309
+#: order/serializers.py:307
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:326
+#: order/serializers.py:324
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:337
+#: order/serializers.py:335
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:578
+#: order/serializers.py:581
msgid "Sale price currency"
msgstr ""
+#: order/serializers.py:649
+msgid "No shipment details provided"
+msgstr ""
+
+#: order/serializers.py:699 order/serializers.py:802
+msgid "Line item is not associated with this order"
+msgstr ""
+
+#: order/serializers.py:721
+msgid "Quantity must be positive"
+msgstr ""
+
+#: order/serializers.py:815
+msgid "Enter serial numbers to allocate"
+msgstr ""
+
+#: order/serializers.py:839 order/serializers.py:964
+msgid "Shipment has already been shipped"
+msgstr ""
+
+#: order/serializers.py:842 order/serializers.py:967
+msgid "Shipment is not associated with this order"
+msgstr ""
+
+#: order/serializers.py:894
+msgid "No match found for the following serial numbers"
+msgstr ""
+
+#: order/serializers.py:904
+msgid "The following serial numbers are already allocated"
+msgstr ""
+
#: order/templates/order/delete_attachment.html:5
#: stock/templates/stock/attachment_delete.html:5
msgid "Are you sure you want to delete this attachment?"
@@ -3271,7 +3416,8 @@ msgstr ""
msgid "Receive Items"
msgstr ""
-#: order/templates/order/order_base.html:62 order/views.py:185
+#: order/templates/order/order_base.html:62
+#: order/templates/order/sales_order_base.html:67 order/views.py:181
msgid "Complete Order"
msgstr ""
@@ -3290,12 +3436,23 @@ msgstr ""
msgid "Order Status"
msgstr ""
-#: order/templates/order/order_base.html:137
+#: order/templates/order/order_base.html:124
+#: order/templates/order/sales_order_base.html:128
+msgid "Completed Line Items"
+msgstr ""
+
+#: order/templates/order/order_base.html:130
+#: order/templates/order/sales_order_base.html:134
+#: order/templates/order/sales_order_base.html:144
+msgid "Incomplete"
+msgstr ""
+
+#: order/templates/order/order_base.html:149
#: report/templates/report/inventree_build_order_base.html:122
msgid "Issued"
msgstr ""
-#: order/templates/order/order_base.html:207
+#: order/templates/order/order_base.html:219
msgid "Edit Purchase Order"
msgstr ""
@@ -3371,8 +3528,9 @@ msgstr ""
#: part/templates/part/import_wizard/ajax_match_references.html:42
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
-#: templates/js/translated/build.js:240 templates/js/translated/build.js:1251
-#: templates/js/translated/order.js:377
+#: templates/js/translated/build.js:245 templates/js/translated/build.js:1256
+#: templates/js/translated/order.js:537 templates/js/translated/order.js:1488
+#: templates/js/translated/stock.js:592
msgid "Remove row"
msgstr ""
@@ -3453,7 +3611,8 @@ msgid "Select existing purchase orders, or create new orders."
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:31
-#: templates/js/translated/order.js:694 templates/js/translated/order.js:1118
+#: templates/js/translated/order.js:859 templates/js/translated/order.js:1286
+#: templates/js/translated/order.js:1416
msgid "Items"
msgstr ""
@@ -3489,7 +3648,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:27
#: order/templates/order/purchase_order_detail.html:181
#: order/templates/order/sales_order_detail.html:23
-#: order/templates/order/sales_order_detail.html:157
+#: order/templates/order/sales_order_detail.html:244
msgid "Add Line Item"
msgstr ""
@@ -3502,7 +3661,7 @@ msgid "Received Items"
msgstr ""
#: order/templates/order/purchase_order_detail.html:76
-#: order/templates/order/sales_order_detail.html:68
+#: order/templates/order/sales_order_detail.html:123
msgid "Order Notes"
msgstr ""
@@ -3520,8 +3679,8 @@ msgid "Print packing list"
msgstr ""
#: order/templates/order/sales_order_base.html:66
-#: order/templates/order/sales_order_base.html:67 order/views.py:222
-msgid "Ship Order"
+#: order/templates/order/sales_order_base.html:229
+msgid "Complete Sales Order"
msgstr ""
#: order/templates/order/sales_order_base.html:102
@@ -3529,16 +3688,21 @@ msgid "This Sales Order has not been fully allocated"
msgstr ""
#: order/templates/order/sales_order_base.html:122
-#: templates/js/translated/order.js:1085
+#: templates/js/translated/order.js:1253
msgid "Customer Reference"
msgstr ""
-#: order/templates/order/sales_order_base.html:195
+#: order/templates/order/sales_order_base.html:140
+#: order/templates/order/sales_order_detail.html:78
+#: order/templates/order/so_sidebar.html:11
+msgid "Completed Shipments"
+msgstr ""
+
+#: order/templates/order/sales_order_base.html:215
msgid "Edit Sales Order"
msgstr ""
#: order/templates/order/sales_order_cancel.html:8
-#: order/templates/order/sales_order_ship.html:9
#: part/templates/part/bom_duplicate.html:12
#: stock/templates/stock/stockitem_convert.html:13
msgid "Warning"
@@ -3552,146 +3716,100 @@ msgstr ""
msgid "Sales Order Items"
msgstr ""
-#: order/templates/order/sales_order_ship.html:10
-msgid "This order has not been fully allocated. If the order is marked as shipped, it can no longer be adjusted."
+#: order/templates/order/sales_order_detail.html:44
+#: order/templates/order/so_sidebar.html:8
+msgid "Pending Shipments"
msgstr ""
-#: order/templates/order/sales_order_ship.html:12
-msgid "Ensure that the order allocation is correct before shipping the order."
+#: order/templates/order/sales_order_detail.html:48
+#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1188
+msgid "Actions"
msgstr ""
-#: order/templates/order/sales_order_ship.html:18
-msgid "Some line items in this order have been over-allocated"
+#: order/templates/order/sales_order_detail.html:57
+msgid "New Shipment"
msgstr ""
-#: order/templates/order/sales_order_ship.html:20
-msgid "Ensure that this is correct before shipping the order."
-msgstr ""
-
-#: order/templates/order/sales_order_ship.html:27
-msgid "Shipping this order means that the order will no longer be editable."
-msgstr ""
-
-#: order/templates/order/so_allocate_by_serial.html:9
-msgid "Allocate stock items by serial number"
-msgstr ""
-
-#: order/views.py:103
+#: order/views.py:99
msgid "Cancel Order"
msgstr ""
-#: order/views.py:112 order/views.py:138
+#: order/views.py:108 order/views.py:134
msgid "Confirm order cancellation"
msgstr ""
-#: order/views.py:115 order/views.py:141
+#: order/views.py:111 order/views.py:137
msgid "Order cannot be cancelled"
msgstr ""
-#: order/views.py:129
+#: order/views.py:125
msgid "Cancel sales order"
msgstr ""
-#: order/views.py:155
+#: order/views.py:151
msgid "Issue Order"
msgstr ""
-#: order/views.py:164
+#: order/views.py:160
msgid "Confirm order placement"
msgstr ""
-#: order/views.py:174
+#: order/views.py:170
msgid "Purchase order issued"
msgstr ""
-#: order/views.py:201
+#: order/views.py:197
msgid "Confirm order completion"
msgstr ""
-#: order/views.py:212
+#: order/views.py:208
msgid "Purchase order completed"
msgstr ""
-#: order/views.py:238
-msgid "Confirm order shipment"
-msgstr ""
-
-#: order/views.py:244
-msgid "Could not ship order"
-msgstr ""
-
-#: order/views.py:291
+#: order/views.py:245
msgid "Match Supplier Parts"
msgstr ""
-#: order/views.py:535
+#: order/views.py:489
msgid "Update prices"
msgstr ""
-#: order/views.py:793
+#: order/views.py:747
#, python-brace-format
msgid "Ordered {n} parts"
msgstr ""
-#: order/views.py:846
-msgid "Allocate Serial Numbers"
-msgstr ""
-
-#: order/views.py:891
-#, python-brace-format
-msgid "Allocated {n} items"
-msgstr ""
-
-#: order/views.py:907
-msgid "Select line item"
-msgstr ""
-
-#: order/views.py:938
-#, python-brace-format
-msgid "No matching item for serial {serial}"
-msgstr ""
-
-#: order/views.py:948
-#, python-brace-format
-msgid "{serial} is not in stock"
-msgstr ""
-
-#: order/views.py:956
-#, python-brace-format
-msgid "{serial} already allocated to an order"
-msgstr ""
-
-#: order/views.py:1072
+#: order/views.py:858
msgid "Sales order not found"
msgstr ""
-#: order/views.py:1078
+#: order/views.py:864
msgid "Price not found"
msgstr ""
-#: order/views.py:1081
+#: order/views.py:867
#, python-brace-format
msgid "Updated {part} unit-price to {price}"
msgstr ""
-#: order/views.py:1086
+#: order/views.py:872
#, python-brace-format
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/api.py:758
+#: part/api.py:760
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:762
+#: part/api.py:764
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:777
+#: part/api.py:779
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:808 part/api.py:812 part/api.py:827 part/api.py:831
+#: part/api.py:810 part/api.py:814 part/api.py:829 part/api.py:833
msgid "This field is required"
msgstr ""
@@ -3828,8 +3946,8 @@ msgstr ""
#: part/templates/part/category.html:149
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:88
-#: templates/InvenTree/settings/sidebar.html:36
-#: templates/js/translated/part.js:1597 templates/navbar.html:19
+#: templates/InvenTree/settings/sidebar.html:37
+#: templates/js/translated/part.js:1597 templates/navbar.html:21
#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
msgid "Parts"
msgstr ""
@@ -3895,7 +4013,7 @@ msgstr ""
#: part/models.py:778 part/models.py:2223 part/models.py:2472
#: part/templates/part/part_base.html:265
#: part/templates/part/set_category.html:15
-#: templates/InvenTree/settings/settings.html:163
+#: templates/InvenTree/settings/settings.html:172
#: templates/js/translated/part.js:1202
msgid "Category"
msgstr ""
@@ -3906,7 +4024,7 @@ msgstr ""
#: part/models.py:784 part/templates/part/part_base.html:274
#: templates/js/translated/part.js:557 templates/js/translated/part.js:1155
-#: templates/js/translated/stock.js:1216
+#: templates/js/translated/stock.js:1373
msgid "IPN"
msgstr ""
@@ -3975,10 +4093,11 @@ msgstr ""
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:915 templates/js/translated/table_filters.js:34
+#: part/models.py:915 plugin/models.py:45
+#: templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:96
-#: templates/js/translated/table_filters.js:290
-#: templates/js/translated/table_filters.js:368
+#: templates/js/translated/table_filters.js:295
+#: templates/js/translated/table_filters.js:399
msgid "Active"
msgstr ""
@@ -4027,7 +4146,7 @@ msgid "Test with this name already exists for this part"
msgstr ""
#: part/models.py:2310 templates/js/translated/part.js:1648
-#: templates/js/translated/stock.js:940
+#: templates/js/translated/stock.js:1097
msgid "Test Name"
msgstr ""
@@ -4044,7 +4163,7 @@ msgid "Enter description for this test"
msgstr ""
#: part/models.py:2322 templates/js/translated/part.js:1657
-#: templates/js/translated/table_filters.js:276
+#: templates/js/translated/table_filters.js:281
msgid "Required"
msgstr ""
@@ -4086,7 +4205,7 @@ msgid "Parameter Units"
msgstr ""
#: part/models.py:2429 part/models.py:2478 part/models.py:2479
-#: templates/InvenTree/settings/settings.html:158
+#: templates/InvenTree/settings/settings.html:167
msgid "Parameter Template"
msgstr ""
@@ -4098,7 +4217,7 @@ msgstr ""
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2483 templates/InvenTree/settings/settings.html:167
+#: part/models.py:2483 templates/InvenTree/settings/settings.html:176
msgid "Default Value"
msgstr ""
@@ -4175,7 +4294,7 @@ msgstr ""
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2686 stock/models.py:361
+#: part/models.py:2686 stock/models.py:355
msgid "Quantity must be integer value for trackable parts"
msgstr ""
@@ -4724,8 +4843,8 @@ msgstr ""
msgid "This part is a variant of %(link)s"
msgstr ""
-#: part/templates/part/part_base.html:190 templates/js/translated/order.js:1545
-#: templates/js/translated/table_filters.js:188
+#: part/templates/part/part_base.html:190 templates/js/translated/order.js:2217
+#: templates/js/translated/table_filters.js:193
msgid "In Stock"
msgstr ""
@@ -5099,6 +5218,78 @@ msgstr ""
msgid "Delete Internal Price Break"
msgstr ""
+#: plugin/integration.py:116
+msgid "No author found"
+msgstr ""
+
+#: plugin/integration.py:128
+msgid "No date found"
+msgstr ""
+
+#: plugin/models.py:25
+msgid "Plugin Configuration"
+msgstr ""
+
+#: plugin/models.py:26
+msgid "Plugin Configurations"
+msgstr ""
+
+#: plugin/models.py:31
+msgid "Key"
+msgstr ""
+
+#: plugin/models.py:32
+msgid "Key of plugin"
+msgstr ""
+
+#: plugin/models.py:40
+msgid "PluginName of the plugin"
+msgstr ""
+
+#: plugin/models.py:46
+msgid "Is the plugin active"
+msgstr ""
+
+#: plugin/samples/integration/sample.py:39
+msgid "Enable PO"
+msgstr ""
+
+#: plugin/samples/integration/sample.py:40
+msgid "Enable PO functionality in InvenTree interface"
+msgstr ""
+
+#: plugin/serializers.py:46
+msgid "Source URL"
+msgstr ""
+
+#: plugin/serializers.py:47
+msgid "Source for the package - this can be a custom registry or a VCS path"
+msgstr ""
+
+#: plugin/serializers.py:52
+msgid "Package Name"
+msgstr ""
+
+#: plugin/serializers.py:53
+msgid "Name for the Plugin Package - can also contain a version indicator"
+msgstr ""
+
+#: plugin/serializers.py:56
+msgid "Confirm plugin installation"
+msgstr ""
+
+#: plugin/serializers.py:57
+msgid "This will install this plugin now into the current instance. The instance will go into maintenance."
+msgstr ""
+
+#: plugin/serializers.py:72
+msgid "Installation not confirmed"
+msgstr ""
+
+#: plugin/serializers.py:74
+msgid "Either packagenmae of url must be provided"
+msgstr ""
+
#: report/api.py:234 report/api.py:278
#, python-brace-format
msgid "Template file '{filename}' is missing or does not exist"
@@ -5197,12 +5388,12 @@ msgid "Stock Item Test Report"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:520 stock/templates/stock/item_base.html:149
-#: templates/js/translated/build.js:233 templates/js/translated/build.js:637
-#: templates/js/translated/build.js:1013
+#: stock/models.py:514 stock/templates/stock/item_base.html:149
+#: templates/js/translated/build.js:238 templates/js/translated/build.js:642
+#: templates/js/translated/build.js:1018
#: templates/js/translated/model_renderers.js:95
-#: templates/js/translated/order.js:1287 templates/js/translated/order.js:1376
-#: templates/js/translated/stock.js:410
+#: templates/js/translated/order.js:99 templates/js/translated/order.js:1945
+#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:414
msgid "Serial Number"
msgstr ""
@@ -5211,17 +5402,19 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:93
-#: stock/models.py:1845
+#: stock/models.py:1833
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:94
-#: stock/models.py:1851
+#: stock/models.py:1839
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:97
-#: templates/js/translated/order.js:684 templates/js/translated/stock.js:1999
+#: templates/InvenTree/settings/plugin.html:49
+#: templates/InvenTree/settings/plugin_settings.html:38
+#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2174
msgid "Date"
msgstr ""
@@ -5239,302 +5432,318 @@ msgid "Installed Items"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
-#: templates/js/translated/stock.js:2259
+#: templates/js/translated/stock.js:577 templates/js/translated/stock.js:2434
msgid "Serial"
msgstr ""
-#: stock/api.py:422
+#: stock/api.py:446
msgid "Quantity is required"
msgstr ""
-#: stock/forms.py:91 stock/forms.py:265 stock/models.py:577
+#: stock/forms.py:77 stock/forms.py:251 stock/models.py:571
#: stock/templates/stock/item_base.html:186
-#: templates/js/translated/stock.js:1358
+#: templates/js/translated/stock.js:1522
msgid "Expiry Date"
msgstr ""
-#: stock/forms.py:92 stock/forms.py:266
+#: stock/forms.py:78 stock/forms.py:252
msgid "Expiration date for this stock item"
msgstr ""
-#: stock/forms.py:95
+#: stock/forms.py:81
msgid "Enter unique serial numbers (or leave blank)"
msgstr ""
-#: stock/forms.py:150
+#: stock/forms.py:136
msgid "Destination for serialized stock (by default, will remain in current location)"
msgstr ""
-#: stock/forms.py:152
+#: stock/forms.py:138
msgid "Serial numbers"
msgstr ""
-#: stock/forms.py:152
+#: stock/forms.py:138
msgid "Unique serial numbers (must match quantity)"
msgstr ""
-#: stock/forms.py:154 stock/forms.py:238
+#: stock/forms.py:140 stock/forms.py:224
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/forms.py:194
+#: stock/forms.py:180
msgid "Stock item to install"
msgstr ""
-#: stock/forms.py:224
+#: stock/forms.py:210
msgid "Must not exceed available quantity"
msgstr ""
-#: stock/forms.py:236
+#: stock/forms.py:222
msgid "Destination location for uninstalled items"
msgstr ""
-#: stock/forms.py:240
+#: stock/forms.py:226
msgid "Confirm uninstall"
msgstr ""
-#: stock/forms.py:240
+#: stock/forms.py:226
msgid "Confirm removal of installed stock items"
msgstr ""
-#: stock/models.py:60 stock/models.py:614
+#: stock/models.py:60 stock/models.py:608
#: stock/templates/stock/item_base.html:417
msgid "Owner"
msgstr ""
-#: stock/models.py:61 stock/models.py:615
+#: stock/models.py:61 stock/models.py:609
msgid "Select Owner"
msgstr ""
-#: stock/models.py:342
+#: stock/models.py:336
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:378
+#: stock/models.py:372
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:388 stock/models.py:397
+#: stock/models.py:382 stock/models.py:391
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:389
+#: stock/models.py:383
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:411
+#: stock/models.py:405
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:417
+#: stock/models.py:411
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:424
+#: stock/models.py:418
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:466
+#: stock/models.py:460
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:475
+#: stock/models.py:469
msgid "Base part"
msgstr ""
-#: stock/models.py:483
+#: stock/models.py:477
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:488 stock/templates/stock/location.html:12
+#: stock/models.py:482 stock/templates/stock/location.html:12
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:491
+#: stock/models.py:485
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:498
+#: stock/models.py:492
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:503 stock/templates/stock/item_base.html:299
+#: stock/models.py:497 stock/templates/stock/item_base.html:299
msgid "Installed In"
msgstr ""
-#: stock/models.py:506
+#: stock/models.py:500
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:522
+#: stock/models.py:516
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:536
+#: stock/models.py:530
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:540
+#: stock/models.py:534
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:549
+#: stock/models.py:543
msgid "Source Build"
msgstr ""
-#: stock/models.py:551
+#: stock/models.py:545
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:562
+#: stock/models.py:556
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:565
+#: stock/models.py:559
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:571
+#: stock/models.py:565
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:578
+#: stock/models.py:572
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:591
+#: stock/models.py:585
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:591
+#: stock/models.py:585
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:601 stock/templates/stock/item.html:111
+#: stock/models.py:595 stock/templates/stock/item.html:111
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:610
+#: stock/models.py:604
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:620
-msgid "Scheduled for deletion"
-msgstr ""
-
-#: stock/models.py:621
-msgid "This StockItem will be deleted by the background worker"
-msgstr ""
-
-#: stock/models.py:1084
+#: stock/models.py:1072
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1090
+#: stock/models.py:1078
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1096
+#: stock/models.py:1084
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1099
+#: stock/models.py:1087
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1102
+#: stock/models.py:1090
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1109
+#: stock/models.py:1097
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1267
+#: stock/models.py:1255
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1765
+#: stock/models.py:1753
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1822
+#: stock/models.py:1810
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1828
+#: stock/models.py:1816
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1846
+#: stock/models.py:1834
msgid "Test name"
msgstr ""
-#: stock/models.py:1852 templates/js/translated/table_filters.js:266
+#: stock/models.py:1840 templates/js/translated/table_filters.js:271
msgid "Test result"
msgstr ""
-#: stock/models.py:1858
+#: stock/models.py:1846
msgid "Test output value"
msgstr ""
-#: stock/models.py:1865
+#: stock/models.py:1853
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1871
+#: stock/models.py:1859
msgid "Test notes"
msgstr ""
-#: stock/serializers.py:171
+#: stock/serializers.py:173
msgid "Purchase price of this stock item"
msgstr ""
-#: stock/serializers.py:178
+#: stock/serializers.py:180
msgid "Purchase currency of this stock item"
msgstr ""
-#: stock/serializers.py:292
+#: stock/serializers.py:294
msgid "Enter number of stock items to serialize"
msgstr ""
-#: stock/serializers.py:307
+#: stock/serializers.py:309
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:313
+#: stock/serializers.py:315
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:324 stock/serializers.py:691
+#: stock/serializers.py:326 stock/serializers.py:814
msgid "Destination stock location"
msgstr ""
-#: stock/serializers.py:331
+#: stock/serializers.py:333
msgid "Optional note field"
msgstr ""
-#: stock/serializers.py:344
+#: stock/serializers.py:346
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:561
+#: stock/serializers.py:573
+msgid "Part must be salable"
+msgstr ""
+
+#: stock/serializers.py:577
+msgid "Item is allocated to a sales order"
+msgstr ""
+
+#: stock/serializers.py:581
+msgid "Item is allocated to a build order"
+msgstr ""
+
+#: stock/serializers.py:611
+msgid "Customer to assign stock items"
+msgstr ""
+
+#: stock/serializers.py:617
+msgid "Selected company is not a customer"
+msgstr ""
+
+#: stock/serializers.py:625
+msgid "Stock assignment notes"
+msgstr ""
+
+#: stock/serializers.py:635 stock/serializers.py:722
+msgid "A list of stock items must be provided"
+msgstr ""
+
+#: stock/serializers.py:684
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:589
+#: stock/serializers.py:712
msgid "Stock transaction notes"
msgstr ""
-#: stock/serializers.py:599
-msgid "A list of stock items must be provided"
-msgstr ""
-
#: stock/templates/stock/item.html:18
msgid "Stock Tracking Information"
msgstr ""
@@ -5572,7 +5781,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:137 stock/views.py:515
+#: stock/templates/stock/item.html:137 stock/views.py:482
msgid "Install Stock Item"
msgstr ""
@@ -5632,7 +5841,7 @@ msgstr ""
msgid "Transfer stock"
msgstr ""
-#: stock/templates/stock/item_base.html:85
+#: stock/templates/stock/item_base.html:85 templates/stock_table.html:53
msgid "Assign to customer"
msgstr ""
@@ -5694,7 +5903,7 @@ msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:190
-#: templates/js/translated/table_filters.js:247
+#: templates/js/translated/table_filters.js:252
msgid "Expired"
msgstr ""
@@ -5704,12 +5913,12 @@ msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:192
-#: templates/js/translated/table_filters.js:253
+#: templates/js/translated/table_filters.js:258
msgid "Stale"
msgstr ""
#: stock/templates/stock/item_base.html:199
-#: templates/js/translated/stock.js:1371
+#: templates/js/translated/stock.js:1535
msgid "Last Updated"
msgstr ""
@@ -5738,13 +5947,11 @@ msgid "This stock item has not passed all required tests"
msgstr ""
#: stock/templates/stock/item_base.html:255
-#, python-format
-msgid "This stock item is allocated to Sales Order %(link)s (Quantity: %(qty)s)"
+msgid "This stock item is allocated to Sales Order"
msgstr ""
#: stock/templates/stock/item_base.html:263
-#, python-format
-msgid "This stock item is allocated to Build %(link)s (Quantity: %(qty)s)"
+msgid "This stock item is allocated to Build Order"
msgstr ""
#: stock/templates/stock/item_base.html:269
@@ -5760,7 +5967,7 @@ msgid "This stock item will be automatically deleted when all stock is depleted.
msgstr ""
#: stock/templates/stock/item_base.html:318
-#: templates/js/translated/build.js:1035
+#: templates/js/translated/build.js:1040
msgid "No location set"
msgstr ""
@@ -5910,7 +6117,7 @@ msgstr ""
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:912
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:879
msgid "Convert Stock Item"
msgstr ""
@@ -5935,8 +6142,7 @@ msgstr ""
msgid "Edit Stock Location"
msgstr ""
-#: stock/views.py:269 stock/views.py:891 stock/views.py:1017
-#: stock/views.py:1299
+#: stock/views.py:269 stock/views.py:858 stock/views.py:984 stock/views.py:1266
msgid "Owner is required (ownership control is enabled)"
msgstr ""
@@ -5945,86 +6151,78 @@ msgid "Stock Location QR code"
msgstr ""
#: stock/views.py:303
-msgid "Assign to Customer"
-msgstr ""
-
-#: stock/views.py:312
-msgid "Customer must be specified"
-msgstr ""
-
-#: stock/views.py:336
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:345
+#: stock/views.py:312
msgid "Specify a valid location"
msgstr ""
-#: stock/views.py:356
+#: stock/views.py:323
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:367
+#: stock/views.py:334
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:384
+#: stock/views.py:351
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:489
+#: stock/views.py:456
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:663
+#: stock/views.py:630
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:760 templates/js/translated/stock.js:730
+#: stock/views.py:727 templates/js/translated/stock.js:887
msgid "Confirm stock adjustment"
msgstr ""
-#: stock/views.py:771
+#: stock/views.py:738
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:793 templates/js/translated/stock.js:319
+#: stock/views.py:760 templates/js/translated/stock.js:323
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:943
+#: stock/views.py:910
msgid "Create new Stock Location"
msgstr ""
-#: stock/views.py:1044
+#: stock/views.py:1011
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1186 templates/js/translated/stock.js:299
+#: stock/views.py:1153 templates/js/translated/stock.js:303
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1268
+#: stock/views.py:1235
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1368
+#: stock/views.py:1335
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:1381
+#: stock/views.py:1348
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1392
+#: stock/views.py:1359
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1399
+#: stock/views.py:1366
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1408
+#: stock/views.py:1375
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -6044,6 +6242,14 @@ msgstr ""
msgid "The requested page does not exist"
msgstr ""
+#: templates/503.html:10 templates/503.html:35
+msgid "Site is in Maintenance"
+msgstr ""
+
+#: templates/503.html:41
+msgid "The site is currently in maintenance and should be up again soon!"
+msgstr ""
+
#: templates/InvenTree/index.html:7
msgid "Index"
msgstr ""
@@ -6153,7 +6359,7 @@ msgid "Server Settings"
msgstr ""
#: templates/InvenTree/settings/login.html:9
-#: templates/InvenTree/settings/sidebar.html:28
+#: templates/InvenTree/settings/sidebar.html:29
msgid "Login Settings"
msgstr ""
@@ -6161,6 +6367,24 @@ msgstr ""
msgid "Signup"
msgstr ""
+#: templates/InvenTree/settings/mixins/settings.html:4
+#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:118
+msgid "Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/mixins/urls.html:4
+msgid "URLs"
+msgstr ""
+
+#: templates/InvenTree/settings/mixins/urls.html:6
+#, python-format
+msgid "The Base-URL for this plugin is %(base)s."
+msgstr ""
+
+#: templates/InvenTree/settings/mixins/urls.html:21
+msgid "open in new tab"
+msgstr ""
+
#: templates/InvenTree/settings/part.html:7
msgid "Part Settings"
msgstr ""
@@ -6177,6 +6401,126 @@ msgstr ""
msgid "Part Parameter Templates"
msgstr ""
+#: templates/InvenTree/settings/plugin.html:10
+msgid "Plugin Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:16
+msgid "Changing the settings below require you to immediatly restart InvenTree. Do not change this while under active usage."
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:32
+msgid "Plugin list"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:37
+#: templates/js/translated/plugin.js:15
+msgid "Install Plugin"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:46 templates/navbar.html:111
+#: users/models.py:39
+msgid "Admin"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:48
+#: templates/InvenTree/settings/plugin_settings.html:28
+msgid "Author"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:50
+#: templates/InvenTree/settings/plugin_settings.html:43
+msgid "Version"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:73
+#, python-format
+msgid "has %(name)s"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:91
+msgid "Inactive plugins"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:114
+msgid "Plugin Error Stack"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:123
+msgid "Stage"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:125
+msgid "Message"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:10
+#, python-format
+msgid "Plugin details for %(name)s"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:17
+msgid "Plugin information"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:48
+msgid "no version information supplied"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:62
+msgid "License"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:70
+msgid "The code information is pulled from the latest git commit for this plugin. It might not reflect official version numbers or information but the actual code running."
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:74
+msgid "Package information"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:80
+msgid "Installation method"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:83
+msgid "This plugin was installed as a package"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:85
+msgid "This plugin was found in a local InvenTree path"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:91
+msgid "Installation path"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:97
+msgid "Commit Author"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:101
+#: templates/about.html:47
+msgid "Commit Date"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:105
+#: templates/about.html:40
+msgid "Commit Hash"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:109
+msgid "Commit Message"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:114
+msgid "Sign Status"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:119
+msgid "Sign Key"
+msgstr ""
+
#: templates/InvenTree/settings/po.html:7
msgid "Purchase Order Settings"
msgstr ""
@@ -6194,86 +6538,82 @@ msgstr ""
msgid "Edit setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:11 templates/navbar.html:93
-msgid "Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/settings.html:65
+#: templates/InvenTree/settings/settings.html:74
msgid "Edit Global Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:65
+#: templates/InvenTree/settings/settings.html:74
msgid "Edit User Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:148
+#: templates/InvenTree/settings/settings.html:157
msgid "No category parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:170
-#: templates/InvenTree/settings/settings.html:269
+#: templates/InvenTree/settings/settings.html:179
+#: templates/InvenTree/settings/settings.html:278
msgid "Edit Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:171
-#: templates/InvenTree/settings/settings.html:270
+#: templates/InvenTree/settings/settings.html:180
+#: templates/InvenTree/settings/settings.html:279
msgid "Delete Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:249
+#: templates/InvenTree/settings/settings.html:258
msgid "No part parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:253
+#: templates/InvenTree/settings/settings.html:262
msgid "ID"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:5
+#: templates/InvenTree/settings/sidebar.html:6
#: templates/InvenTree/settings/user_settings.html:9
msgid "User Settings"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:8
+#: templates/InvenTree/settings/sidebar.html:9
#: templates/InvenTree/settings/user.html:12
msgid "Account Settings"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:10
+#: templates/InvenTree/settings/sidebar.html:11
#: templates/InvenTree/settings/user_display.html:9
msgid "Display Settings"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:12
+#: templates/InvenTree/settings/sidebar.html:13
msgid "Home Page"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:14
+#: templates/InvenTree/settings/sidebar.html:15
#: templates/InvenTree/settings/user_search.html:9
msgid "Search Settings"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:16
+#: templates/InvenTree/settings/sidebar.html:17
msgid "Label Printing"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:18
-#: templates/InvenTree/settings/sidebar.html:34
+#: templates/InvenTree/settings/sidebar.html:19
+#: templates/InvenTree/settings/sidebar.html:35
msgid "Reporting"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:23
+#: templates/InvenTree/settings/sidebar.html:24
msgid "Global Settings"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:26
+#: templates/InvenTree/settings/sidebar.html:27
msgid "Server Configuration"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:32
+#: templates/InvenTree/settings/sidebar.html:33
msgid "Currencies"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:38
+#: templates/InvenTree/settings/sidebar.html:39
msgid "Categories"
msgstr ""
@@ -6491,8 +6831,8 @@ msgstr ""
#: templates/about.html:11 templates/about.html:105
#: templates/js/translated/bom.js:283 templates/js/translated/modals.js:53
-#: templates/js/translated/modals.js:567 templates/js/translated/modals.js:661
-#: templates/js/translated/modals.js:964 templates/modals.html:15
+#: templates/js/translated/modals.js:568 templates/js/translated/modals.js:662
+#: templates/js/translated/modals.js:965 templates/modals.html:15
#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
msgid "Close"
msgstr ""
@@ -6513,14 +6853,6 @@ msgstr ""
msgid "Update Available"
msgstr ""
-#: templates/about.html:40
-msgid "Commit Hash"
-msgstr ""
-
-#: templates/about.html:47
-msgid "Commit Date"
-msgstr ""
-
#: templates/about.html:53
msgid "InvenTree Documentation"
msgstr ""
@@ -6718,8 +7050,9 @@ msgstr ""
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1129
-#: templates/js/translated/build.js:1749
+#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1134
+#: templates/js/translated/build.js:1755
+#: templates/js/translated/table_filters.js:178
msgid "Available"
msgstr ""
@@ -6765,11 +7098,11 @@ msgstr ""
msgid "Remote image must not exceed maximum allowable file size"
msgstr ""
-#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1034
+#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1035
msgid "No Response"
msgstr ""
-#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1035
+#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1036
msgid "No response from the InvenTree server"
msgstr ""
@@ -6781,35 +7114,35 @@ msgstr ""
msgid "API request returned error code 400"
msgstr ""
-#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1044
+#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1045
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1045
+#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1046
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1049
+#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1050
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1050
+#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1051
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1054
+#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1055
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1055
+#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1056
msgid "The requested resource could not be located on the server"
msgstr ""
-#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1059
+#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1060
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1060
+#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1061
msgid "Connection timeout while requesting data from server"
msgstr ""
@@ -6878,7 +7211,7 @@ msgid "Unknown response from server"
msgstr ""
#: templates/js/translated/barcode.js:140
-#: templates/js/translated/modals.js:1024
+#: templates/js/translated/modals.js:1025
msgid "Invalid server response"
msgstr ""
@@ -6886,7 +7219,7 @@ msgstr ""
msgid "Scan barcode data below"
msgstr ""
-#: templates/js/translated/barcode.js:280 templates/navbar.html:69
+#: templates/js/translated/barcode.js:280 templates/navbar.html:94
msgid "Scan Barcode"
msgstr ""
@@ -6906,7 +7239,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:682
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:839
msgid "Remove stock item"
msgstr ""
@@ -6976,7 +7309,7 @@ msgstr ""
msgid "Substitutes Available"
msgstr ""
-#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1111
+#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1116
msgid "Variant stock allowed"
msgstr ""
@@ -7000,11 +7333,6 @@ msgstr ""
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1183
-#: templates/js/translated/order.js:1319
-msgid "Actions"
-msgstr ""
-
#: templates/js/translated/bom.js:616
msgid "Validate BOM Item"
msgstr ""
@@ -7025,7 +7353,7 @@ msgstr ""
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:718 templates/js/translated/build.js:855
+#: templates/js/translated/bom.js:718 templates/js/translated/build.js:860
msgid "No BOM items found"
msgstr ""
@@ -7033,7 +7361,7 @@ msgstr ""
msgid "Are you sure you want to delete this BOM item?"
msgstr ""
-#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1095
+#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1100
msgid "Required Part"
msgstr ""
@@ -7041,165 +7369,165 @@ msgstr ""
msgid "Inherited from parent BOM"
msgstr ""
-#: templates/js/translated/build.js:78
+#: templates/js/translated/build.js:83
msgid "Edit Build Order"
msgstr ""
-#: templates/js/translated/build.js:112
+#: templates/js/translated/build.js:117
msgid "Create Build Order"
msgstr ""
-#: templates/js/translated/build.js:133
+#: templates/js/translated/build.js:138
msgid "Allocate stock items to this build output"
msgstr ""
-#: templates/js/translated/build.js:144
+#: templates/js/translated/build.js:149
msgid "Unallocate stock from build output"
msgstr ""
-#: templates/js/translated/build.js:153
+#: templates/js/translated/build.js:158
msgid "Complete build output"
msgstr ""
-#: templates/js/translated/build.js:161
+#: templates/js/translated/build.js:166
msgid "Delete build output"
msgstr ""
-#: templates/js/translated/build.js:184
+#: templates/js/translated/build.js:189
msgid "Are you sure you wish to unallocate stock items from this build?"
msgstr ""
-#: templates/js/translated/build.js:202
+#: templates/js/translated/build.js:207
msgid "Unallocate Stock Items"
msgstr ""
-#: templates/js/translated/build.js:220
+#: templates/js/translated/build.js:225
msgid "Select Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:221
+#: templates/js/translated/build.js:226
msgid "At least one build output must be selected"
msgstr ""
-#: templates/js/translated/build.js:275
+#: templates/js/translated/build.js:280
msgid "Output"
msgstr ""
-#: templates/js/translated/build.js:291
+#: templates/js/translated/build.js:296
msgid "Complete Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:386
+#: templates/js/translated/build.js:391
msgid "No build order allocations found"
msgstr ""
-#: templates/js/translated/build.js:424 templates/js/translated/order.js:1193
+#: templates/js/translated/build.js:429 templates/js/translated/order.js:1848
msgid "Location not specified"
msgstr ""
-#: templates/js/translated/build.js:603
+#: templates/js/translated/build.js:608
msgid "No active build outputs found"
msgstr ""
-#: templates/js/translated/build.js:1052 templates/js/translated/build.js:1760
-#: templates/js/translated/order.js:1326
+#: templates/js/translated/build.js:1057 templates/js/translated/build.js:1766
+#: templates/js/translated/order.js:1982
msgid "Edit stock allocation"
msgstr ""
-#: templates/js/translated/build.js:1054 templates/js/translated/build.js:1761
-#: templates/js/translated/order.js:1327
+#: templates/js/translated/build.js:1059 templates/js/translated/build.js:1767
+#: templates/js/translated/order.js:1983
msgid "Delete stock allocation"
msgstr ""
-#: templates/js/translated/build.js:1072
+#: templates/js/translated/build.js:1077
msgid "Edit Allocation"
msgstr ""
-#: templates/js/translated/build.js:1082
+#: templates/js/translated/build.js:1087
msgid "Remove Allocation"
msgstr ""
-#: templates/js/translated/build.js:1107
+#: templates/js/translated/build.js:1112
msgid "Substitute parts available"
msgstr ""
-#: templates/js/translated/build.js:1124
+#: templates/js/translated/build.js:1129
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:1134 templates/js/translated/build.js:1360
-#: templates/js/translated/build.js:1756 templates/js/translated/order.js:1556
+#: templates/js/translated/build.js:1139 templates/js/translated/build.js:1365
+#: templates/js/translated/build.js:1762 templates/js/translated/order.js:2227
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:1190 templates/js/translated/order.js:1610
+#: templates/js/translated/build.js:1195 templates/js/translated/order.js:2307
msgid "Build stock"
msgstr ""
-#: templates/js/translated/build.js:1194 templates/stock_table.html:52
+#: templates/js/translated/build.js:1199 templates/stock_table.html:52
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:1197 templates/js/translated/order.js:1603
+#: templates/js/translated/build.js:1202 templates/js/translated/order.js:2300
msgid "Allocate stock"
msgstr ""
-#: templates/js/translated/build.js:1262
+#: templates/js/translated/build.js:1267 templates/js/translated/order.js:1499
msgid "Specify stock allocation quantity"
msgstr ""
-#: templates/js/translated/build.js:1333 templates/js/translated/label.js:134
-#: templates/js/translated/report.js:225
+#: templates/js/translated/build.js:1338 templates/js/translated/label.js:134
+#: templates/js/translated/order.js:1550 templates/js/translated/report.js:225
msgid "Select Parts"
msgstr ""
-#: templates/js/translated/build.js:1334
+#: templates/js/translated/build.js:1339 templates/js/translated/order.js:1551
msgid "You must select at least one part to allocate"
msgstr ""
-#: templates/js/translated/build.js:1348
+#: templates/js/translated/build.js:1353 templates/js/translated/order.js:1565
msgid "Select source location (leave blank to take from all locations)"
msgstr ""
-#: templates/js/translated/build.js:1377
+#: templates/js/translated/build.js:1382 templates/js/translated/order.js:1600
msgid "Confirm stock allocation"
msgstr ""
-#: templates/js/translated/build.js:1378
+#: templates/js/translated/build.js:1383
msgid "Allocate Stock Items to Build Order"
msgstr ""
-#: templates/js/translated/build.js:1389
+#: templates/js/translated/build.js:1394 templates/js/translated/order.js:1613
msgid "No matching stock locations"
msgstr ""
-#: templates/js/translated/build.js:1451
+#: templates/js/translated/build.js:1464 templates/js/translated/order.js:1690
msgid "No matching stock items"
msgstr ""
-#: templates/js/translated/build.js:1576
+#: templates/js/translated/build.js:1582
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:1593 templates/js/translated/part.js:1147
-#: templates/js/translated/part.js:1558 templates/js/translated/stock.js:1176
-#: templates/js/translated/stock.js:1953
+#: templates/js/translated/build.js:1599 templates/js/translated/part.js:1147
+#: templates/js/translated/part.js:1558 templates/js/translated/stock.js:1333
+#: templates/js/translated/stock.js:2128
msgid "Select"
msgstr ""
-#: templates/js/translated/build.js:1613
+#: templates/js/translated/build.js:1619
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1674 templates/js/translated/stock.js:2172
+#: templates/js/translated/build.js:1680 templates/js/translated/stock.js:2347
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:1686
+#: templates/js/translated/build.js:1692
msgid "No information"
msgstr ""
-#: templates/js/translated/build.js:1737
+#: templates/js/translated/build.js:1743
msgid "No parts allocated for"
msgstr ""
@@ -7219,7 +7547,7 @@ msgstr ""
msgid "Delete Manufacturer Part"
msgstr ""
-#: templates/js/translated/company.js:165 templates/js/translated/order.js:90
+#: templates/js/translated/company.js:165 templates/js/translated/order.js:248
msgid "Add Supplier"
msgstr ""
@@ -7354,20 +7682,20 @@ msgstr ""
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1072 templates/modals.html:19
+#: templates/js/translated/forms.js:1078 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1463
+#: templates/js/translated/forms.js:1469
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1667
+#: templates/js/translated/forms.js:1673
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1884
+#: templates/js/translated/forms.js:1893
msgid "Clear input"
msgstr ""
@@ -7380,7 +7708,7 @@ msgid "NO"
msgstr ""
#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:706
+#: templates/js/translated/stock.js:863
msgid "Select Stock Items"
msgstr ""
@@ -7429,62 +7757,62 @@ msgstr ""
msgid "Select Label Template"
msgstr ""
-#: templates/js/translated/modals.js:75 templates/js/translated/modals.js:119
-#: templates/js/translated/modals.js:593
+#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:120
+#: templates/js/translated/modals.js:594
msgid "Cancel"
msgstr ""
-#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:118
-#: templates/js/translated/modals.js:660 templates/js/translated/modals.js:963
+#: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119
+#: templates/js/translated/modals.js:661 templates/js/translated/modals.js:964
#: templates/modals.html:28 templates/modals.html:51
msgid "Submit"
msgstr ""
-#: templates/js/translated/modals.js:117
+#: templates/js/translated/modals.js:118
msgid "Form Title"
msgstr ""
-#: templates/js/translated/modals.js:380
+#: templates/js/translated/modals.js:381
msgid "Waiting for server..."
msgstr ""
-#: templates/js/translated/modals.js:539
+#: templates/js/translated/modals.js:540
msgid "Show Error Information"
msgstr ""
-#: templates/js/translated/modals.js:592
+#: templates/js/translated/modals.js:593
msgid "Accept"
msgstr ""
-#: templates/js/translated/modals.js:649
+#: templates/js/translated/modals.js:650
msgid "Loading Data"
msgstr ""
-#: templates/js/translated/modals.js:915
+#: templates/js/translated/modals.js:916
msgid "Invalid response from server"
msgstr ""
-#: templates/js/translated/modals.js:915
+#: templates/js/translated/modals.js:916
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/translated/modals.js:927
+#: templates/js/translated/modals.js:928
msgid "Error posting form data"
msgstr ""
-#: templates/js/translated/modals.js:1024
+#: templates/js/translated/modals.js:1025
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/translated/modals.js:1039
+#: templates/js/translated/modals.js:1040
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/translated/modals.js:1040
+#: templates/js/translated/modals.js:1041
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/translated/modals.js:1063
+#: templates/js/translated/modals.js:1064
msgid "Error requesting form data"
msgstr ""
@@ -7512,176 +7840,245 @@ msgstr ""
msgid "Order ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:256
+#: templates/js/translated/model_renderers.js:253
+msgid "Shipment ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:273
msgid "Category ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:293
+#: templates/js/translated/model_renderers.js:310
msgid "Manufacturer Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:322
+#: templates/js/translated/model_renderers.js:339
msgid "Supplier Part ID"
msgstr ""
-#: templates/js/translated/order.js:48
+#: templates/js/translated/order.js:75
+msgid "No stock items have been allocated to this shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:80
+msgid "The following stock items will be shipped"
+msgstr ""
+
+#: templates/js/translated/order.js:120
+msgid "Complete Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:126
+msgid "Confirm Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:181
+msgid "Create New Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:206
msgid "Add Customer"
msgstr ""
-#: templates/js/translated/order.js:73
+#: templates/js/translated/order.js:231
msgid "Create Sales Order"
msgstr ""
-#: templates/js/translated/order.js:208
+#: templates/js/translated/order.js:366
msgid "Export Order"
msgstr ""
-#: templates/js/translated/order.js:211 templates/js/translated/stock.js:505
+#: templates/js/translated/order.js:369 templates/js/translated/stock.js:509
msgid "Format"
msgstr ""
-#: templates/js/translated/order.js:212 templates/js/translated/stock.js:506
+#: templates/js/translated/order.js:370 templates/js/translated/stock.js:510
msgid "Select file format"
msgstr ""
-#: templates/js/translated/order.js:300
+#: templates/js/translated/order.js:460
msgid "Select Line Items"
msgstr ""
-#: templates/js/translated/order.js:301
+#: templates/js/translated/order.js:461
msgid "At least one line item must be selected"
msgstr ""
-#: templates/js/translated/order.js:326
+#: templates/js/translated/order.js:486
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:360 templates/js/translated/stock.js:1755
+#: templates/js/translated/order.js:520 templates/js/translated/stock.js:1930
msgid "Stock Status"
msgstr ""
-#: templates/js/translated/order.js:427
+#: templates/js/translated/order.js:587
msgid "Order Code"
msgstr ""
-#: templates/js/translated/order.js:428
+#: templates/js/translated/order.js:588
msgid "Ordered"
msgstr ""
-#: templates/js/translated/order.js:430
+#: templates/js/translated/order.js:590
msgid "Receive"
msgstr ""
-#: templates/js/translated/order.js:449
+#: templates/js/translated/order.js:609
msgid "Confirm receipt of items"
msgstr ""
-#: templates/js/translated/order.js:450
+#: templates/js/translated/order.js:610
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:627 templates/js/translated/part.js:746
+#: templates/js/translated/order.js:790 templates/js/translated/part.js:746
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:659 templates/js/translated/order.js:1062
+#: templates/js/translated/order.js:815 templates/js/translated/order.js:1230
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:771 templates/js/translated/order.js:1645
+#: templates/js/translated/order.js:936 templates/js/translated/order.js:2356
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:783 templates/js/translated/order.js:1656
+#: templates/js/translated/order.js:948 templates/js/translated/order.js:2367
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/order.js:822
+#: templates/js/translated/order.js:987
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:849 templates/js/translated/order.js:1466
+#: templates/js/translated/order.js:1014 templates/js/translated/order.js:2138
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:903 templates/js/translated/order.js:1491
+#: templates/js/translated/order.js:1068 templates/js/translated/order.js:2163
#: templates/js/translated/part.js:1775 templates/js/translated/part.js:1986
msgid "Unit Price"
msgstr ""
-#: templates/js/translated/order.js:918 templates/js/translated/order.js:1507
+#: templates/js/translated/order.js:1083 templates/js/translated/order.js:2179
msgid "Total Price"
msgstr ""
-#: templates/js/translated/order.js:996 templates/js/translated/order.js:1616
+#: templates/js/translated/order.js:1161 templates/js/translated/order.js:2313
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:997
+#: templates/js/translated/order.js:1162 templates/js/translated/order.js:2317
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:1001 templates/js/translated/part.js:878
+#: templates/js/translated/order.js:1166 templates/js/translated/part.js:878
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:1038
+#: templates/js/translated/order.js:1206
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:1076
+#: templates/js/translated/order.js:1244
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:1154
+#: templates/js/translated/order.js:1322
+msgid "Edit shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1325
+msgid "Complete shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1330
+msgid "Delete shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1350
+msgid "Edit Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1367
+msgid "Delete Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1401
+msgid "No matching shipments found"
+msgstr ""
+
+#: templates/js/translated/order.js:1411
+msgid "Shipment Reference"
+msgstr ""
+
+#: templates/js/translated/order.js:1435
+msgid "Not shipped"
+msgstr ""
+
+#: templates/js/translated/order.js:1441
+msgid "Tracking"
+msgstr ""
+
+#: templates/js/translated/order.js:1601
+msgid "Allocate Stock Items to Sales Order"
+msgstr ""
+
+#: templates/js/translated/order.js:1809
msgid "No sales order allocations found"
msgstr ""
-#: templates/js/translated/order.js:1247
+#: templates/js/translated/order.js:1898
msgid "Edit Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1264
+#: templates/js/translated/order.js:1915
msgid "Confirm Delete Operation"
msgstr ""
-#: templates/js/translated/order.js:1265
+#: templates/js/translated/order.js:1916
msgid "Delete Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1307
+#: templates/js/translated/order.js:1959 templates/js/translated/order.js:2048
+#: templates/js/translated/stock.js:1249
+msgid "Shipped to customer"
+msgstr ""
+
+#: templates/js/translated/order.js:1967 templates/js/translated/order.js:2057
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:1556
-msgid "Fulfilled"
-msgstr ""
-
-#: templates/js/translated/order.js:1600
+#: templates/js/translated/order.js:2297
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:1606
+#: templates/js/translated/order.js:2303
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:1613 templates/js/translated/order.js:1792
+#: templates/js/translated/order.js:2310 templates/js/translated/order.js:2476
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:1617
-msgid "Delete line item "
+#: templates/js/translated/order.js:2321
+msgid "Cannot be deleted as items have been shipped"
msgstr ""
-#: templates/js/translated/order.js:1740
-msgid "Allocate Stock Item"
+#: templates/js/translated/order.js:2324
+msgid "Cannot be deleted as items have been allocated"
msgstr ""
-#: templates/js/translated/order.js:1800
+#: templates/js/translated/order.js:2382
+msgid "Allocate Serial Numbers"
+msgstr ""
+
+#: templates/js/translated/order.js:2484
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:1814
+#: templates/js/translated/order.js:2498
msgid "No matching line items"
msgstr ""
@@ -7826,12 +8223,12 @@ msgid "No category"
msgstr ""
#: templates/js/translated/part.js:1230
-#: templates/js/translated/table_filters.js:381
+#: templates/js/translated/table_filters.js:412
msgid "Low stock"
msgstr ""
#: templates/js/translated/part.js:1321 templates/js/translated/part.js:1493
-#: templates/js/translated/stock.js:1914
+#: templates/js/translated/stock.js:2089
msgid "Display as list"
msgstr ""
@@ -7839,7 +8236,7 @@ msgstr ""
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1512 templates/js/translated/stock.js:1933
+#: templates/js/translated/part.js:1512 templates/js/translated/stock.js:2108
msgid "Display as tree"
msgstr ""
@@ -7847,7 +8244,7 @@ msgstr ""
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:1590 templates/js/translated/stock.js:1977
+#: templates/js/translated/part.js:1590 templates/js/translated/stock.js:2152
msgid "Path"
msgstr ""
@@ -7855,11 +8252,11 @@ msgstr ""
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1685 templates/js/translated/stock.js:898
+#: templates/js/translated/part.js:1685 templates/js/translated/stock.js:1055
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1686 templates/js/translated/stock.js:899
+#: templates/js/translated/part.js:1686 templates/js/translated/stock.js:1056
msgid "Delete test result"
msgstr ""
@@ -7898,6 +8295,10 @@ msgstr ""
msgid "Single Price Difference"
msgstr ""
+#: templates/js/translated/plugin.js:22
+msgid "The Plugin was installed"
+msgstr ""
+
#: templates/js/translated/report.js:67
msgid "items selected"
msgstr ""
@@ -7964,300 +8365,316 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/stock.js:71
+#: templates/js/translated/stock.js:72
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:89 templates/js/translated/stock.js:168
+#: templates/js/translated/stock.js:90 templates/js/translated/stock.js:172
msgid "Next available serial number"
msgstr ""
-#: templates/js/translated/stock.js:91 templates/js/translated/stock.js:170
+#: templates/js/translated/stock.js:92 templates/js/translated/stock.js:174
msgid "Latest serial number"
msgstr ""
-#: templates/js/translated/stock.js:105
+#: templates/js/translated/stock.js:100
+msgid "Confirm Stock Serialization"
+msgstr ""
+
+#: templates/js/translated/stock.js:109
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:141
+#: templates/js/translated/stock.js:145
msgid "New Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:181
+#: templates/js/translated/stock.js:185
msgid "This part cannot be serialized"
msgstr ""
-#: templates/js/translated/stock.js:220
+#: templates/js/translated/stock.js:224
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: templates/js/translated/stock.js:226
+#: templates/js/translated/stock.js:230
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: templates/js/translated/stock.js:369
+#: templates/js/translated/stock.js:373
msgid "Created new stock item"
msgstr ""
-#: templates/js/translated/stock.js:382
+#: templates/js/translated/stock.js:386
msgid "Created multiple stock items"
msgstr ""
-#: templates/js/translated/stock.js:407
+#: templates/js/translated/stock.js:411
msgid "Find Serial Number"
msgstr ""
-#: templates/js/translated/stock.js:411 templates/js/translated/stock.js:412
+#: templates/js/translated/stock.js:415 templates/js/translated/stock.js:416
msgid "Enter serial number"
msgstr ""
-#: templates/js/translated/stock.js:428
+#: templates/js/translated/stock.js:432
msgid "Enter a serial number"
msgstr ""
-#: templates/js/translated/stock.js:448
+#: templates/js/translated/stock.js:452
msgid "No matching serial number"
msgstr ""
-#: templates/js/translated/stock.js:457
+#: templates/js/translated/stock.js:461
msgid "More than one matching result found"
msgstr ""
-#: templates/js/translated/stock.js:502
+#: templates/js/translated/stock.js:506
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:513
+#: templates/js/translated/stock.js:517
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:514
+#: templates/js/translated/stock.js:518
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:556
+#: templates/js/translated/stock.js:627
+msgid "Confirm stock assignment"
+msgstr ""
+
+#: templates/js/translated/stock.js:628
+msgid "Assign Stock to Customer"
+msgstr ""
+
+#: templates/js/translated/stock.js:713
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:557
+#: templates/js/translated/stock.js:714
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:563
+#: templates/js/translated/stock.js:720
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:564
+#: templates/js/translated/stock.js:721
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:568
+#: templates/js/translated/stock.js:725
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:569
+#: templates/js/translated/stock.js:726
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:573
+#: templates/js/translated/stock.js:730
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:574 users/models.py:200
+#: templates/js/translated/stock.js:731 users/models.py:202
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:578 templates/stock_table.html:56
+#: templates/js/translated/stock.js:735 templates/stock_table.html:57
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:667
+#: templates/js/translated/stock.js:824
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:667
+#: templates/js/translated/stock.js:824
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:707
+#: templates/js/translated/stock.js:864
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:865
+#: templates/js/translated/stock.js:1022
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:867
+#: templates/js/translated/stock.js:1024
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:872
+#: templates/js/translated/stock.js:1029
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:894
+#: templates/js/translated/stock.js:1051
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:920
+#: templates/js/translated/stock.js:1077
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:977
+#: templates/js/translated/stock.js:1134
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:1084
+#: templates/js/translated/stock.js:1241
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:1088
+#: templates/js/translated/stock.js:1245
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:1092
-msgid "Shipped to customer"
-msgstr ""
-
-#: templates/js/translated/stock.js:1096
+#: templates/js/translated/stock.js:1253
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:1102
+#: templates/js/translated/stock.js:1259
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:1260
+#: templates/js/translated/stock.js:1417
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1265
+#: templates/js/translated/stock.js:1422
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1268
+#: templates/js/translated/stock.js:1425
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1272
+#: templates/js/translated/stock.js:1429
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1274
+#: templates/js/translated/stock.js:1431
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1278
-msgid "Stock item has been allocated"
+#: templates/js/translated/stock.js:1437
+msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1282
+#: templates/js/translated/stock.js:1439
+msgid "Stock item has been fully allocated"
+msgstr ""
+
+#: templates/js/translated/stock.js:1441
+msgid "Stock item has been partially allocated"
+msgstr ""
+
+#: templates/js/translated/stock.js:1446
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1289
+#: templates/js/translated/stock.js:1453
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1291
+#: templates/js/translated/stock.js:1455
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1293
+#: templates/js/translated/stock.js:1457
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1297
-#: templates/js/translated/table_filters.js:183
+#: templates/js/translated/stock.js:1461
+#: templates/js/translated/table_filters.js:188
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1347
+#: templates/js/translated/stock.js:1511
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1420
+#: templates/js/translated/stock.js:1584
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1458
+#: templates/js/translated/stock.js:1622
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1479 templates/js/translated/stock.js:1527
+#: templates/js/translated/stock.js:1643 templates/js/translated/stock.js:1691
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1567
+#: templates/js/translated/stock.js:1731
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1594
+#: templates/js/translated/stock.js:1758
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:1596
+#: templates/js/translated/stock.js:1760
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:1770
+#: templates/js/translated/stock.js:1945
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:1784
+#: templates/js/translated/stock.js:1959
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:1785
+#: templates/js/translated/stock.js:1960
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:2009
+#: templates/js/translated/stock.js:2184
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:2031
+#: templates/js/translated/stock.js:2206
msgid "Details"
msgstr ""
-#: templates/js/translated/stock.js:2056
+#: templates/js/translated/stock.js:2231
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2075
+#: templates/js/translated/stock.js:2250
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2094
+#: templates/js/translated/stock.js:2269
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2112
+#: templates/js/translated/stock.js:2287
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2135
+#: templates/js/translated/stock.js:2310
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2143
+#: templates/js/translated/stock.js:2318
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2184
+#: templates/js/translated/stock.js:2359
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2185
+#: templates/js/translated/stock.js:2360
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2236
+#: templates/js/translated/stock.js:2411
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2287
+#: templates/js/translated/stock.js:2462
msgid "Uninstall Stock Item"
msgstr ""
@@ -8278,7 +8695,7 @@ msgid "Allow Variant Stock"
msgstr ""
#: templates/js/translated/table_filters.js:110
-#: templates/js/translated/table_filters.js:178
+#: templates/js/translated/table_filters.js:183
msgid "Include sublocations"
msgstr ""
@@ -8288,54 +8705,54 @@ msgstr ""
#: templates/js/translated/table_filters.js:121
#: templates/js/translated/table_filters.js:122
-#: templates/js/translated/table_filters.js:358
+#: templates/js/translated/table_filters.js:389
msgid "Include subcategories"
msgstr ""
#: templates/js/translated/table_filters.js:126
-#: templates/js/translated/table_filters.js:393
+#: templates/js/translated/table_filters.js:424
msgid "Subscribed"
msgstr ""
#: templates/js/translated/table_filters.js:136
-#: templates/js/translated/table_filters.js:213
+#: templates/js/translated/table_filters.js:218
msgid "Is Serialized"
msgstr ""
#: templates/js/translated/table_filters.js:139
-#: templates/js/translated/table_filters.js:220
+#: templates/js/translated/table_filters.js:225
msgid "Serial number GTE"
msgstr ""
#: templates/js/translated/table_filters.js:140
-#: templates/js/translated/table_filters.js:221
+#: templates/js/translated/table_filters.js:226
msgid "Serial number greater than or equal to"
msgstr ""
#: templates/js/translated/table_filters.js:143
-#: templates/js/translated/table_filters.js:224
+#: templates/js/translated/table_filters.js:229
msgid "Serial number LTE"
msgstr ""
#: templates/js/translated/table_filters.js:144
-#: templates/js/translated/table_filters.js:225
+#: templates/js/translated/table_filters.js:230
msgid "Serial number less than or equal to"
msgstr ""
#: templates/js/translated/table_filters.js:147
#: templates/js/translated/table_filters.js:148
-#: templates/js/translated/table_filters.js:216
-#: templates/js/translated/table_filters.js:217
+#: templates/js/translated/table_filters.js:221
+#: templates/js/translated/table_filters.js:222
msgid "Serial number"
msgstr ""
#: templates/js/translated/table_filters.js:152
-#: templates/js/translated/table_filters.js:234
+#: templates/js/translated/table_filters.js:239
msgid "Batch code"
msgstr ""
#: templates/js/translated/table_filters.js:163
-#: templates/js/translated/table_filters.js:348
+#: templates/js/translated/table_filters.js:379
msgid "Active parts"
msgstr ""
@@ -8356,101 +8773,111 @@ msgid "Item has been allocated"
msgstr ""
#: templates/js/translated/table_filters.js:179
-msgid "Include stock in sublocations"
+msgid "Stock is available for use"
msgstr ""
#: templates/js/translated/table_filters.js:184
-msgid "Show stock items which are depleted"
+msgid "Include stock in sublocations"
msgstr ""
#: templates/js/translated/table_filters.js:189
-msgid "Show items which are in stock"
-msgstr ""
-
-#: templates/js/translated/table_filters.js:193
-msgid "In Production"
+msgid "Show stock items which are depleted"
msgstr ""
#: templates/js/translated/table_filters.js:194
-msgid "Show items which are in production"
+msgid "Show items which are in stock"
msgstr ""
#: templates/js/translated/table_filters.js:198
-msgid "Include Variants"
+msgid "In Production"
msgstr ""
#: templates/js/translated/table_filters.js:199
-msgid "Include stock items for variant parts"
+msgid "Show items which are in production"
msgstr ""
#: templates/js/translated/table_filters.js:203
-msgid "Installed"
+msgid "Include Variants"
msgstr ""
#: templates/js/translated/table_filters.js:204
-msgid "Show stock items which are installed in another item"
+msgid "Include stock items for variant parts"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:208
+msgid "Installed"
msgstr ""
#: templates/js/translated/table_filters.js:209
+msgid "Show stock items which are installed in another item"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:214
msgid "Show items which have been assigned to a customer"
msgstr ""
-#: templates/js/translated/table_filters.js:229
-#: templates/js/translated/table_filters.js:230
+#: templates/js/translated/table_filters.js:234
+#: templates/js/translated/table_filters.js:235
msgid "Stock status"
msgstr ""
-#: templates/js/translated/table_filters.js:238
+#: templates/js/translated/table_filters.js:243
msgid "Has purchase price"
msgstr ""
-#: templates/js/translated/table_filters.js:239
+#: templates/js/translated/table_filters.js:244
msgid "Show stock items which have a purchase price set"
msgstr ""
-#: templates/js/translated/table_filters.js:248
+#: templates/js/translated/table_filters.js:253
msgid "Show stock items which have expired"
msgstr ""
-#: templates/js/translated/table_filters.js:254
+#: templates/js/translated/table_filters.js:259
msgid "Show stock which is close to expiring"
msgstr ""
-#: templates/js/translated/table_filters.js:285
+#: templates/js/translated/table_filters.js:290
msgid "Build status"
msgstr ""
-#: templates/js/translated/table_filters.js:313
-#: templates/js/translated/table_filters.js:330
+#: templates/js/translated/table_filters.js:303
+#: templates/js/translated/table_filters.js:344
+msgid "Assigned to me"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:320
+#: templates/js/translated/table_filters.js:331
+#: templates/js/translated/table_filters.js:352
msgid "Order status"
msgstr ""
-#: templates/js/translated/table_filters.js:318
-#: templates/js/translated/table_filters.js:335
+#: templates/js/translated/table_filters.js:336
+#: templates/js/translated/table_filters.js:357
msgid "Outstanding"
msgstr ""
-#: templates/js/translated/table_filters.js:359
+#: templates/js/translated/table_filters.js:390
msgid "Include parts in subcategories"
msgstr ""
-#: templates/js/translated/table_filters.js:363
+#: templates/js/translated/table_filters.js:394
msgid "Has IPN"
msgstr ""
-#: templates/js/translated/table_filters.js:364
+#: templates/js/translated/table_filters.js:395
msgid "Part has internal part number"
msgstr ""
-#: templates/js/translated/table_filters.js:369
+#: templates/js/translated/table_filters.js:400
msgid "Show active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:377
+#: templates/js/translated/table_filters.js:408
msgid "Stock available"
msgstr ""
-#: templates/js/translated/table_filters.js:405
+#: templates/js/translated/table_filters.js:436
msgid "Purchasable"
msgstr ""
@@ -8507,27 +8934,23 @@ msgstr ""
msgid "All"
msgstr ""
-#: templates/navbar.html:40
+#: templates/navbar.html:42
msgid "Buy"
msgstr ""
-#: templates/navbar.html:52
+#: templates/navbar.html:54
msgid "Sell"
msgstr ""
-#: templates/navbar.html:86 users/models.py:39
-msgid "Admin"
-msgstr ""
-
-#: templates/navbar.html:88
+#: templates/navbar.html:113
msgid "Logout"
msgstr ""
-#: templates/navbar.html:90
+#: templates/navbar.html:115
msgid "Login"
msgstr ""
-#: templates/navbar.html:111
+#: templates/navbar.html:136
msgid "About InvenTree"
msgstr ""
@@ -8639,15 +9062,15 @@ msgstr ""
msgid "Order selected items"
msgstr ""
-#: templates/stock_table.html:53
+#: templates/stock_table.html:54
msgid "Change status"
msgstr ""
-#: templates/stock_table.html:53
+#: templates/stock_table.html:54
msgid "Change stock status"
msgstr ""
-#: templates/stock_table.html:56
+#: templates/stock_table.html:57
msgid "Delete selected items"
msgstr ""
@@ -8683,35 +9106,35 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:187
+#: users/models.py:189
msgid "Permission set"
msgstr ""
-#: users/models.py:195
+#: users/models.py:197
msgid "Group"
msgstr ""
-#: users/models.py:198
+#: users/models.py:200
msgid "View"
msgstr ""
-#: users/models.py:198
+#: users/models.py:200
msgid "Permission to view items"
msgstr ""
-#: users/models.py:200
+#: users/models.py:202
msgid "Permission to add items"
msgstr ""
-#: users/models.py:202
+#: users/models.py:204
msgid "Change"
msgstr ""
-#: users/models.py:202
+#: users/models.py:204
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:204
+#: users/models.py:206
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 39695002e7..032934132c 100644
--- a/InvenTree/locale/tr/LC_MESSAGES/django.po
+++ b/InvenTree/locale/tr/LC_MESSAGES/django.po
@@ -1,9 +1,10 @@
+#: templates/js/translated/order.js:1973
msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-12-03 10:37+0000\n"
-"PO-Revision-Date: 2021-12-03 11:26\n"
+"POT-Creation-Date: 2021-12-08 23:43+0000\n"
+"PO-Revision-Date: 2021-12-08 23:47\n"
"Last-Translator: \n"
"Language-Team: Turkish\n"
"Language: tr_TR\n"
@@ -34,8 +35,8 @@ msgid "Enter date"
msgstr "Tarih giriniz"
#: InvenTree/forms.py:120 build/forms.py:48 build/forms.py:69 build/forms.py:93
-#: order/forms.py:26 order/forms.py:37 order/forms.py:48 order/forms.py:59
-#: order/forms.py:70 part/forms.py:108 templates/account/email_confirm.html:20
+#: order/forms.py:24 order/forms.py:35 order/forms.py:46 order/forms.py:57
+#: part/forms.py:108 templates/account/email_confirm.html:20
#: templates/js/translated/forms.js:595
msgid "Confirm"
msgstr "Onay"
@@ -85,8 +86,8 @@ msgstr ""
msgid "Duplicate serial: {n}"
msgstr "Tekrarlanan seri {n}"
-#: InvenTree/helpers.py:437 order/models.py:318 order/models.py:440
-#: stock/views.py:1264
+#: InvenTree/helpers.py:437 order/models.py:279 order/models.py:420
+#: stock/views.py:1231
msgid "Invalid quantity provided"
msgstr "Geçersiz veri sağlandı"
@@ -122,7 +123,7 @@ msgstr ""
msgid "Missing external link"
msgstr ""
-#: InvenTree/models.py:132 stock/models.py:1864
+#: InvenTree/models.py:132 stock/models.py:1852
#: templates/js/translated/attachment.js:117
msgid "Attachment"
msgstr "Ek"
@@ -132,7 +133,7 @@ msgid "Select file to attach"
msgstr "Eklenecek dosyayı seç"
#: InvenTree/models.py:139 company/models.py:131 company/models.py:348
-#: company/models.py:564 order/models.py:163 part/models.py:797
+#: company/models.py:564 order/models.py:124 part/models.py:797
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:537
#: templates/js/translated/company.js:826 templates/js/translated/part.js:1258
@@ -140,7 +141,7 @@ msgid "Link"
msgstr "Bağlantı"
#: InvenTree/models.py:140 build/models.py:330 part/models.py:798
-#: stock/models.py:530
+#: stock/models.py:524
msgid "Link to external URL"
msgstr "Harici URL'ye bağlantı"
@@ -152,10 +153,10 @@ msgstr "Yorum"
msgid "File comment"
msgstr "Dosya yorumu"
-#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1185
-#: common/models.py:1186 part/models.py:2205 part/models.py:2225
+#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1213
+#: common/models.py:1214 part/models.py:2205 part/models.py:2225
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2166
+#: templates/js/translated/stock.js:2341
msgid "User"
msgstr "Kullanıcı"
@@ -194,10 +195,15 @@ msgstr "Geçersiz seçim"
#: InvenTree/models.py:277 InvenTree/models.py:278 company/models.py:415
#: label/models.py:112 part/models.py:741 part/models.py:2389
-#: report/models.py:181 templates/InvenTree/settings/settings.html:259
+#: plugin/models.py:39 report/models.py:181
+#: templates/InvenTree/settings/mixins/urls.html:11
+#: templates/InvenTree/settings/plugin.html:47
+#: templates/InvenTree/settings/plugin.html:124
+#: templates/InvenTree/settings/plugin_settings.html:23
+#: templates/InvenTree/settings/settings.html:268
#: templates/js/translated/company.js:638 templates/js/translated/part.js:506
#: templates/js/translated/part.js:643 templates/js/translated/part.js:1565
-#: templates/js/translated/stock.js:1959
+#: templates/js/translated/stock.js:2134
msgid "Name"
msgstr "Adı"
@@ -206,22 +212,23 @@ msgstr "Adı"
#: company/models.py:570 company/templates/company/company_base.html:68
#: company/templates/company/manufacturer_part.html:76
#: company/templates/company/supplier_part.html:73 label/models.py:119
-#: order/models.py:161 part/models.py:764 part/templates/part/category.html:70
+#: order/models.py:122 part/models.py:764 part/templates/part/category.html:70
#: part/templates/part/part_base.html:163
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:553 report/models.py:592
#: report/templates/report/inventree_build_order_base.html:118
-#: stock/templates/stock/location.html:89 templates/js/translated/bom.js:215
-#: templates/js/translated/bom.js:428 templates/js/translated/build.js:1621
-#: templates/js/translated/company.js:345
+#: stock/templates/stock/location.html:89
+#: templates/InvenTree/settings/plugin_settings.html:33
+#: templates/js/translated/bom.js:215 templates/js/translated/bom.js:428
+#: templates/js/translated/build.js:1627 templates/js/translated/company.js:345
#: templates/js/translated/company.js:548
-#: templates/js/translated/company.js:837 templates/js/translated/order.js:680
-#: templates/js/translated/order.js:854 templates/js/translated/order.js:1090
+#: templates/js/translated/company.js:837 templates/js/translated/order.js:836
+#: templates/js/translated/order.js:1019 templates/js/translated/order.js:1258
#: templates/js/translated/part.js:565 templates/js/translated/part.js:933
#: templates/js/translated/part.js:1018 templates/js/translated/part.js:1188
#: templates/js/translated/part.js:1584 templates/js/translated/part.js:1653
-#: templates/js/translated/stock.js:1233 templates/js/translated/stock.js:1971
-#: templates/js/translated/stock.js:2016
+#: templates/js/translated/stock.js:1390 templates/js/translated/stock.js:2146
+#: templates/js/translated/stock.js:2191
msgid "Description"
msgstr "Açıklama"
@@ -241,83 +248,83 @@ msgstr "Geçerli bir numara olmalı"
msgid "Filename"
msgstr ""
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:689
msgid "German"
msgstr "Almanca"
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:690
msgid "Greek"
msgstr "Yunanca"
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:691
msgid "English"
msgstr "İngilizce"
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:692
msgid "Spanish"
msgstr "İspanyolca"
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:693
msgid "Spanish (Mexican)"
msgstr ""
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:694
msgid "French"
msgstr "Fransızca"
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:695
msgid "Hebrew"
msgstr "İbranice"
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:696
msgid "Italian"
msgstr "İtalyanca"
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:697
msgid "Japanese"
msgstr "Japonca"
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:698
msgid "Korean"
msgstr "Korece"
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:699
msgid "Dutch"
msgstr "Flemenkçe"
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:700
msgid "Norwegian"
msgstr "Norveççe"
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:701
msgid "Polish"
msgstr "Polonyaca"
-#: InvenTree/settings.py:683
+#: InvenTree/settings.py:702
msgid "Portugese"
msgstr ""
-#: InvenTree/settings.py:684
+#: InvenTree/settings.py:703
msgid "Russian"
msgstr "Rusça"
-#: InvenTree/settings.py:685
+#: InvenTree/settings.py:704
msgid "Swedish"
msgstr "İsveççe"
-#: InvenTree/settings.py:686
+#: InvenTree/settings.py:705
msgid "Thai"
msgstr "Tay dili"
-#: InvenTree/settings.py:687
+#: InvenTree/settings.py:706
msgid "Turkish"
msgstr "Türkçe"
-#: InvenTree/settings.py:688
+#: InvenTree/settings.py:707
msgid "Vietnamese"
msgstr ""
-#: InvenTree/settings.py:689
+#: InvenTree/settings.py:708
msgid "Chinese"
msgstr "Çince"
@@ -334,7 +341,7 @@ msgid "InvenTree system health checks failed"
msgstr "InvenTree sistem sağlık kontrolü başarısız"
#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142
-#: InvenTree/status_codes.py:311
+#: InvenTree/status_codes.py:311 templates/js/translated/table_filters.js:313
msgid "Pending"
msgstr "Bekliyor"
@@ -343,6 +350,8 @@ msgid "Placed"
msgstr "Sipariş verildi"
#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:314
+#: order/templates/order/order_base.html:128
+#: order/templates/order/sales_order_base.html:132
msgid "Complete"
msgstr "Tamamlandı"
@@ -361,8 +370,8 @@ msgstr "Kayıp"
msgid "Returned"
msgstr "İade"
-#: InvenTree/status_codes.py:143
-#: order/templates/order/sales_order_base.html:148
+#: InvenTree/status_codes.py:143 order/models.py:939
+#: templates/js/translated/order.js:1980 templates/js/translated/order.js:2255
msgid "Shipped"
msgstr "Sevk edildi"
@@ -442,7 +451,7 @@ msgstr "Üst ögeden ayır"
msgid "Split child item"
msgstr "Alt ögeyi ayır"
-#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:208
+#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:213
msgid "Sent to customer"
msgstr "Müşteriye gönderildi"
@@ -522,55 +531,55 @@ msgstr "Şifre Belirle"
msgid "Password fields must match"
msgstr "Parola alanları eşleşmelidir"
-#: InvenTree/views.py:883 templates/navbar.html:101
+#: InvenTree/views.py:883 templates/navbar.html:126
msgid "System Information"
msgstr "Sistem Bilgisi"
-#: barcodes/api.py:53 barcodes/api.py:150
+#: barcodes/api.py:54 barcodes/api.py:151
msgid "Must provide barcode_data parameter"
msgstr "Barcode_data parametresini sağlamalıdır"
-#: barcodes/api.py:126
+#: barcodes/api.py:127
msgid "No match found for barcode data"
msgstr "Barkod verisi için eşleşme bulunamadı"
-#: barcodes/api.py:128
+#: barcodes/api.py:129
msgid "Match found for barcode data"
msgstr "Barkod verisi için eşleşme bulundu"
-#: barcodes/api.py:153
+#: barcodes/api.py:154
msgid "Must provide stockitem parameter"
msgstr "Stok kalemi parametresi sağlamalıdır"
-#: barcodes/api.py:160
+#: barcodes/api.py:161
msgid "No matching stock item found"
msgstr "Eşleşen stok kalemi bulunamadı"
-#: barcodes/api.py:190
-msgid "Barcode already matches StockItem object"
-msgstr "Barkod başka bir stok kalemi nesnesi ile eşleşmektedir"
+#: barcodes/api.py:191
+msgid "Barcode already matches Stock Item"
+msgstr ""
-#: barcodes/api.py:194
-msgid "Barcode already matches StockLocation object"
-msgstr "Barkod başka bir stok konumu nesnesi ile eşleşmektedir"
+#: barcodes/api.py:195
+msgid "Barcode already matches Stock Location"
+msgstr ""
-#: barcodes/api.py:198
-msgid "Barcode already matches Part object"
-msgstr "Barkod başka bir parça nesnesi ile eşleşmektedir"
+#: barcodes/api.py:199
+msgid "Barcode already matches Part"
+msgstr ""
-#: barcodes/api.py:204 barcodes/api.py:216
-msgid "Barcode hash already matches StockItem object"
-msgstr "Barkod karması (hash) zaten stok kalemi nesnesiyle eşleşiyor"
+#: barcodes/api.py:205 barcodes/api.py:217
+msgid "Barcode hash already matches Stock Item"
+msgstr ""
-#: barcodes/api.py:222
-msgid "Barcode associated with StockItem"
-msgstr "Barkod başka bir stok kalemiyle ilişkili"
+#: barcodes/api.py:223
+msgid "Barcode associated with Stock Item"
+msgstr ""
#: build/forms.py:36 build/models.py:1283
#: build/templates/build/build_base.html:132
-#: build/templates/build/detail.html:35 common/models.py:1225
+#: build/templates/build/detail.html:35 common/models.py:1253
#: company/forms.py:42 company/templates/company/supplier_part.html:251
-#: order/forms.py:102 order/models.py:729 order/models.py:991
+#: order/models.py:794 order/models.py:1205 order/serializers.py:810
#: order/templates/order/order_wizard/match_parts.html:30
#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:223
#: part/forms.py:239 part/forms.py:255 part/models.py:2576
@@ -582,20 +591,23 @@ msgstr "Barkod başka bir stok kalemiyle ilişkili"
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:81
#: report/templates/report/inventree_test_report_base.html:139
-#: stock/forms.py:156 stock/serializers.py:291
+#: stock/forms.py:142 stock/serializers.py:293
#: stock/templates/stock/item_base.html:174
+#: stock/templates/stock/item_base.html:255
+#: stock/templates/stock/item_base.html:263
#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443
-#: templates/js/translated/build.js:235 templates/js/translated/build.js:435
-#: templates/js/translated/build.js:629 templates/js/translated/build.js:639
-#: templates/js/translated/build.js:1015 templates/js/translated/build.js:1362
+#: templates/js/translated/build.js:240 templates/js/translated/build.js:440
+#: templates/js/translated/build.js:634 templates/js/translated/build.js:644
+#: templates/js/translated/build.js:1020 templates/js/translated/build.js:1367
#: templates/js/translated/model_renderers.js:99
-#: templates/js/translated/order.js:891 templates/js/translated/order.js:1204
-#: templates/js/translated/order.js:1282 templates/js/translated/order.js:1289
-#: templates/js/translated/order.js:1378 templates/js/translated/order.js:1478
-#: templates/js/translated/part.js:843 templates/js/translated/part.js:1796
-#: templates/js/translated/part.js:1919 templates/js/translated/part.js:1997
-#: templates/js/translated/stock.js:378 templates/js/translated/stock.js:2151
-#: templates/js/translated/stock.js:2253
+#: templates/js/translated/order.js:101 templates/js/translated/order.js:1056
+#: templates/js/translated/order.js:1578 templates/js/translated/order.js:1859
+#: templates/js/translated/order.js:1947 templates/js/translated/order.js:2036
+#: templates/js/translated/order.js:2150 templates/js/translated/part.js:843
+#: templates/js/translated/part.js:1796 templates/js/translated/part.js:1919
+#: templates/js/translated/part.js:1997 templates/js/translated/stock.js:382
+#: templates/js/translated/stock.js:579 templates/js/translated/stock.js:2326
+#: templates/js/translated/stock.js:2428
msgid "Quantity"
msgstr "Miktar"
@@ -603,9 +615,9 @@ msgstr "Miktar"
msgid "Enter quantity for build output"
msgstr "Yapım işi çıktısı için miktarını girin"
-#: build/forms.py:41 order/forms.py:96 stock/forms.py:95
-#: stock/serializers.py:312 templates/js/translated/stock.js:225
-#: templates/js/translated/stock.js:379
+#: build/forms.py:41 order/serializers.py:814 stock/forms.py:81
+#: stock/serializers.py:314 templates/js/translated/stock.js:229
+#: templates/js/translated/stock.js:383
msgid "Serial Numbers"
msgstr "Seri Numaraları"
@@ -640,17 +652,17 @@ msgstr ""
#: build/models.py:137 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:397
+#: templates/js/translated/build.js:402
msgid "Build Order"
msgstr "Yapım İşi Emri"
#: build/models.py:138 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
-#: order/templates/order/sales_order_detail.html:42
-#: order/templates/order/so_sidebar.html:7
+#: order/templates/order/sales_order_detail.html:92
+#: order/templates/order/so_sidebar.html:13
#: part/templates/part/part_sidebar.html:20 templates/InvenTree/index.html:221
#: templates/InvenTree/search.html:145
-#: templates/InvenTree/settings/sidebar.html:42 users/models.py:44
+#: templates/InvenTree/settings/sidebar.html:43 users/models.py:44
msgid "Build Orders"
msgstr "Yapım İşi Emirleri"
@@ -658,13 +670,13 @@ msgstr "Yapım İşi Emirleri"
msgid "Build Order Reference"
msgstr "Yapım İşi Emri Referansı"
-#: build/models.py:199 order/models.py:249 order/models.py:556
-#: order/models.py:736 part/models.py:2585
+#: build/models.py:199 order/models.py:210 order/models.py:536
+#: order/models.py:801 part/models.py:2585
#: part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1119
-#: templates/js/translated/order.js:885 templates/js/translated/order.js:1472
+#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1124
+#: templates/js/translated/order.js:1050 templates/js/translated/order.js:2144
msgid "Reference"
msgstr "Referans"
@@ -683,7 +695,7 @@ msgstr "Bu yapım işinin tahsis edildiği yapım işi emri"
#: build/models.py:225 build/templates/build/build_base.html:77
#: build/templates/build/detail.html:30 company/models.py:705
-#: order/models.py:789 order/models.py:860
+#: order/models.py:854 order/models.py:928
#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357
#: part/models.py:2151 part/models.py:2167 part/models.py:2186
#: part/models.py:2203 part/models.py:2305 part/models.py:2427
@@ -698,14 +710,16 @@ msgstr "Bu yapım işinin tahsis edildiği yapım işi emri"
#: templates/email/build_order_required_stock.html:17
#: templates/email/low_stock_notification.html:16
#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:214
-#: templates/js/translated/bom.js:393 templates/js/translated/build.js:620
-#: templates/js/translated/build.js:988 templates/js/translated/build.js:1359
-#: templates/js/translated/build.js:1626 templates/js/translated/company.js:489
-#: templates/js/translated/company.js:746 templates/js/translated/order.js:426
-#: templates/js/translated/order.js:839 templates/js/translated/order.js:1456
-#: templates/js/translated/part.js:918 templates/js/translated/part.js:999
-#: templates/js/translated/part.js:1166 templates/js/translated/stock.js:590
-#: templates/js/translated/stock.js:1190 templates/js/translated/stock.js:2241
+#: templates/js/translated/bom.js:393 templates/js/translated/build.js:625
+#: templates/js/translated/build.js:993 templates/js/translated/build.js:1364
+#: templates/js/translated/build.js:1632 templates/js/translated/company.js:489
+#: templates/js/translated/company.js:746 templates/js/translated/order.js:84
+#: templates/js/translated/order.js:586 templates/js/translated/order.js:1004
+#: templates/js/translated/order.js:1576 templates/js/translated/order.js:1933
+#: templates/js/translated/order.js:2128 templates/js/translated/part.js:918
+#: templates/js/translated/part.js:999 templates/js/translated/part.js:1166
+#: templates/js/translated/stock.js:553 templates/js/translated/stock.js:747
+#: templates/js/translated/stock.js:1347 templates/js/translated/stock.js:2416
msgid "Part"
msgstr "Parça"
@@ -721,7 +735,8 @@ msgstr "Satış Emri Referansı"
msgid "SalesOrder to which this build is allocated"
msgstr "Bu yapım işinin tahsis edildiği satış emri"
-#: build/models.py:247 templates/js/translated/build.js:1347
+#: build/models.py:247 templates/js/translated/build.js:1352
+#: templates/js/translated/order.js:1564
msgid "Source Location"
msgstr "Kaynak Konum"
@@ -761,7 +776,7 @@ msgstr "Yapım İşi Durumu"
msgid "Build status code"
msgstr "Yapım işi durum kodu"
-#: build/models.py:285 stock/models.py:534
+#: build/models.py:285 stock/models.py:528
msgid "Batch Code"
msgstr "Sıra numarası"
@@ -769,12 +784,12 @@ msgstr "Sıra numarası"
msgid "Batch code for this build output"
msgstr "Yapım işi çıktısı için sıra numarası"
-#: build/models.py:292 order/models.py:165 part/models.py:936
-#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1103
+#: build/models.py:292 order/models.py:126 part/models.py:936
+#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1271
msgid "Creation Date"
msgstr "Oluşturulma tarihi"
-#: build/models.py:296 order/models.py:578
+#: build/models.py:296 order/models.py:558
msgid "Target completion date"
msgstr "Hedef tamamlama tarihi"
@@ -782,8 +797,8 @@ msgstr "Hedef tamamlama tarihi"
msgid "Target date for build completion. Build will be overdue after this date."
msgstr "Yapım işinin tamamlanması için hedef tarih. Bu tarihten sonra yapım işi gecikmiş olacak."
-#: build/models.py:300 order/models.py:291
-#: templates/js/translated/build.js:1697
+#: build/models.py:300 order/models.py:252
+#: templates/js/translated/build.js:1703
msgid "Completion Date"
msgstr "Tamamlama tarihi"
@@ -791,7 +806,7 @@ msgstr "Tamamlama tarihi"
msgid "completed by"
msgstr "tamamlayan"
-#: build/models.py:314 templates/js/translated/build.js:1668
+#: build/models.py:314 templates/js/translated/build.js:1674
msgid "Issued by"
msgstr "Veren"
@@ -800,11 +815,11 @@ msgid "User who issued this build order"
msgstr "Bu yapım işi emrini veren kullanıcı"
#: build/models.py:323 build/templates/build/build_base.html:185
-#: build/templates/build/detail.html:116 order/models.py:179
-#: order/templates/order/order_base.html:158
-#: order/templates/order/sales_order_base.html:162 part/models.py:940
+#: build/templates/build/detail.html:116 order/models.py:140
+#: order/templates/order/order_base.html:170
+#: order/templates/order/sales_order_base.html:182 part/models.py:940
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:1680 templates/js/translated/order.js:699
+#: templates/js/translated/build.js:1686 templates/js/translated/order.js:864
msgid "Responsible"
msgstr "Sorumlu"
@@ -815,7 +830,7 @@ msgstr "Bu yapım işi emrinden sorumlu kullanıcı"
#: build/models.py:329 build/templates/build/detail.html:102
#: company/templates/company/manufacturer_part.html:102
#: company/templates/company/supplier_part.html:126
-#: part/templates/part/part_base.html:354 stock/models.py:528
+#: part/templates/part/part_base.html:354 stock/models.py:522
#: stock/templates/stock/item_base.html:374
msgid "External Link"
msgstr "Harici Bağlantı"
@@ -823,18 +838,19 @@ msgstr "Harici Bağlantı"
#: build/models.py:334 build/serializers.py:201
#: build/templates/build/sidebar.html:21 company/models.py:142
#: company/models.py:577 company/templates/company/sidebar.html:25
-#: order/models.py:183 order/models.py:738
+#: order/models.py:144 order/models.py:803 order/models.py:1049
#: order/templates/order/po_sidebar.html:11
-#: order/templates/order/so_sidebar.html:11 part/models.py:925
+#: order/templates/order/so_sidebar.html:17 part/models.py:925
#: part/templates/part/detail.html:116 part/templates/part/part_sidebar.html:50
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/forms.py:154 stock/forms.py:204 stock/forms.py:238 stock/models.py:600
-#: stock/models.py:1764 stock/models.py:1870 stock/serializers.py:330
-#: stock/serializers.py:588 stock/templates/stock/stock_sidebar.html:21
+#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:594
+#: stock/models.py:1752 stock/models.py:1858 stock/serializers.py:332
+#: stock/serializers.py:624 stock/serializers.py:711
+#: stock/templates/stock/stock_sidebar.html:21
#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599
-#: templates/js/translated/company.js:842 templates/js/translated/order.js:984
-#: templates/js/translated/order.js:1582 templates/js/translated/stock.js:973
-#: templates/js/translated/stock.js:1452
+#: templates/js/translated/company.js:842 templates/js/translated/order.js:1149
+#: templates/js/translated/order.js:1445 templates/js/translated/order.js:2280
+#: templates/js/translated/stock.js:1130 templates/js/translated/stock.js:1616
msgid "Notes"
msgstr "Notlar"
@@ -867,7 +883,7 @@ msgstr ""
msgid "Stock item is over-allocated"
msgstr "Stok kalemi fazladan tahsis edilmiş"
-#: build/models.py:1133 order/models.py:964
+#: build/models.py:1133 order/models.py:1165
msgid "Allocation quantity must be greater than zero"
msgstr "Tahsis edilen miktar sıfırdan büyük olmalıdır"
@@ -880,8 +896,8 @@ msgid "Selected stock item not found in BOM"
msgstr ""
#: build/models.py:1253 stock/templates/stock/item_base.html:346
-#: templates/InvenTree/search.html:143 templates/js/translated/build.js:1599
-#: templates/navbar.html:33
+#: templates/InvenTree/search.html:143 templates/js/translated/build.js:1605
+#: templates/navbar.html:35
msgid "Build"
msgstr "Yapım İşi"
@@ -889,14 +905,17 @@ msgstr "Yapım İşi"
msgid "Build to allocate parts"
msgstr "Yapım işi için tahsis edilen parçalar"
-#: build/models.py:1270 build/serializers.py:328
+#: build/models.py:1270 build/serializers.py:328 order/serializers.py:690
+#: order/serializers.py:708 stock/serializers.py:562
#: stock/templates/stock/item_base.html:8
#: stock/templates/stock/item_base.html:16
#: stock/templates/stock/item_base.html:368
-#: templates/js/translated/build.js:408 templates/js/translated/build.js:413
-#: templates/js/translated/build.js:1361 templates/js/translated/build.js:1742
-#: templates/js/translated/order.js:1177 templates/js/translated/order.js:1182
-#: templates/js/translated/stock.js:2102
+#: templates/js/translated/build.js:413 templates/js/translated/build.js:418
+#: templates/js/translated/build.js:1366 templates/js/translated/build.js:1748
+#: templates/js/translated/order.js:85 templates/js/translated/order.js:1577
+#: templates/js/translated/order.js:1832 templates/js/translated/order.js:1837
+#: templates/js/translated/order.js:1940 templates/js/translated/order.js:2030
+#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:2277
msgid "Stock Item"
msgstr "Stok Kalemi"
@@ -936,16 +955,17 @@ msgstr ""
msgid "This build output is not fully allocated"
msgstr ""
-#: build/serializers.py:190 order/serializers.py:228 order/serializers.py:296
-#: stock/forms.py:236 stock/serializers.py:323 stock/serializers.py:690
+#: build/serializers.py:190 order/serializers.py:226 order/serializers.py:294
+#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:813
#: stock/templates/stock/item_base.html:314
#: templates/js/translated/barcode.js:384
-#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:420
-#: templates/js/translated/build.js:1027 templates/js/translated/order.js:348
-#: templates/js/translated/order.js:1189 templates/js/translated/order.js:1297
-#: templates/js/translated/order.js:1303 templates/js/translated/part.js:177
-#: templates/js/translated/stock.js:592 templates/js/translated/stock.js:1333
-#: templates/js/translated/stock.js:2043
+#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:425
+#: templates/js/translated/build.js:1032 templates/js/translated/order.js:508
+#: templates/js/translated/order.js:1844 templates/js/translated/order.js:1955
+#: templates/js/translated/order.js:1963 templates/js/translated/order.js:2044
+#: templates/js/translated/part.js:177 templates/js/translated/stock.js:555
+#: templates/js/translated/stock.js:749 templates/js/translated/stock.js:1497
+#: templates/js/translated/stock.js:2218
msgid "Location"
msgstr "Konum"
@@ -954,12 +974,12 @@ msgid "Location for completed build outputs"
msgstr ""
#: build/serializers.py:197 build/templates/build/build_base.html:137
-#: build/templates/build/detail.html:63 order/models.py:572
-#: order/serializers.py:249 stock/templates/stock/item_base.html:180
-#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1655
-#: templates/js/translated/order.js:431 templates/js/translated/order.js:1095
-#: templates/js/translated/stock.js:1308 templates/js/translated/stock.js:2120
-#: templates/js/translated/stock.js:2269
+#: build/templates/build/detail.html:63 order/models.py:552
+#: order/serializers.py:247 stock/templates/stock/item_base.html:180
+#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1661
+#: templates/js/translated/order.js:591 templates/js/translated/order.js:840
+#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1472
+#: templates/js/translated/stock.js:2295 templates/js/translated/stock.js:2444
msgid "Status"
msgstr "Durum"
@@ -984,16 +1004,16 @@ msgstr ""
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:334
+#: build/serializers.py:334 stock/serializers.py:569
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:348 order/models.py:316 order/serializers.py:242
-#: stock/models.py:371 stock/models.py:1093 stock/serializers.py:303
+#: build/serializers.py:348 order/models.py:277 order/serializers.py:240
+#: stock/models.py:365 stock/models.py:1081 stock/serializers.py:305
msgid "Quantity must be greater than zero"
msgstr ""
-#: build/serializers.py:390
+#: build/serializers.py:390 order/serializers.py:741
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
@@ -1006,7 +1026,7 @@ msgstr ""
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:431
+#: build/serializers.py:431 order/serializers.py:984
msgid "Allocation items must be provided"
msgstr ""
@@ -1079,11 +1099,11 @@ msgstr "Stok, yapım işi emri için tamamen tahsis edilemedi"
#: build/templates/build/build_base.html:146
#: build/templates/build/detail.html:132
-#: order/templates/order/order_base.html:144
-#: order/templates/order/sales_order_base.html:141
+#: order/templates/order/order_base.html:156
+#: order/templates/order/sales_order_base.html:163
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:1692 templates/js/translated/order.js:689
-#: templates/js/translated/order.js:1108
+#: templates/js/translated/build.js:1698 templates/js/translated/order.js:854
+#: templates/js/translated/order.js:1276
msgid "Target Date"
msgstr "Hedeflenen tarih"
@@ -1096,28 +1116,28 @@ msgstr "Bu yapım işinin %(target)s tarihinde süresi doluyor"
#: build/templates/build/build_base.html:196
#: order/templates/order/order_base.html:98
#: order/templates/order/sales_order_base.html:93
-#: templates/js/translated/table_filters.js:294
-#: templates/js/translated/table_filters.js:322
-#: templates/js/translated/table_filters.js:339
+#: templates/js/translated/table_filters.js:299
+#: templates/js/translated/table_filters.js:340
+#: templates/js/translated/table_filters.js:361
msgid "Overdue"
msgstr "Vadesi geçmiş"
#: build/templates/build/build_base.html:158
#: build/templates/build/detail.html:68 build/templates/build/detail.html:143
-#: templates/js/translated/build.js:1641
-#: templates/js/translated/table_filters.js:304
+#: order/templates/order/sales_order_base.html:170
+#: templates/js/translated/build.js:1647
+#: templates/js/translated/table_filters.js:370
msgid "Completed"
msgstr "Tamamlandı"
#: build/templates/build/build_base.html:171
-#: build/templates/build/detail.html:95 order/models.py:857
-#: order/templates/order/sales_order_base.html:9
+#: build/templates/build/detail.html:95 order/models.py:925
+#: order/models.py:1021 order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
-#: order/templates/order/sales_order_ship.html:25
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:308
-#: templates/js/translated/order.js:1050
+#: templates/js/translated/order.js:1218
msgid "Sales Order"
msgstr "Sipariş Emri"
@@ -1191,8 +1211,8 @@ msgstr "Stok Kaynağı"
msgid "Stock can be taken from any available location."
msgstr "Stok herhangi bir konumdan alınabilir."
-#: build/templates/build/detail.html:50 order/models.py:811 stock/forms.py:150
-#: templates/js/translated/order.js:432 templates/js/translated/order.js:973
+#: build/templates/build/detail.html:50 order/models.py:876 stock/forms.py:136
+#: templates/js/translated/order.js:592 templates/js/translated/order.js:1138
msgid "Destination"
msgstr "Hedef"
@@ -1200,22 +1220,22 @@ msgstr "Hedef"
msgid "Destination location not specified"
msgstr "Hedef konumu belirtilmedi"
-#: build/templates/build/detail.html:74 templates/js/translated/build.js:647
+#: build/templates/build/detail.html:74 templates/js/translated/build.js:652
msgid "Allocated Parts"
msgstr ""
#: build/templates/build/detail.html:81
#: stock/templates/stock/item_base.html:332
-#: templates/js/translated/stock.js:1322 templates/js/translated/stock.js:2276
+#: templates/js/translated/stock.js:1486 templates/js/translated/stock.js:2451
#: templates/js/translated/table_filters.js:151
-#: templates/js/translated/table_filters.js:233
+#: templates/js/translated/table_filters.js:238
msgid "Batch"
msgstr "Toplu"
#: build/templates/build/detail.html:127
-#: order/templates/order/order_base.html:131
-#: order/templates/order/sales_order_base.html:135
-#: templates/js/translated/build.js:1663
+#: order/templates/order/order_base.html:143
+#: order/templates/order/sales_order_base.html:157
+#: templates/js/translated/build.js:1669
msgid "Created"
msgstr "Oluşturuldu"
@@ -1235,7 +1255,7 @@ msgstr "Alt Yapım İşi Emrileri"
msgid "Allocate Stock to Build"
msgstr "Yapım İşi için Stok Tahsis Et"
-#: build/templates/build/detail.html:177 templates/js/translated/build.js:1202
+#: build/templates/build/detail.html:177 templates/js/translated/build.js:1207
msgid "Unallocate stock"
msgstr "Stok tahsisini kaldır"
@@ -1257,7 +1277,7 @@ msgstr "Gerekli parçaları sipariş edin"
#: build/templates/build/detail.html:185
#: company/templates/company/detail.html:38
-#: company/templates/company/detail.html:85 order/views.py:509
+#: company/templates/company/detail.html:85 order/views.py:463
#: part/templates/part/category.html:173
msgid "Order Parts"
msgstr "Parça Siparişi"
@@ -1309,8 +1329,8 @@ msgstr "Tamamlanmış Yapım İşi Çıktıları"
#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:60
-#: order/templates/order/sales_order_detail.html:52
-#: order/templates/order/so_sidebar.html:9 part/templates/part/detail.html:193
+#: order/templates/order/sales_order_detail.html:107
+#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:193
#: part/templates/part/part_sidebar.html:48 stock/templates/stock/item.html:95
#: stock/templates/stock/stock_sidebar.html:19
msgid "Attachments"
@@ -1325,8 +1345,8 @@ msgstr "Yapım İşi Notları"
#: company/templates/company/detail.html:215
#: order/templates/order/purchase_order_detail.html:80
#: order/templates/order/purchase_order_detail.html:108
-#: order/templates/order/sales_order_detail.html:72
-#: order/templates/order/sales_order_detail.html:99
+#: order/templates/order/sales_order_detail.html:127
+#: order/templates/order/sales_order_detail.html:186
#: part/templates/part/detail.html:120 stock/templates/stock/item.html:115
#: stock/templates/stock/item.html:205
msgid "Edit Notes"
@@ -1384,7 +1404,7 @@ msgstr "Yapım İşi Çıktısı Oluştur"
msgid "Maximum output quantity is "
msgstr "Maksimum çıktı miktarı "
-#: build/views.py:122 stock/serializers.py:361 stock/views.py:1290
+#: build/views.py:122 stock/serializers.py:363 stock/views.py:1257
msgid "Serial numbers already exist"
msgstr "Seri numaraları zaten mevcut"
@@ -1400,7 +1420,7 @@ msgstr "Yapım İşi Çıktısı Sil"
msgid "Confirm unallocation of build stock"
msgstr "Yapım işi stoku tahsisinin iptalini onayla"
-#: build/views.py:219 stock/views.py:385
+#: build/views.py:219 stock/views.py:352
msgid "Check the confirmation box"
msgstr "Onay kutusunu işaretleyin"
@@ -1469,7 +1489,7 @@ msgstr "{name.title()} Dosya"
msgid "Select {name} file to upload"
msgstr "{name} dosyasını yüklemek için seçin"
-#: common/models.py:340 common/models.py:970 common/models.py:1178
+#: common/models.py:340 common/models.py:998 common/models.py:1206
msgid "Settings key (must be unique - case insensitive"
msgstr ""
@@ -1557,7 +1577,7 @@ msgstr "URL'den indir"
msgid "Allow download of remote images and files from external URL"
msgstr "Harici URL'den resim ve dosyaların indirilmesine izin ver"
-#: common/models.py:649 templates/InvenTree/settings/sidebar.html:30
+#: common/models.py:649 templates/InvenTree/settings/sidebar.html:31
msgid "Barcode Support"
msgstr "Barkod Desteği"
@@ -1623,7 +1643,7 @@ msgstr "Parça oluştururken kategori parametre şablonlarını kopyala"
#: common/models.py:703 part/models.py:2429 report/models.py:187
#: templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:373
+#: templates/js/translated/table_filters.js:404
msgid "Template"
msgstr "Şablon"
@@ -1633,7 +1653,7 @@ msgstr "Parçaları varsayılan olan şablondur"
#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:956
#: templates/js/translated/table_filters.js:168
-#: templates/js/translated/table_filters.js:385
+#: templates/js/translated/table_filters.js:416
msgid "Assembly"
msgstr "Montaj"
@@ -1642,7 +1662,7 @@ msgid "Parts can be assembled from other components by default"
msgstr "Parçalar varsayılan olarak başka bileşenlerden monte edilebilir"
#: common/models.py:717 part/models.py:894
-#: templates/js/translated/table_filters.js:389
+#: templates/js/translated/table_filters.js:420
msgid "Component"
msgstr "Bileşen"
@@ -1659,7 +1679,7 @@ msgid "Parts are purchaseable by default"
msgstr "Parçalar varsayılan olarak satın alınabilir"
#: common/models.py:731 part/models.py:910
-#: templates/js/translated/table_filters.js:397
+#: templates/js/translated/table_filters.js:428
msgid "Salable"
msgstr "Satılabilir"
@@ -1670,7 +1690,7 @@ msgstr "Parçalar varsayılan olarak satılabilir"
#: common/models.py:738 part/models.py:900
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:100
-#: templates/js/translated/table_filters.js:401
+#: templates/js/translated/table_filters.js:432
msgid "Trackable"
msgstr "Takip Edilebilir"
@@ -1932,230 +1952,262 @@ msgstr ""
msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:1001
+#: common/models.py:961
+msgid "Enable URL integration"
+msgstr ""
+
+#: common/models.py:962
+msgid "Enable plugins to add URL routes"
+msgstr ""
+
+#: common/models.py:968
+msgid "Enable navigation integration"
+msgstr ""
+
+#: common/models.py:969
+msgid "Enable plugins to integrate into navigation"
+msgstr ""
+
+#: common/models.py:975
+msgid "Enable global setting integration"
+msgstr ""
+
+#: common/models.py:976
+msgid "Enable plugins to integrate into inventree global settings"
+msgstr ""
+
+#: common/models.py:982
+msgid "Enable app integration"
+msgstr ""
+
+#: common/models.py:983
+msgid "Enable plugins to add apps"
+msgstr ""
+
+#: common/models.py:1029
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:1002
+#: common/models.py:1030
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:1007
+#: common/models.py:1035
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:1008
+#: common/models.py:1036
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:1013
+#: common/models.py:1041
msgid "Show latest parts"
msgstr ""
-#: common/models.py:1014
+#: common/models.py:1042
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:1019
+#: common/models.py:1047
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:1020
+#: common/models.py:1048
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:1026
+#: common/models.py:1054
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1027
+#: common/models.py:1055
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1032
+#: common/models.py:1060
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:1033
+#: common/models.py:1061
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:1038
+#: common/models.py:1066
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:1039
+#: common/models.py:1067
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:1044
+#: common/models.py:1072
msgid "Show low stock"
msgstr ""
-#: common/models.py:1045
+#: common/models.py:1073
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:1050
+#: common/models.py:1078
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:1051
+#: common/models.py:1079
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:1056
+#: common/models.py:1084
msgid "Show needed stock"
msgstr ""
-#: common/models.py:1057
+#: common/models.py:1085
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1062
+#: common/models.py:1090
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1063
+#: common/models.py:1091
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1068
+#: common/models.py:1096
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1069
+#: common/models.py:1097
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1074
+#: common/models.py:1102
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1075
+#: common/models.py:1103
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:1080
+#: common/models.py:1108
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:1081
+#: common/models.py:1109
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:1086
+#: common/models.py:1114
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:1087
+#: common/models.py:1115
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:1092
+#: common/models.py:1120
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:1093
+#: common/models.py:1121
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:1098
+#: common/models.py:1126
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:1099
+#: common/models.py:1127
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:1104
+#: common/models.py:1132
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:1105
+#: common/models.py:1133
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:1111
+#: common/models.py:1139
msgid "Inline label display"
msgstr ""
-#: common/models.py:1112
+#: common/models.py:1140
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1118
+#: common/models.py:1146
msgid "Inline report display"
msgstr ""
-#: common/models.py:1119
+#: common/models.py:1147
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1125
+#: common/models.py:1153
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:1126
+#: common/models.py:1154
msgid "Number of results to show in search preview window"
msgstr ""
-#: common/models.py:1132
+#: common/models.py:1160
msgid "Search Show Stock"
msgstr ""
-#: common/models.py:1133
+#: common/models.py:1161
msgid "Display stock levels in search preview window"
msgstr ""
-#: common/models.py:1139
+#: common/models.py:1167
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:1140
+#: common/models.py:1168
msgid "Hide inactive parts in search preview window"
msgstr ""
-#: common/models.py:1146
+#: common/models.py:1174
msgid "Show Quantity in Forms"
msgstr "Formlarda Miktarı Göster"
-#: common/models.py:1147
+#: common/models.py:1175
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:1153
+#: common/models.py:1181
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1154
+#: common/models.py:1182
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1160
+#: common/models.py:1188
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:1161
+#: common/models.py:1189
msgid "InvenTree navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:1226 company/forms.py:43
+#: common/models.py:1254 company/forms.py:43
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1233 company/serializers.py:264
+#: common/models.py:1261 company/serializers.py:264
#: company/templates/company/supplier_part.html:256
#: templates/js/translated/part.js:852 templates/js/translated/part.js:1801
msgid "Price"
msgstr "Fiyat"
-#: common/models.py:1234
+#: common/models.py:1262
msgid "Unit price at specified quantity"
msgstr ""
#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49
-#: order/templates/order/purchase_order_detail.html:24 order/views.py:289
+#: order/templates/order/purchase_order_detail.html:24 order/views.py:243
#: part/templates/part/bom_upload/upload_file.html:52
#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:212
#: part/views.py:858
@@ -2163,7 +2215,7 @@ msgid "Upload File"
msgstr "Dosya Yükle"
#: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52
-#: order/views.py:290 part/templates/part/bom_upload/match_fields.html:52
+#: order/views.py:244 part/templates/part/bom_upload/match_fields.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:45
#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:213
#: part/views.py:859
@@ -2195,6 +2247,7 @@ msgid "Previous Step"
msgstr ""
#: company/forms.py:24 part/forms.py:46
+#: templates/InvenTree/settings/mixins/urls.html:12
msgid "URL"
msgstr ""
@@ -2211,6 +2264,7 @@ msgid "Description of the company"
msgstr ""
#: company/models.py:112 company/templates/company/company_base.html:97
+#: templates/InvenTree/settings/plugin_settings.html:55
#: templates/js/translated/company.js:349
msgid "Website"
msgstr ""
@@ -2285,7 +2339,7 @@ msgid "Does this company manufacture parts?"
msgstr "Bu şirket üretim yapıyor mu?"
#: company/models.py:152 company/serializers.py:270
-#: company/templates/company/company_base.html:103 stock/serializers.py:177
+#: company/templates/company/company_base.html:103 stock/serializers.py:179
msgid "Currency"
msgstr "Para birimi"
@@ -2293,12 +2347,12 @@ msgstr "Para birimi"
msgid "Default currency used for this company"
msgstr "Bu şirket için varsayılan para birimi"
-#: company/models.py:320 company/models.py:535 stock/models.py:474
+#: company/models.py:320 company/models.py:535 stock/models.py:468
#: stock/templates/stock/item_base.html:135
msgid "Base Part"
msgstr "Temel Parça"
-#: company/models.py:324 company/models.py:539 order/views.py:912
+#: company/models.py:324 company/models.py:539
msgid "Select part"
msgstr "Parça seçin"
@@ -2319,7 +2373,7 @@ msgstr "Üretici seçin"
#: company/models.py:342 company/templates/company/manufacturer_part.html:96
#: company/templates/company/supplier_part.html:105
#: templates/js/translated/company.js:530
-#: templates/js/translated/company.js:815 templates/js/translated/order.js:873
+#: templates/js/translated/company.js:815 templates/js/translated/order.js:1038
#: templates/js/translated/part.js:243 templates/js/translated/part.js:832
msgid "MPN"
msgstr "ÜPN"
@@ -2349,8 +2403,8 @@ msgstr "Parametre adı"
#: company/models.py:422
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:1857 templates/js/translated/company.js:644
-#: templates/js/translated/part.js:652 templates/js/translated/stock.js:960
+#: stock/models.py:1845 templates/js/translated/company.js:644
+#: templates/js/translated/part.js:652 templates/js/translated/stock.js:1117
msgid "Value"
msgstr "Değer"
@@ -2360,7 +2414,7 @@ msgstr "Parametre değeri"
#: company/models.py:429 part/models.py:882 part/models.py:2397
#: part/templates/part/part_base.html:288
-#: templates/InvenTree/settings/settings.html:264
+#: templates/InvenTree/settings/settings.html:273
#: templates/js/translated/company.js:650 templates/js/translated/part.js:658
msgid "Units"
msgstr ""
@@ -2374,12 +2428,12 @@ msgid "Linked manufacturer part must reference the same base part"
msgstr ""
#: company/models.py:545 company/templates/company/company_base.html:78
-#: company/templates/company/supplier_part.html:87 order/models.py:263
+#: company/templates/company/supplier_part.html:87 order/models.py:224
#: order/templates/order/order_base.html:112
#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219
#: part/bom.py:247 stock/templates/stock/item_base.html:398
#: templates/js/translated/company.js:337
-#: templates/js/translated/company.js:771 templates/js/translated/order.js:667
+#: templates/js/translated/company.js:771 templates/js/translated/order.js:823
#: templates/js/translated/part.js:213 templates/js/translated/part.js:800
msgid "Supplier"
msgstr "Tedarikçi"
@@ -2389,7 +2443,7 @@ msgid "Select supplier"
msgstr "Tedarikçi seçin"
#: company/models.py:551 company/templates/company/supplier_part.html:91
-#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:860
+#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:1025
#: templates/js/translated/part.js:224 templates/js/translated/part.js:818
msgid "SKU"
msgstr "SKU"
@@ -2425,8 +2479,8 @@ msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:582 company/templates/company/supplier_part.html:112
-#: stock/models.py:497 stock/templates/stock/item_base.html:339
-#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1448
+#: stock/models.py:491 stock/templates/stock/item_base.html:339
+#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1612
msgid "Packaging"
msgstr "Paketleme"
@@ -2457,7 +2511,7 @@ msgid "Company"
msgstr ""
#: company/templates/company/company_base.html:22
-#: templates/js/translated/order.js:121
+#: templates/js/translated/order.js:279
msgid "Create Purchase Order"
msgstr "Satın Alma Emri Oluştur"
@@ -2493,11 +2547,12 @@ msgstr ""
msgid "Download image from URL"
msgstr ""
-#: company/templates/company/company_base.html:83 order/models.py:567
-#: order/templates/order/sales_order_base.html:115 stock/models.py:515
-#: stock/models.py:516 stock/templates/stock/item_base.html:291
-#: templates/js/translated/company.js:329 templates/js/translated/order.js:1072
-#: templates/js/translated/stock.js:2084
+#: company/templates/company/company_base.html:83 order/models.py:547
+#: order/templates/order/sales_order_base.html:115 stock/models.py:509
+#: stock/models.py:510 stock/serializers.py:610
+#: stock/templates/stock/item_base.html:291
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1240
+#: templates/js/translated/stock.js:2259
msgid "Customer"
msgstr "Müşteri"
@@ -2580,7 +2635,7 @@ msgstr "Tedarikçi Stoku"
#: order/templates/order/purchase_orders.html:12
#: part/templates/part/detail.html:64 part/templates/part/part_sidebar.html:33
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:203
-#: templates/InvenTree/settings/sidebar.html:44 templates/navbar.html:45
+#: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47
#: users/models.py:45
msgid "Purchase Orders"
msgstr "Satın Alma Emirleri"
@@ -2602,7 +2657,7 @@ msgstr "Yeni Satın Alma Emri"
#: order/templates/order/sales_orders.html:15
#: part/templates/part/detail.html:87 part/templates/part/part_sidebar.html:37
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:223
-#: templates/InvenTree/settings/sidebar.html:46 templates/navbar.html:56
+#: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58
#: users/models.py:46
msgid "Sales Orders"
msgstr "Satış Emirleri"
@@ -2618,7 +2673,7 @@ msgid "New Sales Order"
msgstr "Yeni Satış Emri"
#: company/templates/company/detail.html:168
-#: templates/js/translated/build.js:999
+#: templates/js/translated/build.js:1004
msgid "Assigned Stock"
msgstr "Atanan Stok"
@@ -2644,7 +2699,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:14 company/views.py:55
#: part/templates/part/prices.html:167 templates/InvenTree/search.html:184
-#: templates/navbar.html:44
+#: templates/navbar.html:46
msgid "Manufacturers"
msgstr "Üreticiler"
@@ -2673,7 +2728,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:114
#: company/templates/company/supplier_part.html:15 company/views.py:49
#: part/templates/part/part_sidebar.html:31 part/templates/part/prices.html:163
-#: templates/InvenTree/search.html:194 templates/navbar.html:43
+#: templates/InvenTree/search.html:194 templates/navbar.html:45
msgid "Suppliers"
msgstr ""
@@ -2687,7 +2742,7 @@ msgstr "Tedarikçi parçalarını sil"
#: company/templates/company/manufacturer_part.html:254
#: part/templates/part/detail.html:344 part/templates/part/detail.html:372
#: templates/js/translated/company.js:425 templates/js/translated/helpers.js:31
-#: users/models.py:204
+#: users/models.py:206
msgid "Delete"
msgstr ""
@@ -2739,9 +2794,9 @@ msgid "Assigned Stock Items"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:482
+#: company/templates/company/supplier_part.html:24 stock/models.py:476
#: stock/templates/stock/item_base.html:403
-#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1405
+#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1569
msgid "Supplier Part"
msgstr "Tedarikçi Parçası"
@@ -2767,7 +2822,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:142
#: part/templates/part/detail.html:21 stock/templates/stock/location.html:163
-#: templates/js/translated/stock.js:355
+#: templates/js/translated/stock.js:359
msgid "New Stock Item"
msgstr ""
@@ -2817,11 +2872,11 @@ msgstr ""
#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:14
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:156
-#: templates/InvenTree/settings/sidebar.html:40
+#: templates/InvenTree/settings/sidebar.html:41
#: templates/js/translated/bom.js:216 templates/js/translated/part.js:434
#: templates/js/translated/part.js:569 templates/js/translated/part.js:1059
-#: templates/js/translated/part.js:1220 templates/js/translated/stock.js:591
-#: templates/js/translated/stock.js:1244 templates/navbar.html:26
+#: templates/js/translated/part.js:1220 templates/js/translated/stock.js:748
+#: templates/js/translated/stock.js:1401 templates/navbar.html:28
msgid "Stock"
msgstr "Stok"
@@ -2844,7 +2899,7 @@ msgstr "Fiyatlandırma"
#: stock/templates/stock/location.html:147
#: stock/templates/stock/location.html:159
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1983
+#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:2158
#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
msgid "Stock Items"
msgstr "Stok Kalemleri"
@@ -2858,7 +2913,7 @@ msgid "New Manufacturer"
msgstr "Yeni Üretici"
#: company/views.py:61 templates/InvenTree/search.html:214
-#: templates/navbar.html:55
+#: templates/navbar.html:57
msgid "Customers"
msgstr "Müşteriler"
@@ -2960,284 +3015,374 @@ msgstr ""
msgid "Part query filters (comma-separated value of key=value pairs)"
msgstr ""
-#: order/forms.py:26 order/templates/order/order_base.html:52
+#: order/forms.py:24 order/templates/order/order_base.html:52
msgid "Place order"
msgstr "Sipariş ver"
-#: order/forms.py:37 order/templates/order/order_base.html:60
+#: order/forms.py:35 order/templates/order/order_base.html:60
msgid "Mark order as complete"
msgstr "Siparişi tamamlandı olarak işaretle"
-#: order/forms.py:48 order/forms.py:59 order/templates/order/order_base.html:47
+#: order/forms.py:46 order/forms.py:57 order/templates/order/order_base.html:47
#: order/templates/order/sales_order_base.html:60
msgid "Cancel order"
msgstr "Siparişi iptal et"
-#: order/forms.py:70
-msgid "Ship order"
-msgstr ""
-
-#: order/forms.py:98
-msgid "Enter stock item serial numbers"
-msgstr "Stok kalemi seri numaları girin"
-
-#: order/forms.py:104
-msgid "Enter quantity of stock items"
-msgstr ""
-
-#: order/models.py:161
+#: order/models.py:122
msgid "Order description"
msgstr "Sipariş açıklaması"
-#: order/models.py:163
+#: order/models.py:124
msgid "Link to external page"
msgstr "Harici sayfaya bağlantı"
-#: order/models.py:171
+#: order/models.py:132
msgid "Created By"
msgstr "Oluşturan"
-#: order/models.py:178
+#: order/models.py:139
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:183
+#: order/models.py:144
msgid "Order notes"
msgstr "Sipariş notları"
-#: order/models.py:250 order/models.py:557
+#: order/models.py:211 order/models.py:537
msgid "Order reference"
msgstr "Sipariş referansı"
-#: order/models.py:255 order/models.py:572
+#: order/models.py:216 order/models.py:552
msgid "Purchase order status"
msgstr ""
-#: order/models.py:264
+#: order/models.py:225
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:267 order/templates/order/order_base.html:118
-#: templates/js/translated/order.js:676
+#: order/models.py:228 order/templates/order/order_base.html:118
+#: templates/js/translated/order.js:832
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:267
+#: order/models.py:228
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:274
+#: order/models.py:235
msgid "received by"
msgstr ""
-#: order/models.py:279
+#: order/models.py:240
msgid "Issue Date"
msgstr ""
-#: order/models.py:280
+#: order/models.py:241
msgid "Date order was issued"
msgstr ""
-#: order/models.py:285
+#: order/models.py:246
msgid "Target Delivery Date"
msgstr ""
-#: order/models.py:286
+#: order/models.py:247
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:292
+#: order/models.py:253
msgid "Date order was completed"
msgstr ""
-#: order/models.py:321
+#: order/models.py:282
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:431
+#: order/models.py:411
msgid "Quantity must be an integer"
msgstr ""
-#: order/models.py:435
+#: order/models.py:415
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:568
+#: order/models.py:548
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:574
+#: order/models.py:554
msgid "Customer Reference "
msgstr ""
-#: order/models.py:574
+#: order/models.py:554
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:579
+#: order/models.py:559
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:582 templates/js/translated/order.js:1113
+#: order/models.py:562 order/models.py:1026
+#: templates/js/translated/order.js:1281 templates/js/translated/order.js:1429
msgid "Shipment Date"
msgstr ""
-#: order/models.py:589
+#: order/models.py:569
msgid "shipped by"
msgstr ""
-#: order/models.py:633
-msgid "SalesOrder cannot be shipped as it is not currently pending"
+#: order/models.py:634
+msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:730
+#: order/models.py:639
+msgid "Only a pending order can be marked as complete"
+msgstr ""
+
+#: order/models.py:643
+msgid "Order cannot be completed as there are incomplete shipments"
+msgstr ""
+
+#: order/models.py:647
+msgid "Order cannot be completed as there are incomplete line items"
+msgstr ""
+
+#: order/models.py:795
msgid "Item quantity"
msgstr ""
-#: order/models.py:736
+#: order/models.py:801
msgid "Line item reference"
msgstr ""
-#: order/models.py:738
+#: order/models.py:803
msgid "Line item notes"
msgstr ""
-#: order/models.py:768 order/models.py:856
-#: templates/js/translated/order.js:1165
+#: order/models.py:833 order/models.py:924 order/models.py:1020
+#: templates/js/translated/order.js:1820
msgid "Order"
msgstr ""
-#: order/models.py:769 order/templates/order/order_base.html:9
+#: order/models.py:834 order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:353
-#: templates/js/translated/order.js:638 templates/js/translated/part.js:775
-#: templates/js/translated/stock.js:1382 templates/js/translated/stock.js:2065
+#: templates/js/translated/order.js:801 templates/js/translated/part.js:775
+#: templates/js/translated/stock.js:1546 templates/js/translated/stock.js:2240
msgid "Purchase Order"
msgstr ""
-#: order/models.py:790
+#: order/models.py:855
msgid "Supplier part"
msgstr ""
-#: order/models.py:797 order/templates/order/order_base.html:151
-#: order/templates/order/sales_order_base.html:155
-#: templates/js/translated/order.js:429 templates/js/translated/order.js:953
+#: order/models.py:862 order/templates/order/order_base.html:163
+#: templates/js/translated/order.js:589 templates/js/translated/order.js:1118
#: templates/js/translated/part.js:847 templates/js/translated/part.js:873
+#: templates/js/translated/table_filters.js:317
msgid "Received"
msgstr ""
-#: order/models.py:798
+#: order/models.py:863
msgid "Number of items received"
msgstr ""
-#: order/models.py:805 part/templates/part/prices.html:176 stock/models.py:609
-#: stock/serializers.py:168 stock/templates/stock/item_base.html:360
-#: templates/js/translated/stock.js:1436
+#: order/models.py:870 part/templates/part/prices.html:176 stock/models.py:603
+#: stock/serializers.py:170 stock/templates/stock/item_base.html:360
+#: templates/js/translated/stock.js:1600
msgid "Purchase Price"
msgstr ""
-#: order/models.py:806
+#: order/models.py:871
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:814
+#: order/models.py:879
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:866 part/templates/part/part_pricing.html:112
+#: order/models.py:934 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:116 part/templates/part/prices.html:284
msgid "Sale Price"
msgstr ""
-#: order/models.py:867
+#: order/models.py:935
msgid "Unit sale price"
msgstr ""
-#: order/models.py:946 order/models.py:948
+#: order/models.py:940
+msgid "Shipped quantity"
+msgstr ""
+
+#: order/models.py:1027
+msgid "Date of shipment"
+msgstr ""
+
+#: order/models.py:1034
+msgid "Checked By"
+msgstr ""
+
+#: order/models.py:1035
+msgid "User who checked this shipment"
+msgstr ""
+
+#: order/models.py:1043
+msgid "Shipment number"
+msgstr ""
+
+#: order/models.py:1050
+msgid "Shipment notes"
+msgstr ""
+
+#: order/models.py:1057
+msgid "Tracking Number"
+msgstr ""
+
+#: order/models.py:1058
+msgid "Shipment tracking information"
+msgstr ""
+
+#: order/models.py:1068
+msgid "Shipment has already been sent"
+msgstr ""
+
+#: order/models.py:1071
+msgid "Shipment has no allocated stock items"
+msgstr ""
+
+#: order/models.py:1147 order/models.py:1149
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:952
+#: order/models.py:1153
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:954
+#: order/models.py:1155
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:957
+#: order/models.py:1158
msgid "Allocation quantity cannot exceed stock quantity"
msgstr "Tahsis miktarı stok miktarını aşamaz"
-#: order/models.py:961
+#: order/models.py:1162
msgid "StockItem is over-allocated"
msgstr "Stok kalemi fazladan tahsis edilmiş"
-#: order/models.py:967
+#: order/models.py:1168 order/serializers.py:734
msgid "Quantity must be 1 for serialized stock item"
msgstr "Seri numaralı stok kalemi için miktar bir olmalı"
-#: order/models.py:975
+#: order/models.py:1171
+msgid "Sales order does not match shipment"
+msgstr ""
+
+#: order/models.py:1172
+msgid "Shipment does not match sales order"
+msgstr ""
+
+#: order/models.py:1180
msgid "Line"
msgstr ""
-#: order/models.py:987
+#: order/models.py:1188 order/serializers.py:825 order/serializers.py:953
+#: templates/js/translated/model_renderers.js:251
+msgid "Shipment"
+msgstr ""
+
+#: order/models.py:1189
+msgid "Sales order shipment reference"
+msgstr ""
+
+#: order/models.py:1201
msgid "Item"
msgstr ""
-#: order/models.py:988
+#: order/models.py:1202
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:991
+#: order/models.py:1205
msgid "Enter stock allocation quantity"
msgstr "Stok tahsis miktarını girin"
-#: order/serializers.py:175
+#: order/serializers.py:173
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:213
+#: order/serializers.py:211 order/serializers.py:790
msgid "Line Item"
msgstr ""
-#: order/serializers.py:219
+#: order/serializers.py:217
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:229 order/serializers.py:297
+#: order/serializers.py:227 order/serializers.py:295
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:253
+#: order/serializers.py:251
msgid "Barcode Hash"
msgstr ""
-#: order/serializers.py:254
+#: order/serializers.py:252
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:271
+#: order/serializers.py:269
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:309
+#: order/serializers.py:307
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:326
+#: order/serializers.py:324
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:337
+#: order/serializers.py:335
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:578
+#: order/serializers.py:581
msgid "Sale price currency"
msgstr ""
+#: order/serializers.py:649
+msgid "No shipment details provided"
+msgstr ""
+
+#: order/serializers.py:699 order/serializers.py:802
+msgid "Line item is not associated with this order"
+msgstr ""
+
+#: order/serializers.py:721
+msgid "Quantity must be positive"
+msgstr ""
+
+#: order/serializers.py:815
+msgid "Enter serial numbers to allocate"
+msgstr ""
+
+#: order/serializers.py:839 order/serializers.py:964
+msgid "Shipment has already been shipped"
+msgstr ""
+
+#: order/serializers.py:842 order/serializers.py:967
+msgid "Shipment is not associated with this order"
+msgstr ""
+
+#: order/serializers.py:894
+msgid "No match found for the following serial numbers"
+msgstr ""
+
+#: order/serializers.py:904
+msgid "The following serial numbers are already allocated"
+msgstr ""
+
#: order/templates/order/delete_attachment.html:5
#: stock/templates/stock/attachment_delete.html:5
msgid "Are you sure you want to delete this attachment?"
@@ -3271,7 +3416,8 @@ msgstr ""
msgid "Receive Items"
msgstr ""
-#: order/templates/order/order_base.html:62 order/views.py:185
+#: order/templates/order/order_base.html:62
+#: order/templates/order/sales_order_base.html:67 order/views.py:181
msgid "Complete Order"
msgstr ""
@@ -3290,12 +3436,23 @@ msgstr ""
msgid "Order Status"
msgstr ""
-#: order/templates/order/order_base.html:137
+#: order/templates/order/order_base.html:124
+#: order/templates/order/sales_order_base.html:128
+msgid "Completed Line Items"
+msgstr ""
+
+#: order/templates/order/order_base.html:130
+#: order/templates/order/sales_order_base.html:134
+#: order/templates/order/sales_order_base.html:144
+msgid "Incomplete"
+msgstr ""
+
+#: order/templates/order/order_base.html:149
#: report/templates/report/inventree_build_order_base.html:122
msgid "Issued"
msgstr ""
-#: order/templates/order/order_base.html:207
+#: order/templates/order/order_base.html:219
msgid "Edit Purchase Order"
msgstr ""
@@ -3371,8 +3528,9 @@ msgstr ""
#: part/templates/part/import_wizard/ajax_match_references.html:42
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
-#: templates/js/translated/build.js:240 templates/js/translated/build.js:1251
-#: templates/js/translated/order.js:377
+#: templates/js/translated/build.js:245 templates/js/translated/build.js:1256
+#: templates/js/translated/order.js:537 templates/js/translated/order.js:1488
+#: templates/js/translated/stock.js:592
msgid "Remove row"
msgstr ""
@@ -3453,7 +3611,8 @@ msgid "Select existing purchase orders, or create new orders."
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:31
-#: templates/js/translated/order.js:694 templates/js/translated/order.js:1118
+#: templates/js/translated/order.js:859 templates/js/translated/order.js:1286
+#: templates/js/translated/order.js:1416
msgid "Items"
msgstr "Ürünler"
@@ -3489,7 +3648,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:27
#: order/templates/order/purchase_order_detail.html:181
#: order/templates/order/sales_order_detail.html:23
-#: order/templates/order/sales_order_detail.html:157
+#: order/templates/order/sales_order_detail.html:244
msgid "Add Line Item"
msgstr ""
@@ -3502,7 +3661,7 @@ msgid "Received Items"
msgstr ""
#: order/templates/order/purchase_order_detail.html:76
-#: order/templates/order/sales_order_detail.html:68
+#: order/templates/order/sales_order_detail.html:123
msgid "Order Notes"
msgstr "Sipariş Notları"
@@ -3520,8 +3679,8 @@ msgid "Print packing list"
msgstr ""
#: order/templates/order/sales_order_base.html:66
-#: order/templates/order/sales_order_base.html:67 order/views.py:222
-msgid "Ship Order"
+#: order/templates/order/sales_order_base.html:229
+msgid "Complete Sales Order"
msgstr ""
#: order/templates/order/sales_order_base.html:102
@@ -3529,16 +3688,21 @@ msgid "This Sales Order has not been fully allocated"
msgstr ""
#: order/templates/order/sales_order_base.html:122
-#: templates/js/translated/order.js:1085
+#: templates/js/translated/order.js:1253
msgid "Customer Reference"
msgstr ""
-#: order/templates/order/sales_order_base.html:195
+#: order/templates/order/sales_order_base.html:140
+#: order/templates/order/sales_order_detail.html:78
+#: order/templates/order/so_sidebar.html:11
+msgid "Completed Shipments"
+msgstr ""
+
+#: order/templates/order/sales_order_base.html:215
msgid "Edit Sales Order"
msgstr ""
#: order/templates/order/sales_order_cancel.html:8
-#: order/templates/order/sales_order_ship.html:9
#: part/templates/part/bom_duplicate.html:12
#: stock/templates/stock/stockitem_convert.html:13
msgid "Warning"
@@ -3552,146 +3716,100 @@ msgstr ""
msgid "Sales Order Items"
msgstr ""
-#: order/templates/order/sales_order_ship.html:10
-msgid "This order has not been fully allocated. If the order is marked as shipped, it can no longer be adjusted."
+#: order/templates/order/sales_order_detail.html:44
+#: order/templates/order/so_sidebar.html:8
+msgid "Pending Shipments"
msgstr ""
-#: order/templates/order/sales_order_ship.html:12
-msgid "Ensure that the order allocation is correct before shipping the order."
-msgstr "Emri göndermeden önce emir tahsisinin doğru olduğundan emin olun."
+#: order/templates/order/sales_order_detail.html:48
+#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1188
+msgid "Actions"
+msgstr "İşlemler"
-#: order/templates/order/sales_order_ship.html:18
-msgid "Some line items in this order have been over-allocated"
+#: order/templates/order/sales_order_detail.html:57
+msgid "New Shipment"
msgstr ""
-#: order/templates/order/sales_order_ship.html:20
-msgid "Ensure that this is correct before shipping the order."
-msgstr ""
-
-#: order/templates/order/sales_order_ship.html:27
-msgid "Shipping this order means that the order will no longer be editable."
-msgstr ""
-
-#: order/templates/order/so_allocate_by_serial.html:9
-msgid "Allocate stock items by serial number"
-msgstr "Seri numarası ile stok kalemlerini tahsis et"
-
-#: order/views.py:103
+#: order/views.py:99
msgid "Cancel Order"
msgstr "Siparişi İptal Et"
-#: order/views.py:112 order/views.py:138
+#: order/views.py:108 order/views.py:134
msgid "Confirm order cancellation"
msgstr ""
-#: order/views.py:115 order/views.py:141
+#: order/views.py:111 order/views.py:137
msgid "Order cannot be cancelled"
msgstr ""
-#: order/views.py:129
+#: order/views.py:125
msgid "Cancel sales order"
msgstr ""
-#: order/views.py:155
+#: order/views.py:151
msgid "Issue Order"
msgstr ""
-#: order/views.py:164
+#: order/views.py:160
msgid "Confirm order placement"
msgstr ""
-#: order/views.py:174
+#: order/views.py:170
msgid "Purchase order issued"
msgstr ""
-#: order/views.py:201
+#: order/views.py:197
msgid "Confirm order completion"
msgstr ""
-#: order/views.py:212
+#: order/views.py:208
msgid "Purchase order completed"
msgstr ""
-#: order/views.py:238
-msgid "Confirm order shipment"
-msgstr ""
-
-#: order/views.py:244
-msgid "Could not ship order"
-msgstr ""
-
-#: order/views.py:291
+#: order/views.py:245
msgid "Match Supplier Parts"
msgstr ""
-#: order/views.py:535
+#: order/views.py:489
msgid "Update prices"
msgstr "Fiyatları güncelle"
-#: order/views.py:793
+#: order/views.py:747
#, python-brace-format
msgid "Ordered {n} parts"
msgstr ""
-#: order/views.py:846
-msgid "Allocate Serial Numbers"
-msgstr "Seri Numaralarını Tahsis Et"
-
-#: order/views.py:891
-#, python-brace-format
-msgid "Allocated {n} items"
-msgstr ""
-
-#: order/views.py:907
-msgid "Select line item"
-msgstr ""
-
-#: order/views.py:938
-#, python-brace-format
-msgid "No matching item for serial {serial}"
-msgstr "{serial} seri numarası için eşleşen öge bulunamadı"
-
-#: order/views.py:948
-#, python-brace-format
-msgid "{serial} is not in stock"
-msgstr "{serial} stokta yok"
-
-#: order/views.py:956
-#, python-brace-format
-msgid "{serial} already allocated to an order"
-msgstr "{serial} zaten bir emirde tahsis edilmiş"
-
-#: order/views.py:1072
+#: order/views.py:858
msgid "Sales order not found"
msgstr ""
-#: order/views.py:1078
+#: order/views.py:864
msgid "Price not found"
msgstr ""
-#: order/views.py:1081
+#: order/views.py:867
#, python-brace-format
msgid "Updated {part} unit-price to {price}"
msgstr ""
-#: order/views.py:1086
+#: order/views.py:872
#, python-brace-format
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/api.py:758
+#: part/api.py:760
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:762
+#: part/api.py:764
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:777
+#: part/api.py:779
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:808 part/api.py:812 part/api.py:827 part/api.py:831
+#: part/api.py:810 part/api.py:814 part/api.py:829 part/api.py:833
msgid "This field is required"
msgstr ""
@@ -3828,8 +3946,8 @@ msgstr "Parça Kategorileri"
#: part/templates/part/category.html:149
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:88
-#: templates/InvenTree/settings/sidebar.html:36
-#: templates/js/translated/part.js:1597 templates/navbar.html:19
+#: templates/InvenTree/settings/sidebar.html:37
+#: templates/js/translated/part.js:1597 templates/navbar.html:21
#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
msgid "Parts"
msgstr "Parçalar"
@@ -3895,7 +4013,7 @@ msgstr ""
#: part/models.py:778 part/models.py:2223 part/models.py:2472
#: part/templates/part/part_base.html:265
#: part/templates/part/set_category.html:15
-#: templates/InvenTree/settings/settings.html:163
+#: templates/InvenTree/settings/settings.html:172
#: templates/js/translated/part.js:1202
msgid "Category"
msgstr ""
@@ -3906,7 +4024,7 @@ msgstr ""
#: part/models.py:784 part/templates/part/part_base.html:274
#: templates/js/translated/part.js:557 templates/js/translated/part.js:1155
-#: templates/js/translated/stock.js:1216
+#: templates/js/translated/stock.js:1373
msgid "IPN"
msgstr "DPN"
@@ -3975,10 +4093,11 @@ msgstr "Bu parça dış tedarikçilerden satın alınabilir mi?"
msgid "Can this part be sold to customers?"
msgstr "Bu parça müşterilere satılabilir mi?"
-#: part/models.py:915 templates/js/translated/table_filters.js:34
+#: part/models.py:915 plugin/models.py:45
+#: templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:96
-#: templates/js/translated/table_filters.js:290
-#: templates/js/translated/table_filters.js:368
+#: templates/js/translated/table_filters.js:295
+#: templates/js/translated/table_filters.js:399
msgid "Active"
msgstr "Aktif"
@@ -4027,7 +4146,7 @@ msgid "Test with this name already exists for this part"
msgstr ""
#: part/models.py:2310 templates/js/translated/part.js:1648
-#: templates/js/translated/stock.js:940
+#: templates/js/translated/stock.js:1097
msgid "Test Name"
msgstr "Test Adı"
@@ -4044,7 +4163,7 @@ msgid "Enter description for this test"
msgstr ""
#: part/models.py:2322 templates/js/translated/part.js:1657
-#: templates/js/translated/table_filters.js:276
+#: templates/js/translated/table_filters.js:281
msgid "Required"
msgstr "Gerekli"
@@ -4086,7 +4205,7 @@ msgid "Parameter Units"
msgstr ""
#: part/models.py:2429 part/models.py:2478 part/models.py:2479
-#: templates/InvenTree/settings/settings.html:158
+#: templates/InvenTree/settings/settings.html:167
msgid "Parameter Template"
msgstr "Parametre Şablonu"
@@ -4098,7 +4217,7 @@ msgstr ""
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2483 templates/InvenTree/settings/settings.html:167
+#: part/models.py:2483 templates/InvenTree/settings/settings.html:176
msgid "Default Value"
msgstr ""
@@ -4175,7 +4294,7 @@ msgstr "Çeşide İzin Ver"
msgid "Stock items for variant parts can be used for this BOM item"
msgstr "Çeşit parçaların stok kalemleri bu malzeme listesinde kullanılabilir"
-#: part/models.py:2686 stock/models.py:361
+#: part/models.py:2686 stock/models.py:355
msgid "Quantity must be integer value for trackable parts"
msgstr ""
@@ -4724,8 +4843,8 @@ msgstr ""
msgid "This part is a variant of %(link)s"
msgstr "Bu parça %(link)s parçasının bir çeşididir"
-#: part/templates/part/part_base.html:190 templates/js/translated/order.js:1545
-#: templates/js/translated/table_filters.js:188
+#: part/templates/part/part_base.html:190 templates/js/translated/order.js:2217
+#: templates/js/translated/table_filters.js:193
msgid "In Stock"
msgstr ""
@@ -5099,6 +5218,78 @@ msgstr ""
msgid "Delete Internal Price Break"
msgstr ""
+#: plugin/integration.py:116
+msgid "No author found"
+msgstr ""
+
+#: plugin/integration.py:128
+msgid "No date found"
+msgstr ""
+
+#: plugin/models.py:25
+msgid "Plugin Configuration"
+msgstr ""
+
+#: plugin/models.py:26
+msgid "Plugin Configurations"
+msgstr ""
+
+#: plugin/models.py:31
+msgid "Key"
+msgstr ""
+
+#: plugin/models.py:32
+msgid "Key of plugin"
+msgstr ""
+
+#: plugin/models.py:40
+msgid "PluginName of the plugin"
+msgstr ""
+
+#: plugin/models.py:46
+msgid "Is the plugin active"
+msgstr ""
+
+#: plugin/samples/integration/sample.py:39
+msgid "Enable PO"
+msgstr ""
+
+#: plugin/samples/integration/sample.py:40
+msgid "Enable PO functionality in InvenTree interface"
+msgstr ""
+
+#: plugin/serializers.py:46
+msgid "Source URL"
+msgstr ""
+
+#: plugin/serializers.py:47
+msgid "Source for the package - this can be a custom registry or a VCS path"
+msgstr ""
+
+#: plugin/serializers.py:52
+msgid "Package Name"
+msgstr ""
+
+#: plugin/serializers.py:53
+msgid "Name for the Plugin Package - can also contain a version indicator"
+msgstr ""
+
+#: plugin/serializers.py:56
+msgid "Confirm plugin installation"
+msgstr ""
+
+#: plugin/serializers.py:57
+msgid "This will install this plugin now into the current instance. The instance will go into maintenance."
+msgstr ""
+
+#: plugin/serializers.py:72
+msgid "Installation not confirmed"
+msgstr ""
+
+#: plugin/serializers.py:74
+msgid "Either packagenmae of url must be provided"
+msgstr ""
+
#: report/api.py:234 report/api.py:278
#, python-brace-format
msgid "Template file '{filename}' is missing or does not exist"
@@ -5197,12 +5388,12 @@ msgid "Stock Item Test Report"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:520 stock/templates/stock/item_base.html:149
-#: templates/js/translated/build.js:233 templates/js/translated/build.js:637
-#: templates/js/translated/build.js:1013
+#: stock/models.py:514 stock/templates/stock/item_base.html:149
+#: templates/js/translated/build.js:238 templates/js/translated/build.js:642
+#: templates/js/translated/build.js:1018
#: templates/js/translated/model_renderers.js:95
-#: templates/js/translated/order.js:1287 templates/js/translated/order.js:1376
-#: templates/js/translated/stock.js:410
+#: templates/js/translated/order.js:99 templates/js/translated/order.js:1945
+#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:414
msgid "Serial Number"
msgstr "Seri Numara"
@@ -5211,17 +5402,19 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:93
-#: stock/models.py:1845
+#: stock/models.py:1833
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:94
-#: stock/models.py:1851
+#: stock/models.py:1839
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:97
-#: templates/js/translated/order.js:684 templates/js/translated/stock.js:1999
+#: templates/InvenTree/settings/plugin.html:49
+#: templates/InvenTree/settings/plugin_settings.html:38
+#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2174
msgid "Date"
msgstr ""
@@ -5239,302 +5432,318 @@ msgid "Installed Items"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
-#: templates/js/translated/stock.js:2259
+#: templates/js/translated/stock.js:577 templates/js/translated/stock.js:2434
msgid "Serial"
msgstr "Seri No"
-#: stock/api.py:422
+#: stock/api.py:446
msgid "Quantity is required"
msgstr ""
-#: stock/forms.py:91 stock/forms.py:265 stock/models.py:577
+#: stock/forms.py:77 stock/forms.py:251 stock/models.py:571
#: stock/templates/stock/item_base.html:186
-#: templates/js/translated/stock.js:1358
+#: templates/js/translated/stock.js:1522
msgid "Expiry Date"
msgstr ""
-#: stock/forms.py:92 stock/forms.py:266
+#: stock/forms.py:78 stock/forms.py:252
msgid "Expiration date for this stock item"
msgstr "Bu stok kalemi için son kullanma tarihi"
-#: stock/forms.py:95
+#: stock/forms.py:81
msgid "Enter unique serial numbers (or leave blank)"
msgstr "Benzersiz seri numaraları giriniz (veya boş bırakınız)"
-#: stock/forms.py:150
+#: stock/forms.py:136
msgid "Destination for serialized stock (by default, will remain in current location)"
msgstr "Seri numaralandırılmış stok için hedef konum(varsayılan olarak, geçerli konumda kalacaktır)"
-#: stock/forms.py:152
+#: stock/forms.py:138
msgid "Serial numbers"
msgstr "Seri numaraları"
-#: stock/forms.py:152
+#: stock/forms.py:138
msgid "Unique serial numbers (must match quantity)"
msgstr "Benzersiz seri numaraları (miktar ile eşleşmeli)"
-#: stock/forms.py:154 stock/forms.py:238
+#: stock/forms.py:140 stock/forms.py:224
msgid "Add transaction note (optional)"
msgstr "İşlem notu ekle (isteğe bağlı)"
-#: stock/forms.py:194
+#: stock/forms.py:180
msgid "Stock item to install"
msgstr "Kurulacak stok kalemi"
-#: stock/forms.py:224
+#: stock/forms.py:210
msgid "Must not exceed available quantity"
msgstr ""
-#: stock/forms.py:236
+#: stock/forms.py:222
msgid "Destination location for uninstalled items"
msgstr "Sökülen ögeler için hedef konum"
-#: stock/forms.py:240
+#: stock/forms.py:226
msgid "Confirm uninstall"
msgstr ""
-#: stock/forms.py:240
+#: stock/forms.py:226
msgid "Confirm removal of installed stock items"
msgstr "Kurulu stok kalemlerinin kaldırılmasını onayla"
-#: stock/models.py:60 stock/models.py:614
+#: stock/models.py:60 stock/models.py:608
#: stock/templates/stock/item_base.html:417
msgid "Owner"
msgstr ""
-#: stock/models.py:61 stock/models.py:615
+#: stock/models.py:61 stock/models.py:609
msgid "Select Owner"
msgstr ""
-#: stock/models.py:342
+#: stock/models.py:336
msgid "StockItem with this serial number already exists"
msgstr "Bu seri numarasına sahip stok kalemi zaten var"
-#: stock/models.py:378
+#: stock/models.py:372
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:388 stock/models.py:397
+#: stock/models.py:382 stock/models.py:391
msgid "Quantity must be 1 for item with a serial number"
msgstr "Seri numarası olan ögenin miktarı bir olmalı"
-#: stock/models.py:389
+#: stock/models.py:383
msgid "Serial number cannot be set if quantity greater than 1"
msgstr "Miktar birden büyük ise seri numarası ayarlanamaz"
-#: stock/models.py:411
+#: stock/models.py:405
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:417
+#: stock/models.py:411
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:424
+#: stock/models.py:418
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:466
+#: stock/models.py:460
msgid "Parent Stock Item"
msgstr "Üst Stok Kalemi"
-#: stock/models.py:475
+#: stock/models.py:469
msgid "Base part"
msgstr ""
-#: stock/models.py:483
+#: stock/models.py:477
msgid "Select a matching supplier part for this stock item"
msgstr "Bu stok kalemi için tedarikçi parçası seçin"
-#: stock/models.py:488 stock/templates/stock/location.html:12
+#: stock/models.py:482 stock/templates/stock/location.html:12
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr "Stok Konumu"
-#: stock/models.py:491
+#: stock/models.py:485
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:498
+#: stock/models.py:492
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:503 stock/templates/stock/item_base.html:299
+#: stock/models.py:497 stock/templates/stock/item_base.html:299
msgid "Installed In"
msgstr ""
-#: stock/models.py:506
+#: stock/models.py:500
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:522
+#: stock/models.py:516
msgid "Serial number for this item"
msgstr "Bu öge için seri numarası"
-#: stock/models.py:536
+#: stock/models.py:530
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:540
+#: stock/models.py:534
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:549
+#: stock/models.py:543
msgid "Source Build"
msgstr ""
-#: stock/models.py:551
+#: stock/models.py:545
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:562
+#: stock/models.py:556
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:565
+#: stock/models.py:559
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:571
+#: stock/models.py:565
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:578
+#: stock/models.py:572
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:591
+#: stock/models.py:585
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:591
+#: stock/models.py:585
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:601 stock/templates/stock/item.html:111
+#: stock/models.py:595 stock/templates/stock/item.html:111
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:610
+#: stock/models.py:604
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:620
-msgid "Scheduled for deletion"
-msgstr ""
-
-#: stock/models.py:621
-msgid "This StockItem will be deleted by the background worker"
-msgstr ""
-
-#: stock/models.py:1084
+#: stock/models.py:1072
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1090
+#: stock/models.py:1078
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1096
+#: stock/models.py:1084
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1099
+#: stock/models.py:1087
msgid "Serial numbers must be a list of integers"
msgstr "Seri numaraları tam sayı listesi olmalı"
-#: stock/models.py:1102
+#: stock/models.py:1090
msgid "Quantity does not match serial numbers"
msgstr "Miktar seri numaları ile eşleşmiyor"
-#: stock/models.py:1109
+#: stock/models.py:1097
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr "Seri numaraları zaten mevcut: {exists}"
-#: stock/models.py:1267
+#: stock/models.py:1255
msgid "StockItem cannot be moved as it is not in stock"
msgstr "Stok kalemi stokta olmadığı için taşınamaz"
-#: stock/models.py:1765
+#: stock/models.py:1753
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1822
+#: stock/models.py:1810
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1828
+#: stock/models.py:1816
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1846
+#: stock/models.py:1834
msgid "Test name"
msgstr ""
-#: stock/models.py:1852 templates/js/translated/table_filters.js:266
+#: stock/models.py:1840 templates/js/translated/table_filters.js:271
msgid "Test result"
msgstr ""
-#: stock/models.py:1858
+#: stock/models.py:1846
msgid "Test output value"
msgstr ""
-#: stock/models.py:1865
+#: stock/models.py:1853
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1871
+#: stock/models.py:1859
msgid "Test notes"
msgstr ""
-#: stock/serializers.py:171
+#: stock/serializers.py:173
msgid "Purchase price of this stock item"
msgstr ""
-#: stock/serializers.py:178
+#: stock/serializers.py:180
msgid "Purchase currency of this stock item"
msgstr ""
-#: stock/serializers.py:292
+#: stock/serializers.py:294
msgid "Enter number of stock items to serialize"
msgstr ""
-#: stock/serializers.py:307
+#: stock/serializers.py:309
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:313
+#: stock/serializers.py:315
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:324 stock/serializers.py:691
+#: stock/serializers.py:326 stock/serializers.py:814
msgid "Destination stock location"
msgstr ""
-#: stock/serializers.py:331
+#: stock/serializers.py:333
msgid "Optional note field"
msgstr ""
-#: stock/serializers.py:344
+#: stock/serializers.py:346
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:561
+#: stock/serializers.py:573
+msgid "Part must be salable"
+msgstr ""
+
+#: stock/serializers.py:577
+msgid "Item is allocated to a sales order"
+msgstr ""
+
+#: stock/serializers.py:581
+msgid "Item is allocated to a build order"
+msgstr ""
+
+#: stock/serializers.py:611
+msgid "Customer to assign stock items"
+msgstr ""
+
+#: stock/serializers.py:617
+msgid "Selected company is not a customer"
+msgstr ""
+
+#: stock/serializers.py:625
+msgid "Stock assignment notes"
+msgstr ""
+
+#: stock/serializers.py:635 stock/serializers.py:722
+msgid "A list of stock items must be provided"
+msgstr ""
+
+#: stock/serializers.py:684
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:589
+#: stock/serializers.py:712
msgid "Stock transaction notes"
msgstr ""
-#: stock/serializers.py:599
-msgid "A list of stock items must be provided"
-msgstr ""
-
#: stock/templates/stock/item.html:18
msgid "Stock Tracking Information"
msgstr ""
@@ -5572,7 +5781,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:137 stock/views.py:515
+#: stock/templates/stock/item.html:137 stock/views.py:482
msgid "Install Stock Item"
msgstr ""
@@ -5632,7 +5841,7 @@ msgstr "Stoku seri numarala"
msgid "Transfer stock"
msgstr ""
-#: stock/templates/stock/item_base.html:85
+#: stock/templates/stock/item_base.html:85 templates/stock_table.html:53
msgid "Assign to customer"
msgstr ""
@@ -5694,7 +5903,7 @@ msgid "This StockItem expired on %(item.expiry_date)s"
msgstr "Bu stok kaleminin süresi %(item.expiry_date)s tarihinde sona erdi"
#: stock/templates/stock/item_base.html:190
-#: templates/js/translated/table_filters.js:247
+#: templates/js/translated/table_filters.js:252
msgid "Expired"
msgstr ""
@@ -5704,12 +5913,12 @@ msgid "This StockItem expires on %(item.expiry_date)s"
msgstr "Bu stok kaleminin süresi %(item.expiry_date)s tarihinde sona erecek"
#: stock/templates/stock/item_base.html:192
-#: templates/js/translated/table_filters.js:253
+#: templates/js/translated/table_filters.js:258
msgid "Stale"
msgstr ""
#: stock/templates/stock/item_base.html:199
-#: templates/js/translated/stock.js:1371
+#: templates/js/translated/stock.js:1535
msgid "Last Updated"
msgstr ""
@@ -5738,13 +5947,11 @@ msgid "This stock item has not passed all required tests"
msgstr "Stok kalemi tüm gerekli testleri geçmedi"
#: stock/templates/stock/item_base.html:255
-#, python-format
-msgid "This stock item is allocated to Sales Order %(link)s (Quantity: %(qty)s)"
+msgid "This stock item is allocated to Sales Order"
msgstr ""
#: stock/templates/stock/item_base.html:263
-#, python-format
-msgid "This stock item is allocated to Build %(link)s (Quantity: %(qty)s)"
+msgid "This stock item is allocated to Build Order"
msgstr ""
#: stock/templates/stock/item_base.html:269
@@ -5760,7 +5967,7 @@ msgid "This stock item will be automatically deleted when all stock is depleted.
msgstr ""
#: stock/templates/stock/item_base.html:318
-#: templates/js/translated/build.js:1035
+#: templates/js/translated/build.js:1040
msgid "No location set"
msgstr "Konum ayarlanmadı"
@@ -5910,7 +6117,7 @@ msgstr ""
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:912
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:879
msgid "Convert Stock Item"
msgstr "Stok Kalemine Dönüştür"
@@ -5935,8 +6142,7 @@ msgstr ""
msgid "Edit Stock Location"
msgstr "Stok konumunu düzenle"
-#: stock/views.py:269 stock/views.py:891 stock/views.py:1017
-#: stock/views.py:1299
+#: stock/views.py:269 stock/views.py:858 stock/views.py:984 stock/views.py:1266
msgid "Owner is required (ownership control is enabled)"
msgstr "Sahip gerekli (sahip kontrolü etkinleştirildi)"
@@ -5945,86 +6151,78 @@ msgid "Stock Location QR code"
msgstr "Stok Konumu QR Kodu"
#: stock/views.py:303
-msgid "Assign to Customer"
-msgstr ""
-
-#: stock/views.py:312
-msgid "Customer must be specified"
-msgstr ""
-
-#: stock/views.py:336
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:345
+#: stock/views.py:312
msgid "Specify a valid location"
msgstr "Geçerli bir konum belirtiniz"
-#: stock/views.py:356
+#: stock/views.py:323
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:367
+#: stock/views.py:334
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:384
+#: stock/views.py:351
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:489
+#: stock/views.py:456
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:663
+#: stock/views.py:630
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:760 templates/js/translated/stock.js:730
+#: stock/views.py:727 templates/js/translated/stock.js:887
msgid "Confirm stock adjustment"
msgstr "Stok ayarlamasını onayla"
-#: stock/views.py:771
+#: stock/views.py:738
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:793 templates/js/translated/stock.js:319
+#: stock/views.py:760 templates/js/translated/stock.js:323
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:943
+#: stock/views.py:910
msgid "Create new Stock Location"
msgstr "Yeni Stok konumu oluştur"
-#: stock/views.py:1044
+#: stock/views.py:1011
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1186 templates/js/translated/stock.js:299
+#: stock/views.py:1153 templates/js/translated/stock.js:303
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1268
+#: stock/views.py:1235
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1368
+#: stock/views.py:1335
msgid "Delete Stock Location"
msgstr "Stok Konumunu Sil"
-#: stock/views.py:1381
+#: stock/views.py:1348
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1392
+#: stock/views.py:1359
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1399
+#: stock/views.py:1366
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1408
+#: stock/views.py:1375
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -6044,6 +6242,14 @@ msgstr ""
msgid "The requested page does not exist"
msgstr ""
+#: templates/503.html:10 templates/503.html:35
+msgid "Site is in Maintenance"
+msgstr ""
+
+#: templates/503.html:41
+msgid "The site is currently in maintenance and should be up again soon!"
+msgstr ""
+
#: templates/InvenTree/index.html:7
msgid "Index"
msgstr ""
@@ -6153,7 +6359,7 @@ msgid "Server Settings"
msgstr ""
#: templates/InvenTree/settings/login.html:9
-#: templates/InvenTree/settings/sidebar.html:28
+#: templates/InvenTree/settings/sidebar.html:29
msgid "Login Settings"
msgstr ""
@@ -6161,6 +6367,24 @@ msgstr ""
msgid "Signup"
msgstr ""
+#: templates/InvenTree/settings/mixins/settings.html:4
+#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:118
+msgid "Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/mixins/urls.html:4
+msgid "URLs"
+msgstr ""
+
+#: templates/InvenTree/settings/mixins/urls.html:6
+#, python-format
+msgid "The Base-URL for this plugin is %(base)s."
+msgstr ""
+
+#: templates/InvenTree/settings/mixins/urls.html:21
+msgid "open in new tab"
+msgstr ""
+
#: templates/InvenTree/settings/part.html:7
msgid "Part Settings"
msgstr ""
@@ -6177,6 +6401,126 @@ msgstr ""
msgid "Part Parameter Templates"
msgstr "Parça Parametre Şablonu"
+#: templates/InvenTree/settings/plugin.html:10
+msgid "Plugin Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:16
+msgid "Changing the settings below require you to immediatly restart InvenTree. Do not change this while under active usage."
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:32
+msgid "Plugin list"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:37
+#: templates/js/translated/plugin.js:15
+msgid "Install Plugin"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:46 templates/navbar.html:111
+#: users/models.py:39
+msgid "Admin"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:48
+#: templates/InvenTree/settings/plugin_settings.html:28
+msgid "Author"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:50
+#: templates/InvenTree/settings/plugin_settings.html:43
+msgid "Version"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:73
+#, python-format
+msgid "has %(name)s"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:91
+msgid "Inactive plugins"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:114
+msgid "Plugin Error Stack"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:123
+msgid "Stage"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:125
+msgid "Message"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:10
+#, python-format
+msgid "Plugin details for %(name)s"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:17
+msgid "Plugin information"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:48
+msgid "no version information supplied"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:62
+msgid "License"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:70
+msgid "The code information is pulled from the latest git commit for this plugin. It might not reflect official version numbers or information but the actual code running."
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:74
+msgid "Package information"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:80
+msgid "Installation method"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:83
+msgid "This plugin was installed as a package"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:85
+msgid "This plugin was found in a local InvenTree path"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:91
+msgid "Installation path"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:97
+msgid "Commit Author"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:101
+#: templates/about.html:47
+msgid "Commit Date"
+msgstr "Commit Tarihi"
+
+#: templates/InvenTree/settings/plugin_settings.html:105
+#: templates/about.html:40
+msgid "Commit Hash"
+msgstr "Commit Hash Değeri"
+
+#: templates/InvenTree/settings/plugin_settings.html:109
+msgid "Commit Message"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:114
+msgid "Sign Status"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:119
+msgid "Sign Key"
+msgstr ""
+
#: templates/InvenTree/settings/po.html:7
msgid "Purchase Order Settings"
msgstr ""
@@ -6194,86 +6538,82 @@ msgstr ""
msgid "Edit setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:11 templates/navbar.html:93
-msgid "Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/settings.html:65
+#: templates/InvenTree/settings/settings.html:74
msgid "Edit Global Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:65
+#: templates/InvenTree/settings/settings.html:74
msgid "Edit User Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:148
+#: templates/InvenTree/settings/settings.html:157
msgid "No category parameter templates found"
msgstr "Kategori parametre şablonu bulunamadı"
-#: templates/InvenTree/settings/settings.html:170
-#: templates/InvenTree/settings/settings.html:269
+#: templates/InvenTree/settings/settings.html:179
+#: templates/InvenTree/settings/settings.html:278
msgid "Edit Template"
msgstr "Şablonu Düzenle"
-#: templates/InvenTree/settings/settings.html:171
-#: templates/InvenTree/settings/settings.html:270
+#: templates/InvenTree/settings/settings.html:180
+#: templates/InvenTree/settings/settings.html:279
msgid "Delete Template"
msgstr "Şablonu Sil"
-#: templates/InvenTree/settings/settings.html:249
+#: templates/InvenTree/settings/settings.html:258
msgid "No part parameter templates found"
msgstr "Parça parametre şablonu bulunamadı"
-#: templates/InvenTree/settings/settings.html:253
+#: templates/InvenTree/settings/settings.html:262
msgid "ID"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:5
+#: templates/InvenTree/settings/sidebar.html:6
#: templates/InvenTree/settings/user_settings.html:9
msgid "User Settings"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:8
+#: templates/InvenTree/settings/sidebar.html:9
#: templates/InvenTree/settings/user.html:12
msgid "Account Settings"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:10
+#: templates/InvenTree/settings/sidebar.html:11
#: templates/InvenTree/settings/user_display.html:9
msgid "Display Settings"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:12
+#: templates/InvenTree/settings/sidebar.html:13
msgid "Home Page"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:14
+#: templates/InvenTree/settings/sidebar.html:15
#: templates/InvenTree/settings/user_search.html:9
msgid "Search Settings"
msgstr "Arama Ayarları"
-#: templates/InvenTree/settings/sidebar.html:16
+#: templates/InvenTree/settings/sidebar.html:17
msgid "Label Printing"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:18
-#: templates/InvenTree/settings/sidebar.html:34
+#: templates/InvenTree/settings/sidebar.html:19
+#: templates/InvenTree/settings/sidebar.html:35
msgid "Reporting"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:23
+#: templates/InvenTree/settings/sidebar.html:24
msgid "Global Settings"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:26
+#: templates/InvenTree/settings/sidebar.html:27
msgid "Server Configuration"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:32
+#: templates/InvenTree/settings/sidebar.html:33
msgid "Currencies"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:38
+#: templates/InvenTree/settings/sidebar.html:39
msgid "Categories"
msgstr ""
@@ -6491,8 +6831,8 @@ msgstr "InvenTree Sürüm Bilgisi"
#: templates/about.html:11 templates/about.html:105
#: templates/js/translated/bom.js:283 templates/js/translated/modals.js:53
-#: templates/js/translated/modals.js:567 templates/js/translated/modals.js:661
-#: templates/js/translated/modals.js:964 templates/modals.html:15
+#: templates/js/translated/modals.js:568 templates/js/translated/modals.js:662
+#: templates/js/translated/modals.js:965 templates/modals.html:15
#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
msgid "Close"
msgstr "Kapat"
@@ -6513,14 +6853,6 @@ msgstr "Güncel"
msgid "Update Available"
msgstr "Güncelleme Mevcut"
-#: templates/about.html:40
-msgid "Commit Hash"
-msgstr "Commit Hash Değeri"
-
-#: templates/about.html:47
-msgid "Commit Date"
-msgstr "Commit Tarihi"
-
#: templates/about.html:53
msgid "InvenTree Documentation"
msgstr ""
@@ -6718,8 +7050,9 @@ msgstr ""
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1129
-#: templates/js/translated/build.js:1749
+#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1134
+#: templates/js/translated/build.js:1755
+#: templates/js/translated/table_filters.js:178
msgid "Available"
msgstr "Mevcut"
@@ -6765,11 +7098,11 @@ msgstr ""
msgid "Remote image must not exceed maximum allowable file size"
msgstr ""
-#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1034
+#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1035
msgid "No Response"
msgstr "Cevap Yok"
-#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1035
+#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1036
msgid "No response from the InvenTree server"
msgstr ""
@@ -6781,35 +7114,35 @@ msgstr ""
msgid "API request returned error code 400"
msgstr ""
-#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1044
+#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1045
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1045
+#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1046
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1049
+#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1050
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1050
+#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1051
msgid "You do not have the required permissions to access this function"
msgstr "Bu fonksiyona erişmek için gerekli izinlere sahip değilsiniz"
-#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1054
+#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1055
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1055
+#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1056
msgid "The requested resource could not be located on the server"
msgstr ""
-#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1059
+#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1060
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1060
+#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1061
msgid "Connection timeout while requesting data from server"
msgstr ""
@@ -6878,7 +7211,7 @@ msgid "Unknown response from server"
msgstr ""
#: templates/js/translated/barcode.js:140
-#: templates/js/translated/modals.js:1024
+#: templates/js/translated/modals.js:1025
msgid "Invalid server response"
msgstr ""
@@ -6886,7 +7219,7 @@ msgstr ""
msgid "Scan barcode data below"
msgstr ""
-#: templates/js/translated/barcode.js:280 templates/navbar.html:69
+#: templates/js/translated/barcode.js:280 templates/navbar.html:94
msgid "Scan Barcode"
msgstr ""
@@ -6906,7 +7239,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:682
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:839
msgid "Remove stock item"
msgstr ""
@@ -6976,7 +7309,7 @@ msgstr ""
msgid "Substitutes Available"
msgstr ""
-#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1111
+#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1116
msgid "Variant stock allowed"
msgstr ""
@@ -7000,11 +7333,6 @@ msgstr ""
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1183
-#: templates/js/translated/order.js:1319
-msgid "Actions"
-msgstr "İşlemler"
-
#: templates/js/translated/bom.js:616
msgid "Validate BOM Item"
msgstr ""
@@ -7025,7 +7353,7 @@ msgstr ""
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:718 templates/js/translated/build.js:855
+#: templates/js/translated/bom.js:718 templates/js/translated/build.js:860
msgid "No BOM items found"
msgstr ""
@@ -7033,7 +7361,7 @@ msgstr ""
msgid "Are you sure you want to delete this BOM item?"
msgstr ""
-#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1095
+#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1100
msgid "Required Part"
msgstr "Gerekli Parça"
@@ -7041,165 +7369,165 @@ msgstr "Gerekli Parça"
msgid "Inherited from parent BOM"
msgstr ""
-#: templates/js/translated/build.js:78
+#: templates/js/translated/build.js:83
msgid "Edit Build Order"
msgstr ""
-#: templates/js/translated/build.js:112
+#: templates/js/translated/build.js:117
msgid "Create Build Order"
msgstr ""
-#: templates/js/translated/build.js:133
+#: templates/js/translated/build.js:138
msgid "Allocate stock items to this build output"
msgstr ""
-#: templates/js/translated/build.js:144
+#: templates/js/translated/build.js:149
msgid "Unallocate stock from build output"
msgstr ""
-#: templates/js/translated/build.js:153
+#: templates/js/translated/build.js:158
msgid "Complete build output"
msgstr ""
-#: templates/js/translated/build.js:161
+#: templates/js/translated/build.js:166
msgid "Delete build output"
msgstr ""
-#: templates/js/translated/build.js:184
+#: templates/js/translated/build.js:189
msgid "Are you sure you wish to unallocate stock items from this build?"
msgstr ""
-#: templates/js/translated/build.js:202
+#: templates/js/translated/build.js:207
msgid "Unallocate Stock Items"
msgstr ""
-#: templates/js/translated/build.js:220
+#: templates/js/translated/build.js:225
msgid "Select Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:221
+#: templates/js/translated/build.js:226
msgid "At least one build output must be selected"
msgstr ""
-#: templates/js/translated/build.js:275
+#: templates/js/translated/build.js:280
msgid "Output"
msgstr ""
-#: templates/js/translated/build.js:291
+#: templates/js/translated/build.js:296
msgid "Complete Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:386
+#: templates/js/translated/build.js:391
msgid "No build order allocations found"
msgstr ""
-#: templates/js/translated/build.js:424 templates/js/translated/order.js:1193
+#: templates/js/translated/build.js:429 templates/js/translated/order.js:1848
msgid "Location not specified"
msgstr ""
-#: templates/js/translated/build.js:603
+#: templates/js/translated/build.js:608
msgid "No active build outputs found"
msgstr ""
-#: templates/js/translated/build.js:1052 templates/js/translated/build.js:1760
-#: templates/js/translated/order.js:1326
+#: templates/js/translated/build.js:1057 templates/js/translated/build.js:1766
+#: templates/js/translated/order.js:1982
msgid "Edit stock allocation"
msgstr "Stok tahsisini düzenle"
-#: templates/js/translated/build.js:1054 templates/js/translated/build.js:1761
-#: templates/js/translated/order.js:1327
+#: templates/js/translated/build.js:1059 templates/js/translated/build.js:1767
+#: templates/js/translated/order.js:1983
msgid "Delete stock allocation"
msgstr "Stok tahsisini sil"
-#: templates/js/translated/build.js:1072
+#: templates/js/translated/build.js:1077
msgid "Edit Allocation"
msgstr ""
-#: templates/js/translated/build.js:1082
+#: templates/js/translated/build.js:1087
msgid "Remove Allocation"
msgstr ""
-#: templates/js/translated/build.js:1107
+#: templates/js/translated/build.js:1112
msgid "Substitute parts available"
msgstr ""
-#: templates/js/translated/build.js:1124
+#: templates/js/translated/build.js:1129
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:1134 templates/js/translated/build.js:1360
-#: templates/js/translated/build.js:1756 templates/js/translated/order.js:1556
+#: templates/js/translated/build.js:1139 templates/js/translated/build.js:1365
+#: templates/js/translated/build.js:1762 templates/js/translated/order.js:2227
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:1190 templates/js/translated/order.js:1610
+#: templates/js/translated/build.js:1195 templates/js/translated/order.js:2307
msgid "Build stock"
msgstr ""
-#: templates/js/translated/build.js:1194 templates/stock_table.html:52
+#: templates/js/translated/build.js:1199 templates/stock_table.html:52
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:1197 templates/js/translated/order.js:1603
+#: templates/js/translated/build.js:1202 templates/js/translated/order.js:2300
msgid "Allocate stock"
msgstr ""
-#: templates/js/translated/build.js:1262
+#: templates/js/translated/build.js:1267 templates/js/translated/order.js:1499
msgid "Specify stock allocation quantity"
msgstr ""
-#: templates/js/translated/build.js:1333 templates/js/translated/label.js:134
-#: templates/js/translated/report.js:225
+#: templates/js/translated/build.js:1338 templates/js/translated/label.js:134
+#: templates/js/translated/order.js:1550 templates/js/translated/report.js:225
msgid "Select Parts"
msgstr "Parçaları Seçin"
-#: templates/js/translated/build.js:1334
+#: templates/js/translated/build.js:1339 templates/js/translated/order.js:1551
msgid "You must select at least one part to allocate"
msgstr ""
-#: templates/js/translated/build.js:1348
+#: templates/js/translated/build.js:1353 templates/js/translated/order.js:1565
msgid "Select source location (leave blank to take from all locations)"
msgstr ""
-#: templates/js/translated/build.js:1377
+#: templates/js/translated/build.js:1382 templates/js/translated/order.js:1600
msgid "Confirm stock allocation"
msgstr "Stok tahsisini onayla"
-#: templates/js/translated/build.js:1378
+#: templates/js/translated/build.js:1383
msgid "Allocate Stock Items to Build Order"
msgstr ""
-#: templates/js/translated/build.js:1389
+#: templates/js/translated/build.js:1394 templates/js/translated/order.js:1613
msgid "No matching stock locations"
msgstr ""
-#: templates/js/translated/build.js:1451
+#: templates/js/translated/build.js:1464 templates/js/translated/order.js:1690
msgid "No matching stock items"
msgstr ""
-#: templates/js/translated/build.js:1576
+#: templates/js/translated/build.js:1582
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:1593 templates/js/translated/part.js:1147
-#: templates/js/translated/part.js:1558 templates/js/translated/stock.js:1176
-#: templates/js/translated/stock.js:1953
+#: templates/js/translated/build.js:1599 templates/js/translated/part.js:1147
+#: templates/js/translated/part.js:1558 templates/js/translated/stock.js:1333
+#: templates/js/translated/stock.js:2128
msgid "Select"
msgstr ""
-#: templates/js/translated/build.js:1613
+#: templates/js/translated/build.js:1619
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1674 templates/js/translated/stock.js:2172
+#: templates/js/translated/build.js:1680 templates/js/translated/stock.js:2347
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:1686
+#: templates/js/translated/build.js:1692
msgid "No information"
msgstr ""
-#: templates/js/translated/build.js:1737
+#: templates/js/translated/build.js:1743
msgid "No parts allocated for"
msgstr ""
@@ -7219,7 +7547,7 @@ msgstr ""
msgid "Delete Manufacturer Part"
msgstr ""
-#: templates/js/translated/company.js:165 templates/js/translated/order.js:90
+#: templates/js/translated/company.js:165 templates/js/translated/order.js:248
msgid "Add Supplier"
msgstr ""
@@ -7354,20 +7682,20 @@ msgstr ""
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1072 templates/modals.html:19
+#: templates/js/translated/forms.js:1078 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1463
+#: templates/js/translated/forms.js:1469
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1667
+#: templates/js/translated/forms.js:1673
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1884
+#: templates/js/translated/forms.js:1893
msgid "Clear input"
msgstr ""
@@ -7380,7 +7708,7 @@ msgid "NO"
msgstr ""
#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:706
+#: templates/js/translated/stock.js:863
msgid "Select Stock Items"
msgstr ""
@@ -7429,62 +7757,62 @@ msgstr "Etiket Seç"
msgid "Select Label Template"
msgstr "Etiket Şablonu Seç"
-#: templates/js/translated/modals.js:75 templates/js/translated/modals.js:119
-#: templates/js/translated/modals.js:593
+#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:120
+#: templates/js/translated/modals.js:594
msgid "Cancel"
msgstr ""
-#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:118
-#: templates/js/translated/modals.js:660 templates/js/translated/modals.js:963
+#: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119
+#: templates/js/translated/modals.js:661 templates/js/translated/modals.js:964
#: templates/modals.html:28 templates/modals.html:51
msgid "Submit"
msgstr ""
-#: templates/js/translated/modals.js:117
+#: templates/js/translated/modals.js:118
msgid "Form Title"
msgstr ""
-#: templates/js/translated/modals.js:380
+#: templates/js/translated/modals.js:381
msgid "Waiting for server..."
msgstr ""
-#: templates/js/translated/modals.js:539
+#: templates/js/translated/modals.js:540
msgid "Show Error Information"
msgstr ""
-#: templates/js/translated/modals.js:592
+#: templates/js/translated/modals.js:593
msgid "Accept"
msgstr ""
-#: templates/js/translated/modals.js:649
+#: templates/js/translated/modals.js:650
msgid "Loading Data"
msgstr ""
-#: templates/js/translated/modals.js:915
+#: templates/js/translated/modals.js:916
msgid "Invalid response from server"
msgstr ""
-#: templates/js/translated/modals.js:915
+#: templates/js/translated/modals.js:916
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/translated/modals.js:927
+#: templates/js/translated/modals.js:928
msgid "Error posting form data"
msgstr ""
-#: templates/js/translated/modals.js:1024
+#: templates/js/translated/modals.js:1025
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/translated/modals.js:1039
+#: templates/js/translated/modals.js:1040
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/translated/modals.js:1040
+#: templates/js/translated/modals.js:1041
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/translated/modals.js:1063
+#: templates/js/translated/modals.js:1064
msgid "Error requesting form data"
msgstr ""
@@ -7512,176 +7840,245 @@ msgstr ""
msgid "Order ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:256
+#: templates/js/translated/model_renderers.js:253
+msgid "Shipment ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:273
msgid "Category ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:293
+#: templates/js/translated/model_renderers.js:310
msgid "Manufacturer Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:322
+#: templates/js/translated/model_renderers.js:339
msgid "Supplier Part ID"
msgstr ""
-#: templates/js/translated/order.js:48
+#: templates/js/translated/order.js:75
+msgid "No stock items have been allocated to this shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:80
+msgid "The following stock items will be shipped"
+msgstr ""
+
+#: templates/js/translated/order.js:120
+msgid "Complete Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:126
+msgid "Confirm Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:181
+msgid "Create New Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:206
msgid "Add Customer"
msgstr ""
-#: templates/js/translated/order.js:73
+#: templates/js/translated/order.js:231
msgid "Create Sales Order"
msgstr ""
-#: templates/js/translated/order.js:208
+#: templates/js/translated/order.js:366
msgid "Export Order"
msgstr ""
-#: templates/js/translated/order.js:211 templates/js/translated/stock.js:505
+#: templates/js/translated/order.js:369 templates/js/translated/stock.js:509
msgid "Format"
msgstr ""
-#: templates/js/translated/order.js:212 templates/js/translated/stock.js:506
+#: templates/js/translated/order.js:370 templates/js/translated/stock.js:510
msgid "Select file format"
msgstr ""
-#: templates/js/translated/order.js:300
+#: templates/js/translated/order.js:460
msgid "Select Line Items"
msgstr ""
-#: templates/js/translated/order.js:301
+#: templates/js/translated/order.js:461
msgid "At least one line item must be selected"
msgstr ""
-#: templates/js/translated/order.js:326
+#: templates/js/translated/order.js:486
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:360 templates/js/translated/stock.js:1755
+#: templates/js/translated/order.js:520 templates/js/translated/stock.js:1930
msgid "Stock Status"
msgstr ""
-#: templates/js/translated/order.js:427
+#: templates/js/translated/order.js:587
msgid "Order Code"
msgstr ""
-#: templates/js/translated/order.js:428
+#: templates/js/translated/order.js:588
msgid "Ordered"
msgstr ""
-#: templates/js/translated/order.js:430
+#: templates/js/translated/order.js:590
msgid "Receive"
msgstr ""
-#: templates/js/translated/order.js:449
+#: templates/js/translated/order.js:609
msgid "Confirm receipt of items"
msgstr ""
-#: templates/js/translated/order.js:450
+#: templates/js/translated/order.js:610
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:627 templates/js/translated/part.js:746
+#: templates/js/translated/order.js:790 templates/js/translated/part.js:746
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:659 templates/js/translated/order.js:1062
+#: templates/js/translated/order.js:815 templates/js/translated/order.js:1230
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:771 templates/js/translated/order.js:1645
+#: templates/js/translated/order.js:936 templates/js/translated/order.js:2356
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:783 templates/js/translated/order.js:1656
+#: templates/js/translated/order.js:948 templates/js/translated/order.js:2367
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/order.js:822
+#: templates/js/translated/order.js:987
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:849 templates/js/translated/order.js:1466
+#: templates/js/translated/order.js:1014 templates/js/translated/order.js:2138
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:903 templates/js/translated/order.js:1491
+#: templates/js/translated/order.js:1068 templates/js/translated/order.js:2163
#: templates/js/translated/part.js:1775 templates/js/translated/part.js:1986
msgid "Unit Price"
msgstr ""
-#: templates/js/translated/order.js:918 templates/js/translated/order.js:1507
+#: templates/js/translated/order.js:1083 templates/js/translated/order.js:2179
msgid "Total Price"
msgstr ""
-#: templates/js/translated/order.js:996 templates/js/translated/order.js:1616
+#: templates/js/translated/order.js:1161 templates/js/translated/order.js:2313
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:997
+#: templates/js/translated/order.js:1162 templates/js/translated/order.js:2317
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:1001 templates/js/translated/part.js:878
+#: templates/js/translated/order.js:1166 templates/js/translated/part.js:878
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:1038
+#: templates/js/translated/order.js:1206
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:1076
+#: templates/js/translated/order.js:1244
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:1154
+#: templates/js/translated/order.js:1322
+msgid "Edit shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1325
+msgid "Complete shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1330
+msgid "Delete shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1350
+msgid "Edit Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1367
+msgid "Delete Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1401
+msgid "No matching shipments found"
+msgstr ""
+
+#: templates/js/translated/order.js:1411
+msgid "Shipment Reference"
+msgstr ""
+
+#: templates/js/translated/order.js:1435
+msgid "Not shipped"
+msgstr ""
+
+#: templates/js/translated/order.js:1441
+msgid "Tracking"
+msgstr ""
+
+#: templates/js/translated/order.js:1601
+msgid "Allocate Stock Items to Sales Order"
+msgstr ""
+
+#: templates/js/translated/order.js:1809
msgid "No sales order allocations found"
msgstr ""
-#: templates/js/translated/order.js:1247
+#: templates/js/translated/order.js:1898
msgid "Edit Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1264
+#: templates/js/translated/order.js:1915
msgid "Confirm Delete Operation"
msgstr "Silme İşlemini Onayla"
-#: templates/js/translated/order.js:1265
+#: templates/js/translated/order.js:1916
msgid "Delete Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1307
+#: templates/js/translated/order.js:1959 templates/js/translated/order.js:2048
+#: templates/js/translated/stock.js:1249
+msgid "Shipped to customer"
+msgstr ""
+
+#: templates/js/translated/order.js:1967 templates/js/translated/order.js:2057
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:1556
-msgid "Fulfilled"
-msgstr ""
-
-#: templates/js/translated/order.js:1600
+#: templates/js/translated/order.js:2297
msgid "Allocate serial numbers"
msgstr "Seri numaralarını tahsis et"
-#: templates/js/translated/order.js:1606
+#: templates/js/translated/order.js:2303
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:1613 templates/js/translated/order.js:1792
+#: templates/js/translated/order.js:2310 templates/js/translated/order.js:2476
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:1617
-msgid "Delete line item "
+#: templates/js/translated/order.js:2321
+msgid "Cannot be deleted as items have been shipped"
msgstr ""
-#: templates/js/translated/order.js:1740
-msgid "Allocate Stock Item"
+#: templates/js/translated/order.js:2324
+msgid "Cannot be deleted as items have been allocated"
msgstr ""
-#: templates/js/translated/order.js:1800
+#: templates/js/translated/order.js:2382
+msgid "Allocate Serial Numbers"
+msgstr "Seri Numaralarını Tahsis Et"
+
+#: templates/js/translated/order.js:2484
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:1814
+#: templates/js/translated/order.js:2498
msgid "No matching line items"
msgstr ""
@@ -7826,12 +8223,12 @@ msgid "No category"
msgstr ""
#: templates/js/translated/part.js:1230
-#: templates/js/translated/table_filters.js:381
+#: templates/js/translated/table_filters.js:412
msgid "Low stock"
msgstr ""
#: templates/js/translated/part.js:1321 templates/js/translated/part.js:1493
-#: templates/js/translated/stock.js:1914
+#: templates/js/translated/stock.js:2089
msgid "Display as list"
msgstr ""
@@ -7839,7 +8236,7 @@ msgstr ""
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1512 templates/js/translated/stock.js:1933
+#: templates/js/translated/part.js:1512 templates/js/translated/stock.js:2108
msgid "Display as tree"
msgstr ""
@@ -7847,7 +8244,7 @@ msgstr ""
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:1590 templates/js/translated/stock.js:1977
+#: templates/js/translated/part.js:1590 templates/js/translated/stock.js:2152
msgid "Path"
msgstr ""
@@ -7855,11 +8252,11 @@ msgstr ""
msgid "No test templates matching query"
msgstr "Sorgu ile eşleşen test şablonu bulunamadı"
-#: templates/js/translated/part.js:1685 templates/js/translated/stock.js:898
+#: templates/js/translated/part.js:1685 templates/js/translated/stock.js:1055
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1686 templates/js/translated/stock.js:899
+#: templates/js/translated/part.js:1686 templates/js/translated/stock.js:1056
msgid "Delete test result"
msgstr ""
@@ -7898,6 +8295,10 @@ msgstr ""
msgid "Single Price Difference"
msgstr ""
+#: templates/js/translated/plugin.js:22
+msgid "The Plugin was installed"
+msgstr ""
+
#: templates/js/translated/report.js:67
msgid "items selected"
msgstr ""
@@ -7964,300 +8365,316 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/stock.js:71
+#: templates/js/translated/stock.js:72
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:89 templates/js/translated/stock.js:168
+#: templates/js/translated/stock.js:90 templates/js/translated/stock.js:172
msgid "Next available serial number"
msgstr ""
-#: templates/js/translated/stock.js:91 templates/js/translated/stock.js:170
+#: templates/js/translated/stock.js:92 templates/js/translated/stock.js:174
msgid "Latest serial number"
msgstr ""
-#: templates/js/translated/stock.js:105
+#: templates/js/translated/stock.js:100
+msgid "Confirm Stock Serialization"
+msgstr ""
+
+#: templates/js/translated/stock.js:109
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:141
+#: templates/js/translated/stock.js:145
msgid "New Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:181
+#: templates/js/translated/stock.js:185
msgid "This part cannot be serialized"
msgstr ""
-#: templates/js/translated/stock.js:220
+#: templates/js/translated/stock.js:224
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: templates/js/translated/stock.js:226
+#: templates/js/translated/stock.js:230
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: templates/js/translated/stock.js:369
+#: templates/js/translated/stock.js:373
msgid "Created new stock item"
msgstr ""
-#: templates/js/translated/stock.js:382
+#: templates/js/translated/stock.js:386
msgid "Created multiple stock items"
msgstr ""
-#: templates/js/translated/stock.js:407
+#: templates/js/translated/stock.js:411
msgid "Find Serial Number"
msgstr ""
-#: templates/js/translated/stock.js:411 templates/js/translated/stock.js:412
+#: templates/js/translated/stock.js:415 templates/js/translated/stock.js:416
msgid "Enter serial number"
msgstr ""
-#: templates/js/translated/stock.js:428
+#: templates/js/translated/stock.js:432
msgid "Enter a serial number"
msgstr ""
-#: templates/js/translated/stock.js:448
+#: templates/js/translated/stock.js:452
msgid "No matching serial number"
msgstr ""
-#: templates/js/translated/stock.js:457
+#: templates/js/translated/stock.js:461
msgid "More than one matching result found"
msgstr ""
-#: templates/js/translated/stock.js:502
+#: templates/js/translated/stock.js:506
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:513
+#: templates/js/translated/stock.js:517
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:514
+#: templates/js/translated/stock.js:518
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:556
+#: templates/js/translated/stock.js:627
+msgid "Confirm stock assignment"
+msgstr ""
+
+#: templates/js/translated/stock.js:628
+msgid "Assign Stock to Customer"
+msgstr ""
+
+#: templates/js/translated/stock.js:713
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:557
+#: templates/js/translated/stock.js:714
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:563
+#: templates/js/translated/stock.js:720
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:564
+#: templates/js/translated/stock.js:721
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:568
+#: templates/js/translated/stock.js:725
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:569
+#: templates/js/translated/stock.js:726
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:573
+#: templates/js/translated/stock.js:730
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:574 users/models.py:200
+#: templates/js/translated/stock.js:731 users/models.py:202
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:578 templates/stock_table.html:56
+#: templates/js/translated/stock.js:735 templates/stock_table.html:57
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:667
+#: templates/js/translated/stock.js:824
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:667
+#: templates/js/translated/stock.js:824
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:707
+#: templates/js/translated/stock.js:864
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:865
+#: templates/js/translated/stock.js:1022
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:867
+#: templates/js/translated/stock.js:1024
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:872
+#: templates/js/translated/stock.js:1029
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:894
+#: templates/js/translated/stock.js:1051
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:920
+#: templates/js/translated/stock.js:1077
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:977
+#: templates/js/translated/stock.js:1134
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:1084
+#: templates/js/translated/stock.js:1241
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:1088
+#: templates/js/translated/stock.js:1245
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:1092
-msgid "Shipped to customer"
-msgstr ""
-
-#: templates/js/translated/stock.js:1096
+#: templates/js/translated/stock.js:1253
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:1102
+#: templates/js/translated/stock.js:1259
msgid "No stock location set"
msgstr "Stok konumu ayarlanmadı"
-#: templates/js/translated/stock.js:1260
+#: templates/js/translated/stock.js:1417
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1265
+#: templates/js/translated/stock.js:1422
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1268
+#: templates/js/translated/stock.js:1425
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1272
+#: templates/js/translated/stock.js:1429
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1274
+#: templates/js/translated/stock.js:1431
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1278
-msgid "Stock item has been allocated"
+#: templates/js/translated/stock.js:1437
+msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1282
+#: templates/js/translated/stock.js:1439
+msgid "Stock item has been fully allocated"
+msgstr ""
+
+#: templates/js/translated/stock.js:1441
+msgid "Stock item has been partially allocated"
+msgstr ""
+
+#: templates/js/translated/stock.js:1446
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1289
+#: templates/js/translated/stock.js:1453
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1291
+#: templates/js/translated/stock.js:1455
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1293
+#: templates/js/translated/stock.js:1457
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1297
-#: templates/js/translated/table_filters.js:183
+#: templates/js/translated/stock.js:1461
+#: templates/js/translated/table_filters.js:188
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1347
+#: templates/js/translated/stock.js:1511
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1420
+#: templates/js/translated/stock.js:1584
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1458
+#: templates/js/translated/stock.js:1622
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1479 templates/js/translated/stock.js:1527
+#: templates/js/translated/stock.js:1643 templates/js/translated/stock.js:1691
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1567
+#: templates/js/translated/stock.js:1731
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1594
+#: templates/js/translated/stock.js:1758
msgid "locations"
msgstr "konumlar"
-#: templates/js/translated/stock.js:1596
+#: templates/js/translated/stock.js:1760
msgid "Undefined location"
msgstr "Tanımsız konum"
-#: templates/js/translated/stock.js:1770
+#: templates/js/translated/stock.js:1945
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:1784
+#: templates/js/translated/stock.js:1959
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:1785
+#: templates/js/translated/stock.js:1960
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:2009
+#: templates/js/translated/stock.js:2184
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:2031
+#: templates/js/translated/stock.js:2206
msgid "Details"
msgstr "Detaylar"
-#: templates/js/translated/stock.js:2056
+#: templates/js/translated/stock.js:2231
msgid "Location no longer exists"
msgstr "Konum artık yok"
-#: templates/js/translated/stock.js:2075
+#: templates/js/translated/stock.js:2250
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2094
+#: templates/js/translated/stock.js:2269
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2112
+#: templates/js/translated/stock.js:2287
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2135
+#: templates/js/translated/stock.js:2310
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2143
+#: templates/js/translated/stock.js:2318
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2184
+#: templates/js/translated/stock.js:2359
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2185
+#: templates/js/translated/stock.js:2360
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2236
+#: templates/js/translated/stock.js:2411
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2287
+#: templates/js/translated/stock.js:2462
msgid "Uninstall Stock Item"
msgstr ""
@@ -8278,7 +8695,7 @@ msgid "Allow Variant Stock"
msgstr "Çeşit Stokuna İzin Ver"
#: templates/js/translated/table_filters.js:110
-#: templates/js/translated/table_filters.js:178
+#: templates/js/translated/table_filters.js:183
msgid "Include sublocations"
msgstr "Alt konumları dahil et"
@@ -8288,54 +8705,54 @@ msgstr "Konumları dahil et"
#: templates/js/translated/table_filters.js:121
#: templates/js/translated/table_filters.js:122
-#: templates/js/translated/table_filters.js:358
+#: templates/js/translated/table_filters.js:389
msgid "Include subcategories"
msgstr ""
#: templates/js/translated/table_filters.js:126
-#: templates/js/translated/table_filters.js:393
+#: templates/js/translated/table_filters.js:424
msgid "Subscribed"
msgstr ""
#: templates/js/translated/table_filters.js:136
-#: templates/js/translated/table_filters.js:213
+#: templates/js/translated/table_filters.js:218
msgid "Is Serialized"
msgstr "Seri Numaralı"
#: templates/js/translated/table_filters.js:139
-#: templates/js/translated/table_filters.js:220
+#: templates/js/translated/table_filters.js:225
msgid "Serial number GTE"
msgstr "Seri numarası BvE"
#: templates/js/translated/table_filters.js:140
-#: templates/js/translated/table_filters.js:221
+#: templates/js/translated/table_filters.js:226
msgid "Serial number greater than or equal to"
msgstr "Seri numarası büyük veya eşit"
#: templates/js/translated/table_filters.js:143
-#: templates/js/translated/table_filters.js:224
+#: templates/js/translated/table_filters.js:229
msgid "Serial number LTE"
msgstr "Seri numarası KvE"
#: templates/js/translated/table_filters.js:144
-#: templates/js/translated/table_filters.js:225
+#: templates/js/translated/table_filters.js:230
msgid "Serial number less than or equal to"
msgstr "Seri numarası küçük veya eşit"
#: templates/js/translated/table_filters.js:147
#: templates/js/translated/table_filters.js:148
-#: templates/js/translated/table_filters.js:216
-#: templates/js/translated/table_filters.js:217
+#: templates/js/translated/table_filters.js:221
+#: templates/js/translated/table_filters.js:222
msgid "Serial number"
msgstr "Seri numarası"
#: templates/js/translated/table_filters.js:152
-#: templates/js/translated/table_filters.js:234
+#: templates/js/translated/table_filters.js:239
msgid "Batch code"
msgstr ""
#: templates/js/translated/table_filters.js:163
-#: templates/js/translated/table_filters.js:348
+#: templates/js/translated/table_filters.js:379
msgid "Active parts"
msgstr ""
@@ -8356,101 +8773,111 @@ msgid "Item has been allocated"
msgstr ""
#: templates/js/translated/table_filters.js:179
+msgid "Stock is available for use"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:184
msgid "Include stock in sublocations"
msgstr "Alt konumlardaki stoku dahil et"
-#: templates/js/translated/table_filters.js:184
+#: templates/js/translated/table_filters.js:189
msgid "Show stock items which are depleted"
msgstr ""
-#: templates/js/translated/table_filters.js:189
+#: templates/js/translated/table_filters.js:194
msgid "Show items which are in stock"
msgstr ""
-#: templates/js/translated/table_filters.js:193
+#: templates/js/translated/table_filters.js:198
msgid "In Production"
msgstr ""
-#: templates/js/translated/table_filters.js:194
+#: templates/js/translated/table_filters.js:199
msgid "Show items which are in production"
msgstr ""
-#: templates/js/translated/table_filters.js:198
+#: templates/js/translated/table_filters.js:203
msgid "Include Variants"
msgstr "Çeşitleri Dahil Et"
-#: templates/js/translated/table_filters.js:199
+#: templates/js/translated/table_filters.js:204
msgid "Include stock items for variant parts"
msgstr "Çeşit parçaların stok kalemlerini dahil et"
-#: templates/js/translated/table_filters.js:203
+#: templates/js/translated/table_filters.js:208
msgid "Installed"
msgstr ""
-#: templates/js/translated/table_filters.js:204
+#: templates/js/translated/table_filters.js:209
msgid "Show stock items which are installed in another item"
msgstr ""
-#: templates/js/translated/table_filters.js:209
+#: templates/js/translated/table_filters.js:214
msgid "Show items which have been assigned to a customer"
msgstr ""
-#: templates/js/translated/table_filters.js:229
-#: templates/js/translated/table_filters.js:230
+#: templates/js/translated/table_filters.js:234
+#: templates/js/translated/table_filters.js:235
msgid "Stock status"
msgstr ""
-#: templates/js/translated/table_filters.js:238
+#: templates/js/translated/table_filters.js:243
msgid "Has purchase price"
msgstr ""
-#: templates/js/translated/table_filters.js:239
+#: templates/js/translated/table_filters.js:244
msgid "Show stock items which have a purchase price set"
msgstr ""
-#: templates/js/translated/table_filters.js:248
+#: templates/js/translated/table_filters.js:253
msgid "Show stock items which have expired"
msgstr ""
-#: templates/js/translated/table_filters.js:254
+#: templates/js/translated/table_filters.js:259
msgid "Show stock which is close to expiring"
msgstr ""
-#: templates/js/translated/table_filters.js:285
+#: templates/js/translated/table_filters.js:290
msgid "Build status"
msgstr ""
-#: templates/js/translated/table_filters.js:313
-#: templates/js/translated/table_filters.js:330
+#: templates/js/translated/table_filters.js:303
+#: templates/js/translated/table_filters.js:344
+msgid "Assigned to me"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:320
+#: templates/js/translated/table_filters.js:331
+#: templates/js/translated/table_filters.js:352
msgid "Order status"
msgstr ""
-#: templates/js/translated/table_filters.js:318
-#: templates/js/translated/table_filters.js:335
+#: templates/js/translated/table_filters.js:336
+#: templates/js/translated/table_filters.js:357
msgid "Outstanding"
msgstr ""
-#: templates/js/translated/table_filters.js:359
+#: templates/js/translated/table_filters.js:390
msgid "Include parts in subcategories"
msgstr "Alt kategorilerdeki parçaları dahil et"
-#: templates/js/translated/table_filters.js:363
+#: templates/js/translated/table_filters.js:394
msgid "Has IPN"
msgstr "DPN Var"
-#: templates/js/translated/table_filters.js:364
+#: templates/js/translated/table_filters.js:395
msgid "Part has internal part number"
msgstr ""
-#: templates/js/translated/table_filters.js:369
+#: templates/js/translated/table_filters.js:400
msgid "Show active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:377
+#: templates/js/translated/table_filters.js:408
msgid "Stock available"
msgstr ""
-#: templates/js/translated/table_filters.js:405
+#: templates/js/translated/table_filters.js:436
msgid "Purchasable"
msgstr ""
@@ -8507,27 +8934,23 @@ msgstr ""
msgid "All"
msgstr ""
-#: templates/navbar.html:40
+#: templates/navbar.html:42
msgid "Buy"
msgstr ""
-#: templates/navbar.html:52
+#: templates/navbar.html:54
msgid "Sell"
msgstr ""
-#: templates/navbar.html:86 users/models.py:39
-msgid "Admin"
-msgstr ""
-
-#: templates/navbar.html:88
+#: templates/navbar.html:113
msgid "Logout"
msgstr ""
-#: templates/navbar.html:90
+#: templates/navbar.html:115
msgid "Login"
msgstr ""
-#: templates/navbar.html:111
+#: templates/navbar.html:136
msgid "About InvenTree"
msgstr ""
@@ -8639,15 +9062,15 @@ msgstr ""
msgid "Order selected items"
msgstr ""
-#: templates/stock_table.html:53
+#: templates/stock_table.html:54
msgid "Change status"
msgstr ""
-#: templates/stock_table.html:53
+#: templates/stock_table.html:54
msgid "Change stock status"
msgstr ""
-#: templates/stock_table.html:56
+#: templates/stock_table.html:57
msgid "Delete selected items"
msgstr ""
@@ -8683,35 +9106,35 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:187
+#: users/models.py:189
msgid "Permission set"
msgstr ""
-#: users/models.py:195
+#: users/models.py:197
msgid "Group"
msgstr ""
-#: users/models.py:198
+#: users/models.py:200
msgid "View"
msgstr ""
-#: users/models.py:198
+#: users/models.py:200
msgid "Permission to view items"
msgstr ""
-#: users/models.py:200
+#: users/models.py:202
msgid "Permission to add items"
msgstr ""
-#: users/models.py:202
+#: users/models.py:204
msgid "Change"
msgstr ""
-#: users/models.py:202
+#: users/models.py:204
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:204
+#: users/models.py:206
msgid "Permission to delete items"
msgstr ""
diff --git a/InvenTree/locale/vi/LC_MESSAGES/django.po b/InvenTree/locale/vi/LC_MESSAGES/django.po
index 8f72d43f63..1f893cff2e 100644
--- a/InvenTree/locale/vi/LC_MESSAGES/django.po
+++ b/InvenTree/locale/vi/LC_MESSAGES/django.po
@@ -1,9 +1,10 @@
+#: templates/js/translated/order.js:1973
msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-12-03 10:37+0000\n"
-"PO-Revision-Date: 2021-12-03 11:25\n"
+"POT-Creation-Date: 2021-12-08 23:43+0000\n"
+"PO-Revision-Date: 2021-12-08 23:47\n"
"Last-Translator: \n"
"Language-Team: Vietnamese\n"
"Language: vi_VN\n"
@@ -34,8 +35,8 @@ msgid "Enter date"
msgstr ""
#: InvenTree/forms.py:120 build/forms.py:48 build/forms.py:69 build/forms.py:93
-#: order/forms.py:26 order/forms.py:37 order/forms.py:48 order/forms.py:59
-#: order/forms.py:70 part/forms.py:108 templates/account/email_confirm.html:20
+#: order/forms.py:24 order/forms.py:35 order/forms.py:46 order/forms.py:57
+#: part/forms.py:108 templates/account/email_confirm.html:20
#: templates/js/translated/forms.js:595
msgid "Confirm"
msgstr ""
@@ -85,8 +86,8 @@ msgstr ""
msgid "Duplicate serial: {n}"
msgstr ""
-#: InvenTree/helpers.py:437 order/models.py:318 order/models.py:440
-#: stock/views.py:1264
+#: InvenTree/helpers.py:437 order/models.py:279 order/models.py:420
+#: stock/views.py:1231
msgid "Invalid quantity provided"
msgstr ""
@@ -122,7 +123,7 @@ msgstr ""
msgid "Missing external link"
msgstr ""
-#: InvenTree/models.py:132 stock/models.py:1864
+#: InvenTree/models.py:132 stock/models.py:1852
#: templates/js/translated/attachment.js:117
msgid "Attachment"
msgstr ""
@@ -132,7 +133,7 @@ msgid "Select file to attach"
msgstr ""
#: InvenTree/models.py:139 company/models.py:131 company/models.py:348
-#: company/models.py:564 order/models.py:163 part/models.py:797
+#: company/models.py:564 order/models.py:124 part/models.py:797
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:537
#: templates/js/translated/company.js:826 templates/js/translated/part.js:1258
@@ -140,7 +141,7 @@ msgid "Link"
msgstr ""
#: InvenTree/models.py:140 build/models.py:330 part/models.py:798
-#: stock/models.py:530
+#: stock/models.py:524
msgid "Link to external URL"
msgstr ""
@@ -152,10 +153,10 @@ msgstr "Bình luận"
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1185
-#: common/models.py:1186 part/models.py:2205 part/models.py:2225
+#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1213
+#: common/models.py:1214 part/models.py:2205 part/models.py:2225
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2166
+#: templates/js/translated/stock.js:2341
msgid "User"
msgstr "Người dùng"
@@ -194,10 +195,15 @@ msgstr ""
#: InvenTree/models.py:277 InvenTree/models.py:278 company/models.py:415
#: label/models.py:112 part/models.py:741 part/models.py:2389
-#: report/models.py:181 templates/InvenTree/settings/settings.html:259
+#: plugin/models.py:39 report/models.py:181
+#: templates/InvenTree/settings/mixins/urls.html:11
+#: templates/InvenTree/settings/plugin.html:47
+#: templates/InvenTree/settings/plugin.html:124
+#: templates/InvenTree/settings/plugin_settings.html:23
+#: templates/InvenTree/settings/settings.html:268
#: templates/js/translated/company.js:638 templates/js/translated/part.js:506
#: templates/js/translated/part.js:643 templates/js/translated/part.js:1565
-#: templates/js/translated/stock.js:1959
+#: templates/js/translated/stock.js:2134
msgid "Name"
msgstr ""
@@ -206,22 +212,23 @@ msgstr ""
#: company/models.py:570 company/templates/company/company_base.html:68
#: company/templates/company/manufacturer_part.html:76
#: company/templates/company/supplier_part.html:73 label/models.py:119
-#: order/models.py:161 part/models.py:764 part/templates/part/category.html:70
+#: order/models.py:122 part/models.py:764 part/templates/part/category.html:70
#: part/templates/part/part_base.html:163
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:553 report/models.py:592
#: report/templates/report/inventree_build_order_base.html:118
-#: stock/templates/stock/location.html:89 templates/js/translated/bom.js:215
-#: templates/js/translated/bom.js:428 templates/js/translated/build.js:1621
-#: templates/js/translated/company.js:345
+#: stock/templates/stock/location.html:89
+#: templates/InvenTree/settings/plugin_settings.html:33
+#: templates/js/translated/bom.js:215 templates/js/translated/bom.js:428
+#: templates/js/translated/build.js:1627 templates/js/translated/company.js:345
#: templates/js/translated/company.js:548
-#: templates/js/translated/company.js:837 templates/js/translated/order.js:680
-#: templates/js/translated/order.js:854 templates/js/translated/order.js:1090
+#: templates/js/translated/company.js:837 templates/js/translated/order.js:836
+#: templates/js/translated/order.js:1019 templates/js/translated/order.js:1258
#: templates/js/translated/part.js:565 templates/js/translated/part.js:933
#: templates/js/translated/part.js:1018 templates/js/translated/part.js:1188
#: templates/js/translated/part.js:1584 templates/js/translated/part.js:1653
-#: templates/js/translated/stock.js:1233 templates/js/translated/stock.js:1971
-#: templates/js/translated/stock.js:2016
+#: templates/js/translated/stock.js:1390 templates/js/translated/stock.js:2146
+#: templates/js/translated/stock.js:2191
msgid "Description"
msgstr "Mô tả"
@@ -241,83 +248,83 @@ msgstr ""
msgid "Filename"
msgstr "Tên tập tin"
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:689
msgid "German"
msgstr ""
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:690
msgid "Greek"
msgstr ""
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:691
msgid "English"
msgstr ""
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:692
msgid "Spanish"
msgstr ""
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:693
msgid "Spanish (Mexican)"
msgstr ""
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:694
msgid "French"
msgstr ""
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:695
msgid "Hebrew"
msgstr ""
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:696
msgid "Italian"
msgstr ""
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:697
msgid "Japanese"
msgstr ""
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:698
msgid "Korean"
msgstr ""
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:699
msgid "Dutch"
msgstr ""
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:700
msgid "Norwegian"
msgstr ""
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:701
msgid "Polish"
msgstr ""
-#: InvenTree/settings.py:683
+#: InvenTree/settings.py:702
msgid "Portugese"
msgstr ""
-#: InvenTree/settings.py:684
+#: InvenTree/settings.py:703
msgid "Russian"
msgstr ""
-#: InvenTree/settings.py:685
+#: InvenTree/settings.py:704
msgid "Swedish"
msgstr ""
-#: InvenTree/settings.py:686
+#: InvenTree/settings.py:705
msgid "Thai"
msgstr ""
-#: InvenTree/settings.py:687
+#: InvenTree/settings.py:706
msgid "Turkish"
msgstr ""
-#: InvenTree/settings.py:688
+#: InvenTree/settings.py:707
msgid "Vietnamese"
msgstr ""
-#: InvenTree/settings.py:689
+#: InvenTree/settings.py:708
msgid "Chinese"
msgstr ""
@@ -334,7 +341,7 @@ msgid "InvenTree system health checks failed"
msgstr ""
#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142
-#: InvenTree/status_codes.py:311
+#: InvenTree/status_codes.py:311 templates/js/translated/table_filters.js:313
msgid "Pending"
msgstr ""
@@ -343,6 +350,8 @@ msgid "Placed"
msgstr ""
#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:314
+#: order/templates/order/order_base.html:128
+#: order/templates/order/sales_order_base.html:132
msgid "Complete"
msgstr ""
@@ -361,8 +370,8 @@ msgstr ""
msgid "Returned"
msgstr ""
-#: InvenTree/status_codes.py:143
-#: order/templates/order/sales_order_base.html:148
+#: InvenTree/status_codes.py:143 order/models.py:939
+#: templates/js/translated/order.js:1980 templates/js/translated/order.js:2255
msgid "Shipped"
msgstr ""
@@ -442,7 +451,7 @@ msgstr ""
msgid "Split child item"
msgstr ""
-#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:208
+#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:213
msgid "Sent to customer"
msgstr ""
@@ -522,55 +531,55 @@ msgstr ""
msgid "Password fields must match"
msgstr ""
-#: InvenTree/views.py:883 templates/navbar.html:101
+#: InvenTree/views.py:883 templates/navbar.html:126
msgid "System Information"
msgstr "Thông tin hệ thống"
-#: barcodes/api.py:53 barcodes/api.py:150
+#: barcodes/api.py:54 barcodes/api.py:151
msgid "Must provide barcode_data parameter"
msgstr ""
-#: barcodes/api.py:126
+#: barcodes/api.py:127
msgid "No match found for barcode data"
msgstr ""
-#: barcodes/api.py:128
+#: barcodes/api.py:129
msgid "Match found for barcode data"
msgstr ""
-#: barcodes/api.py:153
+#: barcodes/api.py:154
msgid "Must provide stockitem parameter"
msgstr ""
-#: barcodes/api.py:160
+#: barcodes/api.py:161
msgid "No matching stock item found"
msgstr ""
-#: barcodes/api.py:190
-msgid "Barcode already matches StockItem object"
+#: barcodes/api.py:191
+msgid "Barcode already matches Stock Item"
msgstr ""
-#: barcodes/api.py:194
-msgid "Barcode already matches StockLocation object"
+#: barcodes/api.py:195
+msgid "Barcode already matches Stock Location"
msgstr ""
-#: barcodes/api.py:198
-msgid "Barcode already matches Part object"
+#: barcodes/api.py:199
+msgid "Barcode already matches Part"
msgstr ""
-#: barcodes/api.py:204 barcodes/api.py:216
-msgid "Barcode hash already matches StockItem object"
+#: barcodes/api.py:205 barcodes/api.py:217
+msgid "Barcode hash already matches Stock Item"
msgstr ""
-#: barcodes/api.py:222
-msgid "Barcode associated with StockItem"
+#: barcodes/api.py:223
+msgid "Barcode associated with Stock Item"
msgstr ""
#: build/forms.py:36 build/models.py:1283
#: build/templates/build/build_base.html:132
-#: build/templates/build/detail.html:35 common/models.py:1225
+#: build/templates/build/detail.html:35 common/models.py:1253
#: company/forms.py:42 company/templates/company/supplier_part.html:251
-#: order/forms.py:102 order/models.py:729 order/models.py:991
+#: order/models.py:794 order/models.py:1205 order/serializers.py:810
#: order/templates/order/order_wizard/match_parts.html:30
#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:223
#: part/forms.py:239 part/forms.py:255 part/models.py:2576
@@ -582,20 +591,23 @@ msgstr ""
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:81
#: report/templates/report/inventree_test_report_base.html:139
-#: stock/forms.py:156 stock/serializers.py:291
+#: stock/forms.py:142 stock/serializers.py:293
#: stock/templates/stock/item_base.html:174
+#: stock/templates/stock/item_base.html:255
+#: stock/templates/stock/item_base.html:263
#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443
-#: templates/js/translated/build.js:235 templates/js/translated/build.js:435
-#: templates/js/translated/build.js:629 templates/js/translated/build.js:639
-#: templates/js/translated/build.js:1015 templates/js/translated/build.js:1362
+#: templates/js/translated/build.js:240 templates/js/translated/build.js:440
+#: templates/js/translated/build.js:634 templates/js/translated/build.js:644
+#: templates/js/translated/build.js:1020 templates/js/translated/build.js:1367
#: templates/js/translated/model_renderers.js:99
-#: templates/js/translated/order.js:891 templates/js/translated/order.js:1204
-#: templates/js/translated/order.js:1282 templates/js/translated/order.js:1289
-#: templates/js/translated/order.js:1378 templates/js/translated/order.js:1478
-#: templates/js/translated/part.js:843 templates/js/translated/part.js:1796
-#: templates/js/translated/part.js:1919 templates/js/translated/part.js:1997
-#: templates/js/translated/stock.js:378 templates/js/translated/stock.js:2151
-#: templates/js/translated/stock.js:2253
+#: templates/js/translated/order.js:101 templates/js/translated/order.js:1056
+#: templates/js/translated/order.js:1578 templates/js/translated/order.js:1859
+#: templates/js/translated/order.js:1947 templates/js/translated/order.js:2036
+#: templates/js/translated/order.js:2150 templates/js/translated/part.js:843
+#: templates/js/translated/part.js:1796 templates/js/translated/part.js:1919
+#: templates/js/translated/part.js:1997 templates/js/translated/stock.js:382
+#: templates/js/translated/stock.js:579 templates/js/translated/stock.js:2326
+#: templates/js/translated/stock.js:2428
msgid "Quantity"
msgstr ""
@@ -603,9 +615,9 @@ msgstr ""
msgid "Enter quantity for build output"
msgstr ""
-#: build/forms.py:41 order/forms.py:96 stock/forms.py:95
-#: stock/serializers.py:312 templates/js/translated/stock.js:225
-#: templates/js/translated/stock.js:379
+#: build/forms.py:41 order/serializers.py:814 stock/forms.py:81
+#: stock/serializers.py:314 templates/js/translated/stock.js:229
+#: templates/js/translated/stock.js:383
msgid "Serial Numbers"
msgstr ""
@@ -640,17 +652,17 @@ msgstr ""
#: build/models.py:137 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:397
+#: templates/js/translated/build.js:402
msgid "Build Order"
msgstr "Tạo đơn hàng"
#: build/models.py:138 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
-#: order/templates/order/sales_order_detail.html:42
-#: order/templates/order/so_sidebar.html:7
+#: order/templates/order/sales_order_detail.html:92
+#: order/templates/order/so_sidebar.html:13
#: part/templates/part/part_sidebar.html:20 templates/InvenTree/index.html:221
#: templates/InvenTree/search.html:145
-#: templates/InvenTree/settings/sidebar.html:42 users/models.py:44
+#: templates/InvenTree/settings/sidebar.html:43 users/models.py:44
msgid "Build Orders"
msgstr "Tạo đơn hàng"
@@ -658,13 +670,13 @@ msgstr "Tạo đơn hàng"
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:199 order/models.py:249 order/models.py:556
-#: order/models.py:736 part/models.py:2585
+#: build/models.py:199 order/models.py:210 order/models.py:536
+#: order/models.py:801 part/models.py:2585
#: part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1119
-#: templates/js/translated/order.js:885 templates/js/translated/order.js:1472
+#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1124
+#: templates/js/translated/order.js:1050 templates/js/translated/order.js:2144
msgid "Reference"
msgstr ""
@@ -683,7 +695,7 @@ msgstr ""
#: build/models.py:225 build/templates/build/build_base.html:77
#: build/templates/build/detail.html:30 company/models.py:705
-#: order/models.py:789 order/models.py:860
+#: order/models.py:854 order/models.py:928
#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357
#: part/models.py:2151 part/models.py:2167 part/models.py:2186
#: part/models.py:2203 part/models.py:2305 part/models.py:2427
@@ -698,14 +710,16 @@ msgstr ""
#: templates/email/build_order_required_stock.html:17
#: templates/email/low_stock_notification.html:16
#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:214
-#: templates/js/translated/bom.js:393 templates/js/translated/build.js:620
-#: templates/js/translated/build.js:988 templates/js/translated/build.js:1359
-#: templates/js/translated/build.js:1626 templates/js/translated/company.js:489
-#: templates/js/translated/company.js:746 templates/js/translated/order.js:426
-#: templates/js/translated/order.js:839 templates/js/translated/order.js:1456
-#: templates/js/translated/part.js:918 templates/js/translated/part.js:999
-#: templates/js/translated/part.js:1166 templates/js/translated/stock.js:590
-#: templates/js/translated/stock.js:1190 templates/js/translated/stock.js:2241
+#: templates/js/translated/bom.js:393 templates/js/translated/build.js:625
+#: templates/js/translated/build.js:993 templates/js/translated/build.js:1364
+#: templates/js/translated/build.js:1632 templates/js/translated/company.js:489
+#: templates/js/translated/company.js:746 templates/js/translated/order.js:84
+#: templates/js/translated/order.js:586 templates/js/translated/order.js:1004
+#: templates/js/translated/order.js:1576 templates/js/translated/order.js:1933
+#: templates/js/translated/order.js:2128 templates/js/translated/part.js:918
+#: templates/js/translated/part.js:999 templates/js/translated/part.js:1166
+#: templates/js/translated/stock.js:553 templates/js/translated/stock.js:747
+#: templates/js/translated/stock.js:1347 templates/js/translated/stock.js:2416
msgid "Part"
msgstr "Nguyên liệu"
@@ -721,7 +735,8 @@ msgstr ""
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:247 templates/js/translated/build.js:1347
+#: build/models.py:247 templates/js/translated/build.js:1352
+#: templates/js/translated/order.js:1564
msgid "Source Location"
msgstr ""
@@ -761,7 +776,7 @@ msgstr ""
msgid "Build status code"
msgstr ""
-#: build/models.py:285 stock/models.py:534
+#: build/models.py:285 stock/models.py:528
msgid "Batch Code"
msgstr ""
@@ -769,12 +784,12 @@ msgstr ""
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:292 order/models.py:165 part/models.py:936
-#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1103
+#: build/models.py:292 order/models.py:126 part/models.py:936
+#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1271
msgid "Creation Date"
msgstr ""
-#: build/models.py:296 order/models.py:578
+#: build/models.py:296 order/models.py:558
msgid "Target completion date"
msgstr ""
@@ -782,8 +797,8 @@ msgstr ""
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/models.py:300 order/models.py:291
-#: templates/js/translated/build.js:1697
+#: build/models.py:300 order/models.py:252
+#: templates/js/translated/build.js:1703
msgid "Completion Date"
msgstr "Ngày hoàn thành"
@@ -791,7 +806,7 @@ msgstr "Ngày hoàn thành"
msgid "completed by"
msgstr ""
-#: build/models.py:314 templates/js/translated/build.js:1668
+#: build/models.py:314 templates/js/translated/build.js:1674
msgid "Issued by"
msgstr ""
@@ -800,11 +815,11 @@ msgid "User who issued this build order"
msgstr ""
#: build/models.py:323 build/templates/build/build_base.html:185
-#: build/templates/build/detail.html:116 order/models.py:179
-#: order/templates/order/order_base.html:158
-#: order/templates/order/sales_order_base.html:162 part/models.py:940
+#: build/templates/build/detail.html:116 order/models.py:140
+#: order/templates/order/order_base.html:170
+#: order/templates/order/sales_order_base.html:182 part/models.py:940
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:1680 templates/js/translated/order.js:699
+#: templates/js/translated/build.js:1686 templates/js/translated/order.js:864
msgid "Responsible"
msgstr ""
@@ -815,7 +830,7 @@ msgstr ""
#: build/models.py:329 build/templates/build/detail.html:102
#: company/templates/company/manufacturer_part.html:102
#: company/templates/company/supplier_part.html:126
-#: part/templates/part/part_base.html:354 stock/models.py:528
+#: part/templates/part/part_base.html:354 stock/models.py:522
#: stock/templates/stock/item_base.html:374
msgid "External Link"
msgstr ""
@@ -823,18 +838,19 @@ msgstr ""
#: build/models.py:334 build/serializers.py:201
#: build/templates/build/sidebar.html:21 company/models.py:142
#: company/models.py:577 company/templates/company/sidebar.html:25
-#: order/models.py:183 order/models.py:738
+#: order/models.py:144 order/models.py:803 order/models.py:1049
#: order/templates/order/po_sidebar.html:11
-#: order/templates/order/so_sidebar.html:11 part/models.py:925
+#: order/templates/order/so_sidebar.html:17 part/models.py:925
#: part/templates/part/detail.html:116 part/templates/part/part_sidebar.html:50
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/forms.py:154 stock/forms.py:204 stock/forms.py:238 stock/models.py:600
-#: stock/models.py:1764 stock/models.py:1870 stock/serializers.py:330
-#: stock/serializers.py:588 stock/templates/stock/stock_sidebar.html:21
+#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:594
+#: stock/models.py:1752 stock/models.py:1858 stock/serializers.py:332
+#: stock/serializers.py:624 stock/serializers.py:711
+#: stock/templates/stock/stock_sidebar.html:21
#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599
-#: templates/js/translated/company.js:842 templates/js/translated/order.js:984
-#: templates/js/translated/order.js:1582 templates/js/translated/stock.js:973
-#: templates/js/translated/stock.js:1452
+#: templates/js/translated/company.js:842 templates/js/translated/order.js:1149
+#: templates/js/translated/order.js:1445 templates/js/translated/order.js:2280
+#: templates/js/translated/stock.js:1130 templates/js/translated/stock.js:1616
msgid "Notes"
msgstr ""
@@ -867,7 +883,7 @@ msgstr ""
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1133 order/models.py:964
+#: build/models.py:1133 order/models.py:1165
msgid "Allocation quantity must be greater than zero"
msgstr ""
@@ -880,8 +896,8 @@ msgid "Selected stock item not found in BOM"
msgstr ""
#: build/models.py:1253 stock/templates/stock/item_base.html:346
-#: templates/InvenTree/search.html:143 templates/js/translated/build.js:1599
-#: templates/navbar.html:33
+#: templates/InvenTree/search.html:143 templates/js/translated/build.js:1605
+#: templates/navbar.html:35
msgid "Build"
msgstr ""
@@ -889,14 +905,17 @@ msgstr ""
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1270 build/serializers.py:328
+#: build/models.py:1270 build/serializers.py:328 order/serializers.py:690
+#: order/serializers.py:708 stock/serializers.py:562
#: stock/templates/stock/item_base.html:8
#: stock/templates/stock/item_base.html:16
#: stock/templates/stock/item_base.html:368
-#: templates/js/translated/build.js:408 templates/js/translated/build.js:413
-#: templates/js/translated/build.js:1361 templates/js/translated/build.js:1742
-#: templates/js/translated/order.js:1177 templates/js/translated/order.js:1182
-#: templates/js/translated/stock.js:2102
+#: templates/js/translated/build.js:413 templates/js/translated/build.js:418
+#: templates/js/translated/build.js:1366 templates/js/translated/build.js:1748
+#: templates/js/translated/order.js:85 templates/js/translated/order.js:1577
+#: templates/js/translated/order.js:1832 templates/js/translated/order.js:1837
+#: templates/js/translated/order.js:1940 templates/js/translated/order.js:2030
+#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:2277
msgid "Stock Item"
msgstr ""
@@ -936,16 +955,17 @@ msgstr ""
msgid "This build output is not fully allocated"
msgstr ""
-#: build/serializers.py:190 order/serializers.py:228 order/serializers.py:296
-#: stock/forms.py:236 stock/serializers.py:323 stock/serializers.py:690
+#: build/serializers.py:190 order/serializers.py:226 order/serializers.py:294
+#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:813
#: stock/templates/stock/item_base.html:314
#: templates/js/translated/barcode.js:384
-#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:420
-#: templates/js/translated/build.js:1027 templates/js/translated/order.js:348
-#: templates/js/translated/order.js:1189 templates/js/translated/order.js:1297
-#: templates/js/translated/order.js:1303 templates/js/translated/part.js:177
-#: templates/js/translated/stock.js:592 templates/js/translated/stock.js:1333
-#: templates/js/translated/stock.js:2043
+#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:425
+#: templates/js/translated/build.js:1032 templates/js/translated/order.js:508
+#: templates/js/translated/order.js:1844 templates/js/translated/order.js:1955
+#: templates/js/translated/order.js:1963 templates/js/translated/order.js:2044
+#: templates/js/translated/part.js:177 templates/js/translated/stock.js:555
+#: templates/js/translated/stock.js:749 templates/js/translated/stock.js:1497
+#: templates/js/translated/stock.js:2218
msgid "Location"
msgstr ""
@@ -954,12 +974,12 @@ msgid "Location for completed build outputs"
msgstr ""
#: build/serializers.py:197 build/templates/build/build_base.html:137
-#: build/templates/build/detail.html:63 order/models.py:572
-#: order/serializers.py:249 stock/templates/stock/item_base.html:180
-#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1655
-#: templates/js/translated/order.js:431 templates/js/translated/order.js:1095
-#: templates/js/translated/stock.js:1308 templates/js/translated/stock.js:2120
-#: templates/js/translated/stock.js:2269
+#: build/templates/build/detail.html:63 order/models.py:552
+#: order/serializers.py:247 stock/templates/stock/item_base.html:180
+#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1661
+#: templates/js/translated/order.js:591 templates/js/translated/order.js:840
+#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1472
+#: templates/js/translated/stock.js:2295 templates/js/translated/stock.js:2444
msgid "Status"
msgstr "Trạng thái"
@@ -984,16 +1004,16 @@ msgstr ""
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:334
+#: build/serializers.py:334 stock/serializers.py:569
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:348 order/models.py:316 order/serializers.py:242
-#: stock/models.py:371 stock/models.py:1093 stock/serializers.py:303
+#: build/serializers.py:348 order/models.py:277 order/serializers.py:240
+#: stock/models.py:365 stock/models.py:1081 stock/serializers.py:305
msgid "Quantity must be greater than zero"
msgstr ""
-#: build/serializers.py:390
+#: build/serializers.py:390 order/serializers.py:741
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
@@ -1006,7 +1026,7 @@ msgstr ""
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:431
+#: build/serializers.py:431 order/serializers.py:984
msgid "Allocation items must be provided"
msgstr ""
@@ -1079,11 +1099,11 @@ msgstr ""
#: build/templates/build/build_base.html:146
#: build/templates/build/detail.html:132
-#: order/templates/order/order_base.html:144
-#: order/templates/order/sales_order_base.html:141
+#: order/templates/order/order_base.html:156
+#: order/templates/order/sales_order_base.html:163
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:1692 templates/js/translated/order.js:689
-#: templates/js/translated/order.js:1108
+#: templates/js/translated/build.js:1698 templates/js/translated/order.js:854
+#: templates/js/translated/order.js:1276
msgid "Target Date"
msgstr ""
@@ -1096,28 +1116,28 @@ msgstr ""
#: build/templates/build/build_base.html:196
#: order/templates/order/order_base.html:98
#: order/templates/order/sales_order_base.html:93
-#: templates/js/translated/table_filters.js:294
-#: templates/js/translated/table_filters.js:322
-#: templates/js/translated/table_filters.js:339
+#: templates/js/translated/table_filters.js:299
+#: templates/js/translated/table_filters.js:340
+#: templates/js/translated/table_filters.js:361
msgid "Overdue"
msgstr ""
#: build/templates/build/build_base.html:158
#: build/templates/build/detail.html:68 build/templates/build/detail.html:143
-#: templates/js/translated/build.js:1641
-#: templates/js/translated/table_filters.js:304
+#: order/templates/order/sales_order_base.html:170
+#: templates/js/translated/build.js:1647
+#: templates/js/translated/table_filters.js:370
msgid "Completed"
msgstr "Đã hoàn thành"
#: build/templates/build/build_base.html:171
-#: build/templates/build/detail.html:95 order/models.py:857
-#: order/templates/order/sales_order_base.html:9
+#: build/templates/build/detail.html:95 order/models.py:925
+#: order/models.py:1021 order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
-#: order/templates/order/sales_order_ship.html:25
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:308
-#: templates/js/translated/order.js:1050
+#: templates/js/translated/order.js:1218
msgid "Sales Order"
msgstr ""
@@ -1191,8 +1211,8 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:50 order/models.py:811 stock/forms.py:150
-#: templates/js/translated/order.js:432 templates/js/translated/order.js:973
+#: build/templates/build/detail.html:50 order/models.py:876 stock/forms.py:136
+#: templates/js/translated/order.js:592 templates/js/translated/order.js:1138
msgid "Destination"
msgstr ""
@@ -1200,22 +1220,22 @@ msgstr ""
msgid "Destination location not specified"
msgstr ""
-#: build/templates/build/detail.html:74 templates/js/translated/build.js:647
+#: build/templates/build/detail.html:74 templates/js/translated/build.js:652
msgid "Allocated Parts"
msgstr ""
#: build/templates/build/detail.html:81
#: stock/templates/stock/item_base.html:332
-#: templates/js/translated/stock.js:1322 templates/js/translated/stock.js:2276
+#: templates/js/translated/stock.js:1486 templates/js/translated/stock.js:2451
#: templates/js/translated/table_filters.js:151
-#: templates/js/translated/table_filters.js:233
+#: templates/js/translated/table_filters.js:238
msgid "Batch"
msgstr ""
#: build/templates/build/detail.html:127
-#: order/templates/order/order_base.html:131
-#: order/templates/order/sales_order_base.html:135
-#: templates/js/translated/build.js:1663
+#: order/templates/order/order_base.html:143
+#: order/templates/order/sales_order_base.html:157
+#: templates/js/translated/build.js:1669
msgid "Created"
msgstr ""
@@ -1235,7 +1255,7 @@ msgstr ""
msgid "Allocate Stock to Build"
msgstr ""
-#: build/templates/build/detail.html:177 templates/js/translated/build.js:1202
+#: build/templates/build/detail.html:177 templates/js/translated/build.js:1207
msgid "Unallocate stock"
msgstr ""
@@ -1257,7 +1277,7 @@ msgstr ""
#: build/templates/build/detail.html:185
#: company/templates/company/detail.html:38
-#: company/templates/company/detail.html:85 order/views.py:509
+#: company/templates/company/detail.html:85 order/views.py:463
#: part/templates/part/category.html:173
msgid "Order Parts"
msgstr ""
@@ -1309,8 +1329,8 @@ msgstr ""
#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:60
-#: order/templates/order/sales_order_detail.html:52
-#: order/templates/order/so_sidebar.html:9 part/templates/part/detail.html:193
+#: order/templates/order/sales_order_detail.html:107
+#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:193
#: part/templates/part/part_sidebar.html:48 stock/templates/stock/item.html:95
#: stock/templates/stock/stock_sidebar.html:19
msgid "Attachments"
@@ -1325,8 +1345,8 @@ msgstr ""
#: company/templates/company/detail.html:215
#: order/templates/order/purchase_order_detail.html:80
#: order/templates/order/purchase_order_detail.html:108
-#: order/templates/order/sales_order_detail.html:72
-#: order/templates/order/sales_order_detail.html:99
+#: order/templates/order/sales_order_detail.html:127
+#: order/templates/order/sales_order_detail.html:186
#: part/templates/part/detail.html:120 stock/templates/stock/item.html:115
#: stock/templates/stock/item.html:205
msgid "Edit Notes"
@@ -1384,7 +1404,7 @@ msgstr ""
msgid "Maximum output quantity is "
msgstr ""
-#: build/views.py:122 stock/serializers.py:361 stock/views.py:1290
+#: build/views.py:122 stock/serializers.py:363 stock/views.py:1257
msgid "Serial numbers already exist"
msgstr ""
@@ -1400,7 +1420,7 @@ msgstr ""
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:219 stock/views.py:385
+#: build/views.py:219 stock/views.py:352
msgid "Check the confirmation box"
msgstr ""
@@ -1469,7 +1489,7 @@ msgstr ""
msgid "Select {name} file to upload"
msgstr ""
-#: common/models.py:340 common/models.py:970 common/models.py:1178
+#: common/models.py:340 common/models.py:998 common/models.py:1206
msgid "Settings key (must be unique - case insensitive"
msgstr ""
@@ -1557,7 +1577,7 @@ msgstr ""
msgid "Allow download of remote images and files from external URL"
msgstr ""
-#: common/models.py:649 templates/InvenTree/settings/sidebar.html:30
+#: common/models.py:649 templates/InvenTree/settings/sidebar.html:31
msgid "Barcode Support"
msgstr ""
@@ -1623,7 +1643,7 @@ msgstr ""
#: common/models.py:703 part/models.py:2429 report/models.py:187
#: templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:373
+#: templates/js/translated/table_filters.js:404
msgid "Template"
msgstr ""
@@ -1633,7 +1653,7 @@ msgstr ""
#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:956
#: templates/js/translated/table_filters.js:168
-#: templates/js/translated/table_filters.js:385
+#: templates/js/translated/table_filters.js:416
msgid "Assembly"
msgstr ""
@@ -1642,7 +1662,7 @@ msgid "Parts can be assembled from other components by default"
msgstr ""
#: common/models.py:717 part/models.py:894
-#: templates/js/translated/table_filters.js:389
+#: templates/js/translated/table_filters.js:420
msgid "Component"
msgstr ""
@@ -1659,7 +1679,7 @@ msgid "Parts are purchaseable by default"
msgstr ""
#: common/models.py:731 part/models.py:910
-#: templates/js/translated/table_filters.js:397
+#: templates/js/translated/table_filters.js:428
msgid "Salable"
msgstr ""
@@ -1670,7 +1690,7 @@ msgstr ""
#: common/models.py:738 part/models.py:900
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:100
-#: templates/js/translated/table_filters.js:401
+#: templates/js/translated/table_filters.js:432
msgid "Trackable"
msgstr ""
@@ -1932,230 +1952,262 @@ msgstr ""
msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:1001
+#: common/models.py:961
+msgid "Enable URL integration"
+msgstr ""
+
+#: common/models.py:962
+msgid "Enable plugins to add URL routes"
+msgstr ""
+
+#: common/models.py:968
+msgid "Enable navigation integration"
+msgstr ""
+
+#: common/models.py:969
+msgid "Enable plugins to integrate into navigation"
+msgstr ""
+
+#: common/models.py:975
+msgid "Enable global setting integration"
+msgstr ""
+
+#: common/models.py:976
+msgid "Enable plugins to integrate into inventree global settings"
+msgstr ""
+
+#: common/models.py:982
+msgid "Enable app integration"
+msgstr ""
+
+#: common/models.py:983
+msgid "Enable plugins to add apps"
+msgstr ""
+
+#: common/models.py:1029
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:1002
+#: common/models.py:1030
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:1007
+#: common/models.py:1035
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:1008
+#: common/models.py:1036
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:1013
+#: common/models.py:1041
msgid "Show latest parts"
msgstr "Hiển thị nguyên liệu mới nhất"
-#: common/models.py:1014
+#: common/models.py:1042
msgid "Show latest parts on the homepage"
msgstr "Hiển thị nguyên liệu mới nhất trên trang chủ"
-#: common/models.py:1019
+#: common/models.py:1047
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:1020
+#: common/models.py:1048
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:1026
+#: common/models.py:1054
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1027
+#: common/models.py:1055
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1032
+#: common/models.py:1060
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:1033
+#: common/models.py:1061
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:1038
+#: common/models.py:1066
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:1039
+#: common/models.py:1067
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:1044
+#: common/models.py:1072
msgid "Show low stock"
msgstr ""
-#: common/models.py:1045
+#: common/models.py:1073
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:1050
+#: common/models.py:1078
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:1051
+#: common/models.py:1079
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:1056
+#: common/models.py:1084
msgid "Show needed stock"
msgstr ""
-#: common/models.py:1057
+#: common/models.py:1085
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1062
+#: common/models.py:1090
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1063
+#: common/models.py:1091
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1068
+#: common/models.py:1096
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1069
+#: common/models.py:1097
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1074
+#: common/models.py:1102
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1075
+#: common/models.py:1103
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:1080
+#: common/models.py:1108
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:1081
+#: common/models.py:1109
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:1086
+#: common/models.py:1114
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:1087
+#: common/models.py:1115
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:1092
+#: common/models.py:1120
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:1093
+#: common/models.py:1121
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:1098
+#: common/models.py:1126
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:1099
+#: common/models.py:1127
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:1104
+#: common/models.py:1132
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:1105
+#: common/models.py:1133
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:1111
+#: common/models.py:1139
msgid "Inline label display"
msgstr ""
-#: common/models.py:1112
+#: common/models.py:1140
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1118
+#: common/models.py:1146
msgid "Inline report display"
msgstr ""
-#: common/models.py:1119
+#: common/models.py:1147
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1125
+#: common/models.py:1153
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:1126
+#: common/models.py:1154
msgid "Number of results to show in search preview window"
msgstr ""
-#: common/models.py:1132
+#: common/models.py:1160
msgid "Search Show Stock"
msgstr ""
-#: common/models.py:1133
+#: common/models.py:1161
msgid "Display stock levels in search preview window"
msgstr ""
-#: common/models.py:1139
+#: common/models.py:1167
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:1140
+#: common/models.py:1168
msgid "Hide inactive parts in search preview window"
msgstr ""
-#: common/models.py:1146
+#: common/models.py:1174
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:1147
+#: common/models.py:1175
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:1153
+#: common/models.py:1181
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1154
+#: common/models.py:1182
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1160
+#: common/models.py:1188
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:1161
+#: common/models.py:1189
msgid "InvenTree navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:1226 company/forms.py:43
+#: common/models.py:1254 company/forms.py:43
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1233 company/serializers.py:264
+#: common/models.py:1261 company/serializers.py:264
#: company/templates/company/supplier_part.html:256
#: templates/js/translated/part.js:852 templates/js/translated/part.js:1801
msgid "Price"
msgstr ""
-#: common/models.py:1234
+#: common/models.py:1262
msgid "Unit price at specified quantity"
msgstr ""
#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49
-#: order/templates/order/purchase_order_detail.html:24 order/views.py:289
+#: order/templates/order/purchase_order_detail.html:24 order/views.py:243
#: part/templates/part/bom_upload/upload_file.html:52
#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:212
#: part/views.py:858
@@ -2163,7 +2215,7 @@ msgid "Upload File"
msgstr ""
#: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52
-#: order/views.py:290 part/templates/part/bom_upload/match_fields.html:52
+#: order/views.py:244 part/templates/part/bom_upload/match_fields.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:45
#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:213
#: part/views.py:859
@@ -2195,6 +2247,7 @@ msgid "Previous Step"
msgstr ""
#: company/forms.py:24 part/forms.py:46
+#: templates/InvenTree/settings/mixins/urls.html:12
msgid "URL"
msgstr ""
@@ -2211,6 +2264,7 @@ msgid "Description of the company"
msgstr ""
#: company/models.py:112 company/templates/company/company_base.html:97
+#: templates/InvenTree/settings/plugin_settings.html:55
#: templates/js/translated/company.js:349
msgid "Website"
msgstr ""
@@ -2285,7 +2339,7 @@ msgid "Does this company manufacture parts?"
msgstr ""
#: company/models.py:152 company/serializers.py:270
-#: company/templates/company/company_base.html:103 stock/serializers.py:177
+#: company/templates/company/company_base.html:103 stock/serializers.py:179
msgid "Currency"
msgstr ""
@@ -2293,12 +2347,12 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:320 company/models.py:535 stock/models.py:474
+#: company/models.py:320 company/models.py:535 stock/models.py:468
#: stock/templates/stock/item_base.html:135
msgid "Base Part"
msgstr ""
-#: company/models.py:324 company/models.py:539 order/views.py:912
+#: company/models.py:324 company/models.py:539
msgid "Select part"
msgstr ""
@@ -2319,7 +2373,7 @@ msgstr ""
#: company/models.py:342 company/templates/company/manufacturer_part.html:96
#: company/templates/company/supplier_part.html:105
#: templates/js/translated/company.js:530
-#: templates/js/translated/company.js:815 templates/js/translated/order.js:873
+#: templates/js/translated/company.js:815 templates/js/translated/order.js:1038
#: templates/js/translated/part.js:243 templates/js/translated/part.js:832
msgid "MPN"
msgstr ""
@@ -2349,8 +2403,8 @@ msgstr ""
#: company/models.py:422
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:1857 templates/js/translated/company.js:644
-#: templates/js/translated/part.js:652 templates/js/translated/stock.js:960
+#: stock/models.py:1845 templates/js/translated/company.js:644
+#: templates/js/translated/part.js:652 templates/js/translated/stock.js:1117
msgid "Value"
msgstr ""
@@ -2360,7 +2414,7 @@ msgstr ""
#: company/models.py:429 part/models.py:882 part/models.py:2397
#: part/templates/part/part_base.html:288
-#: templates/InvenTree/settings/settings.html:264
+#: templates/InvenTree/settings/settings.html:273
#: templates/js/translated/company.js:650 templates/js/translated/part.js:658
msgid "Units"
msgstr ""
@@ -2374,12 +2428,12 @@ msgid "Linked manufacturer part must reference the same base part"
msgstr ""
#: company/models.py:545 company/templates/company/company_base.html:78
-#: company/templates/company/supplier_part.html:87 order/models.py:263
+#: company/templates/company/supplier_part.html:87 order/models.py:224
#: order/templates/order/order_base.html:112
#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219
#: part/bom.py:247 stock/templates/stock/item_base.html:398
#: templates/js/translated/company.js:337
-#: templates/js/translated/company.js:771 templates/js/translated/order.js:667
+#: templates/js/translated/company.js:771 templates/js/translated/order.js:823
#: templates/js/translated/part.js:213 templates/js/translated/part.js:800
msgid "Supplier"
msgstr "Nhà cung cấp"
@@ -2389,7 +2443,7 @@ msgid "Select supplier"
msgstr ""
#: company/models.py:551 company/templates/company/supplier_part.html:91
-#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:860
+#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:1025
#: templates/js/translated/part.js:224 templates/js/translated/part.js:818
msgid "SKU"
msgstr ""
@@ -2425,8 +2479,8 @@ msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:582 company/templates/company/supplier_part.html:112
-#: stock/models.py:497 stock/templates/stock/item_base.html:339
-#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1448
+#: stock/models.py:491 stock/templates/stock/item_base.html:339
+#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1612
msgid "Packaging"
msgstr ""
@@ -2457,7 +2511,7 @@ msgid "Company"
msgstr ""
#: company/templates/company/company_base.html:22
-#: templates/js/translated/order.js:121
+#: templates/js/translated/order.js:279
msgid "Create Purchase Order"
msgstr ""
@@ -2493,11 +2547,12 @@ msgstr ""
msgid "Download image from URL"
msgstr ""
-#: company/templates/company/company_base.html:83 order/models.py:567
-#: order/templates/order/sales_order_base.html:115 stock/models.py:515
-#: stock/models.py:516 stock/templates/stock/item_base.html:291
-#: templates/js/translated/company.js:329 templates/js/translated/order.js:1072
-#: templates/js/translated/stock.js:2084
+#: company/templates/company/company_base.html:83 order/models.py:547
+#: order/templates/order/sales_order_base.html:115 stock/models.py:509
+#: stock/models.py:510 stock/serializers.py:610
+#: stock/templates/stock/item_base.html:291
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1240
+#: templates/js/translated/stock.js:2259
msgid "Customer"
msgstr ""
@@ -2580,7 +2635,7 @@ msgstr ""
#: order/templates/order/purchase_orders.html:12
#: part/templates/part/detail.html:64 part/templates/part/part_sidebar.html:33
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:203
-#: templates/InvenTree/settings/sidebar.html:44 templates/navbar.html:45
+#: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47
#: users/models.py:45
msgid "Purchase Orders"
msgstr ""
@@ -2602,7 +2657,7 @@ msgstr ""
#: order/templates/order/sales_orders.html:15
#: part/templates/part/detail.html:87 part/templates/part/part_sidebar.html:37
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:223
-#: templates/InvenTree/settings/sidebar.html:46 templates/navbar.html:56
+#: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58
#: users/models.py:46
msgid "Sales Orders"
msgstr ""
@@ -2618,7 +2673,7 @@ msgid "New Sales Order"
msgstr ""
#: company/templates/company/detail.html:168
-#: templates/js/translated/build.js:999
+#: templates/js/translated/build.js:1004
msgid "Assigned Stock"
msgstr ""
@@ -2644,7 +2699,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:14 company/views.py:55
#: part/templates/part/prices.html:167 templates/InvenTree/search.html:184
-#: templates/navbar.html:44
+#: templates/navbar.html:46
msgid "Manufacturers"
msgstr ""
@@ -2673,7 +2728,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:114
#: company/templates/company/supplier_part.html:15 company/views.py:49
#: part/templates/part/part_sidebar.html:31 part/templates/part/prices.html:163
-#: templates/InvenTree/search.html:194 templates/navbar.html:43
+#: templates/InvenTree/search.html:194 templates/navbar.html:45
msgid "Suppliers"
msgstr ""
@@ -2687,7 +2742,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:254
#: part/templates/part/detail.html:344 part/templates/part/detail.html:372
#: templates/js/translated/company.js:425 templates/js/translated/helpers.js:31
-#: users/models.py:204
+#: users/models.py:206
msgid "Delete"
msgstr ""
@@ -2739,9 +2794,9 @@ msgid "Assigned Stock Items"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:482
+#: company/templates/company/supplier_part.html:24 stock/models.py:476
#: stock/templates/stock/item_base.html:403
-#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1405
+#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1569
msgid "Supplier Part"
msgstr ""
@@ -2767,7 +2822,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:142
#: part/templates/part/detail.html:21 stock/templates/stock/location.html:163
-#: templates/js/translated/stock.js:355
+#: templates/js/translated/stock.js:359
msgid "New Stock Item"
msgstr ""
@@ -2817,11 +2872,11 @@ msgstr ""
#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:14
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:156
-#: templates/InvenTree/settings/sidebar.html:40
+#: templates/InvenTree/settings/sidebar.html:41
#: templates/js/translated/bom.js:216 templates/js/translated/part.js:434
#: templates/js/translated/part.js:569 templates/js/translated/part.js:1059
-#: templates/js/translated/part.js:1220 templates/js/translated/stock.js:591
-#: templates/js/translated/stock.js:1244 templates/navbar.html:26
+#: templates/js/translated/part.js:1220 templates/js/translated/stock.js:748
+#: templates/js/translated/stock.js:1401 templates/navbar.html:28
msgid "Stock"
msgstr "Kiện hàng"
@@ -2844,7 +2899,7 @@ msgstr ""
#: stock/templates/stock/location.html:147
#: stock/templates/stock/location.html:159
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1983
+#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:2158
#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
msgid "Stock Items"
msgstr ""
@@ -2858,7 +2913,7 @@ msgid "New Manufacturer"
msgstr ""
#: company/views.py:61 templates/InvenTree/search.html:214
-#: templates/navbar.html:55
+#: templates/navbar.html:57
msgid "Customers"
msgstr ""
@@ -2960,284 +3015,374 @@ msgstr ""
msgid "Part query filters (comma-separated value of key=value pairs)"
msgstr ""
-#: order/forms.py:26 order/templates/order/order_base.html:52
+#: order/forms.py:24 order/templates/order/order_base.html:52
msgid "Place order"
msgstr ""
-#: order/forms.py:37 order/templates/order/order_base.html:60
+#: order/forms.py:35 order/templates/order/order_base.html:60
msgid "Mark order as complete"
msgstr ""
-#: order/forms.py:48 order/forms.py:59 order/templates/order/order_base.html:47
+#: order/forms.py:46 order/forms.py:57 order/templates/order/order_base.html:47
#: order/templates/order/sales_order_base.html:60
msgid "Cancel order"
msgstr ""
-#: order/forms.py:70
-msgid "Ship order"
-msgstr ""
-
-#: order/forms.py:98
-msgid "Enter stock item serial numbers"
-msgstr ""
-
-#: order/forms.py:104
-msgid "Enter quantity of stock items"
-msgstr ""
-
-#: order/models.py:161
+#: order/models.py:122
msgid "Order description"
msgstr ""
-#: order/models.py:163
+#: order/models.py:124
msgid "Link to external page"
msgstr ""
-#: order/models.py:171
+#: order/models.py:132
msgid "Created By"
msgstr ""
-#: order/models.py:178
+#: order/models.py:139
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:183
+#: order/models.py:144
msgid "Order notes"
msgstr ""
-#: order/models.py:250 order/models.py:557
+#: order/models.py:211 order/models.py:537
msgid "Order reference"
msgstr ""
-#: order/models.py:255 order/models.py:572
+#: order/models.py:216 order/models.py:552
msgid "Purchase order status"
msgstr ""
-#: order/models.py:264
+#: order/models.py:225
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:267 order/templates/order/order_base.html:118
-#: templates/js/translated/order.js:676
+#: order/models.py:228 order/templates/order/order_base.html:118
+#: templates/js/translated/order.js:832
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:267
+#: order/models.py:228
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:274
+#: order/models.py:235
msgid "received by"
msgstr ""
-#: order/models.py:279
+#: order/models.py:240
msgid "Issue Date"
msgstr ""
-#: order/models.py:280
+#: order/models.py:241
msgid "Date order was issued"
msgstr ""
-#: order/models.py:285
+#: order/models.py:246
msgid "Target Delivery Date"
msgstr ""
-#: order/models.py:286
+#: order/models.py:247
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:292
+#: order/models.py:253
msgid "Date order was completed"
msgstr ""
-#: order/models.py:321
+#: order/models.py:282
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:431
+#: order/models.py:411
msgid "Quantity must be an integer"
msgstr ""
-#: order/models.py:435
+#: order/models.py:415
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:568
+#: order/models.py:548
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:574
+#: order/models.py:554
msgid "Customer Reference "
msgstr ""
-#: order/models.py:574
+#: order/models.py:554
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:579
+#: order/models.py:559
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:582 templates/js/translated/order.js:1113
+#: order/models.py:562 order/models.py:1026
+#: templates/js/translated/order.js:1281 templates/js/translated/order.js:1429
msgid "Shipment Date"
msgstr ""
-#: order/models.py:589
+#: order/models.py:569
msgid "shipped by"
msgstr ""
-#: order/models.py:633
-msgid "SalesOrder cannot be shipped as it is not currently pending"
+#: order/models.py:634
+msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:730
+#: order/models.py:639
+msgid "Only a pending order can be marked as complete"
+msgstr ""
+
+#: order/models.py:643
+msgid "Order cannot be completed as there are incomplete shipments"
+msgstr ""
+
+#: order/models.py:647
+msgid "Order cannot be completed as there are incomplete line items"
+msgstr ""
+
+#: order/models.py:795
msgid "Item quantity"
msgstr ""
-#: order/models.py:736
+#: order/models.py:801
msgid "Line item reference"
msgstr ""
-#: order/models.py:738
+#: order/models.py:803
msgid "Line item notes"
msgstr ""
-#: order/models.py:768 order/models.py:856
-#: templates/js/translated/order.js:1165
+#: order/models.py:833 order/models.py:924 order/models.py:1020
+#: templates/js/translated/order.js:1820
msgid "Order"
msgstr ""
-#: order/models.py:769 order/templates/order/order_base.html:9
+#: order/models.py:834 order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:353
-#: templates/js/translated/order.js:638 templates/js/translated/part.js:775
-#: templates/js/translated/stock.js:1382 templates/js/translated/stock.js:2065
+#: templates/js/translated/order.js:801 templates/js/translated/part.js:775
+#: templates/js/translated/stock.js:1546 templates/js/translated/stock.js:2240
msgid "Purchase Order"
msgstr "Đơn hàng"
-#: order/models.py:790
+#: order/models.py:855
msgid "Supplier part"
msgstr ""
-#: order/models.py:797 order/templates/order/order_base.html:151
-#: order/templates/order/sales_order_base.html:155
-#: templates/js/translated/order.js:429 templates/js/translated/order.js:953
+#: order/models.py:862 order/templates/order/order_base.html:163
+#: templates/js/translated/order.js:589 templates/js/translated/order.js:1118
#: templates/js/translated/part.js:847 templates/js/translated/part.js:873
+#: templates/js/translated/table_filters.js:317
msgid "Received"
msgstr ""
-#: order/models.py:798
+#: order/models.py:863
msgid "Number of items received"
msgstr ""
-#: order/models.py:805 part/templates/part/prices.html:176 stock/models.py:609
-#: stock/serializers.py:168 stock/templates/stock/item_base.html:360
-#: templates/js/translated/stock.js:1436
+#: order/models.py:870 part/templates/part/prices.html:176 stock/models.py:603
+#: stock/serializers.py:170 stock/templates/stock/item_base.html:360
+#: templates/js/translated/stock.js:1600
msgid "Purchase Price"
msgstr "Giá mua"
-#: order/models.py:806
+#: order/models.py:871
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:814
+#: order/models.py:879
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:866 part/templates/part/part_pricing.html:112
+#: order/models.py:934 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:116 part/templates/part/prices.html:284
msgid "Sale Price"
msgstr ""
-#: order/models.py:867
+#: order/models.py:935
msgid "Unit sale price"
msgstr ""
-#: order/models.py:946 order/models.py:948
+#: order/models.py:940
+msgid "Shipped quantity"
+msgstr ""
+
+#: order/models.py:1027
+msgid "Date of shipment"
+msgstr ""
+
+#: order/models.py:1034
+msgid "Checked By"
+msgstr ""
+
+#: order/models.py:1035
+msgid "User who checked this shipment"
+msgstr ""
+
+#: order/models.py:1043
+msgid "Shipment number"
+msgstr ""
+
+#: order/models.py:1050
+msgid "Shipment notes"
+msgstr ""
+
+#: order/models.py:1057
+msgid "Tracking Number"
+msgstr ""
+
+#: order/models.py:1058
+msgid "Shipment tracking information"
+msgstr ""
+
+#: order/models.py:1068
+msgid "Shipment has already been sent"
+msgstr ""
+
+#: order/models.py:1071
+msgid "Shipment has no allocated stock items"
+msgstr ""
+
+#: order/models.py:1147 order/models.py:1149
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:952
+#: order/models.py:1153
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:954
+#: order/models.py:1155
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:957
+#: order/models.py:1158
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:961
+#: order/models.py:1162
msgid "StockItem is over-allocated"
msgstr ""
-#: order/models.py:967
+#: order/models.py:1168 order/serializers.py:734
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:975
+#: order/models.py:1171
+msgid "Sales order does not match shipment"
+msgstr ""
+
+#: order/models.py:1172
+msgid "Shipment does not match sales order"
+msgstr ""
+
+#: order/models.py:1180
msgid "Line"
msgstr ""
-#: order/models.py:987
+#: order/models.py:1188 order/serializers.py:825 order/serializers.py:953
+#: templates/js/translated/model_renderers.js:251
+msgid "Shipment"
+msgstr ""
+
+#: order/models.py:1189
+msgid "Sales order shipment reference"
+msgstr ""
+
+#: order/models.py:1201
msgid "Item"
msgstr ""
-#: order/models.py:988
+#: order/models.py:1202
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:991
+#: order/models.py:1205
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/serializers.py:175
+#: order/serializers.py:173
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:213
+#: order/serializers.py:211 order/serializers.py:790
msgid "Line Item"
msgstr ""
-#: order/serializers.py:219
+#: order/serializers.py:217
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:229 order/serializers.py:297
+#: order/serializers.py:227 order/serializers.py:295
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:253
+#: order/serializers.py:251
msgid "Barcode Hash"
msgstr ""
-#: order/serializers.py:254
+#: order/serializers.py:252
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:271
+#: order/serializers.py:269
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:309
+#: order/serializers.py:307
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:326
+#: order/serializers.py:324
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:337
+#: order/serializers.py:335
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:578
+#: order/serializers.py:581
msgid "Sale price currency"
msgstr ""
+#: order/serializers.py:649
+msgid "No shipment details provided"
+msgstr ""
+
+#: order/serializers.py:699 order/serializers.py:802
+msgid "Line item is not associated with this order"
+msgstr ""
+
+#: order/serializers.py:721
+msgid "Quantity must be positive"
+msgstr ""
+
+#: order/serializers.py:815
+msgid "Enter serial numbers to allocate"
+msgstr ""
+
+#: order/serializers.py:839 order/serializers.py:964
+msgid "Shipment has already been shipped"
+msgstr ""
+
+#: order/serializers.py:842 order/serializers.py:967
+msgid "Shipment is not associated with this order"
+msgstr ""
+
+#: order/serializers.py:894
+msgid "No match found for the following serial numbers"
+msgstr ""
+
+#: order/serializers.py:904
+msgid "The following serial numbers are already allocated"
+msgstr ""
+
#: order/templates/order/delete_attachment.html:5
#: stock/templates/stock/attachment_delete.html:5
msgid "Are you sure you want to delete this attachment?"
@@ -3271,7 +3416,8 @@ msgstr ""
msgid "Receive Items"
msgstr ""
-#: order/templates/order/order_base.html:62 order/views.py:185
+#: order/templates/order/order_base.html:62
+#: order/templates/order/sales_order_base.html:67 order/views.py:181
msgid "Complete Order"
msgstr ""
@@ -3290,12 +3436,23 @@ msgstr ""
msgid "Order Status"
msgstr ""
-#: order/templates/order/order_base.html:137
+#: order/templates/order/order_base.html:124
+#: order/templates/order/sales_order_base.html:128
+msgid "Completed Line Items"
+msgstr ""
+
+#: order/templates/order/order_base.html:130
+#: order/templates/order/sales_order_base.html:134
+#: order/templates/order/sales_order_base.html:144
+msgid "Incomplete"
+msgstr ""
+
+#: order/templates/order/order_base.html:149
#: report/templates/report/inventree_build_order_base.html:122
msgid "Issued"
msgstr ""
-#: order/templates/order/order_base.html:207
+#: order/templates/order/order_base.html:219
msgid "Edit Purchase Order"
msgstr ""
@@ -3371,8 +3528,9 @@ msgstr ""
#: part/templates/part/import_wizard/ajax_match_references.html:42
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
-#: templates/js/translated/build.js:240 templates/js/translated/build.js:1251
-#: templates/js/translated/order.js:377
+#: templates/js/translated/build.js:245 templates/js/translated/build.js:1256
+#: templates/js/translated/order.js:537 templates/js/translated/order.js:1488
+#: templates/js/translated/stock.js:592
msgid "Remove row"
msgstr ""
@@ -3453,7 +3611,8 @@ msgid "Select existing purchase orders, or create new orders."
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:31
-#: templates/js/translated/order.js:694 templates/js/translated/order.js:1118
+#: templates/js/translated/order.js:859 templates/js/translated/order.js:1286
+#: templates/js/translated/order.js:1416
msgid "Items"
msgstr ""
@@ -3489,7 +3648,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:27
#: order/templates/order/purchase_order_detail.html:181
#: order/templates/order/sales_order_detail.html:23
-#: order/templates/order/sales_order_detail.html:157
+#: order/templates/order/sales_order_detail.html:244
msgid "Add Line Item"
msgstr ""
@@ -3502,7 +3661,7 @@ msgid "Received Items"
msgstr ""
#: order/templates/order/purchase_order_detail.html:76
-#: order/templates/order/sales_order_detail.html:68
+#: order/templates/order/sales_order_detail.html:123
msgid "Order Notes"
msgstr ""
@@ -3520,8 +3679,8 @@ msgid "Print packing list"
msgstr ""
#: order/templates/order/sales_order_base.html:66
-#: order/templates/order/sales_order_base.html:67 order/views.py:222
-msgid "Ship Order"
+#: order/templates/order/sales_order_base.html:229
+msgid "Complete Sales Order"
msgstr ""
#: order/templates/order/sales_order_base.html:102
@@ -3529,16 +3688,21 @@ msgid "This Sales Order has not been fully allocated"
msgstr ""
#: order/templates/order/sales_order_base.html:122
-#: templates/js/translated/order.js:1085
+#: templates/js/translated/order.js:1253
msgid "Customer Reference"
msgstr ""
-#: order/templates/order/sales_order_base.html:195
+#: order/templates/order/sales_order_base.html:140
+#: order/templates/order/sales_order_detail.html:78
+#: order/templates/order/so_sidebar.html:11
+msgid "Completed Shipments"
+msgstr ""
+
+#: order/templates/order/sales_order_base.html:215
msgid "Edit Sales Order"
msgstr ""
#: order/templates/order/sales_order_cancel.html:8
-#: order/templates/order/sales_order_ship.html:9
#: part/templates/part/bom_duplicate.html:12
#: stock/templates/stock/stockitem_convert.html:13
msgid "Warning"
@@ -3552,146 +3716,100 @@ msgstr ""
msgid "Sales Order Items"
msgstr ""
-#: order/templates/order/sales_order_ship.html:10
-msgid "This order has not been fully allocated. If the order is marked as shipped, it can no longer be adjusted."
+#: order/templates/order/sales_order_detail.html:44
+#: order/templates/order/so_sidebar.html:8
+msgid "Pending Shipments"
msgstr ""
-#: order/templates/order/sales_order_ship.html:12
-msgid "Ensure that the order allocation is correct before shipping the order."
+#: order/templates/order/sales_order_detail.html:48
+#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1188
+msgid "Actions"
msgstr ""
-#: order/templates/order/sales_order_ship.html:18
-msgid "Some line items in this order have been over-allocated"
+#: order/templates/order/sales_order_detail.html:57
+msgid "New Shipment"
msgstr ""
-#: order/templates/order/sales_order_ship.html:20
-msgid "Ensure that this is correct before shipping the order."
-msgstr ""
-
-#: order/templates/order/sales_order_ship.html:27
-msgid "Shipping this order means that the order will no longer be editable."
-msgstr ""
-
-#: order/templates/order/so_allocate_by_serial.html:9
-msgid "Allocate stock items by serial number"
-msgstr ""
-
-#: order/views.py:103
+#: order/views.py:99
msgid "Cancel Order"
msgstr ""
-#: order/views.py:112 order/views.py:138
+#: order/views.py:108 order/views.py:134
msgid "Confirm order cancellation"
msgstr ""
-#: order/views.py:115 order/views.py:141
+#: order/views.py:111 order/views.py:137
msgid "Order cannot be cancelled"
msgstr ""
-#: order/views.py:129
+#: order/views.py:125
msgid "Cancel sales order"
msgstr ""
-#: order/views.py:155
+#: order/views.py:151
msgid "Issue Order"
msgstr ""
-#: order/views.py:164
+#: order/views.py:160
msgid "Confirm order placement"
msgstr ""
-#: order/views.py:174
+#: order/views.py:170
msgid "Purchase order issued"
msgstr ""
-#: order/views.py:201
+#: order/views.py:197
msgid "Confirm order completion"
msgstr ""
-#: order/views.py:212
+#: order/views.py:208
msgid "Purchase order completed"
msgstr ""
-#: order/views.py:238
-msgid "Confirm order shipment"
-msgstr ""
-
-#: order/views.py:244
-msgid "Could not ship order"
-msgstr ""
-
-#: order/views.py:291
+#: order/views.py:245
msgid "Match Supplier Parts"
msgstr ""
-#: order/views.py:535
+#: order/views.py:489
msgid "Update prices"
msgstr ""
-#: order/views.py:793
+#: order/views.py:747
#, python-brace-format
msgid "Ordered {n} parts"
msgstr ""
-#: order/views.py:846
-msgid "Allocate Serial Numbers"
-msgstr ""
-
-#: order/views.py:891
-#, python-brace-format
-msgid "Allocated {n} items"
-msgstr ""
-
-#: order/views.py:907
-msgid "Select line item"
-msgstr ""
-
-#: order/views.py:938
-#, python-brace-format
-msgid "No matching item for serial {serial}"
-msgstr ""
-
-#: order/views.py:948
-#, python-brace-format
-msgid "{serial} is not in stock"
-msgstr ""
-
-#: order/views.py:956
-#, python-brace-format
-msgid "{serial} already allocated to an order"
-msgstr ""
-
-#: order/views.py:1072
+#: order/views.py:858
msgid "Sales order not found"
msgstr ""
-#: order/views.py:1078
+#: order/views.py:864
msgid "Price not found"
msgstr ""
-#: order/views.py:1081
+#: order/views.py:867
#, python-brace-format
msgid "Updated {part} unit-price to {price}"
msgstr ""
-#: order/views.py:1086
+#: order/views.py:872
#, python-brace-format
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/api.py:758
+#: part/api.py:760
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:762
+#: part/api.py:764
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:777
+#: part/api.py:779
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:808 part/api.py:812 part/api.py:827 part/api.py:831
+#: part/api.py:810 part/api.py:814 part/api.py:829 part/api.py:833
msgid "This field is required"
msgstr ""
@@ -3828,8 +3946,8 @@ msgstr ""
#: part/templates/part/category.html:149
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:88
-#: templates/InvenTree/settings/sidebar.html:36
-#: templates/js/translated/part.js:1597 templates/navbar.html:19
+#: templates/InvenTree/settings/sidebar.html:37
+#: templates/js/translated/part.js:1597 templates/navbar.html:21
#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
msgid "Parts"
msgstr "Nguyên liệu"
@@ -3895,7 +4013,7 @@ msgstr ""
#: part/models.py:778 part/models.py:2223 part/models.py:2472
#: part/templates/part/part_base.html:265
#: part/templates/part/set_category.html:15
-#: templates/InvenTree/settings/settings.html:163
+#: templates/InvenTree/settings/settings.html:172
#: templates/js/translated/part.js:1202
msgid "Category"
msgstr ""
@@ -3906,7 +4024,7 @@ msgstr ""
#: part/models.py:784 part/templates/part/part_base.html:274
#: templates/js/translated/part.js:557 templates/js/translated/part.js:1155
-#: templates/js/translated/stock.js:1216
+#: templates/js/translated/stock.js:1373
msgid "IPN"
msgstr ""
@@ -3975,10 +4093,11 @@ msgstr ""
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:915 templates/js/translated/table_filters.js:34
+#: part/models.py:915 plugin/models.py:45
+#: templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:96
-#: templates/js/translated/table_filters.js:290
-#: templates/js/translated/table_filters.js:368
+#: templates/js/translated/table_filters.js:295
+#: templates/js/translated/table_filters.js:399
msgid "Active"
msgstr ""
@@ -4027,7 +4146,7 @@ msgid "Test with this name already exists for this part"
msgstr ""
#: part/models.py:2310 templates/js/translated/part.js:1648
-#: templates/js/translated/stock.js:940
+#: templates/js/translated/stock.js:1097
msgid "Test Name"
msgstr ""
@@ -4044,7 +4163,7 @@ msgid "Enter description for this test"
msgstr ""
#: part/models.py:2322 templates/js/translated/part.js:1657
-#: templates/js/translated/table_filters.js:276
+#: templates/js/translated/table_filters.js:281
msgid "Required"
msgstr ""
@@ -4086,7 +4205,7 @@ msgid "Parameter Units"
msgstr ""
#: part/models.py:2429 part/models.py:2478 part/models.py:2479
-#: templates/InvenTree/settings/settings.html:158
+#: templates/InvenTree/settings/settings.html:167
msgid "Parameter Template"
msgstr ""
@@ -4098,7 +4217,7 @@ msgstr ""
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2483 templates/InvenTree/settings/settings.html:167
+#: part/models.py:2483 templates/InvenTree/settings/settings.html:176
msgid "Default Value"
msgstr ""
@@ -4175,7 +4294,7 @@ msgstr ""
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2686 stock/models.py:361
+#: part/models.py:2686 stock/models.py:355
msgid "Quantity must be integer value for trackable parts"
msgstr ""
@@ -4724,8 +4843,8 @@ msgstr ""
msgid "This part is a variant of %(link)s"
msgstr ""
-#: part/templates/part/part_base.html:190 templates/js/translated/order.js:1545
-#: templates/js/translated/table_filters.js:188
+#: part/templates/part/part_base.html:190 templates/js/translated/order.js:2217
+#: templates/js/translated/table_filters.js:193
msgid "In Stock"
msgstr ""
@@ -5099,6 +5218,78 @@ msgstr ""
msgid "Delete Internal Price Break"
msgstr ""
+#: plugin/integration.py:116
+msgid "No author found"
+msgstr ""
+
+#: plugin/integration.py:128
+msgid "No date found"
+msgstr ""
+
+#: plugin/models.py:25
+msgid "Plugin Configuration"
+msgstr ""
+
+#: plugin/models.py:26
+msgid "Plugin Configurations"
+msgstr ""
+
+#: plugin/models.py:31
+msgid "Key"
+msgstr ""
+
+#: plugin/models.py:32
+msgid "Key of plugin"
+msgstr ""
+
+#: plugin/models.py:40
+msgid "PluginName of the plugin"
+msgstr ""
+
+#: plugin/models.py:46
+msgid "Is the plugin active"
+msgstr ""
+
+#: plugin/samples/integration/sample.py:39
+msgid "Enable PO"
+msgstr ""
+
+#: plugin/samples/integration/sample.py:40
+msgid "Enable PO functionality in InvenTree interface"
+msgstr ""
+
+#: plugin/serializers.py:46
+msgid "Source URL"
+msgstr ""
+
+#: plugin/serializers.py:47
+msgid "Source for the package - this can be a custom registry or a VCS path"
+msgstr ""
+
+#: plugin/serializers.py:52
+msgid "Package Name"
+msgstr ""
+
+#: plugin/serializers.py:53
+msgid "Name for the Plugin Package - can also contain a version indicator"
+msgstr ""
+
+#: plugin/serializers.py:56
+msgid "Confirm plugin installation"
+msgstr ""
+
+#: plugin/serializers.py:57
+msgid "This will install this plugin now into the current instance. The instance will go into maintenance."
+msgstr ""
+
+#: plugin/serializers.py:72
+msgid "Installation not confirmed"
+msgstr ""
+
+#: plugin/serializers.py:74
+msgid "Either packagenmae of url must be provided"
+msgstr ""
+
#: report/api.py:234 report/api.py:278
#, python-brace-format
msgid "Template file '{filename}' is missing or does not exist"
@@ -5197,12 +5388,12 @@ msgid "Stock Item Test Report"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:520 stock/templates/stock/item_base.html:149
-#: templates/js/translated/build.js:233 templates/js/translated/build.js:637
-#: templates/js/translated/build.js:1013
+#: stock/models.py:514 stock/templates/stock/item_base.html:149
+#: templates/js/translated/build.js:238 templates/js/translated/build.js:642
+#: templates/js/translated/build.js:1018
#: templates/js/translated/model_renderers.js:95
-#: templates/js/translated/order.js:1287 templates/js/translated/order.js:1376
-#: templates/js/translated/stock.js:410
+#: templates/js/translated/order.js:99 templates/js/translated/order.js:1945
+#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:414
msgid "Serial Number"
msgstr ""
@@ -5211,17 +5402,19 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:93
-#: stock/models.py:1845
+#: stock/models.py:1833
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:94
-#: stock/models.py:1851
+#: stock/models.py:1839
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:97
-#: templates/js/translated/order.js:684 templates/js/translated/stock.js:1999
+#: templates/InvenTree/settings/plugin.html:49
+#: templates/InvenTree/settings/plugin_settings.html:38
+#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2174
msgid "Date"
msgstr ""
@@ -5239,302 +5432,318 @@ msgid "Installed Items"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
-#: templates/js/translated/stock.js:2259
+#: templates/js/translated/stock.js:577 templates/js/translated/stock.js:2434
msgid "Serial"
msgstr ""
-#: stock/api.py:422
+#: stock/api.py:446
msgid "Quantity is required"
msgstr ""
-#: stock/forms.py:91 stock/forms.py:265 stock/models.py:577
+#: stock/forms.py:77 stock/forms.py:251 stock/models.py:571
#: stock/templates/stock/item_base.html:186
-#: templates/js/translated/stock.js:1358
+#: templates/js/translated/stock.js:1522
msgid "Expiry Date"
msgstr ""
-#: stock/forms.py:92 stock/forms.py:266
+#: stock/forms.py:78 stock/forms.py:252
msgid "Expiration date for this stock item"
msgstr ""
-#: stock/forms.py:95
+#: stock/forms.py:81
msgid "Enter unique serial numbers (or leave blank)"
msgstr ""
-#: stock/forms.py:150
+#: stock/forms.py:136
msgid "Destination for serialized stock (by default, will remain in current location)"
msgstr ""
-#: stock/forms.py:152
+#: stock/forms.py:138
msgid "Serial numbers"
msgstr ""
-#: stock/forms.py:152
+#: stock/forms.py:138
msgid "Unique serial numbers (must match quantity)"
msgstr ""
-#: stock/forms.py:154 stock/forms.py:238
+#: stock/forms.py:140 stock/forms.py:224
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/forms.py:194
+#: stock/forms.py:180
msgid "Stock item to install"
msgstr ""
-#: stock/forms.py:224
+#: stock/forms.py:210
msgid "Must not exceed available quantity"
msgstr ""
-#: stock/forms.py:236
+#: stock/forms.py:222
msgid "Destination location for uninstalled items"
msgstr ""
-#: stock/forms.py:240
+#: stock/forms.py:226
msgid "Confirm uninstall"
msgstr ""
-#: stock/forms.py:240
+#: stock/forms.py:226
msgid "Confirm removal of installed stock items"
msgstr ""
-#: stock/models.py:60 stock/models.py:614
+#: stock/models.py:60 stock/models.py:608
#: stock/templates/stock/item_base.html:417
msgid "Owner"
msgstr ""
-#: stock/models.py:61 stock/models.py:615
+#: stock/models.py:61 stock/models.py:609
msgid "Select Owner"
msgstr ""
-#: stock/models.py:342
+#: stock/models.py:336
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:378
+#: stock/models.py:372
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:388 stock/models.py:397
+#: stock/models.py:382 stock/models.py:391
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:389
+#: stock/models.py:383
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:411
+#: stock/models.py:405
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:417
+#: stock/models.py:411
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:424
+#: stock/models.py:418
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:466
+#: stock/models.py:460
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:475
+#: stock/models.py:469
msgid "Base part"
msgstr ""
-#: stock/models.py:483
+#: stock/models.py:477
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:488 stock/templates/stock/location.html:12
+#: stock/models.py:482 stock/templates/stock/location.html:12
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr "Kho hàng"
-#: stock/models.py:491
+#: stock/models.py:485
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:498
+#: stock/models.py:492
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:503 stock/templates/stock/item_base.html:299
+#: stock/models.py:497 stock/templates/stock/item_base.html:299
msgid "Installed In"
msgstr ""
-#: stock/models.py:506
+#: stock/models.py:500
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:522
+#: stock/models.py:516
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:536
+#: stock/models.py:530
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:540
+#: stock/models.py:534
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:549
+#: stock/models.py:543
msgid "Source Build"
msgstr ""
-#: stock/models.py:551
+#: stock/models.py:545
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:562
+#: stock/models.py:556
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:565
+#: stock/models.py:559
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:571
+#: stock/models.py:565
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:578
+#: stock/models.py:572
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:591
+#: stock/models.py:585
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:591
+#: stock/models.py:585
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:601 stock/templates/stock/item.html:111
+#: stock/models.py:595 stock/templates/stock/item.html:111
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:610
+#: stock/models.py:604
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:620
-msgid "Scheduled for deletion"
-msgstr ""
-
-#: stock/models.py:621
-msgid "This StockItem will be deleted by the background worker"
-msgstr ""
-
-#: stock/models.py:1084
+#: stock/models.py:1072
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1090
+#: stock/models.py:1078
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1096
+#: stock/models.py:1084
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1099
+#: stock/models.py:1087
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1102
+#: stock/models.py:1090
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1109
+#: stock/models.py:1097
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1267
+#: stock/models.py:1255
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1765
+#: stock/models.py:1753
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1822
+#: stock/models.py:1810
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1828
+#: stock/models.py:1816
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1846
+#: stock/models.py:1834
msgid "Test name"
msgstr ""
-#: stock/models.py:1852 templates/js/translated/table_filters.js:266
+#: stock/models.py:1840 templates/js/translated/table_filters.js:271
msgid "Test result"
msgstr ""
-#: stock/models.py:1858
+#: stock/models.py:1846
msgid "Test output value"
msgstr ""
-#: stock/models.py:1865
+#: stock/models.py:1853
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1871
+#: stock/models.py:1859
msgid "Test notes"
msgstr ""
-#: stock/serializers.py:171
+#: stock/serializers.py:173
msgid "Purchase price of this stock item"
msgstr ""
-#: stock/serializers.py:178
+#: stock/serializers.py:180
msgid "Purchase currency of this stock item"
msgstr ""
-#: stock/serializers.py:292
+#: stock/serializers.py:294
msgid "Enter number of stock items to serialize"
msgstr ""
-#: stock/serializers.py:307
+#: stock/serializers.py:309
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:313
+#: stock/serializers.py:315
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:324 stock/serializers.py:691
+#: stock/serializers.py:326 stock/serializers.py:814
msgid "Destination stock location"
msgstr ""
-#: stock/serializers.py:331
+#: stock/serializers.py:333
msgid "Optional note field"
msgstr ""
-#: stock/serializers.py:344
+#: stock/serializers.py:346
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:561
+#: stock/serializers.py:573
+msgid "Part must be salable"
+msgstr ""
+
+#: stock/serializers.py:577
+msgid "Item is allocated to a sales order"
+msgstr ""
+
+#: stock/serializers.py:581
+msgid "Item is allocated to a build order"
+msgstr ""
+
+#: stock/serializers.py:611
+msgid "Customer to assign stock items"
+msgstr ""
+
+#: stock/serializers.py:617
+msgid "Selected company is not a customer"
+msgstr ""
+
+#: stock/serializers.py:625
+msgid "Stock assignment notes"
+msgstr ""
+
+#: stock/serializers.py:635 stock/serializers.py:722
+msgid "A list of stock items must be provided"
+msgstr ""
+
+#: stock/serializers.py:684
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:589
+#: stock/serializers.py:712
msgid "Stock transaction notes"
msgstr ""
-#: stock/serializers.py:599
-msgid "A list of stock items must be provided"
-msgstr ""
-
#: stock/templates/stock/item.html:18
msgid "Stock Tracking Information"
msgstr ""
@@ -5572,7 +5781,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:137 stock/views.py:515
+#: stock/templates/stock/item.html:137 stock/views.py:482
msgid "Install Stock Item"
msgstr ""
@@ -5632,7 +5841,7 @@ msgstr ""
msgid "Transfer stock"
msgstr ""
-#: stock/templates/stock/item_base.html:85
+#: stock/templates/stock/item_base.html:85 templates/stock_table.html:53
msgid "Assign to customer"
msgstr ""
@@ -5694,7 +5903,7 @@ msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:190
-#: templates/js/translated/table_filters.js:247
+#: templates/js/translated/table_filters.js:252
msgid "Expired"
msgstr ""
@@ -5704,12 +5913,12 @@ msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:192
-#: templates/js/translated/table_filters.js:253
+#: templates/js/translated/table_filters.js:258
msgid "Stale"
msgstr ""
#: stock/templates/stock/item_base.html:199
-#: templates/js/translated/stock.js:1371
+#: templates/js/translated/stock.js:1535
msgid "Last Updated"
msgstr ""
@@ -5738,13 +5947,11 @@ msgid "This stock item has not passed all required tests"
msgstr ""
#: stock/templates/stock/item_base.html:255
-#, python-format
-msgid "This stock item is allocated to Sales Order %(link)s (Quantity: %(qty)s)"
+msgid "This stock item is allocated to Sales Order"
msgstr ""
#: stock/templates/stock/item_base.html:263
-#, python-format
-msgid "This stock item is allocated to Build %(link)s (Quantity: %(qty)s)"
+msgid "This stock item is allocated to Build Order"
msgstr ""
#: stock/templates/stock/item_base.html:269
@@ -5760,7 +5967,7 @@ msgid "This stock item will be automatically deleted when all stock is depleted.
msgstr ""
#: stock/templates/stock/item_base.html:318
-#: templates/js/translated/build.js:1035
+#: templates/js/translated/build.js:1040
msgid "No location set"
msgstr ""
@@ -5910,7 +6117,7 @@ msgstr ""
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:912
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:879
msgid "Convert Stock Item"
msgstr ""
@@ -5935,8 +6142,7 @@ msgstr ""
msgid "Edit Stock Location"
msgstr ""
-#: stock/views.py:269 stock/views.py:891 stock/views.py:1017
-#: stock/views.py:1299
+#: stock/views.py:269 stock/views.py:858 stock/views.py:984 stock/views.py:1266
msgid "Owner is required (ownership control is enabled)"
msgstr ""
@@ -5945,86 +6151,78 @@ msgid "Stock Location QR code"
msgstr ""
#: stock/views.py:303
-msgid "Assign to Customer"
-msgstr ""
-
-#: stock/views.py:312
-msgid "Customer must be specified"
-msgstr ""
-
-#: stock/views.py:336
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:345
+#: stock/views.py:312
msgid "Specify a valid location"
msgstr ""
-#: stock/views.py:356
+#: stock/views.py:323
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:367
+#: stock/views.py:334
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:384
+#: stock/views.py:351
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:489
+#: stock/views.py:456
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:663
+#: stock/views.py:630
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:760 templates/js/translated/stock.js:730
+#: stock/views.py:727 templates/js/translated/stock.js:887
msgid "Confirm stock adjustment"
msgstr ""
-#: stock/views.py:771
+#: stock/views.py:738
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:793 templates/js/translated/stock.js:319
+#: stock/views.py:760 templates/js/translated/stock.js:323
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:943
+#: stock/views.py:910
msgid "Create new Stock Location"
msgstr ""
-#: stock/views.py:1044
+#: stock/views.py:1011
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1186 templates/js/translated/stock.js:299
+#: stock/views.py:1153 templates/js/translated/stock.js:303
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1268
+#: stock/views.py:1235
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1368
+#: stock/views.py:1335
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:1381
+#: stock/views.py:1348
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1392
+#: stock/views.py:1359
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1399
+#: stock/views.py:1366
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1408
+#: stock/views.py:1375
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -6044,6 +6242,14 @@ msgstr ""
msgid "The requested page does not exist"
msgstr ""
+#: templates/503.html:10 templates/503.html:35
+msgid "Site is in Maintenance"
+msgstr ""
+
+#: templates/503.html:41
+msgid "The site is currently in maintenance and should be up again soon!"
+msgstr ""
+
#: templates/InvenTree/index.html:7
msgid "Index"
msgstr ""
@@ -6153,7 +6359,7 @@ msgid "Server Settings"
msgstr ""
#: templates/InvenTree/settings/login.html:9
-#: templates/InvenTree/settings/sidebar.html:28
+#: templates/InvenTree/settings/sidebar.html:29
msgid "Login Settings"
msgstr ""
@@ -6161,6 +6367,24 @@ msgstr ""
msgid "Signup"
msgstr ""
+#: templates/InvenTree/settings/mixins/settings.html:4
+#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:118
+msgid "Settings"
+msgstr "Cài đặt"
+
+#: templates/InvenTree/settings/mixins/urls.html:4
+msgid "URLs"
+msgstr ""
+
+#: templates/InvenTree/settings/mixins/urls.html:6
+#, python-format
+msgid "The Base-URL for this plugin is %(base)s."
+msgstr ""
+
+#: templates/InvenTree/settings/mixins/urls.html:21
+msgid "open in new tab"
+msgstr ""
+
#: templates/InvenTree/settings/part.html:7
msgid "Part Settings"
msgstr ""
@@ -6177,6 +6401,126 @@ msgstr ""
msgid "Part Parameter Templates"
msgstr ""
+#: templates/InvenTree/settings/plugin.html:10
+msgid "Plugin Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:16
+msgid "Changing the settings below require you to immediatly restart InvenTree. Do not change this while under active usage."
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:32
+msgid "Plugin list"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:37
+#: templates/js/translated/plugin.js:15
+msgid "Install Plugin"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:46 templates/navbar.html:111
+#: users/models.py:39
+msgid "Admin"
+msgstr "Quản trị"
+
+#: templates/InvenTree/settings/plugin.html:48
+#: templates/InvenTree/settings/plugin_settings.html:28
+msgid "Author"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:50
+#: templates/InvenTree/settings/plugin_settings.html:43
+msgid "Version"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:73
+#, python-format
+msgid "has %(name)s"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:91
+msgid "Inactive plugins"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:114
+msgid "Plugin Error Stack"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:123
+msgid "Stage"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:125
+msgid "Message"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:10
+#, python-format
+msgid "Plugin details for %(name)s"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:17
+msgid "Plugin information"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:48
+msgid "no version information supplied"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:62
+msgid "License"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:70
+msgid "The code information is pulled from the latest git commit for this plugin. It might not reflect official version numbers or information but the actual code running."
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:74
+msgid "Package information"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:80
+msgid "Installation method"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:83
+msgid "This plugin was installed as a package"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:85
+msgid "This plugin was found in a local InvenTree path"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:91
+msgid "Installation path"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:97
+msgid "Commit Author"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:101
+#: templates/about.html:47
+msgid "Commit Date"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:105
+#: templates/about.html:40
+msgid "Commit Hash"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:109
+msgid "Commit Message"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:114
+msgid "Sign Status"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:119
+msgid "Sign Key"
+msgstr ""
+
#: templates/InvenTree/settings/po.html:7
msgid "Purchase Order Settings"
msgstr ""
@@ -6194,86 +6538,82 @@ msgstr ""
msgid "Edit setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:11 templates/navbar.html:93
-msgid "Settings"
-msgstr "Cài đặt"
-
-#: templates/InvenTree/settings/settings.html:65
+#: templates/InvenTree/settings/settings.html:74
msgid "Edit Global Setting"
msgstr "Chỉnh sửa cài đặt toàn cục"
-#: templates/InvenTree/settings/settings.html:65
+#: templates/InvenTree/settings/settings.html:74
msgid "Edit User Setting"
msgstr "Chỉnh sửa cài đặt người dùng"
-#: templates/InvenTree/settings/settings.html:148
+#: templates/InvenTree/settings/settings.html:157
msgid "No category parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:170
-#: templates/InvenTree/settings/settings.html:269
+#: templates/InvenTree/settings/settings.html:179
+#: templates/InvenTree/settings/settings.html:278
msgid "Edit Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:171
-#: templates/InvenTree/settings/settings.html:270
+#: templates/InvenTree/settings/settings.html:180
+#: templates/InvenTree/settings/settings.html:279
msgid "Delete Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:249
+#: templates/InvenTree/settings/settings.html:258
msgid "No part parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:253
+#: templates/InvenTree/settings/settings.html:262
msgid "ID"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:5
+#: templates/InvenTree/settings/sidebar.html:6
#: templates/InvenTree/settings/user_settings.html:9
msgid "User Settings"
msgstr "Cài đặt người dùng"
-#: templates/InvenTree/settings/sidebar.html:8
+#: templates/InvenTree/settings/sidebar.html:9
#: templates/InvenTree/settings/user.html:12
msgid "Account Settings"
msgstr "Cài đặt tài khoản"
-#: templates/InvenTree/settings/sidebar.html:10
+#: templates/InvenTree/settings/sidebar.html:11
#: templates/InvenTree/settings/user_display.html:9
msgid "Display Settings"
msgstr "Thiết đặt hiển thị"
-#: templates/InvenTree/settings/sidebar.html:12
+#: templates/InvenTree/settings/sidebar.html:13
msgid "Home Page"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:14
+#: templates/InvenTree/settings/sidebar.html:15
#: templates/InvenTree/settings/user_search.html:9
msgid "Search Settings"
msgstr "Cài đặt tìm kiếm"
-#: templates/InvenTree/settings/sidebar.html:16
+#: templates/InvenTree/settings/sidebar.html:17
msgid "Label Printing"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:18
-#: templates/InvenTree/settings/sidebar.html:34
+#: templates/InvenTree/settings/sidebar.html:19
+#: templates/InvenTree/settings/sidebar.html:35
msgid "Reporting"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:23
+#: templates/InvenTree/settings/sidebar.html:24
msgid "Global Settings"
msgstr "Cài đặt toàn cục"
-#: templates/InvenTree/settings/sidebar.html:26
+#: templates/InvenTree/settings/sidebar.html:27
msgid "Server Configuration"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:32
+#: templates/InvenTree/settings/sidebar.html:33
msgid "Currencies"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:38
+#: templates/InvenTree/settings/sidebar.html:39
msgid "Categories"
msgstr ""
@@ -6491,8 +6831,8 @@ msgstr ""
#: templates/about.html:11 templates/about.html:105
#: templates/js/translated/bom.js:283 templates/js/translated/modals.js:53
-#: templates/js/translated/modals.js:567 templates/js/translated/modals.js:661
-#: templates/js/translated/modals.js:964 templates/modals.html:15
+#: templates/js/translated/modals.js:568 templates/js/translated/modals.js:662
+#: templates/js/translated/modals.js:965 templates/modals.html:15
#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
msgid "Close"
msgstr ""
@@ -6513,14 +6853,6 @@ msgstr ""
msgid "Update Available"
msgstr ""
-#: templates/about.html:40
-msgid "Commit Hash"
-msgstr ""
-
-#: templates/about.html:47
-msgid "Commit Date"
-msgstr ""
-
#: templates/about.html:53
msgid "InvenTree Documentation"
msgstr ""
@@ -6718,8 +7050,9 @@ msgstr ""
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1129
-#: templates/js/translated/build.js:1749
+#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1134
+#: templates/js/translated/build.js:1755
+#: templates/js/translated/table_filters.js:178
msgid "Available"
msgstr ""
@@ -6765,11 +7098,11 @@ msgstr ""
msgid "Remote image must not exceed maximum allowable file size"
msgstr ""
-#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1034
+#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1035
msgid "No Response"
msgstr ""
-#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1035
+#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1036
msgid "No response from the InvenTree server"
msgstr ""
@@ -6781,35 +7114,35 @@ msgstr ""
msgid "API request returned error code 400"
msgstr ""
-#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1044
+#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1045
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1045
+#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1046
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1049
+#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1050
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1050
+#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1051
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1054
+#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1055
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1055
+#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1056
msgid "The requested resource could not be located on the server"
msgstr ""
-#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1059
+#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1060
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1060
+#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1061
msgid "Connection timeout while requesting data from server"
msgstr ""
@@ -6878,7 +7211,7 @@ msgid "Unknown response from server"
msgstr ""
#: templates/js/translated/barcode.js:140
-#: templates/js/translated/modals.js:1024
+#: templates/js/translated/modals.js:1025
msgid "Invalid server response"
msgstr ""
@@ -6886,7 +7219,7 @@ msgstr ""
msgid "Scan barcode data below"
msgstr ""
-#: templates/js/translated/barcode.js:280 templates/navbar.html:69
+#: templates/js/translated/barcode.js:280 templates/navbar.html:94
msgid "Scan Barcode"
msgstr ""
@@ -6906,7 +7239,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:682
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:839
msgid "Remove stock item"
msgstr ""
@@ -6976,7 +7309,7 @@ msgstr ""
msgid "Substitutes Available"
msgstr ""
-#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1111
+#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1116
msgid "Variant stock allowed"
msgstr ""
@@ -7000,11 +7333,6 @@ msgstr ""
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1183
-#: templates/js/translated/order.js:1319
-msgid "Actions"
-msgstr ""
-
#: templates/js/translated/bom.js:616
msgid "Validate BOM Item"
msgstr ""
@@ -7025,7 +7353,7 @@ msgstr ""
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:718 templates/js/translated/build.js:855
+#: templates/js/translated/bom.js:718 templates/js/translated/build.js:860
msgid "No BOM items found"
msgstr ""
@@ -7033,7 +7361,7 @@ msgstr ""
msgid "Are you sure you want to delete this BOM item?"
msgstr ""
-#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1095
+#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1100
msgid "Required Part"
msgstr ""
@@ -7041,165 +7369,165 @@ msgstr ""
msgid "Inherited from parent BOM"
msgstr ""
-#: templates/js/translated/build.js:78
+#: templates/js/translated/build.js:83
msgid "Edit Build Order"
msgstr ""
-#: templates/js/translated/build.js:112
+#: templates/js/translated/build.js:117
msgid "Create Build Order"
msgstr ""
-#: templates/js/translated/build.js:133
+#: templates/js/translated/build.js:138
msgid "Allocate stock items to this build output"
msgstr ""
-#: templates/js/translated/build.js:144
+#: templates/js/translated/build.js:149
msgid "Unallocate stock from build output"
msgstr ""
-#: templates/js/translated/build.js:153
+#: templates/js/translated/build.js:158
msgid "Complete build output"
msgstr ""
-#: templates/js/translated/build.js:161
+#: templates/js/translated/build.js:166
msgid "Delete build output"
msgstr ""
-#: templates/js/translated/build.js:184
+#: templates/js/translated/build.js:189
msgid "Are you sure you wish to unallocate stock items from this build?"
msgstr ""
-#: templates/js/translated/build.js:202
+#: templates/js/translated/build.js:207
msgid "Unallocate Stock Items"
msgstr ""
-#: templates/js/translated/build.js:220
+#: templates/js/translated/build.js:225
msgid "Select Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:221
+#: templates/js/translated/build.js:226
msgid "At least one build output must be selected"
msgstr ""
-#: templates/js/translated/build.js:275
+#: templates/js/translated/build.js:280
msgid "Output"
msgstr ""
-#: templates/js/translated/build.js:291
+#: templates/js/translated/build.js:296
msgid "Complete Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:386
+#: templates/js/translated/build.js:391
msgid "No build order allocations found"
msgstr ""
-#: templates/js/translated/build.js:424 templates/js/translated/order.js:1193
+#: templates/js/translated/build.js:429 templates/js/translated/order.js:1848
msgid "Location not specified"
msgstr ""
-#: templates/js/translated/build.js:603
+#: templates/js/translated/build.js:608
msgid "No active build outputs found"
msgstr ""
-#: templates/js/translated/build.js:1052 templates/js/translated/build.js:1760
-#: templates/js/translated/order.js:1326
+#: templates/js/translated/build.js:1057 templates/js/translated/build.js:1766
+#: templates/js/translated/order.js:1982
msgid "Edit stock allocation"
msgstr ""
-#: templates/js/translated/build.js:1054 templates/js/translated/build.js:1761
-#: templates/js/translated/order.js:1327
+#: templates/js/translated/build.js:1059 templates/js/translated/build.js:1767
+#: templates/js/translated/order.js:1983
msgid "Delete stock allocation"
msgstr ""
-#: templates/js/translated/build.js:1072
+#: templates/js/translated/build.js:1077
msgid "Edit Allocation"
msgstr ""
-#: templates/js/translated/build.js:1082
+#: templates/js/translated/build.js:1087
msgid "Remove Allocation"
msgstr ""
-#: templates/js/translated/build.js:1107
+#: templates/js/translated/build.js:1112
msgid "Substitute parts available"
msgstr ""
-#: templates/js/translated/build.js:1124
+#: templates/js/translated/build.js:1129
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:1134 templates/js/translated/build.js:1360
-#: templates/js/translated/build.js:1756 templates/js/translated/order.js:1556
+#: templates/js/translated/build.js:1139 templates/js/translated/build.js:1365
+#: templates/js/translated/build.js:1762 templates/js/translated/order.js:2227
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:1190 templates/js/translated/order.js:1610
+#: templates/js/translated/build.js:1195 templates/js/translated/order.js:2307
msgid "Build stock"
msgstr ""
-#: templates/js/translated/build.js:1194 templates/stock_table.html:52
+#: templates/js/translated/build.js:1199 templates/stock_table.html:52
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:1197 templates/js/translated/order.js:1603
+#: templates/js/translated/build.js:1202 templates/js/translated/order.js:2300
msgid "Allocate stock"
msgstr ""
-#: templates/js/translated/build.js:1262
+#: templates/js/translated/build.js:1267 templates/js/translated/order.js:1499
msgid "Specify stock allocation quantity"
msgstr ""
-#: templates/js/translated/build.js:1333 templates/js/translated/label.js:134
-#: templates/js/translated/report.js:225
+#: templates/js/translated/build.js:1338 templates/js/translated/label.js:134
+#: templates/js/translated/order.js:1550 templates/js/translated/report.js:225
msgid "Select Parts"
msgstr ""
-#: templates/js/translated/build.js:1334
+#: templates/js/translated/build.js:1339 templates/js/translated/order.js:1551
msgid "You must select at least one part to allocate"
msgstr ""
-#: templates/js/translated/build.js:1348
+#: templates/js/translated/build.js:1353 templates/js/translated/order.js:1565
msgid "Select source location (leave blank to take from all locations)"
msgstr ""
-#: templates/js/translated/build.js:1377
+#: templates/js/translated/build.js:1382 templates/js/translated/order.js:1600
msgid "Confirm stock allocation"
msgstr ""
-#: templates/js/translated/build.js:1378
+#: templates/js/translated/build.js:1383
msgid "Allocate Stock Items to Build Order"
msgstr ""
-#: templates/js/translated/build.js:1389
+#: templates/js/translated/build.js:1394 templates/js/translated/order.js:1613
msgid "No matching stock locations"
msgstr ""
-#: templates/js/translated/build.js:1451
+#: templates/js/translated/build.js:1464 templates/js/translated/order.js:1690
msgid "No matching stock items"
msgstr ""
-#: templates/js/translated/build.js:1576
+#: templates/js/translated/build.js:1582
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:1593 templates/js/translated/part.js:1147
-#: templates/js/translated/part.js:1558 templates/js/translated/stock.js:1176
-#: templates/js/translated/stock.js:1953
+#: templates/js/translated/build.js:1599 templates/js/translated/part.js:1147
+#: templates/js/translated/part.js:1558 templates/js/translated/stock.js:1333
+#: templates/js/translated/stock.js:2128
msgid "Select"
msgstr ""
-#: templates/js/translated/build.js:1613
+#: templates/js/translated/build.js:1619
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1674 templates/js/translated/stock.js:2172
+#: templates/js/translated/build.js:1680 templates/js/translated/stock.js:2347
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:1686
+#: templates/js/translated/build.js:1692
msgid "No information"
msgstr ""
-#: templates/js/translated/build.js:1737
+#: templates/js/translated/build.js:1743
msgid "No parts allocated for"
msgstr ""
@@ -7219,7 +7547,7 @@ msgstr ""
msgid "Delete Manufacturer Part"
msgstr ""
-#: templates/js/translated/company.js:165 templates/js/translated/order.js:90
+#: templates/js/translated/company.js:165 templates/js/translated/order.js:248
msgid "Add Supplier"
msgstr ""
@@ -7354,20 +7682,20 @@ msgstr ""
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1072 templates/modals.html:19
+#: templates/js/translated/forms.js:1078 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1463
+#: templates/js/translated/forms.js:1469
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1667
+#: templates/js/translated/forms.js:1673
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1884
+#: templates/js/translated/forms.js:1893
msgid "Clear input"
msgstr ""
@@ -7380,7 +7708,7 @@ msgid "NO"
msgstr ""
#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:706
+#: templates/js/translated/stock.js:863
msgid "Select Stock Items"
msgstr ""
@@ -7429,62 +7757,62 @@ msgstr ""
msgid "Select Label Template"
msgstr ""
-#: templates/js/translated/modals.js:75 templates/js/translated/modals.js:119
-#: templates/js/translated/modals.js:593
+#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:120
+#: templates/js/translated/modals.js:594
msgid "Cancel"
msgstr ""
-#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:118
-#: templates/js/translated/modals.js:660 templates/js/translated/modals.js:963
+#: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119
+#: templates/js/translated/modals.js:661 templates/js/translated/modals.js:964
#: templates/modals.html:28 templates/modals.html:51
msgid "Submit"
msgstr ""
-#: templates/js/translated/modals.js:117
+#: templates/js/translated/modals.js:118
msgid "Form Title"
msgstr ""
-#: templates/js/translated/modals.js:380
+#: templates/js/translated/modals.js:381
msgid "Waiting for server..."
msgstr ""
-#: templates/js/translated/modals.js:539
+#: templates/js/translated/modals.js:540
msgid "Show Error Information"
msgstr ""
-#: templates/js/translated/modals.js:592
+#: templates/js/translated/modals.js:593
msgid "Accept"
msgstr ""
-#: templates/js/translated/modals.js:649
+#: templates/js/translated/modals.js:650
msgid "Loading Data"
msgstr ""
-#: templates/js/translated/modals.js:915
+#: templates/js/translated/modals.js:916
msgid "Invalid response from server"
msgstr ""
-#: templates/js/translated/modals.js:915
+#: templates/js/translated/modals.js:916
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/translated/modals.js:927
+#: templates/js/translated/modals.js:928
msgid "Error posting form data"
msgstr ""
-#: templates/js/translated/modals.js:1024
+#: templates/js/translated/modals.js:1025
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/translated/modals.js:1039
+#: templates/js/translated/modals.js:1040
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/translated/modals.js:1040
+#: templates/js/translated/modals.js:1041
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/translated/modals.js:1063
+#: templates/js/translated/modals.js:1064
msgid "Error requesting form data"
msgstr ""
@@ -7512,176 +7840,245 @@ msgstr ""
msgid "Order ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:256
+#: templates/js/translated/model_renderers.js:253
+msgid "Shipment ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:273
msgid "Category ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:293
+#: templates/js/translated/model_renderers.js:310
msgid "Manufacturer Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:322
+#: templates/js/translated/model_renderers.js:339
msgid "Supplier Part ID"
msgstr ""
-#: templates/js/translated/order.js:48
+#: templates/js/translated/order.js:75
+msgid "No stock items have been allocated to this shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:80
+msgid "The following stock items will be shipped"
+msgstr ""
+
+#: templates/js/translated/order.js:120
+msgid "Complete Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:126
+msgid "Confirm Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:181
+msgid "Create New Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:206
msgid "Add Customer"
msgstr ""
-#: templates/js/translated/order.js:73
+#: templates/js/translated/order.js:231
msgid "Create Sales Order"
msgstr ""
-#: templates/js/translated/order.js:208
+#: templates/js/translated/order.js:366
msgid "Export Order"
msgstr ""
-#: templates/js/translated/order.js:211 templates/js/translated/stock.js:505
+#: templates/js/translated/order.js:369 templates/js/translated/stock.js:509
msgid "Format"
msgstr ""
-#: templates/js/translated/order.js:212 templates/js/translated/stock.js:506
+#: templates/js/translated/order.js:370 templates/js/translated/stock.js:510
msgid "Select file format"
msgstr ""
-#: templates/js/translated/order.js:300
+#: templates/js/translated/order.js:460
msgid "Select Line Items"
msgstr ""
-#: templates/js/translated/order.js:301
+#: templates/js/translated/order.js:461
msgid "At least one line item must be selected"
msgstr ""
-#: templates/js/translated/order.js:326
+#: templates/js/translated/order.js:486
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:360 templates/js/translated/stock.js:1755
+#: templates/js/translated/order.js:520 templates/js/translated/stock.js:1930
msgid "Stock Status"
msgstr ""
-#: templates/js/translated/order.js:427
+#: templates/js/translated/order.js:587
msgid "Order Code"
msgstr ""
-#: templates/js/translated/order.js:428
+#: templates/js/translated/order.js:588
msgid "Ordered"
msgstr ""
-#: templates/js/translated/order.js:430
+#: templates/js/translated/order.js:590
msgid "Receive"
msgstr ""
-#: templates/js/translated/order.js:449
+#: templates/js/translated/order.js:609
msgid "Confirm receipt of items"
msgstr ""
-#: templates/js/translated/order.js:450
+#: templates/js/translated/order.js:610
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:627 templates/js/translated/part.js:746
+#: templates/js/translated/order.js:790 templates/js/translated/part.js:746
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:659 templates/js/translated/order.js:1062
+#: templates/js/translated/order.js:815 templates/js/translated/order.js:1230
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:771 templates/js/translated/order.js:1645
+#: templates/js/translated/order.js:936 templates/js/translated/order.js:2356
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:783 templates/js/translated/order.js:1656
+#: templates/js/translated/order.js:948 templates/js/translated/order.js:2367
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/order.js:822
+#: templates/js/translated/order.js:987
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:849 templates/js/translated/order.js:1466
+#: templates/js/translated/order.js:1014 templates/js/translated/order.js:2138
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:903 templates/js/translated/order.js:1491
+#: templates/js/translated/order.js:1068 templates/js/translated/order.js:2163
#: templates/js/translated/part.js:1775 templates/js/translated/part.js:1986
msgid "Unit Price"
msgstr ""
-#: templates/js/translated/order.js:918 templates/js/translated/order.js:1507
+#: templates/js/translated/order.js:1083 templates/js/translated/order.js:2179
msgid "Total Price"
msgstr ""
-#: templates/js/translated/order.js:996 templates/js/translated/order.js:1616
+#: templates/js/translated/order.js:1161 templates/js/translated/order.js:2313
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:997
+#: templates/js/translated/order.js:1162 templates/js/translated/order.js:2317
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:1001 templates/js/translated/part.js:878
+#: templates/js/translated/order.js:1166 templates/js/translated/part.js:878
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:1038
+#: templates/js/translated/order.js:1206
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:1076
+#: templates/js/translated/order.js:1244
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:1154
+#: templates/js/translated/order.js:1322
+msgid "Edit shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1325
+msgid "Complete shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1330
+msgid "Delete shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1350
+msgid "Edit Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1367
+msgid "Delete Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1401
+msgid "No matching shipments found"
+msgstr ""
+
+#: templates/js/translated/order.js:1411
+msgid "Shipment Reference"
+msgstr ""
+
+#: templates/js/translated/order.js:1435
+msgid "Not shipped"
+msgstr ""
+
+#: templates/js/translated/order.js:1441
+msgid "Tracking"
+msgstr ""
+
+#: templates/js/translated/order.js:1601
+msgid "Allocate Stock Items to Sales Order"
+msgstr ""
+
+#: templates/js/translated/order.js:1809
msgid "No sales order allocations found"
msgstr ""
-#: templates/js/translated/order.js:1247
+#: templates/js/translated/order.js:1898
msgid "Edit Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1264
+#: templates/js/translated/order.js:1915
msgid "Confirm Delete Operation"
msgstr ""
-#: templates/js/translated/order.js:1265
+#: templates/js/translated/order.js:1916
msgid "Delete Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1307
+#: templates/js/translated/order.js:1959 templates/js/translated/order.js:2048
+#: templates/js/translated/stock.js:1249
+msgid "Shipped to customer"
+msgstr ""
+
+#: templates/js/translated/order.js:1967 templates/js/translated/order.js:2057
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:1556
-msgid "Fulfilled"
-msgstr ""
-
-#: templates/js/translated/order.js:1600
+#: templates/js/translated/order.js:2297
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:1606
+#: templates/js/translated/order.js:2303
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:1613 templates/js/translated/order.js:1792
+#: templates/js/translated/order.js:2310 templates/js/translated/order.js:2476
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:1617
-msgid "Delete line item "
+#: templates/js/translated/order.js:2321
+msgid "Cannot be deleted as items have been shipped"
msgstr ""
-#: templates/js/translated/order.js:1740
-msgid "Allocate Stock Item"
+#: templates/js/translated/order.js:2324
+msgid "Cannot be deleted as items have been allocated"
msgstr ""
-#: templates/js/translated/order.js:1800
+#: templates/js/translated/order.js:2382
+msgid "Allocate Serial Numbers"
+msgstr ""
+
+#: templates/js/translated/order.js:2484
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:1814
+#: templates/js/translated/order.js:2498
msgid "No matching line items"
msgstr ""
@@ -7826,12 +8223,12 @@ msgid "No category"
msgstr ""
#: templates/js/translated/part.js:1230
-#: templates/js/translated/table_filters.js:381
+#: templates/js/translated/table_filters.js:412
msgid "Low stock"
msgstr ""
#: templates/js/translated/part.js:1321 templates/js/translated/part.js:1493
-#: templates/js/translated/stock.js:1914
+#: templates/js/translated/stock.js:2089
msgid "Display as list"
msgstr ""
@@ -7839,7 +8236,7 @@ msgstr ""
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1512 templates/js/translated/stock.js:1933
+#: templates/js/translated/part.js:1512 templates/js/translated/stock.js:2108
msgid "Display as tree"
msgstr ""
@@ -7847,7 +8244,7 @@ msgstr ""
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:1590 templates/js/translated/stock.js:1977
+#: templates/js/translated/part.js:1590 templates/js/translated/stock.js:2152
msgid "Path"
msgstr ""
@@ -7855,11 +8252,11 @@ msgstr ""
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1685 templates/js/translated/stock.js:898
+#: templates/js/translated/part.js:1685 templates/js/translated/stock.js:1055
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1686 templates/js/translated/stock.js:899
+#: templates/js/translated/part.js:1686 templates/js/translated/stock.js:1056
msgid "Delete test result"
msgstr ""
@@ -7898,6 +8295,10 @@ msgstr ""
msgid "Single Price Difference"
msgstr ""
+#: templates/js/translated/plugin.js:22
+msgid "The Plugin was installed"
+msgstr ""
+
#: templates/js/translated/report.js:67
msgid "items selected"
msgstr ""
@@ -7964,300 +8365,316 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/stock.js:71
+#: templates/js/translated/stock.js:72
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:89 templates/js/translated/stock.js:168
+#: templates/js/translated/stock.js:90 templates/js/translated/stock.js:172
msgid "Next available serial number"
msgstr ""
-#: templates/js/translated/stock.js:91 templates/js/translated/stock.js:170
+#: templates/js/translated/stock.js:92 templates/js/translated/stock.js:174
msgid "Latest serial number"
msgstr "Số seri mới nhất"
-#: templates/js/translated/stock.js:105
+#: templates/js/translated/stock.js:100
+msgid "Confirm Stock Serialization"
+msgstr ""
+
+#: templates/js/translated/stock.js:109
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:141
+#: templates/js/translated/stock.js:145
msgid "New Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:181
+#: templates/js/translated/stock.js:185
msgid "This part cannot be serialized"
msgstr ""
-#: templates/js/translated/stock.js:220
+#: templates/js/translated/stock.js:224
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: templates/js/translated/stock.js:226
+#: templates/js/translated/stock.js:230
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: templates/js/translated/stock.js:369
+#: templates/js/translated/stock.js:373
msgid "Created new stock item"
msgstr ""
-#: templates/js/translated/stock.js:382
+#: templates/js/translated/stock.js:386
msgid "Created multiple stock items"
msgstr ""
-#: templates/js/translated/stock.js:407
+#: templates/js/translated/stock.js:411
msgid "Find Serial Number"
msgstr ""
-#: templates/js/translated/stock.js:411 templates/js/translated/stock.js:412
+#: templates/js/translated/stock.js:415 templates/js/translated/stock.js:416
msgid "Enter serial number"
msgstr ""
-#: templates/js/translated/stock.js:428
+#: templates/js/translated/stock.js:432
msgid "Enter a serial number"
msgstr ""
-#: templates/js/translated/stock.js:448
+#: templates/js/translated/stock.js:452
msgid "No matching serial number"
msgstr ""
-#: templates/js/translated/stock.js:457
+#: templates/js/translated/stock.js:461
msgid "More than one matching result found"
msgstr ""
-#: templates/js/translated/stock.js:502
+#: templates/js/translated/stock.js:506
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:513
+#: templates/js/translated/stock.js:517
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:514
+#: templates/js/translated/stock.js:518
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:556
+#: templates/js/translated/stock.js:627
+msgid "Confirm stock assignment"
+msgstr ""
+
+#: templates/js/translated/stock.js:628
+msgid "Assign Stock to Customer"
+msgstr ""
+
+#: templates/js/translated/stock.js:713
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:557
+#: templates/js/translated/stock.js:714
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:563
+#: templates/js/translated/stock.js:720
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:564
+#: templates/js/translated/stock.js:721
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:568
+#: templates/js/translated/stock.js:725
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:569
+#: templates/js/translated/stock.js:726
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:573
+#: templates/js/translated/stock.js:730
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:574 users/models.py:200
+#: templates/js/translated/stock.js:731 users/models.py:202
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:578 templates/stock_table.html:56
+#: templates/js/translated/stock.js:735 templates/stock_table.html:57
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:667
+#: templates/js/translated/stock.js:824
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:667
+#: templates/js/translated/stock.js:824
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:707
+#: templates/js/translated/stock.js:864
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:865
+#: templates/js/translated/stock.js:1022
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:867
+#: templates/js/translated/stock.js:1024
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:872
+#: templates/js/translated/stock.js:1029
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:894
+#: templates/js/translated/stock.js:1051
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:920
+#: templates/js/translated/stock.js:1077
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:977
+#: templates/js/translated/stock.js:1134
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:1084
+#: templates/js/translated/stock.js:1241
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:1088
+#: templates/js/translated/stock.js:1245
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:1092
-msgid "Shipped to customer"
-msgstr ""
-
-#: templates/js/translated/stock.js:1096
+#: templates/js/translated/stock.js:1253
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:1102
+#: templates/js/translated/stock.js:1259
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:1260
+#: templates/js/translated/stock.js:1417
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1265
+#: templates/js/translated/stock.js:1422
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1268
+#: templates/js/translated/stock.js:1425
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1272
+#: templates/js/translated/stock.js:1429
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1274
+#: templates/js/translated/stock.js:1431
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1278
-msgid "Stock item has been allocated"
+#: templates/js/translated/stock.js:1437
+msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1282
+#: templates/js/translated/stock.js:1439
+msgid "Stock item has been fully allocated"
+msgstr ""
+
+#: templates/js/translated/stock.js:1441
+msgid "Stock item has been partially allocated"
+msgstr ""
+
+#: templates/js/translated/stock.js:1446
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1289
+#: templates/js/translated/stock.js:1453
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1291
+#: templates/js/translated/stock.js:1455
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1293
+#: templates/js/translated/stock.js:1457
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1297
-#: templates/js/translated/table_filters.js:183
+#: templates/js/translated/stock.js:1461
+#: templates/js/translated/table_filters.js:188
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1347
+#: templates/js/translated/stock.js:1511
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1420
+#: templates/js/translated/stock.js:1584
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1458
+#: templates/js/translated/stock.js:1622
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1479 templates/js/translated/stock.js:1527
+#: templates/js/translated/stock.js:1643 templates/js/translated/stock.js:1691
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1567
+#: templates/js/translated/stock.js:1731
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1594
+#: templates/js/translated/stock.js:1758
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:1596
+#: templates/js/translated/stock.js:1760
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:1770
+#: templates/js/translated/stock.js:1945
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:1784
+#: templates/js/translated/stock.js:1959
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:1785
+#: templates/js/translated/stock.js:1960
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:2009
+#: templates/js/translated/stock.js:2184
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:2031
+#: templates/js/translated/stock.js:2206
msgid "Details"
msgstr ""
-#: templates/js/translated/stock.js:2056
+#: templates/js/translated/stock.js:2231
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2075
+#: templates/js/translated/stock.js:2250
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2094
+#: templates/js/translated/stock.js:2269
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2112
+#: templates/js/translated/stock.js:2287
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2135
+#: templates/js/translated/stock.js:2310
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2143
+#: templates/js/translated/stock.js:2318
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2184
+#: templates/js/translated/stock.js:2359
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2185
+#: templates/js/translated/stock.js:2360
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2236
+#: templates/js/translated/stock.js:2411
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2287
+#: templates/js/translated/stock.js:2462
msgid "Uninstall Stock Item"
msgstr ""
@@ -8278,7 +8695,7 @@ msgid "Allow Variant Stock"
msgstr ""
#: templates/js/translated/table_filters.js:110
-#: templates/js/translated/table_filters.js:178
+#: templates/js/translated/table_filters.js:183
msgid "Include sublocations"
msgstr ""
@@ -8288,54 +8705,54 @@ msgstr ""
#: templates/js/translated/table_filters.js:121
#: templates/js/translated/table_filters.js:122
-#: templates/js/translated/table_filters.js:358
+#: templates/js/translated/table_filters.js:389
msgid "Include subcategories"
msgstr ""
#: templates/js/translated/table_filters.js:126
-#: templates/js/translated/table_filters.js:393
+#: templates/js/translated/table_filters.js:424
msgid "Subscribed"
msgstr ""
#: templates/js/translated/table_filters.js:136
-#: templates/js/translated/table_filters.js:213
+#: templates/js/translated/table_filters.js:218
msgid "Is Serialized"
msgstr ""
#: templates/js/translated/table_filters.js:139
-#: templates/js/translated/table_filters.js:220
+#: templates/js/translated/table_filters.js:225
msgid "Serial number GTE"
msgstr ""
#: templates/js/translated/table_filters.js:140
-#: templates/js/translated/table_filters.js:221
+#: templates/js/translated/table_filters.js:226
msgid "Serial number greater than or equal to"
msgstr ""
#: templates/js/translated/table_filters.js:143
-#: templates/js/translated/table_filters.js:224
+#: templates/js/translated/table_filters.js:229
msgid "Serial number LTE"
msgstr ""
#: templates/js/translated/table_filters.js:144
-#: templates/js/translated/table_filters.js:225
+#: templates/js/translated/table_filters.js:230
msgid "Serial number less than or equal to"
msgstr ""
#: templates/js/translated/table_filters.js:147
#: templates/js/translated/table_filters.js:148
-#: templates/js/translated/table_filters.js:216
-#: templates/js/translated/table_filters.js:217
+#: templates/js/translated/table_filters.js:221
+#: templates/js/translated/table_filters.js:222
msgid "Serial number"
msgstr ""
#: templates/js/translated/table_filters.js:152
-#: templates/js/translated/table_filters.js:234
+#: templates/js/translated/table_filters.js:239
msgid "Batch code"
msgstr ""
#: templates/js/translated/table_filters.js:163
-#: templates/js/translated/table_filters.js:348
+#: templates/js/translated/table_filters.js:379
msgid "Active parts"
msgstr ""
@@ -8356,101 +8773,111 @@ msgid "Item has been allocated"
msgstr ""
#: templates/js/translated/table_filters.js:179
-msgid "Include stock in sublocations"
+msgid "Stock is available for use"
msgstr ""
#: templates/js/translated/table_filters.js:184
-msgid "Show stock items which are depleted"
+msgid "Include stock in sublocations"
msgstr ""
#: templates/js/translated/table_filters.js:189
-msgid "Show items which are in stock"
-msgstr ""
-
-#: templates/js/translated/table_filters.js:193
-msgid "In Production"
+msgid "Show stock items which are depleted"
msgstr ""
#: templates/js/translated/table_filters.js:194
-msgid "Show items which are in production"
+msgid "Show items which are in stock"
msgstr ""
#: templates/js/translated/table_filters.js:198
-msgid "Include Variants"
+msgid "In Production"
msgstr ""
#: templates/js/translated/table_filters.js:199
-msgid "Include stock items for variant parts"
+msgid "Show items which are in production"
msgstr ""
#: templates/js/translated/table_filters.js:203
-msgid "Installed"
+msgid "Include Variants"
msgstr ""
#: templates/js/translated/table_filters.js:204
-msgid "Show stock items which are installed in another item"
+msgid "Include stock items for variant parts"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:208
+msgid "Installed"
msgstr ""
#: templates/js/translated/table_filters.js:209
+msgid "Show stock items which are installed in another item"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:214
msgid "Show items which have been assigned to a customer"
msgstr ""
-#: templates/js/translated/table_filters.js:229
-#: templates/js/translated/table_filters.js:230
+#: templates/js/translated/table_filters.js:234
+#: templates/js/translated/table_filters.js:235
msgid "Stock status"
msgstr ""
-#: templates/js/translated/table_filters.js:238
+#: templates/js/translated/table_filters.js:243
msgid "Has purchase price"
msgstr ""
-#: templates/js/translated/table_filters.js:239
+#: templates/js/translated/table_filters.js:244
msgid "Show stock items which have a purchase price set"
msgstr ""
-#: templates/js/translated/table_filters.js:248
+#: templates/js/translated/table_filters.js:253
msgid "Show stock items which have expired"
msgstr ""
-#: templates/js/translated/table_filters.js:254
+#: templates/js/translated/table_filters.js:259
msgid "Show stock which is close to expiring"
msgstr ""
-#: templates/js/translated/table_filters.js:285
+#: templates/js/translated/table_filters.js:290
msgid "Build status"
msgstr ""
-#: templates/js/translated/table_filters.js:313
-#: templates/js/translated/table_filters.js:330
+#: templates/js/translated/table_filters.js:303
+#: templates/js/translated/table_filters.js:344
+msgid "Assigned to me"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:320
+#: templates/js/translated/table_filters.js:331
+#: templates/js/translated/table_filters.js:352
msgid "Order status"
msgstr ""
-#: templates/js/translated/table_filters.js:318
-#: templates/js/translated/table_filters.js:335
+#: templates/js/translated/table_filters.js:336
+#: templates/js/translated/table_filters.js:357
msgid "Outstanding"
msgstr ""
-#: templates/js/translated/table_filters.js:359
+#: templates/js/translated/table_filters.js:390
msgid "Include parts in subcategories"
msgstr ""
-#: templates/js/translated/table_filters.js:363
+#: templates/js/translated/table_filters.js:394
msgid "Has IPN"
msgstr ""
-#: templates/js/translated/table_filters.js:364
+#: templates/js/translated/table_filters.js:395
msgid "Part has internal part number"
msgstr ""
-#: templates/js/translated/table_filters.js:369
+#: templates/js/translated/table_filters.js:400
msgid "Show active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:377
+#: templates/js/translated/table_filters.js:408
msgid "Stock available"
msgstr ""
-#: templates/js/translated/table_filters.js:405
+#: templates/js/translated/table_filters.js:436
msgid "Purchasable"
msgstr ""
@@ -8507,27 +8934,23 @@ msgstr ""
msgid "All"
msgstr ""
-#: templates/navbar.html:40
+#: templates/navbar.html:42
msgid "Buy"
msgstr "Mua"
-#: templates/navbar.html:52
+#: templates/navbar.html:54
msgid "Sell"
msgstr "Bán"
-#: templates/navbar.html:86 users/models.py:39
-msgid "Admin"
-msgstr "Quản trị"
-
-#: templates/navbar.html:88
+#: templates/navbar.html:113
msgid "Logout"
msgstr "Đăng xuất"
-#: templates/navbar.html:90
+#: templates/navbar.html:115
msgid "Login"
msgstr ""
-#: templates/navbar.html:111
+#: templates/navbar.html:136
msgid "About InvenTree"
msgstr "Giới thiệu"
@@ -8639,15 +9062,15 @@ msgstr ""
msgid "Order selected items"
msgstr ""
-#: templates/stock_table.html:53
+#: templates/stock_table.html:54
msgid "Change status"
msgstr ""
-#: templates/stock_table.html:53
+#: templates/stock_table.html:54
msgid "Change stock status"
msgstr ""
-#: templates/stock_table.html:56
+#: templates/stock_table.html:57
msgid "Delete selected items"
msgstr ""
@@ -8683,35 +9106,35 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:187
+#: users/models.py:189
msgid "Permission set"
msgstr ""
-#: users/models.py:195
+#: users/models.py:197
msgid "Group"
msgstr ""
-#: users/models.py:198
+#: users/models.py:200
msgid "View"
msgstr ""
-#: users/models.py:198
+#: users/models.py:200
msgid "Permission to view items"
msgstr ""
-#: users/models.py:200
+#: users/models.py:202
msgid "Permission to add items"
msgstr ""
-#: users/models.py:202
+#: users/models.py:204
msgid "Change"
msgstr ""
-#: users/models.py:202
+#: users/models.py:204
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:204
+#: users/models.py:206
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 c482dd3fb5..08a330c36f 100644
--- a/InvenTree/locale/zh/LC_MESSAGES/django.po
+++ b/InvenTree/locale/zh/LC_MESSAGES/django.po
@@ -1,9 +1,10 @@
+#: templates/js/translated/order.js:1973
msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-12-03 10:37+0000\n"
-"PO-Revision-Date: 2021-12-03 11:26\n"
+"POT-Creation-Date: 2021-12-08 23:43+0000\n"
+"PO-Revision-Date: 2021-12-08 23:47\n"
"Last-Translator: \n"
"Language-Team: Chinese Simplified\n"
"Language: zh_CN\n"
@@ -34,8 +35,8 @@ msgid "Enter date"
msgstr "输入日期"
#: InvenTree/forms.py:120 build/forms.py:48 build/forms.py:69 build/forms.py:93
-#: order/forms.py:26 order/forms.py:37 order/forms.py:48 order/forms.py:59
-#: order/forms.py:70 part/forms.py:108 templates/account/email_confirm.html:20
+#: order/forms.py:24 order/forms.py:35 order/forms.py:46 order/forms.py:57
+#: part/forms.py:108 templates/account/email_confirm.html:20
#: templates/js/translated/forms.js:595
msgid "Confirm"
msgstr "确认"
@@ -85,8 +86,8 @@ msgstr "您必须输入相同的 Email 。"
msgid "Duplicate serial: {n}"
msgstr "重复的序列号: {n}"
-#: InvenTree/helpers.py:437 order/models.py:318 order/models.py:440
-#: stock/views.py:1264
+#: InvenTree/helpers.py:437 order/models.py:279 order/models.py:420
+#: stock/views.py:1231
msgid "Invalid quantity provided"
msgstr "提供的数量无效"
@@ -122,7 +123,7 @@ msgstr "缺少文件"
msgid "Missing external link"
msgstr ""
-#: InvenTree/models.py:132 stock/models.py:1864
+#: InvenTree/models.py:132 stock/models.py:1852
#: templates/js/translated/attachment.js:117
msgid "Attachment"
msgstr "附件"
@@ -132,7 +133,7 @@ msgid "Select file to attach"
msgstr "选择附件"
#: InvenTree/models.py:139 company/models.py:131 company/models.py:348
-#: company/models.py:564 order/models.py:163 part/models.py:797
+#: company/models.py:564 order/models.py:124 part/models.py:797
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:537
#: templates/js/translated/company.js:826 templates/js/translated/part.js:1258
@@ -140,7 +141,7 @@ msgid "Link"
msgstr "链接"
#: InvenTree/models.py:140 build/models.py:330 part/models.py:798
-#: stock/models.py:530
+#: stock/models.py:524
msgid "Link to external URL"
msgstr "链接到外部 URL"
@@ -152,10 +153,10 @@ msgstr "注释"
msgid "File comment"
msgstr "文件注释"
-#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1185
-#: common/models.py:1186 part/models.py:2205 part/models.py:2225
+#: InvenTree/models.py:149 InvenTree/models.py:150 common/models.py:1213
+#: common/models.py:1214 part/models.py:2205 part/models.py:2225
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2166
+#: templates/js/translated/stock.js:2341
msgid "User"
msgstr "用户"
@@ -194,10 +195,15 @@ msgstr "选择无效"
#: InvenTree/models.py:277 InvenTree/models.py:278 company/models.py:415
#: label/models.py:112 part/models.py:741 part/models.py:2389
-#: report/models.py:181 templates/InvenTree/settings/settings.html:259
+#: plugin/models.py:39 report/models.py:181
+#: templates/InvenTree/settings/mixins/urls.html:11
+#: templates/InvenTree/settings/plugin.html:47
+#: templates/InvenTree/settings/plugin.html:124
+#: templates/InvenTree/settings/plugin_settings.html:23
+#: templates/InvenTree/settings/settings.html:268
#: templates/js/translated/company.js:638 templates/js/translated/part.js:506
#: templates/js/translated/part.js:643 templates/js/translated/part.js:1565
-#: templates/js/translated/stock.js:1959
+#: templates/js/translated/stock.js:2134
msgid "Name"
msgstr "名称"
@@ -206,22 +212,23 @@ msgstr "名称"
#: company/models.py:570 company/templates/company/company_base.html:68
#: company/templates/company/manufacturer_part.html:76
#: company/templates/company/supplier_part.html:73 label/models.py:119
-#: order/models.py:161 part/models.py:764 part/templates/part/category.html:70
+#: order/models.py:122 part/models.py:764 part/templates/part/category.html:70
#: part/templates/part/part_base.html:163
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:553 report/models.py:592
#: report/templates/report/inventree_build_order_base.html:118
-#: stock/templates/stock/location.html:89 templates/js/translated/bom.js:215
-#: templates/js/translated/bom.js:428 templates/js/translated/build.js:1621
-#: templates/js/translated/company.js:345
+#: stock/templates/stock/location.html:89
+#: templates/InvenTree/settings/plugin_settings.html:33
+#: templates/js/translated/bom.js:215 templates/js/translated/bom.js:428
+#: templates/js/translated/build.js:1627 templates/js/translated/company.js:345
#: templates/js/translated/company.js:548
-#: templates/js/translated/company.js:837 templates/js/translated/order.js:680
-#: templates/js/translated/order.js:854 templates/js/translated/order.js:1090
+#: templates/js/translated/company.js:837 templates/js/translated/order.js:836
+#: templates/js/translated/order.js:1019 templates/js/translated/order.js:1258
#: templates/js/translated/part.js:565 templates/js/translated/part.js:933
#: templates/js/translated/part.js:1018 templates/js/translated/part.js:1188
#: templates/js/translated/part.js:1584 templates/js/translated/part.js:1653
-#: templates/js/translated/stock.js:1233 templates/js/translated/stock.js:1971
-#: templates/js/translated/stock.js:2016
+#: templates/js/translated/stock.js:1390 templates/js/translated/stock.js:2146
+#: templates/js/translated/stock.js:2191
msgid "Description"
msgstr "描述信息"
@@ -241,83 +248,83 @@ msgstr "必须是有效数字"
msgid "Filename"
msgstr "文件名"
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:689
msgid "German"
msgstr "德语"
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:690
msgid "Greek"
msgstr "希腊语"
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:691
msgid "English"
msgstr "英语"
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:692
msgid "Spanish"
msgstr "西班牙语"
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:693
msgid "Spanish (Mexican)"
msgstr ""
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:694
msgid "French"
msgstr "法语"
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:695
msgid "Hebrew"
msgstr "希伯来语"
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:696
msgid "Italian"
msgstr "意大利语"
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:697
msgid "Japanese"
msgstr "日语"
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:698
msgid "Korean"
msgstr "韩语"
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:699
msgid "Dutch"
msgstr "荷兰语"
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:700
msgid "Norwegian"
msgstr "挪威语"
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:701
msgid "Polish"
msgstr "波兰语"
-#: InvenTree/settings.py:683
+#: InvenTree/settings.py:702
msgid "Portugese"
msgstr ""
-#: InvenTree/settings.py:684
+#: InvenTree/settings.py:703
msgid "Russian"
msgstr "俄语"
-#: InvenTree/settings.py:685
+#: InvenTree/settings.py:704
msgid "Swedish"
msgstr "瑞典语"
-#: InvenTree/settings.py:686
+#: InvenTree/settings.py:705
msgid "Thai"
msgstr "泰语"
-#: InvenTree/settings.py:687
+#: InvenTree/settings.py:706
msgid "Turkish"
msgstr "土耳其语"
-#: InvenTree/settings.py:688
+#: InvenTree/settings.py:707
msgid "Vietnamese"
msgstr "越南语"
-#: InvenTree/settings.py:689
+#: InvenTree/settings.py:708
msgid "Chinese"
msgstr "中文(简体)"
@@ -334,7 +341,7 @@ msgid "InvenTree system health checks failed"
msgstr "InventTree系统健康检查失败"
#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142
-#: InvenTree/status_codes.py:311
+#: InvenTree/status_codes.py:311 templates/js/translated/table_filters.js:313
msgid "Pending"
msgstr "待定"
@@ -343,6 +350,8 @@ msgid "Placed"
msgstr "已添加"
#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:314
+#: order/templates/order/order_base.html:128
+#: order/templates/order/sales_order_base.html:132
msgid "Complete"
msgstr "完成"
@@ -361,8 +370,8 @@ msgstr "丢失"
msgid "Returned"
msgstr "已退回"
-#: InvenTree/status_codes.py:143
-#: order/templates/order/sales_order_base.html:148
+#: InvenTree/status_codes.py:143 order/models.py:939
+#: templates/js/translated/order.js:1980 templates/js/translated/order.js:2255
msgid "Shipped"
msgstr "已发货"
@@ -442,7 +451,7 @@ msgstr "从父项拆分"
msgid "Split child item"
msgstr "拆分子项"
-#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:208
+#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:213
msgid "Sent to customer"
msgstr "发送给客户"
@@ -522,55 +531,55 @@ msgstr "设置密码"
msgid "Password fields must match"
msgstr "密码字段必须相匹配。"
-#: InvenTree/views.py:883 templates/navbar.html:101
+#: InvenTree/views.py:883 templates/navbar.html:126
msgid "System Information"
msgstr "系统信息"
-#: barcodes/api.py:53 barcodes/api.py:150
+#: barcodes/api.py:54 barcodes/api.py:151
msgid "Must provide barcode_data parameter"
msgstr "必须提供条码数据参数"
-#: barcodes/api.py:126
+#: barcodes/api.py:127
msgid "No match found for barcode data"
msgstr "未找到匹配条形码数据"
-#: barcodes/api.py:128
+#: barcodes/api.py:129
msgid "Match found for barcode data"
msgstr "找到匹配条形码数据"
-#: barcodes/api.py:153
+#: barcodes/api.py:154
msgid "Must provide stockitem parameter"
msgstr "必须提供库存项参数"
-#: barcodes/api.py:160
+#: barcodes/api.py:161
msgid "No matching stock item found"
msgstr "未找到匹配的库存项"
-#: barcodes/api.py:190
-msgid "Barcode already matches StockItem object"
-msgstr "条形码已经匹配库存项"
+#: barcodes/api.py:191
+msgid "Barcode already matches Stock Item"
+msgstr ""
-#: barcodes/api.py:194
-msgid "Barcode already matches StockLocation object"
-msgstr "条形码已经匹配仓储地对象"
+#: barcodes/api.py:195
+msgid "Barcode already matches Stock Location"
+msgstr ""
-#: barcodes/api.py:198
-msgid "Barcode already matches Part object"
-msgstr "条形码已经匹配商品对象"
+#: barcodes/api.py:199
+msgid "Barcode already matches Part"
+msgstr ""
-#: barcodes/api.py:204 barcodes/api.py:216
-msgid "Barcode hash already matches StockItem object"
-msgstr "条码哈希值已经匹配库存项目"
+#: barcodes/api.py:205 barcodes/api.py:217
+msgid "Barcode hash already matches Stock Item"
+msgstr ""
-#: barcodes/api.py:222
-msgid "Barcode associated with StockItem"
-msgstr "与库存项关联的条形码"
+#: barcodes/api.py:223
+msgid "Barcode associated with Stock Item"
+msgstr ""
#: build/forms.py:36 build/models.py:1283
#: build/templates/build/build_base.html:132
-#: build/templates/build/detail.html:35 common/models.py:1225
+#: build/templates/build/detail.html:35 common/models.py:1253
#: company/forms.py:42 company/templates/company/supplier_part.html:251
-#: order/forms.py:102 order/models.py:729 order/models.py:991
+#: order/models.py:794 order/models.py:1205 order/serializers.py:810
#: order/templates/order/order_wizard/match_parts.html:30
#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:223
#: part/forms.py:239 part/forms.py:255 part/models.py:2576
@@ -582,20 +591,23 @@ msgstr "与库存项关联的条形码"
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:81
#: report/templates/report/inventree_test_report_base.html:139
-#: stock/forms.py:156 stock/serializers.py:291
+#: stock/forms.py:142 stock/serializers.py:293
#: stock/templates/stock/item_base.html:174
+#: stock/templates/stock/item_base.html:255
+#: stock/templates/stock/item_base.html:263
#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443
-#: templates/js/translated/build.js:235 templates/js/translated/build.js:435
-#: templates/js/translated/build.js:629 templates/js/translated/build.js:639
-#: templates/js/translated/build.js:1015 templates/js/translated/build.js:1362
+#: templates/js/translated/build.js:240 templates/js/translated/build.js:440
+#: templates/js/translated/build.js:634 templates/js/translated/build.js:644
+#: templates/js/translated/build.js:1020 templates/js/translated/build.js:1367
#: templates/js/translated/model_renderers.js:99
-#: templates/js/translated/order.js:891 templates/js/translated/order.js:1204
-#: templates/js/translated/order.js:1282 templates/js/translated/order.js:1289
-#: templates/js/translated/order.js:1378 templates/js/translated/order.js:1478
-#: templates/js/translated/part.js:843 templates/js/translated/part.js:1796
-#: templates/js/translated/part.js:1919 templates/js/translated/part.js:1997
-#: templates/js/translated/stock.js:378 templates/js/translated/stock.js:2151
-#: templates/js/translated/stock.js:2253
+#: templates/js/translated/order.js:101 templates/js/translated/order.js:1056
+#: templates/js/translated/order.js:1578 templates/js/translated/order.js:1859
+#: templates/js/translated/order.js:1947 templates/js/translated/order.js:2036
+#: templates/js/translated/order.js:2150 templates/js/translated/part.js:843
+#: templates/js/translated/part.js:1796 templates/js/translated/part.js:1919
+#: templates/js/translated/part.js:1997 templates/js/translated/stock.js:382
+#: templates/js/translated/stock.js:579 templates/js/translated/stock.js:2326
+#: templates/js/translated/stock.js:2428
msgid "Quantity"
msgstr "数量"
@@ -603,9 +615,9 @@ msgstr "数量"
msgid "Enter quantity for build output"
msgstr "输入生产产出数量"
-#: build/forms.py:41 order/forms.py:96 stock/forms.py:95
-#: stock/serializers.py:312 templates/js/translated/stock.js:225
-#: templates/js/translated/stock.js:379
+#: build/forms.py:41 order/serializers.py:814 stock/forms.py:81
+#: stock/serializers.py:314 templates/js/translated/stock.js:229
+#: templates/js/translated/stock.js:383
msgid "Serial Numbers"
msgstr "序列号"
@@ -640,17 +652,17 @@ msgstr "上级生产选项无效"
#: build/models.py:137 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:397
+#: templates/js/translated/build.js:402
msgid "Build Order"
msgstr "生产订单"
#: build/models.py:138 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
-#: order/templates/order/sales_order_detail.html:42
-#: order/templates/order/so_sidebar.html:7
+#: order/templates/order/sales_order_detail.html:92
+#: order/templates/order/so_sidebar.html:13
#: part/templates/part/part_sidebar.html:20 templates/InvenTree/index.html:221
#: templates/InvenTree/search.html:145
-#: templates/InvenTree/settings/sidebar.html:42 users/models.py:44
+#: templates/InvenTree/settings/sidebar.html:43 users/models.py:44
msgid "Build Orders"
msgstr "生产订单"
@@ -658,13 +670,13 @@ msgstr "生产订单"
msgid "Build Order Reference"
msgstr "相关生产订单"
-#: build/models.py:199 order/models.py:249 order/models.py:556
-#: order/models.py:736 part/models.py:2585
+#: build/models.py:199 order/models.py:210 order/models.py:536
+#: order/models.py:801 part/models.py:2585
#: part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1119
-#: templates/js/translated/order.js:885 templates/js/translated/order.js:1472
+#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1124
+#: templates/js/translated/order.js:1050 templates/js/translated/order.js:2144
msgid "Reference"
msgstr "引用"
@@ -683,7 +695,7 @@ msgstr "此次生产匹配的订单"
#: build/models.py:225 build/templates/build/build_base.html:77
#: build/templates/build/detail.html:30 company/models.py:705
-#: order/models.py:789 order/models.py:860
+#: order/models.py:854 order/models.py:928
#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357
#: part/models.py:2151 part/models.py:2167 part/models.py:2186
#: part/models.py:2203 part/models.py:2305 part/models.py:2427
@@ -698,14 +710,16 @@ msgstr "此次生产匹配的订单"
#: templates/email/build_order_required_stock.html:17
#: templates/email/low_stock_notification.html:16
#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:214
-#: templates/js/translated/bom.js:393 templates/js/translated/build.js:620
-#: templates/js/translated/build.js:988 templates/js/translated/build.js:1359
-#: templates/js/translated/build.js:1626 templates/js/translated/company.js:489
-#: templates/js/translated/company.js:746 templates/js/translated/order.js:426
-#: templates/js/translated/order.js:839 templates/js/translated/order.js:1456
-#: templates/js/translated/part.js:918 templates/js/translated/part.js:999
-#: templates/js/translated/part.js:1166 templates/js/translated/stock.js:590
-#: templates/js/translated/stock.js:1190 templates/js/translated/stock.js:2241
+#: templates/js/translated/bom.js:393 templates/js/translated/build.js:625
+#: templates/js/translated/build.js:993 templates/js/translated/build.js:1364
+#: templates/js/translated/build.js:1632 templates/js/translated/company.js:489
+#: templates/js/translated/company.js:746 templates/js/translated/order.js:84
+#: templates/js/translated/order.js:586 templates/js/translated/order.js:1004
+#: templates/js/translated/order.js:1576 templates/js/translated/order.js:1933
+#: templates/js/translated/order.js:2128 templates/js/translated/part.js:918
+#: templates/js/translated/part.js:999 templates/js/translated/part.js:1166
+#: templates/js/translated/stock.js:553 templates/js/translated/stock.js:747
+#: templates/js/translated/stock.js:1347 templates/js/translated/stock.js:2416
msgid "Part"
msgstr "商品"
@@ -721,7 +735,8 @@ msgstr "相关销售订单"
msgid "SalesOrder to which this build is allocated"
msgstr "此次生产匹配的销售订单"
-#: build/models.py:247 templates/js/translated/build.js:1347
+#: build/models.py:247 templates/js/translated/build.js:1352
+#: templates/js/translated/order.js:1564
msgid "Source Location"
msgstr "来源地点"
@@ -761,7 +776,7 @@ msgstr "生产状态"
msgid "Build status code"
msgstr "生产状态代码"
-#: build/models.py:285 stock/models.py:534
+#: build/models.py:285 stock/models.py:528
msgid "Batch Code"
msgstr "批量代码"
@@ -769,12 +784,12 @@ msgstr "批量代码"
msgid "Batch code for this build output"
msgstr "此生产产出的批量代码"
-#: build/models.py:292 order/models.py:165 part/models.py:936
-#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1103
+#: build/models.py:292 order/models.py:126 part/models.py:936
+#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1271
msgid "Creation Date"
msgstr "创建日期"
-#: build/models.py:296 order/models.py:578
+#: build/models.py:296 order/models.py:558
msgid "Target completion date"
msgstr "预计完成日期"
@@ -782,8 +797,8 @@ msgstr "预计完成日期"
msgid "Target date for build completion. Build will be overdue after this date."
msgstr "生产完成的目标日期。生产将在此日期之后逾期。"
-#: build/models.py:300 order/models.py:291
-#: templates/js/translated/build.js:1697
+#: build/models.py:300 order/models.py:252
+#: templates/js/translated/build.js:1703
msgid "Completion Date"
msgstr "完成日期:"
@@ -791,7 +806,7 @@ msgstr "完成日期:"
msgid "completed by"
msgstr "完成人"
-#: build/models.py:314 templates/js/translated/build.js:1668
+#: build/models.py:314 templates/js/translated/build.js:1674
msgid "Issued by"
msgstr "发布者"
@@ -800,11 +815,11 @@ msgid "User who issued this build order"
msgstr "发布此生产订单的用户"
#: build/models.py:323 build/templates/build/build_base.html:185
-#: build/templates/build/detail.html:116 order/models.py:179
-#: order/templates/order/order_base.html:158
-#: order/templates/order/sales_order_base.html:162 part/models.py:940
+#: build/templates/build/detail.html:116 order/models.py:140
+#: order/templates/order/order_base.html:170
+#: order/templates/order/sales_order_base.html:182 part/models.py:940
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:1680 templates/js/translated/order.js:699
+#: templates/js/translated/build.js:1686 templates/js/translated/order.js:864
msgid "Responsible"
msgstr "责任人"
@@ -815,7 +830,7 @@ msgstr "负责此生产订单的用户"
#: build/models.py:329 build/templates/build/detail.html:102
#: company/templates/company/manufacturer_part.html:102
#: company/templates/company/supplier_part.html:126
-#: part/templates/part/part_base.html:354 stock/models.py:528
+#: part/templates/part/part_base.html:354 stock/models.py:522
#: stock/templates/stock/item_base.html:374
msgid "External Link"
msgstr "外部链接"
@@ -823,18 +838,19 @@ msgstr "外部链接"
#: build/models.py:334 build/serializers.py:201
#: build/templates/build/sidebar.html:21 company/models.py:142
#: company/models.py:577 company/templates/company/sidebar.html:25
-#: order/models.py:183 order/models.py:738
+#: order/models.py:144 order/models.py:803 order/models.py:1049
#: order/templates/order/po_sidebar.html:11
-#: order/templates/order/so_sidebar.html:11 part/models.py:925
+#: order/templates/order/so_sidebar.html:17 part/models.py:925
#: part/templates/part/detail.html:116 part/templates/part/part_sidebar.html:50
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/forms.py:154 stock/forms.py:204 stock/forms.py:238 stock/models.py:600
-#: stock/models.py:1764 stock/models.py:1870 stock/serializers.py:330
-#: stock/serializers.py:588 stock/templates/stock/stock_sidebar.html:21
+#: stock/forms.py:140 stock/forms.py:190 stock/forms.py:224 stock/models.py:594
+#: stock/models.py:1752 stock/models.py:1858 stock/serializers.py:332
+#: stock/serializers.py:624 stock/serializers.py:711
+#: stock/templates/stock/stock_sidebar.html:21
#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599
-#: templates/js/translated/company.js:842 templates/js/translated/order.js:984
-#: templates/js/translated/order.js:1582 templates/js/translated/stock.js:973
-#: templates/js/translated/stock.js:1452
+#: templates/js/translated/company.js:842 templates/js/translated/order.js:1149
+#: templates/js/translated/order.js:1445 templates/js/translated/order.js:2280
+#: templates/js/translated/stock.js:1130 templates/js/translated/stock.js:1616
msgid "Notes"
msgstr "备注"
@@ -867,7 +883,7 @@ msgstr ""
msgid "Stock item is over-allocated"
msgstr "库存物品分配过度!"
-#: build/models.py:1133 order/models.py:964
+#: build/models.py:1133 order/models.py:1165
msgid "Allocation quantity must be greater than zero"
msgstr "分配数量必须大于0"
@@ -880,8 +896,8 @@ msgid "Selected stock item not found in BOM"
msgstr ""
#: build/models.py:1253 stock/templates/stock/item_base.html:346
-#: templates/InvenTree/search.html:143 templates/js/translated/build.js:1599
-#: templates/navbar.html:33
+#: templates/InvenTree/search.html:143 templates/js/translated/build.js:1605
+#: templates/navbar.html:35
msgid "Build"
msgstr "生产"
@@ -889,14 +905,17 @@ msgstr "生产"
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1270 build/serializers.py:328
+#: build/models.py:1270 build/serializers.py:328 order/serializers.py:690
+#: order/serializers.py:708 stock/serializers.py:562
#: stock/templates/stock/item_base.html:8
#: stock/templates/stock/item_base.html:16
#: stock/templates/stock/item_base.html:368
-#: templates/js/translated/build.js:408 templates/js/translated/build.js:413
-#: templates/js/translated/build.js:1361 templates/js/translated/build.js:1742
-#: templates/js/translated/order.js:1177 templates/js/translated/order.js:1182
-#: templates/js/translated/stock.js:2102
+#: templates/js/translated/build.js:413 templates/js/translated/build.js:418
+#: templates/js/translated/build.js:1366 templates/js/translated/build.js:1748
+#: templates/js/translated/order.js:85 templates/js/translated/order.js:1577
+#: templates/js/translated/order.js:1832 templates/js/translated/order.js:1837
+#: templates/js/translated/order.js:1940 templates/js/translated/order.js:2030
+#: templates/js/translated/stock.js:554 templates/js/translated/stock.js:2277
msgid "Stock Item"
msgstr "库存项"
@@ -936,16 +955,17 @@ msgstr ""
msgid "This build output is not fully allocated"
msgstr ""
-#: build/serializers.py:190 order/serializers.py:228 order/serializers.py:296
-#: stock/forms.py:236 stock/serializers.py:323 stock/serializers.py:690
+#: build/serializers.py:190 order/serializers.py:226 order/serializers.py:294
+#: stock/forms.py:222 stock/serializers.py:325 stock/serializers.py:813
#: stock/templates/stock/item_base.html:314
#: templates/js/translated/barcode.js:384
-#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:420
-#: templates/js/translated/build.js:1027 templates/js/translated/order.js:348
-#: templates/js/translated/order.js:1189 templates/js/translated/order.js:1297
-#: templates/js/translated/order.js:1303 templates/js/translated/part.js:177
-#: templates/js/translated/stock.js:592 templates/js/translated/stock.js:1333
-#: templates/js/translated/stock.js:2043
+#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:425
+#: templates/js/translated/build.js:1032 templates/js/translated/order.js:508
+#: templates/js/translated/order.js:1844 templates/js/translated/order.js:1955
+#: templates/js/translated/order.js:1963 templates/js/translated/order.js:2044
+#: templates/js/translated/part.js:177 templates/js/translated/stock.js:555
+#: templates/js/translated/stock.js:749 templates/js/translated/stock.js:1497
+#: templates/js/translated/stock.js:2218
msgid "Location"
msgstr "地点"
@@ -954,12 +974,12 @@ msgid "Location for completed build outputs"
msgstr ""
#: build/serializers.py:197 build/templates/build/build_base.html:137
-#: build/templates/build/detail.html:63 order/models.py:572
-#: order/serializers.py:249 stock/templates/stock/item_base.html:180
-#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1655
-#: templates/js/translated/order.js:431 templates/js/translated/order.js:1095
-#: templates/js/translated/stock.js:1308 templates/js/translated/stock.js:2120
-#: templates/js/translated/stock.js:2269
+#: build/templates/build/detail.html:63 order/models.py:552
+#: order/serializers.py:247 stock/templates/stock/item_base.html:180
+#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1661
+#: templates/js/translated/order.js:591 templates/js/translated/order.js:840
+#: templates/js/translated/order.js:1263 templates/js/translated/stock.js:1472
+#: templates/js/translated/stock.js:2295 templates/js/translated/stock.js:2444
msgid "Status"
msgstr "状态"
@@ -984,16 +1004,16 @@ msgstr ""
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:334
+#: build/serializers.py:334 stock/serializers.py:569
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:348 order/models.py:316 order/serializers.py:242
-#: stock/models.py:371 stock/models.py:1093 stock/serializers.py:303
+#: build/serializers.py:348 order/models.py:277 order/serializers.py:240
+#: stock/models.py:365 stock/models.py:1081 stock/serializers.py:305
msgid "Quantity must be greater than zero"
msgstr ""
-#: build/serializers.py:390
+#: build/serializers.py:390 order/serializers.py:741
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
@@ -1006,7 +1026,7 @@ msgstr ""
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:431
+#: build/serializers.py:431 order/serializers.py:984
msgid "Allocation items must be provided"
msgstr ""
@@ -1079,11 +1099,11 @@ msgstr ""
#: build/templates/build/build_base.html:146
#: build/templates/build/detail.html:132
-#: order/templates/order/order_base.html:144
-#: order/templates/order/sales_order_base.html:141
+#: order/templates/order/order_base.html:156
+#: order/templates/order/sales_order_base.html:163
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:1692 templates/js/translated/order.js:689
-#: templates/js/translated/order.js:1108
+#: templates/js/translated/build.js:1698 templates/js/translated/order.js:854
+#: templates/js/translated/order.js:1276
msgid "Target Date"
msgstr "预计日期"
@@ -1096,28 +1116,28 @@ msgstr "此次生产的截止日期为 %(target)s"
#: build/templates/build/build_base.html:196
#: order/templates/order/order_base.html:98
#: order/templates/order/sales_order_base.html:93
-#: templates/js/translated/table_filters.js:294
-#: templates/js/translated/table_filters.js:322
-#: templates/js/translated/table_filters.js:339
+#: templates/js/translated/table_filters.js:299
+#: templates/js/translated/table_filters.js:340
+#: templates/js/translated/table_filters.js:361
msgid "Overdue"
msgstr "逾期"
#: build/templates/build/build_base.html:158
#: build/templates/build/detail.html:68 build/templates/build/detail.html:143
-#: templates/js/translated/build.js:1641
-#: templates/js/translated/table_filters.js:304
+#: order/templates/order/sales_order_base.html:170
+#: templates/js/translated/build.js:1647
+#: templates/js/translated/table_filters.js:370
msgid "Completed"
msgstr "已完成"
#: build/templates/build/build_base.html:171
-#: build/templates/build/detail.html:95 order/models.py:857
-#: order/templates/order/sales_order_base.html:9
+#: build/templates/build/detail.html:95 order/models.py:925
+#: order/models.py:1021 order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:28
-#: order/templates/order/sales_order_ship.html:25
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:308
-#: templates/js/translated/order.js:1050
+#: templates/js/translated/order.js:1218
msgid "Sales Order"
msgstr "销售订单"
@@ -1191,8 +1211,8 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:50 order/models.py:811 stock/forms.py:150
-#: templates/js/translated/order.js:432 templates/js/translated/order.js:973
+#: build/templates/build/detail.html:50 order/models.py:876 stock/forms.py:136
+#: templates/js/translated/order.js:592 templates/js/translated/order.js:1138
msgid "Destination"
msgstr ""
@@ -1200,22 +1220,22 @@ msgstr ""
msgid "Destination location not specified"
msgstr ""
-#: build/templates/build/detail.html:74 templates/js/translated/build.js:647
+#: build/templates/build/detail.html:74 templates/js/translated/build.js:652
msgid "Allocated Parts"
msgstr ""
#: build/templates/build/detail.html:81
#: stock/templates/stock/item_base.html:332
-#: templates/js/translated/stock.js:1322 templates/js/translated/stock.js:2276
+#: templates/js/translated/stock.js:1486 templates/js/translated/stock.js:2451
#: templates/js/translated/table_filters.js:151
-#: templates/js/translated/table_filters.js:233
+#: templates/js/translated/table_filters.js:238
msgid "Batch"
msgstr ""
#: build/templates/build/detail.html:127
-#: order/templates/order/order_base.html:131
-#: order/templates/order/sales_order_base.html:135
-#: templates/js/translated/build.js:1663
+#: order/templates/order/order_base.html:143
+#: order/templates/order/sales_order_base.html:157
+#: templates/js/translated/build.js:1669
msgid "Created"
msgstr "已创建"
@@ -1235,7 +1255,7 @@ msgstr "子生产订单"
msgid "Allocate Stock to Build"
msgstr "为生产分配库存"
-#: build/templates/build/detail.html:177 templates/js/translated/build.js:1202
+#: build/templates/build/detail.html:177 templates/js/translated/build.js:1207
msgid "Unallocate stock"
msgstr "未分配库存"
@@ -1257,7 +1277,7 @@ msgstr "订单所需部件"
#: build/templates/build/detail.html:185
#: company/templates/company/detail.html:38
-#: company/templates/company/detail.html:85 order/views.py:509
+#: company/templates/company/detail.html:85 order/views.py:463
#: part/templates/part/category.html:173
msgid "Order Parts"
msgstr "订购商品"
@@ -1309,8 +1329,8 @@ msgstr ""
#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:60
-#: order/templates/order/sales_order_detail.html:52
-#: order/templates/order/so_sidebar.html:9 part/templates/part/detail.html:193
+#: order/templates/order/sales_order_detail.html:107
+#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:193
#: part/templates/part/part_sidebar.html:48 stock/templates/stock/item.html:95
#: stock/templates/stock/stock_sidebar.html:19
msgid "Attachments"
@@ -1325,8 +1345,8 @@ msgstr "生产备注"
#: company/templates/company/detail.html:215
#: order/templates/order/purchase_order_detail.html:80
#: order/templates/order/purchase_order_detail.html:108
-#: order/templates/order/sales_order_detail.html:72
-#: order/templates/order/sales_order_detail.html:99
+#: order/templates/order/sales_order_detail.html:127
+#: order/templates/order/sales_order_detail.html:186
#: part/templates/part/detail.html:120 stock/templates/stock/item.html:115
#: stock/templates/stock/item.html:205
msgid "Edit Notes"
@@ -1384,7 +1404,7 @@ msgstr "创建创建生产产出"
msgid "Maximum output quantity is "
msgstr "最大产出量是 "
-#: build/views.py:122 stock/serializers.py:361 stock/views.py:1290
+#: build/views.py:122 stock/serializers.py:363 stock/views.py:1257
msgid "Serial numbers already exist"
msgstr "序列号已存在"
@@ -1400,7 +1420,7 @@ msgstr "删除生产产出"
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:219 stock/views.py:385
+#: build/views.py:219 stock/views.py:352
msgid "Check the confirmation box"
msgstr "选中确认框"
@@ -1469,7 +1489,7 @@ msgstr ""
msgid "Select {name} file to upload"
msgstr ""
-#: common/models.py:340 common/models.py:970 common/models.py:1178
+#: common/models.py:340 common/models.py:998 common/models.py:1206
msgid "Settings key (must be unique - case insensitive"
msgstr ""
@@ -1557,7 +1577,7 @@ msgstr ""
msgid "Allow download of remote images and files from external URL"
msgstr ""
-#: common/models.py:649 templates/InvenTree/settings/sidebar.html:30
+#: common/models.py:649 templates/InvenTree/settings/sidebar.html:31
msgid "Barcode Support"
msgstr ""
@@ -1623,7 +1643,7 @@ msgstr ""
#: common/models.py:703 part/models.py:2429 report/models.py:187
#: templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:373
+#: templates/js/translated/table_filters.js:404
msgid "Template"
msgstr "模板"
@@ -1633,7 +1653,7 @@ msgstr ""
#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:956
#: templates/js/translated/table_filters.js:168
-#: templates/js/translated/table_filters.js:385
+#: templates/js/translated/table_filters.js:416
msgid "Assembly"
msgstr "组装"
@@ -1642,7 +1662,7 @@ msgid "Parts can be assembled from other components by default"
msgstr ""
#: common/models.py:717 part/models.py:894
-#: templates/js/translated/table_filters.js:389
+#: templates/js/translated/table_filters.js:420
msgid "Component"
msgstr "组件"
@@ -1659,7 +1679,7 @@ msgid "Parts are purchaseable by default"
msgstr "商品默认可购买"
#: common/models.py:731 part/models.py:910
-#: templates/js/translated/table_filters.js:397
+#: templates/js/translated/table_filters.js:428
msgid "Salable"
msgstr "可销售"
@@ -1670,7 +1690,7 @@ msgstr "商品默认可销售"
#: common/models.py:738 part/models.py:900
#: templates/js/translated/table_filters.js:46
#: templates/js/translated/table_filters.js:100
-#: templates/js/translated/table_filters.js:401
+#: templates/js/translated/table_filters.js:432
msgid "Trackable"
msgstr "可追踪"
@@ -1932,230 +1952,262 @@ msgstr ""
msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:1001
+#: common/models.py:961
+msgid "Enable URL integration"
+msgstr ""
+
+#: common/models.py:962
+msgid "Enable plugins to add URL routes"
+msgstr ""
+
+#: common/models.py:968
+msgid "Enable navigation integration"
+msgstr ""
+
+#: common/models.py:969
+msgid "Enable plugins to integrate into navigation"
+msgstr ""
+
+#: common/models.py:975
+msgid "Enable global setting integration"
+msgstr ""
+
+#: common/models.py:976
+msgid "Enable plugins to integrate into inventree global settings"
+msgstr ""
+
+#: common/models.py:982
+msgid "Enable app integration"
+msgstr ""
+
+#: common/models.py:983
+msgid "Enable plugins to add apps"
+msgstr ""
+
+#: common/models.py:1029
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:1002
+#: common/models.py:1030
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:1007
+#: common/models.py:1035
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:1008
+#: common/models.py:1036
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:1013
+#: common/models.py:1041
msgid "Show latest parts"
msgstr "显示最近商品"
-#: common/models.py:1014
+#: common/models.py:1042
msgid "Show latest parts on the homepage"
msgstr "在主页上显示最近商品"
-#: common/models.py:1019
+#: common/models.py:1047
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:1020
+#: common/models.py:1048
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:1026
+#: common/models.py:1054
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1027
+#: common/models.py:1055
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1032
+#: common/models.py:1060
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:1033
+#: common/models.py:1061
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:1038
+#: common/models.py:1066
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:1039
+#: common/models.py:1067
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:1044
+#: common/models.py:1072
msgid "Show low stock"
msgstr ""
-#: common/models.py:1045
+#: common/models.py:1073
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:1050
+#: common/models.py:1078
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:1051
+#: common/models.py:1079
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:1056
+#: common/models.py:1084
msgid "Show needed stock"
msgstr ""
-#: common/models.py:1057
+#: common/models.py:1085
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1062
+#: common/models.py:1090
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1063
+#: common/models.py:1091
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1068
+#: common/models.py:1096
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1069
+#: common/models.py:1097
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1074
+#: common/models.py:1102
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1075
+#: common/models.py:1103
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:1080
+#: common/models.py:1108
msgid "Show overdue builds"
msgstr "显示逾期生产"
-#: common/models.py:1081
+#: common/models.py:1109
msgid "Show overdue builds on the homepage"
msgstr "在主页上显示逾期的生产"
-#: common/models.py:1086
+#: common/models.py:1114
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:1087
+#: common/models.py:1115
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:1092
+#: common/models.py:1120
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:1093
+#: common/models.py:1121
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:1098
+#: common/models.py:1126
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:1099
+#: common/models.py:1127
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:1104
+#: common/models.py:1132
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:1105
+#: common/models.py:1133
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:1111
+#: common/models.py:1139
msgid "Inline label display"
msgstr "内嵌标签显示"
-#: common/models.py:1112
+#: common/models.py:1140
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr "在浏览器中显示 PDF 标签,而不是以文件形式下载"
-#: common/models.py:1118
+#: common/models.py:1146
msgid "Inline report display"
msgstr ""
-#: common/models.py:1119
+#: common/models.py:1147
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr "在浏览器中显示 PDF 报告,而不是以文件形式下载"
-#: common/models.py:1125
+#: common/models.py:1153
msgid "Search Preview Results"
msgstr "搜索预览结果"
-#: common/models.py:1126
+#: common/models.py:1154
msgid "Number of results to show in search preview window"
msgstr "搜索预览窗口中显示的结果数"
-#: common/models.py:1132
+#: common/models.py:1160
msgid "Search Show Stock"
msgstr ""
-#: common/models.py:1133
+#: common/models.py:1161
msgid "Display stock levels in search preview window"
msgstr ""
-#: common/models.py:1139
+#: common/models.py:1167
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:1140
+#: common/models.py:1168
msgid "Hide inactive parts in search preview window"
msgstr ""
-#: common/models.py:1146
+#: common/models.py:1174
msgid "Show Quantity in Forms"
msgstr "在表格中显示数量"
-#: common/models.py:1147
+#: common/models.py:1175
msgid "Display available part quantity in some forms"
msgstr "在某些表格中显示可用的商品数量"
-#: common/models.py:1153
+#: common/models.py:1181
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1154
+#: common/models.py:1182
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1160
+#: common/models.py:1188
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:1161
+#: common/models.py:1189
msgid "InvenTree navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:1226 company/forms.py:43
+#: common/models.py:1254 company/forms.py:43
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1233 company/serializers.py:264
+#: common/models.py:1261 company/serializers.py:264
#: company/templates/company/supplier_part.html:256
#: templates/js/translated/part.js:852 templates/js/translated/part.js:1801
msgid "Price"
msgstr "价格"
-#: common/models.py:1234
+#: common/models.py:1262
msgid "Unit price at specified quantity"
msgstr ""
#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49
-#: order/templates/order/purchase_order_detail.html:24 order/views.py:289
+#: order/templates/order/purchase_order_detail.html:24 order/views.py:243
#: part/templates/part/bom_upload/upload_file.html:52
#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:212
#: part/views.py:858
@@ -2163,7 +2215,7 @@ msgid "Upload File"
msgstr "上传文件"
#: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52
-#: order/views.py:290 part/templates/part/bom_upload/match_fields.html:52
+#: order/views.py:244 part/templates/part/bom_upload/match_fields.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:45
#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:213
#: part/views.py:859
@@ -2195,6 +2247,7 @@ msgid "Previous Step"
msgstr ""
#: company/forms.py:24 part/forms.py:46
+#: templates/InvenTree/settings/mixins/urls.html:12
msgid "URL"
msgstr "URL"
@@ -2211,6 +2264,7 @@ msgid "Description of the company"
msgstr "公司简介"
#: company/models.py:112 company/templates/company/company_base.html:97
+#: templates/InvenTree/settings/plugin_settings.html:55
#: templates/js/translated/company.js:349
msgid "Website"
msgstr "网站"
@@ -2285,7 +2339,7 @@ msgid "Does this company manufacture parts?"
msgstr "该公司制造商品吗?"
#: company/models.py:152 company/serializers.py:270
-#: company/templates/company/company_base.html:103 stock/serializers.py:177
+#: company/templates/company/company_base.html:103 stock/serializers.py:179
msgid "Currency"
msgstr "货币"
@@ -2293,12 +2347,12 @@ msgstr "货币"
msgid "Default currency used for this company"
msgstr "该公司使用的默认货币"
-#: company/models.py:320 company/models.py:535 stock/models.py:474
+#: company/models.py:320 company/models.py:535 stock/models.py:468
#: stock/templates/stock/item_base.html:135
msgid "Base Part"
msgstr ""
-#: company/models.py:324 company/models.py:539 order/views.py:912
+#: company/models.py:324 company/models.py:539
msgid "Select part"
msgstr "选择商品"
@@ -2319,7 +2373,7 @@ msgstr "选择制造商"
#: company/models.py:342 company/templates/company/manufacturer_part.html:96
#: company/templates/company/supplier_part.html:105
#: templates/js/translated/company.js:530
-#: templates/js/translated/company.js:815 templates/js/translated/order.js:873
+#: templates/js/translated/company.js:815 templates/js/translated/order.js:1038
#: templates/js/translated/part.js:243 templates/js/translated/part.js:832
msgid "MPN"
msgstr "MPN"
@@ -2349,8 +2403,8 @@ msgstr "参数名称"
#: company/models.py:422
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:1857 templates/js/translated/company.js:644
-#: templates/js/translated/part.js:652 templates/js/translated/stock.js:960
+#: stock/models.py:1845 templates/js/translated/company.js:644
+#: templates/js/translated/part.js:652 templates/js/translated/stock.js:1117
msgid "Value"
msgstr "数值"
@@ -2360,7 +2414,7 @@ msgstr "参数值"
#: company/models.py:429 part/models.py:882 part/models.py:2397
#: part/templates/part/part_base.html:288
-#: templates/InvenTree/settings/settings.html:264
+#: templates/InvenTree/settings/settings.html:273
#: templates/js/translated/company.js:650 templates/js/translated/part.js:658
msgid "Units"
msgstr "单位"
@@ -2374,12 +2428,12 @@ msgid "Linked manufacturer part must reference the same base part"
msgstr ""
#: company/models.py:545 company/templates/company/company_base.html:78
-#: company/templates/company/supplier_part.html:87 order/models.py:263
+#: company/templates/company/supplier_part.html:87 order/models.py:224
#: order/templates/order/order_base.html:112
#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219
#: part/bom.py:247 stock/templates/stock/item_base.html:398
#: templates/js/translated/company.js:337
-#: templates/js/translated/company.js:771 templates/js/translated/order.js:667
+#: templates/js/translated/company.js:771 templates/js/translated/order.js:823
#: templates/js/translated/part.js:213 templates/js/translated/part.js:800
msgid "Supplier"
msgstr "供应商"
@@ -2389,7 +2443,7 @@ msgid "Select supplier"
msgstr "选择供应商"
#: company/models.py:551 company/templates/company/supplier_part.html:91
-#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:860
+#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:1025
#: templates/js/translated/part.js:224 templates/js/translated/part.js:818
msgid "SKU"
msgstr "SKU"
@@ -2425,8 +2479,8 @@ msgid "Minimum charge (e.g. stocking fee)"
msgstr "最低收费(例如库存费)"
#: company/models.py:582 company/templates/company/supplier_part.html:112
-#: stock/models.py:497 stock/templates/stock/item_base.html:339
-#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1448
+#: stock/models.py:491 stock/templates/stock/item_base.html:339
+#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1612
msgid "Packaging"
msgstr "打包"
@@ -2457,7 +2511,7 @@ msgid "Company"
msgstr "公司"
#: company/templates/company/company_base.html:22
-#: templates/js/translated/order.js:121
+#: templates/js/translated/order.js:279
msgid "Create Purchase Order"
msgstr "创建采购订单"
@@ -2493,11 +2547,12 @@ msgstr "上传新图片"
msgid "Download image from URL"
msgstr "从 URL 下载图片"
-#: company/templates/company/company_base.html:83 order/models.py:567
-#: order/templates/order/sales_order_base.html:115 stock/models.py:515
-#: stock/models.py:516 stock/templates/stock/item_base.html:291
-#: templates/js/translated/company.js:329 templates/js/translated/order.js:1072
-#: templates/js/translated/stock.js:2084
+#: company/templates/company/company_base.html:83 order/models.py:547
+#: order/templates/order/sales_order_base.html:115 stock/models.py:509
+#: stock/models.py:510 stock/serializers.py:610
+#: stock/templates/stock/item_base.html:291
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1240
+#: templates/js/translated/stock.js:2259
msgid "Customer"
msgstr "客户"
@@ -2580,7 +2635,7 @@ msgstr "供货商库存"
#: order/templates/order/purchase_orders.html:12
#: part/templates/part/detail.html:64 part/templates/part/part_sidebar.html:33
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:203
-#: templates/InvenTree/settings/sidebar.html:44 templates/navbar.html:45
+#: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47
#: users/models.py:45
msgid "Purchase Orders"
msgstr "采购订单"
@@ -2602,7 +2657,7 @@ msgstr "新建采购订单"
#: order/templates/order/sales_orders.html:15
#: part/templates/part/detail.html:87 part/templates/part/part_sidebar.html:37
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:223
-#: templates/InvenTree/settings/sidebar.html:46 templates/navbar.html:56
+#: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58
#: users/models.py:46
msgid "Sales Orders"
msgstr "销售订单"
@@ -2618,7 +2673,7 @@ msgid "New Sales Order"
msgstr "新建销售订单"
#: company/templates/company/detail.html:168
-#: templates/js/translated/build.js:999
+#: templates/js/translated/build.js:1004
msgid "Assigned Stock"
msgstr ""
@@ -2644,7 +2699,7 @@ msgstr "供应商列表"
#: company/templates/company/manufacturer_part.html:14 company/views.py:55
#: part/templates/part/prices.html:167 templates/InvenTree/search.html:184
-#: templates/navbar.html:44
+#: templates/navbar.html:46
msgid "Manufacturers"
msgstr "制造商"
@@ -2673,7 +2728,7 @@ msgstr "内部商品"
#: company/templates/company/manufacturer_part.html:114
#: company/templates/company/supplier_part.html:15 company/views.py:49
#: part/templates/part/part_sidebar.html:31 part/templates/part/prices.html:163
-#: templates/InvenTree/search.html:194 templates/navbar.html:43
+#: templates/InvenTree/search.html:194 templates/navbar.html:45
msgid "Suppliers"
msgstr "供应商"
@@ -2687,7 +2742,7 @@ msgstr "删除供应商商品"
#: company/templates/company/manufacturer_part.html:254
#: part/templates/part/detail.html:344 part/templates/part/detail.html:372
#: templates/js/translated/company.js:425 templates/js/translated/helpers.js:31
-#: users/models.py:204
+#: users/models.py:206
msgid "Delete"
msgstr "删除"
@@ -2739,9 +2794,9 @@ msgid "Assigned Stock Items"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:482
+#: company/templates/company/supplier_part.html:24 stock/models.py:476
#: stock/templates/stock/item_base.html:403
-#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1405
+#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1569
msgid "Supplier Part"
msgstr "供应商商品"
@@ -2767,7 +2822,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:142
#: part/templates/part/detail.html:21 stock/templates/stock/location.html:163
-#: templates/js/translated/stock.js:355
+#: templates/js/translated/stock.js:359
msgid "New Stock Item"
msgstr ""
@@ -2817,11 +2872,11 @@ msgstr ""
#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:14
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:156
-#: templates/InvenTree/settings/sidebar.html:40
+#: templates/InvenTree/settings/sidebar.html:41
#: templates/js/translated/bom.js:216 templates/js/translated/part.js:434
#: templates/js/translated/part.js:569 templates/js/translated/part.js:1059
-#: templates/js/translated/part.js:1220 templates/js/translated/stock.js:591
-#: templates/js/translated/stock.js:1244 templates/navbar.html:26
+#: templates/js/translated/part.js:1220 templates/js/translated/stock.js:748
+#: templates/js/translated/stock.js:1401 templates/navbar.html:28
msgid "Stock"
msgstr "库存"
@@ -2844,7 +2899,7 @@ msgstr "定价"
#: stock/templates/stock/location.html:147
#: stock/templates/stock/location.html:159
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1983
+#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:2158
#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
msgid "Stock Items"
msgstr "库存项"
@@ -2858,7 +2913,7 @@ msgid "New Manufacturer"
msgstr "新建制造商"
#: company/views.py:61 templates/InvenTree/search.html:214
-#: templates/navbar.html:55
+#: templates/navbar.html:57
msgid "Customers"
msgstr "客户信息"
@@ -2960,284 +3015,374 @@ msgstr "查询筛选器 (逗号分隔的键值对列表"
msgid "Part query filters (comma-separated value of key=value pairs)"
msgstr "商品查询筛选器 (逗号分隔的键值对列表)"
-#: order/forms.py:26 order/templates/order/order_base.html:52
+#: order/forms.py:24 order/templates/order/order_base.html:52
msgid "Place order"
msgstr ""
-#: order/forms.py:37 order/templates/order/order_base.html:60
+#: order/forms.py:35 order/templates/order/order_base.html:60
msgid "Mark order as complete"
msgstr ""
-#: order/forms.py:48 order/forms.py:59 order/templates/order/order_base.html:47
+#: order/forms.py:46 order/forms.py:57 order/templates/order/order_base.html:47
#: order/templates/order/sales_order_base.html:60
msgid "Cancel order"
msgstr "取消订单"
-#: order/forms.py:70
-msgid "Ship order"
-msgstr ""
-
-#: order/forms.py:98
-msgid "Enter stock item serial numbers"
-msgstr ""
-
-#: order/forms.py:104
-msgid "Enter quantity of stock items"
-msgstr ""
-
-#: order/models.py:161
+#: order/models.py:122
msgid "Order description"
msgstr ""
-#: order/models.py:163
+#: order/models.py:124
msgid "Link to external page"
msgstr ""
-#: order/models.py:171
+#: order/models.py:132
msgid "Created By"
msgstr ""
-#: order/models.py:178
+#: order/models.py:139
msgid "User or group responsible for this order"
msgstr "负责此订单的用户或群组"
-#: order/models.py:183
+#: order/models.py:144
msgid "Order notes"
msgstr ""
-#: order/models.py:250 order/models.py:557
+#: order/models.py:211 order/models.py:537
msgid "Order reference"
msgstr ""
-#: order/models.py:255 order/models.py:572
+#: order/models.py:216 order/models.py:552
msgid "Purchase order status"
msgstr ""
-#: order/models.py:264
+#: order/models.py:225
msgid "Company from which the items are being ordered"
msgstr "订购该商品的公司"
-#: order/models.py:267 order/templates/order/order_base.html:118
-#: templates/js/translated/order.js:676
+#: order/models.py:228 order/templates/order/order_base.html:118
+#: templates/js/translated/order.js:832
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:267
+#: order/models.py:228
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:274
+#: order/models.py:235
msgid "received by"
msgstr ""
-#: order/models.py:279
+#: order/models.py:240
msgid "Issue Date"
msgstr ""
-#: order/models.py:280
+#: order/models.py:241
msgid "Date order was issued"
msgstr ""
-#: order/models.py:285
+#: order/models.py:246
msgid "Target Delivery Date"
msgstr ""
-#: order/models.py:286
+#: order/models.py:247
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:292
+#: order/models.py:253
msgid "Date order was completed"
msgstr ""
-#: order/models.py:321
+#: order/models.py:282
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:431
+#: order/models.py:411
msgid "Quantity must be an integer"
msgstr "数量必须是整数"
-#: order/models.py:435
+#: order/models.py:415
msgid "Quantity must be a positive number"
msgstr "数量必须大于0"
-#: order/models.py:568
+#: order/models.py:548
msgid "Company to which the items are being sold"
msgstr "向其出售该商品的公司"
-#: order/models.py:574
+#: order/models.py:554
msgid "Customer Reference "
msgstr ""
-#: order/models.py:574
+#: order/models.py:554
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:579
+#: order/models.py:559
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:582 templates/js/translated/order.js:1113
+#: order/models.py:562 order/models.py:1026
+#: templates/js/translated/order.js:1281 templates/js/translated/order.js:1429
msgid "Shipment Date"
msgstr ""
-#: order/models.py:589
+#: order/models.py:569
msgid "shipped by"
msgstr ""
-#: order/models.py:633
-msgid "SalesOrder cannot be shipped as it is not currently pending"
+#: order/models.py:634
+msgid "Order cannot be completed as no parts have been assigned"
msgstr ""
-#: order/models.py:730
+#: order/models.py:639
+msgid "Only a pending order can be marked as complete"
+msgstr ""
+
+#: order/models.py:643
+msgid "Order cannot be completed as there are incomplete shipments"
+msgstr ""
+
+#: order/models.py:647
+msgid "Order cannot be completed as there are incomplete line items"
+msgstr ""
+
+#: order/models.py:795
msgid "Item quantity"
msgstr ""
-#: order/models.py:736
+#: order/models.py:801
msgid "Line item reference"
msgstr ""
-#: order/models.py:738
+#: order/models.py:803
msgid "Line item notes"
msgstr ""
-#: order/models.py:768 order/models.py:856
-#: templates/js/translated/order.js:1165
+#: order/models.py:833 order/models.py:924 order/models.py:1020
+#: templates/js/translated/order.js:1820
msgid "Order"
msgstr ""
-#: order/models.py:769 order/templates/order/order_base.html:9
+#: order/models.py:834 order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:353
-#: templates/js/translated/order.js:638 templates/js/translated/part.js:775
-#: templates/js/translated/stock.js:1382 templates/js/translated/stock.js:2065
+#: templates/js/translated/order.js:801 templates/js/translated/part.js:775
+#: templates/js/translated/stock.js:1546 templates/js/translated/stock.js:2240
msgid "Purchase Order"
msgstr ""
-#: order/models.py:790
+#: order/models.py:855
msgid "Supplier part"
msgstr "供应商商品"
-#: order/models.py:797 order/templates/order/order_base.html:151
-#: order/templates/order/sales_order_base.html:155
-#: templates/js/translated/order.js:429 templates/js/translated/order.js:953
+#: order/models.py:862 order/templates/order/order_base.html:163
+#: templates/js/translated/order.js:589 templates/js/translated/order.js:1118
#: templates/js/translated/part.js:847 templates/js/translated/part.js:873
+#: templates/js/translated/table_filters.js:317
msgid "Received"
msgstr ""
-#: order/models.py:798
+#: order/models.py:863
msgid "Number of items received"
msgstr ""
-#: order/models.py:805 part/templates/part/prices.html:176 stock/models.py:609
-#: stock/serializers.py:168 stock/templates/stock/item_base.html:360
-#: templates/js/translated/stock.js:1436
+#: order/models.py:870 part/templates/part/prices.html:176 stock/models.py:603
+#: stock/serializers.py:170 stock/templates/stock/item_base.html:360
+#: templates/js/translated/stock.js:1600
msgid "Purchase Price"
msgstr "采购价格"
-#: order/models.py:806
+#: order/models.py:871
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:814
+#: order/models.py:879
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:866 part/templates/part/part_pricing.html:112
+#: order/models.py:934 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:116 part/templates/part/prices.html:284
msgid "Sale Price"
msgstr "销售价格"
-#: order/models.py:867
+#: order/models.py:935
msgid "Unit sale price"
msgstr ""
-#: order/models.py:946 order/models.py:948
+#: order/models.py:940
+msgid "Shipped quantity"
+msgstr ""
+
+#: order/models.py:1027
+msgid "Date of shipment"
+msgstr ""
+
+#: order/models.py:1034
+msgid "Checked By"
+msgstr ""
+
+#: order/models.py:1035
+msgid "User who checked this shipment"
+msgstr ""
+
+#: order/models.py:1043
+msgid "Shipment number"
+msgstr ""
+
+#: order/models.py:1050
+msgid "Shipment notes"
+msgstr ""
+
+#: order/models.py:1057
+msgid "Tracking Number"
+msgstr ""
+
+#: order/models.py:1058
+msgid "Shipment tracking information"
+msgstr ""
+
+#: order/models.py:1068
+msgid "Shipment has already been sent"
+msgstr ""
+
+#: order/models.py:1071
+msgid "Shipment has no allocated stock items"
+msgstr ""
+
+#: order/models.py:1147 order/models.py:1149
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:952
+#: order/models.py:1153
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:954
+#: order/models.py:1155
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:957
+#: order/models.py:1158
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:961
+#: order/models.py:1162
msgid "StockItem is over-allocated"
msgstr ""
-#: order/models.py:967
+#: order/models.py:1168 order/serializers.py:734
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:975
+#: order/models.py:1171
+msgid "Sales order does not match shipment"
+msgstr ""
+
+#: order/models.py:1172
+msgid "Shipment does not match sales order"
+msgstr ""
+
+#: order/models.py:1180
msgid "Line"
msgstr ""
-#: order/models.py:987
+#: order/models.py:1188 order/serializers.py:825 order/serializers.py:953
+#: templates/js/translated/model_renderers.js:251
+msgid "Shipment"
+msgstr ""
+
+#: order/models.py:1189
+msgid "Sales order shipment reference"
+msgstr ""
+
+#: order/models.py:1201
msgid "Item"
msgstr ""
-#: order/models.py:988
+#: order/models.py:1202
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:991
+#: order/models.py:1205
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/serializers.py:175
+#: order/serializers.py:173
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:213
+#: order/serializers.py:211 order/serializers.py:790
msgid "Line Item"
msgstr ""
-#: order/serializers.py:219
+#: order/serializers.py:217
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:229 order/serializers.py:297
+#: order/serializers.py:227 order/serializers.py:295
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:253
+#: order/serializers.py:251
msgid "Barcode Hash"
msgstr ""
-#: order/serializers.py:254
+#: order/serializers.py:252
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:271
+#: order/serializers.py:269
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:309
+#: order/serializers.py:307
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:326
+#: order/serializers.py:324
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:337
+#: order/serializers.py:335
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:578
+#: order/serializers.py:581
msgid "Sale price currency"
msgstr ""
+#: order/serializers.py:649
+msgid "No shipment details provided"
+msgstr ""
+
+#: order/serializers.py:699 order/serializers.py:802
+msgid "Line item is not associated with this order"
+msgstr ""
+
+#: order/serializers.py:721
+msgid "Quantity must be positive"
+msgstr ""
+
+#: order/serializers.py:815
+msgid "Enter serial numbers to allocate"
+msgstr ""
+
+#: order/serializers.py:839 order/serializers.py:964
+msgid "Shipment has already been shipped"
+msgstr ""
+
+#: order/serializers.py:842 order/serializers.py:967
+msgid "Shipment is not associated with this order"
+msgstr ""
+
+#: order/serializers.py:894
+msgid "No match found for the following serial numbers"
+msgstr ""
+
+#: order/serializers.py:904
+msgid "The following serial numbers are already allocated"
+msgstr ""
+
#: order/templates/order/delete_attachment.html:5
#: stock/templates/stock/attachment_delete.html:5
msgid "Are you sure you want to delete this attachment?"
@@ -3271,7 +3416,8 @@ msgstr ""
msgid "Receive Items"
msgstr ""
-#: order/templates/order/order_base.html:62 order/views.py:185
+#: order/templates/order/order_base.html:62
+#: order/templates/order/sales_order_base.html:67 order/views.py:181
msgid "Complete Order"
msgstr ""
@@ -3290,12 +3436,23 @@ msgstr ""
msgid "Order Status"
msgstr ""
-#: order/templates/order/order_base.html:137
+#: order/templates/order/order_base.html:124
+#: order/templates/order/sales_order_base.html:128
+msgid "Completed Line Items"
+msgstr ""
+
+#: order/templates/order/order_base.html:130
+#: order/templates/order/sales_order_base.html:134
+#: order/templates/order/sales_order_base.html:144
+msgid "Incomplete"
+msgstr ""
+
+#: order/templates/order/order_base.html:149
#: report/templates/report/inventree_build_order_base.html:122
msgid "Issued"
msgstr ""
-#: order/templates/order/order_base.html:207
+#: order/templates/order/order_base.html:219
msgid "Edit Purchase Order"
msgstr ""
@@ -3371,8 +3528,9 @@ msgstr ""
#: part/templates/part/import_wizard/ajax_match_references.html:42
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
-#: templates/js/translated/build.js:240 templates/js/translated/build.js:1251
-#: templates/js/translated/order.js:377
+#: templates/js/translated/build.js:245 templates/js/translated/build.js:1256
+#: templates/js/translated/order.js:537 templates/js/translated/order.js:1488
+#: templates/js/translated/stock.js:592
msgid "Remove row"
msgstr "移除行"
@@ -3453,7 +3611,8 @@ msgid "Select existing purchase orders, or create new orders."
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:31
-#: templates/js/translated/order.js:694 templates/js/translated/order.js:1118
+#: templates/js/translated/order.js:859 templates/js/translated/order.js:1286
+#: templates/js/translated/order.js:1416
msgid "Items"
msgstr ""
@@ -3489,7 +3648,7 @@ msgstr ""
#: order/templates/order/purchase_order_detail.html:27
#: order/templates/order/purchase_order_detail.html:181
#: order/templates/order/sales_order_detail.html:23
-#: order/templates/order/sales_order_detail.html:157
+#: order/templates/order/sales_order_detail.html:244
msgid "Add Line Item"
msgstr ""
@@ -3502,7 +3661,7 @@ msgid "Received Items"
msgstr ""
#: order/templates/order/purchase_order_detail.html:76
-#: order/templates/order/sales_order_detail.html:68
+#: order/templates/order/sales_order_detail.html:123
msgid "Order Notes"
msgstr ""
@@ -3520,8 +3679,8 @@ msgid "Print packing list"
msgstr ""
#: order/templates/order/sales_order_base.html:66
-#: order/templates/order/sales_order_base.html:67 order/views.py:222
-msgid "Ship Order"
+#: order/templates/order/sales_order_base.html:229
+msgid "Complete Sales Order"
msgstr ""
#: order/templates/order/sales_order_base.html:102
@@ -3529,16 +3688,21 @@ msgid "This Sales Order has not been fully allocated"
msgstr ""
#: order/templates/order/sales_order_base.html:122
-#: templates/js/translated/order.js:1085
+#: templates/js/translated/order.js:1253
msgid "Customer Reference"
msgstr ""
-#: order/templates/order/sales_order_base.html:195
+#: order/templates/order/sales_order_base.html:140
+#: order/templates/order/sales_order_detail.html:78
+#: order/templates/order/so_sidebar.html:11
+msgid "Completed Shipments"
+msgstr ""
+
+#: order/templates/order/sales_order_base.html:215
msgid "Edit Sales Order"
msgstr ""
#: order/templates/order/sales_order_cancel.html:8
-#: order/templates/order/sales_order_ship.html:9
#: part/templates/part/bom_duplicate.html:12
#: stock/templates/stock/stockitem_convert.html:13
msgid "Warning"
@@ -3552,146 +3716,100 @@ msgstr ""
msgid "Sales Order Items"
msgstr ""
-#: order/templates/order/sales_order_ship.html:10
-msgid "This order has not been fully allocated. If the order is marked as shipped, it can no longer be adjusted."
+#: order/templates/order/sales_order_detail.html:44
+#: order/templates/order/so_sidebar.html:8
+msgid "Pending Shipments"
msgstr ""
-#: order/templates/order/sales_order_ship.html:12
-msgid "Ensure that the order allocation is correct before shipping the order."
+#: order/templates/order/sales_order_detail.html:48
+#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1188
+msgid "Actions"
msgstr ""
-#: order/templates/order/sales_order_ship.html:18
-msgid "Some line items in this order have been over-allocated"
+#: order/templates/order/sales_order_detail.html:57
+msgid "New Shipment"
msgstr ""
-#: order/templates/order/sales_order_ship.html:20
-msgid "Ensure that this is correct before shipping the order."
-msgstr ""
-
-#: order/templates/order/sales_order_ship.html:27
-msgid "Shipping this order means that the order will no longer be editable."
-msgstr ""
-
-#: order/templates/order/so_allocate_by_serial.html:9
-msgid "Allocate stock items by serial number"
-msgstr ""
-
-#: order/views.py:103
+#: order/views.py:99
msgid "Cancel Order"
msgstr "取消订单"
-#: order/views.py:112 order/views.py:138
+#: order/views.py:108 order/views.py:134
msgid "Confirm order cancellation"
msgstr "确认取消订单"
-#: order/views.py:115 order/views.py:141
+#: order/views.py:111 order/views.py:137
msgid "Order cannot be cancelled"
msgstr "无法取消订单"
-#: order/views.py:129
+#: order/views.py:125
msgid "Cancel sales order"
msgstr "取消销售订单"
-#: order/views.py:155
+#: order/views.py:151
msgid "Issue Order"
msgstr ""
-#: order/views.py:164
+#: order/views.py:160
msgid "Confirm order placement"
msgstr ""
-#: order/views.py:174
+#: order/views.py:170
msgid "Purchase order issued"
msgstr ""
-#: order/views.py:201
+#: order/views.py:197
msgid "Confirm order completion"
msgstr ""
-#: order/views.py:212
+#: order/views.py:208
msgid "Purchase order completed"
msgstr ""
-#: order/views.py:238
-msgid "Confirm order shipment"
-msgstr ""
-
-#: order/views.py:244
-msgid "Could not ship order"
-msgstr ""
-
-#: order/views.py:291
+#: order/views.py:245
msgid "Match Supplier Parts"
msgstr ""
-#: order/views.py:535
+#: order/views.py:489
msgid "Update prices"
msgstr ""
-#: order/views.py:793
+#: order/views.py:747
#, python-brace-format
msgid "Ordered {n} parts"
msgstr ""
-#: order/views.py:846
-msgid "Allocate Serial Numbers"
-msgstr ""
-
-#: order/views.py:891
-#, python-brace-format
-msgid "Allocated {n} items"
-msgstr ""
-
-#: order/views.py:907
-msgid "Select line item"
-msgstr ""
-
-#: order/views.py:938
-#, python-brace-format
-msgid "No matching item for serial {serial}"
-msgstr ""
-
-#: order/views.py:948
-#, python-brace-format
-msgid "{serial} is not in stock"
-msgstr ""
-
-#: order/views.py:956
-#, python-brace-format
-msgid "{serial} already allocated to an order"
-msgstr ""
-
-#: order/views.py:1072
+#: order/views.py:858
msgid "Sales order not found"
msgstr ""
-#: order/views.py:1078
+#: order/views.py:864
msgid "Price not found"
msgstr ""
-#: order/views.py:1081
+#: order/views.py:867
#, python-brace-format
msgid "Updated {part} unit-price to {price}"
msgstr ""
-#: order/views.py:1086
+#: order/views.py:872
#, python-brace-format
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/api.py:758
+#: part/api.py:760
msgid "Must be greater than zero"
msgstr "必须大于0"
-#: part/api.py:762
+#: part/api.py:764
msgid "Must be a valid quantity"
msgstr "必须是有效的数量"
-#: part/api.py:777
+#: part/api.py:779
msgid "Specify location for initial part stock"
msgstr "指定初始初始商品仓储地点"
-#: part/api.py:808 part/api.py:812 part/api.py:827 part/api.py:831
+#: part/api.py:810 part/api.py:814 part/api.py:829 part/api.py:833
msgid "This field is required"
msgstr "此字段为必填"
@@ -3828,8 +3946,8 @@ msgstr "商品类别"
#: part/templates/part/category.html:149
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:88
-#: templates/InvenTree/settings/sidebar.html:36
-#: templates/js/translated/part.js:1597 templates/navbar.html:19
+#: templates/InvenTree/settings/sidebar.html:37
+#: templates/js/translated/part.js:1597 templates/navbar.html:21
#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
msgid "Parts"
msgstr "商品"
@@ -3895,7 +4013,7 @@ msgstr "提高搜索结果可见性的关键字"
#: part/models.py:778 part/models.py:2223 part/models.py:2472
#: part/templates/part/part_base.html:265
#: part/templates/part/set_category.html:15
-#: templates/InvenTree/settings/settings.html:163
+#: templates/InvenTree/settings/settings.html:172
#: templates/js/translated/part.js:1202
msgid "Category"
msgstr "类别"
@@ -3906,7 +4024,7 @@ msgstr "商品类别"
#: part/models.py:784 part/templates/part/part_base.html:274
#: templates/js/translated/part.js:557 templates/js/translated/part.js:1155
-#: templates/js/translated/stock.js:1216
+#: templates/js/translated/stock.js:1373
msgid "IPN"
msgstr ""
@@ -3975,10 +4093,11 @@ msgstr ""
msgid "Can this part be sold to customers?"
msgstr "此商品可以销售给客户吗?"
-#: part/models.py:915 templates/js/translated/table_filters.js:34
+#: part/models.py:915 plugin/models.py:45
+#: templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:96
-#: templates/js/translated/table_filters.js:290
-#: templates/js/translated/table_filters.js:368
+#: templates/js/translated/table_filters.js:295
+#: templates/js/translated/table_filters.js:399
msgid "Active"
msgstr ""
@@ -4027,7 +4146,7 @@ msgid "Test with this name already exists for this part"
msgstr ""
#: part/models.py:2310 templates/js/translated/part.js:1648
-#: templates/js/translated/stock.js:940
+#: templates/js/translated/stock.js:1097
msgid "Test Name"
msgstr ""
@@ -4044,7 +4163,7 @@ msgid "Enter description for this test"
msgstr ""
#: part/models.py:2322 templates/js/translated/part.js:1657
-#: templates/js/translated/table_filters.js:276
+#: templates/js/translated/table_filters.js:281
msgid "Required"
msgstr ""
@@ -4086,7 +4205,7 @@ msgid "Parameter Units"
msgstr ""
#: part/models.py:2429 part/models.py:2478 part/models.py:2479
-#: templates/InvenTree/settings/settings.html:158
+#: templates/InvenTree/settings/settings.html:167
msgid "Parameter Template"
msgstr "参数模板"
@@ -4098,7 +4217,7 @@ msgstr ""
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2483 templates/InvenTree/settings/settings.html:167
+#: part/models.py:2483 templates/InvenTree/settings/settings.html:176
msgid "Default Value"
msgstr "默认值"
@@ -4175,7 +4294,7 @@ msgstr ""
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2686 stock/models.py:361
+#: part/models.py:2686 stock/models.py:355
msgid "Quantity must be integer value for trackable parts"
msgstr ""
@@ -4724,8 +4843,8 @@ msgstr ""
msgid "This part is a variant of %(link)s"
msgstr ""
-#: part/templates/part/part_base.html:190 templates/js/translated/order.js:1545
-#: templates/js/translated/table_filters.js:188
+#: part/templates/part/part_base.html:190 templates/js/translated/order.js:2217
+#: templates/js/translated/table_filters.js:193
msgid "In Stock"
msgstr ""
@@ -5099,6 +5218,78 @@ msgstr ""
msgid "Delete Internal Price Break"
msgstr ""
+#: plugin/integration.py:116
+msgid "No author found"
+msgstr ""
+
+#: plugin/integration.py:128
+msgid "No date found"
+msgstr ""
+
+#: plugin/models.py:25
+msgid "Plugin Configuration"
+msgstr ""
+
+#: plugin/models.py:26
+msgid "Plugin Configurations"
+msgstr ""
+
+#: plugin/models.py:31
+msgid "Key"
+msgstr ""
+
+#: plugin/models.py:32
+msgid "Key of plugin"
+msgstr ""
+
+#: plugin/models.py:40
+msgid "PluginName of the plugin"
+msgstr ""
+
+#: plugin/models.py:46
+msgid "Is the plugin active"
+msgstr ""
+
+#: plugin/samples/integration/sample.py:39
+msgid "Enable PO"
+msgstr ""
+
+#: plugin/samples/integration/sample.py:40
+msgid "Enable PO functionality in InvenTree interface"
+msgstr ""
+
+#: plugin/serializers.py:46
+msgid "Source URL"
+msgstr ""
+
+#: plugin/serializers.py:47
+msgid "Source for the package - this can be a custom registry or a VCS path"
+msgstr ""
+
+#: plugin/serializers.py:52
+msgid "Package Name"
+msgstr ""
+
+#: plugin/serializers.py:53
+msgid "Name for the Plugin Package - can also contain a version indicator"
+msgstr ""
+
+#: plugin/serializers.py:56
+msgid "Confirm plugin installation"
+msgstr ""
+
+#: plugin/serializers.py:57
+msgid "This will install this plugin now into the current instance. The instance will go into maintenance."
+msgstr ""
+
+#: plugin/serializers.py:72
+msgid "Installation not confirmed"
+msgstr ""
+
+#: plugin/serializers.py:74
+msgid "Either packagenmae of url must be provided"
+msgstr ""
+
#: report/api.py:234 report/api.py:278
#, python-brace-format
msgid "Template file '{filename}' is missing or does not exist"
@@ -5197,12 +5388,12 @@ msgid "Stock Item Test Report"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:520 stock/templates/stock/item_base.html:149
-#: templates/js/translated/build.js:233 templates/js/translated/build.js:637
-#: templates/js/translated/build.js:1013
+#: stock/models.py:514 stock/templates/stock/item_base.html:149
+#: templates/js/translated/build.js:238 templates/js/translated/build.js:642
+#: templates/js/translated/build.js:1018
#: templates/js/translated/model_renderers.js:95
-#: templates/js/translated/order.js:1287 templates/js/translated/order.js:1376
-#: templates/js/translated/stock.js:410
+#: templates/js/translated/order.js:99 templates/js/translated/order.js:1945
+#: templates/js/translated/order.js:2034 templates/js/translated/stock.js:414
msgid "Serial Number"
msgstr "序列号"
@@ -5211,17 +5402,19 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:93
-#: stock/models.py:1845
+#: stock/models.py:1833
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:94
-#: stock/models.py:1851
+#: stock/models.py:1839
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:97
-#: templates/js/translated/order.js:684 templates/js/translated/stock.js:1999
+#: templates/InvenTree/settings/plugin.html:49
+#: templates/InvenTree/settings/plugin_settings.html:38
+#: templates/js/translated/order.js:849 templates/js/translated/stock.js:2174
msgid "Date"
msgstr ""
@@ -5239,302 +5432,318 @@ msgid "Installed Items"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
-#: templates/js/translated/stock.js:2259
+#: templates/js/translated/stock.js:577 templates/js/translated/stock.js:2434
msgid "Serial"
msgstr ""
-#: stock/api.py:422
+#: stock/api.py:446
msgid "Quantity is required"
msgstr ""
-#: stock/forms.py:91 stock/forms.py:265 stock/models.py:577
+#: stock/forms.py:77 stock/forms.py:251 stock/models.py:571
#: stock/templates/stock/item_base.html:186
-#: templates/js/translated/stock.js:1358
+#: templates/js/translated/stock.js:1522
msgid "Expiry Date"
msgstr ""
-#: stock/forms.py:92 stock/forms.py:266
+#: stock/forms.py:78 stock/forms.py:252
msgid "Expiration date for this stock item"
msgstr ""
-#: stock/forms.py:95
+#: stock/forms.py:81
msgid "Enter unique serial numbers (or leave blank)"
msgstr ""
-#: stock/forms.py:150
+#: stock/forms.py:136
msgid "Destination for serialized stock (by default, will remain in current location)"
msgstr ""
-#: stock/forms.py:152
+#: stock/forms.py:138
msgid "Serial numbers"
msgstr ""
-#: stock/forms.py:152
+#: stock/forms.py:138
msgid "Unique serial numbers (must match quantity)"
msgstr ""
-#: stock/forms.py:154 stock/forms.py:238
+#: stock/forms.py:140 stock/forms.py:224
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/forms.py:194
+#: stock/forms.py:180
msgid "Stock item to install"
msgstr ""
-#: stock/forms.py:224
+#: stock/forms.py:210
msgid "Must not exceed available quantity"
msgstr ""
-#: stock/forms.py:236
+#: stock/forms.py:222
msgid "Destination location for uninstalled items"
msgstr ""
-#: stock/forms.py:240
+#: stock/forms.py:226
msgid "Confirm uninstall"
msgstr ""
-#: stock/forms.py:240
+#: stock/forms.py:226
msgid "Confirm removal of installed stock items"
msgstr ""
-#: stock/models.py:60 stock/models.py:614
+#: stock/models.py:60 stock/models.py:608
#: stock/templates/stock/item_base.html:417
msgid "Owner"
msgstr ""
-#: stock/models.py:61 stock/models.py:615
+#: stock/models.py:61 stock/models.py:609
msgid "Select Owner"
msgstr ""
-#: stock/models.py:342
+#: stock/models.py:336
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:378
+#: stock/models.py:372
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr "商品类型 ('{pf}') 必须是 {pe}"
-#: stock/models.py:388 stock/models.py:397
+#: stock/models.py:382 stock/models.py:391
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:389
+#: stock/models.py:383
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:411
+#: stock/models.py:405
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:417
+#: stock/models.py:411
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:424
+#: stock/models.py:418
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:466
+#: stock/models.py:460
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:475
+#: stock/models.py:469
msgid "Base part"
msgstr ""
-#: stock/models.py:483
+#: stock/models.py:477
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:488 stock/templates/stock/location.html:12
+#: stock/models.py:482 stock/templates/stock/location.html:12
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr "仓储地点"
-#: stock/models.py:491
+#: stock/models.py:485
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:498
+#: stock/models.py:492
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:503 stock/templates/stock/item_base.html:299
+#: stock/models.py:497 stock/templates/stock/item_base.html:299
msgid "Installed In"
msgstr ""
-#: stock/models.py:506
+#: stock/models.py:500
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:522
+#: stock/models.py:516
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:536
+#: stock/models.py:530
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:540
+#: stock/models.py:534
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:549
+#: stock/models.py:543
msgid "Source Build"
msgstr ""
-#: stock/models.py:551
+#: stock/models.py:545
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:562
+#: stock/models.py:556
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:565
+#: stock/models.py:559
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:571
+#: stock/models.py:565
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:578
+#: stock/models.py:572
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:591
+#: stock/models.py:585
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:591
+#: stock/models.py:585
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:601 stock/templates/stock/item.html:111
+#: stock/models.py:595 stock/templates/stock/item.html:111
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:610
+#: stock/models.py:604
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:620
-msgid "Scheduled for deletion"
-msgstr ""
-
-#: stock/models.py:621
-msgid "This StockItem will be deleted by the background worker"
-msgstr ""
-
-#: stock/models.py:1084
+#: stock/models.py:1072
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1090
+#: stock/models.py:1078
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1096
+#: stock/models.py:1084
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1099
+#: stock/models.py:1087
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1102
+#: stock/models.py:1090
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1109
+#: stock/models.py:1097
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1267
+#: stock/models.py:1255
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1765
+#: stock/models.py:1753
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1822
+#: stock/models.py:1810
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1828
+#: stock/models.py:1816
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1846
+#: stock/models.py:1834
msgid "Test name"
msgstr ""
-#: stock/models.py:1852 templates/js/translated/table_filters.js:266
+#: stock/models.py:1840 templates/js/translated/table_filters.js:271
msgid "Test result"
msgstr ""
-#: stock/models.py:1858
+#: stock/models.py:1846
msgid "Test output value"
msgstr ""
-#: stock/models.py:1865
+#: stock/models.py:1853
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1871
+#: stock/models.py:1859
msgid "Test notes"
msgstr ""
-#: stock/serializers.py:171
+#: stock/serializers.py:173
msgid "Purchase price of this stock item"
msgstr ""
-#: stock/serializers.py:178
+#: stock/serializers.py:180
msgid "Purchase currency of this stock item"
msgstr ""
-#: stock/serializers.py:292
+#: stock/serializers.py:294
msgid "Enter number of stock items to serialize"
msgstr ""
-#: stock/serializers.py:307
+#: stock/serializers.py:309
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:313
+#: stock/serializers.py:315
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:324 stock/serializers.py:691
+#: stock/serializers.py:326 stock/serializers.py:814
msgid "Destination stock location"
msgstr ""
-#: stock/serializers.py:331
+#: stock/serializers.py:333
msgid "Optional note field"
msgstr ""
-#: stock/serializers.py:344
+#: stock/serializers.py:346
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:561
+#: stock/serializers.py:573
+msgid "Part must be salable"
+msgstr ""
+
+#: stock/serializers.py:577
+msgid "Item is allocated to a sales order"
+msgstr ""
+
+#: stock/serializers.py:581
+msgid "Item is allocated to a build order"
+msgstr ""
+
+#: stock/serializers.py:611
+msgid "Customer to assign stock items"
+msgstr ""
+
+#: stock/serializers.py:617
+msgid "Selected company is not a customer"
+msgstr ""
+
+#: stock/serializers.py:625
+msgid "Stock assignment notes"
+msgstr ""
+
+#: stock/serializers.py:635 stock/serializers.py:722
+msgid "A list of stock items must be provided"
+msgstr ""
+
+#: stock/serializers.py:684
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:589
+#: stock/serializers.py:712
msgid "Stock transaction notes"
msgstr ""
-#: stock/serializers.py:599
-msgid "A list of stock items must be provided"
-msgstr ""
-
#: stock/templates/stock/item.html:18
msgid "Stock Tracking Information"
msgstr ""
@@ -5572,7 +5781,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:137 stock/views.py:515
+#: stock/templates/stock/item.html:137 stock/views.py:482
msgid "Install Stock Item"
msgstr ""
@@ -5632,7 +5841,7 @@ msgstr ""
msgid "Transfer stock"
msgstr ""
-#: stock/templates/stock/item_base.html:85
+#: stock/templates/stock/item_base.html:85 templates/stock_table.html:53
msgid "Assign to customer"
msgstr ""
@@ -5694,7 +5903,7 @@ msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:190
-#: templates/js/translated/table_filters.js:247
+#: templates/js/translated/table_filters.js:252
msgid "Expired"
msgstr ""
@@ -5704,12 +5913,12 @@ msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:192
-#: templates/js/translated/table_filters.js:253
+#: templates/js/translated/table_filters.js:258
msgid "Stale"
msgstr ""
#: stock/templates/stock/item_base.html:199
-#: templates/js/translated/stock.js:1371
+#: templates/js/translated/stock.js:1535
msgid "Last Updated"
msgstr ""
@@ -5738,13 +5947,11 @@ msgid "This stock item has not passed all required tests"
msgstr ""
#: stock/templates/stock/item_base.html:255
-#, python-format
-msgid "This stock item is allocated to Sales Order %(link)s (Quantity: %(qty)s)"
+msgid "This stock item is allocated to Sales Order"
msgstr ""
#: stock/templates/stock/item_base.html:263
-#, python-format
-msgid "This stock item is allocated to Build %(link)s (Quantity: %(qty)s)"
+msgid "This stock item is allocated to Build Order"
msgstr ""
#: stock/templates/stock/item_base.html:269
@@ -5760,7 +5967,7 @@ msgid "This stock item will be automatically deleted when all stock is depleted.
msgstr ""
#: stock/templates/stock/item_base.html:318
-#: templates/js/translated/build.js:1035
+#: templates/js/translated/build.js:1040
msgid "No location set"
msgstr "未设置仓储地点"
@@ -5910,7 +6117,7 @@ msgstr ""
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:912
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:879
msgid "Convert Stock Item"
msgstr ""
@@ -5935,8 +6142,7 @@ msgstr ""
msgid "Edit Stock Location"
msgstr "编辑仓储地点"
-#: stock/views.py:269 stock/views.py:891 stock/views.py:1017
-#: stock/views.py:1299
+#: stock/views.py:269 stock/views.py:858 stock/views.py:984 stock/views.py:1266
msgid "Owner is required (ownership control is enabled)"
msgstr ""
@@ -5945,86 +6151,78 @@ msgid "Stock Location QR code"
msgstr "仓储地点二维码"
#: stock/views.py:303
-msgid "Assign to Customer"
-msgstr ""
-
-#: stock/views.py:312
-msgid "Customer must be specified"
-msgstr ""
-
-#: stock/views.py:336
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:345
+#: stock/views.py:312
msgid "Specify a valid location"
msgstr "指定一个有效仓储地点"
-#: stock/views.py:356
+#: stock/views.py:323
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:367
+#: stock/views.py:334
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:384
+#: stock/views.py:351
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:489
+#: stock/views.py:456
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:663
+#: stock/views.py:630
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:760 templates/js/translated/stock.js:730
+#: stock/views.py:727 templates/js/translated/stock.js:887
msgid "Confirm stock adjustment"
msgstr ""
-#: stock/views.py:771
+#: stock/views.py:738
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:793 templates/js/translated/stock.js:319
+#: stock/views.py:760 templates/js/translated/stock.js:323
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:943
+#: stock/views.py:910
msgid "Create new Stock Location"
msgstr "新建仓储地点"
-#: stock/views.py:1044
+#: stock/views.py:1011
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1186 templates/js/translated/stock.js:299
+#: stock/views.py:1153 templates/js/translated/stock.js:303
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1268
+#: stock/views.py:1235
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1368
+#: stock/views.py:1335
msgid "Delete Stock Location"
msgstr "删除仓储地点"
-#: stock/views.py:1381
+#: stock/views.py:1348
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1392
+#: stock/views.py:1359
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1399
+#: stock/views.py:1366
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1408
+#: stock/views.py:1375
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -6044,6 +6242,14 @@ msgstr ""
msgid "The requested page does not exist"
msgstr ""
+#: templates/503.html:10 templates/503.html:35
+msgid "Site is in Maintenance"
+msgstr ""
+
+#: templates/503.html:41
+msgid "The site is currently in maintenance and should be up again soon!"
+msgstr ""
+
#: templates/InvenTree/index.html:7
msgid "Index"
msgstr ""
@@ -6153,7 +6359,7 @@ msgid "Server Settings"
msgstr ""
#: templates/InvenTree/settings/login.html:9
-#: templates/InvenTree/settings/sidebar.html:28
+#: templates/InvenTree/settings/sidebar.html:29
msgid "Login Settings"
msgstr ""
@@ -6161,6 +6367,24 @@ msgstr ""
msgid "Signup"
msgstr ""
+#: templates/InvenTree/settings/mixins/settings.html:4
+#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:118
+msgid "Settings"
+msgstr "设置"
+
+#: templates/InvenTree/settings/mixins/urls.html:4
+msgid "URLs"
+msgstr ""
+
+#: templates/InvenTree/settings/mixins/urls.html:6
+#, python-format
+msgid "The Base-URL for this plugin is %(base)s."
+msgstr ""
+
+#: templates/InvenTree/settings/mixins/urls.html:21
+msgid "open in new tab"
+msgstr ""
+
#: templates/InvenTree/settings/part.html:7
msgid "Part Settings"
msgstr "商品设置"
@@ -6177,6 +6401,126 @@ msgstr "导入商品"
msgid "Part Parameter Templates"
msgstr "商品参数模板"
+#: templates/InvenTree/settings/plugin.html:10
+msgid "Plugin Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:16
+msgid "Changing the settings below require you to immediatly restart InvenTree. Do not change this while under active usage."
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:32
+msgid "Plugin list"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:37
+#: templates/js/translated/plugin.js:15
+msgid "Install Plugin"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:46 templates/navbar.html:111
+#: users/models.py:39
+msgid "Admin"
+msgstr "管理员"
+
+#: templates/InvenTree/settings/plugin.html:48
+#: templates/InvenTree/settings/plugin_settings.html:28
+msgid "Author"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:50
+#: templates/InvenTree/settings/plugin_settings.html:43
+msgid "Version"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:73
+#, python-format
+msgid "has %(name)s"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:91
+msgid "Inactive plugins"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:114
+msgid "Plugin Error Stack"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:123
+msgid "Stage"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin.html:125
+msgid "Message"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:10
+#, python-format
+msgid "Plugin details for %(name)s"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:17
+msgid "Plugin information"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:48
+msgid "no version information supplied"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:62
+msgid "License"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:70
+msgid "The code information is pulled from the latest git commit for this plugin. It might not reflect official version numbers or information but the actual code running."
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:74
+msgid "Package information"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:80
+msgid "Installation method"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:83
+msgid "This plugin was installed as a package"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:85
+msgid "This plugin was found in a local InvenTree path"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:91
+msgid "Installation path"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:97
+msgid "Commit Author"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:101
+#: templates/about.html:47
+msgid "Commit Date"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:105
+#: templates/about.html:40
+msgid "Commit Hash"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:109
+msgid "Commit Message"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:114
+msgid "Sign Status"
+msgstr ""
+
+#: templates/InvenTree/settings/plugin_settings.html:119
+msgid "Sign Key"
+msgstr ""
+
#: templates/InvenTree/settings/po.html:7
msgid "Purchase Order Settings"
msgstr "采购订单设置"
@@ -6194,86 +6538,82 @@ msgstr "未设置值"
msgid "Edit setting"
msgstr "编辑设置"
-#: templates/InvenTree/settings/settings.html:11 templates/navbar.html:93
-msgid "Settings"
-msgstr "设置"
-
-#: templates/InvenTree/settings/settings.html:65
+#: templates/InvenTree/settings/settings.html:74
msgid "Edit Global Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:65
+#: templates/InvenTree/settings/settings.html:74
msgid "Edit User Setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:148
+#: templates/InvenTree/settings/settings.html:157
msgid "No category parameter templates found"
msgstr "未找到类别参数模板"
-#: templates/InvenTree/settings/settings.html:170
-#: templates/InvenTree/settings/settings.html:269
+#: templates/InvenTree/settings/settings.html:179
+#: templates/InvenTree/settings/settings.html:278
msgid "Edit Template"
msgstr "编辑模板"
-#: templates/InvenTree/settings/settings.html:171
-#: templates/InvenTree/settings/settings.html:270
+#: templates/InvenTree/settings/settings.html:180
+#: templates/InvenTree/settings/settings.html:279
msgid "Delete Template"
msgstr "删除模板"
-#: templates/InvenTree/settings/settings.html:249
+#: templates/InvenTree/settings/settings.html:258
msgid "No part parameter templates found"
msgstr "未找到商品参数模板"
-#: templates/InvenTree/settings/settings.html:253
+#: templates/InvenTree/settings/settings.html:262
msgid "ID"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:5
+#: templates/InvenTree/settings/sidebar.html:6
#: templates/InvenTree/settings/user_settings.html:9
msgid "User Settings"
msgstr "用户设置"
-#: templates/InvenTree/settings/sidebar.html:8
+#: templates/InvenTree/settings/sidebar.html:9
#: templates/InvenTree/settings/user.html:12
msgid "Account Settings"
msgstr "帐户设置"
-#: templates/InvenTree/settings/sidebar.html:10
+#: templates/InvenTree/settings/sidebar.html:11
#: templates/InvenTree/settings/user_display.html:9
msgid "Display Settings"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:12
+#: templates/InvenTree/settings/sidebar.html:13
msgid "Home Page"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:14
+#: templates/InvenTree/settings/sidebar.html:15
#: templates/InvenTree/settings/user_search.html:9
msgid "Search Settings"
msgstr "搜索设置"
-#: templates/InvenTree/settings/sidebar.html:16
+#: templates/InvenTree/settings/sidebar.html:17
msgid "Label Printing"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:18
-#: templates/InvenTree/settings/sidebar.html:34
+#: templates/InvenTree/settings/sidebar.html:19
+#: templates/InvenTree/settings/sidebar.html:35
msgid "Reporting"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:23
+#: templates/InvenTree/settings/sidebar.html:24
msgid "Global Settings"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:26
+#: templates/InvenTree/settings/sidebar.html:27
msgid "Server Configuration"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:32
+#: templates/InvenTree/settings/sidebar.html:33
msgid "Currencies"
msgstr ""
-#: templates/InvenTree/settings/sidebar.html:38
+#: templates/InvenTree/settings/sidebar.html:39
msgid "Categories"
msgstr ""
@@ -6491,8 +6831,8 @@ msgstr ""
#: templates/about.html:11 templates/about.html:105
#: templates/js/translated/bom.js:283 templates/js/translated/modals.js:53
-#: templates/js/translated/modals.js:567 templates/js/translated/modals.js:661
-#: templates/js/translated/modals.js:964 templates/modals.html:15
+#: templates/js/translated/modals.js:568 templates/js/translated/modals.js:662
+#: templates/js/translated/modals.js:965 templates/modals.html:15
#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
msgid "Close"
msgstr ""
@@ -6513,14 +6853,6 @@ msgstr ""
msgid "Update Available"
msgstr ""
-#: templates/about.html:40
-msgid "Commit Hash"
-msgstr ""
-
-#: templates/about.html:47
-msgid "Commit Date"
-msgstr ""
-
#: templates/about.html:53
msgid "InvenTree Documentation"
msgstr ""
@@ -6718,8 +7050,9 @@ msgstr ""
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1129
-#: templates/js/translated/build.js:1749
+#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1134
+#: templates/js/translated/build.js:1755
+#: templates/js/translated/table_filters.js:178
msgid "Available"
msgstr "空闲"
@@ -6765,11 +7098,11 @@ msgstr ""
msgid "Remote image must not exceed maximum allowable file size"
msgstr ""
-#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1034
+#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1035
msgid "No Response"
msgstr ""
-#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1035
+#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1036
msgid "No response from the InvenTree server"
msgstr ""
@@ -6781,35 +7114,35 @@ msgstr ""
msgid "API request returned error code 400"
msgstr ""
-#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1044
+#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1045
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1045
+#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1046
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1049
+#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1050
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1050
+#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1051
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1054
+#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1055
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1055
+#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1056
msgid "The requested resource could not be located on the server"
msgstr ""
-#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1059
+#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1060
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1060
+#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1061
msgid "Connection timeout while requesting data from server"
msgstr ""
@@ -6878,7 +7211,7 @@ msgid "Unknown response from server"
msgstr ""
#: templates/js/translated/barcode.js:140
-#: templates/js/translated/modals.js:1024
+#: templates/js/translated/modals.js:1025
msgid "Invalid server response"
msgstr ""
@@ -6886,7 +7219,7 @@ msgstr ""
msgid "Scan barcode data below"
msgstr ""
-#: templates/js/translated/barcode.js:280 templates/navbar.html:69
+#: templates/js/translated/barcode.js:280 templates/navbar.html:94
msgid "Scan Barcode"
msgstr "扫描条形码"
@@ -6906,7 +7239,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:682
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:839
msgid "Remove stock item"
msgstr ""
@@ -6976,7 +7309,7 @@ msgstr ""
msgid "Substitutes Available"
msgstr ""
-#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1111
+#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1116
msgid "Variant stock allowed"
msgstr ""
@@ -7000,11 +7333,6 @@ msgstr ""
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1183
-#: templates/js/translated/order.js:1319
-msgid "Actions"
-msgstr ""
-
#: templates/js/translated/bom.js:616
msgid "Validate BOM Item"
msgstr ""
@@ -7025,7 +7353,7 @@ msgstr ""
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:718 templates/js/translated/build.js:855
+#: templates/js/translated/bom.js:718 templates/js/translated/build.js:860
msgid "No BOM items found"
msgstr ""
@@ -7033,7 +7361,7 @@ msgstr ""
msgid "Are you sure you want to delete this BOM item?"
msgstr ""
-#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1095
+#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1100
msgid "Required Part"
msgstr ""
@@ -7041,165 +7369,165 @@ msgstr ""
msgid "Inherited from parent BOM"
msgstr ""
-#: templates/js/translated/build.js:78
+#: templates/js/translated/build.js:83
msgid "Edit Build Order"
msgstr ""
-#: templates/js/translated/build.js:112
+#: templates/js/translated/build.js:117
msgid "Create Build Order"
msgstr ""
-#: templates/js/translated/build.js:133
+#: templates/js/translated/build.js:138
msgid "Allocate stock items to this build output"
msgstr ""
-#: templates/js/translated/build.js:144
+#: templates/js/translated/build.js:149
msgid "Unallocate stock from build output"
msgstr ""
-#: templates/js/translated/build.js:153
+#: templates/js/translated/build.js:158
msgid "Complete build output"
msgstr ""
-#: templates/js/translated/build.js:161
+#: templates/js/translated/build.js:166
msgid "Delete build output"
msgstr ""
-#: templates/js/translated/build.js:184
+#: templates/js/translated/build.js:189
msgid "Are you sure you wish to unallocate stock items from this build?"
msgstr ""
-#: templates/js/translated/build.js:202
+#: templates/js/translated/build.js:207
msgid "Unallocate Stock Items"
msgstr ""
-#: templates/js/translated/build.js:220
+#: templates/js/translated/build.js:225
msgid "Select Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:221
+#: templates/js/translated/build.js:226
msgid "At least one build output must be selected"
msgstr ""
-#: templates/js/translated/build.js:275
+#: templates/js/translated/build.js:280
msgid "Output"
msgstr ""
-#: templates/js/translated/build.js:291
+#: templates/js/translated/build.js:296
msgid "Complete Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:386
+#: templates/js/translated/build.js:391
msgid "No build order allocations found"
msgstr ""
-#: templates/js/translated/build.js:424 templates/js/translated/order.js:1193
+#: templates/js/translated/build.js:429 templates/js/translated/order.js:1848
msgid "Location not specified"
msgstr "未指定仓储地点"
-#: templates/js/translated/build.js:603
+#: templates/js/translated/build.js:608
msgid "No active build outputs found"
msgstr ""
-#: templates/js/translated/build.js:1052 templates/js/translated/build.js:1760
-#: templates/js/translated/order.js:1326
+#: templates/js/translated/build.js:1057 templates/js/translated/build.js:1766
+#: templates/js/translated/order.js:1982
msgid "Edit stock allocation"
msgstr ""
-#: templates/js/translated/build.js:1054 templates/js/translated/build.js:1761
-#: templates/js/translated/order.js:1327
+#: templates/js/translated/build.js:1059 templates/js/translated/build.js:1767
+#: templates/js/translated/order.js:1983
msgid "Delete stock allocation"
msgstr ""
-#: templates/js/translated/build.js:1072
+#: templates/js/translated/build.js:1077
msgid "Edit Allocation"
msgstr ""
-#: templates/js/translated/build.js:1082
+#: templates/js/translated/build.js:1087
msgid "Remove Allocation"
msgstr ""
-#: templates/js/translated/build.js:1107
+#: templates/js/translated/build.js:1112
msgid "Substitute parts available"
msgstr ""
-#: templates/js/translated/build.js:1124
+#: templates/js/translated/build.js:1129
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:1134 templates/js/translated/build.js:1360
-#: templates/js/translated/build.js:1756 templates/js/translated/order.js:1556
+#: templates/js/translated/build.js:1139 templates/js/translated/build.js:1365
+#: templates/js/translated/build.js:1762 templates/js/translated/order.js:2227
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:1190 templates/js/translated/order.js:1610
+#: templates/js/translated/build.js:1195 templates/js/translated/order.js:2307
msgid "Build stock"
msgstr ""
-#: templates/js/translated/build.js:1194 templates/stock_table.html:52
+#: templates/js/translated/build.js:1199 templates/stock_table.html:52
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:1197 templates/js/translated/order.js:1603
+#: templates/js/translated/build.js:1202 templates/js/translated/order.js:2300
msgid "Allocate stock"
msgstr ""
-#: templates/js/translated/build.js:1262
+#: templates/js/translated/build.js:1267 templates/js/translated/order.js:1499
msgid "Specify stock allocation quantity"
msgstr ""
-#: templates/js/translated/build.js:1333 templates/js/translated/label.js:134
-#: templates/js/translated/report.js:225
+#: templates/js/translated/build.js:1338 templates/js/translated/label.js:134
+#: templates/js/translated/order.js:1550 templates/js/translated/report.js:225
msgid "Select Parts"
msgstr "选择商品"
-#: templates/js/translated/build.js:1334
+#: templates/js/translated/build.js:1339 templates/js/translated/order.js:1551
msgid "You must select at least one part to allocate"
msgstr ""
-#: templates/js/translated/build.js:1348
+#: templates/js/translated/build.js:1353 templates/js/translated/order.js:1565
msgid "Select source location (leave blank to take from all locations)"
msgstr ""
-#: templates/js/translated/build.js:1377
+#: templates/js/translated/build.js:1382 templates/js/translated/order.js:1600
msgid "Confirm stock allocation"
msgstr "确认库存分配"
-#: templates/js/translated/build.js:1378
+#: templates/js/translated/build.js:1383
msgid "Allocate Stock Items to Build Order"
msgstr ""
-#: templates/js/translated/build.js:1389
+#: templates/js/translated/build.js:1394 templates/js/translated/order.js:1613
msgid "No matching stock locations"
msgstr ""
-#: templates/js/translated/build.js:1451
+#: templates/js/translated/build.js:1464 templates/js/translated/order.js:1690
msgid "No matching stock items"
msgstr ""
-#: templates/js/translated/build.js:1576
+#: templates/js/translated/build.js:1582
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:1593 templates/js/translated/part.js:1147
-#: templates/js/translated/part.js:1558 templates/js/translated/stock.js:1176
-#: templates/js/translated/stock.js:1953
+#: templates/js/translated/build.js:1599 templates/js/translated/part.js:1147
+#: templates/js/translated/part.js:1558 templates/js/translated/stock.js:1333
+#: templates/js/translated/stock.js:2128
msgid "Select"
msgstr ""
-#: templates/js/translated/build.js:1613
+#: templates/js/translated/build.js:1619
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1674 templates/js/translated/stock.js:2172
+#: templates/js/translated/build.js:1680 templates/js/translated/stock.js:2347
msgid "No user information"
msgstr "没有用户信息"
-#: templates/js/translated/build.js:1686
+#: templates/js/translated/build.js:1692
msgid "No information"
msgstr ""
-#: templates/js/translated/build.js:1737
+#: templates/js/translated/build.js:1743
msgid "No parts allocated for"
msgstr ""
@@ -7219,7 +7547,7 @@ msgstr "编辑制造商商品"
msgid "Delete Manufacturer Part"
msgstr "删除制造商商品"
-#: templates/js/translated/company.js:165 templates/js/translated/order.js:90
+#: templates/js/translated/company.js:165 templates/js/translated/order.js:248
msgid "Add Supplier"
msgstr "添加供应商"
@@ -7354,20 +7682,20 @@ msgstr ""
msgid "Enter a valid number"
msgstr ""
-#: templates/js/translated/forms.js:1072 templates/modals.html:19
+#: templates/js/translated/forms.js:1078 templates/modals.html:19
#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1463
+#: templates/js/translated/forms.js:1469
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1667
+#: templates/js/translated/forms.js:1673
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1884
+#: templates/js/translated/forms.js:1893
msgid "Clear input"
msgstr ""
@@ -7380,7 +7708,7 @@ msgid "NO"
msgstr ""
#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:706
+#: templates/js/translated/stock.js:863
msgid "Select Stock Items"
msgstr "选择库存项"
@@ -7429,62 +7757,62 @@ msgstr "选择标签"
msgid "Select Label Template"
msgstr "选择标签模板"
-#: templates/js/translated/modals.js:75 templates/js/translated/modals.js:119
-#: templates/js/translated/modals.js:593
+#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:120
+#: templates/js/translated/modals.js:594
msgid "Cancel"
msgstr "取消"
-#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:118
-#: templates/js/translated/modals.js:660 templates/js/translated/modals.js:963
+#: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119
+#: templates/js/translated/modals.js:661 templates/js/translated/modals.js:964
#: templates/modals.html:28 templates/modals.html:51
msgid "Submit"
msgstr ""
-#: templates/js/translated/modals.js:117
+#: templates/js/translated/modals.js:118
msgid "Form Title"
msgstr ""
-#: templates/js/translated/modals.js:380
+#: templates/js/translated/modals.js:381
msgid "Waiting for server..."
msgstr ""
-#: templates/js/translated/modals.js:539
+#: templates/js/translated/modals.js:540
msgid "Show Error Information"
msgstr ""
-#: templates/js/translated/modals.js:592
+#: templates/js/translated/modals.js:593
msgid "Accept"
msgstr ""
-#: templates/js/translated/modals.js:649
+#: templates/js/translated/modals.js:650
msgid "Loading Data"
msgstr ""
-#: templates/js/translated/modals.js:915
+#: templates/js/translated/modals.js:916
msgid "Invalid response from server"
msgstr ""
-#: templates/js/translated/modals.js:915
+#: templates/js/translated/modals.js:916
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/translated/modals.js:927
+#: templates/js/translated/modals.js:928
msgid "Error posting form data"
msgstr ""
-#: templates/js/translated/modals.js:1024
+#: templates/js/translated/modals.js:1025
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/translated/modals.js:1039
+#: templates/js/translated/modals.js:1040
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/translated/modals.js:1040
+#: templates/js/translated/modals.js:1041
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/translated/modals.js:1063
+#: templates/js/translated/modals.js:1064
msgid "Error requesting form data"
msgstr ""
@@ -7512,176 +7840,245 @@ msgstr "商品ID"
msgid "Order ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:256
+#: templates/js/translated/model_renderers.js:253
+msgid "Shipment ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:273
msgid "Category ID"
msgstr "类别 ID"
-#: templates/js/translated/model_renderers.js:293
+#: templates/js/translated/model_renderers.js:310
msgid "Manufacturer Part ID"
msgstr "制造商商品ID"
-#: templates/js/translated/model_renderers.js:322
+#: templates/js/translated/model_renderers.js:339
msgid "Supplier Part ID"
msgstr "供应商商品ID"
-#: templates/js/translated/order.js:48
+#: templates/js/translated/order.js:75
+msgid "No stock items have been allocated to this shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:80
+msgid "The following stock items will be shipped"
+msgstr ""
+
+#: templates/js/translated/order.js:120
+msgid "Complete Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:126
+msgid "Confirm Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:181
+msgid "Create New Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:206
msgid "Add Customer"
msgstr ""
-#: templates/js/translated/order.js:73
+#: templates/js/translated/order.js:231
msgid "Create Sales Order"
msgstr ""
-#: templates/js/translated/order.js:208
+#: templates/js/translated/order.js:366
msgid "Export Order"
msgstr ""
-#: templates/js/translated/order.js:211 templates/js/translated/stock.js:505
+#: templates/js/translated/order.js:369 templates/js/translated/stock.js:509
msgid "Format"
msgstr ""
-#: templates/js/translated/order.js:212 templates/js/translated/stock.js:506
+#: templates/js/translated/order.js:370 templates/js/translated/stock.js:510
msgid "Select file format"
msgstr ""
-#: templates/js/translated/order.js:300
+#: templates/js/translated/order.js:460
msgid "Select Line Items"
msgstr ""
-#: templates/js/translated/order.js:301
+#: templates/js/translated/order.js:461
msgid "At least one line item must be selected"
msgstr ""
-#: templates/js/translated/order.js:326
+#: templates/js/translated/order.js:486
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:360 templates/js/translated/stock.js:1755
+#: templates/js/translated/order.js:520 templates/js/translated/stock.js:1930
msgid "Stock Status"
msgstr ""
-#: templates/js/translated/order.js:427
+#: templates/js/translated/order.js:587
msgid "Order Code"
msgstr "订单编码"
-#: templates/js/translated/order.js:428
+#: templates/js/translated/order.js:588
msgid "Ordered"
msgstr ""
-#: templates/js/translated/order.js:430
+#: templates/js/translated/order.js:590
msgid "Receive"
msgstr ""
-#: templates/js/translated/order.js:449
+#: templates/js/translated/order.js:609
msgid "Confirm receipt of items"
msgstr ""
-#: templates/js/translated/order.js:450
+#: templates/js/translated/order.js:610
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:627 templates/js/translated/part.js:746
+#: templates/js/translated/order.js:790 templates/js/translated/part.js:746
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:659 templates/js/translated/order.js:1062
+#: templates/js/translated/order.js:815 templates/js/translated/order.js:1230
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:771 templates/js/translated/order.js:1645
+#: templates/js/translated/order.js:936 templates/js/translated/order.js:2356
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:783 templates/js/translated/order.js:1656
+#: templates/js/translated/order.js:948 templates/js/translated/order.js:2367
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/order.js:822
+#: templates/js/translated/order.js:987
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:849 templates/js/translated/order.js:1466
+#: templates/js/translated/order.js:1014 templates/js/translated/order.js:2138
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:903 templates/js/translated/order.js:1491
+#: templates/js/translated/order.js:1068 templates/js/translated/order.js:2163
#: templates/js/translated/part.js:1775 templates/js/translated/part.js:1986
msgid "Unit Price"
msgstr "单价"
-#: templates/js/translated/order.js:918 templates/js/translated/order.js:1507
+#: templates/js/translated/order.js:1083 templates/js/translated/order.js:2179
msgid "Total Price"
msgstr ""
-#: templates/js/translated/order.js:996 templates/js/translated/order.js:1616
+#: templates/js/translated/order.js:1161 templates/js/translated/order.js:2313
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:997
+#: templates/js/translated/order.js:1162 templates/js/translated/order.js:2317
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:1001 templates/js/translated/part.js:878
+#: templates/js/translated/order.js:1166 templates/js/translated/part.js:878
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:1038
+#: templates/js/translated/order.js:1206
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:1076
+#: templates/js/translated/order.js:1244
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:1154
+#: templates/js/translated/order.js:1322
+msgid "Edit shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1325
+msgid "Complete shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1330
+msgid "Delete shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1350
+msgid "Edit Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1367
+msgid "Delete Shipment"
+msgstr ""
+
+#: templates/js/translated/order.js:1401
+msgid "No matching shipments found"
+msgstr ""
+
+#: templates/js/translated/order.js:1411
+msgid "Shipment Reference"
+msgstr ""
+
+#: templates/js/translated/order.js:1435
+msgid "Not shipped"
+msgstr ""
+
+#: templates/js/translated/order.js:1441
+msgid "Tracking"
+msgstr ""
+
+#: templates/js/translated/order.js:1601
+msgid "Allocate Stock Items to Sales Order"
+msgstr ""
+
+#: templates/js/translated/order.js:1809
msgid "No sales order allocations found"
msgstr ""
-#: templates/js/translated/order.js:1247
+#: templates/js/translated/order.js:1898
msgid "Edit Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1264
+#: templates/js/translated/order.js:1915
msgid "Confirm Delete Operation"
msgstr "确认删除操作"
-#: templates/js/translated/order.js:1265
+#: templates/js/translated/order.js:1916
msgid "Delete Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1307
+#: templates/js/translated/order.js:1959 templates/js/translated/order.js:2048
+#: templates/js/translated/stock.js:1249
+msgid "Shipped to customer"
+msgstr ""
+
+#: templates/js/translated/order.js:1967 templates/js/translated/order.js:2057
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:1556
-msgid "Fulfilled"
-msgstr ""
-
-#: templates/js/translated/order.js:1600
+#: templates/js/translated/order.js:2297
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:1606
+#: templates/js/translated/order.js:2303
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:1613 templates/js/translated/order.js:1792
+#: templates/js/translated/order.js:2310 templates/js/translated/order.js:2476
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:1617
-msgid "Delete line item "
+#: templates/js/translated/order.js:2321
+msgid "Cannot be deleted as items have been shipped"
msgstr ""
-#: templates/js/translated/order.js:1740
-msgid "Allocate Stock Item"
+#: templates/js/translated/order.js:2324
+msgid "Cannot be deleted as items have been allocated"
msgstr ""
-#: templates/js/translated/order.js:1800
+#: templates/js/translated/order.js:2382
+msgid "Allocate Serial Numbers"
+msgstr ""
+
+#: templates/js/translated/order.js:2484
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:1814
+#: templates/js/translated/order.js:2498
msgid "No matching line items"
msgstr ""
@@ -7826,12 +8223,12 @@ msgid "No category"
msgstr "没有分类"
#: templates/js/translated/part.js:1230
-#: templates/js/translated/table_filters.js:381
+#: templates/js/translated/table_filters.js:412
msgid "Low stock"
msgstr ""
#: templates/js/translated/part.js:1321 templates/js/translated/part.js:1493
-#: templates/js/translated/stock.js:1914
+#: templates/js/translated/stock.js:2089
msgid "Display as list"
msgstr ""
@@ -7839,7 +8236,7 @@ msgstr ""
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1512 templates/js/translated/stock.js:1933
+#: templates/js/translated/part.js:1512 templates/js/translated/stock.js:2108
msgid "Display as tree"
msgstr ""
@@ -7847,7 +8244,7 @@ msgstr ""
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:1590 templates/js/translated/stock.js:1977
+#: templates/js/translated/part.js:1590 templates/js/translated/stock.js:2152
msgid "Path"
msgstr ""
@@ -7855,11 +8252,11 @@ msgstr ""
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1685 templates/js/translated/stock.js:898
+#: templates/js/translated/part.js:1685 templates/js/translated/stock.js:1055
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1686 templates/js/translated/stock.js:899
+#: templates/js/translated/part.js:1686 templates/js/translated/stock.js:1056
msgid "Delete test result"
msgstr ""
@@ -7898,6 +8295,10 @@ msgstr ""
msgid "Single Price Difference"
msgstr ""
+#: templates/js/translated/plugin.js:22
+msgid "The Plugin was installed"
+msgstr ""
+
#: templates/js/translated/report.js:67
msgid "items selected"
msgstr ""
@@ -7964,300 +8365,316 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/stock.js:71
+#: templates/js/translated/stock.js:72
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:89 templates/js/translated/stock.js:168
+#: templates/js/translated/stock.js:90 templates/js/translated/stock.js:172
msgid "Next available serial number"
msgstr ""
-#: templates/js/translated/stock.js:91 templates/js/translated/stock.js:170
+#: templates/js/translated/stock.js:92 templates/js/translated/stock.js:174
msgid "Latest serial number"
msgstr ""
-#: templates/js/translated/stock.js:105
+#: templates/js/translated/stock.js:100
+msgid "Confirm Stock Serialization"
+msgstr ""
+
+#: templates/js/translated/stock.js:109
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:141
+#: templates/js/translated/stock.js:145
msgid "New Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:181
+#: templates/js/translated/stock.js:185
msgid "This part cannot be serialized"
msgstr ""
-#: templates/js/translated/stock.js:220
+#: templates/js/translated/stock.js:224
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: templates/js/translated/stock.js:226
+#: templates/js/translated/stock.js:230
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: templates/js/translated/stock.js:369
+#: templates/js/translated/stock.js:373
msgid "Created new stock item"
msgstr ""
-#: templates/js/translated/stock.js:382
+#: templates/js/translated/stock.js:386
msgid "Created multiple stock items"
msgstr ""
-#: templates/js/translated/stock.js:407
+#: templates/js/translated/stock.js:411
msgid "Find Serial Number"
msgstr ""
-#: templates/js/translated/stock.js:411 templates/js/translated/stock.js:412
+#: templates/js/translated/stock.js:415 templates/js/translated/stock.js:416
msgid "Enter serial number"
msgstr ""
-#: templates/js/translated/stock.js:428
+#: templates/js/translated/stock.js:432
msgid "Enter a serial number"
msgstr ""
-#: templates/js/translated/stock.js:448
+#: templates/js/translated/stock.js:452
msgid "No matching serial number"
msgstr ""
-#: templates/js/translated/stock.js:457
+#: templates/js/translated/stock.js:461
msgid "More than one matching result found"
msgstr ""
-#: templates/js/translated/stock.js:502
+#: templates/js/translated/stock.js:506
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:513
+#: templates/js/translated/stock.js:517
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:514
+#: templates/js/translated/stock.js:518
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:556
+#: templates/js/translated/stock.js:627
+msgid "Confirm stock assignment"
+msgstr ""
+
+#: templates/js/translated/stock.js:628
+msgid "Assign Stock to Customer"
+msgstr ""
+
+#: templates/js/translated/stock.js:713
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:557
+#: templates/js/translated/stock.js:714
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:563
+#: templates/js/translated/stock.js:720
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:564
+#: templates/js/translated/stock.js:721
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:568
+#: templates/js/translated/stock.js:725
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:569
+#: templates/js/translated/stock.js:726
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:573
+#: templates/js/translated/stock.js:730
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:574 users/models.py:200
+#: templates/js/translated/stock.js:731 users/models.py:202
msgid "Add"
msgstr "添加"
-#: templates/js/translated/stock.js:578 templates/stock_table.html:56
+#: templates/js/translated/stock.js:735 templates/stock_table.html:57
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:667
+#: templates/js/translated/stock.js:824
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:667
+#: templates/js/translated/stock.js:824
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:707
+#: templates/js/translated/stock.js:864
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:865
+#: templates/js/translated/stock.js:1022
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:867
+#: templates/js/translated/stock.js:1024
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:872
+#: templates/js/translated/stock.js:1029
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:894
+#: templates/js/translated/stock.js:1051
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:920
+#: templates/js/translated/stock.js:1077
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:977
+#: templates/js/translated/stock.js:1134
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:1084
+#: templates/js/translated/stock.js:1241
msgid "In production"
msgstr "正在生产"
-#: templates/js/translated/stock.js:1088
+#: templates/js/translated/stock.js:1245
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:1092
-msgid "Shipped to customer"
-msgstr ""
-
-#: templates/js/translated/stock.js:1096
+#: templates/js/translated/stock.js:1253
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:1102
+#: templates/js/translated/stock.js:1259
msgid "No stock location set"
msgstr "未设置仓储地点"
-#: templates/js/translated/stock.js:1260
+#: templates/js/translated/stock.js:1417
msgid "Stock item is in production"
msgstr "库存品正在生产"
-#: templates/js/translated/stock.js:1265
+#: templates/js/translated/stock.js:1422
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1268
+#: templates/js/translated/stock.js:1425
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1272
+#: templates/js/translated/stock.js:1429
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1274
+#: templates/js/translated/stock.js:1431
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1278
-msgid "Stock item has been allocated"
+#: templates/js/translated/stock.js:1437
+msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1282
+#: templates/js/translated/stock.js:1439
+msgid "Stock item has been fully allocated"
+msgstr ""
+
+#: templates/js/translated/stock.js:1441
+msgid "Stock item has been partially allocated"
+msgstr ""
+
+#: templates/js/translated/stock.js:1446
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1289
+#: templates/js/translated/stock.js:1453
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1291
+#: templates/js/translated/stock.js:1455
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1293
+#: templates/js/translated/stock.js:1457
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1297
-#: templates/js/translated/table_filters.js:183
+#: templates/js/translated/stock.js:1461
+#: templates/js/translated/table_filters.js:188
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1347
+#: templates/js/translated/stock.js:1511
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1420
+#: templates/js/translated/stock.js:1584
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1458
+#: templates/js/translated/stock.js:1622
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1479 templates/js/translated/stock.js:1527
+#: templates/js/translated/stock.js:1643 templates/js/translated/stock.js:1691
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1567
+#: templates/js/translated/stock.js:1731
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1594
+#: templates/js/translated/stock.js:1758
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:1596
+#: templates/js/translated/stock.js:1760
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:1770
+#: templates/js/translated/stock.js:1945
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:1784
+#: templates/js/translated/stock.js:1959
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:1785
+#: templates/js/translated/stock.js:1960
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:2009
+#: templates/js/translated/stock.js:2184
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:2031
+#: templates/js/translated/stock.js:2206
msgid "Details"
msgstr "详情"
-#: templates/js/translated/stock.js:2056
+#: templates/js/translated/stock.js:2231
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2075
+#: templates/js/translated/stock.js:2250
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2094
+#: templates/js/translated/stock.js:2269
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2112
+#: templates/js/translated/stock.js:2287
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2135
+#: templates/js/translated/stock.js:2310
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2143
+#: templates/js/translated/stock.js:2318
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2184
+#: templates/js/translated/stock.js:2359
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2185
+#: templates/js/translated/stock.js:2360
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2236
+#: templates/js/translated/stock.js:2411
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2287
+#: templates/js/translated/stock.js:2462
msgid "Uninstall Stock Item"
msgstr ""
@@ -8278,7 +8695,7 @@ msgid "Allow Variant Stock"
msgstr ""
#: templates/js/translated/table_filters.js:110
-#: templates/js/translated/table_filters.js:178
+#: templates/js/translated/table_filters.js:183
msgid "Include sublocations"
msgstr ""
@@ -8288,54 +8705,54 @@ msgstr ""
#: templates/js/translated/table_filters.js:121
#: templates/js/translated/table_filters.js:122
-#: templates/js/translated/table_filters.js:358
+#: templates/js/translated/table_filters.js:389
msgid "Include subcategories"
msgstr ""
#: templates/js/translated/table_filters.js:126
-#: templates/js/translated/table_filters.js:393
+#: templates/js/translated/table_filters.js:424
msgid "Subscribed"
msgstr ""
#: templates/js/translated/table_filters.js:136
-#: templates/js/translated/table_filters.js:213
+#: templates/js/translated/table_filters.js:218
msgid "Is Serialized"
msgstr ""
#: templates/js/translated/table_filters.js:139
-#: templates/js/translated/table_filters.js:220
+#: templates/js/translated/table_filters.js:225
msgid "Serial number GTE"
msgstr ""
#: templates/js/translated/table_filters.js:140
-#: templates/js/translated/table_filters.js:221
+#: templates/js/translated/table_filters.js:226
msgid "Serial number greater than or equal to"
msgstr ""
#: templates/js/translated/table_filters.js:143
-#: templates/js/translated/table_filters.js:224
+#: templates/js/translated/table_filters.js:229
msgid "Serial number LTE"
msgstr ""
#: templates/js/translated/table_filters.js:144
-#: templates/js/translated/table_filters.js:225
+#: templates/js/translated/table_filters.js:230
msgid "Serial number less than or equal to"
msgstr ""
#: templates/js/translated/table_filters.js:147
#: templates/js/translated/table_filters.js:148
-#: templates/js/translated/table_filters.js:216
-#: templates/js/translated/table_filters.js:217
+#: templates/js/translated/table_filters.js:221
+#: templates/js/translated/table_filters.js:222
msgid "Serial number"
msgstr ""
#: templates/js/translated/table_filters.js:152
-#: templates/js/translated/table_filters.js:234
+#: templates/js/translated/table_filters.js:239
msgid "Batch code"
msgstr ""
#: templates/js/translated/table_filters.js:163
-#: templates/js/translated/table_filters.js:348
+#: templates/js/translated/table_filters.js:379
msgid "Active parts"
msgstr ""
@@ -8356,101 +8773,111 @@ msgid "Item has been allocated"
msgstr ""
#: templates/js/translated/table_filters.js:179
-msgid "Include stock in sublocations"
+msgid "Stock is available for use"
msgstr ""
#: templates/js/translated/table_filters.js:184
-msgid "Show stock items which are depleted"
+msgid "Include stock in sublocations"
msgstr ""
#: templates/js/translated/table_filters.js:189
+msgid "Show stock items which are depleted"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:194
msgid "Show items which are in stock"
msgstr ""
-#: templates/js/translated/table_filters.js:193
+#: templates/js/translated/table_filters.js:198
msgid "In Production"
msgstr "正在生产"
-#: templates/js/translated/table_filters.js:194
+#: templates/js/translated/table_filters.js:199
msgid "Show items which are in production"
msgstr "显示正在生产的项目"
-#: templates/js/translated/table_filters.js:198
+#: templates/js/translated/table_filters.js:203
msgid "Include Variants"
msgstr ""
-#: templates/js/translated/table_filters.js:199
+#: templates/js/translated/table_filters.js:204
msgid "Include stock items for variant parts"
msgstr ""
-#: templates/js/translated/table_filters.js:203
+#: templates/js/translated/table_filters.js:208
msgid "Installed"
msgstr ""
-#: templates/js/translated/table_filters.js:204
+#: templates/js/translated/table_filters.js:209
msgid "Show stock items which are installed in another item"
msgstr ""
-#: templates/js/translated/table_filters.js:209
+#: templates/js/translated/table_filters.js:214
msgid "Show items which have been assigned to a customer"
msgstr ""
-#: templates/js/translated/table_filters.js:229
-#: templates/js/translated/table_filters.js:230
+#: templates/js/translated/table_filters.js:234
+#: templates/js/translated/table_filters.js:235
msgid "Stock status"
msgstr ""
-#: templates/js/translated/table_filters.js:238
+#: templates/js/translated/table_filters.js:243
msgid "Has purchase price"
msgstr ""
-#: templates/js/translated/table_filters.js:239
+#: templates/js/translated/table_filters.js:244
msgid "Show stock items which have a purchase price set"
msgstr ""
-#: templates/js/translated/table_filters.js:248
+#: templates/js/translated/table_filters.js:253
msgid "Show stock items which have expired"
msgstr ""
-#: templates/js/translated/table_filters.js:254
+#: templates/js/translated/table_filters.js:259
msgid "Show stock which is close to expiring"
msgstr ""
-#: templates/js/translated/table_filters.js:285
+#: templates/js/translated/table_filters.js:290
msgid "Build status"
msgstr "生产状态"
-#: templates/js/translated/table_filters.js:313
-#: templates/js/translated/table_filters.js:330
+#: templates/js/translated/table_filters.js:303
+#: templates/js/translated/table_filters.js:344
+msgid "Assigned to me"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:320
+#: templates/js/translated/table_filters.js:331
+#: templates/js/translated/table_filters.js:352
msgid "Order status"
msgstr ""
-#: templates/js/translated/table_filters.js:318
-#: templates/js/translated/table_filters.js:335
+#: templates/js/translated/table_filters.js:336
+#: templates/js/translated/table_filters.js:357
msgid "Outstanding"
msgstr ""
-#: templates/js/translated/table_filters.js:359
+#: templates/js/translated/table_filters.js:390
msgid "Include parts in subcategories"
msgstr ""
-#: templates/js/translated/table_filters.js:363
+#: templates/js/translated/table_filters.js:394
msgid "Has IPN"
msgstr ""
-#: templates/js/translated/table_filters.js:364
+#: templates/js/translated/table_filters.js:395
msgid "Part has internal part number"
msgstr "商品有内部编号"
-#: templates/js/translated/table_filters.js:369
+#: templates/js/translated/table_filters.js:400
msgid "Show active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:377
+#: templates/js/translated/table_filters.js:408
msgid "Stock available"
msgstr ""
-#: templates/js/translated/table_filters.js:405
+#: templates/js/translated/table_filters.js:436
msgid "Purchasable"
msgstr ""
@@ -8507,27 +8934,23 @@ msgstr ""
msgid "All"
msgstr ""
-#: templates/navbar.html:40
+#: templates/navbar.html:42
msgid "Buy"
msgstr "采购"
-#: templates/navbar.html:52
+#: templates/navbar.html:54
msgid "Sell"
msgstr "销售"
-#: templates/navbar.html:86 users/models.py:39
-msgid "Admin"
-msgstr "管理员"
-
-#: templates/navbar.html:88
+#: templates/navbar.html:113
msgid "Logout"
msgstr ""
-#: templates/navbar.html:90
+#: templates/navbar.html:115
msgid "Login"
msgstr ""
-#: templates/navbar.html:111
+#: templates/navbar.html:136
msgid "About InvenTree"
msgstr ""
@@ -8639,15 +9062,15 @@ msgstr ""
msgid "Order selected items"
msgstr ""
-#: templates/stock_table.html:53
+#: templates/stock_table.html:54
msgid "Change status"
msgstr ""
-#: templates/stock_table.html:53
+#: templates/stock_table.html:54
msgid "Change stock status"
msgstr ""
-#: templates/stock_table.html:56
+#: templates/stock_table.html:57
msgid "Delete selected items"
msgstr ""
@@ -8683,35 +9106,35 @@ msgstr "权限"
msgid "Important dates"
msgstr "重要日期"
-#: users/models.py:187
+#: users/models.py:189
msgid "Permission set"
msgstr "权限设置"
-#: users/models.py:195
+#: users/models.py:197
msgid "Group"
msgstr "群组"
-#: users/models.py:198
+#: users/models.py:200
msgid "View"
msgstr "视图"
-#: users/models.py:198
+#: users/models.py:200
msgid "Permission to view items"
msgstr "查看项目权限"
-#: users/models.py:200
+#: users/models.py:202
msgid "Permission to add items"
msgstr "添加项目权限"
-#: users/models.py:202
+#: users/models.py:204
msgid "Change"
msgstr "更改"
-#: users/models.py:202
+#: users/models.py:204
msgid "Permissions to edit items"
msgstr "编辑项目权限"
-#: users/models.py:204
+#: users/models.py:206
msgid "Permission to delete items"
msgstr "删除项目权限"